protected override void OnJeuFini(int winnerId) { base.OnJeuFini(winnerId); FinishedGame?.Invoke(this, new WinnerEventArgs(winnerId)); if (Fini) { OnMatchFini(winnerId); } }
public void CreateFinishedGameTest(int gameId) { Game inputGame = gameContext.Games.Include(g => g.Teams).ThenInclude(t => t.Inventory).SingleOrDefault(g => g.Id == gameId); FinishedGame result = service.saveGameStats(inputGame, inputGame.Teams); Assert.Equal(gameId, result.GameId); string expectedLeaderboard = ""; for (int i = 0; i < 3; i++) { expectedLeaderboard += inputGame.Teams[i].Name + ":" + inputGame.Teams[i].Inventory.Ingredients.Count + "/"; } Assert.Equal(expectedLeaderboard, result.TeamsLeaderboard); Assert.Equal(inputGame.Teams[2].Name, result.Winner); }
public MessageResult CreateFinishedGame(CreateFinishedGame data) { MessageResult result = MessageResult.ErrorMessage("Failed to create"); try { if (db.Games.Any(g => g.Name == data.Name)) { return(MessageResult.ErrorMessage($"Game name {data.Name} already exists, can't add game.")); } Game newGame = new Game() { Name = data.Name, GenreId = data.GenreId, ImagePath = data.ImagePath, ReleaseDate = data.ReleaseDate, }; db.Games.Add(newGame); db.SaveChanges(); Game addedGame = db.Games.Where(g => g.Name == data.Name) .SingleOrDefault(); FinishedGame newFinishedGame = new FinishedGame() { GameId = addedGame.GameId, DaysPlayed = data.DaysPlayed, HoursPlayed = data.HoursPlayed, GameRatingId = data.GameRatingId, GameStartDate = data.GameStartDate, GameFinishedDate = data.GameFinishedDate, }; db.FinishedGames.Add(newFinishedGame); db.SaveChanges(); result = MessageResult.SuccessMessage($"Game {data.Name} has been added to the Finished games list"); } catch { throw; } return(result); }
public FinishedGame createFinishedGame(Game game, List <Team> teams) { FinishedGame finishedGame = new FinishedGame(game.Id); finishedGame.TeamsLeaderboard = ""; List <Item> ingredients = shopService.GetIngredients(); int winnerCount = 0; foreach (Team t in teams) { Inventory inventory = inventoryService.getInventory(t.Inventory.Id); int teamCount = inventory.Ingredients.Count; if (teamCount > winnerCount) { winnerCount = teamCount; finishedGame.Winner = t.Name; finishedGame.TeamsLeaderboard.Insert(0, t.Name + ":" + teamCount + "/"); } if (!finishedGame.TeamsLeaderboard.Contains(t.Name)) { int beginSearch = 0; while (finishedGame.TeamsLeaderboard.IndexOf('/', beginSearch) > 0) { int start = finishedGame.TeamsLeaderboard.IndexOf(':', beginSearch); if (start == -1) { break; } int end = finishedGame.TeamsLeaderboard.IndexOf('/', beginSearch); string countString = finishedGame.TeamsLeaderboard.Substring(start + 1, end - (start + 1)); int count = Convert.ToInt32(countString); if (teamCount > count) { finishedGame.TeamsLeaderboard.Insert(beginSearch, t.Name + ":" + teamCount + "/"); break; } beginSearch = end; } if (!finishedGame.TeamsLeaderboard.Contains(t.Name)) { finishedGame.TeamsLeaderboard += t.Name + ":" + teamCount + "/"; } } } return(finishedGame); }
public void Create(FinishedGame finishedGame) { _finishedGameRepository.Save(GameMapper.Instance.Map <FinishedGameDto>(finishedGame)); }
async void CreateScene() { scene = new Scene(); scene.CreateComponent <Octree>(); var physics = scene.CreateComponent <PhysicsWorld>(); physics.SetGravity(new Vector3(0, 0, 0)); // Camera var cameraNode = scene.CreateChild(); cameraNode.Position = (new Vector3(0.0f, 0.0f, -10.0f)); cameraNode.CreateComponent <Camera>(); Viewport = new Viewport(Context, scene, cameraNode.GetComponent <Camera>(), null); if (Platform != Platforms.Android && Platform != Platforms.iOS) { RenderPath effectRenderPath = Viewport.RenderPath.Clone(); var fxaaRp = ResourceCache.GetXmlFile(Assets.PostProcess.FXAA3); effectRenderPath.Append(fxaaRp); Viewport.RenderPath = effectRenderPath; } Renderer.SetViewport(0, Viewport); var zoneNode = scene.CreateChild(); var zone = zoneNode.CreateComponent <Zone>(); zone.SetBoundingBox(new BoundingBox(-300.0f, 300.0f)); zone.AmbientColor = new Color(1f, 1f, 1f); // UI coinsText = new Text(); coinsText.HorizontalAlignment = HorizontalAlignment.Right; coinsText.SetFont(ResourceCache.GetFont(Assets.Fonts.Font), Graphics.Width / 20); UI.Root.AddChild(coinsText); hsCoinsText = new Text(); hsCoinsText.HorizontalAlignment = HorizontalAlignment.Left; hsCoinsText.SetFont(ResourceCache.GetFont(Assets.Fonts.Font), Graphics.Width / 20); UI.Root.AddChild(hsCoinsText); Input.SetMouseVisible(true, false); // Background var background = new Background(); scene.AddComponent(background); background.Start(); // Lights: var lightNode = scene.CreateChild(); lightNode.Position = new Vector3(0, -5, -40); lightNode.AddComponent(new Light { Range = 120, Brightness = 0.8f }); // Game logic cycle bool firstCycle = true; while (true) { // StartMenu = scene.CreateComponent <StartMenu>(); NewStartMenu?.Invoke(StartMenu); if (!firstCycle) { FinishedGame?.Invoke(Coins); } await StartMenu.ShowStartMenu(!firstCycle); //wait for "start" StartMenu.Remove(); RemovedStartMenu?.Invoke(StartMenu); await StartGame(); firstCycle = false; } }