Skip to content
This repository has been archived by the owner on Nov 21, 2024. It is now read-only.

Commit

Permalink
API 11
Browse files Browse the repository at this point in the history
  • Loading branch information
Taurenkey committed Nov 13, 2024
1 parent b7eeacb commit 366edbc
Show file tree
Hide file tree
Showing 31 changed files with 80 additions and 100 deletions.
2 changes: 1 addition & 1 deletion ECommons
Submodule ECommons updated 144 files
10 changes: 5 additions & 5 deletions XIVSlothCombo/Attributes/CustomComboInfoAttribute.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
using ECommons.DalamudServices;
using Lumina.Excel.GeneratedSheets;
using Lumina.Excel.Sheets;
using System;
using System.Collections.Generic;
using System.Globalization;
Expand Down Expand Up @@ -61,7 +61,7 @@ private static int JobIDToRole(byte jobID)
private static uint JobIDToClassJobCategory(byte jobID)
{
if (Svc.Data.GetExcelSheet<ClassJob>().HasRow(jobID))
return Svc.Data.GetExcelSheet<ClassJob>().GetRow(jobID).ClassJobCategory.Row;
return Svc.Data.GetExcelSheet<ClassJob>().GetRow(jobID).ClassJobCategory.RowId;

return 0;
}
Expand All @@ -84,7 +84,7 @@ private static string JobIDToShorthand(byte key)

