Skip to content

Commit 6ed7ccc

Browse files
authored
Merge pull request #953 from FFXIV-CombatReborn/ACNrework
Rework of low level SMN/ACN actions
2 parents 72da1f7 + 87cc1b7 commit 6ed7ccc

File tree

2 files changed

+94
-12
lines changed

2 files changed

+94
-12
lines changed

RotationSolver.Basic/Rotations/Basic/SummonerRotation.cs

Lines changed: 52 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -335,7 +335,34 @@ static partial void ModifySummonRubyPvE(ref ActionSetting setting)
335335

336336
static partial void ModifyGemshinePvE(ref ActionSetting setting)
337337
{
338-
setting.ActionCheck = () => Attunement > 0 && !AttunmentTimeEndAfter(ActionID.GemshinePvE.GetCastTime());
338+
339+
}
340+
341+
static partial void ModifyRubyRuinPvE(ref ActionSetting setting)
342+
{
343+
setting.ActionCheck = () => Attunement > 0 && !AttunmentTimeEndAfter(ActionID.RubyRuinPvE.GetCastTime()) && InIfrit;
344+
setting.CreateConfig = () => new ActionConfig()
345+
{
346+
AoeCount = 3,
347+
};
348+
}
349+
350+
static partial void ModifyEmeraldRuinPvE(ref ActionSetting setting)
351+
{
352+
setting.ActionCheck = () => Attunement > 0 && !AttunmentTimeEndAfter(ActionID.EmeraldRuinPvE.GetCastTime()) && InGaruda;
353+
setting.CreateConfig = () => new ActionConfig()
354+
{
355+
AoeCount = 3,
356+
};
357+
}
358+
359+
static partial void ModifyTopazRuinPvE(ref ActionSetting setting)
360+
{
361+
setting.ActionCheck = () => Attunement > 0 && !AttunmentTimeEndAfter(ActionID.TopazRuinPvE.GetCastTime()) && InTitan;
362+
setting.CreateConfig = () => new ActionConfig()
363+
{
364+
AoeCount = 3,
365+
};
339366
}
340367

341368
static partial void ModifyFesterPvE(ref ActionSetting setting)
@@ -374,9 +401,31 @@ static partial void ModifyOutburstPvE(ref ActionSetting setting)
374401
};
375402
}
376403

377-
static partial void ModifyPreciousBrilliancePvE(ref ActionSetting setting)
404+
static partial void ModifyRubyOutburstPvE(ref ActionSetting setting)
405+
{
406+
setting.ActionCheck = () => Attunement > 0 && !AttunmentTimeEndAfter(ActionID.RubyOutburstPvE.GetCastTime()) && InIfrit;
407+
setting.CreateConfig = () => new ActionConfig()
408+
{
409+
AoeCount = 3,
410+
};
411+
}
412+
413+
static partial void ModifyEmeraldOutburstPvE(ref ActionSetting setting)
378414
{
379-
setting.ActionCheck = () => Attunement > 0 && !AttunmentTimeEndAfter(ActionID.PreciousBrilliancePvE.GetCastTime());
415+
setting.ActionCheck = () => Attunement > 0 && !AttunmentTimeEndAfter(ActionID.EmeraldOutburstPvE.GetCastTime()) && InGaruda;
416+
setting.CreateConfig = () => new ActionConfig()
417+
{
418+
AoeCount = 3,
419+
};
420+
}
421+
422+
static partial void ModifyTopazOutburstPvE(ref ActionSetting setting)
423+
{
424+
setting.ActionCheck = () => Attunement > 0 && !AttunmentTimeEndAfter(ActionID.TopazOutburstPvE.GetCastTime()) && InTitan;
425+
setting.CreateConfig = () => new ActionConfig()
426+
{
427+
AoeCount = 3,
428+
};
380429
}
381430

382431
static partial void ModifyRuinIiPvE(ref ActionSetting setting)

RotationSolver/RebornRotations/Magical/SMN_Reborn.cs

