diff --git a/Resources/BeneficialPositions.json b/Resources/BeneficialPositions.json index 4f85411f5..f37ad6aec 100644 --- a/Resources/BeneficialPositions.json +++ b/Resources/BeneficialPositions.json @@ -9,5 +9,24 @@ "1186": [], "816": [], "1198": [], - "957": [] + "957": [], + "751": [ + { + "X": 0.015657552, + "Y": 0.0, + "Z": -0.0062397607 + } + ], + "132": [], + "1048": [], + "1169": [ + { + "X": 100.05093, + "Y": 0.0, + "Z": 100.0046 + } + ], + "981": [], + "1064": [], + "1062": [] } \ No newline at end of file diff --git a/Resources/HostileCastingArea.json b/Resources/HostileCastingArea.json index fa68e2458..77f0bc46e 100644 --- a/Resources/HostileCastingArea.json +++ b/Resources/HostileCastingArea.json @@ -647,5 +647,9 @@ 13085, 13074, 26050, - 26049 + 26049, + 28718, + 28720, + 29379, + 3338 ] \ No newline at end of file diff --git a/Resources/HostileCastingKnockback.json b/Resources/HostileCastingKnockback.json index 91768745d..f808b0ecd 100644 --- a/Resources/HostileCastingKnockback.json +++ b/Resources/HostileCastingKnockback.json @@ -31,5 +31,6 @@ 29000, 28981, 29003, - 37662 + 37662, + 10535 ] \ No newline at end of file diff --git a/Resources/HostileCastingTank.json b/Resources/HostileCastingTank.json index 61557738c..35df61a42 100644 --- a/Resources/HostileCastingTank.json +++ b/Resources/HostileCastingTank.json @@ -25,5 +25,6 @@ 29023, 10542, 26040, - 26041 + 26041, + 28717 ] \ No newline at end of file diff --git a/Resources/InvincibleStatus.json b/Resources/InvincibleStatus.json index 7e909e2bb..8ce05e712 100644 --- a/Resources/InvincibleStatus.json +++ b/Resources/InvincibleStatus.json @@ -12,4 +12,4 @@ 3039, 3052, 3054 -] +] \ No newline at end of file diff --git a/Resources/NoHostileNames.json b/Resources/NoHostileNames.json index 4bb430b7e..c2e40d50e 100644 --- a/Resources/NoHostileNames.json +++ b/Resources/NoHostileNames.json @@ -31,5 +31,23 @@ ], "957": [ "" + ], + "132": [ + "" + ], + "1048": [ + "" + ], + "1169": [ + "" + ], + "981": [ + "" + ], + "1064": [ + "" + ], + "1062": [ + "" ] } \ No newline at end of file diff --git a/Resources/NoProvokeNames.json b/Resources/NoProvokeNames.json index d842e47be..2fa3cd34e 100644 --- a/Resources/NoProvokeNames.json +++ b/Resources/NoProvokeNames.json @@ -22,5 +22,23 @@ ], "957": [ "" + ], + "132": [ + "" + ], + "1048": [ + "" + ], + "1169": [ + "" + ], + "981": [ + "" + ], + "1064": [ + "" + ], + "1062": [ + "" ] } \ No newline at end of file diff --git a/Resources/PrioTargetNames.json b/Resources/PrioTargetNames.json index d03b73e35..95eedae14 100644 --- a/Resources/PrioTargetNames.json +++ b/Resources/PrioTargetNames.json @@ -9,5 +9,24 @@ "1046": [ "Granite Gaol", "" + ], + "132": [ + "" + ], + "1048": [ + "" + ], + "1169": [ + "" + ], + "981": [ + "" + ], + "1064": [ + "Drakespur", + "" + ], + "1062": [ + "" ] } \ No newline at end of file diff --git a/Resources/PriorityStatus.json b/Resources/PriorityStatus.json index 3dc6dec94..bd4992f82 100644 --- a/Resources/PriorityStatus.json +++ b/Resources/PriorityStatus.json @@ -3,4 +3,4 @@ 2655, 1290, 861 -] +] \ No newline at end of file diff --git a/RotationSolver.Basic/Data/RaiseType.cs b/RotationSolver.Basic/Data/RaiseType.cs index 2f8b53915..a8cf2ac18 100644 --- a/RotationSolver.Basic/Data/RaiseType.cs +++ b/RotationSolver.Basic/Data/RaiseType.cs @@ -14,12 +14,12 @@ public enum RaiseType : byte /// /// Raise party and alliance members. /// - [Description("Raise party and alliance members.")] + [Description("Raise all.")] PartyAndAlliance, /// /// Raise party members and alliance healers. /// - [Description("Raise party members and alliance healers.")] + [Description("Raise party members and non-party healers.")] PartyAndAllianceHealers, } \ No newline at end of file diff --git a/RotationSolver.Basic/DataCenter.cs b/RotationSolver.Basic/DataCenter.cs index d9b1b87d7..85918d842 100644 --- a/RotationSolver.Basic/DataCenter.cs +++ b/RotationSolver.Basic/DataCenter.cs @@ -11,6 +11,7 @@ using RotationSolver.Basic.Configuration; using RotationSolver.Basic.Configuration.Conditions; using RotationSolver.Basic.Rotations.Duties; +using Svg.FilterEffects; using Action = Lumina.Excel.GeneratedSheets.Action; using CharacterManager = FFXIVClientStructs.FFXIV.Client.Game.Character.CharacterManager; @@ -313,7 +314,7 @@ internal static float RaidTimeRaw public unsafe static IBattleChara[] AllianceMembers => AllTargets.Where(ObjectHelper.IsAlliance) .Where(b => b.Character()->CharacterData.OnlineStatus != 15 && b.IsTargetable).ToArray(); - public static unsafe IBattleChara[] FriendlyNPCMembers + public unsafe static IBattleChara[] FriendlyNPCMembers { get { @@ -374,60 +375,67 @@ public static IBattleChara? DeathTarget { get { - // Ensure AllianceMembers and PartyMembers are not null - if (AllianceMembers == null || PartyMembers == null) return null; + // Added so it only tracks deathtarget if you are on a raise job + var rotation = DataCenter.RightNowRotation; + if (Player.Job == Job.WHM || Player.Job == Job.SCH || Player.Job == Job.AST || Player.Job == Job.SGE || + Player.Job == Job.SMN || Player.Job == Job.RDM) + { + // Ensure AllianceMembers and PartyMembers are not null + if (AllianceMembers == null || PartyMembers == null) return null; - var deathAll = AllianceMembers.GetDeath(); - var deathParty = PartyMembers.GetDeath(); - var deathNPC = FriendlyNPCMembers.GetDeath(); + var deathAll = AllianceMembers.GetDeath(); + var deathParty = PartyMembers.GetDeath(); + var deathNPC = FriendlyNPCMembers.GetDeath(); - // Check death in party members - if (deathParty.Any()) - { - var deathT = deathParty.GetJobCategory(JobRole.Tank).ToList(); - var deathH = deathParty.GetJobCategory(JobRole.Healer).ToList(); + // Check death in party members + if (deathParty.Any()) + { + var deathT = deathParty.GetJobCategory(JobRole.Tank).ToList(); + var deathH = deathParty.GetJobCategory(JobRole.Healer).ToList(); - if (deathT.Count > 1) return deathT.FirstOrDefault(); - if (deathH.Any()) return deathH.FirstOrDefault(); - if (deathT.Any()) return deathT.FirstOrDefault(); + if (deathT.Count > 1) return deathT.FirstOrDefault(); + if (deathH.Any()) return deathH.FirstOrDefault(); + if (deathT.Any()) return deathT.FirstOrDefault(); - return deathParty.FirstOrDefault(); - } + return deathParty.FirstOrDefault(); + } - // Check death in alliance members - if (deathAll.Any()) - { - if (Service.Config.RaiseType == RaiseType.PartyAndAllianceHealers) + // Check death in alliance members + if (deathAll.Any()) { - var deathAllH = deathAll.GetJobCategory(JobRole.Healer).ToList(); - if (deathAllH.Any()) return deathAllH.FirstOrDefault(); + if (Service.Config.RaiseType == RaiseType.PartyAndAllianceHealers) + { + var deathAllH = deathAll.GetJobCategory(JobRole.Healer).ToList(); + if (deathAllH.Any()) return deathAllH.FirstOrDefault(); + } + + if (Service.Config.RaiseType == RaiseType.PartyAndAlliance) + { + var deathAllH = deathAll.GetJobCategory(JobRole.Healer).ToList(); + var deathAllT = deathAll.GetJobCategory(JobRole.Tank).ToList(); + + if (deathAllH.Any()) return deathAllH.FirstOrDefault(); + if (deathAllT.Any()) return deathAllT.FirstOrDefault(); + + return deathAll.FirstOrDefault(); + } } - if (Service.Config.RaiseType == RaiseType.PartyAndAlliance) + // Check death in friendly NPC members + if (deathNPC.Any() && Service.Config.FriendlyPartyNpcHealRaise) { - var deathAllH = deathAll.GetJobCategory(JobRole.Healer).ToList(); - var deathAllT = deathAll.GetJobCategory(JobRole.Tank).ToList(); + var deathNPCT = deathNPC.GetJobCategory(JobRole.Tank).ToList(); + var deathNPCH = deathNPC.GetJobCategory(JobRole.Healer).ToList(); - if (deathAllH.Any()) return deathAllH.FirstOrDefault(); - if (deathAllT.Any()) return deathAllT.FirstOrDefault(); + if (deathNPCT.Count > 1) return deathNPCT.FirstOrDefault(); + if (deathNPCH.Any()) return deathNPCH.FirstOrDefault(); + if (deathNPCT.Any()) return deathNPCT.FirstOrDefault(); - return deathAll.FirstOrDefault(); + return deathNPC.FirstOrDefault(); } - } - - // Check death in friendly NPC members - if (deathNPC.Any() && Service.Config.FriendlyPartyNpcHealRaise) - { - var deathNPCT = deathNPC.GetJobCategory(JobRole.Tank).ToList(); - var deathNPCH = deathNPC.GetJobCategory(JobRole.Healer).ToList(); - if (deathNPCT.Count > 1) return deathNPCT.FirstOrDefault(); - if (deathNPCH.Any()) return deathNPCH.FirstOrDefault(); - if (deathNPCT.Any()) return deathNPCT.FirstOrDefault(); - - return deathNPC.FirstOrDefault(); + return null; } - return null; } }