BuffWidget.cs 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. using Common.Utility.CombatEvent;
  2. using Fort23.Core;
  3. using GameLogic.Combat.Buff;
  4. namespace Fort23.Mono
  5. {
  6. [UIBinding(prefab = "BuffWidget")]
  7. public partial class BuffWidget : UIComponent
  8. {
  9. public BuffBasic buffBasic;
  10. private void Init()
  11. {
  12. }
  13. public override void AddEvent()
  14. {
  15. // CombatEventManager.Instance.AddEventListener(CombatEventType.RemoveBuff,
  16. // AddBuff);
  17. // StaticUpdater.Instance.AddRenderUpdateCallBack(Update);
  18. }
  19. public override void DelEvent()
  20. {
  21. // CombatEventManager.Instance.RemoveEventListener(CombatEventType.RemoveBuff,
  22. // AddBuff);
  23. buffBasic = null;
  24. // StaticUpdater.Instance.RemoveRenderUpdateCallBack(Update);
  25. }
  26. public override void AddButtonEvent()
  27. {
  28. myButton.onClick.AddListener(() =>
  29. {
  30. SkillMassgePanel.OpenSkillSelectPanel(buffBasic.buffInf.BuffConfig.nameTest,
  31. buffBasic.buffInf.BuffConfig.decTest);
  32. });
  33. }
  34. private async void AddBuff(IEventData iEventData)
  35. {
  36. BuffEventData buffEventData = iEventData as BuffEventData;
  37. if (buffEventData.BuffBasic == buffBasic)
  38. {
  39. UIManager.Instance.DormancyGComponent(this);
  40. }
  41. }
  42. public void Update()
  43. {
  44. if (buffBasic == null)
  45. {
  46. return;
  47. }
  48. if (buffBasic.buffInf.buffTime > 0)
  49. {
  50. cd.fillAmount = 1 - buffBasic._currTime / buffBasic.buffInf.buffTime;
  51. }
  52. else
  53. {
  54. cd.fillAmount = 0;
  55. }
  56. buffCount.text = buffBasic.buffCount.ToString();
  57. }
  58. public void InitBuff(BuffBasic buffBasic)
  59. {
  60. this.buffBasic = buffBasic;
  61. }
  62. }
  63. }