少年修仙传客户端代码仓库
client_Zxw
2019-01-08 cc5dac1925b4b2dcf6cac03eff123d53cf77238f
5767 【前端】【1.5】新增8-14天活动功能(制作成7日运营活动的模板)
3个文件已修改
221 ■■■■ 已修改文件
System/OpenServerActivity/OpenServiceAchievementCell.cs 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/OpenServerActivity/OpenServiceAchievementModel.cs 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/OpenServerActivity/OpenServiceAchievementWin.cs 118 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/OpenServerActivity/OpenServiceAchievementCell.cs
@@ -36,8 +36,8 @@
                return;
            }
            var WeekPartyAction = model.WeekPartyActionDic[ID];
            int rewardNum = GetRewardNumber(model.SelectedNow, ID);//已领奖次数
            int carryOutNum = GetCarryOutNum(model.SelectedNow, ID);//已完成次数
            int rewardNum = model.GetRewardNumber(model.SelectedNow, ID);//已领奖次数
            int carryOutNum = model.GetCarryOutNum(model.SelectedNow, ID);//已完成次数
            int number = WeekPartyAction.TotalTimes / WeekPartyAction.SingleTimes;
            if (number - rewardNum > 0)
            {
@@ -151,44 +151,6 @@
            }
        }
        private int GetRewardNumber(int Day, int ID)//获取领奖次数
        {
            int Num = -1;
            if (model.WeekPartyDayInfoDic.ContainsKey(Day))
            {
                var WeekPartyDay = model.WeekPartyDayInfoDic[Day];
                for (int i = 0; i < WeekPartyDay.ActionType.Length; i++)
                {
                    var ActionType = WeekPartyDay.ActionType[i];
                    if (ID == ActionType.TemplateID)
                    {
                        Num = ActionType.GotTimes;
                    }
                }
            }
            return Num;
        }
        public int GetCarryOutNum(int Day, int ID)//获取已完成次数
        {
            int Num = -1;
            if (model.WeekPartyDayInfoDic.ContainsKey(Day))
            {
                var WeekPartyDay = model.WeekPartyDayInfoDic[Day];
                for (int i = 0; i < WeekPartyDay.ActionType.Length; i++)
                {
                    var ActionType = WeekPartyDay.ActionType[i];
                    if (ID == ActionType.TemplateID)
                    {
                        Num = ActionType.CurTimes;
                    }
                }
            }
            return Num;
        }
    }
}
System/OpenServerActivity/OpenServiceAchievementModel.cs
@@ -71,7 +71,7 @@
        set { _SelectedNow = value; }
    }
    private int _DayNow=0;
    private int _DayNow = 0;
    public int DayNow//当前天
    {
        get { return _DayNow; }
@@ -124,6 +124,7 @@
                WeekPartyDayInfoDic.Add((int)DayInfo.DayIndex, WeekPartyDayInfo);
            }
        }
        GetDayNow();//获取当前天数
        if (WeekPartyDayInfoUpdate != null)
        {
            WeekPartyDayInfoUpdate();
@@ -217,6 +218,64 @@
        {
            WeekPartyUpdate();
        }
    }
    public int GetRewardNumber(int Day, int ID)//获取领奖次数
    {
        int Num = -1;
        if (WeekPartyDayInfoDic.ContainsKey(Day))
        {
            var WeekPartyDay = WeekPartyDayInfoDic[Day];
            for (int i = 0; i < WeekPartyDay.ActionType.Length; i++)
            {
                var ActionType = WeekPartyDay.ActionType[i];
                if (ID == ActionType.TemplateID)
                {
                    Num = ActionType.GotTimes;
                }
            }
        }
        return Num;
    }
    public int GetCarryOutNum(int Day, int ID)//获取已完成次数
    {
        int Num = -1;
        if (WeekPartyDayInfoDic.ContainsKey(Day))
        {
            var WeekPartyDay = WeekPartyDayInfoDic[Day];
            for (int i = 0; i < WeekPartyDay.ActionType.Length; i++)
            {
                var ActionType = WeekPartyDay.ActionType[i];
                if (ID == ActionType.TemplateID)
                {
                    Num = ActionType.CurTimes;
                }
            }
        }
        return Num;
    }
    public int GetPoint(int day)//获取某一天的积分
    {
        int Point = 0;
        if (WeekPartyDayInfoDic.ContainsKey(day))
        {
            Point = WeekPartyDayInfoDic[day].Point;
        }
        return Point;
    }
    public void GetDayNow()//获取活动第几天
    {
        int Day = 0;
        var time = TimeDayBeginAndOver[0];
        DateTime time1 = new DateTime(time.Year, time.Month, time.Day);
        DateTime time2 = new DateTime(TimeUtility.ServerNow.Year, TimeUtility.ServerNow.Month, TimeUtility.ServerNow.Day);
        TimeSpan ts = time2.Subtract(time1);
        Day = (int)ts.TotalDays;
        DayNow = Day;
    }
}
System/OpenServerActivity/OpenServiceAchievementWin.cs
@@ -21,6 +21,7 @@
        private int InDay;
        #region Built-in
        OpenServiceAchievementModel model { get { return ModelCenter.Instance.GetModel<OpenServiceAchievementModel>(); } }
        List<int> SortList = new List<int>();
        protected override void BindController()
        {
            m_ScrollerController1.OnRefreshCell += OnRefreshGridCell_1;
@@ -40,14 +41,22 @@
        protected override void OnAfterOpen()
        {
            model.WeekPartyDayInfoUpdate += WeekPartyDayInfoUpdate;
        }
        protected override void OnPreClose()
        {
        }
        {
            model.WeekPartyDayInfoUpdate -= WeekPartyDayInfoUpdate;
        }
        protected override void OnAfterClose()
        {
        }
        private void WeekPartyDayInfoUpdate()//列表刷新
        {
            m_ScrollerController2.m_Scorller.RefreshActiveCellViews();//刷新可见
        }
        #endregion
        void OnCreateGridLineCell1(ScrollerController gridCtrl)
@@ -83,6 +92,7 @@
                {
                    InDay = Index;
                    model.SelectedNow = InDay;//选中天
                    OnCreateGridLineCell2(m_ScrollerController2);
                    m_ScrollerController1.m_Scorller.RefreshActiveCellViews();//刷新可见
                }
            });
