Exemplo n.º 1
0
        public async Task RenderAsync(RenderObjectViewModel request)
        {
            SendToGroup(request);
            switch (request.ObjectType.ToLower())
            {
            case "player":
                switch (request.Action.ToLower())
                {
                case "kill":
                    await Groups.RemoveAsync(Context.ConnectionId, request.Room);

                    break;

                case "leaveroom":
                    var room = rooms.FirstOrDefault(r => r.HostId == request.Uid);
                    if (room != null)
                    {
                        SendToAll(room, GameReponseKey.RemoveRoom, true, false);
                        rooms.Remove(room);
                    }
                    await Groups.RemoveAsync(Context.ConnectionId, request.Room);

                    break;

                default:
                    break;
                }
                break;

            default:
                break;
            }
        }
Exemplo n.º 2
0
        private void SendToGroup(RenderObjectViewModel message, bool isMySelf = true)
        {
            RepositoryResponse <RenderObjectViewModel> result = new RepositoryResponse <RenderObjectViewModel>()
            {
                IsSucceed   = true,
                Data        = message,
                ResponseKey = message.Action
            };

            if (isMySelf)
            {
                Clients.Group(message.Room).SendAsync(receiveMethod, result);
            }
            else
            {
                Clients.OthersInGroup(message.Room).SendAsync(receiveMethod, result);
            }
        }
Exemplo n.º 3
0
 public void KillZoombie(RenderObjectViewModel request)
 {
     SendToGroup(request, GameAction.Kill, GameObject.Zoombie);
 }
Exemplo n.º 4
0
 public void Shoot(RenderObjectViewModel request)
 {
     SendToGroup(request, GameReponseKey.Shoot, request.Room);
 }