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); } }
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); } } }
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); } }
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); } }
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); } } }
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); } } } }
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); } } } }
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); } } }
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); } }
protected void AddAction(ActionBase action) { BrainActions.Add(action); }
protected abstract void OnBeforeAction(ActionBase action);
protected abstract void OnAfterAction(ActionBase action);
protected override void OnAfterAction(ActionBase action) { }
protected override void OnBeforeAction(ActionBase action) { }