Exemple #1
0
        private void RefreshTimeLimitedActivity(bool isInit = false)
        {
            var tabIdx = (int)PlayFrameTab.TimedActivity;
            List <DailyActivity> records;

            if (!DailyActs.TryGetValue(tabIdx, out records))
            {
                return;
            }
            CurrentCellData.Clear();
            CurrentTimeSpan.Clear();
            var playerData = PlayerDataManager.Instance;

            var isShowTimeLimitNotice = false;
            var now = Game.Instance.ServerTime;
            var nearestActivityTime = now.AddYears(10);
            var cells = new List <PlayFrameCellData>();

            foreach (var record in records)
            {
                var args = new CreateCellDataArgs();
                args.nowCount = 0;
                args.maxCount = 0;
                args.state    = ActivityCellState.Start;
                args.textId   = 100000613; //参加
                var param0 = record.dailyActivityRecord.CommonParam[0];

                var cell = CreateCellData(record, args);
                cells.Add(cell);

                var _tbDavi = Table.GetDailyActivity(record.dailyActivityRecord.Id);
                cell.IsRewardShow1 = 1;
                cell.IsRewardShow2 = 1;
                cell.IsRewardShow3 = 1;
                for (int i = 0, imax = _tbDavi.RewardShow.Count; i < imax; i++)
                {
                    if (i == 0)
                    {
                        cell.RewardId1     = _tbDavi.RewardShow[i];
                        cell.IsRewardShow1 = 0;
                    }

                    if (i == 1)
                    {
                        cell.RewardId2     = _tbDavi.RewardShow[i];
                        cell.IsRewardShow2 = 0;
                    }
                    if (i == 2)
                    {
                        cell.RewardId3     = _tbDavi.RewardShow[i];
                        cell.IsRewardShow3 = 0;
                    }
                }

                {
                    var tbSU        = Table.GetSkillUpgrading(param0);
                    var openLastMin = tbSU.Param[0];
                    var speId       = tbSU.Param[1];
                    var values      = tbSU.Values;
                    var actState    = -1;
                    var startTime   = default(DateTime);
                    if (speId != -1 && playerData.ActivityState.Count > speId)
                    {
                        actState = playerData.ActivityState[speId];
                    }
                    if (actState < (int)eActivityState.WillEnd)
                    {
                        foreach (var value in values)
                        {
                            var hour       = value / 100;
                            var min        = value % 100;
                            var startTime1 = new DateTime(now.Year, now.Month, now.Day, hour, min, 0);
                            var endTime1   = startTime1.AddMinutes(openLastMin);

                            if (endTime1 >= now)
                            {
                                startTime = startTime1;
                                //
                                TimeSpan span     = startTime1 - DateTime.Now;
                                string   timeForm = string.Format("距开启还有{0}:{1}:{2}", span.Hours, span.Minutes, span.Seconds);
                                cell.Reason = timeForm;
                                if (!CurrentCellData.Contains(cell))
                                {
                                    CurrentCellData.Add(cell);
                                    CurrentTimeSpan.Add(startTime1);
                                    if (!isInit)
                                    {
                                        NetManager.Instance.StartCoroutine(UpDateTime());
                                    }
                                }
                                //
                                break;
                            }
                        }
                    }

                    if (startTime == default(DateTime))
                    {
                        var value = values[0];
                        var hour  = value / 100;
                        var min   = value % 100;
                        startTime  = new DateTime(now.Year, now.Month, now.Day, hour, min, 0).AddDays(1);
                        cell.State = (int)ActivityCellState.CanNotAttend;
                    }

                    cell.StartTime = startTime;
                    if (startTime <= now)
                    {
                        if (cell.State == (int)ActivityCellState.Start)
                        {
                            cell.IsShowNotice     = startTime <= now;
                            isShowTimeLimitNotice = true;
                        }
                        startTime           = startTime.AddMinutes(openLastMin);
                        nearestActivityTime = nearestActivityTime < startTime ? nearestActivityTime : startTime;
                    }
                    else
                    {
                        if (cell.State == (int)ActivityCellState.Start)
                        {
                            cell.State = (int)ActivityCellState.WillStart;
                        }
                        //cell.Reason = string.Format(GameUtils.GetDictionaryText(100000612), startTime.ToString("HH:mm"));
                        //cell.Reason = GameUtils.GetAllTimeDiffString(startTime, true);
                        nearestActivityTime = nearestActivityTime < startTime ? nearestActivityTime : startTime;
                    }
                }
                //未开启限时活动
                if (record.state == (int)PlayFrameTab.NoToDpen)
                {
                    cell.State  = (int)ActivityCellState.NoEnoughtLV;
                    cell.Reason = record.dailyActivityRecord.Desc;
                }

                switch (cell.State)
                {
                //case 0:
                //case 2:
                //    cell.BtnId = 1;
                //    break;
                //case 1:
                //    cell.BtnId = 2;
                //    break;
                //case 3:
                //    cell.BtnId = 3;
                //    break;
                case 0:
                    //参加
                    cell.BtnId = 1;
                    break;

                case 1:
                    cell.BtnId = 2;
                    break;

                case 2:
                    //领取奖励
                    cell.ShowColor = 1;
                    cell.BtnId     = 4;
                    break;

                case 3:
                    //未开启
                    cell.ShowColor = 2;
                    cell.BtnId     = 2;
                    break;

                case 4:
                    //当日活动结束
                    cell.BtnId = 5;
                    break;
                }
            }

            {
                SetNextRefreshCellTime(nearestActivityTime);
            }
            isInit = true;
            cells.Sort((l, r) =>
            {
                if (l.State < r.State)
                {
                    return(-1);
                }
                if (l.State > r.State)
                {
                    return(1);
                }

                if (l.StartTime < r.StartTime)
                {
                    return(-1);
                }
                if (l.StartTime > r.StartTime)
                {
                    return(1);
                }

                if (l.SortPriority < r.SortPriority)
                {
                    return(-1);
                }
                if (l.SortPriority > r.SortPriority)
                {
                    return(1);
                }

                return(0);
            });

            if (TabIdx == tabIdx)
            {
                DataModel.Cells = new ObservableCollection <PlayFrameCellData>(cells);

                if (cells.Count == 0)
                {
                    DataModel.EmptyTipDic = tabIdx + 100000900;
                }
                else
                {
                    DataModel.EmptyTipDic = -1;
                }
            }
            DataModel.IsShowTimeLimitNotice = isShowTimeLimitNotice;
            if (isInit)
            {
                var showReward = IsShowDailyRedPoint();
                playerData.NoticeData.DailyActivityFlag = DataModel.IsShowTimeLimitNotice || DataModel.IsShowDailyNotice || showReward;
            }
        }
