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))); }
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; } } }