public void UpdateOverview()
        {
            var player = PlayerOverview.Create(new List <PlayerId> {
                PlayerId.Create("peter#123")
            }, GateWay.Europe, GameMode.GM_1v1, 0, null);

            player.RecordWin(true, 1230);
            player.RecordWin(false, 1240);
            player.RecordWin(false, 1250);

            Assert.AreEqual(3, player.Games);
            Assert.AreEqual(1, player.Wins);
            Assert.AreEqual(2, player.Losses);
            Assert.AreEqual("peter#123", player.PlayerIds[0].BattleTag);
            Assert.AreEqual("peter", player.PlayerIds[0].Name);
            Assert.AreEqual("0_peter#123@20_GM_1v1", player.Id);
            Assert.AreEqual(1250, player.MMR);
        }
    /// <summary>
    /// Add distant player to main GUI.
    /// </summary>
    /// <param name="player">The distant player to be added.</param>
    /// <returns>The particular distant player's GUI.</returns>
    public VirtualPlayer AddPlayer(Player player)
    {
        GameObject playerGUI      = Resources.Load("distant_player") as GameObject;
        GameObject playerOverview = Instantiate(playerGUI, this.transform.root);

        GameObject playerIcon  = Resources.Load("player") as GameObject;
        Text       playerLabel = playerIcon.GetComponentInChildren <Text>();

        playerLabel.text = player.Name;

        GameObject     distantPlayerIcon = Instantiate(playerIcon, this.transform);
        PlayerOverview po = distantPlayerIcon.GetComponent <PlayerOverview>();

        po.Overview = playerOverview;

        VirtualPlayer virtualPlayer = playerOverview.GetComponentInChildren <VirtualPlayer>();

        virtualPlayer.Initialize();
        return(virtualPlayer);
    }
