コード例 #1
0
 public MatchPlayerBase(IInternalService internalService, IWebsiteService website, ReplayMatchPlayer player)
 {
     Database    = internalService.Database;
     HeroesIcons = internalService.HeroesIcons;
     UserProfile = internalService.UserProfile;
     Website     = website;
     Player      = player;
 }
コード例 #2
0
        public PlayerNotesWindow(ReplayMatchPlayer player)
        {
            InitializeComponent();

            PlayerNotesWindowViewModel = (PlayerNotesWindowViewModel)DataContext;
            Database          = PlayerNotesWindowViewModel.GetDatabaseService;
            ReplayMatchPlayer = player;

            LoadPlayerNotes();
        }
コード例 #3
0
 public void SetStats(ReplayMatchPlayerScoreResult playerScore, ReplayMatchPlayer player)
 {
     SoloKills              = playerScore.SoloKills;
     Assists                = playerScore.Assists;
     Deaths                 = playerScore.Deaths;
     SiegeDamage            = playerScore.SiegeDamage;
     HeroDamage             = playerScore.HeroDamage;
     HealingRole            = IsHealingStatCharacter(player.Character) ? playerScore.Healing : null;
     DamageTaken            = playerScore.DamageTaken;
     ExperienceContribution = playerScore.ExperienceContribution;
 }
コード例 #4
0
        public MatchPlayerBase(IInternalService internalService, IWebsiteService website, ReplayMatchPlayer player)
        {
            Database    = internalService.Database;
            HeroesIcons = internalService.HeroesIcons;
            UserProfile = internalService.UserProfile;
            Website     = website;
            Player      = player;

            SilenceIcon = HeroesIcons.GetOtherIcon(OtherIcon.Silence);
            TalentBorderScoreScreenIcon = HeroesIcons.GetOtherIcon(OtherIcon.TalentAvailable);
        }
コード例 #5
0
 public void SetStats(ReplayMatchPlayerScoreResult playerScore, ReplayMatchPlayer player)
 {
     SoloKills              = playerScore.SoloKills;
     Assists                = playerScore.Assists;
     Deaths                 = playerScore.Deaths;
     SiegeDamage            = playerScore.SiegeDamage;
     HeroDamage             = playerScore.HeroDamage;
     HealingRole            = playerScore.Healing;
     SelfHealing            = playerScore.SelfHealing;
     DamageTaken            = playerScore.DamageTaken;
     ExperienceContribution = playerScore.ExperienceContribution;
 }
コード例 #6
0
        public MatchPlayerBase(IInternalService internalService, IWebsiteService website, ReplayMatchPlayer player, int build)
        {
            Database    = internalService.Database;
            HeroesIcons = internalService.HeroesIcons;
            UserProfile = internalService.UserProfile;
            Website     = website;
            Player      = player;
            Build       = build;

            SilenceIcon                 = ImageStreams.OtherIconImage(OtherIcon.Silence);
            VoiceSilenceIcon            = ImageStreams.OtherIconImage(OtherIcon.VoiceSilence);
            TalentBorderScoreScreenIcon = ImageStreams.OtherIconImage(OtherIcon.TalentAvailable);
            BoostIcon = ImageStreams.OtherIconImage(OtherIcon.Boost);
        }
コード例 #7
0
 public MatchPlayerStats(IInternalService internalService, IWebsiteService website, ReplayMatchPlayer player)
     : base(internalService, website, player)
 {
 }
