SkillSelectPanel.cs 4.3 KB

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