示例#1
0
        public List <AbstractSingleActor> GetSrcs(long boonid, ParsedLog log)
        {
            if (!ContainsKey(boonid))
            {
                return(new List <AbstractSingleActor>());
            }
            var actors = new List <AbstractSingleActor>();

            foreach (AgentItem agent in this[boonid].Keys)
            {
                actors.Add(log.FindActor(agent, true));
            }
            return(actors);
        }
        public override void CheckMechanic(ParsedLog log, Dictionary <Mechanic, List <MechanicEvent> > mechanicLogs, Dictionary <int, AbstractSingleActor> regroupedMobs)
        {
            CombatData combatData = log.CombatData;

            foreach (AgentItem a in log.AgentData.GetNPCsByID((int)SkillId))
            {
                if (!regroupedMobs.TryGetValue(a.ID, out AbstractSingleActor amp))
                {
                    amp = log.FindActor(a, false);
                    regroupedMobs.Add(amp.ID, amp);
                }
                mechanicLogs[this].Add(new MechanicEvent(a.FirstAware, this, amp));
            }
        }
示例#3
0
 public override void CheckMechanic(ParsedLog log, Dictionary <Mechanic, List <MechanicEvent> > mechanicLogs, Dictionary <int, AbstractSingleActor> regroupedMobs)
 {
     foreach (AbstractBuffEvent c in log.CombatData.GetBuffData(SkillId))
     {
         AbstractSingleActor amp = null;
         if (c is BuffRemoveManualEvent rme && Keep(rme, log))
         {
             if (!regroupedMobs.TryGetValue(rme.To.ID, out amp))
             {
                 amp = log.FindActor(rme.To, false);
                 regroupedMobs.Add(amp.ID, amp);
             }
         }
         if (amp != null)
         {
             mechanicLogs[this].Add(new MechanicEvent(c.Time, this, amp));
         }
     }
 }
示例#4
0
 public override void CheckMechanic(ParsedLog log, Dictionary <Mechanic, List <MechanicEvent> > mechanicLogs, Dictionary <int, AbstractSingleActor> regroupedMobs)
 {
     foreach (AbstractCastEvent c in log.CombatData.GetCastDataById(SkillId))
     {
         AbstractSingleActor amp = null;
         if (Keep(c, log))
         {
             if (!regroupedMobs.TryGetValue(c.Caster.ID, out amp))
             {
                 amp = log.FindActor(c.Caster, false);
                 regroupedMobs.Add(amp.ID, amp);
             }
         }
         if (amp != null)
         {
             mechanicLogs[this].Add(new MechanicEvent(GetTime(c), this, amp));
         }
     }
 }
        public override bool Keep(CombatItem item, ParsedLog log)
        {
            AbstractActor actor = log.FindActor(item.Time, _dst ? item.DstInstid : item.SrcInstid);

            if (actor.GetBoonGraphs(log).TryGetValue(_boonId, out BoonsGraphModel bgm))
            {
                bool has = bgm.IsPresent(log.FightData.ToFightSpace(item.Time), 10);
                return(has == _has);
            }
            else
            {
                if (_has)
                {
                    return(false);
                }
                else
                {
                    return(true);
                }
            }
        }
 public override void CheckMechanic(ParsedLog log, Dictionary <Mechanic, List <MechanicEvent> > mechanicLogs, Dictionary <int, AbstractSingleActor> regroupedMobs)
 {
     foreach (AbstractDamageEvent c in log.CombatData.GetDamageData(SkillId))
     {
         AbstractSingleActor amp = null;
         if (Keep(c, log))
         {
             if (!regroupedMobs.TryGetValue(c.From.ID, out amp))
             {
                 amp = log.FindActor(c.From, false);
                 if (amp == null)
                 {
                     continue;
                 }
                 regroupedMobs.Add(amp.ID, amp);
             }
         }
         if (amp != null)
         {
             mechanicLogs[this].Add(new MechanicEvent(c.Time, this, amp));
         }
     }
 }