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

Commit

Permalink
fix: casting and some ui preview fix.
Browse files Browse the repository at this point in the history
  • Loading branch information
ArchiDog1998 committed Mar 9, 2024
1 parent 0792e9f commit 3695114
Show file tree
Hide file tree
Showing 9 changed files with 32 additions and 10 deletions.
4 changes: 3 additions & 1 deletion Resources/HostileCastingArea.json
Original file line number Diff line number Diff line change
Expand Up @@ -517,5 +517,7 @@
32945,
22247,
22238,
33077
33077,
34694,
34695
]
13 changes: 13 additions & 0 deletions Resources/NoCastingStatus.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
[
639,
960,
1049,
1133,
1599,
3522,
1072,
1384,
2657,
3793,
3802
]
4 changes: 2 additions & 2 deletions Resources/RotationSolverRecord.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"ClickingCount": 99386,
"SayingHelloCount": 167,
"ClickingCount": 100914,
"SayingHelloCount": 168,
"SaidUsers": []
}
4 changes: 3 additions & 1 deletion RotationSolver/Commands/RSCommands_Actions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,9 @@ internal static unsafe bool CanDoAnAction(bool isGCD)
internal static uint _lastActionID;
public static void DoAction()
{
if (Player.Object.HasStatus(false, [..OtherConfiguration.NoCastingStatus.Select(i => (StatusID)i)]))
var statusTimes = Player.Object.StatusTimes(false, [.. OtherConfiguration.NoCastingStatus.Select(i => (StatusID)i)]);

if (statusTimes.Any() && statusTimes.Min() > Player.Object.TotalCastTime - Player.Object.CurrentCastTime && statusTimes.Min() < 5)
{
return;
}
Expand Down
4 changes: 3 additions & 1 deletion RotationSolver/Localization/Localization.json
Original file line number Diff line number Diff line change
Expand Up @@ -391,5 +391,7 @@
"RotationSolver.Data.UiString.TimelineNeedATarget": "Need a target",
"RotationSolver.Data.UiString.TimelineTargetByTarget": "Target by target",
"RotationSolver.Data.UiString.TimelinePlaceOnTarget": "Place On Target",
"RotationSolver.Data.UiString.TimelinePositionOffset": "Position Offset"
"RotationSolver.Data.UiString.TimelinePositionOffset": "Position Offset",
"RotationSolver.Data.UiString.ConfigWindow_List_NoCastingStatus": "No Casting debuffs",
"RotationSolver.Data.UiString.ConfigWindow_List_NoCastingStatusDesc": "No Casting debuffs List"
}
2 changes: 1 addition & 1 deletion RotationSolver/UI/RotationConfigWindow.cs
Original file line number Diff line number Diff line change
Expand Up @@ -1938,7 +1938,7 @@ private static void DrawListStatuses()
ImGui.SetNextItemWidth(ImGui.GetWindowWidth());
ImGui.InputTextWithHint("##Searching the action", UiString.ConfigWindow_List_StatusNameOrId.Local(), ref _statusSearching, 128);

using var table = ImRaii.Table("Rotation Solver List Statuses", 3, ImGuiTableFlags.BordersInner | ImGuiTableFlags.Resizable | ImGuiTableFlags.SizingStretchSame);
using var table = ImRaii.Table("Rotation Solver List Statuses", 4, ImGuiTableFlags.BordersInner | ImGuiTableFlags.Resizable | ImGuiTableFlags.SizingStretchSame);
if (table)
{
ImGui.TableSetupScrollFreeze(0, 1);
Expand Down
5 changes: 3 additions & 2 deletions RotationSolver/UI/TimelineDrawer.cs
Original file line number Diff line number Diff line change
Expand Up @@ -768,10 +768,11 @@ private static void DrawingGetterDraw(BaseDrawingGetter drawing, uint[] actionId
ImGui.SameLine();
if (objectDrawing.IsActorEffect)
{
index = Array.IndexOf(_actorNames, objectDrawing.Path.UnLockOn());
index = Array.IndexOf(_actorNames.Select(n => n.StartsWith("chn_") ? n.Channeling() : n.LockOn()).ToArray(), objectDrawing.Path);
if (ImGuiHelper.SelectableCombo("##PathName" + drawing.GetHashCode(), _actorShowNames, ref index))
{
objectDrawing.Path = _actorNames[index].LockOn();
var actorName = _actorNames[index];
objectDrawing.Path = actorName.StartsWith("chn_") ? actorName.Channeling() : actorName.LockOn();
}
}
else
Expand Down
4 changes: 3 additions & 1 deletion RotationSolver/Updaters/PreviewUpdater.cs
Original file line number Diff line number Diff line change
Expand Up @@ -53,13 +53,15 @@ private static void UpdateEntry()

private static unsafe void UpdateCancelCast()
{
if (!Player.Object.IsCasting) return;

var tarDead = Service.Config.UseStopCasting
&& Svc.Objects.SearchById(Player.Object.CastTargetObjectId) is BattleChara b
&& b.IsEnemy() && b.CurrentHp == 0;

var statusTimes = Player.Object.StatusTimes(false, [.. OtherConfiguration.NoCastingStatus.Select(i => (StatusID)i)]);

var stopDueStatus = statusTimes.Any() && statusTimes.Min() > Player.Object.TotalCastTime - Player.Object.CurrentCastTime;
var stopDueStatus = statusTimes.Any() && statusTimes.Min() > Player.Object.TotalCastTime - Player.Object.CurrentCastTime && statusTimes.Min() < 5;

if (_tarStopCastDelay.Delay(tarDead) || stopDueStatus)
{
Expand Down
2 changes: 1 addition & 1 deletion XIVPainter

0 comments on commit 3695114

Please sign in to comment.