// Constructors internal FightData(int id, AgentData agentData, EvtcParserSettings parserSettings, long start, long end) { LogStart = start; LogEnd = end; FightEnd = end - start; TriggerID = id; switch (ArcDPSEnums.GetTargetID(id)) { case ArcDPSEnums.TargetID.Mordremoth: Logic = new Mordremoth(id); break; // case ArcDPSEnums.TargetID.ValeGuardian: Logic = new ValeGuardian(id); break; case ArcDPSEnums.TargetID.Gorseval: Logic = new Gorseval(id); break; case ArcDPSEnums.TargetID.Sabetha: Logic = new Sabetha(id); break; case ArcDPSEnums.TargetID.Slothasor: Logic = new Slothasor(id); break; case ArcDPSEnums.TargetID.Zane: case ArcDPSEnums.TargetID.Berg: case ArcDPSEnums.TargetID.Narella: Logic = new BanditTrio(id); break; case ArcDPSEnums.TargetID.Matthias: Logic = new Matthias(id); break; /*case ParseEnum.TargetIDS.Escort: * Logic = new Escort(id, agentData); * break;*/ case ArcDPSEnums.TargetID.KeepConstruct: Logic = new KeepConstruct(id); break; case ArcDPSEnums.TargetID.Xera: // some TC logs are registered as Xera if (agentData.GetNPCsByID((int)ArcDPSEnums.TrashID.HauntingStatue).Count > 0) { TriggerID = (int)ArcDPSEnums.TrashID.HauntingStatue; Logic = new TwistedCastle((int)ArcDPSEnums.TargetID.DummyTarget); break; } Logic = new Xera(id); break; case ArcDPSEnums.TargetID.Cairn: Logic = new Cairn(id); break; case ArcDPSEnums.TargetID.MursaatOverseer: Logic = new MursaatOverseer(id); break; case ArcDPSEnums.TargetID.Samarog: Logic = new Samarog(id); break; case ArcDPSEnums.TargetID.Deimos: Logic = new Deimos(id); break; case ArcDPSEnums.TargetID.SoullessHorror: Logic = new SoullessHorror(id); break; case ArcDPSEnums.TargetID.Desmina: Logic = new River((int)ArcDPSEnums.TargetID.DummyTarget); break; case ArcDPSEnums.TargetID.BrokenKing: Logic = new BrokenKing(id); break; case ArcDPSEnums.TargetID.SoulEater: Logic = new EaterOfSouls(id); break; case ArcDPSEnums.TargetID.EyeOfFate: case ArcDPSEnums.TargetID.EyeOfJudgement: Logic = new DarkMaze(id); break; case ArcDPSEnums.TargetID.Dhuum: // some eyes logs are registered as Dhuum if (agentData.GetNPCsByID((int)ArcDPSEnums.TargetID.EyeOfFate).Count > 0 || agentData.GetNPCsByID((int)ArcDPSEnums.TargetID.EyeOfJudgement).Count > 0) { TriggerID = (int)ArcDPSEnums.TargetID.EyeOfFate; Logic = new DarkMaze(TriggerID); break; } Logic = new Dhuum(id); break; case ArcDPSEnums.TargetID.ConjuredAmalgamate: case ArcDPSEnums.TargetID.ConjuredAmalgamate_CHINA: case ArcDPSEnums.TargetID.CALeftArm_CHINA: case ArcDPSEnums.TargetID.CARightArm_CHINA: Logic = new ConjuredAmalgamate(id); TriggerID = (int)ArcDPSEnums.TargetID.ConjuredAmalgamate; break; case ArcDPSEnums.TargetID.Kenut: case ArcDPSEnums.TargetID.Nikare: Logic = new TwinLargos(id); break; case ArcDPSEnums.TargetID.Qadim: Logic = new Qadim(id); break; case ArcDPSEnums.TargetID.Freezie: Logic = new Freezie(id); break; case ArcDPSEnums.TargetID.Adina: Logic = new Adina(id); break; case ArcDPSEnums.TargetID.Sabir: Logic = new Sabir(id); break; case ArcDPSEnums.TargetID.PeerlessQadim: Logic = new PeerlessQadim(id); break; // case ArcDPSEnums.TargetID.IcebroodConstruct: Logic = new IcebroodConstruct(id); break; case ArcDPSEnums.TargetID.FraenirOfJormag: Logic = new FraenirOfJormag(id); break; case ArcDPSEnums.TargetID.VoiceOfTheFallen: case ArcDPSEnums.TargetID.ClawOfTheFallen: Logic = new SuperKodanBrothers(id); break; case ArcDPSEnums.TargetID.Boneskinner: Logic = new Boneskinner(id); break; case ArcDPSEnums.TargetID.WhisperOfJormag: Logic = new WhisperOfJormag(id); break; case ArcDPSEnums.TargetID.VariniaStormsounder: Logic = new ColdWar(id); break; // case ArcDPSEnums.TargetID.MAMA: Logic = new MAMA(id); break; case ArcDPSEnums.TargetID.Siax: Logic = new Siax(id); break; case ArcDPSEnums.TargetID.Ensolyss: Logic = new Ensolyss(id); break; case ArcDPSEnums.TargetID.Skorvald: Logic = new Skorvald(id); break; case ArcDPSEnums.TargetID.Artsariiv: Logic = new Artsariiv(id); break; case ArcDPSEnums.TargetID.Arkk: Logic = new Arkk(id); break; case ArcDPSEnums.TargetID.AiKeeperOfThePeak: Logic = new AiKeeperOfThePeak(id); break; // case ArcDPSEnums.TargetID.WorldVersusWorld: Logic = new WvWFight(id, parserSettings.DetailedWvWParse); break; // case ArcDPSEnums.TargetID.MassiveGolem10M: case ArcDPSEnums.TargetID.MassiveGolem4M: case ArcDPSEnums.TargetID.MassiveGolem1M: case ArcDPSEnums.TargetID.VitalGolem: case ArcDPSEnums.TargetID.AvgGolem: case ArcDPSEnums.TargetID.StdGolem: case ArcDPSEnums.TargetID.ConditionGolem: case ArcDPSEnums.TargetID.PowerGolem: case ArcDPSEnums.TargetID.LGolem: case ArcDPSEnums.TargetID.MedGolem: Logic = new Golem(id); break; case ArcDPSEnums.TargetID.Instance: Logic = new Instance(id); break; // default: switch (ArcDPSEnums.GetTrashID(id)) { case ArcDPSEnums.TrashID.HauntingStatue: Logic = new TwistedCastle((int)ArcDPSEnums.TargetID.DummyTarget); break; default: // Unknown Logic = new UnknownFightLogic(id); break; } break; } }
// Constructors public FightData(int id, AgentData agentData, long start, long end) { FightOffset = start; FightEnd = end - start; TriggerID = id; switch (ParseEnum.GetTargetIDS(id)) { // case ParseEnum.TargetIDS.ValeGuardian: Logic = new ValeGuardian(id); break; case ParseEnum.TargetIDS.Gorseval: Logic = new Gorseval(id); break; case ParseEnum.TargetIDS.Sabetha: Logic = new Sabetha(id); break; case ParseEnum.TargetIDS.Slothasor: Logic = new Slothasor(id); break; case ParseEnum.TargetIDS.Zane: case ParseEnum.TargetIDS.Berg: case ParseEnum.TargetIDS.Narella: Logic = new BanditTrio(id); break; case ParseEnum.TargetIDS.Matthias: Logic = new Matthias(id); break; /*case ParseEnum.TargetIDS.Escort: * Logic = new Escort(id, agentData); * break;*/ case ParseEnum.TargetIDS.KeepConstruct: Logic = new KeepConstruct(id); break; case ParseEnum.TargetIDS.Xera: // some TC logs are registered as Xera if (agentData.GetNPCsByID((int)ParseEnum.TrashIDS.HauntingStatue).Count > 0) { Logic = new TwistedCastle((int)ParseEnum.TargetIDS.TwistedCastle); break; } Logic = new Xera(id); break; case ParseEnum.TargetIDS.Cairn: Logic = new Cairn(id); break; case ParseEnum.TargetIDS.MursaatOverseer: Logic = new MursaatOverseer(id); break; case ParseEnum.TargetIDS.Samarog: Logic = new Samarog(id); break; case ParseEnum.TargetIDS.Deimos: Logic = new Deimos(id); break; case ParseEnum.TargetIDS.SoullessHorror: Logic = new SoullessHorror(id); break; case ParseEnum.TargetIDS.Desmina: Logic = new River(id); break; case ParseEnum.TargetIDS.BrokenKing: Logic = new BrokenKing(id); break; case ParseEnum.TargetIDS.SoulEater: Logic = new EaterOfSouls(id); break; case ParseEnum.TargetIDS.EyeOfFate: case ParseEnum.TargetIDS.EyeOfJudgement: Logic = new DarkMaze(id); break; case ParseEnum.TargetIDS.Dhuum: // some eyes logs are registered as Dhuum if (agentData.GetNPCsByID((int)ParseEnum.TargetIDS.EyeOfFate).Count > 0 || agentData.GetNPCsByID((int)ParseEnum.TargetIDS.EyeOfJudgement).Count > 0) { TriggerID = (int)ParseEnum.TargetIDS.EyeOfFate; Logic = new DarkMaze(TriggerID); break; } Logic = new Dhuum(id); break; case ParseEnum.TargetIDS.ConjuredAmalgamate: Logic = new ConjuredAmalgamate(id); break; case ParseEnum.TargetIDS.Kenut: case ParseEnum.TargetIDS.Nikare: Logic = new TwinLargos(id); break; case ParseEnum.TargetIDS.Qadim: Logic = new Qadim(id); break; case ParseEnum.TargetIDS.Freezie: Logic = new Freezie(id); break; case ParseEnum.TargetIDS.Adina: Logic = new Adina(id); break; case ParseEnum.TargetIDS.Sabir: Logic = new Sabir(id); break; case ParseEnum.TargetIDS.PeerlessQadim: Logic = new PeerlessQadim(id); break; // case ParseEnum.TargetIDS.IcebroodConstruct: Logic = new IcebroodConstruct(id); break; case ParseEnum.TargetIDS.FraenirOfJormag: Logic = new FraenirOfJormag(id); break; case ParseEnum.TargetIDS.VoiceOfTheFallen: case ParseEnum.TargetIDS.ClawOfTheFallen: Logic = new SuperKodanBrothers(id); break; case ParseEnum.TargetIDS.Boneskinner: Logic = new Boneskinner(id); break; case ParseEnum.TargetIDS.WhisperOfJormag: Logic = new WhisperOfJormag(id); break; // case ParseEnum.TargetIDS.MAMA: Logic = new MAMA(id); break; case ParseEnum.TargetIDS.Siax: Logic = new Siax(id); break; case ParseEnum.TargetIDS.Ensolyss: Logic = new Ensolyss(id); break; case ParseEnum.TargetIDS.Skorvald: Logic = new Skorvald(id); break; case ParseEnum.TargetIDS.Artsariiv: Logic = new Artsariiv(id); break; case ParseEnum.TargetIDS.Arkk: Logic = new Arkk(id); break; // case ParseEnum.TargetIDS.WorldVersusWorld: Logic = new WvWFight(id); break; // case ParseEnum.TargetIDS.MassiveGolem: case ParseEnum.TargetIDS.AvgGolem: case ParseEnum.TargetIDS.LGolem: case ParseEnum.TargetIDS.MedGolem: case ParseEnum.TargetIDS.StdGolem: Logic = new Golem(id); break; // default: switch (ParseEnum.GetTrashIDS(id)) { case ParseEnum.TrashIDS.HauntingStatue: Logic = new TwistedCastle((int)ParseEnum.TargetIDS.TwistedCastle); break; default: // Unknown Logic = new UnknownFightLogic(id); break; } break; } }