Exemple #2
0
        private void RefreshLimitTime()
        {
            var tabIdx = (int)PlayFrameTab.TimedActivity;
            List <DailyActivity> records;

            if (!DailyActs.TryGetValue(tabIdx, out records))
            {
                return;
            }
            var playerData = PlayerDataManager.Instance;

            var isShowTimeLimitNotice = false;
            var now = Game.Instance.ServerTime;
            var nearestActivityTime = now.AddYears(10);
            var cells = new List <PlayFrameCellData>();

            foreach (var record in records)
            {
                var args = new CreateCellDataArgs();
                args.nowCount = 0;
                args.maxCount = 0;
                args.state    = ActivityCellState.Start;
                args.textId   = 100000613; //参加
                var param0 = record.dailyActivityRecord.CommonParam[0];

                var cell = CreateCellData(record, args);
                cells.Add(cell);

                {
                    var tbSU        = Table.GetSkillUpgrading(param0);
                    var openLastMin = tbSU.Param[0];
                    var speId       = tbSU.Param[1];
                    var values      = tbSU.Values;
                    var actState    = -1;
                    var startTime   = default(DateTime);
                    if (speId != -1 && playerData.ActivityState.Count > speId)
                    {
                        actState = playerData.ActivityState[speId];
                    }
                    if (actState < (int)eActivityState.WillEnd)
                    {
                        foreach (var value in values)
                        {
                            var hour       = value / 100;
                            var min        = value % 100;
                            var startTime1 = new DateTime(now.Year, now.Month, now.Day, hour, min, 0);
                            var endTime1   = startTime1.AddMinutes(openLastMin);
                            if (endTime1 >= now)
                            {
                                startTime = startTime1;
                                break;
                            }
                        }
                    }
                    if (startTime == default(DateTime))
                    {
                        var value = values[0];
                        var hour  = value / 100;
                        var min   = value % 100;
                        startTime  = new DateTime(now.Year, now.Month, now.Day, hour, min, 0).AddDays(1);
                        cell.State = (int)ActivityCellState.CanNotAttend;
                    }

                    cell.StartTime = startTime;
                    if (startTime <= now)
                    {
                        if (cell.State == (int)ActivityCellState.Start)
                        {
                            cell.IsShowNotice     = startTime <= now;
                            isShowTimeLimitNotice = true;
                        }
                        startTime           = startTime.AddMinutes(openLastMin);
                        nearestActivityTime = nearestActivityTime < startTime ? nearestActivityTime : startTime;
                    }
                    else
                    {
                        if (cell.State == (int)ActivityCellState.Start)
                        {
                            cell.State = (int)ActivityCellState.WillStart;
                        }
                        //cell.Reason = string.Format(GameUtils.GetDictionaryText(100000612), startTime.ToString("HH:mm"));
                        cell.Reason         = GameUtils.GetAllTimeDiffString(startTime, true);
                        nearestActivityTime = nearestActivityTime < startTime ? nearestActivityTime : startTime;
                    }
                }
                {
                    SetNextRefreshCellTime(nearestActivityTime);
                }

                DataModel.IsShowTimeLimitNotice = isShowTimeLimitNotice;
            }
        }
