private GameInfo Test_Game() { GameInfo game = new GameInfo(); //game.AddPlayer(new PlayerInfo("Steve", 20)); game.AddPlayer(new PlayerInfo("Dave", 20)); game.AddPlayer(new PlayerInfo("Craig", 20)); game.AddPlayer(new PlayerInfo("Nyugen", 20)); game.AddPlayer(new PlayerInfo("Yesk", 20)); return(game); }
public void HandleJoinGame(Player p, int gameID) //before response { GameInfo g = gameList[gameID]; g.AddPlayer(p); gameList[gameID] = g; }
public void HandleCreateGame(Player host, int minPlayer, int maxPlayer, string name, int gameID)//before response { //int gameID = -1;//TODO Send RequestGameID to gameServer to get valid ID GameInfo g = new GameInfo(gameID, host, minPlayer, maxPlayer, name); g.AddPlayer(host); // need at least one player in the game always gameList[gameID] = g; }
public GameInfo Create([FromBody] PlayerInfo playerInfo) { string name = string.Empty; int maxPlayers = 0; int rounds = 0; string gameId; lock (createLockObject) { ++gameIdSequence; gameId = gameIdSequence.ToString(); } foreach (KeyValuePair <string, string> parameter in Request.GetQueryNameValuePairs()) { switch (parameter.Key) { case "name": name = parameter.Value; break; case "maxPlayers": maxPlayers = int.Parse(parameter.Value); break; case "rounds": rounds = int.Parse(parameter.Value); break; default: break; } } GameInfo createdGameContext = new GameInfo(rounds) { Id = gameId, MaxPlayers = maxPlayers, Name = name }; int playerIndex = -1; createdGameContext.AddPlayer(playerInfo, ref playerIndex); gamesRepository.AddGame(createdGameContext); return(createdGameContext); }
public static void Start(Update u, string[] args) { if (u.Message.Chat.Type == ChatType.Private && u.Message.From != null) { using (var db = new WWContext()) { var p = GetDBPlayer(u.Message.From.Id, db); if (p == null) { var usr = u.Message.From; p = new Player { UserName = usr.Username, Name = (usr.FirstName + " " + usr.LastName).Trim(), TelegramId = usr.Id, Language = "English" }; db.Players.Add(p); db.SaveChanges(); p = GetDBPlayer(u.Message.From.Id, db); } p.HasPM = true; db.SaveChanges(); if (string.IsNullOrEmpty(args[1])) { var msg = $"Hi there! I'm @{Bot.Me.Username}, and I moderate games of Werewolf." + $"\nFor role information, use /rolelist." + $"\nIf you want to set your default language, use /setlang."; Bot.Send(msg, u.Message.Chat.Id); return; } if (args[1] == "donatetg") { GetDonationInfo(m: u.Message); return; } //okay, they are joining a game. string nodeid = ""; string gameid = ""; Node node = null; GameInfo game = null; ChatMemberStatus status = ChatMemberStatus.Creator; try { nodeid = args[1].Substring(0, 32); gameid = args[1].Substring(32); //try to get the guid of the game they want to join Guid g, n; if (!(Guid.TryParse(nodeid, out n) && Guid.TryParse(gameid, out g))) { return; } //first get the node where to search for the game for (var i = 0; i < 3; i++) { node = Bot.Nodes.ToList().FirstOrDefault(x => x.ClientId == n); if (node != null) { break; } } if (node == null) { //log it //Bot.Send($"{u.Message.From.Id} (@{u.Message.From.Username ?? ""}) didn't find node with guid {n.ToString()} while attempting to play in {g.ToString()}", -1001098399855); return; } //we have the node, get the game for (var i = 0; i < 5; i++) { game = node.Games.ToList().FirstOrDefault(x => x.Guid == g); if (game != null) { break; } } if (game == null) { //log it //Bot.Send($"{u.Message.From.Id} (@{u.Message.From.Username ?? ""}) found node with guid {n.ToString()} but not the game {g.ToString()}", -1001098399855); return; } //ok we got the game, now join //make sure they are member status = Bot.Api.GetChatMemberAsync(game.GroupId, u.Message.From.Id).Result.Status; if (status == ChatMemberStatus.Left || status == ChatMemberStatus.Kicked) { Bot.Send( GetLocaleString("NotMember", GetLanguage(u.Message.From.Id), game.ChatGroup.ToBold()), u.Message.Chat.Id); return; } game.AddPlayer(u); return; } catch (AggregateException e) { var ex = e.InnerExceptions[0]; while (ex.InnerException != null) { ex = ex.InnerException; } Send(ex.Message, u.Message.Chat.Id); Send($"Error in START:\n" + $"{u.Message.Text}\n" + $"Node: {nodeid}\n" + $"Game: {gameid}\n" + $"Found Node: {node?.ClientId}\n" + $"Found Game: {game?.Guid}\n" + $"Chat Member Status: {status}\n" + $"{ex.Message}\n{ex.StackTrace}", Settings.ErrorGroup); } catch (Exception ex) { while (ex.InnerException != null) { ex = ex.InnerException; } Send(ex.Message, u.Message.Chat.Id); Send($"Error in START:\n" + $"{u.Message.Text}\n" + $"Node: {nodeid}\n" + $"Game: {gameid}\n" + $"Found Node: {node?.ClientId}\n" + $"Found Game: {game?.Guid}\n" + $"Chat Member Status: {status}\n" + $"{ex.Message}\n{ex.StackTrace}", Settings.ErrorGroup); } } } }