DivineSenceLevelPreviewPanel.cs 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. using System.Collections.Generic;
  2. using System.Linq;
  3. using Excel2Json;
  4. using Fort23.Core;
  5. using Fort23.UTool;
  6. using Utility;
  7. namespace Fort23.Mono
  8. {
  9. [UIBinding(prefab = "DivineSenceLevelPreviewPanel")]
  10. public partial class DivineSenceLevelPreviewPanel : UIPanel
  11. {
  12. private void Init()
  13. {
  14. }
  15. protected override void AddEvent()
  16. {
  17. }
  18. protected override void DelEvent()
  19. {
  20. }
  21. public override void AddButtonEvent()
  22. {
  23. Btn_Close.onClick.AddListener(() => { UIManager.Instance.HideUIUIPanel(this); });
  24. }
  25. public override CTask<bool> AsyncInit(object[] uiData)
  26. {
  27. DivineSenseConfig divineSenseConfig = ConfigComponent.Instance.Get<DivineSenseConfig>(AccountFileInfo.Instance.playerData.divineSenseLevel);
  28. DivineSenseConfig[] divineSenseConfigs = ConfigComponent.Instance.GetAll<DivineSenseConfig>();
  29. List<float> probabilities = UtilTools.CalculateProbabilities(divineSenseConfig.QualityBonusChance.ToList());
  30. for (var i = 0; i < CurrentBls.Count; i++)
  31. {
  32. CurrentBls[i].text = $"{probabilities[i] * 100:F2}%";
  33. }
  34. Text_CurrentLevel.text = $"当前等级预览:{AccountFileInfo.Instance.playerData.divineSenseLevel}";
  35. if (divineSenseConfig.ID >= divineSenseConfigs.Length)
  36. {
  37. for (var i = 0; i < NextBls.Count; i++)
  38. {
  39. NextBls[i].text = $"Max";
  40. }
  41. Text_NextLevel.text = $"Max";
  42. }
  43. else
  44. {
  45. List<float> probabilities1 = UtilTools.CalculateProbabilities(divineSenseConfigs[AccountFileInfo.Instance.playerData.divineSenseLevel].QualityBonusChance.ToList());
  46. for (var i = 0; i < NextBls.Count; i++)
  47. {
  48. NextBls[i].text = $"{probabilities1[i] * 100:F2}%";
  49. }
  50. Text_NextLevel.text = $"下级预览:{AccountFileInfo.Instance.playerData.divineSenseLevel + 1}";
  51. }
  52. return base.AsyncInit(uiData);
  53. }
  54. public static async CTask OpenPanel()
  55. {
  56. DivineSenceLevelPreviewPanel divineSenceLevelPreviewPanel = await UIManager.Instance.LoadAndOpenPanel<DivineSenceLevelPreviewPanel>(null, UILayer.Top);
  57. }
  58. }
  59. }