public ParsedLog(LogData logData, FightData fightData, AgentData agentData, SkillData skillData, CombatData combatData, List <Player> playerList, Target target) { LogData = logData; FightData = fightData; AgentData = agentData; SkillData = skillData; CombatData = combatData; PlayerList = playerList; LegacyTarget = target; MechanicData = new MechanicData(fightData); PlayerListBySpec = playerList.GroupBy(x => x.Prof).ToDictionary(x => x.Key, x => x.ToList()); PlayerIDs = new HashSet <ushort>(playerList.Select(x => x.InstID)); FightData.SetSuccess(this); FightData.SetCM(this); CombatData.Update(FightData.FightEnd); if (FightData.FightDuration <= 2200) { throw new TooShortException(); } if (Properties.Settings.Default.SkipFailedTries && !FightData.Success) { throw new SkipException(); } }
public ParsedLog(LogData logData, FightData fightData, AgentData agentData, SkillData skillData, CombatData combatData, List <Player> playerList, Target target) { LogData = logData; FightData = fightData; AgentData = agentData; SkillData = skillData; CombatData = combatData; PlayerList = playerList; LegacyTarget = target; MechanicData = new MechanicData(fightData); PlayerListBySpec = playerList.GroupBy(x => x.Prof).ToDictionary(x => x.Key, x => x.ToList()); FightData.SetSuccess(this); FightData.SetCM(this); CombatData.Update(FightData.FightEnd); }
public ParsedLog(LogData logData, FightData fightData, AgentData agentData, SkillData skillData, CombatData combatData, List <Player> playerList, Target target) { LogData = logData; FightData = fightData; AgentData = agentData; SkillData = skillData; CombatData = combatData; PlayerList = playerList; BoonSourceFinder = Boon.GetBoonSourceFinder(logData.GW2Version); LegacyTarget = target; MechanicData = new MechanicData(fightData); PlayerListBySpec = playerList.GroupBy(x => x.Prof).ToDictionary(x => x.Key, x => x.ToList()); PlayerIDs = new HashSet <ushort>(playerList.Select(x => x.InstID)); FightData.SetSuccess(this); FightData.SetCM(this); CombatData.Update(FightData.FightEnd); if (FightData.FightDuration <= 2200) { throw new TooShortException(); } if (Properties.Settings.Default.SkipFailedTries && !FightData.Success) { throw new SkipException(); } // init combat replay if (Properties.Settings.Default.ParseCombatReplay && FightData.Logic.CanCombatReplay) { foreach (Player p in PlayerList) { if (p.Account == ":Conjured Sword") { continue; } p.InitCombatReplay(this, GeneralHelper.PollingRate, false, true); } foreach (Target tar in FightData.Logic.Targets) { tar.InitCombatReplay(this, GeneralHelper.PollingRate, true, FightData.GetMainTargets(this).Contains(tar)); } FightData.Logic.InitTrashMobCombatReplay(this, GeneralHelper.PollingRate); // Ensuring all combat replays are initialized before extra data (and agent interaction) is computed foreach (Player p in PlayerList) { if (p.Account == ":Conjured Sword") { continue; } p.ComputeAdditionalCombatReplayData(this); } foreach (Target tar in FightData.Logic.Targets) { tar.ComputeAdditionalCombatReplayData(this); } foreach (Mob mob in FightData.Logic.TrashMobs) { mob.ComputeAdditionalCombatReplayData(this); } } FightData.Logic.ComputeMechanics(this); Statistics = new Statistics(this); }