Exemple #3
0
        private PlayFrameCellData CreateCellData(DailyActivity record, CreateCellDataArgs args)
        {
            var playerData = PlayerDataManager.Instance;
            var cell       = new PlayFrameCellData();

            cell.TableId = record.dailyActivityRecord.Id;

            var exdataId = record.dailyActivityRecord.ExDataId;
            var param0   = record.dailyActivityRecord.CommonParam[0];
            var param1   = record.dailyActivityRecord.CommonParam[1];
            var type     = (eActivityType)record.dailyActivityRecord.DetailType;
            var btnId    = -1;

            switch (type)
            {
            case eActivityType.DailyTask:
            {
                var tbSU    = Table.GetSkillUpgrading(param0);
                var values  = tbSU.Values;
                var myLevel = PlayerDataManager.Instance.GetLevel();
                foreach (var value in values)
                {
                    var tbMission   = Table.GetMissionBase(value);
                    var tbCondition = Table.GetConditionTable(tbMission.Condition);
                    if (PlayerDataManager.Instance.GetFlag(tbCondition.TrueFlag[0]) &&
                        myLevel >= tbCondition.ItemCountMin[0] && myLevel <= tbCondition.ItemCountMax[0])
                    {
                        args.maxCount = tbCondition.ExdataMax[0];
                        args.nowCount = playerData.GetExData(tbCondition.ExdataId[0]);
                        args.state    = args.nowCount < args.maxCount
                                ? ActivityCellState.Start
                                : ActivityCellState.Complete;
                        break;
                    }
                }
            }
            break;

            case eActivityType.StoryDungeon:
            {
                var tbPF = Table.GetPlotFuben(param0);
                if (tbPF == null)
                {
                    break;
                }
                args.nowCount = playerData.GetExData(exdataId);
                foreach (var fubenId in tbPF.Difficulty)
                {
                    var tbFuben = Table.GetFuben(fubenId);
                    if (tbFuben == null)
                    {
                        break;
                    }
                    var result = playerData.CheckCondition(tbFuben.EnterConditionId);
                    if (result != 0)
                    {
                        break;
                    }
                    args.maxCount += tbFuben.TodayCount + playerData.GetExData(tbFuben.ResetExdata);
                }
                if (args.nowCount < args.maxCount)
                {
                    args.state = ActivityCellState.Start;
                }
                else
                {
                    args.state = ActivityCellState.Complete;
                }
            }
            break;

            case eActivityType.Arena:
            {
                args.nowCount = playerData.GetExData(exdataId);
                args.maxCount = Table.GetClientConfig(201).ToInt();
                var totalCount = args.maxCount + Table.GetClientConfig(204).ToInt();
                if (args.nowCount < args.maxCount)
                {
                    args.state = ActivityCellState.Start;
                }
                else if (args.nowCount < totalCount)
                {
                    args.state = ActivityCellState.Complete;
                }
                else
                {
                    args.state = ActivityCellState.CanNotAttend;
                }
            }
            break;

            case eActivityType.NormalCount:
            {
                args.nowCount = playerData.GetExData(exdataId);
                args.maxCount = record.dailyActivityRecord.DisplayCount;
                args.state    = args.nowCount < args.maxCount ? ActivityCellState.Start : ActivityCellState.Complete;
            }
            break;

            case eActivityType.Infinity:
            {
                args.nowCount = playerData.GetExData(exdataId);
                args.maxCount = record.dailyActivityRecord.DisplayCount;
                args.state    = args.nowCount < args.maxCount ? ActivityCellState.Start : ActivityCellState.Complete;
            }
            break;

            case eActivityType.AcientBF:
            {
                args.nowCount = playerData.GetExData(eExdataDefine.e545);
                args.maxCount = record.dailyActivityRecord.DisplayCount;
                args.state    = args.nowCount < args.maxCount ? ActivityCellState.Start : ActivityCellState.Complete;
            }
            break;

            case eActivityType.Question:
            {
                args.nowCount = playerData.GetExData(exdataId);
                args.maxCount = Table.GetClientConfig(581).ToInt();
                args.state    = args.nowCount < args.maxCount ? ActivityCellState.Start : ActivityCellState.Complete;
            }
            break;

            case eActivityType.VipAddCount:
            {
                args.nowCount = playerData.GetExData(exdataId);
                args.maxCount = record.dailyActivityRecord.DisplayCount;
                args.state    = args.nowCount < args.maxCount ? ActivityCellState.Start : ActivityCellState.Complete;
            }
            break;

            case eActivityType.IgnoreCount:
            {
                cell.IsShowCount = false;
            }
            break;

            case eActivityType.VipDailyGift:
            {
                args.nowCount = 0;
                args.maxCount = record.dailyActivityRecord.DisplayCount;
                var vipLevel = playerData.GetItemCount((int)eResourcesType.VipLevel);
                if (vipLevel <= 0)
                {
                    args.textId = 100000896;         //购买
                }
                else if (playerData.GetFlag(param0)) //flag 2506:每天的vip礼包是否已领取
                {
                    args.nowCount = 1;
                }
                else
                {
                    args.textId = 100000894;     //领取
                    btnId       = 4;
                }
                args.state = args.nowCount < args.maxCount ? ActivityCellState.Start : ActivityCellState.Complete;
            }
            break;

            case eActivityType.MonthCard:
            {
                args.nowCount = 0;
                args.maxCount = record.dailyActivityRecord.DisplayCount;
                var exdata64Idx = Table.GetClientConfig(418).ToInt();
                var endTime     = playerData.GetExData64(exdata64Idx);
                var endDate     = Extension.FromServerBinary(endTime);
                var now         = Game.Instance.ServerTime;
                if (now > endDate)
                {
                    args.textId = 100000896;         //购买
                }
                else if (playerData.GetFlag(param0)) //flag 2507:每天的月卡礼包是否已领取
                {
                    args.nowCount = 1;
                }
                else
                {
                    args.textId = 100000894;     //领取
                    btnId       = 4;
                }
                args.state = args.nowCount < args.maxCount ? ActivityCellState.Start : ActivityCellState.Complete;
            }
            break;
            }

            if (record.dailyActivityRecord.FinishCanJoin == 0)
            {
                if (args.state == ActivityCellState.Complete)
                {
                    args.state = ActivityCellState.CanNotAttend;
                }
            }

            var activityValue = record.dailyActivityRecord.ActivityValue;
            var activityCount = record.dailyActivityRecord.ActivityCount;

            if (activityCount == -1 && activityValue > 0)
            {
                activityCount = args.maxCount;
            }
            var slashText = GameUtils.GetDictionaryText(230027);
            var wuText    = GameUtils.GetDictionaryText(270024);

            cell.State        = (int)args.state;
            cell.BtnId        = btnId;
            cell.SortPriority = record.dailyActivityRecord.SortPriority;
            cell.TextId       = args.textId;
            cell.Count        = string.Format(slashText, Math.Min(args.nowCount, args.maxCount), args.maxCount);
            cell.Activity     = activityCount <= 0
                ? wuText
                : (string.Format(slashText, activityValue * Math.Min(args.nowCount, activityCount),
                                 activityValue * activityCount));

            return(cell);
        }
