Пример #1
0
 public override IReadOnlyList <AbstractHealthDamageEvent> GetDamageEvents(AbstractSingleActor target, ParsedEvtcLog log, long start, long end)
 {
     if (DamageEvents == null)
     {
         DamageEvents = new List <AbstractHealthDamageEvent>();
         foreach (NPC minion in _minionList)
         {
             DamageEvents.AddRange(minion.GetDamageEvents(null, log, 0, log.FightData.FightEnd));
         }
         DamageEvents     = DamageEvents.OrderBy(x => x.Time).ToList();
         DamageEventByDst = DamageEvents.GroupBy(x => x.To).ToDictionary(x => x.Key, x => x.ToList());
     }
     if (target != null)
     {
         if (DamageEventByDst.TryGetValue(target.AgentItem, out List <AbstractHealthDamageEvent> list))
         {
             return(list.Where(x => x.Time >= start && x.Time <= end).ToList());
         }
         else
         {
             return(new List <AbstractHealthDamageEvent>());
         }
     }
     return(DamageEvents.Where(x => x.Time >= start && x.Time <= end).ToList());
 }
Пример #2
0
 // Damage logs
 public override IReadOnlyList <AbstractHealthDamageEvent> GetDamageEvents(AbstractSingleActor target, ParsedEvtcLog log, long start, long end)
 {
     if (DamageEvents == null)
     {
         DamageEvents = new List <AbstractHealthDamageEvent>();
         DamageEvents.AddRange(log.CombatData.GetDamageData(AgentItem).Where(x => !x.ToFriendly));
         IReadOnlyDictionary <long, Minions> minionsList = GetMinions(log);
         foreach (Minions mins in minionsList.Values)
         {
             DamageEvents.AddRange(mins.GetDamageEvents(null, log, 0, log.FightData.FightEnd));
         }
         DamageEvents     = DamageEvents.OrderBy(x => x.Time).ToList();
         DamageEventByDst = DamageEvents.GroupBy(x => x.To).ToDictionary(x => x.Key, x => x.ToList());
     }
     if (target != null)
     {
         if (DamageEventByDst.TryGetValue(target.AgentItem, out List <AbstractHealthDamageEvent> list))
         {
             return(list.Where(x => x.Time >= start && x.Time <= end).ToList());
         }
         else
         {
             return(new List <AbstractHealthDamageEvent>());
         }
     }
     return(DamageEvents.Where(x => x.Time >= start && x.Time <= end).ToList());
 }