| System/Skill/QuickSetting.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/Treasure/TreasureComponent.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/Treasure/TreasureModel.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/Treasure/TreasureSelectWin.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/Treasure/UI3DTreasureSelectStage.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
System/Skill/QuickSetting.cs
@@ -15,6 +15,7 @@ quickSettingDic.Add(QuickSettingType.FairyLeagueGuide, new QuickSettingRange(QuickSettingType.FairyLeagueGuide, 1)); quickSettingDic.Add(QuickSettingType.AutoUseXp, new QuickSettingRange(QuickSettingType.AutoUseXp, 1)); quickSettingDic.Add(QuickSettingType.SpAnim, new QuickSettingRange(QuickSettingType.SpAnim, 10)); quickSettingDic.Add(QuickSettingType.TreasureHighestAnim, new QuickSettingRange(QuickSettingType.TreasureHighestAnim, 10)); setting = new string(UCharacter, 100); DTC0102_tagCDBPlayer.beforePlayerDataInitializeEvent += BeforePlayerDataInitializeEvent; } @@ -109,6 +110,7 @@ FairyLeagueGuide, AutoUseXp, SpAnim, TreasureHighestAnim } public struct QuickSettingRange { System/Treasure/TreasureComponent.cs
@@ -45,6 +45,7 @@ SFXController lockEffect; SFXController challengeSfx; SFXController specialSfx; SFXController highestSfx; public Treasure3DConfig paramConfig { get; set; } @@ -74,6 +75,7 @@ RequestBottom(); RequestBackLight(); RequestRedpoint(); RequestHighestEffect(); UpdateTreasureState(); UpdateParam(); RedpointCenter.Instance.redpointValueChangeEvent -= RedpointValueChangeEvent; @@ -89,6 +91,7 @@ RecycleCollectingSfx(); RecycleRedpoint(); RecycleCondition(); RecycleHighestEffect(); RedpointCenter.Instance.redpointValueChangeEvent -= RedpointValueChangeEvent; } interactProcessor.SetActive(_active); @@ -339,6 +342,11 @@ CloserState(); } UpdateParam(); } public void UpdateTreasureStage() { RequestHighestEffect(); } private void RequestBackLight() @@ -704,6 +712,35 @@ } } public void RequestHighestEffect() { RecycleHighestEffect(); Treasure _treasure; if (category == TreasureCategory.Human && model.TryGetTreasure(treasureId, out _treasure) && _treasure.IsHighestStage && !model.GetTreasureFinishAnim(treasureId)) { highestSfx = SFXPlayUtility.Instance.Play(5198, root); if (highestSfx != null) { highestSfx.duration = 0; LayerUtility.SetLayer(highestSfx.gameObject, LayerUtility.UILayer, true); highestSfx.transform.localPosition = Vector3.zero; highestSfx.transform.LookAt(UI3DTreasureSelectStage.Instance.center); } } } public void RecycleHighestEffect() { if (highestSfx != null) { highestSfx.gameObject.SetActive(false); SFXPlayUtility.Instance.Release(highestSfx); highestSfx = null; } } public void CloserState() { RecycleBottom(); @@ -713,6 +750,7 @@ RecycleLockEffect(); RecycleRedpoint(); RecycleCondition(); RecycleHighestEffect(); RequestSpecialEffect(); Treasure _treasure; @@ -741,6 +779,7 @@ RequestBottom(); RequestName(); RequestRedpoint(); RequestHighestEffect(); UpdateTreasureState(); RecycleSpecialEffect(); UpdateParam(); @@ -793,6 +832,31 @@ UI3DTreasureSelectStage.Instance.CompleteUnlock(); model.treasureGotoId = 0; } public void PlayHighestShow() { RecycleHighestEffect(); var _effect = SFXPlayUtility.Instance.Play(5197, root); if (_effect != null) { LayerUtility.SetLayer(_effect.gameObject, LayerUtility.UILayer, true); _effect.transform.LookAt(UI3DTreasureSelectStage.Instance.center); _effect.transform.localPosition = Vector3.zero; _effect.duration = 3.0f; } SnxxzGame.Instance.StartCoroutine(Co_HighestShow()); } IEnumerator Co_HighestShow() { yield return WaitingForSecondConst.GetWaitForSeconds(2.2f); model.SetTreasureFinishAnim(treasureId, false); if (display) { UpdateTreasureStage(); } UI3DTreasureSelectStage.Instance.ReCheckTreasureHighest(); } } } System/Treasure/TreasureModel.cs
@@ -378,6 +378,38 @@ QuickSetting.Instance.SendPackage(); } public bool GetTreasureFinishAnim(int _treasureId) { if (_treasureId == 101) { return false; } var list = GetTreasureCategory(TreasureCategory.Human); var index = list.IndexOf(_treasureId); if (index == -1) { return false; } uint value = 0; uint.TryParse(QuickSetting.Instance.GetQuickSetting(QuickSetting.QuickSettingType.TreasureHighestAnim, 0), out value); return MathUtility.GetBitValue(value, (ushort)index); } public void SetTreasureFinishAnim(int _treasureId, bool anim = true) { var list = GetTreasureCategory(TreasureCategory.Human); var index = list.IndexOf(_treasureId); if (index == -1) { return; } uint value = 0; uint.TryParse(QuickSetting.Instance.GetQuickSetting(QuickSetting.QuickSettingType.TreasureHighestAnim, 0), out value); int bitValue = MathUtility.SetBitValue((int)value, (ushort)index, anim); QuickSetting.Instance.SetQuickSetting(QuickSetting.QuickSettingType.TreasureHighestAnim, bitValue); QuickSetting.Instance.SendPackage(); } public bool TryGetUnlockShowTreasure(out int _id) { _id = 0; @@ -1152,6 +1184,10 @@ _up = true; } treasure.UpdateTreasureLevelExp(package.InfoList[i].LV, (int)package.InfoList[i].Exp, package.InfoList[i].State == 1); if (serverInited && treasure.IsHighestStage) { SetTreasureFinishAnim(treasure.id); } if (treasureLevelProgressUpdateEvent != null) { treasureLevelProgressUpdateEvent(treasure.id); System/Treasure/TreasureSelectWin.cs
@@ -43,7 +43,8 @@ m_HumanBtn.onClick.AddListener(() => { if (UI3DTreasureSelectStage.Instance.currentCategory == TreasureCategory.Human || UI3DTreasureSelectStage.Instance.UnlockShowing || UI3DTreasureSelectStage.Instance.IsCloser) || UI3DTreasureSelectStage.Instance.UnlockShowing || UI3DTreasureSelectStage.Instance.IsCloser || UI3DTreasureSelectStage.Instance.treasureFinishShowing) { return; } @@ -53,7 +54,8 @@ m_DemonBtn.onClick.AddListener(() => { if (UI3DTreasureSelectStage.Instance.currentCategory == TreasureCategory.Demon || UI3DTreasureSelectStage.Instance.UnlockShowing || UI3DTreasureSelectStage.Instance.IsCloser) || UI3DTreasureSelectStage.Instance.UnlockShowing || UI3DTreasureSelectStage.Instance.IsCloser || UI3DTreasureSelectStage.Instance.treasureFinishShowing) { return; } @@ -63,7 +65,8 @@ m_FairyBtn.onClick.AddListener(() => { if (UI3DTreasureSelectStage.Instance.currentCategory == TreasureCategory.Fairy || UI3DTreasureSelectStage.Instance.UnlockShowing || UI3DTreasureSelectStage.Instance.IsCloser) || UI3DTreasureSelectStage.Instance.UnlockShowing || UI3DTreasureSelectStage.Instance.IsCloser || UI3DTreasureSelectStage.Instance.treasureFinishShowing) { return; } @@ -71,7 +74,7 @@ }); m_BackBtn.onClick.AddListener(() => { if (UI3DTreasureSelectStage.Instance.UnlockShowing) if (UI3DTreasureSelectStage.Instance.UnlockShowing || UI3DTreasureSelectStage.Instance.treasureFinishShowing) { return; } @@ -83,6 +86,7 @@ protected override void OnPreOpen() { UI3DTreasureSelectStage.Instance.UnlockShowing = false; UI3DTreasureSelectStage.Instance.treasureFinishShowing = false; if (!UI3DTreasureSelectStage.Instance.IsOpen) { UI3DTreasureSelectStage.Instance.Open(false, model.currentCategory); @@ -90,6 +94,8 @@ UI3DTreasureSelectStage.Instance.OnCameraStartEvent += OnCameraStartEvent; UI3DTreasureSelectStage.Instance.OnCameraBackComplete += OnCameraBackComplete; UI3DTreasureSelectStage.Instance.OnUnlockComplete += OnUnlockComplete; UI3DTreasureSelectStage.Instance.OnHighestComplete += OnHighestComplete; UI3DTreasureSelectStage.Instance.startAnimation += StartAnimation; m_TreasureDrag.OnValueChange += OnValueChange; m_TreasureDrag.OnDragComplete += OnDragComplete; m_TreasureDrag.OnDragBegine += OnDragBegine; @@ -116,6 +122,8 @@ UI3DTreasureSelectStage.Instance.OnCameraStartEvent -= OnCameraStartEvent; UI3DTreasureSelectStage.Instance.OnCameraBackComplete -= OnCameraBackComplete; UI3DTreasureSelectStage.Instance.OnUnlockComplete -= OnUnlockComplete; UI3DTreasureSelectStage.Instance.OnHighestComplete -= OnHighestComplete; UI3DTreasureSelectStage.Instance.startAnimation -= StartAnimation; m_TreasureDrag.OnValueChange -= OnValueChange; m_TreasureDrag.OnDragComplete -= OnDragComplete; m_TreasureDrag.OnDragBegine -= OnDragBegine; @@ -184,8 +192,9 @@ private void UpdateButtonState() { var _closer = UI3DTreasureSelectStage.Instance.IsCloser || UI3DTreasureSelectStage.Instance.UnlockShowing; if (UI3DTreasureSelectStage.Instance.UnlockShowing) || UI3DTreasureSelectStage.Instance.UnlockShowing|| UI3DTreasureSelectStage.Instance.treasureFinishShowing; if (UI3DTreasureSelectStage.Instance.UnlockShowing || UI3DTreasureSelectStage.Instance.treasureFinishShowing) { m_BackBtn.gameObject.SetActive(false); } @@ -199,6 +208,16 @@ m_FairyBtn.gameObject.SetActive(!_closer); } private void StartAnimation() { UpdateButtonState(); } private void OnHighestComplete() { UpdateButtonState(); } private void OnUnlockComplete() { UpdateButtonState(); System/Treasure/UI3DTreasureSelectStage.cs
@@ -156,6 +156,7 @@ public bool CloserComplete { get; private set; } public int jumpTreasure { get; private set; } public bool UnlockShowing { get; set; } public bool treasureFinishShowing { get; set; } public bool Preloading { get; private set; } public GameObject currentTreasureTitle @@ -212,6 +213,8 @@ public event Action OnCameraCloserComplete; public event Action OnCameraBackEvent; public event Action OnUnlockComplete; public event Action OnHighestComplete; public event Action startAnimation; private Dictionary<TreasureCategory, List<TreasureComponent>> m_Treasures = new Dictionary<TreasureCategory, List<TreasureComponent>>(); private Dictionary<TreasureCategory, bool> m_PreloadDict = new Dictionary<TreasureCategory, bool>(); @@ -298,6 +301,7 @@ } model.treasureStateChangeEvent += TreasureStateChangeEvent; model.treasureStageUpEvent += TreasureStageUpEvent; } IEnumerator Co_PreLoad(TreasureCategory _category, Action callback) @@ -320,6 +324,16 @@ { HideAllTreasure(); CloseRenderCamera(); IsCloser = false; CloserComplete = false; UnlockShowing = false; treasureFinishShowing = false; IsOpen = false; jumping = false; Preloading = false; jumpTreasure = 0; var movecomponent = m_CameraControl.GetComponent<SmoothMove>(); if (movecomponent != null) { @@ -327,19 +341,12 @@ } m_CameraControl.localPosition = m_StartPosition; IsCloser = false; CloserComplete = false; UnlockShowing = false; IsOpen = false; jumping = false; Preloading = false; jumpTreasure = 0; CameraController.Instance.CameraObject.gameObject.SetActive(true); m_Camera.enabled = false; WindowCenter.Instance.uiRoot.baseCanvas.gameObject.SetActive(true); model.treasureStateChangeEvent -= TreasureStateChangeEvent; model.treasureStageUpEvent -= TreasureStageUpEvent; model.SetTreasureUnlockShow(currentCategory, 0); if (currentTreasureTitle != null) @@ -370,10 +377,25 @@ } } private void TreasureStageUpEvent(int _id) { var _list = m_Treasures[currentCategory]; var _component = _list.Find((x) => { return x.treasureId == _id; }); if (_component != null && _component.display) { _component.UpdateTreasureStage(); _component.SetLayer(CloserComplete ? LayerUtility.DefaultLayer : LayerUtility.UILayer); } } public void SelectTreasureCategory(TreasureCategory _type, bool _closer = false) { presentSelectIndex = 0; UnlockShowing = false; treasureFinishShowing = false; currentCategory = _type; model.currentCategory = currentCategory; @@ -442,7 +464,11 @@ { var _treasure = 0; int _index = -1; if (model.GetTreasureUnlockShow(currentCategory) != 0) if (CheckTreasureFinish(out _treasure)) { treasureFinishShowing = true; } else if (model.GetTreasureUnlockShow(currentCategory) != 0) { _treasure = model.GetTreasureUnlockShow(currentCategory); model.treasureGotoId = _treasure; @@ -469,6 +495,31 @@ }); } return _index; } private bool CheckTreasureFinish(out int treasureId) { treasureId = 0; if (currentCategory != TreasureCategory.Human) { return false; } var list = model.GetTreasureCategory(TreasureCategory.Human); for (int i = 0; i < list.Count; i++) { if (list[i] == 101) { continue; } Treasure treasure; if (model.TryGetTreasure(list[i], out treasure) && treasure.IsHighestStage && model.GetTreasureFinishAnim(list[i])) { treasureId = list[i]; return true; } } return false; } int Compare(int x, int y) @@ -591,9 +642,20 @@ } } public bool AllowPointClick() { if (IsCloser || UnlockShowing || jumping || draging || BossShowModel.Instance.BossShowing || treasureFinishShowing) { return false; } return true; } public void OnPointDownTreasure(int _treasureId) { if (IsCloser || UnlockShowing || jumping || draging || BossShowModel.Instance.BossShowing) if (!AllowPointClick()) { return; } @@ -622,6 +684,11 @@ var _component = m_Treasures[currentCategory][presentSelectIndex]; _component.PlayUnlockShow(); } else if (treasureFinishShowing) { var _component = m_Treasures[currentCategory][presentSelectIndex]; _component.PlayHighestShow(); } jumpTreasure = 0; } #endregion @@ -641,7 +708,7 @@ public void BegineDrag() { if (IsCloser || UnlockShowing) if (IsCloser || UnlockShowing || treasureFinishShowing) { return; } @@ -906,20 +973,22 @@ private void CameraBackComplete() { if (!IsOpen) { return; } IsCloser = false; if (OnCameraBackComplete != null) { OnCameraBackComplete(); } IsCloser = false; if (!IsOpen) { return; } var _list = m_Treasures[currentCategory]; for (int i = 0; i < _list.Count; i++) { _list[i].SetLayer(LayerUtility.UILayer); } ReCheckTreasureHighest(); } #endregion @@ -984,5 +1053,59 @@ } } #endregion public void ReCheckTreasureHighest() { treasureFinishShowing = false; if (!IsOpen) { return; } var treasureId = 0; if (CheckTreasureFinish(out treasureId)) { treasureFinishShowing = true; } else if (model.GetTreasureUnlockShow(currentCategory) != 0) { UnlockShowing = true; treasureId = model.GetTreasureUnlockShow(currentCategory); model.treasureGotoId = treasureId; } if (treasureId != 0) { var _index = m_Treasures[currentCategory].FindIndex((x) => { return x.treasureId == treasureId; }); if (_index == presentSelectIndex) { var _component = m_Treasures[currentCategory][presentSelectIndex]; if (UnlockShowing) { _component.PlayUnlockShow(); } else if (treasureFinishShowing) { _component.PlayHighestShow(); } } else { Goto(_index); } if (startAnimation != null) { startAnimation(); } } else { if (OnHighestComplete != null) { OnHighestComplete(); } } } } }