You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
219 lines
9.7 KiB
219 lines
9.7 KiB
4 years ago
|
using AX.MessageSystem;
|
||
|
using AX.NetworkSystem;
|
||
|
using System;
|
||
|
using System.Collections;
|
||
|
using System.Collections.Generic;
|
||
|
using UnityEngine;
|
||
|
using UnityEngine.UI;
|
||
|
|
||
|
public class MoveWaterConnonSkillPanelController : MonoBehaviour
|
||
|
{
|
||
|
|
||
|
[Rename("出水")]
|
||
|
public ToggleRecordByAC SprayWater;
|
||
|
[Rename("出泡沫")]
|
||
|
public ToggleRecordByAC SprayFoam;
|
||
|
|
||
|
public GameObject selectMoveWaterConnon;
|
||
|
private static MoveWaterConnonSkillPanelController instance;
|
||
|
private LayWaterPanel laywaterpanel;
|
||
|
public static MoveWaterConnonSkillPanelController Instance
|
||
|
{
|
||
|
get
|
||
|
{
|
||
|
return instance;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// Use this for initialization
|
||
|
void Start()
|
||
|
{
|
||
|
instance = this;
|
||
|
laywaterpanel = GetComponent<LayWaterPanel>();
|
||
|
SprayWater.OutInterFaceToggle = SprayToggleChange;
|
||
|
SprayFoam.OutInterFaceToggle = SprayFoamChange;
|
||
|
}
|
||
|
/// <summary>
|
||
|
/// 选中移动水泡时的UI显示
|
||
|
/// </summary>
|
||
|
/// <param name="select"></param>
|
||
|
public void SetMoveWaterConnon(GameObject select)
|
||
|
{
|
||
|
selectMoveWaterConnon = select;
|
||
|
if (select.GetComponent<WaterConnonController>().hasWaterConnect)
|
||
|
{
|
||
|
SprayWater.GetComponent<Toggle>().interactable = true;
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
SprayWater.GetComponent<Toggle>().interactable = false;
|
||
|
}
|
||
|
if (select.GetComponent<WaterConnonController>().hasFoamConnect)
|
||
|
{
|
||
|
SprayFoam.GetComponent<Toggle>().interactable = true;
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
SprayFoam.GetComponent<Toggle>().interactable = false;
|
||
|
}
|
||
|
switch (select.GetComponent<WaterConnonController>().skill)
|
||
|
{
|
||
|
case WaterCannonSkill.喷水:
|
||
|
SprayWater.GetComponent<Toggle>().isOn = true;
|
||
|
laywaterpanel.laywater.gameObject.SetActive(true);
|
||
|
GetComponent<LayWaterPanel>().SetShowEnable();
|
||
|
break;
|
||
|
case WaterCannonSkill.喷泡沫:
|
||
|
SprayFoam.GetComponent<Toggle>().isOn = true;
|
||
|
laywaterpanel.laywater.gameObject.SetActive(true);
|
||
|
GetComponent<LayWaterPanel>().SetShowEnable();
|
||
|
break;
|
||
|
case WaterCannonSkill.None:
|
||
|
//ResertUI();
|
||
|
SprayWater.GetComponent<Toggle>().isOn = false;
|
||
|
SprayFoam.GetComponent<Toggle>().isOn = false;
|
||
|
laywaterpanel.laywater.gameObject.SetActive(false);
|
||
|
break;
|
||
|
|
||
|
}
|
||
|
|
||
|
}
|
||
|
private void SprayToggleChange(bool value)
|
||
|
{
|
||
|
if (value)
|
||
|
{
|
||
|
if (selectMoveWaterConnon.GetComponent<WaterConnonController>().skill == WaterCannonSkill.喷水)
|
||
|
{
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
|
||
|
float remian = selectMoveWaterConnon.GetComponent<WaterConnonController>().CheckWaterRemain(selectMoveWaterConnon.GetComponent<WaterConnonController>().WaterSourceLine);
|
||
|
if (!(remian > 0 || remian == -100))
|
||
|
{
|
||
|
LoadPromptWin.Instance.LoadTextPromptWindow("剩余水量不足", 1f);
|
||
|
return;
|
||
|
}
|
||
|
selectMoveWaterConnon.GetComponent<WaterConnonController>().skill = WaterCannonSkill.喷水;
|
||
|
laywaterpanel.laywater.gameObject.SetActive(true);
|
||
|
selectMoveWaterConnon.GetComponent<WaterConnonController>().Spray(WaterCannonSkill.喷水);
|
||
|
GetComponent<LayWaterPanel>().SetShowEnable();
|
||
|
//连接水源流量设置
|
||
|
//MessageDispatcher.SendMessage("SPRAY_WATER", new flowchangeinfo() { IsAdd = value, ChangObjId = selectMoveWaterConnon.GetComponent<BaseGameObjInfo>().gameObjID });
|
||
|
//出水同步
|
||
|
|
||
|
SpraySyncData spraysync = new SpraySyncData();
|
||
|
spraysync.SendUserID = CurrentUserInfo.mySelf.Id;
|
||
|
spraysync.spraytype = SprayParticleType.WaterStraight;
|
||
|
spraysync.IsOn = true;
|
||
|
spraysync.size = selectMoveWaterConnon.GetComponentInChildren<ParticleControlOfType>(true).GetScaleValue();
|
||
|
spraysync.gameObjID = selectMoveWaterConnon.GetComponent<BaseGameObjInfo>().gameObjID;
|
||
|
// spraysync.UserID = selectMoveWaterConnon.GetComponent<BaseGameObjInfo>().UserID;
|
||
|
// spraysync.gameObjType = selectMoveWaterConnon.GetComponent<BaseGameObjInfo>().gameObjType;
|
||
|
NetworkManager.Default.SendAsync(/*CurrentUserInfo.mySelf.Id,*/ "SPRAY_WATER_SYNC", spraysync);
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
selectMoveWaterConnon.GetComponent<WaterConnonController>().Spray(WaterCannonSkill.None);
|
||
|
selectMoveWaterConnon.GetComponent<WaterConnonController>().skill = WaterCannonSkill.None;
|
||
|
if (selectMoveWaterConnon.GetComponent<WaterConnonController>().Flow != 0)
|
||
|
{
|
||
|
selectMoveWaterConnon.GetComponent<WaterConnonController>().Flow = 0;
|
||
|
}
|
||
|
laywaterpanel.laywater.gameObject.SetActive(false);
|
||
|
//连接水源流量设置
|
||
|
// MessageDispatcher.SendMessage("SPRAY_WATER", new flowchangeinfo() { IsAdd = value, ChangObjId = selectMoveWaterConnon.GetComponent<BaseGameObjInfo>().gameObjID });
|
||
|
|
||
|
|
||
|
SpraySyncData spraysync = new SpraySyncData();
|
||
|
spraysync.SendUserID = CurrentUserInfo.mySelf.Id;
|
||
|
spraysync.spraytype = SprayParticleType.WaterStraight;
|
||
|
spraysync.IsOn = false;
|
||
|
spraysync.size = selectMoveWaterConnon.GetComponentInChildren<ParticleControlOfType>(true).GetScaleValue();
|
||
|
spraysync.gameObjID = selectMoveWaterConnon.GetComponent<BaseGameObjInfo>().gameObjID;
|
||
|
//spraysync.UserID = selectMoveWaterConnon.GetComponent<BaseGameObjInfo>().UserID;
|
||
|
//spraysync.gameObjType = selectMoveWaterConnon.GetComponent<BaseGameObjInfo>().gameObjType;
|
||
|
NetworkManager.Default.SendAsync(/*CurrentUserInfo.mySelf.Id,*/ "SPRAY_WATER_SYNC", spraysync);
|
||
|
}
|
||
|
}
|
||
|
private void SprayFoamChange(bool value)
|
||
|
{
|
||
|
if (value)
|
||
|
{
|
||
|
if (selectMoveWaterConnon.GetComponent<WaterConnonController>().skill ==WaterCannonSkill.喷泡沫)
|
||
|
{
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
float remian = selectMoveWaterConnon.GetComponent<WaterConnonController>().CheckWaterRemain(selectMoveWaterConnon.GetComponent<WaterConnonController>().WaterSourceLine);
|
||
|
if (!(remian > 0 || remian == -100))
|
||
|
{
|
||
|
LoadPromptWin.Instance.LoadTextPromptWindow("剩余水量不足", 1f);
|
||
|
return;
|
||
|
}
|
||
|
float remainfoam = selectMoveWaterConnon.GetComponent<WaterConnonController>().CheckFoamRemain();
|
||
|
if (!(remainfoam==-100||remainfoam>0))
|
||
|
{
|
||
|
LoadPromptWin.Instance.LoadTextPromptWindow("剩余泡沫量不足", 1f);
|
||
|
return;
|
||
|
}
|
||
|
selectMoveWaterConnon.GetComponent<WaterConnonController>().skill = WaterCannonSkill.喷泡沫;
|
||
|
laywaterpanel.laywater.gameObject.SetActive(true);
|
||
|
selectMoveWaterConnon.GetComponent<WaterConnonController>().Spray(WaterCannonSkill.喷泡沫);
|
||
|
GetComponent<LayWaterPanel>().SetShowEnable();
|
||
|
//连接水源流量设置
|
||
|
//MessageDispatcher.SendMessage("SPRAY_WATER", new flowchangeinfo() { IsAdd = value, ChangObjId = selectMoveWaterConnon.GetComponent<BaseGameObjInfo>().gameObjID });
|
||
|
|
||
|
|
||
|
SpraySyncData spraysync = new SpraySyncData();
|
||
|
spraysync.SendUserID = CurrentUserInfo.mySelf.Id;
|
||
|
spraysync.spraytype = SprayParticleType.Froth;
|
||
|
spraysync.IsOn = true;
|
||
|
spraysync.size = selectMoveWaterConnon.GetComponentInChildren<ParticleControlOfType>(true).GetScaleValue();
|
||
|
spraysync.gameObjID = selectMoveWaterConnon.GetComponent<BaseGameObjInfo>().gameObjID;
|
||
|
spraysync.UserID = selectMoveWaterConnon.GetComponent<BaseGameObjInfo>().UserID;
|
||
|
spraysync.gameObjType = selectMoveWaterConnon.GetComponent<BaseGameObjInfo>().gameObjType;
|
||
|
NetworkManager.Default.SendAsync(/*CurrentUserInfo.mySelf.Id,*/ "SPRAY_WATER_SYNC", spraysync);
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
selectMoveWaterConnon.GetComponent<WaterConnonController>().Spray(WaterCannonSkill.None);
|
||
|
selectMoveWaterConnon.GetComponent<WaterConnonController>().skill = WaterCannonSkill.None;
|
||
|
if (selectMoveWaterConnon.GetComponent<WaterConnonController>().Flow != 0)
|
||
|
{
|
||
|
selectMoveWaterConnon.GetComponent<WaterConnonController>().Flow = 0;
|
||
|
}
|
||
|
|
||
|
laywaterpanel.laywater.gameObject.SetActive(false);
|
||
|
//连接水源流量设置
|
||
|
// MessageDispatcher.SendMessage("SPRAY_WATER", new flowchangeinfo() { IsAdd = value, ChangObjId = selectMoveWaterConnon.GetComponent<BaseGameObjInfo>().gameObjID });
|
||
|
|
||
|
|
||
|
SpraySyncData spraysync = new SpraySyncData();
|
||
|
spraysync.SendUserID = CurrentUserInfo.mySelf.Id;
|
||
|
spraysync.spraytype = SprayParticleType.WaterStraight;
|
||
|
spraysync.IsOn = false;
|
||
|
spraysync.size = selectMoveWaterConnon.GetComponentInChildren<ParticleControlOfType>(true).GetScaleValue();
|
||
|
spraysync.gameObjID = selectMoveWaterConnon.GetComponent<BaseGameObjInfo>().gameObjID;
|
||
|
spraysync.UserID = selectMoveWaterConnon.GetComponent<BaseGameObjInfo>().UserID;
|
||
|
spraysync.gameObjType = selectMoveWaterConnon.GetComponent<BaseGameObjInfo>().gameObjType;
|
||
|
NetworkManager.Default.SendAsync(/*CurrentUserInfo.mySelf.Id,*/ "SPRAY_WATER_SYNC", spraysync);
|
||
|
}
|
||
|
}
|
||
|
// Update is called once per frame
|
||
|
void Update()
|
||
|
{
|
||
|
|
||
|
}
|
||
|
private void ResertUI()
|
||
|
{
|
||
|
Toggle[] all = transform.GetComponentsInChildren<Toggle>(true);
|
||
|
for (int i = 0; i < all.Length; i++)
|
||
|
{
|
||
|
all[i].isOn = false;
|
||
|
}
|
||
|
}
|
||
|
}
|