From f4f07847775c12b338d8bccedbbabc067dc1ae2c Mon Sep 17 00:00:00 2001
From: client_linchunjie <461730578@qq.com>
Date: 星期六, 18 八月 2018 14:34:26 +0800
Subject: [PATCH] Merge branch '法宝、法宝魂修改'

---
 System/Treasure/TreasureLevelUpWin.cs |  217 +++++++++++++++++-------------------------------------
 1 files changed, 68 insertions(+), 149 deletions(-)

diff --git a/System/Treasure/TreasureLevelUpWin.cs b/System/Treasure/TreasureLevelUpWin.cs
index 6ff449a..a3026fe 100644
--- a/System/Treasure/TreasureLevelUpWin.cs
+++ b/System/Treasure/TreasureLevelUpWin.cs
@@ -23,13 +23,8 @@
         [SerializeField] RectTransform m_ContainerUnGet;
         [SerializeField] RectTransform m_ContainerLockDetail;
         [SerializeField] PositionTween m_LockDetailPosTween;
+        [SerializeField] ScrollerController m_Controller;
         [SerializeField] Button m_GetTreasureBtn;
-        [SerializeField] RectTransform m_ContainerLockFunc;
-        [SerializeField] RectTransform m_ContainerLockSkill;
-        [SerializeField] RectTransform m_ContainerLockPrivilege;
-        [SerializeField] Button m_PrivilegeLockBtn;
-        [SerializeField] Button m_FuncLockBtn;
-        [SerializeField] Button m_SkillLockBtn;
         [SerializeField] RectTransform m_ContainerLimit;
         [SerializeField] Text m_TreasureChallengeLimit;
         [SerializeField] Text m_TreasureStory;
@@ -43,6 +38,7 @@
         [SerializeField] TreasureProperty m_TreasureProperty;
         [SerializeField] TreasureMeridianBehaviour[] m_TreasureMeridians;
         [Header("Progress")]
+        [SerializeField] RectTransform m_ContainerPropgress;
         [SerializeField] Image m_CurrentStageIcon;
         [SerializeField] Text m_TreasureLevelProgress;
         [SerializeField] Text m_TreasureStageDesc;
@@ -110,7 +106,7 @@
 
         public event Action OnLineStepComplete;
 
-        public int beforePlayerLv = 0;
+        int beforePlayerLv = 0;
 
         #region Built-in
         protected override void BindController()
@@ -123,11 +119,9 @@
             m_BackBtn.onClick.AddListener(OnBack);
             m_GetTreasureBtn.onClick.AddListener(OnGetTreasure);
             m_LevelUpBtn.onClick.AddListener(OnLevelUp);
-            m_PrivilegeLockBtn.onClick.AddListener(OnStagePrivilegeClick);
-            m_FuncLockBtn.onClick.AddListener(OnStageFuncClick);
-            m_SkillLockBtn.onClick.AddListener(OnStageSkillClick);
             m_LeftBtn.onClick.AddListener(OnLeftBtn);
             m_RightBtn.onClick.AddListener(OnRightBtn);
+            m_Controller.OnRefreshCell += OnRefreshCell;
         }
 
         protected override void OnPreOpen()
@@ -163,7 +157,6 @@
             model.treasureLevelProgressUpdateEvent += TreasureLevelProgressUpdateEvent;
             model.treasureSelectedEvent += TreasureSelectedEvent;
             model.treasureStageUpEvent += TreasureStageUpEvent;
-            PlayerDatas.Instance.PlayerDataRefreshInfoEvent += PlayerDataRefreshInfoEvent;
             m_TreasureAnimation.OnStepComplete += OnStepComplete;
             RedpointCenter.Instance.redpointValueChangeEvent += RedpointValueChangeEvent;
             achievementModel.achievementCompletedEvent += AchievementCompletedEvent;
@@ -209,7 +202,6 @@
             PlayerTaskDatas.CardLevelChange -= CardLevelChange;
             model.treasureSelectedEvent -= TreasureSelectedEvent;
             model.treasureStageUpEvent -= TreasureStageUpEvent;
-            PlayerDatas.Instance.PlayerDataRefreshInfoEvent -= PlayerDataRefreshInfoEvent;
             m_TreasureAnimation.OnStepComplete -= OnStepComplete;
             RedpointCenter.Instance.redpointValueChangeEvent -= RedpointValueChangeEvent;
             achievementModel.achievementCompletedEvent -= AchievementCompletedEvent;
@@ -246,12 +238,18 @@
         }
         #endregion
 
