Ejemplo n.º 1
0
 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;
 }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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;
                }
            }
        }
Ejemplo n.º 4
0
        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;
                }
            }
        }