From 333be95a8c982bfda2c4a41a0a8d78a14f6512ed Mon Sep 17 00:00:00 2001
From: client_Zxw <826696702@qq.com>
Date: 星期三, 13 二月 2019 15:12:27 +0800
Subject: [PATCH] 5314 子 【1.6】登录奖励活动

---
 Core/GameEngine/Model/ConfigManager.cs                 |    2 
 System/OpenServerActivity/LoginRewardWin.cs            |  134 +++++++++++++-
 System/OpenServerActivity/ImpactRankModel.cs           |    2 
 System/OpenServerActivity/OpenServerActivityWin.cs     |    5 
 Core/GameEngine/Model/Config/LoginRewardConfig.cs      |   56 ++++++
 Core/GameEngine/Model/Config/LoginRewardConfig.cs.meta |   12 +
 System/OpenServerActivity/EntryInformationCell.cs      |  175 ++++++++++++++++++-
 System/OpenServerActivity/LoginRewardModel.cs          |  114 +++++++++++-
 8 files changed, 469 insertions(+), 31 deletions(-)

diff --git a/Core/GameEngine/Model/Config/LoginRewardConfig.cs b/Core/GameEngine/Model/Config/LoginRewardConfig.cs
new file mode 100644
index 0000000..1c618db
--- /dev/null
+++ b/Core/GameEngine/Model/Config/LoginRewardConfig.cs
@@ -0,0 +1,56 @@
+锘�//--------------------------------------------------------
+//    [Author]:			绗簩涓栫晫
+//    [  Date ]:		   Wednesday, February 13, 2019
+//--------------------------------------------------------
+
+using UnityEngine;
+using System;
+
+namespace TableConfig {
+
+    
+	public partial class LoginRewardConfig : ConfigBase {
+
+		public int Id { get ; private set ; }
+		public int ActionType { get ; private set ; }
+		public string Description { get ; private set; } 
+		public int jump { get ; private set ; }
+		public int order { get ; private set ; }
+		public int DailyQusetId { get ; private set ; }
+		public int SpecialDisplayType { get ; private set ; }
+
+		public override string getKey()
+        {
+            return Id.ToString();
+        }
+
+		public override void Parse() {
+			try
+            {
+                Id=IsNumeric(rawContents[0]) ? int.Parse(rawContents[0]):0; 
+			
+				ActionType=IsNumeric(rawContents[1]) ? int.Parse(rawContents[1]):0; 
+			
+				Description = rawContents[2].Trim();
+			
+				jump=IsNumeric(rawContents[3]) ? int.Parse(rawContents[3]):0; 
+			
+				order=IsNumeric(rawContents[4]) ? int.Parse(rawContents[4]):0; 
+			
+				DailyQusetId=IsNumeric(rawContents[5]) ? int.Parse(rawContents[5]):0; 
+			
+				SpecialDisplayType=IsNumeric(rawContents[6]) ? int.Parse(rawContents[6]):0; 
+            }
+            catch (Exception ex)
+            {
+                DebugEx.Log(ex);
+            }
+		}
+	
+	}
+
+}
+
+
+
+
diff --git a/Core/GameEngine/Model/Config/LoginRewardConfig.cs.meta b/Core/GameEngine/Model/Config/LoginRewardConfig.cs.meta
new file mode 100644
index 0000000..05f9a8c
--- /dev/null
+++ b/Core/GameEngine/Model/Config/LoginRewardConfig.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 20bbea206a1a28d428792f768452039b
+timeCreated: 1550027145
+licenseType: Pro
+MonoImporter:
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Core/GameEngine/Model/ConfigManager.cs b/Core/GameEngine/Model/ConfigManager.cs
index 83344de..f33bb0d 100644
--- a/Core/GameEngine/Model/ConfigManager.cs
+++ b/Core/GameEngine/Model/ConfigManager.cs
@@ -236,7 +236,7 @@
         AddAsyncTask<FestivalRedpackTaskConfig>();
         AddAsyncTask<HolidayHomingConfig>();
         AddAsyncTask<HolidayHomingPointConfig>();
