示例#1
0
        protected override void OnBeforeAction(ActionBase action)
        {
            if (Leader == null || !Leader.IsValid)
                Leader = WoWParty.Members.FirstOrDefault() ?? WoWPlayer.Invalid;

            if (action is CatSpellAction && Manager.LocalPlayer.Shapeshift != ShapeshiftForm.Cat)
            {
                WoWSpell.GetSpell("Cat Form").Cast();
                Sleep(Globals.SpellWait);
            }

            if (action is BearSpellAction && Manager.LocalPlayer.Shapeshift != ShapeshiftForm.Bear)
            {
                WoWSpell.GetSpell("Bear Form").Cast();
                Sleep(Globals.SpellWait);
            }

            var cd = WoWSpell.GetSpell("Tiger's Fury");
            if (action is CatSpellAction && cd.IsValid && cd.IsReady)
            {
                Log.WriteLine("Popping {0}", cd.Name);
                cd.Cast();
                Sleep(Globals.SpellWait);
            }
        }
示例#2
0
 protected override void OnBeforeAction(ActionBase action)
 {
     if (WoWParty.NumPartyMembers > 0 && HelpfulTarget.IsValid && HelpfulTarget.HealthPercentage > 60)
     {
         var tank = HelpfulTargets.OrderByDescending(m => m.MaxHealth).First() ?? WoWPlayer.Invalid;
         if (tank.IsValid && !tank.IsDead && tank.Distance < Globals.MaxDistance)
         {
             var beacon = WoWSpell.GetSpell("Beacon of Light");
             if (beacon.IsValid
                 && beacon.IsReady
                 && !tank.Auras["Beacon of Light"].IsValid)
             {
                 Log.WriteLine("Casting {0} on {1}", beacon.Name, tank.Name);
                 beacon.Cast(tank);
                 Sleep(Globals.SpellWait);
             }
         }
     }
     if (action != null)
     {
         var aw = WoWSpell.GetSpell("Avenging Wrath");
         if (aw.IsValid && aw.IsReady)
         {
             Log.WriteLine("Popping {0}", aw.Name);
             aw.Cast();
             Sleep(Globals.SpellWait);
         }
     }
 }
示例#3
0
 protected override void OnAfterAction(ActionBase action)
 {
     var healer = WoWParty.Members.OrderBy(x => x.MaxPower).FirstOrDefault() ?? WoWPlayer.Invalid;
     if (healer.IsValid && healer.PowerPercentage < 40 && WoWSpell.GetSpell("Innervate").IsValid && WoWSpell.GetSpell("Innervate").IsReady)
     {
         WoWSpell.GetSpell("Innervate").Cast(healer);
         Log.WriteLine("Casting Innervate on {0}", healer.Name);
     }
 }
示例#4
0
 protected override void OnAfterAction(ActionBase action)
 {
     // Remove Totems
     if (!Helper.InCombat)
     {
         if (TotemHelper.RecallTotems())
             Sleep(Globals.SpellWait);
     }
 }
 protected override void OnAfterAction(ActionBase action)
 {
     if (Manager.LocalPlayer.Power < Manager.LocalPlayer.MaxPower * 0.4 && WoWSpell.GetSpell("Shadowfiend").IsReady && HarmfulTarget.IsValid)
     {
         Log.WriteLine("Casting Shadowfiend on {0} to regenerate some mana", HarmfulTarget.Name);
         WoWSpell.GetSpell("Shadowfiend").Cast();
         Sleep(Globals.SpellWait);
     }
 }
 protected override void OnBeforeAction(ActionBase action)
 {
     var cd = WoWSpell.GetSpell("Avenging Wrath");
     if (cd.IsValid && cd.IsReady)
     {
         Log.WriteLine("Popping {0}", cd.Name);
         cd.Cast();
         Sleep(Globals.SpellWait);
     }
 }
 protected override void OnAfterAction(ActionBase action)
 {
     var seal = WoWSpell.GetSpell("Seal of Truth");
     var sealBuff = Manager.LocalPlayer.Auras[seal.Name];
     if (seal.IsValid && (!sealBuff.IsValid || sealBuff.Remaining < 60))
     {
         Log.WriteLine("Buffing {0}", seal.Name);
         seal.Cast();
         Sleep(Globals.SpellWait);
     }
 }
 protected override void OnAfterAction(ActionBase action)
 {
     var innervate = WoWSpell.GetSpell("Innervate");
     if (Manager.LocalPlayer.PowerPercentage < 30
         && innervate.IsValid
         && innervate.IsReady)
     {
         innervate.Cast();
         Sleep(500);
     }
 }
 protected override void OnAfterAction(ActionBase action)
 {
     var ws = WoWSpell.GetSpell("Water Shield");
     if (ws.IsValid
         && ws.IsReady
         && !Manager.LocalPlayer.Auras[ws.Name].IsValid)
     {
         Log.WriteLine("Refreshing {0}", ws.Name);
         ws.Cast();
         Sleep(Globals.SpellWait);
     }
 }
