Advertisement
Guest User

Untitled

a guest
Jan 24th, 2017
252
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 44.02 KB | None | 0 0
  1. // Decompiled with JetBrains decompiler
  2. // Type: FeralDruid
  3. // Assembly: FeralDruidMono, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
  4. // MVID: 0F64C8C7-8FBC-452F-818E-B482810E38D6
  5. // Assembly location: C:\joc\WRobot\FightClass\FeralDruidMono.dll
  6.  
  7. using FeralDruidMono;
  8. using MemoryRobot;
  9. using robotManager.Helpful;
  10. using System;
  11. using System.Collections.Generic;
  12. using System.Linq;
  13. using System.Threading;
  14. using wManager.Wow.Class;
  15. using wManager.Wow.Enums;
  16. using wManager.Wow.Helpers;
  17. using wManager.Wow.ObjectManager;
  18.  
  19. public class FeralDruid
  20. {
  21.   public static Spell Auto_Attack = new Spell("Auto Attack");
  22.   public static Spell Berserking = new Spell("Berserking");
  23.   public static Spell Mobile_Banking = new Spell(83958);
  24.   public static Spell Revive_Battle_Pets = new Spell(125439);
  25.   public static Spell War_Stomp = new Spell("War Stomp");
  26.   public static Spell Armor_Skills = new Spell(76275);
  27.   public static Spell Brawn = new Spell(154743);
  28.   public static Spell Cold_Weather_Flying = new Spell(54197);
  29.   public static Spell Cultivation = new Spell(20552);
  30.   public static Spell Draenor_Pathfinder = new Spell(191645);
  31.   public static Spell Endurance = new Spell(20550);
  32.   public static Spell Flight_Masters_License = new Spell(90267);
  33.   public static Spell Guild_Mail = new Spell(83951);
  34.   public static Spell Hasty_Hearth = new Spell(83944);
  35.   public static Spell Languages = new Spell(79746);
  36.   public static Spell Master_Riding = new Spell(90265);
  37.   public static Spell Mount_Up = new Spell(78633);
  38.   public static Spell Nature_Resistance = new Spell(20551);
  39.   public static Spell The_Quick_and_the_Dead = new Spell(83950);
  40.   public static Spell Weapon_Skills = new Spell(76300);
  41.   public static Spell Wisdom_of_the_Four_Winds = new Spell(115913);
  42.   public static Spell Combat_Ally = new Spell(211390);
  43.   public static Spell Garrison_Ability = new Spell(161691);
  44.   public static Spell Barkskin = new Spell("Barkskin");
  45.   public static Spell Bear_Form = new Spell("Bear Form");
  46.   public static Spell Cat_Form = new Spell("Cat Form");
  47.   public static Spell Charm_Woodland_Creature = new Spell(127757);
  48.   public static Spell Dash = new Spell("Dash");
  49.   public static Spell Dreamwalk = new Spell(193753);
  50.   public static Spell Efflorescence = new Spell("Efflorescence");
  51.   public static Spell Entangling_Roots = new Spell("Entangling Roots");
  52.   public static Spell Essence_of_GHanir = new Spell("Essence of G'Hanir");
  53.   public static Spell Flap = new Spell("Flap");
  54.   public static Spell Flourish = new Spell("Flourish");
  55.   public static Spell Frenzied_Regeneration = new Spell("Frenzied Regeneration");
  56.   public static Spell Growl = new Spell("Growl");
  57.   public static Spell Healing_Touch = new Spell("Healing Touch");
  58.   public static Spell Innervate = new Spell("Innervate");
  59.   public static Spell Ironbark = new Spell("Ironbark");
  60.   public static Spell Ironfur = new Spell("Ironfur");
  61.   public static Spell Lifebloom = new Spell("Lifebloom");
  62.   public static Spell Mangle = new Spell("Mangle");
  63.   public static Spell Moonfire = new Spell("Moonfire");
  64.   public static Spell Natures_Cure = new Spell("Nature's Cure");
  65.   public static Spell Prowl = new Spell("Prowl");
  66.   public static Spell Rebirth = new Spell("Rebirth");
  67.   public static Spell Regrowth = new Spell("Regrowth");
  68.   public static Spell Rejuvenation = new Spell("Rejuvenation");
  69.   public static Spell Renewal = new Spell("Renewal");
  70.   public static Spell Revitalize = new Spell(212040);
  71.   public static Spell Revive = new Spell("Revive");
  72.   public static Spell Solar_Wrath = new Spell("Solar Wrath");
  73.   public static Spell Stag_Form = new Spell(210053);
  74.   public static Spell Sunfire = new Spell("Sunfire");
  75.   public static Spell Swiftmend = new Spell("Swiftmend");
  76.   public static Spell Thrash = new Spell("Thrash");
  77.   public static Spell Bear_Thrash = new Spell("Thrash");
  78.   public static Spell Bear_Swipe = new Spell("Swipe");
  79.   public static Spell Tranquility = new Spell(740);
  80.   public static Spell Travel_Form = new Spell(783);
  81.   public static Spell Treant_Form = new Spell(114282);
  82.   public static Spell Natures_Control = new Spell(175682);
  83.   public static Spell Ursols_Vortex = new Spell(102793);
  84.   public static Spell Wild_Growth = new Spell(48438);
  85.   public static Spell Living_Seed = new Spell(48500);
  86.   public static Spell Celestial_Alignment = new Spell(194223);
  87.   public static Spell Starfall = new Spell(191034);
  88.   public static Spell Starsurge = new Spell(78674);
  89.   public static Spell Ferocious_Bite = new Spell("Ferocious Bite");
  90.   public static Spell Maim = new Spell(22570);
  91.   public static Spell Stampeding_Roar = new Spell(106898);
  92.   public static Spell Survival_Instincts = new Spell("Survival Instincts");
  93.   public static Spell Swipe = new Spell("Swipe");
  94.   public static Spell Feline_Swiftness = new Spell(131768);
  95.   public static Spell Feral_Instinct = new Spell(16949);
  96.   public static Spell Infected_Wounds = new Spell(48484);
  97.   public static Spell Incapacitating_Roar = new Spell(99);
  98.   public static Spell Maul = new Spell("Maul");
  99.   public static Spell Remove_Corruption = new Spell(2782);
  100.   public static Spell Skull_Bash = new Spell("Skull Bash");
  101.   public static Spell Gore = new Spell(210706);
  102.   public static Spell Typhoon = new Spell(132469);
  103.   public static Spell Lunar_Strike = new Spell(194153);
  104.   public static Spell Moonkin_Form = new Spell(24858);
  105.   public static Spell Solar_Beam = new Spell(78675);
  106.   public static Spell Astral_Influence = new Spell(197524);
  107.   public static Spell Berserk = new Spell("Berserk");
  108.   public static Spell Rake = new Spell("Rake");
  109.   public static Spell Rip = new Spell("Rip");
  110.   public static Spell Shred = new Spell("Shred");
  111.   public static Spell Tigers_Fury = new Spell("Tiger's Fury");
  112.   public static Spell Predatory_Swiftness = new Spell("Predatory Swiftness");
  113.   public static Spell Primal_Fury = new Spell(159286);
  114.   public static Spell Mark_of_Ursol = new Spell(192083);
  115.   public static Spell Ashamanes_Frenzy = new Spell("Ashamane's Frenzy");
  116.   public static Spell Savage_Roar = new Spell("Savage Roar");
  117.   public static Spell Mighty_Bash = new Spell("Mighty Bash");
  118.   public static uint Healthstone = 5512;
  119.   public static uint AncientRejuvenationPotion = 127836;
  120.   public static uint AncientHealingPotion = 127834;
  121.   public static uint DarkmoonFirewater = 124671;
  122.   public static uint DarkmoonFirewaterBuff = 185562;
  123.   private bool _isLaunched;
  124.   private static bool autoInterrupt;
  125.   private static bool autoHealthstone;
  126.   private static bool autoHealingPotion;
  127.   private static bool autoBerserk;
  128.   private static bool autoberserking;
  129.   private static bool autoAshamane;
  130.   private static int renewalHealth;
  131.   private static int surivalInstinctsHealth;
  132.   private static int frenziedRegenarationHealt;
  133.   private static int healingPotionHealth;
  134.   private static int healthStoneHealth;
  135.   private static int touchOOC;
  136.   private static string Clearcasting;
  137.   public static string lastLog;
  138.  
  139.   public bool IsLaunched
  140.   {
  141.     get
  142.     {
  143.       return this._isLaunched;
  144.     }
  145.     set
  146.     {
  147.       this._isLaunched = value;
  148.     }
  149.   }
  150.  
  151.   public static bool haveSavageRoar
  152.   {
  153.     get
  154.     {
  155.       return (bool) FeralDruid.Savage_Roar.KnownSpell;
  156.     }
  157.   }
  158.  
  159.   public static bool haveCatform
  160.   {
  161.     get
  162.     {
  163.       return ((WoWUnit) wManager.Wow.ObjectManager.ObjectManager.get_Me()).HaveBuff((string) FeralDruid.Cat_Form.Name);
  164.     }
  165.   }
  166.  
  167.   public static bool haveComoPoints
  168.   {
  169.     get
  170.     {
  171.       return ((WoWPlayer) wManager.Wow.ObjectManager.ObjectManager.get_Me()).get_ComboPoint() >= FeralDruid.myCP;
  172.     }
  173.   }
  174.  
  175.   public static bool CanInterrupt
  176.   {
  177.     get
  178.     {
  179.       return FeralDruid.haveTarget && wManager.Wow.ObjectManager.ObjectManager.get_Target().get_IsCast() && wManager.Wow.ObjectManager.ObjectManager.get_Target().get_CanInterruptCasting();
  180.     }
  181.   }
  182.  
  183.   public static int myCP
  184.   {
  185.     get
  186.     {
  187.       return !FeralDruid.haveTarget || !FeralDruid.isBoss ? 3 : 5;
  188.     }
  189.   }
  190.  
  191.   public static bool hasBleedEffect
  192.   {
  193.     get
  194.     {
  195.       return FeralDruid.haveTarget && (FeralDruid.debuffExists((string) FeralDruid.Rip.Name) || FeralDruid.debuffExists((string) FeralDruid.Rake.Name) || FeralDruid.debuffExists((string) FeralDruid.Thrash.Name));
  196.     }
  197.   }
  198.  
  199.   public static bool needAoe
  200.   {
  201.     get
  202.     {
  203.       return FeralDruid.addCount >= 3 && (int) FeralDruid.Swipe.KnownSpell != 0;
  204.     }
  205.   }
  206.  
  207.   public static int addCount
  208.   {
  209.     get
  210.     {
  211.       return ((IEnumerable<WoWUnit>) wManager.Wow.ObjectManager.ObjectManager.GetUnitAttackPlayer()).Count<WoWUnit>((Func<WoWUnit, bool>) (u =>
  212.       {
  213.         if (u != null && u.get_IsAlive())
  214.           return (double) ((WoWObject) u).get_Position().DistanceTo(((WoWObject) wManager.Wow.ObjectManager.ObjectManager.get_Target()).get_Position()) <= 5.0;
  215.         return false;
  216.       }));
  217.     }
  218.   }
  219.  
  220.   public static bool haveTarget
  221.   {
  222.     get
  223.     {
  224.       return wManager.Wow.ObjectManager.ObjectManager.get_Target() != null && wManager.Wow.ObjectManager.ObjectManager.get_Target().get_IsAlive() && wManager.Wow.ObjectManager.ObjectManager.get_Target().get_IsAttackable();
  225.     }
  226.   }
  227.  
  228.   public static long myMaxHealth
  229.   {
  230.     get
  231.     {
  232.       return ((WoWUnit) wManager.Wow.ObjectManager.ObjectManager.get_Me()).get_MaxHealth();
  233.     }
  234.   }
  235.  
  236.   public static long targetMaxHealth
  237.   {
  238.     get
  239.     {
  240.       return FeralDruid.haveTarget ? wManager.Wow.ObjectManager.ObjectManager.get_Target().get_MaxHealth() : 0L;
  241.     }
  242.   }
  243.  
  244.   public static bool isBoss
  245.   {
  246.     get
  247.     {
  248.       return FeralDruid.haveTarget && Party.IsInGroupInstance() && FeralDruid.targetMaxHealth > FeralDruid.myMaxHealth * 10L || FeralDruid.haveTarget && !Party.IsInGroupInstance() && FeralDruid.targetMaxHealth > ((WoWUnit) wManager.Wow.ObjectManager.ObjectManager.get_Me()).get_MaxHealth() * 2L;
  249.     }
  250.   }
  251.  
  252.   public static string usedBot
  253.   {
  254.     get
  255.     {
  256.       return robotManager.Products.Products.get_ProductName();
  257.     }
  258.   }
  259.  
  260.   public static bool autoBot
  261.   {
  262.     get
  263.     {
  264.       return FeralDruid.usedBot.Contains("Automaton") || FeralDruid.usedBot.Contains("Grinder") || FeralDruid.usedBot.Contains("Quester") || FeralDruid.usedBot.Contains("Gather");
  265.     }
  266.   }
  267.  
  268.   public FeralDruid()
  269.   {
  270.     FeralDruid.autoInterrupt = mySettings.Default.autoInterrupt;
  271.     FeralDruid.autoHealthstone = mySettings.Default.autoHealthstone;
  272.     FeralDruid.autoHealingPotion = mySettings.Default.autoHealingPotion;
  273.     FeralDruid.autoBerserk = mySettings.Default.autoBerserk;
  274.     FeralDruid.autoberserking = mySettings.Default.autoBerserking;
  275.     FeralDruid.autoAshamane = mySettings.Default.autoAshamanesFrenzy;
  276.     FeralDruid.renewalHealth = mySettings.Default.renwalHealth;
  277.     FeralDruid.surivalInstinctsHealth = mySettings.Default.survivalInstinctsHealth;
  278.     FeralDruid.frenziedRegenarationHealt = mySettings.Default.frenziedRegenerationHealtj;
  279.     FeralDruid.healingPotionHealth = mySettings.Default.healinPotionHealth;
  280.     FeralDruid.healthStoneHealth = mySettings.Default.healthsoneHealth;
  281.     FeralDruid.touchOOC = mySettings.Default.healingTouchOOC;
  282.     FeralDruid.Clearcasting = mySettings.Default.clearCasting;
  283.     Logging.WriteFight("'FeralDruid' by Pasterke loaded");
  284.   }
  285.  
  286.   public void Pulse()
  287.   {
  288.     this._isLaunched = true;
  289.     new Thread(new ThreadStart(this.RoutineThread))
  290.     {
  291.       Name = "FeralDruid_FightClass"
  292.     }.Start();
  293.   }
  294.  
  295.   public void Stop()
  296.   {
  297.     this._isLaunched = false;
  298.     Logging.WriteFight("Stop 'FeralDruid'");
  299.   }
  300.  
  301.   private void RoutineThread()
  302.   {
  303.     Logging.WriteFight("'FeralDruid' Started");
  304.     while (this._isLaunched)
  305.     {
  306.       if (((WoWUnit) wManager.Wow.ObjectManager.ObjectManager.get_Me()).HaveBuff((string) FeralDruid.Bear_Form.Name) && !FeralDruid.autoBot)
  307.         FeralDruid.BearRoutine();
  308.       if (!((WoWUnit) wManager.Wow.ObjectManager.ObjectManager.get_Me()).HaveBuff((string) FeralDruid.Bear_Form.Name))
  309.         FeralDruid.Routine();
  310.     }
  311.     Logging.WriteFight("'FeralDruid' Stopped");
  312.   }
  313.  
  314.   public static void BearRoutine()
  315.   {
  316.     if (wManager.Wow.ObjectManager.ObjectManager.get_Me().get_IsDead() || ((WoWUnit) wManager.Wow.ObjectManager.ObjectManager.get_Me()).get_IsMounted() || wManager.Wow.ObjectManager.ObjectManager.get_Me().get_IsCast() || FeralDruid.needToUseItem(FeralDruid.AncientHealingPotion, ((WoWUnit) wManager.Wow.ObjectManager.ObjectManager.get_Me()).get_HealthPercent() <= (double) FeralDruid.healingPotionHealth && ((WoWUnit) wManager.Wow.ObjectManager.ObjectManager.get_Me()).get_InCombatFlagOnly()) || (FeralDruid.needToUseItem(FeralDruid.Healthstone, ((WoWUnit) wManager.Wow.ObjectManager.ObjectManager.get_Me()).get_HealthPercent() <= (double) FeralDruid.healthStoneHealth && ((WoWUnit) wManager.Wow.ObjectManager.ObjectManager.get_Me()).get_InCombatFlagOnly()) || FeralDruid.needRenewal(((WoWUnit) wManager.Wow.ObjectManager.ObjectManager.get_Me()).get_HealthPercent() <= (double) FeralDruid.renewalHealth) || (FeralDruid.needIronfur() || FeralDruid.needWarStomp()) || (FeralDruid.needMightyBash() || FeralDruid.needSkullBash() || (FeralDruid.needBearMangle() || FeralDruid.needBearThrash())) || !FeralDruid.needBearSwipe()))
  317.       ;
  318.   }
  319.  
  320.   public static void Routine()
  321.   {
  322.     if (wManager.Wow.ObjectManager.ObjectManager.get_Me().get_IsDead() || ((WoWUnit) wManager.Wow.ObjectManager.ObjectManager.get_Me()).get_IsMounted() || wManager.Wow.ObjectManager.ObjectManager.get_Me().get_IsCast() || FeralDruid.castOnSelf(FeralDruid.Regrowth, ((WoWUnit) wManager.Wow.ObjectManager.ObjectManager.get_Me()).get_HealthPercent() <= (double) FeralDruid.touchOOC && !((WoWUnit) wManager.Wow.ObjectManager.ObjectManager.get_Me()).get_InCombatFlagOnly()) || (FeralDruid.needToUseItem(FeralDruid.DarkmoonFirewater, !((WoWUnit) wManager.Wow.ObjectManager.ObjectManager.get_Me()).HaveBuff(FeralDruid.DarkmoonFirewaterBuff) && FeralDruid.usedBot == "Gatherer" && mySettings.Default.darkmoonFirewater) || FeralDruid.needMoonfire(FeralDruid.needToPull()) || FeralDruid.needCatForm() || FeralDruid.castOnSelf(FeralDruid.Regrowth, FeralDruid.Regrowth.get_IsSpellOverlayed() && ((WoWUnit) wManager.Wow.ObjectManager.ObjectManager.get_Me()).HaveBuff((string) FeralDruid.Cat_Form.Name))) || (FeralDruid.needToUseItem(FeralDruid.AncientHealingPotion, ((WoWUnit) wManager.Wow.ObjectManager.ObjectManager.get_Me()).get_HealthPercent() <= (double) FeralDruid.healingPotionHealth && mySettings.Default.autoHealingPotion && ((WoWUnit) wManager.Wow.ObjectManager.ObjectManager.get_Me()).get_InCombatFlagOnly()) || FeralDruid.needToUseItem(FeralDruid.Healthstone, ((WoWUnit) wManager.Wow.ObjectManager.ObjectManager.get_Me()).get_HealthPercent() <= (double) FeralDruid.healthStoneHealth && mySettings.Default.autoHealthstone && ((WoWUnit) wManager.Wow.ObjectManager.ObjectManager.get_Me()).get_InCombatFlagOnly()) || (FeralDruid.castOnSelf(FeralDruid.Renewal, ((WoWUnit) wManager.Wow.ObjectManager.ObjectManager.get_Me()).get_HealthPercent() <= (double) FeralDruid.renewalHealth && ((WoWUnit) wManager.Wow.ObjectManager.ObjectManager.get_Me()).get_InCombatFlagOnly()) || FeralDruid.castOnSelf(FeralDruid.Survival_Instincts, ((WoWUnit) wManager.Wow.ObjectManager.ObjectManager.get_Me()).get_InCombatFlagOnly() && ((WoWUnit) wManager.Wow.ObjectManager.ObjectManager.get_Me()).HaveBuff((string) FeralDruid.Cat_Form.Name) && !((WoWUnit) wManager.Wow.ObjectManager.ObjectManager.get_Me()).HaveBuff((string) FeralDruid.Survival_Instincts.Name) && ((WoWUnit) wManager.Wow.ObjectManager.ObjectManager.get_Me()).get_HealthPercent() <= (double) FeralDruid.surivalInstinctsHealth))) || (FeralDruid.castSpell(FeralDruid.War_Stomp, ((WoWUnit) wManager.Wow.ObjectManager.ObjectManager.get_Me()).get_InCombatFlagOnly() && mySettings.Default.autoInterrupt && ((WoWUnit) wManager.Wow.ObjectManager.ObjectManager.get_Me()).HaveBuff((string) FeralDruid.Cat_Form.Name) && !FeralDruid.CanInterrupt) || FeralDruid.castSpell(FeralDruid.Skull_Bash, ((WoWUnit) wManager.Wow.ObjectManager.ObjectManager.get_Me()).get_InCombatFlagOnly() && mySettings.Default.autoInterrupt && ((WoWUnit) wManager.Wow.ObjectManager.ObjectManager.get_Me()).HaveBuff((string) FeralDruid.Cat_Form.Name) && FeralDruid.CanInterrupt) || (FeralDruid.castSpell(FeralDruid.Mighty_Bash, ((WoWUnit) wManager.Wow.ObjectManager.ObjectManager.get_Me()).get_InCombatFlagOnly() && mySettings.Default.autoInterrupt && ((WoWUnit) wManager.Wow.ObjectManager.ObjectManager.get_Me()).HaveBuff((string) FeralDruid.Cat_Form.Name) && FeralDruid.CanInterrupt) || FeralDruid.castSpell(FeralDruid.Tigers_Fury, ((WoWUnit) wManager.Wow.ObjectManager.ObjectManager.get_Me()).get_InCombatFlagOnly() && ((WoWUnit) wManager.Wow.ObjectManager.ObjectManager.get_Me()).HaveBuff((string) FeralDruid.Cat_Form.Name) && ((WoWUnit) wManager.Wow.ObjectManager.ObjectManager.get_Me()).get_EnergyPercentage() <= 20U)) || (FeralDruid.castSpell(FeralDruid.Savage_Roar, FeralDruid.haveSavageRoar && ((WoWUnit) wManager.Wow.ObjectManager.ObjectManager.get_Me()).HaveBuff((string) FeralDruid.Cat_Form.Name) && (((WoWUnit) wManager.Wow.ObjectManager.ObjectManager.get_Me()).get_InCombatFlagOnly() && !((WoWUnit) wManager.Wow.ObjectManager.ObjectManager.get_Me()).HaveBuff((string) FeralDruid.Savage_Roar.Name)) && ((WoWPlayer) wManager.Wow.ObjectManager.ObjectManager.get_Me()).get_ComboPoint() >= 1 && ((WoWUnit) wManager.Wow.ObjectManager.ObjectManager.get_Me()).get_EnergyPercentage() >= 40U) || FeralDruid.castSpell(FeralDruid.Berserk, ((WoWUnit) wManager.Wow.ObjectManager.ObjectManager.get_Me()).get_InCombatFlagOnly() && mySettings.Default.autoBerserk && (((WoWUnit) wManager.Wow.ObjectManager.ObjectManager.get_Me()).HaveBuff((string) FeralDruid.Cat_Form.Name) && FeralDruid.isBoss) && (FeralDruid.haveSavageRoar && ((WoWUnit) wManager.Wow.ObjectManager.ObjectManager.get_Me()).HaveBuff((string) FeralDruid.Savage_Roar.Name)) && (double) ((WoWObject) wManager.Wow.ObjectManager.ObjectManager.get_Target()).get_GetDistance() <= 5.0) || (FeralDruid.castSpell(FeralDruid.Berserking, ((WoWUnit) wManager.Wow.ObjectManager.ObjectManager.get_Me()).get_InCombatFlagOnly() && mySettings.Default.autoBerserking && (((WoWUnit) wManager.Wow.ObjectManager.ObjectManager.get_Me()).HaveBuff((string) FeralDruid.Cat_Form.Name) && FeralDruid.isBoss) && (!((WoWUnit) wManager.Wow.ObjectManager.ObjectManager.get_Me()).HaveBuff((string) FeralDruid.Tigers_Fury.Name) && FeralDruid.haveSavageRoar && ((WoWUnit) wManager.Wow.ObjectManager.ObjectManager.get_Me()).HaveBuff((string) FeralDruid.Savage_Roar.Name)) && (double) ((WoWObject) wManager.Wow.ObjectManager.ObjectManager.get_Target()).get_GetDistance() <= 5.0) || FeralDruid.castSpell(FeralDruid.Rip, ((WoWUnit) wManager.Wow.ObjectManager.ObjectManager.get_Me()).get_InCombatFlagOnly() && ((WoWUnit) wManager.Wow.ObjectManager.ObjectManager.get_Me()).HaveBuff((string) FeralDruid.Cat_Form.Name) && (FeralDruid.haveSavageRoar && ((WoWUnit) wManager.Wow.ObjectManager.ObjectManager.get_Me()).HaveBuff((string) FeralDruid.Savage_Roar.Name)) && (!FeralDruid.debuffExists((string) FeralDruid.Rip.Name) && ((WoWPlayer) wManager.Wow.ObjectManager.ObjectManager.get_Me()).get_ComboPoint() >= 3) && ((WoWUnit) wManager.Wow.ObjectManager.ObjectManager.get_Me()).get_EnergyPercentage() >= 30U)))) || (FeralDruid.castSpell(FeralDruid.Ferocious_Bite, ((WoWUnit) wManager.Wow.ObjectManager.ObjectManager.get_Me()).get_InCombatFlagOnly() && ((WoWUnit) wManager.Wow.ObjectManager.ObjectManager.get_Me()).HaveBuff((string) FeralDruid.Cat_Form.Name) && (FeralDruid.haveSavageRoar && ((WoWUnit) wManager.Wow.ObjectManager.ObjectManager.get_Me()).HaveBuff((string) FeralDruid.Savage_Roar.Name)) && (FeralDruid.debuffExists((string) FeralDruid.Rip.Name) && ((WoWPlayer) wManager.Wow.ObjectManager.ObjectManager.get_Me()).get_ComboPoint() >= 3) && ((WoWUnit) wManager.Wow.ObjectManager.ObjectManager.get_Me()).get_EnergyPercentage() >= 25U) || FeralDruid.castSpell(FeralDruid.Rake, ((WoWUnit) wManager.Wow.ObjectManager.ObjectManager.get_Me()).get_InCombatFlagOnly() && ((WoWUnit) wManager.Wow.ObjectManager.ObjectManager.get_Me()).HaveBuff((string) FeralDruid.Cat_Form.Name) && !FeralDruid.debuffExists((string) FeralDruid.Rake.Name) && ((WoWUnit) wManager.Wow.ObjectManager.ObjectManager.get_Me()).get_EnergyPercentage() >= 35U) || (FeralDruid.castSpell(FeralDruid.Ashamanes_Frenzy, ((WoWUnit) wManager.Wow.ObjectManager.ObjectManager.get_Me()).get_InCombatFlagOnly() && mySettings.Default.autoAshamanesFrenzy && (((WoWUnit) wManager.Wow.ObjectManager.ObjectManager.get_Me()).HaveBuff((string) FeralDruid.Cat_Form.Name) && FeralDruid.haveSavageRoar) && ((WoWUnit) wManager.Wow.ObjectManager.ObjectManager.get_Me()).HaveBuff((string) FeralDruid.Savage_Roar.Name) && FeralDruid.hasBleedEffect) || FeralDruid.castSpell(FeralDruid.Thrash, ((WoWUnit) wManager.Wow.ObjectManager.ObjectManager.get_Me()).get_InCombatFlagOnly() && ((WoWUnit) wManager.Wow.ObjectManager.ObjectManager.get_Me()).HaveBuff((string) FeralDruid.Cat_Form.Name) && (FeralDruid.needAoe && !FeralDruid.debuffExists((string) FeralDruid.Thrash.Name)) && ((WoWUnit) wManager.Wow.ObjectManager.ObjectManager.get_Me()).get_EnergyPercentage() >= 50U)) || (FeralDruid.castSpell(FeralDruid.Swipe, ((WoWUnit) wManager.Wow.ObjectManager.ObjectManager.get_Me()).get_InCombatFlagOnly() && ((WoWUnit) wManager.Wow.ObjectManager.ObjectManager.get_Me()).HaveBuff((string) FeralDruid.Cat_Form.Name) && (FeralDruid.needAoe && FeralDruid.debuffExists((string) FeralDruid.Thrash.Name)) && ((WoWUnit) wManager.Wow.ObjectManager.ObjectManager.get_Me()).get_EnergyPercentage() >= 45U) || !FeralDruid.castSpell(FeralDruid.Shred, ((WoWUnit) wManager.Wow.ObjectManager.ObjectManager.get_Me()).get_InCombatFlagOnly() && ((WoWUnit) wManager.Wow.ObjectManager.ObjectManager.get_Me()).HaveBuff((string) FeralDruid.Cat_Form.Name) && !FeralDruid.needAoe && ((WoWUnit) wManager.Wow.ObjectManager.ObjectManager.get_Me()).get_EnergyPercentage() >= 40U))))
  323.       ;
  324.   }
  325.  
  326.   public static bool castSpell(Spell spell, bool reqs)
  327.   {
  328.     try
  329.     {
  330.       if (!reqs || !FeralDruid.haveTarget || (spell.KnownSpell == 0 || FeralDruid.OnCooldown(spell)))
  331.         return false;
  332.       spell.Launch();
  333.       return true;
  334.     }
  335.     catch (Exception ex)
  336.     {
  337.       Logging.WriteDebug("Use Item => " + ex.Message);
  338.       return false;
  339.     }
  340.   }
  341.  
  342.   public static bool castOnSelf(Spell spell, bool reqs)
  343.   {
  344.     try
  345.     {
  346.       if (!reqs || !FeralDruid.haveTarget || (spell.KnownSpell == 0 || FeralDruid.OnCooldown(spell)))
  347.         return false;
  348.       SpellManager.CastSpellByNameOn((string) spell.Name, ((WoWObject) wManager.Wow.ObjectManager.ObjectManager.get_Me()).get_Name());
  349.       return true;
  350.     }
  351.     catch (Exception ex)
  352.     {
  353.       Logging.WriteDebug("Use Item => " + ex.Message);
  354.       return false;
  355.     }
  356.   }
  357.  
  358.   public static bool needToUseItem(uint itemEntry, bool requirements)
  359.   {
  360.     if (!requirements || !ItemsManager.HasItemById(itemEntry))
  361.       return false;
  362.     if (Bag.GetContainerItemCooldown((int) itemEntry) > 0)
  363.       return false;
  364.     try
  365.     {
  366.       Lua.LuaDoString("local name = GetItemInfo(" + (object) itemEntry + "); RunMacroText('/use ' .. name);", false);
  367.     }
  368.     catch (Exception ex)
  369.     {
  370.       Logging.WriteDebug("Use Item => " + ex.Message);
  371.       return false;
  372.     }
  373.     return true;
  374.   }
  375.  
  376.   public static bool needToPull()
  377.   {
  378.     return FeralDruid.autoBot && !wManager.Wow.ObjectManager.ObjectManager.get_Me().get_InCombat();
  379.   }
  380.  
  381.   public static bool needBearMangle()
  382.   {
  383.     if (FeralDruid.Mangle.KnownSpell == 0 || !FeralDruid.haveTarget || FeralDruid.OnCooldown(FeralDruid.Mangle))
  384.       return false;
  385.     if (!FeralDruid.Mangle.get_IsDistanceGood())
  386.       return false;
  387.     try
  388.     {
  389.       Interact.InteractGameObject(((WoWObject) wManager.Wow.ObjectManager.ObjectManager.get_Target()).get_GetBaseAddress(), true, false);
  390.       FeralDruid.Mangle.Launch();
  391.       return true;
  392.     }
  393.     catch (Exception ex)
  394.     {
  395.       Logging.WriteDebug(ex.Message);
  396.       return false;
  397.     }
  398.   }
  399.  
  400.   public static bool needBearThrash()
  401.   {
  402.     if (FeralDruid.Bear_Thrash.KnownSpell == 0 || !FeralDruid.haveTarget || FeralDruid.OnCooldown(FeralDruid.Bear_Thrash))
  403.       return false;
  404.     if (!FeralDruid.Bear_Thrash.get_IsDistanceGood())
  405.       return false;
  406.     try
  407.     {
  408.       Interact.InteractGameObject(((WoWObject) wManager.Wow.ObjectManager.ObjectManager.get_Target()).get_GetBaseAddress(), true, false);
  409.       FeralDruid.Bear_Thrash.Launch();
  410.       return true;
  411.     }
  412.     catch (Exception ex)
  413.     {
  414.       Logging.WriteDebug(ex.Message);
  415.       return false;
  416.     }
  417.   }
  418.  
  419.   public static bool needBearSwipe()
  420.   {
  421.     if (FeralDruid.Bear_Swipe.KnownSpell == 0 || !FeralDruid.haveTarget || FeralDruid.OnCooldown(FeralDruid.Bear_Swipe))
  422.       return false;
  423.     if (!FeralDruid.Bear_Swipe.get_IsDistanceGood())
  424.       return false;
  425.     try
  426.     {
  427.       Interact.InteractGameObject(((WoWObject) wManager.Wow.ObjectManager.ObjectManager.get_Target()).get_GetBaseAddress(), true, false);
  428.       FeralDruid.Bear_Swipe.Launch();
  429.       return true;
  430.     }
  431.     catch (Exception ex)
  432.     {
  433.       Logging.WriteDebug(ex.Message);
  434.       return false;
  435.     }
  436.   }
  437.  
  438.   public static bool needIronfur()
  439.   {
  440.     if (FeralDruid.Ironfur.KnownSpell == 0 || !FeralDruid.haveTarget || (FeralDruid.OnCooldown(FeralDruid.Ironfur) || ((WoWUnit) wManager.Wow.ObjectManager.ObjectManager.get_Me()).GetPowerByPowerType((PowerType) 1) < 45U) || ((WoWUnit) wManager.Wow.ObjectManager.ObjectManager.get_Me()).HaveBuff((string) FeralDruid.Ironfur.Name))
  441.       return false;
  442.     if (((WoWUnit) wManager.Wow.ObjectManager.ObjectManager.get_Me()).get_HealthPercent() >= 90.0)
  443.       return false;
  444.     try
  445.     {
  446.       FeralDruid.Ironfur.Launch();
  447.       return true;
  448.     }
  449.     catch (Exception ex)
  450.     {
  451.       Logging.WriteDebug(ex.Message);
  452.       return false;
  453.     }
  454.   }
  455.  
  456.   public static bool needMoonfire(bool reqs)
  457.   {
  458.     if (!reqs || !FeralDruid.haveTarget || (FeralDruid.Moonfire.KnownSpell == 0 || FeralDruid.OnCooldown(FeralDruid.Moonfire)) || FeralDruid.debuffExists((string) FeralDruid.Moonfire.Name))
  459.       return false;
  460.     if ((double) ((WoWObject) wManager.Wow.ObjectManager.ObjectManager.get_Target()).get_GetDistance() > 40.0)
  461.       return false;
  462.     try
  463.     {
  464.       FeralDruid.Moonfire.Launch();
  465.       return true;
  466.     }
  467.     catch (Exception ex)
  468.     {
  469.       Logging.WriteDebug(ex.Message);
  470.       return false;
  471.     }
  472.   }
  473.  
  474.   public static bool needSolarWrath(bool reqs)
  475.   {
  476.     if (!reqs || !FeralDruid.haveTarget || (FeralDruid.Solar_Wrath.KnownSpell == 0 || FeralDruid.OnCooldown(FeralDruid.Solar_Wrath)))
  477.       return false;
  478.     if ((double) ((WoWObject) wManager.Wow.ObjectManager.ObjectManager.get_Target()).get_GetDistance() > 40.0)
  479.       return false;
  480.     try
  481.     {
  482.       Interact.InteractGameObject(((WoWObject) wManager.Wow.ObjectManager.ObjectManager.get_Target()).get_GetBaseAddress(), true, false);
  483.       FeralDruid.Solar_Wrath.Launch();
  484.       return true;
  485.     }
  486.     catch (Exception ex)
  487.     {
  488.       Logging.WriteDebug(ex.Message);
  489.       return false;
  490.     }
  491.   }
  492.  
  493.   public static bool needHealingTouchOOC(bool reqs)
  494.   {
  495.     if (!reqs || FeralDruid.Healing_Touch.KnownSpell == 0 || !FeralDruid.autoBot)
  496.       return false;
  497.     if (wManager.Wow.ObjectManager.ObjectManager.get_Me().get_InCombat())
  498.       return false;
  499.     try
  500.     {
  501.       SpellManager.CastSpellByNameOn((string) FeralDruid.Healing_Touch.Name, ((WoWObject) wManager.Wow.ObjectManager.ObjectManager.get_Me()).get_Name());
  502.       return true;
  503.     }
  504.     catch (Exception ex)
  505.     {
  506.       Logging.WriteDebug(ex.Message);
  507.       return false;
  508.     }
  509.   }
  510.  
  511.   public static bool needFrenziedRegeneration()
  512.   {
  513.     if (!FeralDruid.haveTarget || FeralDruid.Frenzied_Regeneration.KnownSpell == 0 || (FeralDruid.OnCooldown(FeralDruid.Frenzied_Regeneration) || ((WoWUnit) wManager.Wow.ObjectManager.ObjectManager.get_Me()).HaveBuff((string) FeralDruid.Frenzied_Regeneration.Name)) || ((WoWUnit) wManager.Wow.ObjectManager.ObjectManager.get_Me()).get_HealthPercent() > (double) FeralDruid.frenziedRegenarationHealt)
  514.       return false;
  515.     if (!((WoWUnit) wManager.Wow.ObjectManager.ObjectManager.get_Me()).get_InCombatFlagOnly())
  516.       return false;
  517.     try
  518.     {
  519.       SpellManager.CastSpellByNameOn((string) FeralDruid.Bear_Form.Name, ((WoWObject) wManager.Wow.ObjectManager.ObjectManager.get_Me()).get_Name());
  520.       SpellManager.CastSpellByNameOn((string) FeralDruid.Frenzied_Regeneration.Name, ((WoWObject) wManager.Wow.ObjectManager.ObjectManager.get_Me()).get_Name());
  521.       Thread.Sleep(1000);
  522.       return true;
  523.     }
  524.     catch (Exception ex)
  525.     {
  526.       Logging.WriteDebug(ex.Message);
  527.       return false;
  528.     }
  529.   }
  530.  
  531.   public static bool needRenewal(bool reqs)
  532.   {
  533.     if (!reqs || !FeralDruid.haveTarget || (!FeralDruid.haveCatform || FeralDruid.Renewal.KnownSpell == 0) || (!((WoWUnit) wManager.Wow.ObjectManager.ObjectManager.get_Me()).get_InCombatFlagOnly() || FeralDruid.OnCooldown(FeralDruid.Renewal)))
  534.       return false;
  535.     if (((WoWUnit) wManager.Wow.ObjectManager.ObjectManager.get_Me()).get_HealthPercent() > (double) FeralDruid.renewalHealth)
  536.       return false;
  537.     try
  538.     {
  539.       SpellManager.CastSpellByNameOn((string) FeralDruid.Renewal.Name, ((WoWObject) wManager.Wow.ObjectManager.ObjectManager.get_Me()).get_Name());
  540.       return true;
  541.     }
  542.     catch (Exception ex)
  543.     {
  544.       Logging.WriteDebug(ex.Message);
  545.       return false;
  546.     }
  547.   }
  548.  
  549.   public static bool needBerserking()
  550.   {
  551.     if (!FeralDruid.autoberserking || !((WoWUnit) wManager.Wow.ObjectManager.ObjectManager.get_Me()).get_InCombatFlagOnly() || (!FeralDruid.haveTarget || !FeralDruid.haveCatform) || (FeralDruid.Berserking.KnownSpell == 0 || FeralDruid.OnCooldown(FeralDruid.Berserking) || !FeralDruid.isBoss))
  552.       return false;
  553.     if (!FeralDruid.hasBleedEffect)
  554.       return false;
  555.     try
  556.     {
  557.       FeralDruid.Berserking.Launch();
  558.       return true;
  559.     }
  560.     catch (Exception ex)
  561.     {
  562.       Logging.WriteDebug(ex.Message);
  563.       return false;
  564.     }
  565.   }
  566.  
  567.   public static bool needBerserk()
  568.   {
  569.     if (!FeralDruid.autoBerserk || !((WoWUnit) wManager.Wow.ObjectManager.ObjectManager.get_Me()).get_InCombatFlagOnly() || (!FeralDruid.haveTarget || !FeralDruid.haveCatform) || (FeralDruid.Berserk.KnownSpell == 0 || FeralDruid.OnCooldown(FeralDruid.Berserk) || !FeralDruid.isBoss))
  570.       return false;
  571.     if (!FeralDruid.hasBleedEffect)
  572.       return false;
  573.     try
  574.     {
  575.       FeralDruid.Berserk.Launch();
  576.       return true;
  577.     }
  578.     catch (Exception ex)
  579.     {
  580.       Logging.WriteDebug(ex.Message);
  581.       return false;
  582.     }
  583.   }
  584.  
  585.   public static bool needCatForm()
  586.   {
  587.     if (FeralDruid.Cat_Form.KnownSpell == 0 || (!((WoWUnit) wManager.Wow.ObjectManager.ObjectManager.get_Me()).get_InCombatFlagOnly() && !FeralDruid.autoBot || ((WoWUnit) wManager.Wow.ObjectManager.ObjectManager.get_Me()).get_IsFlying()))
  588.       return false;
  589.     if (((WoWUnit) wManager.Wow.ObjectManager.ObjectManager.get_Me()).HaveBuff((string) FeralDruid.Cat_Form.Name))
  590.       return false;
  591.     try
  592.     {
  593.       if (!((WoWUnit) wManager.Wow.ObjectManager.ObjectManager.get_Me()).get_GetMove() && !((WoWUnit) wManager.Wow.ObjectManager.ObjectManager.get_Me()).get_InCombatFlagOnly())
  594.         return false;
  595.       SpellManager.CastSpellByNameOn((string) FeralDruid.Cat_Form.Name, ((WoWObject) wManager.Wow.ObjectManager.ObjectManager.get_Me()).get_Name());
  596.       return true;
  597.     }
  598.     catch (Exception ex)
  599.     {
  600.       Logging.WriteDebug(ex.Message);
  601.       return false;
  602.     }
  603.   }
  604.  
  605.   public static bool needWarStomp()
  606.   {
  607.     if (!FeralDruid.autoInterrupt || !((WoWUnit) wManager.Wow.ObjectManager.ObjectManager.get_Me()).get_InCombatFlagOnly() || (!FeralDruid.haveTarget || !FeralDruid.haveCatform) || (FeralDruid.War_Stomp.KnownSpell == 0 || !FeralDruid.War_Stomp.get_IsDistanceGood() || FeralDruid.OnCooldown(FeralDruid.War_Stomp)))
  608.       return false;
  609.     if (FeralDruid.CanInterrupt)
  610.       return false;
  611.     try
  612.     {
  613.       Interact.InteractGameObject(((WoWObject) wManager.Wow.ObjectManager.ObjectManager.get_Target()).get_GetBaseAddress(), false, false);
  614.       FeralDruid.War_Stomp.Launch();
  615.       return true;
  616.     }
  617.     catch (Exception ex)
  618.     {
  619.       Logging.WriteDebug(ex.Message);
  620.       return false;
  621.     }
  622.   }
  623.  
  624.   public static bool needMightyBash()
  625.   {
  626.     if (!FeralDruid.autoInterrupt || !((WoWUnit) wManager.Wow.ObjectManager.ObjectManager.get_Me()).get_InCombatFlagOnly() || (!FeralDruid.haveTarget || !FeralDruid.haveCatform) || (FeralDruid.Mighty_Bash.KnownSpell == 0 || !FeralDruid.Mighty_Bash.get_IsDistanceGood() || FeralDruid.OnCooldown(FeralDruid.Mighty_Bash)))
  627.       return false;
  628.     if (!FeralDruid.CanInterrupt)
  629.       return false;
  630.     try
  631.     {
  632.       Interact.InteractGameObject(((WoWObject) wManager.Wow.ObjectManager.ObjectManager.get_Target()).get_GetBaseAddress(), false, false);
  633.       FeralDruid.Mighty_Bash.Launch();
  634.       return true;
  635.     }
  636.     catch (Exception ex)
  637.     {
  638.       Logging.WriteDebug(ex.Message);
  639.       return false;
  640.     }
  641.   }
  642.  
  643.   public static bool needSkullBash()
  644.   {
  645.     if (!FeralDruid.autoInterrupt || !((WoWUnit) wManager.Wow.ObjectManager.ObjectManager.get_Me()).get_InCombatFlagOnly() || (!FeralDruid.haveTarget || !FeralDruid.haveCatform) || (FeralDruid.Skull_Bash.KnownSpell == 0 || !FeralDruid.Skull_Bash.get_IsDistanceGood() || FeralDruid.OnCooldown(FeralDruid.Skull_Bash)))
  646.       return false;
  647.     if (!FeralDruid.CanInterrupt)
  648.       return false;
  649.     try
  650.     {
  651.       Interact.InteractGameObject(((WoWObject) wManager.Wow.ObjectManager.ObjectManager.get_Target()).get_GetBaseAddress(), false, false);
  652.       FeralDruid.Skull_Bash.Launch();
  653.       return true;
  654.     }
  655.     catch (Exception ex)
  656.     {
  657.       Logging.WriteDebug(ex.Message);
  658.       return false;
  659.     }
  660.   }
  661.  
  662.   public static bool needHealingTouch()
  663.   {
  664.     if (!FeralDruid.haveCatform || FeralDruid.Healing_Touch.KnownSpell == 0 || FeralDruid.OnCooldown(FeralDruid.Healing_Touch))
  665.       return false;
  666.     if (!FeralDruid.Healing_Touch.get_IsSpellOverlayed())
  667.       return false;
  668.     try
  669.     {
  670.       SpellManager.CastSpellByNameOn((string) FeralDruid.Healing_Touch.Name, ((WoWObject) wManager.Wow.ObjectManager.ObjectManager.get_Me()).get_Name());
  671.       return true;
  672.     }
  673.     catch (Exception ex)
  674.     {
  675.       Logging.WriteDebug(ex.Message);
  676.       return false;
  677.     }
  678.   }
  679.  
  680.   public static bool needSurvivalInstincts()
  681.   {
  682.     if (!FeralDruid.haveTarget || !FeralDruid.haveCatform || (!((WoWUnit) wManager.Wow.ObjectManager.ObjectManager.get_Me()).get_InCombatFlagOnly() || FeralDruid.Survival_Instincts.KnownSpell == 0) || (FeralDruid.OnCooldown(FeralDruid.Survival_Instincts) || ((WoWUnit) wManager.Wow.ObjectManager.ObjectManager.get_Me()).HaveBuff((string) FeralDruid.Survival_Instincts.Name)))
  683.       return false;
  684.     if (((WoWUnit) wManager.Wow.ObjectManager.ObjectManager.get_Me()).get_HealthPercent() > (double) FeralDruid.surivalInstinctsHealth)
  685.       return false;
  686.     try
  687.     {
  688.       FeralDruid.Survival_Instincts.Launch();
  689.       return true;
  690.     }
  691.     catch (Exception ex)
  692.     {
  693.       Logging.WriteDebug(ex.Message);
  694.       return false;
  695.     }
  696.   }
  697.  
  698.   public static bool needTigersFury()
  699.   {
  700.     if (!((WoWUnit) wManager.Wow.ObjectManager.ObjectManager.get_Me()).get_InCombatFlagOnly() || !FeralDruid.haveTarget || (!FeralDruid.haveCatform || FeralDruid.Tigers_Fury.KnownSpell == 0) || FeralDruid.OnCooldown(FeralDruid.Tigers_Fury))
  701.       return false;
  702.     if (((WoWUnit) wManager.Wow.ObjectManager.ObjectManager.get_Me()).get_EnergyPercentage() > 20U)
  703.       return false;
  704.     try
  705.     {
  706.       FeralDruid.Tigers_Fury.Launch();
  707.       return true;
  708.     }
  709.     catch (Exception ex)
  710.     {
  711.       Logging.WriteDebug(ex.Message);
  712.       return false;
  713.     }
  714.   }
  715.  
  716.   public static bool needAsmanesFrenzy()
  717.   {
  718.     if (!FeralDruid.autoAshamane || !((WoWUnit) wManager.Wow.ObjectManager.ObjectManager.get_Me()).get_InCombatFlagOnly() || (!FeralDruid.haveCatform || !FeralDruid.haveTarget) || FeralDruid.Ashamanes_Frenzy.KnownSpell == 0 || (FeralDruid.Savage_Roar.KnownSpell != null && !((WoWUnit) wManager.Wow.ObjectManager.ObjectManager.get_Me()).HaveBuff((string) FeralDruid.Savage_Roar.Name) || FeralDruid.OnCooldown(FeralDruid.Ashamanes_Frenzy)))
  719.       return false;
  720.     if (!FeralDruid.hasBleedEffect)
  721.       return false;
  722.     try
  723.     {
  724.       Interact.InteractGameObject(((WoWObject) wManager.Wow.ObjectManager.ObjectManager.get_Target()).get_GetBaseAddress(), false, false);
  725.       FeralDruid.Ashamanes_Frenzy.Launch();
  726.       return true;
  727.     }
  728.     catch (Exception ex)
  729.     {
  730.       Logging.WriteDebug(ex.Message);
  731.       return false;
  732.     }
  733.   }
  734.  
  735.   public static bool needFerociousBite()
  736.   {
  737.     if (!FeralDruid.haveCatform || !((WoWUnit) wManager.Wow.ObjectManager.ObjectManager.get_Me()).get_InCombatFlagOnly() || (!FeralDruid.haveTarget || FeralDruid.Ferocious_Bite.KnownSpell == 0) || FeralDruid.Savage_Roar.KnownSpell != null && !((WoWUnit) wManager.Wow.ObjectManager.ObjectManager.get_Me()).HaveBuff((string) FeralDruid.Savage_Roar.Name) || (FeralDruid.isBoss && !FeralDruid.debuffExists((string) FeralDruid.Rip.Name) || FeralDruid.OnCooldown(FeralDruid.Ferocious_Bite) || !FeralDruid.haveComoPoints))
  738.       return false;
  739.     if (!FeralDruid.myEnergy(25))
  740.       return false;
  741.     try
  742.     {
  743.       Interact.InteractGameObject(((WoWObject) wManager.Wow.ObjectManager.ObjectManager.get_Target()).get_GetBaseAddress(), false, false);
  744.       FeralDruid.Ferocious_Bite.Launch();
  745.       return true;
  746.     }
  747.     catch (Exception ex)
  748.     {
  749.       Logging.WriteDebug(ex.Message);
  750.       return false;
  751.     }
  752.   }
  753.  
  754.   public static bool needRip()
  755.   {
  756.     if (!((WoWUnit) wManager.Wow.ObjectManager.ObjectManager.get_Me()).get_InCombatFlagOnly() || !FeralDruid.haveCatform || (!FeralDruid.haveTarget || FeralDruid.Rip.KnownSpell == 0) || (FeralDruid.Savage_Roar.KnownSpell != null && !((WoWUnit) wManager.Wow.ObjectManager.ObjectManager.get_Me()).HaveBuff((string) FeralDruid.Savage_Roar.Name) || FeralDruid.debuffExists((string) FeralDruid.Rip.Name) || (FeralDruid.OnCooldown(FeralDruid.Rip) || !FeralDruid.haveComoPoints)))
  757.       return false;
  758.     if (!FeralDruid.myEnergy(30))
  759.       return false;
  760.     try
  761.     {
  762.       Interact.InteractGameObject(((WoWObject) wManager.Wow.ObjectManager.ObjectManager.get_Target()).get_GetBaseAddress(), false, false);
  763.       FeralDruid.Rip.Launch();
  764.       return true;
  765.     }
  766.     catch (Exception ex)
  767.     {
  768.       Logging.WriteDebug(ex.Message);
  769.       return false;
  770.     }
  771.   }
  772.  
  773.   public static bool needSavageRoar()
  774.   {
  775.     if (!((WoWUnit) wManager.Wow.ObjectManager.ObjectManager.get_Me()).get_InCombatFlagOnly() || !FeralDruid.haveCatform || (!FeralDruid.haveTarget || FeralDruid.Savage_Roar.KnownSpell == 0) || (((WoWUnit) wManager.Wow.ObjectManager.ObjectManager.get_Me()).HaveBuff((string) FeralDruid.Savage_Roar.Name) || FeralDruid.OnCooldown(FeralDruid.Savage_Roar) || !FeralDruid.haveComoPoints))
  776.       return false;
  777.     if (!FeralDruid.myEnergy(40))
  778.       return false;
  779.     try
  780.     {
  781.       FeralDruid.Savage_Roar.Launch();
  782.       return true;
  783.     }
  784.     catch (Exception ex)
  785.     {
  786.       Logging.WriteDebug(ex.Message);
  787.       return false;
  788.     }
  789.   }
  790.  
  791.   public static bool needRake()
  792.   {
  793.     if (!((WoWUnit) wManager.Wow.ObjectManager.ObjectManager.get_Me()).get_InCombatFlagOnly() || !FeralDruid.haveCatform || (!FeralDruid.haveTarget || FeralDruid.Rake.KnownSpell == 0) || (!FeralDruid.Rake.get_IsDistanceGood() || FeralDruid.debuffExists((string) FeralDruid.Rake.Name) || (FeralDruid.OnCooldown(FeralDruid.Rake) || FeralDruid.needAoe)) || !FeralDruid.myEnergy(35))
  794.       return false;
  795.     if (((WoWPlayer) wManager.Wow.ObjectManager.ObjectManager.get_Me()).get_ComboPoint() >= FeralDruid.myCP)
  796.       return false;
  797.     try
  798.     {
  799.       Interact.InteractGameObject(((WoWObject) wManager.Wow.ObjectManager.ObjectManager.get_Target()).get_GetBaseAddress(), false, false);
  800.       FeralDruid.Rake.Launch();
  801.       return true;
  802.     }
  803.     catch (Exception ex)
  804.     {
  805.       Logging.WriteDebug(ex.Message);
  806.       return false;
  807.     }
  808.   }
  809.  
  810.   public static bool needThrash()
  811.   {
  812.     if (!((WoWUnit) wManager.Wow.ObjectManager.ObjectManager.get_Me()).get_InCombatFlagOnly() || !FeralDruid.haveCatform || (!FeralDruid.haveTarget || FeralDruid.Thrash.KnownSpell == 0) || (!FeralDruid.Thrash.get_IsDistanceGood() || FeralDruid.debuffExists((string) FeralDruid.Thrash.Name) || (FeralDruid.OnCooldown(FeralDruid.Thrash) || !FeralDruid.needAoe)))
  813.       return false;
  814.     if (!FeralDruid.myEnergy(45))
  815.       return false;
  816.     try
  817.     {
  818.       Interact.InteractGameObject(((WoWObject) wManager.Wow.ObjectManager.ObjectManager.get_Target()).get_GetBaseAddress(), false, false);
  819.       FeralDruid.Thrash.Launch();
  820.       return true;
  821.     }
  822.     catch (Exception ex)
  823.     {
  824.       Logging.WriteDebug(ex.Message);
  825.       return false;
  826.     }
  827.   }
  828.  
  829.   public static bool needSwipe()
  830.   {
  831.     if (!((WoWUnit) wManager.Wow.ObjectManager.ObjectManager.get_Me()).get_InCombatFlagOnly() || !FeralDruid.haveCatform || (!FeralDruid.haveTarget || FeralDruid.Swipe.KnownSpell == 0) || (!FeralDruid.Swipe.get_IsDistanceGood() || FeralDruid.OnCooldown(FeralDruid.Swipe) || !FeralDruid.needAoe))
  832.       return false;
  833.     if (!FeralDruid.myEnergy(45))
  834.       return false;
  835.     try
  836.     {
  837.       Interact.InteractGameObject(((WoWObject) wManager.Wow.ObjectManager.ObjectManager.get_Target()).get_GetBaseAddress(), false, false);
  838.       FeralDruid.Swipe.Launch();
  839.       return true;
  840.     }
  841.     catch (Exception ex)
  842.     {
  843.       Logging.WriteDebug(ex.Message);
  844.       return false;
  845.     }
  846.   }
  847.  
  848.   public static bool needShred()
  849.   {
  850.     if (!((WoWUnit) wManager.Wow.ObjectManager.ObjectManager.get_Me()).get_InCombatFlagOnly() || !FeralDruid.haveCatform || (!FeralDruid.haveTarget || FeralDruid.Shred.KnownSpell == 0) || (!FeralDruid.Shred.get_IsDistanceGood() || FeralDruid.OnCooldown(FeralDruid.Shred) || (FeralDruid.needAoe || !FeralDruid.myEnergy(40))))
  851.       return false;
  852.     if (((WoWPlayer) wManager.Wow.ObjectManager.ObjectManager.get_Me()).get_ComboPoint() >= FeralDruid.myCP)
  853.       return false;
  854.     try
  855.     {
  856.       Interact.InteractGameObject(((WoWObject) wManager.Wow.ObjectManager.ObjectManager.get_Target()).get_GetBaseAddress(), false, false);
  857.       FeralDruid.Shred.Launch();
  858.       return true;
  859.     }
  860.     catch (Exception ex)
  861.     {
  862.       Logging.WriteDebug(ex.Message);
  863.       return false;
  864.     }
  865.   }
  866.  
  867.   public static bool OnCooldown(Spell spell)
  868.   {
  869.     return SpellManager.GetSpellCooldownTimeLeft((string) spell.Name) > 0;
  870.   }
  871.  
  872.   public static bool myEnergy(int energyPercent)
  873.   {
  874.     if (((WoWUnit) wManager.Wow.ObjectManager.ObjectManager.get_Me()).HaveBuff(FeralDruid.Clearcasting))
  875.       return true;
  876.     return FeralDruid.haveTarget && (long) ((WoWUnit) wManager.Wow.ObjectManager.ObjectManager.get_Me()).GetPowerByPowerType((PowerType) 3) >= (long) energyPercent;
  877.   }
  878.  
  879.   public static bool CanUseSpell(Spell spell)
  880.   {
  881.     try
  882.     {
  883.       return spell.KnownSpell != 0 && SpellManager.GetSpellCooldownTimeLeft((string) spell.Name) <= 0;
  884.     }
  885.     catch (Exception ex)
  886.     {
  887.       Logging.WriteDebug(ex.Message);
  888.       return false;
  889.     }
  890.   }
  891.  
  892.   public static bool debuffExists(string debuff)
  893.   {
  894.     try
  895.     {
  896.       return FeralDruid.haveTarget && Int128.op_Equality(((WoWObject) wManager.Wow.ObjectManager.ObjectManager.get_Me()).get_Guid(), wManager.Wow.ObjectManager.ObjectManager.get_Target().BuffCastedBy(debuff));
  897.     }
  898.     catch (Exception ex)
  899.     {
  900.       Logging.WriteDebug(ex.Message);
  901.       return false;
  902.     }
  903.   }
  904.  
  905.   public static bool myDebuffExists(string debuff)
  906.   {
  907.     using (List<Aura>.Enumerator enumerator = wManager.Wow.ObjectManager.ObjectManager.get_Target().GetAllBuff().GetEnumerator())
  908.     {
  909.       while (enumerator.MoveNext())
  910.       {
  911.         string str = ((object) enumerator.Current).ToString();
  912.         if (str.Contains(debuff) && (str.Contains(((object) ((WoWObject) wManager.Wow.ObjectManager.ObjectManager.get_Me()).get_Guid()).ToString()) || str.Contains(((object) ((WoWObject) wManager.Wow.ObjectManager.ObjectManager.get_Me()).get_Guid128()).ToString())))
  913.           return true;
  914.       }
  915.     }
  916.     return false;
  917.   }
  918.  
  919.   public static bool myBuffExists(string buff, WoWUnit unit)
  920.   {
  921.     return FeralDruid.haveTarget && unit.BuffCastedByAll(buff).Contains(((WoWObject) wManager.Wow.ObjectManager.ObjectManager.get_Me()).get_Guid());
  922.   }
  923. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement