internal FinalDPS(ParsedEvtcLog log, PhaseData phase, AbstractSingleActor actor, AbstractSingleActor target) { double phaseDuration = (phase.DurationInMS) / 1000.0; int damage; double dps = 0.0; List <AbstractDamageEvent> damageLogs = actor.GetDamageLogs(target, log, phase.Start, phase.End); //DPS damage = damageLogs.Sum(x => x.Damage); if (phaseDuration > 0) { dps = damage / phaseDuration; } Dps = (int)Math.Round(dps); Damage = damage; //Condi DPS damage = damageLogs.Sum(x => x.IsCondi(log) ? x.Damage : 0); if (phaseDuration > 0) { dps = damage / phaseDuration; } CondiDps = (int)Math.Round(dps); CondiDamage = damage; //Power DPS damage = Damage - CondiDamage; if (phaseDuration > 0) { dps = damage / phaseDuration; } PowerDps = (int)Math.Round(dps); PowerDamage = damage; List <AbstractDamageEvent> actorDamageLogs = actor.GetJustActorDamageLogs(target, log, phase.Start, phase.End); // Actor DPS damage = actorDamageLogs.Sum(x => x.Damage); if (phaseDuration > 0) { dps = damage / phaseDuration; } ActorDps = (int)Math.Round(dps); ActorDamage = damage; //Actor Condi DPS damage = actorDamageLogs.Sum(x => x.IsCondi(log) ? x.Damage : 0); if (phaseDuration > 0) { dps = damage / phaseDuration; } ActorCondiDps = (int)Math.Round(dps); ActorCondiDamage = damage; //Actor Power DPS damage = ActorDamage - ActorCondiDamage; if (phaseDuration > 0) { dps = damage / phaseDuration; } ActorPowerDps = (int)Math.Round(dps); ActorPowerDamage = damage; }