From 095a9ce4bb13f29687e6d8d075dd51fc094d4113 Mon Sep 17 00:00:00 2001
From: client_linchunjie <461730578@qq.com>
Date: 星期五, 17 八月 2018 14:09:36 +0800
Subject: [PATCH] 法宝魂修改

---
 System/Treasure/TreasureAnimation.cs |   35 +++++++++++++++++++++--------------
 1 files changed, 21 insertions(+), 14 deletions(-)

diff --git a/System/Treasure/TreasureAnimation.cs b/System/Treasure/TreasureAnimation.cs
index 74c35a7..d562aac 100644
--- a/System/Treasure/TreasureAnimation.cs
+++ b/System/Treasure/TreasureAnimation.cs
@@ -317,6 +317,8 @@
             float _duration = 0f;
             stepComplete = false;
             var _config = ScriptableObjectLoader.LoadSoTreasureMeridian(model.selectedTreasure);
+            Treasure treasure;
+            model.TryGetTreasure(model.selectedTreasure, out treasure);
             _index = Mathf.Max(_index, 0);
             var _current = m_TreasureMeridians[_index];
             if (_index < 0)
@@ -324,7 +326,7 @@
                 stepComplete = true;
                 yield break;
             }
-            if (_index < _config.stagePointNum - 1)
+            if (_index < treasure.StageCount - 1)
             {
                 var _effect = EffectMgr.Instance.PlayUIEffect(LINESFX, 2500, m_TreasureMeridians[_index].transform.parent, false);
                 _effect.transform.localPosition = _config[_index].position;
@@ -498,9 +500,11 @@
             m_ContainerStars.gameObject.SetActive(true);
             m_StarPositionTween.SetStartState();
             TreasureMeridianConfig _config = ScriptableObjectLoader.LoadSoTreasureMeridian(selectTreasureId);
+            Treasure treasure;
+            model.TryGetTreasure(selectTreasureId, out treasure);
             for (int i = 0; i < m_Stars.Length; i++)
             {
-                if (_config == null || i >= _config.stagePointNum)
+                if (_config == null || i >= treasure.treasureStages.Count)
                 {
                     m_Stars[i].gameObject.SetActive(false);
                 }
@@ -552,7 +556,9 @@
             TreasureMeridianConfig _config = ScriptableObjectLoader.LoadSoTreasureMeridian(selectTreasureId);
             RecycleLineSfx();
             var _duration = 0f;
-            while (_index < _config.stagePointNum)
+            Treasure treasure;
+            model.TryGetTreasure(selectTreasureId, out treasure);
+            while (_index < treasure.StageCount)
             {
                 timer = 0f;
                 var _effect1 = EffectMgr.Instance.PlayUIEffect(SPIRALSFX, 2700, m_TreasureMeridians[_index].transform.parent, false);
@@ -566,7 +572,7 @@
                 m_TreasureMeridians[_index].RequestStateSfx();
                 m_Stars[_index].StopImediatly();
                 timer = 0f;
-                if (_index < _config.stagePointNum - 1)
+                if (_index < treasure.StageCount - 1)
                 {
                     var _effect2 = EffectMgr.Instance.PlayUIEffect(LINESFX, 2500, m_TreasureMeridians[_index].transform.parent, false);
                     _duration = _effect2.duration;
@@ -588,7 +594,7 @@
                 }
                 _index++;
             }
-            for (int i = 0; i < _config.stagePointNum; i++)
+            for (int i = 0; i < treasure.StageCount; i++)
             {
                 m_TreasureMeridians[i].PlayLineSfx(2, true);
             }
@@ -612,7 +618,6 @@
                 yield return null;
             }
             stepComplete = true;
-            Treasure treasure;
             model.TryGetTreasure(selectTreasureId, out treasure);
             if (treasure.treasureStages[0].unlockType != TreasureStageUnlock.None)
             {
@@ -672,7 +677,7 @@
                 return x.unlockType == TreasureStageUnlock.Skill;
             });
             var _skillStageIndex = _treasure.GetStageIndex(_skillStage);
-            for (int i = 0; i < _config.stagePointNum; i++)
+            for (int i = 0; i < _stages.Count; i++)
             {
                 if (i == _skillStageIndex)
                 {
@@ -688,7 +693,7 @@
             }
             timer = 0;
             _duration = 0;
-            for (int i = 0; i < _config.stagePointNum; i++)
+            for (int i = 0; i < _stages.Count; i++)
             {
                 if (i == _skillStageIndex)
                 {
@@ -709,13 +714,15 @@
             {
                 yield return null;
             }
-
-            timer = 0;
-            var _effect = EffectMgr.Instance.PlayUIEffect(CONVERGESFX, 2700, m_TreasureMeridians[_skillStageIndex].transform.parent, false);
-            _effect.transform.localPosition = _config[_skillStageIndex].position;
-            while (timer < 0.5f)
+            if (_stages.Count > 1)
             {
-                yield return null;
+                timer = 0;
+                var _effect = EffectMgr.Instance.PlayUIEffect(CONVERGESFX, 2700, m_TreasureMeridians[_skillStageIndex].transform.parent, false);
+                _effect.transform.localPosition = _config[_skillStageIndex].position;
+                while (timer < 0.5f)
+                {
+                    yield return null;
+                }
             }
             timer = 0;
             m_ContainerLevelUp.gameObject.SetActive(false);

--
Gitblit v1.8.0