Skip to content

Commit

Permalink
small improvements
Browse files Browse the repository at this point in the history
  • Loading branch information
Akechi-kun committed Feb 9, 2025
1 parent a9f9d34 commit 0b2aae2
Show file tree
Hide file tree
Showing 6 changed files with 27 additions and 13 deletions.
15 changes: 10 additions & 5 deletions BossMod/Autorotation/Standard/akechi/AkechiTools.cs
Original file line number Diff line number Diff line change
Expand Up @@ -1152,23 +1152,28 @@ public sealed override void Execute(StrategyValues strategy, ref Actor? primaryT
static class ModuleExtensions
{
#region Shared Definitions
/// <summary>Defines our shared <b>AOE</b> (rotation) and <b>Hold</b> strategies.</summary>
/// <summary>Defines our shared <b>AOE</b> (rotation) strategies.</summary>
/// <param name="res">The definitions of our base module's strategies.</param>
/// <returns>- Options for shared custom strategies to be used via <b>AutoRotation</b> or <b>Cooldown Planner</b></returns>
public static RotationModuleDefinition DefineShared(this RotationModuleDefinition res)
public static RotationModuleDefinition.ConfigRef<AOEStrategy> DefineAOE(this RotationModuleDefinition res)
{
res.Define(SharedTrack.AOE).As<AOEStrategy>("AOE", uiPriority: 300)
return res.Define(SharedTrack.AOE).As<AOEStrategy>("AOE", uiPriority: 300)
.AddOption(AOEStrategy.Automatic, "Auto", "Automatically execute optimal rotation based on targets", supportedTargets: ActionTargets.Hostile)
.AddOption(AOEStrategy.ForceST, "ForceST", "Force-execute Single Target", supportedTargets: ActionTargets.Hostile)
.AddOption(AOEStrategy.ForceAOE, "ForceAOE", "Force-execute AOE rotation", supportedTargets: ActionTargets.Hostile);
}

res.Define(SharedTrack.Hold).As<HoldStrategy>("Hold", uiPriority: 290)
/// <summary>Defines our shared <b>Hold</b> strategies.</summary>
/// <param name="res">The definitions of our base module's strategies.</param>
/// <returns>- Options for shared custom strategies to be used via <b>AutoRotation</b> or <b>Cooldown Planner</b></returns>
public static RotationModuleDefinition.ConfigRef<HoldStrategy> DefineHold(this RotationModuleDefinition res)
{
return res.Define(SharedTrack.Hold).As<HoldStrategy>("Hold", uiPriority: 290)
.AddOption(HoldStrategy.DontHold, "DontHold", "Allow use of all cooldowns, buffs, or gauge abilities")
.AddOption(HoldStrategy.HoldCooldowns, "Hold", "Forbid use of all cooldowns only")
.AddOption(HoldStrategy.HoldGauge, "HoldGauge", "Forbid use of all gauge abilities only")
.AddOption(HoldStrategy.HoldBuffs, "HoldBuffs", "Forbid use of all raidbuffs or buff-related abilities only")
.AddOption(HoldStrategy.HoldEverything, "HoldEverything", "Forbid use of all cooldowns, buffs, and gauge abilities");
return res;
}

/// <summary>A quick and easy helper for shortcutting how we define our <b>GCD</b> abilities.</summary>
Expand Down
6 changes: 5 additions & 1 deletion BossMod/Autorotation/Standard/akechi/DPS/AkechiBLM.cs
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,11 @@ public static RotationModuleDefinition Definition()
BitMask.Build(Class.THM, Class.BLM), //Job
100); //Level supported

res.DefineShared();
res.DefineAOE().AddAssociatedActions(
AID.Fire1, AID.Fire2, AID.Fire3, AID.Fire4, AID.HighFire2,
AID.Blizzard1, AID.Blizzard2, AID.Blizzard3, AID.Freeze, AID.Blizzard4, AID.HighBlizzard2,
AID.Flare, AID.Despair, AID.FlareStar);
res.DefineHold();
res.Define(Track.Movement).As<MovementStrategy>("Movement", uiPriority: 195)
.AddOption(MovementStrategy.Allow, "Allow", "Allow the use of all appropriate abilities for movement")
.AddOption(MovementStrategy.AllowNoScathe, "AllowNoScathe", "Allow the use of all appropriate abilities for movement except for Scathe")
Expand Down
10 changes: 6 additions & 4 deletions BossMod/Autorotation/Standard/akechi/Tank/AkechiDRK.cs
Original file line number Diff line number Diff line change
Expand Up @@ -29,14 +29,16 @@ public static RotationModuleDefinition Definition()
BitMask.Build((int)Class.DRK), //Job
100); //Level supported

