public override IReadOnlyList <EXTAbstractHealingEvent> GetIncomingHealEvents(AbstractSingleActor target, ParsedEvtcLog log, long start, long end) { if (!log.CombatData.HasEXTHealing) { throw new InvalidOperationException("Healing Stats extension not present"); } if (HealReceivedEvents == null) { HealReceivedEvents = new List <EXTAbstractHealingEvent>(); HealReceivedEvents.AddRange(log.CombatData.EXTHealingCombatData.GetHealReceivedData(_agentItem).Where(x => x.ToFriendly)); HealReceivedEvents = HealReceivedEvents.OrderBy(x => x.Time).ToList(); HealReceivedEventsBySrc = HealReceivedEvents.GroupBy(x => x.From).ToDictionary(x => x.Key, x => x.ToList()); } if (target != null) { if (HealReceivedEventsBySrc.TryGetValue(target.AgentItem, out List <EXTAbstractHealingEvent> list)) { return(list.Where(x => x.Time >= start && x.Time <= end).ToList()); } else { return(new List <EXTAbstractHealingEvent>()); } } return(HealReceivedEvents.Where(x => x.Time >= start && x.Time <= end).ToList()); }
public override IReadOnlyList <EXTAbstractHealingEvent> GetIncomingHealEvents(AbstractSingleActor target, ParsedEvtcLog log, long start, long end) { if (HealReceivedEvents == null) { HealReceivedEvents = new List <EXTAbstractHealingEvent>(); foreach (NPC minion in _minionList) { HealReceivedEvents.AddRange(minion.EXTHealing.GetIncomingHealEvents(null, log, 0, log.FightData.FightEnd)); } HealReceivedEvents = HealReceivedEvents.OrderBy(x => x.Time).ToList(); HealReceivedEventsBySrc = HealReceivedEvents.GroupBy(x => x.From).ToDictionary(x => x.Key, x => x.ToList()); } if (target != null) { if (HealReceivedEventsBySrc.TryGetValue(target.AgentItem, out List <EXTAbstractHealingEvent> list)) { return(list.Where(x => x.Time >= start && x.Time <= end).ToList()); } else { return(new List <EXTAbstractHealingEvent>()); } } return(HealReceivedEvents.Where(x => x.Time >= start && x.Time <= end).ToList()); }