From efd076ce4e03d63f99f326fa22b672dbcace557d Mon Sep 17 00:00:00 2001
From: client_Zxw <826696702@qq.com>
Date: 星期二, 12 三月 2019 15:09:50 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.0.87:10010/r/snxxz_scripts

---
 System/EquipTrain/EquipTrainPropertyBarBehaviour.cs |   55 +++++++++---------
 System/EquipTrain/EquipTrainWin.cs                  |    4 
 System/EquipTrain/EquipTrainModel.cs                |   76 +++++++++++++++++++-----
 3 files changed, 89 insertions(+), 46 deletions(-)

diff --git a/System/EquipTrain/EquipTrainModel.cs b/System/EquipTrain/EquipTrainModel.cs
index 6b59de2..2f89ea2 100644
--- a/System/EquipTrain/EquipTrainModel.cs
+++ b/System/EquipTrain/EquipTrainModel.cs
@@ -27,6 +27,12 @@
         public override void Init()
         {
             ParseConfig();
+
+            var levels = equipModel.GetAllEquipSets();
+            foreach (var level in levels)
+            {
+                equipTrains[level] = new EquipTrainSet(level);
+            }
         }
 
         public override void UnInit()
@@ -178,6 +184,32 @@
                 return;
             }
 
+            if (invevitable)
+            {
+                var properties = GetTrainedProperties(selectedLevel.value, selectedPlace.value);
+                var type = GetTrainType(selectedPlace.value);
+                var trainLevel = GetTrainLevel(selectedLevel.value, selectedPlace.value);
+                var data = EquipWashConfig.Get(type, trainLevel);
+                var isPerfect = false;
+                switch (index)
+                {
+                    case 1:
+                        isPerfect = properties[index - 1] >= data.config.attMax1;
+                        break;
+                    case 2:
+                        isPerfect = properties[index - 1] >= data.config.attMax2;
+                        break;
+                    case 3:
+                        isPerfect = properties[index - 1] >= data.config.attMax3;
+                        break;
+                }
+
+                if (isPerfect)
+                {
+                    return;
+                }
+            }
+
             if (propertyBars.Count > index)
             {
                 propertyBars[index].inevitable.value = invevitable;
@@ -255,17 +287,29 @@
                 return TrainState.Empty;
             }
 
-            var currentStarLevel = GetTrainLevel(equip.config.LV, equip.config.EquipPlace);
-            var absoluteMax = GetMaxTrainLevel(equip.config.EquipPlace);
-            if (currentStarLevel >= absoluteMax)
+            var type = GetTrainType(place);
+            var currentStarLevel = GetTrainLevel(level, place);
+            var absoluteMax = GetMaxTrainLevel(place);
+            var data = EquipWashConfig.Get(type, Mathf.Clamp(currentStarLevel, 1, absoluteMax));
+            if (data == null)
             {
-                return TrainState.MaxLevel;
+                return TrainState.Empty;
             }
 
-            var relativeMax = GetMaxTrainLevel(equip.config.LV, equip.config.EquipPlace);
-            if (currentStarLevel >= relativeMax)
+            var properties = GetTrainedProperties(level, place);
+            var isFull = properties.x >= data.config.attMax1 && properties.y >= data.config.attMax2 && properties.z >= data.config.attMax3;
+            if (isFull)
             {
-                return TrainState.StarLimit;
+                if (currentStarLevel >= absoluteMax)
+                {
+                    return TrainState.MaxLevel;
+                }
+
+                var relativeMax = GetMaxTrainLevel(equip.config.LV, equip.config.EquipPlace);
+                if (currentStarLevel >= relativeMax)
+                {
+                    return TrainState.StarLimit;
+                }
             }
 
             return TrainState.Allowable;
@@ -316,7 +360,7 @@
             var unSavedProperties = GetUnSavedProperties(level, place);
             var trainedProperties = GetTrainedProperties(level, place);
             var trainLevel = GetTrainLevel(level, place);
