コード例 #1
0
        public override IReadOnlyList <AbstractBreakbarDamageEvent> GetBreakbarDamageEvents(AbstractSingleActor target, ParsedEvtcLog log, long start, long end)
        {
            if (BreakbarDamageEvents == null)
            {
                BreakbarDamageEvents = new List <AbstractBreakbarDamageEvent>();
                foreach (NPC minion in _minionList)
                {
                    BreakbarDamageEvents.AddRange(minion.GetBreakbarDamageEvents(null, log, 0, log.FightData.FightEnd));
                }
                BreakbarDamageEvents      = BreakbarDamageEvents.OrderBy(x => x.Time).ToList();
                BreakbarDamageEventsByDst = BreakbarDamageEvents.GroupBy(x => x.To).ToDictionary(x => x.Key, x => x.ToList());
            }
            if (target != null)
            {
                if (BreakbarDamageEventsByDst.TryGetValue(target.AgentItem, out List <AbstractBreakbarDamageEvent> list))
                {
                    return(list.Where(x => x.Time >= start && x.Time <= end).ToList());
                }
                else
                {
                    return(new List <AbstractBreakbarDamageEvent>());
                }
            }

            return(BreakbarDamageEvents.Where(x => x.Time >= start && x.Time <= end).ToList());
        }
コード例 #2
0
 public override IReadOnlyList <AbstractBreakbarDamageEvent> GetBreakbarDamageEvents(AbstractSingleActor target, ParsedEvtcLog log, long start, long end)
 {
     if (BreakbarDamageEvents == null)
     {
         BreakbarDamageEvents = new List <AbstractBreakbarDamageEvent>();
         BreakbarDamageEvents.AddRange(log.CombatData.GetBreakbarDamageData(AgentItem).Where(x => !x.ToFriendly));
         IReadOnlyDictionary <long, Minions> minionsList = GetMinions(log);
         foreach (Minions mins in minionsList.Values)
         {
             BreakbarDamageEvents.AddRange(mins.GetBreakbarDamageEvents(null, log, 0, log.FightData.FightEnd));
         }
         BreakbarDamageEvents      = BreakbarDamageEvents.OrderBy(x => x.Time).ToList();
         BreakbarDamageEventsByDst = BreakbarDamageEvents.GroupBy(x => x.To).ToDictionary(x => x.Key, x => x.ToList());
     }
     if (target != null)
     {
         if (BreakbarDamageEventsByDst.TryGetValue(target.AgentItem, out List <AbstractBreakbarDamageEvent> list))
         {
             return(list.Where(x => x.Time >= start && x.Time <= end).ToList());
         }
         else
         {
             return(new List <AbstractBreakbarDamageEvent>());
         }
     }
     return(BreakbarDamageEvents.Where(x => x.Time >= start && x.Time <= end).ToList());
 }