"InteractionType": "UseItem",
"ItemId": 2003234,
"GroundTarget": true,
+ "CompletionQuestVariablesFlags": [
+ null,
+ null,
+ null,
+ null,
+ null,
+ 128
+ ],
"$": "QuestValues after: 1 16 0 0 0 128"
},
{
"TerritoryId": 961,
"InteractionType": "UseItem",
"ItemId": 2003234,
- "GroundTarget": true
+ "GroundTarget": true,
+ "CompletionQuestVariablesFlags": [
+ null,
+ null,
+ null,
+ null,
+ null,
+ 64
+ ]
}
]
},
-using Dalamud.Game.ClientState.Conditions;
+using System;
+using Dalamud.Game.ClientState.Conditions;
using Dalamud.Plugin.Services;
using Microsoft.Extensions.Logging;
using Questionable.Data;
{
private ushort _territoryId;
private bool _mountTriggered;
+ private DateTime _retryAt = DateTime.MinValue;
public ITask With(ushort territoryId)
{
logger.LogInformation("Step wants a mount, trying to mount in territory {Id}...", _territoryId);
if (!condition[ConditionFlag.InCombat])
{
- _mountTriggered = gameFunctions.Mount();
+ _retryAt = DateTime.Now.AddSeconds(0.5);
return true;
}
public ETaskResult Update()
{
+ if (_mountTriggered && !condition[ConditionFlag.Mounted] && DateTime.Now > _retryAt)
+ {
+ logger.LogInformation("Not mounted, retrying...");
+ _mountTriggered = false;
+ _retryAt = DateTime.MaxValue;
+ }
+
if (!_mountTriggered)
{
if (gameFunctions.HasStatusPreventingSprintOrMount())
}
_mountTriggered = gameFunctions.Mount();
+ _retryAt = DateTime.Now.AddSeconds(5);
return ETaskResult.StillRunning;
}