using AX.MessageSystem;
using AX.NetworkSystem;
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class ExtinguishantSelectPanel : MonoBehaviour
{

    private ButtonRecordByAC waterbutton;
    private ButtonRecordByAC foambutton;
    public GameObject SelectFireman;
    private Transform laywaterPanel;
    // Use this for initialization
    void Start()
    {
        waterbutton = transform.Find("WaterButton").GetComponent<ButtonRecordByAC>();
        foambutton = transform.Find("FoamButton").GetComponent<ButtonRecordByAC>();
        waterbutton.OutInterFaceButton = waterbuttonClick;
        foambutton.OutInterFaceButton = foambuttonClick;
        laywaterPanel = transform.parent.Find("LayWaterPanel");

    }

    private void foambuttonClick()
    {
        if (SelectFireman.GetComponent<FireManWaterHoseManager>().ConnentSource)
        {
            WaterSource ws = SelectFireman.GetComponent<FireManWaterHoseManager>().ConnentSource.GetComponent<WaterSource>();
            float remain = SelectFireman.GetComponent<FireManControl>().CheckFoamRemain();
            if (!(remain == 100 || remain > 0))
            {
                LoadPromptWin.Instance.LoadTextPromptWindow("泡沫量不足", 1f);
            }
        }

        SelectFireman.GetComponent<FireManControl>().workType = FireManSkills.SprayWater;
        SelectFireman.GetComponent<AgentController>().pathFindEnable = true;
        SelectFireman.GetComponent<FireManControl>().SetLay(true);
        SelectFireman.GetComponent<FireManControl>().SetParticleType(SprayParticleType.Froth);
        SelectFireman.GetComponent<LayWaterHose>().StartSprayingLay();
        laywaterPanel.gameObject.SetActive(true);
        //FindObjectOfType<LayWaterPanel>().SetShowEnable();
        SkillTollPanel.Instance.GetComponent<LayWaterPanel>().SetShowEnable();


        MessageDispatcher.SendMessage("SPRAY_WATER", new flowchangeinfo() { IsAdd = true, ChangObjId = SelectFireman.GetComponent<BaseGameObjInfo>().gameObjID });

        ////消防员工作状态同步
        //FiremanWorktypeChangeSyncData worksync = new FiremanWorktypeChangeSyncData();
        //worksync.SendUserID = CurrentUserInfo.mySelf.Id;
        //worksync.worktype = FireManSkills.SprayWater;
        //worksync.gameObjID = SelectFireman.GetComponent<BaseGameObjInfo>().gameObjID;
        //worksync.UserID = SelectFireman.GetComponent<BaseGameObjInfo>().UserID;
        //worksync.gameObjType = SelectFireman.GetComponent<BaseGameObjInfo>().gameObjType;
        //NetworkManager.Default.SendAsync(/*CurrentUserInfo.mySelf.Id,*/ "FIREMAN_WORKTYPECHANGE_SYNC", worksync);


        //if (SelectFireman.GetComponent<FireManWaterHoseManager>()) 
        //{
        //    var arg = new HoseConnectOrDelectData();
        //    arg.StartId = SelectFireman.GetComponent<FireManWaterHoseManager>().ConnentSource.GetComponent<BaseGameObjInfo>().gameObjID;
        //    arg.EndId = SelectFireman.GetComponent<BaseGameObjInfo>().gameObjID;
        //    arg.HoseId = SelectFireman.GetComponent<FireManWaterHoseManager>().WaterLineConnent.GetComponent<BaseGameObjInfo>().gameObjID;
        //    arg.Isconnect = true;
        //    MessageDispatcher.SendMessage("HOSE_CONNECT_OR_DELECT", arg);
        //}

        //出水同步
        SpraySyncData spraysync = new SpraySyncData();
        spraysync.spraytype = SprayParticleType.Froth;
        spraysync.SendUserID = CurrentUserInfo.mySelf.Id;
        spraysync.size = 0.95f;
        spraysync.IsOn = true;
        spraysync.gameObjID = SelectFireman.GetComponent<BaseGameObjInfo>().gameObjID;
        spraysync.UserID = SelectFireman.GetComponent<BaseGameObjInfo>().UserID;
        spraysync.gameObjType = SelectFireman.GetComponent<BaseGameObjInfo>().gameObjType;
        NetworkManager.Default.SendAsync(/*CurrentUserInfo.mySelf.Id,*/ "SPRAY_WATER_SYNC", spraysync);
        gameObject.SetActive(false);


    }

    private void waterbuttonClick()
    {
        SelectFireman.GetComponent<FireManControl>().workType = FireManSkills.SprayWater;
        SelectFireman.GetComponent<AgentController>().pathFindEnable = true;
        SelectFireman.GetComponent<FireManControl>().SetLay(true);
        SelectFireman.GetComponent<FireManControl>().SetParticleType(SprayParticleType.WaterStraight);
        SelectFireman.GetComponent<LayWaterHose>().StartSprayingLay();
        //FindObjectOfType<LayWaterPanel>().SetShowEnable();
        SkillTollPanel.Instance.GetComponent<LayWaterPanel>().SetShowEnable();
        laywaterPanel.gameObject.SetActive(true);

        MessageDispatcher.SendMessage("SPRAY_WATER", new flowchangeinfo() { IsAdd = true, ChangObjId = SelectFireman.GetComponent<BaseGameObjInfo>().gameObjID });

        //FireManSkillPanelController.Instance.GetComponent<LayWaterPanel>().SelectSparyObj = SelectFireman;
        FireManSkillPanelController.Instance.GetComponent<LayWaterPanel>().GetComponent<LayWaterPanel>().SetShowEnable();
        ////工作状态同步
        //FiremanWorktypeChangeSyncData worksync = new FiremanWorktypeChangeSyncData();
        //worksync.worktype = FireManSkills.SprayWater;
        //worksync.SendUserID = CurrentUserInfo.mySelf.Id;
        //worksync.gameObjID = SelectFireman.GetComponent<BaseGameObjInfo>().gameObjID;
        //worksync.UserID = SelectFireman.GetComponent<BaseGameObjInfo>().UserID;
        //worksync.gameObjType = SelectFireman.GetComponent<BaseGameObjInfo>().gameObjType;
        //NetworkManager.Default.SendAsync(/*CurrentUserInfo.mySelf.Id,*/ "FIREMAN_WORKTYPECHANGE_SYNC", worksync);
        //出水同步

        //if (SelectFireman.GetComponent<FireManWaterHoseManager>())
        //{
        //    var arg = new HoseConnectOrDelectData();
        //    arg.StartId = SelectFireman.GetComponent<FireManWaterHoseManager>().ConnentSource.GetComponent<BaseGameObjInfo>().gameObjID;
        //    arg.EndId = SelectFireman.GetComponent<BaseGameObjInfo>().gameObjID;
        //    arg.HoseId = SelectFireman.GetComponent<FireManWaterHoseManager>().WaterLineConnent.GetComponent<BaseGameObjInfo>().gameObjID;
        //    arg.Isconnect = true;
        //    MessageDispatcher.SendMessage("HOSE_CONNECT_OR_DELECT", arg);
        //}
        SpraySyncData spraysync = new SpraySyncData();
        spraysync.SendUserID = CurrentUserInfo.mySelf.Id;
        spraysync.spraytype = SprayParticleType.WaterStraight;
        spraysync.size = 0.2f;
        spraysync.IsOn = true;
        spraysync.gameObjID = SelectFireman.GetComponent<BaseGameObjInfo>().gameObjID;
        spraysync.UserID = SelectFireman.GetComponent<BaseGameObjInfo>().UserID;
        spraysync.gameObjType = SelectFireman.GetComponent<BaseGameObjInfo>().gameObjType;
        NetworkManager.Default.SendAsync(/*CurrentUserInfo.mySelf.Id,*/ "SPRAY_WATER_SYNC", spraysync);
        gameObject.SetActive(false);
    }

}