Ejemplo n.º 1
0
    public AchievementsView CreateConcreteAchievementsView()
    {
        AchievementsView achievementsView = Instantiate(_achievementsView);

        container.Inject(achievementsView);
        return(achievementsView);
    }
Ejemplo n.º 2
0
        private View AchievementsView()
        {
            var achievementsView = new AchievementsView();

            //var achievementsView = new TieredAchievementsView();
            achievementsView.SetBinding(BindingContextProperty, nameof(HomeViewModel.AchievementsViewModel));
            return(achievementsView);
        }
Ejemplo n.º 3
0
    public void SwitchView()
    {
        switch (_menuScreensService.MenuStates)
        {
        case MenuScreensService.MenuScreens.Login:
            LoginView loginView = _menuFactory.CreateConcreteLoginView();
            loginView.transform.SetParent(gameObject.transform);
            loginView.OnLoginViewSetDel = SetState;                                                                             // nie korzysta z DelegateService, jego delegat jest nieco inny od pozostałych
            break;

        case MenuScreensService.MenuScreens.MainMenu:
            MainLobbyView mainLobbyView = _menuFactory.CreateConcreteMainLobbyView();
            mainLobbyView.transform.SetParent(gameObject.transform);
            _delegateService.OnStateSetDel = SetState;
            break;

        case MenuScreensService.MenuScreens.HowtoPlay:
            HowToPlayView howToPlay = _menuFactory.CreateConcreteHowToPlayView();
            howToPlay.transform.SetParent(gameObject.transform);
            _delegateService.OnStateSetDel = SetState;
            break;

        case MenuScreensService.MenuScreens.Credits:
            CreditsView creditsView = _menuFactory.CreateConcreteCreditsView();
            creditsView.transform.SetParent(gameObject.transform);
            _delegateService.OnStateSetDel = SetState;
            break;

        case MenuScreensService.MenuScreens.Achievements:
            AchievementsView achievementsView = _menuFactory.CreateConcreteAchievementsView();
            achievementsView.transform.SetParent(gameObject.transform);
            _delegateService.OnStateSetDel = SetState;
            break;

        case MenuScreensService.MenuScreens.Profile:
            ProfileView profileView = _menuFactory.CreateConcreteProfileView();
            profileView.transform.SetParent(gameObject.transform);
            _delegateService.OnStateSetDel = SetState; break;

        case MenuScreensService.MenuScreens.NewGame:
            SceneManager.LoadScene("Game");
            break;
        }
    }
Ejemplo n.º 4
0
        public async Task <AchievementsView> GetAchievementsView(List <Season> seasons, Season season)
        {
            var leaderboardView = await _leaderboardViewRepository.GetLeaderboardView(season);

            var matches =
                (await _matchRepository.GetMatches(season.StartDate,
                                                   HelperMethods.GetNextSeason(seasons, season)?.StartDate))
                .OrderBy(m => m.TimeStampUtc).ToList();

            GetStreak(matches, leaderboardView.Entries, true, out var winStreak, out var playerWin);

            GetStreak(matches, leaderboardView.Entries, false, out var lossStreak, out var playerLoss);

            var mostGames = leaderboardView.Entries.OrderByDescending(e => e.NumberOfGames).First();
            var mostWins  = leaderboardView.Entries.OrderByDescending(e => e.Wins).First();
            var bestRatio = leaderboardView.Entries.OrderByDescending(e => e.Wins / e.NumberOfGames).First();


            var flawlessVictoryWinners = new List <string>();
            var flawlessVictoryLoosers = new List <string>();

            GetFlawlessVictory(matches, flawlessVictoryWinners, flawlessVictoryLoosers);

            var view = new AchievementsView
            {
                Achievements = new List <Achievement>()
                {
                    new Achievement()
                    {
                        Headline = "Most games",
                        UserName = mostGames.UserName,
                        Count    = mostGames.NumberOfGames.ToString(),
                        Type     = "Games"
                    },
                    new Achievement()
                    {
                        Headline = "Most wins",
                        UserName = mostWins.UserName,
                        Count    = mostWins.Wins.ToString(),
                        Type     = "Games"
                    },
                    new Achievement()
                    {
                        Headline = "Best win ratio",
                        UserName = bestRatio.UserName,
                        Count    =
                            ((int)((double)((double)bestRatio.Wins / (double)bestRatio.NumberOfGames) * 100)).ToString(),
                        Type = "Ratio"
                    },
                    new Achievement()
                    {
                        Headline = "Longest win streak",
                        UserName = playerWin.UserName,
                        Count    = winStreak.ToString(),
                        Type     = "Games"
                    },
                    new Achievement()
                    {
                        Headline = "Longest loss streak",
                        UserName = playerLoss.UserName,
                        Count    = lossStreak.ToString(),
                        Type     = "Games"
                    },
                    //new Achievement()
                    //{
                    //    Headline = "Most points for single match",
                    //    UserName = "******",
                    //    Count = "",
                    //    Type = "Points"
                    //},
                    new Achievement()
                    {
                        Headline = "Flawless victory (10-0 win)",
                        UserName = "******" + string.Join(" and ", flawlessVictoryWinners.ToArray()),
                        Count    = string.Join(" and ", flawlessVictoryLoosers.ToArray()),
                        Type     = "Loosers"
                    }
                }
            };

            return(view);
        }