From a7f5842dbe010844b87cf4781af8b658edeea145 Mon Sep 17 00:00:00 2001
From: client_Wu Xijin <364452445@qq.com>
Date: 星期六, 08 九月 2018 15:48:41 +0800
Subject: [PATCH] 1886 【BUG】组队自动准备BUG

---
 System/Team/TeamPrepareSettingWin.cs |    6 +-
 System/Team/TeamPrepareWin.cs        |   13 ++++++
 System/Team/MyTeamWin.cs             |    2 
 System/Team/TeamData.cs              |   41 +++++++++++++++-----
 4 files changed, 47 insertions(+), 15 deletions(-)

diff --git a/System/Team/MyTeamWin.cs b/System/Team/MyTeamWin.cs
index a465e1c..27c39ab 100644
--- a/System/Team/MyTeamWin.cs
+++ b/System/Team/MyTeamWin.cs
@@ -200,7 +200,7 @@
 
         private void CancelAutoPrepare()
         {
-            model.myTeam.autoPrepare.Reset();
+            model.myTeam.autoPrepare.CancelAutoPrepare();
         }
 
         private void OnAutoAcceptInvitationValueChange(bool _value)
diff --git a/System/Team/TeamData.cs b/System/Team/TeamData.cs
index 68178c0..7fbc946 100644
--- a/System/Team/TeamData.cs
+++ b/System/Team/TeamData.cs
@@ -71,7 +71,7 @@
                     m_Mission = value;
                     if (autoPrepare.auto && autoPrepare.cancelWhenTargetChange)
                     {
-                        autoPrepare.Reset();
+                        autoPrepare.CancelAutoPrepare();
                     }
                 }
             }
@@ -197,7 +197,7 @@
 
             if (!oldInTeam && inTeam)
             {
-                autoPrepare.Reset();
+                autoPrepare.CancelAutoPrepare();
             }
 
             var newCaptainer = memberCount > 0 ? members[0].id : 0;
@@ -205,7 +205,7 @@
             {
                 if (autoPrepare.auto && autoPrepare.cancelWhenCaptainerChange)
                 {
-                    autoPrepare.Reset();
+                    autoPrepare.CancelAutoPrepare();
                 }
             }
         }
@@ -521,7 +521,7 @@
         bool m_Auto = false;
         public bool auto {
             get { return m_Auto; }
-            set {
+            private set {
                 if (m_Auto != value)
                 {
                     m_Auto = value;
@@ -533,16 +533,37 @@
             }
         }
 
-        public bool cancelWhenTargetChange = true;
-        public bool cancelWhenCaptainerChange = false;
+        public int mapId { get; private set; }
+        public int mapEx { get; private set; }
+
+        bool m_CancelWhenTargetChange = true;
+        public bool cancelWhenTargetChange {
+            get { return m_CancelWhenTargetChange; }
+        }
+
+        bool m_CancelWhenCaptainerChange = false;
+        public bool cancelWhenCaptainerChange {
+            get { return m_CancelWhenCaptainerChange; }
+        }
 
         public event Action autoPrepareChangeEvent;
 
-        public void Reset()
+        public void CancelAutoPrepare()
         {
-            auto = false;
-            cancelWhenCaptainerChange = false;
-            cancelWhenTargetChange = true;
+            this.mapId = 0;
+            this.mapEx = 0;
+            this.m_CancelWhenCaptainerChange = false;
+            this.m_CancelWhenTargetChange = true;
+            this.auto = false;
+        }
+
+        public void SetAutoPreapare(int mapId, int mapEx, bool cancelWhenTargetChange, bool cancelWhenCaptainerChange)
+        {
+            this.mapId = mapId;
+            this.mapEx = mapEx;
+            this.m_CancelWhenTargetChange = cancelWhenTargetChange;
+            this.m_CancelWhenCaptainerChange = cancelWhenCaptainerChange;
+            this.auto = true;
         }
 
     }
diff --git a/System/Team/TeamPrepareSettingWin.cs b/System/Team/TeamPrepareSettingWin.cs
index 10a113d..307a38e 100644
--- a/System/Team/TeamPrepareSettingWin.cs
+++ b/System/Team/TeamPrepareSettingWin.cs
@@ -73,10 +73,10 @@
 
         private void Confirm()
         {
-            model.myTeam.autoPrepare.auto = true;
-            model.myTeam.autoPrepare.cancelWhenCaptainerChange = m_CaptainerSettingBuf;
-            model.myTeam.autoPrepare.cancelWhenTargetChange = m_TargetSettingBuf;
+            var mapId = model.myTeam.mission.mapId;
+            var mapEx = model.myTeam.mission.mapEx;
 
+            model.myTeam.autoPrepare.SetAutoPreapare(mapId,mapEx, m_TargetSettingBuf,m_CaptainerSettingBuf);
             CloseClick();
         }
 
diff --git a/System/Team/TeamPrepareWin.cs b/System/Team/TeamPrepareWin.cs
index 08b9972..54f3b6c 100644
--- a/System/Team/TeamPrepareWin.cs
+++ b/System/Team/TeamPrepareWin.cs
@@ -77,7 +77,18 @@
 
             if (model.myTeam.autoPrepare.auto)
             {
-                Prepare();
+                if (model.myTeam.autoPrepare.cancelWhenTargetChange)
+                {
+                    if (model.myTeam.autoPrepare.mapId == model.teamPrepare.mapId
+                     && model.myTeam.autoPrepare.mapEx == model.teamPrepare.mapEx)
+                    {
+                        Prepare();
+                    }
+                }
+                else
+                {
+                    Prepare();
+                }
             }
         }
 

--
Gitblit v1.8.0