WuXingGongFaWidget.cs 6.8 KB

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