From 90ace30bca82dee16f9a00be3ea6a69d1d6ad3cb Mon Sep 17 00:00:00 2001
From: client_linchunjie <461730578@qq.com>
Date: 星期六, 18 八月 2018 15:39:17 +0800
Subject: [PATCH] 2621【前端】法宝、法宝之魂优化

---
 System/Treasure/FairyTreasureCollectPanelPattern5.cs |   80 +++++++++++++++++-----------------------
 1 files changed, 34 insertions(+), 46 deletions(-)

diff --git a/System/Treasure/FairyTreasureCollectPanelPattern5.cs b/System/Treasure/FairyTreasureCollectPanelPattern5.cs
index 4f05f94..c0991f2 100644
--- a/System/Treasure/FairyTreasureCollectPanelPattern5.cs
+++ b/System/Treasure/FairyTreasureCollectPanelPattern5.cs
@@ -129,24 +129,14 @@
 
         private void DisplayProgress()
         {
-            Achievement _mainAchievement;
-            achievementModel.TryGetAchievement(model.GetFurnacesAchievements()[0], out _mainAchievement);
-            if (_mainAchievement != null && _mainAchievement.completed)
-            {
-                m_ContainerAchievement.gameObject.SetActive(true);
-            }
-            if (treasure.state == TreasureState.Collected)
-            {
-                m_ContainerAchievement.gameObject.SetActive(false);
-            }
+            m_ContainerAchievement.gameObject.SetActive(treasure.state == TreasureState.Collected && treasure.stage <= 0);
             var _processingIndex = -1;
-            if (treasure.state != TreasureState.Collected
-                && _mainAchievement != null && _mainAchievement.completed)
+            if (treasure.state == TreasureState.Collected && treasure.stage <= 0)
             {
                 var _list = model.GetFurnacesAchievements();
                 for (int i = 0; i < m_FurnacesAchievements.Length; i++)
                 {
-                    var _beforeId = _list[i];
+                    var _beforeId = i == 0 ? 0 : _list[i - 1];
                     Achievement _beforeAchievement;
                     bool _beforeComplete = true;
                     if (achievementModel.TryGetAchievement(_beforeId, out _beforeAchievement))
@@ -154,14 +144,14 @@
                         _beforeComplete = _beforeAchievement.completed;
                     }
                     Achievement achievement;
-                    achievementModel.TryGetAchievement(_list[i + 1], out achievement);
-                    var config = ConfigManager.Instance.GetTemplate<SuccessConfig>(_list[i + 1]);
+                    achievementModel.TryGetAchievement(_list[i], out achievement);
+                    var config = ConfigManager.Instance.GetTemplate<SuccessConfig>(_list[i]);
                     var _processing = !achievement.completed &&  _beforeComplete;
                     if ((_processing || Achievement.IsReach(achievement.id, achievement.progress)) && _processingIndex == -1)
                     {
                         _processingIndex = i;
                     }
-                    m_FurnacesAchievements[i].Display(_list[i + 1]);
+                    m_FurnacesAchievements[i].Display(_list[i]);
                 }
             }
             if (_processingIndex != -1)
