can anyone please help me so i uses tigereye Brew with 10 or more stacks?
Code:
using System;
using System.Collections.Generic;
using System.Linq;
using Styx;
using Styx.CommonBot;
using Styx.CommonBot.Routines;
using Styx.Helpers;
using Styx.TreeSharp;
using Styx.WoWInternals;
using Styx.WoWInternals.WoWObjects;
using Action = Styx.TreeSharp.Action;
namespace Monksas
{
public class Routine : CombatRoutine
{
/// <summary>
/// The name of this CombatRoutine
/// </summary>
/// <value>
/// The name.
/// </value>
public override string Name { get { return "Monksas"; } }
/// <summary>
/// The <see cref="T:Styx.WoWClass"/> to be used with this routine
/// </summary>
/// <value>
/// The class.
/// </value>
public override WoWClass Class { get { return WoWClass.Monk; } }
private Composite _combat;
public override Composite CombatBehavior { get { return _combat; } }
public override void Initialize()
{
_combat = CreateCombat();
}
Composite CreateCombat()
{
return new PrioritySelector(
new PrioritySelector(
Cast("Touch of Death", ret => StyxWoW.Me.HasAura("Death Note") && !StyxWoW.Me.Mounted),
Cast("Tiger Palm", ret => !StyxWoW.Me.HasAura("Tiger Power") && !StyxWoW.Me.Mounted),
Cast("Energizing Brew", ret => !StyxWoW.Me.Mounted && StyxWoW.Me.CurrentEnergy <= 20),
Cast("Rising Sun Kick", ret => !StyxWoW.Me.Mounted),
Cast("Blackout Kick", ret => StyxWoW.Me.HasAura("Combo Breaker: Blackout Kick") && !StyxWoW.Me.Mounted),
Cast("Tiger Palm", ret => StyxWoW.Me.HasAura("Combo Breaker: Tiger Palm") && !StyxWoW.Me.Mounted),
Cast("Rushing Jade Wind", ret => StyxWoW.Me.CurrentChi >= 2 && StyxWoW.Me.CurrentTarget.IsWithinMeleeRange && !StyxWoW.Me.Mounted && GetSpellCooldown("Rising Sun Kick").TotalSeconds >= 1),
Cast("Blackout Kick", ret => !StyxWoW.Me.Mounted && GetSpellCooldown("Rising Sun Kick").TotalSeconds >= 2),
Cast("Chi Wave", ret => StyxWoW.Me.CurrentEnergy <= 80 && !StyxWoW.Me.Mounted),
Cast("Chi Brew", ret => StyxWoW.Me.CurrentTarget.IsWithinMeleeRange && StyxWoW.Me.CurrentChi <= 1 && GetSpellCooldown("Rising Sun Kick").TotalSeconds <= 2 && StyxWoW.Me.CurrentEnergy <= 40 && !StyxWoW.Me.Mounted),
Cast("Spinning Crane Kick", ret => StyxWoW.Me.CurrentTarget.IsWithinMeleeRange && UnfriendlyUnits.Count() >= 3 && !StyxWoW.Me.Mounted),
Cast("Expel Harm", ret => StyxWoW.Me.CurrentTarget.IsWithinMeleeRange && StyxWoW.Me.HealthPercent <= 80),
Cast("Jab", ret => !StyxWoW.Me.Mounted && StyxWoW.Me.CurrentEnergy >= 80),
Cast("Jab", ret => !StyxWoW.Me.Mounted && StyxWoW.Me.CurrentChi <= 2)
)
);
}
void UseTrinkets()
{
var firstTrinket = StyxWoW.Me.Inventory.Equipped.Trinket1;
var secondTrinket = StyxWoW.Me.Inventory.Equipped.Trinket2;
if(firstTrinket != null && CanUseEquippedItem(firstTrinket))
firstTrinket.Use();
if(secondTrinket != null && CanUseEquippedItem(secondTrinket))
secondTrinket.Use();
}
private static bool CanUseEquippedItem(WoWItem item)
{
// Check for engineering tinkers!
string itemSpell = Lua.GetReturnVal<string>("return GetItemSpell(" + item.Entry + ")", 0);
if (string.IsNullOrEmpty(itemSpell))
return false;
return item.Usable && item.Cooldown <= 0;
}
IEnumerable<WoWUnit> UnfriendlyUnits
{
get { return ObjectManager.GetObjectsOfType<WoWUnit>(true, false).Where(u => !u.IsDead && u.CanSelect && u.Attackable && !u.IsFriendly && u.IsWithinMeleeRange); }
}
private delegate T Selection<out T>(object context);
Composite Cast(string spell, Selection<bool> reqs = null)
{
return
new Decorator(
ret => ((reqs != null && reqs(ret)) || (reqs == null)) && SpellManager.CanCast(spell),
new Action(ret => SpellManager.Cast(spell)));
}
public static TimeSpan GetSpellCooldown(string spell)
{
SpellFindResults results;
if (SpellManager.FindSpell(spell, out results))
{
if (results.Override != null)
return results.Override.CooldownTimeLeft;
return results.Original.CooldownTimeLeft;
}
return TimeSpan.MaxValue;
}
}
}
Last edited: