internal override void CheckMechanic(ParsedEvtcLog log, Dictionary <Mechanic, List <MechanicEvent> > mechanicLogs, Dictionary <int, AbstractSingleActor> regroupedMobs) { foreach (long mechanicID in MechanicIDs) { foreach (AgentItem a in log.AgentData.GetNPCsByID((int)mechanicID)) { AbstractSingleActor amp = EnemyMechanicHelper.FindActor(log, a, regroupedMobs); if (amp != null) { mechanicLogs[this].Add(new MechanicEvent(a.FirstAware, this, amp)); } } } }
internal override void CheckMechanic(ParsedEvtcLog log, Dictionary <Mechanic, List <MechanicEvent> > mechanicLogs, Dictionary <int, AbstractSingleActor> regroupedMobs) { foreach (long mechanicID in MechanicIDs) { foreach (AgentItem a in log.AgentData.GetNPCsByID((int)mechanicID)) { AbstractSingleActor actorToUse = EnemyMechanicHelper.FindActor(log, a, regroupedMobs); if (actorToUse != null) { foreach (DeadEvent devt in log.CombatData.GetDeadEvents(a)) { mechanicLogs[this].Add(new MechanicEvent(devt.Time, this, actorToUse)); } } } } }
internal override void CheckMechanic(ParsedEvtcLog log, Dictionary <Mechanic, List <MechanicEvent> > mechanicLogs, Dictionary <int, AbstractSingleActor> regroupedMobs) { var list = new List <AbstractSingleActor>(log.FightData.Logic.Targets); list.AddRange(log.FightData.Logic.TrashMobs); foreach (AbstractSingleActor actor in list) { foreach (T c in GetEvents(log, actor.AgentItem)) { if (Keep(c, log)) { AbstractSingleActor actorToUse = EnemyMechanicHelper.FindActor(log, actor.AgentItem, regroupedMobs); // no need to null check, we are already iterating over an existing actor list mechanicLogs[this].Add(new MechanicEvent(c.Time, this, actorToUse)); } } } }
internal override void CheckMechanic(ParsedEvtcLog log, Dictionary <Mechanic, List <MechanicEvent> > mechanicLogs, Dictionary <int, AbstractSingleActor> regroupedMobs) { foreach (long mechanicID in MechanicIDs) { foreach (AbstractHealthDamageEvent c in log.CombatData.GetDamageData(mechanicID)) { AbstractSingleActor amp = null; if (Keep(c, log)) { amp = EnemyMechanicHelper.FindActor(log, c.From, regroupedMobs); } if (amp != null) { mechanicLogs[this].Add(new MechanicEvent(c.Time, this, amp)); } } } }
internal override void CheckMechanic(ParsedEvtcLog log, Dictionary <Mechanic, List <MechanicEvent> > mechanicLogs, Dictionary <int, AbstractSingleActor> regroupedMobs) { foreach (long mechanicID in MechanicIDs) { foreach (AbstractBuffEvent c in log.CombatData.GetBuffData(mechanicID)) { AbstractSingleActor amp = null; if (c is BuffApplyEvent ba && Keep(ba, log)) { amp = EnemyMechanicHelper.FindActor(log, ba.To, regroupedMobs); } if (amp != null) { mechanicLogs[this].Add(new MechanicEvent(c.Time, this, amp)); } } } }