From c591cb6e215ea5e762560afdae059f1d4fd7f4ec Mon Sep 17 00:00:00 2001
From: client_linchunjie <461730578@qq.com>
Date: 星期五, 28 九月 2018 16:32:37 +0800
Subject: [PATCH] Merge branch 'master' into 3687天赋功能

---
 System/Dogz/DogzModel.cs |   82 +++++++++++++++++++++++++++++-----------
 1 files changed, 59 insertions(+), 23 deletions(-)

diff --git a/System/Dogz/DogzModel.cs b/System/Dogz/DogzModel.cs
index df9e3fe..450a830 100644
--- a/System/Dogz/DogzModel.cs
+++ b/System/Dogz/DogzModel.cs
@@ -19,6 +19,7 @@
 
         public void OnBeforePlayerDataInitialize()
         {
+            curSumAssistNum = DogzAssistDefaultCnt;
             addAssistCnt = 0;
             SelectDogzItemQuality = 0;
             SelectDogzItemStart = 0;
@@ -51,7 +52,7 @@
 
         #region 閰嶇疆
         private Dictionary<int, Dictionary<int, int>> m_DogzEquipLimit = new Dictionary<int, Dictionary<int, int>>(); //瑁呭浣� 鍝佽川闄愬埗
-        public int DogzAssistDefaultCnt { get; private set; }  //鍔╂垬绁炲吔鎬绘暟
+        public int DogzAssistDefaultCnt { get; private set; }  //鍔╂垬绁炲吔榛樿鏁伴噺
         public int DogzAssistMaxCnt { get; private set; }//鍔╂垬绁炲吔鏈�澶ф暟
         public int AddAssistItem { get; private set; } //澧炲姞鍔╂垬绁炲吔鎬绘暟鐨勭墿鍝両d
         public int DogzPackGridCnt { get; private set; } //绁炲吔鐗╁搧鑳屽寘鏍煎瓙鏁�
@@ -217,7 +218,27 @@
 
         public int GetAssistItemCnt()
         {
-            return AddAssistItemCnt[addAssistCnt];
+            if(!IsAddMaxAssist())
+            {
+                return AddAssistItemCnt[addAssistCnt];
+            }
+            else
+            {
+
+                return AddAssistItemCnt[AddAssistItemCnt.Length - 1];
+            }
+        }
+
+        public bool IsAddMaxAssist()
+        {
+            if (curSumAssistNum < DogzAssistMaxCnt)
+            {
+                return false;
+            }
+            else
+            {
+                return true;
+            }
         }
 
         public int presentSelectDogz { get; set; } //褰撳墠閫変腑鐨勭鍏絠d
@@ -253,10 +274,11 @@
         #region 鍗忚
 
         public int addAssistCnt { get; private set; } //棰濆璐拱鐨勫姪鎴樻暟
+        public int curSumAssistNum { get; private set; } //褰撳墠鍙互鍔╂垬鐨勭鍏芥暟閲�
         public void SetServerAddAssistDogzCnt(HA3C0_tagMCDogzInfo info)
         {
             addAssistCnt = info.BuyHelpbattleCount;
-            DogzAssistDefaultCnt += addAssistCnt;
+            curSumAssistNum = DogzAssistDefaultCnt + addAssistCnt;
             if (UpdateAssistDogzEvent != null)
             {
                 UpdateAssistDogzEvent();
@@ -695,13 +717,26 @@
         {
             var configs = Config.Instance.GetAllValues<DogzConfig>();
             presentSelectDogz = configs[0].ID;
-            foreach (var key in m_DogzEquipLimit.Keys)
+            if(dogzFuncRedpoint.state == RedPointState.Simple)
             {
-                Redpoint redpoint = GetSingleDogzRedpointById(key);
-                if (redpoint.state == RedPointState.Simple)
+                foreach (var key in m_DogzEquipLimit.Keys)
                 {
-                    presentSelectDogz = key;
-                    break;
+                    Redpoint redpoint = GetSingleDogzRedpointById(key);
+                    if (redpoint.state == RedPointState.Simple)
+                    {
+                        presentSelectDogz = key;
+                        break;
+                    }
+                }
+            }
+            else
+            {
+                foreach(var key in dogzAssistStateDict.Keys)
+                {
+                    if(TryGetAssistDogzState(key))
+                    {
+                        presentSelectDogz = presentSelectDogz > key ? presentSelectDogz : key;
+                    }
                 }
             }
         }
@@ -775,19 +810,19 @@
             {
                 value.state = RedPointState.None;
             }
-            bool isMaxAssistNum = GetAssistDogzCount() >= DogzAssistDefaultCnt ? true : false;
+            bool isMaxAssistNum = GetAssistDogzCount() >= curSumAssistNum ? true : false;
+            int minAlreadyAssistId = 0;
+            foreach (var dogzId in m_DogzEquipLimit.Keys)
+            {
+                if (TryGetAssistDogzState(dogzId)
+                    && ((minAlreadyAssistId > dogzId && minAlreadyAssistId != 0) || minAlreadyAssistId == 0))
+                {
+                    minAlreadyAssistId = dogzId;
+                }
+            }
+
             if (!isMaxAssistNum)
             {
-                int minAlreadyAssistId = 0;
-                foreach (var dogzId in m_DogzEquipLimit.Keys)
-                {
-                    if (TryGetAssistDogzState(dogzId)
-                        && ((minAlreadyAssistId < dogzId && minAlreadyAssistId != 0) || minAlreadyAssistId == 0))
-                    {
-                        minAlreadyAssistId = dogzId;
-                    }
-                }
-
                 int maxDogzId = 0;
                 foreach(var dogzId in m_DogzEquipLimit.Keys)
                 {
@@ -815,7 +850,8 @@
                 {
                     var equips = GetDogzEquips(dogzId);
                     int equipNum = equips == null ? 0 : equips.Count;
-                    if(!TryGetAssistDogzState(dogzId) && equipNum == 5)
+                    if(!TryGetAssistDogzState(dogzId) && equipNum == 5
+                         && ((minAlreadyAssistId != 0 && dogzId > minAlreadyAssistId) || minAlreadyAssistId == 0))
                     {
                         Redpoint assistRedpoint = GetDogzAssistRedpointById(dogzId);
                         if (assistRedpoint.state == RedPointState.None)
@@ -845,7 +881,7 @@
                     return;
                 }
             }
-            bool isMaxAssistNum = GetAssistDogzCount() >= DogzAssistDefaultCnt ? true : false;
+            bool isMaxAssistNum = GetAssistDogzCount() >= curSumAssistNum ? true : false;
             if (!isMaxAssistNum)
             {
                 int maxEquipNum = 0;
@@ -903,7 +939,7 @@
                 foreach (var dogzId in m_DogzEquipLimit.Keys)
                 {
                     if(TryGetAssistDogzState(dogzId)
-                        && ((minAlreadyAssistId < dogzId && minAlreadyAssistId != 0) || minAlreadyAssistId == 0))
+                        && ((minAlreadyAssistId > dogzId && minAlreadyAssistId != 0) || minAlreadyAssistId == 0))
                     {
                         minAlreadyAssistId = dogzId;
                     }
@@ -960,7 +996,7 @@
 
         public void UpdateAssistNumRed()
         {
-          if(CheckIsAddAssistNum())
+          if(CheckIsAddAssistNum() && !IsAddMaxAssist())
            {
                 if(addAssistDogzRedpoint.state == RedPointState.None)
                 {

--
Gitblit v1.8.0