using Common.Utility.CombatEvent; using Fort23.Core; using GameLogic.Combat.Buff; namespace Fort23.Mono { [UIBinding(prefab = "BuffWidget")] public partial class BuffWidget : UIComponent { private 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(() => { SkillMassgePanel.OpenSkillSelectPanel(buffBasic.buffInf.BuffConfig.nameTest, buffBasic.buffInf.BuffConfig.decTest); }); } private async void AddBuff(IEventData iEventData) { BuffEventData buffEventData = iEventData as BuffEventData; if (buffEventData.BuffBasic == buffBasic) { UIManager.Instance.DormancyGComponent(this); } } private void Update() { if (buffBasic.buffInf.buffTime > 0) { cd.fillAmount = 1 - buffBasic._currTime / buffBasic.buffInf.buffTime; } else { cd.fillAmount = 0; } buffCount.text = buffBasic.buffCount.ToString(); } public void InitBuff(BuffBasic buffBasic) { this.buffBasic = buffBasic; } } }