网上演练贵港万达广场(人员密集)
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.
 
 
 

218 lines
9.7 KiB

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;
}
}
}