using System; using BITKit; using Cysharp.Threading.Tasks; namespace Com.Project.B.Lobby { /// /// 大厅服务 /// public interface ILobbyServices { /// /// 获取玩家所在的大厅 /// /// /// UniTask GetPlayerLobbyAsync(Guid playerId); /// /// 获取所有大厅 /// /// UniTask GetAllLobbyDataAsync(); /// /// 创建大厅 /// /// /// UniTask CreateLobbyAsync(ILobbyData data); /// /// 加入大厅 /// /// /// /// UniTask JoinLobbyAsync(Guid playerId,Guid lobbyId); /// /// 离开大厅 /// /// /// /// UniTask LeaveLobbyAsync(Guid playerId,Guid lobbyId); /// /// 更新大厅信息 /// /// /// UniTask UpdateLobbyAsync(ILobbyData data); /// /// 正式释放大厅,通常是游戏开始后 /// /// /// UniTask ReleaseLobbyAsync(Guid lobbyId); /// /// 释放大厅,通常是主机离线或加入其他人的大厅 /// /// /// UniTask DisposeLobbyAsync(Guid lobbyId); /// /// 邀请玩家加入大厅 /// /// UniTask InviteToLobbyAsync(Guid inviterId,Guid inviteeId,Guid lobbyId); /// /// 是否接受邀请 /// /// /// /// /// UniTask AccessLobbyInviteAsync(Guid playerId,Guid lobbyId,bool accept); /// /// 当大厅创建时 /// event Action OnLobbyCreated; /// /// 当大厅更新时 /// event Action OnLobbyUpdated; /// /// 当大厅正式释放时 /// event Action OnLobbyReleased; /// /// 当大厅释放时 /// event Action OnLobbyDisposed; /// /// 当邀请加入大厅时 /// event Action OnInviteToLobby; /// /// 当拒绝或接受邀请时 /// event Action OnAccessLobbyInvite; } }