From d6149f77b352c51e042c9dcda729e4b9b24f3c87 Mon Sep 17 00:00:00 2001
From: client_Zxw <826696702@qq.com>
Date: 星期三, 13 二月 2019 16:34:40 +0800
Subject: [PATCH] 2995 【1.6】七日巡礼只领取一个大奖红点不消失

---
 System/OpenServerActivity/OpenServiceAchievementModel.cs |   55 +++++++++++++++++++++++++++++++++++--------------------
 1 files changed, 35 insertions(+), 20 deletions(-)

diff --git a/System/OpenServerActivity/OpenServiceAchievementModel.cs b/System/OpenServerActivity/OpenServiceAchievementModel.cs
index 1d5af20..e088ded 100644
--- a/System/OpenServerActivity/OpenServiceAchievementModel.cs
+++ b/System/OpenServerActivity/OpenServiceAchievementModel.cs
@@ -104,7 +104,7 @@
     }
     public override void Init()
     {
-       
+
     }
 
     public void OnBeforePlayerDataInitialize()
@@ -155,17 +155,17 @@
             WeekPartyDayInfoClass WeekPartyDayInfo = new WeekPartyDayInfoClass();
             WeekPartyDayInfo.DayIndex = (int)DayInfo.DayIndex;
             WeekPartyDayInfo.Point = (int)DayInfo.Point;
-            WeekPartyDayInfo.AwardRecord = (int)DayInfo.AwardRecord;      
+            WeekPartyDayInfo.AwardRecord = (int)DayInfo.AwardRecord;
             if (WeekPartyDayInfoDic.ContainsKey((int)DayInfo.DayIndex))
             {
                 var dit = WeekPartyDayInfoDic[(int)DayInfo.DayIndex];
-                dit.DayIndex= (int)DayInfo.DayIndex; 
-                dit.Point = (int)DayInfo.Point; 
-                dit.AwardRecord= (int)DayInfo.AwardRecord;
+                dit.DayIndex = (int)DayInfo.DayIndex;
+                dit.Point = (int)DayInfo.Point;
+                dit.AwardRecord = (int)DayInfo.AwardRecord;
                 for (int j = 0; j < DayInfo.ACount; j++)
                 {
                     var taskList = DayInfo.TaskList[j];
-                   int Index = dit.ActionType.FindIndex(s=>s.TemplateID== taskList.TemplateID);
+                    int Index = dit.ActionType.FindIndex(s => s.TemplateID == taskList.TemplateID);
                     if (Index != -1)
                     {
                         dit.ActionType[Index].CurTimes = (int)taskList.CurTimes;
@@ -302,7 +302,7 @@
     }
     public int GetRewardNumber(int Day, int ID)//鑾峰彇棰嗗娆℃暟
     {
-        int Num =0;
+        int Num = 0;
         if (WeekPartyDayInfoDic.ContainsKey(Day))
         {
             var WeekPartyDay = WeekPartyDayInfoDic[Day];
@@ -364,7 +364,7 @@
         {
             hour = 5;
         }
-        DateTime time1 = new DateTime(time.Year, time.Month, time.Day, hour,0,0);
+        DateTime time1 = new DateTime(time.Year, time.Month, time.Day, hour, 0, 0);
         DateTime time2 = new DateTime(TimeUtility.ServerNow.Year, TimeUtility.ServerNow.Month, TimeUtility.ServerNow.Day, TimeUtility.ServerNow.Hour, TimeUtility.ServerNow.Minute, TimeUtility.ServerNow.Second);
         TimeSpan ts = time2.Subtract(time1);
         Day = (int)ts.TotalDays;
@@ -372,8 +372,8 @@
         {
             Day = 0;
         }
-       // DebugEx.LogError("杈撳嚭褰撳墠鐨勫ぉ鏁�" + Day);
-        if (DayNow != Day && Day<7)
+        // DebugEx.LogError("杈撳嚭褰撳墠鐨勫ぉ鏁�" + Day);
+        if (DayNow != Day && Day < 7)
         {
             DayNow = Day;
             if (WeekPartyDayInfoUpdate != null)
@@ -381,7 +381,7 @@
                 WeekPartyDayInfoUpdate();
             }
         }
-        
+
     }
 
     public void SendGetWeekParty(int day, int temdayplateID)//棰嗗彇鍛ㄧ媯娆㈡椿鍔ㄥ鍔�
@@ -446,10 +446,10 @@
         }
 
     }
