SkillSelectPanel.cs 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. using System;
  2. using System.Collections.Generic;
  3. using Fort23.Core;
  4. using UnityEngine;
  5. namespace Fort23.Mono
  6. {
  7. [UIBinding(prefab = "SkillSelectPanel")]
  8. public partial class SkillSelectPanel : UIPanel
  9. {
  10. private bool _isSelectSkill;
  11. private List<SkillKongWidget> allKongSkill = new List<SkillKongWidget>();
  12. private int selectSkillConfig;
  13. private bool isAlter;
  14. public static async CTask OpenSkillSelectPanel()
  15. {
  16. await UIManager.Instance.LoadAndOpenPanel<SkillSelectPanel>(null, UILayer.Middle);
  17. }
  18. private void Init()
  19. {
  20. }
  21. protected override void AddEvent()
  22. {
  23. }
  24. protected override void DelEvent()
  25. {
  26. }
  27. public override void AddButtonEvent()
  28. {
  29. guanbi.onClick.AddListener(() => { UIManager.Instance.HideUIUIPanel(this); });
  30. }
  31. public override async CTask Open()
  32. {
  33. await base.Open();
  34. allKongSkill.Clear();
  35. UIManager.Instance.DormancyAllGComponent<SkillKongWidget>();
  36. UIManager.Instance.DormancyAllGComponent<SkillWidget>();
  37. int[] allSkill = new[] { 10011, 20011, 11011, 12011, 13011, 5010011, 5011011, 5012011, 5013011, 5014011,5015011};
  38. for (int i = 0; i < allSkill.Length; i++)
  39. {
  40. int id = allSkill[i];
  41. SkillWidget skillWidget = await UIManager.Instance.CreateGComponentForObject<SkillWidget>(SkillWidget,
  42. null, SkillWidgetRoot,
  43. isInstance: true);
  44. skillWidget.InitSkillWidget(id, this);
  45. }
  46. Vector2 dir = new Vector2(0, 1);
  47. for (int i = 0; i < 10; i++)
  48. {
  49. int index = i;
  50. double hd = (36 * i) * Math.PI / 180f;
  51. double a = Math.Cos(hd);
  52. double b = -Math.Sin(hd);
  53. double c = Math.Sin(hd);
  54. double d = a;
  55. double x = a * 0 + b * 114;
  56. double y = c * 0 + d * 114;
  57. Vector2 pos = new Vector2((float)x, (float)y);
  58. SkillKongWidget skillKongWidget = await UIManager.Instance.CreateGComponentForObject<SkillKongWidget>(
  59. kongdongs.gameObject,
  60. null, SkillKongWeiRoot,
  61. isInstance: true);
  62. skillKongWidget.InitWidget(index, this);
  63. skillKongWidget.SetSKill(PlayerManager.Instance.useSkillId[index]);
  64. skillKongWidget.transform.anchoredPosition = pos;
  65. allKongSkill.Add(skillKongWidget);
  66. }
  67. }
  68. public void SelectSkill(int skillConfig)
  69. {
  70. selectSkillConfig = skillConfig;
  71. _isSelectSkill = true;
  72. for (int i = 0; i < allKongSkill.Count; i++)
  73. {
  74. allKongSkill[i].SelectState(true);
  75. }
  76. }
  77. private void CloseSelect()
  78. {
  79. _isSelectSkill = false;
  80. selectSkillConfig = 0;
  81. for (int i = 0; i < allKongSkill.Count; i++)
  82. {
  83. allKongSkill[i].SelectState(false);
  84. }
  85. }
  86. public void SelectKongSkill(SkillKongWidget skillKongWidget)
  87. {
  88. isAlter = true;
  89. if (!_isSelectSkill || selectSkillConfig == 0)
  90. {
  91. PlayerManager.Instance.useSkillId[skillKongWidget.index] = 0;
  92. skillKongWidget.Cleared();
  93. return;
  94. }
  95. skillKongWidget.SetSKill(selectSkillConfig);
  96. PlayerManager.Instance.useSkillId[skillKongWidget.index] = selectSkillConfig;
  97. CloseSelect();
  98. }
  99. public override void Hide()
  100. {
  101. base.Hide();
  102. if (isAlter)
  103. {
  104. PlayerManager.Instance.SaveUseSkill();
  105. }
  106. isAlter = false;
  107. }
  108. }
  109. }