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
}