-       
+        AddAsyncTask<LoginRewardConfig>();
         while (!AllCompleted())
         {
             var completedCount = 0;
diff --git a/System/OpenServerActivity/EntryInformationCell.cs b/System/OpenServerActivity/EntryInformationCell.cs
index facf3be..874d50f 100644
--- a/System/OpenServerActivity/EntryInformationCell.cs
+++ b/System/OpenServerActivity/EntryInformationCell.cs
@@ -5,6 +5,7 @@
 using UnityEngine;
 using System.Collections;
 using UnityEngine.UI;
+using TableConfig;
 
 namespace Snxxz.UI {
     [XLua.Hotfix]
@@ -12,19 +13,175 @@
         [SerializeField] ItemCell m_ItemCell;
         [SerializeField] Text m_Text1;
         [SerializeField] Text m_Text2;
-        [SerializeField] Button m_Button;
-        [SerializeField] Text m_ButtonText;
+        [SerializeField] Button m_Btn;
+        [SerializeField] Text m_BtnText;
+        [SerializeField] GameObject m_Miss;//閿欒繃
+        [SerializeField] GameObject m_Reach;//鏈揪鎴�
+        [SerializeField] GameObject m_Draw;//宸查鍙�
         LoginRewardModel m_LoginRewardModel;
-        LoginRewardModel loginRewardModel { get { return m_LoginRewardModel ?? (m_LoginRewardModel = ModelCenter.Instance.GetModel<LoginRewardModel>()); } }
-        public Button mButton
-        {
-            get { return m_Button; }
-            set { m_Button = value; }
-        }
-
+        LoginRewardModel loginRewardModel { get { return m_LoginRewardModel ?? (m_LoginRewardModel = ModelCenter.Instance.GetModel<LoginRewardModel>()); } }
+        ItemTipsModel m_itemTipsModel;
+        ItemTipsModel itemTipsModel { get { return m_itemTipsModel ?? (m_itemTipsModel = ModelCenter.Instance.GetModel<ItemTipsModel>()); } }
         public void GetDisplayInformation(int id)
         {
+            var config = Config.Instance.Get<LoginRewardConfig>(id);
+            if (config == null)
+            {
+                DebugEx.LogError("鐧诲綍濂栧姳琛ㄦ病鏈夋ID"+id);
+                return;
+            }
+            if (!loginRewardModel.LoginAwardDic.ContainsKey(id))
+            {
+                DebugEx.LogError("鐧诲綍鏉$洰瀛楀吀鏌ユ棤娆D" + id);
+                return;
+            }
+            var LoginAward = loginRewardModel.LoginAwardDic[id];
+            int rewardNum = loginRewardModel.GetRewardNumber(loginRewardModel.SelectedNow, id);//宸查濂栨鏁�
+            int carryOutNum = loginRewardModel.GetCarryOutNum(loginRewardModel.SelectedNow, id);//宸插畬鎴愭鏁�
+            int number = LoginAward.TotalTimes / LoginAward.SingleTimes;
+            var RemainingNum = 0;
+            if (LoginAward.TotalTimes - rewardNum > 0)
+            {
+                RemainingNum = (LoginAward.TotalTimes - rewardNum) / LoginAward.SingleTimes;
+            }
+            if (LoginAward.TotalTimes - carryOutNum > 0 && RemainingNum > 0)
+            {
+                m_Text2.text = Language.Get("OSA_1", RemainingNum);
+            }
+            else
+            {
+                m_Text2.text = Language.Get("OSA_4");
+            }
+            if (LoginAward.WeekPartyItem.Length >= 0)
+            {
+                var Item = LoginAward.WeekPartyItem[0];
+                ItemCellModel cellModel = new ItemCellModel(Item.ItemID, true, (ulong)Item.ItemCnt, Item.IsBind);
+                m_ItemCell.Init(cellModel);
+                m_ItemCell.cellBtn.SetListener(() =>
+                {
+                    ItemAttrData attrData = new ItemAttrData(Item.ItemID, false, (ulong)Item.ItemCnt, -1, Item.IsBind);
+                    itemTipsModel.SetItemTipsModel(attrData);
+                });
+            }
+            bool IsOpenPreviewTime = OperationTimeHepler.Instance.SatisfyAdvanceCondition(Operation.LoginReward);
+            if (loginRewardModel.SelectedNow != loginRewardModel.DayNow || IsOpenPreviewTime)
+            {
+                if (loginRewardModel.SelectedNow > loginRewardModel.DayNow || IsOpenPreviewTime)//杩樻湭鍒拌揪鐨勫ぉ鏁�
+                {
+                    m_Btn.gameObject.SetActive(false);
+                    m_Miss.SetActive(false);
+                    m_Reach.SetActive(false);
+                    m_Draw.SetActive(false);
+                }
+                else//宸茶繃鐨勫ぉ鏁�
+                {
+                    int TaypeNumber = 0;
+                    if (carryOutNum - rewardNum > 0)
+                    {
+                        TaypeNumber = (carryOutNum - rewardNum) / LoginAward.SingleTimes;
+                    }
+                    if (TaypeNumber > 0)//鍙
+                    {
 
+                        //m_TextNumber.gameObject.SetActive(true);
+                        //m_TextNumber.text = SetText(ID);
+                        m_Btn.gameObject.SetActive(true);
+                        UIEffect uieffect = m_Btn.GetComponent<UIEffect>();
+                        uieffect.Play();
+                        m_BtnText.text = Language.Get("RealmPractice109");//棰嗗彇
+                        m_Miss.SetActive(false);
+                        m_Reach.SetActive(false);
+                        m_Draw.SetActive(false);
+                        m_Btn.SetListener(() =>
+                        {
+                            bool _bool = loginRewardModel.IsOpenFeatures();
+                            if (_bool)
+                            {
+                                loginRewardModel.SendLoginAwardInfo(loginRewardModel.SelectedNow, id);
+                            }
+                            else
+                            {
+                                SysNotifyMgr.Instance.ShowTip("SevenDayOver2");
+                            }
+                        });
+                    }
+                    else
+                    {
+                        if (rewardNum >= number)//宸茬粡棰嗗畬
+                        {
+                            m_Btn.gameObject.SetActive(false);
+                            m_Miss.SetActive(false);
+                            m_Reach.SetActive(false);
+                            m_Draw.SetActive(true);
+                        }
+                        else//鏈埌杈�
+                        {
+                            m_Btn.gameObject.SetActive(false);
+                            m_Miss.SetActive(false);
+                            m_Reach.SetActive(true);
+                            m_Draw.SetActive(false);
+                        }
+                    }
+                }
+            }
+            else
+            {
+                int TaypeNumber = 0;
+                if (carryOutNum - rewardNum > 0)
+                {
+                    TaypeNumber = (carryOutNum - rewardNum) / LoginAward.SingleTimes;
+                }
+                if (TaypeNumber > 0)//鍙
+                {
+                    //m_TextNumber.gameObject.SetActive(true);
+                    //m_TextNumber.text = SetText(ID);
+                    m_Btn.gameObject.SetActive(true);
+                    UIEffect uieffect = m_Btn.GetComponent<UIEffect>();
+                    uieffect.Play();
+                    m_BtnText.text = Language.Get("RealmPractice109");//棰嗗彇
+                    m_Miss.SetActive(false);
+                    m_Reach.SetActive(false);
+                    m_Draw.SetActive(false);
+                    m_Btn.SetListener(() =>
+                    {
+                        bool _bool = loginRewardModel.IsOpenFeatures();
+                        if (_bool)
+                        {
+                            loginRewardModel.SendLoginAwardInfo(loginRewardModel.SelectedNow, id);
+                        }
+                        else
+                        {
+                            SysNotifyMgr.Instance.ShowTip("SevenDayOver2");
+                        }
+                    });
+                }
+                else
+                {
+                    if (rewardNum >= LoginAward.TotalTimes)//宸茬粡棰嗗畬
+                    {                      
+                        m_Btn.gameObject.SetActive(false);
+                        m_Miss.SetActive(false);
+                        m_Reach.SetActive(false);
+                        m_Draw.SetActive(true);
+                    }
+                    else//鏈埌杈�(鍓嶅線)
+                    {
+                        //m_TextNumber.gameObject.SetActive(true);
+                        //m_TextNumber.text = SetText(ID);
+                        m_Btn.gameObject.SetActive(true);
+                        m_BtnText.text = Language.Get("RealmPractice108");//鍓嶅線
+                        UIEffect uieffect = m_Btn.GetComponent<UIEffect>();
+                        uieffect.Stop();
+                        m_Miss.SetActive(false);
+                        m_Reach.SetActive(false);
+                        m_Draw.SetActive(false);
+                        m_Btn.SetListener(() =>
+                        {
+                            WindowJumpMgr.Instance.WindowJumpTo((JumpUIType)config.jump);
+                        });
+                    }
+                }
+            }
         }
     }
 
diff --git a/System/OpenServerActivity/ImpactRankModel.cs b/System/OpenServerActivity/ImpactRankModel.cs
index 66c0eb6..8979bb5 100644
--- a/System/OpenServerActivity/ImpactRankModel.cs
+++ b/System/OpenServerActivity/ImpactRankModel.cs
@@ -833,6 +833,8 @@
             FestivalRedpack,
             [Header("骞歌繍閴村疂")]
             LuckyTreasure,
+            [Header("鐧诲綍濂栧姳")]
+            LoginReward,
         }
     }
 
