コード例 #1
0
 public PlayerStatsControl(PlayerInfo playerInfo)
 {
     PlayerData = new PlayerData(playerInfo);
     DoubleBuffered = true;
     HighlightColor = Color.DodgerBlue;
     BackColor = Color.DimGray;
     ForeColor = Color.White;
 }
コード例 #2
0
        public SkillBreakdownViewModel(PlayerInfo playerInfo)
        {
            ComboBoxEntities = new ThreadSafeObservableCollection<ComboBoxEntity>
            {
                new ComboBoxEntity(SkillViewType.FlatView, "Flat View"),
                new ComboBoxEntity(SkillViewType.AggregatedSkillIdView, "Aggregate by Id"),
                new ComboBoxEntity(SkillViewType.AggregatedSkillNameView, "Aggregate by Name")
            };

            //NOTE: These are duplicated in the xaml because of a wpf bug
            SortDescriptionMappings = new Dictionary<SkillViewType, IList<SortDescription>>
            {
                {
                    SkillViewType.FlatView,
                    new List<SortDescription>
                    {
                        new SortDescription(nameof(SkillResult.Time), ListSortDirection.Ascending)
                    }

                },
                {
                    SkillViewType.AggregatedSkillIdView,
                    new List<SortDescription>
                    {
                        new SortDescription(nameof(AggregatedSkillResult.Amount), ListSortDirection.Descending)
                    }
                },
                {
                    SkillViewType.AggregatedSkillNameView,
                    new List<SortDescription>
                    {
                        new SortDescription(nameof(AggregatedSkillResult.Amount), ListSortDirection.Descending)
                    }
                }
            };

            //set the intial view
            var initialView = SkillViewType.AggregatedSkillNameView;
            SortDescriptionSource = SortDescriptionMappings[initialView];
            SelectedCollectionView = ComboBoxEntities.First(cbe => cbe.Key == initialView);

            PlayerInfo = playerInfo;
            SkillLog = PlayerInfo.SkillLog;

            //subscribe to future changes and invoke manually
            SkillLog.CollectionChanged += (sender, args) =>
            {
                PopulateAggregatedSkillLogs();
                CasualMessenger.Instance.Messenger.Send(new ScrollPlayerStatsMessage(), this);
            };

            PopulateAggregatedSkillLogs();
        }
コード例 #3
0
        public static PlaceHolder FromPlayerInfo(PlayerInfo playerInfo, FormatHelpers formatHelpers)
        {
            var placeHolders = new List<KeyValuePair<string, object>>();
            placeHolders.Add(new KeyValuePair<string, object>("Name", playerInfo.Name));
            placeHolders.Add(new KeyValuePair<string, object>("Class", playerInfo.Class));

            placeHolders.Add(new KeyValuePair<string, object>("Crits", playerInfo.Dealt.Crits));
            placeHolders.Add(new KeyValuePair<string, object>("Hits", playerInfo.Dealt.Hits));

            placeHolders.Add(new KeyValuePair<string, object>("DamagePercent", formatHelpers.FormatPercent(playerInfo.DamageFraction) ?? "-"));
            placeHolders.Add(new KeyValuePair<string, object>("CritPercent", formatHelpers.FormatPercent((double)playerInfo.Dealt.Crits / playerInfo.Dealt.Hits) ?? "-"));

            placeHolders.Add(new KeyValuePair<string, object>("Damage", formatHelpers.FormatValue(playerInfo.Dealt.Damage)));
            placeHolders.Add(new KeyValuePair<string, object>("DamageReceived", formatHelpers.FormatValue(playerInfo.Received.Damage)));
            placeHolders.Add(new KeyValuePair<string, object>("DPS", formatHelpers.FormatValue(playerInfo.Dps)));
            return new PlaceHolder(placeHolders, formatHelpers.CultureInfo);
        }
コード例 #4
0
        public PlayerStatsFormatter(PlayerInfo playerInfo, FormatHelpers formatHelpers)
        {
            var placeHolders = new List<KeyValuePair<string, object>>();
            placeHolders.Add(new KeyValuePair<string, object>("Name", playerInfo.Name));
            placeHolders.Add(new KeyValuePair<string, object>("Class", playerInfo.Class));

            placeHolders.Add(new KeyValuePair<string, object>("Crits", playerInfo.Dealt.Crits));
            placeHolders.Add(new KeyValuePair<string, object>("Hits", playerInfo.Dealt.Hits));

            placeHolders.Add(new KeyValuePair<string, object>("DamagePercent", formatHelpers.FormatPercent(playerInfo.DamageFraction) ?? "NaN"));
            placeHolders.Add(new KeyValuePair<string, object>("CritPercent", formatHelpers.FormatPercent((double)playerInfo.Dealt.Crits / playerInfo.Dealt.Hits) ?? "NaN"));

            placeHolders.Add(new KeyValuePair<string, object>("Damage", formatHelpers.FormatValue(playerInfo.Dealt.Damage)));
            placeHolders.Add(new KeyValuePair<string, object>("DamageReceived", formatHelpers.FormatValue(playerInfo.Received.Damage)));
            placeHolders.Add(new KeyValuePair<string, object>("DPS", $"{formatHelpers.FormatValue(playerInfo.Dps)}/s"));

            Placeholders = placeHolders.ToDictionary(x => x.Key, y => y.Value);
            FormatProvider = formatHelpers.CultureInfo;
        }
コード例 #5
0
ファイル: PlayerData.cs プロジェクト: hawkwork/CasualMeter
 public PlayerData(PlayerInfo playerInfo)
 {
     PlayerInfo = playerInfo;
 }
コード例 #6
0
ファイル: DamageTracker.cs プロジェクト: hawkwork/CasualMeter
 private PlayerInfo GetOrCreate(Player player)
 {
     PlayerInfo playerStats = StatsByUser.FirstOrDefault(pi => pi.Player.Equals(player));
     if (playerStats == null)
     {
         playerStats = new PlayerInfo(player, this);
         StatsByUser.Add(playerStats);
     }
     return playerStats;
 }
コード例 #7
0
ファイル: DamageTracker.cs プロジェクト: DzenDyn/CasualMeter
 private PlayerInfo GetOrCreate(SkillResult skillResult)
 {
     var player = skillResult.SourcePlayer;
     PlayerInfo playerStats = StatsByUser.FirstOrDefault(pi => pi.Player.Equals(player));
     if (playerStats == null && (IsFromHealer(skillResult) ||//either healer
        (!IsFromHealer(skillResult) && IsValidAttack(skillResult))))//or damage from non-healer
     {
         playerStats = new PlayerInfo(player, this);
         StatsByUser.Add(playerStats);
     }
     return playerStats;
 }
コード例 #8
0
ファイル: SkillStats.cs プロジェクト: ha-tam/TeraDamageMeter
 public SkillStats(PlayerInfo playerInfo)
 {
     _playerInfo = playerInfo;
 }