Пример #1
0
 protected override void OnJeuFini(int winnerId)
 {
     base.OnJeuFini(winnerId);
     FinishedGame?.Invoke(this, new WinnerEventArgs(winnerId));
     if (Fini)
     {
         OnMatchFini(winnerId);
     }
 }
Пример #2
0
        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);
        }
Пример #3
0
        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);
        }
Пример #5
0
 public void Create(FinishedGame finishedGame)
 {
     _finishedGameRepository.Save(GameMapper.Instance.Map <FinishedGameDto>(finishedGame));
 }
Пример #6
0
        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;
            }
        }