Skip to content

Commit

Permalink
Merge pull request #585 from Akechi-kun/lab
Browse files Browse the repository at this point in the history
Area-target ability improvements .. Cleanup on my Rotations as well
  • Loading branch information
xanunderscore authored Feb 20, 2025
2 parents ea4a267 + 5e154b1 commit 5c7f662
Show file tree
Hide file tree
Showing 15 changed files with 663 additions and 1,236 deletions.
1 change: 1 addition & 0 deletions BossMod/ActionQueue/Tanks/GNB.cs
Original file line number Diff line number Diff line change
Expand Up @@ -152,6 +152,7 @@ public enum SID : uint
HeartOfCorundumPvP = 4295, // applied by Heart of Corundum to self
CatharsisOfCorundumPvP = 4296, // applied by Heart of Corundum to self
RelentlessRushPvP = 3052,
RelentlessShrapnelPvP = 3053,

//Shared
Elixir = ClassShared.AID.Elixir,
Expand Down
982 changes: 306 additions & 676 deletions BossMod/Autorotation/Standard/akechi/AkechiTools.cs

Large diffs are not rendered by default.

10 changes: 7 additions & 3 deletions 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 Expand Up @@ -396,7 +400,7 @@ movingOption is CastingOption.Forbid &&
SelfStatusLeft(SID.Firestarter, 30) is < 25 and not 0 || //or can use F3P
Unlocked(TraitID.EnhancedAstralFire) && MP is < 1600 and not 0)) //instant cast Despair
{
if (strategy.Automatic())
if (strategy.AutoFinish() || strategy.AutoBreak())
BestRotation(TargetChoice(AOE) ?? BestSplashTarget?.Actor);
if (strategy.ForceST())
BestST(TargetChoice(AOE) ?? primaryTarget?.Actor);
Expand All @@ -409,7 +413,7 @@ movingOption is CastingOption.Forbid &&
//Thunder
if (ShouldUseThunder(BestSplashTarget?.Actor, thunderStrat)) //if Thunder should be used based on strategy
{
if (strategy.Automatic())
if (strategy.AutoFinish() || strategy.AutoBreak())
QueueGCD(BestThunder,
TargetChoice(thunder) ?? (ShouldUseAOE ? BestSplashTargets?.Actor : BestDOTTarget?.Actor),
thunderLeft <= 3 ? GCDPriority.NeedDOT :
Expand Down
230 changes: 92 additions & 138 deletions BossMod/Autorotation/Standard/akechi/PvP/AkechiGNBPvP.cs

Large diffs are not rendered by default.

20 changes: 13 additions & 7 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 Expand Up @@ -233,10 +235,14 @@ public override void Execution(StrategyValues strategy, Enemy? primaryTarget)
#region Full Rotation Execution

#region Standard Rotations
if (strategy.Automatic())
if (strategy.AutoFinish())
QueueGCD(BestRotation(),
TargetChoice(strategy.Option(SharedTrack.AOE)) ?? primaryTarget?.Actor,
GCDPriority.Standard);
if (strategy.AutoBreak())
QueueGCD(ShouldUseAOE ? AOE() : ST(),
TargetChoice(strategy.Option(SharedTrack.AOE)) ?? primaryTarget?.Actor,
GCDPriority.Standard);
if (strategy.ForceST())
QueueGCD(ST(),
TargetChoice(strategy.Option(SharedTrack.AOE)) ?? primaryTarget?.Actor,
Expand Down Expand Up @@ -385,12 +391,12 @@ bloodStrat is BloodStrategy.ForceQuietus ? GCDPriority.ForcedGCD

#region AI
var goalST = primaryTarget?.Actor != null ? Hints.GoalSingleTarget(primaryTarget!.Actor, 3) : null; //Set goal for single target
var goalAOE = primaryTarget?.Actor != null ? Hints.GoalAOECircle(5) : null; //Set goal for AOE
var goalAOE = Hints.GoalAOECircle(3); //Set goal for AOE
var goal = strategy.Option(SharedTrack.AOE).As<AOEStrategy>() switch //Set goal based on AOE strategy
{
AOEStrategy.ForceST => goalST, //if forced single target
AOEStrategy.ForceAOE => goalAOE, //if forced AOE
_ => goalST != null && goalAOE != null ? Hints.GoalCombined(goalST, goalAOE, 2) : goalAOE //otherwise, combine goals
_ => goalST != null ? Hints.GoalCombined(goalST, goalAOE, 3) : goalAOE //otherwise, combine goals
};
if (goal != null) //if goal is set
Hints.GoalZones.Add(goal); //add goal to zones
Expand Down
Loading

0 comments on commit 5c7f662

Please sign in to comment.