diff --git a/Directory.Build.targets b/Directory.Build.targets index 5b421e20..c0b49f3b 100644 --- a/Directory.Build.targets +++ b/Directory.Build.targets @@ -1,5 +1,5 @@ - - 4.9 + + 4.14 diff --git a/GatheringPathRenderer/.gitignore b/GatheringPathRenderer/.gitignore new file mode 100644 index 00000000..a60a458a --- /dev/null +++ b/GatheringPathRenderer/.gitignore @@ -0,0 +1 @@ +/dist diff --git a/GatheringPathRenderer/DalamudPackager.targets b/GatheringPathRenderer/DalamudPackager.targets new file mode 100644 index 00000000..7f129a87 --- /dev/null +++ b/GatheringPathRenderer/DalamudPackager.targets @@ -0,0 +1,21 @@ + + + + + + + + + + diff --git a/GatheringPathRenderer/GatheringPathRenderer.csproj b/GatheringPathRenderer/GatheringPathRenderer.csproj index 6009a518..73d05cbe 100644 --- a/GatheringPathRenderer/GatheringPathRenderer.csproj +++ b/GatheringPathRenderer/GatheringPathRenderer.csproj @@ -1,4 +1,11 @@ + + 0.1 + dist + $(SolutionDir)=X:\ + x64 + + @@ -6,4 +13,5 @@ + diff --git a/GatheringPathRenderer/GatheringPathRenderer.json b/GatheringPathRenderer/GatheringPathRenderer.json index 8d68d1d8..56f91709 100644 --- a/GatheringPathRenderer/GatheringPathRenderer.json +++ b/GatheringPathRenderer/GatheringPathRenderer.json @@ -1,6 +1,7 @@ { "Name": "GatheringPathRenderer", "Author": "Liza Carvelli", - "Punchline": "dev only plugin: Renders gathering location.", - "Description": "dev only plugin: Renders gathering location (without ECommons polluting the entire normal project)." + "Punchline": "[Questionable dev plugin]: Renders gathering location.", + "Description": "[Questionable dev plugin]: Renders gathering location using Splatoon.", + "RepoUrl": "https://git.carvel.li/liza/Questionable/src/branch/master/GatheringPathRenderer" } diff --git a/GatheringPathRenderer/RendererPlugin.cs b/GatheringPathRenderer/RendererPlugin.cs index 5ef430ea..93c666a8 100644 --- a/GatheringPathRenderer/RendererPlugin.cs +++ b/GatheringPathRenderer/RendererPlugin.cs @@ -1,6 +1,7 @@ using System; using System.Collections; using System.Collections.Generic; +using System.Diagnostics.CodeAnalysis; using System.IO; using System.Linq; using System.Text.Encodings.Web; @@ -17,11 +18,11 @@ using ECommons.Schedulers; using ECommons.SplatoonAPI; using GatheringPathRenderer.Windows; using LLib.GameData; -using Questionable.Model; using Questionable.Model.Gathering; namespace GatheringPathRenderer; +[SuppressMessage("ReSharper", "ClassNeverInstantiated.Global")] public sealed class RendererPlugin : IDalamudPlugin { private const long OnTerritoryChange = -2; @@ -56,8 +57,10 @@ public sealed class RendererPlugin : IDalamudPlugin _editorCommands = new EditorCommands(this, dataManager, commandManager, targetManager, clientState, chatGui, configuration); - _editorWindow = new EditorWindow(this, _editorCommands, dataManager, targetManager, clientState, objectTable) + var configWindow = new ConfigWindow(pluginInterface, configuration); + _editorWindow = new EditorWindow(this, _editorCommands, dataManager, targetManager, clientState, objectTable, configWindow) { IsOpen = true }; + _windowSystem.AddWindow(configWindow); _windowSystem.AddWindow(_editorWindow); _currentClassJob = (EClassJob?)_clientState.LocalPlayer?.ClassJob.RowId ?? EClassJob.Adventurer; @@ -78,6 +81,7 @@ public sealed class RendererPlugin : IDalamudPlugin { get { +#if DEBUG DirectoryInfo? solutionDirectory = _pluginInterface.AssemblyLocation.Directory?.Parent?.Parent?.Parent; if (solutionDirectory != null) { @@ -88,6 +92,12 @@ public sealed class RendererPlugin : IDalamudPlugin } throw new Exception("Unable to resolve project path"); +#else + var allPluginsDirectory = _pluginInterface.ConfigFile.Directory ?? throw new Exception("Unknown directory for plugin configs"); + return allPluginsDirectory + .CreateSubdirectory("Questionable") + .CreateSubdirectory("GatheringPaths"); +#endif } } @@ -103,12 +113,18 @@ public sealed class RendererPlugin : IDalamudPlugin try { - foreach (var expansionFolder in ExpansionData.ExpansionFolders.Values) +#if DEBUG + foreach (var expansionFolder in Questionable.Model.ExpansionData.ExpansionFolders.Values) LoadFromDirectory( new DirectoryInfo(Path.Combine(PathsDirectory.FullName, expansionFolder))); - _pluginLog.Information( $"Loaded {_gatheringLocations.Count} gathering root locations from project directory"); +#else + LoadFromDirectory(PathsDirectory); + _pluginLog.Information( + $"Loaded {_gatheringLocations.Count} gathering root locations from {PathsDirectory.FullName} directory"); +#endif + } catch (Exception e) { diff --git a/GatheringPathRenderer/Windows/ConfigWindow.cs b/GatheringPathRenderer/Windows/ConfigWindow.cs new file mode 100644 index 00000000..0e9ba04c --- /dev/null +++ b/GatheringPathRenderer/Windows/ConfigWindow.cs @@ -0,0 +1,33 @@ +using Dalamud.Interface.Windowing; +using Dalamud.Plugin; +using ImGuiNET; + +namespace GatheringPathRenderer.Windows; + +internal sealed class ConfigWindow : Window +{ + private readonly IDalamudPluginInterface _pluginInterface; + private readonly Configuration _configuration; + + public ConfigWindow(IDalamudPluginInterface pluginInterface, Configuration configuration) + : base("Gathering Path Config", ImGuiWindowFlags.AlwaysAutoResize) + { + _pluginInterface = pluginInterface; + _configuration = configuration; + + AllowPinning = false; + AllowClickthrough = false; + } + + public override void Draw() + { + string authorName = _configuration.AuthorName; + if (ImGui.InputText("Author name for new files", ref authorName, 256)) + { + _configuration.AuthorName = authorName; + Save(); + } + } + + private void Save() => _pluginInterface.SavePluginConfig(_configuration); +} diff --git a/GatheringPathRenderer/Windows/EditorWindow.cs b/GatheringPathRenderer/Windows/EditorWindow.cs index 1150558f..c117f4a9 100644 --- a/GatheringPathRenderer/Windows/EditorWindow.cs +++ b/GatheringPathRenderer/Windows/EditorWindow.cs @@ -6,6 +6,7 @@ using System.Numerics; using Dalamud.Game.ClientState.Objects; using Dalamud.Game.ClientState.Objects.Enums; using Dalamud.Game.ClientState.Objects.Types; +using Dalamud.Interface; using Dalamud.Interface.Colors; using Dalamud.Interface.Windowing; using Dalamud.Plugin.Services; @@ -32,8 +33,8 @@ internal sealed class EditorWindow : Window _targetLocation; public EditorWindow(RendererPlugin plugin, EditorCommands editorCommands, IDataManager dataManager, - ITargetManager targetManager, IClientState clientState, IObjectTable objectTable) - : base("Gathering Path Editor###QuestionableGatheringPathEditor", + ITargetManager targetManager, IClientState clientState, IObjectTable objectTable, ConfigWindow configWindow) + : base($"Gathering Path Editor {typeof(EditorWindow).Assembly.GetName().Version!.ToString(2)}###QuestionableGatheringPathEditor", ImGuiWindowFlags.NoFocusOnAppearing | ImGuiWindowFlags.NoNavFocus | ImGuiWindowFlags.AlwaysAutoResize) { _plugin = plugin; @@ -48,6 +49,20 @@ internal sealed class EditorWindow : Window MinimumSize = new Vector2(300, 100), }; + TitleBarButtons.Add(new TitleBarButton + { + Icon = FontAwesomeIcon.Cog, + IconOffset = new Vector2(1.5f, 1), + Click = _ => configWindow.IsOpen = true, + Priority = int.MinValue, + ShowTooltip = () => + { + ImGui.BeginTooltip(); + ImGui.Text("Open Configuration"); + ImGui.EndTooltip(); + } + }); + RespectCloseHotkey = false; ShowCloseButton = false; AllowPinning = false; diff --git a/GatheringPaths/4.x - Stormblood/The Azim Steppe/544_Onsal Hakair_MIN.json b/GatheringPaths/4.x - Stormblood/The Azim Steppe/544_Onsal Hakair_MIN.json new file mode 100644 index 00000000..d726e131 --- /dev/null +++ b/GatheringPaths/4.x - Stormblood/The Azim Steppe/544_Onsal Hakair_MIN.json @@ -0,0 +1,61 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/GatheringPaths/gatheringlocation-v1.json", + "Author": "plogon_enjoyer", + "Steps": [ + { + "TerritoryId": 622, + "InteractionType": "None", + "AetheryteShortcut": "Azim Steppe - Dawn Throne" + } + ], + "Groups": [ + { + "Nodes": [ + { + "DataId": 32323, + "Locations": [ + { + "Position": { + "X": -54.36381, + "Y": 55.83623, + "Z": -357.2043 + } + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 32325, + "Locations": [ + { + "Position": { + "X": -56.99122, + "Y": 59.4855, + "Z": -368.9053 + } + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 32324, + "Locations": [ + { + "Position": { + "X": -83.84797, + "Y": 60.70433, + "Z": -366.7615 + } + } + ] + } + ] + } + ] +} diff --git a/GatheringPaths/4.x - Stormblood/The Azim Steppe/548_Onsal Hakair_BTN.json b/GatheringPaths/4.x - Stormblood/The Azim Steppe/548_Onsal Hakair_BTN.json new file mode 100644 index 00000000..ede6b9c6 --- /dev/null +++ b/GatheringPaths/4.x - Stormblood/The Azim Steppe/548_Onsal Hakair_BTN.json @@ -0,0 +1,61 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/GatheringPaths/gatheringlocation-v1.json", + "Author": "plogon_enjoyer", + "Steps": [ + { + "TerritoryId": 622, + "InteractionType": "None", + "AetheryteShortcut": "Azim Steppe - Dawn Throne" + } + ], + "Groups": [ + { + "Nodes": [ + { + "DataId": 32335, + "Locations": [ + { + "Position": { + "X": -80.14488, + "Y": 58.18221, + "Z": -358.3333 + } + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 32336, + "Locations": [ + { + "Position": { + "X": -58.9046, + "Y": 52.59887, + "Z": -350.7942 + } + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 32337, + "Locations": [ + { + "Position": { + "X": -81.5958, + "Y": 51.05495, + "Z": -334.9854 + } + } + ] + } + ] + } + ] +} diff --git a/GatheringPaths/7.x - Dawntrail/Shaaloani/1002_Yawtanane Grasslands_BTN.json b/GatheringPaths/7.x - Dawntrail/Shaaloani/1002_Yawtanane Grasslands_BTN.json new file mode 100644 index 00000000..44d84892 --- /dev/null +++ b/GatheringPaths/7.x - Dawntrail/Shaaloani/1002_Yawtanane Grasslands_BTN.json @@ -0,0 +1,138 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/GatheringPaths/gatheringlocation-v1.json", + "Author": "liza", + "Steps": [ + { + "TerritoryId": 1190, + "InteractionType": "None" + } + ], + "Groups": [ + { + "Nodes": [ + { + "DataId": 34920, + "Locations": [ + { + "Position": { + "X": 192.6021, + "Y": 12.31054, + "Z": 631.2545 + } + }, + { + "Position": { + "X": 194.8373, + "Y": 12.50387, + "Z": 646.5401 + } + }, + { + "Position": { + "X": 180.8447, + "Y": 12.43262, + "Z": 610.7131 + } + } + ] + }, + { + "DataId": 34919, + "Locations": [ + { + "Position": { + "X": 186.171, + "Y": 12.54104, + "Z": 634.9042 + } + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 34917, + "Locations": [ + { + "Position": { + "X": 39.45634, + "Y": -0.06042051, + "Z": 502.3853 + } + } + ] + }, + { + "DataId": 34918, + "Locations": [ + { + "Position": { + "X": 46.03248, + "Y": -0.7049216, + "Z": 491.6059 + } + }, + { + "Position": { + "X": 36.15481, + "Y": -0.0501074, + "Z": 505.9388 + } + }, + { + "Position": { + "X": 24.72226, + "Y": 0.5922582, + "Z": 528.0809 + } + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 34922, + "Locations": [ + { + "Position": { + "X": 2.302937, + "Y": -4.586716, + "Z": 687.4797 + } + }, + { + "Position": { + "X": 30.02284, + "Y": -2.447479, + "Z": 704.4326 + } + }, + { + "Position": { + "X": 41.59287, + "Y": -0.8454803, + "Z": 692.0099 + } + } + ] + }, + { + "DataId": 34921, + "Locations": [ + { + "Position": { + "X": 18.47237, + "Y": -2.987581, + "Z": 690.8011 + } + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/GatheringPaths/7.x - Dawntrail/Shaaloani/985_Eshceyaani Wilds_MIN.json b/GatheringPaths/7.x - Dawntrail/Shaaloani/985_Eshceyaani Wilds_MIN.json new file mode 100644 index 00000000..238b6568 --- /dev/null +++ b/GatheringPaths/7.x - Dawntrail/Shaaloani/985_Eshceyaani Wilds_MIN.json @@ -0,0 +1,156 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/GatheringPaths/gatheringlocation-v1.json", + "Author": "liza", + "Steps": [ + { + "TerritoryId": 1190, + "InteractionType": "None" + } + ], + "Groups": [ + { + "Nodes": [ + { + "DataId": 34819, + "Locations": [ + { + "Position": { + "X": -86.69859, + "Y": -8.177663, + "Z": 572.7712 + }, + "MinimumAngle": 45, + "MaximumAngle": 175 + } + ] + }, + { + "DataId": 34820, + "Locations": [ + { + "Position": { + "X": -83.81214, + "Y": -8.291362, + "Z": 581.595 + }, + "MinimumAngle": 80, + "MaximumAngle": 175 + }, + { + "Position": { + "X": -88.70462, + "Y": -8.511888, + "Z": 578.6565 + }, + "MinimumAngle": 35, + "MaximumAngle": 150 + }, + { + "Position": { + "X": -81.00482, + "Y": -7.330131, + "Z": 574.7444 + }, + "MinimumAngle": 150, + "MaximumAngle": 245 + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 34817, + "Locations": [ + { + "Position": { + "X": -264.2871, + "Y": -21.57944, + "Z": 593.6306 + }, + "MinimumAngle": 130, + "MaximumAngle": 255, + "MinimumDistance": 1.5, + "MaximumDistance": 3 + } + ] + }, + { + "DataId": 34818, + "Locations": [ + { + "Position": { + "X": -266.9412, + "Y": -21.20901, + "Z": 593.9532 + }, + "MinimumAngle": 70, + "MaximumAngle": 225 + }, + { + "Position": { + "X": -268.0496, + "Y": -21.79604, + "Z": 598.2532 + }, + "MinimumAngle": -45, + "MaximumAngle": 160 + }, + { + "Position": { + "X": -260.2841, + "Y": -22.10003, + "Z": 595.726 + }, + "MinimumAngle": 160, + "MaximumAngle": 330 + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 34815, + "Locations": [ + { + "Position": { + "X": -276.2859, + "Y": -3.218076, + "Z": 437.6798 + } + } + ] + }, + { + "DataId": 34816, + "Locations": [ + { + "Position": { + "X": -277.8067, + "Y": -2.664376, + "Z": 433.8469 + } + }, + { + "Position": { + "X": -273.7089, + "Y": -2.972111, + "Z": 434.3939 + } + }, + { + "Position": { + "X": -281.1727, + "Y": -2.682134, + "Z": 433.9476 + } + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/LLib b/LLib index 783fea97..b1059871 160000 --- a/LLib +++ b/LLib @@ -1 +1 @@ -Subproject commit 783fea977a2524dd63e717367fc026c52efe6c23 +Subproject commit b1059871154b84401020c0072fd089fcc022fb77 diff --git a/QuestPathGenerator/RoslynElements/AlliedSocietyDailyIdExtensions.cs b/QuestPathGenerator/RoslynElements/AlliedSocietyDailyIdExtensions.cs new file mode 100644 index 00000000..535b66b3 --- /dev/null +++ b/QuestPathGenerator/RoslynElements/AlliedSocietyDailyIdExtensions.cs @@ -0,0 +1,26 @@ +using Microsoft.CodeAnalysis; +using Microsoft.CodeAnalysis.CSharp; +using Microsoft.CodeAnalysis.CSharp.Syntax; +using Questionable.Model.Questing; +using static Microsoft.CodeAnalysis.CSharp.SyntaxFactory; +using static Questionable.QuestPathGenerator.RoslynShortcuts; + +namespace Questionable.QuestPathGenerator.RoslynElements; + +internal static class AlliedSocietyDailyIdExtensions +{ + public static ExpressionSyntax ToExpressionSyntax(this AlliedSocietyDailyId alliedSocietyDailyId) + { + return ObjectCreationExpression( + IdentifierName(nameof(AlliedSocietyDailyId))) + .WithArgumentList( + ArgumentList( + SeparatedList( + new SyntaxNodeOrToken[] + { + Argument(LiteralValue(alliedSocietyDailyId.AlliedSociety)), + Token(SyntaxKind.CommaToken), + Argument(LiteralValue(alliedSocietyDailyId.Rank)), + }))); + } +} diff --git a/QuestPathGenerator/RoslynElements/ComplexCombatDataExtensions.cs b/QuestPathGenerator/RoslynElements/ComplexCombatDataExtensions.cs index f683890f..05afb26c 100644 --- a/QuestPathGenerator/RoslynElements/ComplexCombatDataExtensions.cs +++ b/QuestPathGenerator/RoslynElements/ComplexCombatDataExtensions.cs @@ -21,6 +21,9 @@ internal static class ComplexCombatDataExtensions Assignment(nameof(ComplexCombatData.DataId), complexCombatData.DataId, emptyData.DataId) .AsSyntaxNodeOrToken(), + Assignment(nameof(ComplexCombatData.NameId), complexCombatData.NameId, + emptyData.NameId) + .AsSyntaxNodeOrToken(), Assignment(nameof(ComplexCombatData.MinimumKillCount), complexCombatData.MinimumKillCount, emptyData.MinimumKillCount) .AsSyntaxNodeOrToken(), diff --git a/QuestPathGenerator/RoslynElements/QuestStepExtensions.cs b/QuestPathGenerator/RoslynElements/QuestStepExtensions.cs index 12b27ef4..6b76bb95 100644 --- a/QuestPathGenerator/RoslynElements/QuestStepExtensions.cs +++ b/QuestPathGenerator/RoslynElements/QuestStepExtensions.cs @@ -117,6 +117,9 @@ internal static class QuestStepExtensions Assignment(nameof(QuestStep.ContentFinderConditionId), step.ContentFinderConditionId, emptyStep.ContentFinderConditionId) .AsSyntaxNodeOrToken(), + Assignment(nameof(QuestStep.AutoDutyEnabled), + step.AutoDutyEnabled, emptyStep.AutoDutyEnabled) + .AsSyntaxNodeOrToken(), Assignment(nameof(QuestStep.SkipConditions), step.SkipConditions, emptyStep.SkipConditions) .AsSyntaxNodeOrToken(), diff --git a/QuestPathGenerator/RoslynShortcuts.cs b/QuestPathGenerator/RoslynShortcuts.cs index 4147e47b..c5fb47f5 100644 --- a/QuestPathGenerator/RoslynShortcuts.cs +++ b/QuestPathGenerator/RoslynShortcuts.cs @@ -51,6 +51,7 @@ public static class RoslynShortcuts QuestId questId => questId.ToExpressionSyntax(), LeveId leveId => leveId.ToExpressionSyntax(), SatisfactionSupplyNpcId satisfactionSupplyNpcId => satisfactionSupplyNpcId.ToExpressionSyntax(), + AlliedSocietyDailyId alliedSocietyDailyId => alliedSocietyDailyId.ToExpressionSyntax(), Vector3 vector => vector.ToExpressionSyntax(), AethernetShortcut aethernetShortcut => aethernetShortcut.ToExpressionSyntax(), ChatMessage chatMessage => chatMessage.ToExpressionSyntax(), diff --git a/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1325_Rubbish for Refuse.json b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1325_Rubbish for Refuse.json new file mode 100644 index 00000000..e84dfd38 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1325_Rubbish for Refuse.json @@ -0,0 +1,38 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "Disabled": true, + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1005928, + "Position": { + "X": 7.095398, + "Y": 16.167778, + "Z": -188.67786 + }, + "TerritoryId": 180, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1005928, + "Position": { + "X": 7.095398, + "Y": 16.167778, + "Z": -188.67786 + }, + "TerritoryId": 180, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1326_No Such Thing as a Free Lunch.json b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1326_No Such Thing as a Free Lunch.json new file mode 100644 index 00000000..95440de5 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1326_No Such Thing as a Free Lunch.json @@ -0,0 +1,110 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1005928, + "Position": { + "X": 7.095398, + "Y": 16.167778, + "Z": -188.67786 + }, + "TerritoryId": 180, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": 11.243606, + "Y": 49.8394, + "Z": -374.39398 + }, + "TerritoryId": 180, + "InteractionType": "WalkTo", + "Fly": true, + "SkipConditions": { + "StepIf": { + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + } + } + }, + { + "DataId": 2003774, + "Position": { + "X": 10.269287, + "Y": 49.82068, + "Z": -375.5398 + }, + "TerritoryId": 180, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 2004022, + "Position": { + "X": 39.139404, + "Y": 48.2948, + "Z": -342.33618 + }, + "TerritoryId": 180, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 8 + ] + }, + { + "DataId": 2004020, + "Position": { + "X": 51.102417, + "Y": 48.2948, + "Z": -349.50793 + }, + "TerritoryId": 180, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1005928, + "Position": { + "X": 7.095398, + "Y": 16.167778, + "Z": -188.67786 + }, + "TerritoryId": 180, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1327_Finger Licking Good.json b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1327_Finger Licking Good.json new file mode 100644 index 00000000..5354bb26 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1327_Finger Licking Good.json @@ -0,0 +1,76 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1005928, + "Position": { + "X": 7.095398, + "Y": 16.167778, + "Z": -188.67786 + }, + "TerritoryId": 180, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": -1.668298, + "Y": 48.422268, + "Z": -312.28842 + }, + "TerritoryId": 180, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "ComplexCombatData": [ + { + "DataId": 327, + "MinimumKillCount": 3, + "RewardItemId": 2001266, + "RewardItemCount": 3 + } + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1005932, + "Position": { + "X": -1.236023, + "Y": 33.38838, + "Z": -244.19019 + }, + "TerritoryId": 180, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1005928, + "Position": { + "X": 7.095398, + "Y": 16.167778, + "Z": -188.67786 + }, + "TerritoryId": 180, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1328_Battle of the Bottom-feeders.json b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1328_Battle of the Bottom-feeders.json new file mode 100644 index 00000000..aea657e9 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1328_Battle of the Bottom-feeders.json @@ -0,0 +1,57 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1005928, + "Position": { + "X": 7.095398, + "Y": 16.167778, + "Z": -188.67786 + }, + "TerritoryId": 180, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": 65.98078, + "Y": 57.753456, + "Z": -310.697 + }, + "TerritoryId": 180, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "KillEnemyDataIds": [ + 755, + 2881 + ], + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1005928, + "Position": { + "X": 7.095398, + "Y": 16.167778, + "Z": -188.67786 + }, + "TerritoryId": 180, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1329_Mothers of All Bombs.json b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1329_Mothers of All Bombs.json new file mode 100644 index 00000000..e84dfd38 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1329_Mothers of All Bombs.json @@ -0,0 +1,38 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "Disabled": true, + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1005928, + "Position": { + "X": 7.095398, + "Y": 16.167778, + "Z": -188.67786 + }, + "TerritoryId": 180, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1005928, + "Position": { + "X": 7.095398, + "Y": 16.167778, + "Z": -188.67786 + }, + "TerritoryId": 180, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1330_Know Your Place.json b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1330_Know Your Place.json new file mode 100644 index 00000000..e84dfd38 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1330_Know Your Place.json @@ -0,0 +1,38 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "Disabled": true, + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1005928, + "Position": { + "X": 7.095398, + "Y": 16.167778, + "Z": -188.67786 + }, + "TerritoryId": 180, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1005928, + "Position": { + "X": 7.095398, + "Y": 16.167778, + "Z": -188.67786 + }, + "TerritoryId": 180, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1331_Misery Loves Company.json b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1331_Misery Loves Company.json new file mode 100644 index 00000000..e84dfd38 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1331_Misery Loves Company.json @@ -0,0 +1,38 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "Disabled": true, + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1005928, + "Position": { + "X": 7.095398, + "Y": 16.167778, + "Z": -188.67786 + }, + "TerritoryId": 180, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1005928, + "Position": { + "X": 7.095398, + "Y": 16.167778, + "Z": -188.67786 + }, + "TerritoryId": 180, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1332_Ill-gotten Gains.json b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1332_Ill-gotten Gains.json new file mode 100644 index 00000000..e84dfd38 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1332_Ill-gotten Gains.json @@ -0,0 +1,38 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "Disabled": true, + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1005928, + "Position": { + "X": 7.095398, + "Y": 16.167778, + "Z": -188.67786 + }, + "TerritoryId": 180, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1005928, + "Position": { + "X": 7.095398, + "Y": 16.167778, + "Z": -188.67786 + }, + "TerritoryId": 180, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1333_Hells Have No Fury.json b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1333_Hells Have No Fury.json new file mode 100644 index 00000000..e84dfd38 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1333_Hells Have No Fury.json @@ -0,0 +1,38 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "Disabled": true, + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1005928, + "Position": { + "X": 7.095398, + "Y": 16.167778, + "Z": -188.67786 + }, + "TerritoryId": 180, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1005928, + "Position": { + "X": 7.095398, + "Y": 16.167778, + "Z": -188.67786 + }, + "TerritoryId": 180, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1334_Bo Zu's Blown Cover.json b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1334_Bo Zu's Blown Cover.json new file mode 100644 index 00000000..e84dfd38 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1334_Bo Zu's Blown Cover.json @@ -0,0 +1,38 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "Disabled": true, + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1005928, + "Position": { + "X": 7.095398, + "Y": 16.167778, + "Z": -188.67786 + }, + "TerritoryId": 180, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1005928, + "Position": { + "X": 7.095398, + "Y": 16.167778, + "Z": -188.67786 + }, + "TerritoryId": 180, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1335_Ambushing the Assessors.json b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1335_Ambushing the Assessors.json new file mode 100644 index 00000000..e1d2e185 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1335_Ambushing the Assessors.json @@ -0,0 +1,38 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "Disabled": true, + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1005929, + "Position": { + "X": 21.560913, + "Y": 16.342407, + "Z": -183.76447 + }, + "TerritoryId": 180, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1005929, + "Position": { + "X": 21.560913, + "Y": 16.342407, + "Z": -183.76447 + }, + "TerritoryId": 180, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1336_The Lode Warrior.json b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1336_The Lode Warrior.json new file mode 100644 index 00000000..e1d2e185 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1336_The Lode Warrior.json @@ -0,0 +1,38 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "Disabled": true, + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1005929, + "Position": { + "X": 21.560913, + "Y": 16.342407, + "Z": -183.76447 + }, + "TerritoryId": 180, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1005929, + "Position": { + "X": 21.560913, + "Y": 16.342407, + "Z": -183.76447 + }, + "TerritoryId": 180, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1337_Armed and Dangerous.json b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1337_Armed and Dangerous.json new file mode 100644 index 00000000..e6436230 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1337_Armed and Dangerous.json @@ -0,0 +1,92 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1005929, + "Position": { + "X": 21.560913, + "Y": 16.342407, + "Z": -183.76447 + }, + "TerritoryId": 180, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1005932, + "Position": { + "X": -1.236023, + "Y": 33.38838, + "Z": -244.19019 + }, + "TerritoryId": 180, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2003686, + "Position": { + "X": 57.602783, + "Y": 48.111572, + "Z": -388.29633 + }, + "TerritoryId": 180, + "InteractionType": "Combat", + "EnemySpawnType": "AfterItemUse", + "KillEnemyDataIds": [ + 2899, + 2900, + 2901 + ], + "ItemId": 2001226, + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1005932, + "Position": { + "X": -1.236023, + "Y": 33.38838, + "Z": -244.19019 + }, + "TerritoryId": 180, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1005929, + "Position": { + "X": 21.560913, + "Y": 16.342407, + "Z": -183.76447 + }, + "TerritoryId": 180, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1338_Too Hot to Handle.json b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1338_Too Hot to Handle.json new file mode 100644 index 00000000..4294e085 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1338_Too Hot to Handle.json @@ -0,0 +1,59 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1005929, + "Position": { + "X": 21.560913, + "Y": 16.342407, + "Z": -183.76447 + }, + "TerritoryId": 180, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": 51.48164, + "Y": 55.599014, + "Z": -491.209 + }, + "TerritoryId": 180, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "ComplexCombatData": [ + { + "DataId": 1833, + "MinimumKillCount": 2 + } + ], + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1005929, + "Position": { + "X": 21.560913, + "Y": 16.342407, + "Z": -183.76447 + }, + "TerritoryId": 180, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1339_Operation Riffraff.json b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1339_Operation Riffraff.json new file mode 100644 index 00000000..68ec4915 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1339_Operation Riffraff.json @@ -0,0 +1,248 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1005929, + "Position": { + "X": 21.560913, + "Y": 16.342407, + "Z": -183.76447 + }, + "TerritoryId": 180, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": 96.21657, + "Y": 55.28576, + "Z": -500.41245 + }, + "TerritoryId": 180, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 1005960, + "Position": { + "X": 97.3678, + "Y": 56.809326, + "Z": -502.06763 + }, + "TerritoryId": 180, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1005960, + "Position": { + "X": 97.3678, + "Y": 56.809326, + "Z": -502.06763 + }, + "TerritoryId": 180, + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_BANKOB205_01339_SCENE00008_EVENTAREA_WARP_YESNO_TITLE", + "Yes": true + } + ] + }, + { + "DataId": 2003743, + "Position": { + "X": 227.00842, + "Y": 22.75116, + "Z": -582.81836 + }, + "TerritoryId": 180, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2003744, + "Position": { + "X": 224.78064, + "Y": 23.941406, + "Z": -580.9568 + }, + "TerritoryId": 180, + "InteractionType": "UseItem", + "ItemId": 2001244, + "IgnoreDistanceToObject": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 2003746, + "Position": { + "X": 239.30713, + "Y": 22.323914, + "Z": -577.29456 + }, + "TerritoryId": 180, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 2880 + ], + "CompletionQuestVariablesFlags": [ + { + "Low": 1 + }, + null, + null, + null, + null, + null + ] + }, + { + "DataId": 2003745, + "Position": { + "X": 242.8778, + "Y": 22.507019, + "Z": -584.37476 + }, + "TerritoryId": 180, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 2880 + ], + "CompletionQuestVariablesFlags": [ + { + "Low": 2 + }, + null, + null, + null, + null, + null + ] + }, + { + "DataId": 2003746, + "Position": { + "X": 239.30713, + "Y": 22.323914, + "Z": -577.29456 + }, + "TerritoryId": 180, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 2880 + ], + "CompletionQuestVariablesFlags": [ + { + "Low": 3 + }, + null, + null, + null, + null, + null + ] + }, + { + "DataId": 2003745, + "Position": { + "X": 242.8778, + "Y": 22.507019, + "Z": -584.37476 + }, + "TerritoryId": 180, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 2880 + ], + "CompletionQuestVariablesFlags": [ + { + "Low": 4 + }, + null, + null, + null, + null, + null + ] + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 2003746, + "Position": { + "X": 239.30713, + "Y": 22.323914, + "Z": -577.29456 + }, + "TerritoryId": 180, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 2883 + ] + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1005932, + "Position": { + "X": -1.236023, + "Y": 33.38838, + "Z": -244.19019 + }, + "TerritoryId": 180, + "InteractionType": "Interact", + "AetheryteShortcut": "Outer La Noscea - Camp Overlook", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1005929, + "Position": { + "X": 21.560913, + "Y": 16.342407, + "Z": -183.76447 + }, + "TerritoryId": 180, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1340_The Sly Salvages.json b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1340_The Sly Salvages.json new file mode 100644 index 00000000..e1d2e185 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1340_The Sly Salvages.json @@ -0,0 +1,38 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "Disabled": true, + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1005929, + "Position": { + "X": 21.560913, + "Y": 16.342407, + "Z": -183.76447 + }, + "TerritoryId": 180, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1005929, + "Position": { + "X": 21.560913, + "Y": 16.342407, + "Z": -183.76447 + }, + "TerritoryId": 180, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1341_Belles of the Ball.json b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1341_Belles of the Ball.json new file mode 100644 index 00000000..e1d2e185 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1341_Belles of the Ball.json @@ -0,0 +1,38 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "Disabled": true, + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1005929, + "Position": { + "X": 21.560913, + "Y": 16.342407, + "Z": -183.76447 + }, + "TerritoryId": 180, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1005929, + "Position": { + "X": 21.560913, + "Y": 16.342407, + "Z": -183.76447 + }, + "TerritoryId": 180, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1342_Contents Unknown.json b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1342_Contents Unknown.json new file mode 100644 index 00000000..e1d2e185 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1342_Contents Unknown.json @@ -0,0 +1,38 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "Disabled": true, + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1005929, + "Position": { + "X": 21.560913, + "Y": 16.342407, + "Z": -183.76447 + }, + "TerritoryId": 180, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1005929, + "Position": { + "X": 21.560913, + "Y": 16.342407, + "Z": -183.76447 + }, + "TerritoryId": 180, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1343_Brain Buster.json b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1343_Brain Buster.json new file mode 100644 index 00000000..e1d2e185 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1343_Brain Buster.json @@ -0,0 +1,38 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "Disabled": true, + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1005929, + "Position": { + "X": 21.560913, + "Y": 16.342407, + "Z": -183.76447 + }, + "TerritoryId": 180, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1005929, + "Position": { + "X": 21.560913, + "Y": 16.342407, + "Z": -183.76447 + }, + "TerritoryId": 180, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1344_A Dangerous Delivery.json b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1344_A Dangerous Delivery.json new file mode 100644 index 00000000..0394515b --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1344_A Dangerous Delivery.json @@ -0,0 +1,76 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1005929, + "Position": { + "X": 21.560913, + "Y": 16.342407, + "Z": -183.76447 + }, + "TerritoryId": 180, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1005932, + "Position": { + "X": -1.236023, + "Y": 33.38838, + "Z": -244.19019 + }, + "TerritoryId": 180, + "InteractionType": "Interact", + "Fly": true, + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_BANKOB210_01344_Q1_000_000", + "Answer": "TEXT_BANKOB210_01344_A1_000_001" + } + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2003963, + "Position": { + "X": 91.203125, + "Y": 55.74109, + "Z": -483.299 + }, + "TerritoryId": 180, + "InteractionType": "Interact", + "Comment": "Spawns enemy that we ignore" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1005929, + "Position": { + "X": 21.560913, + "Y": 16.342407, + "Z": -183.76447 + }, + "TerritoryId": 180, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1364_A Coblyn Catastrophe.json b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1364_A Coblyn Catastrophe.json new file mode 100644 index 00000000..b100ce64 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1364_A Coblyn Catastrophe.json @@ -0,0 +1,38 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "Disabled": true, + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1005930, + "Position": { + "X": 12.558105, + "Y": 16.159302, + "Z": -176.5622 + }, + "TerritoryId": 180, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1005930, + "Position": { + "X": 12.558105, + "Y": 16.159302, + "Z": -176.5622 + }, + "TerritoryId": 180, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1365_Friends in Low Places.json b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1365_Friends in Low Places.json new file mode 100644 index 00000000..b100ce64 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1365_Friends in Low Places.json @@ -0,0 +1,38 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "Disabled": true, + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1005930, + "Position": { + "X": 12.558105, + "Y": 16.159302, + "Z": -176.5622 + }, + "TerritoryId": 180, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1005930, + "Position": { + "X": 12.558105, + "Y": 16.159302, + "Z": -176.5622 + }, + "TerritoryId": 180, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1366_Glutton for Punishment.json b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1366_Glutton for Punishment.json new file mode 100644 index 00000000..45fa6ceb --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1366_Glutton for Punishment.json @@ -0,0 +1,124 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1005930, + "Position": { + "X": 12.558105, + "Y": 16.159302, + "Z": -176.5622 + }, + "TerritoryId": 180, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": 112.19494, + "Y": 23.602901, + "Z": -611.7208 + }, + "TerritoryId": 180, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "Position": { + "X": 13.632976, + "Y": 21.54334, + "Z": -769.12134 + }, + "TerritoryId": 180, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 2003699, + "Position": { + "X": 7.94989, + "Y": 21.713562, + "Z": -769.06995 + }, + "TerritoryId": 180, + "InteractionType": "Combat", + "EnemySpawnType": "AfterItemUse", + "KillEnemyDataIds": [ + 2841 + ], + "ItemId": 2001230, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, + { + "DataId": 2003701, + "Position": { + "X": 5.142273, + "Y": 23.75824, + "Z": -803.9216 + }, + "TerritoryId": 180, + "InteractionType": "Combat", + "EnemySpawnType": "AfterItemUse", + "KillEnemyDataIds": [ + 2841 + ], + "ItemId": 2001230, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 8 + ] + }, + { + "DataId": 2003702, + "Position": { + "X": 0.47296143, + "Y": 24.551636, + "Z": -795.74274 + }, + "TerritoryId": 180, + "InteractionType": "Combat", + "EnemySpawnType": "AfterItemUse", + "KillEnemyDataIds": [ + 2841 + ], + "ItemId": 2001230 + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1005930, + "Position": { + "X": 12.558105, + "Y": 16.159302, + "Z": -176.5622 + }, + "TerritoryId": 180, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Outer La Noscea - Camp Overlook", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1367_Genius at Work.json b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1367_Genius at Work.json new file mode 100644 index 00000000..b100ce64 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1367_Genius at Work.json @@ -0,0 +1,38 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "Disabled": true, + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1005930, + "Position": { + "X": 12.558105, + "Y": 16.159302, + "Z": -176.5622 + }, + "TerritoryId": 180, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1005930, + "Position": { + "X": 12.558105, + "Y": 16.159302, + "Z": -176.5622 + }, + "TerritoryId": 180, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1368_Fulminating Furnaces.json b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1368_Fulminating Furnaces.json new file mode 100644 index 00000000..b100ce64 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1368_Fulminating Furnaces.json @@ -0,0 +1,38 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "Disabled": true, + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1005930, + "Position": { + "X": 12.558105, + "Y": 16.159302, + "Z": -176.5622 + }, + "TerritoryId": 180, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1005930, + "Position": { + "X": 12.558105, + "Y": 16.159302, + "Z": -176.5622 + }, + "TerritoryId": 180, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1369_A Meal Fit for a Fugleman.json b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1369_A Meal Fit for a Fugleman.json new file mode 100644 index 00000000..b100ce64 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1369_A Meal Fit for a Fugleman.json @@ -0,0 +1,38 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "Disabled": true, + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1005930, + "Position": { + "X": 12.558105, + "Y": 16.159302, + "Z": -176.5622 + }, + "TerritoryId": 180, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1005930, + "Position": { + "X": 12.558105, + "Y": 16.159302, + "Z": -176.5622 + }, + "TerritoryId": 180, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1370_Spread the Wealth.json b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1370_Spread the Wealth.json new file mode 100644 index 00000000..ff87aaec --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1370_Spread the Wealth.json @@ -0,0 +1,173 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1005930, + "Position": { + "X": 12.558105, + "Y": 16.159302, + "Z": -176.5622 + }, + "TerritoryId": 180, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1005932, + "Position": { + "X": -1.236023, + "Y": 33.38838, + "Z": -244.19019 + }, + "TerritoryId": 180, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2003911, + "Position": { + "X": 296.5896, + "Y": 21.499878, + "Z": -722.13324 + }, + "TerritoryId": 180, + "InteractionType": "UseItem", + "ItemId": 2001278, + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, + { + "Position": { + "X": 296.5896, + "Y": 21.499878, + "Z": -722.13324 + }, + "TerritoryId": 180, + "InteractionType": "Combat", + "EnemySpawnType": "FinishCombatIfAny", + "KillEnemyDataIds": [ + 755 + ] + }, + { + "DataId": 2003910, + "Position": { + "X": 293.41565, + "Y": 21.499878, + "Z": -721.91956 + }, + "TerritoryId": 180, + "InteractionType": "UseItem", + "ItemId": 2001278, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "Position": { + "X": 293.41565, + "Y": 21.499878, + "Z": -721.91956 + }, + "TerritoryId": 180, + "InteractionType": "Combat", + "EnemySpawnType": "FinishCombatIfAny", + "KillEnemyDataIds": [ + 755 + ] + }, + { + "DataId": 2003909, + "Position": { + "X": 290.0282, + "Y": 21.530457, + "Z": -721.3397 + }, + "TerritoryId": 180, + "InteractionType": "UseItem", + "ItemId": 2001278, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "Position": { + "X": 290.0282, + "Y": 21.530457, + "Z": -721.3397 + }, + "TerritoryId": 180, + "InteractionType": "Combat", + "EnemySpawnType": "FinishCombatIfAny", + "KillEnemyDataIds": [ + 755 + ] + }, + { + "DataId": 2003912, + "Position": { + "X": 295.76562, + "Y": 21.469421, + "Z": -711.9402 + }, + "TerritoryId": 180, + "InteractionType": "UseItem", + "ItemId": 2001279 + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1005930, + "Position": { + "X": 12.558105, + "Y": 16.159302, + "Z": -176.5622 + }, + "TerritoryId": 180, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Outer La Noscea - Camp Overlook", + "Fly": true, + "DelaySecondsAtStart": 3 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1371_Ba Go's Behest.json b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1371_Ba Go's Behest.json new file mode 100644 index 00000000..b100ce64 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1371_Ba Go's Behest.json @@ -0,0 +1,38 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "Disabled": true, + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1005930, + "Position": { + "X": 12.558105, + "Y": 16.159302, + "Z": -176.5622 + }, + "TerritoryId": 180, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1005930, + "Position": { + "X": 12.558105, + "Y": 16.159302, + "Z": -176.5622 + }, + "TerritoryId": 180, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1372_Wrath of the Roundsman.json b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1372_Wrath of the Roundsman.json new file mode 100644 index 00000000..b100ce64 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1372_Wrath of the Roundsman.json @@ -0,0 +1,38 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "Disabled": true, + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1005930, + "Position": { + "X": 12.558105, + "Y": 16.159302, + "Z": -176.5622 + }, + "TerritoryId": 180, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1005930, + "Position": { + "X": 12.558105, + "Y": 16.159302, + "Z": -176.5622 + }, + "TerritoryId": 180, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1373_Angry Angry Acolyte.json b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1373_Angry Angry Acolyte.json new file mode 100644 index 00000000..b100ce64 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1373_Angry Angry Acolyte.json @@ -0,0 +1,38 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "Disabled": true, + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1005930, + "Position": { + "X": 12.558105, + "Y": 16.159302, + "Z": -176.5622 + }, + "TerritoryId": 180, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1005930, + "Position": { + "X": 12.558105, + "Y": 16.159302, + "Z": -176.5622 + }, + "TerritoryId": 180, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Allied Societies/Sylphs/Dailies/1274_In the Sylphlands, Treasure Hunts You.json b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Sylphs/Dailies/1274_In the Sylphlands, Treasure Hunts You.json new file mode 100644 index 00000000..0f61707f --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Sylphs/Dailies/1274_In the Sylphlands, Treasure Hunts You.json @@ -0,0 +1,132 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1005562, + "Position": { + "X": 36.850464, + "Y": -4.8778634, + "Z": 249.19507 + }, + "TerritoryId": 152, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": 321.08926, + "Y": -17.347095, + "Z": -201.61072 + }, + "TerritoryId": 152, + "InteractionType": "WalkTo", + "Fly": true, + "SkipConditions": { + "StepIf": { + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 16 + ] + } + } + }, + { + "DataId": 2003494, + "Position": { + "X": 319.44763, + "Y": -17.227417, + "Z": -200.88507 + }, + "TerritoryId": 152, + "InteractionType": "Combat", + "EnemySpawnType": "AfterItemUse", + "ItemId": 2001154, + "GroundTarget": true, + "KillEnemyDataIds": [ + 764 + ], + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 16 + ] + }, + { + "DataId": 2003041, + "Position": { + "X": 386.099, + "Y": -20.187744, + "Z": -200.763 + }, + "TerritoryId": 152, + "InteractionType": "Combat", + "EnemySpawnType": "AfterItemUse", + "ItemId": 2001154, + "GroundTarget": true, + "KillEnemyDataIds": [ + 764 + ], + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 4 + ] + }, + { + "DataId": 2003040, + "Position": { + "X": 326.77185, + "Y": -18.112549, + "Z": -235.95032 + }, + "TerritoryId": 152, + "InteractionType": "Combat", + "EnemySpawnType": "AfterItemUse", + "ItemId": 2001154, + "GroundTarget": true, + "KillEnemyDataIds": [ + 764 + ], + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1005562, + "Position": { + "X": 36.850464, + "Y": -4.8778634, + "Z": 249.19507 + }, + "TerritoryId": 152, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "East Shroud - Hawthorne Hut", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Allied Societies/Sylphs/Dailies/1275_Perilous Pumpkins.json b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Sylphs/Dailies/1275_Perilous Pumpkins.json new file mode 100644 index 00000000..bc371334 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Sylphs/Dailies/1275_Perilous Pumpkins.json @@ -0,0 +1,79 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1005562, + "Position": { + "X": 36.850464, + "Y": -4.8778634, + "Z": 249.19507 + }, + "TerritoryId": 152, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2003307, + "Position": { + "X": 261.82947, + "Y": -9.323303, + "Z": -72.80078 + }, + "TerritoryId": 152, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2003487, + "Position": { + "X": 429.89233, + "Y": -14.2977295, + "Z": -257.61804 + }, + "TerritoryId": 152, + "InteractionType": "Interact" + }, + { + "DataId": 2003310, + "Position": { + "X": 551.812, + "Y": -22.537598, + "Z": -352.13245 + }, + "TerritoryId": 152, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1005562, + "Position": { + "X": 36.850464, + "Y": -4.8778634, + "Z": 249.19507 + }, + "TerritoryId": 152, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "East Shroud - Hawthorne Hut", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Allied Societies/Sylphs/Dailies/1276_Fungal Foulness.json b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Sylphs/Dailies/1276_Fungal Foulness.json new file mode 100644 index 00000000..d03b0a2c --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Sylphs/Dailies/1276_Fungal Foulness.json @@ -0,0 +1,57 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1005562, + "Position": { + "X": 36.850464, + "Y": -4.8778634, + "Z": 249.19507 + }, + "TerritoryId": 152, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": 336.78577, + "Y": -17.169508, + "Z": -252.20335 + }, + "TerritoryId": 152, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "KillEnemyDataIds": [ + 2464 + ], + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1005562, + "Position": { + "X": 36.850464, + "Y": -4.8778634, + "Z": 249.19507 + }, + "TerritoryId": 152, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "East Shroud - Hawthorne Hut", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/BLM/1078_Always Bet on Black.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/BLM/1078_Always Bet on Black.json index a24c97b8..b8a3faba 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/BLM/1078_Always Bet on Black.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/BLM/1078_Always Bet on Black.json @@ -201,7 +201,8 @@ "AetheryteShortcutIf": { "InSameTerritory": true } - } + }, + "NextQuestId": 1678 } ] } diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/PLD/1056_Honor Lost.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/PLD/1056_Honor Lost.json new file mode 100644 index 00000000..b51fe2cc --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/PLD/1056_Honor Lost.json @@ -0,0 +1,114 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "TerritoryId": 137, + "InteractionType": "EquipItem", + "ItemId": 4542, + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] The Chamber of Rule" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 131 + ] + } + } + }, + { + "DataId": 1006747, + "Position": { + "X": -20.828613, + "Y": 29.999964, + "Z": -2.4262085 + }, + "TerritoryId": 131, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": -259.72705, + "Y": 67.23717, + "Z": -293.5509 + }, + "TerritoryId": 180, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Outer La Noscea - Camp Overlook", + "Fly": true, + "SkipConditions": { + "StepIf": { + "Flying": "Locked" + } + } + }, + { + "Position": { + "X": -355.4327, + "Y": 63.813503, + "Z": -382.56308 + }, + "TerritoryId": 180, + "InteractionType": "WalkTo", + "Fly": true, + "SkipConditions": { + "StepIf": { + "Flying": "Locked" + } + } + }, + { + "DataId": 2002346, + "Position": { + "X": -312.27594, + "Y": 32.547485, + "Z": -444.9989 + }, + "TerritoryId": 180, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "ComplexCombatData": [ + { + "DataId": 6, + "NameId": 2020 + } + ], + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1006747, + "Position": { + "X": -20.828613, + "Y": 29.999964, + "Z": -2.4262085 + }, + "TerritoryId": 131, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] The Chamber of Rule" + ], + "NextQuestId": 1057 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/PLD/1057_Power Struggles.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/PLD/1057_Power Struggles.json new file mode 100644 index 00000000..2ac204b8 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/PLD/1057_Power Struggles.json @@ -0,0 +1,75 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1006747, + "Position": { + "X": -20.828613, + "Y": 29.999964, + "Z": -2.4262085 + }, + "TerritoryId": 131, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] The Chamber of Rule" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 131 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2002347, + "Position": { + "X": 175.82971, + "Y": -10.452454, + "Z": 84.91638 + }, + "TerritoryId": 145, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 383 + ], + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1006747, + "Position": { + "X": -20.828613, + "Y": 29.999964, + "Z": -2.4262085 + }, + "TerritoryId": 131, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] The Chamber of Rule" + ], + "NextQuestId": 1058 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/PLD/1058_Poisoned Hearts.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/PLD/1058_Poisoned Hearts.json new file mode 100644 index 00000000..c8861e53 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/PLD/1058_Poisoned Hearts.json @@ -0,0 +1,259 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1006747, + "Position": { + "X": -20.828613, + "Y": 29.999964, + "Z": -2.4262085 + }, + "TerritoryId": 131, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] The Chamber of Rule" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 131 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": -97.65164, + "Y": 14.866778, + "Z": -189.99821 + }, + "StopDistance": 0.5, + "TerritoryId": 146, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [ + 1923, + 1924 + ], + "AetheryteShortcut": "Southern Thanalan - Little Ala Mhigo", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + }, + "StepIf": { + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + } + } + }, + { + "DataId": 2002349, + "Position": { + "X": -97.39838, + "Y": 14.846985, + "Z": -188.2201 + }, + "TerritoryId": 146, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "Position": { + "X": -97.35628, + "Y": -14.397484, + "Z": -176.70825 + }, + "StopDistance": 0.5, + "TerritoryId": 146, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [ + 1923, + 1924 + ], + "Fly": true, + "SkipConditions": { + "StepIf": { + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + } + } + }, + { + "DataId": 2002348, + "Position": { + "X": -99.4126, + "Y": -14.4198, + "Z": -179.46143 + }, + "TerritoryId": 146, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "Position": { + "X": 137.78966, + "Y": 10.371678, + "Z": -427.8172 + }, + "StopDistance": 0.5, + "TerritoryId": 146, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [ + 1923, + 1924 + ], + "SkipConditions": { + "StepIf": { + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 16 + ] + } + } + }, + { + "Position": { + "X": 137.78966, + "Y": 10.371678, + "Z": -427.8172 + }, + "StopDistance": 0.5, + "TerritoryId": 146, + "InteractionType": "WalkTo", + "SkipConditions": { + "StepIf": { + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 16 + ] + } + } + }, + { + "DataId": 2002351, + "Position": { + "X": 137.74304, + "Y": 10.60498, + "Z": -420.5539 + }, + "TerritoryId": 146, + "InteractionType": "Interact", + "DisableNavmesh": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 16 + ] + }, + { + "Position": { + "X": 137.70113, + "Y": 10.371678, + "Z": -427.45047 + }, + "TerritoryId": 146, + "InteractionType": "WalkTo", + "DisableNavmesh": true + }, + { + "Position": { + "X": 116.208305, + "Y": 11.091853, + "Z": -475.35126 + }, + "StopDistance": 0.5, + "TerritoryId": 146, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [ + 1923, + 1924 + ] + }, + { + "DataId": 2002350, + "Position": { + "X": 115.983765, + "Y": 11.184814, + "Z": -482.7802 + }, + "TerritoryId": 146, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1006747, + "Position": { + "X": -20.828613, + "Y": 29.999964, + "Z": -2.4262085 + }, + "TerritoryId": 131, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] The Chamber of Rule" + ], + "NextQuestId": 1059 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/PLD/1059_Parley in the Sagolii.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/PLD/1059_Parley in the Sagolii.json new file mode 100644 index 00000000..2f013d5a --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/PLD/1059_Parley in the Sagolii.json @@ -0,0 +1,72 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1006747, + "Position": { + "X": -20.828613, + "Y": 29.999964, + "Z": -2.4262085 + }, + "TerritoryId": 131, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] The Chamber of Rule" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 131 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2002356, + "Position": { + "X": -407.4312, + "Y": 7.156433, + "Z": 525.6886 + }, + "TerritoryId": 146, + "InteractionType": "SinglePlayerDuty", + "AetheryteShortcut": "Southern Thanalan - Forgotten Springs", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1006747, + "Position": { + "X": -20.828613, + "Y": 29.999964, + "Z": -2.4262085 + }, + "TerritoryId": 131, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] The Chamber of Rule" + ], + "NextQuestId": 1060 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/PLD/1060_Keeping the Oath.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/PLD/1060_Keeping the Oath.json new file mode 100644 index 00000000..e9f2519f --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/PLD/1060_Keeping the Oath.json @@ -0,0 +1,100 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1006747, + "Position": { + "X": -20.828613, + "Y": 29.999964, + "Z": -2.4262085 + }, + "TerritoryId": 131, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] The Chamber of Rule" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 131 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1007829, + "Position": { + "X": 26.932129, + "Y": 13, + "Z": 44.418945 + }, + "TerritoryId": 141, + "InteractionType": "Interact", + "AetheryteShortcut": "Central Thanalan - Black Brush Station", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": -775.4471, + "Y": 224.95006, + "Z": 29.04266 + }, + "StopDistance": 0.5, + "TerritoryId": 155, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", + "Fly": true + }, + { + "Position": { + "X": -775.4471, + "Y": 224.95006, + "Z": 29.04266 + }, + "StopDistance": 0.5, + "TerritoryId": 155, + "InteractionType": "SinglePlayerDuty", + "Mount": false + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1006747, + "Position": { + "X": -20.828613, + "Y": 29.999964, + "Z": -2.4262085 + }, + "TerritoryId": 131, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] The Chamber of Rule" + ], + "NextQuestId": 2032 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/SCH/1102_The Beast Within.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/SCH/1102_The Beast Within.json index 06d12fb3..002ac180 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/SCH/1102_The Beast Within.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/SCH/1102_The Beast Within.json @@ -119,7 +119,8 @@ "Z": 61.142822 }, "TerritoryId": 139, - "InteractionType": "CompleteQuest" + "InteractionType": "CompleteQuest", + "NextQuestId": 1671 } ] } diff --git a/QuestPaths/2.x - A Realm Reborn/MSQ-1/Shared/245_It's Probably Pirates.json b/QuestPaths/2.x - A Realm Reborn/MSQ-1/Shared/245_It's Probably Pirates.json index 8a352254..0d3aada9 100644 --- a/QuestPaths/2.x - A Realm Reborn/MSQ-1/Shared/245_It's Probably Pirates.json +++ b/QuestPaths/2.x - A Realm Reborn/MSQ-1/Shared/245_It's Probably Pirates.json @@ -112,7 +112,8 @@ { "TerritoryId": 138, "InteractionType": "Duty", - "ContentFinderConditionId": 4 + "ContentFinderConditionId": 4, + "AutoDutyEnabled": true } ] }, diff --git a/QuestPaths/2.x - A Realm Reborn/MSQ-1/Shared/343_Lord of the Inferno.json b/QuestPaths/2.x - A Realm Reborn/MSQ-1/Shared/343_Lord of the Inferno.json index ff980ffa..cab6933d 100644 --- a/QuestPaths/2.x - A Realm Reborn/MSQ-1/Shared/343_Lord of the Inferno.json +++ b/QuestPaths/2.x - A Realm Reborn/MSQ-1/Shared/343_Lord of the Inferno.json @@ -71,7 +71,8 @@ { "TerritoryId": 146, "InteractionType": "Duty", - "ContentFinderConditionId": 56 + "ContentFinderConditionId": 56, + "AutoDutyEnabled": true } ] }, diff --git a/QuestPaths/2.x - A Realm Reborn/MSQ-1/Shared/660_Into a Copper Hell.json b/QuestPaths/2.x - A Realm Reborn/MSQ-1/Shared/660_Into a Copper Hell.json index b6f45f31..e5c21738 100644 --- a/QuestPaths/2.x - A Realm Reborn/MSQ-1/Shared/660_Into a Copper Hell.json +++ b/QuestPaths/2.x - A Realm Reborn/MSQ-1/Shared/660_Into a Copper Hell.json @@ -62,7 +62,8 @@ { "TerritoryId": 140, "InteractionType": "Duty", - "ContentFinderConditionId": 3 + "ContentFinderConditionId": 3, + "AutoDutyEnabled": true } ] }, diff --git a/QuestPaths/2.x - A Realm Reborn/MSQ-1/Shared/677_Fire in the Gloom.json b/QuestPaths/2.x - A Realm Reborn/MSQ-1/Shared/677_Fire in the Gloom.json index 7340e66a..726eae29 100644 --- a/QuestPaths/2.x - A Realm Reborn/MSQ-1/Shared/677_Fire in the Gloom.json +++ b/QuestPaths/2.x - A Realm Reborn/MSQ-1/Shared/677_Fire in the Gloom.json @@ -57,7 +57,8 @@ { "TerritoryId": 148, "InteractionType": "Duty", - "ContentFinderConditionId": 2 + "ContentFinderConditionId": 2, + "AutoDutyEnabled": true } ] }, diff --git a/QuestPaths/2.x - A Realm Reborn/MSQ-2/A3-South Shroud, Buscarron’s Druthers/514_Into the Beast's Maw.json b/QuestPaths/2.x - A Realm Reborn/MSQ-2/A3-South Shroud, Buscarron’s Druthers/514_Into the Beast's Maw.json index cf0acff2..45b28b3f 100644 --- a/QuestPaths/2.x - A Realm Reborn/MSQ-2/A3-South Shroud, Buscarron’s Druthers/514_Into the Beast's Maw.json +++ b/QuestPaths/2.x - A Realm Reborn/MSQ-2/A3-South Shroud, Buscarron’s Druthers/514_Into the Beast's Maw.json @@ -44,7 +44,8 @@ { "TerritoryId": 153, "InteractionType": "Duty", - "ContentFinderConditionId": 1 + "ContentFinderConditionId": 1, + "AutoDutyEnabled": true } ] }, diff --git a/QuestPaths/2.x - A Realm Reborn/MSQ-2/A9-Haukke Manor/801_Skeletons in Her Closet.json b/QuestPaths/2.x - A Realm Reborn/MSQ-2/A9-Haukke Manor/801_Skeletons in Her Closet.json index c3a02a0c..9269a84b 100644 --- a/QuestPaths/2.x - A Realm Reborn/MSQ-2/A9-Haukke Manor/801_Skeletons in Her Closet.json +++ b/QuestPaths/2.x - A Realm Reborn/MSQ-2/A9-Haukke Manor/801_Skeletons in Her Closet.json @@ -66,7 +66,8 @@ { "TerritoryId": 148, "InteractionType": "Duty", - "ContentFinderConditionId": 6 + "ContentFinderConditionId": 6, + "AutoDutyEnabled": true } ] }, diff --git a/QuestPaths/2.x - A Realm Reborn/MSQ-2/B2-Eastern La Noscea, Brayflox, Cheese and Wine/832_The Things We Do for Cheese.json b/QuestPaths/2.x - A Realm Reborn/MSQ-2/B2-Eastern La Noscea, Brayflox, Cheese and Wine/832_The Things We Do for Cheese.json index bcb40f05..06402bac 100644 --- a/QuestPaths/2.x - A Realm Reborn/MSQ-2/B2-Eastern La Noscea, Brayflox, Cheese and Wine/832_The Things We Do for Cheese.json +++ b/QuestPaths/2.x - A Realm Reborn/MSQ-2/B2-Eastern La Noscea, Brayflox, Cheese and Wine/832_The Things We Do for Cheese.json @@ -85,7 +85,8 @@ { "TerritoryId": 137, "InteractionType": "Duty", - "ContentFinderConditionId": 8 + "ContentFinderConditionId": 8, + "AutoDutyEnabled": true } ] }, diff --git a/QuestPaths/2.x - A Realm Reborn/MSQ-2/B4-Titan/857_Lord of Crags.json b/QuestPaths/2.x - A Realm Reborn/MSQ-2/B4-Titan/857_Lord of Crags.json index e0898189..4cc4c576 100644 --- a/QuestPaths/2.x - A Realm Reborn/MSQ-2/B4-Titan/857_Lord of Crags.json +++ b/QuestPaths/2.x - A Realm Reborn/MSQ-2/B4-Titan/857_Lord of Crags.json @@ -45,7 +45,8 @@ { "TerritoryId": 139, "InteractionType": "Duty", - "ContentFinderConditionId": 57 + "ContentFinderConditionId": 57, + "AutoDutyEnabled": true } ] }, diff --git a/QuestPaths/2.x - A Realm Reborn/MSQ-2/C1-Coerthas Central Highlands, The Enterprise/952_In Pursuit of the Past.json b/QuestPaths/2.x - A Realm Reborn/MSQ-2/C1-Coerthas Central Highlands, The Enterprise/952_In Pursuit of the Past.json index ad446eeb..57ef1fa9 100644 --- a/QuestPaths/2.x - A Realm Reborn/MSQ-2/C1-Coerthas Central Highlands, The Enterprise/952_In Pursuit of the Past.json +++ b/QuestPaths/2.x - A Realm Reborn/MSQ-2/C1-Coerthas Central Highlands, The Enterprise/952_In Pursuit of the Past.json @@ -59,7 +59,8 @@ { "TerritoryId": 155, "InteractionType": "Duty", - "ContentFinderConditionId": 11 + "ContentFinderConditionId": 11, + "AutoDutyEnabled": true } ] }, diff --git a/QuestPaths/2.x - A Realm Reborn/MSQ-2/C3-Garuda/519_Lady of the Vortex.json b/QuestPaths/2.x - A Realm Reborn/MSQ-2/C3-Garuda/519_Lady of the Vortex.json index ff50fed7..d9315eca 100644 --- a/QuestPaths/2.x - A Realm Reborn/MSQ-2/C3-Garuda/519_Lady of the Vortex.json +++ b/QuestPaths/2.x - A Realm Reborn/MSQ-2/C3-Garuda/519_Lady of the Vortex.json @@ -38,7 +38,8 @@ { "TerritoryId": 331, "InteractionType": "Duty", - "ContentFinderConditionId": 58 + "ContentFinderConditionId": 58, + "AutoDutyEnabled": true } ] }, diff --git a/QuestPaths/2.x - A Realm Reborn/MSQ-2/C9-Ultimate Weapon/3873_Rock the Castrum.json b/QuestPaths/2.x - A Realm Reborn/MSQ-2/C9-Ultimate Weapon/3873_Rock the Castrum.json index f7d746fe..7eec220a 100644 --- a/QuestPaths/2.x - A Realm Reborn/MSQ-2/C9-Ultimate Weapon/3873_Rock the Castrum.json +++ b/QuestPaths/2.x - A Realm Reborn/MSQ-2/C9-Ultimate Weapon/3873_Rock the Castrum.json @@ -45,7 +45,8 @@ { "TerritoryId": 147, "InteractionType": "Duty", - "ContentFinderConditionId": 15 + "ContentFinderConditionId": 15, + "AutoDutyEnabled": true } ] }, diff --git a/QuestPaths/2.x - A Realm Reborn/MSQ-2/C9-Ultimate Weapon/4522_The Ultimate Weapon.json b/QuestPaths/2.x - A Realm Reborn/MSQ-2/C9-Ultimate Weapon/4522_The Ultimate Weapon.json index c878f58b..1a788c09 100644 --- a/QuestPaths/2.x - A Realm Reborn/MSQ-2/C9-Ultimate Weapon/4522_The Ultimate Weapon.json +++ b/QuestPaths/2.x - A Realm Reborn/MSQ-2/C9-Ultimate Weapon/4522_The Ultimate Weapon.json @@ -46,7 +46,8 @@ { "TerritoryId": 147, "InteractionType": "Duty", - "ContentFinderConditionId": 16 + "ContentFinderConditionId": 16, + "AutoDutyEnabled": true } ] }, @@ -71,7 +72,8 @@ { "TerritoryId": 1053, "InteractionType": "Duty", - "ContentFinderConditionId": 830 + "ContentFinderConditionId": 830, + "AutoDutyEnabled": true } ] }, diff --git a/QuestPaths/2.x - A Realm Reborn/MSQ-2/E4-2.4/75_The Path of the Righteous.json b/QuestPaths/2.x - A Realm Reborn/MSQ-2/E4-2.4/75_The Path of the Righteous.json index 34e9b723..b6581b9a 100644 --- a/QuestPaths/2.x - A Realm Reborn/MSQ-2/E4-2.4/75_The Path of the Righteous.json +++ b/QuestPaths/2.x - A Realm Reborn/MSQ-2/E4-2.4/75_The Path of the Righteous.json @@ -88,7 +88,8 @@ { "TerritoryId": 155, "InteractionType": "Duty", - "ContentFinderConditionId": 27 + "ContentFinderConditionId": 27, + "AutoDutyEnabled": true } ] }, diff --git a/QuestPaths/2.x - A Realm Reborn/MSQ-2/E5-2.5/366_The Rising Chorus.json b/QuestPaths/2.x - A Realm Reborn/MSQ-2/E5-2.5/366_The Rising Chorus.json index fc1d7220..24d72b21 100644 --- a/QuestPaths/2.x - A Realm Reborn/MSQ-2/E5-2.5/366_The Rising Chorus.json +++ b/QuestPaths/2.x - A Realm Reborn/MSQ-2/E5-2.5/366_The Rising Chorus.json @@ -107,7 +107,8 @@ { "TerritoryId": 156, "InteractionType": "Duty", - "ContentFinderConditionId": 32 + "ContentFinderConditionId": 32, + "AutoDutyEnabled": true } ] }, diff --git a/QuestPaths/2.x - A Realm Reborn/Side Quests/Black Shroud/Central Shroud/804_Fungal Frolic.json b/QuestPaths/2.x - A Realm Reborn/Side Quests/Black Shroud/Central Shroud/804_Fungal Frolic.json new file mode 100644 index 00000000..f2e9316a --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Side Quests/Black Shroud/Central Shroud/804_Fungal Frolic.json @@ -0,0 +1,104 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "Position": { + "X": -243.19783, + "Y": 58.69102, + "Z": -140.41818 + }, + "TerritoryId": 148, + "InteractionType": "WalkTo", + "Fly": true, + "AetheryteShortcut": "Central Shroud - Bentbranch Meadows", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + }, + { + "DataId": 1006261, + "Position": { + "X": -244.73944, + "Y": 58.69352, + "Z": -140.06262 + }, + "TerritoryId": 148, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": -294.20667, + "Y": 61.58862, + "Z": -192.54443 + }, + "TerritoryId": 148, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "ComplexCombatData": [ + { + "DataId": 48, + "CompletionQuestVariablesFlags": [ + null, + { + "High": 5 + }, + null, + null, + null, + null + ] + } + ], + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + { + "High": 5 + }, + null, + null, + null, + null + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": -243.19783, + "Y": 58.69102, + "Z": -140.41818 + }, + "TerritoryId": 148, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 1006261, + "Position": { + "X": -244.73944, + "Y": 58.69352, + "Z": -140.06262 + }, + "TerritoryId": 148, + "InteractionType": "CompleteQuest", + "NextQuestId": 805 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Side Quests/Black Shroud/Central Shroud/805_Shocking Discoveries.json b/QuestPaths/2.x - A Realm Reborn/Side Quests/Black Shroud/Central Shroud/805_Shocking Discoveries.json new file mode 100644 index 00000000..b0f7b06a --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Side Quests/Black Shroud/Central Shroud/805_Shocking Discoveries.json @@ -0,0 +1,88 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "Position": { + "X": -243.19783, + "Y": 58.69102, + "Z": -140.41818 + }, + "TerritoryId": 148, + "InteractionType": "WalkTo", + "Fly": true, + "AetheryteShortcut": "Central Shroud - Bentbranch Meadows", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + }, + { + "DataId": 1006261, + "Position": { + "X": -244.73944, + "Y": 58.69352, + "Z": -140.06262 + }, + "TerritoryId": 148, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": -291.6655, + "Y": 60.450222, + "Z": -163.48296 + }, + "TerritoryId": 148, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "ComplexCombatData": [ + { + "DataId": 2267 + } + ], + "CombatItemUse": { + "ItemId": 2000632, + "Condition": "Health%", + "Value": 50 + } + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": -243.19783, + "Y": 58.69102, + "Z": -140.41818 + }, + "TerritoryId": 148, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 1006261, + "Position": { + "X": -244.73944, + "Y": 58.69352, + "Z": -140.06262 + }, + "TerritoryId": 148, + "InteractionType": "CompleteQuest", + "NextQuestId": 807 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Side Quests/Black Shroud/Central Shroud/807_Doing the Dirty Work.json b/QuestPaths/2.x - A Realm Reborn/Side Quests/Black Shroud/Central Shroud/807_Doing the Dirty Work.json new file mode 100644 index 00000000..26dee00d --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Side Quests/Black Shroud/Central Shroud/807_Doing the Dirty Work.json @@ -0,0 +1,89 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "Position": { + "X": -243.19783, + "Y": 58.69102, + "Z": -140.41818 + }, + "TerritoryId": 148, + "InteractionType": "WalkTo", + "Fly": true, + "AetheryteShortcut": "Central Shroud - Bentbranch Meadows", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + }, + { + "DataId": 1006261, + "Position": { + "X": -244.73944, + "Y": 58.69352, + "Z": -140.06262 + }, + "TerritoryId": 148, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": -327.70383, + "Y": 57.159073, + "Z": -13.640016 + }, + "TerritoryId": 148, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "ComplexCombatData": [ + { + "DataId": 2193, + "NameId": 2057 + } + ], + "CombatItemUse": { + "ItemId": 2000958, + "Condition": "Health%", + "Value": 100 + } + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": -243.19783, + "Y": 58.69102, + "Z": -140.41818 + }, + "TerritoryId": 148, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 1006261, + "Position": { + "X": -244.73944, + "Y": 58.69352, + "Z": -140.06262 + }, + "TerritoryId": 148, + "InteractionType": "CompleteQuest", + "NextQuestId": 1485 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Side Quests/Black Shroud/Gridania/970_Some Seedy Business.json b/QuestPaths/2.x - A Realm Reborn/Side Quests/Black Shroud/Gridania/970_Some Seedy Business.json index 84536780..03953144 100644 --- a/QuestPaths/2.x - A Realm Reborn/Side Quests/Black Shroud/Gridania/970_Some Seedy Business.json +++ b/QuestPaths/2.x - A Realm Reborn/Side Quests/Black Shroud/Gridania/970_Some Seedy Business.json @@ -57,7 +57,7 @@ }, "TerritoryId": 152, "InteractionType": "Interact", - "StopDistance": 0.1, + "StopDistance": 0.25, "AetheryteShortcut": "East Shroud - Hawthorne Hut", "Fly": true, "SkipConditions": { @@ -83,7 +83,7 @@ }, "TerritoryId": 152, "InteractionType": "Interact", - "StopDistance": 0.1, + "StopDistance": 0.25, "AetheryteShortcut": "East Shroud - Hawthorne Hut", "Fly": true, "SkipConditions": { @@ -109,7 +109,7 @@ }, "TerritoryId": 152, "InteractionType": "Interact", - "StopDistance": 0.1, + "StopDistance": 0.25, "AetheryteShortcut": "East Shroud - Hawthorne Hut", "Fly": true, "SkipConditions": { diff --git a/QuestPaths/2.x - A Realm Reborn/Side Quests/Thanalan/Southern Thanalan/1021_What's It to U.json b/QuestPaths/2.x - A Realm Reborn/Side Quests/Thanalan/Southern Thanalan/1021_What's It to U.json new file mode 100644 index 00000000..259f27ce --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Side Quests/Thanalan/Southern Thanalan/1021_What's It to U.json @@ -0,0 +1,113 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Thaksin", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1004917, + "Position": { + "X": -358.6328, + "Y": 8.469424, + "Z": 422.4154 + }, + "TerritoryId": 146, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1006602, + "Position": { + "X": -321.06506, + "Y": 8.830055, + "Z": 436.94202 + }, + "TerritoryId": 146, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 16 + ] + }, + { + "DataId": 1006600, + "Position": { + "X": -283.5279, + "Y": 7.652629, + "Z": 423.14795 + }, + "TerritoryId": 146, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 1006599, + "Position": { + "X": -279.98785, + "Y": 15.013981, + "Z": 373.37292 + }, + "TerritoryId": 146, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 1006601, + "Position": { + "X": -293.53784, + "Y": 13.137939, + "Z": 354.63477 + }, + "TerritoryId": 146, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1004917, + "Position": { + "X": -358.6328, + "Y": 8.469424, + "Z": 422.4154 + }, + "TerritoryId": 146, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Side Quests/Thanalan/Southern Thanalan/1022_Zombies Are People Too.json b/QuestPaths/2.x - A Realm Reborn/Side Quests/Thanalan/Southern Thanalan/1022_Zombies Are People Too.json new file mode 100644 index 00000000..01f2002d --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Side Quests/Thanalan/Southern Thanalan/1022_Zombies Are People Too.json @@ -0,0 +1,170 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Thaksin", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1004914, + "Position": { + "X": 167.89502, + "Y": 3.1102452, + "Z": 972.5642 + }, + "TerritoryId": 146, + "InteractionType": "AcceptQuest", + "Fly": true + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1006603, + "Position": { + "X": -196.79565, + "Y": 78.11096, + "Z": 49.851196 + }, + "TerritoryId": 148, + "InteractionType": "Interact", + "AetheryteShortcut": "Central Shroud - Bentbranch Meadows", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1004914, + "Position": { + "X": 167.89502, + "Y": 3.1102452, + "Z": 972.5642 + }, + "TerritoryId": 146, + "InteractionType": "Interact", + "AetheryteShortcut": "Southern Thanalan - Forgotten Springs", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "Position": { + "X": -207.9934, + "Y": 66.78476, + "Z": -258.7822 + }, + "TerritoryId": 180, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Outer La Noscea - Camp Overlook", + "Fly": true + },{ + "Position": { + "X": -234.89017, + "Y": 63.51318, + "Z": -255.7134 + }, + "TerritoryId": 180, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "Position": { + "X": -356.22986, + "Y": 57.972702, + "Z": -381.27402 + }, + "TerritoryId": 180, + "InteractionType": "WalkTo", + "Fly": true + }, + + { + "DataId": 1006604, + "Position": { + "X": -278.73657, + "Y": 4.1657104, + "Z": -580.04126 + }, + "TerritoryId": 180, + "InteractionType": "Interact", + "Fly": true + } + + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1004914, + "Position": { + "X": 167.89502, + "Y": 3.1102452, + "Z": 972.5642 + }, + "TerritoryId": 146, + "InteractionType": "Interact", + "AetheryteShortcut": "Southern Thanalan - Forgotten Springs", + "Fly": true + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "InteractionType": "UseItem", + "ItemId": 2000779, + "GroundTarget": true, + "Position": { + "X": -192.67111, + "Y": 35.175262, + "Z": 129.13567 + }, + "TerritoryId": 146, + "Fly": true + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1006605, + "Position": { + "X": -192.49261, + "Y": 35.210636, + "Z": 129.13708 + }, + "TerritoryId": 146, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1004914, + "Position": { + "X": 167.89502, + "Y": 3.1102452, + "Z": 972.5642 + }, + "TerritoryId": 146, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Side Quests/Thanalan/The Waking Sands/1553_Can't Do It without U.json b/QuestPaths/2.x - A Realm Reborn/Side Quests/Thanalan/The Waking Sands/1553_Can't Do It without U.json new file mode 100644 index 00000000..caf53c57 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Side Quests/Thanalan/The Waking Sands/1553_Can't Do It without U.json @@ -0,0 +1,87 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "TerritoryId": 132, + "InteractionType": "UseItem", + "ItemId": 30362, + "TargetTerritoryId": 140, + "SkipConditions": { + "StepIf": { + "InTerritory": [ + 140, + 212 + ] + } + } + }, + { + "Position": { + "X": -492.96475, + "Y": 20.999884, + "Z": -380.82272 + }, + "TerritoryId": 140, + "InteractionType": "WalkTo", + "$": "Avoid walking around Waking Sands table", + "SkipConditions": { + "StepIf": { + "InTerritory": [ + 212 + ] + } + } + }, + { + "DataId": 2001711, + "Position": { + "X": -480.9181, + "Y": 18.00103, + "Z": -386.862 + }, + "TerritoryId": 140, + "InteractionType": "Interact", + "TargetTerritoryId": 212, + "SkipConditions": { + "StepIf": { + "InTerritory": [ + 212 + ] + } + } + }, + { + "DataId": 1011618, + "Position": { + "X": 10.330261, + "Y": -3.0000017, + "Z": -54.8562 + }, + "TerritoryId": 212, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1004917, + "Position": { + "X": -358.6328, + "Y": 8.469424, + "Z": 422.4154 + }, + "TerritoryId": 146, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Southern Thanalan - Forgotten Springs", + "NextQuestId": 1021 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/1481_Of Errant Epistles.json b/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/1481_Of Errant Epistles.json new file mode 100644 index 00000000..3fee548c --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/1481_Of Errant Epistles.json @@ -0,0 +1,53 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1006550, + "Position": { + "X": 449.33228, + "Y": -12.436822, + "Z": -387.5639 + }, + "TerritoryId": 156, + "InteractionType": "AcceptQuest", + "Fly": true, + "AetheryteShortcut": "Mor Dhona", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1003596, + "Position": { + "X": -41.428284, + "Y": 20, + "Z": -5.661133 + }, + "TerritoryId": 129, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Limsa Lominsa", + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_SUBPST000_01481_Q1_000_000", + "Yes": true, + "PromptIsRegularExpression": true + } + ], + "NextQuestId": 1483 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/1482_Carline Memories.json b/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/1482_Carline Memories.json new file mode 100644 index 00000000..1202675a --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/1482_Carline Memories.json @@ -0,0 +1,193 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1009153, + "Position": { + "X": -39.108948, + "Y": 20, + "Z": 5.416931 + }, + "TerritoryId": 129, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Limsa Lominsa", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1000100, + "Position": { + "X": 23.819275, + "Y": -8, + "Z": 115.92273 + }, + "TerritoryId": 132, + "InteractionType": "Interact", + "AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Airship Landing" + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2004266, + "Position": { + "X": 103.715576, + "Y": 1.2664795, + "Z": 46.92151 + }, + "TerritoryId": 132, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, + { + "DataId": 2004267, + "Position": { + "X": -67.216064, + "Y": -3.4332886, + "Z": 35.26355 + }, + "TerritoryId": 132, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 16 + ] + }, + { + "DataId": 2004269, + "Position": { + "X": -141.2528, + "Y": 7.827881, + "Z": -190.53949 + }, + "TerritoryId": 133, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Mih Khetto's Amphitheatre" + ], + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 2004268, + "Position": { + "X": 123.91846, + "Y": 14.145081, + "Z": -275.83734 + }, + "TerritoryId": 133, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Gridania] Mih Khetto's Amphitheatre", + "[Gridania] Lancers' Guild" + ], + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1000100, + "Position": { + "X": 23.819275, + "Y": -8, + "Z": 115.92273 + }, + "TerritoryId": 132, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Gridania] Lancers' Guild", + "[Gridania] Airship Landing" + ] + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 2004270, + "Position": { + "X": 7.1869507, + "Y": 4.7455444, + "Z": -262.98932 + }, + "StopDistance": 1, + "TerritoryId": 148, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Blue Badger Gate (Central Shroud)" + ], + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1000100, + "Position": { + "X": 23.819275, + "Y": -8, + "Z": 115.92273 + }, + "TerritoryId": 132, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Airship Landing" + ], + "NextQuestId": 1484 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/1483_A Debt Unpaid.json b/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/1483_A Debt Unpaid.json new file mode 100644 index 00000000..099f0354 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/1483_A Debt Unpaid.json @@ -0,0 +1,233 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1009153, + "Position": { + "X": -39.108948, + "Y": 20, + "Z": 5.416931 + }, + "TerritoryId": 129, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Limsa Lominsa", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1003611, + "Position": { + "X": 9.781006, + "Y": 20.999247, + "Z": 15.0911255 + }, + "TerritoryId": 129, + "InteractionType": "Interact", + "TargetTerritoryId": 128, + "DialogueChoices": [ + { + "Type": "List", + "ExcelSheet": "Warp", + "Prompt": null, + "Answer": 131093 + } + ] + }, + { + "DataId": 1000972, + "Position": { + "X": 20.279175, + "Y": 40.19993, + "Z": -6.1189575 + }, + "TerritoryId": 128, + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_SUBPST002_01483_Q1_000_000", + "Yes": true + } + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1003601, + "Position": { + "X": -3.2807007, + "Y": 39.51757, + "Z": -9.414856 + }, + "TerritoryId": 128, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1009183, + "Position": { + "X": -63.21814, + "Y": 43.589653, + "Z": 48.447266 + }, + "TerritoryId": 134, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Limsa Lominsa] The Aftcastle", + "[Limsa Lominsa] Zephyr Gate (Middle La Noscea)" + ], + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1009183, + "Position": { + "X": -63.21814, + "Y": 43.589653, + "Z": 48.447266 + }, + "TerritoryId": 134, + "InteractionType": "UseItem", + "ItemId": 2001324 + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1009666, + "Position": { + "X": -22.171448, + "Y": 42.442753, + "Z": 128.67932 + }, + "TerritoryId": 134, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1002626, + "Position": { + "X": 207.2633, + "Y": 112.86037, + "Z": -222.43079 + }, + "TerritoryId": 134, + "InteractionType": "Interact", + "AetheryteShortcut": "Middle La Noscea - Summerford Farms" + } + ] + }, + { + "Sequence": 7, + "Steps": [ + { + "DataId": 2004272, + "Position": { + "X": 224.2008, + "Y": 114.3053, + "Z": -223.40735 + }, + "TerritoryId": 134, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 8, + "Steps": [ + { + "DataId": 1009184, + "Position": { + "X": -22.171448, + "Y": 42.442753, + "Z": 128.67932 + }, + "TerritoryId": 134, + "InteractionType": "Interact", + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] Zephyr Gate (Middle La Noscea)" + ] + } + ] + }, + { + "Sequence": 9, + "Steps": [ + { + "DataId": 1000972, + "Position": { + "X": 20.279175, + "Y": 40.19993, + "Z": -6.1189575 + }, + "TerritoryId": 128, + "InteractionType": "Interact", + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] The Aftcastle" + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1003597, + "Position": { + "X": 8.194031, + "Y": 39.999973, + "Z": 17.746216 + }, + "TerritoryId": 128, + "InteractionType": "Interact", + "TargetTerritoryId": 129 + }, + { + "DataId": 1009153, + "Position": { + "X": -39.108948, + "Y": 20, + "Z": 5.416931 + }, + "TerritoryId": 129, + "InteractionType": "CompleteQuest", + "NextQuestId": 1482 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/1484_Dream On.json b/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/1484_Dream On.json new file mode 100644 index 00000000..e832f2ac --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/1484_Dream On.json @@ -0,0 +1,113 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1009153, + "Position": { + "X": -39.108948, + "Y": 20, + "Z": 5.416931 + }, + "TerritoryId": 129, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Limsa Lominsa", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1001353, + "Position": { + "X": 21.072632, + "Y": 7.45, + "Z": -78.78235 + }, + "TerritoryId": 130, + "InteractionType": "Interact", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Adventurers' Guild" + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1006357, + "Position": { + "X": -28.854858, + "Y": 13.799997, + "Z": 118.66931 + }, + "TerritoryId": 131, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Ul'dah] Adventurers' Guild", + "[Ul'dah] Goldsmiths' Guild" + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "Position": { + "X": -282.37943, + "Y": 13.480675, + "Z": -155.46162 + }, + "TerritoryId": 140, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Western Thanalan - Horizon", + "Fly": true + }, + { + "DataId": 1009186, + "Position": { + "X": -281.94098, + "Y": 13.480675, + "Z": -156.4508 + }, + "TerritoryId": 140, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1001353, + "Position": { + "X": 21.072632, + "Y": 7.45, + "Z": -78.78235 + }, + "TerritoryId": 130, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Adventurers' Guild" + ], + "NextQuestId": 1531 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/1485_Thwack-a-Mole.json b/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/1485_Thwack-a-Mole.json new file mode 100644 index 00000000..d5547266 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/1485_Thwack-a-Mole.json @@ -0,0 +1,166 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1009153, + "Position": { + "X": -39.108948, + "Y": 20, + "Z": 5.416931 + }, + "TerritoryId": 129, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Limsa Lominsa", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": -243.19783, + "Y": 58.69102, + "Z": -140.41818 + }, + "TerritoryId": 148, + "InteractionType": "WalkTo", + "Fly": true, + "AetheryteShortcut": "Central Shroud - Bentbranch Meadows", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + }, + { + "DataId": 1006261, + "Position": { + "X": -244.73944, + "Y": 58.69352, + "Z": -140.06262 + }, + "TerritoryId": 148, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1001455, + "Position": { + "X": 59.952637, + "Y": 0.99176025, + "Z": 255.8479 + }, + "TerritoryId": 141, + "InteractionType": "Interact", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Gate of Nald (Central Thanalan)" + ], + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2004276, + "Position": { + "X": 70.2677, + "Y": 1.2054443, + "Z": 250.53784 + }, + "TerritoryId": 141, + "InteractionType": "UseItem", + "ItemId": 2001329 + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 2004277, + "Position": { + "X": 70.2677, + "Y": 1.2054443, + "Z": 250.53784 + }, + "TerritoryId": 141, + "InteractionType": "UseItem", + "ItemId": 2001328, + "DelaySecondsAtStart": 3 + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 2004277, + "Position": { + "X": 70.2677, + "Y": 1.2054443, + "Z": 250.53784 + }, + "TerritoryId": 141, + "InteractionType": "Combat", + "EnemySpawnType": "FinishCombatIfAny", + "KillEnemyDataIds": [] + }, + { + "DataId": 1009187, + "Position": { + "X": 70.573, + "Y": 1.5015054, + "Z": 251.39233 + }, + "TerritoryId": 141, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": -243.19783, + "Y": 58.69102, + "Z": -140.41818 + }, + "TerritoryId": 148, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Central Shroud - Bentbranch Meadows", + "Fly": true + }, + { + "DataId": 1006261, + "Position": { + "X": -244.73944, + "Y": 58.69352, + "Z": -140.06262 + }, + "TerritoryId": 148, + "InteractionType": "CompleteQuest", + "NextQuestId": 1570 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/1531_Spirits Most Foul.json b/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/1531_Spirits Most Foul.json new file mode 100644 index 00000000..27dc2af1 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/1531_Spirits Most Foul.json @@ -0,0 +1,170 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1009153, + "Position": { + "X": -39.108948, + "Y": 20, + "Z": 5.416931 + }, + "TerritoryId": 129, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Limsa Lominsa", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1000705, + "Position": { + "X": -243.15253, + "Y": -4.000101, + "Z": -7.950012 + }, + "TerritoryId": 133, + "InteractionType": "Interact", + "AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Conjurers' Guild" + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1006238, + "Position": { + "X": 197.77222, + "Y": 7.8551226, + "Z": -22.14087 + }, + "TerritoryId": 153, + "InteractionType": "Interact", + "AetheryteShortcut": "South Shroud - Quarrymill", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1000312, + "Position": { + "X": 269.6421, + "Y": 7.877909, + "Z": -206.34778 + }, + "TerritoryId": 153, + "InteractionType": "Interact", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, + { + "DataId": 1000338, + "Position": { + "X": 268.20776, + "Y": 10.393627, + "Z": -250.11066 + }, + "TerritoryId": 153, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 1000340, + "Position": { + "X": 277.51575, + "Y": 11.186312, + "Z": -255.60394 + }, + "TerritoryId": 153, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "Position": { + "X": 265.58423, + "Y": 9.040689, + "Z": -227.60555 + }, + "TerritoryId": 153, + "InteractionType": "WalkTo" + }, + { + "DataId": 2004282, + "Position": { + "X": 261.5548, + "Y": 15.42688, + "Z": -125.90222 + }, + "TerritoryId": 153, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1000705, + "Position": { + "X": -243.15253, + "Y": -4.000101, + "Z": -7.950012 + }, + "TerritoryId": 133, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Conjurers' Guild" + ], + "NextQuestId": 1532 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/1532_Dubious Dancing.json b/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/1532_Dubious Dancing.json new file mode 100644 index 00000000..f99c589b --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/1532_Dubious Dancing.json @@ -0,0 +1,187 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1009153, + "Position": { + "X": -39.108948, + "Y": 20, + "Z": 5.416931 + }, + "TerritoryId": 129, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Limsa Lominsa", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1006273, + "Position": { + "X": 619.0126, + "Y": 23.936245, + "Z": 455.10022 + }, + "TerritoryId": 137, + "InteractionType": "Interact", + "AetheryteShortcut": "Eastern La Noscea - Costa Del Sol", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1009267, + "Position": { + "X": 194.20154, + "Y": 59.531815, + "Z": -144.54877 + }, + "TerritoryId": 180, + "InteractionType": "Interact", + "AetheryteShortcut": "Outer La Noscea - Camp Overlook", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "Position": { + "X": -348.54996, + "Y": 67.72218, + "Z": -344.0944 + }, + "TerritoryId": 180, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Outer La Noscea - Camp Overlook", + "Fly": true + }, + { + "DataId": 1009268, + "Position": { + "X": -319.9054, + "Y": 4.416262, + "Z": -571.40466 + }, + "TerritoryId": 180, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1009268, + "Position": { + "X": -319.9054, + "Y": 4.416262, + "Z": -571.40466 + }, + "TerritoryId": 180, + "InteractionType": "UseItem", + "ItemId": 2001334 + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1009268, + "Position": { + "X": -319.9054, + "Y": 4.416262, + "Z": -571.40466 + }, + "TerritoryId": 180, + "InteractionType": "UseItem", + "ItemId": 2001334 + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1009268, + "Position": { + "X": -319.9054, + "Y": 4.416262, + "Z": -571.40466 + }, + "TerritoryId": 180, + "InteractionType": "UseItem", + "ItemId": 2001334 + } + ] + }, + { + "Sequence": 7, + "Steps": [ + { + "DataId": 1006273, + "Position": { + "X": 619.0126, + "Y": 23.936245, + "Z": 455.10022 + }, + "TerritoryId": 137, + "InteractionType": "Interact", + "AetheryteShortcut": "Eastern La Noscea - Costa Del Sol", + "Fly": true + } + ] + }, + { + "Sequence": 8, + "Steps": [ + { + "DataId": 2004284, + "Position": { + "X": 517.32654, + "Y": 12.558105, + "Z": 78.93494 + }, + "TerritoryId": 137, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1006273, + "Position": { + "X": 619.0126, + "Y": 23.936245, + "Z": 455.10022 + }, + "TerritoryId": 137, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Eastern La Noscea - Costa Del Sol", + "Fly": true, + "NextQuestId": 1533 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/1533_Stroking the Haft.json b/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/1533_Stroking the Haft.json new file mode 100644 index 00000000..aa0347b6 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/1533_Stroking the Haft.json @@ -0,0 +1,145 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1009153, + "Position": { + "X": -39.108948, + "Y": 20, + "Z": 5.416931 + }, + "TerritoryId": 129, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Limsa Lominsa", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1009271, + "Position": { + "X": 149.9198, + "Y": 7.492006, + "Z": 109.391846 + }, + "TerritoryId": 131, + "InteractionType": "Interact", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1009272, + "Position": { + "X": -39.16992, + "Y": 13.499999, + "Z": 104.99719 + }, + "TerritoryId": 131, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Ul'dah] Weavers' Guild", + "[Ul'dah] Goldsmiths' Guild" + ], + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_SUBPST007_01533_Q1_000_000", + "Answer": "TEXT_SUBPST007_01533_A1_000_002" + } + ], + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 1009273, + "Position": { + "X": -120.74469, + "Y": 41.50016, + "Z": 134.5083 + }, + "TerritoryId": 131, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Ul'dah] Goldsmiths' Guild", + "[Ul'dah] Alchemists' Guild" + ], + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_SUBPST007_01533_Q2_000_000", + "Answer": "TEXT_SUBPST007_01533_A2_000_001" + } + ], + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "Position": { + "X": 112.655914, + "Y": 8.361085, + "Z": 73.20917 + }, + "TerritoryId": 131, + "InteractionType": "WalkTo", + "AethernetShortcut": [ + "[Ul'dah] Alchemists' Guild", + "[Ul'dah] Weavers' Guild" + ], + "RestartNavigationIfCancelled": false + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1009369, + "Position": { + "X": 151.26257, + "Y": 7.492006, + "Z": 109.84961 + }, + "TerritoryId": 131, + "InteractionType": "CompleteQuest", + "NextQuestId": 1571 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/1570_Death of a Mailman.json b/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/1570_Death of a Mailman.json new file mode 100644 index 00000000..2af9652d --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/1570_Death of a Mailman.json @@ -0,0 +1,136 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1009153, + "Position": { + "X": -39.108948, + "Y": 20, + "Z": 5.416931 + }, + "TerritoryId": 129, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Limsa Lominsa", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": -139.04318, + "Y": 8.522301, + "Z": 280.0128 + }, + "TerritoryId": 153, + "InteractionType": "WalkTo", + "AetheryteShortcut": "South Shroud - Camp Tranquil", + "Fly": true, + "SkipConditions": { + "StepIf": { + "Flying": "Locked" + } + }, + "$": "Post-ARR, flying always unlocked" + }, + { + "DataId": 1006751, + "Position": { + "X": -139.45221, + "Y": 8.712891, + "Z": 281.69678 + }, + "TerritoryId": 153, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1009153, + "Position": { + "X": -39.108948, + "Y": 20, + "Z": 5.416931 + }, + "TerritoryId": 129, + "InteractionType": "Interact", + "AetheryteShortcut": "Limsa Lominsa" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2004573, + "Position": { + "X": 36.545288, + "Y": -3.7080078, + "Z": 225.7572 + }, + "TerritoryId": 152, + "InteractionType": "Interact", + "AetheryteShortcut": "East Shroud - Hawthorne Hut", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "Position": { + "X": -83.15885, + "Y": -5.7812023, + "Z": 321.49606 + }, + "StopDistance": 0.5, + "TerritoryId": 152, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [ + 3552, + 3553 + ], + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1009721, + "Position": { + "X": -83.36011, + "Y": -5.6851597, + "Z": 322.43823 + }, + "TerritoryId": 152, + "InteractionType": "CompleteQuest", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_SUBPST010_01570_Q1_000_000", + "Answer": "TEXT_SUBPST010_01570_A1_000_002" + } + ], + "NextQuestId": 1576 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/1571_The Captain of Her Heart.json b/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/1571_The Captain of Her Heart.json new file mode 100644 index 00000000..91679b7e --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/1571_The Captain of Her Heart.json @@ -0,0 +1,180 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1009153, + "Position": { + "X": -39.108948, + "Y": 20, + "Z": 5.416931 + }, + "TerritoryId": 129, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Limsa Lominsa", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1006331, + "Position": { + "X": -144.15204, + "Y": 64.989944, + "Z": -209.88788 + }, + "TerritoryId": 180, + "InteractionType": "Interact", + "AetheryteShortcut": "Outer La Noscea - Camp Overlook" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1009726, + "Position": { + "X": -280.8728, + "Y": 62.620903, + "Z": -201.9837 + }, + "StopDistance": 0.5, + "TerritoryId": 180, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [ + 2864, + 2865, + 2866 + ], + "Fly": true, + "CompletionQuestVariablesFlags": [ + { + "Low": 3 + }, + null, + null, + null, + null, + null + ] + }, + { + "DataId": 1009726, + "Position": { + "X": -280.8728, + "Y": 62.620903, + "Z": -201.9837 + }, + "TerritoryId": 180, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1006331, + "Position": { + "X": -144.15204, + "Y": 64.989944, + "Z": -209.88788 + }, + "TerritoryId": 180, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1009729, + "Position": { + "X": -108.72058, + "Y": 64.30314, + "Z": -220.38611 + }, + "TerritoryId": 180, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1009730, + "Position": { + "X": -145.8305, + "Y": 64.83713, + "Z": -209.24695 + }, + "TerritoryId": 180, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1009732, + "Position": { + "X": -439.59723, + "Y": 50.90922, + "Z": -319.69183 + }, + "TerritoryId": 180, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 7, + "Steps": [ + { + "DataId": 1009753, + "Position": { + "X": -107.408325, + "Y": 64.38365, + "Z": -223.62103 + }, + "TerritoryId": 180, + "InteractionType": "Interact", + "AetheryteShortcut": "Outer La Noscea - Camp Overlook" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1006331, + "Position": { + "X": -144.15204, + "Y": 64.989944, + "Z": -209.88788 + }, + "TerritoryId": 180, + "InteractionType": "CompleteQuest", + "NextQuestId": 33 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/1572_Thanks for Your Support.json b/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/1572_Thanks for Your Support.json new file mode 100644 index 00000000..aea6ec8c --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/1572_Thanks for Your Support.json @@ -0,0 +1,146 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1009153, + "Position": { + "X": -39.108948, + "Y": 20, + "Z": 5.416931 + }, + "TerritoryId": 129, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Limsa Lominsa", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1000856, + "Position": { + "X": -155.10797, + "Y": 4.070978, + "Z": 202.71606 + }, + "TerritoryId": 129, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] Fishermens' Guild" + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1009733, + "Position": { + "X": -356.31348, + "Y": 8.000001, + "Z": 49.54602 + }, + "TerritoryId": 129, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Limsa Lominsa] Fishermens' Guild", + "[Limsa Lominsa] Arcanists' Guild" + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2004568, + "Position": { + "X": -356.31348, + "Y": 7.9804688, + "Z": 48.90515 + }, + "TerritoryId": 129, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 2004570, + "Position": { + "X": -83.634705, + "Y": 1.9378662, + "Z": 826.10803 + }, + "TerritoryId": 135, + "InteractionType": "UseItem", + "ItemId": 2001446, + "AetheryteShortcut": "Lower La Noscea - Moraby Drydocks", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1001016, + "Position": { + "X": -42.679565, + "Y": 39.999947, + "Z": 119.920654 + }, + "TerritoryId": 128, + "InteractionType": "PurchaseItem", + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] The Aftcastle" + ], + "PurchaseMenu": { + "ExcelSheet": "GilShop", + "Key": 262186 + }, + "ItemId": 4870, + "ItemCount": 1 + }, + { + "Position": { + "X": -82.249344, + "Y": 2.1958525, + "Z": 826.0164 + }, + "TerritoryId": 135, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Lower La Noscea - Moraby Drydocks", + "Fly": true + }, + { + "DataId": 1009735, + "Position": { + "X": -84.21454, + "Y": 1.802455, + "Z": 826.5963 + }, + "TerritoryId": 135, + "InteractionType": "CompleteQuest", + "NextQuestId": 1575 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/1573_Of Siblings and Side-whiskers.json b/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/1573_Of Siblings and Side-whiskers.json new file mode 100644 index 00000000..c5dc058e --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/1573_Of Siblings and Side-whiskers.json @@ -0,0 +1,113 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1009153, + "Position": { + "X": -39.108948, + "Y": 20, + "Z": 5.416931 + }, + "TerritoryId": 129, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Limsa Lominsa", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1009739, + "Position": { + "X": -103.83765, + "Y": 40, + "Z": 113.206665 + }, + "TerritoryId": 128, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] The Aftcastle" + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1000153, + "Position": { + "X": -44.87683, + "Y": -1.2500024, + "Z": 56.839844 + }, + "TerritoryId": 132, + "InteractionType": "Interact", + "AetheryteShortcut": "Gridania" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "Position": { + "X": -103.88594, + "Y": 41.50016, + "Z": 119.898315 + }, + "TerritoryId": 131, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Alchemists' Guild" + ] + }, + { + "DataId": 1002299, + "Position": { + "X": -98.8938, + "Y": 40.200146, + "Z": 120.83618 + }, + "StopDistance": 7, + "TerritoryId": 131, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1009744, + "Position": { + "X": -47.470886, + "Y": 40, + "Z": 60.68506 + }, + "TerritoryId": 128, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] The Aftcastle" + ], + "NextQuestId": 1485 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/1574_The Past Is a Story We Never Tell.json b/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/1574_The Past Is a Story We Never Tell.json new file mode 100644 index 00000000..7cfa810b --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/1574_The Past Is a Story We Never Tell.json @@ -0,0 +1,266 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1009153, + "Position": { + "X": -39.108948, + "Y": 20, + "Z": 5.416931 + }, + "TerritoryId": 129, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Fishermens' Guild", + "[Limsa Lominsa] Aetheryte Plaza" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1001263, + "Position": { + "X": 181.41443, + "Y": -2.3519497, + "Z": -240.40594 + }, + "TerritoryId": 133, + "InteractionType": "Interact", + "AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Lancers' Guild" + ], + "TargetTerritoryId": 152 + }, + { + "DataId": 1009754, + "Position": { + "X": -571.4351, + "Y": 10.28263, + "Z": 61.020752 + }, + "TerritoryId": 152, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2004581, + "Position": { + "X": 354.72632, + "Y": 5.5999756, + "Z": -30.167114 + }, + "TerritoryId": 153, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 2843 + ], + "AetheryteShortcut": "South Shroud - Quarrymill", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 2004582, + "Position": { + "X": 343.2821, + "Y": 2.4261475, + "Z": 8.895996 + }, + "TerritoryId": 153, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 2843 + ], + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2004845, + "Position": { + "X": 362.50854, + "Y": 1.663208, + "Z": -18.478699 + }, + "TerritoryId": 153, + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_SUBPST014_01574_Q1_000_000", + "Answer": "TEXT_SUBPST014_01574_A1_000_001" + } + ] + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1009755, + "Position": { + "X": 361.19617, + "Y": 1.6090399, + "Z": -18.448242 + }, + "TerritoryId": 153, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1009756, + "Position": { + "X": 377.40137, + "Y": 0.37321654, + "Z": 119.920654 + }, + "TerritoryId": 153, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1001263, + "Position": { + "X": 181.41443, + "Y": -2.3519497, + "Z": -240.40594 + }, + "TerritoryId": 133, + "InteractionType": "Interact", + "AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Lancers' Guild" + ], + "TargetTerritoryId": 152 + }, + { + "DataId": 1009754, + "Position": { + "X": -571.4351, + "Y": 10.28263, + "Z": 61.020752 + }, + "TerritoryId": 152, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 7, + "Steps": [ + { + "DataId": 1009758, + "Position": { + "X": -161.24213, + "Y": 7.554849, + "Z": 107.10303 + }, + "TerritoryId": 153, + "InteractionType": "Interact", + "AetheryteShortcut": "South Shroud - Camp Tranquil", + "Fly": true + } + ] + }, + { + "Sequence": 8, + "Steps": [ + { + "DataId": 2004846, + "Position": { + "X": -181.44507, + "Y": 8.0720215, + "Z": 101.27405 + }, + "TerritoryId": 153, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 2863, + 3558 + ] + } + ] + }, + { + "Sequence": 9, + "Steps": [ + { + "DataId": 1009760, + "Position": { + "X": -235.21783, + "Y": 6.619436, + "Z": 609.39954 + }, + "TerritoryId": 153, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1009760, + "Position": { + "X": -235.21783, + "Y": 6.619436, + "Z": 609.39954 + }, + "TerritoryId": 153, + "InteractionType": "CompleteQuest", + "NextQuestId": 1572 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/1575_Hostages to Fortune.json b/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/1575_Hostages to Fortune.json new file mode 100644 index 00000000..280ee651 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/1575_Hostages to Fortune.json @@ -0,0 +1,248 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1009153, + "Position": { + "X": -39.108948, + "Y": 20, + "Z": 5.416931 + }, + "TerritoryId": 129, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Limsa Lominsa", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1006406, + "Position": { + "X": 63.156982, + "Y": -13.3626, + "Z": 140.91699 + }, + "TerritoryId": 154, + "InteractionType": "Interact", + "AetheryteShortcut": "North Shroud - Fallgourd Float" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": 328.4609, + "Y": -5.423937, + "Z": 266.34305 + }, + "StopDistance": 0.5, + "TerritoryId": 154, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [ + 3556, + 3557 + ], + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1010405, + "Position": { + "X": 334.73718, + "Y": -6.0854516, + "Z": 270.74072 + }, + "TerritoryId": 154, + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_SUBPST015_01575_Q1_000_070", + "Answer": "TEXT_SUBPST015_01575_A1_001_070" + } + ] + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1010407, + "Position": { + "X": 225.54358, + "Y": -25.225279, + "Z": 233.56982 + }, + "TerritoryId": 154, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1010408, + "Position": { + "X": 47.837036, + "Y": -34.920486, + "Z": 275.89832 + }, + "TerritoryId": 154, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1006406, + "Position": { + "X": 63.156982, + "Y": -13.3626, + "Z": 140.91699 + }, + "TerritoryId": 154, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 7, + "Steps": [ + { + "Position": { + "X": -31.059683, + "Y": -40.708477, + "Z": 195.24632 + }, + "TerritoryId": 154, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 1010409, + "Position": { + "X": -20.279297, + "Y": -34.656372, + "Z": 172.13696 + }, + "TerritoryId": 154, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 8, + "Steps": [ + { + "DataId": 1006406, + "Position": { + "X": 63.156982, + "Y": -13.3626, + "Z": 140.91699 + }, + "TerritoryId": 154, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 9, + "Steps": [ + { + "DataId": 1010410, + "Position": { + "X": 9.567322, + "Y": -10.024739, + "Z": 22.934265 + }, + "TerritoryId": 154, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 10, + "Steps": [ + { + "DataId": 1010509, + "Position": { + "X": 63.370728, + "Y": -13.485855, + "Z": 141.86316 + }, + "TerritoryId": 154, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 11, + "Steps": [ + { + "Position": { + "X": -31.059683, + "Y": -40.708477, + "Z": 195.24632 + }, + "TerritoryId": 154, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 1010409, + "Position": { + "X": -20.279297, + "Y": -34.656372, + "Z": 172.13696 + }, + "TerritoryId": 154, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1006406, + "Position": { + "X": 63.156982, + "Y": -13.3626, + "Z": 140.91699 + }, + "TerritoryId": 154, + "InteractionType": "CompleteQuest", + "Fly": true, + "NextQuestId": 243 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/1576_All in the Family.json b/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/1576_All in the Family.json new file mode 100644 index 00000000..e98e25de --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/1576_All in the Family.json @@ -0,0 +1,217 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1009153, + "Position": { + "X": -39.108948, + "Y": 20, + "Z": 5.416931 + }, + "TerritoryId": 129, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Limsa Lominsa", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1006211, + "Position": { + "X": -217.48688, + "Y": 26.258211, + "Z": -361.2574 + }, + "TerritoryId": 146, + "InteractionType": "Interact", + "AetheryteShortcut": "Southern Thanalan - Little Ala Mhigo" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": -255.1732, + "Y": 27.485052, + "Z": -324.7051 + }, + "TerritoryId": 146, + "InteractionType": "WalkTo", + "Mount": true + }, + { + "DataId": 2004884, + "Position": { + "X": -64.86609, + "Y": -1.5411987, + "Z": -69.50488 + }, + "TerritoryId": 146, + "InteractionType": "Interact", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 4 + ] + }, + { + "DataId": 2004883, + "Position": { + "X": -53.635498, + "Y": -1.3886108, + "Z": -53.391357 + }, + "TerritoryId": 146, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 8 + ] + }, + { + "DataId": 2004882, + "Position": { + "X": -69.077576, + "Y": -2.1820679, + "Z": -32.913757 + }, + "TerritoryId": 146, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1006211, + "Position": { + "X": -217.48688, + "Y": 26.258211, + "Z": -361.2574 + }, + "TerritoryId": 146, + "InteractionType": "Interact", + "AetheryteShortcut": "Southern Thanalan - Little Ala Mhigo" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1006196, + "Position": { + "X": -63.98114, + "Y": -20.296238, + "Z": -5.142395 + }, + "TerritoryId": 145, + "InteractionType": "Interact", + "AetheryteShortcut": "Eastern Thanalan - Camp Drybone", + "Fly": true + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "Position": { + "X": -155.2711, + "Y": -32.952675, + "Z": 242.00226 + }, + "TerritoryId": 145, + "InteractionType": "WalkTo", + "Fly": true + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "Position": { + "X": -155.2711, + "Y": -32.952675, + "Z": 242.00226 + }, + "TerritoryId": 145, + "InteractionType": "Combat", + "EnemySpawnType": "FinishCombatIfAny", + "KillEnemyDataIds": [ + 3554, + 3555 + ] + }, + { + "DataId": 1010417, + "Position": { + "X": -154.37555, + "Y": -31.787657, + "Z": 244.7699 + }, + "StopDistance": 5, + "TerritoryId": 145, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 7, + "Steps": [ + { + "DataId": 1006196, + "Position": { + "X": -63.98114, + "Y": -20.296238, + "Z": -5.142395 + }, + "TerritoryId": 145, + "InteractionType": "Interact", + "AetheryteShortcut": "Eastern Thanalan - Camp Drybone", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1006211, + "Position": { + "X": -217.48688, + "Y": 26.258211, + "Z": -361.2574 + }, + "TerritoryId": 146, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Southern Thanalan - Little Ala Mhigo", + "NextQuestId": 1577 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/1577_Duel Personalities.json b/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/1577_Duel Personalities.json new file mode 100644 index 00000000..c13c0cf9 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/1577_Duel Personalities.json @@ -0,0 +1,197 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1009153, + "Position": { + "X": -39.108948, + "Y": 20, + "Z": 5.416931 + }, + "TerritoryId": 129, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Limsa Lominsa", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": -99.05126, + "Y": 19.82, + "Z": 88.622086 + }, + "TerritoryId": 129, + "InteractionType": "WalkTo" + }, + { + "DataId": 1010419, + "Position": { + "X": -117.84546, + "Y": 21.38377, + "Z": 83.604126 + }, + "TerritoryId": 129, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": -90.47176, + "Y": 22.179348, + "Z": 116.58494 + }, + "TerritoryId": 129, + "InteractionType": "WalkTo" + }, + { + "DataId": 1010420, + "Position": { + "X": -10.208313, + "Y": 39.51757, + "Z": -1.8463745 + }, + "TerritoryId": 128, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1003597, + "Position": { + "X": 8.194031, + "Y": 39.999973, + "Z": 17.746216 + }, + "TerritoryId": 128, + "InteractionType": "Interact", + "TargetTerritoryId": 129 + }, + { + "DataId": 1010423, + "Position": { + "X": -20.73706, + "Y": 19.999937, + "Z": 4.257263 + }, + "TerritoryId": 129, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1002433, + "Position": { + "X": -6.729248, + "Y": 20.333345, + "Z": -0.7477417 + }, + "TerritoryId": 129, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1010423, + "Position": { + "X": -20.73706, + "Y": 19.999937, + "Z": 4.257263 + }, + "TerritoryId": 129, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1010424, + "Position": { + "X": -172.59485, + "Y": 4.284276, + "Z": 168.07812 + }, + "TerritoryId": 129, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] Fishermens' Guild" + ] + } + ] + }, + { + "Sequence": 7, + "Steps": [ + { + "DataId": 1000857, + "Position": { + "X": -165.27051, + "Y": 5.2500057, + "Z": 164.29382 + }, + "StopDistance": 7, + "TerritoryId": 129, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 8, + "Steps": [ + { + "DataId": 1010424, + "Position": { + "X": -172.59485, + "Y": 4.284276, + "Z": 168.07812 + }, + "TerritoryId": 129, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1010521, + "Position": { + "X": -184.64948, + "Y": 1.9999955, + "Z": 201.28174 + }, + "TerritoryId": 129, + "InteractionType": "CompleteQuest", + "NextQuestId": 241 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/240_Blues on Emerald Avenue.json b/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/240_Blues on Emerald Avenue.json new file mode 100644 index 00000000..52319d99 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/240_Blues on Emerald Avenue.json @@ -0,0 +1,238 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1009153, + "Position": { + "X": -39.108948, + "Y": 20, + "Z": 5.416931 + }, + "TerritoryId": 129, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Limsa Lominsa", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1001285, + "Position": { + "X": -68.77246, + "Y": 4.0411124, + "Z": -126.51257 + }, + "TerritoryId": 130, + "InteractionType": "Interact", + "AetheryteShortcut": "Ul'dah" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": 326.4774, + "Y": 62.89536, + "Z": -207.31602 + }, + "TerritoryId": 140, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Western Thanalan - Horizon", + "Fly": true + }, + { + "DataId": 2004847, + "Position": { + "X": 323.62854, + "Y": 62.974, + "Z": -207.90424 + }, + "TerritoryId": 140, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1001285, + "Position": { + "X": -68.77246, + "Y": 4.0411124, + "Z": -126.51257 + }, + "TerritoryId": 130, + "InteractionType": "Interact", + "AetheryteShortcut": "Ul'dah" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1003908, + "Position": { + "X": 137.95679, + "Y": 4.041112, + "Z": -41.09259 + }, + "TerritoryId": 131, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Sapphire Avenue Exchange" + ] + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1001679, + "Position": { + "X": 140.48975, + "Y": 4.0099983, + "Z": -59.80017 + }, + "TerritoryId": 131, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1001285, + "Position": { + "X": -68.77246, + "Y": 4.0411124, + "Z": -126.51257 + }, + "TerritoryId": 130, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Ul'dah] Sapphire Avenue Exchange", + "[Ul'dah] Aetheryte Plaza" + ] + } + ] + }, + { + "Sequence": 7, + "Steps": [ + { + "Position": { + "X": -77.95643, + "Y": -12.787907, + "Z": -45.044247 + }, + "TerritoryId": 141, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Central Thanalan - Black Brush Station", + "Fly": true, + "$": "Coffer & Coffin (outside)" + }, + { + "DataId": 1010341, + "Position": { + "X": -89.40265, + "Y": -11.35, + "Z": -40.146484 + }, + "TerritoryId": 141, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 8, + "Steps": [ + { + "DataId": 1001285, + "Position": { + "X": -68.77246, + "Y": 4.0411124, + "Z": -126.51257 + }, + "TerritoryId": 130, + "InteractionType": "Interact", + "AetheryteShortcut": "Ul'dah" + } + ] + }, + { + "Sequence": 9, + "Steps": [ + { + "DataId": 1010342, + "Position": { + "X": -189.50183, + "Y": 16.85818, + "Z": -418.8449 + }, + "TerritoryId": 141, + "InteractionType": "Interact", + "AetheryteShortcut": "Central Thanalan - Black Brush Station", + "Fly": true + } + ] + }, + { + "Sequence": 10, + "Steps": [ + { + "DataId": 1010346, + "Position": { + "X": -207.44641, + "Y": 18.499998, + "Z": 73.899414 + }, + "TerritoryId": 130, + "InteractionType": "Interact", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Thaumaturges' Guild" + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1001285, + "Position": { + "X": -68.77246, + "Y": 4.0411124, + "Z": -126.51257 + }, + "TerritoryId": 130, + "InteractionType": "CompleteQuest", + "AethernetShortcut": [ + "[Ul'dah] Thaumaturges' Guild", + "[Ul'dah] Aetheryte Plaza" + ], + "NextQuestId": 496 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/241_Lone Survivor.json b/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/241_Lone Survivor.json new file mode 100644 index 00000000..1a48a0b6 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/241_Lone Survivor.json @@ -0,0 +1,190 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1009153, + "Position": { + "X": -39.108948, + "Y": 20, + "Z": 5.416931 + }, + "TerritoryId": 129, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Fishermens' Guild", + "[Limsa Lominsa] Aetheryte Plaza" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": -371.6037, + "Y": 54.310753, + "Z": 428.55798 + }, + "TerritoryId": 137, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Eastern La Noscea - Wineport", + "Fly": true + }, + { + "DataId": 1006312, + "Position": { + "X": -369.0395, + "Y": 54.28071, + "Z": 441.24512 + }, + "TerritoryId": 137, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": -371.6037, + "Y": 54.310753, + "Z": 428.55798 + }, + "TerritoryId": 137, + "InteractionType": "WalkTo", + "Mount": true + }, + { + "Position": { + "X": -250.51706, + "Y": 48.854584, + "Z": 462.12476 + }, + "TerritoryId": 137, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 2004858, + "Position": { + "X": -252.76575, + "Y": 49.66809, + "Z": 460.71558 + }, + "TerritoryId": 137, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "Position": { + "X": -371.6037, + "Y": 54.310753, + "Z": 428.55798 + }, + "TerritoryId": 137, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 1006312, + "Position": { + "X": -369.0395, + "Y": 54.28071, + "Z": 441.24512 + }, + "TerritoryId": 137, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "Position": { + "X": -371.6037, + "Y": 54.310753, + "Z": 428.55798 + }, + "TerritoryId": 137, + "InteractionType": "WalkTo", + "Mount": true + }, + { + "Position": { + "X": -133.36604, + "Y": 70.192245, + "Z": 746.02716 + }, + "TerritoryId": 137, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "Position": { + "X": 570.5895, + "Y": 95.61268, + "Z": -497.8778 + }, + "TerritoryId": 135, + "InteractionType": "WalkTo", + "RestartNavigationIfCancelled": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": 569.87854, + "Y": 95.62417, + "Z": -498.10028 + }, + "TerritoryId": 135, + "InteractionType": "Combat", + "EnemySpawnType": "FinishCombatIfAny", + "KillEnemyDataIds": [ + 2861, + 3563, + 3562 + ] + }, + { + "DataId": 1010370, + "Position": { + "X": 569.87854, + "Y": 95.62417, + "Z": -498.10028 + }, + "TerritoryId": 135, + "InteractionType": "CompleteQuest", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_SUBPST021_00241_Q1_000_000", + "Answer": "TEXT_SUBPST021_00241_A1_000_001" + } + ], + "NextQuestId": 242 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/242_Guildmaster, Prelate, and Plot.json b/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/242_Guildmaster, Prelate, and Plot.json new file mode 100644 index 00000000..9e3f79df --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/242_Guildmaster, Prelate, and Plot.json @@ -0,0 +1,282 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1009153, + "Position": { + "X": -39.108948, + "Y": 20, + "Z": 5.416931 + }, + "TerritoryId": 129, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Fishermens' Guild", + "[Limsa Lominsa] Aetheryte Plaza" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1001708, + "Position": { + "X": -250.3548, + "Y": 18, + "Z": 80.88806 + }, + "TerritoryId": 130, + "InteractionType": "Interact", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Thaumaturges' Guild" + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1002279, + "Position": { + "X": -196.8872, + "Y": 18.459997, + "Z": 59.952637 + }, + "TerritoryId": 130, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1001708, + "Position": { + "X": -250.3548, + "Y": 18, + "Z": 80.88806 + }, + "TerritoryId": 130, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1001711, + "Position": { + "X": -241.62665, + "Y": 18.8, + "Z": 83.32947 + }, + "TerritoryId": 130, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 1001294, + "Position": { + "X": -214.22144, + "Y": 18.5, + "Z": 72.129395 + }, + "TerritoryId": 130, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, + { + "DataId": 1001289, + "Position": { + "X": -207.90424, + "Y": 18.5, + "Z": 70.7865 + }, + "TerritoryId": 130, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 1001288, + "Position": { + "X": -151.59845, + "Y": 12, + "Z": 16.220276 + }, + "TerritoryId": 130, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 16 + ] + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1001708, + "Position": { + "X": -250.3548, + "Y": 18, + "Z": 80.88806 + }, + "TerritoryId": 130, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 2004886, + "Position": { + "X": -245.19727, + "Y": 19.150085, + "Z": 63.67578 + }, + "TerritoryId": 130, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 2004885, + "Position": { + "X": -206.50043, + "Y": 19.180542, + "Z": 49.94275 + }, + "TerritoryId": 130, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 2004887, + "Position": { + "X": -194.11005, + "Y": 19.150085, + "Z": 91.325195 + }, + "TerritoryId": 130, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, + { + "DataId": 2004888, + "Position": { + "X": -243.64087, + "Y": 20.065613, + "Z": 104.41736 + }, + "TerritoryId": 130, + "InteractionType": "Interact", + "IgnoreDistanceToObject": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 16 + ] + } + ] + }, + { + "Sequence": 7, + "Steps": [ + { + "DataId": 1001708, + "Position": { + "X": -250.3548, + "Y": 18, + "Z": 80.88806 + }, + "TerritoryId": 130, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 2004889, + "Position": { + "X": -136.55304, + "Y": 11.9782715, + "Z": 23.5141 + }, + "TerritoryId": 130, + "InteractionType": "CompleteQuest", + "NextQuestId": 1574 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/243_A Qiqirn Always Pays His Debts.json b/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/243_A Qiqirn Always Pays His Debts.json new file mode 100644 index 00000000..d7d94ea4 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/243_A Qiqirn Always Pays His Debts.json @@ -0,0 +1,194 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1009153, + "Position": { + "X": -39.108948, + "Y": 20, + "Z": 5.416931 + }, + "TerritoryId": 129, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Limsa Lominsa", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1001787, + "Position": { + "X": -62.119568, + "Y": 18.000334, + "Z": 9.414734 + }, + "TerritoryId": 129, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": -339.63614, + "Y": -2.097362, + "Z": 142.24135 + }, + "TerritoryId": 139, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Upper La Noscea - Camp Bronze Lake", + "Fly": true + }, + { + "DataId": 1005249, + "Position": { + "X": -337.30072, + "Y": -2.1811728, + "Z": 141.31372 + }, + "TerritoryId": 139, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1003586, + "Position": { + "X": -342.12262, + "Y": -1.0249884, + "Z": 111.46704 + }, + "TerritoryId": 139, + "InteractionType": "Interact", + "TargetTerritoryId": 139 + }, + { + "DataId": 1010434, + "Position": { + "X": 241.74866, + "Y": -0.96623325, + "Z": 257.12976 + }, + "TerritoryId": 139, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1010435, + "Position": { + "X": 340.04736, + "Y": -2.5074248, + "Z": 104.600464 + }, + "TerritoryId": 139, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1010435, + "Position": { + "X": 340.04736, + "Y": -2.5074248, + "Z": 104.600464 + }, + "TerritoryId": 139, + "InteractionType": "Combat", + "EnemySpawnType": "FinishCombatIfAny", + "KillEnemyDataIds": [ + 3559, + 3560 + ] + }, + { + "DataId": 1010437, + "Position": { + "X": 271.59534, + "Y": 25.732939, + "Z": -100.35864 + }, + "TerritoryId": 139, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "Position": { + "X": -339.63614, + "Y": -2.097362, + "Z": 142.24135 + }, + "TerritoryId": 139, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 1005249, + "Position": { + "X": -337.30072, + "Y": -2.1811728, + "Z": 141.31372 + }, + "TerritoryId": 139, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1003586, + "Position": { + "X": -342.12262, + "Y": -1.0249884, + "Z": 111.46704 + }, + "TerritoryId": 139, + "InteractionType": "Interact", + "TargetTerritoryId": 139 + }, + { + "DataId": 1010438, + "Position": { + "X": 275.28796, + "Y": -0.93098116, + "Z": 231.61658 + }, + "TerritoryId": 139, + "InteractionType": "CompleteQuest", + "Fly": true, + "NextQuestId": 244 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/244_The Hazy Professor.json b/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/244_The Hazy Professor.json new file mode 100644 index 00000000..2f8cf96e --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/244_The Hazy Professor.json @@ -0,0 +1,230 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1009153, + "Position": { + "X": -39.108948, + "Y": 20, + "Z": 5.416931 + }, + "TerritoryId": 129, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Limsa Lominsa", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1006493, + "Position": { + "X": -437.67456, + "Y": -55.694504, + "Z": 100.87732 + }, + "TerritoryId": 145, + "InteractionType": "Interact", + "AetheryteShortcut": "Eastern Thanalan - Camp Drybone" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2004864, + "Position": { + "X": -381.70447, + "Y": -58.42682, + "Z": 167.74243 + }, + "TerritoryId": 145, + "InteractionType": "UseItem", + "ItemId": 2001487 + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "Position": { + "X": -393.1081, + "Y": -57.326912, + "Z": 155.15263 + }, + "TerritoryId": 145, + "InteractionType": "WalkTo", + "Mount": true + }, + { + "DataId": 2004877, + "Position": { + "X": -299.48883, + "Y": -40.665344, + "Z": 7.095398 + }, + "TerritoryId": 145, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "Position": { + "X": -422.0606, + "Y": -55.802967, + "Z": 107.502235 + }, + "TerritoryId": 145, + "InteractionType": "WalkTo", + "Fly": true + }, + { + + "DataId": 1006493, + "Position": { + "X": -437.67456, + "Y": -55.694504, + "Z": 100.87732 + }, + "TerritoryId": 145, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 2004866, + "Position": { + "X": -382.22327, + "Y": -58.42682, + "Z": 168.65796 + }, + "TerritoryId": 145, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "Position": { + "X": -393.1081, + "Y": -57.326912, + "Z": 155.15263 + }, + "TerritoryId": 145, + "InteractionType": "WalkTo", + "Mount": true + }, + { + "Position": { + "X": -1.83288, + "Y": -17.544205, + "Z": 23.35826 + }, + "TerritoryId": 145, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 1006495, + "Position": { + "X": -2.2736206, + "Y": -17.544205, + "Z": 24.734863 + }, + "TerritoryId": 145, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 7, + "Steps": [ + { + "Position": { + "X": -1.4535733, + "Y": -8.0592985, + "Z": 1.7329537 + }, + "TerritoryId": 145, + "InteractionType": "WalkTo", + "Mount": true + }, + { + "Position": { + "X": 435.9292, + "Y": 9.87471, + "Z": 143.03693 + }, + "TerritoryId": 145, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 2004868, + "Position": { + "X": 438.6206, + "Y": 12.436096, + "Z": 137.6211 + }, + "TerritoryId": 145, + "InteractionType": "UseItem", + "ItemId": 2001489 + } + ] + }, + { + "Sequence": 8, + "Steps": [ + { + "DataId": 2004869, + "Position": { + "X": 438.6206, + "Y": 12.436096, + "Z": 137.6211 + }, + "TerritoryId": 145, + "InteractionType": "UseItem", + "ItemId": 2001488 + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1010377, + "Position": { + "X": -382.83362, + "Y": -59.300003, + "Z": 169.75659 + }, + "TerritoryId": 145, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Eastern Thanalan - Camp Drybone", + "NextQuestId": 240 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/33_Sweet Words, Shadowy Dealings.json b/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/33_Sweet Words, Shadowy Dealings.json new file mode 100644 index 00000000..22693e40 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/33_Sweet Words, Shadowy Dealings.json @@ -0,0 +1,231 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1009153, + "Position": { + "X": -39.108948, + "Y": 20, + "Z": 5.416931 + }, + "TerritoryId": 129, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Limsa Lominsa", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1009949, + "Position": { + "X": -325.70386, + "Y": 7.228748, + "Z": -215.16754 + }, + "TerritoryId": 133, + "InteractionType": "Interact", + "AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Botanists' Guild" + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1009952, + "Position": { + "X": 41.61133, + "Y": 1.8386029, + "Z": -117.265625 + }, + "TerritoryId": 133, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Gridania] Botanists' Guild", + "[Gridania] Leatherworkers' Guild & Shaded Bower" + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1000768, + "Position": { + "X": 172.35059, + "Y": 15.5, + "Z": -89.951965 + }, + "TerritoryId": 133, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 1000227, + "Position": { + "X": 168.62744, + "Y": 15.699999, + "Z": -65.690125 + }, + "TerritoryId": 133, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, + { + "DataId": 1000228, + "Position": { + "X": 168.20007, + "Y": 15.69998, + "Z": -64.83563 + }, + "StopDistance": 5, + "TerritoryId": 133, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1009952, + "Position": { + "X": 41.61133, + "Y": 1.8386029, + "Z": -117.265625 + }, + "TerritoryId": 133, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1000243, + "Position": { + "X": 170.03125, + "Y": 15.699999, + "Z": -127.03143 + }, + "TerritoryId": 133, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1009952, + "Position": { + "X": 41.61133, + "Y": 1.8386029, + "Z": -117.265625 + }, + "TerritoryId": 133, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 7, + "Steps": [ + { + "Position": { + "X": -374.96555, + "Y": 63.686344, + "Z": -206.74146 + }, + "StopDistance": 0.5, + "TerritoryId": 148, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [ + 2863 + ], + "AethernetShortcut": [ + "[Gridania] Leatherworkers' Guild & Shaded Bower", + "[Gridania] White Wolf Gate (Central Shroud)" + ], + "Fly": true + } + ] + }, + { + "Sequence": 8, + "Steps": [ + { + "DataId": 1001276, + "Position": { + "X": 13.961914, + "Y": 0.1373291, + "Z": 2.090454 + }, + "TerritoryId": 132, + "InteractionType": "Interact", + "AetheryteShortcut": "Gridania" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1009953, + "Position": { + "X": 31.5708, + "Y": -19.000002, + "Z": 100.48059 + }, + "TerritoryId": 132, + "InteractionType": "CompleteQuest", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Airship Landing" + ], + "NextQuestId": 36 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/362_The Little Postmoogle That Could.json b/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/362_The Little Postmoogle That Could.json new file mode 100644 index 00000000..22a26f68 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/362_The Little Postmoogle That Could.json @@ -0,0 +1,217 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1009153, + "Position": { + "X": -39.108948, + "Y": 20, + "Z": 5.416931 + }, + "TerritoryId": 129, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Limsa Lominsa", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": -139.04318, + "Y": 8.522301, + "Z": 280.0128 + }, + "TerritoryId": 153, + "InteractionType": "WalkTo", + "AetheryteShortcut": "South Shroud - Camp Tranquil", + "Fly": true + }, + { + "DataId": 1006751, + "Position": { + "X": -139.45221, + "Y": 8.712891, + "Z": 281.69678 + }, + "TerritoryId": 153, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1010813, + "Position": { + "X": 218.92114, + "Y": 10.293846, + "Z": -75.12018 + }, + "TerritoryId": 153, + "InteractionType": "Emote", + "Emote": "rally", + "AetheryteShortcut": "South Shroud - Quarrymill" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1010814, + "Position": { + "X": -47.837036, + "Y": 3.0947418, + "Z": -44.663208 + }, + "TerritoryId": 153, + "InteractionType": "Emote", + "Emote": "cheer", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "Position": { + "X": -166.19086, + "Y": 8.399985, + "Z": -64.10584 + }, + "TerritoryId": 153, + "InteractionType": "WalkTo", + "Fly": true, + "$": "Buscarron SE steps" + }, + { + "DataId": 1010815, + "Position": { + "X": -168.26129, + "Y": 9.869229, + "Z": -79.54535 + }, + "TerritoryId": 153, + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_SUBPST030_00362_Q1_000_000", + "Answer": "TEXT_SUBPST030_00362_A1_000_001" + } + ] + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1010816, + "Position": { + "X": 22.079773, + "Y": -19.000006, + "Z": 106.1875 + }, + "TerritoryId": 132, + "InteractionType": "Interact", + "AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Airship Landing" + ] + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1000106, + "Position": { + "X": 29.007324, + "Y": -19.000002, + "Z": 105.485596 + }, + "TerritoryId": 132, + "InteractionType": "Interact", + "TargetTerritoryId": 128 + }, + { + "DataId": 1010818, + "Position": { + "X": -13.01593, + "Y": 91.5, + "Z": -18.234558 + }, + "TerritoryId": 128, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 7, + "Steps": [ + { + "DataId": 1003583, + "Position": { + "X": -7.248047, + "Y": 91.49999, + "Z": -16.128845 + }, + "StopDistance": 7, + "TerritoryId": 128, + "InteractionType": "Interact", + "TargetTerritoryId": 128 + }, + { + "DataId": 1010819, + "Position": { + "X": 17.013733, + "Y": 40.216007, + "Z": -3.8605957 + }, + "TerritoryId": 128, + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_SUBPST030_00362_Q2_000_000", + "Answer": "TEXT_SUBPST030_00362_A2_000_001" + } + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1010822, + "Position": { + "X": -209.88788, + "Y": 54.829185, + "Z": -196.03265 + }, + "TerritoryId": 152, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "East Shroud - Hawthorne Hut", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/36_Sudul Eht Nioj.json b/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/36_Sudul Eht Nioj.json new file mode 100644 index 00000000..90e75dbd --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/36_Sudul Eht Nioj.json @@ -0,0 +1,261 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1009153, + "Position": { + "X": -39.108948, + "Y": 20, + "Z": 5.416931 + }, + "TerritoryId": 129, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Limsa Lominsa", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1009781, + "Position": { + "X": -89.829956, + "Y": 5.2000036, + "Z": 45.426025 + }, + "TerritoryId": 131, + "InteractionType": "Interact", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Gladiators' Guild" + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2004614, + "Position": { + "X": -80.76605, + "Y": 8.895996, + "Z": -16.739136 + }, + "TerritoryId": 131, + "InteractionType": "UseItem", + "ItemId": 2001459, + "IgnoreDistanceToObject": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, + { + "DataId": 2004616, + "Position": { + "X": -98.1308, + "Y": 8.987488, + "Z": -16.617126 + }, + "TerritoryId": 131, + "InteractionType": "UseItem", + "ItemId": 2001459, + "IgnoreDistanceToObject": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 16 + ] + }, + { + "Position": { + "X": -113.42244, + "Y": 7.9935846, + "Z": -8.936225 + }, + "TerritoryId": 131, + "InteractionType": "WalkTo" + }, + { + "DataId": 1001859, + "Position": { + "X": -142.71765, + "Y": 11.999999, + "Z": -15.610046 + }, + "TerritoryId": 130, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 1009789, + "Position": { + "X": -159.68573, + "Y": 12.596368, + "Z": 0.869751 + }, + "TerritoryId": 130, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "Position": { + "X": -117.18245, + "Y": 9.232903, + "Z": 9.133285 + }, + "TerritoryId": 130, + "InteractionType": "WalkTo" + }, + { + "DataId": 1009785, + "Position": { + "X": -88.15143, + "Y": 5.200004, + "Z": 45.303955 + }, + "TerritoryId": 131, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1001675, + "Position": { + "X": -89.49426, + "Y": 7.008118, + "Z": 10.849121 + }, + "TerritoryId": 131, + "InteractionType": "Emote", + "Emote": "welcome" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "Position": { + "X": -112.38632, + "Y": 7.6503563, + "Z": 9.034383 + }, + "TerritoryId": 131, + "InteractionType": "WalkTo" + }, + { + "DataId": 1009792, + "Position": { + "X": -135.36285, + "Y": 10.9999895, + "Z": 0.015197754 + }, + "TerritoryId": 130, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1009791, + "Position": { + "X": -13.778931, + "Y": 3.9999998, + "Z": -151.4458 + }, + "TerritoryId": 130, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 7, + "Steps": [ + { + "Position": { + "X": 44.151344, + "Y": 4.0195827, + "Z": -165.77715 + }, + "TerritoryId": 130, + "InteractionType": "WalkTo" + }, + { + "Position": { + "X": -172.42809, + "Y": 16.059729, + "Z": 276.30084 + }, + "StopDistance": 0.5, + "TerritoryId": 141, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [ + 2853, + 3120 + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1009794, + "Position": { + "X": -174.45642, + "Y": 16.149345, + "Z": 275.6847 + }, + "TerritoryId": 141, + "InteractionType": "CompleteQuest", + "NextQuestId": 1573 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/496_Better Left Unfound.json b/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/496_Better Left Unfound.json new file mode 100644 index 00000000..4cca30c3 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/496_Better Left Unfound.json @@ -0,0 +1,116 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1009153, + "Position": { + "X": -39.108948, + "Y": 20, + "Z": 5.416931 + }, + "TerritoryId": 129, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Limsa Lominsa", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1006279, + "Position": { + "X": -231.4336, + "Y": 21.512743, + "Z": 339.49792 + }, + "TerritoryId": 153, + "InteractionType": "Interact", + "AetheryteShortcut": "South Shroud - Camp Tranquil" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1011650, + "Position": { + "X": 557.6714, + "Y": 20.721313, + "Z": 454.24573 + }, + "TerritoryId": 137, + "InteractionType": "Interact", + "AetheryteShortcut": "Eastern La Noscea - Costa Del Sol" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1011650, + "Position": { + "X": 557.6714, + "Y": 20.721313, + "Z": 454.24573 + }, + "TerritoryId": 137, + "InteractionType": "Emote", + "Emote": "soothe" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1011651, + "Position": { + "X": 8.804443, + "Y": 71.18964, + "Z": -15.182739 + }, + "TerritoryId": 137, + "InteractionType": "Interact", + "AetheryteShortcut": "Eastern La Noscea - Wineport", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_SUBPST026_00496_Q1_000_000", + "Answer": "TEXT_SUBPST026_00496_A1_000_001" + } + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1011652, + "Position": { + "X": 532.9823, + "Y": 44.02837, + "Z": 540.3982 + }, + "TerritoryId": 137, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Eastern La Noscea - Costa Del Sol", + "Fly": true, + "NextQuestId": 362 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Unlocks/Gold Saucer/3081_Passion for Fashion.json b/QuestPaths/2.x - A Realm Reborn/Unlocks/Gold Saucer/3081_Passion for Fashion.json new file mode 100644 index 00000000..04db319d --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Unlocks/Gold Saucer/3081_Passion for Fashion.json @@ -0,0 +1,42 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Starr", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1011145, + "Position": { + "X": -65.38495, + "Y": 0.06979119, + "Z": 0.8086548 + }, + "TerritoryId": 144, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Gold Saucer", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1025176, + "Position": { + "X": 57.99951, + "Y": 3.9997258, + "Z": 64.774536 + }, + "TerritoryId": 144, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Unlocks/Gold Saucer/3201_Every Little Thing She Does Is Mahjong.json b/QuestPaths/2.x - A Realm Reborn/Unlocks/Gold Saucer/3201_Every Little Thing She Does Is Mahjong.json new file mode 100644 index 00000000..1c0e9905 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Unlocks/Gold Saucer/3201_Every Little Thing She Does Is Mahjong.json @@ -0,0 +1,46 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Starr", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1011145, + "Position": { + "X": -65.38495, + "Y": 0.06979119, + "Z": 0.8086548 + }, + "TerritoryId": 144, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Gold Saucer", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1016307, + "Position": { + "X": 57.14502, + "Y": 20.99973, + "Z": 83.57361 + }, + "TerritoryId": 144, + "InteractionType": "CompleteQuest", + "AethernetShortcut": [ + "[Gold Saucer] Aetheryte Plaza", + "[Gold Saucer] Wonder Square East" + ] + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Unlocks/Gold Saucer/436_So You Want to Be a Jockey.json b/QuestPaths/2.x - A Realm Reborn/Unlocks/Gold Saucer/436_So You Want to Be a Jockey.json new file mode 100644 index 00000000..0cd04e86 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Unlocks/Gold Saucer/436_So You Want to Be a Jockey.json @@ -0,0 +1,57 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Starr", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1010464, + "Position": { + "X": -0.015319824, + "Y": -1.8903663E-06, + "Z": -65.61273 + }, + "TerritoryId": 388, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Gold Saucer", + "AethernetShortcut": [ + "[Gold Saucer] Aetheryte Plaza", + "[Gold Saucer] Chocobo Square" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 144 + ] + } + } + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1010472, + "Position": { + "X": -53.26935, + "Y": 0.3093315, + "Z": 69.41321 + }, + "TerritoryId": 148, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Central Shroud - Bentbranch Meadows", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + }, + "Fly": true, + "NextQuestId": 565 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Unlocks/Gold Saucer/437_Triple Triad Trial.json b/QuestPaths/2.x - A Realm Reborn/Unlocks/Gold Saucer/437_Triple Triad Trial.json new file mode 100644 index 00000000..de58efed --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Unlocks/Gold Saucer/437_Triple Triad Trial.json @@ -0,0 +1,34 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Starr", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1011060, + "Position": { + "X": -96.87958, + "Y": -0.86297023, + "Z": 67.826294 + }, + "TerritoryId": 144, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Gold Saucer", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + }, + "DialogueChoices": [ + { + "Type": "YesNo", + "Yes": true, + "Prompt": "TEXT_SUBGSC102_00437_Q1_000_000" + } + ] + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Unlocks/Gold Saucer/565_So You Think You Can Ride This Chocobo.json b/QuestPaths/2.x - A Realm Reborn/Unlocks/Gold Saucer/565_So You Think You Can Ride This Chocobo.json new file mode 100644 index 00000000..af58abfa --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Unlocks/Gold Saucer/565_So You Think You Can Ride This Chocobo.json @@ -0,0 +1,55 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Starr", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1010472, + "Position": { + "X": -53.26935, + "Y": 0.3093315, + "Z": 69.41321 + }, + "TerritoryId": 148, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Central Shroud - Bentbranch Meadows", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1010464, + "Position": { + "X": -0.015319824, + "Y": -1.8903663E-06, + "Z": -65.61273 + }, + "TerritoryId": 388, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Gold Saucer", + "AethernetShortcut": [ + "[Gold Saucer] Aetheryte Plaza", + "[Gold Saucer] Chocobo Square" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InTerritory": [ + 388, + 144 + ] + } + } + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Unlocks/Misc/1210_Beauty Is Only Scalp Deep.json b/QuestPaths/2.x - A Realm Reborn/Unlocks/Misc/1210_Beauty Is Only Scalp Deep.json new file mode 100644 index 00000000..bf89524c --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Unlocks/Misc/1210_Beauty Is Only Scalp Deep.json @@ -0,0 +1,172 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1003601, + "Position": { + "X": -3.2807007, + "Y": 39.51757, + "Z": -9.414856 + }, + "TerritoryId": 128, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] The Aftcastle" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 128 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1005516, + "Position": { + "X": -46.0365, + "Y": 40, + "Z": 63.767456 + }, + "TerritoryId": 128, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1005515, + "Position": { + "X": -44.449524, + "Y": 39.999996, + "Z": 61.81433 + }, + "TerritoryId": 128, + "InteractionType": "Emote", + "Emote": "doubt" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1001000, + "Position": { + "X": -32.028687, + "Y": 41.499985, + "Z": 208.39233 + }, + "TerritoryId": 128, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 1000153, + "Position": { + "X": -44.87683, + "Y": -1.2500024, + "Z": 56.839844 + }, + "TerritoryId": 132, + "InteractionType": "Interact", + "AetheryteShortcut": "Gridania", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "Position": { + "X": -103.88594, + "Y": 41.50016, + "Z": 119.898315 + }, + "TerritoryId": 131, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Alchemists' Guild" + ], + "SkipConditions": { + "StepIf": { + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + } + } + }, + { + "DataId": 1002299, + "Position": { + "X": -98.8938, + "Y": 40.200146, + "Z": 120.83618 + }, + "StopDistance": 7, + "TerritoryId": 131, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1005515, + "Position": { + "X": -44.449524, + "Y": 39.999996, + "Z": 61.81433 + }, + "TerritoryId": 128, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] The Aftcastle" + ] + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2290_With a Little Help.json b/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2290_With a Little Help.json index 1a867f70..727189ae 100644 --- a/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2290_With a Little Help.json +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2290_With a Little Help.json @@ -1,7 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", - "Disabled": true, "QuestSequence": [ { "Sequence": 0, @@ -18,6 +17,125 @@ } ] }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1017351, + "Position": { + "X": -74.87604, + "Y": -8.172172, + "Z": 158.70898 + }, + "TerritoryId": 400, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "TerritoryId": 400, + "InteractionType": "Craft", + "ItemId": 15725, + "ItemCount": 3 + }, + { + "DataId": 1017352, + "Position": { + "X": -56.809387, + "Y": -8.866012, + "Z": 161.8219 + }, + "TerritoryId": 400, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1017353, + "Position": { + "X": -33.554626, + "Y": -8.866012, + "Z": 163.43933 + }, + "TerritoryId": 400, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "Position": { + "X": -104.788086, + "Y": -8.655561, + "Z": 194.60593 + }, + "TerritoryId": 400, + "InteractionType": "WalkTo", + "Fly": true, + "SkipConditions": { + "StepIf": { + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + } + } + }, + { + "DataId": 1017354, + "Position": { + "X": -104.41754, + "Y": -8.6555605, + "Z": 193.16394 + }, + "TerritoryId": 400, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 1017355, + "Position": { + "X": -110.97894, + "Y": -8.866015, + "Z": 247.94385 + }, + "TerritoryId": 400, + "InteractionType": "Interact", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + } + ] + }, { "Sequence": 255, "Steps": [ @@ -30,21 +148,7 @@ }, "TerritoryId": 400, "InteractionType": "CompleteQuest", - "AetheryteShortcut": "The Churning Mists - Zenith", - "Fly": true, - "SkipConditions": { - "AetheryteShortcutIf": { - "NearPosition": { - "Position": { - "X": -335.56116, - "Y": 59.003433, - "Z": 313.98486 - }, - "TerritoryId": 400, - "MaximumDistance": 50 - } - } - } + "Fly": true } ] } diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2300_Stumbling Blocks.json b/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2300_Stumbling Blocks.json index 1a867f70..9dce2e4e 100644 --- a/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2300_Stumbling Blocks.json +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2300_Stumbling Blocks.json @@ -1,7 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "liza", - "Disabled": true, + "Author": "plogon_enjoyer", "QuestSequence": [ { "Sequence": 0, @@ -18,6 +17,66 @@ } ] }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1017383, + "Position": { + "X": -657.46545, + "Y": 73.76131, + "Z": 219.28735 + }, + "TerritoryId": 400, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "TerritoryId": 400, + "InteractionType": "Craft", + "ItemId": 15733, + "ItemCount": 1 + }, + { + "DataId": 1017384, + "Position": { + "X": -651.51447, + "Y": 73, + "Z": 217.2732 + }, + "TerritoryId": 400, + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Prompt": "TEXT_BANMOG303_02300_Q1_000_000", + "Type": "List", + "Answer": "TEXT_BANMOG303_02300_A1_000_001" + } + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1017387, + "Position": { + "X": -59.55603, + "Y": -8.685017, + "Z": 186.84668 + }, + "TerritoryId": 400, + "InteractionType": "Interact", + "Fly": true + } + ] + }, { "Sequence": 255, "Steps": [ diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2301_Tricks without Treats.json b/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2301_Tricks without Treats.json index 1a867f70..eb345812 100644 --- a/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2301_Tricks without Treats.json +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2301_Tricks without Treats.json @@ -1,7 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "liza", - "Disabled": true, + "Author": "plogon_enjoyer", "QuestSequence": [ { "Sequence": 0, @@ -18,6 +17,76 @@ } ] }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1017321, + "Position": { + "X": -376.4859, + "Y": 60.89619, + "Z": 319.7832 + }, + "TerritoryId": 400, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "TerritoryId": 400, + "InteractionType": "Craft", + "ItemId": 15734, + "ItemCount": 1 + }, + { + "DataId": 1017392, + "Position": { + "X": 112.687744, + "Y": -24.088774, + "Z": 167.74243 + }, + "TerritoryId": 400, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2007234, + "Position": { + "X": 111.86377, + "Y": -21.988281, + "Z": 192.43152 + }, + "TerritoryId": 400, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1017392, + "Position": { + "X": 112.687744, + "Y": -24.088774, + "Z": 167.74243 + }, + "TerritoryId": 400, + "InteractionType": "Interact", + "Fly": true + } + ] + }, { "Sequence": 255, "Steps": [ diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2302_For Moogles in Peril.json b/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2302_For Moogles in Peril.json index 1a867f70..75497f35 100644 --- a/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2302_For Moogles in Peril.json +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2302_For Moogles in Peril.json @@ -1,7 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "liza", - "Disabled": true, + "Author": "plogon_enjoyer", "QuestSequence": [ { "Sequence": 0, @@ -18,6 +17,73 @@ } ] }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1017470, + "Position": { + "X": -353.53632, + "Y": 60.896175, + "Z": 299.61084 + }, + "TerritoryId": 400, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2007272, + "Position": { + "X": 306.53845, + "Y": -38.254395, + "Z": 111.0094 + }, + "TerritoryId": 400, + "InteractionType": "Action", + "Action": "Roar", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2007273, + "Position": { + "X": 431.99805, + "Y": -28.152893, + "Z": 112.321655 + }, + "TerritoryId": 400, + "InteractionType": "Action", + "Action": "Roar", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 2007274, + "Position": { + "X": 390.70715, + "Y": -35.599304, + "Z": 252.58252 + }, + "TerritoryId": 400, + "InteractionType": "Action", + "Action": "Roar", + "Fly": true + } + ] + }, { "Sequence": 255, "Steps": [ diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2304_Back to the Drawing Board.json b/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2304_Back to the Drawing Board.json index 1a867f70..9baed817 100644 --- a/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2304_Back to the Drawing Board.json +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2304_Back to the Drawing Board.json @@ -1,7 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", - "Disabled": true, "QuestSequence": [ { "Sequence": 0, @@ -18,6 +17,59 @@ } ] }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1017406, + "Position": { + "X": -95.04846, + "Y": 79.8345, + "Z": -301.80823 + }, + "TerritoryId": 400, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1017407, + "Position": { + "X": -128.34369, + "Y": 125.92322, + "Z": -314.6258 + }, + "TerritoryId": 400, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "TerritoryId": 400, + "InteractionType": "Craft", + "ItemId": 15736, + "ItemCount": 3 + }, + { + "DataId": 1017408, + "Position": { + "X": -108.59851, + "Y": 122.442116, + "Z": -318.31848 + }, + "TerritoryId": 400, + "InteractionType": "Interact" + } + ] + }, { "Sequence": 255, "Steps": [ diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2305_Built to Last.json b/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2305_Built to Last.json index 1a867f70..8ba39c75 100644 --- a/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2305_Built to Last.json +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2305_Built to Last.json @@ -1,7 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", - "Disabled": true, "QuestSequence": [ { "Sequence": 0, @@ -18,6 +17,177 @@ } ] }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1017471, + "Position": { + "X": -391.0735, + "Y": 59.9946, + "Z": 303.1814 + }, + "TerritoryId": 400, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": -255.2606, + "Y": -24.29513, + "Z": 737.67456 + }, + "TerritoryId": 400, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 1017409, + "Position": { + "X": -254.71893, + "Y": -24.295156, + "Z": 738.5519 + }, + "TerritoryId": 400, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2007244, + "Position": { + "X": -658.9609, + "Y": 94.25488, + "Z": -417.07483 + }, + "TerritoryId": 400, + "InteractionType": "Interact", + "AetheryteShortcut": "The Churning Mists - Zenith", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "Position": { + "X": -673.58887, + "Y": 93.64293, + "Z": -506.5746 + }, + "TerritoryId": 400, + "InteractionType": "WalkTo", + "Fly": true, + "SkipConditions": { + "StepIf": { + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + } + } + }, + { + "DataId": 2007245, + "Position": { + "X": -671.1376, + "Y": 93.91919, + "Z": -507.49982 + }, + "TerritoryId": 400, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 2007246, + "Position": { + "X": -813.1685, + "Y": 94.865234, + "Z": -457.3282 + }, + "TerritoryId": 400, + "InteractionType": "Interact", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "Position": { + "X": -255.2606, + "Y": -24.29513, + "Z": 737.67456 + }, + "TerritoryId": 400, + "InteractionType": "WalkTo", + "AetheryteShortcut": "The Churning Mists - Zenith", + "Fly": true + }, + { + "DataId": 1017409, + "Position": { + "X": -254.71893, + "Y": -24.295156, + "Z": 738.5519 + }, + "TerritoryId": 400, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "TerritoryId": 400, + "InteractionType": "Craft", + "ItemId": 15737, + "ItemCount": 1 + }, + { + "DataId": 1017410, + "Position": { + "X": -246.2044, + "Y": -24.295149, + "Z": 760.7384 + }, + "TerritoryId": 400, + "InteractionType": "Interact" + } + ] + }, { "Sequence": 255, "Steps": [ diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2306_Let There Be Light.json b/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2306_Let There Be Light.json index 1a867f70..9b09643b 100644 --- a/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2306_Let There Be Light.json +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2306_Let There Be Light.json @@ -1,7 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", - "Disabled": true, "QuestSequence": [ { "Sequence": 0, @@ -18,6 +17,72 @@ } ] }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1017470, + "Position": { + "X": -353.53632, + "Y": 60.896175, + "Z": 299.61084 + }, + "TerritoryId": 400, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2007264, + "Position": { + "X": 508.32373, + "Y": -0.77819824, + "Z": -360.49445 + }, + "TerritoryId": 400, + "InteractionType": "Action", + "Action": "Roar", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2007265, + "Position": { + "X": 613.39734, + "Y": -11.917358, + "Z": -335.6222 + }, + "TerritoryId": 400, + "InteractionType": "Action", + "Action": "Roar", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 2007266, + "Position": { + "X": 554.0398, + "Y": 50.644653, + "Z": -393.72858 + }, + "TerritoryId": 400, + "InteractionType": "Action", + "Action": "Roar", + "Fly": true + } + ] + }, { "Sequence": 255, "Steps": [ diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2311_Ship of Dreams.json b/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2311_Ship of Dreams.json index 1a867f70..2e9078a6 100644 --- a/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2311_Ship of Dreams.json +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2311_Ship of Dreams.json @@ -1,7 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", - "Disabled": true, "QuestSequence": [ { "Sequence": 0, @@ -18,6 +17,88 @@ } ] }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1017422, + "Position": { + "X": -8.804504, + "Y": 81.8406, + "Z": -312.00128 + }, + "TerritoryId": 400, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1017424, + "Position": { + "X": 7.4310913, + "Y": 81.84059, + "Z": -321.1872 + }, + "TerritoryId": 400, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1017422, + "Position": { + "X": -8.804504, + "Y": 81.8406, + "Z": -312.00128 + }, + "TerritoryId": 400, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "TerritoryId": 400, + "InteractionType": "Craft", + "ItemId": 15740, + "ItemCount": 3 + }, + { + "DataId": 1017424, + "Position": { + "X": 7.4310913, + "Y": 81.84059, + "Z": -321.1872 + }, + "TerritoryId": 400, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1017422, + "Position": { + "X": -8.804504, + "Y": 81.8406, + "Z": -312.00128 + }, + "TerritoryId": 400, + "InteractionType": "Interact" + } + ] + }, { "Sequence": 255, "Steps": [ diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2317_Mine and Craft.json b/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2317_Mine and Craft.json index 1a867f70..4d2f05e6 100644 --- a/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2317_Mine and Craft.json +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2317_Mine and Craft.json @@ -1,7 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", - "Disabled": true, "QuestSequence": [ { "Sequence": 0, @@ -18,6 +17,43 @@ } ] }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1017465, + "Position": { + "X": 202.28882, + "Y": 42.309406, + "Z": -577.3861 + }, + "TerritoryId": 400, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "TerritoryId": 400, + "InteractionType": "Craft", + "ItemId": 15744, + "ItemCount": 2 + }, + { + "DataId": 1017466, + "Position": { + "X": 176.71472, + "Y": 42.308628, + "Z": -571.37415 + }, + "TerritoryId": 400, + "InteractionType": "Interact" + } + ] + }, { "Sequence": 255, "Steps": [ diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2318_The Moogle Motivator.json b/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2318_The Moogle Motivator.json index 1a867f70..5217e3e4 100644 --- a/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2318_The Moogle Motivator.json +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2318_The Moogle Motivator.json @@ -1,7 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", - "Disabled": true, "QuestSequence": [ { "Sequence": 0, @@ -18,6 +17,113 @@ } ] }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1017351, + "Position": { + "X": -74.87604, + "Y": -8.172172, + "Z": 158.70898 + }, + "TerritoryId": 400, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1017467, + "Position": { + "X": -40.20758, + "Y": -8.6555605, + "Z": 202.83813 + }, + "StopDistance": 0.5, + "TerritoryId": 400, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1017624, + "Position": { + "X": -76.0968, + "Y": -8.655561, + "Z": 216.17456 + }, + "TerritoryId": 400, + "InteractionType": "Emote", + "Emote": "psych", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1017625, + "Position": { + "X": -46.76892, + "Y": 10.765197, + "Z": 243.12195 + }, + "StopDistance": 0.5, + "TerritoryId": 400, + "InteractionType": "Emote", + "Emote": "slap", + "Fly": true + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1017351, + "Position": { + "X": -74.87604, + "Y": -8.172172, + "Z": 158.70898 + }, + "TerritoryId": 400, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "TerritoryId": 400, + "InteractionType": "Craft", + "ItemId": 15745, + "ItemCount": 1 + }, + { + "DataId": 1017625, + "Position": { + "X": -46.76892, + "Y": 10.765197, + "Z": 243.12195 + }, + "StopDistance": 0.5, + "TerritoryId": 400, + "InteractionType": "Interact", + "Fly": true + } + ] + }, { "Sequence": 255, "Steps": [ diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2319_Tremble Finishing.json b/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2319_Tremble Finishing.json index 1a867f70..f951ed6e 100644 --- a/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2319_Tremble Finishing.json +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2319_Tremble Finishing.json @@ -1,7 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", - "Disabled": true, "QuestSequence": [ { "Sequence": 0, @@ -18,6 +17,55 @@ } ] }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1017470, + "Position": { + "X": -353.53632, + "Y": 60.896175, + "Z": 299.61084 + }, + "TerritoryId": 400, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2007283, + "Position": { + "X": -177.87445, + "Y": 53.055542, + "Z": 53.665894 + }, + "TerritoryId": 400, + "InteractionType": "Action", + "Action": "Roar", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2007284, + "Position": { + "X": -320.60736, + "Y": 220.38599, + "Z": -708.00336 + }, + "TerritoryId": 400, + "InteractionType": "Action", + "Action": "Roar", + "Fly": true + } + ] + }, { "Sequence": 255, "Steps": [ diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/A6_Vanu Vanu (all).json b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/A6_Vanu Vanu (all).json new file mode 100644 index 00000000..036c2982 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/A6_Vanu Vanu (all).json @@ -0,0 +1,29 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1016089, + "Position": { + "X": -799.46594, + "Y": -133.2695, + "Z": -404.1352 + }, + "StopDistance": 3, + "TerritoryId": 401, + "InteractionType": "WalkTo", + "AetheryteShortcut": "The Sea of Clouds - Ok' Zundu", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2172_Pussyfooting About.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2172_Pussyfooting About.json index fab39d1f..e12ff08c 100644 --- a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2172_Pussyfooting About.json +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2172_Pussyfooting About.json @@ -58,6 +58,17 @@ { "Sequence": 2, "Steps": [ + { + "Position": { + "X": -799.46594, + "Y": -133.2695, + "Z": -404.1352 + }, + "TerritoryId": 401, + "InteractionType": "WalkTo", + "AetheryteShortcut": "The Sea of Clouds - Ok' Zundu", + "Fly": true + }, { "DataId": 1016089, "Position": { @@ -67,8 +78,7 @@ }, "TerritoryId": 401, "InteractionType": "Interact", - "AetheryteShortcut": "The Sea of Clouds - Ok' Zundu", - "Fly": true + "Mount": false } ] }, diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vath/A7_Vath.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vath/A7_Vath.json new file mode 100644 index 00000000..6ffe879d --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vath/A7_Vath.json @@ -0,0 +1,27 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "Position": { + "X": 58.39701, + "Y": -48.000008, + "Z": -172.36507 + }, + "TerritoryId": 398, + "InteractionType": "WalkTo", + "AetheryteShortcut": "The Dravanian Forelands - Anyx Trine", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Class Quests/BLM/1678_Black Books.json b/QuestPaths/3.x - Heavensward/Class Quests/BLM/1678_Black Books.json new file mode 100644 index 00000000..d66e1c0d --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Class Quests/BLM/1678_Black Books.json @@ -0,0 +1,100 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1006752, + "Position": { + "X": 87.5105, + "Y": 18, + "Z": 113.725464 + }, + "TerritoryId": 131, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 131 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1004597, + "Position": { + "X": -292.10345, + "Y": -2.910112, + "Z": 245.59387 + }, + "TerritoryId": 146, + "InteractionType": "Interact", + "AetheryteShortcut": "Southern Thanalan - Forgotten Springs", + "Fly": true, + "TargetTerritoryId": 146 + }, + { + "DataId": 1013042, + "Position": { + "X": -465.93427, + "Y": -3.164927, + "Z": 66.666626 + }, + "TerritoryId": 146, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1013043, + "Position": { + "X": 184.6189, + "Y": 3.1809216, + "Z": -334.27942 + }, + "TerritoryId": 145, + "InteractionType": "Interact", + "AetheryteShortcut": "Eastern Thanalan - Camp Drybone", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1006752, + "Position": { + "X": 87.5105, + "Y": 18, + "Z": 113.725464 + }, + "TerritoryId": 131, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ], + "NextQuestId": 1679 + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Class Quests/BLM/1679_An Unexpected Journey.json b/QuestPaths/3.x - Heavensward/Class Quests/BLM/1679_An Unexpected Journey.json new file mode 100644 index 00000000..e0fcaf33 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Class Quests/BLM/1679_An Unexpected Journey.json @@ -0,0 +1,111 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1006752, + "Position": { + "X": 87.5105, + "Y": 18, + "Z": 113.725464 + }, + "TerritoryId": 131, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 131 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1006753, + "Position": { + "X": 325.063, + "Y": 11.236564, + "Z": -6.2105103 + }, + "TerritoryId": 145, + "InteractionType": "Interact", + "AetheryteShortcut": "Eastern Thanalan - Camp Drybone", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1013044, + "Position": { + "X": 191.72961, + "Y": -1.9153122, + "Z": 32.944214 + }, + "TerritoryId": 145, + "InteractionType": "Interact", + "Fly": true, + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_JOBBLM520_01679_Q1_000_000", + "Answer": "TEXT_JOBBLM520_01679_A1_000_002" + } + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1006753, + "Position": { + "X": 325.063, + "Y": 11.236564, + "Z": -6.2105103 + }, + "TerritoryId": 145, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1006752, + "Position": { + "X": 87.5105, + "Y": 18, + "Z": 113.725464 + }, + "TerritoryId": 131, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ], + "NextQuestId": 1680 + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Class Quests/BLM/1680_A Cunning Plan.json b/QuestPaths/3.x - Heavensward/Class Quests/BLM/1680_A Cunning Plan.json new file mode 100644 index 00000000..0f39034c --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Class Quests/BLM/1680_A Cunning Plan.json @@ -0,0 +1,122 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1006752, + "Position": { + "X": 87.5105, + "Y": 18, + "Z": 113.725464 + }, + "TerritoryId": 131, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 131 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1013047, + "Position": { + "X": 409.4757, + "Y": -3.3999999, + "Z": 198.99292 + }, + "TerritoryId": 139, + "InteractionType": "Interact", + "AetheryteShortcut": "Upper La Noscea - Camp Bronze Lake", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2005469, + "Position": { + "X": 377.6454, + "Y": 0.77819824, + "Z": -3.616455 + }, + "TerritoryId": 139, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "Position": { + "X": 397.41708, + "Y": -3.3999999, + "Z": 10.57353 + }, + "StopDistance": 0.5, + "TerritoryId": 139, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [ + 5049 + ] + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1013048, + "Position": { + "X": 399.0996, + "Y": -3.3999999, + "Z": 11.215393 + }, + "TerritoryId": 139, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1006752, + "Position": { + "X": 87.5105, + "Y": 18, + "Z": 113.725464 + }, + "TerritoryId": 131, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ], + "NextQuestId": 1681 + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Class Quests/BLM/1681_Black Squawk Down.json b/QuestPaths/3.x - Heavensward/Class Quests/BLM/1681_Black Squawk Down.json new file mode 100644 index 00000000..8aeb3350 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Class Quests/BLM/1681_Black Squawk Down.json @@ -0,0 +1,98 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1006752, + "Position": { + "X": 87.5105, + "Y": 18, + "Z": 113.725464 + }, + "TerritoryId": 131, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 131 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": -173.73607, + "Y": -61.73199, + "Z": 370.57892 + }, + "StopDistance": 0.5, + "TerritoryId": 154, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [ + 4360 + ], + "AetheryteShortcut": "North Shroud - Fallgourd Float", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1013055, + "Position": { + "X": -175.1278, + "Y": -61.86741, + "Z": 371.99963 + }, + "TerritoryId": 154, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1006752, + "Position": { + "X": 87.5105, + "Y": 18, + "Z": 113.725464 + }, + "TerritoryId": 131, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ], + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_JOBBLM560_01681_Q1_000_000", + "Answer": "TEXT_JOBBLM560_01681_A1_000_001" + } + ], + "NextQuestId": 1682 + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Class Quests/BLM/1682_Destruction in the Name of Justice.json b/QuestPaths/3.x - Heavensward/Class Quests/BLM/1682_Destruction in the Name of Justice.json new file mode 100644 index 00000000..94a7616e --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Class Quests/BLM/1682_Destruction in the Name of Justice.json @@ -0,0 +1,194 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1006752, + "Position": { + "X": 87.5105, + "Y": 18, + "Z": 113.725464 + }, + "TerritoryId": 131, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 131 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1013059, + "Position": { + "X": 30.411133, + "Y": 7.1999984, + "Z": -103.07471 + }, + "TerritoryId": 130, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Ul'dah] Weavers' Guild", + "[Ul'dah] Adventurers' Guild" + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1013060, + "Position": { + "X": 26.04712, + "Y": 1.2752796, + "Z": 92.851074 + }, + "TerritoryId": 418, + "InteractionType": "Interact", + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] The Brume" + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1013061, + "Position": { + "X": -277.69897, + "Y": 124.9653, + "Z": -19.394226 + }, + "StopDistance": 1.5, + "TerritoryId": 397, + "InteractionType": "Interact", + "AetheryteShortcut": "Coerthas Western Highlands - Falcon's Nest", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1013064, + "Position": { + "X": -308.33905, + "Y": 126.09976, + "Z": -14.847046 + }, + "TerritoryId": 397, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, + { + "DataId": 1013062, + "Position": { + "X": -301.99133, + "Y": 126.85933, + "Z": 4.8981323 + }, + "TerritoryId": 397, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 1013063, + "Position": { + "X": -284.44348, + "Y": 127.18384, + "Z": 11.825684 + }, + "TerritoryId": 397, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1013065, + "Position": { + "X": -67.00244, + "Y": 98.04463, + "Z": 189.99011 + }, + "TerritoryId": 397, + "InteractionType": "SinglePlayerDuty", + "Fly": true, + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_JOBBLM580_01682_Q1_000_000", + "Answer": "TEXT_JOBBLM580_01682_A1_000_001" + } + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1006752, + "Position": { + "X": 87.5105, + "Y": 18, + "Z": 113.725464 + }, + "TerritoryId": 131, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ], + "NextQuestId": 1683 + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Class Quests/BLM/1683_The Defiant Ones.json b/QuestPaths/3.x - Heavensward/Class Quests/BLM/1683_The Defiant Ones.json new file mode 100644 index 00000000..b8ca6567 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Class Quests/BLM/1683_The Defiant Ones.json @@ -0,0 +1,160 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1006752, + "Position": { + "X": 87.5105, + "Y": 18, + "Z": 113.725464 + }, + "TerritoryId": 131, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 131 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1013066, + "Position": { + "X": 385.27502, + "Y": -18.74231, + "Z": 273.0907 + }, + "TerritoryId": 145, + "InteractionType": "SinglePlayerDuty", + "AetheryteShortcut": "Eastern Thanalan - Camp Drybone", + "Fly": true + } + ] + }, + { + "Sequence": 2 + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1013187, + "Position": { + "X": 476.73767, + "Y": -64.30186, + "Z": 234.2107 + }, + "StopDistance": 5, + "TerritoryId": 145, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "Position": { + "X": 341.93842, + "Y": 28.63408, + "Z": 66.419495 + }, + "TerritoryId": 145, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 1013189, + "Position": { + "X": 322.89612, + "Y": 10.818874, + "Z": -8.46875 + }, + "TerritoryId": 145, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 1006753, + "Position": { + "X": 325.063, + "Y": 11.236564, + "Z": -6.2105103 + }, + "TerritoryId": 145, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 1013188, + "Position": { + "X": 327.96216, + "Y": 11.425721, + "Z": -6.7597656 + }, + "TerritoryId": 145, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1006752, + "Position": { + "X": 87.5105, + "Y": 18, + "Z": 113.725464 + }, + "TerritoryId": 131, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ], + "NextQuestId": 2588 + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Class Quests/SCH/1671_The Green Death.json b/QuestPaths/3.x - Heavensward/Class Quests/SCH/1671_The Green Death.json new file mode 100644 index 00000000..7f0ebace --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Class Quests/SCH/1671_The Green Death.json @@ -0,0 +1,124 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1006757, + "Position": { + "X": -4.4709473, + "Y": 44.999886, + "Z": -250.56848 + }, + "TerritoryId": 128, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] Marauders' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 128 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": 207.68561, + "Y": -3.1246834, + "Z": 42.986313 + }, + "TerritoryId": 139, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Upper La Noscea - Camp Bronze Lake", + "Fly": true + }, + { + "DataId": 1013135, + "Position": { + "X": 206.0426, + "Y": -3.111818, + "Z": 41.94702 + }, + "TerritoryId": 139, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2005518, + "Position": { + "X": -275.16595, + "Y": 64.25574, + "Z": -197.34491 + }, + "StopDistance": 0.5, + "TerritoryId": 180, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 4399 + ], + "AetheryteShortcut": "Outer La Noscea - Camp Overlook", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2005519, + "Position": { + "X": -275.16595, + "Y": 64.25574, + "Z": -197.34491 + }, + "TerritoryId": 180, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": 207.68561, + "Y": -3.1246834, + "Z": 42.986313 + }, + "TerritoryId": 139, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Upper La Noscea - Camp Bronze Lake", + "Fly": true + }, + { + "DataId": 1013135, + "Position": { + "X": 206.0426, + "Y": -3.111818, + "Z": 41.94702 + }, + "TerritoryId": 139, + "InteractionType": "CompleteQuest", + "NextQuestId": 1672 + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Class Quests/SCH/1672_Quarantine.json b/QuestPaths/3.x - Heavensward/Class Quests/SCH/1672_Quarantine.json new file mode 100644 index 00000000..44ddb455 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Class Quests/SCH/1672_Quarantine.json @@ -0,0 +1,104 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "Position": { + "X": 207.68561, + "Y": -3.1246834, + "Z": 42.986313 + }, + "TerritoryId": 139, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Upper La Noscea - Camp Bronze Lake", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + }, + { + "DataId": 1013135, + "Position": { + "X": 206.0426, + "Y": -3.111818, + "Z": 41.94702 + }, + "TerritoryId": 139, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": 620.5845, + "Y": -3.0527442, + "Z": 169.40678 + }, + "TerritoryId": 139, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 1013137, + "Position": { + "X": 620.9657, + "Y": -3.002753, + "Z": 171.06885 + }, + "TerritoryId": 139, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2005520, + "Position": { + "X": 622.91907, + "Y": -3.0671387, + "Z": 171.6792 + }, + "StopDistance": 4.5, + "TerritoryId": 139, + "InteractionType": "SinglePlayerDuty" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": 207.68561, + "Y": -3.1246834, + "Z": 42.986313 + }, + "TerritoryId": 139, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 1013135, + "Position": { + "X": 206.0426, + "Y": -3.111818, + "Z": 41.94702 + }, + "TerritoryId": 139, + "InteractionType": "CompleteQuest", + "NextQuestId": 1673 + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Class Quests/SCH/1673_False Friends.json b/QuestPaths/3.x - Heavensward/Class Quests/SCH/1673_False Friends.json new file mode 100644 index 00000000..192a828a --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Class Quests/SCH/1673_False Friends.json @@ -0,0 +1,176 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "Position": { + "X": 207.68561, + "Y": -3.1246834, + "Z": 42.986313 + }, + "TerritoryId": 139, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Upper La Noscea - Camp Bronze Lake", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + }, + { + "DataId": 1013135, + "Position": { + "X": 206.0426, + "Y": -3.111818, + "Z": 41.94702 + }, + "TerritoryId": 139, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": -289.83594, + "Y": 70.47664, + "Z": -272.06448 + }, + "TerritoryId": 180, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Outer La Noscea - Camp Overlook", + "Fly": true + }, + { + "DataId": 2005521, + "Position": { + "X": -292.83594, + "Y": 72.15991, + "Z": -275.4101 + }, + "StopDistance": 0.5, + "TerritoryId": 180, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "ComplexCombatData": [ + { + "DataId": 30, + "NameId": 4108 + } + ], + "Mount": false + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2005522, + "Position": { + "X": -302.05237, + "Y": 70.81714, + "Z": -292.28656 + }, + "StopDistance": 0.5, + "TerritoryId": 180, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "ComplexCombatData": [ + { + "DataId": 30, + "NameId": 4108 + } + ], + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2005523, + "Position": { + "X": -370.04657, + "Y": 65.69006, + "Z": -307.75922 + }, + "StopDistance": 0.5, + "TerritoryId": 180, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 2005530, + "Position": { + "X": -381.55188, + "Y": 52.475708, + "Z": -298.93958 + }, + "StopDistance": 2, + "TerritoryId": 180, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 4371 + ], + "DisableNavmesh": true + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 2005531, + "Position": { + "X": -381.55188, + "Y": 52.8114, + "Z": -298.909 + }, + "TerritoryId": 180, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": 207.68561, + "Y": -3.1246834, + "Z": 42.986313 + }, + "TerritoryId": 139, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Upper La Noscea - Camp Bronze Lake", + "Fly": true + }, + { + "DataId": 1013135, + "Position": { + "X": 206.0426, + "Y": -3.111818, + "Z": 41.94702 + }, + "TerritoryId": 139, + "InteractionType": "CompleteQuest", + "NextQuestId": 1674 + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Class Quests/SCH/1674_Ooh Rah.json b/QuestPaths/3.x - Heavensward/Class Quests/SCH/1674_Ooh Rah.json new file mode 100644 index 00000000..8cbb4518 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Class Quests/SCH/1674_Ooh Rah.json @@ -0,0 +1,128 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "Position": { + "X": 207.68561, + "Y": -3.1246834, + "Z": 42.986313 + }, + "TerritoryId": 139, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Upper La Noscea - Camp Bronze Lake", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + }, + { + "DataId": 1013135, + "Position": { + "X": 206.0426, + "Y": -3.111818, + "Z": 41.94702 + }, + "TerritoryId": 139, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1013138, + "Position": { + "X": 404.19617, + "Y": -2.6082127, + "Z": 212.1156 + }, + "TerritoryId": 139, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1013138, + "Position": { + "X": 404.19617, + "Y": -2.6082127, + "Z": 212.1156 + }, + "TerritoryId": 139, + "InteractionType": "Say", + "ChatMessage": { + "Key": "TEXT_JOBSCH560_01674_SYSTEM_100_023" + } + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1013138, + "Position": { + "X": 404.19617, + "Y": -2.6082127, + "Z": 212.1156 + }, + "TerritoryId": 139, + "InteractionType": "Say", + "ChatMessage": { + "Key": "TEXT_JOBSCH560_01674_SYSTEM_100_023" + } + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1013139, + "Position": { + "X": 700.9536, + "Y": -0.50953937, + "Z": 133.28748 + }, + "TerritoryId": 139, + "InteractionType": "Combat", + "EnemySpawnType": "AfterEmote", + "KillEnemyDataIds": [ + 4400, + 4401 + ], + "Emote": "laugh", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1013138, + "Position": { + "X": 404.19617, + "Y": -2.6082127, + "Z": 212.1156 + }, + "TerritoryId": 139, + "InteractionType": "CompleteQuest", + "Fly": true, + "NextQuestId": 1675 + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Class Quests/SCH/1675_Unseen.json b/QuestPaths/3.x - Heavensward/Class Quests/SCH/1675_Unseen.json new file mode 100644 index 00000000..ea1a4006 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Class Quests/SCH/1675_Unseen.json @@ -0,0 +1,163 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "Position": { + "X": 207.68561, + "Y": -3.1246834, + "Z": 42.986313 + }, + "TerritoryId": 139, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Upper La Noscea - Camp Bronze Lake", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + }, + { + "DataId": 1013135, + "Position": { + "X": 206.0426, + "Y": -3.111818, + "Z": 41.94702 + }, + "TerritoryId": 139, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1002279, + "Position": { + "X": -196.8872, + "Y": 18.459997, + "Z": 59.952637 + }, + "TerritoryId": 130, + "InteractionType": "Interact", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Thaumaturges' Guild" + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1011231, + "Position": { + "X": 503.1051, + "Y": 217.95148, + "Z": 790.2189 + }, + "TerritoryId": 397, + "InteractionType": "Interact", + "AetheryteShortcut": "Coerthas Western Highlands - Falcon's Nest", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1011234, + "Position": { + "X": 546.1356, + "Y": 217.90826, + "Z": 768.06274 + }, + "TerritoryId": 397, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "Position": { + "X": 528.09424, + "Y": 217.9514, + "Z": 773.35565 + }, + "TerritoryId": 397, + "InteractionType": "WalkTo" + }, + { + "DataId": 2005525, + "Position": { + "X": 446.00586, + "Y": 140.82544, + "Z": -749.87415 + }, + "TerritoryId": 397, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [ + 4374 + ], + "Fly": true, + "CompletionQuestVariablesFlags": [ + 1, + null, + null, + null, + null, + null + ] + }, + { + "DataId": 2005525, + "Position": { + "X": 446.00586, + "Y": 140.82544, + "Z": -749.87415 + }, + "TerritoryId": 397, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": 207.68561, + "Y": -3.1246834, + "Z": 42.986313 + }, + "TerritoryId": 139, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Upper La Noscea - Camp Bronze Lake", + "Fly": true + }, + { + "DataId": 1013135, + "Position": { + "X": 206.0426, + "Y": -3.111818, + "Z": 41.94702 + }, + "TerritoryId": 139, + "InteractionType": "CompleteQuest", + "NextQuestId": 1676 + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Class Quests/SCH/1676_Forward, the Royal Marines.json b/QuestPaths/3.x - Heavensward/Class Quests/SCH/1676_Forward, the Royal Marines.json new file mode 100644 index 00000000..8b2a2201 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Class Quests/SCH/1676_Forward, the Royal Marines.json @@ -0,0 +1,189 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "Position": { + "X": 207.68561, + "Y": -3.1246834, + "Z": 42.986313 + }, + "TerritoryId": 139, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Upper La Noscea - Camp Bronze Lake", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + }, + { + "DataId": 1013135, + "Position": { + "X": 206.0426, + "Y": -3.111818, + "Z": 41.94702 + }, + "TerritoryId": 139, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2005528, + "Position": { + "X": -381.5824, + "Y": 52.475708, + "Z": -298.81744 + }, + "TerritoryId": 180, + "InteractionType": "Interact", + "AetheryteShortcut": "Outer La Noscea - Camp Overlook", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2005529, + "Position": { + "X": 290.15015, + "Y": 41.275635, + "Z": -193.83539 + }, + "TerritoryId": 139, + "InteractionType": "Interact", + "AetheryteShortcut": "Upper La Noscea - Camp Bronze Lake", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1013143, + "Position": { + "X": 405.1117, + "Y": 4.109556, + "Z": 81.04065 + }, + "TerritoryId": 139, + "InteractionType": "SinglePlayerDuty", + "AetheryteShortcut": "Upper La Noscea - Camp Bronze Lake" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "Position": { + "X": 489.20578, + "Y": 16.495434, + "Z": 69.11804 + }, + "TerritoryId": 139, + "InteractionType": "WalkTo" + }, + { + "DataId": 1013146, + "Position": { + "X": 489.73828, + "Y": 16.495436, + "Z": 67.33801 + }, + "TerritoryId": 139, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 1013147, + "Position": { + "X": 487.84607, + "Y": 16.495436, + "Z": 68.0094 + }, + "TerritoryId": 139, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 1013148, + "Position": { + "X": 489.64673, + "Y": 16.495436, + "Z": 70.573 + }, + "TerritoryId": 139, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, + { + "DataId": 1013198, + "Position": { + "X": 487.47998, + "Y": 16.495436, + "Z": 70.35925 + }, + "TerritoryId": 139, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 16 + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1013199, + "Position": { + "X": 491.47778, + "Y": 16.495434, + "Z": 69.16907 + }, + "TerritoryId": 139, + "InteractionType": "CompleteQuest", + "NextQuestId": 2923 + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Class Quests/SMN/2100_A Fitting Tomestone.json b/QuestPaths/3.x - Heavensward/Class Quests/SMN/2100_A Fitting Tomestone.json new file mode 100644 index 00000000..dbe21b54 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Class Quests/SMN/2100_A Fitting Tomestone.json @@ -0,0 +1,88 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1006756, + "Position": { + "X": -16.891846, + "Y": 10.17425, + "Z": -246.87573 + }, + "TerritoryId": 133, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Mih Khetto's Amphitheatre" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 133 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1006725, + "Position": { + "X": 446.82983, + "Y": -5.306207, + "Z": -465.72064 + }, + "TerritoryId": 156, + "InteractionType": "Interact", + "AetheryteShortcut": "Mor Dhona", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1014018, + "Position": { + "X": 481.9867, + "Y": 5.4917006, + "Z": -838.52905 + }, + "TerritoryId": 156, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1006756, + "Position": { + "X": -16.891846, + "Y": 10.17425, + "Z": -246.87573 + }, + "TerritoryId": 133, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Mih Khetto's Amphitheatre" + ], + "NextQuestId": 2101 + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Class Quests/SMN/2101_A Matter of Fact.json b/QuestPaths/3.x - Heavensward/Class Quests/SMN/2101_A Matter of Fact.json new file mode 100644 index 00000000..5d1cfbf9 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Class Quests/SMN/2101_A Matter of Fact.json @@ -0,0 +1,182 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1006756, + "Position": { + "X": -16.891846, + "Y": 10.17425, + "Z": -246.87573 + }, + "TerritoryId": 133, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Mih Khetto's Amphitheatre" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 133 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1014020, + "Position": { + "X": -416.70862, + "Y": -55.58494, + "Z": 112.38269 + }, + "TerritoryId": 145, + "InteractionType": "Interact", + "AetheryteShortcut": "Eastern Thanalan - Camp Drybone" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1004506, + "Position": { + "X": -416.64764, + "Y": -54.15, + "Z": 96.42175 + }, + "TerritoryId": 145, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, + { + "DataId": 1003931, + "Position": { + "X": -379.6292, + "Y": -55.85506, + "Z": 95.04846 + }, + "TerritoryId": 145, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 1004556, + "Position": { + "X": -394.85773, + "Y": -57.30005, + "Z": 173.32715 + }, + "TerritoryId": 145, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1014020, + "Position": { + "X": -416.70862, + "Y": -55.58494, + "Z": 112.38269 + }, + "TerritoryId": 145, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "Position": { + "X": -194.28932, + "Y": -36.84067, + "Z": 26.942286 + }, + "StopDistance": 0.5, + "TerritoryId": 145, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [ + 4777, + 4778 + ], + "Fly": true, + "CompletionQuestVariablesFlags": [ + { + "Low": 3 + }, + null, + null, + null, + null, + null + ] + }, + { + "DataId": 1014025, + "Position": { + "X": -193.59125, + "Y": -36.83681, + "Z": 25.894531 + }, + "TerritoryId": 145, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1014028, + "Position": { + "X": -126.57361, + "Y": 4.0999947, + "Z": -96.23871 + }, + "TerritoryId": 130, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ul'dah", + "NextQuestId": 2102 + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Class Quests/SMN/2102_A Miner Negotiation.json b/QuestPaths/3.x - Heavensward/Class Quests/SMN/2102_A Miner Negotiation.json new file mode 100644 index 00000000..911fbc1c --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Class Quests/SMN/2102_A Miner Negotiation.json @@ -0,0 +1,151 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1014028, + "Position": { + "X": -126.57361, + "Y": 4.0999947, + "Z": -96.23871 + }, + "TerritoryId": 130, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1014029, + "Position": { + "X": 45.24292, + "Y": 18, + "Z": -414.87756 + }, + "TerritoryId": 141, + "InteractionType": "Interact", + "AetheryteShortcut": "Central Thanalan - Black Brush Station", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2005969, + "Position": { + "X": -4.5319824, + "Y": 27.695068, + "Z": -422.2019 + }, + "TerritoryId": 141, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 4781 + ], + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 2005970, + "Position": { + "X": -29.160034, + "Y": 27.42041, + "Z": -417.99042 + }, + "TerritoryId": 141, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 4781 + ], + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 2005971, + "Position": { + "X": -11.6427, + "Y": 34.01233, + "Z": -458.60992 + }, + "TerritoryId": 141, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 4781, + 4786 + ], + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1014029, + "Position": { + "X": 45.24292, + "Y": 18, + "Z": -414.87756 + }, + "TerritoryId": 141, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1014028, + "Position": { + "X": -126.57361, + "Y": 4.0999947, + "Z": -96.23871 + }, + "TerritoryId": 130, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ul'dah", + "NextQuestId": 2103 + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Class Quests/SMN/2103_Mad, Bad, and Ebon-clad.json b/QuestPaths/3.x - Heavensward/Class Quests/SMN/2103_Mad, Bad, and Ebon-clad.json new file mode 100644 index 00000000..3cb89811 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Class Quests/SMN/2103_Mad, Bad, and Ebon-clad.json @@ -0,0 +1,113 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1014028, + "Position": { + "X": -126.57361, + "Y": 4.0999947, + "Z": -96.23871 + }, + "TerritoryId": 130, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1014033, + "Position": { + "X": 47.16565, + "Y": 4, + "Z": 466.14783 + }, + "TerritoryId": 147, + "InteractionType": "Interact", + "AetheryteShortcut": "Northern Thanalan - Camp Bluefog" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2005972, + "Position": { + "X": -6.8513794, + "Y": 5.722107, + "Z": 290.8827 + }, + "StopDistance": 1, + "TerritoryId": 147, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "Position": { + "X": 13.795937, + "Y": 5.0408907, + "Z": 280.2135 + }, + "StopDistance": 0.5, + "TerritoryId": 147, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [ + 4787, + 4788 + ] + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1014034, + "Position": { + "X": 13.687317, + "Y": 4.983316, + "Z": 284.38232 + }, + "StopDistance": 7, + "TerritoryId": 147, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1014028, + "Position": { + "X": -126.57361, + "Y": 4.0999947, + "Z": -96.23871 + }, + "TerritoryId": 130, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ul'dah", + "NextQuestId": 2104 + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Class Quests/SMN/2104_I Could Have Tranced All Night.json b/QuestPaths/3.x - Heavensward/Class Quests/SMN/2104_I Could Have Tranced All Night.json new file mode 100644 index 00000000..a568b7b4 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Class Quests/SMN/2104_I Could Have Tranced All Night.json @@ -0,0 +1,99 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1014028, + "Position": { + "X": -126.57361, + "Y": 4.0999947, + "Z": -96.23871 + }, + "TerritoryId": 130, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1006756, + "Position": { + "X": -16.891846, + "Y": 10.17425, + "Z": -246.87573 + }, + "TerritoryId": 133, + "InteractionType": "Interact", + "AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Mih Khetto's Amphitheatre" + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1014028, + "Position": { + "X": -126.57361, + "Y": 4.0999947, + "Z": -96.23871 + }, + "TerritoryId": 130, + "InteractionType": "Interact", + "AetheryteShortcut": "Ul'dah" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1014038, + "Position": { + "X": -20.24878, + "Y": 83.19998, + "Z": -1.4801636 + }, + "TerritoryId": 130, + "InteractionType": "SinglePlayerDuty", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Airship Landing" + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1014028, + "Position": { + "X": -126.57361, + "Y": 4.0999947, + "Z": -96.23871 + }, + "TerritoryId": 130, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ul'dah", + "NextQuestId": 2105 + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Class Quests/SMN/2105_A Flare for the Dramatic.json b/QuestPaths/3.x - Heavensward/Class Quests/SMN/2105_A Flare for the Dramatic.json new file mode 100644 index 00000000..46e628c8 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Class Quests/SMN/2105_A Flare for the Dramatic.json @@ -0,0 +1,79 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1014028, + "Position": { + "X": -126.57361, + "Y": 4.0999947, + "Z": -96.23871 + }, + "TerritoryId": 130, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1014042, + "Position": { + "X": 277.11902, + "Y": 232.54102, + "Z": 760.1892 + }, + "TerritoryId": 399, + "InteractionType": "SinglePlayerDuty", + "AetheryteShortcut": "Idyllshire", + "AethernetShortcut": [ + "[Idyllshire] Aetheryte Plaza", + "[Idyllshire] Prologue Gate (Western Hinterlands)" + ], + "$": "Unsure if this works without flying unlocked" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1014045, + "Position": { + "X": 260.5172, + "Y": 232.54103, + "Z": 728.9081 + }, + "TerritoryId": 399, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1014044, + "Position": { + "X": 264.515, + "Y": 232.54102, + "Z": 728.84717 + }, + "StopDistance": 7, + "TerritoryId": 399, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/MSQ/A3.2-The Dravanian Forelands/1617_Mourn in Passing.json b/QuestPaths/3.x - Heavensward/MSQ/A3.2-The Dravanian Forelands/1617_Mourn in Passing.json index 78abed7d..a321c741 100644 --- a/QuestPaths/3.x - Heavensward/MSQ/A3.2-The Dravanian Forelands/1617_Mourn in Passing.json +++ b/QuestPaths/3.x - Heavensward/MSQ/A3.2-The Dravanian Forelands/1617_Mourn in Passing.json @@ -78,7 +78,8 @@ { "TerritoryId": 398, "InteractionType": "Duty", - "ContentFinderConditionId": 37 + "ContentFinderConditionId": 37, + "AutoDutyEnabled": true } ] }, diff --git a/QuestPaths/3.x - Heavensward/MSQ/A3.3-The Churning Mists/1634_Into the Aery.json b/QuestPaths/3.x - Heavensward/MSQ/A3.3-The Churning Mists/1634_Into the Aery.json index 471a1666..02098cab 100644 --- a/QuestPaths/3.x - Heavensward/MSQ/A3.3-The Churning Mists/1634_Into the Aery.json +++ b/QuestPaths/3.x - Heavensward/MSQ/A3.3-The Churning Mists/1634_Into the Aery.json @@ -42,7 +42,8 @@ { "TerritoryId": 418, "InteractionType": "Duty", - "ContentFinderConditionId": 39 + "ContentFinderConditionId": 39, + "AutoDutyEnabled": true } ] }, diff --git a/QuestPaths/3.x - Heavensward/MSQ/A4-Ishgard/1640_A Knight's Calling.json b/QuestPaths/3.x - Heavensward/MSQ/A4-Ishgard/1640_A Knight's Calling.json index 492a0d58..9165e2a0 100644 --- a/QuestPaths/3.x - Heavensward/MSQ/A4-Ishgard/1640_A Knight's Calling.json +++ b/QuestPaths/3.x - Heavensward/MSQ/A4-Ishgard/1640_A Knight's Calling.json @@ -59,7 +59,8 @@ { "TerritoryId": 419, "InteractionType": "Duty", - "ContentFinderConditionId": 34 + "ContentFinderConditionId": 34, + "AutoDutyEnabled": true } ] }, diff --git a/QuestPaths/3.x - Heavensward/MSQ/A6-The Dravanian Hinterlands/1660_Forbidden Knowledge.json b/QuestPaths/3.x - Heavensward/MSQ/A6-The Dravanian Hinterlands/1660_Forbidden Knowledge.json index cf7fe15e..dab4f3da 100644 --- a/QuestPaths/3.x - Heavensward/MSQ/A6-The Dravanian Hinterlands/1660_Forbidden Knowledge.json +++ b/QuestPaths/3.x - Heavensward/MSQ/A6-The Dravanian Hinterlands/1660_Forbidden Knowledge.json @@ -110,7 +110,8 @@ { "TerritoryId": 399, "InteractionType": "Duty", - "ContentFinderConditionId": 31 + "ContentFinderConditionId": 31, + "AutoDutyEnabled": true } ] }, diff --git a/QuestPaths/3.x - Heavensward/MSQ/A7-Azys Lla/1669_Heavensward.json b/QuestPaths/3.x - Heavensward/MSQ/A7-Azys Lla/1669_Heavensward.json index 6b6bd71c..7bef51cc 100644 --- a/QuestPaths/3.x - Heavensward/MSQ/A7-Azys Lla/1669_Heavensward.json +++ b/QuestPaths/3.x - Heavensward/MSQ/A7-Azys Lla/1669_Heavensward.json @@ -62,7 +62,8 @@ { "TerritoryId": 402, "InteractionType": "Duty", - "ContentFinderConditionId": 38 + "ContentFinderConditionId": 38, + "AutoDutyEnabled": true } ] }, diff --git a/QuestPaths/3.x - Heavensward/MSQ/C-3.2/2232_The Word of the Mother.json b/QuestPaths/3.x - Heavensward/MSQ/C-3.2/2232_The Word of the Mother.json index 8cb385f4..fe2c3367 100644 --- a/QuestPaths/3.x - Heavensward/MSQ/C-3.2/2232_The Word of the Mother.json +++ b/QuestPaths/3.x - Heavensward/MSQ/C-3.2/2232_The Word of the Mother.json @@ -77,7 +77,8 @@ { "TerritoryId": 463, "InteractionType": "Duty", - "ContentFinderConditionId": 141 + "ContentFinderConditionId": 141, + "AutoDutyEnabled": true } ] }, diff --git a/QuestPaths/3.x - Heavensward/MSQ/E-3.4/2342_Shadows of the First.json b/QuestPaths/3.x - Heavensward/MSQ/E-3.4/2342_Shadows of the First.json index a2bb1f45..c3d9d084 100644 --- a/QuestPaths/3.x - Heavensward/MSQ/E-3.4/2342_Shadows of the First.json +++ b/QuestPaths/3.x - Heavensward/MSQ/E-3.4/2342_Shadows of the First.json @@ -57,7 +57,8 @@ { "TerritoryId": 155, "InteractionType": "Duty", - "ContentFinderConditionId": 182 + "ContentFinderConditionId": 182, + "AutoDutyEnabled": true } ] }, diff --git a/QuestPaths/3.x - Heavensward/MSQ/F-3.5/2354_Griffin, Griffin on the Wall.json b/QuestPaths/3.x - Heavensward/MSQ/F-3.5/2354_Griffin, Griffin on the Wall.json index feba4bf0..42aef1f0 100644 --- a/QuestPaths/3.x - Heavensward/MSQ/F-3.5/2354_Griffin, Griffin on the Wall.json +++ b/QuestPaths/3.x - Heavensward/MSQ/F-3.5/2354_Griffin, Griffin on the Wall.json @@ -109,7 +109,8 @@ { "TerritoryId": 152, "InteractionType": "Duty", - "ContentFinderConditionId": 219 + "ContentFinderConditionId": 219, + "AutoDutyEnabled": true } ] }, diff --git a/QuestPaths/3.x - Heavensward/Side Quests/Azys Lla/1979_Basic Training.json b/QuestPaths/3.x - Heavensward/Side Quests/Azys Lla/1979_Basic Training.json new file mode 100644 index 00000000..2955b31f --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Side Quests/Azys Lla/1979_Basic Training.json @@ -0,0 +1,61 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "goatzone", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1012145, + "Position": { + "X": -607.7516, + "Y": -176.4502, + "Z": -527.5502 + }, + "TerritoryId": 402, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": -441.42657, + "Y": -167.25401, + "Z": -432.4462 + }, + "TerritoryId": 402, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "ComplexCombatData": [ + { + "DataId": 4093, + "MinimumKillCount": 5 + } + ], + "Fly": true, + "$": "5 in close range here, so if any dead it might be a little slower.", + "$.1": "this is the area the quest suggests; there /are/ spinner-rooks sooner, and walking there at level w/o flying might cause interruption, but they're more spread out everywhere else - YMMV." + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1012145, + "Position": { + "X": -607.7516, + "Y": -176.4502, + "Z": -527.5502 + }, + "TerritoryId": 402, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Side Quests/Azys Lla/1980_Good Clean Fun.json b/QuestPaths/3.x - Heavensward/Side Quests/Azys Lla/1980_Good Clean Fun.json new file mode 100644 index 00000000..be941a7e --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Side Quests/Azys Lla/1980_Good Clean Fun.json @@ -0,0 +1,60 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "goatzone", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1012146, + "Position": { + "X": -643.76294, + "Y": -176.4502, + "Z": -527.3976 + }, + "TerritoryId": 402, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": -439.6144, + "Y": -186.3405, + "Z": -617.2911 + }, + "TerritoryId": 402, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "ComplexCombatData": [ + { + "DataId": 4092, + "MinimumKillCount": 5 + } + ], + "Fly": true, + "$": "by starting here we can guarantee a more sane straightline progression instead of starting in the middle, going all the way to one side, then running all the way to the other side." + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1012146, + "Position": { + "X": -643.76294, + "Y": -176.4502, + "Z": -527.3976 + }, + "TerritoryId": 402, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Azys Lla - Helix" + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Side Quests/Azys Lla/1981_General Protection Fault.json b/QuestPaths/3.x - Heavensward/Side Quests/Azys Lla/1981_General Protection Fault.json new file mode 100644 index 00000000..8d59d544 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Side Quests/Azys Lla/1981_General Protection Fault.json @@ -0,0 +1,55 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "goatzone", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1012147, + "Position": { + "X": -426.627, + "Y": -162.1281, + "Z": -328.6031 + }, + "TerritoryId": 402, + "InteractionType": "AcceptQuest", + "Fly": true + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": -528.74396, + "Y": -143.65883, + "Z": -580.686 + }, + "TerritoryId": 402, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [4503], + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1012147, + "Position": { + "X": -426.627, + "Y": -162.1281, + "Z": -328.6031 + }, + "TerritoryId": 402, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Side Quests/Azys Lla/1982_Excessive Force.json b/QuestPaths/3.x - Heavensward/Side Quests/Azys Lla/1982_Excessive Force.json new file mode 100644 index 00000000..c3906c89 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Side Quests/Azys Lla/1982_Excessive Force.json @@ -0,0 +1,65 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "goatzone", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1012148, + "Position": { + "X": -173.2663, + "Y": -162.03395, + "Z": -510.39905 + }, + "TerritoryId": 402, + "InteractionType": "AcceptQuest", + "Fly": true + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": -189.43037, + "Y": -160.1837, + "Z": -499.3027 + }, + "TerritoryId": 402, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "ComplexCombatData": [ + { + "DataId": 4091, + "MinimumKillCount": 3, + "$": "Slay clockwork paladins." + }, + { + "DataId": 4090, + "MinimumKillCount": 3, + "$": "Slay clockwork engineers." + } + ], + "$": "they're all around so we can just start here. possible issue with a FATE spawning here, YMMV." + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1012148, + "Position": { + "X": -173.2663, + "Y": -162.03395, + "Z": -510.39905 + }, + "TerritoryId": 402, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Side Quests/Azys Lla/1983_Chimerical Abominations.json b/QuestPaths/3.x - Heavensward/Side Quests/Azys Lla/1983_Chimerical Abominations.json new file mode 100644 index 00000000..e84881f9 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Side Quests/Azys Lla/1983_Chimerical Abominations.json @@ -0,0 +1,61 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "goatzone", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1012289, + "Position": { + "X": 231.18933, + "Y": -72.92926, + "Z": -603.1434 + }, + "TerritoryId": 402, + "InteractionType": "AcceptQuest", + "Fly": true + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": 517.51276, + "Y": -40.378292, + "Z": -785.99677 + }, + "TerritoryId": 402, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "ComplexCombatData": [ + { + "DataId": 4141, + "MinimumKillCount": 2 + } + ], + "Fly": true, + "$": "FATE spawns on top of the suggested area, so we move a bit east." + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1012289, + "Position": { + "X": 231.18933, + "Y": -72.92926, + "Z": -603.1434 + }, + "TerritoryId": 402, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Side Quests/Azys Lla/1984_Pollution Solution.json b/QuestPaths/3.x - Heavensward/Side Quests/Azys Lla/1984_Pollution Solution.json new file mode 100644 index 00000000..ef384a78 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Side Quests/Azys Lla/1984_Pollution Solution.json @@ -0,0 +1,60 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "goatzone", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1012290, + "Position": { + "X": 760.5248, + "Y": -30.307041, + "Z": -579.67505 + }, + "TerritoryId": 402, + "InteractionType": "AcceptQuest", + "Fly": true + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": 668.9029, + "Y": -86.006, + "Z": -775.5664 + }, + "TerritoryId": 402, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "ComplexCombatData": [ + { + "DataId": 4046, + "MinimumKillCount": 4 + } + ], + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1012290, + "Position": { + "X": 760.5248, + "Y": -30.307041, + "Z": -579.67505 + }, + "TerritoryId": 402, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Side Quests/Azys Lla/1985_Good Hunting.json b/QuestPaths/3.x - Heavensward/Side Quests/Azys Lla/1985_Good Hunting.json new file mode 100644 index 00000000..689b47bb --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Side Quests/Azys Lla/1985_Good Hunting.json @@ -0,0 +1,60 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "goatzone", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1012291, + "Position": { + "X": 804.074, + "Y": -26.326342, + "Z": -527.48914 + }, + "TerritoryId": 402, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": 355.31863, + "Y": -46.22946, + "Z": -507.70428 + }, + "TerritoryId": 402, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "ComplexCombatData": [ + { + "DataId": 4072, + "MinimumKillCount": 4 + } + ], + "Fly": true, + "$": "we go to the west of the marked area to avoid idling in the FATE that spawns on the east of it; we'll still path through it when we expend all the westward mobs, but that's just how they spawn, shrugging emoji." + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1012291, + "Position": { + "X": 804.074, + "Y": -26.326342, + "Z": -527.48914 + }, + "TerritoryId": 402, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Side Quests/Azys Lla/1986_Defense Protocols.json b/QuestPaths/3.x - Heavensward/Side Quests/Azys Lla/1986_Defense Protocols.json new file mode 100644 index 00000000..ce12a094 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Side Quests/Azys Lla/1986_Defense Protocols.json @@ -0,0 +1,55 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "goatzone", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1012292, + "Position": { + "X": 583.9779, + "Y": 10.93506, + "Z": 100.02283 + }, + "TerritoryId": 402, + "InteractionType": "AcceptQuest", + "Fly": true + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": 773.4017, + "Y": -0.06258035, + "Z": 147.04689 + }, + "TerritoryId": 402, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "KillEnemyDataIds": [4669, 4970, 4671, 4672, 4673], + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1012292, + "Position": { + "X": 583.9779, + "Y": 10.93506, + "Z": 100.02283 + }, + "TerritoryId": 402, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Side Quests/Azys Lla/1987_Snikt.json b/QuestPaths/3.x - Heavensward/Side Quests/Azys Lla/1987_Snikt.json new file mode 100644 index 00000000..42a0325a --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Side Quests/Azys Lla/1987_Snikt.json @@ -0,0 +1,60 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "goatzone", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1012293, + "Position": { + "X": 573.4187, + "Y": 13.072888, + "Z": 329.2439 + }, + "TerritoryId": 402, + "InteractionType": "AcceptQuest", + "Fly": true + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": 495.16974, + "Y": 31.67624, + "Z": 517.37463 + }, + "TerritoryId": 402, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "ComplexCombatData": [ + { + "DataId": 4083, + "MinimumKillCount": 4 + } + ], + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1012293, + "Position": { + "X": 573.4187, + "Y": 13.072888, + "Z": 329.2439 + }, + "TerritoryId": 402, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Side Quests/Azys Lla/1988_A Crude Facsimile.json b/QuestPaths/3.x - Heavensward/Side Quests/Azys Lla/1988_A Crude Facsimile.json new file mode 100644 index 00000000..18eef643 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Side Quests/Azys Lla/1988_A Crude Facsimile.json @@ -0,0 +1,156 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "goatzone", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1012294, + "Position": { + "X": 366.4148, + "Y": 20.214104, + "Z": 756.7101 + }, + "TerritoryId": 402, + "InteractionType": "AcceptQuest", + "Fly": true + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": 505.4667, + "Y": 16.87959, + "Z": 751.14856 + }, + "TerritoryId": 402, + "InteractionType": "WalkTo", + "Fly": true, + "$": "can get stuck on the spire structure when trying to land. could land elsewhere but we want to start with this one because it's the first on foot, so if done before flying unlocked that would necessitate walking directly past it.", + "SkipConditions": { + "StepIf": { + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + } + } + }, + { + "DataId": 2005900, + "Position": { + "X": 506.76733, + "Y": 16.861145, + "Z": 750.24023 + }, + "TerritoryId": 402, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 2005903, + "Position": { + "X": 544.64014, + "Y": 15.945618, + "Z": 760.61633 + }, + "TerritoryId": 402, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 8 + ] + }, + { + "DataId": 2005899, + "Position": { + "X": 545.4031, + "Y": 20.2182, + "Z": 802.8534 + }, + "TerritoryId": 402, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 2005902, + "Position": { + "X": 614.6791, + "Y": 20.2182, + "Z": 758.938 + }, + "TerritoryId": 402, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 16 + ] + }, + { + "DataId": 2005901, + "Position": { + "X": 605.3406, + "Y": 15.945618, + "Z": 708.06433 + }, + "TerritoryId": 402, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1012294, + "Position": { + "X": 366.4148, + "Y": 20.214104, + "Z": 756.7101 + }, + "TerritoryId": 402, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Side Quests/Azys Lla/1989_Recycling.json b/QuestPaths/3.x - Heavensward/Side Quests/Azys Lla/1989_Recycling.json new file mode 100644 index 00000000..1541b26d --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Side Quests/Azys Lla/1989_Recycling.json @@ -0,0 +1,60 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "goatzone", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1012295, + "Position": { + "X": 214.64856, + "Y": 13.75853, + "Z": 536.9801 + }, + "TerritoryId": 402, + "InteractionType": "AcceptQuest", + "Fly": true + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": 144.31177, + "Y": 5.9740877, + "Z": 387.8086 + }, + "TerritoryId": 402, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "ComplexCombatData": [ + { + "DataId": 4630, + "MinimumKillCount": 3 + } + ], + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1012295, + "Position": { + "X": 214.64856, + "Y": 13.75853, + "Z": 536.9801 + }, + "TerritoryId": 402, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Side Quests/Azys Lla/1990_Inadequate Safety Measures.json b/QuestPaths/3.x - Heavensward/Side Quests/Azys Lla/1990_Inadequate Safety Measures.json new file mode 100644 index 00000000..e9a8aff8 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Side Quests/Azys Lla/1990_Inadequate Safety Measures.json @@ -0,0 +1,85 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "goatzone", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1012296, + "Position": { + "X": -658.32, + "Y": -75.48534, + "Z": 699.1531 + }, + "TerritoryId": 402, + "InteractionType": "AcceptQuest", + "Fly": true + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": -345.30673, + "Y": -89.61499, + "Z": 353.53 + }, + "TerritoryId": 402, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "ComplexCombatData": [ + { + "DataId": 4075, + "MinimumKillCount": 3 + } + ], + "CompletionQuestVariablesFlags": [ + { "Low": 3 }, + null, + null, + null, + null, + null + ], + "Fly": true + }, + { + "Position": { + "X": -553.4664, + "Y": -104.895905, + "Z": 175.68343 + }, + "TerritoryId": 402, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "ComplexCombatData": [ + { + "DataId": 4668, + "MinimumKillCount": 3 + } + ], + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1012296, + "Position": { + "X": -658.32, + "Y": -75.48534, + "Z": 699.1531 + }, + "TerritoryId": 402, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Side Quests/Azys Lla/1991_Environmental Unbalance.json b/QuestPaths/3.x - Heavensward/Side Quests/Azys Lla/1991_Environmental Unbalance.json new file mode 100644 index 00000000..701a787c --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Side Quests/Azys Lla/1991_Environmental Unbalance.json @@ -0,0 +1,60 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "goatzone", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1012297, + "Position": { + "X": -554.95544, + "Y": -89.69182, + "Z": 771.87756 + }, + "TerritoryId": 402, + "InteractionType": "AcceptQuest", + "Fly": true + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": -679.16223, + "Y": -48.151093, + "Z": 542.7097 + }, + "TerritoryId": 402, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "ComplexCombatData": [ + { + "DataId": 4095, + "MinimumKillCount": 4 + } + ], + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1012297, + "Position": { + "X": -554.95544, + "Y": -89.69182, + "Z": 771.87756 + }, + "TerritoryId": 402, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Side Quests/Azys Lla/1992_Elevated Aggression Levels.json b/QuestPaths/3.x - Heavensward/Side Quests/Azys Lla/1992_Elevated Aggression Levels.json new file mode 100644 index 00000000..b41f31b3 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Side Quests/Azys Lla/1992_Elevated Aggression Levels.json @@ -0,0 +1,116 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "goatzone", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1012298, + "Position": { + "X": -192.67572, + "Y": -102.749916, + "Z": 476.9817 + }, + "TerritoryId": 402, + "InteractionType": "AcceptQuest", + "Fly": true + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": -375.98807, + "Y": -106.10026, + "Z": 710.48956 + }, + "TerritoryId": 402, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "ComplexCombatData": [ + { + "DataId": 4493, + "MinimumKillCount": 1 + } + ], + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ], + "Fly": true + }, + { + "Position": { + "X": -372.88766, + "Y": -105.78837, + "Z": 746.95245 + }, + "TerritoryId": 402, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "ComplexCombatData": [ + { + "DataId": 4493, + "MinimumKillCount": 1 + } + ], + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "Position": { + "X": -321.94852, + "Y": -106.57244, + "Z": 716.5662 + }, + "TerritoryId": 402, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "ComplexCombatData": [ + { + "DataId": 4493, + "MinimumKillCount": 1 + } + ], + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1012298, + "Position": { + "X": -192.67572, + "Y": -102.749916, + "Z": 476.9817 + }, + "TerritoryId": 402, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Side Quests/Coerthas Western Highlands/1762_The Secret to Success.json b/QuestPaths/3.x - Heavensward/Side Quests/Coerthas Western Highlands/1762_The Secret to Success.json new file mode 100644 index 00000000..449db054 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Side Quests/Coerthas Western Highlands/1762_The Secret to Success.json @@ -0,0 +1,126 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Thaksin", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1013710, + "Position": { + "X": -294.6975, + "Y": 126.84874, + "Z": 4.5318604 + }, + "TerritoryId": 397, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1014133, + "Position": { + "X": -259.84595, + "Y": 126.44779, + "Z": 1.9073486 + }, + "TerritoryId": 397, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2006005, + "Position": { + "X": -157.70203, + "Y": 110.73462, + "Z": -52.414795 + }, + "TerritoryId": 397, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 2006006, + "Position": { + "X": -228.25977, + "Y": 112.47424, + "Z": -127.55017 + }, + "TerritoryId": 397, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 2006007, + "Position": { + "X": -348.10413, + "Y": 116.50256, + "Z": -91.93567 + }, + "TerritoryId": 397, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1014133, + "Position": { + "X": -259.84595, + "Y": 126.44779, + "Z": 1.9073486 + }, + "TerritoryId": 397, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1013710, + "Position": { + "X": -294.6975, + "Y": 126.84874, + "Z": 4.5318604 + }, + "TerritoryId": 397, + "InteractionType": "CompleteQuest", + "NextQuestId": 1764 + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Side Quests/Coerthas Western Highlands/1764_Introductory Dragonslaying.json b/QuestPaths/3.x - Heavensward/Side Quests/Coerthas Western Highlands/1764_Introductory Dragonslaying.json new file mode 100644 index 00000000..c526f673 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Side Quests/Coerthas Western Highlands/1764_Introductory Dragonslaying.json @@ -0,0 +1,98 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Thaksin", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1013710, + "Position": { + "X": -294.6975, + "Y": 126.84874, + "Z": 4.5318604 + }, + "TerritoryId": 397, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1014134, + "Position": { + "X": -293.23267, + "Y": 126.85495, + "Z": 5.2643433 + }, + "TerritoryId": 397, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Fly": true, + "DataId": 1014136, + "Position": { + "X": 292.74426, + "Y": 132.44626, + "Z": -244.73944 + }, + "TerritoryId": 397, + "InteractionType": "Interact" + }, + { + "Position": { + "X": 289.0053, + "Y": 132.30807, + "Z": -233.57523 + }, + "DataId": 4041, + "TerritoryId": 397, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 4041 + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1014136, + "Position": { + "X": 292.74426, + "Y": 132.44626, + "Z": -244.73944 + }, + "TerritoryId": 397, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Fly": true, + "DataId": 1013710, + "Position": { + "X": -294.6975, + "Y": 126.84874, + "Z": 4.5318604 + }, + "TerritoryId": 397, + "InteractionType": "CompleteQuest", + "NextQuestId": 1765 + } + ] + } + ] +} \ No newline at end of file diff --git a/QuestPaths/3.x - Heavensward/Side Quests/Coerthas Western Highlands/1765_Intermediate Dragonslaying.json b/QuestPaths/3.x - Heavensward/Side Quests/Coerthas Western Highlands/1765_Intermediate Dragonslaying.json new file mode 100644 index 00000000..4bea2439 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Side Quests/Coerthas Western Highlands/1765_Intermediate Dragonslaying.json @@ -0,0 +1,99 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Thaksin", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1013710, + "Position": { + "X": -294.6975, + "Y": 126.84874, + "Z": 4.5318604 + }, + "TerritoryId": 397, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1014138, + "Position": { + "X": -219.19586, + "Y": 112.21238, + "Z": -244.1596 + }, + "TerritoryId": 397, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Fly": true, + "DataId": 4470, + "Position": { + "X": -468.44992, + "Y": 93.85853, + "Z": -506.40417 + }, + "TerritoryId": 397, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [ + 4470 + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "Position": { + "X": -219.1624, + "Y": 112.29031, + "Z": -239.88861 + }, + "TerritoryId": 397, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 1014138, + "Position": { + "X": -219.19586, + "Y": 112.21238, + "Z": -244.1596 + }, + "TerritoryId": 397, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1013710, + "Position": { + "X": -294.6975, + "Y": 126.84874, + "Z": 4.5318604 + }, + "TerritoryId": 397, + "InteractionType": "CompleteQuest", + "NextQuestId": 1766, + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Side Quests/Coerthas Western Highlands/1766_Advanced Dragonslaying.json b/QuestPaths/3.x - Heavensward/Side Quests/Coerthas Western Highlands/1766_Advanced Dragonslaying.json new file mode 100644 index 00000000..aadaebf0 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Side Quests/Coerthas Western Highlands/1766_Advanced Dragonslaying.json @@ -0,0 +1,107 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Thaksin", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1013710, + "Position": { + "X": -294.6975, + "Y": 126.84874, + "Z": 4.5318604 + }, + "TerritoryId": 397, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1014138, + "Position": { + "X": -219.19586, + "Y": 112.21238, + "Z": -244.1596 + }, + "TerritoryId": 397, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Fly": true, + "DataId": 1014140, + "Position": { + "X": -472.19043, + "Y": 93.87282, + "Z": -503.7156 + }, + "TerritoryId": 397, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 4468, + "Position": { + "X": -696.8278, + "Y": 100.08534, + "Z": -603.926 + }, + "StopDistance": 0.5, + "TerritoryId": 397, + "InteractionType": "Combat", + "KillEnemyDataIds": [ + 4468 + ], + "EnemySpawnType": "AutoOnEnterArea", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1014140, + "Position": { + "X": -472.19043, + "Y": 93.87282, + "Z": -503.7156 + }, + "TerritoryId": 397, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Fly": true, + "DataId": 1013710, + "Position": { + "X": -294.6975, + "Y": 126.84874, + "Z": 4.5318604 + }, + "TerritoryId": 397, + "InteractionType": "CompleteQuest", + "NextQuestId": 1769 + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Side Quests/Coerthas Western Highlands/1769_Expert Dragonslaying.json b/QuestPaths/3.x - Heavensward/Side Quests/Coerthas Western Highlands/1769_Expert Dragonslaying.json new file mode 100644 index 00000000..41a0e1d5 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Side Quests/Coerthas Western Highlands/1769_Expert Dragonslaying.json @@ -0,0 +1,185 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Thaksin", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1013710, + "Position": { + "X": -294.6975, + "Y": 126.84874, + "Z": 4.5318604 + }, + "TerritoryId": 397, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Fly": true, + "DataId": 1014142, + "Position": { + "X": -290.33344, + "Y": 76.98337, + "Z": -259.93744 + }, + "TerritoryId": 397, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2006013, + "Position": { + "X": -287.76996, + "Y": 77.74463, + "Z": -278.00415 + }, + "TerritoryId": 397, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1014142, + "Position": { + "X": -290.33344, + "Y": 76.98337, + "Z": -259.93744 + }, + "TerritoryId": 397, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 2006014, + "Position": { + "X": -291.8593, + "Y": 76.98169, + "Z": -261.0056 + }, + "TerritoryId": 397, + "InteractionType": "Interact" + }, + { + "DataId": 4037, + "Position": { + "X": -285.1214, + "Y": 76.98337, + "Z": -275.5287 + }, + "TerritoryId": 397, + "InteractionType": "Combat", + "KillEnemyDataIds": [4037], + "EnemySpawnType": "AfterInteraction" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1014142, + "Position": { + "X": -290.33344, + "Y": 76.98337, + "Z": -259.93744 + }, + "TerritoryId": 397, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "Fly": true, + "DataId": 1013710, + "Position": { + "X": -294.6975, + "Y": 126.84874, + "Z": 4.5318604 + }, + "TerritoryId": 397, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 7, + "Steps": [ + { + "DataId": 1014144, + "Position": { + "X": -258.16742, + "Y": 126.98671, + "Z": 12.77179 + }, + "TerritoryId": 397, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 8, + "Steps": [ + { + "DataId": 2006015, + "Position": { + "X": -252.33844, + "Y": 127.00073, + "Z": 11.093262 + }, + "TerritoryId": 397, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 9, + "Steps": [ + { + "DataId": 1014144, + "Position": { + "X": -258.16742, + "Y": 126.98671, + "Z": 12.77179 + }, + "TerritoryId": 397, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1013710, + "Position": { + "X": -294.6975, + "Y": 126.84874, + "Z": 4.5318604 + }, + "TerritoryId": 397, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} \ No newline at end of file diff --git a/QuestPaths/3.x - Heavensward/Side Quests/Coerthas Western Highlands/1889_Unknown Ultimatum.json b/QuestPaths/3.x - Heavensward/Side Quests/Coerthas Western Highlands/1889_Unknown Ultimatum.json new file mode 100644 index 00000000..2072032e --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Side Quests/Coerthas Western Highlands/1889_Unknown Ultimatum.json @@ -0,0 +1,121 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Thaksin", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1014146, + "Position": { + "X": -258.74725, + "Y": 126.98546, + "Z": 12.649658 + }, + "TerritoryId": 397, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1014147, + "Position": { + "X": -256.97723, + "Y": 126.99508, + "Z": 13.168518 + }, + "TerritoryId": 397, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Fly": true, + "Position": { + "X": -298.8484, + "Y": 221.68138, + "Z": 548.0529 + }, + "TerritoryId": 397, + "InteractionType": "WalkTo" + }, + { + "Land": true, + "DataId": 1014149, + "Position": { + "X": -294.5144, + "Y": 221.58685, + "Z": 545.922 + }, + "TerritoryId": 397, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2006017, + "Position": { + "X": -253.34558, + "Y": 221.36255, + "Z": 528.92346 + }, + "TerritoryId": 397, + "InteractionType": "Interact" + }, + { + "DataId": 4076, + "Position": { + "X": -257.5558, + "Y": 221.35532, + "Z": 520.9053 + }, + "TerritoryId": 397, + "InteractionType": "Combat", + "KillEnemyDataIds": [4076], + "EnemySpawnType": "AfterInteraction" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1014149, + "Position": { + "X": -294.5144, + "Y": 221.58685, + "Z": 545.922 + }, + "TerritoryId": 397, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Fly": true, + "DataId": 1014146, + "Position": { + "X": -258.74725, + "Y": 126.98546, + "Z": 12.649658 + }, + "TerritoryId": 397, + "InteractionType": "CompleteQuest", + "NextQuestId": 1890 + } + ] + } + ] +} \ No newline at end of file diff --git a/QuestPaths/3.x - Heavensward/Side Quests/Coerthas Western Highlands/1890_Personal Effects.json b/QuestPaths/3.x - Heavensward/Side Quests/Coerthas Western Highlands/1890_Personal Effects.json new file mode 100644 index 00000000..68341985 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Side Quests/Coerthas Western Highlands/1890_Personal Effects.json @@ -0,0 +1,92 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Thaksin", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1014146, + "Position": { + "X": -258.74725, + "Y": 126.98546, + "Z": 12.649658 + }, + "TerritoryId": 397, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": -297.49585, + "Y": 219.87524, + "Z": 281.65045 + }, + "TerritoryId": 397, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "ComplexCombatData": [ + { + "DataId": 3992, + "MinimumKillCount": 5 + } + ], + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Fly": true, + "DataId": 1014150, + "Position": { + "X": 507.13354, + "Y": 217.95148, + "Z": 791.37854 + }, + "TerritoryId": 397, + "InteractionType": "Interact", + "AetheryteShortcut": "Coerthas Western Highlands - Falcon's Nest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": -110.26132, + "Y": 153.61101, + "Z": 10.394781 + }, + "TerritoryId": 397, + "InteractionType": "WalkTo", + "Fly": true, + "SkipConditions": { + "StepIf": { + "Flying": "Locked" + } + } + }, + { + "Fly": true, + "DataId": 1014146, + "Position": { + "X": -258.74725, + "Y": 126.98546, + "Z": 12.649658 + }, + "TerritoryId": 397, + "InteractionType": "CompleteQuest", + "NextQuestId": 1891 + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Side Quests/Coerthas Western Highlands/1891_Ayleth Absconds.json b/QuestPaths/3.x - Heavensward/Side Quests/Coerthas Western Highlands/1891_Ayleth Absconds.json new file mode 100644 index 00000000..03490c14 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Side Quests/Coerthas Western Highlands/1891_Ayleth Absconds.json @@ -0,0 +1,98 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Thaksin", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1014146, + "Position": { + "X": -258.74725, + "Y": 126.98546, + "Z": 12.649658 + }, + "TerritoryId": 397, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Fly": true, + "DataId": 1014151, + "Position": { + "X": -156.08453, + "Y": 219.14235, + "Z": 669.7031 + }, + "TerritoryId": 397, + "InteractionType": "Interact" + }, + { + "DataId": 732, + "Position": { + "X": -151.29321, + "Y": 218.95082, + "Z": 669.4895 + }, + "TerritoryId": 397, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 732 + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1014151, + "Position": { + "X": -156.08453, + "Y": 219.14235, + "Z": 669.7031 + }, + "TerritoryId": 397, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1014151, + "Position": { + "X": -156.08453, + "Y": 219.14235, + "Z": 669.7031 + }, + "TerritoryId": 397, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Fly": true, + "DataId": 1014146, + "Position": { + "X": -258.74725, + "Y": 126.98546, + "Z": 12.649658 + }, + "TerritoryId": 397, + "InteractionType": "CompleteQuest", + "NextQuestId": 1892 + } + ] + } + ] +} \ No newline at end of file diff --git a/QuestPaths/3.x - Heavensward/Side Quests/Coerthas Western Highlands/1892_A Missing Tooth.json b/QuestPaths/3.x - Heavensward/Side Quests/Coerthas Western Highlands/1892_A Missing Tooth.json new file mode 100644 index 00000000..d0ee8c1c --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Side Quests/Coerthas Western Highlands/1892_A Missing Tooth.json @@ -0,0 +1,83 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Thaksin", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1014146, + "Position": { + "X": -258.74725, + "Y": 126.98546, + "Z": 12.649658 + }, + "TerritoryId": 397, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Fly": true, + "DataId": 2006019, + "Position": { + "X": -152.42242, + "Y": 219.62305, + "Z": 669.94727 + }, + "TerritoryId": 397, + "InteractionType": "Interact" + }, + { + "DataId": 4782, + "Position": { + "X": -158.97404, + "Y": 219.45131, + "Z": 672.79553 + }, + "TerritoryId": 397, + "KillEnemyDataIds": [ + 4782 + ], + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2006181, + "Position": { + "X": -152.42242, + "Y": 219.62305, + "Z": 669.94727 + }, + "TerritoryId": 397, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Fly": true, + "DataId": 1014146, + "Position": { + "X": -258.74725, + "Y": 126.98546, + "Z": 12.649658 + }, + "TerritoryId": 397, + "InteractionType": "CompleteQuest", + "NextQuestId": 1893 + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Side Quests/Coerthas Western Highlands/1893_A Noble Purpose.json b/QuestPaths/3.x - Heavensward/Side Quests/Coerthas Western Highlands/1893_A Noble Purpose.json new file mode 100644 index 00000000..c5a003fc --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Side Quests/Coerthas Western Highlands/1893_A Noble Purpose.json @@ -0,0 +1,113 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Thaksin", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1014146, + "Position": { + "X": -258.74725, + "Y": 126.98546, + "Z": 12.649658 + }, + "TerritoryId": 397, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1011907, + "Position": { + "X": -288.8686, + "Y": 127.06639, + "Z": 13.199036 + }, + "TerritoryId": 397, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 1011910, + "Position": { + "X": -298.26813, + "Y": 126.67049, + "Z": -1.4191895 + }, + "TerritoryId": 397, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 1014133, + "Position": { + "X": -259.84595, + "Y": 126.44779, + "Z": 1.9073486 + }, + "TerritoryId": 397, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Fly": true, + "DataId": 1014152, + "Position": { + "X": 496.1776, + "Y": 133.93082, + "Z": -862.2416 + }, + "TerritoryId": 397, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Fly": true, + "DataId": 1014153, + "Position": { + "X": -295.82666, + "Y": 126.83744, + "Z": 3.829956 + }, + "TerritoryId": 397, + "InteractionType": "CompleteQuest", + "NextQuestId": 1898 + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Side Quests/Coerthas Western Highlands/1898_A War without End.json b/QuestPaths/3.x - Heavensward/Side Quests/Coerthas Western Highlands/1898_A War without End.json new file mode 100644 index 00000000..fb968727 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Side Quests/Coerthas Western Highlands/1898_A War without End.json @@ -0,0 +1,229 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Thaksin", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1013710, + "Position": { + "X": -294.6975, + "Y": 126.84874, + "Z": 4.5318604 + }, + "TerritoryId": 397, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1014153, + "Position": { + "X": -295.82666, + "Y": 126.83744, + "Z": 3.829956 + }, + "TerritoryId": 397, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1013710, + "Position": { + "X": -294.6975, + "Y": 126.84874, + "Z": 4.5318604 + }, + "TerritoryId": 397, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "Fly": true, + "DataId": 1014154, + "Position": { + "X": -519.1577, + "Y": 119.39417, + "Z": -161.24213 + }, + "TerritoryId": 397, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1014155, + "Position": { + "X": -527.245, + "Y": 118.94699, + "Z": -163.13422 + }, + "TerritoryId": 397, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 2006026, + "Position": { + "X": -525.7191, + "Y": 119.06604, + "Z": -165.72827 + }, + "TerritoryId": 397, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "Fly": true, + "DataId": 1013710, + "Position": { + "X": -294.6975, + "Y": 126.84874, + "Z": 4.5318604 + }, + "TerritoryId": 397, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 7, + "Steps": [ + { + "Fly": true, + "Position": { + "X": -92.57648, + "Y": 96.33008, + "Z": -645.1057 + }, + "TerritoryId": 397, + "InteractionType": "WalkTo" + }, + { + "DataId": 2006027, + "Position": { + "X": -92.57648, + "Y": 96.33008, + "Z": -645.1057 + }, + "TerritoryId": 397, + "InteractionType": "UseItem", + "ItemId": 2001751 + } + ] + }, + { + "Sequence": 8, + "Steps": [ + { + "DataId": 2006028, + "Position": { + "X": -92.5155, + "Y": 93.52246, + "Z": -623.621 + }, + "TerritoryId": 397, + "InteractionType": "Interact" + }, + { + "DataId": 4621, + "Position": { + "X": -92.37683, + "Y": 95.76039, + "Z": -640.7043 + }, + "TerritoryId": 397, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 4621 + ] + } + ] + }, + { + "Sequence": 9, + "Steps": [ + { + "DataId": 2006460, + "Position": { + "X": -92.57648, + "Y": 96.33008, + "Z": -645.1057 + }, + "TerritoryId": 397, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 10, + "Steps": [ + { + "Fly": true, + "DataId": 1013710, + "Position": { + "X": -294.6975, + "Y": 126.84874, + "Z": 4.5318604 + }, + "TerritoryId": 397, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 11, + "Steps": [ + { + "DataId": 1014147, + "Position": { + "X": -256.97723, + "Y": 126.99508, + "Z": 13.168518 + }, + "TerritoryId": 397, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1013710, + "Position": { + "X": -294.6975, + "Y": 126.84874, + "Z": 4.5318604 + }, + "TerritoryId": 397, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} \ No newline at end of file diff --git a/QuestPaths/3.x - Heavensward/Side Quests/Ishgard/1730_Cold Days, Colder Nights.json b/QuestPaths/3.x - Heavensward/Side Quests/Ishgard/1730_Cold Days, Colder Nights.json new file mode 100644 index 00000000..0be23e3f --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Side Quests/Ishgard/1730_Cold Days, Colder Nights.json @@ -0,0 +1,140 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Thaksin", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1012170, + "Position": { + "X": 102.92212, + "Y": 3.6299734, + "Z": 65.56799 + }, + "TerritoryId": 418, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1012162, + "Position": { + "X": 135.97314, + "Y": 24.376427, + "Z": 12.619202 + }, + "TerritoryId": 418, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1012170, + "Position": { + "X": 102.92212, + "Y": 3.6299734, + "Z": 65.56799 + }, + "TerritoryId": 418, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1014711, + "Position": { + "X": 58.03003, + "Y": -7.146736, + "Z": 82.41394 + }, + "TerritoryId": 418, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 1014712, + "Position": { + "X": 93.91919, + "Y": -19.941168, + "Z": 78.20239 + }, + "TerritoryId": 418, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 1014713, + "Position": { + "X": 131.9447, + "Y": -20.000105, + "Z": 62.027832 + }, + "TerritoryId": 418, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1014714, + "Position": { + "X": 23.178406, + "Y": -12.020877, + "Z": 35.294067 + }, + "TerritoryId": 418, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1012170, + "Position": { + "X": 102.92212, + "Y": 3.6299734, + "Z": 65.56799 + }, + "TerritoryId": 418, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} \ No newline at end of file diff --git a/QuestPaths/3.x - Heavensward/Side Quests/Ishgard/1870_Caught in the Act.json b/QuestPaths/3.x - Heavensward/Side Quests/Ishgard/1870_Caught in the Act.json new file mode 100644 index 00000000..2016dfb6 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Side Quests/Ishgard/1870_Caught in the Act.json @@ -0,0 +1,149 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Thaksin", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1012180, + "Position": { + "X": -174.18176, + "Y": -12.555469, + "Z": -21.561035 + }, + "TerritoryId": 419, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2006246, + "Position": { + "X": -218.40247, + "Y": -16.037292, + "Z": -34.683777 + }, + "TerritoryId": 419, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 2006247, + "Position": { + "X": -229.23633, + "Y": -20.035156, + "Z": -83.05487 + }, + "TerritoryId": 419, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 2006248, + "Position": { + "X": -252.1554, + "Y": -20.035156, + "Z": -57.66388 + }, + "TerritoryId": 419, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1012180, + "Position": { + "X": -174.18176, + "Y": -12.555469, + "Z": -21.561035 + }, + "TerritoryId": 419, + "InteractionType": "Interact" + } + ] + + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1014721, + "Position": { + "X": 119.31018, + "Y": -12.634913, + "Z": -13.626343 + }, + "TerritoryId": 419, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Ishgard] The Jeweled Crozier", + "[Ishgard] Athenaeum Astrologicum" + ] + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 2006330, + "Position": { + "X": 118.791504, + "Y": -11.6427, + "Z": -13.351685 + }, + "TerritoryId": 419, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1012180, + "Position": { + "X": -174.18176, + "Y": -12.555469, + "Z": -21.561035 + }, + "TerritoryId": 419, + "InteractionType": "CompleteQuest", + "AethernetShortcut": [ + "[Ishgard] Athenaeum Astrologicum", + "[Ishgard] The Jeweled Crozier" + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/QuestPaths/3.x - Heavensward/Side Quests/Ishgard/1873_Enlisted.json b/QuestPaths/3.x - Heavensward/Side Quests/Ishgard/1873_Enlisted.json new file mode 100644 index 00000000..c603466d --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Side Quests/Ishgard/1873_Enlisted.json @@ -0,0 +1,68 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Thaksin", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1014718, + "Position": { + "X": -29.526245, + "Y": 11.965078, + "Z": 48.355713 + }, + "TerritoryId": 419, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1011231, + "Position": { + "X": 503.1051, + "Y": 217.95148, + "Z": 790.2189 + }, + "TerritoryId": 397, + "InteractionType": "Interact", + "AetheryteShortcut": "Coerthas Western Highlands - Falcon's Nest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": -110.26132, + "Y": 153.61101, + "Z": 10.394781 + }, + "TerritoryId": 397, + "InteractionType": "WalkTo", + "Fly": true, + "SkipConditions": { + "StepIf": { + "Flying": "Locked" + } + } + }, + { + "DataId": 1014719, + "Position": { + "X": -293.6294, + "Y": 125.4389, + "Z": -19.058533 + }, + "TerritoryId": 397, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Side Quests/The Churning Mists/1840_A Secret from Everyone.json b/QuestPaths/3.x - Heavensward/Side Quests/The Churning Mists/1840_A Secret from Everyone.json new file mode 100644 index 00000000..e5351603 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Side Quests/The Churning Mists/1840_A Secret from Everyone.json @@ -0,0 +1,134 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Thaksin", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1012085, + "Position": { + "X": 286.88477, + "Y": 14.36517, + "Z": 645.1666 + }, + "TerritoryId": 400, + "InteractionType": "AcceptQuest" + } + ] + }, + + { + "Sequence": 1, + "Steps": [ + { + "Fly": true, + "DataId": 2005720, + "Position": { + "X": 565.9419, + "Y": -9.445435, + "Z": -14.328308 + }, + "TerritoryId": 400, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 16 + ], + "InteractionType": "Interact" + }, + { + "DataId": 2005718, + "Position": { + "X": 664.39294, + "Y": -0.4730835, + "Z": -3.2807007 + }, + "Fly": true, + "TerritoryId": 400, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 2005721, + "Position": { + "X": 653.83374, + "Y": -0.7172241, + "Z": -70.02368 + }, + "TerritoryId": 400, + "Fly": true, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, null, + null, null, + null, 8 + ] + }, + { + "DataId": 2005717, + "Position": { + "X": 639.00195, + "Y": 46.463623, + "Z": -113.05414 + }, + "TerritoryId": 400, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 2005719, + "Position": { + "X": 527.0923, + "Y": -4.287842, + "Z": -84.916504 + }, + "Fly": true, + "TerritoryId": 400, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Fly": true, + "DataId": 1012085, + "Position": { + "X": 286.88477, + "Y": 14.36517, + "Z": 645.1666 + }, + "TerritoryId": 400, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} \ No newline at end of file diff --git a/QuestPaths/3.x - Heavensward/Side Quests/The Dravanian Forelands/1791_Feat of Clay.json b/QuestPaths/3.x - Heavensward/Side Quests/The Dravanian Forelands/1791_Feat of Clay.json new file mode 100644 index 00000000..e8ceb18b --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Side Quests/The Dravanian Forelands/1791_Feat of Clay.json @@ -0,0 +1,84 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Thaksin", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1011931, + "Position": { + "X": 56.839844, + "Y": -49.92323, + "Z": -135.91211 + }, + "TerritoryId": 398, + "InteractionType": "AcceptQuest", + "Fly": true + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2005617, + "Position": { + "X": 197.22278, + "Y": -99.931335, + "Z": 644.4646 + }, + "StopDistance": 0.5, + "TerritoryId": 398, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ], + "Fly": true + }, + { + "DataId": 2005618, + "Position": { + "X": 287.64783, + "Y": -94.10242, + "Z": 597.9553 + }, + "StopDistance": 0.5, + "TerritoryId": 398, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ], + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1011931, + "Position": { + "X": 56.839844, + "Y": -49.92323, + "Z": -135.91211 + }, + "TerritoryId": 398, + "InteractionType": "CompleteQuest", + "Fly": true, + "NextQuestId": 1793 + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Side Quests/The Dravanian Forelands/1793_Yellow Stones.json b/QuestPaths/3.x - Heavensward/Side Quests/The Dravanian Forelands/1793_Yellow Stones.json new file mode 100644 index 00000000..4a20e28b --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Side Quests/The Dravanian Forelands/1793_Yellow Stones.json @@ -0,0 +1,118 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Thaksin", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1011931, + "Position": { + "X": 56.839844, + "Y": -49.92323, + "Z": -135.91211 + }, + "TerritoryId": 398, + "InteractionType": "AcceptQuest", + "Fly": true + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2005636, + "Position": { + "X": -247.21143, + "Y": -77.62268, + "Z": 819.4857 + }, + "TerritoryId": 398, + "InteractionType": "Interact", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 16 + ] + }, + { + "DataId": 2005635, + "Position": { + "X": -187.24353, + "Y": -84.85547, + "Z": 733.51636 + }, + "TerritoryId": 398, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ], + "Fly": true + }, + { + "DataId": 2005633, + "Position": { + "X": -273.518, + "Y": -82.47504, + "Z": 644.6478 + }, + "TerritoryId": 398, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ], + "Fly": true + }, + { + "DataId": 2005634, + "Position": { + "X": -307.3015, + "Y": -80.1557, + "Z": 665.6748 + }, + "TerritoryId": 398, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ], + "Fly": true + } + ] + },{ + "Sequence": 255, + "Steps": [ + { + "DataId": 1011931, + "Position": { + "X": 56.839844, + "Y": -49.92323, + "Z": -135.91211 + }, + "TerritoryId": 398, + "Fly": true, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Side Quests/The Dravanian Hinterlands/1947_A Bum Rap.json b/QuestPaths/3.x - Heavensward/Side Quests/The Dravanian Hinterlands/1947_A Bum Rap.json new file mode 100644 index 00000000..c9275d04 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Side Quests/The Dravanian Hinterlands/1947_A Bum Rap.json @@ -0,0 +1,63 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Thaksin", + "QuestSequence": [ + { + + "Sequence": 0, + "Steps": [ + { + "DataId": 1012287, + "Position": { + "X": -28.397034, + "Y": 100.969696, + "Z": -186.4195 + }, + "TerritoryId": 399, + "InteractionType": "AcceptQuest", + "Fly": true + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": 301.43185, + "Y": 76.142914, + "Z": 171.03389 + }, + "TerritoryId": 399, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "ComplexCombatData": [ + { + "DataId": 4020, + "MinimumKillCount": 3 + } + ], + "Fly": true + } + + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1012287, + "Position": { + "X": -28.397034, + "Y": 100.969696, + "Z": -186.4195 + }, + "TerritoryId": 399, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + + ] +} diff --git a/QuestPaths/3.x - Heavensward/Side Quests/The Dravanian Hinterlands/1964_What the Boat Brought In.json b/QuestPaths/3.x - Heavensward/Side Quests/The Dravanian Hinterlands/1964_What the Boat Brought In.json new file mode 100644 index 00000000..43c1f337 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Side Quests/The Dravanian Hinterlands/1964_What the Boat Brought In.json @@ -0,0 +1,104 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Thaksin", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1013651, + "Position": { + "X": -475.76105, + "Y": 155.8605, + "Z": -209.76581 + }, + "TerritoryId": 399, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": -654.5463, + "Y": 148.56897, + "Z": 187.12466 + }, + "TerritoryId": 399, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 1013655, + "Position": { + "X": -669.9169, + "Y": 154.30952, + "Z": 191.08862 + }, + "Land": true, + "TerritoryId": 399, + "InteractionType": "Interact" + } + ] + }, + { + + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": -894.6883, + "Y": 215.50499, + "Z": 157.66754 + }, + "TerritoryId": 399, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 5047, + "Position": { + "X": -894.9264, + "Y": 215.16266, + "Z": 155.29102 + }, + "TerritoryId": 399, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [ + 5047, + 5048 + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": -654.5463, + "Y": 148.56897, + "Z": 187.12466 + }, + "TerritoryId": 399, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 1013655, + "Position": { + "X": -669.9169, + "Y": 154.30952, + "Z": 191.08862 + }, + "Land": true, + "TerritoryId": 399, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} \ No newline at end of file diff --git a/QuestPaths/3.x - Heavensward/Side Quests/The Dravanian Hinterlands/1965_Over My Dead Gobbie.json b/QuestPaths/3.x - Heavensward/Side Quests/The Dravanian Hinterlands/1965_Over My Dead Gobbie.json new file mode 100644 index 00000000..10c60394 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Side Quests/The Dravanian Hinterlands/1965_Over My Dead Gobbie.json @@ -0,0 +1,112 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Thaksin", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1013655, + "Position": { + "X": -669.9169, + "Y": 154.30952, + "Z": 191.08862 + }, + "TerritoryId": 399, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1013656, + "Position": { + "X": -617.8836, + "Y": 150.38008, + "Z": 327.19922 + }, + "TerritoryId": 399, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1013659, + "Position": { + "X": -617.76154, + "Y": 153.8528, + "Z": 349.35522 + }, + "TerritoryId": 399, + "InteractionType": "Interact" + }, + { + "DataId": 5049, + "Position": { + "X": -617.76154, + "Y": 153.8528, + "Z": 349.35522 + }, + "TerritoryId": 399, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 5046, + 5049 + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1013659, + "Position": { + "X": -617.76154, + "Y": 153.8528, + "Z": 349.35522 + }, + "TerritoryId": 399, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1013656, + "Position": { + "X": -617.8836, + "Y": 150.38008, + "Z": 327.19922 + }, + "TerritoryId": 399, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1012133, + "Position": { + "X": -26.840637, + "Y": 206.49944, + "Z": 28.67163 + }, + "TerritoryId": 478, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Idyllshire" + } + ] + } + ] +} \ No newline at end of file diff --git a/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Dailies/3061_Ants in the Pants.json b/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Dailies/3061_Ants in the Pants.json index 48f32de4..6592441b 100644 --- a/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Dailies/3061_Ants in the Pants.json +++ b/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Dailies/3061_Ants in the Pants.json @@ -1,7 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", - "Disabled": true, "QuestSequence": [ { "Sequence": 0, @@ -22,6 +21,37 @@ { "Sequence": 1, "Steps": [ + { + "DataId": 1024777, + "Position": { + "X": -41.641907, + "Y": 55.97816, + "Z": 211.38318 + }, + "TerritoryId": 612, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": 482.93036, + "Y": 42.43753, + "Z": 350.85095 + }, + "StopDistance": 0.5, + "TerritoryId": 612, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [ + 8593 + ], + "Fly": true, + "Land": true + } ] }, { diff --git a/QuestPaths/4.x - Stormblood/Allied Societies/Namazu/Dailies/3116_A Stable's Condition.json b/QuestPaths/4.x - Stormblood/Allied Societies/Namazu/Dailies/3116_A Stable's Condition.json new file mode 100644 index 00000000..ea6dcd9b --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Allied Societies/Namazu/Dailies/3116_A Stable's Condition.json @@ -0,0 +1,134 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "plogon_enjoyer", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1025602, + "Position": { + "X": -780.148, + "Y": 128.25195, + "Z": 97.154175 + }, + "TerritoryId": 622, + "InteractionType": "AcceptQuest", + "Mount": true, + "AetheryteShortcut": "Azim Steppe - Dhoro Iloh", + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": -780.148, + "Y": 128.25195, + "Z": 97.154175 + }, + "TerritoryId": 622, + "MaximumDistance": 50 + } + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1025925, + "Position": { + "X": -702.17444, + "Y": 127.5686, + "Z": 112.291016 + }, + "TerritoryId": 622, + "InteractionType": "Interact", + "TargetTerritoryId": 622, + "Mount": true + }, + { + "DataId": 1025797, + "Position": { + "X": -364.7975, + "Y": 76.98169, + "Z": -579.2172 + }, + "TerritoryId": 622, + "InteractionType": "Interact", + "Mount": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1025798, + "Position": { + "X": -366.2318, + "Y": 76.98169, + "Z": -580.31586 + }, + "TerritoryId": 622, + "InteractionType": "Interact", + "RequiredQuestAcceptedJob": ["DoH"] + }, + { + "TerritoryId": 622, + "InteractionType": "Craft", + "ItemId": 22736, + "ItemCount": 2, + "RequiredQuestAcceptedJob": ["DoH"] + }, + { + "TerritoryId": 622, + "InteractionType": "Gather", + "ItemsToGather": [ + { + "ItemId": 22632, + "ItemCount": 1 + } + ], + "RequiredQuestAcceptedJob": ["Miner"] + }, + { + "TerritoryId": 622, + "InteractionType": "Gather", + "ItemsToGather": [ + { + "ItemId": 22658, + "ItemCount": 1 + } + ], + "RequiredQuestAcceptedJob": ["Botanist"] + }, + { + "DataId": 1025602, + "Position": { + "X": -780.148, + "Y": 128.25195, + "Z": 97.154175 + }, + "TerritoryId": 622, + "InteractionType": "CompleteQuest", + "Mount": true, + "AetheryteShortcut": "Azim Steppe - Dhoro Iloh", + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": -780.148, + "Y": 128.25195, + "Z": 97.154175 + }, + "TerritoryId": 622, + "MaximumDistance": 50 + } + } + } + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Allied Societies/Namazu/Dailies/3117_Beat of the Drum.json b/QuestPaths/4.x - Stormblood/Allied Societies/Namazu/Dailies/3117_Beat of the Drum.json new file mode 100644 index 00000000..4e6927c0 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Allied Societies/Namazu/Dailies/3117_Beat of the Drum.json @@ -0,0 +1,134 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "plogon_enjoyer", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1025602, + "Position": { + "X": -780.148, + "Y": 128.25195, + "Z": 97.154175 + }, + "TerritoryId": 622, + "InteractionType": "AcceptQuest", + "Mount": true, + "AetheryteShortcut": "Azim Steppe - Dhoro Iloh", + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": -780.148, + "Y": 128.25195, + "Z": 97.154175 + }, + "TerritoryId": 622, + "MaximumDistance": 50 + } + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1025925, + "Position": { + "X": -702.17444, + "Y": 127.5686, + "Z": 112.291016 + }, + "TerritoryId": 622, + "InteractionType": "Interact", + "TargetTerritoryId": 622, + "Mount": true + }, + { + "DataId": 1025799, + "Position": { + "X": -175.03625, + "Y": 66.81902, + "Z": -437.43042 + }, + "TerritoryId": 622, + "InteractionType": "Interact", + "Mount": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1025800, + "Position": { + "X": -172.74744, + "Y": 67.39905, + "Z": -436.60645 + }, + "TerritoryId": 622, + "InteractionType": "Interact", + "RequiredCurrentJob": ["DoH"] + }, + { + "TerritoryId": 622, + "InteractionType": "Craft", + "ItemId": 22737, + "ItemCount": 1, + "RequiredCurrentJob": ["DoH"] + }, + { + "TerritoryId": 622, + "InteractionType": "Gather", + "ItemsToGather": [ + { + "ItemId": 22633, + "ItemCount": 2 + } + ], + "RequiredQuestAcceptedJob": ["Miner"] + }, + { + "TerritoryId": 622, + "InteractionType": "Gather", + "ItemsToGather": [ + { + "ItemId": 22659, + "ItemCount": 2 + } + ], + "RequiredQuestAcceptedJob": ["Botanist"] + }, + { + "DataId": 1025602, + "Position": { + "X": -780.148, + "Y": 128.25195, + "Z": 97.154175 + }, + "TerritoryId": 622, + "InteractionType": "CompleteQuest", + "Mount": true, + "AetheryteShortcut": "Azim Steppe - Dhoro Iloh", + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": -780.148, + "Y": 128.25195, + "Z": 97.154175 + }, + "TerritoryId": 622, + "MaximumDistance": 50 + } + } + } + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Allied Societies/Namazu/Dailies/3118_Cannot Say Neigh.json b/QuestPaths/4.x - Stormblood/Allied Societies/Namazu/Dailies/3118_Cannot Say Neigh.json new file mode 100644 index 00000000..d3c03fa3 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Allied Societies/Namazu/Dailies/3118_Cannot Say Neigh.json @@ -0,0 +1,109 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "plogon_enjoyer", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1025602, + "Position": { + "X": -780.148, + "Y": 128.25195, + "Z": 97.154175 + }, + "TerritoryId": 622, + "InteractionType": "AcceptQuest", + "Mount": true, + "AetheryteShortcut": "Azim Steppe - Dhoro Iloh", + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": -780.148, + "Y": 128.25195, + "Z": 97.154175 + }, + "TerritoryId": 622, + "MaximumDistance": 50 + } + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1025925, + "Position": { + "X": -702.17444, + "Y": 127.5686, + "Z": 112.291016 + }, + "TerritoryId": 622, + "InteractionType": "Interact", + "TargetTerritoryId": 622, + "Mount": true + }, + { + "DataId": 1025801, + "Position": { + "X": -609.49115, + "Y": 41.834953, + "Z": 139.75732 + }, + "TerritoryId": 622, + "InteractionType": "Interact", + "Mount": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1025802, + "Position": { + "X": -232.89844, + "Y": 55.466682, + "Z": -329.15234 + }, + "TerritoryId": 622, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1025602, + "Position": { + "X": -780.148, + "Y": 128.25195, + "Z": 97.154175 + }, + "TerritoryId": 622, + "InteractionType": "CompleteQuest", + "Mount": true, + "AetheryteShortcut": "Azim Steppe - Dhoro Iloh", + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": -780.148, + "Y": 128.25195, + "Z": 97.154175 + }, + "TerritoryId": 622, + "MaximumDistance": 50 + } + } + } + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Class Quests/BLM/2588_Shades of Shatotto.json b/QuestPaths/4.x - Stormblood/Class Quests/BLM/2588_Shades of Shatotto.json new file mode 100644 index 00000000..fe3c501f --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/BLM/2588_Shades of Shatotto.json @@ -0,0 +1,83 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1006752, + "Position": { + "X": 87.5105, + "Y": 18, + "Z": 113.725464 + }, + "TerritoryId": 131, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 131 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1004597, + "Position": { + "X": -292.10345, + "Y": -2.910112, + "Z": 245.59387 + }, + "TerritoryId": 146, + "InteractionType": "Interact", + "AetheryteShortcut": "Southern Thanalan - Forgotten Springs", + "Fly": true, + "TargetTerritoryId": 146 + }, + { + "DataId": 1020959, + "Position": { + "X": -463.1571, + "Y": -3.164927, + "Z": 61.264893 + }, + "TerritoryId": 146, + "InteractionType": "SinglePlayerDuty" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1006752, + "Position": { + "X": 87.5105, + "Y": 18, + "Z": 113.725464 + }, + "TerritoryId": 131, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ], + "NextQuestId": 2589 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Class Quests/BLM/2589_Golems Gone Wild.json b/QuestPaths/4.x - Stormblood/Class Quests/BLM/2589_Golems Gone Wild.json new file mode 100644 index 00000000..28892d1c --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/BLM/2589_Golems Gone Wild.json @@ -0,0 +1,163 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1006752, + "Position": { + "X": 87.5105, + "Y": 18, + "Z": 113.725464 + }, + "TerritoryId": 131, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 131 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1008543, + "Position": { + "X": -360.00616, + "Y": 1.2644191, + "Z": 459.83057 + }, + "TerritoryId": 153, + "InteractionType": "Interact", + "AetheryteShortcut": "South Shroud - Camp Tranquil", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2007872, + "Position": { + "X": -275.62378, + "Y": 4.8675537, + "Z": 523.76587 + }, + "TerritoryId": 153, + "InteractionType": "Combat", + "EnemySpawnType": "AfterAction", + "Action": "Fire III", + "KillEnemyDataIds": [ + 7232 + ], + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 2007873, + "Position": { + "X": -298.909, + "Y": 11.825684, + "Z": 567.46765 + }, + "TerritoryId": 153, + "InteractionType": "Combat", + "EnemySpawnType": "AfterAction", + "Action": "Fire III", + "KillEnemyDataIds": [ + 7232 + ], + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 2007874, + "Position": { + "X": -310.5974, + "Y": 12.344482, + "Z": 645.777 + }, + "TerritoryId": 153, + "InteractionType": "Combat", + "EnemySpawnType": "AfterAction", + "Action": "Fire III", + "KillEnemyDataIds": [ + 7232 + ], + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1020964, + "Position": { + "X": -348.50085, + "Y": 0.22347936, + "Z": 454.45935 + }, + "TerritoryId": 153, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1020966, + "Position": { + "X": 87.47986, + "Y": 18, + "Z": 113.69495 + }, + "TerritoryId": 131, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ], + "NextQuestId": 2590 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Class Quests/BLM/2590_When the Golems Get Tough.json b/QuestPaths/4.x - Stormblood/Class Quests/BLM/2590_When the Golems Get Tough.json new file mode 100644 index 00000000..a090c4fe --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/BLM/2590_When the Golems Get Tough.json @@ -0,0 +1,155 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1006752, + "Position": { + "X": 87.5105, + "Y": 18, + "Z": 113.725464 + }, + "TerritoryId": 131, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 131 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1021051, + "Position": { + "X": -36.91156, + "Y": 20.090933, + "Z": -679.07227 + }, + "TerritoryId": 156, + "InteractionType": "Interact", + "AetheryteShortcut": "Mor Dhona" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": -335.20407, + "Y": -15.94506, + "Z": -491.67297 + }, + "TerritoryId": 156, + "InteractionType": "WalkTo", + "Fly": true, + "$": "Pathfinding workaround" + }, + { + "DataId": 1021052, + "Position": { + "X": -334.00476, + "Y": -16.18119, + "Z": -490.1961 + }, + "TerritoryId": 156, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2007907, + "Position": { + "X": -321.21765, + "Y": -16.922302, + "Z": -361.6236 + }, + "TerritoryId": 156, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "Position": { + "X": -412.69736, + "Y": -17.148405, + "Z": -361.9313 + }, + "StopDistance": 0.5, + "TerritoryId": 156, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [ + 7233 + ], + "Fly": true + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1021059, + "Position": { + "X": -413.80945, + "Y": -17.148407, + "Z": -362.23395 + }, + "TerritoryId": 156, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1006752, + "Position": { + "X": 87.5105, + "Y": 18, + "Z": 113.725464 + }, + "TerritoryId": 131, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ], + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_JOBBLM650_02590_Q2_000_000", + "Answer": "TEXT_JOBBLM650_02590_A2_000_001" + } + ], + "NextQuestId": 2591 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Class Quests/BLM/2591_Unnatural Selection.json b/QuestPaths/4.x - Stormblood/Class Quests/BLM/2591_Unnatural Selection.json new file mode 100644 index 00000000..f60a1859 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/BLM/2591_Unnatural Selection.json @@ -0,0 +1,143 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1006752, + "Position": { + "X": 87.5105, + "Y": 18, + "Z": 113.725464 + }, + "TerritoryId": 131, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 131 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1021086, + "Position": { + "X": 326.10046, + "Y": 11.181234, + "Z": -8.743469 + }, + "TerritoryId": 145, + "InteractionType": "Interact", + "AetheryteShortcut": "Eastern Thanalan - Camp Drybone", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1021090, + "Position": { + "X": 7.2174683, + "Y": 115.514336, + "Z": -720.7599 + }, + "StopDistance": 0.5, + "TerritoryId": 620, + "InteractionType": "Interact", + "AetheryteShortcut": "Peaks - Ala Gannha", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2007936, + "Position": { + "X": -284.93176, + "Y": 66.20886, + "Z": -679.07227 + }, + "TerritoryId": 620, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 7234 + ], + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1021092, + "Position": { + "X": -266.4073, + "Y": 76.297005, + "Z": -623.1022 + }, + "TerritoryId": 620, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1006753, + "Position": { + "X": 325.063, + "Y": 11.236564, + "Z": -6.2105103 + }, + "TerritoryId": 145, + "InteractionType": "Interact", + "AetheryteShortcut": "Eastern Thanalan - Camp Drybone", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1006752, + "Position": { + "X": 87.5105, + "Y": 18, + "Z": 113.725464 + }, + "TerritoryId": 131, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ], + "NextQuestId": 2592 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Class Quests/BLM/2592_One Golem to Rule Them All.json b/QuestPaths/4.x - Stormblood/Class Quests/BLM/2592_One Golem to Rule Them All.json new file mode 100644 index 00000000..c2ba041e --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/BLM/2592_One Golem to Rule Them All.json @@ -0,0 +1,121 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1006752, + "Position": { + "X": 87.5105, + "Y": 18, + "Z": 113.725464 + }, + "TerritoryId": 131, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 131 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1021097, + "Position": { + "X": -270.37463, + "Y": -29.998833, + "Z": 111.92493 + }, + "TerritoryId": 398, + "InteractionType": "Interact", + "AetheryteShortcut": "The Dravanian Forelands - Anyx Trine", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1011935, + "Position": { + "X": -285.63367, + "Y": 39.04305, + "Z": 53.72693 + }, + "TerritoryId": 398, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1021102, + "Position": { + "X": -287.19012, + "Y": 39.04307, + "Z": 44.47998 + }, + "TerritoryId": 398, + "InteractionType": "SinglePlayerDuty" + } + ] + }, + { + "Sequence": 4 + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1021104, + "Position": { + "X": -267.17023, + "Y": -30.09441, + "Z": 117.54016 + }, + "TerritoryId": 398, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1006752, + "Position": { + "X": 87.5105, + "Y": 18, + "Z": 113.725464 + }, + "TerritoryId": 131, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ] + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Class Quests/BLU/3192_Out of the Blue.json b/QuestPaths/4.x - Stormblood/Class Quests/BLU/3192_Out of the Blue.json new file mode 100644 index 00000000..d39707ce --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/BLU/3192_Out of the Blue.json @@ -0,0 +1,111 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1026928, + "Position": { + "X": -64.34735, + "Y": 18.000334, + "Z": -11.032288 + }, + "TerritoryId": 129, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Limsa Lominsa", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1026929, + "Position": { + "X": -69.87109, + "Y": 43.83883, + "Z": -5.661133 + }, + "TerritoryId": 134, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] Zephyr Gate (Middle La Noscea)" + ], + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1026936, + "Position": { + "X": 170.85522, + "Y": 62.765503, + "Z": 275.25745 + }, + "TerritoryId": 134, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1028430, + "Position": { + "X": 156.63379, + "Y": 12.126303, + "Z": 649.37805 + }, + "TerritoryId": 135, + "InteractionType": "Interact", + "AetheryteShortcut": "Lower La Noscea - Moraby Drydocks" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1026930, + "Position": { + "X": -85.404785, + "Y": 2.5427969, + "Z": 728.542 + }, + "TerritoryId": 135, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1026932, + "Position": { + "X": -105.9129, + "Y": 1.5723714, + "Z": 750.0571 + }, + "StopDistance": 7, + "TerritoryId": 135, + "InteractionType": "CompleteQuest", + "NextQuestId": 3193 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Class Quests/BLU/3193_Blue Leading the Blue.json b/QuestPaths/4.x - Stormblood/Class Quests/BLU/3193_Blue Leading the Blue.json new file mode 100644 index 00000000..fdf1434c --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/BLU/3193_Blue Leading the Blue.json @@ -0,0 +1,99 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "TerritoryId": 135, + "InteractionType": "EquipItem", + "ItemId": 22746, + "AetheryteShortcut": "Lower La Noscea - Moraby Drydocks", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + }, + "StepIf": { + "Item": { + "NotInInventory": true + } + } + } + }, + { + "TerritoryId": 135, + "InteractionType": "EquipItem", + "ItemId": 24587, + "SkipConditions": { + "StepIf": { + "Item": { + "NotInInventory": true + } + } + } + }, + { + "TerritoryId": 135, + "InteractionType": "EquipRecommended" + }, + { + "DataId": 1026932, + "Position": { + "X": -105.9129, + "Y": 1.5723714, + "Z": 750.0571 + }, + "StopDistance": 7, + "TerritoryId": 135, + "InteractionType": "AcceptQuest", + "Fly": true + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1026934, + "Position": { + "X": -108.04913, + "Y": 1.5026048, + "Z": 749.1415 + }, + "TerritoryId": 135, + "InteractionType": "Action", + "Action": "Water Cannon" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1026937, + "Position": { + "X": 65.7511, + "Y": 14.005002, + "Z": 90.440186 + }, + "TerritoryId": 131, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ], + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_JOBAOZ010_03193_Q1_100_002", + "Yes": true + } + ], + "NextQuestId": 3194 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Class Quests/BLU/3194_Blue Collar Work.json b/QuestPaths/4.x - Stormblood/Class Quests/BLU/3194_Blue Collar Work.json new file mode 100644 index 00000000..27d9a9f8 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/BLU/3194_Blue Collar Work.json @@ -0,0 +1,113 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1026852, + "Position": { + "X": 63.126587, + "Y": 14.005002, + "Z": 89.86035 + }, + "StopDistance": 5, + "TerritoryId": 131, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 131 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1026938, + "Position": { + "X": 101.27405, + "Y": 7.3536396, + "Z": 600.2135 + }, + "TerritoryId": 141, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Ul'dah] Weavers' Guild", + "[Ul'dah] Gate of Thal (Central Thanalan)" + ], + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2009670, + "Position": { + "X": 163.59192, + "Y": 3.7078857, + "Z": 657.0991 + }, + "StopDistance": 0.5, + "TerritoryId": 141, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 9836 + ], + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1026938, + "Position": { + "X": 101.27405, + "Y": 7.3536396, + "Z": 600.2135 + }, + "TerritoryId": 141, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1026852, + "Position": { + "X": 63.126587, + "Y": 14.005002, + "Z": 89.86035 + }, + "TerritoryId": 131, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ], + "NextQuestId": 3195 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Class Quests/BLU/3195_Why They Call It the Blues.json b/QuestPaths/4.x - Stormblood/Class Quests/BLU/3195_Why They Call It the Blues.json new file mode 100644 index 00000000..525e908e --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/BLU/3195_Why They Call It the Blues.json @@ -0,0 +1,110 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1026852, + "Position": { + "X": 63.126587, + "Y": 14.005002, + "Z": 89.86035 + }, + "TerritoryId": 131, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 131 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1026941, + "Position": { + "X": 105.02783, + "Y": 4.0333576, + "Z": 451.0719 + }, + "TerritoryId": 141, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Ul'dah] Weavers' Guild", + "[Ul'dah] Gate of Thal (Central Thanalan)" + ], + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2009671, + "Position": { + "X": 145.52527, + "Y": 9.567322, + "Z": 391.10388 + }, + "TerritoryId": 141, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 9837 + ], + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1026941, + "Position": { + "X": 105.02783, + "Y": 4.0333576, + "Z": 451.0719 + }, + "TerritoryId": 141, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1026852, + "Position": { + "X": 63.126587, + "Y": 14.005002, + "Z": 89.86035 + }, + "TerritoryId": 131, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ], + "NextQuestId": 3196 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Class Quests/BLU/3196_Scream Blue Murder.json b/QuestPaths/4.x - Stormblood/Class Quests/BLU/3196_Scream Blue Murder.json new file mode 100644 index 00000000..62fad7d6 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/BLU/3196_Scream Blue Murder.json @@ -0,0 +1,130 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1026852, + "Position": { + "X": 63.126587, + "Y": 14.005002, + "Z": 89.86035 + }, + "TerritoryId": 131, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 131 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1026945, + "Position": { + "X": -108.415405, + "Y": 41, + "Z": 76.06616 + }, + "TerritoryId": 131, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Ul'dah] Weavers' Guild", + "[Ul'dah] Alchemists' Guild" + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1026946, + "Position": { + "X": 392.69092, + "Y": 87.19347, + "Z": 98.10022 + }, + "TerritoryId": 140, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Ul'dah] Alchemists' Guild", + "[Ul'dah] Gate of the Sultana (Western Thanalan)" + ], + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "Position": { + "X": 363.6008, + "Y": 83.40785, + "Z": 92.904495 + }, + "StopDistance": 0.5, + "TerritoryId": 140, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [ + 9838, + 9839 + ] + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1026948, + "Position": { + "X": 359.63977, + "Y": 83.013695, + "Z": 92.24072 + }, + "StopDistance": 5, + "TerritoryId": 140, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1026852, + "Position": { + "X": 63.126587, + "Y": 14.005002, + "Z": 89.86035 + }, + "TerritoryId": 131, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ], + "NextQuestId": 3197 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Class Quests/BLU/3197_Blue Gold.json b/QuestPaths/4.x - Stormblood/Class Quests/BLU/3197_Blue Gold.json new file mode 100644 index 00000000..ab9cd8ae --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/BLU/3197_Blue Gold.json @@ -0,0 +1,98 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1026924, + "Position": { + "X": 64.46936, + "Y": 14.005002, + "Z": 88.70068 + }, + "TerritoryId": 131, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 131 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1026951, + "Position": { + "X": 196.67346, + "Y": 52.774567, + "Z": -38.895264 + }, + "TerritoryId": 140, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 9840 + ], + "AetheryteShortcut": "Western Thanalan - Horizon", + "Fly": true, + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_JOBAOZ400_03197_Q1_000_013", + "Yes": true + } + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1026951, + "Position": { + "X": 196.67346, + "Y": 52.774567, + "Z": -38.895264 + }, + "TerritoryId": 140, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1026953, + "Position": { + "X": 65.59851, + "Y": 14.005001, + "Z": 91.75244 + }, + "TerritoryId": 131, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ], + "NextQuestId": 3198 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Class Quests/BLU/3198_The Real Folk Blues.json b/QuestPaths/4.x - Stormblood/Class Quests/BLU/3198_The Real Folk Blues.json new file mode 100644 index 00000000..be76c469 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/BLU/3198_The Real Folk Blues.json @@ -0,0 +1,87 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1026924, + "Position": { + "X": 64.46936, + "Y": 14.005002, + "Z": 88.70068 + }, + "StopDistance": 5, + "TerritoryId": 131, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 131 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1026955, + "Position": { + "X": -10.055725, + "Y": 47, + "Z": -29.800903 + }, + "TerritoryId": 147, + "InteractionType": "Interact", + "AetheryteShortcut": "Northern Thanalan - Ceruleum Processing Plant" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1026937, + "Position": { + "X": 65.7511, + "Y": 14.005002, + "Z": 90.440186 + }, + "TerritoryId": 131, + "InteractionType": "Interact", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1026937, + "Position": { + "X": 65.7511, + "Y": 14.005002, + "Z": 90.440186 + }, + "TerritoryId": 131, + "InteractionType": "CompleteQuest", + "NextQuestId": 3199 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Class Quests/BLU/3199_Turning Over a Blue Leaf.json b/QuestPaths/4.x - Stormblood/Class Quests/BLU/3199_Turning Over a Blue Leaf.json new file mode 100644 index 00000000..85121f2d --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/BLU/3199_Turning Over a Blue Leaf.json @@ -0,0 +1,52 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1026924, + "Position": { + "X": 64.46936, + "Y": 14.005002, + "Z": 88.70068 + }, + "StopDistance": 5, + "TerritoryId": 131, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 131 + ] + } + } + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1026852, + "Position": { + "X": 63.126587, + "Y": 14.005002, + "Z": 89.86035 + }, + "StopDistance": 5, + "TerritoryId": 131, + "InteractionType": "CompleteQuest", + "NextQuestId": 3732 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Class Quests/DRG/2910_Friends through Eternity.json b/QuestPaths/4.x - Stormblood/Class Quests/DRG/2910_Friends through Eternity.json new file mode 100644 index 00000000..dcd43d99 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/DRG/2910_Friends through Eternity.json @@ -0,0 +1,83 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "Position": { + "X": 215.65454, + "Y": 222.1, + "Z": 345.1806 + }, + "TerritoryId": 155, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + }, + "$": "Alberic" + }, + { + "DataId": 1006748, + "Position": { + "X": 217.88354, + "Y": 222, + "Z": 345.3269 + }, + "TerritoryId": 155, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2008547, + "Position": { + "X": 47.592896, + "Y": -37.003174, + "Z": -297.71887 + }, + "TerritoryId": 398, + "InteractionType": "Interact", + "AetheryteShortcut": "The Dravanian Forelands - Tailfeather", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": 215.65454, + "Y": 222.1, + "Z": 345.1806 + }, + "TerritoryId": 155, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", + "Fly": true, + "$": "Alberic" + }, + { + "DataId": 1006748, + "Position": { + "X": 217.88354, + "Y": 222, + "Z": 345.3269 + }, + "TerritoryId": 155, + "InteractionType": "CompleteQuest", + "NextQuestId": 2911 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Class Quests/DRG/2911_Drowsy Dragons.json b/QuestPaths/4.x - Stormblood/Class Quests/DRG/2911_Drowsy Dragons.json new file mode 100644 index 00000000..a6e1303b --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/DRG/2911_Drowsy Dragons.json @@ -0,0 +1,138 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "Position": { + "X": 215.65454, + "Y": 222.1, + "Z": 345.1806 + }, + "TerritoryId": 155, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + }, + "$": "Alberic" + }, + { + "DataId": 1006748, + "Position": { + "X": 217.88354, + "Y": 222, + "Z": 345.3269 + }, + "TerritoryId": 155, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1022543, + "Position": { + "X": 46.951904, + "Y": -37.000004, + "Z": -298.48175 + }, + "TerritoryId": 398, + "InteractionType": "Interact", + "AetheryteShortcut": "The Dravanian Forelands - Tailfeather", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2008548, + "Position": { + "X": 80.91858, + "Y": 68.16199, + "Z": -696.00977 + }, + "TerritoryId": 612, + "InteractionType": "Interact", + "AetheryteShortcut": "Rhalgr's Reach", + "AethernetShortcut": [ + "[Rhalgr's Reach] Aetheryte Plaza", + "[Rhalgr's Reach] Fringes Gate" + ], + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "Position": { + "X": 91.50208, + "Y": 68.1708, + "Z": -722.4152 + }, + "StopDistance": 0.5, + "TerritoryId": 612, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [ + 8046 + ] + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1022547, + "Position": { + "X": 92.39331, + "Y": 68.1708, + "Z": -712.8557 + }, + "TerritoryId": 612, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": 215.65454, + "Y": 222.1, + "Z": 345.1806 + }, + "TerritoryId": 155, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", + "Fly": true, + "$": "Alberic" + }, + { + "DataId": 1006748, + "Position": { + "X": 217.88354, + "Y": 222, + "Z": 345.3269 + }, + "TerritoryId": 155, + "InteractionType": "CompleteQuest", + "NextQuestId": 2912 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Class Quests/DRG/2912_Serpent and the Sea of Rubies.json b/QuestPaths/4.x - Stormblood/Class Quests/DRG/2912_Serpent and the Sea of Rubies.json new file mode 100644 index 00000000..879162c1 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/DRG/2912_Serpent and the Sea of Rubies.json @@ -0,0 +1,180 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "Position": { + "X": 215.65454, + "Y": 222.1, + "Z": 345.1806 + }, + "TerritoryId": 155, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + }, + "$": "Alberic" + }, + { + "DataId": 1006748, + "Position": { + "X": 217.88354, + "Y": 222, + "Z": 345.3269 + }, + "TerritoryId": 155, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1018982, + "Position": { + "X": -83.08539, + "Y": 18.05, + "Z": -191.14978 + }, + "TerritoryId": 628, + "InteractionType": "Interact", + "AetheryteShortcut": "Kugane", + "AethernetShortcut": [ + "[Kugane] Aetheryte Plaza", + "[Kugane] Bokairo Inn" + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1022550, + "Position": { + "X": -728.9082, + "Y": 0.34026724, + "Z": -427.9698 + }, + "TerritoryId": 613, + "InteractionType": "Interact", + "AetheryteShortcut": "Ruby Sea - Onokoro", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1022551, + "Position": { + "X": -772.549, + "Y": 4.7634416, + "Z": -504.29544 + }, + "TerritoryId": 613, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 2008550, + "Position": { + "X": -711.20776, + "Y": 0.44250488, + "Z": -545.4337 + }, + "TerritoryId": 613, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "Position": { + "X": 657.20935, + "Y": 1.1933115, + "Z": -799.82635 + }, + "TerritoryId": 613, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Ruby Sea - Onokoro", + "Fly": true + }, + { + "DataId": 1022552, + "Position": { + "X": 657.7401, + "Y": 1.0385457, + "Z": -797.8485 + }, + "TerritoryId": 613, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 7488 + ] + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1022552, + "Position": { + "X": 657.7401, + "Y": 1.0385457, + "Z": -797.8485 + }, + "TerritoryId": 613, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1022553, + "Position": { + "X": -92.607056, + "Y": 18.9999, + "Z": -194.41522 + }, + "TerritoryId": 628, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Kugane", + "AethernetShortcut": [ + "[Kugane] Aetheryte Plaza", + "[Kugane] Bokairo Inn" + ], + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_JOBDRG650_02912_Q1_000_000", + "Answer": "TEXT_JOBDRG650_02912_A1_000_001" + } + ], + "NextQuestId": 2913 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Class Quests/DRG/2913_Dark as the Night Sky.json b/QuestPaths/4.x - Stormblood/Class Quests/DRG/2913_Dark as the Night Sky.json new file mode 100644 index 00000000..30db4f69 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/DRG/2913_Dark as the Night Sky.json @@ -0,0 +1,193 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1022553, + "Position": { + "X": -92.607056, + "Y": 18.9999, + "Z": -194.41522 + }, + "TerritoryId": 628, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Kugane", + "AethernetShortcut": [ + "[Kugane] Aetheryte Plaza", + "[Kugane] Bokairo Inn" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1022748, + "Position": { + "X": 13.046387, + "Y": -7.961876, + "Z": -99.77875 + }, + "TerritoryId": 628, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Kugane] Bokairo Inn", + "[Kugane] Rakuza District" + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1022560, + "Position": { + "X": 528.4656, + "Y": -19.450546, + "Z": 273.33484 + }, + "TerritoryId": 622, + "InteractionType": "Interact", + "AetheryteShortcut": "Azim Steppe - Reunion", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1022554, + "Position": { + "X": 554.9553, + "Y": -19.411264, + "Z": 274.92175 + }, + "TerritoryId": 622, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 1022555, + "Position": { + "X": 545.4337, + "Y": -19.505648, + "Z": 309.68176 + }, + "TerritoryId": 622, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 1022556, + "Position": { + "X": 570.3364, + "Y": -19.50564, + "Z": 319.11182 + }, + "TerritoryId": 622, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1022560, + "Position": { + "X": 528.4656, + "Y": -19.450546, + "Z": 273.33484 + }, + "TerritoryId": 622, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1022561, + "Position": { + "X": -288.4718, + "Y": 60.053967, + "Z": -328.1148 + }, + "TerritoryId": 622, + "InteractionType": "SinglePlayerDuty", + "Fly": true + } + ] + }, + { + "Sequence": 6 + }, + { + "Sequence": 7, + "Steps": [ + { + "DataId": 1022569, + "Position": { + "X": -309.5293, + "Y": 61.288292, + "Z": -319.50867 + }, + "TerritoryId": 622, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1022560, + "Position": { + "X": 528.4656, + "Y": -19.450546, + "Z": 273.33484 + }, + "TerritoryId": 622, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Azim Steppe - Reunion", + "Fly": true, + "NextQuestId": 2914 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Class Quests/DRG/2914_Dragon Sound.json b/QuestPaths/4.x - Stormblood/Class Quests/DRG/2914_Dragon Sound.json new file mode 100644 index 00000000..3561d3c0 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/DRG/2914_Dragon Sound.json @@ -0,0 +1,59 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1022560, + "Position": { + "X": 528.4656, + "Y": -19.450546, + "Z": 273.33484 + }, + "TerritoryId": 622, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Azim Steppe - Reunion", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1022562, + "Position": { + "X": -494.3466, + "Y": 71.278076, + "Z": -509.51404 + }, + "TerritoryId": 622, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1022562, + "Position": { + "X": -494.3466, + "Y": 71.278076, + "Z": -509.51404 + }, + "StopDistance": 7, + "TerritoryId": 622, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Class Quests/PLD/2571_Tournament of the Century.json b/QuestPaths/4.x - Stormblood/Class Quests/PLD/2571_Tournament of the Century.json new file mode 100644 index 00000000..ad10e1a6 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/PLD/2571_Tournament of the Century.json @@ -0,0 +1,171 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1006747, + "Position": { + "X": -20.828613, + "Y": 29.999964, + "Z": -2.4262085 + }, + "TerritoryId": 131, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] The Chamber of Rule" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 131 + ] + } + }, + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_JOBPLD601_02571_Q1_000_000", + "Answer": "TEXT_JOBPLD601_02571_A1_000_001" + } + ] + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1021342, + "Position": { + "X": -25.558899, + "Y": 38.010006, + "Z": 82.6886 + }, + "TerritoryId": 131, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1021343, + "Position": { + "X": -75.60846, + "Y": 6.9845715, + "Z": 6.210388 + }, + "TerritoryId": 131, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Ul'dah] The Chamber of Rule", + "[Ul'dah] Gladiators' Guild" + ], + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 1021345, + "Position": { + "X": -69.96271, + "Y": 7.0740614, + "Z": -10.696594 + }, + "TerritoryId": 131, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, + { + "DataId": 1021346, + "Position": { + "X": -96.69641, + "Y": 6.9845695, + "Z": -9.506409 + }, + "TerritoryId": 131, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 16 + ] + }, + { + "DataId": 1021347, + "Position": { + "X": -105.638245, + "Y": 6.9839897, + "Z": 3.0059814 + }, + "TerritoryId": 131, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 8 + ] + }, + { + "DataId": 1021344, + "Position": { + "X": -96.910095, + "Y": 6.984566, + "Z": 15.0911255 + }, + "TerritoryId": 131, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1001739, + "Position": { + "X": -94.529724, + "Y": 6.5000024, + "Z": 39.81079 + }, + "TerritoryId": 131, + "InteractionType": "CompleteQuest", + "NextQuestId": 2572 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Class Quests/PLD/2572_In Thal's Name.json b/QuestPaths/4.x - Stormblood/Class Quests/PLD/2572_In Thal's Name.json new file mode 100644 index 00000000..da7e7c3c --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/PLD/2572_In Thal's Name.json @@ -0,0 +1,99 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1001739, + "Position": { + "X": -94.529724, + "Y": 6.5000024, + "Z": 39.81079 + }, + "TerritoryId": 131, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Gladiators' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 131 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2008101, + "Position": { + "X": -82.44458, + "Y": 1.9378662, + "Z": 60.77661 + }, + "TerritoryId": 131, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1021271, + "Position": { + "X": -87.174866, + "Y": 1.9499679, + "Z": 57.358643 + }, + "TerritoryId": 131, + "InteractionType": "SinglePlayerDuty" + } + ] + }, + { + "Sequence": 3 + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1021275, + "Position": { + "X": -84.67236, + "Y": 1.9500066, + "Z": 60.868164 + }, + "StopDistance": 5, + "TerritoryId": 131, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1001739, + "Position": { + "X": -94.529724, + "Y": 6.5000024, + "Z": 39.81079 + }, + "TerritoryId": 131, + "InteractionType": "CompleteQuest", + "NextQuestId": 2573 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Class Quests/PLD/2573_In Nald's Name.json b/QuestPaths/4.x - Stormblood/Class Quests/PLD/2573_In Nald's Name.json new file mode 100644 index 00000000..a89052e1 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/PLD/2573_In Nald's Name.json @@ -0,0 +1,151 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1001739, + "Position": { + "X": -94.529724, + "Y": 6.5000024, + "Z": 39.81079 + }, + "TerritoryId": 131, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Gladiators' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 131 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1021364, + "Position": { + "X": -84.36719, + "Y": 6.9845676, + "Z": 11.276367 + }, + "TerritoryId": 131, + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_JOBPLD650_02573_Q1_000_011", + "Yes": true + } + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1021365, + "Position": { + "X": -94.010864, + "Y": 6.9845667, + "Z": 15.548889 + }, + "TerritoryId": 131, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 1021366, + "Position": { + "X": -99.83978, + "Y": 6.9845657, + "Z": 14.297607 + }, + "TerritoryId": 131, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1001739, + "Position": { + "X": -94.529724, + "Y": 6.5000024, + "Z": 39.81079 + }, + "TerritoryId": 131, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 2008187, + "Position": { + "X": 22.2323, + "Y": 7.1869507, + "Z": -101.24359 + }, + "TerritoryId": 130, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Ul'dah] Gladiators' Guild", + "[Ul'dah] Adventurers' Guild" + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1001739, + "Position": { + "X": -94.529724, + "Y": 6.5000024, + "Z": 39.81079 + }, + "TerritoryId": 131, + "InteractionType": "CompleteQuest", + "AethernetShortcut": [ + "[Ul'dah] Adventurers' Guild", + "[Ul'dah] Gladiators' Guild" + ], + "NextQuestId": 2574 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Class Quests/PLD/2574_Fade to Black Lotus.json b/QuestPaths/4.x - Stormblood/Class Quests/PLD/2574_Fade to Black Lotus.json new file mode 100644 index 00000000..05b93b70 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/PLD/2574_Fade to Black Lotus.json @@ -0,0 +1,241 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1001739, + "Position": { + "X": -94.529724, + "Y": 6.5000024, + "Z": 39.81079 + }, + "TerritoryId": 131, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Gladiators' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 131 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1001739, + "Position": { + "X": -94.529724, + "Y": 6.5000024, + "Z": 39.81079 + }, + "TerritoryId": 131, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1021271, + "Position": { + "X": -87.174866, + "Y": 1.9499679, + "Z": 57.358643 + }, + "TerritoryId": 131, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "Position": { + "X": 64.84746, + "Y": 7.9209166, + "Z": -37.27604 + }, + "TerritoryId": 131, + "InteractionType": "WalkTo", + "RestartNavigationIfCancelled": false, + "AethernetShortcut": [ + "[Ul'dah] Gladiators' Guild", + "[Ul'dah] Sapphire Avenue Exchange" + ] + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1021379, + "Position": { + "X": 81.01013, + "Y": 8, + "Z": -73.624756 + }, + "TerritoryId": 131, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 1021378, + "Position": { + "X": 97.45935, + "Y": 7.9999995, + "Z": -11.947815 + }, + "TerritoryId": 131, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 1021380, + "Position": { + "X": 105.6687, + "Y": 8, + "Z": 4.714966 + }, + "TerritoryId": 131, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1021381, + "Position": { + "X": 138.53662, + "Y": 4, + "Z": 51.377075 + }, + "TerritoryId": 131, + "InteractionType": "Say", + "ChatMessage": { + "Key": "TEXT_JOBPLD680_02574_SYSTEM_000_084" + } + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "Position": { + "X": 165.3437, + "Y": 4.014847, + "Z": 46.210514 + }, + "TerritoryId": 131, + "InteractionType": "WalkTo", + "SkipConditions": { + "StepIf": { + "InTerritory": [ + 141 + ] + } + } + }, + { + "DataId": 1021382, + "Position": { + "X": 282.39868, + "Y": 15.414177, + "Z": 513.1456 + }, + "TerritoryId": 141, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 7237, + 7238 + ], + "Fly": true, + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_JOBPLD680_02574_Q1_000_000", + "Answer": "TEXT_JOBPLD680_02574_A1_000_002" + } + ] + } + ] + }, + { + "Sequence": 7, + "Steps": [ + { + "DataId": 1021383, + "Position": { + "X": 284.71802, + "Y": 15.770843, + "Z": 512.5658 + }, + "StopDistance": 7, + "TerritoryId": 141, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1001739, + "Position": { + "X": -94.529724, + "Y": 6.5000024, + "Z": 39.81079 + }, + "TerritoryId": 131, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Gladiators' Guild" + ], + "NextQuestId": 2575 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Class Quests/PLD/2575_Raising the Sword.json b/QuestPaths/4.x - Stormblood/Class Quests/PLD/2575_Raising the Sword.json new file mode 100644 index 00000000..54557307 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/PLD/2575_Raising the Sword.json @@ -0,0 +1,73 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1001739, + "Position": { + "X": -94.529724, + "Y": 6.5000024, + "Z": 39.81079 + }, + "TerritoryId": 131, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Gladiators' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 131 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1021271, + "Position": { + "X": -87.174866, + "Y": 1.9499679, + "Z": 57.358643 + }, + "TerritoryId": 131, + "InteractionType": "SinglePlayerDuty" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": -95.62987, + "Y": 6.500003, + "Z": 41.749443 + }, + "TerritoryId": 131, + "InteractionType": "WalkTo" + }, + { + "DataId": 1001739, + "Position": { + "X": -94.529724, + "Y": 6.5000024, + "Z": 39.81079 + }, + "TerritoryId": 131, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Class Quests/SCH/2923_The Vanishing Act.json b/QuestPaths/4.x - Stormblood/Class Quests/SCH/2923_The Vanishing Act.json new file mode 100644 index 00000000..b5150038 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/SCH/2923_The Vanishing Act.json @@ -0,0 +1,128 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1006757, + "Position": { + "X": -4.4709473, + "Y": 44.999886, + "Z": -250.56848 + }, + "TerritoryId": 128, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] Marauders' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 128 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": 207.68561, + "Y": -3.1246834, + "Z": 42.986313 + }, + "TerritoryId": 139, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Upper La Noscea - Camp Bronze Lake", + "Fly": true + }, + { + "DataId": 1013135, + "Position": { + "X": 206.0426, + "Y": -3.111818, + "Z": 41.94702 + }, + "TerritoryId": 139, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1009552, + "Position": { + "X": 96.025024, + "Y": 40.247147, + "Z": 60.68506 + }, + "TerritoryId": 128, + "InteractionType": "Interact", + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] The Aftcastle" + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "TerritoryId": 145, + "InteractionType": "UseItem", + "ItemId": 30362, + "TargetTerritoryId": 140 + }, + { + "DataId": 1021904, + "Position": { + "X": -480.5829, + "Y": 23.11398, + "Z": -315.81604 + }, + "TerritoryId": 140, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": 207.68561, + "Y": -3.1246834, + "Z": 42.986313 + }, + "TerritoryId": 139, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Upper La Noscea - Camp Bronze Lake", + "Fly": true + }, + { + "DataId": 1013135, + "Position": { + "X": 206.0426, + "Y": -3.111818, + "Z": 41.94702 + }, + "TerritoryId": 139, + "InteractionType": "CompleteQuest", + "NextQuestId": 2924 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Class Quests/SCH/2924_A Safe Place to Hide.json b/QuestPaths/4.x - Stormblood/Class Quests/SCH/2924_A Safe Place to Hide.json new file mode 100644 index 00000000..e5c3bb85 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/SCH/2924_A Safe Place to Hide.json @@ -0,0 +1,174 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "Position": { + "X": 207.68561, + "Y": -3.1246834, + "Z": 42.986313 + }, + "TerritoryId": 139, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Upper La Noscea - Camp Bronze Lake", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + }, + { + "DataId": 1013135, + "Position": { + "X": 206.0426, + "Y": -3.111818, + "Z": 41.94702 + }, + "TerritoryId": 139, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1006757, + "Position": { + "X": -4.4709473, + "Y": 44.999886, + "Z": -250.56848 + }, + "TerritoryId": 128, + "InteractionType": "Interact", + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] Marauders' Guild" + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1021905, + "Position": { + "X": -220.17242, + "Y": 20.83071, + "Z": 353.16992 + }, + "TerritoryId": 153, + "InteractionType": "Interact", + "AetheryteShortcut": "South Shroud - Camp Tranquil" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2008554, + "Position": { + "X": -230.18237, + "Y": 1.3274536, + "Z": 406.3629 + }, + "TerritoryId": 153, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 2008555, + "Position": { + "X": -182.8794, + "Y": 0.3508911, + "Z": 463.76733 + }, + "TerritoryId": 153, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 2008556, + "Position": { + "X": -81.71216, + "Y": 1.2054443, + "Z": 395.71216 + }, + "TerritoryId": 153, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "Position": { + "X": -69.98173, + "Y": 0.9259782, + "Z": 361.20602 + }, + "TerritoryId": 153, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [ + 7237, + 7494, + 7499 + ] + } + ] + }, + { + "Sequence": 7, + "Steps": [ + { + "DataId": 1021910, + "Position": { + "X": -70.115234, + "Y": 0.94099265, + "Z": 360.3723 + }, + "TerritoryId": 153, + "InteractionType": "Action", + "Action": "Adloquium" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1021911, + "Position": { + "X": -220.84387, + "Y": 21.261763, + "Z": 363.39355 + }, + "TerritoryId": 153, + "InteractionType": "CompleteQuest", + "Fly": true, + "NextQuestId": 2925 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Class Quests/SCH/2925_In Loving Memory.json b/QuestPaths/4.x - Stormblood/Class Quests/SCH/2925_In Loving Memory.json new file mode 100644 index 00000000..69e065ce --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/SCH/2925_In Loving Memory.json @@ -0,0 +1,60 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1021911, + "Position": { + "X": -220.84387, + "Y": 21.261763, + "Z": 363.39355 + }, + "TerritoryId": 153, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "South Shroud - Camp Tranquil", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1021913, + "Position": { + "X": 161.39453, + "Y": 37.625904, + "Z": 169.17664 + }, + "TerritoryId": 153, + "InteractionType": "SinglePlayerDuty", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1021911, + "Position": { + "X": -220.84387, + "Y": 21.261763, + "Z": 363.39355 + }, + "StopDistance": 5, + "TerritoryId": 153, + "InteractionType": "CompleteQuest", + "NextQuestId": 2926 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Class Quests/SCH/2926_The Chase.json b/QuestPaths/4.x - Stormblood/Class Quests/SCH/2926_The Chase.json new file mode 100644 index 00000000..9aa571e5 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/SCH/2926_The Chase.json @@ -0,0 +1,139 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1021911, + "Position": { + "X": -220.84387, + "Y": 21.261763, + "Z": 363.39355 + }, + "StopDistance": 5, + "TerritoryId": 153, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "South Shroud - Camp Tranquil", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": 207.68561, + "Y": -3.1246834, + "Z": 42.986313 + }, + "TerritoryId": 139, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Upper La Noscea - Camp Bronze Lake", + "Fly": true + }, + { + "DataId": 1013135, + "Position": { + "X": 206.0426, + "Y": -3.111818, + "Z": 41.94702 + }, + "TerritoryId": 139, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1021911, + "Position": { + "X": -220.84387, + "Y": 21.261763, + "Z": 363.39355 + }, + "TerritoryId": 153, + "InteractionType": "Interact", + "AetheryteShortcut": "South Shroud - Camp Tranquil" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2008557, + "Position": { + "X": -160.08246, + "Y": 1.9683228, + "Z": 175.52454 + }, + "TerritoryId": 153, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 2008558, + "Position": { + "X": -150.19464, + "Y": 4.714966, + "Z": 52.109497 + }, + "TerritoryId": 153, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 2008559, + "Position": { + "X": -250.5379, + "Y": 16.830688, + "Z": 19.21106 + }, + "TerritoryId": 153, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 6621 + ], + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1021911, + "Position": { + "X": -220.84387, + "Y": 21.261763, + "Z": 363.39355 + }, + "TerritoryId": 153, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "South Shroud - Camp Tranquil", + "NextQuestId": 2927 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Class Quests/SCH/2927_Our Unsung Heroes.json b/QuestPaths/4.x - Stormblood/Class Quests/SCH/2927_Our Unsung Heroes.json new file mode 100644 index 00000000..1d490ba6 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/SCH/2927_Our Unsung Heroes.json @@ -0,0 +1,143 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1021911, + "Position": { + "X": -220.84387, + "Y": 21.261763, + "Z": 363.39355 + }, + "TerritoryId": 153, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "South Shroud - Camp Tranquil", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1021917, + "Position": { + "X": -343.80103, + "Y": -0.3600377, + "Z": 448.1117 + }, + "TerritoryId": 153, + "InteractionType": "SinglePlayerDuty", + "Fly": true + } + ] + }, + { + "Sequence": 2 + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1021911, + "Position": { + "X": -220.84387, + "Y": 21.261763, + "Z": 363.39355 + }, + "TerritoryId": 153, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "Position": { + "X": 207.68561, + "Y": -3.1246834, + "Z": 42.986313 + }, + "TerritoryId": 139, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Upper La Noscea - Camp Bronze Lake", + "Fly": true + }, + { + "DataId": 1013135, + "Position": { + "X": 206.0426, + "Y": -3.111818, + "Z": 41.94702 + }, + "TerritoryId": 139, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1013135, + "Position": { + "X": 206.0426, + "Y": -3.111818, + "Z": 41.94702 + }, + "TerritoryId": 139, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 1021919, + "Position": { + "X": 207.53784, + "Y": -3.049824, + "Z": 43.22876 + }, + "TerritoryId": 139, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1021918, + "Position": { + "X": 206.80542, + "Y": -3.065022, + "Z": 43.83911 + }, + "TerritoryId": 139, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Class Quests/SMN/2625_A Book with Bite.json b/QuestPaths/4.x - Stormblood/Class Quests/SMN/2625_A Book with Bite.json new file mode 100644 index 00000000..c5ad956d --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/SMN/2625_A Book with Bite.json @@ -0,0 +1,123 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1006756, + "Position": { + "X": -16.891846, + "Y": 10.17425, + "Z": -246.87573 + }, + "TerritoryId": 133, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Mih Khetto's Amphitheatre" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 133 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1006725, + "Position": { + "X": 446.82983, + "Y": -5.306207, + "Z": -465.72064 + }, + "TerritoryId": 156, + "InteractionType": "Interact", + "AetheryteShortcut": "Mor Dhona", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1022761, + "Position": { + "X": 5.996765, + "Y": 20.712559, + "Z": -659.26605 + }, + "TerritoryId": 156, + "InteractionType": "Interact", + "AetheryteShortcut": "Mor Dhona" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1022762, + "Position": { + "X": 385.39697, + "Y": 23.711746, + "Z": -712.7031 + }, + "TerritoryId": 156, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 7227 + ], + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1022763, + "Position": { + "X": 384.0542, + "Y": 23.602556, + "Z": -711.20776 + }, + "TerritoryId": 156, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1006756, + "Position": { + "X": -16.891846, + "Y": 10.17425, + "Z": -246.87573 + }, + "TerritoryId": 133, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Mih Khetto's Amphitheatre" + ], + "NextQuestId": 2626 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Class Quests/SMN/2626_Performing for Prin.json b/QuestPaths/4.x - Stormblood/Class Quests/SMN/2626_Performing for Prin.json new file mode 100644 index 00000000..b7282152 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/SMN/2626_Performing for Prin.json @@ -0,0 +1,144 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1006756, + "Position": { + "X": -16.891846, + "Y": 10.17425, + "Z": -246.87573 + }, + "TerritoryId": 133, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Mih Khetto's Amphitheatre" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 133 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1022765, + "Position": { + "X": 49.66809, + "Y": 3.9999626, + "Z": 429.22095 + }, + "TerritoryId": 147, + "InteractionType": "Interact", + "AetheryteShortcut": "Northern Thanalan - Camp Bluefog" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1022770, + "Position": { + "X": 82.38342, + "Y": 14.362329, + "Z": 221.20996 + }, + "TerritoryId": 147, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 7228 + ], + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1022772, + "Position": { + "X": 87.907104, + "Y": 14.713098, + "Z": 222.03394 + }, + "TerritoryId": 147, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 7229 + ] + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1022772, + "Position": { + "X": 87.907104, + "Y": 14.713098, + "Z": 222.03394 + }, + "TerritoryId": 147, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 7230 + ] + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1022773, + "Position": { + "X": 74.66235, + "Y": 14.033362, + "Z": 228.5343 + }, + "TerritoryId": 147, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1006756, + "Position": { + "X": -16.891846, + "Y": 10.17425, + "Z": -246.87573 + }, + "TerritoryId": 133, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Mih Khetto's Amphitheatre" + ], + "NextQuestId": 2627 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Class Quests/SMN/2627_An Egi-stential Crisis.json b/QuestPaths/4.x - Stormblood/Class Quests/SMN/2627_An Egi-stential Crisis.json new file mode 100644 index 00000000..6cc69479 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/SMN/2627_An Egi-stential Crisis.json @@ -0,0 +1,110 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1006756, + "Position": { + "X": -16.891846, + "Y": 10.17425, + "Z": -246.87573 + }, + "TerritoryId": 133, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Mih Khetto's Amphitheatre" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 133 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1014039, + "Position": { + "X": -17.990417, + "Y": 83.19999, + "Z": 0.6560669 + }, + "TerritoryId": 130, + "InteractionType": "Interact", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Airship Landing" + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1014038, + "Position": { + "X": -20.24878, + "Y": 83.19998, + "Z": -1.4801636 + }, + "StopDistance": 7, + "TerritoryId": 130, + "InteractionType": "SinglePlayerDuty" + } + ] + }, + { + "Sequence": 3 + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1014040, + "Position": { + "X": -19.028076, + "Y": 83.19999, + "Z": 0.10675049 + }, + "StopDistance": 7, + "TerritoryId": 130, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1006756, + "Position": { + "X": -16.891846, + "Y": 10.17425, + "Z": -246.87573 + }, + "TerritoryId": 133, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Mih Khetto's Amphitheatre" + ], + "NextQuestId": 2628 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Class Quests/SMN/2628_Off the Record.json b/QuestPaths/4.x - Stormblood/Class Quests/SMN/2628_Off the Record.json new file mode 100644 index 00000000..9d5313fb --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/SMN/2628_Off the Record.json @@ -0,0 +1,149 @@ + +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1006756, + "Position": { + "X": -16.891846, + "Y": 10.17425, + "Z": -246.87573 + }, + "TerritoryId": 133, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Mih Khetto's Amphitheatre" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 133 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1006725, + "Position": { + "X": 446.82983, + "Y": -5.306207, + "Z": -465.72064 + }, + "TerritoryId": 156, + "InteractionType": "Interact", + "AetheryteShortcut": "Mor Dhona", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": 26.405773, + "Y": 29.49983, + "Z": -767.3998 + }, + "TerritoryId": 156, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Mor Dhona", + "Fly": true + }, + { + "Position": { + "X": 25.629164, + "Y": 28.999998, + "Z": -823.2204 + }, + "TerritoryId": 156, + "InteractionType": "WalkTo" + }, + { + "DataId": 1001304, + "Position": { + "X": 25.589355, + "Y": 29, + "Z": -825.37573 + }, + "TerritoryId": 156, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "Position": { + "X": 26.405773, + "Y": 29.49983, + "Z": -767.3998 + }, + "TerritoryId": 156, + "InteractionType": "WalkTo" + }, + { + "DataId": 1023894, + "Position": { + "X": 8.346619, + "Y": 20.717896, + "Z": -657.49603 + }, + "TerritoryId": 156, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1022780, + "Position": { + "X": 412.5581, + "Y": -5.7435417, + "Z": -436.39276 + }, + "TerritoryId": 156, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1006756, + "Position": { + "X": -16.891846, + "Y": 10.17425, + "Z": -246.87573 + }, + "TerritoryId": 133, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Mih Khetto's Amphitheatre" + ], + "NextQuestId": 2629 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Class Quests/SMN/2629_An Art for the Living.json b/QuestPaths/4.x - Stormblood/Class Quests/SMN/2629_An Art for the Living.json new file mode 100644 index 00000000..0cf77088 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/SMN/2629_An Art for the Living.json @@ -0,0 +1,138 @@ + +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1006756, + "Position": { + "X": -16.891846, + "Y": 10.17425, + "Z": -246.87573 + }, + "TerritoryId": 133, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Mih Khetto's Amphitheatre" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 133 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1022785, + "Position": { + "X": -624.6891, + "Y": -176.4502, + "Z": -565.0874 + }, + "TerritoryId": 402, + "InteractionType": "Interact", + "AetheryteShortcut": "Azys Lla - Helix", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": 20.176798, + "Y": 293.97687, + "Z": -0.15623161 + }, + "StopDistance": 0.5, + "TerritoryId": 402, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [ + 7231 + ], + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2008640, + "Position": { + "X": 16.617004, + "Y": 293.8734, + "Z": 0.07623291 + }, + "TerritoryId": 402, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1023595, + "Position": { + "X": 21.98816, + "Y": 293.97577, + "Z": 0.41192627 + }, + "TerritoryId": 402, + "InteractionType": "SinglePlayerDuty" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1022790, + "Position": { + "X": 21.957703, + "Y": 293.9787, + "Z": -1.0529175 + }, + "StopDistance": 5, + "TerritoryId": 402, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1006756, + "Position": { + "X": -16.891846, + "Y": 10.17425, + "Z": -246.87573 + }, + "TerritoryId": 133, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Mih Khetto's Amphitheatre" + ] + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/MSQ/A1.3-Rhalgr's Reach 2/2469_Not without Incident.json b/QuestPaths/4.x - Stormblood/MSQ/A1.3-Rhalgr's Reach 2/2469_Not without Incident.json index 214a764a..6477857e 100644 --- a/QuestPaths/4.x - Stormblood/MSQ/A1.3-Rhalgr's Reach 2/2469_Not without Incident.json +++ b/QuestPaths/4.x - Stormblood/MSQ/A1.3-Rhalgr's Reach 2/2469_Not without Incident.json @@ -87,7 +87,8 @@ { "TerritoryId": 680, "InteractionType": "Duty", - "ContentFinderConditionId": 238 + "ContentFinderConditionId": 238, + "AutoDutyEnabled": true } ] }, diff --git a/QuestPaths/4.x - Stormblood/MSQ/A5-Yanxia 2/2524_The Die Is Cast.json b/QuestPaths/4.x - Stormblood/MSQ/A5-Yanxia 2/2524_The Die Is Cast.json index 2811433e..702737b3 100644 --- a/QuestPaths/4.x - Stormblood/MSQ/A5-Yanxia 2/2524_The Die Is Cast.json +++ b/QuestPaths/4.x - Stormblood/MSQ/A5-Yanxia 2/2524_The Die Is Cast.json @@ -114,7 +114,8 @@ { "TerritoryId": 614, "InteractionType": "Duty", - "ContentFinderConditionId": 241 + "ContentFinderConditionId": 241, + "AutoDutyEnabled": true } ] }, diff --git a/QuestPaths/4.x - Stormblood/MSQ/A6.2-Peaks 2/2544_The Price of Freedom.json b/QuestPaths/4.x - Stormblood/MSQ/A6.2-Peaks 2/2544_The Price of Freedom.json index 3cdd9298..a0b37e35 100644 --- a/QuestPaths/4.x - Stormblood/MSQ/A6.2-Peaks 2/2544_The Price of Freedom.json +++ b/QuestPaths/4.x - Stormblood/MSQ/A6.2-Peaks 2/2544_The Price of Freedom.json @@ -114,7 +114,8 @@ { "TerritoryId": 620, "InteractionType": "Duty", - "ContentFinderConditionId": 242 + "ContentFinderConditionId": 242, + "AutoDutyEnabled": true } ] }, diff --git a/QuestPaths/4.x - Stormblood/MSQ/B-4.1/2964_The Mad King's Trove.json b/QuestPaths/4.x - Stormblood/MSQ/B-4.1/2964_The Mad King's Trove.json index d23fe19c..0856bbe6 100644 --- a/QuestPaths/4.x - Stormblood/MSQ/B-4.1/2964_The Mad King's Trove.json +++ b/QuestPaths/4.x - Stormblood/MSQ/B-4.1/2964_The Mad King's Trove.json @@ -98,7 +98,8 @@ { "TerritoryId": 621, "InteractionType": "Duty", - "ContentFinderConditionId": 279 + "ContentFinderConditionId": 279, + "AutoDutyEnabled": true } ] }, diff --git a/QuestPaths/4.x - Stormblood/MSQ/E-4.4/3144_Feel the Burn.json b/QuestPaths/4.x - Stormblood/MSQ/E-4.4/3144_Feel the Burn.json index 25ec9718..fba0763d 100644 --- a/QuestPaths/4.x - Stormblood/MSQ/E-4.4/3144_Feel the Burn.json +++ b/QuestPaths/4.x - Stormblood/MSQ/E-4.4/3144_Feel the Burn.json @@ -40,7 +40,8 @@ { "TerritoryId": 614, "InteractionType": "Duty", - "ContentFinderConditionId": 585 + "ContentFinderConditionId": 585, + "AutoDutyEnabled": true } ] }, diff --git a/QuestPaths/4.x - Stormblood/MSQ/F-4.5/3183_The Face of War.json b/QuestPaths/4.x - Stormblood/MSQ/F-4.5/3183_The Face of War.json index c32f5c02..fb9960de 100644 --- a/QuestPaths/4.x - Stormblood/MSQ/F-4.5/3183_The Face of War.json +++ b/QuestPaths/4.x - Stormblood/MSQ/F-4.5/3183_The Face of War.json @@ -27,7 +27,8 @@ { "TerritoryId": 829, "InteractionType": "Duty", - "ContentFinderConditionId": 611 + "ContentFinderConditionId": 611, + "AutoDutyEnabled": true } ] }, diff --git a/QuestPaths/4.x - Stormblood/Unlocks/Dungeons/3142_Secret of the Ooze.json b/QuestPaths/4.x - Stormblood/Unlocks/Dungeons/3142_Secret of the Ooze.json new file mode 100644 index 00000000..4920cf5d --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Unlocks/Dungeons/3142_Secret of the Ooze.json @@ -0,0 +1,84 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Thaksin", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1026200, + "Position": { + "X": 26.901611, + "Y": 0, + "Z": 36.362183 + }, + "TerritoryId": 635, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": -516.5388, + "Y": 146.04834, + "Z": -357.0811 + }, + + "TerritoryId": 399, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Idyllshire", + "AethernetShortcut": [ + "[Idyllshire] Aetheryte Plaza", + "[Idyllshire] Prologue Gate (Western Hinterlands)" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InTerritory": [ + 399 + ] + } + } + }, + { + "DataId": 1026201, + "Position": { + "X": -617.2427, + "Y": 146.86842, + "Z": 62.150024 + }, + "TerritoryId": 399, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "TerritoryId": 399, + "InteractionType": "Duty", + "ContentFinderConditionId": 584 + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1026202, + "Position": { + "X": -611.6274, + "Y": 146.86842, + "Z": 57.87744 + }, + "TerritoryId": 399, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Allied Societies/Dwarves/Dailies/3908_Foundations of Steel.json b/QuestPaths/5.x - Shadowbringers/Allied Societies/Dwarves/Dailies/3908_Foundations of Steel.json index 24aad0b4..3406aac8 100644 --- a/QuestPaths/5.x - Shadowbringers/Allied Societies/Dwarves/Dailies/3908_Foundations of Steel.json +++ b/QuestPaths/5.x - Shadowbringers/Allied Societies/Dwarves/Dailies/3908_Foundations of Steel.json @@ -1,7 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "liza", - "Disabled": true, + "Author": "plogon_enjoyer", "QuestSequence": [ { "Sequence": 0, @@ -30,11 +29,28 @@ { "Sequence": 1, "Steps": [ + { + "DataId": 1034118, + "Position": { + "X": -55.49713, + "Y": 98.10251, + "Z": -624.7501 + }, + "TerritoryId": 813, + "InteractionType": "Interact", + "Fly": true + } ] }, { "Sequence": 255, "Steps": [ + { + "TerritoryId": 813, + "InteractionType": "Craft", + "ItemId": 31157, + "ItemCount": 3 + }, { "Position": { "X": -615.73865, diff --git a/QuestPaths/5.x - Shadowbringers/Allied Societies/Dwarves/Dailies/3921_Unbreakable Plate.json b/QuestPaths/5.x - Shadowbringers/Allied Societies/Dwarves/Dailies/3921_Unbreakable Plate.json index 24aad0b4..b1597952 100644 --- a/QuestPaths/5.x - Shadowbringers/Allied Societies/Dwarves/Dailies/3921_Unbreakable Plate.json +++ b/QuestPaths/5.x - Shadowbringers/Allied Societies/Dwarves/Dailies/3921_Unbreakable Plate.json @@ -1,7 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", - "Disabled": true, "QuestSequence": [ { "Sequence": 0, @@ -30,11 +29,28 @@ { "Sequence": 1, "Steps": [ + { + "DataId": 1033704, + "Position": { + "X": -33.341064, + "Y": 21.204435, + "Z": -198.41309 + }, + "TerritoryId": 813, + "InteractionType": "Interact", + "Fly": true + } ] }, { "Sequence": 255, "Steps": [ + { + "TerritoryId": 813, + "InteractionType": "Craft", + "ItemId": 31175, + "ItemCount": 1 + }, { "Position": { "X": -615.73865, diff --git a/QuestPaths/5.x - Shadowbringers/Class Quests/BLU/3732_Into the Blue Again.json b/QuestPaths/5.x - Shadowbringers/Class Quests/BLU/3732_Into the Blue Again.json new file mode 100644 index 00000000..f8d585a1 --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Class Quests/BLU/3732_Into the Blue Again.json @@ -0,0 +1,82 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1026852, + "Position": { + "X": 63.126587, + "Y": 14.005002, + "Z": 89.86035 + }, + "StopDistance": 5, + "TerritoryId": 131, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 131 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1026852, + "Position": { + "X": 63.126587, + "Y": 14.005002, + "Z": 89.86035 + }, + "StopDistance": 5, + "TerritoryId": 131, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1031957, + "Position": { + "X": 16.433899, + "Y": 10, + "Z": 152.97156 + }, + "TerritoryId": 131, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1026852, + "Position": { + "X": 63.126587, + "Y": 14.005002, + "Z": 89.86035 + }, + "TerritoryId": 131, + "InteractionType": "CompleteQuest", + "NextQuestId": 3733 + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Class Quests/BLU/3733_Something Borrowed, Something Blue.json b/QuestPaths/5.x - Shadowbringers/Class Quests/BLU/3733_Something Borrowed, Something Blue.json new file mode 100644 index 00000000..332b67fd --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Class Quests/BLU/3733_Something Borrowed, Something Blue.json @@ -0,0 +1,109 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1026852, + "Position": { + "X": 63.126587, + "Y": 14.005002, + "Z": 89.86035 + }, + "TerritoryId": 131, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 131 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1031958, + "Position": { + "X": 178.0575, + "Y": 51.459526, + "Z": 104.69214 + }, + "TerritoryId": 140, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Ul'dah] Weavers' Guild", + "[Ul'dah] Gate of the Sultana (Western Thanalan)" + ], + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1031958, + "Position": { + "X": 178.0575, + "Y": 51.459526, + "Z": 104.69214 + }, + "TerritoryId": 140, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 11441 + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1031958, + "Position": { + "X": 178.0575, + "Y": 51.459526, + "Z": 104.69214 + }, + "TerritoryId": 140, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1026852, + "Position": { + "X": 63.126587, + "Y": 14.005002, + "Z": 89.86035 + }, + "TerritoryId": 131, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ], + "NextQuestId": 3734 + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Class Quests/BLU/3734_Bolt from the Blue.json b/QuestPaths/5.x - Shadowbringers/Class Quests/BLU/3734_Bolt from the Blue.json new file mode 100644 index 00000000..8aeb0b0c --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Class Quests/BLU/3734_Bolt from the Blue.json @@ -0,0 +1,126 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1026852, + "Position": { + "X": 63.126587, + "Y": 14.005002, + "Z": 89.86035 + }, + "TerritoryId": 131, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 131 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1031962, + "Position": { + "X": -25.558899, + "Y": 14, + "Z": 84.51965 + }, + "TerritoryId": 131, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Ul'dah] Weavers' Guild", + "[Ul'dah] Goldsmiths' Guild" + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1031965, + "Position": { + "X": -193.3471, + "Y": 18, + "Z": 88.181885 + }, + "TerritoryId": 130, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Ul'dah] Goldsmiths' Guild", + "[Ul'dah] Thaumaturges' Guild" + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1031968, + "Position": { + "X": 34.286987, + "Y": 7.9999285, + "Z": -113.78656 + }, + "TerritoryId": 130, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Ul'dah] Thaumaturges' Guild", + "[Ul'dah] Adventurers' Guild" + ] + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1026852, + "Position": { + "X": 63.126587, + "Y": 14.005002, + "Z": 89.86035 + }, + "TerritoryId": 131, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Ul'dah] Adventurers' Guild", + "[Ul'dah] Weavers' Guild" + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1026852, + "Position": { + "X": 63.126587, + "Y": 14.005002, + "Z": 89.86035 + }, + "TerritoryId": 131, + "InteractionType": "CompleteQuest", + "NextQuestId": 3735 + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Class Quests/BLU/3735_Blue in the Face.json b/QuestPaths/5.x - Shadowbringers/Class Quests/BLU/3735_Blue in the Face.json new file mode 100644 index 00000000..e28cdb77 --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Class Quests/BLU/3735_Blue in the Face.json @@ -0,0 +1,123 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1026852, + "Position": { + "X": 63.126587, + "Y": 14.005002, + "Z": 89.86035 + }, + "TerritoryId": 131, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 131 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1032158, + "Position": { + "X": 74.23511, + "Y": 45, + "Z": -204.27258 + }, + "TerritoryId": 140, + "InteractionType": "Interact", + "AetheryteShortcut": "Western Thanalan - Horizon" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1031971, + "Position": { + "X": 298.146, + "Y": 62.280518, + "Z": -209.0639 + }, + "TerritoryId": 140, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2010849, + "Position": { + "X": 192.55359, + "Y": 55.039307, + "Z": -190.81409 + }, + "TerritoryId": 140, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 11442 + ], + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1031971, + "Position": { + "X": 298.146, + "Y": 62.280518, + "Z": -209.0639 + }, + "TerritoryId": 140, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1026852, + "Position": { + "X": 63.126587, + "Y": 14.005002, + "Z": 89.86035 + }, + "TerritoryId": 131, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ], + "NextQuestId": 3736 + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Class Quests/BLU/3736_Blue Scream of Death.json b/QuestPaths/5.x - Shadowbringers/Class Quests/BLU/3736_Blue Scream of Death.json new file mode 100644 index 00000000..4c408e8a --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Class Quests/BLU/3736_Blue Scream of Death.json @@ -0,0 +1,129 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1026852, + "Position": { + "X": 63.126587, + "Y": 14.005002, + "Z": 89.86035 + }, + "TerritoryId": 131, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 131 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1031980, + "Position": { + "X": -85.00806, + "Y": 6.9845695, + "Z": -11.001831 + }, + "TerritoryId": 131, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Ul'dah] Weavers' Guild", + "[Ul'dah] Gladiators' Guild" + ], + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, + { + "DataId": 1031979, + "Position": { + "X": -92.5155, + "Y": 6.9845695, + "Z": -17.07489 + }, + "TerritoryId": 131, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 1001675, + "Position": { + "X": -89.49426, + "Y": 7.008118, + "Z": 10.849121 + }, + "TerritoryId": 131, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1031978, + "Position": { + "X": -75.05914, + "Y": 6.9845705, + "Z": 10.971252 + }, + "TerritoryId": 131, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1026852, + "Position": { + "X": 63.126587, + "Y": 14.005002, + "Z": 89.86035 + }, + "StopDistance": 5, + "TerritoryId": 131, + "InteractionType": "CompleteQuest", + "NextQuestId": 3737 + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Class Quests/BLU/3737_Blue Cheese.json b/QuestPaths/5.x - Shadowbringers/Class Quests/BLU/3737_Blue Cheese.json new file mode 100644 index 00000000..316a6792 --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Class Quests/BLU/3737_Blue Cheese.json @@ -0,0 +1,52 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1026852, + "Position": { + "X": 63.126587, + "Y": 14.005002, + "Z": 89.86035 + }, + "StopDistance": 5, + "TerritoryId": 131, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 131 + ] + } + } + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1026852, + "Position": { + "X": 63.126587, + "Y": 14.005002, + "Z": 89.86035 + }, + "StopDistance": 5, + "TerritoryId": 131, + "InteractionType": "CompleteQuest", + "NextQuestId": 3989 + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Class Quests/BLU/3989_Second-rate Entertainment.json b/QuestPaths/5.x - Shadowbringers/Class Quests/BLU/3989_Second-rate Entertainment.json new file mode 100644 index 00000000..7303bf91 --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Class Quests/BLU/3989_Second-rate Entertainment.json @@ -0,0 +1,77 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1026852, + "Position": { + "X": 63.126587, + "Y": 14.005002, + "Z": 89.86035 + }, + "StopDistance": 5, + "TerritoryId": 131, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 131 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1035094, + "Position": { + "X": 101.21301, + "Y": 9.738088, + "Z": 630.88416 + }, + "TerritoryId": 141, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Ul'dah] Weavers' Guild", + "[Ul'dah] Gate of Thal (Central Thanalan)" + ], + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1026852, + "Position": { + "X": 63.126587, + "Y": 14.005002, + "Z": 89.86035 + }, + "StopDistance": 5, + "TerritoryId": 131, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ], + "NextQuestId": 3990 + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Class Quests/BLU/3990_Everybody Was Fukumen Fighting.json b/QuestPaths/5.x - Shadowbringers/Class Quests/BLU/3990_Everybody Was Fukumen Fighting.json new file mode 100644 index 00000000..d248e1ff --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Class Quests/BLU/3990_Everybody Was Fukumen Fighting.json @@ -0,0 +1,219 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1035095, + "Position": { + "X": 63.004395, + "Y": 14.005002, + "Z": 89.829834 + }, + "StopDistance": 7, + "TerritoryId": 131, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 131 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1035096, + "Position": { + "X": 130.84607, + "Y": 11.999016, + "Z": -82.108826 + }, + "TerritoryId": 628, + "InteractionType": "Interact", + "AetheryteShortcut": "Kugane", + "AethernetShortcut": [ + "[Kugane] Aetheryte Plaza", + "[Kugane] Sekiseigumi Barracks" + ], + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_JOBAOZ630_03990_Q1_000_000", + "Answer": "TEXT_JOBAOZ630_03990_A1_000_002" + } + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1019038, + "Position": { + "X": -55.222473, + "Y": -2.9000003, + "Z": -65.65961 + }, + "TerritoryId": 628, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Kugane] Sekiseigumi Barracks", + "[Kugane] Shiokaze Hostelry" + ], + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 1019069, + "Position": { + "X": -62.119568, + "Y": 8, + "Z": -56.62628 + }, + "TerritoryId": 628, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 1035099, + "Position": { + "X": -36.728516, + "Y": 14.000002, + "Z": -52.170654 + }, + "TerritoryId": 628, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1035096, + "Position": { + "X": 130.84607, + "Y": 11.999016, + "Z": -82.108826 + }, + "TerritoryId": 628, + "InteractionType": "Interact", + "AetheryteShortcut": "Kugane", + "AethernetShortcut": [ + "[Kugane] Aetheryte Plaza", + "[Kugane] Sekiseigumi Barracks" + ] + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1035103, + "Position": { + "X": 56.77881, + "Y": 4.05, + "Z": 92.36279 + }, + "TerritoryId": 628, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Kugane] Sekiseigumi Barracks", + "[Kugane] Kogane Dori Markets" + ] + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1035104, + "Position": { + "X": 153.42944, + "Y": 18.1, + "Z": 50.70569 + }, + "TerritoryId": 628, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Kugane] Kogane Dori Markets", + "[Kugane] The Ruby Bazaar" + ] + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1035097, + "Position": { + "X": 151.87305, + "Y": 18.1, + "Z": 49.484985 + }, + "StopDistance": 5, + "TerritoryId": 628, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1035096, + "Position": { + "X": 130.84607, + "Y": 11.999016, + "Z": -82.108826 + }, + "TerritoryId": 628, + "InteractionType": "CompleteQuest", + "AethernetShortcut": [ + "[Kugane] The Ruby Bazaar", + "[Kugane] Sekiseigumi Barracks" + ], + "NextQuestId": 3991 + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Class Quests/BLU/3991_Azuro and Goliath.json b/QuestPaths/5.x - Shadowbringers/Class Quests/BLU/3991_Azuro and Goliath.json new file mode 100644 index 00000000..18b13d55 --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Class Quests/BLU/3991_Azuro and Goliath.json @@ -0,0 +1,163 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1035096, + "Position": { + "X": 130.84607, + "Y": 11.999016, + "Z": -82.108826 + }, + "TerritoryId": 628, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Kugane", + "AethernetShortcut": [ + "[Kugane] Aetheryte Plaza", + "[Kugane] Sekiseigumi Barracks" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + }, + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_JOBAOZ650_03991_Q1_000_000", + "Answer": "TEXT_JOBAOZ650_03991_A1_000_001" + } + ] + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1035103, + "Position": { + "X": 56.77881, + "Y": 4.05, + "Z": 92.36279 + }, + "TerritoryId": 628, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Kugane] Sekiseigumi Barracks", + "[Kugane] Kogane Dori Markets" + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1018989, + "Position": { + "X": 35.171997, + "Y": 4.8365545, + "Z": 49.240845 + }, + "TerritoryId": 628, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 1018990, + "Position": { + "X": 40.024292, + "Y": 4.83654, + "Z": 49.05774 + }, + "TerritoryId": 628, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1035106, + "Position": { + "X": 83.08533, + "Y": 4.0000014, + "Z": 51.621216 + }, + "TerritoryId": 628, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1035107, + "Position": { + "X": 139.0249, + "Y": 18, + "Z": 48.508423 + }, + "TerritoryId": 628, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1035105, + "Position": { + "X": 139.0249, + "Y": 18, + "Z": 48.508423 + }, + "TerritoryId": 628, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1035096, + "Position": { + "X": 130.84607, + "Y": 11.999016, + "Z": -82.108826 + }, + "TerritoryId": 628, + "InteractionType": "CompleteQuest", + "AethernetShortcut": [ + "[Kugane] The Ruby Bazaar", + "[Kugane] Sekiseigumi Barracks" + ], + "NextQuestId": 3992 + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Class Quests/BLU/3992_Where the Gold Goes.json b/QuestPaths/5.x - Shadowbringers/Class Quests/BLU/3992_Where the Gold Goes.json new file mode 100644 index 00000000..ff15582a --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Class Quests/BLU/3992_Where the Gold Goes.json @@ -0,0 +1,184 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1035096, + "Position": { + "X": 130.84607, + "Y": 11.999016, + "Z": -82.108826 + }, + "TerritoryId": 628, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Kugane", + "AethernetShortcut": [ + "[Kugane] Aetheryte Plaza", + "[Kugane] Sekiseigumi Barracks" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1035107, + "Position": { + "X": 139.0249, + "Y": 18, + "Z": 48.508423 + }, + "TerritoryId": 628, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Kugane] Sekiseigumi Barracks", + "[Kugane] The Ruby Bazaar" + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1035108, + "Position": { + "X": -106.401184, + "Y": -7, + "Z": -63.553833 + }, + "TerritoryId": 628, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Kugane] The Ruby Bazaar", + "[Kugane] Shiokaze Hostelry" + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1035109, + "Position": { + "X": 449.27136, + "Y": 58.40733, + "Z": -149.82837 + }, + "TerritoryId": 614, + "InteractionType": "Interact", + "AetheryteShortcut": "Yanxia - Namai", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1035112, + "Position": { + "X": 457.32812, + "Y": 67.99535, + "Z": -108.20172 + }, + "TerritoryId": 614, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 1019257, + "Position": { + "X": 468.55872, + "Y": 68.02771, + "Z": -93.21747 + }, + "TerritoryId": 614, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 1035113, + "Position": { + "X": 404.77612, + "Y": 72.81784, + "Z": -80.338745 + }, + "StopDistance": 1, + "TerritoryId": 614, + "InteractionType": "Interact", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1035114, + "Position": { + "X": 382.62, + "Y": 85.20213, + "Z": -184.0086 + }, + "TerritoryId": 614, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1035096, + "Position": { + "X": 130.84607, + "Y": 11.999016, + "Z": -82.108826 + }, + "TerritoryId": 628, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Kugane", + "AethernetShortcut": [ + "[Kugane] Aetheryte Plaza", + "[Kugane] Sekiseigumi Barracks" + ], + "NextQuestId": 3993 + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Class Quests/BLU/3993_Master of Mimicry.json b/QuestPaths/5.x - Shadowbringers/Class Quests/BLU/3993_Master of Mimicry.json new file mode 100644 index 00000000..be9d4e0c --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Class Quests/BLU/3993_Master of Mimicry.json @@ -0,0 +1,82 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1035096, + "Position": { + "X": 130.84607, + "Y": 11.999016, + "Z": -82.108826 + }, + "TerritoryId": 628, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Kugane", + "AethernetShortcut": [ + "[Kugane] Aetheryte Plaza", + "[Kugane] Sekiseigumi Barracks" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1035116, + "Position": { + "X": 153.39893, + "Y": 18.1, + "Z": 50.70569 + }, + "TerritoryId": 628, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Kugane] Sekiseigumi Barracks", + "[Kugane] The Ruby Bazaar" + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1026937, + "Position": { + "X": 65.7511, + "Y": 14.005002, + "Z": 90.440186 + }, + "StopDistance": 5, + "TerritoryId": 131, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1026937, + "Position": { + "X": 65.7511, + "Y": 14.005002, + "Z": 90.440186 + }, + "StopDistance": 5, + "TerritoryId": 131, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Class Quests/BLU/3994_A Future in Blue.json b/QuestPaths/5.x - Shadowbringers/Class Quests/BLU/3994_A Future in Blue.json new file mode 100644 index 00000000..b7068d41 --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Class Quests/BLU/3994_A Future in Blue.json @@ -0,0 +1,52 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1026852, + "Position": { + "X": 63.126587, + "Y": 14.005002, + "Z": 89.86035 + }, + "StopDistance": 5, + "TerritoryId": 131, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 131 + ] + } + } + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1026852, + "Position": { + "X": 63.126587, + "Y": 14.005002, + "Z": 89.86035 + }, + "StopDistance": 5, + "TerritoryId": 131, + "InteractionType": "CompleteQuest", + "NextQuestId": 4773 + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/MSQ/A4-Crystarium 2/3300_The Lightwardens.json b/QuestPaths/5.x - Shadowbringers/MSQ/A4-Crystarium 2/3300_The Lightwardens.json index d4eef79d..7f9a5a94 100644 --- a/QuestPaths/5.x - Shadowbringers/MSQ/A4-Crystarium 2/3300_The Lightwardens.json +++ b/QuestPaths/5.x - Shadowbringers/MSQ/A4-Crystarium 2/3300_The Lightwardens.json @@ -120,7 +120,8 @@ { "TerritoryId": 813, "InteractionType": "Duty", - "ContentFinderConditionId": 676 + "ContentFinderConditionId": 676, + "AutoDutyEnabled": true } ] }, diff --git a/QuestPaths/5.x - Shadowbringers/MSQ/B-Il Mheg/3312_The Key to the Castle.json b/QuestPaths/5.x - Shadowbringers/MSQ/B-Il Mheg/3312_The Key to the Castle.json index 8f5193b0..d1dfe7dc 100644 --- a/QuestPaths/5.x - Shadowbringers/MSQ/B-Il Mheg/3312_The Key to the Castle.json +++ b/QuestPaths/5.x - Shadowbringers/MSQ/B-Il Mheg/3312_The Key to the Castle.json @@ -49,7 +49,8 @@ { "TerritoryId": 816, "InteractionType": "Duty", - "ContentFinderConditionId": 649 + "ContentFinderConditionId": 649, + "AutoDutyEnabled": true } ] }, diff --git a/QuestPaths/5.x - Shadowbringers/MSQ/C-Rak'tika/3340_The Burden of Knowledge.json b/QuestPaths/5.x - Shadowbringers/MSQ/C-Rak'tika/3340_The Burden of Knowledge.json index 075dff0c..39284d2f 100644 --- a/QuestPaths/5.x - Shadowbringers/MSQ/C-Rak'tika/3340_The Burden of Knowledge.json +++ b/QuestPaths/5.x - Shadowbringers/MSQ/C-Rak'tika/3340_The Burden of Knowledge.json @@ -61,7 +61,8 @@ { "TerritoryId": 817, "InteractionType": "Duty", - "ContentFinderConditionId": 651 + "ContentFinderConditionId": 651, + "AutoDutyEnabled": true } ] }, diff --git a/QuestPaths/5.x - Shadowbringers/MSQ/E-Kholusia 2/3643_Extinguishing the Last Light.json b/QuestPaths/5.x - Shadowbringers/MSQ/E-Kholusia 2/3643_Extinguishing the Last Light.json index 9ee12fd7..80cbd172 100644 --- a/QuestPaths/5.x - Shadowbringers/MSQ/E-Kholusia 2/3643_Extinguishing the Last Light.json +++ b/QuestPaths/5.x - Shadowbringers/MSQ/E-Kholusia 2/3643_Extinguishing the Last Light.json @@ -62,7 +62,8 @@ { "TerritoryId": 814, "InteractionType": "Duty", - "ContentFinderConditionId": 659 + "ContentFinderConditionId": 659, + "AutoDutyEnabled": true } ] }, diff --git a/QuestPaths/5.x - Shadowbringers/MSQ/H-5.2/3769_Beneath the Surface.json b/QuestPaths/5.x - Shadowbringers/MSQ/H-5.2/3769_Beneath the Surface.json index c947dc96..41dd8315 100644 --- a/QuestPaths/5.x - Shadowbringers/MSQ/H-5.2/3769_Beneath the Surface.json +++ b/QuestPaths/5.x - Shadowbringers/MSQ/H-5.2/3769_Beneath the Surface.json @@ -40,7 +40,8 @@ { "TerritoryId": 814, "InteractionType": "Duty", - "ContentFinderConditionId": 714 + "ContentFinderConditionId": 714, + "AutoDutyEnabled": true } ] }, diff --git a/QuestPaths/6.x - Endwalker/Class Quests/BLU/4773.txt b/QuestPaths/6.x - Endwalker/Class Quests/BLU/4773.txt new file mode 100644 index 00000000..1e9793d1 --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Class Quests/BLU/4773.txt @@ -0,0 +1 @@ +stopdistance: 5 diff --git a/QuestPaths/6.x - Endwalker/Class Quests/BLU/4774_The Beard, the Myth, the Legend.json b/QuestPaths/6.x - Endwalker/Class Quests/BLU/4774_The Beard, the Myth, the Legend.json new file mode 100644 index 00000000..6a469a21 --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Class Quests/BLU/4774_The Beard, the Myth, the Legend.json @@ -0,0 +1,209 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1035095, + "Position": { + "X": 63.004395, + "Y": 14.005002, + "Z": 89.829834 + }, + "TerritoryId": 131, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 131 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1045582, + "Position": { + "X": -344.53345, + "Y": -2.3744698, + "Z": 16.494995 + }, + "TerritoryId": 129, + "InteractionType": "Interact", + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] Arcanists' Guild" + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1045584, + "Position": { + "X": -233.17316, + "Y": 5.999995, + "Z": 167.86438 + }, + "TerritoryId": 129, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Limsa Lominsa] Arcanists' Guild", + "[Limsa Lominsa] Fishermens' Guild" + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1045585, + "Position": { + "X": -269.3675, + "Y": 7.352252, + "Z": 201.43433 + }, + "TerritoryId": 129, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "Position": { + "X": -275.1194, + "Y": 11.32725, + "Z": 188.80133 + }, + "TerritoryId": 129, + "InteractionType": "WalkTo" + }, + { + "Position": { + "X": -267.55106, + "Y": 11.852168, + "Z": 189.20018 + }, + "TerritoryId": 129, + "InteractionType": "WalkTo", + "DisableNavmesh": true + }, + { + "DataId": 1045586, + "Position": { + "X": -246.50952, + "Y": 16.347235, + "Z": 192.12634 + }, + "TerritoryId": 129, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1000837, + "Position": { + "X": -289.7536, + "Y": 16.347252, + "Z": 194.53723 + }, + "TerritoryId": 129, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1045587, + "Position": { + "X": -3.7995605, + "Y": 39.999966, + "Z": 36.697876 + }, + "TerritoryId": 128, + "InteractionType": "Interact", + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] The Aftcastle" + ] + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1045601, + "Position": { + "X": -26.962769, + "Y": 45.95137, + "Z": -27.054321 + }, + "TerritoryId": 134, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Limsa Lominsa] The Aftcastle", + "[Limsa Lominsa] Zephyr Gate (Middle La Noscea)" + ], + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1035095, + "Position": { + "X": 63.004395, + "Y": 14.005002, + "Z": 89.829834 + }, + "TerritoryId": 131, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ], + "NextQuestId": 4775 + } + ] + } + ] +} diff --git a/QuestPaths/6.x - Endwalker/Class Quests/BLU/4775_Gridania's Most Wanted.json b/QuestPaths/6.x - Endwalker/Class Quests/BLU/4775_Gridania's Most Wanted.json new file mode 100644 index 00000000..dd26b96b --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Class Quests/BLU/4775_Gridania's Most Wanted.json @@ -0,0 +1,119 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1035095, + "Position": { + "X": 63.004395, + "Y": 14.005002, + "Z": 89.829834 + }, + "TerritoryId": 131, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 131 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1045603, + "Position": { + "X": 56.198975, + "Y": -8.45414, + "Z": 99.22937 + }, + "TerritoryId": 132, + "InteractionType": "Interact", + "AetheryteShortcut": "Gridania" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1045604, + "Position": { + "X": 76.89014, + "Y": -6, + "Z": 55.283447 + }, + "TerritoryId": 148, + "InteractionType": "Interact", + "AetheryteShortcut": "Central Shroud - Bentbranch Meadows" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2013282, + "Position": { + "X": 190.1731, + "Y": -8.529846, + "Z": -44.35797 + }, + "TerritoryId": 148, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 2013255, + "Position": { + "X": 341.48157, + "Y": -4.501404, + "Z": -145.8916 + }, + "TerritoryId": 148, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1035095, + "Position": { + "X": 63.004395, + "Y": 14.005002, + "Z": 89.829834 + }, + "TerritoryId": 131, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ], + "NextQuestId": 4776 + } + ] + } + ] +} diff --git a/QuestPaths/6.x - Endwalker/Class Quests/BLU/4776_No Butts About It.json b/QuestPaths/6.x - Endwalker/Class Quests/BLU/4776_No Butts About It.json new file mode 100644 index 00000000..38f690bd --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Class Quests/BLU/4776_No Butts About It.json @@ -0,0 +1,202 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1035095, + "Position": { + "X": 63.004395, + "Y": 14.005002, + "Z": 89.829834 + }, + "TerritoryId": 131, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 131 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1045605, + "Position": { + "X": -166.09448, + "Y": 2.0333128, + "Z": -17.288513 + }, + "TerritoryId": 418, + "InteractionType": "Interact", + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] Skysteel Manufactory" + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1045608, + "Position": { + "X": -14.145203, + "Y": 11.965044, + "Z": 27.756104 + }, + "TerritoryId": 419, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Ishgard] Skysteel Manufactory", + "[Ishgard] The Last Vigil" + ], + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 1045609, + "Position": { + "X": -10.8797, + "Y": 11.96515, + "Z": 53.543823 + }, + "TerritoryId": 419, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, + { + "DataId": 1045607, + "Position": { + "X": -55.89386, + "Y": 11.965071, + "Z": 39.78015 + }, + "TerritoryId": 419, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1045610, + "Position": { + "X": 30.929932, + "Y": 11.965028, + "Z": 33.6156 + }, + "TerritoryId": 419, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1045713, + "Position": { + "X": 92.454346, + "Y": 24.06099, + "Z": -40.177063 + }, + "TerritoryId": 418, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Ishgard] The Last Vigil", + "[Ishgard] The Forgotten Knight" + ] + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1045714, + "Position": { + "X": 65.171265, + "Y": 24.071722, + "Z": -37.521973 + }, + "TerritoryId": 418, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1045714, + "Position": { + "X": 65.171265, + "Y": 24.071722, + "Z": -37.521973 + }, + "TerritoryId": 418, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1026852, + "Position": { + "X": 63.126587, + "Y": 14.005002, + "Z": 89.86035 + }, + "TerritoryId": 131, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ], + "NextQuestId": 4777 + } + ] + } + ] +} diff --git a/QuestPaths/6.x - Endwalker/Class Quests/BLU/4777_A New Gold Standard.json b/QuestPaths/6.x - Endwalker/Class Quests/BLU/4777_A New Gold Standard.json new file mode 100644 index 00000000..5cc082c6 --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Class Quests/BLU/4777_A New Gold Standard.json @@ -0,0 +1,70 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1026852, + "Position": { + "X": 63.126587, + "Y": 14.005002, + "Z": 89.86035 + }, + "TerritoryId": 131, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 131 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1045715, + "Position": { + "X": 21.042175, + "Y": 29.999996, + "Z": -16.342468 + }, + "TerritoryId": 131, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Ul'dah] Weavers' Guild", + "[Ul'dah] The Chamber of Rule" + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1026852, + "Position": { + "X": 63.126587, + "Y": 14.005002, + "Z": 89.86035 + }, + "StopDistance": 5, + "TerritoryId": 131, + "InteractionType": "CompleteQuest", + "NextQuestId": 4778 + } + ] + } + ] +} diff --git a/QuestPaths/6.x - Endwalker/Class Quests/BLU/4778_The Brave and the Blue.json b/QuestPaths/6.x - Endwalker/Class Quests/BLU/4778_The Brave and the Blue.json new file mode 100644 index 00000000..ec5804ce --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Class Quests/BLU/4778_The Brave and the Blue.json @@ -0,0 +1,51 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1026852, + "Position": { + "X": 63.126587, + "Y": 14.005002, + "Z": 89.86035 + }, + "StopDistance": 5, + "TerritoryId": 131, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 131 + ] + } + } + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1026852, + "Position": { + "X": 63.126587, + "Y": 14.005002, + "Z": 89.86035 + }, + "StopDistance": 5, + "TerritoryId": 131, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/6.x - Endwalker/MSQ/A-Thavnair1-Labyrinthos1/4377_In the Dark of the Tower.json b/QuestPaths/6.x - Endwalker/MSQ/A-Thavnair1-Labyrinthos1/4377_In the Dark of the Tower.json index 22f2d97a..c4336959 100644 --- a/QuestPaths/6.x - Endwalker/MSQ/A-Thavnair1-Labyrinthos1/4377_In the Dark of the Tower.json +++ b/QuestPaths/6.x - Endwalker/MSQ/A-Thavnair1-Labyrinthos1/4377_In the Dark of the Tower.json @@ -55,7 +55,8 @@ { "TerritoryId": 957, "InteractionType": "Duty", - "ContentFinderConditionId": 783 + "ContentFinderConditionId": 783, + "AutoDutyEnabled": true } ] }, diff --git a/QuestPaths/6.x - Endwalker/MSQ/D-Thavnair2/4409_Skies Aflame.json b/QuestPaths/6.x - Endwalker/MSQ/D-Thavnair2/4409_Skies Aflame.json index 37285324..9c0d3a48 100644 --- a/QuestPaths/6.x - Endwalker/MSQ/D-Thavnair2/4409_Skies Aflame.json +++ b/QuestPaths/6.x - Endwalker/MSQ/D-Thavnair2/4409_Skies Aflame.json @@ -71,7 +71,8 @@ { "TerritoryId": 957, "InteractionType": "Duty", - "ContentFinderConditionId": 789 + "ContentFinderConditionId": 789, + "AutoDutyEnabled": true } ] }, diff --git a/QuestPaths/6.x - Endwalker/MSQ/E-Elpis/4437_Caging the Messenger.json b/QuestPaths/6.x - Endwalker/MSQ/E-Elpis/4437_Caging the Messenger.json index 0a7e8e55..9dd680eb 100644 --- a/QuestPaths/6.x - Endwalker/MSQ/E-Elpis/4437_Caging the Messenger.json +++ b/QuestPaths/6.x - Endwalker/MSQ/E-Elpis/4437_Caging the Messenger.json @@ -39,7 +39,8 @@ { "TerritoryId": 961, "InteractionType": "Duty", - "ContentFinderConditionId": 787 + "ContentFinderConditionId": 787, + "AutoDutyEnabled": true } ] }, diff --git a/QuestPaths/6.x - Endwalker/MSQ/F-Labyrinthos2/4449_Her Children One and All.json b/QuestPaths/6.x - Endwalker/MSQ/F-Labyrinthos2/4449_Her Children One and All.json index 5294bab4..74943745 100644 --- a/QuestPaths/6.x - Endwalker/MSQ/F-Labyrinthos2/4449_Her Children One and All.json +++ b/QuestPaths/6.x - Endwalker/MSQ/F-Labyrinthos2/4449_Her Children One and All.json @@ -38,7 +38,8 @@ { "TerritoryId": 956, "InteractionType": "Duty", - "ContentFinderConditionId": 786 + "ContentFinderConditionId": 786, + "AutoDutyEnabled": false } ] }, @@ -63,7 +64,8 @@ { "TerritoryId": 1030, "InteractionType": "Duty", - "ContentFinderConditionId": 790 + "ContentFinderConditionId": 790, + "AutoDutyEnabled": true } ] }, diff --git a/QuestPaths/6.x - Endwalker/MSQ/H-6.1/4529_Alzadaals Legacy.json b/QuestPaths/6.x - Endwalker/MSQ/H-6.1/4529_Alzadaals Legacy.json index c79468bb..dc9324d1 100644 --- a/QuestPaths/6.x - Endwalker/MSQ/H-6.1/4529_Alzadaals Legacy.json +++ b/QuestPaths/6.x - Endwalker/MSQ/H-6.1/4529_Alzadaals Legacy.json @@ -23,7 +23,8 @@ { "TerritoryId": 957, "InteractionType": "Duty", - "ContentFinderConditionId": 844 + "ContentFinderConditionId": 844, + "AutoDutyEnabled": false } ] }, diff --git a/QuestPaths/6.x - Endwalker/MSQ/I-6.2/4592_In Search of Azdaja.json b/QuestPaths/6.x - Endwalker/MSQ/I-6.2/4592_In Search of Azdaja.json index cc6ea1fa..c91af597 100644 --- a/QuestPaths/6.x - Endwalker/MSQ/I-6.2/4592_In Search of Azdaja.json +++ b/QuestPaths/6.x - Endwalker/MSQ/I-6.2/4592_In Search of Azdaja.json @@ -71,7 +71,8 @@ { "TerritoryId": 1056, "InteractionType": "Duty", - "ContentFinderConditionId": 869 + "ContentFinderConditionId": 869, + "AutoDutyEnabled": false } ] }, diff --git a/QuestPaths/6.x - Endwalker/MSQ/J-6.3/4674_King of the Mountain.json b/QuestPaths/6.x - Endwalker/MSQ/J-6.3/4674_King of the Mountain.json index 130cb389..df1bd69f 100644 --- a/QuestPaths/6.x - Endwalker/MSQ/J-6.3/4674_King of the Mountain.json +++ b/QuestPaths/6.x - Endwalker/MSQ/J-6.3/4674_King of the Mountain.json @@ -57,7 +57,8 @@ "TerritoryId": 958, "InteractionType": "Duty", "Comment": "Lapis Manalis", - "ContentFinderConditionId": 896 + "ContentFinderConditionId": 896, + "AutoDutyEnabled": true } ] }, diff --git a/QuestPaths/6.x - Endwalker/MSQ/K-6.4/4736_Going Haam.json b/QuestPaths/6.x - Endwalker/MSQ/K-6.4/4736_Going Haam.json index 9f738bc8..8af36080 100644 --- a/QuestPaths/6.x - Endwalker/MSQ/K-6.4/4736_Going Haam.json +++ b/QuestPaths/6.x - Endwalker/MSQ/K-6.4/4736_Going Haam.json @@ -160,7 +160,8 @@ { "TerritoryId": 962, "InteractionType": "Duty", - "ContentFinderConditionId": 822 + "ContentFinderConditionId": 822, + "AutoDutyEnabled": true } ] }, diff --git a/QuestPaths/6.x - Endwalker/MSQ/L-6.5/4748_Down in the Dark.json b/QuestPaths/6.x - Endwalker/MSQ/L-6.5/4748_Down in the Dark.json index 3930a8dd..96953ea2 100644 --- a/QuestPaths/6.x - Endwalker/MSQ/L-6.5/4748_Down in the Dark.json +++ b/QuestPaths/6.x - Endwalker/MSQ/L-6.5/4748_Down in the Dark.json @@ -24,7 +24,8 @@ { "TerritoryId": 1162, "InteractionType": "Duty", - "ContentFinderConditionId": 823 + "ContentFinderConditionId": 823, + "AutoDutyEnabled": true } ] }, diff --git a/QuestPaths/6.x - Endwalker/Side Quests/Thavnair/4196_Fruit Savior.json b/QuestPaths/6.x - Endwalker/Side Quests/Thavnair/4196_Fruit Savior.json new file mode 100644 index 00000000..3aefd4d1 --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Side Quests/Thavnair/4196_Fruit Savior.json @@ -0,0 +1,72 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "Position": { + "X": 193.6185, + "Y": 1.9123514, + "Z": 713.436 + }, + "TerritoryId": 957, + "InteractionType": "WalkTo" + }, + { + "DataId": 1037622, + "Position": { + "X": 189.94562, + "Y": 0.8560083, + "Z": 702.7896 + }, + "StopDistance": 0.25, + "TerritoryId": 957, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2011979, + "Position": { + "X": 236.1333, + "Y": 10.666016, + "Z": 613.27527 + }, + "TerritoryId": 957, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": 193.6185, + "Y": 1.9123514, + "Z": 713.436 + }, + "TerritoryId": 957, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 1037622, + "Position": { + "X": 189.94562, + "Y": 0.8560083, + "Z": 702.7896 + }, + "StopDistance": 0.25, + "TerritoryId": 957, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/6.x - Endwalker/Side Quests/Thavnair/4197_Shelling Out.json b/QuestPaths/6.x - Endwalker/Side Quests/Thavnair/4197_Shelling Out.json new file mode 100644 index 00000000..1f89df9a --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Side Quests/Thavnair/4197_Shelling Out.json @@ -0,0 +1,59 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1037625, + "Position": { + "X": 176.47058, + "Y": 1.8742183, + "Z": 799.2217 + }, + "StopDistance": 1, + "TerritoryId": 957, + "InteractionType": "AcceptQuest", + "Fly": true + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": 13.657948, + "Y": 1.6567476, + "Z": 631.81714 + }, + "TerritoryId": 957, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "KillEnemyDataIds": [ + 13527 + ], + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1037625, + "Position": { + "X": 176.47058, + "Y": 1.8742183, + "Z": 799.2217 + }, + "StopDistance": 1, + "TerritoryId": 957, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/6.x - Endwalker/Side Quests/Thavnair/4199_The Great Heist.json b/QuestPaths/6.x - Endwalker/Side Quests/Thavnair/4199_The Great Heist.json new file mode 100644 index 00000000..a4707e23 --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Side Quests/Thavnair/4199_The Great Heist.json @@ -0,0 +1,74 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1037682, + "Position": { + "X": -564.1108, + "Y": 11.802608, + "Z": 124.28467 + }, + "TerritoryId": 957, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1039378, + "Position": { + "X": -103.25781, + "Y": 2.5712337, + "Z": 597.589 + }, + "TerritoryId": 957, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 14119, + 14120 + ], + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2011933, + "Position": { + "X": -102.61694, + "Y": 3.0059814, + "Z": 598.9319 + }, + "TerritoryId": 957, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1037682, + "Position": { + "X": -564.1108, + "Y": 11.802608, + "Z": 124.28467 + }, + "TerritoryId": 957, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Thavnair - Great Work", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/6.x - Endwalker/Side Quests/Thavnair/4200_Wish Upon a Crystal.json b/QuestPaths/6.x - Endwalker/Side Quests/Thavnair/4200_Wish Upon a Crystal.json new file mode 100644 index 00000000..638d84bc --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Side Quests/Thavnair/4200_Wish Upon a Crystal.json @@ -0,0 +1,65 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1037671, + "Position": { + "X": -554.37555, + "Y": 1.120665, + "Z": 22.690125 + }, + "StopDistance": 0.5, + "TerritoryId": 957, + "InteractionType": "AcceptQuest", + "Fly": true + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1039384, + "Position": { + "X": 223.22424, + "Y": 10.211119, + "Z": 562.4321 + }, + "TerritoryId": 957, + "InteractionType": "Interact", + "AetheryteShortcut": "Thavnair - Yedlihmad", + "Fly": true, + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_AKTKZA021_04200_Q1_000_000", + "Answer": "TEXT_AKTKZA021_04200_A1_000_002" + } + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1037671, + "Position": { + "X": -554.37555, + "Y": 1.120665, + "Z": 22.690125 + }, + "StopDistance": 0.5, + "TerritoryId": 957, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Thavnair - Great Work", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/6.x - Endwalker/Side Quests/Thavnair/4201_High Importance, Low Urgency.json b/QuestPaths/6.x - Endwalker/Side Quests/Thavnair/4201_High Importance, Low Urgency.json new file mode 100644 index 00000000..4c220c66 --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Side Quests/Thavnair/4201_High Importance, Low Urgency.json @@ -0,0 +1,104 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1039516, + "Position": { + "X": -554.89435, + "Y": 11.402609, + "Z": 125.10864 + }, + "TerritoryId": 957, + "InteractionType": "AcceptQuest", + "Fly": true + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1037680, + "Position": { + "X": -550.1946, + "Y": 1.6023201, + "Z": 50.766724 + }, + "StopDistance": 1, + "TerritoryId": 957, + "InteractionType": "Emote", + "Emote": "greeting", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, + { + "DataId": 1037670, + "Position": { + "X": -508.84262, + "Y": -3.7109916E-05, + "Z": -20.767578 + }, + "TerritoryId": 957, + "InteractionType": "Emote", + "Emote": "greeting", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 1037676, + "Position": { + "X": -502.95264, + "Y": 12.375282, + "Z": 116.31946 + }, + "TerritoryId": 957, + "InteractionType": "Emote", + "Emote": "greeting", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1039516, + "Position": { + "X": -554.89435, + "Y": 11.402609, + "Z": 125.10864 + }, + "TerritoryId": 957, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/6.x - Endwalker/Side Quests/Thavnair/4202_Paint, Perfume, and Pecs.json b/QuestPaths/6.x - Endwalker/Side Quests/Thavnair/4202_Paint, Perfume, and Pecs.json new file mode 100644 index 00000000..194e951a --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Side Quests/Thavnair/4202_Paint, Perfume, and Pecs.json @@ -0,0 +1,110 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1039379, + "Position": { + "X": -478.3246, + "Y": 39.636753, + "Z": 95.47571 + }, + "TerritoryId": 957, + "InteractionType": "AcceptQuest", + "Fly": true, + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_AKTKZA023_04202_Q1_000_000", + "Answer": "TEXT_AKTKZA023_04202_A1_000_001" + } + ] + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1039380, + "Position": { + "X": -386.862, + "Y": 21.832859, + "Z": 206.77502 + }, + "TerritoryId": 957, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1039380, + "Position": { + "X": -386.862, + "Y": 21.832859, + "Z": 206.77502 + }, + "TerritoryId": 957, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2011911, + "Position": { + "X": -387.28925, + "Y": 21.744019, + "Z": 208.88062 + }, + "TerritoryId": 957, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 14118 + ] + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1039380, + "Position": { + "X": -386.862, + "Y": 21.832859, + "Z": 206.77502 + }, + "TerritoryId": 957, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1039379, + "Position": { + "X": -478.3246, + "Y": 39.636753, + "Z": 95.47571 + }, + "TerritoryId": 957, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/6.x - Endwalker/Side Quests/Thavnair/4204_A Nose for Trouble.json b/QuestPaths/6.x - Endwalker/Side Quests/Thavnair/4204_A Nose for Trouble.json new file mode 100644 index 00000000..0607e6d9 --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Side Quests/Thavnair/4204_A Nose for Trouble.json @@ -0,0 +1,149 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1039365, + "Position": { + "X": -490.37924, + "Y": 5.667216, + "Z": 63.553833 + }, + "TerritoryId": 957, + "InteractionType": "AcceptQuest", + "Fly": true + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1039366, + "Position": { + "X": -385.24457, + "Y": 15.095761, + "Z": 62.974 + }, + "TerritoryId": 957, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1039367, + "Position": { + "X": -161.85254, + "Y": 32.732735, + "Z": 210.74231 + }, + "TerritoryId": 957, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2011903, + "Position": { + "X": -161.5473, + "Y": 32.211792, + "Z": 225.36047 + }, + "TerritoryId": 957, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 2011904, + "Position": { + "X": -148.57715, + "Y": 34.10388, + "Z": 207.84314 + }, + "TerritoryId": 957, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, + { + "DataId": 2011902, + "Position": { + "X": -170.21442, + "Y": 31.814941, + "Z": 193.1029 + }, + "TerritoryId": 957, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 14117 + ], + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1039367, + "Position": { + "X": -161.85254, + "Y": 32.732735, + "Z": 210.74231 + }, + "TerritoryId": 957, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1039365, + "Position": { + "X": -490.37924, + "Y": 5.667216, + "Z": 63.553833 + }, + "TerritoryId": 957, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Thavnair - Great Work", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/6.x - Endwalker/Side Quests/Thavnair/4205_Missing Alchemist.json b/QuestPaths/6.x - Endwalker/Side Quests/Thavnair/4205_Missing Alchemist.json new file mode 100644 index 00000000..6da54942 --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Side Quests/Thavnair/4205_Missing Alchemist.json @@ -0,0 +1,185 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1039371, + "Position": { + "X": -409.93365, + "Y": 10.751212, + "Z": 33.035767 + }, + "TerritoryId": 957, + "InteractionType": "AcceptQuest", + "Fly": true + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1039372, + "Position": { + "X": 195.91052, + "Y": 4.763736, + "Z": 658.2893 + }, + "TerritoryId": 957, + "InteractionType": "Interact", + "AetheryteShortcut": "Thavnair - Yedlihmad" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1039373, + "Position": { + "X": -314.6258, + "Y": 0.70631444, + "Z": 561.12 + }, + "TerritoryId": 957, + "InteractionType": "Interact", + "Fly": true, + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_AKTKZA026_04205_Q1_000_000", + "Answer": "TEXT_AKTKZA026_04205_A1_000_001" + } + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2011905, + "Position": { + "X": -443.04572, + "Y": -0.22894287, + "Z": 800.7781 + }, + "TerritoryId": 957, + "InteractionType": "Interact", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 2011906, + "Position": { + "X": -458.42682, + "Y": -0.19836426, + "Z": 830.8689 + }, + "TerritoryId": 957, + "InteractionType": "Interact", + "Mount": false, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "Position": { + "X": -458.42682, + "Y": -0.19836426, + "Z": 830.8689 + }, + "StopDistance": 5, + "TerritoryId": 957, + "InteractionType": "Dive" + }, + { + "DataId": 2011908, + "Position": { + "X": -484.85547, + "Y": -72.22095, + "Z": 814.35876 + }, + "TerritoryId": 957, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 16 + ] + }, + { + "DataId": 2011907, + "Position": { + "X": -452.90308, + "Y": -67.00244, + "Z": 776.2417 + }, + "TerritoryId": 957, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, + { + "DataId": 2011909, + "Position": { + "X": -513.51184, + "Y": -52.689453, + "Z": 773.73914 + }, + "TerritoryId": 957, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 8 + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1039371, + "Position": { + "X": -409.93365, + "Y": 10.751212, + "Z": 33.035767 + }, + "TerritoryId": 957, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Thavnair - Great Work", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/6.x - Endwalker/Side Quests/Thavnair/4206_Hamsa Retrieval.json b/QuestPaths/6.x - Endwalker/Side Quests/Thavnair/4206_Hamsa Retrieval.json new file mode 100644 index 00000000..fd168aeb --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Side Quests/Thavnair/4206_Hamsa Retrieval.json @@ -0,0 +1,74 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1037685, + "Position": { + "X": -468.864, + "Y": 6.2912574, + "Z": 3.463745 + }, + "TerritoryId": 957, + "InteractionType": "AcceptQuest", + "Fly": true + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": -568.1513, + "Y": 40.91181, + "Z": -451.32486 + }, + "StopDistance": 0.5, + "TerritoryId": 957, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [ + 14116 + ], + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1039383, + "Position": { + "X": -567.6509, + "Y": 41.313267, + "Z": -448.41687 + }, + "TerritoryId": 957, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1037685, + "Position": { + "X": -468.864, + "Y": 6.2912574, + "Z": 3.463745 + }, + "TerritoryId": 957, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Thavnair - Great Work", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/6.x - Endwalker/Side Quests/Thavnair/4207_High Hopes for the Hatchery.json b/QuestPaths/6.x - Endwalker/Side Quests/Thavnair/4207_High Hopes for the Hatchery.json new file mode 100644 index 00000000..fae8cdf6 --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Side Quests/Thavnair/4207_High Hopes for the Hatchery.json @@ -0,0 +1,246 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1039385, + "Position": { + "X": -480.12518, + "Y": 5.362214, + "Z": 37.582886 + }, + "StopDistance": 0.5, + "TerritoryId": 957, + "InteractionType": "AcceptQuest", + "Fly": true + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1039386, + "Position": { + "X": -431.7846, + "Y": 72.61802, + "Z": -555.3826 + }, + "TerritoryId": 957, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": -477.78827, + "Y": 73.67918, + "Z": -542.7145 + }, + "TerritoryId": 957, + "InteractionType": "WalkTo", + "SkipConditions": { + "StepIf": { + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + } + } + }, + { + "DataId": 2011962, + "Position": { + "X": -477.16492, + "Y": 74.75391, + "Z": -544.5792 + }, + "TerritoryId": 957, + "InteractionType": "UseItem", + "ItemId": 2003199, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 2011963, + "Position": { + "X": -479.2401, + "Y": 74.784424, + "Z": -541.619 + }, + "TerritoryId": 957, + "InteractionType": "UseItem", + "ItemId": 2003199, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ], + "DelaySecondsAtStart": 3 + }, + { + "Position": { + "X": -482.98328, + "Y": 73.32367, + "Z": -521.75024 + }, + "TerritoryId": 957, + "InteractionType": "WalkTo", + "SkipConditions": { + "StepIf": { + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 16 + ] + } + } + }, + { + "DataId": 2011964, + "Position": { + "X": -484.67236, + "Y": 74.021484, + "Z": -523.15564 + }, + "TerritoryId": 957, + "InteractionType": "UseItem", + "ItemId": 2003199, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, + { + "DataId": 2011965, + "Position": { + "X": -483.6042, + "Y": 74.35718, + "Z": -519.7986 + }, + "TerritoryId": 957, + "InteractionType": "UseItem", + "ItemId": 2003199, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 16 + ], + "DelaySecondsAtStart": 3 + }, + { + "Position": { + "X": -475.0877, + "Y": 73.24273, + "Z": -512.62787 + }, + "TerritoryId": 957, + "InteractionType": "WalkTo" + }, + { + "DataId": 2011967, + "Position": { + "X": -476.92078, + "Y": 74.08252, + "Z": -511.43665 + }, + "TerritoryId": 957, + "InteractionType": "UseItem", + "ItemId": 2003199, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 4 + ] + }, + { + "DataId": 2011966, + "Position": { + "X": -473.0144, + "Y": 74.32666, + "Z": -512.3827 + }, + "TerritoryId": 957, + "InteractionType": "UseItem", + "ItemId": 2003199, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 8 + ], + "DelaySecondsAtStart": 3 + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1039386, + "Position": { + "X": -431.7846, + "Y": 72.61802, + "Z": -555.3826 + }, + "TerritoryId": 957, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1039385, + "Position": { + "X": -480.12518, + "Y": 5.362214, + "Z": 37.582886 + }, + "StopDistance": 0.5, + "TerritoryId": 957, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Thavnair - Great Work", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/6.x - Endwalker/Side Quests/Thavnair/4208_Cutting Edge Solutions.json b/QuestPaths/6.x - Endwalker/Side Quests/Thavnair/4208_Cutting Edge Solutions.json new file mode 100644 index 00000000..b7d4c1ec --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Side Quests/Thavnair/4208_Cutting Edge Solutions.json @@ -0,0 +1,98 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1037673, + "Position": { + "X": -517.0215, + "Y": 11.975277, + "Z": 100.541626 + }, + "TerritoryId": 957, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1039370, + "Position": { + "X": -106.21808, + "Y": 95.53504, + "Z": -700.4959 + }, + "TerritoryId": 957, + "InteractionType": "Interact", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, + { + "DataId": 1039368, + "Position": { + "X": -65.07977, + "Y": 89.860886, + "Z": -659.8764 + }, + "TerritoryId": 957, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 1039369, + "Position": { + "X": -66.14789, + "Y": 89.4264, + "Z": -635.8892 + }, + "TerritoryId": 957, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1037673, + "Position": { + "X": -517.0215, + "Y": 11.975277, + "Z": 100.541626 + }, + "TerritoryId": 957, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Thavnair - Great Work", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/6.x - Endwalker/Side Quests/Thavnair/4209_Rushing up That Hill.json b/QuestPaths/6.x - Endwalker/Side Quests/Thavnair/4209_Rushing up That Hill.json new file mode 100644 index 00000000..cc5d7b01 --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Side Quests/Thavnair/4209_Rushing up That Hill.json @@ -0,0 +1,64 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1037681, + "Position": { + "X": -554.74176, + "Y": 11.402611, + "Z": 137.31592 + }, + "TerritoryId": 957, + "InteractionType": "AcceptQuest", + "Fly": true + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": -281.16296, + "Y": 94.31451, + "Z": -289.12802 + }, + "TerritoryId": 957, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 2011910, + "Position": { + "X": -280.99493, + "Y": 95.87244, + "Z": -287.64783 + }, + "TerritoryId": 957, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1037681, + "Position": { + "X": -554.74176, + "Y": 11.402611, + "Z": 137.31592 + }, + "TerritoryId": 957, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Thavnair - Great Work", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/7.x - Dawntrail/Aether Currents/Kozama'uka/5064_Ripe for the Offering.json b/QuestPaths/7.x - Dawntrail/Aether Currents/Kozama'uka/5064_Ripe for the Offering.json index e832b271..585f5ba0 100644 --- a/QuestPaths/7.x - Dawntrail/Aether Currents/Kozama'uka/5064_Ripe for the Offering.json +++ b/QuestPaths/7.x - Dawntrail/Aether Currents/Kozama'uka/5064_Ripe for the Offering.json @@ -87,18 +87,12 @@ }, "TerritoryId": 1188, "InteractionType": "WalkTo", - "Comment": "Waypoint after swimming through the river" - }, - { - "DataId": 2013938, - "Position": { - "X": 516.80774, - "Y": 17.959839, - "Z": -348.0431 - }, - "TerritoryId": 1188, - "InteractionType": "AttuneAetherCurrent", - "AetherCurrentId": 2818425 + "Comment": "Waypoint after swimming through the river", + "SkipConditions": { + "StepIf": { + "AetheryteUnlocked": "Kozama'uka - Dock Poga" + } + } }, { "DataId": 1048826, @@ -108,7 +102,13 @@ "Z": -527.36707 }, "TerritoryId": 1188, - "InteractionType": "Interact" + "InteractionType": "Interact", + "AetheryteShortcut": "Kozama'uka - Dock Poga", + "SkipConditions": { + "AetheryteShortcutIf": { + "AetheryteLocked": "Kozama'uka - Dock Poga" + } + } } ] }, diff --git a/QuestPaths/7.x - Dawntrail/Custom Deliveries/Nitowikwe/5240_The Weight of a Train.json b/QuestPaths/7.x - Dawntrail/Custom Deliveries/Nitowikwe/5240_The Weight of a Train.json new file mode 100644 index 00000000..e9ea6e57 --- /dev/null +++ b/QuestPaths/7.x - Dawntrail/Custom Deliveries/Nitowikwe/5240_The Weight of a Train.json @@ -0,0 +1,76 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1048605, + "Position": { + "X": -358.38867, + "Y": 19.728025, + "Z": -105.02789 + }, + "TerritoryId": 1190, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Shaaloani - Sheshenewezi Springs", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2014456, + "Position": { + "X": -128.64886, + "Y": 16.311829, + "Z": -290.69965 + }, + "TerritoryId": 1190, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1048608, + "Position": { + "X": -126.57361, + "Y": 15.67948, + "Z": -369.46674 + }, + "TerritoryId": 1190, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1048605, + "Position": { + "X": -358.38867, + "Y": 19.728025, + "Z": -105.02789 + }, + "TerritoryId": 1190, + "InteractionType": "CompleteQuest", + "Fly": true, + "NextQuestId": 5241 + } + ] + } + ] +} diff --git a/QuestPaths/7.x - Dawntrail/Custom Deliveries/Nitowikwe/5241_His Heart Blazes On.json b/QuestPaths/7.x - Dawntrail/Custom Deliveries/Nitowikwe/5241_His Heart Blazes On.json new file mode 100644 index 00000000..1fd468d1 --- /dev/null +++ b/QuestPaths/7.x - Dawntrail/Custom Deliveries/Nitowikwe/5241_His Heart Blazes On.json @@ -0,0 +1,65 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "Position": { + "X": -363.2864, + "Y": 20.16234, + "Z": -90.06508 + }, + "TerritoryId": 1190, + "InteractionType": "WalkTo" + }, + { + "DataId": 1051495, + "Position": { + "X": -365.28577, + "Y": 20.14268, + "Z": -88.51758 + }, + "TerritoryId": 1190, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": -354.53677, + "Y": 19.32763, + "Z": -99.326805 + }, + "TerritoryId": 1190, + "InteractionType": "WalkTo", + "Mount": true + }, + { + "Position": { + "X": -91.25145, + "Y": 17.80576, + "Z": -267.2748 + }, + "TerritoryId": 1190, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 1051497, + "Position": { + "X": -91.5694, + "Y": 17.7503, + "Z": -268.54352 + }, + "TerritoryId": 1190, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/7.x - Dawntrail/Custom Deliveries/Wachumeqimeqi/4967_Appreciated Value.json b/QuestPaths/7.x - Dawntrail/Custom Deliveries/Wachumeqimeqi/4967_Appreciated Value.json new file mode 100644 index 00000000..69b00b50 --- /dev/null +++ b/QuestPaths/7.x - Dawntrail/Custom Deliveries/Wachumeqimeqi/4967_Appreciated Value.json @@ -0,0 +1,253 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "plogon_enjoyer", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1047095, + "Position": { + "X": 139.5437, + "Y": -13.99, + "Z": 10.60498 + }, + "TerritoryId": 1185, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2014440, + "Position": { + "X": -100.23657, + "Y": -19.882507, + "Z": 211.13904 + }, + "TerritoryId": 1185, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Tuliyollal] Wachumeqimeqi", + "[Tuliyollal] The For'ard Cabins" + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1052476, + "Position": { + "X": -100.175476, + "Y": -19.798239, + "Z": 209.73523 + }, + "TerritoryId": 1185, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1047183, + "Position": { + "X": -194.93408, + "Y": 28, + "Z": -553.1548 + }, + "TerritoryId": 1191, + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Prompt": "TEXT_KINGLZ001_04967_Q2_000_000", + "Type": "List", + "Answer": "TEXT_KINGLZ001_04967_A2_000_001" + } + ] + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1047173, + "Position": { + "X": -283.0396, + "Y": 37.000023, + "Z": -573.7545 + }, + "TerritoryId": 1191, + "InteractionType": "Interact", + "Fly": true + }, + { + "DataId": 1047174, + "Position": { + "X": -138.35364, + "Y": 42.999657, + "Z": -663.2639 + }, + "TerritoryId": 1191, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1047095, + "Position": { + "X": 139.5437, + "Y": -13.99, + "Z": 10.60498 + }, + "TerritoryId": 1185, + "InteractionType": "Interact", + "AetheryteShortcut": "Tuliyollal", + "AethernetShortcut": [ + "[Tuliyollal] Aetheryte Plaza", + "[Tuliyollal] Wachumeqimeqi" + ] + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1047177, + "Position": { + "X": -272.54144, + "Y": -9.063631e-6, + "Z": 143.57214 + }, + "TerritoryId": 1185, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Tuliyollal] Wachumeqimeqi", + "[Tuliyollal] The For'ard Cabins" + ] + } + ] + }, + { + "Sequence": 7, + "Steps": [ + { + "DataId": 1047179, + "Position": { + "X": 109.147705, + "Y": 42, + "Z": -353.29218 + }, + "TerritoryId": 1185, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Tuliyollal] The For'ard Cabins", + "[Tuliyollal] Brightploom Post" + ] + } + ] + }, + { + "Sequence": 8, + "Steps": [ + { + "DataId": 1047133, + "Position": { + "X": 180.37683, + "Y": -13.99, + "Z": 1.9073486 + }, + "TerritoryId": 1185, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Tuliyollal] Brightploom Post", + "[Tuliyollal] Wachumeqimeqi" + ] + } + ] + }, + { + "Sequence": 9, + "Steps": [ + { + "DataId": 2014437, + "Position": { + "X": 166.8269, + "Y": -14.023071, + "Z": 3.2807007 + }, + "TerritoryId": 1185, + "InteractionType": "Interact" + }, + { + "DataId": 2014438, + "Position": { + "X": 203.05176, + "Y": -14.023071, + "Z": 11.642578 + }, + "TerritoryId": 1185, + "InteractionType": "Interact" + }, + { + "DataId": 2014439, + "Position": { + "X": 232.95947, + "Y": -14.023071, + "Z": -9.99469 + }, + "TerritoryId": 1185, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 10, + "Steps": [ + { + "DataId": 1047095, + "Position": { + "X": 139.5437, + "Y": -13.99, + "Z": 10.60498 + }, + "TerritoryId": 1185, + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Prompt": "TEXT_KINGLZ001_04967_Q3_000_302", + "Type": "YesNo", + "Yes": true + } + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1047095, + "Position": { + "X": 139.5437, + "Y": -13.99, + "Z": 10.60498 + }, + "TerritoryId": 1185, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/7.x - Dawntrail/MSQ/A-Kozama'uka1-Urqopacha1/4869_The Lifting of Wings.json b/QuestPaths/7.x - Dawntrail/MSQ/A-Kozama'uka1-Urqopacha1/4869_The Lifting of Wings.json index 2c3e7a84..afb87e81 100644 --- a/QuestPaths/7.x - Dawntrail/MSQ/A-Kozama'uka1-Urqopacha1/4869_The Lifting of Wings.json +++ b/QuestPaths/7.x - Dawntrail/MSQ/A-Kozama'uka1-Urqopacha1/4869_The Lifting of Wings.json @@ -84,6 +84,17 @@ "DisableNavmesh": true, "Mount": true }, + { + "DataId": 2013938, + "Position": { + "X": 516.80774, + "Y": 17.959839, + "Z": -348.0431 + }, + "TerritoryId": 1188, + "InteractionType": "AttuneAetherCurrent", + "AetherCurrentId": 2818425 + }, { "DataId": 2013632, "Position": { @@ -103,6 +114,11 @@ { "Sequence": 5, "Steps": [ + { + "TerritoryId": 1188, + "InteractionType": "AttuneAetheryte", + "Aetheryte": "Kozama'uka - Dock Poga" + }, { "DataId": 2013937, "Position": { diff --git a/QuestPaths/7.x - Dawntrail/MSQ/A-Kozama'uka1-Urqopacha1/4879_For All Turali.json b/QuestPaths/7.x - Dawntrail/MSQ/A-Kozama'uka1-Urqopacha1/4879_For All Turali.json index 28e35590..28a6850c 100644 --- a/QuestPaths/7.x - Dawntrail/MSQ/A-Kozama'uka1-Urqopacha1/4879_For All Turali.json +++ b/QuestPaths/7.x - Dawntrail/MSQ/A-Kozama'uka1-Urqopacha1/4879_For All Turali.json @@ -58,7 +58,8 @@ { "TerritoryId": 1185, "InteractionType": "Duty", - "ContentFinderConditionId": 826 + "ContentFinderConditionId": 826, + "AutoDutyEnabled": true } ] }, diff --git a/QuestPaths/7.x - Dawntrail/MSQ/B-Kozama'uka2-Urqopacha2/4891_The High Luminary.json b/QuestPaths/7.x - Dawntrail/MSQ/B-Kozama'uka2-Urqopacha2/4891_The High Luminary.json index 8b1a2021..2ef3a8e6 100644 --- a/QuestPaths/7.x - Dawntrail/MSQ/B-Kozama'uka2-Urqopacha2/4891_The High Luminary.json +++ b/QuestPaths/7.x - Dawntrail/MSQ/B-Kozama'uka2-Urqopacha2/4891_The High Luminary.json @@ -23,7 +23,8 @@ { "TerritoryId": 1187, "InteractionType": "Duty", - "ContentFinderConditionId": 824 + "ContentFinderConditionId": 824, + "AutoDutyEnabled": true } ] }, diff --git a/QuestPaths/7.x - Dawntrail/MSQ/C-Yak T'el/4909_Road to the Golden City.json b/QuestPaths/7.x - Dawntrail/MSQ/C-Yak T'el/4909_Road to the Golden City.json index 384623ce..528fde3f 100644 --- a/QuestPaths/7.x - Dawntrail/MSQ/C-Yak T'el/4909_Road to the Golden City.json +++ b/QuestPaths/7.x - Dawntrail/MSQ/C-Yak T'el/4909_Road to the Golden City.json @@ -115,7 +115,8 @@ { "TerritoryId": 1189, "InteractionType": "Duty", - "ContentFinderConditionId": 829 + "ContentFinderConditionId": 829, + "AutoDutyEnabled": true } ] }, diff --git a/QuestPaths/7.x - Dawntrail/MSQ/D-Shaaloani-HeritageFound1/4916_Law of the Land.json b/QuestPaths/7.x - Dawntrail/MSQ/D-Shaaloani-HeritageFound1/4916_Law of the Land.json index 564a66cc..ccc5fe35 100644 --- a/QuestPaths/7.x - Dawntrail/MSQ/D-Shaaloani-HeritageFound1/4916_Law of the Land.json +++ b/QuestPaths/7.x - Dawntrail/MSQ/D-Shaaloani-HeritageFound1/4916_Law of the Land.json @@ -126,9 +126,9 @@ { "DataId": 2013807, "Position": { - "X": 34.927856, - "Y": 4.776001, - "Z": 297.68823 + "X": 37.15564, + "Y": 4.2266846, + "Z": 290.66907 }, "StopDistance": 1, "TerritoryId": 1190, diff --git a/QuestPaths/7.x - Dawntrail/MSQ/D-Shaaloani-HeritageFound1/4926_All Aboard.json b/QuestPaths/7.x - Dawntrail/MSQ/D-Shaaloani-HeritageFound1/4926_All Aboard.json index 51a11987..682576cb 100644 --- a/QuestPaths/7.x - Dawntrail/MSQ/D-Shaaloani-HeritageFound1/4926_All Aboard.json +++ b/QuestPaths/7.x - Dawntrail/MSQ/D-Shaaloani-HeritageFound1/4926_All Aboard.json @@ -60,7 +60,8 @@ { "TerritoryId": 1219, "InteractionType": "Duty", - "ContentFinderConditionId": 831 + "ContentFinderConditionId": 831, + "AutoDutyEnabled": true } ] }, diff --git a/QuestPaths/7.x - Dawntrail/MSQ/E-SolutionNine-HeritageFound2/4934_The Queen's Tour.json b/QuestPaths/7.x - Dawntrail/MSQ/E-SolutionNine-HeritageFound2/4934_The Queen's Tour.json index 313eaf38..18f9d1e9 100644 --- a/QuestPaths/7.x - Dawntrail/MSQ/E-SolutionNine-HeritageFound2/4934_The Queen's Tour.json +++ b/QuestPaths/7.x - Dawntrail/MSQ/E-SolutionNine-HeritageFound2/4934_The Queen's Tour.json @@ -88,6 +88,15 @@ "InteractionType": "AttuneAethernetShard", "AethernetShard": "[Solution Nine] Nexus Arcade" }, + { + "Position": { + "X": -320.34818, + "Y": 9.519508, + "Z": -6.9244547 + }, + "TerritoryId": 1186, + "InteractionType": "WalkTo" + }, { "DataId": 1048065, "Position": { @@ -97,7 +106,8 @@ }, "StopDistance": 0.25, "TerritoryId": 1186, - "InteractionType": "Interact" + "InteractionType": "Interact", + "DelaySecondsAtStart": 3 } ] }, diff --git a/QuestPaths/7.x - Dawntrail/MSQ/E-SolutionNine-HeritageFound2/4945_The Resilient Son.json b/QuestPaths/7.x - Dawntrail/MSQ/E-SolutionNine-HeritageFound2/4945_The Resilient Son.json index 8e967708..738c8782 100644 --- a/QuestPaths/7.x - Dawntrail/MSQ/E-SolutionNine-HeritageFound2/4945_The Resilient Son.json +++ b/QuestPaths/7.x - Dawntrail/MSQ/E-SolutionNine-HeritageFound2/4945_The Resilient Son.json @@ -20,6 +20,16 @@ { "Sequence": 1, "Steps": [ + { + "Position": { + "X": -294.07196, + "Y": 44.504536, + "Z": -800.55725 + }, + "TerritoryId": 1191, + "InteractionType": "WalkTo", + "$": "IndexOutOfRangeException when trying to fly from the position you stand at for accepting the quest?" + }, { "DataId": 1048140, "Position": { @@ -39,7 +49,8 @@ { "TerritoryId": 1191, "InteractionType": "Duty", - "ContentFinderConditionId": 825 + "ContentFinderConditionId": 825, + "AutoDutyEnabled": true } ] }, diff --git a/QuestPaths/7.x - Dawntrail/MSQ/F-Living Memory/4959_Dawntrail.json b/QuestPaths/7.x - Dawntrail/MSQ/F-Living Memory/4959_Dawntrail.json index 778f11db..cafc8975 100644 --- a/QuestPaths/7.x - Dawntrail/MSQ/F-Living Memory/4959_Dawntrail.json +++ b/QuestPaths/7.x - Dawntrail/MSQ/F-Living Memory/4959_Dawntrail.json @@ -56,7 +56,8 @@ { "TerritoryId": 1192, "InteractionType": "Duty", - "ContentFinderConditionId": 827 + "ContentFinderConditionId": 827, + "AutoDutyEnabled": true } ] }, diff --git a/QuestPaths/7.x - Dawntrail/MSQ/G-7.1/5246_In Search of the Past.json b/QuestPaths/7.x - Dawntrail/MSQ/G-7.1/5246_In Search of the Past.json index 6d0878d1..40f6d44d 100644 --- a/QuestPaths/7.x - Dawntrail/MSQ/G-7.1/5246_In Search of the Past.json +++ b/QuestPaths/7.x - Dawntrail/MSQ/G-7.1/5246_In Search of the Past.json @@ -122,7 +122,8 @@ { "TerritoryId": 1191, "InteractionType": "Duty", - "ContentFinderConditionId": 1008 + "ContentFinderConditionId": 1008, + "AutoDutyEnabled": true } ] }, diff --git a/QuestPaths/7.x - Dawntrail/Seasonal Events/Heavensturn (2025)/5186_Heavensssturn Trivia.json b/QuestPaths/7.x - Dawntrail/Seasonal Events/Heavensturn (2025)/5186_Heavensssturn Trivia.json new file mode 100644 index 00000000..d6623a1b --- /dev/null +++ b/QuestPaths/7.x - Dawntrail/Seasonal Events/Heavensturn (2025)/5186_Heavensssturn Trivia.json @@ -0,0 +1,118 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Starr", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1050356, + "Position": { + "X": 17.288391, + "Y": 45.656, + "Z": 133.95886 + }, + "TerritoryId": 128, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] The Aftcastle" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InTerritory": [ + 128 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1050357, + "Position": { + "X": -4.6845703, + "Y": 40.000004, + "Z": 73.3501 + }, + "TerritoryId": 128, + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Prompt": "TEXT_FESNYX101_05186_Q1_000_000", + "Answer": "TEXT_FESNYX101_05186_A1_000_000", + "Type": "List" + } + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1050358, + "Position": { + "X": -18.143005, + "Y": 44, + "Z": -33.49359 + }, + "TerritoryId": 128, + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Prompt": "TEXT_FESNYX101_05186_Q2_000_000", + "Answer": "TEXT_FESNYX101_05186_A2_000_001", + "Type": "List" + } + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1050359, + "Position": { + "X": -44.235962, + "Y": 39.473606, + "Z": -163.77509 + }, + "TerritoryId": 128, + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Prompt": "TEXT_FESNYX101_05186_Q3_000_000", + "Answer": "TEXT_FESNYX101_05186_A3_000_000", + "Type": "List" + } + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1050356, + "Position": { + "X": 17.288391, + "Y": 45.656, + "Z": 133.95886 + }, + "TerritoryId": 128, + "InteractionType": "CompleteQuest", + "AethernetShortcut": [ + "[Limsa Lominsa] Culinarians' Guild", + "[Limsa Lominsa] The Aftcastle" + ] + } + ] + } + ] +} diff --git a/QuestPaths/7.x - Dawntrail/Side Quests/Heritage Found/5149_Gwok Away.json b/QuestPaths/7.x - Dawntrail/Side Quests/Heritage Found/5149_Gwok Away.json index 53995c76..3ccf74ea 100644 --- a/QuestPaths/7.x - Dawntrail/Side Quests/Heritage Found/5149_Gwok Away.json +++ b/QuestPaths/7.x - Dawntrail/Side Quests/Heritage Found/5149_Gwok Away.json @@ -20,6 +20,52 @@ { "Sequence": 1, "Steps": [ + { + "Position": { + "X": -212.22218, + "Y": 30, + "Z": -620.3656 + }, + "TerritoryId": 1191, + "InteractionType": "WalkTo", + "SkipConditions": { + "StepIf": { + "Flying": "Unlocked", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + } + } + }, + { + "DataId": 2014079, + "Position": { + "X": -213.24487, + "Y": 30.838379, + "Z": -618.0362 + }, + "TerritoryId": 1191, + "InteractionType": "UseItem", + "ItemId": 2003594, + "SkipConditions": { + "StepIf": { + "Flying": "Unlocked" + } + }, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, { "DataId": 2014079, "Position": { @@ -41,6 +87,52 @@ 64 ] }, + { + "Position": { + "X": -274.73184, + "Y": 36.99997, + "Z": -506.5031 + }, + "TerritoryId": 1191, + "InteractionType": "WalkTo", + "SkipConditions": { + "StepIf": { + "Flying": "Unlocked", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + } + } + }, + { + "DataId": 2014078, + "Position": { + "X": -272.8161, + "Y": 37.857544, + "Z": -504.9058 + }, + "TerritoryId": 1191, + "InteractionType": "UseItem", + "ItemId": 2003594, + "SkipConditions": { + "StepIf": { + "Flying": "Unlocked" + } + }, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, { "DataId": 2014078, "Position": { @@ -62,6 +154,52 @@ 128 ] }, + { + "Position": { + "X": -346.93515, + "Y": 37.00001, + "Z": -611.26953 + }, + "TerritoryId": 1191, + "InteractionType": "WalkTo", + "SkipConditions": { + "StepIf": { + "Flying": "Unlocked", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + } + } + }, + { + "DataId": 2014080, + "Position": { + "X": -349.1112, + "Y": 37.857544, + "Z": -610.5898 + }, + "TerritoryId": 1191, + "InteractionType": "UseItem", + "ItemId": 2003594, + "SkipConditions": { + "StepIf": { + "Flying": "Unlocked" + } + }, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, { "DataId": 2014080, "Position": { diff --git a/QuestPaths/7.x - Dawntrail/Side Quests/Kozama'uka/5062_Danger at the Dock.json b/QuestPaths/7.x - Dawntrail/Side Quests/Kozama'uka/5062_Danger at the Dock.json index bb1114f3..43596202 100644 --- a/QuestPaths/7.x - Dawntrail/Side Quests/Kozama'uka/5062_Danger at the Dock.json +++ b/QuestPaths/7.x - Dawntrail/Side Quests/Kozama'uka/5062_Danger at the Dock.json @@ -23,9 +23,9 @@ { "DataId": 2014196, "Position": { - "X": 728.7556, - "Y": 8.010925, - "Z": -287.95306 + "X": 819.6382, + "Y": 14.084045, + "Z": -312.21484 }, "TerritoryId": 1188, "InteractionType": "Combat", diff --git a/QuestPaths/quest-v1.json b/QuestPaths/quest-v1.json index 35969407..99105c93 100644 --- a/QuestPaths/quest-v1.json +++ b/QuestPaths/quest-v1.json @@ -80,7 +80,7 @@ "null" ], "description": "Set if pathfinding should stop closer or further away from the default stop distance", - "exclusiveMinimum": 0 + "minimum": 0.25 }, "IgnoreDistanceToObject": { "type": "boolean", @@ -617,6 +617,10 @@ "description": "The enemy data id which is supposed to be killed", "type": "integer" }, + "NameId": { + "description": "Name id of the enemy which is supposed to be killed, helpful if multiple nearby enemies share the same DataId", + "type": "integer" + }, "MinimumKillCount": { "description": "Overworld mobs: If this number of mobs has been killed, will wait a bit before attempting to pull another mob to see if the quest progresses", "type": "integer" @@ -854,7 +858,9 @@ "examineself", "joy", "mogdance", - "salute" + "salute", + "laugh", + "greeting" ] } } @@ -958,6 +964,7 @@ "Buffet (Griffin)", "Trample", "Fumigate", + "Roar", "Seed", "Inhale", "Siphon Snout", @@ -974,7 +981,10 @@ "Hide", "Slug Shot", "Bosom Brook", - "Souleater" + "Souleater", + "Fire III", + "Adloquium", + "Water Cannon" ] } }, @@ -1208,6 +1218,9 @@ "exclusiveMinimum": 0, "exclusiveMaximum": 3000 }, + "AutoDutyEnabled": { + "type": "boolean" + }, "DataId": { "type": "null" }, diff --git a/Questionable.Model/Questing/ComplexCombatData.cs b/Questionable.Model/Questing/ComplexCombatData.cs index 5f85c243..adc80f4a 100644 --- a/Questionable.Model/Questing/ComplexCombatData.cs +++ b/Questionable.Model/Questing/ComplexCombatData.cs @@ -5,6 +5,7 @@ namespace Questionable.Model.Questing; public sealed class ComplexCombatData { public uint DataId { get; set; } + public uint? NameId { get; set; } // TODO Use this public uint? MinimumKillCount { get; set; } diff --git a/Questionable.Model/Questing/Converter/ActionConverter.cs b/Questionable.Model/Questing/Converter/ActionConverter.cs index 141e4f2e..27436b93 100644 --- a/Questionable.Model/Questing/Converter/ActionConverter.cs +++ b/Questionable.Model/Questing/Converter/ActionConverter.cs @@ -27,6 +27,7 @@ public sealed class ActionConverter() : EnumConverter(Values) { EAction.BuffetGriffin, "Buffet (Griffin)" }, { EAction.Trample, "Trample" }, { EAction.Fumigate, "Fumigate" }, + { EAction.Roar, "Roar" }, { EAction.Seed, "Seed" }, { EAction.Inhale, "Inhale" }, { EAction.SiphonSnout, "Siphon Snout" }, @@ -44,5 +45,8 @@ public sealed class ActionConverter() : EnumConverter(Values) { EAction.SlugShot, "Slug Shot" }, { EAction.BosomBrook, "Bosom Brook" }, { EAction.Souleater, "Souleater" }, + { EAction.Fire3, "Fire III" }, + { EAction.Adloquium, "Adloquium" }, + { EAction.WaterCannon, "Water Cannon" }, }; } diff --git a/Questionable.Model/Questing/Converter/EmoteConverter.cs b/Questionable.Model/Questing/Converter/EmoteConverter.cs index 9290a50c..bdfe5581 100644 --- a/Questionable.Model/Questing/Converter/EmoteConverter.cs +++ b/Questionable.Model/Questing/Converter/EmoteConverter.cs @@ -18,6 +18,7 @@ public sealed class EmoteConverter() : EnumConverter(Values) { EEmote.Wave, "wave" }, { EEmote.Joy, "joy" }, { EEmote.Kneel, "kneel" }, + { EEmote.Laugh, "laugh" }, { EEmote.Lookout, "lookout" }, { EEmote.Me, "me" }, { EEmote.Deny, "deny" }, @@ -42,6 +43,7 @@ public sealed class EmoteConverter() : EnumConverter(Values) { EEmote.Flex, "flex" }, { EEmote.Respect, "respect" }, { EEmote.Box, "box" }, - { EEmote.Uchiwasshoi, "uchiwasshoi" } + { EEmote.Greeting, "greeting" }, + { EEmote.Uchiwasshoi, "uchiwasshoi" }, }; } diff --git a/Questionable.Model/Questing/EAction.cs b/Questionable.Model/Questing/EAction.cs index 1b23da04..b8b97f32 100644 --- a/Questionable.Model/Questing/EAction.cs +++ b/Questionable.Model/Questing/EAction.cs @@ -26,6 +26,7 @@ public enum EAction BuffetGriffin = 4583, Trample = 4585, Fumigate = 5872, + Roar = 6293, Seed = 6294, MagitekPulse = 8624, MagitekThunder = 8625, @@ -47,9 +48,12 @@ public enum EAction Katon = 2266, Raiton = 2267, RabbitMedium = 2272, - SlugShot = 7412, + SlugShot = 2868, BosomBrook = 37173, Souleater = 3632, + Fire3 = 152, + Adloquium = 185, + WaterCannon = 11385, CollectMiner = 240, ScourMiner = 22182, @@ -79,6 +83,7 @@ public static class EActionExtensions or EAction.BuffetGriffin or EAction.Trample or EAction.Fumigate + or EAction.Roar or EAction.Seed or EAction.Inhale or EAction.SiphonSnout diff --git a/Questionable.Model/Questing/EEmote.cs b/Questionable.Model/Questing/EEmote.cs index 4292d1ac..78e7b650 100644 --- a/Questionable.Model/Questing/EEmote.cs +++ b/Questionable.Model/Questing/EEmote.cs @@ -19,6 +19,7 @@ public enum EEmote Wave = 16, Joy = 18, Kneel = 19, + Laugh = 21, Lookout = 22, Me = 23, Deny = 25, @@ -43,6 +44,7 @@ public enum EEmote Flex = 139, Respect = 140, Box = 166, + Greeting = 172, Uchiwasshoi = 278 } diff --git a/Questionable.Model/Questing/ElementId.cs b/Questionable.Model/Questing/ElementId.cs index 396c3524..a553ff0d 100644 --- a/Questionable.Model/Questing/ElementId.cs +++ b/Questionable.Model/Questing/ElementId.cs @@ -56,6 +56,19 @@ public abstract class ElementId : IComparable, IEquatable return new LeveId(ushort.Parse(value.Substring(1), CultureInfo.InvariantCulture)); else if (value.StartsWith("S")) return new SatisfactionSupplyNpcId(ushort.Parse(value.Substring(1), CultureInfo.InvariantCulture)); + else if (value.StartsWith("A")) + { + value = value.Substring(1); + string[] parts = value.Split('x'); + if (parts.Length == 2) + { + return new AlliedSocietyDailyId( + byte.Parse(parts[0], CultureInfo.InvariantCulture), + byte.Parse(parts[1], CultureInfo.InvariantCulture)); + } + else + return new AlliedSocietyDailyId(byte.Parse(value, CultureInfo.InvariantCulture)); + } else return new QuestId(ushort.Parse(value, CultureInfo.InvariantCulture)); } @@ -70,7 +83,8 @@ public abstract class ElementId : IComparable, IEquatable catch (Exception) { elementId = null; - return false; + //return false; + throw; } } } @@ -98,3 +112,14 @@ public sealed class SatisfactionSupplyNpcId(ushort value) : ElementId(value) return "S" + Value.ToString(CultureInfo.InvariantCulture); } } + +public sealed class AlliedSocietyDailyId(byte alliedSociety, byte rank = 0) : ElementId((ushort)(alliedSociety * 10 + rank)) +{ + public byte AlliedSociety { get; } = alliedSociety; + public byte Rank { get; } = rank; + + public override string ToString() + { + return "A" + AlliedSociety + "x" + Rank; + } +} diff --git a/Questionable.Model/Questing/QuestStep.cs b/Questionable.Model/Questing/QuestStep.cs index 0b4a05a2..bd1ce304 100644 --- a/Questionable.Model/Questing/QuestStep.cs +++ b/Questionable.Model/Questing/QuestStep.cs @@ -74,6 +74,7 @@ public sealed class QuestStep public JumpDestination? JumpDestination { get; set; } public uint? ContentFinderConditionId { get; set; } + public bool AutoDutyEnabled { get; set; } public SkipConditions? SkipConditions { get; set; } public List?> RequiredQuestVariables { get; set; } = new(); diff --git a/Questionable.sln.DotSettings b/Questionable.sln.DotSettings index 830879e0..ef6a1abd 100644 --- a/Questionable.sln.DotSettings +++ b/Questionable.sln.DotSettings @@ -25,6 +25,7 @@ True True True + True True True True diff --git a/Questionable/Configuration.cs b/Questionable/Configuration.cs index 29358b34..90c42bb5 100644 --- a/Questionable/Configuration.cs +++ b/Questionable/Configuration.cs @@ -1,4 +1,5 @@ -using Dalamud.Configuration; +using System.Collections.Generic; +using Dalamud.Configuration; using Dalamud.Game.Text; using FFXIVClientStructs.FFXIV.Client.UI.Agent; using LLib.ImGui; @@ -7,11 +8,12 @@ namespace Questionable; internal sealed class Configuration : IPluginConfiguration { - public const int PluginSetupVersion = 2; + public const int PluginSetupVersion = 4; - public int Version { get; set; } =1 ; + public int Version { get; set; } = 1; public int PluginSetupCompleteVersion { get; set; } public GeneralConfiguration General { get; } = new(); + public DutyConfiguration Duties { get; } = new(); public NotificationConfiguration Notifications { get; } = new(); public AdvancedConfiguration Advanced { get; } = new(); public WindowConfig DebugWindowConfig { get; } = new(); @@ -23,6 +25,7 @@ internal sealed class Configuration : IPluginConfiguration internal sealed class GeneralConfiguration { + public ECombatModule CombatModule { get; set; } = ECombatModule.None; public uint MountId { get; set; } = 71; public GrandCompany GrandCompany { get; set; } = GrandCompany.None; public bool HideInAllInstances { get; set; } = true; @@ -31,6 +34,13 @@ internal sealed class Configuration : IPluginConfiguration public bool ConfigureTextAdvance { get; set; } = true; } + internal sealed class DutyConfiguration + { + public bool RunInstancedContentWithAutoDuty { get; set; } + public HashSet WhitelistedDutyCfcIds { get; set; } = []; + public HashSet BlacklistedDutyCfcIds { get; set; } = []; + } + internal sealed class NotificationConfiguration { public bool Enabled { get; set; } = true; @@ -45,4 +55,12 @@ internal sealed class Configuration : IPluginConfiguration public bool NeverFly { get; set; } public bool AdditionalStatusInformation { get; set; } } + + internal enum ECombatModule + { + None, + BossMod, + WrathCombo, + RotationSolverReborn, + } } diff --git a/Questionable/Controller/CombatController.cs b/Questionable/Controller/CombatController.cs index 91eca6c1..73fe17df 100644 --- a/Questionable/Controller/CombatController.cs +++ b/Questionable/Controller/CombatController.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using System.Diagnostics.CodeAnalysis; using System.Linq; +using System.Numerics; using Dalamud.Game.ClientState.Conditions; using Dalamud.Game.ClientState.Objects; using Dalamud.Game.ClientState.Objects.Enums; @@ -10,11 +11,14 @@ using Dalamud.Plugin.Services; using FFXIVClientStructs.FFXIV.Client.Game; using FFXIVClientStructs.FFXIV.Client.Game.Object; using FFXIVClientStructs.FFXIV.Client.Game.UI; -using FFXIVClientStructs.FFXIV.Common.Math; +using FFXIVClientStructs.FFXIV.Client.System.Framework; +using FFXIVClientStructs.FFXIV.Common.Component.BGCollision; using Microsoft.Extensions.Logging; using Questionable.Controller.CombatModules; +using Questionable.Controller.Steps; using Questionable.Controller.Utils; using Questionable.Functions; +using Questionable.Model; using Questionable.Model.Questing; namespace Questionable.Controller; @@ -36,6 +40,7 @@ internal sealed class CombatController : IDisposable private CurrentFight? _currentFight; private bool _wasInCombat; private ulong? _lastTargetId; + private List? _previousQuestVariables; public CombatController( IEnumerable combatModules, @@ -75,8 +80,11 @@ internal sealed class CombatController : IDisposable { Module = combatModule, Data = combatData, + LastDistanceCheck = DateTime.Now, }; - _wasInCombat = combatData.SpawnType is EEnemySpawnType.QuestInterruption or EEnemySpawnType.FinishCombatIfAny; + _wasInCombat = + combatData.SpawnType is EEnemySpawnType.QuestInterruption or EEnemySpawnType.FinishCombatIfAny; + UpdateLastTargetAndQuestVariables(null); return true; } else @@ -112,7 +120,31 @@ internal sealed class CombatController : IDisposable { // wait until the game cleans up the target if (lastTarget.IsDead) - return EStatus.InCombat; + { + ElementId? elementId = _currentFight.Data.ElementId; + QuestProgressInfo? questProgressInfo = elementId != null + ? _questFunctions.GetQuestProgressInfo(elementId) + : null; + + if (questProgressInfo != null && + questProgressInfo.Sequence == _currentFight.Data.Sequence && + QuestWorkUtils.HasCompletionFlags(_currentFight.Data.CompletionQuestVariablesFlags) && + QuestWorkUtils.MatchesQuestWork(_currentFight.Data.CompletionQuestVariablesFlags, + questProgressInfo)) + { + // would be the final enemy of the bunch + return EStatus.InCombat; + } + else if (questProgressInfo != null && + questProgressInfo.Sequence == _currentFight.Data.Sequence && + _previousQuestVariables != null && + !questProgressInfo.Variables.SequenceEqual(_previousQuestVariables)) + { + UpdateLastTargetAndQuestVariables(null); + } + else + return EStatus.InCombat; + } } else _lastTargetId = null; @@ -129,7 +161,18 @@ internal sealed class CombatController : IDisposable if (nextTarget != null && nextTarget.Equals(target)) { - _currentFight.Module.Update(target); + if (!IsMovingOrShouldMove(target)) + { + try + { + _currentFight.Module.Update(target); + } + catch (TaskException e) + { + _logger.LogWarning(e, "Combat was interrupted, stopping: {Exception}", e.Message); + SetTarget(null); + } + } } else if (nextTarget != null) { @@ -242,7 +285,8 @@ internal sealed class CombatController : IDisposable if (_currentFight.Data.CompletedComplexDatas.Contains(i)) continue; - if (complexCombatData[i].DataId == battleNpc.DataId) + if (complexCombatData[i].DataId == battleNpc.DataId && + (complexCombatData[i].NameId == null || complexCombatData[i].NameId == battleNpc.NameId)) return 100; } } @@ -261,7 +305,9 @@ internal sealed class CombatController : IDisposable if (gameObjectStruct->NamePlateIconId is 60093 or 60732) return 0; - var enemyData = _currentFight.Data.ComplexCombatDatas.FirstOrDefault(x => x.DataId == battleNpc.DataId); + var enemyData = _currentFight.Data.ComplexCombatDatas + .FirstOrDefault(x => x.DataId == battleNpc.DataId && + (x.NameId == null || x.NameId == battleNpc.NameId)); if (enemyData is { IgnoreQuestMarker: true }) { if (battleNpc.StatusFlags.HasFlag(StatusFlags.InCombat)) @@ -320,17 +366,107 @@ internal sealed class CombatController : IDisposable { _logger.LogInformation("Moving to target, distance: {Distance:N2}", Vector3.Distance(_clientState.LocalPlayer!.Position, target.Position)); - _currentFight!.Module.MoveToTarget(target); + MoveToTarget(target); } else { _logger.LogInformation("Setting target to {TargetName} ({TargetId:X8})", target.Name.ToString(), target.GameObjectId); _targetManager.Target = target; - _currentFight!.Module.MoveToTarget(target); + MoveToTarget(target); } } + private bool IsMovingOrShouldMove(IGameObject gameObject) + { + if (_movementController.IsPathfinding || _movementController.IsPathRunning) + return true; + + if (DateTime.Now > _currentFight!.LastDistanceCheck.AddSeconds(10)) + { + MoveToTarget(gameObject); + _currentFight!.LastDistanceCheck = DateTime.Now; + return true; + } + + return false; + } + + private void MoveToTarget(IGameObject gameObject) + { + var player = _clientState.LocalPlayer; + if (player == null) + return; // uh oh + + float hitboxOffset = player.HitboxRadius + gameObject.HitboxRadius; + float actualDistance = Vector3.Distance(player.Position, gameObject.Position); + float maxDistance = player.ClassJob.ValueNullable?.Role is 3 or 4 ? 20f : 2.9f; + bool outOfRange = actualDistance - hitboxOffset >= maxDistance; + bool isInLineOfSight = IsInLineOfSight(gameObject); + if (outOfRange || !isInLineOfSight) + { + bool useNavmesh = actualDistance - hitboxOffset > 5f; + if (!outOfRange && !isInLineOfSight) + { + maxDistance = Math.Min(maxDistance, actualDistance) / 2; + useNavmesh = true; + } + + if (!useNavmesh) + { + _logger.LogInformation("Moving to {TargetName} ({DataId}) to attack", gameObject.Name, + gameObject.DataId); + _movementController.NavigateTo(EMovementType.Combat, null, [gameObject.Position], false, false, + maxDistance + hitboxOffset - 0.25f, true); + } + else + { + _logger.LogInformation("Moving to {TargetName} ({DataId}) to attack (with navmesh)", gameObject.Name, + gameObject.DataId); + _movementController.NavigateTo(EMovementType.Combat, null, gameObject.Position, false, false, + maxDistance + hitboxOffset - 0.25f, true); + } + } + } + + internal unsafe bool IsInLineOfSight(IGameObject target) + { + Vector3 sourcePos = _clientState.LocalPlayer!.Position; + sourcePos.Y += 2; + + Vector3 targetPos = target.Position; + targetPos.Y += 2; + + Vector3 direction = targetPos - sourcePos; + float distance = direction.Length(); + + direction = Vector3.Normalize(direction); + + Vector3 originVect = new Vector3(sourcePos.X, sourcePos.Y, sourcePos.Z); + Vector3 directionVect = new Vector3(direction.X, direction.Y, direction.Z); + + RaycastHit hit; + var flags = stackalloc int[] { 0x4000, 0, 0x4000, 0 }; + var isLoSBlocked = + Framework.Instance()->BGCollisionModule->RaycastMaterialFilter(&hit, &originVect, &directionVect, distance, + 1, flags); + + return isLoSBlocked == false; + } + + private void UpdateLastTargetAndQuestVariables(IGameObject? target) + { + _lastTargetId = target?.GameObjectId; + _previousQuestVariables = _currentFight!.Data.ElementId != null + ? _questFunctions.GetQuestProgressInfo(_currentFight.Data.ElementId)?.Variables + : null; + /* + _logger.LogTrace("UpdateTargetData: {TargetId}; {QuestVariables}", + target?.GameObjectId.ToString("X8", CultureInfo.InvariantCulture) ?? "null", + _previousQuestVariables != null ? string.Join(", ", _previousQuestVariables) : "null"); + */ + } + public void Stop(string label) { using var scope = _logger.BeginScope(label); @@ -356,11 +492,14 @@ internal sealed class CombatController : IDisposable { public required ICombatModule Module { get; init; } public required CombatData Data { get; init; } + public required DateTime LastDistanceCheck { get; set; } } public sealed class CombatData { public required ElementId? ElementId { get; init; } + public required int Sequence { get; init; } + public required IList CompletionQuestVariablesFlags { get; init; } public required EEnemySpawnType SpawnType { get; init; } public required List KillEnemyDataIds { get; init; } public required List ComplexCombatDatas { get; init; } diff --git a/Questionable/Controller/CombatModules/BossModModule.cs b/Questionable/Controller/CombatModules/BossModModule.cs new file mode 100644 index 00000000..ee25967f --- /dev/null +++ b/Questionable/Controller/CombatModules/BossModModule.cs @@ -0,0 +1,96 @@ +using Dalamud.Game.ClientState.Objects.Types; +using Dalamud.Plugin; +using Dalamud.Plugin.Ipc; +using Dalamud.Plugin.Ipc.Exceptions; +using Dalamud.Plugin.Services; +using Json.Schema; +using Microsoft.Extensions.Logging; +using Questionable.Model; +using System; +using System.IO; +using System.Numerics; + +namespace Questionable.Controller.CombatModules; + +internal sealed class BossModModule : ICombatModule, IDisposable +{ + private const string Name = "BossMod"; + private readonly ILogger _logger; + private readonly Configuration _configuration; + private readonly ICallGateSubscriber _getPreset; + private readonly ICallGateSubscriber _createPreset; + private readonly ICallGateSubscriber _setPreset; + private readonly ICallGateSubscriber _clearPreset; + + private static Stream Preset => typeof(BossModModule).Assembly.GetManifestResourceStream("Questionable.Controller.CombatModules.BossModPreset")!; + + public BossModModule( + ILogger logger, + IDalamudPluginInterface pluginInterface, + Configuration configuration) + { + _logger = logger; + _configuration = configuration; + + _getPreset = pluginInterface.GetIpcSubscriber($"{Name}.Presets.Get"); + _createPreset = pluginInterface.GetIpcSubscriber($"{Name}.Presets.Create"); + _setPreset = pluginInterface.GetIpcSubscriber($"{Name}.Presets.SetActive"); + _clearPreset = pluginInterface.GetIpcSubscriber($"{Name}.Presets.ClearActive"); + } + + public bool CanHandleFight(CombatController.CombatData combatData) + { + if (_configuration.General.CombatModule != Configuration.ECombatModule.BossMod) + return false; + + try + { + return _getPreset.HasFunction; + } + catch (IpcError) + { + return false; + } + } + + public bool Start(CombatController.CombatData combatData) + { + try + { + if (_getPreset.InvokeFunc("Questionable") == null) + { + using var reader = new StreamReader(Preset); + _logger.LogInformation("Loading Questionable BossMod Preset: {LoadedState}", _createPreset.InvokeFunc(reader.ReadToEnd(), true)); + } + _setPreset.InvokeFunc("Questionable"); + return true; + } + catch (IpcError e) + { + _logger.LogWarning(e, "Could not start combat"); + return false; + } + } + + public bool Stop() + { + try + { + _clearPreset.InvokeFunc(); + return true; + } + catch (IpcError e) + { + _logger.LogWarning(e, "Could not turn off combat"); + return false; + } + } + + public void Update(IGameObject gameObject) + { + } + + public bool CanAttack(IBattleNpc target) => true; + + public void Dispose() => Stop(); +} diff --git a/Questionable/Controller/CombatModules/BossModPreset.json b/Questionable/Controller/CombatModules/BossModPreset.json new file mode 100644 index 00000000..b6c6a28a --- /dev/null +++ b/Questionable/Controller/CombatModules/BossModPreset.json @@ -0,0 +1,377 @@ +{ + "Name": "Questionable", + "Modules": { + "BossMod.Autorotation.xan.DNC": [ + { + "Track": "Buffs", + "Option": "Auto" + }, + { + "Track": "Buffs", + "Option": "Delay", + "Mod": "Shift, Ctrl" + }, + { + "Track": "AOE", + "Option": "AOE" + }, + { + "Track": "Targeting", + "Option": "Manual" + } + ], + "BossMod.Autorotation.xan.MCH": [ + { + "Track": "Buffs", + "Option": "Auto" + }, + { + "Track": "Buffs", + "Option": "Delay", + "Mod": "Shift, Ctrl" + }, + { + "Track": "AOE", + "Option": "AOE" + }, + { + "Track": "Targeting", + "Option": "Manual" + } + ], + "BossMod.Autorotation.xan.MNK": [ + { + "Track": "AOE", + "Option": "AOE" + }, + { + "Track": "Targeting", + "Option": "Manual" + } + ], + "BossMod.Autorotation.xan.PCT": [ + { + "Track": "Buffs", + "Option": "Auto" + }, + { + "Track": "Buffs", + "Option": "Delay", + "Mod": "Shift, Ctrl" + }, + { + "Track": "AOE", + "Option": "AOE" + }, + { + "Track": "Targeting", + "Option": "Manual" + }, + { + "Track": "Motifs", + "Option": "Downtime" + } + ], + "BossMod.Autorotation.xan.PLD": [ + { + "Track": "Buffs", + "Option": "Auto" + }, + { + "Track": "Buffs", + "Option": "Delay", + "Mod": "Shift, Ctrl" + }, + { + "Track": "AOE", + "Option": "AOE" + }, + { + "Track": "Targeting", + "Option": "Manual" + } + ], + "BossMod.Autorotation.xan.SAM": [ + { + "Track": "Buffs", + "Option": "Auto" + }, + { + "Track": "Buffs", + "Option": "Delay", + "Mod": "Shift, Ctrl" + }, + { + "Track": "AOE", + "Option": "AOE" + }, + { + "Track": "Targeting", + "Option": "Manual" + } + ], + "BossMod.Autorotation.xan.SGE": [ + { + "Track": "AOE", + "Option": "AOE" + }, + { + "Track": "Targeting", + "Option": "Manual" + } + ], + "BossMod.Autorotation.xan.VPR": [ + { + "Track": "Buffs", + "Option": "Auto" + }, + { + "Track": "Buffs", + "Option": "Delay", + "Mod": "Shift, Ctrl" + }, + { + "Track": "AOE", + "Option": "AOE" + }, + { + "Track": "Targeting", + "Option": "Manual" + } + ], + "BossMod.Autorotation.xan.NIN": [ + { + "Track": "Buffs", + "Option": "Auto" + }, + { + "Track": "Buffs", + "Option": "Delay", + "Mod": "Shift, Ctrl" + }, + { + "Track": "AOE", + "Option": "AOE" + }, + { + "Track": "Targeting", + "Option": "Manual" + } + ], + "BossMod.Autorotation.xan.GNB": [ + { + "Track": "Buffs", + "Option": "Auto" + }, + { + "Track": "Buffs", + "Option": "Delay", + "Mod": "Shift, Ctrl" + }, + { + "Track": "AOE", + "Option": "AOE" + }, + { + "Track": "Targeting", + "Option": "Manual" + } + ], + "BossMod.Autorotation.xan.SMN": [ + { + "Track": "Buffs", + "Option": "Auto" + }, + { + "Track": "Buffs", + "Option": "Delay", + "Mod": "Shift, Ctrl" + }, + { + "Track": "AOE", + "Option": "AOE" + }, + { + "Track": "Targeting", + "Option": "Manual" + } + ], + "BossMod.Autorotation.xan.DRK": [ + { + "Track": "Buffs", + "Option": "Auto" + }, + { + "Track": "Buffs", + "Option": "Delay", + "Mod": "Shift, Ctrl" + }, + { + "Track": "AOE", + "Option": "AOE" + }, + { + "Track": "Targeting", + "Option": "Manual" + } + ], + "BossMod.Autorotation.xan.RPR": [ + { + "Track": "Buffs", + "Option": "Auto" + }, + { + "Track": "Buffs", + "Option": "Delay", + "Mod": "Shift, Ctrl" + }, + { + "Track": "AOE", + "Option": "AOE" + }, + { + "Track": "Targeting", + "Option": "Manual" + } + ], + "BossMod.Autorotation.xan.WHM": [ + { + "Track": "Buffs", + "Option": "Auto" + }, + { + "Track": "Buffs", + "Option": "Delay", + "Mod": "Shift, Ctrl" + }, + { + "Track": "AOE", + "Option": "AOE" + }, + { + "Track": "Targeting", + "Option": "Manual" + } + ], + "BossMod.Autorotation.xan.AST": [ + { + "Track": "Buffs", + "Option": "Auto" + }, + { + "Track": "Buffs", + "Option": "Delay", + "Mod": "Shift, Ctrl" + }, + { + "Track": "AOE", + "Option": "AOE" + }, + { + "Track": "Targeting", + "Option": "Manual" + } + ], + "BossMod.Autorotation.xan.BRD": [ + { + "Track": "Buffs", + "Option": "Auto" + }, + { + "Track": "Buffs", + "Option": "Delay", + "Mod": "Shift, Ctrl" + }, + { + "Track": "AOE", + "Option": "AOE" + }, + { + "Track": "Targeting", + "Option": "Manual" + } + ], + "BossMod.Autorotation.xan.SCH": [ + { + "Track": "Buffs", + "Option": "Auto" + }, + { + "Track": "Buffs", + "Option": "Delay", + "Mod": "Shift, Ctrl" + }, + { + "Track": "AOE", + "Option": "AOE" + }, + { + "Track": "Targeting", + "Option": "Manual" + } + ], + "BossMod.Autorotation.xan.BLM": [ + { + "Track": "Buffs", + "Option": "Auto" + }, + { + "Track": "Buffs", + "Option": "Delay", + "Mod": "Shift, Ctrl" + }, + { + "Track": "AOE", + "Option": "AOE" + }, + { + "Track": "Targeting", + "Option": "Manual" + } + ], + "BossMod.Autorotation.StandardWAR": [ + { + "Track": "AOE", + "Option": "AutoFinishCombo" + } + ], + "BossMod.Autorotation.xan.RDM": [ + { + "Track": "Buffs", + "Option": "Auto" + }, + { + "Track": "Buffs", + "Option": "Delay", + "Mod": "Shift, Ctrl" + }, + { + "Track": "AOE", + "Option": "AOE" + }, + { + "Track": "Targeting", + "Option": "Manual" + } + ], + "BossMod.Autorotation.xan.DRG": [ + { + "Track": "Buffs", + "Option": "Auto" + }, + { + "Track": "Buffs", + "Option": "Delay", + "Mod": "Shift, Ctrl" + }, + { + "Track": "AOE", + "Option": "AOE" + }, + { + "Track": "Targeting", + "Option": "Manual" + } + ] + } +} \ No newline at end of file diff --git a/Questionable/Controller/CombatModules/ICombatModule.cs b/Questionable/Controller/CombatModules/ICombatModule.cs index 06fe4ae6..2a295ae0 100644 --- a/Questionable/Controller/CombatModules/ICombatModule.cs +++ b/Questionable/Controller/CombatModules/ICombatModule.cs @@ -12,7 +12,5 @@ internal interface ICombatModule void Update(IGameObject nextTarget); - void MoveToTarget(IGameObject nextTarget); - bool CanAttack(IBattleNpc target); } diff --git a/Questionable/Controller/CombatModules/ItemUseModule.cs b/Questionable/Controller/CombatModules/ItemUseModule.cs index 56da033f..26a92ff3 100644 --- a/Questionable/Controller/CombatModules/ItemUseModule.cs +++ b/Questionable/Controller/CombatModules/ItemUseModule.cs @@ -86,7 +86,8 @@ internal sealed class ItemUseModule : ICombatModule } if (_combatData.KillEnemyDataIds.Contains(nextTarget.DataId) || - _combatData.ComplexCombatDatas.Any(x => x.DataId == nextTarget.DataId)) + _combatData.ComplexCombatDatas.Any(x => x.DataId == nextTarget.DataId && + (x.NameId == null || (nextTarget is ICharacter character && x.NameId == character.NameId)))) { if (_isDoingRotation) { @@ -151,7 +152,5 @@ internal sealed class ItemUseModule : ICombatModule return false; } - public void MoveToTarget(IGameObject nextTarget) => _delegate!.MoveToTarget(nextTarget); - public bool CanAttack(IBattleNpc target) => _delegate!.CanAttack(target); } diff --git a/Questionable/Controller/CombatModules/Mount128Module.cs b/Questionable/Controller/CombatModules/Mount128Module.cs index e665163a..9f885963 100644 --- a/Questionable/Controller/CombatModules/Mount128Module.cs +++ b/Questionable/Controller/CombatModules/Mount128Module.cs @@ -15,13 +15,10 @@ internal sealed class Mount128Module : ICombatModule public const ushort MountId = 128; private readonly EAction[] _actions = [EAction.MagitekThunder, EAction.MagitekPulse]; - private readonly MovementController _movementController; private readonly GameFunctions _gameFunctions; - - public Mount128Module(MovementController movementController, GameFunctions gameFunctions) + public Mount128Module(GameFunctions gameFunctions) { - _movementController = movementController; _gameFunctions = gameFunctions; } @@ -33,9 +30,6 @@ internal sealed class Mount128Module : ICombatModule public void Update(IGameObject gameObject) { - if (_movementController.IsPathfinding || _movementController.IsPathRunning) - return; - foreach (EAction action in _actions) { if (_gameFunctions.UseAction(gameObject, action, checkCanUse: false)) @@ -43,9 +37,5 @@ internal sealed class Mount128Module : ICombatModule } } - public void MoveToTarget(IGameObject gameObject) - { - } - public bool CanAttack(IBattleNpc target) => target.DataId is 7504 or 7505 or 14107; } diff --git a/Questionable/Controller/CombatModules/Mount147Module.cs b/Questionable/Controller/CombatModules/Mount147Module.cs new file mode 100644 index 00000000..4d8202fc --- /dev/null +++ b/Questionable/Controller/CombatModules/Mount147Module.cs @@ -0,0 +1,42 @@ +using System; +using System.Numerics; +using Dalamud.Game.ClientState.Objects.Types; +using Questionable.Functions; +using Questionable.Model; +using Questionable.Model.Questing; + +namespace Questionable.Controller.CombatModules; + +/// +/// Commandeered Magitek Armor; used in 'Magiteknical Failure' quest. +/// +internal sealed class Mount147Module : ICombatModule +{ + public const ushort MountId = 147; + private readonly EAction[] _actions = [EAction.Trample]; + + private readonly GameFunctions _gameFunctions; + + + public Mount147Module(GameFunctions gameFunctions) + { + _gameFunctions = gameFunctions; + } + + public bool CanHandleFight(CombatController.CombatData combatData) => _gameFunctions.GetMountId() == MountId; + + public bool Start(CombatController.CombatData combatData) => true; + + public bool Stop() => true; + + public void Update(IGameObject gameObject) + { + foreach (EAction action in _actions) + { + if (_gameFunctions.UseAction(gameObject, action, checkCanUse: false)) + return; + } + } + + public bool CanAttack(IBattleNpc target) => target.DataId is 8593; +} diff --git a/Questionable/Controller/CombatModules/RotationSolverRebornModule.cs b/Questionable/Controller/CombatModules/RotationSolverRebornModule.cs index 581e07a9..422ae7c9 100644 --- a/Questionable/Controller/CombatModules/RotationSolverRebornModule.cs +++ b/Questionable/Controller/CombatModules/RotationSolverRebornModule.cs @@ -14,19 +14,17 @@ namespace Questionable.Controller.CombatModules; internal sealed class RotationSolverRebornModule : ICombatModule, IDisposable { private readonly ILogger _logger; - private readonly MovementController _movementController; - private readonly IClientState _clientState; + private readonly Configuration _configuration; private readonly ICallGateSubscriber _test; private readonly ICallGateSubscriber _changeOperationMode; - private DateTime _lastDistanceCheck = DateTime.MinValue; - - public RotationSolverRebornModule(ILogger logger, MovementController movementController, - IClientState clientState, IDalamudPluginInterface pluginInterface) + public RotationSolverRebornModule( + ILogger logger, + IDalamudPluginInterface pluginInterface, + Configuration configuration) { _logger = logger; - _movementController = movementController; - _clientState = clientState; + _configuration = configuration; _test = pluginInterface.GetIpcSubscriber("RotationSolverReborn.Test"); _changeOperationMode = pluginInterface.GetIpcSubscriber("RotationSolverReborn.ChangeOperatingMode"); @@ -34,6 +32,9 @@ internal sealed class RotationSolverRebornModule : ICombatModule, IDisposable public bool CanHandleFight(CombatController.CombatData combatData) { + if (_configuration.General.CombatModule != Configuration.ECombatModule.RotationSolverReborn) + return false; + try { _test.InvokeAction("Validate RSR is callable from Questionable"); @@ -50,7 +51,6 @@ internal sealed class RotationSolverRebornModule : ICombatModule, IDisposable try { _changeOperationMode.InvokeAction(StateCommandType.Manual); - _lastDistanceCheck = DateTime.Now; return true; } catch (IpcError e) @@ -62,6 +62,9 @@ internal sealed class RotationSolverRebornModule : ICombatModule, IDisposable public bool Stop() { + if (!_changeOperationMode.HasAction) + return true; + try { _changeOperationMode.InvokeAction(StateCommandType.Off); @@ -74,46 +77,8 @@ internal sealed class RotationSolverRebornModule : ICombatModule, IDisposable } } - public void MoveToTarget(IGameObject gameObject) - { - var player = _clientState.LocalPlayer; - if (player == null) - return; // uh oh - - float hitboxOffset = player.HitboxRadius + gameObject.HitboxRadius; - float actualDistance = Vector3.Distance(player.Position, gameObject.Position); - float maxDistance = player.ClassJob.ValueNullable?.Role is 3 or 4 ? 20f : 2.9f; - if (actualDistance - hitboxOffset >= maxDistance) - { - if (actualDistance - hitboxOffset <= 5) - { - _logger.LogInformation("Moving to {TargetName} ({DataId}) to attack", gameObject.Name, - gameObject.DataId); - _movementController.NavigateTo(EMovementType.Combat, null, [gameObject.Position], false, false, - maxDistance + hitboxOffset - 0.25f, true); - } - else - { - _logger.LogInformation("Moving to {TargetName} ({DataId}) to attack (with navmesh)", gameObject.Name, - gameObject.DataId); - _movementController.NavigateTo(EMovementType.Combat, null, gameObject.Position, false, false, - maxDistance + hitboxOffset - 0.25f, true); - } - } - - _lastDistanceCheck = DateTime.Now; - } - public void Update(IGameObject gameObject) { - if (_movementController.IsPathfinding || _movementController.IsPathRunning) - return; - - if (DateTime.Now > _lastDistanceCheck.AddSeconds(10)) - { - MoveToTarget(gameObject); - _lastDistanceCheck = DateTime.Now; - } } public bool CanAttack(IBattleNpc target) => true; diff --git a/Questionable/Controller/CombatModules/WrathComboModule.cs b/Questionable/Controller/CombatModules/WrathComboModule.cs new file mode 100644 index 00000000..d9563683 --- /dev/null +++ b/Questionable/Controller/CombatModules/WrathComboModule.cs @@ -0,0 +1,123 @@ +using System; +using Dalamud.Game.ClientState.Objects.Types; +using Dalamud.Plugin; +using Dalamud.Plugin.Ipc; +using Dalamud.Plugin.Ipc.Exceptions; +using Microsoft.Extensions.Logging; +using Questionable.Controller.Steps; + +namespace Questionable.Controller.CombatModules; + +internal sealed class WrathComboModule : ICombatModule, IDisposable +{ + private const string CallbackPrefix = "Questionable$Wrath"; + + private readonly ILogger _logger; + private readonly Configuration _configuration; + private readonly ICallGateSubscriber _test; + private readonly ICallGateSubscriber _registerForLeaseWithCallback; + private readonly ICallGateSubscriber _releaseControl; + private readonly ICallGateSubscriber _setAutoRotationState; + private readonly ICallGateSubscriber _setCurrentJobAutoRotationReady; + private readonly ICallGateProvider _callback; + + private Guid? _lease; + + public WrathComboModule(ILogger logger, Configuration configuration, + IDalamudPluginInterface pluginInterface) + { + _logger = logger; + _configuration = configuration; + _test = pluginInterface.GetIpcSubscriber("WrathCombo.Test"); + _registerForLeaseWithCallback = + pluginInterface.GetIpcSubscriber("WrathCombo.RegisterForLeaseWithCallback"); + _releaseControl = pluginInterface.GetIpcSubscriber("WrathCombo.ReleaseControl"); + _setAutoRotationState = pluginInterface.GetIpcSubscriber("WrathCombo.SetAutoRotationState"); + _setCurrentJobAutoRotationReady = + pluginInterface.GetIpcSubscriber("WrathCombo.SetCurrentJobAutoRotationReady"); + + _callback = pluginInterface.GetIpcProvider($"{CallbackPrefix}.WrathComboCallback"); + _callback.RegisterAction(Callback); + } + + public bool CanHandleFight(CombatController.CombatData combatData) + { + if (_configuration.General.CombatModule != Configuration.ECombatModule.WrathCombo) + return false; + + try + { + _test.InvokeAction(); + return true; + } + catch (IpcError) + { + return false; + } + } + + public bool Start(CombatController.CombatData combatData) + { + try + { + _lease = _registerForLeaseWithCallback.InvokeFunc("Questionable", "Questionable", CallbackPrefix); + if (_lease != null) + { + _logger.LogDebug("Wrath combo lease: {Lease}", _lease.Value); + + _setAutoRotationState.InvokeAction(_lease.Value, true); + _setCurrentJobAutoRotationReady.InvokeAction(_lease.Value); + return true; + } + else + { + _logger.LogError("Wrath combo did not return a lease"); + return false; + } + } + catch (IpcError e) + { + _logger.LogError(e, "Unable to use wrath combo for combat"); + return false; + } + } + + public bool Stop() + { + try + { + if (_lease != null) + { + _releaseControl.InvokeAction(_lease.Value); + _lease = null; + } + + return true; + } + catch (IpcError e) + { + _logger.LogWarning(e, "Could not turn off wrath combo"); + return false; + } + } + + public void Update(IGameObject nextTarget) + { + if (_lease == null) + throw new TaskException("Wrath Combo Lease is cancelled"); + } + + public bool CanAttack(IBattleNpc target) => true; + + private void Callback(int reason, string additionalInfo) + { + _logger.LogWarning("WrathCombo callback: {Reason} ({Info})", reason, additionalInfo); + _lease = null; + } + + public void Dispose() + { + Stop(); + _callback.UnregisterAction(); + } +} diff --git a/Questionable/Controller/CommandHandler.cs b/Questionable/Controller/CommandHandler.cs index c6085a18..1c2bed2b 100644 --- a/Questionable/Controller/CommandHandler.cs +++ b/Questionable/Controller/CommandHandler.cs @@ -4,6 +4,7 @@ using Dalamud.Game.ClientState.Objects; using Dalamud.Game.Command; using Dalamud.Plugin.Services; using Lumina.Excel.Sheets; +using Microsoft.Extensions.Logging; using Questionable.Functions; using Questionable.Model.Questing; using Questionable.Windows; diff --git a/Questionable/Controller/MiniTaskController.cs b/Questionable/Controller/MiniTaskController.cs index 06e5d874..6055a68c 100644 --- a/Questionable/Controller/MiniTaskController.cs +++ b/Questionable/Controller/MiniTaskController.cs @@ -173,7 +173,7 @@ internal abstract class MiniTaskController if (_condition[ConditionFlag.Mounted]) tasks.Add(new Mount.UnmountTask()); - tasks.Add(Combat.Factory.CreateTask(null, false, EEnemySpawnType.QuestInterruption, [], [], [], null)); + tasks.Add(Combat.Factory.CreateTask(null, -1, false, EEnemySpawnType.QuestInterruption, [], [], [], null)); tasks.Add(new WaitAtEnd.WaitDelay()); _taskQueue.InterruptWith(tasks); } diff --git a/Questionable/Controller/QuestController.cs b/Questionable/Controller/QuestController.cs index 5554404c..9d17fed1 100644 --- a/Questionable/Controller/QuestController.cs +++ b/Questionable/Controller/QuestController.cs @@ -146,6 +146,8 @@ internal sealed class QuestController : MiniTaskController, IDi public string? DebugState { get; private set; } + public Func IsQuestWindowOpen { private get; set; } = () => true; + public void Reload() { lock (_progressLock) @@ -181,6 +183,9 @@ internal sealed class QuestController : MiniTaskController, IDi } } + if (AutomationType == EAutomationType.Manual && !IsRunning && !IsQuestWindowOpen()) + return; + UpdateCurrentQuest(); if (!_clientState.IsLoggedIn || _condition[ConditionFlag.Unconscious]) diff --git a/Questionable/Controller/QuestRegistry.cs b/Questionable/Controller/QuestRegistry.cs index c948abe2..d6641073 100644 --- a/Questionable/Controller/QuestRegistry.cs +++ b/Questionable/Controller/QuestRegistry.cs @@ -29,7 +29,8 @@ internal sealed class QuestRegistry private readonly LeveData _leveData; private readonly ICallGateProvider _reloadDataIpc; - private readonly Dictionary _quests = new(); + private readonly Dictionary _quests = []; + private readonly Dictionary _contentFinderConditionIds = []; public QuestRegistry(IDalamudPluginInterface pluginInterface, QuestData questData, QuestValidator questValidator, JsonSchemaValidator jsonSchemaValidator, @@ -55,6 +56,7 @@ internal sealed class QuestRegistry { _questValidator.Reset(); _quests.Clear(); + _contentFinderConditionIds.Clear(); LoadQuestsFromAssembly(); LoadQuestsFromProjectDirectory(); @@ -70,6 +72,7 @@ internal sealed class QuestRegistry "Failed to load all quests from user directory (some may have been successfully loaded)"); } + LoadCfcIds(); ValidateQuests(); Reloaded?.Invoke(this, EventArgs.Empty); try @@ -142,6 +145,18 @@ internal sealed class QuestRegistry } } + private void LoadCfcIds() + { + foreach (var quest in _quests.Values) + { + foreach (var dutyStep in quest.AllSteps().Where(x => + x.Step.InteractionType == EInteractionType.Duty && x.Step.ContentFinderConditionId != null)) + { + _contentFinderConditionIds[dutyStep.Step.ContentFinderConditionId!.Value] = (quest.Id, dutyStep.Step); + } + } + } + private void ValidateQuests() { _questValidator.Validate(_quests.Values.Where(x => x.Source != Quest.ESource.Assembly).ToList()); @@ -223,4 +238,16 @@ internal sealed class QuestRegistry .Where(x => IsKnownQuest(x.QuestId)) .ToList(); } + + public bool TryGetDutyByContentFinderConditionId(uint cfcId, out bool autoDutyEnabledByDefault) + { + if (_contentFinderConditionIds.TryGetValue(cfcId, out var value)) + { + autoDutyEnabledByDefault = value.Step.AutoDutyEnabled; + return true; + } + + autoDutyEnabledByDefault = false; + return false; + } } diff --git a/Questionable/Controller/Steps/Common/SendNotification.cs b/Questionable/Controller/Steps/Common/SendNotification.cs index 7334ca07..cf116028 100644 --- a/Questionable/Controller/Steps/Common/SendNotification.cs +++ b/Questionable/Controller/Steps/Common/SendNotification.cs @@ -13,6 +13,7 @@ internal static class SendNotification { internal sealed class Factory( AutomatonIpc automatonIpc, + AutoDutyIpc autoDutyIpc, TerritoryData territoryData) : SimpleTaskFactory { public override ITask? CreateTask(Quest quest, QuestSequence sequence, QuestStep step) @@ -21,9 +22,9 @@ internal static class SendNotification { EInteractionType.Snipe when !automatonIpc.IsAutoSnipeEnabled => new Task(step.InteractionType, step.Comment), - EInteractionType.Duty => + EInteractionType.Duty when !autoDutyIpc.IsConfiguredToRunContent(step.ContentFinderConditionId, step.AutoDutyEnabled) => new Task(step.InteractionType, step.ContentFinderConditionId.HasValue - ? territoryData.GetContentFinderConditionName(step.ContentFinderConditionId.Value) + ? territoryData.GetContentFinderCondition(step.ContentFinderConditionId.Value)?.Name : step.Comment), EInteractionType.SinglePlayerDuty => new Task(step.InteractionType, quest.Info.Name), _ => null, diff --git a/Questionable/Controller/Steps/Interactions/Combat.cs b/Questionable/Controller/Steps/Interactions/Combat.cs index f0b7ff15..463c32ce 100644 --- a/Questionable/Controller/Steps/Interactions/Combat.cs +++ b/Questionable/Controller/Steps/Interactions/Combat.cs @@ -22,7 +22,8 @@ internal static class Combat ArgumentNullException.ThrowIfNull(step.EnemySpawnType); - if (gameFunctions.GetMountId() != Mount128Module.MountId) + if (gameFunctions.GetMountId() != Mount128Module.MountId && + gameFunctions.GetMountId() != Mount147Module.MountId) yield return new Mount.UnmountTask(); if (step.CombatDelaySecondsAtStart != null) @@ -44,8 +45,12 @@ internal static class Combat ArgumentNullException.ThrowIfNull(step.DataId); ArgumentNullException.ThrowIfNull(step.ItemId); - yield return new UseItem.UseOnObject(quest.Id, step.DataId.Value, step.ItemId.Value, - step.CompletionQuestVariablesFlags, true); + if (step.GroundTarget == true) + yield return new UseItem.UseOnGround(quest.Id, step.DataId.Value, step.ItemId.Value, + step.CompletionQuestVariablesFlags, true); + else + yield return new UseItem.UseOnObject(quest.Id, step.DataId.Value, step.ItemId.Value, + step.CompletionQuestVariablesFlags, true); yield return new WaitAtEnd.WaitDelay(TimeSpan.FromSeconds(1)); yield return CreateTask(quest, sequence, step); break; @@ -97,17 +102,30 @@ internal static class Combat ArgumentNullException.ThrowIfNull(step.EnemySpawnType); bool isLastStep = sequence.Steps.Last() == step; - return CreateTask(quest.Id, isLastStep, step.EnemySpawnType.Value, step.KillEnemyDataIds, - step.CompletionQuestVariablesFlags, step.ComplexCombatData, step.CombatItemUse); + return CreateTask(quest.Id, + sequence.Sequence, + isLastStep, + step.EnemySpawnType.Value, + step.KillEnemyDataIds, + step.CompletionQuestVariablesFlags, + step.ComplexCombatData, + step.CombatItemUse); } - internal static Task CreateTask(ElementId? elementId, bool isLastStep, EEnemySpawnType enemySpawnType, - IList killEnemyDataIds, IList completionQuestVariablesFlags, - IList complexCombatData, CombatItemUse? combatItemUse) + internal static Task CreateTask(ElementId? elementId, + int sequence, + bool isLastStep, + EEnemySpawnType enemySpawnType, + IList killEnemyDataIds, + IList completionQuestVariablesFlags, + IList complexCombatData, + CombatItemUse? combatItemUse) { return new Task(new CombatController.CombatData { ElementId = elementId, + Sequence = sequence, + CompletionQuestVariablesFlags = completionQuestVariablesFlags, SpawnType = enemySpawnType, KillEnemyDataIds = killEnemyDataIds.ToList(), ComplexCombatDatas = complexCombatData.ToList(), diff --git a/Questionable/Controller/Steps/Interactions/Duty.cs b/Questionable/Controller/Steps/Interactions/Duty.cs index 42c94d87..5e20accf 100644 --- a/Questionable/Controller/Steps/Interactions/Duty.cs +++ b/Questionable/Controller/Steps/Interactions/Duty.cs @@ -1,6 +1,13 @@ using System; +using System.Collections.Generic; using Dalamud.Game.ClientState.Conditions; using Dalamud.Plugin.Services; +using FFXIVClientStructs.FFXIV.Client.Game; +using LLib.Gear; +using Questionable.Controller.Steps.Common; +using Questionable.Controller.Steps.Shared; +using Questionable.Data; +using Questionable.External; using Questionable.Functions; using Questionable.Model; using Questionable.Model.Questing; @@ -9,26 +16,117 @@ namespace Questionable.Controller.Steps.Interactions; internal static class Duty { - internal sealed class Factory : SimpleTaskFactory + internal sealed class Factory(AutoDutyIpc autoDutyIpc) : ITaskFactory { - public override ITask? CreateTask(Quest quest, QuestSequence sequence, QuestStep step) + public IEnumerable CreateAllTasks(Quest quest, QuestSequence sequence, QuestStep step) { if (step.InteractionType != EInteractionType.Duty) - return null; + yield break; ArgumentNullException.ThrowIfNull(step.ContentFinderConditionId); - return new Task(step.ContentFinderConditionId.Value); + + if (autoDutyIpc.IsConfiguredToRunContent(step.ContentFinderConditionId, step.AutoDutyEnabled)) + { + yield return new StartAutoDutyTask(step.ContentFinderConditionId.Value); + yield return new WaitAutoDutyTask(step.ContentFinderConditionId.Value); + yield return new WaitAtEnd.WaitNextStepOrSequence(); + } + else + { + yield return new OpenDutyFinderTask(step.ContentFinderConditionId.Value); + } } } - internal sealed record Task(uint ContentFinderConditionId) : ITask + internal sealed record StartAutoDutyTask(uint ContentFinderConditionId) : ITask + { + public override string ToString() => $"StartAutoDuty({ContentFinderConditionId})"; + } + + internal sealed class StartAutoDutyExecutor( + GearStatsCalculator gearStatsCalculator, + AutoDutyIpc autoDutyIpc, + TerritoryData territoryData, + IClientState clientState, + IChatGui chatGui, + SendNotification.Executor sendNotificationExecutor) : TaskExecutor + { + protected override bool Start() + { + if (!territoryData.TryGetContentFinderCondition(Task.ContentFinderConditionId, + out var cfcData)) + throw new TaskException("Failed to get territory ID for content finder condition"); + + unsafe + { + InventoryManager* inventoryManager = InventoryManager.Instance(); + if (inventoryManager == null) + throw new TaskException("Inventory unavailable"); + + var equippedItems = inventoryManager->GetInventoryContainer(InventoryType.EquippedItems); + if (equippedItems == null) + throw new TaskException("Equipped items unavailable"); + + var currentItemLevel = gearStatsCalculator.CalculateAverageItemLevel(equippedItems); + if (cfcData.RequiredItemLevel > currentItemLevel) + { + string errorText = + $"Could not use AutoDuty to queue for {cfcData.Name}, required item level: {cfcData.RequiredItemLevel}, current item level: {currentItemLevel}."; + if (!sendNotificationExecutor.Start(new SendNotification.Task(EInteractionType.Duty, errorText))) + chatGui.PrintError(errorText, CommandHandler.MessageTag, CommandHandler.TagColor); + + return false; + } + } + + autoDutyIpc.StartInstance(Task.ContentFinderConditionId); + return true; + } + + public override ETaskResult Update() + { + if (!territoryData.TryGetContentFinderCondition(Task.ContentFinderConditionId, + out var cfcData)) + throw new TaskException("Failed to get territory ID for content finder condition"); + + return clientState.TerritoryType == cfcData.TerritoryId + ? ETaskResult.TaskComplete + : ETaskResult.StillRunning; + } + } + + internal sealed record WaitAutoDutyTask(uint ContentFinderConditionId) : ITask + { + public override string ToString() => $"Wait(AutoDuty, left instance {ContentFinderConditionId})"; + } + + internal sealed class WaitAutoDutyExecutor( + AutoDutyIpc autoDutyIpc, + TerritoryData territoryData, + IClientState clientState) : TaskExecutor + { + protected override bool Start() => true; + + public override ETaskResult Update() + { + if (!territoryData.TryGetContentFinderCondition(Task.ContentFinderConditionId, + out var cfcData)) + throw new TaskException("Failed to get territory ID for content finder condition"); + + return clientState.TerritoryType != cfcData.TerritoryId && autoDutyIpc.IsStopped() + ? ETaskResult.TaskComplete + : ETaskResult.StillRunning; + } + } + + internal sealed record OpenDutyFinderTask(uint ContentFinderConditionId) : ITask { public override string ToString() => $"OpenDutyFinder({ContentFinderConditionId})"; } - internal sealed class OpenDutyWindowExecutor( + internal sealed class OpenDutyFinderExecutor( GameFunctions gameFunctions, - ICondition condition) : TaskExecutor + ICondition condition) : TaskExecutor { protected override bool Start() { diff --git a/Questionable/Controller/Steps/Interactions/UseItem.cs b/Questionable/Controller/Steps/Interactions/UseItem.cs index e0753758..bf779a02 100644 --- a/Questionable/Controller/Steps/Interactions/UseItem.cs +++ b/Questionable/Controller/Steps/Interactions/UseItem.cs @@ -29,7 +29,7 @@ internal static class UseItem { public IEnumerable CreateAllTasks(Quest quest, QuestSequence sequence, QuestStep step) { - if (step.InteractionType is EInteractionType.SinglePlayerDuty) + if (step.InteractionType is EInteractionType.SinglePlayerDuty or EInteractionType.CompleteQuest) { if (step.ItemId == null) return []; @@ -211,9 +211,9 @@ internal static class UseItem ElementId? QuestId, uint DataId, uint ItemId, - IList CompletionQuestVariablesFlags) : IUseItemBase + IList CompletionQuestVariablesFlags, + bool StartingCombat = false) : IUseItemBase { - public bool StartingCombat => false; public override string ToString() => $"UseItem({ItemId} on ground at {DataId})"; } diff --git a/Questionable/Controller/Steps/QuestCleanUp.cs b/Questionable/Controller/Steps/QuestCleanUp.cs index d5564180..d9c7701f 100644 --- a/Questionable/Controller/Steps/QuestCleanUp.cs +++ b/Questionable/Controller/Steps/QuestCleanUp.cs @@ -38,7 +38,7 @@ internal static class QuestCleanUp } // if the quest uses no mount actions, that's not a mount quest - if (!quest.AllSteps().Any(x => x.Step.Action is { } action && action.RequiresMount())) + if (!quest.AllSteps().Any(x => (x.Step.Action is { } action && action.RequiresMount()) || (x.Step.InteractionType == EInteractionType.Combat && x.Step.KillEnemyDataIds.Contains(8593)))) { logger.LogInformation("Quest doesn't use any mount actions, teleporting to {Aetheryte}", mountConfiguration.ClosestAetheryte); return teleportTask; diff --git a/Questionable/Controller/Steps/Shared/AethernetShortcut.cs b/Questionable/Controller/Steps/Shared/AethernetShortcut.cs index bfb2cc3f..e63b69c0 100644 --- a/Questionable/Controller/Steps/Shared/AethernetShortcut.cs +++ b/Questionable/Controller/Steps/Shared/AethernetShortcut.cs @@ -179,10 +179,12 @@ internal static class AethernetShortcut } } } - else + else if (clientState.TerritoryType == aetheryteData.TerritoryIds[Task.To]) logger.LogWarning( - "Aethernet shortcut not unlocked (from: {FromAetheryte}, to: {ToAetheryte}), walking manually", + "Aethernet shortcut not unlocked (from: {FromAetheryte}, to: {ToAetheryte}), skipping as we are already in the destination territory", Task.From, Task.To); + else + throw new TaskException($"Aethernet shortcut not unlocked (from: {Task.From}, to: {Task.To})"); return false; } diff --git a/Questionable/Controller/Steps/Shared/RedeemRewardItems.cs b/Questionable/Controller/Steps/Shared/RedeemRewardItems.cs new file mode 100644 index 00000000..408b92f7 --- /dev/null +++ b/Questionable/Controller/Steps/Shared/RedeemRewardItems.cs @@ -0,0 +1,78 @@ +using System; +using System.Collections.Generic; +using Dalamud.Game.ClientState.Conditions; +using Dalamud.Plugin.Services; +using FFXIVClientStructs.FFXIV.Client.Game; +using Questionable.Data; +using Questionable.Functions; +using Questionable.Model; +using Questionable.Model.Questing; + +namespace Questionable.Controller.Steps.Shared; + +internal static class RedeemRewardItems +{ + internal sealed class Factory(QuestData questData) : ITaskFactory + { + public IEnumerable CreateAllTasks(Quest quest, QuestSequence sequence, QuestStep step) + { + if (step.InteractionType != EInteractionType.AcceptQuest) + return []; + + List tasks = []; + unsafe + { + InventoryManager* inventoryManager = InventoryManager.Instance(); + if (inventoryManager == null) + return tasks; + + foreach (var itemReward in questData.RedeemableItems) + { + if (inventoryManager->GetInventoryItemCount(itemReward.ItemId) > 0 && + !itemReward.IsUnlocked()) + { + tasks.Add(new Task(itemReward)); + } + } + } + + return tasks; + } + } + + internal sealed record Task(ItemReward ItemReward) : ITask + { + public override string ToString() => $"TryRedeem({ItemReward.Name})"; + } + + internal sealed class Executor( + GameFunctions gameFunctions, + ICondition condition) : TaskExecutor + { + private static readonly TimeSpan MinimumCastTime = TimeSpan.FromSeconds(4); + private DateTime _continueAt; + + protected override bool Start() + { + if (condition[ConditionFlag.Mounted]) + return false; + + TimeSpan castTime = Task.ItemReward.CastTime; + if (castTime < MinimumCastTime) + castTime = MinimumCastTime; + + _continueAt = DateTime.Now + .Add(castTime) + .AddSeconds(3); + return gameFunctions.UseItem(Task.ItemReward.ItemId); + } + + public override ETaskResult Update() + { + if (condition[ConditionFlag.Casting]) + return ETaskResult.StillRunning; + + return DateTime.Now <= _continueAt ? ETaskResult.StillRunning : ETaskResult.TaskComplete; + } + } +} diff --git a/Questionable/Controller/Steps/Shared/WaitAtEnd.cs b/Questionable/Controller/Steps/Shared/WaitAtEnd.cs index d64c009b..0b3a02ba 100644 --- a/Questionable/Controller/Steps/Shared/WaitAtEnd.cs +++ b/Questionable/Controller/Steps/Shared/WaitAtEnd.cs @@ -8,6 +8,7 @@ using Dalamud.Plugin.Services; using Questionable.Controller.Steps.Common; using Questionable.Controller.Utils; using Questionable.Data; +using Questionable.External; using Questionable.Functions; using Questionable.Model; using Questionable.Model.Questing; @@ -19,7 +20,8 @@ internal static class WaitAtEnd internal sealed class Factory( IClientState clientState, ICondition condition, - TerritoryData territoryData) + TerritoryData territoryData, + AutoDutyIpc autoDutyIpc) : ITaskFactory { public IEnumerable CreateAllTasks(Quest quest, QuestSequence sequence, QuestStep step) @@ -50,7 +52,7 @@ internal static class WaitAtEnd case EInteractionType.Snipe: return [new WaitNextStepOrSequence()]; - case EInteractionType.Duty: + case EInteractionType.Duty when !autoDutyIpc.IsConfiguredToRunContent(step.ContentFinderConditionId, step.AutoDutyEnabled): case EInteractionType.SinglePlayerDuty: return [new EndAutomation()]; diff --git a/Questionable/Data/AlliedSocietyData.cs b/Questionable/Data/AlliedSocietyData.cs index 0ac4db07..d76003d8 100644 --- a/Questionable/Data/AlliedSocietyData.cs +++ b/Questionable/Data/AlliedSocietyData.cs @@ -15,7 +15,9 @@ internal sealed class AlliedSocietyData { { 66, new(1016093, EAetheryteLocation.SeaOfCloudsOkZundu) }, { 79, new(1017031, EAetheryteLocation.DravanianForelandsAnyxTrine) }, + { 88, new(1017470, EAetheryteLocation.ChurningMistsZenith) }, { 89, new(1017322, EAetheryteLocation.ChurningMistsZenith) }, + { 147, new(1024777, EAetheryteLocation.FringesPeeringStones) }, { 369, new(1051798, EAetheryteLocation.KozamaukaDockPoga) }, }.AsReadOnly(); @@ -51,7 +53,7 @@ internal sealed class AlliedSocietyData else if (alliedSociety == EAlliedSociety.Moogles) { normalNpcs = []; - mountNpcs = [1017322]; + mountNpcs = [1017322, 1017470, 1017471]; } else { diff --git a/Questionable/Data/JournalData.cs b/Questionable/Data/JournalData.cs index 56a12b6b..c2983fe5 100644 --- a/Questionable/Data/JournalData.cs +++ b/Questionable/Data/JournalData.cs @@ -1,6 +1,7 @@ using System.Collections.Generic; using System.Linq; using Dalamud.Plugin.Services; +using FFXIVClientStructs.FFXIV.Client.Game.Fate; using Lumina.Excel.Sheets; using Questionable.Model; using Questionable.Model.Questing; @@ -14,7 +15,7 @@ internal sealed class JournalData var genres = dataManager.GetExcelSheet() .Where(x => x.RowId > 0 && x.Icon > 0) .Select(x => new Genre(x, questData.GetAllByJournalGenre(x.RowId))) - .ToList(); + .ToList(); var limsaStart = dataManager.GetExcelSheet().GetRow(1); var gridaniaStart = dataManager.GetExcelSheet().GetRow(2); @@ -40,20 +41,19 @@ internal sealed class JournalData .RemoveAll(x => genreLimsa.Quests.Contains(x) || genreGridania.Quests.Contains(x) || genreUldah.Quests.Contains(x)); - Genres = genres.AsReadOnly(); + Genres = genres.ToList(); Categories = dataManager.GetExcelSheet() .Where(x => x.RowId > 0) .Select(x => new Category(x, Genres.Where(y => y.CategoryId == x.RowId).ToList())) - .ToList() - .AsReadOnly(); + .ToList(); Sections = dataManager.GetExcelSheet() .Select(x => new Section(x, Categories.Where(y => y.SectionId == x.RowId).ToList())) .ToList(); } - public IReadOnlyList Genres { get; } - public IReadOnlyList Categories { get; } - public List
Sections { get; set; } + public List Genres { get; } + public List Categories { get; } + public List
Sections { get; } internal sealed class Genre { @@ -77,7 +77,6 @@ internal sealed class JournalData public string Name { get; } public uint CategoryId { get; } public List Quests { get; } - public int QuestCount => Quests.Count; } internal sealed class Category(JournalCategory journalCategory, IReadOnlyList genres) @@ -86,7 +85,6 @@ internal sealed class JournalData public string Name { get; } = journalCategory.Name.ToString(); public uint SectionId { get; } = journalCategory.JournalSection.RowId; public IReadOnlyList Genres { get; } = genres; - public int QuestCount => Genres.Sum(x => x.QuestCount); } internal sealed class Section(JournalSection journalSection, IReadOnlyList categories) @@ -94,6 +92,5 @@ internal sealed class JournalData public uint Id { get; } = journalSection.RowId; public string Name { get; } = journalSection.Name.ToString(); public IReadOnlyList Categories { get; } = categories; - public int QuestCount => Categories.Sum(x => x.QuestCount); } } diff --git a/Questionable/Data/QuestData.cs b/Questionable/Data/QuestData.cs index 5d7b7022..65225863 100644 --- a/Questionable/Data/QuestData.cs +++ b/Questionable/Data/QuestData.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Collections.Immutable; using System.Diagnostics.CodeAnalysis; using System.Linq; using Dalamud.Plugin.Services; @@ -39,6 +40,12 @@ internal sealed class QuestData public QuestData(IDataManager dataManager) { + JournalGenreOverrides journalGenreOverrides = new() + { + RadzAtHanSideQuests = dataManager.GetExcelSheet().GetRow(69805).JournalGenre.RowId, + ThavnairSideQuests = dataManager.GetExcelSheet().GetRow(70025).JournalGenre.RowId, + }; + Dictionary questChapters = dataManager.GetExcelSheet() .Where(x => x.RowId > 0 && x.Quest.RowId > 0) @@ -58,8 +65,7 @@ internal sealed class QuestData .Where(x => x.RowId > 0) .Where(x => x.IssuerLocation.RowId > 0) .Select(x => new QuestInfo(x, questChapters.GetValueOrDefault(x.RowId), - startingCities.GetValueOrDefault(x.RowId))) - .Where(x => x.QuestId.Value != 1428), + startingCities.GetValueOrDefault(x.RowId), journalGenreOverrides)), ..dataManager.GetExcelSheet() .Where(x => x is { RowId: > 0, Npc.RowId: > 0 }) .Select(x => new SatisfactionSupplyInfo(x)), @@ -68,6 +74,29 @@ internal sealed class QuestData .Where(x => x.LevelLevemete.RowId != 0) .Select(x => new LeveInfo(x)), ]; + + quests.AddRange( + dataManager.GetExcelSheet() + .Where(x => x.RowId > 0 && !x.Name.IsEmpty) + .SelectMany(x => + { + if (x.RowId < 5) + { + return ((IEnumerable) + [ + 0, + ..quests.Where(y => y.AlliedSociety == (EAlliedSociety)x.RowId && y.IsRepeatable) + .Cast() + .Select(y => (byte)y.AlliedSocietyRank).Distinct() + ]) + .Select(rank => new AlliedSocietyDailyInfo(x, rank)); + } + else + { + return [new AlliedSocietyDailyInfo(x, 0)]; + } + })); + _quests = quests.ToDictionary(x => x.QuestId, x => x); // workaround because the game doesn't require completion of the CT questline through normal means @@ -160,10 +189,18 @@ internal sealed class QuestData AddPreviousQuest(new QuestId(3833), new QuestId(spearfishing)); */ + // The Hero's Journey + AddPreviousQuest(new QuestId(3986), new QuestId(2115)); + AddPreviousQuest(new QuestId(3986), new QuestId(2116)); + AddPreviousQuest(new QuestId(3986), new QuestId(2281)); + AddPreviousQuest(new QuestId(3986), new QuestId(2333)); + AddPreviousQuest(new QuestId(3986), new QuestId(2395)); + AddPreviousQuest(new QuestId(3986), new QuestId(3985)); + // initial city quests are side quests // unclear if 470 can be started as the required quest isn't available anymore ushort[] limsaSideQuests = - [107, 111, 112, 122, 663, 475, 472, 476, 470, 473, 474, 477, 486, 478, 479, 487, 59, 400, 401, 693, 405]; + [107, 111, 112, 122, 663, 475, 472, 476, 470, 473, 474, 477, 486, 478, 479, 59, 400, 401, 693, 405]; foreach (var questId in limsaSideQuests) ((QuestInfo)_quests[new QuestId(questId)]).StartingCity = 1; @@ -173,7 +210,7 @@ internal sealed class QuestData ((QuestInfo)_quests[new QuestId(questId)]).StartingCity = 2; ushort[] uldahSideQuests = - [594, 389, 390, 321, 304, 322, 388, 308, 326, 1429, 58, 687, 341, 504, 531, 506, 530, 573, 342, 505]; + [594, 389, 390, 321, 304, 322, 388, 308, 326, 58, 687, 341, 504, 531, 506, 530, 573, 342, 505]; foreach (var questId in uldahSideQuests) ((QuestInfo)_quests[new QuestId(questId)]).StartingCity = 3; @@ -188,8 +225,15 @@ internal sealed class QuestData quest.JournalGenre = 82; quest.SortKey = 0; } + + RedeemableItems = quests.Where(x => x is QuestInfo) + .Cast() + .SelectMany(x => x.ItemRewards) + .ToImmutableHashSet(); } + public ImmutableHashSet RedeemableItems { get; } + private void AddPreviousQuest(QuestId questToUpdate, QuestId requiredQuestId) { QuestInfo quest = (QuestInfo)_quests[questToUpdate]; @@ -280,7 +324,7 @@ internal sealed class QuestData // SB EClassJob.Samurai => [110, 111], EClassJob.RedMage => [131, 132], - EClassJob.BlueMage => [134, 135, 146], + EClassJob.BlueMage => [134, 135, 146, 170], // ShB EClassJob.Gunbreaker => [84], diff --git a/Questionable/Data/TerritoryData.cs b/Questionable/Data/TerritoryData.cs index ee91f6b4..f269b138 100644 --- a/Questionable/Data/TerritoryData.cs +++ b/Questionable/Data/TerritoryData.cs @@ -1,9 +1,11 @@ -using System.Collections.Generic; +using System; using System.Collections.Immutable; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; +using Dalamud.Game; using Dalamud.Plugin.Services; -using FFXIVClientStructs.FFXIV.Client.Game.Character; +using Dalamud.Utility; using Lumina.Excel.Sheets; namespace Questionable.Data; @@ -14,7 +16,7 @@ internal sealed class TerritoryData private readonly ImmutableHashSet _territoriesWithMount; private readonly ImmutableDictionary _dutyTerritories; private readonly ImmutableDictionary _instanceNames; - private readonly ImmutableDictionary _contentFinderConditionNames; + private readonly ImmutableDictionary _contentFinderConditions; public TerritoryData(IDataManager dataManager) { @@ -40,11 +42,12 @@ internal sealed class TerritoryData _instanceNames = dataManager.GetExcelSheet() .Where(x => x.RowId > 0 && x.Content.RowId != 0 && x.ContentLinkType == 1 && x.ContentType.RowId != 6) - .ToImmutableDictionary(x => x.Content.RowId, x => x.Name.ToString()); + .ToImmutableDictionary(x => x.Content.RowId, x => x.Name.ToDalamudString().ToString()); - _contentFinderConditionNames = dataManager.GetExcelSheet() + _contentFinderConditions = dataManager.GetExcelSheet() .Where(x => x.RowId > 0 && x.Content.RowId != 0 && x.ContentLinkType == 1 && x.ContentType.RowId != 6) - .ToImmutableDictionary(x => x.RowId, x => x.Name.ToString()); + .Select(x => new ContentFinderConditionData(x, dataManager.Language)) + .ToImmutableDictionary(x => x.ContentFinderConditionId, x => x); } public string? GetName(ushort territoryId) => _territoryNames.GetValueOrDefault(territoryId); @@ -67,5 +70,31 @@ internal sealed class TerritoryData public string? GetInstanceName(ushort instanceId) => _instanceNames.GetValueOrDefault(instanceId); - public string? GetContentFinderConditionName(uint cfcId) => _contentFinderConditionNames.GetValueOrDefault(cfcId); + public ContentFinderConditionData? GetContentFinderCondition(uint cfcId) => + _contentFinderConditions.GetValueOrDefault(cfcId); + + public bool TryGetContentFinderCondition(uint cfcId, + [NotNullWhen(true)] out ContentFinderConditionData? contentFinderConditionData) => + _contentFinderConditions.TryGetValue(cfcId, out contentFinderConditionData); + + private static string FixName(string name, ClientLanguage language) + { + if (string.IsNullOrEmpty(name) || language != ClientLanguage.English) + return name; + + return string.Concat(name[0].ToString().ToUpper(CultureInfo.InvariantCulture), name.AsSpan(1)); + } + + public sealed record ContentFinderConditionData( + uint ContentFinderConditionId, + string Name, + uint TerritoryId, + ushort RequiredItemLevel) + { + public ContentFinderConditionData(ContentFinderCondition condition, ClientLanguage clientLanguage) + : this(condition.RowId, FixName(condition.Name.ToDalamudString().ToString(), clientLanguage), + condition.TerritoryType.RowId, condition.ItemLevelRequired) + { + } + } } diff --git a/Questionable/External/AutoDutyIpc.cs b/Questionable/External/AutoDutyIpc.cs new file mode 100644 index 00000000..9d049062 --- /dev/null +++ b/Questionable/External/AutoDutyIpc.cs @@ -0,0 +1,89 @@ +using Dalamud.Plugin; +using Dalamud.Plugin.Ipc; +using Dalamud.Plugin.Ipc.Exceptions; +using Microsoft.Extensions.Logging; +using Questionable.Controller.Steps; +using Questionable.Data; + +namespace Questionable.External; + +internal sealed class AutoDutyIpc +{ + private readonly Configuration _configuration; + private readonly TerritoryData _territoryData; + private readonly ILogger _logger; + private readonly ICallGateSubscriber _contentHasPath; + private readonly ICallGateSubscriber _run; + private readonly ICallGateSubscriber _isStopped; + + public AutoDutyIpc(IDalamudPluginInterface pluginInterface, Configuration configuration, TerritoryData territoryData, ILogger logger) + { + _configuration = configuration; + _territoryData = territoryData; + _logger = logger; + _contentHasPath = pluginInterface.GetIpcSubscriber("AutoDuty.ContentHasPath"); + _run = pluginInterface.GetIpcSubscriber("AutoDuty.Run"); + _isStopped = pluginInterface.GetIpcSubscriber("AutoDuty.IsStopped"); + } + + public bool IsConfiguredToRunContent(uint? cfcId, bool autoDutyEnabled) + { + if (cfcId == null) + return false; + + if (!_configuration.Duties.RunInstancedContentWithAutoDuty) + return false; + + if (_configuration.Duties.BlacklistedDutyCfcIds.Contains(cfcId.Value)) + return false; + + if (_configuration.Duties.WhitelistedDutyCfcIds.Contains(cfcId.Value) && + _territoryData.TryGetContentFinderCondition(cfcId.Value, out _)) + return true; + + return autoDutyEnabled && HasPath(cfcId.Value); + } + + public bool HasPath(uint cfcId) + { + if (!_territoryData.TryGetContentFinderCondition(cfcId, out var cfcData)) + return false; + + try + { + return _contentHasPath.InvokeFunc(cfcData.TerritoryId); + } + catch (IpcError e) + { + _logger.LogWarning("Unable to query AutoDuty for path in territory {TerritoryType}: {Message}", cfcData.TerritoryId, e.Message); + return false; + } + } + + public void StartInstance(uint cfcId) + { + if (!_territoryData.TryGetContentFinderCondition(cfcId, out var cfcData)) + throw new TaskException($"Unknown ContentFinderConditionId {cfcId}"); + + try + { + _run.InvokeAction(cfcData.TerritoryId, 1, true); + } + catch (IpcError e) + { + throw new TaskException($"Unable to run content with AutoDuty: {e.Message}", e); + } + } + + public bool IsStopped() + { + try + { + return _isStopped.InvokeFunc(); + } + catch (IpcError) + { + return true; + } + } +} diff --git a/Questionable/External/AutomatonIpc.cs b/Questionable/External/AutomatonIpc.cs index 69e94678..04bbfac7 100644 --- a/Questionable/External/AutomatonIpc.cs +++ b/Questionable/External/AutomatonIpc.cs @@ -15,7 +15,7 @@ internal sealed class AutomatonIpc { _logger = logger; _isTweakEnabled = pluginInterface.GetIpcSubscriber("Automaton.IsTweakEnabled"); - logger.LogWarning("Automaton x {IsTweakEnabled}", IsAutoSnipeEnabled); + logger.LogInformation("Automaton auto-snipe enabled: {IsTweakEnabled}", IsAutoSnipeEnabled); } public bool IsAutoSnipeEnabled diff --git a/Questionable/External/TextAdvanceIpc.cs b/Questionable/External/TextAdvanceIpc.cs index dd4fa395..f840cc18 100644 --- a/Questionable/External/TextAdvanceIpc.cs +++ b/Questionable/External/TextAdvanceIpc.cs @@ -22,13 +22,16 @@ internal sealed class TextAdvanceIpc : IDisposable private readonly string _pluginName; private readonly ExternalTerritoryConfig _externalTerritoryConfig = new(); - public TextAdvanceIpc(IDalamudPluginInterface pluginInterface, IFramework framework, QuestController questController, Configuration configuration) + public TextAdvanceIpc(IDalamudPluginInterface pluginInterface, IFramework framework, + QuestController questController, Configuration configuration) { _framework = framework; _questController = questController; _configuration = configuration; _isInExternalControl = pluginInterface.GetIpcSubscriber("TextAdvance.IsInExternalControl"); - _enableExternalControl = pluginInterface.GetIpcSubscriber("TextAdvance.EnableExternalControl"); + _enableExternalControl = + pluginInterface.GetIpcSubscriber( + "TextAdvance.EnableExternalControl"); _disableExternalControl = pluginInterface.GetIpcSubscriber("TextAdvance.DisableExternalControl"); _pluginName = pluginInterface.InternalName; _framework.Update += OnUpdate; @@ -37,7 +40,7 @@ internal sealed class TextAdvanceIpc : IDisposable public void Dispose() { _framework.Update -= OnUpdate; - if(_isExternalControlActivated) + if (_isExternalControlActivated) { _disableExternalControl.InvokeFunc(_pluginName); } @@ -45,11 +48,13 @@ internal sealed class TextAdvanceIpc : IDisposable private void OnUpdate(IFramework framework) { - if(_configuration.General.ConfigureTextAdvance && _questController.IsRunning) + bool hasActiveQuest = _questController.IsRunning || + _questController.AutomationType != QuestController.EAutomationType.Manual; + if (_configuration.General.ConfigureTextAdvance && hasActiveQuest) { - if(!_isInExternalControl.InvokeFunc()) + if (!_isInExternalControl.InvokeFunc()) { - if(_enableExternalControl.InvokeFunc(_pluginName, _externalTerritoryConfig)) + if (_enableExternalControl.InvokeFunc(_pluginName, _externalTerritoryConfig)) { _isExternalControlActivated = true; } @@ -57,9 +62,9 @@ internal sealed class TextAdvanceIpc : IDisposable } else { - if(_isExternalControlActivated) + if (_isExternalControlActivated) { - if(_disableExternalControl.InvokeFunc(_pluginName) || !_isInExternalControl.InvokeFunc()) + if (_disableExternalControl.InvokeFunc(_pluginName) || !_isInExternalControl.InvokeFunc()) { _isExternalControlActivated = false; } diff --git a/Questionable/Functions/GameFunctions.cs b/Questionable/Functions/GameFunctions.cs index c20f3d48..09a9be25 100644 --- a/Questionable/Functions/GameFunctions.cs +++ b/Questionable/Functions/GameFunctions.cs @@ -206,10 +206,12 @@ internal sealed unsafe class GameFunctions public bool UseAction(EAction action) { - if (ActionManager.Instance()->GetActionStatus(ActionType.Action, (uint)action) == 0) + uint actionId = ActionManager.Instance()->GetAdjustedActionId((uint)action); + if (ActionManager.Instance()->GetActionStatus(ActionType.Action, actionId) == 0) { - bool result = ActionManager.Instance()->UseAction(ActionType.Action, (uint)action); - _logger.LogInformation("UseAction {Action} result: {Result}", action, result); + bool result = ActionManager.Instance()->UseAction(ActionType.Action, actionId); + _logger.LogInformation("UseAction {Action} (adjusted: {AdjustedActionId}) result: {Result}", action, + actionId, result); return result; } @@ -219,31 +221,34 @@ internal sealed unsafe class GameFunctions public bool UseAction(IGameObject gameObject, EAction action, bool checkCanUse = true) { - var actionRow = _dataManager.GetExcelSheet().GetRow((uint)action); - if (checkCanUse && !ActionManager.CanUseActionOnTarget((uint)action, (GameObject*)gameObject.Address)) + uint actionId = ActionManager.Instance()->GetAdjustedActionId((uint)action); + var actionRow = _dataManager.GetExcelSheet().GetRow(actionId); + if (checkCanUse && !ActionManager.CanUseActionOnTarget(actionId, (GameObject*)gameObject.Address)) { - _logger.LogWarning("Can not use action {Action} on target {Target}", action, gameObject); + _logger.LogWarning("Can not use action {Action} (adjusted: {AdjustedActionId}) on target {Target}", action, + actionId, gameObject); return false; } _targetManager.Target = gameObject; - if (ActionManager.Instance()->GetActionStatus(ActionType.Action, (uint)action, gameObject.GameObjectId) == 0) + if (ActionManager.Instance()->GetActionStatus(ActionType.Action, actionId, gameObject.GameObjectId) == 0) { bool result; if (actionRow.TargetArea) { Vector3 position = gameObject.Position; - result = ActionManager.Instance()->UseActionLocation(ActionType.Action, (uint)action, + result = ActionManager.Instance()->UseActionLocation(ActionType.Action, actionId, location: &position); - _logger.LogInformation("UseAction {Action} on target area {Target} result: {Result}", action, - gameObject, - result); + _logger.LogInformation( + "UseAction {Action} (adjusted: {AdjustedActionId}) on target area {Target} result: {Result}", + action, actionId, gameObject, result); } else { - result = ActionManager.Instance()->UseAction(ActionType.Action, (uint)action, gameObject.GameObjectId); - _logger.LogInformation("UseAction {Action} on target {Target} result: {Result}", action, gameObject, - result); + result = ActionManager.Instance()->UseAction(ActionType.Action, actionId, gameObject.GameObjectId); + _logger.LogInformation( + "UseAction {Action} (adjusted: {AdjustedActionId}) on target {Target} result: {Result}", action, + actionId, gameObject, result); } return result; @@ -307,7 +312,7 @@ internal sealed unsafe class GameFunctions StatusManager* statusManager = battleChara->GetStatusManager(); return statusManager->HasStatus((uint)statusId); } - + public static bool RemoveStatus(EStatus statusId) { return StatusManager.ExecuteStatusOff((uint)statusId); @@ -452,7 +457,8 @@ internal sealed unsafe class GameFunctions public bool IsLoadingScreenVisible() { - if (_gameGui.TryGetAddonByName("FadeMiddle", out AtkUnitBase* fade) && LAddon.IsAddonReady(fade) && fade->IsVisible) + if (_gameGui.TryGetAddonByName("FadeMiddle", out AtkUnitBase* fade) && LAddon.IsAddonReady(fade) && + fade->IsVisible) return true; if (_gameGui.TryGetAddonByName("FadeBack", out fade) && LAddon.IsAddonReady(fade) && fade->IsVisible) diff --git a/Questionable/Functions/QuestFunctions.cs b/Questionable/Functions/QuestFunctions.cs index bb206a1b..f0e6d159 100644 --- a/Questionable/Functions/QuestFunctions.cs +++ b/Questionable/Functions/QuestFunctions.cs @@ -14,7 +14,6 @@ using LLib.GameData; using LLib.GameUI; using Lumina.Excel.Sheets; using Questionable.Controller; -using Questionable.Controller.Steps.Interactions; using Questionable.Data; using Questionable.Model; using Questionable.Model.Questing; @@ -451,10 +450,18 @@ internal sealed unsafe class QuestFunctions if (IsQuestAccepted(questId)) return false; - if (quest.Info.AlliedSociety != EAlliedSociety.None) + if (questId is QuestId qId && IsDailyAlliedSocietyQuest(qId)) { if (QuestManager.Instance()->IsDailyQuestCompleted(questId.Value)) return false; + + if (!IsDailyAlliedSocietyQuestAndAvailableToday(qId)) + return false; + } + else + { + if (IsQuestComplete(questId)) + return false; } } else @@ -487,6 +494,8 @@ internal sealed unsafe class QuestFunctions return IsQuestAccepted(leveId); else if (elementId is SatisfactionSupplyNpcId) return false; + else if (elementId is AlliedSocietyDailyId) + return false; else throw new ArgumentOutOfRangeException(nameof(elementId)); } @@ -517,6 +526,8 @@ internal sealed unsafe class QuestFunctions return IsQuestComplete(leveId); else if (elementId is SatisfactionSupplyNpcId) return false; + else if (elementId is AlliedSocietyDailyId) + return false; else throw new ArgumentOutOfRangeException(nameof(elementId)); } @@ -540,6 +551,8 @@ internal sealed unsafe class QuestFunctions return IsQuestLocked(leveId); else if (elementId is SatisfactionSupplyNpcId satisfactionSupplyNpcId) return IsQuestLocked(satisfactionSupplyNpcId); + else if (elementId is AlliedSocietyDailyId alliedSocietyDailyId) + return IsQuestLocked(alliedSocietyDailyId); else throw new ArgumentOutOfRangeException(nameof(elementId)); } @@ -556,6 +569,18 @@ internal sealed unsafe class QuestFunctions if (questInfo.AlliedSociety != EAlliedSociety.None && questInfo.IsRepeatable) return !IsDailyAlliedSocietyQuestAndAvailableToday(questId); + if (questInfo.IsMoogleDeliveryQuest) + { + byte currentDeliveryLevel = PlayerState.Instance()->DeliveryLevel; + if (extraCompletedQuest != null && + _questData.TryGetQuestInfo(extraCompletedQuest, out IQuestInfo? extraQuestInfo) && + extraQuestInfo is QuestInfo { IsMoogleDeliveryQuest: true }) + currentDeliveryLevel++; + + if (questInfo.MoogleDeliveryLevel > currentDeliveryLevel) + return true; + } + return !HasCompletedPreviousQuests(questInfo, extraCompletedQuest) || !HasCompletedPreviousInstances(questInfo); } @@ -579,6 +604,13 @@ internal sealed unsafe class QuestFunctions return !HasCompletedPreviousQuests(questInfo, null); } + private bool IsQuestLocked(AlliedSocietyDailyId alliedSocietyDailyId) + { + PlayerState* playerState = PlayerState.Instance(); + byte currentRank = playerState->GetBeastTribeRank(alliedSocietyDailyId.AlliedSociety); + return currentRank == 0 || currentRank < alliedSocietyDailyId.Rank; + } + public bool IsDailyAlliedSocietyQuest(QuestId questId) { var questInfo = (QuestInfo)_questData.GetQuestInfo(questId); @@ -658,6 +690,9 @@ internal sealed unsafe class QuestFunctions return true; } + if (IsQuestRemoved(questId)) + return true; + return false; } @@ -670,6 +705,20 @@ internal sealed unsafe class QuestFunctions return false; } + public bool IsQuestRemoved(ElementId elementId) + { + if (elementId is QuestId questId) + return IsQuestRemoved(questId); + else + return false; + } + + [SuppressMessage("Performance", "CA1822")] + private bool IsQuestRemoved(QuestId questId) + { + return questId.Value is 487 or 1428 or 1429; + } + private bool HasCompletedPreviousQuests(IQuestInfo questInfo, ElementId? extraCompletedQuest) { if (questInfo.PreviousQuests.Count == 0) diff --git a/Questionable/Model/AlliedSocietyDailyInfo.cs b/Questionable/Model/AlliedSocietyDailyInfo.cs new file mode 100644 index 00000000..0f203609 --- /dev/null +++ b/Questionable/Model/AlliedSocietyDailyInfo.cs @@ -0,0 +1,60 @@ +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Linq; +using LLib.GameData; +using Lumina.Excel.Sheets; +using Questionable.Data; +using Questionable.Model.Questing; + +namespace Questionable.Model; + +internal sealed class AlliedSocietyDailyInfo : IQuestInfo +{ + public AlliedSocietyDailyInfo(BeastTribe beastTribe, byte rank) + { + QuestId = new AlliedSocietyDailyId((byte)beastTribe.RowId, rank); + Name = beastTribe.Name.ToString(); + ClassJobs = (EAlliedSociety)beastTribe.RowId switch + { + EAlliedSociety.Amaljaa or EAlliedSociety.Sylphs or EAlliedSociety.Kobolds or EAlliedSociety.Sahagin or + EAlliedSociety.VanuVanu or EAlliedSociety.Vath or + EAlliedSociety.Kojin or EAlliedSociety.Ananta or + EAlliedSociety.Pixies or + EAlliedSociety.Arkasodara or + EAlliedSociety.Pelupelu => + [ + ..ClassJobUtils.AsIndividualJobs(EExtendedClassJob.DoW), + ..ClassJobUtils.AsIndividualJobs(EExtendedClassJob.DoM) + ], + EAlliedSociety.Ixal or EAlliedSociety.Moogles or EAlliedSociety.Dwarves or EAlliedSociety.Loporrits => + ClassJobUtils.AsIndividualJobs(EExtendedClassJob.DoH).ToList(), + + EAlliedSociety.Qitari or EAlliedSociety.Omicrons => + ClassJobUtils.AsIndividualJobs(EExtendedClassJob.DoL).ToList(), + + EAlliedSociety.Namazu => + [ + ..ClassJobUtils.AsIndividualJobs(EExtendedClassJob.DoH), + ..ClassJobUtils.AsIndividualJobs(EExtendedClassJob.DoL) + ], + + _ => throw new ArgumentOutOfRangeException(nameof(beastTribe)) + }; + Expansion = (EExpansionVersion)beastTribe.Expansion.RowId; + } + + public ElementId QuestId { get; } + public string Name { get; } + public uint IssuerDataId => 0; + public ImmutableList PreviousQuests { get; } = []; + public EQuestJoin PreviousQuestJoin => EQuestJoin.All; + public bool IsRepeatable => true; + public ushort Level => 1; + public EAlliedSociety AlliedSociety => EAlliedSociety.None; + public uint? JournalGenre => null; + public ushort SortKey => 0; + public bool IsMainScenarioQuest => false; + public IReadOnlyList ClassJobs { get; } + public EExpansionVersion Expansion { get; } +} diff --git a/Questionable/Model/ItemReward.cs b/Questionable/Model/ItemReward.cs new file mode 100644 index 00000000..03044744 --- /dev/null +++ b/Questionable/Model/ItemReward.cs @@ -0,0 +1,99 @@ +using System; +using Dalamud.Utility; +using FFXIVClientStructs.FFXIV.Client.Game.UI; +using Lumina.Excel.Sheets; +using Questionable.Model.Questing; + +namespace Questionable.Model; + +public enum EItemRewardType +{ + Mount, + Minion, + OrchestrionRoll, + TripleTriadCard, + FashionAccessory, +} + +public sealed class ItemRewardDetails(Item item, ElementId elementId) +{ + public uint ItemId { get; } = item.RowId; + public string Name { get; } = item.Name.ToDalamudString().ToString(); + public TimeSpan CastTime { get; } = TimeSpan.FromSeconds(item.CastTimeSeconds); + public ElementId ElementId { get; } = elementId; +} + +public abstract record ItemReward(ItemRewardDetails Item) +{ + internal static ItemReward? CreateFromItem(Item item, ElementId elementId) + { + if (item.ItemAction.ValueNullable?.Type is 1322) + return new MountReward(new ItemRewardDetails(item, elementId), item.ItemAction.Value.Data[0]); + + if (item.ItemAction.ValueNullable?.Type is 853) + return new MinionReward(new ItemRewardDetails(item, elementId), item.ItemAction.Value.Data[0]); + + if (item.AdditionalData.GetValueOrDefault() is { } orchestrionRoll) + return new OrchestrionRollReward(new ItemRewardDetails(item, elementId), orchestrionRoll.RowId); + + if (item.AdditionalData.GetValueOrDefault() is { } tripleTriadCard) + return new TripleTriadCardReward(new ItemRewardDetails(item, elementId), (ushort)tripleTriadCard.RowId); + + if (item.ItemAction.ValueNullable?.Type is 20086) + return new FashionAccessoryReward(new ItemRewardDetails(item, elementId), item.ItemAction.Value.Data[0]); + + return null; + } + + public uint ItemId => Item.ItemId; + public string Name => Item.Name; + public ElementId ElementId => Item.ElementId; + public TimeSpan CastTime => Item.CastTime; + public abstract EItemRewardType Type { get; } + public abstract bool IsUnlocked(); +} + +public sealed record MountReward(ItemRewardDetails Item, uint MountId) + : ItemReward(Item) +{ + public override EItemRewardType Type => EItemRewardType.Mount; + + public override unsafe bool IsUnlocked() + => PlayerState.Instance()->IsMountUnlocked(MountId); +} + +public sealed record MinionReward(ItemRewardDetails Item, uint MinionId) + : ItemReward(Item) +{ + public override EItemRewardType Type => EItemRewardType.Minion; + + public override unsafe bool IsUnlocked() + => UIState.Instance()->IsCompanionUnlocked(MinionId); +} + +public sealed record OrchestrionRollReward(ItemRewardDetails Item, uint OrchestrionRollId) + : ItemReward(Item) +{ + public override EItemRewardType Type => EItemRewardType.OrchestrionRoll; + + public override unsafe bool IsUnlocked() => + PlayerState.Instance()->IsOrchestrionRollUnlocked(OrchestrionRollId); +} + +public sealed record TripleTriadCardReward(ItemRewardDetails Item, ushort TripleTriadCardId) + : ItemReward(Item) +{ + public override EItemRewardType Type => EItemRewardType.TripleTriadCard; + + public override unsafe bool IsUnlocked() => + UIState.Instance()->IsTripleTriadCardUnlocked(TripleTriadCardId); +} + +public sealed record FashionAccessoryReward(ItemRewardDetails Item, uint AccessoryId) + : ItemReward(Item) +{ + public override EItemRewardType Type => EItemRewardType.FashionAccessory; + + public override unsafe bool IsUnlocked() => + PlayerState.Instance()->IsOrnamentUnlocked(AccessoryId); +} diff --git a/Questionable/Model/JournalGenreOverrides.cs b/Questionable/Model/JournalGenreOverrides.cs new file mode 100644 index 00000000..bafd7282 --- /dev/null +++ b/Questionable/Model/JournalGenreOverrides.cs @@ -0,0 +1,7 @@ +namespace Questionable.Model; + +internal sealed class JournalGenreOverrides +{ + public required uint ThavnairSideQuests { get; init; } + public required uint RadzAtHanSideQuests { get; init; } +} diff --git a/Questionable/Model/QuestInfo.cs b/Questionable/Model/QuestInfo.cs index 32f80ff4..5f261275 100644 --- a/Questionable/Model/QuestInfo.cs +++ b/Questionable/Model/QuestInfo.cs @@ -2,16 +2,17 @@ using System.Collections.Generic; using System.Collections.Immutable; using System.Linq; -using FFXIVClientStructs.FFXIV.Client.UI.Agent; using LLib.GameData; +using Lumina.Excel.Sheets; using Questionable.Model.Questing; using ExcelQuest = Lumina.Excel.Sheets.Quest; +using GrandCompany = FFXIVClientStructs.FFXIV.Client.UI.Agent.GrandCompany; namespace Questionable.Model; internal sealed class QuestInfo : IQuestInfo { - public QuestInfo(ExcelQuest quest, uint newGamePlusChapter, byte startingCity) + public QuestInfo(ExcelQuest quest, uint newGamePlusChapter, byte startingCity, JournalGenreOverrides journalGenreOverrides) { QuestId = new QuestId((ushort)(quest.RowId & 0xFFFF)); @@ -40,9 +41,9 @@ internal sealed class QuestInfo : IQuestInfo PreviousQuests = new List { - new(new QuestId((ushort)(quest.PreviousQuest[0].RowId & 0xFFFF)), quest.Unknown7), - new(new QuestId((ushort)(quest.PreviousQuest[1].RowId & 0xFFFF))), - new(new QuestId((ushort)(quest.PreviousQuest[2].RowId & 0xFFFF))) + new(ReplaceOldQuestIds((ushort)(quest.PreviousQuest[0].RowId & 0xFFFF)), quest.Unknown7), + new(ReplaceOldQuestIds((ushort)(quest.PreviousQuest[1].RowId & 0xFFFF))), + new(ReplaceOldQuestIds((ushort)(quest.PreviousQuest[2].RowId & 0xFFFF))) } .Where(x => x.QuestId.Value != 0) .ToImmutableList(); @@ -52,9 +53,14 @@ internal sealed class QuestInfo : IQuestInfo .Where(x => x.Value != 0) .ToImmutableList(); QuestLockJoin = (EQuestJoin)quest.QuestLockJoin; - JournalGenre = quest.JournalGenre.ValueNullable?.RowId; + JournalGenre = QuestId.Value switch + { + >= 4196 and <= 4209 => journalGenreOverrides.ThavnairSideQuests, + 4173 => journalGenreOverrides.RadzAtHanSideQuests, + _ => quest.JournalGenre.ValueNullable?.RowId, + }; SortKey = quest.SortKey; - IsMainScenarioQuest = quest.JournalGenre.ValueNullable?.JournalCategory.ValueNullable?.JournalSection.ValueNullable?.RowId is 0 or 1; + IsMainScenarioQuest = quest.JournalGenre.ValueNullable?.Icon == 61412; CompletesInstantly = quest.TodoParams[0].ToDoCompleteSeq == 0; PreviousInstanceContent = quest.InstanceContent.Select(x => (ushort)x.RowId).Where(x => x != 0).ToList(); PreviousInstanceContentJoin = (EQuestJoin)quest.InstanceContentJoin; @@ -66,9 +72,27 @@ internal sealed class QuestInfo : IQuestInfo IsSeasonalEvent = quest.Festival.RowId != 0; NewGamePlusChapter = newGamePlusChapter; StartingCity = startingCity; + MoogleDeliveryLevel = (byte)quest.DeliveryQuest.RowId; + ItemRewards = quest.Reward.Where(x => x.RowId > 0 && x.Is()) + .Select(x => x.GetValueOrDefault()) + .Where(x => x != null) + .Cast() + .Where(x => x.IsUntradable) + .Select(x => ItemReward.CreateFromItem(x, QuestId)) + .Where(x => x != null) + .Cast() + .ToList(); Expansion = (EExpansionVersion)quest.Expansion.RowId; } + private static QuestId ReplaceOldQuestIds(ushort questId) + { + return new QuestId(questId switch + { + 524 => 4522, + _ => questId, + }); + } public ElementId QuestId { get; } public string Name { get; } @@ -93,6 +117,9 @@ internal sealed class QuestInfo : IQuestInfo public bool IsSeasonalEvent { get; } public uint NewGamePlusChapter { get; } public byte StartingCity { get; set; } + public byte MoogleDeliveryLevel { get; } + public bool IsMoogleDeliveryQuest => JournalGenre == 87; + public IReadOnlyList ItemRewards { get; } public EExpansionVersion Expansion { get; } public void AddPreviousQuest(PreviousQuestInfo questId) diff --git a/Questionable/Questionable.csproj b/Questionable/Questionable.csproj index 6d44ba06..544ba74e 100644 --- a/Questionable/Questionable.csproj +++ b/Questionable/Questionable.csproj @@ -23,4 +23,11 @@ + + + + + Questionable.Controller.CombatModules.BossModPreset + + diff --git a/Questionable/QuestionablePlugin.cs b/Questionable/QuestionablePlugin.cs index 8e4ad410..a4b5bae9 100644 --- a/Questionable/QuestionablePlugin.cs +++ b/Questionable/QuestionablePlugin.cs @@ -7,6 +7,7 @@ using Dalamud.Interface.Windowing; using Dalamud.Plugin; using Dalamud.Plugin.Services; using LLib; +using LLib.Gear; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; using Questionable.Controller; @@ -19,7 +20,6 @@ using Questionable.Controller.Steps.Common; using Questionable.Controller.Steps.Gathering; using Questionable.Controller.Steps.Interactions; using Questionable.Controller.Steps.Leves; -using Questionable.Controller.Utils; using Questionable.Data; using Questionable.External; using Questionable.Functions; @@ -130,6 +130,9 @@ public sealed class QuestionablePlugin : IDalamudPlugin serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); + serviceCollection.AddSingleton(); + + serviceCollection.AddSingleton(); } private static void AddTaskFactories(ServiceCollection serviceCollection) @@ -138,6 +141,8 @@ public sealed class QuestionablePlugin : IDalamudPlugin serviceCollection.AddTaskFactory(); serviceCollection .AddTaskExecutor(); + serviceCollection + .AddTaskFactoryAndExecutor(); serviceCollection.AddTaskExecutor(); serviceCollection.AddTaskExecutor(); serviceCollection.AddTaskFactoryAndExecutor(); serviceCollection - .AddTaskExecutor(); + .AddTaskExecutor(); serviceCollection .AddTaskFactoryAndExecutor(); serviceCollection.AddTaskFactoryAndExecutor(); @@ -179,7 +185,10 @@ public sealed class QuestionablePlugin : IDalamudPlugin .AddTaskFactoryAndExecutor(); serviceCollection.AddTaskFactoryAndExecutor(); serviceCollection.AddTaskFactoryAndExecutor(); - serviceCollection.AddTaskFactoryAndExecutor(); + serviceCollection + .AddTaskFactoryAndExecutor(); + serviceCollection.AddTaskExecutor(); + serviceCollection.AddTaskExecutor(); serviceCollection.AddTaskFactory(); serviceCollection.AddTaskExecutor(); serviceCollection.AddTaskExecutor(); @@ -246,7 +255,10 @@ public sealed class QuestionablePlugin : IDalamudPlugin serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); + serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); + serviceCollection.AddSingleton(); + serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); } @@ -264,6 +276,7 @@ public sealed class QuestionablePlugin : IDalamudPlugin serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); + serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); diff --git a/Questionable/Validation/Validators/CompletionFlagsValidator.cs b/Questionable/Validation/Validators/CompletionFlagsValidator.cs index e5c9fdc1..dc36bcc1 100644 --- a/Questionable/Validation/Validators/CompletionFlagsValidator.cs +++ b/Questionable/Validation/Validators/CompletionFlagsValidator.cs @@ -11,6 +11,10 @@ internal sealed class CompletionFlagsValidator : IQuestValidator { public IEnumerable Validate(Quest quest) { + // this maybe should check for skipconditions, but this applies to one quest only atm + if (quest.Id.Value == 5149) + yield break; + foreach (var sequence in quest.AllSequences()) { var mappedCompletionFlags = sequence.Steps diff --git a/Questionable/Windows/ConfigWindow.cs b/Questionable/Windows/ConfigWindow.cs index 27c968a0..131f3726 100644 --- a/Questionable/Windows/ConfigWindow.cs +++ b/Questionable/Windows/ConfigWindow.cs @@ -1,8 +1,11 @@ using System; using System.Collections.Generic; -using System.Diagnostics.CodeAnalysis; +using System.Globalization; using System.Linq; +using System.Numerics; +using System.Text; using Dalamud.Game.Text; +using Dalamud.Interface; using Dalamud.Interface.Colors; using Dalamud.Interface.Components; using Dalamud.Interface.Utility.Raii; @@ -12,30 +15,70 @@ using Dalamud.Utility; using ImGuiNET; using LLib.ImGui; using Lumina.Excel.Sheets; +using Questionable.Controller; +using Questionable.Data; using Questionable.External; +using Questionable.Model; using GrandCompany = FFXIVClientStructs.FFXIV.Client.UI.Agent.GrandCompany; namespace Questionable.Windows; internal sealed class ConfigWindow : LWindow, IPersistableWindowConfig { + private const string DutyClipboardPrefix = "qst:duty:"; + private const string DutyClipboardSeparator = ";"; + private const string DutyWhitelistPrefix = "+"; + private const string DutyBlacklistPrefix = "-"; + + private static readonly List<(uint Id, string Name)> DefaultMounts = [(0, "Mount Roulette")]; + private readonly IDalamudPluginInterface _pluginInterface; private readonly NotificationMasterIpc _notificationMasterIpc; private readonly Configuration _configuration; + private readonly CombatController _combatController; + private readonly QuestRegistry _questRegistry; + private readonly AutoDutyIpc _autoDutyIpc; private readonly uint[] _mountIds; private readonly string[] _mountNames; + private readonly string[] _combatModuleNames = ["None", "Boss Mod (VBM)", "Wrath Combo", "Rotation Solver Reborn"]; + private readonly string[] _grandCompanyNames = ["None (manually pick quest)", "Maelstrom", "Twin Adder", "Immortal Flames"]; - [SuppressMessage("Performance", "CA1861", Justification = "One time initialization")] - public ConfigWindow(IDalamudPluginInterface pluginInterface, NotificationMasterIpc notificationMasterIpc, Configuration configuration, IDataManager dataManager) + private readonly string[] _supportedCfcOptions = + [ + $"{SeIconChar.Circle.ToIconChar()} Enabled (Default)", + $"{SeIconChar.Circle.ToIconChar()} Enabled", + $"{SeIconChar.Cross.ToIconChar()} Disabled" + ]; + + private readonly string[] _unsupportedCfcOptions = + [ + $"{SeIconChar.Cross.ToIconChar()} Disabled (Default)", + $"{SeIconChar.Circle.ToIconChar()} Enabled", + $"{SeIconChar.Cross.ToIconChar()} Disabled" + ]; + + private readonly Dictionary> _contentFinderConditionNames; + + public ConfigWindow(IDalamudPluginInterface pluginInterface, + NotificationMasterIpc notificationMasterIpc, + Configuration configuration, + IDataManager dataManager, + CombatController combatController, + TerritoryData territoryData, + QuestRegistry questRegistry, + AutoDutyIpc autoDutyIpc) : base("Config - Questionable###QuestionableConfig", ImGuiWindowFlags.AlwaysAutoResize) { _pluginInterface = pluginInterface; _notificationMasterIpc = notificationMasterIpc; _configuration = configuration; + _combatController = combatController; + _questRegistry = questRegistry; + _autoDutyIpc = autoDutyIpc; var mounts = dataManager.GetExcelSheet() .Where(x => x is { RowId: > 0, Icon: > 0 }) @@ -43,12 +86,42 @@ internal sealed class ConfigWindow : LWindow, IPersistableWindowConfig .Where(x => !string.IsNullOrEmpty(x.Name)) .OrderBy(x => x.Name) .ToList(); - _mountIds = new uint[] { 0 }.Concat(mounts.Select(x => x.MountId)).ToArray(); - _mountNames = new[] { "Mount Roulette" }.Concat(mounts.Select(x => x.Name)).ToArray(); + _mountIds = DefaultMounts.Select(x => x.Id).Concat(mounts.Select(x => x.MountId)).ToArray(); + _mountNames = DefaultMounts.Select(x => x.Name).Concat(mounts.Select(x => x.Name)).ToArray(); + + _contentFinderConditionNames = dataManager.GetExcelSheet() + .Where(x => x is { RowId: > 0, Unknown16: false }) + .OrderBy(x => x.Unknown15) // SortKey for the support UI + .Select(x => x.Content.ValueNullable) + .Where(x => x != null) + .Select(x => x!.Value) + .Select(x => new + { + Expansion = (EExpansionVersion)x.TerritoryType.Value.ExVersion.RowId, + CfcId = x.RowId, + Name = territoryData.GetContentFinderCondition(x.RowId)?.Name ?? "?", + TerritoryId = x.TerritoryType.RowId, + ContentType = x.ContentType.RowId, + Level = x.ClassJobLevelRequired, + x.SortKey + }) + .GroupBy(x => x.Expansion) + .ToDictionary(x => x.Key, + x => x + .Select(y => new DutyInfo(y.CfcId, y.TerritoryId, $"{SeIconChar.LevelEn.ToIconChar()}{FormatLevel(y.Level)} {y.Name}")) + .ToList()); } public WindowConfig WindowConfig => _configuration.ConfigWindowConfig; + private static string FormatLevel(int level) + { + if (level == 0) + return string.Empty; + + return $"{FormatLevel(level / 10)}{(SeIconChar.Number0 + level % 10).ToIconChar()}"; + } + public override void Draw() { using var tabBar = ImRaii.TabBar("QuestionableConfigTabs"); @@ -56,6 +129,7 @@ internal sealed class ConfigWindow : LWindow, IPersistableWindowConfig return; DrawGeneralTab(); + DrawDutiesTab(); DrawNotificationsTab(); DrawAdvancedTab(); } @@ -65,6 +139,18 @@ internal sealed class ConfigWindow : LWindow, IPersistableWindowConfig using var tab = ImRaii.TabItem("General"); if (!tab) return; + + using (ImRaii.Disabled(_combatController.IsRunning)) + { + int selectedCombatModule = (int)_configuration.General.CombatModule; + if (ImGui.Combo("Preferred Combat Module", ref selectedCombatModule, _combatModuleNames, + _combatModuleNames.Length)) + { + _configuration.General.CombatModule = (Configuration.ECombatModule)selectedCombatModule; + Save(); + } + } + int selectedMount = Array.FindIndex(_mountIds, x => x == _configuration.General.MountId); if (selectedMount == -1) { @@ -117,6 +203,175 @@ internal sealed class ConfigWindow : LWindow, IPersistableWindowConfig } } + private void DrawDutiesTab() + { + using var tab = ImRaii.TabItem("Duties"); + if (!tab) + return; + + bool runInstancedContentWithAutoDuty = _configuration.Duties.RunInstancedContentWithAutoDuty; + if (ImGui.Checkbox("Run instanced content with AutoDuty and BossMod", ref runInstancedContentWithAutoDuty)) + { + _configuration.Duties.RunInstancedContentWithAutoDuty = runInstancedContentWithAutoDuty; + Save(); + } + + ImGui.SameLine(); + ImGuiComponents.HelpMarker( + "The combat module used for this is configured by AutoDuty, ignoring whichever selection you've made in Questionable's \"General\" configuration."); + + ImGui.Separator(); + + using (ImRaii.Disabled(!runInstancedContentWithAutoDuty)) + { + ImGui.Text( + "Questionable includes a default list of duties that work if AutoDuty and BossMod are installed."); + + ImGui.Text("The included list of duties can change with each update, and is based on the following spreadsheet:"); + if (ImGuiComponents.IconButtonWithText(FontAwesomeIcon.GlobeEurope, "Open AutoDuty spreadsheet")) + Util.OpenLink( + "https://docs.google.com/spreadsheets/d/151RlpqRcCpiD_VbQn6Duf-u-S71EP7d0mx3j1PDNoNA/edit?pli=1#gid=0"); + + ImGui.Separator(); + ImGui.Text("You can override the dungeon settings for each individual dungeon/trial:"); + + using (var child = ImRaii.Child("DutyConfiguration", new Vector2(-1, 400), true)) + { + if (child) + { + foreach (EExpansionVersion expansion in Enum.GetValues()) + { + if (ImGui.CollapsingHeader(expansion.ToString())) + { + using var table = ImRaii.Table($"Duties{expansion}", 2, ImGuiTableFlags.SizingFixedFit); + if (table) + { + ImGui.TableSetupColumn("Name", ImGuiTableColumnFlags.WidthStretch); + ImGui.TableSetupColumn("Options", ImGuiTableColumnFlags.WidthFixed, 200f); + + if (_contentFinderConditionNames.TryGetValue(expansion, out var cfcNames)) + { + foreach (var (cfcId, territoryId, name) in cfcNames) + { + if (_questRegistry.TryGetDutyByContentFinderConditionId(cfcId, + out bool autoDutyEnabledByDefault)) + { + ImGui.TableNextRow(); + + string[] labels = autoDutyEnabledByDefault + ? _supportedCfcOptions + : _unsupportedCfcOptions; + int value = 0; + if (_configuration.Duties.WhitelistedDutyCfcIds.Contains(cfcId)) + value = 1; + if (_configuration.Duties.BlacklistedDutyCfcIds.Contains(cfcId)) + value = 2; + + if (ImGui.TableNextColumn()) + { + ImGui.AlignTextToFramePadding(); + ImGui.TextUnformatted(name); + if (ImGui.IsItemHovered() && _configuration.Advanced.AdditionalStatusInformation) + { + using var tooltip = ImRaii.Tooltip(); + if (tooltip) + { + ImGui.TextUnformatted(name); + ImGui.Separator(); + ImGui.BulletText($"TerritoryId: {territoryId}"); + ImGui.BulletText($"ContentFinderConditionId: {cfcId}"); + } + } + + if (runInstancedContentWithAutoDuty && !_autoDutyIpc.HasPath(cfcId)) + ImGuiComponents.HelpMarker("This duty is not supported by AutoDuty", FontAwesomeIcon.Times, ImGuiColors.DalamudRed); + } + + if (ImGui.TableNextColumn()) + { + using var _ = ImRaii.PushId($"##Dungeon{cfcId}"); + ImGui.SetNextItemWidth(200); + if (ImGui.Combo(string.Empty, ref value, labels, labels.Length)) + { + _configuration.Duties.WhitelistedDutyCfcIds.Remove(cfcId); + _configuration.Duties.BlacklistedDutyCfcIds.Remove(cfcId); + + if (value == 1) + _configuration.Duties.WhitelistedDutyCfcIds.Add(cfcId); + else if (value == 2) + _configuration.Duties.BlacklistedDutyCfcIds.Add(cfcId); + + Save(); + } + } + } + } + } + } + } + } + } + } + + using (ImRaii.Disabled(_configuration.Duties.WhitelistedDutyCfcIds.Count + + _configuration.Duties.BlacklistedDutyCfcIds.Count == 0)) + { + if (ImGuiComponents.IconButtonWithText(FontAwesomeIcon.Copy, "Export to clipboard")) + { + var whitelisted = + _configuration.Duties.WhitelistedDutyCfcIds.Select(x => $"{DutyWhitelistPrefix}{x}"); + var blacklisted = + _configuration.Duties.BlacklistedDutyCfcIds.Select(x => $"{DutyBlacklistPrefix}{x}"); + string text = DutyClipboardPrefix + Convert.ToBase64String(Encoding.UTF8.GetBytes( + string.Join(DutyClipboardSeparator, whitelisted.Concat(blacklisted)))); + ImGui.SetClipboardText(text); + } + } + + ImGui.SameLine(); + + string? clipboardText = GetClipboardText(); + using (ImRaii.Disabled(clipboardText == null || !clipboardText.StartsWith(DutyClipboardPrefix, StringComparison.InvariantCulture))) + { + if (ImGuiComponents.IconButtonWithText(FontAwesomeIcon.Paste, "Import from Clipboard")) + { + clipboardText = clipboardText!.Substring(DutyClipboardPrefix.Length); + string text = Encoding.UTF8.GetString(Convert.FromBase64String(clipboardText)); + + _configuration.Duties.WhitelistedDutyCfcIds.Clear(); + _configuration.Duties.BlacklistedDutyCfcIds.Clear(); + foreach (string part in text.Split(DutyClipboardSeparator)) + { + if (part.StartsWith(DutyWhitelistPrefix, StringComparison.InvariantCulture) && + uint.TryParse(part.AsSpan(DutyWhitelistPrefix.Length), CultureInfo.InvariantCulture, + out uint whitelistedCfcId)) + _configuration.Duties.WhitelistedDutyCfcIds.Add(whitelistedCfcId); + + if (part.StartsWith(DutyBlacklistPrefix, StringComparison.InvariantCulture) && + uint.TryParse(part.AsSpan(DutyBlacklistPrefix.Length), CultureInfo.InvariantCulture, + out uint blacklistedCfcId)) + _configuration.Duties.WhitelistedDutyCfcIds.Add(blacklistedCfcId); + } + } + } + + ImGui.SameLine(); + + using (var unused = ImRaii.Disabled(!ImGui.IsKeyDown(ImGuiKey.ModCtrl))) + { + if (ImGui.Button("Reset to default")) + { + _configuration.Duties.WhitelistedDutyCfcIds.Clear(); + _configuration.Duties.BlacklistedDutyCfcIds.Clear(); + Save(); + } + } + + if (ImGui.IsItemHovered(ImGuiHoveredFlags.AllowWhenDisabled)) + ImGui.SetTooltip("Hold CTRL to enable this button."); + } + } + private void DrawNotificationsTab() { using var tab = ImRaii.TabItem("Notifications"); @@ -210,4 +465,21 @@ internal sealed class ConfigWindow : LWindow, IPersistableWindowConfig private void Save() => _pluginInterface.SavePluginConfig(_configuration); public void SaveWindowConfig() => Save(); + + /// + /// The default implementation for throws an NullReferenceException if the clipboard is empty, maybe also if it doesn't contain text. + /// + private unsafe string? GetClipboardText() + { + byte* ptr = ImGuiNative.igGetClipboardText(); + if (ptr == null) + return null; + + int byteCount = 0; + while (ptr[byteCount] != 0) + ++byteCount; + return Encoding.UTF8.GetString(ptr, byteCount); + } + + private sealed record DutyInfo(uint CfcId, uint TerritoryId, string Name); } diff --git a/Questionable/Windows/JournalComponents/AlliedSocietyJournalComponent.cs b/Questionable/Windows/JournalComponents/AlliedSocietyJournalComponent.cs index c7e50602..99582c24 100644 --- a/Questionable/Windows/JournalComponents/AlliedSocietyJournalComponent.cs +++ b/Questionable/Windows/JournalComponents/AlliedSocietyJournalComponent.cs @@ -17,7 +17,9 @@ internal sealed class AlliedSocietyJournalComponent private static readonly string[] RankNames = ["Neutral", "Recognized", "Friendly", "Trusted", "Respected", "Honored", "Sworn", "Allied"]; +#if DEBUG private readonly QuestFunctions _questFunctions; +#endif private readonly AlliedSocietyQuestFunctions _alliedSocietyQuestFunctions; private readonly QuestData _questData; private readonly QuestRegistry _questRegistry; @@ -26,7 +28,9 @@ internal sealed class AlliedSocietyJournalComponent private readonly UiUtils _uiUtils; public AlliedSocietyJournalComponent( +#if DEBUG QuestFunctions questFunctions, +#endif AlliedSocietyQuestFunctions alliedSocietyQuestFunctions, QuestData questData, QuestRegistry questRegistry, @@ -34,7 +38,9 @@ internal sealed class AlliedSocietyJournalComponent QuestTooltipComponent questTooltipComponent, UiUtils uiUtils) { +#if DEBUG _questFunctions = questFunctions; +#endif _alliedSocietyQuestFunctions = alliedSocietyQuestFunctions; _questData = questData; _questRegistry = questRegistry; @@ -60,7 +66,7 @@ internal sealed class AlliedSocietyJournalComponent string label = $"{alliedSociety}###AlliedSociety{(int)alliedSociety}"; #if DEBUG bool isOpen; - if (quests.Any(x => !_questRegistry.IsKnownQuest(x.QuestId))) + if (quests.Any(x => !_questRegistry.TryGetQuest(x.QuestId, out var quest) || quest.Root.Disabled)) { using (ImRaii.PushColor(ImGuiCol.Text, ImGuiColors.DalamudOrange)) isOpen = ImGui.CollapsingHeader(label); @@ -103,7 +109,7 @@ internal sealed class AlliedSocietyJournalComponent private void DrawQuest(QuestInfo questInfo) { var (color, icon, tooltipText) = _uiUtils.GetQuestStyle(questInfo.QuestId); - if (!_questRegistry.TryGetQuest(questInfo.QuestId, out var quest)) + if (!_questRegistry.TryGetQuest(questInfo.QuestId, out var quest) || quest.Root.Disabled) color = ImGuiColors.DalamudGrey; if (_uiUtils.ChecklistItem($"{questInfo.Name} ({tooltipText})", color, icon)) diff --git a/Questionable/Windows/JournalComponents/QuestJournalComponent.cs b/Questionable/Windows/JournalComponents/QuestJournalComponent.cs index b68f9dd3..437591ff 100644 --- a/Questionable/Windows/JournalComponents/QuestJournalComponent.cs +++ b/Questionable/Windows/JournalComponents/QuestJournalComponent.cs @@ -1,8 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Globalization; -using System.Linq; -using Dalamud.Interface; +using Dalamud.Interface; using Dalamud.Interface.Colors; using Dalamud.Interface.Utility.Raii; using Dalamud.Plugin; @@ -12,9 +8,12 @@ using Questionable.Controller; using Questionable.Data; using Questionable.Functions; using Questionable.Model; -using Questionable.Model.Questing; using Questionable.Validation; using Questionable.Windows.QuestComponents; +using System; +using System.Collections.Generic; +using System.Globalization; +using System.Linq; namespace Questionable.Windows.JournalComponents; @@ -34,7 +33,6 @@ internal sealed class QuestJournalComponent private readonly QuestValidator _questValidator; private List _filteredSections = []; - private string _searchText = string.Empty; public QuestJournalComponent(JournalData journalData, QuestRegistry questRegistry, QuestFunctions questFunctions, UiUtils uiUtils, QuestTooltipComponent questTooltipComponent, IDalamudPluginInterface pluginInterface, @@ -50,6 +48,8 @@ internal sealed class QuestJournalComponent _questValidator = questValidator; } + internal FilterConfiguration Filter { get; } = new(); + public void DrawQuests() { using var tab = ImRaii.TabItem("Quests"); @@ -69,8 +69,11 @@ internal sealed class QuestJournalComponent ImGui.Spacing(); } + QuestJournalUtils.ShowFilterContextMenu(this); + + ImGui.SameLine(); ImGui.SetNextItemWidth(ImGui.GetContentRegionAvail().X); - if (ImGui.InputTextWithHint(string.Empty, "Search quests and categories", ref _searchText, 256)) + if (ImGui.InputTextWithHint(string.Empty, "Search quests and categories", ref Filter.SearchText, 256)) UpdateFilter(); if (_filteredSections.Count > 0) @@ -88,23 +91,23 @@ internal sealed class QuestJournalComponent DrawSection(section); } else - ImGui.Text("No quest or category matches your search text."); + ImGui.Text("No quest or category matches your search."); } private void DrawSection(FilteredSection filter) { - if (filter.Section.QuestCount == 0) + (int available, int total, int obtainable, int completed) = + _sectionCounts.GetValueOrDefault(filter.Section, new()); + if (total == 0) return; - (int available, int obtainable, int completed) = _sectionCounts.GetValueOrDefault(filter.Section, new()); - ImGui.TableNextRow(); ImGui.TableNextColumn(); bool open = ImGui.TreeNodeEx(filter.Section.Name, ImGuiTreeNodeFlags.SpanFullWidth); ImGui.TableNextColumn(); - DrawCount(available, filter.Section.QuestCount); + DrawCount(available, total); ImGui.TableNextColumn(); DrawCount(completed, obtainable); @@ -119,18 +122,18 @@ internal sealed class QuestJournalComponent private void DrawCategory(FilteredCategory filter) { - if (filter.Category.QuestCount == 0) + (int available, int total, int obtainable, int completed) = + _categoryCounts.GetValueOrDefault(filter.Category, new()); + if (total == 0) return; - (int available, int obtainable, int completed) = _categoryCounts.GetValueOrDefault(filter.Category, new()); - ImGui.TableNextRow(); ImGui.TableNextColumn(); bool open = ImGui.TreeNodeEx(filter.Category.Name, ImGuiTreeNodeFlags.SpanFullWidth); ImGui.TableNextColumn(); - DrawCount(available, filter.Category.QuestCount); + DrawCount(available, total); ImGui.TableNextColumn(); DrawCount(completed, obtainable); @@ -145,18 +148,17 @@ internal sealed class QuestJournalComponent private void DrawGenre(FilteredGenre filter) { - if (filter.Genre.QuestCount == 0) + (int supported, int total, int obtainable, int completed) = _genreCounts.GetValueOrDefault(filter.Genre, new()); + if (total == 0) return; - (int supported, int obtainable, int completed) = _genreCounts.GetValueOrDefault(filter.Genre, new()); - ImGui.TableNextRow(); ImGui.TableNextColumn(); bool open = ImGui.TreeNodeEx(filter.Genre.Name, ImGuiTreeNodeFlags.SpanFullWidth); ImGui.TableNextColumn(); - DrawCount(supported, filter.Genre.QuestCount); + DrawCount(supported, total); ImGui.TableNextColumn(); DrawCount(completed, obtainable); @@ -194,7 +196,9 @@ internal sealed class QuestJournalComponent ImGui.SetCursorPosX(ImGui.GetCursorPosX() + spacing); - if (quest is { Root.Disabled: false }) + if (_questFunctions.IsQuestRemoved(questInfo.QuestId)) + _uiUtils.ChecklistItem(string.Empty, ImGuiColors.DalamudGrey, FontAwesomeIcon.Minus); + else if (quest is { Root.Disabled: false }) { List issues = _questValidator.GetIssues(quest.Id); if (issues.Any(x => x.Severity == EIssueSeverity.Error)) @@ -234,80 +238,63 @@ internal sealed class QuestJournalComponent public void UpdateFilter() { - Predicate match; - if (string.IsNullOrWhiteSpace(_searchText)) - match = _ => true; - else - match = x => x.Contains(_searchText, StringComparison.CurrentCultureIgnoreCase); - _filteredSections = _journalData.Sections - .Select(section => FilterSection(section, match)) - .Where(x => x != null) - .Cast() + .Select(x => FilterSection(x, Filter)) + .Where(x => x.Categories.Count > 0) .ToList(); + + RefreshCounts(); } - private static FilteredSection? FilterSection(JournalData.Section section, Predicate match) + private FilteredSection FilterSection(JournalData.Section section, FilterConfiguration filter) { - if (match(section.Name)) + IEnumerable filteredCategories; + if (IsCategorySectionGenreMatch(filter, section.Name)) { - return new FilteredSection(section, - section.Categories - .Select(x => FilterCategory(x, _ => true)) - .Cast() - .ToList()); + filteredCategories = section.Categories + .Select(x => FilterCategory(x, filter.WithoutName())); } else { - List filteredCategories = section.Categories - .Select(category => FilterCategory(category, match)) - .Where(x => x != null) - .Cast() - .ToList(); - if (filteredCategories.Count > 0) - return new FilteredSection(section, filteredCategories); - - return null; + filteredCategories = section.Categories + .Select(category => FilterCategory(category, filter)); } + + return new FilteredSection(section, filteredCategories.Where(x => x.Genres.Count > 0).ToList()); } - private static FilteredCategory? FilterCategory(JournalData.Category category, Predicate match) + private FilteredCategory FilterCategory(JournalData.Category category, FilterConfiguration filter) { - if (match(category.Name)) + IEnumerable filteredGenres; + if (IsCategorySectionGenreMatch(filter, category.Name)) { - return new FilteredCategory(category, - category.Genres - .Select(x => FilterGenre(x, _ => true)!) - .ToList()); + filteredGenres = category.Genres + .Select(x => FilterGenre(x, filter.WithoutName())); } else { - List filteredGenres = category.Genres - .Select(genre => FilterGenre(genre, match)) - .Where(x => x != null) - .Cast() - .ToList(); - if (filteredGenres.Count > 0) - return new FilteredCategory(category, filteredGenres); - - return null; + filteredGenres = category.Genres + .Select(genre => FilterGenre(genre, filter)); } + + return new FilteredCategory(category, filteredGenres.Where(x => x.Quests.Count > 0).ToList()); } - private static FilteredGenre? FilterGenre(JournalData.Genre genre, Predicate match) + private FilteredGenre FilterGenre(JournalData.Genre genre, FilterConfiguration filter) { - if (match(genre.Name)) - return new FilteredGenre(genre, genre.Quests); + IEnumerable filteredQuests; + if (IsCategorySectionGenreMatch(filter, genre.Name)) + { + filteredQuests = genre.Quests + .Where(x => IsQuestMatch(filter.WithoutName(), x)); + } else { - List filteredQuests = genre.Quests - .Where(x => match(x.Name)) - .ToList(); - if (filteredQuests.Count > 0) - return new FilteredGenre(genre, filteredQuests); + filteredQuests = genre.Quests + .Where(x => IsQuestMatch(filter, x)); } - return null; + return new FilteredGenre(genre, filteredQuests.ToList()); } internal void RefreshCounts() @@ -319,10 +306,13 @@ internal sealed class QuestJournalComponent foreach (var genre in _journalData.Genres) { int available = genre.Quests.Count(x => - _questRegistry.TryGetQuest(x.QuestId, out var quest) && !quest.Root.Disabled); + _questRegistry.TryGetQuest(x.QuestId, out var quest) && + !quest.Root.Disabled && + !_questFunctions.IsQuestRemoved(x.QuestId)); + int total = genre.Quests.Count(x => !_questFunctions.IsQuestRemoved(x.QuestId)); int obtainable = genre.Quests.Count(x => !_questFunctions.IsQuestUnobtainable(x.QuestId)); int completed = genre.Quests.Count(x => _questFunctions.IsQuestComplete(x.QuestId)); - _genreCounts[genre] = new(available, obtainable, completed); + _genreCounts[genre] = new(available, total, obtainable, completed); } foreach (var category in _journalData.Categories) @@ -332,9 +322,10 @@ internal sealed class QuestJournalComponent .Select(x => x.Value) .ToList(); int available = counts.Sum(x => x.Available); + int total = counts.Sum(x => x.Total); int obtainable = counts.Sum(x => x.Obtainable); int completed = counts.Sum(x => x.Completed); - _categoryCounts[category] = new(available, obtainable, completed); + _categoryCounts[category] = new(available, total, obtainable, completed); } foreach (var section in _journalData.Sections) @@ -344,9 +335,10 @@ internal sealed class QuestJournalComponent .Select(x => x.Value) .ToList(); int available = counts.Sum(x => x.Available); + int total = counts.Sum(x => x.Total); int obtainable = counts.Sum(x => x.Obtainable); int completed = counts.Sum(x => x.Completed); - _sectionCounts[section] = new(available, obtainable, completed); + _sectionCounts[section] = new(available, total, obtainable, completed); } } @@ -362,11 +354,54 @@ internal sealed class QuestJournalComponent _sectionCounts[sectionCount.Key] = sectionCount.Value with { Completed = 0 }; } + private static bool IsCategorySectionGenreMatch(FilterConfiguration filter, string name) + { + return string.IsNullOrEmpty(filter.SearchText) || + name.Contains(filter.SearchText, StringComparison.CurrentCultureIgnoreCase); + } + + private bool IsQuestMatch(FilterConfiguration filter, IQuestInfo questInfo) + { + if (!string.IsNullOrEmpty(filter.SearchText) && + !questInfo.Name.Contains(filter.SearchText, StringComparison.CurrentCultureIgnoreCase)) + return false; + + if (filter.AvailableOnly && !_questFunctions.IsReadyToAcceptQuest(questInfo.QuestId)) + return false; + + if (filter.HideNoPaths && + (!_questRegistry.TryGetQuest(questInfo.QuestId, out var quest) || quest.Root.Disabled)) + return false; + + return true; + } + private sealed record FilteredSection(JournalData.Section Section, List Categories); private sealed record FilteredCategory(JournalData.Category Category, List Genres); private sealed record FilteredGenre(JournalData.Genre Genre, List Quests); - private sealed record JournalCounts(int Available = 0, int Obtainable = 0, int Completed = 0); + private sealed record JournalCounts(int Available, int Total, int Obtainable, int Completed) + { + public JournalCounts() + : this(0, 0, 0, 0) + { + } + } + + internal sealed class FilterConfiguration + { + public string SearchText = string.Empty; + public bool AvailableOnly; + public bool HideNoPaths; + + public bool AdvancedFiltersActive => AvailableOnly || HideNoPaths; + + public FilterConfiguration WithoutName() => new() + { + AvailableOnly = AvailableOnly, + HideNoPaths = HideNoPaths + }; + } } diff --git a/Questionable/Windows/JournalComponents/QuestJournalUtils.cs b/Questionable/Windows/JournalComponents/QuestJournalUtils.cs index c98dba68..906dd9d2 100644 --- a/Questionable/Windows/JournalComponents/QuestJournalUtils.cs +++ b/Questionable/Windows/JournalComponents/QuestJournalUtils.cs @@ -1,10 +1,13 @@ -using Dalamud.Interface.Utility.Raii; +using Dalamud.Interface.Components; +using Dalamud.Interface.Utility.Raii; using Dalamud.Plugin.Services; using ImGuiNET; using Questionable.Controller; using Questionable.Functions; using Questionable.Model; using Questionable.Model.Questing; +using System; +using Dalamud.Interface.Colors; namespace Questionable.Windows.JournalComponents; @@ -24,7 +27,10 @@ internal sealed class QuestJournalUtils public void ShowContextMenu(IQuestInfo questInfo, Quest? quest, string label) { - using var popup = ImRaii.ContextPopup($"##QuestPopup{questInfo.QuestId}", ImGuiPopupFlags.MouseButtonRight); + if (ImGui.IsItemClicked(ImGuiMouseButton.Right)) + ImGui.OpenPopup($"##QuestPopup{questInfo.QuestId}"); + + using var popup = ImRaii.Popup($"##QuestPopup{questInfo.QuestId}"); if (!popup) return; @@ -41,4 +47,18 @@ internal sealed class QuestJournalUtils commandInfo!); } } + + internal static void ShowFilterContextMenu(QuestJournalComponent journalUi) + { + if (ImGuiComponents.IconButtonWithText(Dalamud.Interface.FontAwesomeIcon.Filter, "Filter")) + ImGui.OpenPopup("##QuestFilters"); + + using var popup = ImRaii.Popup("##QuestFilters"); + if (!popup) + return; + + if (ImGui.Checkbox("Show only Available Quests", ref journalUi.Filter.AvailableOnly) || + ImGui.Checkbox("Hide Quests Without Path", ref journalUi.Filter.HideNoPaths)) + journalUi.UpdateFilter(); + } } diff --git a/Questionable/Windows/JournalComponents/QuestRewardComponent.cs b/Questionable/Windows/JournalComponents/QuestRewardComponent.cs new file mode 100644 index 00000000..9efa5029 --- /dev/null +++ b/Questionable/Windows/JournalComponents/QuestRewardComponent.cs @@ -0,0 +1,93 @@ +using System; +using System.Linq; +using Dalamud.Game.Text; +using Dalamud.Interface; +using Dalamud.Interface.Colors; +using Dalamud.Interface.Utility.Raii; +using ImGuiNET; +using Questionable.Controller; +using Questionable.Data; +using Questionable.Model; +using Questionable.Windows.QuestComponents; + +namespace Questionable.Windows.JournalComponents; + +internal sealed class QuestRewardComponent +{ + private readonly QuestRegistry _questRegistry; + private readonly QuestData _questData; + private readonly QuestTooltipComponent _questTooltipComponent; + private readonly UiUtils _uiUtils; + + private bool _showEventRewards; + + public QuestRewardComponent( + QuestRegistry questRegistry, + QuestData questData, + QuestTooltipComponent questTooltipComponent, + UiUtils uiUtils) + { + _questRegistry = questRegistry; + _questData = questData; + _questTooltipComponent = questTooltipComponent; + _uiUtils = uiUtils; + } + + public void DrawItemRewards() + { + using var tab = ImRaii.TabItem("Item Rewards"); + if (!tab) + return; + + ImGui.Checkbox("Show rewards from seasonal event quests", ref _showEventRewards); + ImGui.Spacing(); + + ImGui.BulletText( + "Only untradeable items are listed (e.g. the Wind-up Airship can be sold on the market board)."); + + DrawGroup("Mounts", EItemRewardType.Mount); + DrawGroup("Minions", EItemRewardType.Minion); + DrawGroup("Orchestrion Rolls", EItemRewardType.OrchestrionRoll); + DrawGroup("Triple Triad Cards", EItemRewardType.TripleTriadCard); + DrawGroup("Fashion Accessories", EItemRewardType.FashionAccessory); + } + + private void DrawGroup(string label, EItemRewardType type) + { + if (!ImGui.CollapsingHeader($"{label}###Reward{type}")) + return; + + foreach (var item in _questData.RedeemableItems.Where(x => x.Type == type) + .OrderBy(x => x.Name, StringComparer.CurrentCultureIgnoreCase)) + { + if (_questData.TryGetQuestInfo(item.ElementId, out var questInfo)) + { + bool isEventQuest = questInfo is QuestInfo { IsSeasonalEvent: true }; + if (!_showEventRewards && isEventQuest) + continue; + + string name = item.Name; + if (isEventQuest) + name += $" {SeIconChar.Clock.ToIconString()}"; + + bool complete = item.IsUnlocked(); + var color = !_questRegistry.IsKnownQuest(item.ElementId) + ? ImGuiColors.DalamudGrey + : complete + ? ImGuiColors.ParsedGreen + : ImGuiColors.DalamudRed; + var icon = complete ? FontAwesomeIcon.Check : FontAwesomeIcon.Times; + if (_uiUtils.ChecklistItem(name, color, icon)) + { + using var tooltip = ImRaii.Tooltip(); + if (!tooltip) + continue; + + ImGui.Text($"Obtained from: {questInfo.Name}"); + using (ImRaii.PushIndent()) + _questTooltipComponent.DrawInner(questInfo, false); + } + } + } + } +} diff --git a/Questionable/Windows/JournalProgressWindow.cs b/Questionable/Windows/JournalProgressWindow.cs index 6a5724a7..e6d2a16d 100644 --- a/Questionable/Windows/JournalProgressWindow.cs +++ b/Questionable/Windows/JournalProgressWindow.cs @@ -12,12 +12,14 @@ internal sealed class JournalProgressWindow : LWindow, IDisposable { private readonly QuestJournalComponent _questJournalComponent; private readonly AlliedSocietyJournalComponent _alliedSocietyJournalComponent; + private readonly QuestRewardComponent _questRewardComponent; private readonly GatheringJournalComponent _gatheringJournalComponent; private readonly QuestRegistry _questRegistry; private readonly IClientState _clientState; public JournalProgressWindow( QuestJournalComponent questJournalComponent, + QuestRewardComponent questRewardComponent, AlliedSocietyJournalComponent alliedSocietyJournalComponent, GatheringJournalComponent gatheringJournalComponent, QuestRegistry questRegistry, @@ -26,6 +28,7 @@ internal sealed class JournalProgressWindow : LWindow, IDisposable { _questJournalComponent = questJournalComponent; _alliedSocietyJournalComponent = alliedSocietyJournalComponent; + _questRewardComponent = questRewardComponent; _gatheringJournalComponent = gatheringJournalComponent; _questRegistry = questRegistry; _clientState = clientState; @@ -64,6 +67,7 @@ internal sealed class JournalProgressWindow : LWindow, IDisposable _questJournalComponent.DrawQuests(); _alliedSocietyJournalComponent.DrawAlliedSocietyQuests(); + _questRewardComponent.DrawItemRewards(); _gatheringJournalComponent.DrawGatheringItems(); } diff --git a/Questionable/Windows/OneTimeSetupWindow.cs b/Questionable/Windows/OneTimeSetupWindow.cs index b94b3fc8..3db85089 100644 --- a/Questionable/Windows/OneTimeSetupWindow.cs +++ b/Questionable/Windows/OneTimeSetupWindow.cs @@ -44,6 +44,35 @@ internal sealed class OneTimeSetupWindow : LWindow new Uri("https://github.com/NightmareXIV/MyDalamudPlugins/raw/main/pluginmaster.json")), ]; + private static readonly IReadOnlyDictionary CombatPlugins = new Dictionary + { + { + Configuration.ECombatModule.BossMod, + new("Boss Mod (VBM)", + "BossMod", + string.Empty, + new Uri("https://github.com/awgil/ffxiv_bossmod"), + new Uri("https://puni.sh/api/repository/veyn")) + }, + { + Configuration.ECombatModule.WrathCombo, + new PluginInfo("Wrath Combo", + "WrathCombo", + string.Empty, + new Uri("https://github.com/PunishXIV/WrathCombo"), + new Uri("https://puni.sh/api/plugins")) + }, + { + Configuration.ECombatModule.RotationSolverReborn, + new("Rotation Solver Reborn", + "RotationSolver", + string.Empty, + new Uri("https://github.com/FFXIV-CombatReborn/RotationSolverReborn"), + new Uri( + "https://raw.githubusercontent.com/FFXIV-CombatReborn/CombatRebornRepo/main/pluginmaster.json")) + }, + }.AsReadOnly(); + private readonly IReadOnlyList _recommendedPlugins; private readonly Configuration _configuration; @@ -60,18 +89,8 @@ internal sealed class OneTimeSetupWindow : LWindow _pluginInterface = pluginInterface; _uiUtils = uiUtils; _logger = logger; - _recommendedPlugins = [ - new("Rotation Solver Reborn", - "RotationSolver", - """ - Automatically handles most combat interactions you encounter - during quests, including being interrupted by mobs. - """, - new Uri("https://github.com/FFXIV-CombatReborn/RotationSolverReborn"), - new Uri( - "https://raw.githubusercontent.com/FFXIV-CombatReborn/CombatRebornRepo/main/pluginmaster.json")), new PluginInfo("CBT (formerly known as Automaton)", "Automaton", """ @@ -120,6 +139,26 @@ internal sealed class OneTimeSetupWindow : LWindow ImGui.Separator(); ImGui.Spacing(); + ImGui.Text("Questionable supports multiple rotation/combat plugins, please pick the one\nyou want to use:"); + + using (ImRaii.PushIndent()) + { + if (ImGui.RadioButton("No rotation/combat plugin (combat must be done manually)", + _configuration.General.CombatModule == Configuration.ECombatModule.None)) + { + _configuration.General.CombatModule = Configuration.ECombatModule.None; + _pluginInterface.SavePluginConfig(_configuration); + } + + DrawCombatPlugin(Configuration.ECombatModule.BossMod, checklistPadding); + DrawCombatPlugin(Configuration.ECombatModule.WrathCombo, checklistPadding); + DrawCombatPlugin(Configuration.ECombatModule.RotationSolverReborn, checklistPadding); + } + + ImGui.Spacing(); + ImGui.Separator(); + ImGui.Spacing(); + ImGui.Text("The following plugins are recommended, but not required:"); using (ImRaii.PushIndent()) { @@ -164,39 +203,75 @@ internal sealed class OneTimeSetupWindow : LWindow private bool DrawPlugin(PluginInfo plugin, float checklistPadding) { - bool isInstalled = IsPluginInstalled(plugin); using (ImRaii.PushId("plugin_" + plugin.DisplayName)) { + bool isInstalled = IsPluginInstalled(plugin); _uiUtils.ChecklistItem(plugin.DisplayName, isInstalled); - using (ImRaii.PushIndent(checklistPadding)) + + DrawPluginDetails(plugin, checklistPadding, isInstalled); + return isInstalled; + } + } + + private void DrawCombatPlugin(Configuration.ECombatModule combatModule, float checklistPadding) + { + ImGui.Spacing(); + + PluginInfo plugin = CombatPlugins[combatModule]; + using (ImRaii.PushId("plugin_" + plugin.DisplayName)) + { + bool isInstalled = IsPluginInstalled(plugin); + if (ImGui.RadioButton(plugin.DisplayName, _configuration.General.CombatModule == combatModule)) { + _configuration.General.CombatModule = combatModule; + _pluginInterface.SavePluginConfig(_configuration); + } + + ImGui.SameLine(0); + using (_pluginInterface.UiBuilder.IconFontFixedWidthHandle.Push()) + { + var iconColor = isInstalled ? ImGuiColors.ParsedGreen : ImGuiColors.DalamudRed; + var icon = isInstalled ? FontAwesomeIcon.Check : FontAwesomeIcon.Times; + + ImGui.AlignTextToFramePadding(); + ImGui.TextColored(iconColor, icon.ToIconString()); + } + + + DrawPluginDetails(plugin, checklistPadding, isInstalled); + } + } + + private void DrawPluginDetails(PluginInfo plugin, float checklistPadding, bool isInstalled) + { + using (ImRaii.PushIndent(checklistPadding)) + { + if (!string.IsNullOrEmpty(plugin.Details)) ImGui.TextUnformatted(plugin.Details); - if (plugin.DetailsToCheck != null) - { - foreach (var detail in plugin.DetailsToCheck) - _uiUtils.ChecklistItem(detail.DisplayName, isInstalled && detail.Predicate()); - } - ImGui.Spacing(); + if (plugin.DetailsToCheck != null) + { + foreach (var detail in plugin.DetailsToCheck) + _uiUtils.ChecklistItem(detail.DisplayName, isInstalled && detail.Predicate()); + } - if (ImGuiComponents.IconButtonWithText(FontAwesomeIcon.Globe, "Open Website")) - Util.OpenLink(plugin.WebsiteUri.ToString()); + ImGui.Spacing(); - ImGui.SameLine(); - if (plugin.DalamudRepositoryUri != null) - { - if (ImGuiComponents.IconButtonWithText(FontAwesomeIcon.Code, "Open Repository")) - Util.OpenLink(plugin.DalamudRepositoryUri.ToString()); - } - else - { - ImGui.AlignTextToFramePadding(); - ImGuiComponents.HelpMarker("Available on official Dalamud Repository"); - } + if (ImGuiComponents.IconButtonWithText(FontAwesomeIcon.Globe, "Open Website")) + Util.OpenLink(plugin.WebsiteUri.ToString()); + + ImGui.SameLine(); + if (plugin.DalamudRepositoryUri != null) + { + if (ImGuiComponents.IconButtonWithText(FontAwesomeIcon.Code, "Open Repository")) + Util.OpenLink(plugin.DalamudRepositoryUri.ToString()); + } + else + { + ImGui.AlignTextToFramePadding(); + ImGuiComponents.HelpMarker("Available on official Dalamud Repository"); } } - - return isInstalled; } private bool IsPluginInstalled(PluginInfo pluginInfo) diff --git a/Questionable/Windows/PriorityWindow.cs b/Questionable/Windows/PriorityWindow.cs index 08bd35e5..8b4d5202 100644 --- a/Questionable/Windows/PriorityWindow.cs +++ b/Questionable/Windows/PriorityWindow.cs @@ -106,7 +106,7 @@ internal sealed class PriorityWindow : LWindow if (!string.IsNullOrEmpty(_searchString)) { foundQuests = _questRegistry.AllQuests - .Where(x => x.Id is not SatisfactionSupplyNpcId) + .Where(x => x.Id is not SatisfactionSupplyNpcId and not AlliedSocietyDailyId) .Where(x => x.Info.Name.Contains(_searchString, StringComparison.CurrentCultureIgnoreCase)) .Where(x => !_questFunctions.IsQuestUnobtainable(x.Id)); } diff --git a/Questionable/Windows/QuestComponents/CreationUtilsComponent.cs b/Questionable/Windows/QuestComponents/CreationUtilsComponent.cs index 8fc03bb4..f18c2fcc 100644 --- a/Questionable/Windows/QuestComponents/CreationUtilsComponent.cs +++ b/Questionable/Windows/QuestComponents/CreationUtilsComponent.cs @@ -11,6 +11,7 @@ using Dalamud.Interface.Colors; using Dalamud.Interface.Components; using Dalamud.Plugin.Services; using FFXIVClientStructs.FFXIV.Client.Game; +using FFXIVClientStructs.FFXIV.Client.Game.Character; using FFXIVClientStructs.FFXIV.Client.Game.Control; using FFXIVClientStructs.FFXIV.Client.Game.Event; using FFXIVClientStructs.FFXIV.Client.Game.Object; @@ -199,9 +200,13 @@ internal sealed class CreationUtilsComponent private unsafe void DrawTargetDetails(IGameObject target) { + string nameId = string.Empty; + if (target is ICharacter { NameId: > 0 } character) + nameId = $"; n={character.NameId}"; + ImGui.Separator(); ImGui.Text(string.Create(CultureInfo.InvariantCulture, - $"Target: {target.Name} ({target.ObjectKind}; {target.DataId})")); + $"Target: {target.Name} ({target.ObjectKind}; {target.DataId}{nameId})")); if (_clientState.LocalPlayer != null) { diff --git a/Questionable/Windows/QuestComponents/EventInfoComponent.cs b/Questionable/Windows/QuestComponents/EventInfoComponent.cs index 9325efa2..698d98d4 100644 --- a/Questionable/Windows/QuestComponents/EventInfoComponent.cs +++ b/Questionable/Windows/QuestComponents/EventInfoComponent.cs @@ -22,7 +22,7 @@ internal sealed class EventInfoComponent [SuppressMessage("ReSharper", "CollectionNeverUpdated.Local")] private readonly List _eventQuests = [ - new("Starlight Celebration", [new(5227), new(5228)], AtDailyReset(new(2024, 12, 31))), + new("Heavensturn", [new(5186)], AtDailyReset(new(2025, 1, 16))), ]; private readonly QuestData _questData; diff --git a/Questionable/Windows/QuestComponents/QuestTooltipComponent.cs b/Questionable/Windows/QuestComponents/QuestTooltipComponent.cs index 3f426f6c..e74beb2a 100644 --- a/Questionable/Windows/QuestComponents/QuestTooltipComponent.cs +++ b/Questionable/Windows/QuestComponents/QuestTooltipComponent.cs @@ -40,42 +40,58 @@ internal sealed class QuestTooltipComponent { using var tooltip = ImRaii.Tooltip(); if (tooltip) - { - ImGui.Text($"{SeIconChar.LevelEn.ToIconString()}{questInfo.Level}"); - ImGui.SameLine(); - - var (color, _, tooltipText) = _uiUtils.GetQuestStyle(questInfo.QuestId); - ImGui.TextColored(color, tooltipText); - if (questInfo.IsRepeatable) - { - ImGui.SameLine(); - ImGui.TextUnformatted("Repeatable"); - } - - if (questInfo is QuestInfo { CompletesInstantly: true }) - { - ImGui.SameLine(); - ImGui.TextUnformatted("Instant"); - } - - if (_questRegistry.TryGetQuest(questInfo.QuestId, out Quest? quest)) - { - if (quest.Root.Author.Count == 1) - ImGui.Text($"Author: {quest.Root.Author[0]}"); - else - ImGui.Text($"Authors: {string.Join(", ", quest.Root.Author)}"); - } - else - { - ImGui.SameLine(); - ImGui.TextUnformatted("NoQuestPath"); - } - - DrawQuestUnlocks(questInfo, 0); - } + DrawInner(questInfo, true); } - private void DrawQuestUnlocks(IQuestInfo questInfo, int counter) + public void DrawInner(IQuestInfo questInfo, bool showItemRewards) + { + ImGui.Text($"{SeIconChar.LevelEn.ToIconString()}{questInfo.Level}"); + ImGui.SameLine(); + + var (color, _, tooltipText) = _uiUtils.GetQuestStyle(questInfo.QuestId); + ImGui.TextColored(color, tooltipText); + + if (questInfo is QuestInfo { IsSeasonalEvent: true }) + { + ImGui.SameLine(); + ImGui.TextUnformatted("Event"); + } + + if (questInfo.IsRepeatable) + { + ImGui.SameLine(); + ImGui.TextUnformatted("Repeatable"); + } + + if (questInfo is QuestInfo { CompletesInstantly: true }) + { + ImGui.SameLine(); + ImGui.TextUnformatted("Instant"); + } + + if (_questRegistry.TryGetQuest(questInfo.QuestId, out Quest? quest)) + { + if (quest.Root.Disabled) + { + ImGui.SameLine(); + ImGui.TextColored(ImGuiColors.DalamudRed, "Disabled"); + } + + if (quest.Root.Author.Count == 1) + ImGui.Text($"Author: {quest.Root.Author[0]}"); + else + ImGui.Text($"Authors: {string.Join(", ", quest.Root.Author)}"); + } + else + { + ImGui.SameLine(); + ImGui.TextColored(ImGuiColors.DalamudRed, "NoQuestPath"); + } + + DrawQuestUnlocks(questInfo, 0, showItemRewards); + } + + private void DrawQuestUnlocks(IQuestInfo questInfo, int counter, bool showItemRewards) { if (counter >= 10) return; @@ -112,18 +128,23 @@ internal sealed class QuestTooltipComponent _questFunctions.IsQuestComplete(q.QuestId) ? byte.MinValue : q.Sequence), iconColor, icon); if (qInfo is QuestInfo qstInfo && (counter <= 2 || icon != FontAwesomeIcon.Check)) - DrawQuestUnlocks(qstInfo, counter + 1); + DrawQuestUnlocks(qstInfo, counter + 1, false); } else { using var _ = ImRaii.Disabled(); - _uiUtils.ChecklistItem($"Unknown Quest ({q.QuestId})", ImGuiColors.DalamudGrey, FontAwesomeIcon.Question); + _uiUtils.ChecklistItem($"Unknown Quest ({q.QuestId})", ImGuiColors.DalamudGrey, + FontAwesomeIcon.Question); } } } if (questInfo is QuestInfo actualQuestInfo) { + if (actualQuestInfo.MoogleDeliveryLevel > 0) + ImGui.Text($"Requires Carrier Level {actualQuestInfo.MoogleDeliveryLevel}"); + + if (counter == 0 && actualQuestInfo.QuestLocks.Count > 0) { ImGui.Separator(); @@ -183,6 +204,16 @@ internal sealed class QuestTooltipComponent GrandCompany currentGrandCompany = _questFunctions.GetGrandCompany(); _uiUtils.ChecklistItem($"Grand Company: {gcName}", actualQuestInfo.GrandCompany == currentGrandCompany); } + + if (showItemRewards && actualQuestInfo.ItemRewards.Count > 0) + { + ImGui.Separator(); + ImGui.Text("Item Rewards:"); + foreach (var reward in actualQuestInfo.ItemRewards) + { + ImGui.BulletText(reward.Name); + } + } } if (counter > 0) diff --git a/Questionable/Windows/QuestComponents/QuickAccessButtonsComponent.cs b/Questionable/Windows/QuestComponents/QuickAccessButtonsComponent.cs index 6093686a..0239d09b 100644 --- a/Questionable/Windows/QuestComponents/QuickAccessButtonsComponent.cs +++ b/Questionable/Windows/QuestComponents/QuickAccessButtonsComponent.cs @@ -91,8 +91,10 @@ internal sealed class QuickAccessButtonsComponent Reload?.Invoke(this, EventArgs.Empty); ImGui.SameLine(); - if (ImGuiComponents.IconButton(FontAwesomeIcon.ChartColumn)) + if (ImGuiComponents.IconButton(FontAwesomeIcon.BookBookmark)) _journalProgressWindow.IsOpen = true; + if (ImGui.IsItemHovered()) + ImGui.SetTooltip("Journal Progress"); if (_questRegistry.ValidationIssueCount > 0) diff --git a/Questionable/Windows/QuestWindow.cs b/Questionable/Windows/QuestWindow.cs index 4c100a1b..1463895a 100644 --- a/Questionable/Windows/QuestWindow.cs +++ b/Questionable/Windows/QuestWindow.cs @@ -44,7 +44,8 @@ internal sealed class QuestWindow : LWindow, IPersistableWindowConfig QuickAccessButtonsComponent quickAccessButtonsComponent, RemainingTasksComponent remainingTasksComponent, IFramework framework, - InteractionUiController interactionUiController) + InteractionUiController interactionUiController, + ConfigWindow configWindow) : base($"Questionable v{PluginVersion.ToString(2)}###Questionable", ImGuiWindowFlags.AlwaysAutoResize) { @@ -67,7 +68,7 @@ internal sealed class QuestWindow : LWindow, IPersistableWindowConfig #endif SizeConstraints = new WindowSizeConstraints { - MinimumSize = new Vector2(230, 30), + MinimumSize = new Vector2(240, 30), MaximumSize = default }; RespectCloseHotkey = false; @@ -87,8 +88,23 @@ internal sealed class QuestWindow : LWindow, IPersistableWindowConfig }; TitleBarButtons.Insert(0, _minimizeButton); + TitleBarButtons.Add(new TitleBarButton + { + Icon = FontAwesomeIcon.Cog, + IconOffset = new Vector2(1.5f, 1), + Click = _ => configWindow.IsOpen = true, + Priority = int.MinValue, + ShowTooltip = () => + { + ImGui.BeginTooltip(); + ImGui.Text("Open Configuration"); + ImGui.EndTooltip(); + } + }); + _activeQuestComponent.Reload += OnReload; _quickAccessButtonsComponent.Reload += OnReload; + _questController.IsQuestWindowOpen = () => IsOpen; } public WindowConfig WindowConfig => _configuration.DebugWindowConfig; diff --git a/Questionable/Windows/UiUtils.cs b/Questionable/Windows/UiUtils.cs index 9c51f253..b03fabfe 100644 --- a/Questionable/Windows/UiUtils.cs +++ b/Questionable/Windows/UiUtils.cs @@ -55,8 +55,7 @@ internal sealed class UiUtils public bool ChecklistItem(string text, Vector4 color, FontAwesomeIcon icon, float extraPadding = 0) { - // ReSharper disable once UnusedVariable - using (var font = _pluginInterface.UiBuilder.IconFontFixedWidthHandle.Push()) + using (_pluginInterface.UiBuilder.IconFontFixedWidthHandle.Push()) { ImGui.TextColored(color, icon.ToIconString()); }