public async Task <ActionResult> InsertGame() { var queryString = HttpContext.Request.QueryString.ToString(); NameValueCollection nvc = HttpUtility.ParseQueryString(queryString); var id = int.Parse(nvc["id"]); var dbGame = Game.GetGames(null, id); if (!dbGame.HasValues) { const int limit = 1; var apiGame = await Utilities.API.Get <List <Game.GameAPIModel> >($"games/{id}/?fields=id,name,genres,platforms,summary,cover.url,release_dates&limit={limit}"); var game = new Game.GameModel { GameId = apiGame[0].Id, Name = apiGame[0].Name, Summary = apiGame[0].Summary, Cover = apiGame[0].Cover == null ? "https://www.picclickimg.com/00/s/MTYwMFgxNjAw/z/8xgAAOSwr81USRqc/$/Nintendo-WII-DVD-Video-Game-Case-White-Blank-_57.jpg" : apiGame[0].Cover.Url, GenresStr = "", PlatformsStr = "" }; foreach (var genre in apiGame[0].Genres) { game.GenresStr += $"{genre},"; } foreach (var platform in apiGame[0].Platforms) { game.PlatformsStr += $"{platform},"; } try { var newGame = Game.InsertGame(User.FindFirst(ClaimTypes.NameIdentifier).Value, game); return(Created("/api/Games", newGame)); } catch (Exception ex) { return(StatusCode(500, new { message = ex.Message })); } } else { try { var newGame = Game.InsertUserGame(User.FindFirst(ClaimTypes.NameIdentifier).Value, id); return(Created("/api/Games", newGame)); } catch (Exception ex) { return(StatusCode(500, new { message = ex.Message })); } } }
public async Task <ActionResult> SearchGames(string name) { const int limit = 10; var gamesApi = await Utilities.API.Get <List <Game.GameAPIModel> >($"games/?search={name}&fields=id,name,summary,genres,platforms,cover.url,release_dates&limit={limit}"); var games = new List <Game.GameModel>(); var userGamesJObj = Game.GetGames(User.FindFirst(ClaimTypes.NameIdentifier).Value, null); var userGames = userGamesJObj.ToObject <List <Game.GameModel> >(); foreach (var game in gamesApi) { var newGame = new Game.GameModel { GameId = game.Id, Name = game.Name, Summary = game.Summary, Cover = game.Cover == null ? "https://www.picclickimg.com/00/s/MTYwMFgxNjAw/z/8xgAAOSwr81USRqc/$/Nintendo-WII-DVD-Video-Game-Case-White-Blank-_57.jpg" : game.Cover.Url, Genres = new List <Game.Genre>(), Platforms = new List <Game.Platform>() }; if (game.Genres != null) { foreach (var genreId in game.Genres) { var genre = Game.GetGenre(genreId); newGame.Genres.Add(JsonConvert.DeserializeObject <Game.Genre>(genre.ToString())); } } if (game.Platforms != null) { foreach (var platformId in game.Platforms) { var platform = Game.GetPlatform(platformId); newGame.Platforms.Add(JsonConvert.DeserializeObject <Game.Platform>(platform.ToString())); } } games.Add(newGame); } games = games.Where(p => userGames.All(p2 => p2.GameId != p.GameId)).ToList(); return(Json(games)); }
public override void DrawMenu() { MenuSpriteElement bg = new MenuSpriteElement("GUI/newgame_menu.jpg", new Rectangle(0, 0, GameManager.Width, GameManager.Height)); Root.AddChild(bg); // exit button { Rectangle exitRect = new Rectangle(GameManager.Width - 152, 1, 151, 71); MenuButtonElement exitButton = new MenuButtonElement(exitRect, delegate() { Menu.GoToScene(MainMenu.Instance); }); exitButton.AddChild(new MenuSpriteElement("GUI/button_bg", exitRect, "BACK")); bg.AddChild(exitButton); } // music settings { musicRect = new Rectangle(GameManager.Width - 500, 1, 151, 71); MenuButtonElement musicButton = new MenuButtonElement(musicRect, delegate() { if (!music) { music = true; musicText = "MUSIC: ON"; } else { music = false; musicText = "MUSIC: OFF"; } musicSpriteElement.Text = musicText; }); musicSpriteElement = new MenuSpriteElement("GUI/button_bg", musicRect, musicText); musicButton.AddChild(musicSpriteElement); bg.AddChild(musicButton); } //vibration settings { vibRect = new Rectangle(GameManager.Width - 345, 1, 190, 71); MenuButtonElement vibButton = new MenuButtonElement(vibRect, delegate() { if (!vibration) { vibration = true; vibText = "VIBRATION: ON"; } else { vibration = false; vibText = "VIBRATION: OFF"; } vibrationSpriteElement.Text = vibText; }); vibrationSpriteElement = new MenuSpriteElement("GUI/button_bg", vibRect, vibText); vibButton.AddChild(vibrationSpriteElement); bg.AddChild(vibButton); } // difficulty selector { difficultySelector = new MainMenuPlainSelector <Difficulty>(Difficulty.NORMAL); bg.AddChild(difficultySelector); difficultySelector.BaseX = Convert.ToInt32(0.279 * GameManager.Width); difficultySelector.BaseY = Convert.ToInt32(0.359 * GameManager.Height); difficultySelector.YDiff = Convert.ToInt32(0.085 * GameManager.Height); difficultySelector.Width = Convert.ToInt32(0.12 * GameManager.Width); difficultySelector.Height = Convert.ToInt32(0.077 * GameManager.Height); difficultySelector.AddElement("EASY", Difficulty.EASY); difficultySelector.AddElement("NORMAL", Difficulty.NORMAL); difficultySelector.AddElement("HARD", Difficulty.HARD); } //gamemode selector { gamemodeSelector = new MainMenuPlainSelector <GameMode>(GameMode.NORMAL); bg.AddChild(gamemodeSelector); gamemodeSelector.BaseX = Convert.ToInt32(0.077 * GameManager.Width); gamemodeSelector.BaseY = Convert.ToInt32(0.359 * GameManager.Height); gamemodeSelector.YDiff = Convert.ToInt32(0.085 * GameManager.Height); gamemodeSelector.Width = Convert.ToInt32(0.15 * GameManager.Width); gamemodeSelector.Height = Convert.ToInt32(0.077 * GameManager.Height); if (SinglePlayer) { gamemodeSelector.AddElement("NORMAL", GameMode.NORMAL); gamemodeSelector.AddElement("ENDLESS", GameMode.ENDLESS); gamemodeSelector.AddElement("TIME", GameMode.TIME); gamemodeSelector.Selected = GameMode.NORMAL; } else { gamemodeSelector.AddElement("FIGHT", GameMode.FIGHT); gamemodeSelector.AddElement("TIMER", GameMode.TIMER); gamemodeSelector.Selected = GameMode.FIGHT; } } //play button { playRect = new Rectangle(Convert.ToInt32(0.78125 * GameManager.Width), Convert.ToInt32(0.444 * GameManager.Height), Convert.ToInt32(0.114 * GameManager.Width), Convert.ToInt32(0.0583 * GameManager.Height)); MenuButtonElement playButton = new MenuButtonElement(playRect, delegate() { if (gamemodeSelector.Selected == GameMode.FIGHT || gamemodeSelector.Selected == GameMode.TIMER) { return; //nincs megvalósítva a multiplayer :( } gameModel = new Game.GameModel(MainMenu.imageDatabase, gamemodeSelector.Selected, difficultySelector.Selected, music, vibration, null, null); NewGame(gamemodeSelector.Selected, difficultySelector.Selected, music, vibration); GameManager.Instance.SwitchScene(gameModel); } ); bg.AddChild(playButton); playButton.AddChild(new MenuSpriteElement("GUI/button_play.png", playRect)); } if (NewGameMenu.Tutorial) { //tutorial tutorial = new TutorialElement(); bg.AddChild(tutorial); tutorial.AddRectangle(new Point((GameManager.Width / 2) + 50, GameManager.Height / 3), new Point((GameManager.Width / 2) + 50, GameManager.Height / 3), "This is the first place you see when you want to play."); tutorial.AddRectangle(new Point(gamemodeSelector.BaseX, gamemodeSelector.BaseY), new Point(gamemodeSelector.BaseX + gamemodeSelector.Width, gamemodeSelector.BaseY + gamemodeSelector.GetHeight()), "Here you can select the gamemode you want"); tutorial.AddRectangle(new Point(gamemodeSelector.BaseX, gamemodeSelector.BaseY), new Point(gamemodeSelector.BaseX + gamemodeSelector.Width, gamemodeSelector.BaseY + gamemodeSelector.GetHeightOfElement(1)), "In Normal mode you have a fixed number of images \nand you need to find them fast for higher scores"); tutorial.AddRectangle(new Point(gamemodeSelector.BaseX, gamemodeSelector.BaseY + gamemodeSelector.GetHeightOfElement(1)), new Point(gamemodeSelector.BaseX + gamemodeSelector.Width, gamemodeSelector.BaseY + gamemodeSelector.GetHeightOfElement(2)), "In Endless mode you have infinite number of images for training"); tutorial.AddRectangle(new Point(gamemodeSelector.BaseX, gamemodeSelector.BaseY + gamemodeSelector.GetHeightOfElement(2)), new Point(gamemodeSelector.BaseX + gamemodeSelector.Width, gamemodeSelector.BaseY + gamemodeSelector.GetHeightOfElement(3)), "In Time mode you have a fixed number of images \nbut only half minutes. Your score will be multiplied\nwith the seconds remaining"); tutorial.AddRectangle(new Point(gamemodeSelector.BaseX, gamemodeSelector.BaseY), new Point(gamemodeSelector.BaseX + gamemodeSelector.Width, gamemodeSelector.BaseY + gamemodeSelector.GetHeight()), "Please select a gamemode!"); tutorial.AddRectangle(new Point(difficultySelector.BaseX, difficultySelector.BaseY), new Point(difficultySelector.BaseX + difficultySelector.Width, difficultySelector.BaseY + difficultySelector.GetHeight()), "You can choose from difficulties, we have three here"); tutorial.AddRectangle(new Point(difficultySelector.BaseX, difficultySelector.BaseY), new Point(difficultySelector.BaseX + difficultySelector.Width, difficultySelector.BaseY + gamemodeSelector.GetHeightOfElement(1)), "In easy mode you get less tasks and pure images"); tutorial.AddRectangle(new Point(difficultySelector.BaseX, difficultySelector.BaseY + difficultySelector.GetHeightOfElement(1)), new Point(difficultySelector.BaseX + difficultySelector.Width, difficultySelector.BaseY + difficultySelector.GetHeightOfElement(2)), "In normal mode you get average tasks and \nsome of the images are rotated, blurred or colored"); tutorial.AddRectangle(new Point(difficultySelector.BaseX, difficultySelector.BaseY + difficultySelector.GetHeightOfElement(2)), new Point(difficultySelector.BaseX + difficultySelector.Width, difficultySelector.BaseY + difficultySelector.GetHeightOfElement(3)), "In hard mode you get a lot of tasks and \nall of the images are rotated, blurred or colored"); tutorial.AddRectangle(new Point(difficultySelector.BaseX, difficultySelector.BaseY), new Point(difficultySelector.BaseX + difficultySelector.Width, difficultySelector.BaseY + difficultySelector.GetHeight()), "Please choose a mode if the selected is not good for you"); tutorial.AddRectangle(new Point(musicRect.Left, musicRect.Top), new Point(musicRect.Right, musicRect.Bottom), "You can set the music here, if you want"); tutorial.AddRectangle(new Point(vibRect.Left, vibRect.Top), new Point(vibRect.Right, vibRect.Bottom), "And the vibration too"); tutorial.AddRectangle(new Point(playRect.Left - 10, playRect.Top - 10), new Point(playRect.Right + 10, playRect.Bottom + 10), "If all set, please click on the Play button now"); tutorial.ShowNextTutorial(); } }