+        private void OnRefreshCell(ScrollerDataType type, CellView cell)
+        {
+            TreasureUnlockCell treasureUnlockCell = cell as TreasureUnlockCell;
+            treasureUnlockCell.Display(model.selectedTreasure, cell.index);
+        }
+
         private void TreasureStateChangeEvent(int _id)
         {
             Treasure _treasure;
             model.TryGetTreasure(_id, out _treasure);
             if (_id == model.selectedTreasure && _treasure != null
-                && _treasure.state == TreasureState.Collecting)
+                && _treasure.state == TreasureState.Collecting && model.serverInited)
             {
                 UpdateStage();
                 if (WindowCenter.Instance.CheckOpen<EffectToFaBaoWin>())
@@ -380,7 +378,8 @@
             {
                 m_ContainerUnGet.gameObject.SetActive(false);
 
-                if (m_Treasure.IsMaxStage() || _state == 2)
+                if ((m_Treasure.IsHighestStage && FuncOpen.Instance.IsFuncOpen(82) 
+                    && model.GetSpAnim(m_Treasure.id)) || _state == 2)
                 {
                     if (_state != 2)
                     {
@@ -391,12 +390,14 @@
                     else
                     {
                         m_TreasureProperty.SetActive(true);
+                        model.SetSpAnim(m_Treasure.id);
                     }
                     m_TreasurePotential.Display(m_Treasure, _state);
                 }
                 else
                 {
                     m_ContainerLevelUp.gameObject.SetActive(true);
+                    m_ContainerPropgress.gameObject.SetActive(!m_Treasure.IsHighestStage);
                     m_ContainerPotential.gameObject.SetActive(false);
                     if (model.treasureEntranceShowId == model.selectedTreasure)
                     {
@@ -417,78 +418,51 @@
                             m_TreasureAnimation.OnStageLock(m_Treasure.GetStageIndex(m_Treasure.stage));
                         }
                         m_TreasureProperty.SetActive(m_Treasure.state == TreasureState.Collected);
+                        if (_state == 1 && m_Treasure.IsHighestStage
+                            && FuncOpen.Instance.IsFuncOpen(82) && !model.GetSpAnim(m_Treasure.id))
+                        {
+                            m_TreasureAnimation.step = TreasureAnimation.TreasureShowStep.FirstPotential;
+                            UpdateStage(2);
+                            return;
+                        }
                     }
                     m_TreasureAnimation.step = TreasureAnimation.TreasureShowStep.UnLock;
                 }
             }
         }
 
-        private void PlayerDataRefreshInfoEvent(PlayerDataRefresh type)
-        {
-            if (type != PlayerDataRefresh.LV)
-            {
-                return;
-            }
-            if (m_Treasure != null && m_Treasure.state != TreasureState.Collected)
-            {
-                UpdateTreasureUnlockDetail();
-            }
-            else if (m_Treasure != null && m_Treasure.state == TreasureState.Collected)
-            {
-                if (m_TreasureAnimation.stepComplete && !model.treasureStepUpShow
-                    && !m_AchievementScroll.showing && !m_Treasure.IsMaxStage())
-                {
-                    var _stage = m_Treasure.treasureStages[m_Treasure.StageCount - 1];
-                    if (beforePlayerLv < _stage.limitLevel && PlayerDatas.Instance.baseData.LV >= _stage.limitLevel)
-                    {
-                        DisplayAchievements(true);
-                        UpdateTreasureProgress();
-                    }
-                }
-                beforePlayerLv = PlayerDatas.Instance.baseData.LV;
-            }
-        }
-
         private void OnFuncStateChangeEvent(int _id)
         {
-            if (_id == 126)
+            if (_id == 82 && FuncOpen.Instance.IsFuncOpen(_id) && model.serverInited)
             {
-                UpdateTreasureProgress();
-                UpdateTreasureUnlockDetail();
+                if (m_TreasureAnimation.stepComplete && m_Treasure.IsHighestStage
+                    && !model.GetSpAnim(m_Treasure.id))
+                {
+                    m_TreasureAnimation.step = TreasureAnimation.TreasureShowStep.FirstPotential;
+                    UpdateStage(2);
+                }
             }
         }
 
         private void UpdateTreasureUnlockDetail()
         {
             var _cfg = ConfigManager.Instance.GetTemplate<TreasureConfig>(model.selectedTreasure);
-            var _funcCfg = ConfigManager.Instance.GetTemplate<FuncOpenLVConfig>(m_Treasure.unLockFunc);
             m_TreasureStory.text = _cfg.Story;
-            m_ContainerLockFunc.gameObject.SetActive(_funcCfg != null);
-            if (_funcCfg != null)
+
+            m_Controller.Refresh();
+            for (int i = 0; i < m_Treasure.treasureStages.Count; i++)
             {
-                m_FuncLockBtn.image.SetSprite(_funcCfg.Icon);
-            }
-            var _skillCfg = ConfigManager.Instance.GetTemplate<SkillConfig>(m_Treasure.unLockSkill);
-            m_ContainerLockSkill.gameObject.SetActive(_skillCfg != null);
-            if (_skillCfg != null)
-            {
-                m_SkillLockBtn.image.SetSprite(_skillCfg.IconName);
-            }
-            var _privilegeCfg = ConfigManager.Instance.GetTemplate<TreasurePrivilegeConfig>(m_Treasure.unLockPrivilege);
-            m_ContainerLockPrivilege.gameObject.SetActive(_privilegeCfg != null);
-            if (_privilegeCfg != null)
-            {
-                var privilegeStage = m_Treasure.treasureStages[m_Treasure.StageCount - 1];
-                if (FuncOpen.Instance.IsFuncOpen(126))
+                var stage = m_Treasure.treasureStages[i];
+                switch (stage.unlockType)
                 {
-                    m_PrivilegeLockBtn.image.SetSprite(_privilegeCfg.Icon);
+                    case TreasureStageUnlock.Skill:
+                    case TreasureStageUnlock.Func:
+                    case TreasureStageUnlock.Treasure:
+                        m_Controller.AddCell(ScrollerDataType.Header, stage.stage);
+                        break;
                 }
-                else
-                {
-                    m_PrivilegeLockBtn.image.SetSprite("UnKnowIcon");
-                }
-                m_PrivilegeLockBtn.image.SetNativeSize();
             }
+            m_Controller.Restart();
 
             Achievement achievement = null;
             int _achievementId = 0;
@@ -520,59 +494,6 @@
                         m_TreasureChallengeLimit.text = Language.Get("TreasureGetRequire", _taskConfig.lv);
                         break;
                 }