-            var data = EquipWashConfig.Get(GetTrainType(place), Mathf.Clamp(trainLevel + 1, 1, absoluteMax));
+            var data = EquipWashConfig.Get(GetTrainType(place), Mathf.Clamp(trainLevel, 1, absoluteMax));
 
             if (data != null)
             {
@@ -370,25 +414,23 @@
 
         private TrainOperateType CalculateTrainOperateType(int level, int place)
         {
-            var currentLevel = GetTrainLevel(level, place);
-            var maxLevel = GetMaxTrainLevel(level, place);
-            if (maxLevel > 0 && currentLevel >= maxLevel)
-            {
-                return TrainOperateType.Max;
-            }
-
             var unSavedProperties = GetUnSavedProperties(level, place);
             if (unSavedProperties != Int3.zero)
             {
                 return TrainOperateType.Save;
             }
 
-            var trainable = GetEquipPlaceTrainState(level, place) == TrainState.Allowable;
-            if (trainable)
+            var trainState = GetEquipPlaceTrainState(level, place);
+            if (trainState == TrainState.Allowable)
             {
                 return TrainOperateType.Train;
             }
 
+            if (trainState == TrainState.StarLimit || trainState == TrainState.MaxLevel)
+            {
+                return TrainOperateType.Max;
+            }
+
             return TrainOperateType.None;
         }
 
diff --git a/System/EquipTrain/EquipTrainPropertyBarBehaviour.cs b/System/EquipTrain/EquipTrainPropertyBarBehaviour.cs
index c71f351..3b7386e 100644
--- a/System/EquipTrain/EquipTrainPropertyBarBehaviour.cs
+++ b/System/EquipTrain/EquipTrainPropertyBarBehaviour.cs
@@ -48,16 +48,19 @@
                     m_Progress.value = 0;
                     m_Value.text = "0";
                     m_DeltaValue.gameObject.SetActive(false);
+                    m_Inevitable.gameObject.SetActive(true);
                     break;
                 case EquipTrainModel.TrainState.StarLimit:
                     m_Progress.value = 1;
                     m_Value.text = string.Format("{0}/{1}", propertyBar.propertyValue, propertyBar.upperLimit);
-                    m_DeltaValue.gameObject.SetActive(false);
+                    m_DeltaValue.gameObject.SetActive(true);
+                    m_Inevitable.gameObject.SetActive(false);
                     break;
                 case EquipTrainModel.TrainState.MaxLevel:
                     m_Progress.value = 1;
                     m_Value.text = string.Format("{0}/{1}", propertyBar.propertyValue, propertyBar.upperLimit);
-                    m_DeltaValue.gameObject.SetActive(false);
+                    m_DeltaValue.gameObject.SetActive(true);
+                    m_Inevitable.gameObject.SetActive(false);
                     break;
                 case EquipTrainModel.TrainState.Allowable:
                     m_Inevitable.gameObject.SetActive(true);
@@ -69,11 +72,6 @@
 
         private void DisplayDynamicInfo(bool force)
         {
-            if (force || propertyBar.inevitable.dirty)
-            {
-                m_Inevitable.isOn = propertyBar.inevitable.Fetch();
-            }
-
             if (force || propertyBar.propertyValue.dirty)
             {
                 var value = propertyBar.propertyValue.Fetch();
@@ -89,38 +87,41 @@
                 var inevitable = propertyBar.inevitable.Fetch();
 
                 m_Inevitable.isOn = inevitable;
-                if (operateType == EquipTrainModel.TrainOperateType.Train)
+
+                var isPerfect = propertyBar.upperLimit > 0 && propertyBar.propertyValue.value >= propertyBar.upperLimit;
+                if (isPerfect)
                 {
-                    var isPerfect = propertyBar.upperLimit > 0 && propertyBar.propertyValue.value >= propertyBar.upperLimit;
-                    if (isPerfect)
-                    {
-                        m_DeltaValue.text = "瀹岀編";
-                        m_DeltaValue.color = UIHelper.GetUIColor(TextColType.Green, true);
-                    }
-                    else
-                    {
-                        m_DeltaValue.text = inevitable ? "蹇呭" : "";
-                    }
+                    m_DeltaValue.text = "瀹岀編";
+                    m_DeltaValue.color = UIHelper.GetUIColor(TextColType.Green, true);
                 }
                 else
                 {
-                    if (deltaValue > 0)
+                    if (operateType == EquipTrainModel.TrainOperateType.Train)
                     {
-                        m_DeltaValue.text = string.Format("+{0}", deltaValue);
+                        m_DeltaValue.text = inevitable ? "蹇呭" : "";
                         m_DeltaValue.color = UIHelper.GetUIColor(TextColType.Green, true);
-                    }
-                    else if (deltaValue < 0)
-                    {
-                        m_DeltaValue.text = string.Format("-{0}", deltaValue);
-                        m_DeltaValue.color = UIHelper.GetUIColor(TextColType.Red, true);
                     }
                     else
                     {
-                        m_DeltaValue.text = "";
-                        m_DeltaValue.color = UIHelper.GetUIColor(TextColType.Green, true);
+                        if (deltaValue > 0)
+                        {
+                            m_DeltaValue.text = string.Format("+{0}", deltaValue);
+                            m_DeltaValue.color = UIHelper.GetUIColor(TextColType.Green, true);
+                        }
+                        else if (deltaValue < 0)
+                        {
+                            m_DeltaValue.text = deltaValue.ToString();
+                            m_DeltaValue.color = UIHelper.GetUIColor(TextColType.Red, true);
+                        }
+                        else
+                        {
+                            m_DeltaValue.text = string.Format("+{0}", deltaValue);
+                            m_DeltaValue.color = UIHelper.GetUIColor(TextColType.Green, true);
+                        }
                     }
                 }
 
+
             }
 
         }
diff --git a/System/EquipTrain/EquipTrainWin.cs b/System/EquipTrain/EquipTrainWin.cs
index 01d33d8..d175990 100644
--- a/System/EquipTrain/EquipTrainWin.cs
+++ b/System/EquipTrain/EquipTrainWin.cs
@@ -141,7 +141,7 @@
             {
                 var trainLevel = model.equipTrainLevel.Fetch();
                 m_TrainLevel.text = string.Format("{0}绾ф礂缁�", trainLevel);
-                m_MaxLevelContainer.gameObject.SetActive(trainLevel > 0 && trainLevel >= model.equipTrainMaxLevel.value);
+                m_MaxLevelContainer.gameObject.SetActive(trainLevel > 1 && trainLevel >= model.equipTrainMaxLevel.value);
             }
 
             if (force || model.equipTrainMaxLevel.dirty)
@@ -213,7 +213,7 @@
                 var type = EquipTrainModel.GetTrainType(place);
                 var trainLevel = model.GetTrainLevel(level, place);
                 var config = EquipWashConfig.Get(type, trainLevel + 1);
-                m_InevitableMaterial.Display(false, own, need, config.mustCosts[need - 1]);
+                m_InevitableMaterial.Display(false, need, own, config.mustCosts[need - 1]);
             }
             else
             {

--
Gitblit v1.8.0