internal static Composite ProtectionDPS()
{
return new PrioritySelector(
Spell.Cast("Shield of the Righteous", ret => Lua.HolyPower >= 5 || DivinePurposeProc || (Lua.HolyPower >= 3 && (G.DevastatingAbilities.Contains(Me.CurrentTarget.CurrentCastorChannelId())))),
Spell.Cast("Avenger's Shield"),
Spell.Cast("Crusader Strike"),
Spell.Cast("Judgment", ret => SanctifiedWrathTalent && AvengingWrathBuff),
new Decorator(ret => CrusaderStrikeCooldownRemains && CrusaderStrikeUnder0, new ActionAlwaysSucceed()),
Spell.Cast("Judgment"),
Spell.Cast("Holy Wrath"),
Spell.Cast("Consecration", ret => !TalentManager.HasGlyph("Consecration")),
Spell.Cast("Execution Sentence"),
Spell.Cast("Hammer of Wrath"),
Spell.Cast("Holy Prism"),
Spell.CastOnGround("Consecration", ret => Me.CurrentTarget != null ? Me.CurrentTarget.Location : Me.Location, ret => TalentManager.HasGlyph("Consecration")),
Spell.CastOnGround("Light's Hammer", ret => LHLoc, ret => LHLoc!=WoWPoint.Empty && !ProtectionSettings.UseLightsHammerHotkey),
Spell.CastOnGround("Light's Hammer", ret => LHLoc, ret => LHLoc!=WoWPoint.Empty && ProtectionSettings.UseLightsHammerHotkey && KP.IsKeyAsyncDown(SettingsH.Instance.Tier4Choice))
);
}