示例#10
0
 protected override void OnBeforeAction(ActionBase action)
 {
     PartyTank = WoWParty.Members.OrderByDescending(m => m.MaxHealth).First() ?? WoWPlayer.Invalid;
     var ns = WoWSpell.GetSpell("Nature's Swiftness");
     if (action is HealingTouch)
     {
         if (HelpfulTarget.IsValid
             && HelpfulTarget.Distance < Globals.MaxDistance
             && HelpfulTarget.HealthPercentage < 20
             && ns.IsValid
             && ns.IsReady)
         {
             Log.WriteLine("Casting {0} for instant Healing Touch", ns.Name);
             ns.Cast(HelpfulTarget);
             Sleep(200);
         }
     }
 }
示例#11
0
 protected override void OnBeforeAction(ActionBase action)
 {
     if (WoWParty.NumPartyMembers > 0 && HelpfulTarget.IsValid && HelpfulTarget.HealthPercentage > 60)
     {
         var tank = WoWParty.Members.OrderByDescending(m => m.MaxHealth).First() ?? WoWPlayer.Invalid;
         if (tank.IsValid && !tank.IsDead && tank.Distance < 40)
         {
             var es = WoWSpell.GetSpell("Earth Shield");
             if (es.IsValid
                 && es.IsReady
                 && !tank.Auras[es.Name].IsValid)
             {
                 Log.WriteLine("Casting {0} on {1}", es.Name, tank.Name);
                 es.Cast(tank);
                 Sleep(Globals.SpellWait);
             }
         }
     }
 }
示例#12
0
        protected override void OnBeforeAction(ActionBase action)
        {
            if (!_totemsSet)
            {
                SetTotems();
                _totemsSet = true;
            }

            if (Helper.InCombat && Manager.LocalPlayer.Totems.Count == 0)
            {
                if (TotemHelper.CallTotems())
                    Sleep(Globals.SpellWait);
            }

            var ft = WoWSpell.GetSpell("Flametongue Weapon");
            if (ft.IsValid && ft.IsReady) // 5 appears to be flametongue weapon
            {
                var mainhand = Manager.LocalPlayer.GetEquippedItem(EquipSlot.MainHand);
                if (!mainhand.Enchants.Contains(5))
                {
                    Log.WriteLine("Applying Flametongue Weapon to main-hand");
                    ft.Cast();
                    Sleep(Globals.SpellWait);
                }
            }

            // Instant Lava Burst
            if (action is HarmfulSpellAction)
            {
                var haction = action as HarmfulSpellAction;
                if (haction.SpellName == "Lava Burst")
                {
                    var cd = WoWSpell.GetSpell("Elemental Mastery");
                    if (cd.IsValid && cd.IsReady)
                    {
                        Log.WriteLine("Popping Elemental Mastery for instant Lava Burst");
                        cd.Cast();
                        Sleep(Globals.SpellWait);
                    }
                }
            }
        }
示例#13
0
 protected override void OnBeforeAction(ActionBase action)
 {
     if (!Manager.LocalPlayer.IsInCombat)
     {
         if (WoWSpell.GetSpell("Power Infusion").IsReady)
         {
             Log.WriteLine("Casting Power Infusion on myself");
             WoWSpell.GetSpell("Power Infusion").Cast();
             Sleep(Globals.SpellWait);
         }
     }
     else if (WoWParty.NumPartyMembers > 0 && HelpfulTarget.IsValid && HelpfulTarget.HealthPercentage > 60)
     {
         var tank = WoWParty.Members.OrderByDescending(m => m.MaxHealth).First() ?? WoWPlayer.Invalid;
         if (tank.IsValid && WoWSpell.GetSpell("Pain Suppresion").IsReady)
         {
             Log.WriteLine("Casting Pain Suppression on ", tank.Name);
             WoWSpell.GetSpell("Pain Suppresion").Cast(tank);
             Sleep(Globals.SpellWait);
         }
     }
 }
示例#14
0
 protected override void OnAfterAction(ActionBase action)
 {
     var dp = WoWSpell.GetSpell("Divine Plea");
     var soi = WoWSpell.GetSpell("Seal of Insight");
     if (dp.IsValid
         && dp.IsReady
         && !Manager.LocalPlayer.IsInCombat
         && Manager.LocalPlayer.PowerPercentage < 80)
     {
         Log.WriteLine("Popping {0}", dp.Name);
         dp.Cast();
         Sleep(Globals.SpellWait);
     }
     else if (soi.IsValid
         && soi.IsReady
         && !Manager.LocalPlayer.Auras["Seal of Insight"].IsValid)
     {
         Log.WriteLine("Buffing {0}", soi.Name);
         soi.Cast();
         Sleep(Globals.SpellWait);
     }
 }
示例#15
0
 protected void AddAction(ActionBase action)
 {
     BrainActions.Add(action);
 }
示例#16
0
 protected void AddAction(ActionBase action)
 {
     BrainActions.Add(action);
 }
示例#17
0
 protected abstract void OnBeforeAction(ActionBase action);
示例#18
0
 protected abstract void OnAfterAction(ActionBase action);
示例#19
0
 protected abstract void OnBeforeAction(ActionBase action);
示例#20
0
 protected override void OnAfterAction(ActionBase action)
 {
 }
示例#21
0
 protected override void OnBeforeAction(ActionBase action)
 {
 }
示例#22
0
 protected abstract void OnAfterAction(ActionBase action);