-            }
-        }
-
-        private void OnStageSkillClick()
-        {
-            if (model.treasureStepUpShow)
-            {
-                return;
-            }
-            var _stage = m_Treasure.treasureStages.Find((x) =>
-            {
-                return x.unlockType == TreasureStageUnlock.Skill;
-            });
-            if (_stage != null)
-            {
-                OpenTreasureStageTip(_stage.stage,m_SkillLockBtn.transform as RectTransform);
-            }
-        }
-
-        private void OnStageFuncClick()
-        {
-            if (model.treasureStepUpShow)
-            {
-                return;
-            }
-            var _stage = m_Treasure.treasureStages.Find((x) =>
-            {
-                return x.unlockType == TreasureStageUnlock.Func;
-            });
-            if (_stage != null)
-            {
-                OpenTreasureStageTip(_stage.stage,m_FuncLockBtn.transform as RectTransform);
-            }
-        }
-
-        private void OnStagePrivilegeClick()
-        {
-            if (model.treasureStepUpShow)
-            {
-                return;
-            }
-            if (!FuncOpen.Instance.IsFuncOpen(126))
-            {
-                FuncOpen.Instance.ProcessorFuncErrorTip(126);
-                return;
-            }
-            var _stage = m_Treasure.treasureStages.Find((x) =>
-            {
-                return x.unlockType == TreasureStageUnlock.Privilege;
-            });
-            if (_stage != null)
-            {
-                OpenTreasureStageTip(_stage.stage, m_PrivilegeLockBtn.transform as RectTransform);
             }
         }
 
@@ -792,7 +713,7 @@
         {
             var config = ConfigManager.Instance.GetTemplate<TreasureConfig>(model.selectedTreasure);
             if (!m_Init || config == null || (TreasureCategory)config.Category != TreasureCategory.Human
-                || m_Treasure.state != TreasureState.Collected || m_Treasure.IsMaxStage())
+                || m_Treasure.state != TreasureState.Collected || m_Treasure.IsHighestStage)
             {
                 return;
             }
@@ -870,7 +791,15 @@
                         model.SetTreasureStageShow(m_Treasure.id, -1);
                         m_TreasureAnimation.OnStageLock(m_Treasure.GetStageIndex(m_Treasure.stage));
                     }
-                    CheckGuide65();
+                    if (!m_Treasure.IsHighestStage)
+                    {
+                        CheckGuide65();
+                    }
+                    else if (FuncOpen.Instance.IsFuncOpen(82) && !model.GetSpAnim(m_Treasure.id))
+                    {
+                        m_TreasureAnimation.step = TreasureAnimation.TreasureShowStep.FirstPotential;
+                        UpdateStage(2);
+                    }
                     break;
                 case TreasureAnimation.TreasureShowStep.FirstUnLock:
                     UpdateLevelUpSfx(false);
