少年修仙传客户端代码仓库
client_linchunjie
2018-08-18 f4f07847775c12b338d8bccedbbabc067dc1ae2c
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;
                }
            }