@@ -175,19 +165,14 @@
 
         private void DisplayFurnacesHole()
         {
-            Achievement _mainAchievement;
-            achievementModel.TryGetAchievement(model.GetFurnacesAchievements()[0], out _mainAchievement);
-            if (_mainAchievement != null && _mainAchievement.completed)
-            {
-                m_ContainerHoles.gameObject.SetActive(true);
-            }
-            if (treasure.state != TreasureState.Collected)
+            m_ContainerHoles.gameObject.SetActive(treasure.state == TreasureState.Collected);
+            if (treasure.state == TreasureState.Collected)
             {
                 var _list = model.GetFurnacesAchievements();
                 for (int i = 0; i < m_FurnacesIcons.Length; i++)
                 {
                     Achievement achievement;
-                    achievementModel.TryGetAchievement(_list[i + 1], out achievement);
+                    achievementModel.TryGetAchievement(_list[i], out achievement);
                     if (achievement != null && achievement.id == completedAchivement)
                     {
                         completedAchivement = 0;
@@ -272,33 +257,36 @@
         private void Display()
         {
             GetCurrentAchievement();
-            Achievement _mainAchievement;
-            achievementModel.TryGetAchievement(model.GetFurnacesAchievements()[0], out _mainAchievement);
-            if (!_mainAchievement.completed && treasure.state != TreasureState.Collected)
+            if (treasure.state != TreasureState.Collected)
             {
-                m_AchievementGetBtn.gameObject.SetActive(false);
-                m_GotoGet.gameObject.SetActive(false);
-                m_ContainerLocked.gameObject.SetActive(true);
-                var _successConfig = ConfigManager.Instance.GetTemplate<SuccessConfig>(_mainAchievement.id);
-                if (_successConfig.Type == 3)
+                int unlocktreasureId = 0;
+                var list = model.GetTreasureCategory(TreasureCategory.Human);
+                for (int i = 0; i < list.Count; i++)
                 {
-                    var task = ConfigManager.Instance.GetTemplate<PyTaskConfig>(_successConfig.Condition[0]);
-                    if (task != null)
+                    Treasure _treasure;
+                    if(model.TryGetTreasure(list[i], out _treasure))
                     {
-                        var taskInfo = ConfigManager.Instance.GetTemplate<TASKINFOConfig>(task.name);
-                        if (taskInfo != null)
+                        var index = _treasure.treasureStages.FindIndex((x) =>
                         {
-                            m_LockedDescription.text = Language.Get("FairyTreasureLimitTask", taskInfo.show_writing);
+                            return x.unlockType == TreasureStageUnlock.Treasure && x.treasure == treasure.id;
+                        });
+                        if (index != -1)
+                        {
+                            unlocktreasureId = list[i];
+                            break;
                         }
                     }
                 }
-                else
-                {
-                    m_LockedDescription.text = Language.Get("FairyTreasureLimitAchievement", _successConfig.Describe);
-                }
+
+                var unlockTreasureConfig = ConfigManager.Instance.GetTemplate<TreasureConfig>(unlocktreasureId);
+
+                m_AchievementGetBtn.gameObject.SetActive(false);
+                m_GotoGet.gameObject.SetActive(false);
+                m_ContainerLocked.gameObject.SetActive(true);
+                m_LockedDescription.text = Language.Get("BlastFurnaceGet", unlockTreasureConfig == null ? string.Empty : unlockTreasureConfig.Name);
                 m_ContainerAchievement.gameObject.SetActive(false);
             }
-            else if (currentAchievement == null || treasure.state == TreasureState.Collected)
+            else if (currentAchievement == null || treasure.stage >= 1)
             {
                 m_AchievementGetBtn.gameObject.SetActive(false);
                 m_GotoGet.gameObject.SetActive(false);
@@ -313,7 +301,7 @@
                 m_GotoGet.gameObject.SetActive(!_isReach);
             }
 
-            m_GotoStove.gameObject.SetActive(treasure.state == TreasureState.Collected);
+            m_GotoStove.gameObject.SetActive(treasure.stage >= 1);
         }
 
         private void OnAchievementGet()
@@ -327,7 +315,7 @@
 
         private void DisplayFunc()
         {
-            m_FuncTitle.text = treasure.state == TreasureState.Collected ? Language.Get("FairyTreasureOpenFunc") : Language.Get("FairyTreasureUnOpenFunc");
+            m_FuncTitle.text = treasure.state == TreasureState.Collected && treasure.stage >= 1 ? Language.Get("FairyTreasureOpenFunc") : Language.Get("FairyTreasureUnOpenFunc");
             var funcStage = treasure.treasureStages.Find((x) =>
             {
                 return x.unlockType == TreasureStageUnlock.Func;
@@ -341,8 +329,8 @@
 
         private void DisplayFurnace()
         {
-            m_ContainerFurnace.gameObject.SetActive(treasure.state == TreasureState.Collected);
-            if (treasure.state == TreasureState.Collected)
+            m_ContainerFurnace.gameObject.SetActive(treasure.state == TreasureState.Collected && treasure.stage >= 1);
+            if (treasure.state == TreasureState.Collected && treasure.stage >= 1)
             {
                 var stoveLevel = blastFurnaceModel.StoveLV;
                 m_FurnaceLv.text = Language.Get("BlastFurnace101", stoveLevel);

--
Gitblit v1.8.0