Assignment(nameof(SkipStepConditions.Flying), skipStepConditions.Flying,
emptyStep.Flying)
.AsSyntaxNodeOrToken(),
+ Assignment(nameof(SkipStepConditions.Diving), skipStepConditions.Diving,
+ emptyStep.Diving)
+ .AsSyntaxNodeOrToken(),
Assignment(nameof(SkipStepConditions.Chocobo), skipStepConditions.Chocobo,
emptyStep.Chocobo)
.AsSyntaxNodeOrToken(),
public IList<QuestWorkValue?> CompletionQuestVariablesFlags { get; set; } = new List<QuestWorkValue?>();
public ELockedSkipCondition? Flying { get; set; }
public ELockedSkipCondition? Chocobo { get; set; }
+ public bool? Diving { get; set; }
public bool NotTargetable { get; set; }
public List<ushort> InTerritory { get; set; } = [];
public List<ushort> NotInTerritory { get; set; } = [];
return (CompletionQuestVariablesFlags.Count > 0 && CompletionQuestVariablesFlags.Any(x => x != null)) ||
Flying != null ||
Chocobo != null ||
+ Diving != null ||
NotTargetable ||
InTerritory.Count > 0 ||
NotInTerritory.Count > 0 ||
public override string ToString()
{
return
- $"{nameof(Never)}: {Never}, {nameof(CompletionQuestVariablesFlags)}: {CompletionQuestVariablesFlags}, {nameof(Flying)}: {Flying}, {nameof(Chocobo)}: {Chocobo}, {nameof(NotTargetable)}: {NotTargetable}, {nameof(InTerritory)}: {string.Join(" ", InTerritory)}, {nameof(NotInTerritory)}: {string.Join(" ", NotInTerritory)}, {nameof(Item)}: {Item}, {nameof(QuestsAccepted)}: {string.Join(" ", QuestsAccepted)}, {nameof(QuestsCompleted)}: {string.Join(" ", QuestsCompleted)}, {nameof(NotNamePlateIconId)}: {string.Join(" ", NotNamePlateIconId)}, {nameof(NearPosition)}: {NearPosition}, {nameof(ExtraCondition)}: {ExtraCondition}";
+ $"{nameof(Never)}: {Never}, {nameof(CompletionQuestVariablesFlags)}: {CompletionQuestVariablesFlags}, {nameof(Flying)}: {Flying}, {nameof(Chocobo)}: {Chocobo}, {nameof(Diving)}: {Diving}, {nameof(NotTargetable)}: {NotTargetable}, {nameof(InTerritory)}: {string.Join(" ", InTerritory)}, {nameof(NotInTerritory)}: {string.Join(" ", NotInTerritory)}, {nameof(Item)}: {Item}, {nameof(QuestsAccepted)}: {string.Join(" ", QuestsAccepted)}, {nameof(QuestsCompleted)}: {string.Join(" ", QuestsCompleted)}, {nameof(NotNamePlateIconId)}: {string.Join(" ", NotNamePlateIconId)}, {nameof(NearPosition)}: {NearPosition}, {nameof(ExtraCondition)}: {ExtraCondition}";
}
}
using System.Collections.Generic;
using System.Linq;
using System.Numerics;
+using Dalamud.Game.ClientState.Conditions;
using Dalamud.Game.ClientState.Objects.Types;
using Dalamud.Plugin.Services;
using FFXIVClientStructs.FFXIV.Client.Game;
AetheryteFunctions aetheryteFunctions,
GameFunctions gameFunctions,
QuestFunctions questFunctions,
- IClientState clientState) : TaskExecutor<SkipTask>
+ IClientState clientState,
+ ICondition condition) : TaskExecutor<SkipTask>
{
protected override unsafe bool Start()
{
return true;
}
+ if (skipConditions.Diving == true && condition[ConditionFlag.Diving])
+ {
+ logger.LogInformation("Skipping step, as you're currently diving underwater");
+ return true;
+ }
+
+ if (skipConditions.Diving == false && !condition[ConditionFlag.Diving])
+ {
+ logger.LogInformation("Skipping step, as you're not currently diving underwater");
+ return true;
+ }
+
if (skipConditions.InTerritory.Count > 0 &&
skipConditions.InTerritory.Contains(clientState.TerritoryType))
{