diff --git a/System/OpenServerActivity/LoginRewardModel.cs b/System/OpenServerActivity/LoginRewardModel.cs
index 2df55f8..9b62e73 100644
--- a/System/OpenServerActivity/LoginRewardModel.cs
+++ b/System/OpenServerActivity/LoginRewardModel.cs
@@ -8,9 +8,11 @@
 using Snxxz.UI;
 //鐧诲綍濂栧姳
 [XLua.LuaCallCSharp]
-public class LoginRewardModel : Model, IBeforePlayerDataInitialize, IPlayerLoginOk
+public class LoginRewardModel : Model, IBeforePlayerDataInitialize, IPlayerLoginOk, IOpenServerActivity
 {
     public event Action LoginAwardInfoUpdate;//棰嗗璁板綍鍙樻洿 
+    public event Action<int> onStateUpate;
+
     public Dictionary<int, WeekPartyDayInfoClass> LoginAwardInfoDic = new Dictionary<int, WeekPartyDayInfoClass>();//棰嗗淇℃伅
     public Dictionary<int, WeekPartyDayClass> LoginAwardDayDic = new Dictionary<int, WeekPartyDayClass>();//姣忓ぉ鐨勫鍔变俊鎭�
     public Dictionary<int, WeekPartyActionClass> LoginAwardDic = new Dictionary<int, WeekPartyActionClass>();//娲诲姩妯℃澘淇℃伅
@@ -18,12 +20,47 @@
     public int DayNow = 0;//褰撳墠澶�
     public int SelectedNow = 0;//鑾峰彇閫夋嫨澶�
     public int LimitLV = 0;//闄愬埗绛夌骇
-    private const int Redpoint_key = 6666;//鐧诲綍濂栧姳绾㈢偣
-    public Redpoint redPointStre = new Redpoint(666, Redpoint_key);
+    private const int Redpoint_key = 20921;//鐧诲綍濂栧姳绾㈢偣
+    public Redpoint redPointStre = new Redpoint(209, Redpoint_key);
+
+    public bool IsOpen
+    {
+        get
+        {
+            return OperationTimeHepler.Instance.SatisfyOpenCondition(Operation.LoginReward);
+        }
+    }
+
+    public bool IsAdvance
+    {
+        get
+        {
+            return OperationTimeHepler.Instance.SatisfyAdvanceCondition(Operation.LoginReward);
+        }
+    }
+
+    public bool priorityOpen
+    {
+        get
+        {
+            if (redPointStre.state == RedPointState.GetReward || redPointStre.state == RedPointState.Simple)
+            {
+                return true;
+            }
+            else
+            {
+                return false;
+            }
+        }
+    }
+
     public override void Init()
     {
-      
+        OpenServerActivityCenter.Instance.Register(21, this);
+        OperationTimeHepler.Instance.operationEndEvent += OperationEndEvent;
     }
+
+  
 
     public void OnBeforePlayerDataInitialize()
     {
@@ -34,6 +71,45 @@
     {
         GetDay();
         SetRedPoint();
+        OperationTimeHepler.Instance.operationStartEvent -= OperationStartEvent;
+        OperationTimeHepler.Instance.dayResetEvent -= DayResetEvent;
+        OperationTimeHepler.Instance.operationStartEvent += OperationStartEvent;
+        OperationTimeHepler.Instance.dayResetEvent += DayResetEvent;
+    }
+    private void OperationEndEvent(Operation arg1, int arg2)
+    {
+        if (arg1 == Operation.LoginReward  && arg2 == 0)
+        {
+            if (onStateUpate != null)
+            {
+                onStateUpate(21);
+            }
+        }
+    }
+    private void DayResetEvent(int obj)
+    {
+        if (obj == (int)Operation.LoginReward)
+        {
+            GetDay();
+            SetRedPoint();
+            if (onStateUpate != null)
+            {
+                onStateUpate(21);
+            }
+        }
+    }
+
+    private void OperationStartEvent(Operation arg1, int arg2)
+    {
+        if (arg1 == Operation.LoginReward)
+        {
+            GetDay();
+            SetRedPoint();
+            if (arg2 == 0 && onStateUpate != null)
+            {
+                onStateUpate(21);
+            }
+        }
     }
 
     public override void UnInit()
@@ -44,8 +120,8 @@
     public void LoginAwardInfo(HAA0C_tagMCActLoginAwardInfo info)//鐧诲綍濂栧姳娲诲姩淇℃伅
     {
         LimitLV = info.LimitLV;
-        LoginAwardDayDic.Clear();
-        LoginAwardDic.Clear();
+        //LoginAwardDayDic.Clear();
+        //LoginAwardDic.Clear();
         for (int i = 0; i < info.DayCnt; i++)//姣忓ぉ鐨勫鍔变俊鎭�
         {
             int Index = i;
@@ -143,6 +219,7 @@
                 LoginAwardInfoDic.Add(dayindex, loginAwardPlayerClass);
             }
         }
+        GetDay();
         SetRedPoint();
         if (LoginAwardInfoUpdate != null)
         {
@@ -211,7 +288,7 @@
     }
     private void SetRedPointID()//璁剧疆绾㈢偣ID
     {
-        if (RedPointDic.Count > 0)
+        if (RedPointDic.Count >= 7)
         {
             return;
         }
@@ -259,19 +336,36 @@
                     return RedPointState.GetReward;
                 }
             }
-
         }
         return RedPointState.None;
     }
 
