Example #1
0
 internal SkillDesc(SkillItem item, ulong gw2Build, SkillData skillData)
 {
     Name          = item.Name;
     AutoAttack    = item.AA;
     Icon          = item.Icon;
     CanCrit       = SkillItem.CanCrit(item.ID, gw2Build);
     IsSwap        = item.IsSwap;
     IsNotAccurate = skillData.IsNotAccurate(item.ID);
 }
        internal static SkillDesc BuildSkillDesc(SkillItem item, ulong gw2Build, SkillData skillData)
        {
            var skillDesc = new SkillDesc();

            skillDesc.Name          = item.Name;
            skillDesc.AutoAttack    = item.AA;
            skillDesc.Icon          = item.Icon;
            skillDesc.CanCrit       = SkillItem.CanCrit(item.ID, gw2Build);
            skillDesc.IsSwap        = item.IsSwap;
            skillDesc.IsNotAccurate = skillData.IsNotAccurate(item.ID);
            return(skillDesc);
        }
        internal static SkillDesc BuildSkillDesc(SkillItem item, ParsedEvtcLog log)
        {
            var skillDesc = new SkillDesc
            {
                Name                   = item.Name,
                AutoAttack             = item.AA,
                Icon                   = item.Icon,
                CanCrit                = SkillItem.CanCrit(item.ID, log.LogData.GW2Build),
                IsSwap                 = item.IsSwap,
                IsNotAccurate          = log.SkillData.IsNotAccurate(item.ID),
                ConversionBasedHealing = log.CombatData.HasEXTHealing && log.CombatData.EXTHealingCombatData.GetHealingType(item, log) == HealingStatsExtensionHandler.EXTHealingType.ConversionBased,
                HybridHealing          = log.CombatData.HasEXTHealing && log.CombatData.EXTHealingCombatData.GetHealingType(item, log) == HealingStatsExtensionHandler.EXTHealingType.Hybrid
            };

            return(skillDesc);
        }
Example #4
0
        internal FinalGameplayStats(ParsedEvtcLog log, long start, long end, AbstractSingleActor actor, AbstractSingleActor target)
        {
            IReadOnlyList <AbstractHealthDamageEvent> dls = actor.GetDamageEvents(target, log, start, end);

            foreach (AbstractHealthDamageEvent dl in dls)
            {
                if (dl.From == actor.AgentItem)
                {
                    if (!(dl is NonDirectHealthDamageEvent))
                    {
                        if (dl.HasHit)
                        {
                            if (SkillItem.CanCrit(dl.SkillId, log.LogData.GW2Build))
                            {
                                if (dl.HasCrit)
                                {
                                    CriticalCount++;
                                    CriticalDmg += dl.HealthDamage;
                                }
                                CritableDirectDamageCount++;
                            }
                            if (dl.IsFlanking)
                            {
                                FlankingCount++;
                            }

                            if (dl.HasGlanced)
                            {
                                GlanceCount++;
                            }
                            ConnectedDirectDamageCount++;
                        }

                        if (dl.IsBlind)
                        {
                            Missed++;
                        }
                        if (dl.IsEvaded)
                        {
                            Evaded++;
                        }
                        if (dl.IsBlocked)
                        {
                            Blocked++;
                        }
                        if (!dl.DoubleProcHit)
                        {
                            DirectDamageCount++;
                        }
                    }
                    if (dl.IsAbsorbed)
                    {
                        Invulned++;
                    }
                    if (!dl.DoubleProcHit)
                    {
                        TotalDamageCount++;
                    }

                    if (dl.HasHit)
                    {
                        ConnectedDamageCount++;
                        if (dl.AgainstMoving)
                        {
                            AgainstMovingCount++;
                        }
                    }
                }

                if (!(dl is NonDirectHealthDamageEvent))
                {
                    if (dl.HasInterrupted)
                    {
                        Interrupts++;
                    }
                }
                if (dl.HasKilled)
                {
                    Killed++;
                }
                if (dl.HasDowned)
                {
                    Downed++;
                }
            }
        }
        internal FinalGameplayStats(ParsedEvtcLog log, PhaseData phase, AbstractSingleActor actor, AbstractSingleActor target)
        {
            List <AbstractDamageEvent> dls = actor.GetJustActorDamageLogs(target, log, phase.Start, phase.End);

            foreach (AbstractDamageEvent dl in dls)
            {
                if (!(dl is NonDirectDamageEvent))
                {
                    if (dl.HasHit)
                    {
                        if (SkillItem.CanCrit(dl.SkillId, log.LogData.GW2Build))
                        {
                            if (dl.HasCrit)
                            {
                                CriticalCount++;
                                CriticalDmg += dl.Damage;
                            }
                            CritableDirectDamageCount++;
                        }
                        if (dl.IsFlanking)
                        {
                            FlankingCount++;
                        }

                        if (dl.HasGlanced)
                        {
                            GlanceCount++;
                        }
                        ConnectedDirectDamageCount++;
                    }

                    if (dl.HasInterrupted)
                    {
                        Interrupts++;
                    }

                    if (dl.IsBlind)
                    {
                        Missed++;
                    }
                    if (dl.IsEvaded)
                    {
                        Evaded++;
                    }
                    if (dl.IsBlocked)
                    {
                        Blocked++;
                    }
                    if (!dl.DoubleProcHit)
                    {
                        DirectDamageCount++;
                    }
                }
                if (dl.IsAbsorbed)
                {
                    Invulned++;
                }
                if (!dl.DoubleProcHit)
                {
                    TotalDamageCount++;
                }
            }
        }