private void setMinions(ParsedLog log) { List <AgentItem> combatMinion = log.getAgentData().getNPCAgentList().Where(x => x.getMasterAgent() == agent.getAgent()).ToList(); foreach (AgentItem agent in combatMinion) { string id = agent.getName(); if (!minions.ContainsKey(id)) { minions[id] = new Minions(id.GetHashCode()); } minions[id].Add(new Minion(agent.getInstid(), agent)); } }
protected override void setDamagetakenLogs(ParsedLog log) { long time_start = log.getBossData().getFirstAware(); foreach (CombatItem c in log.getDamageTakenData()) { if (agent.getInstid() == c.getDstInstid() && c.getTime() > log.getBossData().getFirstAware() && c.getTime() < log.getBossData().getLastAware()) //selecting player as target { long time = c.getTime() - time_start; foreach (AgentItem item in log.getAgentData().getAllAgentsList()) {//selecting all addDamageTakenLog(time, item.getInstid(), c); } } } }
protected override void setDamageLogs(ParsedLog log) { long time_start = log.getBossData().getFirstAware(); long min_time = Math.Max(time_start, agent.getFirstAware()); long max_time = Math.Min(log.getBossData().getLastAware(), agent.getLastAware()); foreach (CombatItem c in log.getDamageData()) { if (agent.getInstid() == c.getSrcInstid() && c.getTime() > min_time && c.getTime() < max_time)//selecting minion as caster { long time = c.getTime() - time_start; foreach (AgentItem item in log.getAgentData().getNPCAgentList()) {//selecting all addDamageLog(time, item.getInstid(), c, damage_logs); } } } }
protected override void setDamageLogs(ParsedLog log) { long time_start = log.getBossData().getFirstAware(); foreach (CombatItem c in log.getDamageData()) { if (agent.getInstid() == c.getSrcInstid() && c.getTime() > log.getBossData().getFirstAware() && c.getTime() < log.getBossData().getLastAware())//selecting player or minion as caster { long time = c.getTime() - time_start; foreach (AgentItem item in log.getAgentData().getNPCAgentList()) {//selecting all addDamageLog(time, item.getInstid(), c, damage_logs); } } } Dictionary <string, Minions> min_list = getMinions(log); foreach (Minions mins in min_list.Values) { damage_logs.AddRange(mins.getDamageLogs(0, log, 0, log.getBossData().getAwareDuration())); } damage_logs.Sort((x, y) => x.getTime() < y.getTime() ? -1 : 1); }