EnemyGf_skill.cs 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184
  1. using Common.Utility.CombatEvent;
  2. using Core.Language;
  3. using Excel2Json;
  4. using Fort23.Core;
  5. using GameLogic.Combat.CombatTool;
  6. using GameLogic.Combat.Hero.Turntable;
  7. using GameLogic.Combat.Skill;
  8. using GameLogic.Player;
  9. using UnityEngine;
  10. namespace Fort23.Mono
  11. {
  12. [UIBinding(prefab = "EnemyGf_skill")]
  13. public partial class EnemyGf_skill : UIComponent
  14. {
  15. public SkillSlots SkillSlots;
  16. public SkillBasic SkillBasic;
  17. public float jd;
  18. public int useCount;
  19. public WuXingType HuangDaoWuXingType;
  20. public CombatHeroEntity combatHeroEntity;
  21. private void Init()
  22. {
  23. }
  24. public override void AddEvent()
  25. {
  26. CombatEventManager.Instance.AddEventListener(CombatEventType.SkillSlotsAlter, SkillSlotsAlter);
  27. CombatEventManager.Instance.AddEventListener(CombatEventType.HuangDaoAlterSlots, HuangDaoAlterSlots);
  28. }
  29. public override void DelEvent()
  30. {
  31. CombatEventManager.Instance.RemoveEventListener(CombatEventType.SkillSlotsAlter, SkillSlotsAlter);
  32. CombatEventManager.Instance.RemoveEventListener(CombatEventType.HuangDaoAlterSlots, HuangDaoAlterSlots);
  33. }
  34. private void HuangDaoAlterSlots(IEventData iEventData)
  35. {
  36. HuangDaoAlterSlotsEventData huangDaoAlterSlotsEventData = iEventData as HuangDaoAlterSlotsEventData;
  37. if (huangDaoAlterSlotsEventData.CombatHeroEntity != combatHeroEntity || SkillSlots == null)
  38. {
  39. return;
  40. }
  41. if (huangDaoAlterSlotsEventData.index != SkillSlots.index)
  42. {
  43. return;
  44. }
  45. HuangDaoWuXingType = huangDaoAlterSlotsEventData.WuXingType;
  46. switch ((int)HuangDaoWuXingType)
  47. {
  48. case 1:
  49. quan.color = new Color(1f, 0.98f, 0.09f);
  50. break;
  51. case 2:
  52. quan.color = new Color(0.19f, 0.51f, 1f);
  53. break;
  54. case 4:
  55. quan.color = new Color(0.17f, 1f, 0.35f);
  56. break;
  57. case 8:
  58. quan.color = new Color(1f, 0.19f, 0.04f);
  59. break;
  60. case 16:
  61. quan.color = new Color(1f, 0.65f, 0.17f);
  62. break;
  63. }
  64. }
  65. public void SkillSlotsAlter(IEventData eventData)
  66. {
  67. SkillSlotsAlterEventData skillSlotsAlterEventData = (SkillSlotsAlterEventData)eventData;
  68. if (skillSlotsAlterEventData.SkillSlots == SkillSlots)
  69. {
  70. SkillBasic = SkillSlots.SkillBasic;
  71. SetUIInfo();
  72. }
  73. }
  74. public override void AddButtonEvent()
  75. {
  76. mybutton.onClick.AddListener(OnClick);
  77. }
  78. private async void OnClick()
  79. {
  80. SkillConfig skillConfig = SkillBasic.SelfSkillConfig;
  81. CombatController.currActiveCombat.isUpdate = false;
  82. SkillInfopanel skillInfopanel = await SkillInfopanel.OpenPanle(SkillBasic.skillInfo);
  83. skillInfopanel.UIClosed(() => { CombatController.currActiveCombat.isUpdate = true; });
  84. // SkillMassgePanel.OpenSkillSelectPanel(LanguageManager.Instance.Text(skillConfig.name), LanguageManager.Instance.Text(skillConfig.dec),
  85. // delegate()
  86. // {
  87. // CombatController.currActiveCombat.isUpdate = true;
  88. // });
  89. }
  90. private void SetUIInfo()
  91. {
  92. if (SkillBasic == null)
  93. {
  94. useSkillIcon.transform.parent.gameObject.SetActive(false);
  95. quan.color = new Color(1, 1, 1, 0.2f);
  96. // if (PlayerGf_widget != null)
  97. // {
  98. // PlayerGf_widget.Play("likai",false);
  99. // }
  100. return;
  101. }
  102. useSkillIcon.transform.parent.gameObject.SetActive(true);
  103. useSkillIcon.icon_name = SkillBasic.SelfSkillConfig.icon;
  104. cd.fillAmount = 0;
  105. if (SkillBasic.SelfSkillConfig.SkillType == 2)
  106. {
  107. quan.color = new Color(0.81f, 0.21f, 1f);
  108. return;
  109. }
  110. // useCount= SkillBasic.UseCount;
  111. switch (SkillBasic.SelfSkillConfig.attribute)
  112. {
  113. case 1:
  114. quan.color = new Color(1f, 0.98f, 0.09f);
  115. break;
  116. case 2:
  117. quan.color = new Color(0.19f, 0.51f, 1f);
  118. break;
  119. case 4:
  120. quan.color = new Color(0.17f, 1f, 0.35f);
  121. break;
  122. case 8:
  123. quan.color = new Color(1f, 0.19f, 0.04f);
  124. break;
  125. case 16:
  126. quan.color = new Color(1f, 0.65f, 0.17f);
  127. break;
  128. }
  129. }
  130. public void Update()
  131. {
  132. if (SkillSlots == null || SkillBasic == null)
  133. {
  134. return;
  135. }
  136. SkillBasic skillBasic = SkillBasic;
  137. if (skillBasic.SelfSkillConfig.SkillType != 1)
  138. {
  139. return;
  140. }
  141. float bl = 1 - SkillSlots.GetFinishBl();
  142. cd.fillAmount = bl;
  143. }
  144. public void InitSkillWidget(SkillBasic SkillBasic, CombatHeroEntity combatHeroEntity)
  145. {
  146. this.combatHeroEntity = combatHeroEntity;
  147. this.SkillBasic = SkillBasic;
  148. this.SkillSlots = null;
  149. SetUIInfo();
  150. }
  151. public void InitWidget(SkillSlots skillSlots, CombatHeroEntity combatHeroEntity)
  152. {
  153. this.combatHeroEntity = combatHeroEntity;
  154. this.SkillSlots = skillSlots;
  155. SkillBasic = skillSlots.SkillBasic;
  156. SetUIInfo();
  157. }
  158. }
  159. }