コード例 #8
0
        private void PlayerRelatedData()
        {
            Player[] players = GetPlayers();

            foreach (var player in players.Select((value, index) => new { value, index }))
            {
                if (player.value == null)
                {
                    continue;
                }

                ReplayAllHotsPlayer hotsPlayer = new ReplayAllHotsPlayer
                {
                    BattleTagName     = HeroesHelpers.BattleTags.GetBattleTagName(player.value.Name, player.value.BattleTag),
                    BattleNetId       = player.value.BattleNetId,
                    BattleNetRegionId = player.value.BattleNetRegionId,
                    BattleNetSubId    = player.value.BattleNetSubId,
                    BattleNetTId      = player.value.BattleNetTId,
                    AccountLevel      = player.value.AccountLevel,
                    LastSeen          = Replay.Timestamp,
                    LastSeenBefore    = null,
                    Seen = 1,
                };

                long playerId;

                // check if player is already in the database, update if found, otherwise add a new record
                if (ReplaysDb.HotsPlayer.IsExistingRecord(ReplaysContext, hotsPlayer))
                {
                    playerId = ReplaysDb.HotsPlayer.UpdateRecord(ReplaysContext, hotsPlayer);
                }
                else
                {
                    playerId = ReplaysDb.HotsPlayer.CreateRecord(ReplaysContext, hotsPlayer);
                }

                if (player.value.Character == null && Replay.GameMode == Heroes.ReplayParser.GameMode.Custom)
                {
                    player.value.Team      = 4;
                    player.value.Character = "None";

                    ReplayMatchPlayer replayPlayer = new ReplayMatchPlayer
                    {
                        ReplayId          = ReplayId,
                        PlayerId          = playerId,
                        Character         = player.value.Character,
                        CharacterLevel    = player.value.CharacterLevel,
                        Difficulty        = player.value.Difficulty.ToString(),
                        Handicap          = player.value.Handicap,
                        IsAutoSelect      = player.value.IsAutoSelect,
                        IsSilenced        = player.value.IsSilenced,
                        IsWinner          = player.value.IsWinner,
                        MountAndMountTint = player.value.MountAndMountTint,
                        PartyValue        = player.value.PartyValue,
                        PlayerNumber      = -1,
                        SkinAndSkinTint   = player.value.SkinAndSkinTint,
                        Team         = player.value.Team,
                        AccountLevel = player.value.AccountLevel,
                    };

                    ReplaysDb.MatchPlayer.CreateRecord(ReplaysContext, replayPlayer);
                }
                else
                {
                    string character = HeroesIcons.HeroBuilds().GetRealHeroNameFromHeroUnitName(player.value.HeroUnits.FirstOrDefault().Name);
                    if (string.IsNullOrEmpty(character))
                    {
                        throw new TranslationException(RetrieveAllMapAndHeroNames());
                    }

                    ReplayMatchPlayer replayPlayer = new ReplayMatchPlayer
                    {
                        ReplayId          = ReplayId,
                        PlayerId          = playerId,
                        Character         = character,
                        CharacterLevel    = player.value.CharacterLevel,
                        Difficulty        = player.value.Difficulty.ToString(),
                        Handicap          = player.value.Handicap,
                        IsAutoSelect      = player.value.IsAutoSelect,
                        IsSilenced        = player.value.IsSilenced,
                        IsWinner          = player.value.IsWinner,
                        MountAndMountTint = player.value.MountAndMountTint,
                        PartyValue        = player.value.PartyValue,
                        PlayerNumber      = player.index,
                        SkinAndSkinTint   = player.value.SkinAndSkinTint,
                        Team         = player.value.Team,
                        AccountLevel = player.value.AccountLevel,
                    };

                    ReplaysDb.MatchPlayer.CreateRecord(ReplaysContext, replayPlayer);

                    AddScoreResults(player.value.ScoreResult, playerId);
                    AddPlayerTalents(player.value.Talents, playerId, character);
                    AddMatchAwards(player.value.ScoreResult.MatchAwards, playerId);
                }

                AddPlayerHeroes(player.value.PlayerCollectionDictionary, playerId);
            } // end foreach loop for players
        }
コード例 #9
0
 public MatchObserver(IInternalService internalService, IWebsiteService website, ReplayMatchPlayer player, int build)
     : base(internalService, website, player, build)
 {
 }
