ZhuanPanPanel.cs 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174
  1. using System;
  2. using System.Collections.Generic;
  3. using Common.Utility.CombatEvent;
  4. using Fort23.Core;
  5. using GameLogic.Combat.CombatTool;
  6. using GameLogic.Combat.Hero;
  7. using GameLogic.Combat.Hero.Turntable;
  8. using GameLogic.Combat.Skill;
  9. using UnityEngine;
  10. namespace Fort23.Mono
  11. {
  12. [UIBinding(prefab = "ZhuanPanPanel")]
  13. public partial class ZhuanPanPanel : UIPanel
  14. {
  15. private List<gf_widget> _gfWidgets = new List<gf_widget>();
  16. public static async CTask OpenZhuanPanPanel()
  17. {
  18. ZhuanPanPanel zhuanPanPanel =
  19. await UIManager.Instance.LoadAndOpenPanel<ZhuanPanPanel>(null, UILayer.Bottom);
  20. zhuanPanPanel.ShowPanel();
  21. }
  22. public async CTask ShowPanel()
  23. {
  24. UIManager.Instance.DormancyAllGComponent<WuXingGongFaWidget>();
  25. for (int i = 0; i < 5; i++)
  26. {
  27. double hd = i * 72 * Math.PI / 180f;
  28. double a = Math.Cos(hd);
  29. double b = -Math.Sin(hd);
  30. double c = Math.Sin(hd);
  31. double d = a;
  32. double x = a * 0 + b * 120;
  33. double y = c * 0 + d * 120;
  34. int index = i;
  35. WuXingGongFaWidget widget = await UIManager.Instance.CreateGComponentForObject<WuXingGongFaWidget>(
  36. WuXingGongFaWidget, null, root: pan,
  37. isInstance: true);
  38. widget.transform.anchoredPosition = new Vector2((float)x, (float)y);
  39. widget.ShowWidget(index);
  40. }
  41. }
  42. private void Init()
  43. {
  44. }
  45. protected override void AddEvent()
  46. {
  47. StaticUpdater.Instance.AddLateUpdateCallBack(Update);
  48. CombatEventManager.Instance.AddEventListener(CombatEventType.ExercisesAlter, ExercisesAlter);
  49. CombatEventManager.Instance.AddEventListener(CombatEventType.TaoismSkillAlter, TaoismSkillAlter);
  50. }
  51. protected override void DelEvent()
  52. {
  53. StaticUpdater.Instance.RemoveLateUpdateCallBack(Update);
  54. CombatEventManager.Instance.RemoveEventListener(CombatEventType.ExercisesAlter, ExercisesAlter);
  55. // CombatEventManager.Instance.RemoveEventListener(CombatEventType.AddUseGongFa, AddUseGongFa);
  56. CombatEventManager.Instance.RemoveEventListener(CombatEventType.TaoismSkillAlter, TaoismSkillAlter);
  57. }
  58. public override void AddButtonEvent()
  59. {
  60. lanLiang_button.onClick.AddListener(() => { SkillSelectPanel.OpenSkillSelectPanel(); });
  61. }
  62. private void TaoismSkillAlter(IEventData iEventData)
  63. {
  64. }
  65. private async void ExercisesAlter(IEventData iEventData)
  66. {
  67. _gfWidgets.Clear();
  68. UIManager.Instance.DormancyAllGComponent<gf_widget>();
  69. CombatHeroSkillControl combatHeroSkillControl = CombatController.currActiveCombat.CombatHeroController
  70. .playerHeroEntity.CombatHeroSkillControl
  71. .This<CombatHeroSkillControl>();
  72. for (int i = 0; i < combatHeroSkillControl.SkillTurntable.allSkillSlots.Count; i++)
  73. {
  74. SkillSlots skillBasic = combatHeroSkillControl.SkillTurntable.allSkillSlots[i];
  75. if (skillBasic == null)
  76. {
  77. continue;
  78. }
  79. gf_widget gfWidget = await UIManager.Instance.CreateGComponentForObject<gf_widget>(this.gf_widget, null,
  80. Gf_root, isInstance: true);
  81. gfWidget.SkillBasic = skillBasic;
  82. gfWidget.InitWidget(skillBasic);
  83. _gfWidgets.Add(gfWidget);
  84. }
  85. }
  86. public void Update()
  87. {
  88. if (CombatController.currActiveCombat == null ||
  89. CombatController.currActiveCombat.CombatHeroController == null ||
  90. CombatController.currActiveCombat.CombatHeroController.playerHeroEntity == null || CombatController
  91. .currActiveCombat.CombatHeroController.playerHeroEntity.CombatHeroSkillControl == null)
  92. {
  93. return;
  94. }
  95. CombatHeroSkillControl combatHeroSkillControl = CombatController.currActiveCombat.CombatHeroController
  96. .playerHeroEntity.CombatHeroSkillControl
  97. .This<CombatHeroSkillControl>();
  98. if (combatHeroSkillControl.taoismSkillBasic != null)
  99. {
  100. DS60101 ds60101 = combatHeroSkillControl.taoismSkillBasic as DS60101;
  101. if (ds60101 != null)
  102. {
  103. lanLiang.fillAmount = ds60101.currEnergy / ds60101.SelfSkillConfig.effectValue[1];
  104. lanLiang.color = !ds60101._updateTime
  105. ? new Color(1f, 0.96f, 0f)
  106. : new Color(0.96f, 0f, 1f);
  107. }
  108. }
  109. // lanLiang.fillAmount = combatHeroSkillControl.addChongNeng / 150f;
  110. // lanLiang.color = !combatHeroSkillControl.isKuoLiQuanKai
  111. // ? new Color(1f, 0.96f, 0f)
  112. // : new Color(0.96f, 0f, 1f);
  113. for (int i = 0; i < _gfWidgets.Count; i++)
  114. {
  115. gf_widget gfWidget = _gfWidgets[i];
  116. // if (gfWidget.useCount != gfWidget.SkillBasic.useCount)
  117. // {
  118. // gfWidget.useCount = gfWidget.SkillBasic.useCount;
  119. // switch (gfWidget.SkillBasic.useTriggerType)
  120. // {
  121. // case 0:
  122. // jin.Play("show", false);
  123. // break;
  124. // case 1:
  125. // mu.Play("show", false);
  126. // break;
  127. // case 2:
  128. // shui.Play("show", false);
  129. // break;
  130. // case 3:
  131. // huo.Play("show", false);
  132. // break;
  133. // case 4:
  134. // tu.Play("show", false);
  135. // break;
  136. // }
  137. // }
  138. double hd = gfWidget.SkillBasic.angle * Math.PI / 180f;
  139. double a = Math.Cos(hd);
  140. double b = -Math.Sin(hd);
  141. double c = Math.Sin(hd);
  142. double d = a;
  143. double x = a * 0 + b * 60;
  144. double y = c * 0 + d * 60;
  145. gfWidget.transform.anchoredPosition = new Vector2((float)x, (float)y);
  146. }
  147. }
  148. }
  149. }