public static Composite UseEquippedTrinket(TrinketUsage usage) { return new Throttle( TimeSpan.FromMilliseconds(250), new PrioritySelector( new Decorator( ret => usage == SingularSettings.Instance.Trinket1Usage, UseEquippedItem( (uint) WoWInventorySlot.Trinket1 ) ), new Decorator( ret => usage == SingularSettings.Instance.Trinket2Usage, UseEquippedItem( (uint) WoWInventorySlot.Trinket2 ) ), new Decorator( ret => usage == SingularSettings.Instance.GloveUsage, UseEquippedItem( (uint) WoWInventorySlot.Hands ) ) ) ); }
public static Composite UseEquippedTrinket(TrinketUsage usage) { return new PrioritySelector( new Decorator( ret => usage == SingularSettings.Instance.Trinket1Usage, new PrioritySelector( ctx => StyxWoW.Me.Inventory.GetItemBySlot((uint) WoWInventorySlot.Trinket1 ), new Decorator( ctx => ctx != null && CanUseEquippedItem((WoWItem)ctx), new Action(ctx => UseItem((WoWItem)ctx)) ) ) ), new Decorator( ret => usage == SingularSettings.Instance.Trinket2Usage, new PrioritySelector( ctx => StyxWoW.Me.Inventory.GetItemBySlot((uint) WoWInventorySlot.Trinket2 ), new Decorator( ctx => ctx != null && CanUseEquippedItem((WoWItem)ctx), new Action(ctx => UseItem((WoWItem)ctx)) ) ) ) ); }
public static bool IsTrinketUsageWanted(TrinketUsage usage) { return usage == SingularSettings.Instance.Trinket1Usage || usage == SingularSettings.Instance.Trinket2Usage; }
public static bool UseTrinket(bool firstSlot) { TrinketUsage usage = firstSlot ? SingularSettings.Instance.Trinket1Usage : SingularSettings.Instance.Trinket2Usage; // If we're not going to use it, don't bother going any further. Save some performance here. if (usage == TrinketUsage.Never) { return(false); } WoWItem item = firstSlot ? StyxWoW.Me.Inventory.Equipped.Trinket1 : StyxWoW.Me.Inventory.Equipped.Trinket2; //int percent = firstSlot ? SingularSettings.Instance.FirstTrinketUseAtPercent : SingularSettings.Instance.SecondTrinketUseAtPercent; if (item == null) { return(false); } if (!CanUseEquippedItem(item)) { return(false); } bool useIt = false; switch (usage) { case TrinketUsage.OnCooldown: // We know its off cooldown... so just use it :P useIt = true; break; case TrinketUsage.OnCooldownInCombat: if (StyxWoW.Me.Combat) { useIt = true; } break; case TrinketUsage.LowPower: // We use the PowerPercent here, since it applies to ALL types of power. (Runic, Mana, Rage, Energy, Focus) if (StyxWoW.Me.PowerPercent < SingularSettings.Instance.PotionMana) { useIt = true; } break; case TrinketUsage.LowHealth: if (StyxWoW.Me.HealthPercent < SingularSettings.Instance.PotionHealth) { useIt = true; } break; } if (useIt) { Logger.Write("Popping trinket " + item.Name); item.Use(); return(true); } return(false); }