public static Composite CreateUseHealTrinketsBehaviour() { if (SingularSettings.IsTrinketUsageWanted(TrinketUsage.LowHealth)) { return(new Decorator( ret => StyxWoW.Me.HealthPercent < SingularSettings.Instance.PotionHealth, Item.UseEquippedTrinket(TrinketUsage.LowHealth) )); } return(new Action(ret => { return RunStatus.Failure; })); }
// [Behavior(BehaviorType.Combat, priority: 999)] public static Composite CreateUseTrinketsBehaviour() { // Saving Settings via GUI will now force reinitialize so we can build the behaviors // basead upon the settings rather than continually checking the settings in the Btree // // if (SingularSettings.Instance.Trinket1Usage == TrinketUsage.Never && SingularSettings.Instance.Trinket2Usage == TrinketUsage.Never) { return(new Action(ret => { return RunStatus.Failure; })); } PrioritySelector ps = new PrioritySelector(); if (SingularSettings.IsTrinketUsageWanted(TrinketUsage.OnCooldown)) { ps.AddChild(Item.UseEquippedTrinket(TrinketUsage.OnCooldown)); } if (SingularSettings.IsTrinketUsageWanted(TrinketUsage.OnCooldownInCombat)) { ps.AddChild(Item.UseEquippedTrinket(TrinketUsage.OnCooldownInCombat)); } if (SingularSettings.IsTrinketUsageWanted(TrinketUsage.LowHealth)) { ps.AddChild(new Decorator(ret => StyxWoW.Me.HealthPercent < SingularSettings.Instance.PotionHealth, Item.UseEquippedTrinket(TrinketUsage.LowHealth))); } if (SingularSettings.IsTrinketUsageWanted(TrinketUsage.LowPower)) { ps.AddChild(new Decorator(ret => StyxWoW.Me.PowerPercent < SingularSettings.Instance.PotionMana, Item.UseEquippedTrinket(TrinketUsage.LowPower))); } if (SingularSettings.IsTrinketUsageWanted(TrinketUsage.CrowdControlled)) { ps.AddChild(new Decorator(ret => Unit.IsCrowdControlled(StyxWoW.Me), Item.UseEquippedTrinket(TrinketUsage.CrowdControlled))); } if (SingularSettings.IsTrinketUsageWanted(TrinketUsage.CrowdControlledSilenced)) { ps.AddChild(new Decorator(ret => StyxWoW.Me.Silenced && Unit.IsCrowdControlled(StyxWoW.Me), Item.UseEquippedTrinket(TrinketUsage.CrowdControlledSilenced))); } return(ps); }