Exemple #3
0
        public async Task ReturnRanks_WithRaceSpecificRank()
        {
            // Arrange
            var rankRepository   = new RankRepository(MongoClient);
            var playerRepository = new PlayerRepository(MongoClient);
            var queryHandler     = new RankQueryHandler(rankRepository, playerRepository, new ClanRepository(MongoClient));

            var ranks = new List <Rank>
            {
                new Rank(new List <string> {
                    "peter#123"
                }, 1, 2, 1000, Race.HU, GateWay.America, GameMode.GM_1v1, 2),
                new Rank(new List <string> {
                    "peter#123"
                }, 1, 3, 2000, Race.NE, GateWay.America, GameMode.GM_1v1, 2)
            };
            await rankRepository.InsertRanks(ranks);

            var player1 = PlayerOverview.Create(new List <PlayerId> {
                PlayerId.Create("peter#123")
            }, GateWay.America, GameMode.GM_1v1, 2, Race.HU);

            player1.RecordWin(true, 1234);
            await playerRepository.UpsertPlayerOverview(player1);

            var player2 = PlayerOverview.Create(new List <PlayerId> {
                PlayerId.Create("peter#123")
            }, GateWay.America, GameMode.GM_1v1, 2, Race.NE);

            player2.RecordWin(true, 1234);
            await playerRepository.UpsertPlayerOverview(player2);

            // Act
            var playerLoaded = await queryHandler.LoadPlayersOfLeague(1, 2, GateWay.America, GameMode.GM_1v1);

            // Assert
            Assert.AreEqual(2, playerLoaded.Count);

            Assert.AreEqual("peter#123", playerLoaded[0].Player.PlayerIds.Single().BattleTag);
            Assert.AreEqual("peter#123", playerLoaded[1].Player.PlayerIds.Single().BattleTag);
        }
        public PlayerOverview GetOverview()
        {
            PlayerOverview overview = new PlayerOverview();
            RestRequest    request  = CreateGladiatusRequest(Method.GET, false, true);

            request.AddParameter("mod", "overview");

            var response = _RestClient.Execute(request);

            if (response.StatusCode == HttpStatusCode.OK)
            {
                try {
                    HtmlDocument doc = new HtmlDocument();
                    doc.LoadHtml(response.Content);

                    var honourMatch = Regex.Match(doc.GetElementbyId("sstat_highscore").InnerHtml, Patterns.HONOUR_PATTERN);
                    var hpMatch     = Regex.Match(doc.GetElementbyId("header_values_hp").InnerHtml, Patterns.HITPOINTS_PATTERN);
                    var expMatch    = Regex.Match(doc.GetElementbyId("header_values_xp").InnerHtml, Patterns.EXPERIENCE_PATTERN);

                    overview.Gold    = int.Parse(doc.GetElementbyId("sstat_gold_val").InnerHtml, System.Globalization.NumberStyles.AllowThousands);
                    overview.Rubies  = int.Parse(doc.GetElementbyId("sstat_ruby_val").InnerHtml, System.Globalization.NumberStyles.AllowThousands);
                    overview.Ranking = int.Parse(doc.GetElementbyId("highscorePlace").InnerHtml, System.Globalization.NumberStyles.AllowThousands);
                    overview.Level   = int.Parse(doc.GetElementbyId("header_values_level").InnerHtml, System.Globalization.NumberStyles.AllowThousands);

                    overview.Honour     = int.Parse(honourMatch.Groups["Honour"].Value, System.Globalization.NumberStyles.AllowThousands);
                    overview.CurrentHP  = int.Parse(hpMatch.Groups["CurrentHP"].Value, System.Globalization.NumberStyles.AllowThousands);
                    overview.MaxHP      = int.Parse(hpMatch.Groups["MaxHP"].Value, System.Globalization.NumberStyles.AllowThousands);
                    overview.CurrentXP  = int.Parse(expMatch.Groups["CurrentExp"].Value, System.Globalization.NumberStyles.AllowThousands);
                    overview.RequiredXP = int.Parse(expMatch.Groups["MaxExp"].Value, System.Globalization.NumberStyles.AllowThousands);

                    return(overview);
                } catch (Exception ex) {
                    System.Windows.Forms.MessageBox.Show(ex.Message, "Exception", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error);
                    return(null);
                }
            }
            else
            {
                return(null);
            }
        }
Exemple #5
0
        public async Task LoadAndSave_NotFound()
        {
            var rankRepository   = new RankRepository(MongoClient);
            var playerRepository = new PlayerRepository(MongoClient);

            var ranks = new List <Rank> {
                new Rank(new List <string> {
                    "peter#123"
                }, 1, 12, 1456, GateWay.Europe, GameMode.GM_1v1, 0)
            };
            await rankRepository.InsertRanks(ranks);

            var player = PlayerOverview.Create(new List <PlayerId> {
                PlayerId.Create("peter#123")
            }, GateWay.Europe, GameMode.GM_1v1, 0);
            await playerRepository.UpsertPlayerOverview(player);

            var playerLoaded = await rankRepository.LoadPlayersOfLeague(1, 0, GateWay.America, GameMode.GM_1v1);

            Assert.IsEmpty(playerLoaded);
        }
Exemple #6
0
        public async Task ReturnRanks_ClanGetsResolved()
        {
            // Arrange
            var rankRepository   = new RankRepository(MongoClient);
            var playerRepository = new PlayerRepository(MongoClient);
            var clanRepository   = new ClanRepository(MongoClient);
            var queryHandler     = new RankQueryHandler(rankRepository, playerRepository, clanRepository);

            var ranks = new List <Rank> {
                new Rank(new List <string> {
                    "peter#123"
                }, 1, 12, 1456, GateWay.America, GameMode.GM_1v1, 1)
            };
            await rankRepository.InsertRanks(ranks);

            var player = PlayerOverview.Create(new List <PlayerId> {
                PlayerId.Create("peter#123")
            }, GateWay.America, GameMode.GM_1v1, 1);

            player.RecordWin(true, 1234);
            await playerRepository.UpsertPlayerOverview(player);

            var playerStats = new PlayerOverallStats()
            {
                BattleTag = "peter#123",
            };
            await playerRepository.UpsertPlayer(playerStats);

            await clanRepository.UpsertMemberShip(new ClanMembership { BattleTag = "peter#123", ClanId = "W3C" });

            // Act
            var playerLoaded = await queryHandler.LoadPlayersOfLeague(1, 1, GateWay.America, GameMode.GM_1v1);

            // Assert
            Assert.AreEqual(1, playerLoaded.Count);

            var playerRank = playerLoaded[0];

            Assert.AreEqual("W3C", playerRank.PlayersInfo.Single().ClanId);
        }
