Fists of Earth, and might not want to switch back automatically until they're topped off. Fist of Earth is a little trickier for a bot, like all damage mitigation, since you can't predict damage, and the only thing you can look at (Healthpercent), is of questionable utility since the damage already happened.
Let me preface by saying I am quite the novice when it comes to C++, but have learned a good bit just messing around and tweaking certain rotations/methods to my liking. Most of what you ask I'm pretty sure can be done and are good ideas outside of some particular target switches/PB etc.
If anyone wants to add the fire/earth toggle , the code is below, note you can change the % to whatever you like.
1). In the rotations/methods folder/ need to make the following edit to the monk.cs file.
private async Task<bool> FistsOfEarth()
{
if (!Core.Player.HasAura(MySpells.FistsOfEarth.Name)
&&
Core.Player.CurrentHealthPercent <= 75)
{
return await MySpells.FistsOfEarth.Cast();
}
return false;
}
------------------------------------------------------------------
private async Task<bool> FistsOfFire()
{
if (!Core.Player.HasAura(MySpells.FistsOfFire.Name)
&&
Core.Player.CurrentHealthPercent >= 76)
{
return await MySpells.FistsOfFire.Cast();
}
return false;
}
--------------------------------------------------------------
2. In the Rotations/Behaviors/Combatbuff monk.cs file make the following edit. Then remove
if (await FistsOfEarth()) return true; from the Precombat.monk.cs file
public override async Task<bool> CombatBuffLvL46()
{
if (await Invigorate()) return true;
if (await ShoulderTackle()) return true;
if (await InternalRelease()) return true;
if (await BloodForBlood()) return true;
if (await HowlingFist()) return true;
if (await SteelPeak()) return true;
if (await Haymaker()) return true;
if (await MercyStroke()) return true;
if (await FistsOfFire()) return true;
if (await FistsOfEarth()) return true;
return await Ultima.SummonChocobo();
}
I would post my own files but I've made a ton of tweaks for heals/cross class abilities/movement etc. Hopefully this helps