using HighlightPlus;
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
/// <summary>
/// create by adam
/// </summary>
public class OfficeManager : SingletonMono<OfficeManager>
{
    public int currentProcessID;
    public int currentSubProcessID;
    public int currentSubProcessStepID;
    public int currentSubProcessStepTriggerID;
    
    /// <summary>
    /// ÊÖ»ú
    /// </summary>
    public MobileController mobileController; 
    void Start()
    {
        GameManager.EventMgr.AddEventListener(Enum_EventType.OfficeTimeLineOver, OfficeTimeLineOver);
        GameManager.EventMgr.AddEventListener(Enum_EventType.InitializationUI, InitializationUI);
        GameManager.EventMgr.AddEventListener<int>(Enum_EventType.SwitchSubProcess, SwitchSubProcess);
    }

    private void SwitchSubProcess(int subProcess)
    {
        if (!GameManager.UIMgr.GetPanel<UI_TopTipPanel>())
        {
            GameManager.UIMgr.ShowPanel<UI_TopTipPanel>(E_UI_Layer.System, (panel) =>
            {
                panel.Init($"{GameManager.ProcessMgr.d_Scheme.CurrentProcess.processName}:<color=blue>{GameManager.ProcessMgr.d_Scheme.CurrentProcess.CurrentSubProcess.subProcessName}</color>", $"{GameManager.ProcessMgr.d_Scheme.CurrentProcess.CurrentSubProcess.tips}", false);
            });
        }
        else
        {
            GameManager.UIMgr.GetPanel<UI_TopTipPanel>().Init($"{GameManager.ProcessMgr.d_Scheme.CurrentProcess.processName}:<color=blue>{GameManager.ProcessMgr.d_Scheme.CurrentProcess.CurrentSubProcess.subProcessName}</color>", $"{GameManager.ProcessMgr.d_Scheme.CurrentProcess.CurrentSubProcess.tips}", false);
        }
    }


    private void OfficeTimeLineOver()
    {
        GameManager.UIMgr.ShowPanel<UI_MaskPanel>(E_UI_Layer.System, (panel) =>
        {
            panel.Init();
            GameManager.EventMgr.EventTrigger(Enum_EventType.HideMask);

        });
    }
    private void InitializationUI()
    {
        if (GameManager.RunModelMgr.ModeType == E_ModeType.Study)
        {
            GameManager.UIMgr.ShowPanel<UI_TaskListPanel>(E_UI_Layer.Bot, (panel) =>
            {
                panel.Init(GameManager.ProcessMgr.subProcessId);
            });
        }

        GameManager.UIMgr.ShowPanel<UI_MenuBar>(E_UI_Layer.Mid, (panel) =>
        {
            panel.Init();
            GameManager.EventMgr.EventTrigger(Enum_EventType.SwitchScene, GameManager.RunModelMgr.SceneType);
        });
        GameManager.EventMgr.EventTrigger<string>(Enum_EventType.SwitchSubProcessStepTriggerID, GameManager.ProcessMgr.d_Scheme.CurrentProcess.CurrentSubProcess.CurrentSubProcessStep.triggersName[0]);
    }


    private void OnDestroy()
    {
        GameManager.EventMgr.RemoveEventListener(Enum_EventType.OfficeTimeLineOver, OfficeTimeLineOver);
        GameManager.EventMgr.RemoveEventListener(Enum_EventType.InitializationUI, InitializationUI);
        //GameManager.EventMgr.RemoveEventListener<int>(Enum_EventType.SwitchSubProcess, SwitchSubProcess);
    }

}