public PlayerStats(PlayerDamageDealt playerDamageDealt, PlayerHealDealt playeHealDealt, EntityInformation entityInformation, Database.Structures.Skills skills, PlayerAbnormals buffs) { InitializeComponent(); PlayerDamageDealt = playerDamageDealt; PlayerHealDealt = playeHealDealt; EntityInformation = entityInformation; Skills = skills; _buffs = buffs; Image = ClassIcons.Instance.GetImage(PlayerDamageDealt.Source.Class).Source; Class.Source = Image; LabelName.Content = PlayerName; LabelName.ToolTip = PlayerDamageDealt.Source.FullName; }
public void Repaint(PlayerDamageDealt playerDamageDealt, PlayerHealDealt playerHealDealt, EntityInformation entityInformation, Database.Structures.Skills skills, PlayerAbnormals buffs, bool timedEncounter) { PlayerHealDealt = playerHealDealt; EntityInformation = entityInformation; PlayerDamageDealt = playerDamageDealt; _buffs = buffs; _timedEncounter = timedEncounter; Skills = skills; LabelDps.Content = GlobalDps; LabelDps.ToolTip = $"{LP.Individual_dps}: {Dps}"; LabelCritRate.Content = PlayerDamageDealt.Source.IsHealer && BasicTeraData.Instance.WindowData.ShowHealCrit ? CritRateHeal : CritRate; var intervalTimespan = TimeSpan.FromSeconds(PlayerDamageDealt.Interval/TimeSpan.TicksPerSecond); LabelCritRate.ToolTip = $"{LP.Fight_Duration}: {intervalTimespan.ToString(@"mm\:ss")}"; LabelCritRate.Foreground = PlayerDamageDealt.Source.IsHealer && BasicTeraData.Instance.WindowData.ShowHealCrit ? Brushes.LawnGreen : Brushes.LightCoral; LabelDamagePart.Content = DamagePart; LabelDamagePart.ToolTip = $"{LP.Damage_done}: {Damage}"; _windowSkill?.Update(PlayerDamageDealt, EntityInformation, Skills, _buffs, _timedEncounter); Spacer.Width = 0; GridStats.Measure(new Size(double.PositiveInfinity, double.PositiveInfinity)); var SGrid = ((DamageMeter.UI.MainWindow)((System.Windows.FrameworkElement) ((System.Windows.FrameworkElement) ((System.Windows.FrameworkElement) this.Parent).Parent).Parent).Parent) .SGrid; var EGrid = ((DamageMeter.UI.MainWindow)((System.Windows.FrameworkElement) ((System.Windows.FrameworkElement)((System.Windows.FrameworkElement)this.Parent).Parent).Parent).Parent) .EGrid; SGrid.Measure(new Size(double.PositiveInfinity, double.PositiveInfinity)); var mainWidth = SGrid.DesiredSize.Width; Spacer.Width = mainWidth > GridStats.DesiredSize.Width ? mainWidth - GridStats.DesiredSize.Width : 0; DpsIndicator.Width = EntityInformation.TotalDamage == 0 ? mainWidth : mainWidth * PlayerDamageDealt.Amount/EntityInformation.TotalDamage; EGrid.MaxWidth = Math.Max(mainWidth, GridStats.DesiredSize.Width); }