using CommonAI.Zone;
using ET.EventType;
using FairyGUI;

namespace ET.Client
{
    [Event(SceneType.Client)]
    public class SceneChangeFinishEvent_CreateUIHelp : BEvent<SceneLoadFinish>
    {
        public override void OnEvent(SceneLoadFinish a)
        {
            asyncTask().Coroutine();
        }
        private async ETTask asyncTask()
        {
            Log.Debug("loading HUD");
            var view = await UIHelper.Create("HUD");
            HUDMgr.InitView(view);
        }
    }

    [Event(SceneType.None)]
    public class SkillChangeEventHandler : BEvent<SkillChangeEvent>
    {
        public override void OnEvent(SkillChangeEvent a)
        {
            var view = UIHelper.GetUI("HUD") as GComponent;
            if(view != null)
            {
                HUDMgr.InitView(view);
            }
        }
    }

    public static class HUDMgr
    {
        public static void InitView(GComponent view)
        {
            var btn1 = view.GetChild("btn_skill1");
            var btn2 = view.GetChild("btn_skill2");
            if (!SkillMgr.Instance.Inited)
            {
                btn1.visible = false;
                btn2.visible = false;
                return;
            }
            btn1.visible = SkillMgr.Instance.GetSkill(0) != null;
            btn2.visible = SkillMgr.Instance.GetSkill(1) != null;

            var img = view.GetChild("img_direction");
            btn1.onClick.Set(() => {
                EventSystem.Instance.Publish<LaunchSkillEvent>(LaunchSkillEvent.Static.Clone(0)) ;
            });

            btn2.onClick.Set(() => {
                EventSystem.Instance.Publish<LaunchSkillEvent>(LaunchSkillEvent.Static.Clone(1));
            });
        }
    }
}