Exemple #7
0
        public async Task LoadClan_PopulateRanks()
        {
            var clan = await CreateFoundedClanForTest();

            await _rankRepository.UpsertSeason(new Season(0));

            await _rankRepository.UpsertSeason(new Season(1));

            await _rankRepository.InsertRanks(new List <Rank>
            {
                new Rank(new List <string> {
                    clan.Members[0]
                }, 1, 5, 1500, null, GateWay.Europe, GameMode.GM_1v1, 1)
            });

            await _rankRepository.InsertLeagues(new List <LeagueConstellation>
            {
                new LeagueConstellation(1, GateWay.Europe, GameMode.GM_1v1, new List <League>
                {
                    new League(1, 2, "Wood", 5)
                })
            });

            var playerRepository = new PlayerRepository(MongoClient);
            await playerRepository.UpsertPlayerOverview(PlayerOverview.Create(new List <PlayerId>
            {
                PlayerId.Create(clan.Members[0])
            },
                                                                              GateWay.Europe,
                                                                              GameMode.GM_1v1,
                                                                              1,
                                                                              null));

            var clanLoaded = await _handler.LoadClan(clan.ClanId);

            Assert.AreEqual(1, clanLoaded.Ranks.First().League);
            Assert.AreEqual(2, clanLoaded.Ranks.First().LeagueOrder);
            Assert.AreEqual("Wood", clanLoaded.Ranks.First().LeagueName);
            Assert.AreEqual(5, clanLoaded.Ranks.First().LeagueDivision);
        }
Exemple #8
0
        public async Task ReturnRanks_WhenPlayersDoNotHavePersonalSettingsConfigured_MustHaveNotThrowError()
        {
            // Arrange
            var rankRepository   = new RankRepository(MongoClient);
            var playerRepository = new PlayerRepository(MongoClient);
            var clanRepository   = new ClanRepository(MongoClient);
            var queryHandler     = new RankQueryHandler(rankRepository, playerRepository, clanRepository);

            var ranks = new List <Rank> {
                new Rank(new List <string> {
                    "peter#123"
                }, 1, 12, 1456, GateWay.America, GameMode.GM_1v1, 1)
            };
            await rankRepository.InsertRanks(ranks);

            var player = PlayerOverview.Create(new List <PlayerId> {
                PlayerId.Create("peter#123")
            }, GateWay.America, GameMode.GM_1v1, 1);

            player.RecordWin(true, 1234);
            await playerRepository.UpsertPlayerOverview(player);

            var playerStats = new PlayerOverallStats()
            {
                BattleTag = "peter#123",
            };
            await playerRepository.UpsertPlayer(playerStats);

            // Act
            var playerLoaded = await queryHandler.LoadPlayersOfLeague(1, 1, GateWay.America, GameMode.GM_1v1);

            // Assert
            Assert.AreEqual(1, playerLoaded.Count);

            var playerRank = playerLoaded[0];

            Assert.AreEqual("1_peter#123@10_GM_1v1", playerRank.Players.First().Id);
        }
Exemple #9
0
 public async Task UpsertPlayerOverview(PlayerOverview playerOverview)
 {
     await Upsert(playerOverview);
 }