Exemplo n.º 1
0
        private Composite CreateCombatBuffBehavior()
        {
            return(new Decorator(
                       ret => Me.Combat && !CastManager.IsHymning(),
                       new PrioritySelector(
                           AltarboyComposites.BuffSelf("Inner Fire", ret => (AltarboySettings.Instance.UseInnerFire)),
                           AltarboyComposites.BuffSelf("Inner Will", ret => (AltarboySettings.Instance.UseInnerWill)),

                           ////Is there something I should dispell from my self?
                           // new Decorator(
                           //     ret => (Me.Debuffs).Any(aura => AltarboyHashes.TargetHasAuraType(aura.Value.SpellId, AltarboyHashes.AuraTypes.DispelAsap)),
                           //     new Decorator(ret => CastManager.CanCast("Dipel Magic", Me),
                           //         new TreeSharp.Action(delegate
                           //         {
                           //             CastManager.CastSpell("Dipel Magic", Me);
                           //         })
                           //     )
                           // ),

                           //Do I need to fade? If something is aggroing me and within a specific range.
                           AltarboyComposites.BuffSelf("Fade", ret => (Me.IsInParty || Me.IsInMyRaid) && AltarboySettings.Instance.EnableFadeOnAggro &&
                                                       TargetManager.DetectHostileTargets(10).Any(Unit => TargetManager.IsTargetingMeOrMyStuff(Unit))
                                                       ),

                           AltarboyComposites.CommonPriestBuffs()

                           )));
        }
Exemplo n.º 2
0
 public static Composite BuffFortitude()
 {
     return(new Decorator(
                ret => (AltarboySettings.Instance.BuffFortitude && PartyManager.NearbyGroupMembers.Any(CanCastFortitudeOn) && CastManager.CanCast("Power Word: Fortitude", Me)),
                new Action(delegate { CastManager.CastSpell("Power Word: Fortitude", Me); })
                ));
 }
Exemplo n.º 3
0
 public static Composite BuffShadowProtection()
 {
     return(new Decorator(
                ret => (AltarboySettings.Instance.BuffShadowProtection && CastManager.CanCast("Shadow Protection", Me) &&
                        PartyManager.NearbyGroupMembers.Any(CanCastShadowProtection)),
                new Action(delegate { CastManager.CastSpell("Shadow Protection", Me); })
                ));
 }
Exemplo n.º 4
0
        public static Composite CastSpell(string spellName, SimpleBoolReturnDelegate extra, WoWUnit target)
        {
            //using current target no matter what... just testing something
            return(new Decorator(
                       ret => extra(ret) && CastManager.CanCast(spellName, TargetManager.ActiveTarget),
                       new Action(delegate { CastManager.CastSpell(spellName, TargetManager.ActiveTarget); })

                       ));
        }
Exemplo n.º 5
0
 public static Composite BuffSelf(string buffName, SimpleBoolReturnDelegate extra)
 {
     return(new Decorator(
                ret => extra(ret) && !Me.Auras.Values.Any(a => a.Spell.Name == buffName) && CastManager.CanCast(buffName, Me),
                new Action(delegate
     {
         CastManager.CastSpell(buffName, Me);
     })
                ));
 }
Exemplo n.º 6
0
 public static Composite UseItemById(int itemId, SimpleBoolReturnDelegate extra)
 {
     return(new PrioritySelector(
                new Decorator(
                    ret => extra(ret),
                    new Action(delegate {
         CastManager.UseItemById(itemId);
         Logger.Log("Using " + CastManager.GetItemById(itemId) + ". Lusting? " + AuraManager.IsLusting(Me));
     })
                    )));
 }
Exemplo n.º 7
0
 public static Composite CastMindSear(SimpleBoolReturnDelegate extra)
 {
     //Todo - Should add logic to check for CC'ed targets within Mindsear Range.
     return(new Decorator(
                ret => extra(ret),
                new Sequence(
                    //new Action(ret => Navigator.PlayerMover.MoveStop()), | Beyond annoying.
                    new Action(ret => TargetManager.ActiveTarget.Face()),
                    new Action(ret => CastManager.CastSpell("Mind Sear", TargetManager.ActiveTarget))
                    )
                ));
 }
