Desecrate spawns normal dead corpses, so all you need to do is add in a condition to cast Desecrate, then DD will be used on any dead bodies.
However, there seems to be a bug with Detonate Dead, which is why it's not being used, and it was fixed in the Exile CR.
Here's an example of logic that can be used for the OP:
Code:
private void RegisterMainAbilities()
{
// Cast Desecrate at the target if there are no bodies near it for DD.
// Don't cast too close, otherwise the bot might get stuck.
Register("Desecrate", ret => !NumberOfMobsNear(BestTarget, 30, 1, true) && BestTarget.Distance > 15);
// Cast DD at the target that has corpses around it.
Register("Detonate Dead", ret => NumberOfMobsNear(BestTarget, 30, 1, true), ret=>BestTarget.Position);
// Fall back to something else when we get here.
Register("Firestorm");
return;
}
You'd just change up everything after DD so you don't get stuck doing nothing. The conditions checked are important in helping the bot not get stuck using the current system.
Here's the final
Exile.cs that will be in the next version that you can change up until then. It fixes the bugs with DD and uses Desecrate.