@@ -110,6 +120,7 @@
        //-------------------------------
        void OnCreateGridLineCell2(ScrollerController gridCtrl)
        {
            ToAddSorting();//排序
            gridCtrl.Refresh();
            for (int i = 0; i < 8; i++)
            {
@@ -122,6 +133,107 @@
           
        }
        private void ToAddSorting()
        {
            SortList.Clear();
            foreach (var key in model.WeekPartyDayDic.Keys)
            {
                if (key == model.SelectedNow)
                {
                    for (int i = 0; i < model.WeekPartyDayDic[key].TemplateList.Length; i++)
                    {
                        SortList.Add(model.WeekPartyDayDic[key].TemplateList[i]);
                    }
                }
            }
            SortList.Sort(Compare);
        }
        int Compare(int x, int y)//数组排列
        {
            bool havex1 = IsReceive(x);
            bool havey1 = IsReceive(y);
            if (havex1.CompareTo(havey1) != 0)
            {
                return -havex1.CompareTo(havey1);
            }
            bool havex2 = Undone(x);
            bool havey2 = Undone(y);
            if (havex2.CompareTo(havey2) != 0)
            {
                return -havex2.CompareTo(havey2);
            }
            bool havex3 = Completed(x);
            bool havey3 = Completed(y);
            if (havex3.CompareTo(havey3) != 0)
            {
                return -havex3.CompareTo(havey3);
            }
            int havex4 = SizeId(x);
            int havey4 = SizeId(y);
            if (havex4.CompareTo(havey4) != 0)
            {
                return havex4.CompareTo(havey4);
            }
            return 1;
        }
        private bool IsReceive(int ID)//可领取
        {
            bool Bool = false;
            if (model.WeekPartyActionDic.ContainsKey(ID))
            {
                var WeekPartyAction = model.WeekPartyActionDic[ID];
                int number = WeekPartyAction.TotalTimes / WeekPartyAction.SingleTimes;
                int rewardNum = model.GetRewardNumber(model.SelectedNow, ID);//已领奖次数
                int carryOutNum = model.GetCarryOutNum(model.SelectedNow, ID);//已完成次数
                if (carryOutNum >= WeekPartyAction.SingleTimes && number > rewardNum)
                {
                    Bool = true;
                }
            }
            return Bool;
        }
        private bool Undone(int ID)//未完成
        {
            bool Bool = false;
            if (model.WeekPartyActionDic.ContainsKey(ID))
            {
                var WeekPartyAction = model.WeekPartyActionDic[ID];
                int number = WeekPartyAction.TotalTimes / WeekPartyAction.SingleTimes;
                int rewardNum = model.GetRewardNumber(model.SelectedNow, ID);//已领奖次数
                int carryOutNum = model.GetCarryOutNum(model.SelectedNow, ID);//已完成次数
                if (WeekPartyAction.SingleTimes > carryOutNum)
                {
                    Bool = true;
                }
            }
            return Bool;
        }
        private bool Completed(int ID)//已领取
        {
            bool Bool = false;
            if (model.WeekPartyActionDic.ContainsKey(ID))
            {
                var WeekPartyAction = model.WeekPartyActionDic[ID];
                int number = WeekPartyAction.TotalTimes / WeekPartyAction.SingleTimes;
                int rewardNum = model.GetRewardNumber(model.SelectedNow, ID);//已领奖次数
                int carryOutNum = model.GetCarryOutNum(model.SelectedNow, ID);//已完成次数
                if (rewardNum> number)
                {
                    Bool = true;
                }
            }
            return Bool;
        }
        private int SizeId(int ID)
        {
            int index = 1;
            var config = Config.Instance.Get<WeekPartyConfig>(ID);
            if (config != null)
            {
                index = config.order;
            }
            return index;
        }
    }
}