From f2fe52bc5ae4a2a520794d350dd65c1b8155eff3 Mon Sep 17 00:00:00 2001
From: client_Zxw <826696702@qq.com>
Date: 星期六, 10 十一月 2018 16:24:19 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.0.87:10010/r/snxxz_scripts

---
 System/OpenServerActivity/AccumulateRechargeWin.cs |   77 +++++++++++++++++++++++++++++++++-----
 1 files changed, 66 insertions(+), 11 deletions(-)

diff --git a/System/OpenServerActivity/AccumulateRechargeWin.cs b/System/OpenServerActivity/AccumulateRechargeWin.cs
index 3810d0d..09d2e7a 100644
--- a/System/OpenServerActivity/AccumulateRechargeWin.cs
+++ b/System/OpenServerActivity/AccumulateRechargeWin.cs
@@ -34,6 +34,11 @@
         {
             get { return ModelCenter.Instance.GetModel<AccumulateRechargeModel>(); }
         }
+
+        PlayerPackModel packModel
+        {
+            get { return ModelCenter.Instance.GetModel<PlayerPackModel>(); }
+        }
         #region Built-in
         protected override void BindController()
         {
@@ -48,19 +53,15 @@
 
         protected override void OnPreOpen()
         {
-            model.selectIndex = 0;
+            model.selectIndex = GetSelect();
             model.selectUpdate += SelectUpdate;
             model.accumulateRechargeUpdate += AccumulateRechargeUpdate;
             OperationTimeHepler.Instance.dayResetEvent += DayResetEvent;
             TimeUtility.OnServerOpenDayRefresh += OnServerOpenDayRefresh;
             OperationTimeHepler.Instance.operationEndEvent += OperationEndEvent;
+            OperationTimeHepler.Instance.operationStartEvent += OperationStartEvent;
 
-            DisplayMoney(model.selectIndex);
-            DisplayItems(model.selectIndex);
-            DisplayFunc(model.selectIndex);
-            DisplayRecharge();
-            DisplayRewards();
-            DisplayTime();
+            Dipslay();
         }
 
         protected override void OnAfterOpen()
@@ -74,12 +75,23 @@
             OperationTimeHepler.Instance.dayResetEvent -= DayResetEvent;
             TimeUtility.OnServerOpenDayRefresh -= OnServerOpenDayRefresh;
             OperationTimeHepler.Instance.operationEndEvent -= OperationEndEvent;
+            OperationTimeHepler.Instance.operationStartEvent -= OperationStartEvent;
         }
 
         protected override void OnAfterClose()
         {
         }
         #endregion
+
+        private void Dipslay()
+        {
+            DisplayMoney(model.selectIndex);
+            DisplayItems(model.selectIndex);
+            DisplayFunc(model.selectIndex);
+            DisplayRecharge();
+            DisplayRewards();
+            DisplayTime();
+        }
 
         private void OnFunc()
         {
@@ -101,11 +113,44 @@
             }
             if (recharge != null)
             {
+                var count = packModel.GetReaminGridCount(PackType.rptItem);
+                if (count < recharge.items.Count)
+                {
+                    SysNotifyMgr.Instance.ShowTip("BagFull");
+                    return;
+                }
                 if (model.SatisfyGetReward(recharge))
                 {
                     model.GetAccumulateRechargeReward(recharge);
                 }
             }
+        }
+
+        private int GetSelect()
+        {
+            OperationBase operationBase;
+            if (OperationTimeHepler.Instance.TryGetOperationTime(Operation.AccumulateRecharge, out operationBase))
+            {
+                OperationAccumulateRecharge operation = operationBase as OperationAccumulateRecharge;
+                var reward = operation.GetReward(TimeUtility.ServerNow);
+                for (int i = 0; i < reward.recharges.Count; i++)
+                {
+                    var recharge = reward.recharges[i];
+                    if (model.SatisfyGetReward(recharge))
+                    {
+                        return i;
+                    }
+                }
+                for (int i = 0; i < reward.recharges.Count; i++)
+                {
+                    var recharge = reward.recharges[i];
+                    if (!model.IsRewardGot(recharge) && !model.SatisfyGetReward(recharge))
+                    {
+                        return i;
+                    }
+                }
+            }
+            return 0;
         }
 
         private void DisplayMoney(int index)
@@ -241,6 +286,7 @@
                     m_ScrollerControl.AddCell(ScrollerDataType.Header, i);
                 }
                 m_ScrollerControl.Restart();
+                m_ScrollerControl.JumpIndex(model.selectIndex);
             }
         }
 
@@ -283,8 +329,8 @@
             {
                 if (resetType == operationBase.resetType)
                 {
-                    DisplayRewards();
-                    DisplayTime();
+                    model.selectIndex = GetSelect();
+                    Dipslay();
                 }
             }
         }
@@ -297,10 +343,19 @@
             }
         }
 
+        private void OperationStartEvent(Operation operation, int state)
+        {
+            if (operation == Operation.AccumulateRecharge && state == 0)
+            {
+                model.selectIndex = GetSelect();
+                Dipslay();
+            }
+        }
+
         private void OnServerOpenDayRefresh()
         {
-            DisplayRewards();
-            DisplayTime();
+            model.selectIndex = GetSelect();
+            Dipslay();
         }
     }
 

--
Gitblit v1.8.0