public bool UserInGame(int gameID) { string userID = _httpContextAccessor.HttpContext.User.FindFirst(ClaimTypes.NameIdentifier).Value; JoinedGame jg = _context.JoinedGame.Where(x => x.GameID == gameID && x.UserID == userID).FirstOrDefault(); return(jg != null); }
private void OnUpdate(float obj) { Service(); if (!(_createdRoom || _joinedRoom)) { return; } Debug.Log(CurrentRoom); if (!_gameActive && CurrentRoom != null && CurrentRoom.PlayerCount == 2) { _gameActive = true; if (_createdRoom) { CreatedGame.Dispatch(); } if (_joinedRoom) { JoinedGame.Dispatch(); } } if (_gameActive && (CurrentRoom == null || CurrentRoom.PlayerCount < 2)) { Disconnected.Dispatch(); } }
public async Task <IActionResult> Edit(int id, [Bind("ID,GameID,UserID")] JoinedGame joinedGame) { if (id != joinedGame.ID) { return(NotFound()); } if (ModelState.IsValid) { try { _context.Update(joinedGame); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!JoinedGameExists(joinedGame.ID)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index))); } return(View(joinedGame)); }
public async Task <IActionResult> Create([Bind("ID,GameID,UserID")] JoinedGame joinedGame) { if (ModelState.IsValid) { _context.Add(joinedGame); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } return(View(joinedGame)); }
public async Task EnactCommand(MarcoPoloPlayerWhoIsNotIt player, JoinGame command) { var joinedGame = new JoinedGame { IdOfPlayerWhoIsIt = command.IdOfPlayerWhoIsIt }; player.RecordEvent(joinedGame); await gameScheduler.Schedule(command.IdOfPlayerWhoIsIt, new MarcoPoloPlayerWhoIsIt.AddPlayer { PlayerId = player.Id }, deliveryDependsOn : joinedGame); }
public ActionResult LeaveGame(int gameID) { string userID = GetCurrentUserID(); JoinedGame jg = _context.JoinedGame.Where(x => x.GameID == gameID && x.UserID == userID).FirstOrDefault(); Game gameEntity = _context.Game.Find(gameID); if (jg != null) { _context.Remove(jg); gameEntity.CurrentPlayers--; _context.SaveChanges(); } return(RedirectToAction("Index")); }
public ActionResult JoinGame(int gameID, string view) { if (!UserInGame(gameID)) { string userID = GetCurrentUserID(); JoinedGame tmp = new JoinedGame(); tmp.GameID = gameID; tmp.UserID = userID; tmp.Username = _context.Users.Find(userID).UserName; _context.JoinedGame.Add(tmp); Game gameEntity = _context.Game.Find(gameID); gameEntity.CurrentPlayers++; _context.SaveChanges(); } return(RedirectToAction("Index")); }
private static void HandleToClient(string source, MessageReader packet) { var messageType = (MessageType)packet.Tag; Console.ForegroundColor = ConsoleColor.Cyan; //Console.WriteLine($"{source,-15} Client received: {packet.Tag,-2} {messageType}"); try { var reader = packet.GetHazelReader(); var body = reader.PeekToEnd(); if (SaveMessages) { File.WriteAllBytes(Path.Combine(MessageFolder, $"recv_{packet.Tag}_{allId++}.bin"), body); } switch (messageType) { case MessageType.ReselectServer: var reselect = ReselectServer.Deserialize(reader); DumpToConsole(reselect); break; case MessageType.Redirect: var redirect = Redirect.Deserialize(reader); DumpToConsole(redirect); break; case MessageType.HostGame: var host = HostGameResponse.Deserialize(reader); DumpToConsole(host); break; case MessageType.JoinGame: var join = JoinGameResponse.Deserialize(reader); DumpToConsole(join); break; case MessageType.GameData: var gamedata = GameData.Deserialize(reader); foreach (var item in gamedata) { HandleGameData(item, false); } //Directory.CreateDirectory("gamedata"); //File.WriteAllBytes(Path.Combine("gamedata", $"recv_data_{gamedataId++}.bin"), body); break; case MessageType.GameDataTo: var gamedatato = GameDataTo.Deserialize(reader); foreach (var item in gamedatato) { HandleGameDataTo(item, false); } break; case MessageType.JoinedGame: var joined = JoinedGame.Deserialize(reader); DumpToConsole(joined); break; case MessageType.AlterGame: var alter = AlterGameResponse.Deserialize(reader); DumpToConsole(alter); break; case MessageType.GetGameListV2: var gamelist = GetGameListV2Response.Deserialize(reader); DumpToConsole(gamelist); break; case MessageType.RemovePlayer: var removeplayer = RemovePlayerResponse.Deserialize(reader); DumpToConsole(removeplayer); break; case MessageType.StartGame: var start = StartGame.Deserialize(reader); DumpToConsole(start); if (BreakOnGameStart) { Console.WriteLine("Press any key to continue..."); Console.ReadKey(); } break; case MessageType.EndGame: var end = EndGame.Deserialize(reader); DumpToConsole(end); if (BreakOnGameEnd) { Console.WriteLine("Press any key to continue..."); Console.ReadKey(); } //Clear Entities to prevent collisions EntityTracker.entities.Clear(); break; default: Console.WriteLine($"Unhandled Message: {messageType} size: {body.Length}"); return; } if (reader.GetBytesLeft() > 0 && LogNotConsumed) { Console.WriteLine($"[{messageType}]{reader.GetBytesLeft()} bytes not cunsumed"); } } catch (Exception ex) { Console.WriteLine("Error handling ToClient: " + ex.Message); } }