WuXingGongFaWidget.cs 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198
  1. using System.Collections.Generic;
  2. using Common.Utility.CombatEvent;
  3. using Fort23.Core;
  4. using GameLogic.Combat.CombatTool;
  5. using GameLogic.Combat.Skill;
  6. using GameLogic.Player;
  7. using UnityEngine;
  8. namespace Fort23.Mono
  9. {
  10. [UIBinding(prefab = "WuXingGongFaWidget")]
  11. public partial class WuXingGongFaWidget : UIComponent
  12. {
  13. public int index;
  14. private SkillBasic currUseSkill;
  15. // private List<DengDaiSkillWidget> currDengDaiSkill = new List<DengDaiSkillWidget>();
  16. private void Init()
  17. {
  18. }
  19. public override void AddEvent()
  20. {
  21. CombatEventManager.Instance.AddEventListener(CombatEventType.HeroHpUpdate, HeroHpUpdate);
  22. CombatEventManager.Instance.AddEventListener(CombatEventType.AddUseGongFa, AddUseGongFa);
  23. CombatEventManager.Instance.AddEventListener(CombatEventType.UseSkill, UseSkill);
  24. CombatEventManager.Instance.AddEventListener(CombatEventType.UseSkillFinish, UseSkillFinish);
  25. CombatEventManager.Instance.AddEventListener(CombatEventType.FillInSkillSlots, FillInSkillSlots);
  26. }
  27. public override void DelEvent()
  28. {
  29. CombatEventManager.Instance.RemoveEventListener(CombatEventType.HeroHpUpdate, HeroHpUpdate);
  30. CombatEventManager.Instance.RemoveEventListener(CombatEventType.AddUseGongFa, AddUseGongFa);
  31. CombatEventManager.Instance.RemoveEventListener(CombatEventType.UseSkill, UseSkill);
  32. CombatEventManager.Instance.RemoveEventListener(CombatEventType.UseSkillFinish, UseSkillFinish);
  33. CombatEventManager.Instance.RemoveEventListener(CombatEventType.FillInSkillSlots, FillInSkillSlots);
  34. }
  35. public override void AddButtonEvent()
  36. {
  37. }
  38. public void ShowWidget(int index)
  39. {
  40. this.index = index;
  41. switch (index)
  42. {
  43. case 0:
  44. Name.text = "金";
  45. myImage.color = new Color(1f, 0.98f, 0.09f);
  46. break;
  47. case 1:
  48. Name.text = "水";
  49. myImage.color = new Color(0.19f, 0.51f, 1f);
  50. break;
  51. case 2:
  52. Name.text = "木";
  53. myImage.color = new Color(0.17f, 1f, 0.35f);
  54. break;
  55. case 3:
  56. Name.text = "火";
  57. myImage.color = new Color(1f, 0.19f, 0.04f);
  58. break;
  59. case 4:
  60. Name.text = "土";
  61. myImage.color = new Color(1f, 0.65f, 0.17f);
  62. break;
  63. }
  64. }
  65. private void FillInSkillSlots(IEventData iEventData)
  66. {
  67. FillInSkillSlotsEventData fillInSkillSlotsEventData = iEventData as FillInSkillSlotsEventData;
  68. if (fillInSkillSlotsEventData.SkillBasic.CombatHeroEntity.IsEnemy)
  69. {
  70. return;
  71. }
  72. // for (int i = 0; i < currDengDaiSkill.Count; i++)
  73. // {
  74. // DengDaiSkillWidget skillWidget = currDengDaiSkill[i];
  75. // if (currDengDaiSkill[i].SkillBasic == fillInSkillSlotsEventData.SkillBasic)
  76. // {
  77. // UIManager.Instance.DormancyGComponent(skillWidget);
  78. // currDengDaiSkill.RemoveAt(i);
  79. // }
  80. // }
  81. }
  82. private async void UseSkillFinish(IEventData iEventData)
  83. {
  84. UseSkillFinishEventData combatUseSkillEventData = iEventData as UseSkillFinishEventData;
  85. if (combatUseSkillEventData.SkillBasic.CombatHeroEntity.IsEnemy)
  86. {
  87. return;
  88. }
  89. SkillBasic skillBasic = combatUseSkillEventData.SkillBasic;
  90. bool isOk = IsMyWuXing(skillBasic.wuXingType);
  91. if (!isOk)
  92. {
  93. return;
  94. }
  95. useSkillIcon.gameObject.SetActive(false);
  96. // DengDaiSkillWidget dengDaiSkillWidget =
  97. // await UIManager.Instance.CreateGComponentForObject<DengDaiSkillWidget>(DengDaiSkillWidget, null,
  98. // root: dengDaiSkill, isInstance: true);
  99. // dengDaiSkillWidget.ShowWidget(skillBasic);
  100. // currDengDaiSkill.Add(dengDaiSkillWidget);
  101. }
  102. private bool IsMyWuXing(WuXingType wuXingType)
  103. {
  104. bool isOk = false;
  105. switch (wuXingType)
  106. {
  107. case WuXingType.Gold:
  108. if (index == 0)
  109. {
  110. isOk = true;
  111. }
  112. break;
  113. case WuXingType.Water:
  114. if (index == 1)
  115. {
  116. isOk = true;
  117. }
  118. break;
  119. case WuXingType.Wood:
  120. if (index == 2)
  121. {
  122. isOk = true;
  123. }
  124. break;
  125. case WuXingType.Fire:
  126. if (index == 3)
  127. {
  128. isOk = true;
  129. }
  130. break;
  131. case WuXingType.Earth:
  132. if (index == 4)
  133. {
  134. isOk = true;
  135. }
  136. break;
  137. }
  138. return isOk;
  139. }
  140. private void UseSkill(IEventData iEventData)
  141. {
  142. CombatUseSkillEventData combatUseSkillEventData = iEventData as CombatUseSkillEventData;
  143. if (!combatUseSkillEventData.useSkill.CombatHeroEntity.IsEnemy)
  144. {
  145. bool isOk = IsMyWuXing(combatUseSkillEventData.useSkill.wuXingType);
  146. if (isOk)
  147. {
  148. currUseSkill = combatUseSkillEventData.useSkill;
  149. useSkillIcon.gameObject.SetActive(true);
  150. useSkillIcon.icon_name = combatUseSkillEventData.useSkill.SelfSkillConfig.icon;
  151. }
  152. }
  153. }
  154. private void AddUseGongFa(IEventData iEventData)
  155. {
  156. AddUseGongFaEventData addUseGongFaEventData = iEventData as AddUseGongFaEventData;
  157. if (!addUseGongFaEventData.SkillBasic.CombatHeroEntity.IsEnemy)
  158. {
  159. bool isOk = IsMyWuXing(addUseGongFaEventData.SkillBasic.wuXingType);
  160. if (isOk)
  161. {
  162. uitween.Play("show", false);
  163. }
  164. }
  165. }
  166. private void HeroHpUpdate(IEventData iEventData)
  167. {
  168. CombatHeroInfo combatHeroInfo = CombatController.currActiveCombat.CombatHeroController
  169. .playerHeroEntity.CurrCombatHeroInfo;
  170. }
  171. }
  172. }