コード例 #10
0
        private void PlayerRelatedData()
        {
            Player[] players = GetPlayers();

            int playerNum = 0;

            foreach (Player player in players)
            {
                if (player == null)
                {
                    continue;
                }

                ReplayAllHotsPlayer hotsPlayer = new ReplayAllHotsPlayer
                {
                    BattleTagName     = HeroesHelpers.BattleTags.GetBattleTagName(player.Name, player.BattleTag),
                    BattleNetId       = player.BattleNetId,
                    BattleNetRegionId = player.BattleNetRegionId,
                    BattleNetSubId    = player.BattleNetSubId,
                    BattleNetTId      = player.BattleNetTId,
                    AccountLevel      = player.AccountLevel,
                    LastSeen          = Replay.Timestamp,
                    LastSeenBefore    = null,
                    Seen = 1,
                };

                long playerId;

                // check if player is already in the database, update if found, otherwise add a new record
                if (ReplaysDb.HotsPlayer.IsExistingRecord(ReplaysContext, hotsPlayer))
                {
                    playerId = ReplaysDb.HotsPlayer.UpdateRecord(ReplaysContext, hotsPlayer);
                }
                else
                {
                    playerId = ReplaysDb.HotsPlayer.CreateRecord(ReplaysContext, hotsPlayer);
                }

                if (player.Character == null && Replay.GameMode == Heroes.ReplayParser.GameMode.Custom)
                {
                    player.Team      = 4;
                    player.Character = "None";

                    ReplayMatchPlayer replayPlayer = new ReplayMatchPlayer
                    {
                        ReplayId          = ReplayId,
                        PlayerId          = playerId,
                        Character         = player.Character,
                        CharacterLevel    = player.CharacterLevel,
                        Difficulty        = player.Difficulty.ToString(),
                        Handicap          = player.Handicap,
                        IsAutoSelect      = player.IsAutoSelect,
                        IsSilenced        = player.IsSilenced,
                        IsVoiceSilenced   = player.IsVoiceSilence,
                        IsWinner          = player.IsWinner,
                        MountAndMountTint = player.MountAndMountTint,
                        PartyValue        = player.PartyValue,
                        PartySize         = 0,
                        PlayerNumber      = -1,
                        SkinAndSkinTint   = player.SkinAndSkinTint,
                        Team            = player.Team,
                        AccountLevel    = player.AccountLevel,
                        IsBlizzardStaff = player.IsBlizzardStaff,
                        HasActiveBoost  = player.HasActiveBoost,
                    };

                    ReplaysDb.MatchPlayer.CreateRecord(ReplaysContext, replayPlayer);
                }
                else
                {
                    string character = HeroesIcons.HeroesData(Replay.ReplayBuild).HeroNameFromUnitId(player.HeroUnits.FirstOrDefault().Name);
                    if (string.IsNullOrEmpty(character))
                    {
                        throw new TranslationException(RetrieveAllMapAndHeroNames());
                    }

                    ReplayMatchPlayer replayPlayer = new ReplayMatchPlayer
                    {
                        ReplayId          = ReplayId,
                        PlayerId          = playerId,
                        Character         = character,
                        CharacterLevel    = player.CharacterLevel,
                        Difficulty        = player.Difficulty.ToString(),
                        Handicap          = player.Handicap,
                        IsAutoSelect      = player.IsAutoSelect,
                        IsSilenced        = player.IsSilenced,
                        IsVoiceSilenced   = player.IsVoiceSilence,
                        IsWinner          = player.IsWinner,
                        MountAndMountTint = player.MountAndMountTint,
                        PartyValue        = player.PartyValue,
                        PartySize         = 0,
                        PlayerNumber      = playerNum,
                        SkinAndSkinTint   = player.SkinAndSkinTint,
                        Team            = player.Team,
                        AccountLevel    = player.AccountLevel,
                        IsBlizzardStaff = player.IsBlizzardStaff,
                        HasActiveBoost  = player.HasActiveBoost,
                    };

                    string attributeId = HeroesIcons.HeroesData(Replay.ReplayBuild).HeroData(character, false, false, false).AttributeId;
                    if (player.HeroMasteryTiers.ToDictionary(x => x.HeroAttributeId, x => x.TierLevel).TryGetValue(attributeId, out int tierLevel))
                    {
                        if (tierLevel == 2 && replayPlayer.CharacterLevel < 25)
                        {
                            replayPlayer.CharacterLevel = 25;
                        }
                        else if (tierLevel == 3 && replayPlayer.CharacterLevel < 50)
                        {
                            replayPlayer.CharacterLevel = 50;
                        }
                        else if (tierLevel == 4 && replayPlayer.CharacterLevel < 75)
                        {
                            replayPlayer.CharacterLevel = 75;
                        }
                        else if (tierLevel == 5 && replayPlayer.CharacterLevel < 100)
                        {
                            replayPlayer.CharacterLevel = 100;
                        }
                    }

                    ReplaysDb.MatchPlayer.CreateRecord(ReplaysContext, replayPlayer);

                    AddScoreResults(player.ScoreResult, playerId);
                    AddPlayerTalents(player.Talents, playerId, character);
                    AddMatchAwards(player.ScoreResult.MatchAwards, playerId);

                    playerNum++;
                }
            } // end foreach loop for players

            // set the players' party size count
            ReplaysDb.MatchPlayer.SetPlayerPartyCountsForMatch(ReplaysContext, ReplayId);
        }
コード例 #11
0
        public void ShowPlayerNotesWindow(ReplayMatchPlayer player)
        {
            PlayerNotesWindow window = new PlayerNotesWindow(player);

            window.ShowDialog();
        }
コード例 #12
0
 public MatchPlayerAdvancedStats(IInternalService internalService, IWebsiteService website, ReplayMatchPlayer player, int build)
     : base(internalService, website, player, build)
 {
 }