public static ChartDataDto BuildChartData(ParsedLog log) { var chartData = new ChartDataDto(); var phaseChartData = new List <PhaseChartDataDto>(); List <PhaseData> phases = log.FightData.GetPhases(log); for (int i = 0; i < phases.Count; i++) { var phaseData = new PhaseChartDataDto() { Players = PlayerChartDataDto.BuildPlayersGraphData(log, i) }; foreach (NPC target in phases[i].Targets) { phaseData.Targets.Add(TargetChartDataDto.BuildTargetGraphData(log, i, target)); } if (i == 0) { phaseData.TargetsHealthStatesForCR = new List <List <object[]> >(); phaseData.TargetsBreakbarPercentStatesForCR = new List <List <object[]> >(); foreach (NPC target in log.FightData.Logic.Targets) { phaseData.TargetsHealthStatesForCR.Add(BuildHealthGraphStates(log, target, phases[0], false)); phaseData.TargetsBreakbarPercentStatesForCR.Add(BuildBreakbarPercentStates(log, target, phases[0])); } } phaseChartData.Add(phaseData); } chartData.Phases = phaseChartData; chartData.Mechanics = MechanicChartDataDto.BuildMechanicsChartData(log); return(chartData); }
public static List <PlayerChartDataDto> BuildPlayersGraphData(ParsedLog log, int phaseIndex) { var list = new List <PlayerChartDataDto>(); PhaseData phase = log.FightData.GetPhases(log)[phaseIndex]; foreach (Player p in log.PlayerList) { var pChar = new PlayerChartDataDto() { Total = p.Get1SDamageList(log, phaseIndex, phase, null), Targets = new List <List <int> >(), HealthStates = ChartDataDto.BuildHealthGraphStates(log, p, log.FightData.GetPhases(log)[phaseIndex], true) }; foreach (NPC target in phase.Targets) { pChar.Targets.Add(p.Get1SDamageList(log, phaseIndex, phase, target)); } list.Add(pChar); } return(list); }