if (ClassJobs.TryGetValue(key, out var job))
{
return job.Abbreviation.RawString;
return job.Abbreviation.ToString();
}
else
{
Expand All @@ -102,10 +102,10 @@ public static string JobIDToName(byte key)
//Override DOH/DOL
if (key is DOH.JobID) key = 08; //Set to Carpenter
if (key is DOL.JobID) key = 16; //Set to Miner
if (ClassJobs.TryGetValue(key, out ClassJob? job))
if (ClassJobs.TryGetValue(key, out ClassJob job))
{
//Grab Category name for DOH/DOL, else the normal Name for the rest
string jobname = key is 08 or 16 ? job.ClassJobCategory.Value.Name : job.Name;
string jobname = key is 08 or 16 ? job.ClassJobCategory.Value.Name.ToString() : job.Name.ToString();
//Job names are all lowercase by default. This capitalizes based on regional rules
string cultureID = Svc.ClientState.ClientLanguage switch
{
Expand Down
2 changes: 1 addition & 1 deletion XIVSlothCombo/Attributes/ReplaceSkillAttribute.cs
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ internal ReplaceSkillAttribute(params uint[] actionIDs)
{
foreach (uint id in actionIDs)
{
if (ActionWatching.ActionSheet.TryGetValue(id, out var action) && action != null)
if (ActionWatching.ActionSheet.TryGetValue(id, out var action))
{
ActionNames.Add($"{action.Name}");
ActionIcons.Add(action.Icon);
Expand Down
19 changes: 9 additions & 10 deletions XIVSlothCombo/Combos/JobHelpers/AST.cs
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
 using Dalamud.Game.ClientState.JobGauge.Enums;
using Dalamud.Game.ClientState.JobGauge.Enums;
using Dalamud.Game.ClientState.Objects.Types;
using Dalamud.Plugin.Services;
using ECommons.DalamudServices;
using ECommons.GameFunctions;
using ECommons.ExcelServices;
using System.Collections.Generic;
using System.Linq;
using XIVSlothCombo.CustomComboNS.Functions;
Expand All @@ -21,7 +20,7 @@ internal static void Init()

private static void CheckCards(IFramework framework)
{
if (Svc.ClientState.LocalPlayer is null || Svc.ClientState.LocalPlayer.ClassJob.Id != 33)
if (Svc.ClientState.LocalPlayer is null || Svc.ClientState.LocalPlayer.ClassJob.RowId != 33)
return;

if (Svc.Condition[Dalamud.Game.ClientState.Conditions.ConditionFlag.BetweenAreas] || Svc.Condition[Dalamud.Game.ClientState.Conditions.ConditionFlag.Unconscious])
Expand Down Expand Up @@ -55,8 +54,8 @@ private static bool BetterTargetAvailable()
return true;

var m = AST_QuickTargetCards.SelectedRandomMember as IBattleChara;
if ((DrawnCard is CardType.BALANCE && CustomComboFunctions.JobIDs.Melee.Any(x => x == m.ClassJob.Id)) ||
(DrawnCard is CardType.SPEAR && CustomComboFunctions.JobIDs.Ranged.Any(x => x == m.ClassJob.Id)))
if ((DrawnCard is CardType.BALANCE && CustomComboFunctions.JobIDs.Melee.Any(x => x == m.ClassJob.RowId)) ||
(DrawnCard is CardType.SPEAR && CustomComboFunctions.JobIDs.Ranged.Any(x => x == m.ClassJob.RowId)))
return false;

var targets = new List<IBattleChara>();
Expand All @@ -80,8 +79,8 @@ private static bool BetterTargetAvailable()
}

if (targets.Count == 0) return false;
if ((DrawnCard is CardType.BALANCE && targets.Any(x => CustomComboFunctions.JobIDs.Melee.Any(y => y == x.ClassJob.Id))) ||
(DrawnCard is CardType.SPEAR && targets.Any(x => CustomComboFunctions.JobIDs.Ranged.Any(y => y == x.ClassJob.Id))))
if ((DrawnCard is CardType.BALANCE && targets.Any(x => CustomComboFunctions.JobIDs.Melee.Any(y => y == x.ClassJob.RowId))) ||
(DrawnCard is CardType.SPEAR && targets.Any(x => CustomComboFunctions.JobIDs.Ranged.Any(y => y == x.ClassJob.RowId))))
{
AST_QuickTargetCards.SelectedRandomMember = null;
return true;
Expand Down Expand Up @@ -172,7 +171,7 @@ private static bool SetTarget()
//Give card to DPS first
for (int i = 0; i <= PartyTargets.Count - 1; i++)
{
byte job = PartyTargets[i] is IBattleChara ? (byte)(PartyTargets[i] as IBattleChara).ClassJob.Id : (byte)0;
byte job = PartyTargets[i] is IBattleChara ? (byte)(PartyTargets[i] as IBattleChara).ClassJob.RowId : (byte)0;
if (((cardDrawn is CardType.BALANCE) && JobIDs.Melee.Contains(job)) ||
((cardDrawn is CardType.SPEAR) && JobIDs.Ranged.Contains(job)))
{
Expand All @@ -184,7 +183,7 @@ private static bool SetTarget()
//Give card to unsuitable DPS next
for (int i = 0; i <= PartyTargets.Count - 1; i++)
{
byte job = PartyTargets[i] is IBattleChara ? (byte)(PartyTargets[i] as IBattleChara).ClassJob.Id : (byte)0;
byte job = PartyTargets[i] is IBattleChara ? (byte)(PartyTargets[i] as IBattleChara).ClassJob.RowId : (byte)0;
if (((cardDrawn is CardType.BALANCE) && JobIDs.Ranged.Contains(job)) ||
((cardDrawn is CardType.SPEAR) && JobIDs.Melee.Contains(job)))
{
Expand All @@ -199,7 +198,7 @@ private static bool SetTarget()
{
for (int i = 0; i <= PartyTargets.Count - 1; i++)
{
byte job = PartyTargets[i] is IBattleChara ? (byte)(PartyTargets[i] as IBattleChara).ClassJob.Id : (byte)0;
byte job = PartyTargets[i] is IBattleChara ? (byte)(PartyTargets[i] as IBattleChara).ClassJob.RowId : (byte)0;
if ((cardDrawn is CardType.BALANCE && JobIDs.Tank.Contains(job)) ||
(cardDrawn is CardType.SPEAR && JobIDs.Healer.Contains(job)))
{
Expand Down
2 changes: 0 additions & 2 deletions XIVSlothCombo/Combos/JobHelpers/NIN.cs
Original file line number Diff line number Diff line change
@@ -1,10 +1,8 @@
using Dalamud.Game.ClientState.Conditions;
using Dalamud.Game.ClientState.JobGauge.Types;
using ECommons.DalamudServices;
using System;
using XIVSlothCombo.Combos.JobHelpers.Enums;
using XIVSlothCombo.CustomComboNS.Functions;
using XIVSlothCombo.Data;
using XIVSlothCombo.Extensions;

namespace XIVSlothCombo.Combos.JobHelpers
Expand Down
5 changes: 0 additions & 5 deletions XIVSlothCombo/Combos/JobHelpers/PCT.cs
Original file line number Diff line number Diff line change
@@ -1,10 +1,5 @@
using Dalamud.Game.ClientState.JobGauge.Types;
using ECommons.DalamudServices;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using XIVSlothCombo.Combos.JobHelpers.Enums;
using XIVSlothCombo.Combos.PvE;
using XIVSlothCombo.CustomComboNS.Functions;
Expand Down
6 changes: 3 additions & 3 deletions XIVSlothCombo/Combos/PvE/ALL.cs
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,7 @@ internal class ALL_Healer_Raise : CustomCombo
protected override uint Invoke(uint actionID, uint lastComboMove, float comboTime, byte level)
{
if ((actionID is WHM.Raise or AST.Ascend or SGE.Egeiro)
|| (actionID is SCH.Resurrection && LocalPlayer.ClassJob.Id is SCH.JobID))
|| (actionID is SCH.Resurrection && LocalPlayer.ClassJob.Value.RowId is SCH.JobID))
{
if (ActionReady(Swiftcast))
return Swiftcast;
Expand Down Expand Up @@ -173,13 +173,13 @@ internal class ALL_Caster_Raise : CustomCombo
protected override uint Invoke(uint actionID, uint lastComboMove, float comboTime, byte level)
{
if ((actionID is BLU.AngelWhisper or RDM.Verraise)
|| (actionID is SMN.Resurrection && LocalPlayer.ClassJob.Id is SMN.JobID))
|| (actionID is SMN.Resurrection && LocalPlayer.ClassJob.RowId is SMN.JobID))
{
if (HasEffect(Buffs.Swiftcast) || HasEffect(RDM.Buffs.Dualcast))
return actionID;
if (IsOffCooldown(Swiftcast))
return Swiftcast;
if (LocalPlayer.ClassJob.Id is RDM.JobID &&
if (LocalPlayer.ClassJob.RowId is RDM.JobID &&
ActionReady(RDM.Vercure))
return RDM.Vercure;
}
Expand Down
1 change: 0 additions & 1 deletion XIVSlothCombo/Combos/PvE/AST.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
using Dalamud.Game.ClientState.JobGauge.Types;
using Dalamud.Game.ClientState.Objects.Types;
using Dalamud.Game.ClientState.Statuses;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using XIVSlothCombo.Combos.PvE.Content;
Expand Down
1 change: 0 additions & 1 deletion XIVSlothCombo/Combos/PvE/BLM.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
using Dalamud.Game.ClientState.JobGauge.Types;
using ECommons.DalamudServices;
using System;
using System.Collections.Generic;
using XIVSlothCombo.Combos.JobHelpers;
Expand Down
1 change: 0 additions & 1 deletion XIVSlothCombo/Combos/PvE/BRD.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
using Dalamud.Game.ClientState.JobGauge.Types;
using Dalamud.Game.ClientState.Statuses;
using System;
using System.ComponentModel.Design;
using XIVSlothCombo.Combos.PvE.Content;
using XIVSlothCombo.Core;
using XIVSlothCombo.CustomComboNS;
Expand Down
1 change: 0 additions & 1 deletion XIVSlothCombo/Combos/PvE/DNC.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
using Dalamud.Game.ClientState.JobGauge.Types;
using XIVSlothCombo.Combos.PvE.Content;
using XIVSlothCombo.Core;
using XIVSlothCombo.CustomComboNS;
using XIVSlothCombo.CustomComboNS.Functions;
using XIVSlothCombo.Services;
Expand Down
1 change: 0 additions & 1 deletion XIVSlothCombo/Combos/PvE/DRK.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
using Dalamud.Game.ClientState.JobGauge.Types;
using XIVSlothCombo.Combos.PvE.Content;
using XIVSlothCombo.Core;
using XIVSlothCombo.CustomComboNS;
using XIVSlothCombo.CustomComboNS.Functions;

Expand Down
6 changes: 2 additions & 4 deletions XIVSlothCombo/Combos/PvE/NIN.cs
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
using Dalamud.Game.ClientState.JobGauge.Types;
using Dalamud.Game.ClientState.Statuses;
using ECommons.DalamudServices;
using System;
using XIVSlothCombo.Combos.PvE.Content;
using XIVSlothCombo.Core;
using XIVSlothCombo.CustomComboNS;
Expand Down Expand Up @@ -215,7 +213,7 @@ protected override uint Invoke(uint actionID, uint lastComboMove, float comboTim
(IsNotEnabled(CustomComboPreset.NIN_ST_AdvancedMode_Mug) || (IsEnabled(CustomComboPreset.NIN_ST_AdvancedMode_Mug) && IsOnCooldown(Mug))))
mudraState.CurrentMudra = MudraCasting.MudraState.CastingHyoshoRanryu;

if (NINHelper.InMudra)
if (NINHelper.InMudra || mudraState.CurrentMudra != MudraCasting.MudraState.None)
{
if (mudraState.ContinueCurrentMudra(ref actionID))
return actionID;
Expand Down Expand Up @@ -488,7 +486,7 @@ protected override uint Invoke(uint actionID, uint lastComboMove, float comboTim
NINGauge? gauge = GetJobGauge<NINGauge>();
bool canWeave = CanWeave(GustSlash);
bool chargeCheck = IsNotEnabled(CustomComboPreset.NIN_AoE_AdvancedMode_Ninjitsus_ChargeHold) || (IsEnabled(CustomComboPreset.NIN_AoE_AdvancedMode_Ninjitsus_ChargeHold) && GetRemainingCharges(Ten) == 2);
bool inMudraState = HasEffect(Buffs.Mudra);
bool inMudraState = NINHelper.InMudra;
int hellfrogPool = GetOptionValue(Config.Ninki_HellfrogPooling);
int dotonTimer = GetOptionValue(Config.Advanced_DotonTimer);
int dotonThreshold = GetOptionValue(Config.Advanced_DotonHP);
Expand Down
1 change: 0 additions & 1 deletion XIVSlothCombo/Combos/PvE/RDM.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
using Dalamud.Game.ClientState.Conditions;
using XIVSlothCombo.Combos.JobHelpers;
using XIVSlothCombo.Combos.PvE.Content;
using XIVSlothCombo.CustomComboNS;
using XIVSlothCombo.CustomComboNS.Functions;
Expand Down
1 change: 0 additions & 1 deletion XIVSlothCombo/Combos/PvE/SGE.cs
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@
using XIVSlothCombo.CustomComboNS.Functions;
using static XIVSlothCombo.Combos.JobHelpers.SGEHelper;
using XIVSlothCombo.Data;
using XIVSlothCombo.Combos.JobHelpers;

namespace XIVSlothCombo.Combos.PvE
{
Expand Down
1 change: 0 additions & 1 deletion XIVSlothCombo/Combos/PvE/WAR.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
using System;
using Dalamud.Game.ClientState.JobGauge.Types;
using Dalamud.Game.ClientState.Statuses;
using XIVSlothCombo.Combos.PvE.Content;
Expand Down
2 changes: 2 additions & 0 deletions XIVSlothCombo/Combos/PvE/WHM.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
using Dalamud.Game.ClientState.JobGauge.Types;
using Dalamud.Game.ClientState.Objects.Types;
using ECommons.DalamudServices;
using System.Collections.Generic;
using System.Linq;
using XIVSlothCombo.Combos.PvE.Content;
Expand Down Expand Up @@ -202,6 +203,7 @@ protected override uint Invoke(uint actionID, uint lastComboMove, float comboTim
}
else ActionFound = StoneGlareList.Contains(actionID); //default handling

Svc.Log.Debug($"HERE");
if (ActionFound)
{
WHMGauge? gauge = GetJobGauge<WHMGauge>();
Expand Down
3 changes: 1 addition & 2 deletions XIVSlothCombo/Combos/PvP/GNBPVP.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
using System;
using XIVSlothCombo.CustomComboNS;
using XIVSlothCombo.CustomComboNS;
using XIVSlothCombo.Data;

namespace XIVSlothCombo.Combos.PvP
Expand Down
10 changes: 6 additions & 4 deletions XIVSlothCombo/Core/IconReplacer.cs
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
using System.Linq;
using System.Reflection;
using XIVSlothCombo.CustomComboNS;
using XIVSlothCombo.Extensions;
using XIVSlothCombo.Services;

namespace XIVSlothCombo.Core
Expand Down Expand Up @@ -64,8 +65,8 @@ private unsafe uint GetIconDetour(IntPtr actionManager, uint actionID)
return OriginalHook(actionID);

if (ClassLocked() ||
(DisabledJobsPVE.Any(x => x == Svc.ClientState.LocalPlayer.ClassJob.Id) && !Svc.ClientState.IsPvP) ||
(DisabledJobsPVP.Any(x => x == Svc.ClientState.LocalPlayer.ClassJob.Id) && Svc.ClientState.IsPvP))
(DisabledJobsPVE.Any(x => x == Svc.ClientState.LocalPlayer.ClassJob.RowId) && !Svc.ClientState.IsPvP) ||
(DisabledJobsPVP.Any(x => x == Svc.ClientState.LocalPlayer.ClassJob.RowId) && Svc.ClientState.IsPvP))
return OriginalHook(actionID);

uint lastComboMove = ActionManager.Instance()->Combo.Action;
Expand All @@ -76,6 +77,7 @@ private unsafe uint GetIconDetour(IntPtr actionManager, uint actionID)
{
if (combo.TryInvoke(actionID, level, lastComboMove, comboTime, out uint newActionID))
return newActionID;

}

return OriginalHook(actionID);
Expand All @@ -95,14 +97,14 @@ public unsafe static bool ClassLocked()

if (Svc.ClientState.LocalPlayer.Level <= 35) return false;

if (Svc.ClientState.LocalPlayer.ClassJob.Id is
if (Svc.ClientState.LocalPlayer.ClassJob.RowId is
(>= 8 and <= 25) or 27 or 28 or >= 30)
return false;

if (!UIState.Instance()->IsUnlockLinkUnlockedOrQuestCompleted(66049))
return false;

if ((Svc.ClientState.LocalPlayer.ClassJob.Id is 1 or 2 or 3 or 4 or 5 or 6 or 7 or 26 or 29) &&
if ((Svc.ClientState.LocalPlayer.ClassJob.RowId is 1 or 2 or 3 or 4 or 5 or 6 or 7 or 26 or 29) &&
Svc.Condition[Dalamud.Game.ClientState.Conditions.ConditionFlag.BoundByDuty] &&
Svc.ClientState.LocalPlayer.Level > 35) return true;

Expand Down
6 changes: 3 additions & 3 deletions XIVSlothCombo/Core/PluginAddressResolver.cs
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,10 @@ internal class PluginAddressResolver
/// <inheritdoc/>
public unsafe void Setup(ISigScanner scanner)
{
IsActionIdReplaceable = scanner.ScanText("40 53 48 83 EC 20 8B D9 48 8B 0D ?? ?? ?? ?? E8 ?? ?? ?? ?? 48 85 C0 74 1F");
IsActionIdReplaceable = scanner.ScanText("40 53 48 83 EC 20 8B D9 48 8B 0D ?? ?? ?? ?? E8 ?? ?? ?? ?? 48 85 C0 74 1B");

Svc.Log.Verbose("===== X I V S L O T H C O M B O =====");
Svc.Log.Verbose($"{nameof(IsActionIdReplaceable)} 0x{IsActionIdReplaceable:X}");
Svc.Log.Debug("===== X I V S L O T H C O M B O =====");
Svc.Log.Debug($"{nameof(IsActionIdReplaceable)} 0x{IsActionIdReplaceable:X}");
}
}
}
2 changes: 1 addition & 1 deletion XIVSlothCombo/CustomCombo/CustomCombo.cs
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ public unsafe bool TryInvoke(uint actionID, byte level, uint lastComboMove, floa
if (!IsEnabled(Preset))
return false;

uint classJobID = LocalPlayer!.ClassJob.Id;
uint classJobID = LocalPlayer!.ClassJob.RowId;

if (classJobID is >= 8 and <= 15)
classJobID = DOH.JobID;
Expand Down
2 changes: 1 addition & 1 deletion XIVSlothCombo/CustomCombo/Functions/Action.cs
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ internal abstract partial class CustomComboFunctions
/// <summary> Checks if the player is high enough level to use the passed Action ID. </summary>
/// <param name="actionid"> ID of the action. </param>
/// <returns></returns>
public static bool LevelChecked(uint actionid) => LocalPlayer.Level >= GetLevel(actionid) && NoBlockingStatuses(actionid) && IsActionUnlocked(actionid);
public static bool LevelChecked(uint actionid) => LocalPlayer.Level >= GetLevel(actionid) && NoBlockingStatuses(actionid) && IsActionUnlocked(actionid);

/// <summary> Checks if the player is high enough level to use the passed Trait ID. </summary>
/// <param name="traitid"> ID of the action. </param>
Expand Down
4 changes: 2 additions & 2 deletions XIVSlothCombo/CustomCombo/Functions/PlayerCharacter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
using Dalamud.Game.ClientState.Objects.SubKinds;
using ECommons.DalamudServices;
using FFXIVClientStructs.FFXIV.Client.Game.UI;
using Lumina.Excel.GeneratedSheets;
using Lumina.Excel.Sheets;
using GameMain = FFXIVClientStructs.FFXIV.Client.Game.GameMain;

namespace XIVSlothCombo.CustomComboNS.Functions
Expand Down Expand Up @@ -37,7 +37,7 @@ internal abstract partial class CustomComboFunctions
/// <returns> A value indicating a quest has been completed for a job action.</returns>
public static unsafe bool IsActionUnlocked(uint id)
{
var unlockLink = Svc.Data.GetExcelSheet<Action>().GetRow(id).UnlockLink;
var unlockLink = Svc.Data.GetExcelSheet<Action>().GetRow(id).UnlockLink.RowId;
if (unlockLink == 0) return true;
return UIState.Instance()->IsUnlockLinkUnlockedOrQuestCompleted(unlockLink);
}
Expand Down
1 change: 0 additions & 1 deletion XIVSlothCombo/CustomCombo/Functions/Status.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
using Dalamud.Game.ClientState.Objects.Types;
using Dalamud.Game.ClientState.Statuses;
using FFXIVClientStructs.FFXIV.Client.Game;
using XIVSlothCombo.Data;
using XIVSlothCombo.Services;
Expand Down
4 changes: 3 additions & 1 deletion XIVSlothCombo/CustomCombo/Functions/Target.cs
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
using Dalamud.Game.ClientState.Objects;
using Dalamud.Game.ClientState.Objects.Enums;
using Dalamud.Game.ClientState.Objects.Types;
using ECommons;
using ECommons.DalamudServices;
using FFXIVClientStructs.FFXIV.Client.System.Framework;
using Lumina.Excel.Sheets;
using System;
using System.Linq;
using System.Numerics;
Expand Down Expand Up @@ -180,7 +182,7 @@ public static bool TargetNeedsPositionals()
{
if (!HasBattleTarget()) return false;
if (TargetHasEffectAny(3808)) return false; // Directional Disregard Effect (Patch 7.01)
if (ActionWatching.BNpcSheet.TryGetValue(CurrentTarget.DataId, out var bnpc) && !bnpc.Unknown10) return true;
if (Svc.Data.Excel.GetSheet<BNpcBase>().TryGetFirst(x => x.RowId == CurrentTarget.DataId, out var bnpc) && !bnpc.IsOmnidirectional) return true;
return false;
}

Expand Down
Loading

0 comments on commit 366edbc

Please sign in to comment.