// helpers public static EXTHealingStatsPlayerDetailsDto BuildPlayerHealingData(ParsedEvtcLog log, AbstractSingleActor actor, Dictionary <long, SkillItem> usedSkills, Dictionary <long, Buff> usedBuffs) { var dto = new EXTHealingStatsPlayerDetailsDto { healingDistributions = new List <EXTHealingStatsHealingDistributionDto>(), healingDistributionsTargets = new List <List <EXTHealingStatsHealingDistributionDto> >(), IncomingHealingDistributions = new List <EXTHealingStatsHealingDistributionDto>(), Minions = new List <EXTHealingStatsPlayerDetailsDto>(), }; foreach (PhaseData phase in log.FightData.GetPhases(log)) { dto.healingDistributions.Add(EXTHealingStatsHealingDistributionDto.BuildFriendlyHealingDistData(log, actor, null, phase, usedSkills, usedBuffs)); var dmgTargetsDto = new List <EXTHealingStatsHealingDistributionDto>(); foreach (AbstractSingleActor target in log.Friendlies) { dmgTargetsDto.Add(EXTHealingStatsHealingDistributionDto.BuildFriendlyHealingDistData(log, actor, target, phase, usedSkills, usedBuffs)); } dto.healingDistributionsTargets.Add(dmgTargetsDto); dto.IncomingHealingDistributions.Add(EXTHealingStatsHealingDistributionDto.BuildIncomingHealingDistData(log, actor, phase, usedSkills, usedBuffs)); } foreach (KeyValuePair <long, Minions> pair in actor.GetMinions(log)) { dto.Minions.Add(BuildFriendlyMinionsHealingData(log, actor, pair.Value, usedSkills, usedBuffs)); } return(dto); }