// 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;
            }
        }
Esempio n. 2
0
        // 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;
            }
        }