Jump to content

Shaman Offhand weapon buff.


Lixion

Recommended Posts

  • 11 months later...

I use these to detect shaman buffs and they work well

    internal static class EnhancementHelper
    {
        public static bool HasTwoHandEquipped =>
            Lua.LuaDoString<int>("result = IsEquippedItemType('Two-Hand')", "result") == 1;
        public static bool HasShieldEquipped =>
            Lua.LuaDoString<int>("result = IsEquippedItemType('Shields')", "result") == 1;
        public static bool HasMainHandEnhancement =>
            Lua.LuaDoString<int>("result = GetWeaponEnchantInfo()", "result") == 1;
        public static bool HasOffHandEnhancement =>
            Lua.LuaDoString<int>("_, _, _, result = GetWeaponEnchantInfo()", "result") == 1;
    }

my implementation looks like this

    internal class Imbue : TTask
    {
        readonly ISpellService spellService;

        public Imbue(
            ISpellService spellService)
        {
            this.spellService = spellService;
        }

        public override int Priority => 999;

        public override bool Activate()
        {
            return (spellService.RockbiterWeapon.KnownSpell
                || spellService.WindfuryWeapon.KnownSpell
                || spellService.FlametongueWeapon.KnownSpell)
                && (spellService.RockbiterWeapon.IsSpellUsable
                || spellService.WindfuryWeapon.IsSpellUsable
                || spellService.FlametongueWeapon.IsSpellUsable)
                &&  (!EnhancementHelper.HasMainHandEnhancement
                    || (!EnhancementHelper.HasShieldEquipped
                    && !EnhancementHelper.HasTwoHandEquipped
                    && !EnhancementHelper.HasOffHandEnhancement));
        }

        public override void Execute()
        {
            if (spellService.WindfuryWeapon.KnownSpell && !EnhancementHelper.HasMainHandEnhancement)
                spellService.WindfuryWeapon.Launch();
            else if (spellService.FlametongueWeapon.KnownSpell && EnhancementHelper.HasMainHandEnhancement && !EnhancementHelper.HasOffHandEnhancement)
                spellService.FlametongueWeapon.Launch();
            else
                spellService.RockbiterWeapon.Launch();
        }
    }

 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...