protected void SetTotems()
 {
     TotemHelper.SetTotemSlot(MultiCastSlot.ElementsEarth, Totem.Stoneskin);
     TotemHelper.SetTotemSlot(MultiCastSlot.ElementsFire, Totem.Searing);
     TotemHelper.SetTotemSlot(MultiCastSlot.ElementsWater, Totem.HealingStream);
     TotemHelper.SetTotemSlot(MultiCastSlot.ElementsAir, Totem.WrathOfAir);
 }
 protected override void OnAfterAction(ActionBase action)
 {
     // Remove Totems
     if (!Helper.InCombat)
     {
         if (TotemHelper.RecallTotems())
         {
             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);
                    }
                }
            }
        }