-
+    List<WeekPartyItemClass> List = new List<WeekPartyItemClass>();
     private RedPointState SetRedPointState(int day)//绾㈢偣鐘舵�佽缃�
     {
-        if (!WeekPartyDayDic.ContainsKey(day) || !WeekPartyDayInfoDic.ContainsKey(day)|| day>DayNow)
+        if (!WeekPartyDayDic.ContainsKey(day) || !WeekPartyDayInfoDic.ContainsKey(day) || day > DayNow)
         {
             return RedPointState.None;
         }
@@ -462,9 +462,17 @@
                 WeekPartyDay = WeekPartyDayDic[key];
             }
         }
-        for (int i = 0; i < WeekPartyDay.WeekPartyItem.Length; i++)//绉垎濂栧姳
+        List.Clear();
+        for (int i = 0; i < WeekPartyDay.WeekPartyItem.Length; i++)
         {
             var item = WeekPartyDay.WeekPartyItem[i];
+            List.Add(item);
+        }
+        List.Sort(Compare);
+
+        for (int i = 0; i < List.Count; i++)//绉垎濂栧姳
+        {
+            var item = List[i];
             int type = i;
             bool IsBool = IsDayReward(day, type);
             if (point >= item.NeedPoint && !IsBool)
@@ -494,8 +502,15 @@
         }
         return RedPointState.None;
     }
-
-    public  int GetWeekDay(int dayIndex)//鑾峰彇鍛ㄥ嚑
+    int Compare(WeekPartyItemClass x, WeekPartyItemClass y)//鏁扮粍鎺掑垪
+    {
+        if (x.NeedPoint.CompareTo(y.NeedPoint) != 0)
+        {
+            return x.NeedPoint.CompareTo(y.NeedPoint);
+        }
+        return 1;
+    }
+    public int GetWeekDay(int dayIndex)//鑾峰彇鍛ㄥ嚑
     {
         int weekDay = 1;
         var time = TimeDayBeginAndOver[0];
@@ -504,7 +519,7 @@
             return weekDay;
         }
         DateTime time1 = new DateTime(time.Year, time.Month, time.Day);
-       var time2= time1.AddDays(dayIndex);
+        var time2 = time1.AddDays(dayIndex);
         var dt = time2.DayOfWeek.ToString();
         switch (dt)
         {
@@ -533,7 +548,7 @@
         return weekDay;
     }
 
-    public void  GetIsOpen()
+    public void GetIsOpen()
     {
         var time1 = TimeDayBeginAndOver[0];
         var time2 = TimeDayBeginAndOver[1];
@@ -550,9 +565,9 @@
         {
             hour = 5;
         }
-        DateTime timeStar = new DateTime(time1.Year, time1.Month, time1.Day, hour,0,0);
+        DateTime timeStar = new DateTime(time1.Year, time1.Month, time1.Day, hour, 0, 0);
         DateTime timeEnd = new DateTime(time2.Year, time2.Month, time2.Day, hour, 0, 0);
-        DateTime timeNow= new DateTime(TimeUtility.ServerNow.Year, TimeUtility.ServerNow.Month, TimeUtility.ServerNow.Day, TimeUtility.ServerNow.Hour, TimeUtility.ServerNow.Minute, TimeUtility.ServerNow.Second);
+        DateTime timeNow = new DateTime(TimeUtility.ServerNow.Year, TimeUtility.ServerNow.Month, TimeUtility.ServerNow.Day, TimeUtility.ServerNow.Hour, TimeUtility.ServerNow.Minute, TimeUtility.ServerNow.Second);
         int PlayerLv = PlayerDatas.Instance.baseData.LV;
         if (PlayerLv >= LimitLV && timeNow >= timeStar && timeNow < timeEnd && !isOpenNow)
         {

--
Gitblit v1.8.0