public static List <List <object> > BuildOutgoingHealingStatData(ParsedEvtcLog log, PhaseData phase) { var list = new List <List <object> >(log.Friendlies.Count); foreach (AbstractSingleActor actor in log.Friendlies) { EXTFinalOutgoingHealingStat outgoingHealingStats = actor.EXTHealing.GetOutgoingHealStats(null, log, phase.Start, phase.End); list.Add(GetOutgoingHealingStatData(outgoingHealingStats)); } return(list); }
// helper methods private static List <object> GetOutgoingHealingStatData(EXTFinalOutgoingHealingStat outgoingHealingStats) { var data = new List <object> { outgoingHealingStats.Healing, outgoingHealingStats.HealingPowerHealing + outgoingHealingStats.HybridHealing, outgoingHealingStats.ConversionHealing, //outgoingHealingStats.HybridHealing, outgoingHealingStats.DownedHealing, }; return(data); }
private static EXTHealingStatsHealingDistributionDto BuildHealingDistDataMinionsInternal(ParsedEvtcLog log, EXTFinalOutgoingHealingStat outgoingHealingStats, Minions minions, AbstractSingleActor target, PhaseData phase, Dictionary <long, SkillItem> usedSkills, Dictionary <long, Buff> usedBuffs) { var dto = new EXTHealingStatsHealingDistributionDto(); IReadOnlyList <AbstractCastEvent> casting = minions.GetIntersectingCastEvents(log, phase.Start, phase.End); IReadOnlyList <EXTAbstractHealingEvent> healingLogs = minions.EXTHealing.GetOutgoingHealEvents(target, log, phase.Start, phase.End); dto.ContributedHealing = healingLogs.Sum(x => x.HealingDone); dto.TotalHealing = outgoingHealingStats.Healing; dto.TotalCasting = casting.Sum(cl => Math.Min(cl.EndTime, phase.End) - Math.Max(cl.Time, phase.Start)); dto.Distribution = BuildHealingDistBodyData(log, casting, healingLogs, usedSkills, usedBuffs, phase); return(dto); }
public static EXTHealingStatsHealingDistributionDto BuildFriendlyMinionHealingDistData(ParsedEvtcLog log, AbstractSingleActor actor, Minions minions, AbstractSingleActor target, PhaseData phase, Dictionary <long, SkillItem> usedSkills, Dictionary <long, Buff> usedBuffs) { EXTFinalOutgoingHealingStat outgoingHealingStats = actor.EXTHealing.GetOutgoingHealStats(target, log, phase.Start, phase.End); return(BuildHealingDistDataMinionsInternal(log, outgoingHealingStats, minions, target, phase, usedSkills, usedBuffs)); }
internal static EXTJsonHealingStatistics.EXTJsonOutgoingHealingStatistics BuildOutgoingHealingStatistics(EXTFinalOutgoingHealingStat stats) { return(new EXTJsonHealingStatistics.EXTJsonOutgoingHealingStatistics() { ConversionHealing = stats.ConversionHealing, ConversionHps = stats.ConversionHps, Healing = stats.Healing, HealingPowerHealing = stats.HealingPowerHealing, HealingPowerHps = stats.HealingPowerHps, Hps = stats.Hps, HybridHealing = stats.HybridHealing, HybridHps = stats.HybridHps, DownedHealing = stats.DownedHealing, DownedHps = stats.DownedHps, ActorConversionHealing = stats.ActorConversionHealing, ActorConversionHps = stats.ActorConversionHps, ActorHealing = stats.ActorHealing, ActorHealingPowerHealing = stats.ActorHealingPowerHealing, ActorHealingPowerHps = stats.ActorHealingPowerHps, ActorHps = stats.ActorHps, ActorHybridHealing = stats.ActorHybridHealing, ActorHybridHps = stats.ActorHybridHps, ActorDownedHealing = stats.ActorDownedHealing, ActorDownedHps = stats.ActorDownedHps, }); }