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 : BasicTeraData.Instance.WindowData.ShowCritDamageRate ? CritDamageRate : 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 : BasicTeraData.Instance.WindowData.ShowCritDamageRate ? Brushes.Orange : 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 = ((MainWindow)((FrameworkElement)((FrameworkElement)((FrameworkElement)Parent).Parent).Parent).Parent).SGrid; var EGrid = ((MainWindow)((FrameworkElement)((FrameworkElement)((FrameworkElement)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; var an = new DoubleAnimation(DpsIndicator.ActualWidth, EntityInformation.TotalDamage == 0 ? mainWidth : mainWidth * PlayerDamageDealt.Amount / EntityInformation.TotalDamage, TimeSpan.FromMilliseconds(400)) { EasingFunction = new QuadraticEase() }; DpsIndicator.BeginAnimation(WidthProperty, an); EGrid.MaxWidth = Math.Max(mainWidth, GridStats.DesiredSize.Width); }
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; if (playerDamageDealt.Source.Class != PlayerClass.Common) { LabelLevel.Content = playerDamageDealt.Source.Level; } var isMe = PlayerDamageDealt.Source.User.Id.Id == PacketProcessor.Instance.PlayerTracker.Me().User.Id.Id; var meCol100 = BasicTeraData.Instance.WindowData.PlayerColor; var meCol30 = Color.FromArgb((byte)(meCol100.A == 0 ? 0 : 60), meCol100.R, meCol100.G, meCol100.B); var meCol0 = Color.FromArgb(0, meCol100.R, meCol100.G, meCol100.B); var dpsCol100 = BasicTeraData.Instance.WindowData.DpsColor; var dpsCol30 = Color.FromArgb((byte)(dpsCol100.A == 0 ? 0 : 60), dpsCol100.R, dpsCol100.G, dpsCol100.B); var dpsCol0 = Color.FromArgb(0, dpsCol100.R, dpsCol100.G, dpsCol100.B); var tankCol100 = BasicTeraData.Instance.WindowData.TankColor; var tankCol30 = Color.FromArgb((byte)(tankCol100.A == 0 ? 0 : 60), tankCol100.R, tankCol100.G, tankCol100.B); var tankCol0 = Color.FromArgb(0, tankCol100.R, tankCol100.G, tankCol100.B); var healCol100 = BasicTeraData.Instance.WindowData.HealerColor; var healCol30 = Color.FromArgb((byte)(healCol100.A == 0 ? 0 : 60), healCol100.R, healCol100.G, healCol100.B); var healCol0 = Color.FromArgb(0, healCol100.R, healCol100.G, healCol100.B); var unkCol100 = Color.FromArgb(255, 200, 200, 200); var unkCol30 = Color.FromArgb(60, 200, 200, 200); var unkCol0 = Color.FromArgb(0, 200, 200, 200); if (playerDamageDealt != null) { switch (playerDamageDealt.Source.Class) { case Tera.Game.PlayerClass.Warrior: case Tera.Game.PlayerClass.Slayer: case Tera.Game.PlayerClass.Berserker: case Tera.Game.PlayerClass.Sorcerer: case Tera.Game.PlayerClass.Archer: case Tera.Game.PlayerClass.Reaper: case Tera.Game.PlayerClass.Gunner: case Tera.Game.PlayerClass.Ninja: case Tera.Game.PlayerClass.Valkyrie: (DpsIndicator.Background as LinearGradientBrush).GradientStops[0] = new GradientStop(isMe? meCol30 : dpsCol30, 1); (DpsIndicator.Background as LinearGradientBrush).GradientStops[1] = new GradientStop(isMe? meCol0 : dpsCol0, 0); DpsIndicator.BorderBrush = new SolidColorBrush(isMe ? meCol100 : dpsCol100); break; case Tera.Game.PlayerClass.Priest: case Tera.Game.PlayerClass.Mystic: (DpsIndicator.Background as LinearGradientBrush).GradientStops[0] = new GradientStop(isMe? meCol30 :healCol30, 1); (DpsIndicator.Background as LinearGradientBrush).GradientStops[1] = new GradientStop(isMe ? meCol0 : healCol0, 0); DpsIndicator.BorderBrush = new SolidColorBrush(isMe ? meCol100 : healCol100); break; case Tera.Game.PlayerClass.Brawler: case Tera.Game.PlayerClass.Lancer: (DpsIndicator.Background as LinearGradientBrush).GradientStops[0] = new GradientStop(isMe? meCol30 :tankCol30, 1); (DpsIndicator.Background as LinearGradientBrush).GradientStops[1] = new GradientStop(isMe ? meCol0 : tankCol0, 0); DpsIndicator.BorderBrush = new SolidColorBrush(isMe ? meCol100 : tankCol100); break; case Tera.Game.PlayerClass.Common: (DpsIndicator.Background as LinearGradientBrush).GradientStops[0] = new GradientStop(unkCol30, 1); (DpsIndicator.Background as LinearGradientBrush).GradientStops[1] = new GradientStop(unkCol0, 0); DpsIndicator.BorderBrush = new SolidColorBrush(unkCol100); break; } } }
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; var dpsCol100 = Color.FromArgb(255, 244, 164, 66); var dpsCol30 = Color.FromArgb(60, 244, 164, 66); var dpsCol0 = Color.FromArgb(0, 244, 164, 66); var tankCol100 = Color.FromArgb(255, 68, 178, 252); var tankCol30 = Color.FromArgb(60, 68, 178, 252); var tankCol0 = Color.FromArgb(0, 68, 178, 252); var healCol100 = Color.FromArgb(255, 59, 226, 75); var healCol30 = Color.FromArgb(60, 59, 226, 75); var healCol0 = Color.FromArgb(0, 59, 226, 75); var unkCol100 = Color.FromArgb(255, 200, 200, 200); var unkCol30 = Color.FromArgb(60, 200, 200, 200); var unkCol0 = Color.FromArgb(0, 200, 200, 200); if (playerDamageDealt != null) { switch (playerDamageDealt.Source.Class) { case Tera.Game.PlayerClass.Warrior: case Tera.Game.PlayerClass.Slayer: case Tera.Game.PlayerClass.Berserker: case Tera.Game.PlayerClass.Sorcerer: case Tera.Game.PlayerClass.Archer: case Tera.Game.PlayerClass.Reaper: case Tera.Game.PlayerClass.Gunner: case Tera.Game.PlayerClass.Ninja: case Tera.Game.PlayerClass.Valkyrie: (DpsIndicator.Background as LinearGradientBrush).GradientStops[0] = new GradientStop(dpsCol30, 1); (DpsIndicator.Background as LinearGradientBrush).GradientStops[1] = new GradientStop(dpsCol0, 0); DpsIndicator.BorderBrush = new SolidColorBrush(dpsCol100); break; case Tera.Game.PlayerClass.Priest: case Tera.Game.PlayerClass.Mystic: (DpsIndicator.Background as LinearGradientBrush).GradientStops[0] = new GradientStop(healCol30, 1); (DpsIndicator.Background as LinearGradientBrush).GradientStops[1] = new GradientStop(healCol0, 0); DpsIndicator.BorderBrush = new SolidColorBrush(healCol100); break; case Tera.Game.PlayerClass.Brawler: case Tera.Game.PlayerClass.Lancer: (DpsIndicator.Background as LinearGradientBrush).GradientStops[0] = new GradientStop(tankCol30, 1); (DpsIndicator.Background as LinearGradientBrush).GradientStops[1] = new GradientStop(tankCol0, 0); DpsIndicator.BorderBrush = new SolidColorBrush(tankCol100); break; case Tera.Game.PlayerClass.Common: (DpsIndicator.Background as LinearGradientBrush).GradientStops[0] = new GradientStop(unkCol30, 1); (DpsIndicator.Background as LinearGradientBrush).GradientStops[1] = new GradientStop(unkCol0, 0); DpsIndicator.BorderBrush = new SolidColorBrush(unkCol100); break; } } }