From 1cb2f2172969f760b4a92a13c6ff2605f96ba73d Mon Sep 17 00:00:00 2001
From: client_linchunjie <461730578@qq.com>
Date: 星期六, 18 八月 2018 14:12:40 +0800
Subject: [PATCH] 法宝魂修改

---
 System/Treasure/TreasureSoulBehaviour.cs |   39 ++++++++++++++++++++++++++++++++++++++-
 1 files changed, 38 insertions(+), 1 deletions(-)

diff --git a/System/Treasure/TreasureSoulBehaviour.cs b/System/Treasure/TreasureSoulBehaviour.cs
index 7b28400..54672d5 100644
--- a/System/Treasure/TreasureSoulBehaviour.cs
+++ b/System/Treasure/TreasureSoulBehaviour.cs
@@ -28,6 +28,8 @@
             }
         }
 
+        AchievementModel achievementModel { get { return ModelCenter.Instance.GetModel<AchievementModel>(); } }
+
         private void Awake()
         {
             m_SelectBtn.onClick.AddListener(OnSelect);
@@ -37,12 +39,26 @@
         {
             model.treasureSelectSoulChangeEvent += TreasureSelectSoulChangeEvent;
             model.treasureSoulEvent += TreasureSoulEvent;
+            achievementModel.achievementCompletedEvent += AchievementCompletedEvent;
         }
 
         private void OnDisable()
         {
             model.treasureSelectSoulChangeEvent -= TreasureSelectSoulChangeEvent;
             model.treasureSoulEvent -= TreasureSoulEvent;
+            achievementModel.achievementCompletedEvent -= AchievementCompletedEvent;
+        }
+
+        private void AchievementCompletedEvent(int _id)
+        {
+            int achievementId = 0;
+            if (model.TryGetRealmAchievement(treasureSoulId, out achievementId))
+            {
+                if (achievementId == _id)
+                {
+                    DisplayState();
+                }
+            }
         }
 
         public void Display(int _id)
@@ -69,11 +85,32 @@
             {
                 if (special.active)
                 {
+                    m_Lock.gameObject.SetActive(false);
                     m_SoulState.text = Language.Get("TreasureSoul_Awoke");
                 }
                 else
                 {
-                    m_SoulState.text = Language.Get("TreasureSoul_Awaking");
+                    int achievementId = 0;
+                    bool unlock = true;
+                    if (model.TryGetRealmAchievement(treasureSoulId, out achievementId))
+                    {
+                        Achievement achievement;
+                        if (achievementModel.TryGetAchievement(achievementId, out achievement))
+                        {
+                            unlock = achievement.completed;
+                        }
+                    }
+                    m_Lock.gameObject.SetActive(!unlock);
+                    if (unlock)
+                    {
+                        m_SoulState.text = Language.Get("TreasureSoul_Awaking");
+                    }
+                    else
+                    {
+                        var successConfig = ConfigManager.Instance.GetTemplate<SuccessConfig>(achievementId);
+                        var realmConfig = ConfigManager.Instance.GetTemplate<RealmConfig>(successConfig.Condition[0]);
+                        m_SoulState.text = string.Format("澧冪晫<Img img={0}/>瑙i攣", realmConfig.Img);
+                    }
                 }
             }
         }

--
Gitblit v1.8.0