Exemple #1
0
 public static Composite ArmsCombat()
 {
     return(new PrioritySelector(
                new Decorator(ret => AdvancedAI.PvPRot,
                              ArmsWarriorPvP.ArmsPvPCombat()
                              ),
                //new Decorator(ret => Me.CurrentTarget != null && (!Me.CurrentTarget.IsWithinMeleeRange || Me.IsCasting || SpellManager.GlobalCooldown),
                //    new ActionAlwaysSucceed()),
                //new Decorator(ret => Me.CachedHasAura("Dire Fixation"),
                //    new PrioritySelector(
                //        BossMechs.HorridonHeroic())),
                new Throttle(1, 1,
                             Common.CreateInterruptBehavior()),
                Spell.Cast("Victory Rush", ret => Me.HealthPercent <= 90 && Me.CachedHasAura("Victorious")),
                Spell.Cast("Die by the Sword", ret => Me.HealthPercent <= 20),
                Item.UsePotionAndHealthstone(50),
                DemoBanner(),
                HeroicLeap(),
                //MockingBanner(),
                new Decorator(ret => Unit.UnfriendlyUnits(8).Count() >= 4,
                              CreateAoe()),
                new Decorator(ret => AdvancedAI.Burst && Me.CurrentTarget.HasMyAura("Colossus Smash"),
                              new PrioritySelector(
                                  Spell.Cast("Recklessness"),
                                  Spell.Cast("Avatar"),
                                  Spell.Cast("Skull Banner"))),
                Spell.Cast("Bloodbath"),
                new Action(ret => { Item.UseHands(); return RunStatus.Failure; }),
                Spell.Cast("Berserker Rage", ret => !Me.CachedHasAura(Enrage)),
                Spell.Cast("Sweeping Strikes", ret => Unit.UnfriendlyUnits(8).Count() >= 2),
                Spell.Cast("Heroic Strike", ret => (Me.CurrentTarget.CachedHasAura("Colossus Smash") && Me.CurrentRage >= 80 && Me.CurrentTarget.HealthPercent >= 20) || Me.CurrentRage >= 105, true),
                Spell.Cast("Mortal Strike"),
                Spell.Cast("Dragon Roar", ret => !Me.CurrentTarget.CachedHasAura("Colossus Smash") && Me.CachedHasAura("Bloodbath") && Me.CurrentTarget.Distance <= 8),
                Spell.Cast("Colossus Smash", ret => Me.CurrentTarget.CachedHasAuraDown("Colossus Smash", 1, true, 1) || !Me.CurrentTarget.HasMyAura("Colossus Smash")),
                Spell.Cast("Execute", ret => Me.CurrentTarget.HasMyAura("Colossus Smash") || Me.CachedHasAura("Recklessness") || Me.CurrentRage >= 95),
                Spell.Cast("Dragon Roar", ret => (!Me.CurrentTarget.HasMyAura("Colossus Smash") && Me.CurrentTarget.HealthPercent < 20) || (Me.HasAura("Bloodbath") && Me.CurrentTarget.HealthPercent >= 20) && Me.CurrentTarget.Distance <= 8),
                Spell.Cast("Thunder Clap", ret => Unit.UnfriendlyUnits(8).Count() >= 3 && Clusters.GetCluster(Me, Unit.UnfriendlyUnits(8), ClusterType.Radius, 8).Any(u => !u.CachedHasAura("Deep Wounds", 1, true))),
                Spell.Cast("Slam", ret => (Me.CurrentTarget.HasMyAura("Colossus Smash") && Me.CachedHasAura("Recklessness")) && Me.CurrentTarget.HealthPercent >= 20),
                Spell.Cast("Overpower", ret => Me.CachedHasAura("Taste for Blood", 3) && Me.CurrentTarget.HealthPercent >= 20 || Me.CachedHasAura("Sudden Execute")),
                Spell.Cast("Execute", ret => !Me.CachedHasAura("Sudden Execute")),
                Spell.Cast("Slam", ret => Me.CurrentRage >= 40 && Me.CurrentTarget.HealthPercent >= 20),
                Spell.Cast("Overpower", ret => Me.CurrentTarget.HealthPercent >= 20),
                Spell.Cast("Battle Shout"),
                Spell.Cast("Heroic Throw"),
                Spell.Cast("Impending Victory", ret => Me.HealthPercent < 50)));
 }
