using Common.Utility.CombatEvent; using Fort23.Core; using GameLogic.Combat.Buff; using GameLogic.Combat.CombatTool; using GameLogic.Combat.Skill; namespace Fort23.Mono { [UIBinding(prefab = "BuffWidget")] public partial class BuffWidget : UIComponent { public BuffBasic buffBasic; private void Init() { } public override void AddEvent() { // CombatEventManager.Instance.AddEventListener(CombatEventType.RemoveBuff, // AddBuff); // StaticUpdater.Instance.AddRenderUpdateCallBack(Update); } public override void DelEvent() { // CombatEventManager.Instance.RemoveEventListener(CombatEventType.RemoveBuff, // AddBuff); buffBasic = null; // StaticUpdater.Instance.RemoveRenderUpdateCallBack(Update); } public override void AddButtonEvent() { myButton.onClick.AddListener(CkickBuff); } private async void CkickBuff() { CombatController.currActiveCombat.isUpdate = false; SkillInfopanel skillInfopanel = await SkillInfopanel.OpenPanle(buffBasic); skillInfopanel.UIClosed(() => { CombatController.currActiveCombat.isUpdate = true; }); } private async void AddBuff(IEventData iEventData) { BuffEventData buffEventData = iEventData as BuffEventData; if (buffEventData.BuffBasic == buffBasic) { UIManager.Instance.DormancyGComponent(this); } } public bool Update() { if (buffBasic == null || buffBasic.CombatHeroEntity == null) { return false; } if (buffBasic.buffTime > 0) { cd.fillAmount = 1 - buffBasic._currTime / buffBasic.buffTime; } else { cd.fillAmount = 0; } buffCount.text = buffBasic.buffCount.ToString(); return true; } public void InitBuff(BuffBasic buffBasic) { this.buffBasic = buffBasic; buffIcon.icon_name = buffBasic.BuffConfig.icon; } } }