Exemple #4
0
        private void RefreshCells(int tabIdx, bool isInit = false)
        {
            if (tabIdx == (int)PlayFrameTab.TimedActivity)
            {
                RefreshTimeLimitedActivity();
                return;
            }

            List <DailyActivity> records;

            if (!DailyActs.TryGetValue(tabIdx, out records))
            {
                return;
            }

            var cells = new List <PlayFrameCellData>();

            foreach (var record in records)
            {
                var args = new CreateCellDataArgs();
                args.nowCount = 0;
                args.maxCount = 0;
                args.state    = ActivityCellState.Start;
                args.textId   = 100000613; //参加
                var _tbDavi = Table.GetDailyActivity(record.dailyActivityRecord.Id);
                if (!GameUtils.CheckIsWeekLoopOk(_tbDavi.WeekLoop))
                {
                    continue;
                }
                var cell = CreateCellData(record, args);
                cells.Add(cell);
                cell.IsRewardShow1 = 1;
                cell.IsRewardShow2 = 1;
                cell.IsRewardShow3 = 1;

                for (int i = 0, imax = _tbDavi.RewardShow.Count; i < imax; i++)
                {
                    if (i == 0)
                    {
                        cell.RewardId1     = _tbDavi.RewardShow[i];
                        cell.IsRewardShow1 = 0;
                    }

                    if (i == 1)
                    {
                        cell.RewardId2     = _tbDavi.RewardShow[i];
                        cell.IsRewardShow2 = 0;
                    }
                    if (i == 2)
                    {
                        cell.RewardId3     = _tbDavi.RewardShow[i];
                        cell.IsRewardShow3 = 0;
                    }
                }
                if (/*tabIdx == (int) PlayFrameTab.AboutToOpen*/ record.state == (int)PlayFrameTab.NoToDpen)
                {
                    cell.State  = (int)ActivityCellState.WillStart;
                    cell.Reason = record.dailyActivityRecord.Desc;
                }
                if (cell.BtnId == -1)
                {
                    switch (cell.State)
                    {
                    case 0:
                        //参加
                        cell.BtnId = 1;
                        break;

                    case 1:
                        //等级不够,未开启
                        cell.ShowColor = 2;
                        cell.BtnId     = 2;
                        break;

                    case 2:
                        //领取奖励
                        cell.ShowColor = 1;
                        cell.BtnId     = 4;
                        break;

                    case 4:
                        //完成
                        cell.ShowColor = 1;
                        cell.BtnId     = 3;
                        break;
                    }
                }
            }

            cells.Sort((l, r) =>
            {
                if (l.State < r.State)
                {
                    return(-1);
                }
                if (l.State > r.State)
                {
                    return(1);
                }

                if (l.SortPriority < r.SortPriority)
                {
                    return(-1);
                }
                if (l.SortPriority > r.SortPriority)
                {
                    return(1);
                }

                return(0);
            });
            DataModel.Cells = new ObservableCollection <PlayFrameCellData>(cells);

            if (cells.Count == 0)
            {
                DataModel.EmptyTipDic = tabIdx + 100000900;
            }
            else
            {
                DataModel.EmptyTipDic = -1;
            }

            if (tabIdx == (int)PlayFrameTab.DailyActivity)
            {
                var count = cells.Count(c => c.State == (int)ActivityCellState.Start);
                //DataModel.IsShowDailyNotice = count > 0;日常按钮小红点改为活跃度奖励未领取时显示
                if (isInit)
                {
                    var showReward = IsShowDailyRedPoint();
                    PlayerDataManager.Instance.NoticeData.DailyActivityFlag = DataModel.IsShowTimeLimitNotice ||
                                                                              DataModel.IsShowDailyNotice || showReward;
                }
            }
        }
