using Common.Utility.CombatEvent; using Fort23.Core; using GameLogic.Combat.Skill; namespace Fort23.Mono { [UIBinding(prefab = "UseQuqueSkill")] public partial class UseQuqueSkill : UIComponent { private SkillBasic skillBasic; private void Init() { } public override void AddEvent() { CombatEventManager.Instance.AddEventListener(CombatEventType.UseSkillFinish, UseSkillFinish); CombatEventManager.Instance.AddEventListener(CombatEventType.UseSkill, UseSkill); StaticUpdater.Instance.AddRenderUpdateCallBack(Update); } public override void DelEvent() { StaticUpdater.Instance.RemoveRenderUpdateCallBack(Update); CombatEventManager.Instance.RemoveEventListener(CombatEventType.UseSkill, UseSkill); } public override void AddButtonEvent() { } private void UseSkill(IEventData ieveDtat) { CombatUseSkillEventData eventData = ieveDtat as CombatUseSkillEventData; if (eventData.useSkill==skillBasic) { UIManager.Instance.DormancyGComponent(this); return; } } private void UseSkillFinish(IEventData ieveDtat) { UseSkillFinishEventData useSkillFinishEventData = ieveDtat as UseSkillFinishEventData; if (useSkillFinishEventData.SkillBasic == skillBasic) { UIManager.Instance.DormancyGComponent(this); } } private void Update() { if (!transform.gameObject.activeSelf) { if (skillBasic.DelayUseSkillCd < 0) { transform.gameObject.SetActive(true); } } } public override void DormancyObj() { base.DormancyObj(); skillBasic = null; } public void ShowWidget(SkillBasic skillBasic) { if (skillBasic.DelayUseSkillCd > 0) { transform.gameObject.SetActive(false); } useSkillIcon.icon_name=skillBasic.SelfSkillConfig.icon; this.skillBasic = skillBasic; } } }