internal static bool IsKnownMinionID(AgentItem minion, Spec spec) { if (minion.Type == AgentItem.AgentType.Gadget) { return(false); } long id = minion.ID; bool res = CommonMinions.Contains(id); switch (spec) { // case Spec.Elementalist: case Spec.Tempest: case Spec.Weaver: case Spec.Catalyst: res |= ElementalistHelper.IsKnownMinionID(id); break; // case Spec.Necromancer: case Spec.Scourge: case Spec.Harbinger: res |= NecromancerHelper.IsKnownMinionID(id); break; case Spec.Reaper: res |= NecromancerHelper.IsKnownMinionID(id); res |= ReaperHelper.IsKnownMinionID(id); break; // case Spec.Mesmer: res |= MesmerHelper.IsKnownMinionID(id); break; case Spec.Chronomancer: res |= MesmerHelper.IsKnownMinionID(id); res |= ChronomancerHelper.IsKnownMinionID(id); break; case Spec.Mirage: res |= MesmerHelper.IsKnownMinionID(id); res |= MirageHelper.IsKnownMinionID(id); break; case Spec.Virtuoso: res |= MesmerHelper.IsKnownMinionID(id); res |= VirtuosoHelper.IsKnownMinionID(id); break; // case Spec.Thief: res |= ThiefHelper.IsKnownMinionID(id); break; case Spec.Daredevil: res |= ThiefHelper.IsKnownMinionID(id); res |= DaredevilHelper.IsKnownMinionID(id); break; case Spec.Deadeye: res |= ThiefHelper.IsKnownMinionID(id); res |= DeadeyeHelper.IsKnownMinionID(id); break; case Spec.Specter: res |= ThiefHelper.IsKnownMinionID(id); res |= SpecterHelper.IsKnownMinionID(id); break; // case Spec.Engineer: case Spec.Scrapper: case Spec.Holosmith: res |= EngineerHelper.IsKnownMinionID(id); break; case Spec.Mechanist: res |= EngineerHelper.IsKnownMinionID(id); res |= MechanistHelper.IsKnownMinionID(id); break; // case Spec.Ranger: case Spec.Druid: case Spec.Soulbeast: case Spec.Untamed: res |= RangerHelper.IsKnownMinionID(id); break; // case Spec.Revenant: case Spec.Herald: case Spec.Vindicator: res |= RevenantHelper.IsKnownMinionID(id); break; case Spec.Renegade: res |= RevenantHelper.IsKnownMinionID(id); res |= RenegadeHelper.IsKnownMinionID(id); break; // case Spec.Guardian: case Spec.Dragonhunter: case Spec.Firebrand: case Spec.Willbender: res |= GuardianHelper.IsKnownMinionID(id); break; } return(res); }
// public static List <InstantCastEvent> ComputeInstantCastEvents(List <Player> players, CombatData combatData, SkillData skillData, AgentData agentData) { var instantCastFinders = new HashSet <InstantCastFinder>(_genericInstantCastFinders); var res = new List <InstantCastEvent>(); foreach (Player p in players) { switch (p.Prof) { // case "Elementalist": ElementalistHelper.InstantCastFinder.ForEach(x => instantCastFinders.Add(x)); break; case "Tempest": ElementalistHelper.InstantCastFinder.ForEach(x => instantCastFinders.Add(x)); TempestHelper.InstantCastFinder.ForEach(x => instantCastFinders.Add(x)); break; case "Weaver": ElementalistHelper.InstantCastFinder.ForEach(x => instantCastFinders.Add(x)); WeaverHelper.InstantCastFinder.ForEach(x => instantCastFinders.Add(x)); break; // case "Necromancer": NecromancerHelper.InstantCastFinder.ForEach(x => instantCastFinders.Add(x)); break; case "Reaper": NecromancerHelper.InstantCastFinder.ForEach(x => instantCastFinders.Add(x)); ReaperHelper.InstantCastFinder.ForEach(x => instantCastFinders.Add(x)); break; case "Scourge": NecromancerHelper.InstantCastFinder.ForEach(x => instantCastFinders.Add(x)); ScourgeHelper.InstantCastFinder.ForEach(x => instantCastFinders.Add(x)); break; // case "Mesmer": MesmerHelper.InstantCastFinder.ForEach(x => instantCastFinders.Add(x)); break; case "Chronomancer": MesmerHelper.InstantCastFinder.ForEach(x => instantCastFinders.Add(x)); ChronomancerHelper.InstantCastFinder.ForEach(x => instantCastFinders.Add(x)); break; case "Mirage": MesmerHelper.InstantCastFinder.ForEach(x => instantCastFinders.Add(x)); MirageHelper.InstantCastFinder.ForEach(x => instantCastFinders.Add(x)); res.AddRange(MirageHelper.TranslateMirageCloak(combatData.GetBuffData(40408), skillData)); break; // case "Thief": ThiefHelper.InstantCastFinder.ForEach(x => instantCastFinders.Add(x)); break; case "Daredevil": ThiefHelper.InstantCastFinder.ForEach(x => instantCastFinders.Add(x)); DaredevilHelper.InstantCastFinder.ForEach(x => instantCastFinders.Add(x)); break; case "Deadeye": ThiefHelper.InstantCastFinder.ForEach(x => instantCastFinders.Add(x)); DeadeyeHelper.InstantCastFinder.ForEach(x => instantCastFinders.Add(x)); break; // case "Engineer": EngineerHelper.InstantCastFinder.ForEach(x => instantCastFinders.Add(x)); break; case "Scrapper": EngineerHelper.InstantCastFinder.ForEach(x => instantCastFinders.Add(x)); ScrapperHelper.InstantCastFinder.ForEach(x => instantCastFinders.Add(x)); break; case "Holosmith": EngineerHelper.InstantCastFinder.ForEach(x => instantCastFinders.Add(x)); HolosmithHelper.InstantCastFinder.ForEach(x => instantCastFinders.Add(x)); break; // case "Ranger": RangerHelper.InstantCastFinder.ForEach(x => instantCastFinders.Add(x)); break; case "Druid": RangerHelper.InstantCastFinder.ForEach(x => instantCastFinders.Add(x)); DruidHelper.InstantCastFinder.ForEach(x => instantCastFinders.Add(x)); break; case "Soulbeast": RangerHelper.InstantCastFinder.ForEach(x => instantCastFinders.Add(x)); SoulbeastHelper.InstantCastFinder.ForEach(x => instantCastFinders.Add(x)); break; // case "Revenant": RevenantHelper.InstantCastFinder.ForEach(x => instantCastFinders.Add(x)); break; case "Herald": RevenantHelper.InstantCastFinder.ForEach(x => instantCastFinders.Add(x)); HeraldHelper.InstantCastFinder.ForEach(x => instantCastFinders.Add(x)); break; case "Renegade": RevenantHelper.InstantCastFinder.ForEach(x => instantCastFinders.Add(x)); RenegadeHelper.InstantCastFinder.ForEach(x => instantCastFinders.Add(x)); break; // case "Guardian": GuardianHelper.InstantCastFinder.ForEach(x => instantCastFinders.Add(x)); break; case "Dragonhunter": GuardianHelper.InstantCastFinder.ForEach(x => instantCastFinders.Add(x)); DragonhunterHelper.InstantCastFinder.ForEach(x => instantCastFinders.Add(x)); break; case "Firebrand": GuardianHelper.InstantCastFinder.ForEach(x => instantCastFinders.Add(x)); FirebrandHelper.InstantCastFinder.ForEach(x => instantCastFinders.Add(x)); break; // case "Warrior": WarriorHelper.InstantCastFinder.ForEach(x => instantCastFinders.Add(x)); break; case "Berserker": WarriorHelper.InstantCastFinder.ForEach(x => instantCastFinders.Add(x)); BerserkerHelper.InstantCastFinder.ForEach(x => instantCastFinders.Add(x)); break; case "Spellbreaker": WarriorHelper.InstantCastFinder.ForEach(x => instantCastFinders.Add(x)); SpellbreakerHelper.InstantCastFinder.ForEach(x => instantCastFinders.Add(x)); break; } } res.AddRange(ComputeInstantCastEvents(combatData, skillData, agentData, instantCastFinders.ToList())); return(res); }