"Answer": "TEXT_STMBDA416_02515_A1_000_103"
}
],
- "$": "QW: 0 0 0 0 0 0 -> QW: 17 0 0 0 0 32",
"CompletionQuestVariablesFlags": [
null,
null,
"Answer": "TEXT_STMBDA416_02515_A1_120_070"
}
],
- "$": "QW: 17 0 0 0 0 32 -> QW: 33 0 16 0 0 96",
"CompletionQuestVariablesFlags": [
null,
null,
},
"TerritoryId": 622,
"InteractionType": "Interact",
- "$": "QW: 33 0 16 0 0 96 -> QW: 49 16 16 0 0 112",
"CompletionQuestVariablesFlags": [
null,
null,
"Z": -508.20172
},
"TerritoryId": 622,
- "InteractionType": "SinglePlayerDuty"
+ "InteractionType": "SinglePlayerDuty",
+ "SinglePlayerDutyOptions": {
+ "Enabled": true,
+ "TestedBossModVersion": "0.1.0.1"
+ }
}
]
},
using System;
using System.Collections.Generic;
using System.Linq;
+using System.Numerics;
using Dalamud.Game.ClientState.Conditions;
using Dalamud.Game.ClientState.Objects;
using Dalamud.Game.ClientState.Objects.Types;
internal static class SinglePlayerDuty
{
- private static class SpecialTerritories
+ internal static class SpecialTerritories
{
public const ushort Lahabrea = 1052;
public const ushort ItsProbablyATrap = 665;
+ public const ushort Naadam = 688;
}
internal sealed class Factory(
throw new TaskException("Failed to get content finder condition for solo instance");
yield return new StartSinglePlayerDuty(cfcData.ContentFinderConditionId);
- yield return new EnableAi();
+ yield return new EnableAi(cfcData.TerritoryId == SpecialTerritories.Naadam);
if (cfcData.TerritoryId == SpecialTerritories.Lahabrea)
{
yield return new SetTarget(14643);
"Wait(resurrection)");
yield return new EnableAi();
}
- else if (cfcData.TerritoryId == SpecialTerritories.ItsProbablyATrap)
+ else if (cfcData.TerritoryId is SpecialTerritories.ItsProbablyATrap)
{
yield return new WaitCondition.Task(() => DutyActionsAvailable() || clientState.TerritoryType != SpecialTerritories.ItsProbablyATrap,
"Wait(Phase 2)");
yield return new EnableAi(true);
}
+ else if (cfcData.TerritoryId is SpecialTerritories.Naadam)
+ {
+ yield return new WaitCondition.Task(
+ () =>
+ {
+ if (clientState.TerritoryType != SpecialTerritories.Naadam)
+ return true;
+
+ var pos = clientState.LocalPlayer?.Position ?? default;
+ return (new Vector3(352.01f, -1.45f, 288.59f) - pos).Length() < 10f;
+ },
+ "Wait(moving to Ovoo)");
+ yield return new Mount.UnmountTask();
+ yield return new EnableAi();
+ }
yield return new WaitSinglePlayerDuty(cfcData.ContentFinderConditionId);
yield return new DisableAi();
if (_condition[ConditionFlag.Unconscious] &&
_condition[ConditionFlag.SufferingStatusAffliction63] &&
- _clientState.TerritoryType == SinglePlayerDuty.LahabreaTerritoryId)
+ _clientState.TerritoryType == SinglePlayerDuty.SpecialTerritories.Lahabrea)
return false; // needed to process the tasks
return _condition[ConditionFlag.Occupied] || _condition[ConditionFlag.Occupied30] ||