DivineSenceLevelPreviewPanel.cs 2.4 KB

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