using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class UnmannedAerialVehicleUI : MonoBehaviour
{
    public static UnmannedAerialVehicleUI Instance;
    /// <summary>
    /// 选中的无人机编队
    /// </summary>
    public UnmannedAerialVehicleManage unmannedAerialVehicleManage;

    /// <summary>
    /// 待机按钮
    /// </summary>
    public Button btnTheOpportuneMoment;
    /// <summary>
    /// 警戒按钮
    /// </summary>
    public Button btnBeOnTheAlertAgainst;
    /// <summary>
    /// 攻击目标
    /// </summary>
    public Button btnAttack;
    /// <summary>
    /// 航线设置
    /// </summary>
    public Button btnRouteSettings;
    /// <summary>
    /// 自身频段设置
    /// </summary>
    public Button btnFrequencyBand;
    /// <summary>
    /// 侦测频段设置
    /// </summary>
    public Button btnSurveillanceFrequencyBand;


    public void Awake()
    {
        Instance = this;
    }

    // Start is called before the first frame update
    void Start()
    {
        btnFrequencyBand.onClick.AddListener(() =>
        {
            if (unmannedAerialVehicleManage)
            {
                GameManager.Instance.GetWRJParameter();
                unmannedAerialVehicleManage.FrequencyBand.SetActive(true);
            }
        });
        btnSurveillanceFrequencyBand.onClick.AddListener(() =>
        {
            if (unmannedAerialVehicleManage)
            {
                GameManager.Instance.GetWRJParameter();
                unmannedAerialVehicleManage.SurveillanceFrequencyBand.SetActive(true);
            }
        });
    }

    /// <summary>
    /// 切换无人机阵型
    /// </summary>
    /// <param name="number"></param>
    public void AddFormation(int number)
    {
        if (unmannedAerialVehicleManage)
        {
            unmannedAerialVehicleManage.Formation(number);
        }
    }
    public void ShowButton()
    {
        if (unmannedAerialVehicleManage)
        {
            GameManager.Instance.GetWRJParameter();
            switch (unmannedAerialVehicleManage.wrjModel)
            {
                case WRJModel.光学无人机:
                    btnTheOpportuneMoment.gameObject.SetActive(true);
                    btnBeOnTheAlertAgainst.gameObject.SetActive(true);
                    btnAttack.gameObject.SetActive(true);
                    btnRouteSettings.gameObject.SetActive(true);
                    if (!GlobalFlag.isStartRehearsing)
                    {
                        btnFrequencyBand.gameObject.SetActive(true);
                        btnSurveillanceFrequencyBand.gameObject.SetActive(false);
                    }
                    else
                    {
                        btnFrequencyBand.gameObject.SetActive(false);
                        btnSurveillanceFrequencyBand.gameObject.SetActive(false);
                    }

                    break;
                case WRJModel.电子侦察无人机:
                    btnTheOpportuneMoment.gameObject.SetActive(true);
                    btnBeOnTheAlertAgainst.gameObject.SetActive(true);
                    btnAttack.gameObject.SetActive(true);
                    btnRouteSettings.gameObject.SetActive(true);
                    if (!GlobalFlag.isStartRehearsing)
                    {
                        btnFrequencyBand.gameObject.SetActive(true);
                        btnSurveillanceFrequencyBand.gameObject.SetActive(true);
                    }
                    else
                    {
                        btnFrequencyBand.gameObject.SetActive(false);
                        btnSurveillanceFrequencyBand.gameObject.SetActive(false);
                    }
                    break;
                case WRJModel.自杀式无人机:
                    btnTheOpportuneMoment.gameObject.SetActive(true);
                    btnBeOnTheAlertAgainst.gameObject.SetActive(true);
                    btnAttack.gameObject.SetActive(true);
                    btnRouteSettings.gameObject.SetActive(true);
                    if (!GlobalFlag.isStartRehearsing)
                    {
                        btnFrequencyBand.gameObject.SetActive(true);
                        btnSurveillanceFrequencyBand.gameObject.SetActive(false);
                    }
                    else
                    {
                        btnFrequencyBand.gameObject.SetActive(false);
                        btnSurveillanceFrequencyBand.gameObject.SetActive(false);
                    }
                    break;
            }
        }
    }
    /// <summary>
    /// 航线设置
    /// </summary>
    public void GetRouteSettings(bool isOpen)
    {
        if (unmannedAerialVehicleManage)
        {
            if (isOpen)
            {
                if (unmannedAerialVehicleManage.isGroup)
                {
                    FormationManager.Instance.SetGroupAttackByGroupID(unmannedAerialVehicleManage.groupId, isOpen);
                }
                else
                {
                    unmannedAerialVehicleManage.RouteSettings();
                    if (unmannedAerialVehicleManage.airRoute)
                        unmannedAerialVehicleManage.airRoute.transform.localScale = Vector3.one;
                }
            }
            else
            {
                if (unmannedAerialVehicleManage.isGroup)
                {
                    FormationManager.Instance.SetGroupAttackByGroupID(unmannedAerialVehicleManage.groupId, isOpen);
                }
                else
                {
                    unmannedAerialVehicleManage.TurnOffCourseSettings();
                    if (unmannedAerialVehicleManage.airRoute)
                        unmannedAerialVehicleManage.airRoute.transform.localScale = Vector3.zero;
                }
            }

        }
    }


    public void SwitchModelScale(float scale)
    {
        transform.localScale = new Vector3(scale, scale, scale);
    }

    /// <summary>
    /// 切换无人机模式
    /// </summary>
    /// <param name="patternCut"></param>
    public void GetModeSwitch(int patternCut)
    {
        if (unmannedAerialVehicleManage)
        {
            if (unmannedAerialVehicleManage.isGroup)
            {
                FormationManager.Instance.SetGroupUAVMState(unmannedAerialVehicleManage.groupId, patternCut);
            }
            else
            {

                unmannedAerialVehicleManage.modeSwitch(patternCut);
            }
        }
    }
}