Beispiel #1
0
 internal DirectDamageEvent(CombatItem evtcItem, AgentData agentData, SkillData skillData) : base(evtcItem, agentData, skillData)
 {
     Damage = evtcItem.Value;
     ArcDPSEnums.PhysicalResult result = ArcDPSEnums.GetPhysicalResult(evtcItem.Result);
     IsAbsorbed     = result == ArcDPSEnums.PhysicalResult.Absorb;
     IsBlind        = result == ArcDPSEnums.PhysicalResult.Blind;
     IsBlocked      = result == ArcDPSEnums.PhysicalResult.Block;
     HasCrit        = result == ArcDPSEnums.PhysicalResult.Crit;
     HasDowned      = result == ArcDPSEnums.PhysicalResult.Downed;
     IsEvaded       = result == ArcDPSEnums.PhysicalResult.Evade;
     HasGlanced     = result == ArcDPSEnums.PhysicalResult.Glance;
     HasHit         = result == ArcDPSEnums.PhysicalResult.Normal || HasGlanced || HasCrit || HasKilled; //Downed and Interrupt omitted for now due to double procing mechanics || result == ParseEnum.PhysicalResult.Downed || result == ParseEnum.PhysicalResult.Interrupt;
     DoubleProcHit  = HasDowned || HasInterrupted;
     HasKilled      = result == ArcDPSEnums.PhysicalResult.KillingBlow;
     HasInterrupted = result == ArcDPSEnums.PhysicalResult.Interrupt;
     ShieldDamage   = evtcItem.IsShields > 0 ? (int)evtcItem.OverstackValue : 0;
 }
Beispiel #2
0
        public static void AddDirectDamageEvent(CombatItem damageEvent, List <AbstractHealthDamageEvent> hpDamage, List <AbstractBreakbarDamageEvent> brkBarDamage, AgentData agentData, SkillData skillData)
        {
            ArcDPSEnums.PhysicalResult result = ArcDPSEnums.GetPhysicalResult(damageEvent.Result);
            switch (result)
            {
            case ArcDPSEnums.PhysicalResult.BreakbarDamage:
                brkBarDamage.Add(new DirectBreakbarDamageEvent(damageEvent, agentData, skillData));
                break;

            case ArcDPSEnums.PhysicalResult.Unknown:
                break;

            default:
                hpDamage.Add(new DirectHealthDamageEvent(damageEvent, agentData, skillData, result));
                break;
            }
        }
 public static bool IsHit(this ArcDPSEnums.PhysicalResult result)
 {
     return(result == ArcDPSEnums.PhysicalResult.Normal || result == ArcDPSEnums.PhysicalResult.Crit || result == ArcDPSEnums.PhysicalResult.Glance || result == ArcDPSEnums.PhysicalResult.KillingBlow); //Downed and Interrupt omitted for now due to double procing mechanics || result == ParseEnum.Result.Downed || result == ParseEnum.Result.Interrupt;
 }