Exemple #2
0
        private void CompositeSelector()
        {
            if (_context == WoWContext.Battlegrounds)
            {
                Logging.Write("Initializing PvP Behaviors");
                switch (Me.Specialization)
                {
                case WoWSpec.DeathKnightBlood:
                    if (_combat == null)
                    {
                        _combat = null;
                    }                                            //Needs Changing when PvP cc is written
                    if (_pull == null)
                    {
                        _pull = null;
                    }
                    if (_heal == null)
                    {
                        _heal = null;
                    }
                    if (_preCombatBuffs == null)
                    {
                        _preCombatBuffs = null;
                    }
                    break;

                case WoWSpec.DeathKnightFrost:
                    if (_combat == null)
                    {
                        _combat = null;
                    }                                            //Needs Changing when PvP cc is written
                    if (_pull == null)
                    {
                        _pull = null;
                    }
                    if (_heal == null)
                    {
                        _heal = null;
                    }
                    if (_preCombatBuffs == null)
                    {
                        _preCombatBuffs = null;
                    }
                    break;

                case WoWSpec.DeathKnightUnholy:
                    if (_combat == null)
                    {
                        _combat = null;
                    }
                    if (_pull == null)
                    {
                        _pull = null;
                    }
                    if (_heal == null)
                    {
                        _heal = null;
                    }
                    if (_preCombatBuffs == null)
                    {
                        _preCombatBuffs = null;
                    }
                    break;

                case WoWSpec.DruidBalance:
                    if (_combat == null)
                    {
                        _combat = null;
                    }                                            // Will need Adding
                    if (_pull == null)
                    {
                        _pull = null;
                    }
                    if (_heal == null)
                    {
                        _heal = null;
                    }
                    if (_preCombatBuffs == null)
                    {
                        _preCombatBuffs = null;
                    }
                    break;

                case WoWSpec.DruidFeral:
                    if (_combat == null)
                    {
                        _combat = null;
                    }
                    if (_pull == null)
                    {
                        _pull = null;
                    }
                    if (_heal == null)
                    {
                        _heal = null;
                    }
                    if (_preCombatBuffs == null)
                    {
                        _preCombatBuffs = null;
                    }
                    break;

                case WoWSpec.DruidGuardian:
                    if (_combat == null)
                    {
                        _combat = null;
                    }
                    if (_pull == null)
                    {
                        _pull = null;
                    }
                    if (_heal == null)
                    {
                        _heal = null;
                    }
                    if (_preCombatBuffs == null)
                    {
                        _preCombatBuffs = null;
                    }
                    break;

                case WoWSpec.DruidRestoration:
                    if (_combat == null)
                    {
                        _combat = null;
                    }
                    if (_pull == null)
                    {
                        _pull = null;
                    }
                    if (_heal == null)
                    {
                        _heal = null;
                    }
                    if (_preCombatBuffs == null)
                    {
                        _preCombatBuffs = null;
                    }
                    break;

                case WoWSpec.HunterBeastMastery:
                    if (_combat == null)
                    {
                        _combat = null;
                    }
                    if (_pull == null)
                    {
                        _pull = null;
                    }
                    if (_heal == null)
                    {
                        _heal = null;
                    }
                    if (_preCombatBuffs == null)
                    {
                        _preCombatBuffs = null;
                    }
                    break;

                case WoWSpec.HunterMarksmanship:
                    if (_combat == null)
                    {
                        _combat = null;
                    }
                    if (_pull == null)
                    {
                        _pull = null;
                    }
                    if (_heal == null)
                    {
                        _heal = null;
                    }
                    if (_preCombatBuffs == null)
                    {
                        _preCombatBuffs = null;
                    }
                    break;

                case WoWSpec.HunterSurvival:
                    if (_combat == null)
                    {
                        _combat = null;
                    }
                    if (_pull == null)
                    {
                        _pull = null;
                    }
                    if (_heal == null)
                    {
                        _heal = null;
                    }
                    if (_preCombatBuffs == null)
                    {
                        _preCombatBuffs = null;
                    }
                    break;

                case WoWSpec.MageArcane:
                    if (_combat == null)
                    {
                        _combat = null;
                    }
                    if (_pull == null)
                    {
                        _pull = null;
                    }
                    if (_heal == null)
                    {
                        _heal = null;
                    }
                    if (_preCombatBuffs == null)
                    {
                        _preCombatBuffs = null;
                    }
                    break;

                case WoWSpec.MageFire:
                    if (_combat == null)
                    {
                        _combat = null;
                    }
                    if (_pull == null)
                    {
                        _pull = null;
                    }
                    if (_heal == null)
                    {
                        _heal = null;
                    }
                    if (_preCombatBuffs == null)
                    {
                        _preCombatBuffs = null;
                    }
                    break;

                case WoWSpec.MageFrost:
                    if (_combat == null)
                    {
                        _combat = null;
                    }
                    if (_pull == null)
                    {
                        _pull = null;
                    }
                    if (_heal == null)
                    {
                        _heal = null;
                    }
                    if (_preCombatBuffs == null)
                    {
                        _preCombatBuffs = null;
                    }
                    break;

                case WoWSpec.MonkBrewmaster:
                    if (_combat == null)
                    {
                        _combat = null;
                    }
                    if (_pull == null)
                    {
                        _pull = null;
                    }
                    if (_heal == null)
                    {
                        _heal = null;
                    }
                    if (_preCombatBuffs == null)
                    {
                        _preCombatBuffs = null;
                    }
                    break;

                case WoWSpec.MonkMistweaver:
                    if (_combat == null)
                    {
                        _combat = null;
                    }
                    if (_pull == null)
                    {
                        _pull = null;
                    }
                    if (_heal == null)
                    {
                        _heal = null;
                    }
                    if (_preCombatBuffs == null)
                    {
                        _preCombatBuffs = null;
                    }
                    break;

                case WoWSpec.MonkWindwalker:
                    if (_combat == null)
                    {
                        _combat = null;
                    }
                    if (_pull == null)
                    {
                        _pull = null;
                    }
                    if (_heal == null)
                    {
                        _heal = null;
                    }
                    if (_preCombatBuffs == null)
                    {
                        _preCombatBuffs = null;
                    }
                    break;

                case WoWSpec.PaladinHoly:
                    if (_combat == null)
                    {
                        _combat = null;
                    }
                    if (_pull == null)
                    {
                        _pull = null;
                    }
                    if (_heal == null)
                    {
                        _heal = null;
                    }
                    if (_preCombatBuffs == null)
                    {
                        _preCombatBuffs = null;
                    }
                    break;

                case WoWSpec.PaladinProtection:
                    if (_combat == null)
                    {
                        _combat = null;
                    }
                    if (_pull == null)
                    {
                        _pull = null;
                    }
                    if (_heal == null)
                    {
                        _heal = null;
                    }
                    if (_preCombatBuffs == null)
                    {
                        _preCombatBuffs = null;
                    }
                    break;

                case WoWSpec.PaladinRetribution:
                    if (_combat == null)
                    {
                        _combat = null;
                    }
                    if (_pull == null)
                    {
                        _pull = null;
                    }
                    if (_heal == null)
                    {
                        _heal = null;
                    }
                    if (_preCombatBuffs == null)
                    {
                        _preCombatBuffs = null;
                    }
                    break;

                case WoWSpec.PriestDiscipline:
                    if (_combat == null)
                    {
                        _combat = null;
                    }
                    if (_pull == null)
                    {
                        _pull = null;
                    }
                    if (_heal == null)
                    {
                        _heal = null;
                    }
                    if (_preCombatBuffs == null)
                    {
                        _preCombatBuffs = null;
                    }
                    break;

                case WoWSpec.PriestHoly:
                    if (_combat == null)
                    {
                        _combat = null;
                    }
                    if (_pull == null)
                    {
                        _pull = null;
                    }
                    if (_heal == null)
                    {
                        _heal = null;
                    }
                    if (_preCombatBuffs == null)
                    {
                        _preCombatBuffs = null;
                    }
                    break;

                case WoWSpec.PriestShadow:
                    if (_combat == null)
                    {
                        _combat = null;
                    }
                    if (_pull == null)
                    {
                        _pull = null;
                    }
                    if (_heal == null)
                    {
                        _heal = null;
                    }
                    if (_preCombatBuffs == null)
                    {
                        _preCombatBuffs = null;
                    }
                    break;

                case WoWSpec.RogueAssassination:
                    if (_combat == null)
                    {
                        _combat = null;
                    }
                    if (_pull == null)
                    {
                        _pull = null;
                    }
                    if (_heal == null)
                    {
                        _heal = null;
                    }
                    if (_preCombatBuffs == null)
                    {
                        _preCombatBuffs = null;
                    }
                    break;

                case WoWSpec.RogueCombat:
                    if (_combat == null)
                    {
                        _combat = null;
                    }
                    if (_pull == null)
                    {
                        _pull = null;
                    }
                    if (_heal == null)
                    {
                        _heal = null;
                    }
                    if (_preCombatBuffs == null)
                    {
                        _preCombatBuffs = null;
                    }
                    break;

                case WoWSpec.RogueSubtlety:
                    if (_combat == null)
                    {
                        _combat = null;
                    }
                    if (_pull == null)
                    {
                        _pull = null;
                    }
                    if (_heal == null)
                    {
                        _heal = null;
                    }
                    if (_preCombatBuffs == null)
                    {
                        _preCombatBuffs = null;
                    }
                    break;

                case WoWSpec.ShamanElemental:
                    if (_combat == null)
                    {
                        _combat = null;
                    }
                    if (_pull == null)
                    {
                        _pull = null;
                    }
                    if (_heal == null)
                    {
                        _heal = null;
                    }
                    if (_preCombatBuffs == null)
                    {
                        _preCombatBuffs = null;
                    }
                    break;

                case WoWSpec.ShamanEnhancement:
                    if (_combat == null)
                    {
                        _combat = null;
                    }
                    if (_pull == null)
                    {
                        _pull = null;
                    }
                    if (_heal == null)
                    {
                        _heal = null;
                    }
                    if (_preCombatBuffs == null)
                    {
                        _preCombatBuffs = null;
                    }
                    break;

                case WoWSpec.ShamanRestoration:
                    if (_combat == null)
                    {
                        _combat = null;
                    }
                    if (_pull == null)
                    {
                        _pull = null;
                    }
                    if (_heal == null)
                    {
                        _heal = null;
                    }
                    if (_preCombatBuffs == null)
                    {
                        _preCombatBuffs = null;
                    }
                    break;

                case WoWSpec.WarlockAffliction:
                    if (_combat == null)
                    {
                        _combat = null;
                    }
                    if (_pull == null)
                    {
                        _pull = null;
                    }
                    if (_heal == null)
                    {
                        _heal = null;
                    }
                    if (_preCombatBuffs == null)
                    {
                        _preCombatBuffs = null;
                    }
                    break;

                case WoWSpec.WarlockDemonology:
                    if (_combat == null)
                    {
                        _combat = null;
                    }
                    if (_pull == null)
                    {
                        _pull = null;
                    }
                    if (_heal == null)
                    {
                        _heal = null;
                    }
                    if (_preCombatBuffs == null)
                    {
                        _preCombatBuffs = null;
                    }
                    break;

                case WoWSpec.WarlockDestruction:
                    if (_combat == null)
                    {
                        _combat = null;
                    }
                    if (_pull == null)
                    {
                        _pull = null;
                    }
                    if (_heal == null)
                    {
                        _heal = null;
                    }
                    if (_preCombatBuffs == null)
                    {
                        _preCombatBuffs = null;
                    }
                    break;

                case WoWSpec.WarriorArms:
                    if (_combat == null)
                    {
                        _combat = ArmsWarriorPvP.ArmsPvPCombat();
                    }
                    if (_pull == null)
                    {
                        _pull = ArmsWarriorPvP.ArmsPvPCombat();
                    }
                    if (_heal == null)
                    {
                        _heal = ArmsWarriorPvP.ArmsPvPPull();
                    }
                    if (_preCombatBuffs == null)
                    {
                        _preCombatBuffs = ArmsWarriorPvP.ArmsPvPPreCombatBuffs();
                    }
                    break;

                case WoWSpec.WarriorFury:
                    if (_combat == null)
                    {
                        _combat = null;
                    }
                    if (_pull == null)
                    {
                        _pull = null;
                    }
                    if (_heal == null)
                    {
                        _heal = null;
                    }
                    if (_preCombatBuffs == null)
                    {
                        _preCombatBuffs = null;
                    }
                    break;

                case WoWSpec.WarriorProtection:
                    if (_combat == null)
                    {
                        _combat = null;
                    }
                    if (_pull == null)
                    {
                        _pull = null;
                    }
                    if (_heal == null)
                    {
                        _heal = null;
                    }
                    if (_preCombatBuffs == null)
                    {
                        _preCombatBuffs = null;
                    }
                    break;
                }
            }
            else
            {
                Logging.Write("Initializing PvE Behaviors");
                switch (StyxWoW.Me.Specialization)
                {
                case WoWSpec.DeathKnightBlood:
                    if (_combat == null)
                    {
                        _combat = BloodDeathknight.BloodCombat();
                    }
                    if (_pull == null)
                    {
                        _pull = BloodDeathknight.BloodCombat();
                    }
                    if (_heal == null)
                    {
                        _heal = BloodDeathknight.BloodCombat();
                    }
                    if (_preCombatBuffs == null)
                    {
                        _preCombatBuffs = BloodDeathknight.BloodPreCombatBuffs();
                    }
                    break;

                case WoWSpec.DeathKnightFrost:
                    if (_combat == null)
                    {
                        _combat = FrostDeathknight.FrostDKCombat();
                    }
                    if (_pull == null)
                    {
                        _pull = FrostDeathknight.FrostDKCombat();
                    }
                    if (_heal == null)
                    {
                        _heal = FrostDeathknight.FrostDKCombat();
                    }
                    if (_preCombatBuffs == null)
                    {
                        _preCombatBuffs = FrostDeathknight.FrostDKPreCombatBuffs();
                    }
                    break;

                case WoWSpec.DeathKnightUnholy:
                    if (_combat == null)
                    {
                        _combat = UnholyDeathknight.UnholyDKCombat();
                    }
                    if (_pull == null)
                    {
                        _pull = UnholyDeathknight.UnholyDKCombat();
                    }
                    if (_heal == null)
                    {
                        _heal = UnholyDeathknight.UnholyDKCombat();
                    }
                    if (_preCombatBuffs == null)
                    {
                        _preCombatBuffs = UnholyDeathknight.UnholyDKCombat();
                    }
                    break;

                case WoWSpec.DruidBalance:
                    if (_combat == null)
                    {
                        _combat = null;
                    }
                    if (_pull == null)
                    {
                        _pull = null;
                    }
                    if (_heal == null)
                    {
                        _heal = null;
                    }
                    if (_preCombatBuffs == null)
                    {
                        _preCombatBuffs = null;
                    }
                    break;

                case WoWSpec.DruidFeral:
                    if (_combat == null)
                    {
                        _combat = FeralDruid.FeralCombat();
                    }
                    if (_pull == null)
                    {
                        _pull = FeralDruid.FeralCombat();
                    }
                    if (_heal == null)
                    {
                        _heal = FeralDruid.FeralCombat();
                    }
                    if (_preCombatBuffs == null)
                    {
                        _preCombatBuffs = FeralDruid.FeralCombat();
                    }
                    break;

                case WoWSpec.DruidGuardian:
                    if (_combat == null)
                    {
                        _combat = GuardianDruid.GuardianCombat();
                    }
                    if (_pull == null)
                    {
                        _pull = GuardianDruid.GuardianCombat();
                    }
                    if (_heal == null)
                    {
                        _heal = GuardianDruid.GuardianCombat();
                    }
                    if (_preCombatBuffs == null)
                    {
                        _preCombatBuffs = GuardianDruid.GuardianCombat();
                    }
                    break;

                case WoWSpec.DruidRestoration:
                    if (_combat == null)
                    {
                        _combat = null;
                    }
                    if (_pull == null)
                    {
                        _pull = null;
                    }
                    if (_heal == null)
                    {
                        _heal = null;
                    }
                    if (_preCombatBuffs == null)
                    {
                        _preCombatBuffs = null;
                    }
                    break;

                case WoWSpec.HunterBeastMastery:
                    if (_combat == null)
                    {
                        _combat = null;
                    }
                    if (_pull == null)
                    {
                        _pull = null;
                    }
                    if (_heal == null)
                    {
                        _heal = null;
                    }
                    if (_preCombatBuffs == null)
                    {
                        _preCombatBuffs = null;
                    }
                    break;

                case WoWSpec.HunterMarksmanship:
                    if (_combat == null)
                    {
                        _combat = null;
                    }
                    if (_pull == null)
                    {
                        _pull = null;
                    }
                    if (_heal == null)
                    {
                        _heal = null;
                    }
                    if (_preCombatBuffs == null)
                    {
                        _preCombatBuffs = null;
                    }
                    break;

                case WoWSpec.HunterSurvival:
                    if (_combat == null)
                    {
                        _combat = null;
                    }
                    if (_pull == null)
                    {
                        _pull = null;
                    }
                    if (_heal == null)
                    {
                        _heal = null;
                    }
                    if (_preCombatBuffs == null)
                    {
                        _preCombatBuffs = null;
                    }
                    break;

                case WoWSpec.MageArcane:
                    if (_combat == null)
                    {
                        _combat = null;
                    }
                    if (_pull == null)
                    {
                        _pull = null;
                    }
                    if (_heal == null)
                    {
                        _heal = null;
                    }
                    if (_preCombatBuffs == null)
                    {
                        _preCombatBuffs = null;
                    }
                    break;

                case WoWSpec.MageFire:
                    if (_combat == null)
                    {
                        _combat = null;
                    }
                    if (_pull == null)
                    {
                        _pull = null;
                    }
                    if (_heal == null)
                    {
                        _heal = null;
                    }
                    if (_preCombatBuffs == null)
                    {
                        _preCombatBuffs = null;
                    }
                    break;

                case WoWSpec.MageFrost:
                    if (_combat == null)
                    {
                        _combat = null;
                    }
                    if (_pull == null)
                    {
                        _pull = null;
                    }
                    if (_heal == null)
                    {
                        _heal = null;
                    }
                    if (_preCombatBuffs == null)
                    {
                        _preCombatBuffs = null;
                    }
                    break;

                case WoWSpec.MonkBrewmaster:
                    if (_combat == null)
                    {
                        _combat = BrewmasterMonk.BrewmasterCombat();
                    }
                    if (_pull == null)
                    {
                        _pull = null;
                    }
                    if (_heal == null)
                    {
                        _heal = null;
                    }
                    if (_preCombatBuffs == null)
                    {
                        _preCombatBuffs = BrewmasterMonk.BrewmasterPreCombatBuffs();
                    }
                    break;

                case WoWSpec.MonkMistweaver:
                    if (_combat == null)
                    {
                        _combat = null;
                    }
                    if (_pull == null)
                    {
                        _pull = null;
                    }
                    if (_heal == null)
                    {
                        _heal = null;
                    }
                    if (_preCombatBuffs == null)
                    {
                        _preCombatBuffs = null;
                    }
                    break;

                case WoWSpec.MonkWindwalker:
                    if (_combat == null)
                    {
                        _combat = WindwalkerMonk.WindwalkerCombat();
                    }
                    if (_pull == null)
                    {
                        _pull = WindwalkerMonk.WindwalkerCombat();
                    }
                    if (_heal == null)
                    {
                        _heal = WindwalkerMonk.WindwalkerCombat();
                    }
                    if (_preCombatBuffs == null)
                    {
                        _preCombatBuffs = WindwalkerMonk.WindwalkerCombat();
                    }
                    break;

                case WoWSpec.PaladinHoly:
                    if (_combat == null)
                    {
                        _combat = null;
                    }
                    if (_pull == null)
                    {
                        _pull = null;
                    }
                    if (_heal == null)
                    {
                        _heal = null;
                    }
                    if (_preCombatBuffs == null)
                    {
                        _preCombatBuffs = null;
                    }
                    break;

                case WoWSpec.PaladinProtection:
                    if (_combat == null)
                    {
                        _combat = ProtectionPaladin.ProtectionCombat();
                    }
                    if (_pull == null)
                    {
                        _pull = ProtectionPaladin.ProtectionCombat();
                    }
                    if (_heal == null)
                    {
                        _heal = ProtectionPaladin.ProtectionCombat();
                    }
                    if (_preCombatBuffs == null)
                    {
                        _preCombatBuffs = ProtectionPaladin.ProtectionPreCombatBuffs();
                    }
                    break;

                case WoWSpec.PaladinRetribution:
                    if (_combat == null)
                    {
                        _combat = RetributionPaladin.RetributionCombat();
                    }
                    if (_pull == null)
                    {
                        _pull = RetributionPaladin.RetributionCombat();
                    }
                    if (_heal == null)
                    {
                        _heal = RetributionPaladin.RetributionCombat();
                    }
                    if (_preCombatBuffs == null)
                    {
                        _preCombatBuffs = RetributionPaladin.RetributionPreCombatBuffs();
                    }
                    break;

                case WoWSpec.PriestDiscipline:
                    if (_combat == null)
                    {
                        _combat = null;
                    }
                    if (_pull == null)
                    {
                        _pull = null;
                    }
                    if (_heal == null)
                    {
                        _heal = null;
                    }
                    if (_preCombatBuffs == null)
                    {
                        _preCombatBuffs = null;
                    }
                    break;

                case WoWSpec.PriestHoly:
                    if (_combat == null)
                    {
                        _combat = null;
                    }
                    if (_pull == null)
                    {
                        _pull = null;
                    }
                    if (_heal == null)
                    {
                        _heal = null;
                    }
                    if (_preCombatBuffs == null)
                    {
                        _preCombatBuffs = null;
                    }
                    break;

                case WoWSpec.PriestShadow:
                    if (_combat == null)
                    {
                        _combat = ShadowPriest.ShadowCombat();
                    }
                    if (_pull == null)
                    {
                        _pull = ShadowPriest.ShadowCombat();
                    }
                    if (_heal == null)
                    {
                        _heal = ShadowPriest.ShadowCombat();
                    }
                    if (_preCombatBuffs == null)
                    {
                        _preCombatBuffs = ShadowPriest.ShadowPreCombatBuffs();
                    }
                    break;

                case WoWSpec.RogueAssassination:
                    if (_combat == null)
                    {
                        _combat = null;
                    }
                    if (_pull == null)
                    {
                        _pull = null;
                    }
                    if (_heal == null)
                    {
                        _heal = null;
                    }
                    if (_preCombatBuffs == null)
                    {
                        _preCombatBuffs = null;
                    }
                    break;

                case WoWSpec.RogueCombat:
                    if (_combat == null)
                    {
                        _combat = null;
                    }
                    if (_pull == null)
                    {
                        _pull = null;
                    }
                    if (_heal == null)
                    {
                        _heal = null;
                    }
                    if (_preCombatBuffs == null)
                    {
                        _preCombatBuffs = null;
                    }
                    break;

                case WoWSpec.RogueSubtlety:
                    if (_combat == null)
                    {
                        _combat = null;
                    }
                    if (_pull == null)
                    {
                        _pull = null;
                    }
                    if (_heal == null)
                    {
                        _heal = null;
                    }
                    if (_preCombatBuffs == null)
                    {
                        _preCombatBuffs = null;
                    }
                    break;

                case WoWSpec.ShamanElemental:
                    if (_combat == null)
                    {
                        _combat = ElementalShaman.ElementalCombat();
                    }
                    if (_pull == null)
                    {
                        _pull = ElementalShaman.ElementalCombat();
                    }
                    if (_heal == null)
                    {
                        _heal = ElementalShaman.ElementalCombat();
                    }
                    if (_preCombatBuffs == null)
                    {
                        _preCombatBuffs = ElementalShaman.ElementalCombat();
                    }
                    break;

                case WoWSpec.ShamanEnhancement:
                    if (_combat == null)
                    {
                        _combat = EnhancementShaman.EnhancementCombat();
                    }
                    if (_pull == null)
                    {
                        _pull = EnhancementShaman.EnhancementCombat();
                    }
                    if (_heal == null)
                    {
                        _heal = EnhancementShaman.EnhancementCombat();
                    }
                    if (_preCombatBuffs == null)
                    {
                        _preCombatBuffs = EnhancementShaman.EnhancementPreCombatBuffs();
                    }
                    break;

                case WoWSpec.ShamanRestoration:
                    if (_combat == null)
                    {
                        _combat = RestorationShaman.RestorationCombat();
                    }
                    if (_pull == null)
                    {
                        _pull = RestorationShaman.RestorationCombat();
                    }
                    if (_heal == null)
                    {
                        _heal = RestorationShaman.RestorationCombat();
                    }
                    if (_preCombatBuffs == null)
                    {
                        _preCombatBuffs = RestorationShaman.RestorationPreCombatBuffs();
                    }
                    break;

                case WoWSpec.WarlockAffliction:
                    if (_combat == null)
                    {
                        _combat = AfflictionWarlock.AfflictionCombat();
                    }
                    if (_pull == null)
                    {
                        _pull = AfflictionWarlock.AfflictionPull();
                    }
                    if (_heal == null)
                    {
                        _heal = null;
                    }
                    if (_preCombatBuffs == null)
                    {
                        _preCombatBuffs = AfflictionWarlock.AfflictionPreCombatBuffs();
                    }
                    break;

                case WoWSpec.WarlockDemonology:
                    if (_combat == null)
                    {
                        _combat = null;
                    }
                    if (_pull == null)
                    {
                        _pull = null;
                    }
                    if (_heal == null)
                    {
                        _heal = null;
                    }
                    if (_preCombatBuffs == null)
                    {
                        _preCombatBuffs = null;
                    }
                    break;

                case WoWSpec.WarlockDestruction:
                    if (_combat == null)
                    {
                        _combat = null;
                    }
                    if (_pull == null)
                    {
                        _pull = null;
                    }
                    if (_heal == null)
                    {
                        _heal = null;
                    }
                    if (_preCombatBuffs == null)
                    {
                        _preCombatBuffs = null;
                    }
                    break;

                case WoWSpec.WarriorArms:
                    Logging.Write("WoWSpec Arms");
                    if (_combat == null)
                    {
                        _combat = ArmsWarrior.ArmsCombat();
                    }
                    if (_pull == null)
                    {
                        _pull = ArmsWarrior.ArmsPull();
                    }
                    if (_heal == null)
                    {
                        _heal = ArmsWarrior.ArmsCombat();
                    }
                    if (_preCombatBuffs == null)
                    {
                        _preCombatBuffs = ArmsWarrior.ArmsPreCombatBuffs();
                    }
                    break;

                case WoWSpec.WarriorFury:
                    Logging.Write("WoWSpec Fury");
                    if (_combat == null)
                    {
                        _combat = FuryWarrior.FuryCombat();
                    }
                    if (_pull == null)
                    {
                        _pull = FuryWarrior.FuryPull();
                    }
                    if (_heal == null)
                    {
                        _heal = FuryWarrior.FuryCombat();
                    }
                    if (_preCombatBuffs == null)
                    {
                        _preCombatBuffs = FuryWarrior.FuryPreCombatBuffs();
                    }
                    break;

                case WoWSpec.WarriorProtection:
                    if (_combat == null)
                    {
                        _combat = ProtectionWarrior.ProtCombat();
                    }
                    if (_pull == null)
                    {
                        _pull = ProtectionWarrior.ProtCombat();
                    }
                    if (_heal == null)
                    {
                        _heal = ProtectionWarrior.ProtCombat();
                    }
                    if (_preCombatBuffs == null)
                    {
                        _preCombatBuffs = ProtectionWarrior.ProtPreCombatBuffs();
                    }
                    break;
                }
            }
        }