Exemple #5
0
    private void RefreshTimeLimitedActivity(bool isInit = false)
    {
        var tabIdx = (int)PlayFrameTab.TimedActivity;
        List <DailyActivityRecord> records;

        if (!DailyActs.TryGetValue(tabIdx, out records))
        {
            return;
        }
        var playerData = PlayerDataManager.Instance;

        var isShowTimeLimitNotice = false;
        var now = Game.Instance.ServerTime;
        var nearestActivityTime = now.AddYears(10);
        var cells = new List <PlayFrameCellData>();

        foreach (var record in records)
        {
            var args = new CreateCellDataArgs();
            args.nowCount = 0;
            args.maxCount = 0;
            args.state    = ActivityCellState.Start;
            args.textId   = 100000613; //参加
            var param0 = record.CommonParam[0];

            var cell = CreateCellData(record, args);
            cells.Add(cell);

            {
                var tbSU        = Table.GetSkillUpgrading(param0);
                var openLastMin = tbSU.Param[0];
                var speId       = tbSU.Param[1];
                var values      = tbSU.Values;
                var actState    = -1;
                var startTime   = default(DateTime);
                if (speId != -1 && playerData.ActivityState.Count > speId)
                {
                    actState = playerData.ActivityState[speId];
                }
                if (actState < (int)eActivityState.WillEnd)
                {
                    foreach (var value in values)
                    {
                        var hour       = value / 100;
                        var min        = value % 100;
                        var startTime1 = new DateTime(now.Year, now.Month, now.Day, hour, min, 0);
                        var endTime1   = startTime1.AddMinutes(openLastMin);
                        if (endTime1 >= now)
                        {
                            startTime = startTime1;
                            break;
                        }
                    }
                }
                if (startTime == default(DateTime))
                {
                    var value = values[0];
                    var hour  = value / 100;
                    var min   = value % 100;
                    startTime  = new DateTime(now.Year, now.Month, now.Day, hour, min, 0).AddDays(1);
                    cell.State = (int)ActivityCellState.CanNotAttend;
                }

                cell.StartTime = startTime;
                if (startTime <= now)
                {
                    if (cell.State == (int)ActivityCellState.Start)
                    {
                        cell.IsShowNotice     = startTime <= now;
                        isShowTimeLimitNotice = true;
                    }
                    startTime           = startTime.AddMinutes(openLastMin);
                    nearestActivityTime = nearestActivityTime < startTime ? nearestActivityTime : startTime;
                }
                else
                {
                    if (cell.State == (int)ActivityCellState.Start)
                    {
                        cell.State = (int)ActivityCellState.WillStart;
                    }
                    cell.Reason         = string.Format(GameUtils.GetDictionaryText(100000612), startTime.ToString("HH:mm"));
                    nearestActivityTime = nearestActivityTime < startTime ? nearestActivityTime : startTime;
                }
            }
            switch (cell.State)
            {
            case 0:
            case 2:
                cell.BtnId = 1;
                break;

            case 1:
                cell.BtnId = 2;
                break;

            case 3:
                cell.BtnId = 3;
                break;
            }
        }

        {
            SetNextRefreshCellTime(nearestActivityTime);
        }

        cells.Sort((l, r) =>
        {
            if (l.State < r.State)
            {
                return(-1);
            }
            if (l.State > r.State)
            {
                return(1);
            }

            if (l.StartTime < r.StartTime)
            {
                return(-1);
            }
            if (l.StartTime > r.StartTime)
            {
                return(1);
            }

            if (l.SortPriority < r.SortPriority)
            {
                return(-1);
            }
            if (l.SortPriority > r.SortPriority)
            {
                return(1);
            }

            return(0);
        });

        if (TabIdx == tabIdx)
        {
            DataModel.Cells = new ObservableCollection <PlayFrameCellData>(cells);

            if (cells.Count == 0)
            {
                DataModel.EmptyTipDic = tabIdx + 100000900;
            }
            else
            {
                DataModel.EmptyTipDic = -1;
            }
        }
        DataModel.IsShowTimeLimitNotice = isShowTimeLimitNotice;
        if (isInit)
        {
            var rewards = DataModel.Rewards;
            var reward  = rewards.Cast <DailyActivityCell>().FirstOrDefault(r => r.IsShowNotice);
            playerData.NoticeData.DailyActivityFlag = DataModel.IsShowTimeLimitNotice || DataModel.IsShowDailyNotice ||
                                                      (reward != null);
        }
    }
