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