private static Composite CreateDualWieldCombatBehavior() {
return new PrioritySelector(
new Decorator(ret => WhatRotationStyle(IsAutomaticMode), new PrioritySelector(
Cast(DeathKnightSpells.UnholyBlight, ret => CooldownTimeLeft(DeathKnightSpells.Outbreak).TotalSeconds < 55 && (!HasAura(_toontarget, DeathKnightSpells.BloodPlague, true) || !HasAura(_toontarget, DeathKnightSpells.FrostFever, true))),
Cast(DeathKnightSpells.Pestilence, ret => CanPester()),
Cast(DeathKnightSpells.HowlingBlast),
CastSensetive(DeathKnightSpells.BloodTap, ret => _toon, ret => StackCount(_toon, DeathKnightSpells.BloodCharge) >= 10 && SomeRunesDepleted()),
Cast(DeathKnightSpells.FrostStrike, ret => _toon.CurrentRunicPower >= 76),
CastOnGround(DeathKnightSpells.DeathAndDecay, ret => _toontarget.Location, ret => _toon.UnholyRuneCount >= 1),
Cast(DeathKnightSpells.PlagueStrike, ret => _toon.UnholyRuneCount == 2),
Cast(DeathKnightSpells.FrostStrike),
Cast(DeathKnightSpells.HornOfWinter, ret => _toon),
Cast(DeathKnightSpells.PlagueLeech, ret => _toon.UnholyRuneCount == 1),
Cast(DeathKnightSpells.PlagueStrike, ret => _toon.UnholyRuneCount == 1),
new ActionAlwaysSucceed())), // This is more a safety spot here. If we fail to cast PL but are still in aoe mode: return to the top!
Cast(DeathKnightSpells.FrostStrike, ret => _toon.CurrentRunicPower >= 88 || HasAura(_toon, DeathKnightSpells.KillingMachine, true), "because we have more or equal to 89 Runic Power or a Killing Machine proc"),
Cast(DeathKnightSpells.HowlingBlast, ret => _toon.FrostRuneCount == 2 || _toon.DeathRuneCount == 2, "because we have extensive runes"),
//Cast(DeathKnightSpells.SoulReaper, ret => _toontarget.HealthPercent <= 35, "because our target is lower or equal to 35 healthpercent"),
Cast(DeathKnightSpells.PlagueStrike, ret => !HasAura(_toontarget, DeathKnightSpells.BloodPlague, true) || GetAuraTimeLeft(_toontarget, DeathKnightSpells.BloodPlague) < 1000, "because our target has no Blood Plague"),
Cast(DeathKnightSpells.HowlingBlast, ret => HasAura(_toon, DeathKnightSpells.FreezingFog, true), "because we have a Rime proc"),
Cast(DeathKnightSpells.FrostStrike, ret => _toon.CurrentRunicPower >= 76, "because we have more or equal to 77 Runic Power"),
Cast(DeathKnightSpells.HowlingBlast),
CastSensetive(DeathKnightSpells.BloodTap, ret => _toon, ret => StackCount(_toon, DeathKnightSpells.BloodCharge) >= 8 && SomeRunesDepleted()),
Cast(DeathKnightSpells.FrostStrike, ret => _toon.CurrentRunicPower >= 40, "because we have mor or equal to 40 Runic Power"),
Cast(DeathKnightSpells.HornOfWinter, ret => _toon, "because nothing else to do"),
CastOnGround(DeathKnightSpells.DeathAndDecay, ret => _toontarget.Location, ret => _toon.UnholyRuneCount >= 0 ),
Cast(DeathKnightSpells.PlagueLeech, "because nothing left to do"));
}