-    private void GetDay()
+    public void GetDay()
     {
         OperationBase operationBase;
         if (OperationTimeHepler.Instance.TryGetOperationTime(Operation.LoginReward, out operationBase))
         {
-            DayNow = (operationBase as EventDaysTime).GetInDayNow();
+            int inday = (operationBase as EventDaysTime).GetInDayNow();
+            if (LoginAwardInfoDic.Count <= 0 && inday <= 0)
+            {
+                DayNow = 0;
+            } else if (inday >= 0 && LoginAwardInfoDic.Count > 0 && inday < LoginAwardInfoDic.Count)
+            {
+                DayNow = inday;
+            }
+            else if (LoginAwardInfoDic.Count > 0 && inday >= LoginAwardInfoDic.Count)
+            {
+                DayNow = LoginAwardInfoDic.Count - 1;
+            }
         }
     }
+    public bool IsOpenFeatures()
+    {
+        bool Isbool = false;
+        Isbool = (OperationTimeHepler.Instance.SatisfyOpenCondition(Operation.LoginReward)
+            || OperationTimeHepler.Instance.SatisfyAdvanceCondition(Operation.LoginReward));
+        return Isbool;
+    }
 }
 
 
diff --git a/System/OpenServerActivity/LoginRewardWin.cs b/System/OpenServerActivity/LoginRewardWin.cs
index c353334..bdb77bd 100644
--- a/System/OpenServerActivity/LoginRewardWin.cs
+++ b/System/OpenServerActivity/LoginRewardWin.cs
@@ -6,10 +6,12 @@
 using System;
 using System.Collections;
 using System.Collections.Generic;