Exemplo n.º 8
0
 public static Composite CommonPriestBuffs()
 {
     return(new Decorator(ret => !CastManager.IsHymning() && (!Me.HasAura("Food") || !Me.HasAura("Drink")),
                          new PrioritySelector(
                              HandleFalling(),
                              BuffFortitude(),
                              BuffShadowProtection(),
                              BuffSelf("Shadowform", ret => (AltarboySettings.Instance.UseShadowForm)),
                              BuffSelf("Vampiric Embrace", ret => (AltarboySettings.Instance.UseVampiricEmbrace)),
                              BuffSelf("Inner Fire", ret => (AltarboySettings.Instance.UseInnerFire)),
                              BuffSelf("Inner Will", ret => (AltarboySettings.Instance.UseInnerWill))
                              )));
 }
        public static Composite Combat()
        {
            return(new Sequence(

                       //Select a target
                       Target(),

                       //Then kill it.
                       new Decorator(
                           ret => TargetManager.ActiveTarget != null &&
                           !CastManager.IsHymning() &&
                           !Me.IsFalling &&
                           !TargetManager.IsIgnoreTarget(TargetManager.ActiveTarget), //Added falling clause cause was killing me on Ragnaros.
                           new PrioritySelector(
                               MindSearDps(ret => TargetManager.ShouldMindSear(TargetManager.ActiveTarget) && AuraManager.GetAuraTimeLeft("Mind Sear", TargetManager.ActiveTarget, true).TotalSeconds <= AltarboySettings.Instance.ClippingDuration),
                               SingleTargetDps()
                               )
                           )

                       ));
        }
Exemplo n.º 10
0
        private static Composite UseCoolDowns()
        {
            return(new PrioritySelector(

                       AltarboyComposites.CastSpell("Power Word: Shield", ret => (AltarboySettings.Instance.AutoShield && !Me.HasAura("Weakened Soul")), Me),

                       //Volcanic Potion during Bloodlust (will move this out when I can)
                       //This should be using user settings now - untested.
                       AltarboyComposites.UseItemById(AltarboySettings.Instance.FavouritePotionID, ret => (
                                                          AltarboySettings.Instance.UsePotionsOnLust &&
                                                          AltarboySettings.Instance.FavouritePotionID > 0 &&
                                                          CastManager.CanUseItem(AltarboySettings.Instance.FavouritePotionID) &&
                                                          AuraManager.IsLusting(Me))
                                                      ),

                       AltarboyComposites.UseSlottedItem(
                           ret => AltarboySettings.Instance.Trinket1UseOnCD || (AltarboySettings.Instance.Trinket1UseWithArchangel && AuraManager.HasMyAura("Dark Archangel", Me)),
                           StyxWoW.Me.Inventory.Equipped.Trinket1
                           ),
                       AltarboyComposites.UseSlottedItem(
                           ret => AltarboySettings.Instance.Trinket2UseOnCD || (AltarboySettings.Instance.Trinket2UseWithArchangel && AuraManager.HasMyAura("Dark Archangel", Me)),
                           StyxWoW.Me.Inventory.Equipped.Trinket2
                           ),

                       AltarboyComposites.UseSlottedItem(
                           ret => AltarboySettings.Instance.EngUseBelt,
                           StyxWoW.Me.Inventory.Equipped.Waist
                           ),

                       AltarboyComposites.UseSlottedItem(
                           ret => AltarboySettings.Instance.EngUseGloves || (AltarboySettings.Instance.EngUseGlovesWithArchangel && AuraManager.HasMyAura("Dark Archangel", Me)),
                           StyxWoW.Me.Inventory.Equipped.Hands
                           )


                       ));
        }
Exemplo n.º 11
0
 public static bool CanPowerWordShield(WoWUnit target)
 {
     return(!AuraManager.HasAuraStacks("Weakened Soul", 0, target) && CastManager.CanCast("Power Word: Shield", target));
 }