@@ -894,7 +823,7 @@
         {
             if (_win is TreasureNewStageWin)
             {
-                if (m_Treasure.IsMaxStage())
+                if (m_Treasure.IsHighestStage && FuncOpen.Instance.IsFuncOpen(82))
                 {
                     m_TreasureAnimation.step = TreasureAnimation.TreasureShowStep.FirstPotential;
                     UpdateStage(2);
@@ -919,7 +848,7 @@
 
         private void RequestMeridianLine()
         {
-            if (m_Treasure.IsMaxStage())
+            if (m_Treasure.IsHighestStage && FuncOpen.Instance.IsFuncOpen(82))
             {
                 return;
             }
@@ -981,7 +910,7 @@
             {
                 case TreasureStageUnlock.Func:
                     m_ContainerTip.gameObject.SetActive(true);
-                    var _funcConfig = ConfigManager.Instance.GetTemplate<FuncOpenLVConfig>(m_Treasure.unLockFunc);
+                    var _funcConfig = ConfigManager.Instance.GetTemplate<FuncOpenLVConfig>(stage.func);
                     m_NewStageTip.text = StringUtility.Contact(Language.Get("TreasureGetNewFunc"),
                         UIHelper.GetTextColorByItemColor(TextColType.Green, _funcConfig.Remark));
                     break;
@@ -1016,9 +945,14 @@
                 case TreasureStageUnlock.Func:
                     StartScreenShot();
                     break;
-                case TreasureStageUnlock.Privilege:
+                case TreasureStageUnlock.Item:
                 case TreasureStageUnlock.Property:
                     WindowCenter.Instance.Open<TreasureNewStageWin>(true);
+                    break;
+                case TreasureStageUnlock.Treasure:
+                    WindowJumpMgr.Instance.ClearJumpData();
+                    WindowCenter.Instance.Open<MainInterfaceWin>();
+                    CloseImmediately();
                     break;
             }
         }
@@ -1178,30 +1112,15 @@
                         m_TreasureStageDesc.text = Language.Get("TreasureLevelUpSkill", _funcCfg.Remark);
                         m_CurrentStageIcon.SetSprite(_funcCfg.Icon);
                         break;
-                    case TreasureStageUnlock.Privilege:
-                        var privilege = m_Treasure.treasureStages[m_Treasure.StageCount - 1];
-                        var _privilegeCfg = ConfigManager.Instance.GetTemplate<TreasurePrivilegeConfig>(_nextStage.privilege);
-                        if (!FuncOpen.Instance.IsFuncOpen(126))
-                        {
-                            m_CurrentStageIcon.SetSprite("UnKnowIcon");
-                            if (!FuncOpen.Instance.IsFuncOpen(126))
-                            {
-                                var funcConfig = ConfigManager.Instance.GetTemplate<FuncOpenLVConfig>(126);
-                                m_TreasureStageDesc.text = Language.Get("TreasurePrivilegeFuncLimit", funcConfig.LimitLV, funcConfig.Remark);
-                            }
-                        }
-                        else
-                        {
-                            m_CurrentStageIcon.SetSprite(_privilegeCfg.Icon);
-                            if (PlayerDatas.Instance.baseData.LV >= _nextStage.limitLevel)
-                            {
-                                m_TreasureStageDesc.text = _privilegeCfg.Name;
-                            }
-                            else
-                            {
-                                m_TreasureStageDesc.text = Language.Get("TreasurePrivilege_Unlock", _nextStage.limitLevel);
-                            }
-                        }
+                    case TreasureStageUnlock.Item:
+                        var _itemConfig = ConfigManager.Instance.GetTemplate<ItemConfig>(_nextStage.item.id);
+                        m_CurrentStageIcon.SetSprite(_itemConfig.IconKey);
+                        m_TreasureStageDesc.text = Language.Get("TreasureLevelUpItem", _itemConfig.ItemName);
+                        break;
+                    case TreasureStageUnlock.Treasure:
+                        var _treasureConfig = ConfigManager.Instance.GetTemplate<TreasureConfig>(_nextStage.treasure);
+                        m_CurrentStageIcon.SetSprite(_treasureConfig.Icon);
+                        m_TreasureStageDesc.text = Language.Get("TreasureLevelUpTreasure", _treasureConfig.Name);
                         break;
                 }
             }

--
Gitblit v1.8.0