#region MainRotation
private Composite MainRotation()
{
return new PrioritySelector(
GetUnit(), //Get all the unit to heal, to dispell, to dot...
TrinketPvPComp(), //Use PvP trinket
Hold(), //stop when im mounted, casting....
new Decorator(ret => CheckTarget(UnitHeal, 40) && UnitHeal.HealthPercent <= UrgentHealPercent, //Heal when target below 40%
new PrioritySelector(
HealRotationComp()
)),
new Decorator(ret => CheckTarget(UnitHeal, 40) && UnitHeal.HealthPercent > UrgentHealPercent, //if target > 40% then
new PrioritySelector(
DispelFriendlyASAPComp(), //dispell sheep, fear...
MassDispelEnemyASAPComp(), //mass dispell divine shield, ice block
DispelEnemyASAPComp(), //dispell avenging wrath, arcane power...
UnitStealthComp(), //detect and dot rogue/druid
ShackleUndeadComp(), //shacle dk and his pet
SWDComp() //shadow word dead unit below 25%
)),
//dispell me if heal target > 70%
new Decorator(ret => CheckTarget(UnitHeal, 40) && UnitHeal.HealthPercent >= HealPriorityPercent && CountDebuffMagic(Me) >= 1 && Dispel_Magic(Me) && Me.GetAuraByName("Unstable Affliction") == null && Me.GetAuraByName("Vampiric Touch") == null && Me.GetAuraByName("Flame Shock") == null,
new PrioritySelector(
new Action(delegate
{
CastSpell("Dispel Magic", Me);
}))),
//heal when target get below 70%
new Decorator(ret => CheckTarget(UnitHeal, 40) && UnitHeal.HealthPercent <= HealPriorityPercent,
new PrioritySelector(
HealRotationComp()
)),
BuffRotationComp(), //buff
ShieldTargetFocus(),//shield
MassDispelFriendlyComp(),//mass dispel
PrayerofHealingComp(),//prayer of healing
DispelFriendlyComp(),//dispel friend
DevouringPlagueComp(),//devouring enemy
ShadowWordPainComp(),//dot enemy
HotHealComp(),//renew all ppl below 95%
DPSComp(),//attack target
CureDiseaseFriendlyComp(),//cure desease friends
HealRotationComp(),//heal again if ppl below 90%
LevitateComp()//levitate ppl swiming
);
}
#endregion