| System/Treasure/TreasureAnimation.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/Treasure/TreasureData.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/Treasure/TreasureLevelUpWin.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/Treasure/TreasureMeridianBehaviour.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/Treasure/TreasureModel.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
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); System/Treasure/TreasureData.cs
@@ -249,18 +249,21 @@ stage = _lv; exp = _exp; hasClickChallenge = _hasClickChallenge; if ((this is HumanTreasure) && IsMaxStage()) if ((this is HumanTreasure) && IsHighestStage) { (this as HumanTreasure).humanState = HumanTreasureState.Potential; } } public bool IsMaxStage() public bool IsHighestStage { return treasureStages.FindIndex((x) => get { return x.stage >= stage + 1; }) == -1; return treasureStages.FindIndex((x) => { return x.stage >= stage + 1; }) == -1; } } public bool IsUnlockStage(TreasureStageUnlock _type) @@ -305,7 +308,7 @@ m_State = value; if (value == HumanTreasureState.CastSoul) { if (IsMaxStage()) if (IsHighestStage) { m_State = HumanTreasureState.Potential; } System/Treasure/TreasureLevelUpWin.cs
@@ -378,7 +378,8 @@ { m_ContainerUnGet.gameObject.SetActive(false); if ((m_Treasure.IsMaxStage() && FuncOpen.Instance.IsFuncOpen(82)) || _state == 2) if ((m_Treasure.IsHighestStage && FuncOpen.Instance.IsFuncOpen(82) && model.GetSpAnim(m_Treasure.id)) || _state == 2) { if (_state != 2) { @@ -389,6 +390,7 @@ else { m_TreasureProperty.SetActive(true); model.SetSpAnim(m_Treasure.id); } m_TreasurePotential.Display(m_Treasure, _state); } @@ -423,6 +425,15 @@ private void OnFuncStateChangeEvent(int _id) { if (_id == 82 && FuncOpen.Instance.IsFuncOpen(_id) && model.serverInited) { if (m_TreasureAnimation.stepComplete && m_Treasure.IsHighestStage && !model.GetSpAnim(m_Treasure.id)) { m_TreasureAnimation.step = TreasureAnimation.TreasureShowStep.FirstPotential; UpdateStage(2); } } } private void UpdateTreasureUnlockDetail() @@ -759,7 +770,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; } @@ -830,20 +841,28 @@ if (model.openFromTreasureSoul) { var config = ScriptableObjectLoader.LoadSoTreasureMeridian(model.selectedTreasure); m_TreasureMeridians[config.stagePointNum - 1].StartSoulTween(); m_TreasureMeridians[m_Treasure.StageCount - 1].StartSoulTween(); } if (model.GetTreasureStageShow(m_Treasure.id) != -1) { 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); m_TreasureProperty.SetActive(m_Treasure.state == TreasureState.Collected); var _config = ScriptableObjectLoader.LoadSoTreasureMeridian(model.selectedTreasure); for (int i = 0; i < _config.stagePointNum; i++) for (int i = 0; i < m_Treasure.treasureStages.Count; i++) { m_TreasureMeridians[i].RequestStateSfx(); } @@ -861,7 +880,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); @@ -886,12 +905,11 @@ private void RequestMeridianLine() { if (m_Treasure.IsMaxStage()) if (m_Treasure.IsHighestStage && FuncOpen.Instance.IsFuncOpen(82)) { return; } var _config = ScriptableObjectLoader.LoadSoTreasureMeridian(model.selectedTreasure); for (int i = 0; i < _config.stagePointNum; i++) for (int i = 0; i < m_Treasure.treasureStages.Count; i++) { m_TreasureMeridians[i].RequestSfx(); } System/Treasure/TreasureMeridianBehaviour.cs
@@ -296,6 +296,10 @@ public void RequestSfx() { if (m_Treasure == null) { return; } var _stage = model.GetTreasureStageShow(m_Treasure.id); PlayLineSfx(m_Treasure.stage < m_TreasureStage.stage || _stage == m_TreasureStage.stage ? 4 : 2); RequestStateSfx(); System/Treasure/TreasureModel.cs
@@ -512,7 +512,14 @@ if (treasure is HumanTreasure) { var humanTreasure = treasure as HumanTreasure; humanTreasure.humanState = HumanTreasureState.CastSoul; if (humanTreasure.IsHighestStage && FuncOpen.Instance.IsFuncOpen(82)) { humanTreasure.humanState = HumanTreasureState.Potential; } else { humanTreasure.humanState = HumanTreasureState.CastSoul; } UpdateCastSoulRedpoint(treasure.id); if (GetTreasureUnlockShow(TreasureCategory.Human) == treasure.id) { @@ -757,7 +764,7 @@ if (_functionId == 82) { UpdateSkillLevelUpRedpoints(); if (!FuncOpen.Instance.IsFuncOpen(82) || !serverInited) if (!FuncOpen.Instance.IsFuncOpen(82)) { return; } @@ -766,8 +773,13 @@ { Treasure treasure; TryGetTreasure(list[i], out treasure); if (WindowCenter.Instance.CheckOpen<TreasureLevelUpWin>() && selectedTreasure == list[i] && treasure.IsMaxStage()) var humanTreasure = treasure as HumanTreasure; if (treasure.state == TreasureState.Collected && treasure.IsHighestStage && humanTreasure.humanState != HumanTreasureState.Potential) { humanTreasure.humanState = HumanTreasureState.Potential; } if (!serverInited || !treasure.IsHighestStage) { continue; } @@ -867,7 +879,7 @@ return; } var anyPointialLevelupAble = false; if (treasure.state == TreasureState.Collected && treasure.IsMaxStage()) if (treasure.state == TreasureState.Collected && treasure.IsHighestStage) { for (int i = 0; i < treasure.potentials.Count; i++) { @@ -1051,7 +1063,7 @@ return; } if((TreasureCategory)config.Category == TreasureCategory.Human && treasure.IsMaxStage()) if((TreasureCategory)config.Category == TreasureCategory.Human && treasure.IsHighestStage) { return; }