Exemple #6
0
    private void RefreshCells(int tabIdx, bool isInit = false)
    {
        if (tabIdx == (int)PlayFrameTab.TimedActivity)
        {
            RefreshTimeLimitedActivity();
            return;
        }

        List <DailyActivityRecord> records;

        if (!DailyActs.TryGetValue(tabIdx, out records))
        {
            return;
        }

        var cells = new List <PlayFrameCellData>();

        foreach (var record in records)
        {
            var args = new CreateCellDataArgs();
            args.nowCount = 0;
            args.maxCount = 0;
            args.state    = ActivityCellState.Start;
            args.textId   = 100000613; //参加
            var cell = CreateCellData(record, args);
            cells.Add(cell);

            if (tabIdx == (int)PlayFrameTab.AboutToOpen)
            {
                cell.State  = (int)ActivityCellState.WillStart;
                cell.Reason = record.Desc;
            }
            if (cell.BtnId == -1)
            {
                switch (cell.State)
                {
                case 0:
                case 2:
                    cell.BtnId = 1;
                    break;

                case 1:
                    cell.BtnId = 2;
                    break;

                case 3:
                    cell.BtnId = 3;
                    break;
                }
            }
        }

        cells.Sort((l, r) =>
        {
            if (l.State < r.State)
            {
                return(-1);
            }
            if (l.State > r.State)
            {
                return(1);
            }

            if (l.SortPriority < r.SortPriority)
            {
                return(-1);
            }
            if (l.SortPriority > r.SortPriority)
            {
                return(1);
            }

            return(0);
        });
        DataModel.Cells = new ObservableCollection <PlayFrameCellData>(cells);

        if (cells.Count == 0)
        {
            DataModel.EmptyTipDic = tabIdx + 100000900;
        }
        else
        {
            DataModel.EmptyTipDic = -1;
        }

        if (tabIdx == (int)PlayFrameTab.DailyActivity)
        {
            var count = cells.Count(c => c.State == (int)ActivityCellState.Start);
            DataModel.IsShowDailyNotice = count > 0;
            if (isInit)
            {
                var rewards = DataModel.Rewards;
                var reward  = rewards.Cast <DailyActivityCell>().FirstOrDefault(r => r.IsShowNotice);
                PlayerDataManager.Instance.NoticeData.DailyActivityFlag = DataModel.IsShowTimeLimitNotice ||
                                                                          DataModel.IsShowDailyNotice || reward != null;
            }
        }
    }