Lines changed: 42 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,15 @@ public enum SummonOrderType : byte
3333
[RotationConfig(CombatType.PvE, Name = "Use Crimson Cyclone when moving")]
3434
public bool AddCrimsonCycloneMoving { get; set; } = false;
3535

36+
[RotationConfig(CombatType.PvE, Name = "Use Swiftcast on ressurection")]
37+
public bool AddSwiftcastOnRaise { get; set; } = true;
38+
39+
[RotationConfig(CombatType.PvE, Name = "Use Swiftcast on Ruby Ruin when not enough level for Ruby Rite")]
40+
public bool AddSwiftcastOnLowST { get; set; } = true;
41+
42+
[RotationConfig(CombatType.PvE, Name = "Use Swiftcast on Ruby Outburst when not enough level for Ruby Rite")]
43+
public bool AddSwiftcastOnLowAOE { get; set; } = true;
44+
3645
[RotationConfig(CombatType.PvE, Name = "Use Swiftcast on Garuda")]
3746
public bool AddSwiftcastOnGaruda { get; set; } = false;
3847

@@ -297,17 +306,25 @@ protected override bool AttackAbility(IAction nextGCD, out IAction? act)
297306

298307
protected override bool EmergencyAbility(IAction nextGCD, out IAction? act)
299308
{
300-
if (AddSwiftcastOnGaruda && nextGCD.IsTheSameTo(false, SlipstreamPvE) && ElementalMasteryTrait.EnoughLevel && !InBahamut && !InPhoenix && !InSolarBahamut)
309+
if (SwiftcastPvE.CanUse(out act))
301310
{
302-
if (SwiftcastPvE.CanUse(out act))
311+
if (AddSwiftcastOnRaise && nextGCD.IsTheSameTo(false, ResurrectionPvE))
303312
{
304313
return true;
305314
}
306-
}
307-
308-
if (AddSwiftcastOnRuby && nextGCD.IsTheSameTo(false, RubyRitePvE) && !ElementalMasteryTrait.EnoughLevel)
309-
{
310-
if (SwiftcastPvE.CanUse(out act))
315+
if (AddSwiftcastOnLowST && !RubyRitePvE.EnoughLevel && nextGCD.IsTheSameTo(false, RubyRuinPvE, RubyRuinIiPvE, RubyRuinIiiPvE))
316+
{
317+
return true;
318+
}
319+
if (AddSwiftcastOnLowAOE && !RubyRitePvE.EnoughLevel && nextGCD.IsTheSameTo(false, RubyOutburstPvE))
320+
{
321+
return true;
322+
}
323+
if (AddSwiftcastOnRuby && nextGCD.IsTheSameTo(false, RubyRitePvE) && !ElementalMasteryTrait.EnoughLevel)
324+
{
325+
return true;
326+
}
327+
if (AddSwiftcastOnGaruda && nextGCD.IsTheSameTo(false, SlipstreamPvE) && ElementalMasteryTrait.EnoughLevel && !InBahamut && !InPhoenix && !InSolarBahamut)
311328
{
312329
return true;
313330
}
@@ -371,12 +388,28 @@ protected override bool GeneralGCD(out IAction? act)
371388
return true;
372389
}
373390

374-
if (PreciousBrilliancePvE.CanUse(out act))
391+
if (RubyOutburstPvE.CanUse(out act))
392+
{
393+
return true;
394+
}
395+
if (EmeraldOutburstPvE.CanUse(out act))
396+
{
397+
return true;
398+
}
399+
if (TopazOutburstPvE.CanUse(out act))
375400
{
376401
return true;
377402
}
378403

379-
if (GemshinePvE.CanUse(out act))
404+
if (RubyRuinPvE.CanUse(out act))
405+
{
406+
return true;
407+
}
408+
if (EmeraldRuinPvE.CanUse(out act))
409+
{
410+
return true;
411+
}
412+
if (TopazRuinPvE.CanUse(out act))
380413
{
381414
return true;
382415
}

0 commit comments

Comments
 (0)