Files
5.24BuYu/Assets/MyGame/Scripts/Net/WebSocketReponseList.cs
T
2026-03-09 09:25:01 +08:00

173 lines
6.1 KiB
C#

using Assets.MyGame.Scripts.Net.WebResponses;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using UnityEngine;
using UnityEngine.SceneManagement;
namespace Assets.MyGame.Scripts.Net
{
public class WebSocketReponseList
{
/// <summary>
/// 获取房间列表 room
/// </summary>
/// <param name="msg"></param>
public static void GetRoomListChineseChessResult(string msg)
{
var var1 = UIManager.Instance.Show<UIChineseChessDistrict>(UIPanel.MainGamePanelZGXQ, msg);
}
public static void GetGoldConfigSuccessChineseChessResult(string msg)
{
UIManager.Instance.Get<ChineseChessMainPanel>(UIPanel.MainGamePanelZGXQ).subUIManager.ShowAsync(UIPanel.ZGXQGameExplain);
}
/// <summary>
/// 获取房间列表 room
/// </summary>
/// <param name="msg"></param>
public static void GetRoomListResult(string msg)
{
var var1 = UIManager.Instance.Get<UIHomeMain>(UIPanel.HomeMainPanel);
var selectRoomPanel = var1.subUIManager.Get<UIHome_BY_SelectRoomLevelPanel>(UIPanel.SelectRoomPenel);
if (selectRoomPanel != null && selectRoomPanel.isMySelectRoom)
selectRoomPanel.panel_UIHome_BY_MySelectRoomPenel.Show(msg);
else
{
var v = JsonConvert.DeserializeObject<WebSocketResponseBase<List<GetRoomList>>>(msg).arguments[0];
foreach (var item in v)
{
if (item.currentOnlinePlayerCount < item.maxPlayerCount)
{
WebSocketSendList.GetRoomInfo(item.roomId);
break;
//if (item)
//{
//UIHome_BY_SelectRoomLevelPanel.StartGame(item);
//}
}
}
}
}
/// <summary>
/// 加入房间 room
/// </summary>
/// <param name="msg"></param>
public static void RoomJoinNotice(string msg)
{
string sceneName = "";
UIPanel uIPanel = UIPanel.None;
switch (GameManager.Instance.gameData.currGameType)
{
case GameType.JQQD:
break;
case GameType.defaultPanel:
break;
case GameType.FXZY:
break;
case GameType.TGXX:
break;
case GameType.ZGXQ:
break;
case GameType.XJMH:
sceneName = "XJMH";
uIPanel = UIPanel.MainGamePanelXJMH;
break;
case GameType.HHWK:
break;
default:
break;
}
UIManager.Instance.ShowAsync(uIPanel, UIPanel.HomeMainPanel, msg);
//这里
var v = SceneManager.GetSceneByName("XJMH");
if (v.IsValid() && v.isLoaded)
{
}
else
{
SceneManager.LoadSceneAsync(sceneName, LoadSceneMode.Additive);
}
UIManager.Instance.Close(UIPanel.HomeMainPanel);
}
/// <summary>
/// 房间列表 room
/// </summary>
/// <param name="msg"></param>
public static void RoomInfo(string msg)
{
var roomData = JsonConvert.DeserializeObject<WebSocketResponseBase<RoomChangeResponse>>(msg).arguments[0];
if (roomData != null)
{
GameManager.Instance.gameData.currRoomData = roomData;
}
else
{
Debug.LogError("roomdata是空:" + msg);
}
}
public static void RoomKillNotice(string msg)
{
CreateFishManager.Instance.DesFish(msg);
}
public static void SyncPlayerGold(string msg)
{
UIManager.Instance.Get<GameMainPanel_XJMH>(UIPanel.MainGamePanelXJMH).currSitData.goldNum = int.Parse(msg);
}
public static void GetRoomInfoResult(string msg)
{
//GameManager.Instance.StartGame();RoomChangeResponse
var roomData = JsonConvert.DeserializeObject<WebSocketResponseBase<RoomChangeResponse>>(msg).arguments[0];
UIHome_BY_SelectRoomLevelPanel.StartGame(roomData);
}
public static void SyncGameDataResult(string msg)
{
var syncGameData = JsonConvert.DeserializeObject<WebSocketResponseBase<SyncGameData>>(msg).arguments[0];
switch (syncGameData.frameType)
{
case FrameDataType.none:
break;
case FrameDataType.rotateTurrect:
EventCenter.Instance.EventTrigger<SyncGameData>(ConstEventString.SyncGameData_Rotate, syncGameData);
break;
case FrameDataType.fireBullet:
EventCenter.Instance.EventTrigger<SyncGameData>(ConstEventString.SyncGameData_FireBullet, syncGameData);
break;
case FrameDataType.createFish:
EventCenter.Instance.EventTrigger<SyncGameData>(ConstEventString.SyncGameData_CreateFish, syncGameData);
break;
case FrameDataType.changeAutoTarget:
EventCenter.Instance.EventTrigger<SyncGameData>(ConstEventString.SyncGameData_ChangeTargetMonster, syncGameData);
break;
default:
break;
}
}
public static void LeaveRoomResult(string msg)
{
//GameManager.Instance.StartGame();RoomChangeResponse
var roomData = JsonConvert.DeserializeObject<WebSocketResponseBase<RoomLeaveNotice>>(msg).arguments[0];
if (roomData.userId == GameManager.Instance.user.id)
{
WebSocketManager.Instance.Close(SocketType.game);
}
}
}
}