// Preparation, restore Disc if needed
float useDelay = Runes.DemonHunter.FocusedMind.IsActive ? 15000 : 500;
if (CanCast(SNOPower.DemonHunter_Preparation, CanCastFlags.NoTimer) &&
Player.SecondaryResource <= V.F("DemonHunter.MinPreparationDiscipline") &&
!Runes.DemonHunter.Punishment.IsActive &&
!Runes.DemonHunter.Invigoration.IsActive &&
TimeSincePowerUse(SNOPower.DemonHunter_Preparation) >= useDelay)
{
return new TrinityPower(SNOPower.DemonHunter_Preparation);
}
// Preparation: Punishment
if (CanCast(SNOPower.DemonHunter_Preparation, CanCastFlags.NoTimer) && Runes.DemonHunter.Punishment.IsActive && Player.PrimaryResourceMissing >= 75)
{
return new TrinityPower(SNOPower.DemonHunter_Preparation);
}
// Preparation: Invigoration
if (CanCast(SNOPower.DemonHunter_Preparation, CanCastFlags.NoTimer) && Runes.DemonHunter.Invigoration.IsActive && Player.SecondaryResource >= 65)
{
return new TrinityPower(SNOPower.DemonHunter_Preparation);
}