+using TableConfig;
 using UnityEngine;
 using UnityEngine.UI;
 
-namespace Snxxz.UI {
+namespace Snxxz.UI
+{
     [XLua.Hotfix]
     public class LoginRewardWin : Window
     {
@@ -32,7 +34,9 @@
 
         protected override void OnPreOpen()
         {
-            ChooseDay();
+            ChooseDay();
+           
+
             OnCreateGridLineCell_1(m_ScrollerController_1);
             OnCreateGridLineCell_2(m_ScrollerController_2);
             if (loginRewardModel.SelectedNow >= 3)
@@ -42,7 +46,9 @@
         }
 
         protected override void OnAfterOpen()
-        {
+        {
+            OperationTimeHepler.Instance.operationStartEvent += OperationStartEvent;
+            OperationTimeHepler.Instance.dayResetEvent += DayResetEvent;
             loginRewardModel.LoginAwardInfoUpdate += LoginAwardInfoUpdate;
         }
 
@@ -52,11 +58,34 @@
 
         protected override void OnAfterClose()
         {
+            OperationTimeHepler.Instance.operationStartEvent -= OperationStartEvent;
+            OperationTimeHepler.Instance.dayResetEvent -= DayResetEvent;
             loginRewardModel.LoginAwardInfoUpdate -= LoginAwardInfoUpdate;
+        }
+
+        private void OperationStartEvent(Operation arg1, int arg2)
+        {
+            if (arg1 == Operation.LoginReward)
+            {
+                loginRewardModel.GetDay();
+                m_ScrollerController_1.m_Scorller.RefreshActiveCellViews();//鍒锋柊鍙
+                m_ScrollerController_2.m_Scorller.RefreshActiveCellViews();//鍒锋柊鍙
+            }
+        }
+
+        private void DayResetEvent(int obj)
+        {
+            if (obj == (int)Operation.LoginReward)
+            {
+                loginRewardModel.GetDay();
+                m_ScrollerController_1.m_Scorller.RefreshActiveCellViews();//鍒锋柊鍙
+                m_ScrollerController_2.m_Scorller.RefreshActiveCellViews();//鍒锋柊鍙
+            }
         }
 
         private void LoginAwardInfoUpdate()
         {
+            loginRewardModel.GetDay();
             m_ScrollerController_1.m_Scorller.RefreshActiveCellViews();
             m_ScrollerController_2.m_Scorller.RefreshActiveCellViews();
         }
@@ -75,7 +104,7 @@
             int Index = cell.index;
             LogInDayNumber logInDayNumber = cell.GetComponent<LogInDayNumber>();
             logInDayNumber.SetInDayNumber(Index, loginRewardModel.SelectedNow);
-            logInDayNumber.DayNumberBtn.SetListener(()=> 
+            logInDayNumber.DayNumberBtn.SetListener(() =>
             {
                 if (loginRewardModel.SelectedNow != Index)
                 {
@@ -87,10 +116,11 @@
         }
         void OnCreateGridLineCell_2(ScrollerController gridCtrl)
         {
+            ToAddSorting();
             gridCtrl.Refresh();
-            for (int i = 0; i < 10; i++)
+            for (int i = 0; i < SortList.Count; i++)
             {
-                gridCtrl.AddCell(ScrollerDataType.Header, i);
+                gridCtrl.AddCell(ScrollerDataType.Header, SortList[i]);
             }
             gridCtrl.Restart();
         }
@@ -98,11 +128,7 @@
         {
             int Index = cell.index;
             EntryInformationCell entryInformationCell = cell.GetComponent<EntryInformationCell>();
-            entryInformationCell.GetDisplayInformation(1);
-            entryInformationCell.mButton.SetListener(()=> 
-            {
-               // m_ScrollerController_2.m_Scorller.RefreshActiveCellViews();//鍒锋柊鍙
-            });
+            entryInformationCell.GetDisplayInformation(Index);
         }
         public void ChooseDay()//閫夋嫨澶�
         {
@@ -137,7 +163,93 @@
         }
         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 (loginRewardModel.LoginAwardDic.ContainsKey(ID))
+            {
+                var loginAward = loginRewardModel.LoginAwardDic[ID];
+                int number = loginAward.TotalTimes / loginAward.SingleTimes;
+                int rewardNum = loginRewardModel.GetRewardNumber(loginRewardModel.SelectedNow, ID);//宸查濂栨鏁�
+                int carryOutNum = loginRewardModel.GetCarryOutNum(loginRewardModel.SelectedNow, ID);//宸插畬鎴愭鏁�
+                int TaypeNumber = 0;
+                if (carryOutNum - rewardNum > 0)
+                {
+                    TaypeNumber = (carryOutNum - rewardNum) / loginAward.SingleTimes;
+                }
+                if (TaypeNumber > 0)
+                {
+                    Bool = true;
+                }
+            }
+            return Bool;
+        }
+        private bool Undone(int ID)//鏈畬鎴�
+        {
+            bool Bool = false;
+            if (loginRewardModel.LoginAwardDic.ContainsKey(ID))
+            {
+                var loginAward = loginRewardModel.LoginAwardDic[ID];
+                int number = loginAward.TotalTimes / loginAward.SingleTimes;
+                int rewardNum = loginRewardModel.GetRewardNumber(loginRewardModel.SelectedNow, ID);//宸查濂栨鏁�
+                int carryOutNum = loginRewardModel.GetCarryOutNum(loginRewardModel.SelectedNow, ID);//宸插畬鎴愭鏁�
+                if (loginAward.TotalTimes > rewardNum)
+                {
+                    Bool = true;
+                }
+            }
+            return Bool;
+        }
+        private bool Completed(int ID)//宸查鍙�
+        {
+            bool Bool = false;
+            if (loginRewardModel.LoginAwardDic.ContainsKey(ID))
+            {
+                var loginAward = loginRewardModel.LoginAwardDic[ID];
+                int rewardNum = loginRewardModel.GetRewardNumber(loginRewardModel.SelectedNow, ID);//宸查濂栨鏁�
+                int carryOutNum = loginRewardModel.GetCarryOutNum(loginRewardModel.SelectedNow, ID);//宸插畬鎴愭鏁�
+                if (rewardNum >= loginAward.TotalTimes)
+                {
+                    Bool = true;
+                }
+            }
+            return Bool;
+        }
+        private int SizeId(int ID)
+        {
+            int index = 1;
+            var config = Config.Instance.Get<LoginRewardConfig>(ID);
+            if (config != null)
+            {
+                index = config.order;
+            }
+            return index;
         }
     }
 
diff --git a/System/OpenServerActivity/OpenServerActivityWin.cs b/System/OpenServerActivity/OpenServerActivityWin.cs
index ef8a111..ea0ee8d 100644
--- a/System/OpenServerActivity/OpenServerActivityWin.cs
+++ b/System/OpenServerActivity/OpenServerActivityWin.cs
@@ -633,6 +633,11 @@
                 case 19:
                     WindowCenter.Instance.Open<FestivalRedpackWin>(true);
                     break;
+                case 20:
+                    break;
+                case 21:
+                    WindowCenter.Instance.Open<LoginRewardWin>(true);
+                    break;
             }
         }
 

--
Gitblit v1.8.0