using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using MultiDup; /// /// 相当于控制层, 利用tcp层与服务端进行通讯, 提供数据访问和修改请求. /// internal class MultiDupProxy : MonoSingleton { // 初始化, 离开, 获取大厅/房间数据, public LobbyInfo Lobby; /// /// 进入大厅 /// public void EnterLobby() { MultiDupServer.Instance.Init(); } public Action OnStartGame; public Action __On_GetRoomListCallBack; /// /// 拉取房间列表 /// /// public void GetRoomList(Action callback) { var ok = false; __On_GetRoomListCallBack = callback; MultiDupServer.Instance.GetRoomList(); // 发送拉取房间列表的请求. } // 创建成功的回调 public Action __On_CreateRoomCallBack; /// /// 创建房间 /// /// /// public void CreateRoom(int mapid, Action callback) { __On_CreateRoomCallBack = callback; MultiDupServer.Instance.CreateRoom(mapid); } // 加入成功的回调 public Action __On_EnterRoomCallback; /// /// 进入房间 /// /// /// public void EnterRoom(int roomId, Action callback) { __On_EnterRoomCallback = callback; MultiDupServer.Instance.EnterRoom(roomId); } public Action __OnStartGameCallback; public void StartGame(Action callback) { __OnStartGameCallback = callback; MultiDupServer.Instance.StartGame(); } public void ExitLobby() { } #region 内部类 /// /// 大厅信息 /// public class LobbyInfo { public List RoomList = new List(); /// /// 房间信息 /// public class RoomInfo { public int RoomId; public int MapId; public List PlayerUids = new List(); /// /// 服务器地址 /// public string BattleServerAddress; } } #endregion }