res.DefineShared();
res.DefineAOE().AddAssociatedActions(AID.HardSlash, AID.SyphonStrike, AID.Souleater, AID.Unleash, AID.StalwartSoul); ;
res.DefineHold();
res.Define(Track.Blood).As<BloodStrategy>("Blood", "Blood", uiPriority: 200)
.AddOption(BloodStrategy.Automatic, "Automatic", "Automatically use Blood-related abilities optimally")
.AddOption(BloodStrategy.OnlyBloodspiller, "Only Bloodspiller", "Uses Bloodspiller optimally as Blood spender only, regardless of targets", 0, 0, ActionTargets.Hostile, 62)
.AddOption(BloodStrategy.OnlyQuietus, "Only Quietus", "Uses Quietus optimally as Blood spender only, regardless of targets", 0, 0, ActionTargets.Hostile, 64)
.AddOption(BloodStrategy.ForceBloodspiller, "Force Bloodspiller", "Force use Bloodspiller ASAP", 0, 0, ActionTargets.Hostile, 62)
.AddOption(BloodStrategy.ForceQuietus, "Force Quietus", "Force use Quietus ASAP", 0, 0, ActionTargets.Hostile, 64)
.AddOption(BloodStrategy.Conserve, "Conserve", "Conserves all Blood-related abilities as much as possible");
.AddOption(BloodStrategy.Conserve, "Conserve", "Conserves all Blood-related abilities as much as possible")
.AddAssociatedActions(AID.Bloodspiller, AID.Quietus);
res.Define(Track.MP).As<MPStrategy>("MP", "MP", uiPriority: 190)
.AddOption(MPStrategy.Optimal, "Optimal", "Use MP actions optimally; 2 for 1 minute, 4 (or 5 if Dark Arts is active) for 2 minutes")
.AddOption(MPStrategy.Auto3k, "Auto 3k", "Automatically decide best MP action to use; Uses when at 3000+ MP", 0, 0, ActionTargets.Self, 30)
Expand All @@ -60,7 +62,7 @@ public static RotationModuleDefinition Definition()
.AddOption(CarveStrategy.ForceCarve, "Force Carve and Spit", "Force use Carve and Spit ASAP", 60, 0, ActionTargets.Hostile, 60)
.AddOption(CarveStrategy.ForceDrain, "Force Abyssal Drain", "Force use Abyssal Drain ASAP", 60, 0, ActionTargets.Hostile, 56)
.AddOption(CarveStrategy.Delay, "Delay", "Delay the use of Carve and Spit for strategic reasons", 0, 0, ActionTargets.None, 56)
.AddAssociatedActions(AID.CarveAndSpit);
.AddAssociatedActions(AID.CarveAndSpit, AID.AbyssalDrain);
res.Define(Track.DeliriumCombo).As<DeliriumComboStrategy>("Delirium Combo", "Scarlet", uiPriority: 180)
.AddOption(DeliriumComboStrategy.Automatic, "Auto", "Automatically decide when to use Delirium Combo", 0, 0, ActionTargets.Hostile, 96)
.AddOption(DeliriumComboStrategy.ScarletDelirum, "Scarlet Delirium", "Force use Scarlet Delirium ASAP", 0, 0, ActionTargets.Hostile, 96)
Expand All @@ -81,7 +83,7 @@ public static RotationModuleDefinition Definition()
.AddOption(UnmendStrategy.Allow, "Allow", "Allow use of Unmend when out of melee range", supportedTargets: ActionTargets.Hostile)
.AddOption(UnmendStrategy.Forbid, "Forbid", "Prohibit use of Unmend")
.AddAssociatedActions(AID.Unmend);
res.DefineOGCD(Track.Delirium, AID.Delirium, "Delirium", "Deli.", uiPriority: 170, 60, 15, ActionTargets.Self, 35);
res.DefineOGCD(Track.Delirium, AID.Delirium, "Delirium", "Deli.", uiPriority: 170, 60, 15, ActionTargets.Self, 35).AddAssociatedActions(AID.BloodWeapon, AID.Delirium);
res.DefineOGCD(Track.SaltedEarth, AID.SaltedEarth, "Salted Earth", "S.Earth", uiPriority: 140, 90, 15, ActionTargets.Self, 52);
res.DefineOGCD(Track.SaltAndDarkness, AID.SaltAndDarkness, "Salt & Darkness", "Salt & D.", uiPriority: 135, 20, 0, ActionTargets.Self, 86);
res.DefineOGCD(Track.LivingShadow, AID.LivingShadow, "Living Shadow", "L.Shadow", uiPriority: 175, 120, 20, ActionTargets.Self, 80);
Expand Down
3 changes: 2 additions & 1 deletion BossMod/Autorotation/Standard/akechi/Tank/AkechiGNB.cs
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,8 @@ public static RotationModuleDefinition Definition()
.AddOption(AOEStrategy.ForceSTwithoutO, "Force ST without Overcap", "Force ST rotation without overcap protection", supportedTargets: ActionTargets.Hostile)
.AddOption(AOEStrategy.ForceAOEwithO, "Force AOE with Overcap", "Force AOE rotation with overcap protection")
.AddOption(AOEStrategy.ForceAOEwithoutO, "Force AOE without Overcap", "Force AOE rotation without overcap protection")
.AddOption(AOEStrategy.GenerateDowntime, "Generate Downtime", "Generate cartridges before downtime");
.AddOption(AOEStrategy.GenerateDowntime, "Generate Downtime", "Generate cartridges before downtime")
.AddAssociatedActions(AID.KeenEdge, AID.BrutalShell, AID.SolidBarrel, AID.DemonSlice, AID.DemonSlaughter);
res.Define(Track.Cooldowns).As<CooldownStrategy>("Hold", uiPriority: 190)
.AddOption(CooldownStrategy.Allow, "Allow", "Allows the use of all cooldowns & buffs; will use them optimally")
.AddOption(CooldownStrategy.Forbid, "Hold", "Forbids the use of all cooldowns & buffs; will not use any actions with a cooldown timer");
Expand Down
3 changes: 2 additions & 1 deletion BossMod/Autorotation/Standard/akechi/Tank/AkechiPLD.cs
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,8 @@ public static RotationModuleDefinition Definition()
.AddOption(AOEStrategy.AutoFinishCombo, "Auto (Finish Combo)", "Auto-selects best rotation dependant on targets; Finishes combo first", supportedTargets: ActionTargets.Hostile)
.AddOption(AOEStrategy.AutoBreakCombo, "Auto (Break Combo)", "Auto-selects best rotation dependant on targets; Breaks combo if needed", supportedTargets: ActionTargets.Hostile)
.AddOption(AOEStrategy.ForceST, "Use AOE", "Force single-target rotation", supportedTargets: ActionTargets.Hostile)
.AddOption(AOEStrategy.ForceAOE, "Force AOE", "Force AOE rotation");
.AddOption(AOEStrategy.ForceAOE, "Force AOE", "Force AOE rotation")
.AddAssociatedActions(AID.FastBlade, AID.RiotBlade, AID.RageOfHalone, AID.RoyalAuthority, AID.Prominence, AID.TotalEclipse);
res.Define(Track.Cooldowns).As<CooldownStrategy>("Hold", uiPriority: 190)
.AddOption(CooldownStrategy.Allow, "Allow", "Allows the use of all cooldowns & buffs; will use them optimally")
.AddOption(CooldownStrategy.Forbid, "Hold", "Forbids the use of all cooldowns & buffs; will not use any actions with a cooldown timer");
Expand Down
3 changes: 2 additions & 1 deletion BossMod/Autorotation/Standard/akechi/Tank/AkechiWAR.cs
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,8 @@ public static RotationModuleDefinition Definition()
BitMask.Build(Class.MRD, Class.WAR), //Job
100); //Level supported

res.DefineShared();
res.DefineAOE().AddAssociatedActions(AID.HeavySwing, AID.Maim, AID.StormEye, AID.StormPath, AID.Overpower, AID.MythrilTempest);
res.DefineHold();
res.Define(Track.Gauge).As<GaugeStrategy>("Gauge", "Gauge", uiPriority: 200)
.AddOption(GaugeStrategy.Automatic, "Automatic", "Automatically use Gauge-related abilities optimally", minLevel: 35)
.AddOption(GaugeStrategy.OnlyST, "Only ST", "Uses Inner Beast / Fell Cleave / Inner Chaos optimally as Beast Gauge spender only, regardless of targets", 0, 0, ActionTargets.Hostile, 35)
Expand Down

0 comments on commit 0b2aae2

Please sign in to comment.