public void Run(IGameRoom gameRoom, IPlayer player) { var game = gameRoom.FindGame(player); if (game == null) { throw new InvalidOperationException($"Player has not joined any game."); } game.Shoot(_shotCoordinate, player); }
public void Run(IGameRoom gameRoom, IPlayer player) { var game = gameRoom.FindGame(_gameName); if (game == null) { throw new InvalidOperationException($"Game '{_gameName}' does not exist."); } game.Join(player); }
public async Task <Guid> QuickMatch() { // Find an available room first IMatchMaker match = GrainFactory.GetGrain <IMatchMaker>(0); Guid roomId = await match.QuickMatch(this.GetPrimaryKeyLong()); IGameRoom room = GrainFactory.GetGrain <IGameRoom>(roomId); await room.Subscribe(this); return(roomId); }
protected override void ClientStream(HttpRequest request, CPacheStream cPacheStream) { myStream = cPacheStream; var id = request.Url.Split("?roomid=")[1].Replace("%22", ""); lock (GameServiceRouter.locker) { foreach (IGameRoom chatRoom in GameServiceRouter.GetAllRooms()) { if (chatRoom.instance == id) { ChatRoom = chatRoom; } } } ChatRoom.subscribeToChat(cPacheStream); }
protected override HttpResponse Response(HttpRequest req) { var roomid = req.QueryParameters["roomid"].Replace("%22", ""); IGameRoom chatRoom = null; foreach (var room in GameServiceRouter.GetAllRooms()) { if (room.instance == roomid) { chatRoom = room; } } var ret = "gren"; var JsonRet = Newtonsoft.Json.JsonConvert.SerializeObject(ret); return(new HttpResponse() { ContentType = "application/json", ByteArrayResponseBody = UTF8Encoding.UTF8.GetBytes(JsonRet), ResponseBody = JsonRet, SC = StatusCode.Ok }); }
public async Task <Guid> QuickMatch(long playerId) { IGameRoom room = null; if (queuedPlayers < Constants.PlayersPerSession) { room = GrainFactory.GetGrain <IGameRoom>(roomQueue.Last()); queuedPlayers++; return(await room.AddPlayer(playerId)); } else { roomQueue.Enqueue(Guid.NewGuid()); roomQueue.Dequeue(); room = GrainFactory.GetGrain <IGameRoom>(roomQueue.Last()); queuedPlayers = 1; return(await room.AddPlayer(playerId)); } }
public void Run(IGameRoom gameRoom, IPlayer player) => gameRoom.StartGame(_gameName, player);