From d63d372fe266ec78507f73072acb2755ddcdc602 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Mon, 5 Aug 2024 07:36:52 +0200 Subject: [PATCH] Add gathering for weekly custom deliveries (with paths for Zhloe, M'naago, Kurenai, Adkiragh; excluding underwater locations) --- GatheringPathRenderer/RendererPlugin.cs | 3 + GatheringPathRenderer/Windows/EditorWindow.cs | 49 ++++-- GatheringPaths/3.x - Heavensward/.gitkeep | 0 .../300_Twinpools_BTN.json | 144 ++++++++++++++++ .../351_Red Rim_MIN.json | 158 +++++++++++++++++ .../551_The Bed of Bones_MIN.json | 131 ++++++++++++++ .../552_Gorgagne Holding_BTN.json | 119 +++++++++++++ .../355_Landlord Colony_MIN.json | 108 ++++++++++++ .../The Churning Mists/359_Four Arms_BTN.json | 144 ++++++++++++++++ .../553_Landlord Colony_MIN.json | 131 ++++++++++++++ .../The Churning Mists/554_Ohl Tahn_BTN.json | 127 ++++++++++++++ .../352_Avalonia Fallen_MIN.json | 158 +++++++++++++++++ .../358_Avalonia Fallen_BTN.json | 134 +++++++++++++++ .../353_The Makers' Quarter_MIN.json | 162 ++++++++++++++++++ .../361_The Answering Quarter_BTN.json | 148 ++++++++++++++++ .../354_Voor Sian Siran_MIN.json | 140 +++++++++++++++ .../360_The Blue Window_BTN.json | 117 +++++++++++++ .../The Azim Steppe/495_Onsal Hakair_MIN.json | 158 +++++++++++++++++ .../519_Nhaama's Retreat_BTN.json | 138 +++++++++++++++ .../The Azim Steppe/813_Onsal Hakair_BTN.json | 94 ++++++++++ .../The Fringes/485_East End_MIN.json | 136 +++++++++++++++ .../486_The Striped Hills_MIN.json | 158 +++++++++++++++++ .../The Fringes/505_East End_BTN.json | 150 ++++++++++++++++ .../The Fringes/509_Dimwold_BTN.json | 131 ++++++++++++++ .../The Fringes/513_Dimwold_BTN.json | 131 ++++++++++++++ .../The Lochs/493_The High Bank_MIN.json | 158 +++++++++++++++++ .../The Lochs/514_Abalathia's Skull_BTN.json | 158 +++++++++++++++++ .../The Peaks/489_Rustrock_MIN.json | 158 +++++++++++++++++ .../The Peaks/512_The Last Forest_BTN.json | 140 +++++++++++++++ .../The Peaks/531_Sleeping Stones_MIN.json | 131 ++++++++++++++ .../The Peaks/532_The Last Forest_BTN.json | 113 ++++++++++++ .../The Ruby Sea/487_Hells' Lid_MIN.json | 56 +++++- .../533_The Turquoise Trench_MIN.json | 135 +++++++++++++++ .../534_The Isle of Bekko_BTN.json | 115 +++++++++++++ .../Yanxia/488_The Gensui Chain_MIN.json | 156 +++++++++++++++++ .../491_Unseen Spirits Laughing_MIN.json | 158 +++++++++++++++++ .../Yanxia/508_The Heron's Flight_BTN.json | 147 ++++++++++++++++ GatheringPaths/5.x - Shadowbringers/.gitkeep | 0 .../Kholusia/649_Stonegazer_BTN.json | 129 ++++++++++++++ .../Kholusia/650_Shadow Fault_MIN.json | 131 ++++++++++++++ GatheringPaths/gatheringlocation-v1.json | 9 + LLib | 2 +- .../GatheringSourceGenerator.cs | 1 + .../{Questing => Common}/AethernetShortcut.cs | 3 +- Questionable.Model/Gathering/GatheringRoot.cs | 2 + .../Controller/ContextMenuController.cs | 18 +- Questionable/Controller/QuestController.cs | 32 +++- .../Steps/Gathering/DoGatherCollectable.cs | 3 +- .../Steps/Gathering/MoveToLandingLocation.cs | 22 +-- .../Steps/Shared/AethernetShortcut.cs | 2 +- .../Steps/Shared/GatheringRequiredItems.cs | 19 +- Questionable/Data/GatheringData.cs | 7 +- .../GameStructs/AgentSatisfactionSupply2.cs | 28 +++ Questionable/Questionable.csproj | 2 +- .../Validators/AethernetShortcutValidator.cs | 1 + 55 files changed, 5049 insertions(+), 56 deletions(-) delete mode 100644 GatheringPaths/3.x - Heavensward/.gitkeep create mode 100644 GatheringPaths/3.x - Heavensward/Coerthas Western Highlands/300_Twinpools_BTN.json create mode 100644 GatheringPaths/3.x - Heavensward/Coerthas Western Highlands/351_Red Rim_MIN.json create mode 100644 GatheringPaths/3.x - Heavensward/Coerthas Western Highlands/551_The Bed of Bones_MIN.json create mode 100644 GatheringPaths/3.x - Heavensward/Coerthas Western Highlands/552_Gorgagne Holding_BTN.json create mode 100644 GatheringPaths/3.x - Heavensward/The Churning Mists/355_Landlord Colony_MIN.json create mode 100644 GatheringPaths/3.x - Heavensward/The Churning Mists/359_Four Arms_BTN.json create mode 100644 GatheringPaths/3.x - Heavensward/The Churning Mists/553_Landlord Colony_MIN.json create mode 100644 GatheringPaths/3.x - Heavensward/The Churning Mists/554_Ohl Tahn_BTN.json create mode 100644 GatheringPaths/3.x - Heavensward/The Dravanian Forelands/352_Avalonia Fallen_MIN.json create mode 100644 GatheringPaths/3.x - Heavensward/The Dravanian Forelands/358_Avalonia Fallen_BTN.json create mode 100644 GatheringPaths/3.x - Heavensward/The Dravanian Hinterlands/353_The Makers' Quarter_MIN.json create mode 100644 GatheringPaths/3.x - Heavensward/The Dravanian Hinterlands/361_The Answering Quarter_BTN.json create mode 100644 GatheringPaths/3.x - Heavensward/The Sea of Clouds/354_Voor Sian Siran_MIN.json create mode 100644 GatheringPaths/3.x - Heavensward/The Sea of Clouds/360_The Blue Window_BTN.json create mode 100644 GatheringPaths/4.x - Stormblood/The Azim Steppe/495_Onsal Hakair_MIN.json create mode 100644 GatheringPaths/4.x - Stormblood/The Azim Steppe/519_Nhaama's Retreat_BTN.json create mode 100644 GatheringPaths/4.x - Stormblood/The Azim Steppe/813_Onsal Hakair_BTN.json create mode 100644 GatheringPaths/4.x - Stormblood/The Fringes/485_East End_MIN.json create mode 100644 GatheringPaths/4.x - Stormblood/The Fringes/486_The Striped Hills_MIN.json create mode 100644 GatheringPaths/4.x - Stormblood/The Fringes/505_East End_BTN.json create mode 100644 GatheringPaths/4.x - Stormblood/The Fringes/509_Dimwold_BTN.json create mode 100644 GatheringPaths/4.x - Stormblood/The Fringes/513_Dimwold_BTN.json create mode 100644 GatheringPaths/4.x - Stormblood/The Lochs/493_The High Bank_MIN.json create mode 100644 GatheringPaths/4.x - Stormblood/The Lochs/514_Abalathia's Skull_BTN.json create mode 100644 GatheringPaths/4.x - Stormblood/The Peaks/489_Rustrock_MIN.json create mode 100644 GatheringPaths/4.x - Stormblood/The Peaks/512_The Last Forest_BTN.json create mode 100644 GatheringPaths/4.x - Stormblood/The Peaks/531_Sleeping Stones_MIN.json create mode 100644 GatheringPaths/4.x - Stormblood/The Peaks/532_The Last Forest_BTN.json create mode 100644 GatheringPaths/4.x - Stormblood/The Ruby Sea/533_The Turquoise Trench_MIN.json create mode 100644 GatheringPaths/4.x - Stormblood/The Ruby Sea/534_The Isle of Bekko_BTN.json create mode 100644 GatheringPaths/4.x - Stormblood/Yanxia/488_The Gensui Chain_MIN.json create mode 100644 GatheringPaths/4.x - Stormblood/Yanxia/491_Unseen Spirits Laughing_MIN.json create mode 100644 GatheringPaths/4.x - Stormblood/Yanxia/508_The Heron's Flight_BTN.json delete mode 100644 GatheringPaths/5.x - Shadowbringers/.gitkeep create mode 100644 GatheringPaths/5.x - Shadowbringers/Kholusia/649_Stonegazer_BTN.json create mode 100644 GatheringPaths/5.x - Shadowbringers/Kholusia/650_Shadow Fault_MIN.json rename Questionable.Model/{Questing => Common}/AethernetShortcut.cs (79%) create mode 100644 Questionable/GameStructs/AgentSatisfactionSupply2.cs diff --git a/GatheringPathRenderer/RendererPlugin.cs b/GatheringPathRenderer/RendererPlugin.cs index f8d63632..55dee984 100644 --- a/GatheringPathRenderer/RendererPlugin.cs +++ b/GatheringPathRenderer/RendererPlugin.cs @@ -181,12 +181,14 @@ public sealed class RendererPlugin : IDalamudPlugin group.Nodes.SelectMany(node => node.Locations .SelectMany(x => { + bool isUnsaved = false; bool isCone = false; int minimumAngle = 0; int maximumAngle = 0; if (_editorWindow.TryGetOverride(x.InternalId, out LocationOverride? locationOverride) && locationOverride != null) { + isUnsaved = locationOverride.NeedsSave(); if (locationOverride.IsCone()) { isCone = true; @@ -232,6 +234,7 @@ public sealed class RendererPlugin : IDalamudPlugin Enabled = true, overlayText = $"{location.Root.Groups.IndexOf(group)} // {node.DataId} / {node.Locations.IndexOf(x)}", + overlayBGColor = isUnsaved ? 0xFF2020FF : 0, }, new Element(ElementType.CircleAtFixedCoordinates) { diff --git a/GatheringPathRenderer/Windows/EditorWindow.cs b/GatheringPathRenderer/Windows/EditorWindow.cs index ace02862..dd5fd09d 100644 --- a/GatheringPathRenderer/Windows/EditorWindow.cs +++ b/GatheringPathRenderer/Windows/EditorWindow.cs @@ -56,17 +56,19 @@ internal sealed class EditorWindow : Window var gatheringLocations = _plugin.GetLocationsInTerritory(_clientState.TerritoryType); var location = gatheringLocations.SelectMany(context => context.Root.Groups.SelectMany(group => - group.Nodes - .SelectMany(node => node.Locations - .Where(location => - { - if (_target != null) - return Vector3.Distance(location.Position, _target.Position) < 0.1f; - else - return Vector3.Distance(location.Position, _clientState.LocalPlayer!.Position) < 3f; - }) - .Select(location => new { Context = context, Node = node, Location = location })))) - .FirstOrDefault(); + group.Nodes.SelectMany(node => node.Locations + .Select(location => + { + float distance; + if (_target != null) + distance = Vector3.Distance(location.Position, _target.Position); + else + distance = Vector3.Distance(location.Position, _clientState.LocalPlayer!.Position); + + return new { Context = context, Node = node, Location = location, Distance = distance }; + }) + .Where(location => location.Distance < (_target == null ? 3f : 0.1f))))) + .MinBy(x => x.Distance); if (_target != null && _target.ObjectKind != ObjectKind.GatheringPoint) { _target = null; @@ -80,10 +82,16 @@ internal sealed class EditorWindow : Window return; } - _target ??= _objectTable.FirstOrDefault( - x => x.ObjectKind == ObjectKind.GatheringPoint && - x.DataId == location.Node.DataId && - Vector3.Distance(location.Location.Position, _clientState.LocalPlayer!.Position) < 3f); + _target ??= _objectTable.Where(x => x.ObjectKind == ObjectKind.GatheringPoint && x.DataId == location.Node.DataId) + .Select(x => new + { + Object = x, + Distance = Vector3.Distance(location.Location.Position, _clientState.LocalPlayer!.Position) + }) + .Where(x => x.Distance < 3f) + .OrderBy(x => x.Distance) + .Select(x => x.Object) + .FirstOrDefault(); _targetLocation = (location.Context, location.Node, location.Location); } @@ -103,7 +111,8 @@ internal sealed class EditorWindow : Window ImGui.Indent(); ImGui.Text(context.File.Name); ImGui.Unindent(); - ImGui.Text($"{_target.DataId} +{node.Locations.Count-1} / {location.InternalId.ToString().Substring(0, 4)}"); + ImGui.Text( + $"{_target.DataId} +{node.Locations.Count - 1} / {location.InternalId.ToString().Substring(0, 4)}"); ImGui.Text(string.Create(CultureInfo.InvariantCulture, $"{location.Position:G}")); if (!_changes.TryGetValue(location.InternalId, out LocationOverride? locationOverride)) @@ -128,7 +137,7 @@ internal sealed class EditorWindow : Window _plugin.Redraw(); } - bool unsaved = locationOverride is { MinimumAngle: not null, MaximumAngle: not null }; + bool unsaved = locationOverride.NeedsSave(); ImGui.BeginDisabled(!unsaved); if (unsaved) ImGui.PushStyleColor(ImGuiCol.Button, ImGuiColors.DalamudRed); @@ -138,6 +147,7 @@ internal sealed class EditorWindow : Window location.MaximumAngle = locationOverride.MaximumAngle; _plugin.Save(context.File, context.Root); } + if (unsaved) ImGui.PopStyleColor(); @@ -223,4 +233,9 @@ internal sealed class LocationOverride { return MinimumAngle != null && MaximumAngle != null && MinimumAngle != MaximumAngle; } + + public bool NeedsSave() + { + return MinimumAngle != null && MaximumAngle != null; + } } diff --git a/GatheringPaths/3.x - Heavensward/.gitkeep b/GatheringPaths/3.x - Heavensward/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/GatheringPaths/3.x - Heavensward/Coerthas Western Highlands/300_Twinpools_BTN.json b/GatheringPaths/3.x - Heavensward/Coerthas Western Highlands/300_Twinpools_BTN.json new file mode 100644 index 00000000..2e4c56c7 --- /dev/null +++ b/GatheringPaths/3.x - Heavensward/Coerthas Western Highlands/300_Twinpools_BTN.json @@ -0,0 +1,144 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/GatheringPaths/gatheringlocation-v1.json", + "Author": "liza", + "TerritoryId": 397, + "AetheryteShortcut": "Coerthas Western Highlands - Falcon's Nest", + "Groups": [ + { + "Nodes": [ + { + "DataId": 31406, + "Locations": [ + { + "Position": { + "X": -501.2244, + "Y": 118.0477, + "Z": -443.4114 + } + } + ] + }, + { + "DataId": 31407, + "Locations": [ + { + "Position": { + "X": -468.6656, + "Y": 120.7944, + "Z": -420.1442 + } + }, + { + "Position": { + "X": -523.499, + "Y": 117.4618, + "Z": -449.0883 + }, + "MinimumAngle": -160, + "MaximumAngle": 65 + }, + { + "Position": { + "X": -482.4585, + "Y": 120.3927, + "Z": -442.2994 + } + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 31408, + "Locations": [ + { + "Position": { + "X": -685.595, + "Y": 122.3003, + "Z": -379.202 + } + } + ] + }, + { + "DataId": 31409, + "Locations": [ + { + "Position": { + "X": -691.5064, + "Y": 123.4536, + "Z": -354.5497 + }, + "MinimumAngle": 95, + "MaximumAngle": 325 + }, + { + "Position": { + "X": -673.4897, + "Y": 122.1564, + "Z": -378.4789 + } + }, + { + "Position": { + "X": -664.5702, + "Y": 121.697, + "Z": -394.0817 + }, + "MinimumAngle": 0, + "MaximumAngle": 255 + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 31410, + "Locations": [ + { + "Position": { + "X": -496.1503, + "Y": 121.0539, + "Z": -272.0342 + } + } + ] + }, + { + "DataId": 31411, + "Locations": [ + { + "Position": { + "X": -459.1924, + "Y": 121.1919, + "Z": -280.8376 + }, + "MinimumAngle": -105, + "MaximumAngle": 55 + }, + { + "Position": { + "X": -472.298, + "Y": 121.4754, + "Z": -306.8053 + }, + "MinimumAngle": 30, + "MaximumAngle": 235 + }, + { + "Position": { + "X": -486.2957, + "Y": 120.9394, + "Z": -257.3133 + } + } + ] + } + ] + } + ] +} diff --git a/GatheringPaths/3.x - Heavensward/Coerthas Western Highlands/351_Red Rim_MIN.json b/GatheringPaths/3.x - Heavensward/Coerthas Western Highlands/351_Red Rim_MIN.json new file mode 100644 index 00000000..cb1d96af --- /dev/null +++ b/GatheringPaths/3.x - Heavensward/Coerthas Western Highlands/351_Red Rim_MIN.json @@ -0,0 +1,158 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/GatheringPaths/gatheringlocation-v1.json", + "Author": "liza", + "TerritoryId": 397, + "AetheryteShortcut": "Coerthas Western Highlands - Falcon's Nest", + "Groups": [ + { + "Nodes": [ + { + "DataId": 31344, + "Locations": [ + { + "Position": { + "X": 40.36132, + "Y": 217.3049, + "Z": 405.1829 + }, + "MinimumAngle": 100, + "MaximumAngle": 250 + } + ] + }, + { + "DataId": 31345, + "Locations": [ + { + "Position": { + "X": 20.19547, + "Y": 216.5585, + "Z": 412.4353 + }, + "MinimumAngle": 50, + "MaximumAngle": 165 + }, + { + "Position": { + "X": 17.58205, + "Y": 216.0664, + "Z": 421.5481 + }, + "MinimumAngle": 0, + "MaximumAngle": 145 + }, + { + "Position": { + "X": 51.50931, + "Y": 217.6516, + "Z": 408.2164 + }, + "MinimumAngle": 155, + "MaximumAngle": 225 + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 31340, + "Locations": [ + { + "Position": { + "X": 56.06712, + "Y": 216.6702, + "Z": 225.849 + }, + "MinimumAngle": -20, + "MaximumAngle": 105 + } + ] + }, + { + "DataId": 31341, + "Locations": [ + { + "Position": { + "X": 85.05425, + "Y": 218.7078, + "Z": 220.0463 + }, + "MinimumAngle": -110, + "MaximumAngle": 25 + }, + { + "Position": { + "X": 78.99079, + "Y": 215.9441, + "Z": 228.9527 + }, + "MinimumAngle": -110, + "MaximumAngle": 40 + }, + { + "Position": { + "X": 67.29195, + "Y": 216.4685, + "Z": 228.7955 + }, + "MinimumAngle": -35, + "MaximumAngle": 80 + } + ] + }, + { + "DataId": 31342, + "Locations": [ + { + "Position": { + "X": -124.1629, + "Y": 221.9654, + "Z": 197.8645 + }, + "MinimumAngle": -15, + "MaximumAngle": 20 + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 31343, + "Locations": [ + { + "Position": { + "X": -138.4112, + "Y": 220.679, + "Z": 204.6822 + }, + "MinimumAngle": -20, + "MaximumAngle": 20 + }, + { + "Position": { + "X": -90.40117, + "Y": 223.687, + "Z": 202.5069 + }, + "MinimumAngle": -90, + "MaximumAngle": 45 + }, + { + "Position": { + "X": -50.76083, + "Y": 222.9418, + "Z": 217.8322 + }, + "MinimumAngle": 50, + "MaximumAngle": 140 + } + ] + } + ] + } + ] +} diff --git a/GatheringPaths/3.x - Heavensward/Coerthas Western Highlands/551_The Bed of Bones_MIN.json b/GatheringPaths/3.x - Heavensward/Coerthas Western Highlands/551_The Bed of Bones_MIN.json new file mode 100644 index 00000000..2b7fbfb3 --- /dev/null +++ b/GatheringPaths/3.x - Heavensward/Coerthas Western Highlands/551_The Bed of Bones_MIN.json @@ -0,0 +1,131 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/GatheringPaths/gatheringlocation-v1.json", + "Author": "liza", + "TerritoryId": 397, + "AetheryteShortcut": "Coerthas Western Highlands - Falcon's Nest", + "Groups": [ + { + "Nodes": [ + { + "DataId": 32349, + "Locations": [ + { + "Position": { + "X": 63.68, + "Y": 227.89, + "Z": 570.31 + }, + "MinimumAngle": 140, + "MaximumAngle": 275 + }, + { + "Position": { + "X": 100.3585, + "Y": 236.1064, + "Z": 551.248 + }, + "MinimumAngle": 110, + "MaximumAngle": 245 + } + ] + }, + { + "DataId": 32348, + "Locations": [ + { + "Position": { + "X": 68.42817, + "Y": 226.018, + "Z": 558.3953 + }, + "MinimumAngle": -15, + "MaximumAngle": 105 + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 32346, + "Locations": [ + { + "Position": { + "X": -19.27065, + "Y": 219.13, + "Z": 618.5656 + }, + "MinimumAngle": 70, + "MaximumAngle": 205 + } + ] + }, + { + "DataId": 32347, + "Locations": [ + { + "Position": { + "X": -11.97839, + "Y": 222.4612, + "Z": 613.5499 + }, + "MinimumAngle": 80, + "MaximumAngle": 235 + }, + { + "Position": { + "X": -9.830506, + "Y": 220.8649, + "Z": 596.9268 + }, + "MinimumAngle": 70, + "MaximumAngle": 170 + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 32344, + "Locations": [ + { + "Position": { + "X": -60.89, + "Y": 241.99, + "Z": 692.56 + }, + "MinimumAngle": 60, + "MaximumAngle": 220 + } + ] + }, + { + "DataId": 32345, + "Locations": [ + { + "Position": { + "X": -70.72009, + "Y": 242.5652, + "Z": 704.0363 + }, + "MinimumAngle": 70, + "MaximumAngle": 225 + }, + { + "Position": { + "X": -49.4545, + "Y": 241.67, + "Z": 686.183 + }, + "MinimumAngle": 100, + "MaximumAngle": 235 + } + ] + } + ] + } + ] +} diff --git a/GatheringPaths/3.x - Heavensward/Coerthas Western Highlands/552_Gorgagne Holding_BTN.json b/GatheringPaths/3.x - Heavensward/Coerthas Western Highlands/552_Gorgagne Holding_BTN.json new file mode 100644 index 00000000..ed1967be --- /dev/null +++ b/GatheringPaths/3.x - Heavensward/Coerthas Western Highlands/552_Gorgagne Holding_BTN.json @@ -0,0 +1,119 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/GatheringPaths/gatheringlocation-v1.json", + "Author": "liza", + "TerritoryId": 397, + "AetheryteShortcut": "Coerthas Western Highlands - Falcon's Nest", + "Groups": [ + { + "Nodes": [ + { + "DataId": 32355, + "Locations": [ + { + "Position": { + "X": 484.6112, + "Y": 160.7014, + "Z": -339.9558 + } + }, + { + "Position": { + "X": 479.6101, + "Y": 160.8177, + "Z": -328.4199 + }, + "MinimumAngle": 160, + "MaximumAngle": 335 + } + ] + }, + { + "DataId": 32354, + "Locations": [ + { + "Position": { + "X": 481.3153, + "Y": 160.57, + "Z": -339.8337 + }, + "MinimumAngle": -150, + "MaximumAngle": 45 + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 32351, + "Locations": [ + { + "Position": { + "X": 602.9045, + "Y": 172.9519, + "Z": -376.0714 + } + }, + { + "Position": { + "X": 610.5079, + "Y": 174.6463, + "Z": -380.3387 + } + } + ] + }, + { + "DataId": 32350, + "Locations": [ + { + "Position": { + "X": 609.4385, + "Y": 174.6537, + "Z": -376.958 + } + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 32353, + "Locations": [ + { + "Position": { + "X": 457.2875, + "Y": 160.5861, + "Z": -451.3749 + } + }, + { + "Position": { + "X": 471.3904, + "Y": 159.7412, + "Z": -441.1613 + } + } + ] + }, + { + "DataId": 32352, + "Locations": [ + { + "Position": { + "X": 478.0674, + "Y": 161.2902, + "Z": -449.485 + }, + "MinimumAngle": 0, + "MaximumAngle": 210 + } + ] + } + ] + } + ] +} diff --git a/GatheringPaths/3.x - Heavensward/The Churning Mists/355_Landlord Colony_MIN.json b/GatheringPaths/3.x - Heavensward/The Churning Mists/355_Landlord Colony_MIN.json new file mode 100644 index 00000000..56f820ad --- /dev/null +++ b/GatheringPaths/3.x - Heavensward/The Churning Mists/355_Landlord Colony_MIN.json @@ -0,0 +1,108 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/GatheringPaths/gatheringlocation-v1.json", + "Author": "liza", + "TerritoryId": 400, + "AetheryteShortcut": "The Churning Mists - Moghome", + "Groups": [ + { + "Nodes": [ + { + "DataId": 31363, + "Locations": [ + { + "Position": { + "X": 338.6716, + "Y": -29.70343, + "Z": -89.65448 + }, + "MinimumAngle": 145, + "MaximumAngle": 275 + }, + { + "Position": { + "X": 285.6898, + "Y": -32.99854, + "Z": -100.1466 + }, + "MinimumAngle": 115, + "MaximumAngle": 275 + }, + { + "Position": { + "X": 326.7051, + "Y": -27.26759, + "Z": -89.31528 + }, + "MinimumAngle": 110, + "MaximumAngle": 205 + } + ] + }, + { + "DataId": 31362, + "Locations": [ + { + "Position": { + "X": 299.2141, + "Y": -33.21008, + "Z": -103.5859 + }, + "MinimumAngle": 75, + "MaximumAngle": 295 + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 31358, + "Locations": [ + { + "Position": { + "X": 316.6238, + "Y": -30.77305, + "Z": -230.0326 + }, + "MinimumAngle": -35, + "MaximumAngle": 75 + } + ] + }, + { + "DataId": 31359, + "Locations": [ + { + "Position": { + "X": 297.7187, + "Y": -32.66696, + "Z": -234.9031 + }, + "MinimumAngle": 15, + "MaximumAngle": 135 + }, + { + "Position": { + "X": 288.7547, + "Y": -33.61605, + "Z": -239.764 + }, + "MinimumAngle": -30, + "MaximumAngle": 65 + }, + { + "Position": { + "X": 324.8526, + "Y": -28.45777, + "Z": -209.4378 + }, + "MinimumAngle": -5, + "MaximumAngle": 120 + } + ] + } + ] + } + ] +} diff --git a/GatheringPaths/3.x - Heavensward/The Churning Mists/359_Four Arms_BTN.json b/GatheringPaths/3.x - Heavensward/The Churning Mists/359_Four Arms_BTN.json new file mode 100644 index 00000000..c4a5d4be --- /dev/null +++ b/GatheringPaths/3.x - Heavensward/The Churning Mists/359_Four Arms_BTN.json @@ -0,0 +1,144 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/GatheringPaths/gatheringlocation-v1.json", + "Author": "liza", + "TerritoryId": 400, + "AetheryteShortcut": "The Churning Mists - Zenith", + "Groups": [ + { + "Nodes": [ + { + "DataId": 31419, + "Locations": [ + { + "Position": { + "X": -204.7827, + "Y": -18.18443, + "Z": 272.0514 + } + }, + { + "Position": { + "X": -187.8667, + "Y": -18.16559, + "Z": 260.4704 + }, + "MinimumAngle": -85, + "MaximumAngle": 105 + }, + { + "Position": { + "X": -219.7478, + "Y": -18.66556, + "Z": 279.3036 + } + } + ] + }, + { + "DataId": 31418, + "Locations": [ + { + "Position": { + "X": -216.0198, + "Y": -14.66686, + "Z": 263.2452 + } + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 31423, + "Locations": [ + { + "Position": { + "X": -125.676, + "Y": -13.40994, + "Z": 434.1913 + }, + "MinimumAngle": 25, + "MaximumAngle": 260 + }, + { + "Position": { + "X": -99.86462, + "Y": -11.67334, + "Z": 437.7415 + }, + "MinimumAngle": 85, + "MaximumAngle": 300 + }, + { + "Position": { + "X": -71.04668, + "Y": -8.40571, + "Z": 445.0867 + }, + "MinimumAngle": -40, + "MaximumAngle": 170 + } + ] + }, + { + "DataId": 31422, + "Locations": [ + { + "Position": { + "X": -88.15926, + "Y": -8.882813, + "Z": 447.7102 + }, + "MinimumAngle": 155, + "MaximumAngle": 360 + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 31420, + "Locations": [ + { + "Position": { + "X": 12.52414, + "Y": -14.81244, + "Z": 375.4579 + } + } + ] + }, + { + "DataId": 31421, + "Locations": [ + { + "Position": { + "X": -11.31142, + "Y": -19.80939, + "Z": 383.9503 + } + }, + { + "Position": { + "X": 4.771156, + "Y": -17.64155, + "Z": 386.0074 + } + }, + { + "Position": { + "X": 9.879506, + "Y": -13.13191, + "Z": 358.7252 + } + } + ] + } + ] + } + ] +} diff --git a/GatheringPaths/3.x - Heavensward/The Churning Mists/553_Landlord Colony_MIN.json b/GatheringPaths/3.x - Heavensward/The Churning Mists/553_Landlord Colony_MIN.json new file mode 100644 index 00000000..e6743d62 --- /dev/null +++ b/GatheringPaths/3.x - Heavensward/The Churning Mists/553_Landlord Colony_MIN.json @@ -0,0 +1,131 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/GatheringPaths/gatheringlocation-v1.json", + "Author": "liza", + "TerritoryId": 400, + "AetheryteShortcut": "The Churning Mists - Moghome", + "Groups": [ + { + "Nodes": [ + { + "DataId": 32357, + "Locations": [ + { + "Position": { + "X": 557.625, + "Y": 5.119438, + "Z": 180.6541 + }, + "MinimumAngle": -70, + "MaximumAngle": 55 + }, + { + "Position": { + "X": 570.8357, + "Y": 11.89507, + "Z": 164.9729 + }, + "MinimumAngle": 55, + "MaximumAngle": 130 + } + ] + }, + { + "DataId": 32356, + "Locations": [ + { + "Position": { + "X": 572.8384, + "Y": 11.68007, + "Z": 155.6572 + }, + "MinimumAngle": 70, + "MaximumAngle": 165 + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 32358, + "Locations": [ + { + "Position": { + "X": 665.114, + "Y": 43.93011, + "Z": 151.3629 + }, + "MinimumAngle": -80, + "MaximumAngle": 40 + } + ] + }, + { + "DataId": 32359, + "Locations": [ + { + "Position": { + "X": 697.7376, + "Y": 41.87314, + "Z": 124.1553 + }, + "MinimumAngle": -125, + "MaximumAngle": 30 + }, + { + "Position": { + "X": 681.178, + "Y": 41.71732, + "Z": 147.9972 + }, + "MinimumAngle": -15, + "MaximumAngle": 85 + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 32360, + "Locations": [ + { + "Position": { + "X": 755.3978, + "Y": 20.37826, + "Z": 201.3921 + }, + "MinimumAngle": -30, + "MaximumAngle": 70 + } + ] + }, + { + "DataId": 32361, + "Locations": [ + { + "Position": { + "X": 771.5975, + "Y": 20.41353, + "Z": 204.8761 + }, + "MinimumAngle": -45, + "MaximumAngle": 65 + }, + { + "Position": { + "X": 739.1428, + "Y": 23.87582, + "Z": 196.4766 + }, + "MinimumAngle": -40, + "MaximumAngle": 55 + } + ] + } + ] + } + ] +} diff --git a/GatheringPaths/3.x - Heavensward/The Churning Mists/554_Ohl Tahn_BTN.json b/GatheringPaths/3.x - Heavensward/The Churning Mists/554_Ohl Tahn_BTN.json new file mode 100644 index 00000000..3792592d --- /dev/null +++ b/GatheringPaths/3.x - Heavensward/The Churning Mists/554_Ohl Tahn_BTN.json @@ -0,0 +1,127 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/GatheringPaths/gatheringlocation-v1.json", + "Author": "liza", + "TerritoryId": 400, + "AetheryteShortcut": "The Churning Mists - Zenith", + "Groups": [ + { + "Nodes": [ + { + "DataId": 32366, + "Locations": [ + { + "Position": { + "X": -699.5319, + "Y": 91.18189, + "Z": -362.7602 + } + } + ] + }, + { + "DataId": 32367, + "Locations": [ + { + "Position": { + "X": -681.9284, + "Y": 91.30399, + "Z": -363.0468 + } + }, + { + "Position": { + "X": -709.8129, + "Y": 91.42828, + "Z": -361.5186 + }, + "MinimumAngle": 85, + "MaximumAngle": 285 + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 32364, + "Locations": [ + { + "Position": { + "X": -680.1304, + "Y": 91.30952, + "Z": -479.2773 + }, + "MinimumAngle": 50, + "MaximumAngle": 275 + } + ] + }, + { + "DataId": 32365, + "Locations": [ + { + "Position": { + "X": -691.5847, + "Y": 91.2657, + "Z": -491.8746 + }, + "MinimumAngle": -115, + "MaximumAngle": 90 + }, + { + "Position": { + "X": -685.3473, + "Y": 91.26568, + "Z": -474.3657 + }, + "MinimumAngle": 0, + "MaximumAngle": 205 + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 32362, + "Locations": [ + { + "Position": { + "X": -764.3091, + "Y": 91.5154, + "Z": -554.3649 + }, + "MinimumAngle": -125, + "MaximumAngle": 65 + } + ] + }, + { + "DataId": 32363, + "Locations": [ + { + "Position": { + "X": -763.1495, + "Y": 91.37257, + "Z": -542.7809 + }, + "MinimumAngle": 70, + "MaximumAngle": 305 + }, + { + "Position": { + "X": -776.5944, + "Y": 91.16921, + "Z": -566.8766 + }, + "MinimumAngle": -95, + "MaximumAngle": 110 + } + ] + } + ] + } + ] +} diff --git a/GatheringPaths/3.x - Heavensward/The Dravanian Forelands/352_Avalonia Fallen_MIN.json b/GatheringPaths/3.x - Heavensward/The Dravanian Forelands/352_Avalonia Fallen_MIN.json new file mode 100644 index 00000000..0b1e53ce --- /dev/null +++ b/GatheringPaths/3.x - Heavensward/The Dravanian Forelands/352_Avalonia Fallen_MIN.json @@ -0,0 +1,158 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/GatheringPaths/gatheringlocation-v1.json", + "Author": "liza", + "TerritoryId": 398, + "AetheryteShortcut": "The Dravanian Forelands - Anyx Trine", + "Groups": [ + { + "Nodes": [ + { + "DataId": 31350, + "Locations": [ + { + "Position": { + "X": -115.4501, + "Y": -44.90735, + "Z": 211.8084 + }, + "MinimumAngle": -5, + "MaximumAngle": 65 + } + ] + }, + { + "DataId": 31351, + "Locations": [ + { + "Position": { + "X": -94.4983, + "Y": -46.65615, + "Z": 219.4642 + }, + "MinimumAngle": -90, + "MaximumAngle": 65 + }, + { + "Position": { + "X": -133.4304, + "Y": -45.47835, + "Z": 211.6268 + }, + "MinimumAngle": -50, + "MaximumAngle": 80 + }, + { + "Position": { + "X": -81.5194, + "Y": -52.42267, + "Z": 241.2021 + }, + "MinimumAngle": -35, + "MaximumAngle": 85 + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 31346, + "Locations": [ + { + "Position": { + "X": -154.299, + "Y": -70.63795, + "Z": 399.4617 + }, + "MinimumAngle": 110, + "MaximumAngle": 225 + } + ] + }, + { + "DataId": 31347, + "Locations": [ + { + "Position": { + "X": -167.7846, + "Y": -70.11265, + "Z": 418.7766 + }, + "MinimumAngle": 90, + "MaximumAngle": 235 + }, + { + "Position": { + "X": -152.9678, + "Y": -68.49996, + "Z": 365.0086 + }, + "MinimumAngle": -30, + "MaximumAngle": 70 + }, + { + "Position": { + "X": -189.6693, + "Y": -68.18973, + "Z": 377.6652 + }, + "MinimumAngle": 205, + "MaximumAngle": 335 + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 31349, + "Locations": [ + { + "Position": { + "X": -312.3143, + "Y": -54.81182, + "Z": 331.0543 + }, + "MinimumAngle": -145, + "MaximumAngle": 5 + }, + { + "Position": { + "X": -296.8107, + "Y": -51.96982, + "Z": 310.6086 + }, + "MinimumAngle": 235, + "MaximumAngle": 330 + }, + { + "Position": { + "X": -299.3094, + "Y": -46.30565, + "Z": 293.9169 + }, + "MinimumAngle": 165, + "MaximumAngle": 310 + } + ] + }, + { + "DataId": 31348, + "Locations": [ + { + "Position": { + "X": -311.9997, + "Y": -53.59439, + "Z": 326.8317 + }, + "MinimumAngle": -75, + "MaximumAngle": -20 + } + ] + } + ] + } + ] +} diff --git a/GatheringPaths/3.x - Heavensward/The Dravanian Forelands/358_Avalonia Fallen_BTN.json b/GatheringPaths/3.x - Heavensward/The Dravanian Forelands/358_Avalonia Fallen_BTN.json new file mode 100644 index 00000000..c672d2e4 --- /dev/null +++ b/GatheringPaths/3.x - Heavensward/The Dravanian Forelands/358_Avalonia Fallen_BTN.json @@ -0,0 +1,134 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/GatheringPaths/gatheringlocation-v1.json", + "Author": "liza", + "TerritoryId": 398, + "AetheryteShortcut": "The Dravanian Forelands - Anyx Trine", + "Groups": [ + { + "Nodes": [ + { + "DataId": 31413, + "Locations": [ + { + "Position": { + "X": -513.1596, + "Y": -85.63485, + "Z": 434.7382 + } + }, + { + "Position": { + "X": -562.0517, + "Y": -89.33559, + "Z": 445.0961 + } + }, + { + "Position": { + "X": -523.4441, + "Y": -81.67991, + "Z": 408.9826 + } + } + ] + }, + { + "DataId": 31412, + "Locations": [ + { + "Position": { + "X": -553.9171, + "Y": -84.75874, + "Z": 419.2539 + } + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 31416, + "Locations": [ + { + "Position": { + "X": -569.6527, + "Y": -96.50298, + "Z": 547.1465 + } + } + ] + }, + { + "DataId": 31417, + "Locations": [ + { + "Position": { + "X": -623.1743, + "Y": -101.8206, + "Z": 574.6146 + } + }, + { + "Position": { + "X": -562.2545, + "Y": -95.6534, + "Z": 545.6004 + } + }, + { + "Position": { + "X": -601.669, + "Y": -100.0121, + "Z": 559.5313 + } + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 31415, + "Locations": [ + { + "Position": { + "X": -680.4672, + "Y": -103.4997, + "Z": 624.0101 + } + }, + { + "Position": { + "X": -700.5361, + "Y": -107.5581, + "Z": 597.0253 + } + }, + { + "Position": { + "X": -715.8123, + "Y": -105.2011, + "Z": 622.3116 + } + } + ] + }, + { + "DataId": 31414, + "Locations": [ + { + "Position": { + "X": -714.2946, + "Y": -113.8825, + "Z": 557.3662 + } + } + ] + } + ] + } + ] +} diff --git a/GatheringPaths/3.x - Heavensward/The Dravanian Hinterlands/353_The Makers' Quarter_MIN.json b/GatheringPaths/3.x - Heavensward/The Dravanian Hinterlands/353_The Makers' Quarter_MIN.json new file mode 100644 index 00000000..3a1d3477 --- /dev/null +++ b/GatheringPaths/3.x - Heavensward/The Dravanian Hinterlands/353_The Makers' Quarter_MIN.json @@ -0,0 +1,162 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/GatheringPaths/gatheringlocation-v1.json", + "Author": "liza", + "TerritoryId": 399, + "AetheryteShortcut": "Idyllshire", + "AethernetShortcut": [ + "[Idyllshire] Aetheryte Plaza", + "[Idyllshire] Epilogue Gate (Eastern Hinterlands)" + ], + "Groups": [ + { + "Nodes": [ + { + "DataId": 31356, + "Locations": [ + { + "Position": { + "X": 120.1556, + "Y": 70.42133, + "Z": 30.73328 + }, + "MinimumAngle": -95, + "MaximumAngle": 70 + } + ] + }, + { + "DataId": 31357, + "Locations": [ + { + "Position": { + "X": 137.7684, + "Y": 70.04282, + "Z": 64.77115 + }, + "MinimumAngle": 30, + "MaximumAngle": 130 + }, + { + "Position": { + "X": 132.1863, + "Y": 70.08203, + "Z": 57.67828 + }, + "MinimumAngle": -10, + "MaximumAngle": 105 + }, + { + "Position": { + "X": 145.684, + "Y": 70.47159, + "Z": 45.05047 + }, + "MinimumAngle": 80, + "MaximumAngle": 215 + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 31355, + "Locations": [ + { + "Position": { + "X": 59.4164, + "Y": 54.40149, + "Z": 160.6752 + }, + "MinimumAngle": 155, + "MaximumAngle": 285 + }, + { + "Position": { + "X": 66.6783, + "Y": 53.80389, + "Z": 177.1926 + }, + "MinimumAngle": -90, + "MaximumAngle": 0 + }, + { + "Position": { + "X": 47.04347, + "Y": 53.91698, + "Z": 164.1816 + }, + "MinimumAngle": 0, + "MaximumAngle": 185 + } + ] + }, + { + "DataId": 31354, + "Locations": [ + { + "Position": { + "X": 31.89844, + "Y": 54.71996, + "Z": 173.864 + }, + "MinimumAngle": 105, + "MaximumAngle": 235 + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 31352, + "Locations": [ + { + "Position": { + "X": 231.3517, + "Y": 74.23511, + "Z": 112.9807 + }, + "MinimumAngle": 130, + "MaximumAngle": 285 + } + ] + }, + { + "DataId": 31353, + "Locations": [ + { + "Position": { + "X": 239.051, + "Y": 80.42557, + "Z": 192.2325 + }, + "MinimumAngle": 140, + "MaximumAngle": 235 + }, + { + "Position": { + "X": 237.4622, + "Y": 74.67197, + "Z": 150.8143 + }, + "MinimumAngle": 60, + "MaximumAngle": 225 + }, + { + "Position": { + "X": 211.4673, + "Y": 75.37302, + "Z": 169.3396 + }, + "MinimumAngle": 145, + "MaximumAngle": 285 + } + ] + } + ] + } + ] +} diff --git a/GatheringPaths/3.x - Heavensward/The Dravanian Hinterlands/361_The Answering Quarter_BTN.json b/GatheringPaths/3.x - Heavensward/The Dravanian Hinterlands/361_The Answering Quarter_BTN.json new file mode 100644 index 00000000..857dd705 --- /dev/null +++ b/GatheringPaths/3.x - Heavensward/The Dravanian Hinterlands/361_The Answering Quarter_BTN.json @@ -0,0 +1,148 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/GatheringPaths/gatheringlocation-v1.json", + "Author": "liza", + "TerritoryId": 399, + "AetheryteShortcut": "Idyllshire", + "AethernetShortcut": [ + "[Idyllshire] Aetheryte Plaza", + "[Idyllshire] Prologue Gate (Western Hinterlands)" + ], + "Groups": [ + { + "Nodes": [ + { + "DataId": 31431, + "Locations": [ + { + "Position": { + "X": -494.1652, + "Y": 142.7381, + "Z": -287.4084 + }, + "MinimumAngle": 0, + "MaximumAngle": 270 + }, + { + "Position": { + "X": -485.4606, + "Y": 142.9737, + "Z": -290.856 + }, + "MinimumAngle": 65, + "MaximumAngle": 310 + }, + { + "Position": { + "X": -533.1213, + "Y": 142.5874, + "Z": -262.2948 + }, + "MinimumAngle": -255, + "MaximumAngle": 10 + } + ] + }, + { + "DataId": 31430, + "Locations": [ + { + "Position": { + "X": -510.6404, + "Y": 141.9014, + "Z": -280.1611 + } + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 31434, + "Locations": [ + { + "Position": { + "X": -562.8221, + "Y": 148.9451, + "Z": -104.9014 + } + } + ] + }, + { + "DataId": 31435, + "Locations": [ + { + "Position": { + "X": -520.0394, + "Y": 148.7521, + "Z": -97.8 + } + }, + { + "Position": { + "X": -570.4307, + "Y": 148.103, + "Z": -130.9921 + } + }, + { + "Position": { + "X": -573.738, + "Y": 148.4877, + "Z": -158.4798 + }, + "MinimumAngle": 130, + "MaximumAngle": 360 + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 31432, + "Locations": [ + { + "Position": { + "X": -388.4753, + "Y": 147.345, + "Z": -177.1972 + } + } + ] + }, + { + "DataId": 31433, + "Locations": [ + { + "Position": { + "X": -349.5501, + "Y": 144.6325, + "Z": -185.3442 + } + }, + { + "Position": { + "X": -398.145, + "Y": 145.7528, + "Z": -198.2334 + }, + "MinimumAngle": 155, + "MaximumAngle": 360 + }, + { + "Position": { + "X": -374.5566, + "Y": 145.3827, + "Z": -194.8224 + } + } + ] + } + ] + } + ] +} diff --git a/GatheringPaths/3.x - Heavensward/The Sea of Clouds/354_Voor Sian Siran_MIN.json b/GatheringPaths/3.x - Heavensward/The Sea of Clouds/354_Voor Sian Siran_MIN.json new file mode 100644 index 00000000..e8040da6 --- /dev/null +++ b/GatheringPaths/3.x - Heavensward/The Sea of Clouds/354_Voor Sian Siran_MIN.json @@ -0,0 +1,140 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/GatheringPaths/gatheringlocation-v1.json", + "Author": "liza", + "TerritoryId": 401, + "AetheryteShortcut": "The Sea of Clouds - Camp Cloudtop", + "Groups": [ + { + "Nodes": [ + { + "DataId": 31366, + "Locations": [ + { + "Position": { + "X": 529.0662, + "Y": -110.3256, + "Z": 434.3149 + }, + "MinimumAngle": 15, + "MaximumAngle": 135 + } + ] + }, + { + "DataId": 31367, + "Locations": [ + { + "Position": { + "X": 541.8505, + "Y": -111.128, + "Z": 452.5471 + }, + "MinimumAngle": -45, + "MaximumAngle": 40 + }, + { + "Position": { + "X": 517.9747, + "Y": -109.2984, + "Z": 417.9554 + }, + "MinimumAngle": -45, + "MaximumAngle": 55 + }, + { + "Position": { + "X": 499.3676, + "Y": -108.7323, + "Z": 410.8949 + }, + "MinimumAngle": -5, + "MaximumAngle": 85 + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 31365, + "Locations": [ + { + "Position": { + "X": 625.9688, + "Y": -115.6856, + "Z": 344.535 + }, + "MinimumAngle": 125, + "MaximumAngle": 185 + }, + { + "Position": { + "X": 678.5617, + "Y": -122.8687, + "Z": 356.7407 + }, + "MinimumAngle": 190, + "MaximumAngle": 290 + }, + { + "Position": { + "X": 644.1035, + "Y": -122.3688, + "Z": 334.0371 + }, + "MinimumAngle": 105, + "MaximumAngle": 235 + } + ] + }, + { + "DataId": 31364, + "Locations": [ + { + "Position": { + "X": 661.9959, + "Y": -122.6855, + "Z": 333.0707 + }, + "MinimumAngle": 140, + "MaximumAngle": 260 + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 31369, + "Locations": [ + { + "Position": { + "X": 730.9626, + "Y": -96.64706, + "Z": 449.485 + }, + "MinimumAngle": 45, + "MaximumAngle": 115 + } + ] + }, + { + "DataId": 31368, + "Locations": [ + { + "Position": { + "X": 727.2908, + "Y": -95.47571, + "Z": 460.3798 + }, + "MinimumAngle": 25, + "MaximumAngle": 180 + } + ] + } + ] + } + ] +} diff --git a/GatheringPaths/3.x - Heavensward/The Sea of Clouds/360_The Blue Window_BTN.json b/GatheringPaths/3.x - Heavensward/The Sea of Clouds/360_The Blue Window_BTN.json new file mode 100644 index 00000000..b15a0425 --- /dev/null +++ b/GatheringPaths/3.x - Heavensward/The Sea of Clouds/360_The Blue Window_BTN.json @@ -0,0 +1,117 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/GatheringPaths/gatheringlocation-v1.json", + "Author": "liza", + "TerritoryId": 401, + "AetheryteShortcut": "The Sea of Clouds - Ok' Zundu", + "Groups": [ + { + "Nodes": [ + { + "DataId": 31425, + "Locations": [ + { + "Position": { + "X": -63.97195, + "Y": 13.48263, + "Z": -559.9897 + } + }, + { + "Position": { + "X": -47.75371, + "Y": 13.66347, + "Z": -571.2774 + }, + "MinimumAngle": -80, + "MaximumAngle": 115 + } + ] + }, + { + "DataId": 31424, + "Locations": [ + { + "Position": { + "X": -26.91866, + "Y": 12.14502, + "Z": -554.869 + } + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 31426, + "Locations": [ + { + "Position": { + "X": -26.56338, + "Y": 12.41532, + "Z": -442.6965 + } + } + ] + }, + { + "DataId": 31427, + "Locations": [ + { + "Position": { + "X": 2.215849, + "Y": 12.32494, + "Z": -434.0038 + } + }, + { + "Position": { + "X": -18.38633, + "Y": 12.4451, + "Z": -427.6107 + } + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 31429, + "Locations": [ + { + "Position": { + "X": 70.59737, + "Y": 13.45543, + "Z": -599.2373 + }, + "MinimumAngle": -60, + "MaximumAngle": 125 + }, + { + "Position": { + "X": 50.8525, + "Y": 13.158, + "Z": -646.834 + } + } + ] + }, + { + "DataId": 31428, + "Locations": [ + { + "Position": { + "X": 85.6145, + "Y": 12.69149, + "Z": -629.3397 + } + } + ] + } + ] + } + ] +} diff --git a/GatheringPaths/4.x - Stormblood/The Azim Steppe/495_Onsal Hakair_MIN.json b/GatheringPaths/4.x - Stormblood/The Azim Steppe/495_Onsal Hakair_MIN.json new file mode 100644 index 00000000..3c8c4282 --- /dev/null +++ b/GatheringPaths/4.x - Stormblood/The Azim Steppe/495_Onsal Hakair_MIN.json @@ -0,0 +1,158 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/GatheringPaths/gatheringlocation-v1.json", + "Author": "liza", + "TerritoryId": 622, + "AetheryteShortcut": "Azim Steppe - Dawn Throne", + "Groups": [ + { + "Nodes": [ + { + "DataId": 32176, + "Locations": [ + { + "Position": { + "X": 411.0592, + "Y": 2.207043, + "Z": -174.1382 + }, + "MinimumAngle": -45, + "MaximumAngle": 130 + }, + { + "Position": { + "X": 382.993, + "Y": 13.25345, + "Z": -207.7346 + }, + "MinimumAngle": 130, + "MaximumAngle": 295 + }, + { + "Position": { + "X": 361.387, + "Y": 14.51455, + "Z": -203.9765 + }, + "MinimumAngle": 90, + "MaximumAngle": 195 + } + ] + }, + { + "DataId": 32175, + "Locations": [ + { + "Position": { + "X": 364.0281, + "Y": 14.81319, + "Z": -208.0434 + }, + "MinimumAngle": 65, + "MaximumAngle": 200 + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 32177, + "Locations": [ + { + "Position": { + "X": 326.783, + "Y": 27.22089, + "Z": -328.1715 + }, + "MinimumAngle": -130, + "MaximumAngle": -5 + } + ] + }, + { + "DataId": 32178, + "Locations": [ + { + "Position": { + "X": 352.0781, + "Y": 33.91527, + "Z": -369.394 + }, + "MinimumAngle": -55, + "MaximumAngle": 110 + }, + { + "Position": { + "X": 319.4689, + "Y": 30.05529, + "Z": -341.346 + }, + "MinimumAngle": 50, + "MaximumAngle": 215 + }, + { + "Position": { + "X": 340.3498, + "Y": 34.56527, + "Z": -374.391 + }, + "MinimumAngle": -90, + "MaximumAngle": 85 + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 32173, + "Locations": [ + { + "Position": { + "X": 460.0648, + "Y": 32.44811, + "Z": -382.8145 + }, + "MinimumAngle": 30, + "MaximumAngle": 135 + } + ] + }, + { + "DataId": 32174, + "Locations": [ + { + "Position": { + "X": 488.255, + "Y": 26.08804, + "Z": -365.4641 + }, + "MinimumAngle": 0, + "MaximumAngle": 195 + }, + { + "Position": { + "X": 460.4979, + "Y": 30.90669, + "Z": -376.0688 + }, + "MinimumAngle": 55, + "MaximumAngle": 180 + }, + { + "Position": { + "X": 438.8477, + "Y": 38.51477, + "Z": -413.352 + }, + "MinimumAngle": -70, + "MaximumAngle": 115 + } + ] + } + ] + } + ] +} diff --git a/GatheringPaths/4.x - Stormblood/The Azim Steppe/519_Nhaama's Retreat_BTN.json b/GatheringPaths/4.x - Stormblood/The Azim Steppe/519_Nhaama's Retreat_BTN.json new file mode 100644 index 00000000..bbefc52d --- /dev/null +++ b/GatheringPaths/4.x - Stormblood/The Azim Steppe/519_Nhaama's Retreat_BTN.json @@ -0,0 +1,138 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/GatheringPaths/gatheringlocation-v1.json", + "Author": "liza", + "TerritoryId": 622, + "AetheryteShortcut": "Azim Steppe - Dawn Throne", + "Groups": [ + { + "Nodes": [ + { + "DataId": 32264, + "Locations": [ + { + "Position": { + "X": -166.6597, + "Y": 3.616752, + "Z": 361.2099 + }, + "MinimumAngle": -95, + "MaximumAngle": 130 + } + ] + }, + { + "DataId": 32265, + "Locations": [ + { + "Position": { + "X": -191.0201, + "Y": 4.361521, + "Z": 354.6401 + } + }, + { + "Position": { + "X": -162.6655, + "Y": 3.441799, + "Z": 363.0803 + }, + "MinimumAngle": -95, + "MaximumAngle": 150 + }, + { + "Position": { + "X": -167.5898, + "Y": 2.5177, + "Z": 377.1267 + } + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 32267, + "Locations": [ + { + "Position": { + "X": -271.2292, + "Y": 3.341675, + "Z": 401.9989 + } + }, + { + "Position": { + "X": -349.3433, + "Y": 11.88452, + "Z": 378.1435 + } + }, + { + "Position": { + "X": -298.7296, + "Y": 5.809261, + "Z": 414.3437 + } + } + ] + }, + { + "DataId": 32266, + "Locations": [ + { + "Position": { + "X": -317.19, + "Y": 7.863516, + "Z": 397.5005 + } + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 32262, + "Locations": [ + { + "Position": { + "X": -350.0407, + "Y": 22.68479, + "Z": 230.4606 + } + } + ] + }, + { + "DataId": 32263, + "Locations": [ + { + "Position": { + "X": -352.7808, + "Y": 23.99817, + "Z": 203.1617 + } + }, + { + "Position": { + "X": -345.5888, + "Y": 22.30608, + "Z": 229.8253 + } + }, + { + "Position": { + "X": -377.2188, + "Y": 22.65303, + "Z": 221.3997 + } + } + ] + } + ] + } + ] +} diff --git a/GatheringPaths/4.x - Stormblood/The Azim Steppe/813_Onsal Hakair_BTN.json b/GatheringPaths/4.x - Stormblood/The Azim Steppe/813_Onsal Hakair_BTN.json new file mode 100644 index 00000000..2bcf9909 --- /dev/null +++ b/GatheringPaths/4.x - Stormblood/The Azim Steppe/813_Onsal Hakair_BTN.json @@ -0,0 +1,94 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/GatheringPaths/gatheringlocation-v1.json", + "Author": "liza", + "TerritoryId": 622, + "AetheryteShortcut": "Azim Steppe - Dawn Throne", + "Groups": [ + { + "Nodes": [ + { + "DataId": 33885, + "Locations": [ + { + "Position": { + "X": 288.2408, + "Y": 23.61323, + "Z": -234.9867 + } + } + ] + }, + { + "DataId": 33886, + "Locations": [ + { + "Position": { + "X": 281.9221, + "Y": 23.03055, + "Z": -231.9227 + } + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 33887, + "Locations": [ + { + "Position": { + "X": 407.1815, + "Y": 26.86968, + "Z": -325.3348 + }, + "MinimumAngle": -60, + "MaximumAngle": 170 + } + ] + }, + { + "DataId": 33888, + "Locations": [ + { + "Position": { + "X": 413.6349, + "Y": 25.90826, + "Z": -320.5389 + } + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 33889, + "Locations": [ + { + "Position": { + "X": 451.9882, + "Y": 8.707673, + "Z": -136.5769 + } + } + ] + }, + { + "DataId": 33890, + "Locations": [ + { + "Position": { + "X": 458.5264, + "Y": 8.823095, + "Z": -132.5937 + } + } + ] + } + ] + } + ] +} diff --git a/GatheringPaths/4.x - Stormblood/The Fringes/485_East End_MIN.json b/GatheringPaths/4.x - Stormblood/The Fringes/485_East End_MIN.json new file mode 100644 index 00000000..27eb04f1 --- /dev/null +++ b/GatheringPaths/4.x - Stormblood/The Fringes/485_East End_MIN.json @@ -0,0 +1,136 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/GatheringPaths/gatheringlocation-v1.json", + "Author": "liza", + "TerritoryId": 612, + "AetheryteShortcut": "Fringes - Castrum Oriens", + "Groups": [ + { + "Nodes": [ + { + "DataId": 32125, + "Locations": [ + { + "Position": { + "X": -317.5445, + "Y": 80.03535, + "Z": -449.2276 + }, + "MinimumAngle": -80, + "MaximumAngle": 30 + } + ] + }, + { + "DataId": 32126, + "Locations": [ + { + "Position": { + "X": -301.3254, + "Y": 69.71587, + "Z": -485.7171 + }, + "MinimumAngle": -125, + "MaximumAngle": 30 + }, + { + "Position": { + "X": -311.9155, + "Y": 76.91404, + "Z": -467.1509 + }, + "MinimumAngle": 160, + "MaximumAngle": 290 + }, + { + "Position": { + "X": -311.1216, + "Y": 77.83449, + "Z": -454.2029 + }, + "MinimumAngle": -110, + "MaximumAngle": 30 + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 32124, + "Locations": [ + { + "Position": { + "X": -262.2596, + "Y": 62.06842, + "Z": -550.8122 + }, + "MinimumAngle": 185, + "MaximumAngle": 335 + }, + { + "Position": { + "X": -266.0078, + "Y": 62.03654, + "Z": -564.1611 + }, + "MinimumAngle": 180, + "MaximumAngle": 340 + }, + { + "Position": { + "X": -255.8366, + "Y": 62.63577, + "Z": -588.0093 + }, + "MinimumAngle": 245, + "MaximumAngle": 345 + } + ] + }, + { + "DataId": 32123, + "Locations": [ + { + "Position": { + "X": -264.8189, + "Y": 62.61843, + "Z": -558.4091 + }, + "MinimumAngle": 175, + "MaximumAngle": 300 + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 32127, + "Locations": [ + { + "Position": { + "X": -108.2628, + "Y": 64.1357, + "Z": -485.6675 + } + } + ] + }, + { + "DataId": 32128, + "Locations": [ + { + "Position": { + "X": -103.2401, + "Y": 59.26093, + "Z": -463.1485 + } + } + ] + } + ] + } + ] +} diff --git a/GatheringPaths/4.x - Stormblood/The Fringes/486_The Striped Hills_MIN.json b/GatheringPaths/4.x - Stormblood/The Fringes/486_The Striped Hills_MIN.json new file mode 100644 index 00000000..eba926f8 --- /dev/null +++ b/GatheringPaths/4.x - Stormblood/The Fringes/486_The Striped Hills_MIN.json @@ -0,0 +1,158 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/GatheringPaths/gatheringlocation-v1.json", + "Author": "liza", + "TerritoryId": 612, + "AetheryteShortcut": "Fringes - Castrum Oriens", + "Groups": [ + { + "Nodes": [ + { + "DataId": 32132, + "Locations": [ + { + "Position": { + "X": 101.0199, + "Y": 50.70325, + "Z": -410.8297 + }, + "MinimumAngle": -55, + "MaximumAngle": 25 + }, + { + "Position": { + "X": 78.0303, + "Y": 48.68632, + "Z": -401.5028 + }, + "MinimumAngle": -50, + "MaximumAngle": 5 + }, + { + "Position": { + "X": 115.4548, + "Y": 51.50989, + "Z": -415.8416 + }, + "MinimumAngle": -115, + "MaximumAngle": -40 + } + ] + }, + { + "DataId": 32131, + "Locations": [ + { + "Position": { + "X": 90.52106, + "Y": 49.82163, + "Z": -409.1239 + }, + "MinimumAngle": -35, + "MaximumAngle": 55 + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 32134, + "Locations": [ + { + "Position": { + "X": 84.90259, + "Y": 44.58842, + "Z": -324.1541 + }, + "MinimumAngle": -10, + "MaximumAngle": 105 + }, + { + "Position": { + "X": 82.56047, + "Y": 44.08657, + "Z": -269.3104 + }, + "MinimumAngle": -5, + "MaximumAngle": 80 + }, + { + "Position": { + "X": 98.20293, + "Y": 43.59855, + "Z": -299.3164 + }, + "MinimumAngle": 95, + "MaximumAngle": 185 + } + ] + }, + { + "DataId": 32133, + "Locations": [ + { + "Position": { + "X": 82.94646, + "Y": 42.55737, + "Z": -292.9016 + }, + "MinimumAngle": 105, + "MaximumAngle": 165 + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 32129, + "Locations": [ + { + "Position": { + "X": 240.5221, + "Y": 43.60987, + "Z": -301.7685 + }, + "MinimumAngle": 155, + "MaximumAngle": 255 + } + ] + }, + { + "DataId": 32130, + "Locations": [ + { + "Position": { + "X": 265.4354, + "Y": 43.19557, + "Z": -283.7873 + }, + "MinimumAngle": -155, + "MaximumAngle": -15 + }, + { + "Position": { + "X": 246.9251, + "Y": 43.54385, + "Z": -296.2532 + }, + "MinimumAngle": 170, + "MaximumAngle": 225 + }, + { + "Position": { + "X": 213.1443, + "Y": 43.26488, + "Z": -308.4924 + }, + "MinimumAngle": 110, + "MaximumAngle": 250 + } + ] + } + ] + } + ] +} diff --git a/GatheringPaths/4.x - Stormblood/The Fringes/505_East End_BTN.json b/GatheringPaths/4.x - Stormblood/The Fringes/505_East End_BTN.json new file mode 100644 index 00000000..a9d9ff5d --- /dev/null +++ b/GatheringPaths/4.x - Stormblood/The Fringes/505_East End_BTN.json @@ -0,0 +1,150 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/GatheringPaths/gatheringlocation-v1.json", + "Author": "liza", + "TerritoryId": 612, + "AetheryteShortcut": "Fringes - Castrum Oriens", + "Groups": [ + { + "Nodes": [ + { + "DataId": 32193, + "Locations": [ + { + "Position": { + "X": -249.9619, + "Y": 61.05618, + "Z": -604.3008 + } + }, + { + "Position": { + "X": -238.5267, + "Y": 60.51727, + "Z": -560.746 + }, + "MinimumAngle": -25, + "MaximumAngle": 120 + }, + { + "Position": { + "X": -263.4823, + "Y": 61.9943, + "Z": -566.3988 + }, + "MinimumAngle": 115, + "MaximumAngle": 360 + } + ] + }, + { + "DataId": 32192, + "Locations": [ + { + "Position": { + "X": -261.7163, + "Y": 61.86325, + "Z": -574.8586 + }, + "MinimumAngle": -140, + "MaximumAngle": 125 + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 32189, + "Locations": [ + { + "Position": { + "X": -260.6172, + "Y": 70.60548, + "Z": -685.7728 + }, + "MinimumAngle": 55, + "MaximumAngle": 265 + }, + { + "Position": { + "X": -293.3862, + "Y": 75.88585, + "Z": -675.9405 + }, + "MinimumAngle": -235, + "MaximumAngle": 10 + }, + { + "Position": { + "X": -289.601, + "Y": 73.41101, + "Z": -659.3271 + }, + "MinimumAngle": 135, + "MaximumAngle": 350 + } + ] + }, + { + "DataId": 32188, + "Locations": [ + { + "Position": { + "X": -267.9963, + "Y": 75.16626, + "Z": -708.2614 + }, + "MinimumAngle": 150, + "MaximumAngle": 360 + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 32191, + "Locations": [ + { + "Position": { + "X": -97.48006, + "Y": 61.31205, + "Z": -668.7775 + }, + "MinimumAngle": -50, + "MaximumAngle": 30 + }, + { + "Position": { + "X": -36.55207, + "Y": 61.9393, + "Z": -606.5457 + } + }, + { + "Position": { + "X": -79.96028, + "Y": 61.16011, + "Z": -625.305 + } + } + ] + }, + { + "DataId": 32190, + "Locations": [ + { + "Position": { + "X": -88.68313, + "Y": 61.06887, + "Z": -653.9121 + } + } + ] + } + ] + } + ] +} diff --git a/GatheringPaths/4.x - Stormblood/The Fringes/509_Dimwold_BTN.json b/GatheringPaths/4.x - Stormblood/The Fringes/509_Dimwold_BTN.json new file mode 100644 index 00000000..bc74413e --- /dev/null +++ b/GatheringPaths/4.x - Stormblood/The Fringes/509_Dimwold_BTN.json @@ -0,0 +1,131 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/GatheringPaths/gatheringlocation-v1.json", + "Author": "liza", + "TerritoryId": 612, + "AetheryteShortcut": "Fringes - Castrum Oriens", + "Groups": [ + { + "Nodes": [ + { + "DataId": 32217, + "Locations": [ + { + "Position": { + "X": -492.6537, + "Y": 52.48105, + "Z": 114.5392 + } + }, + { + "Position": { + "X": -523.8553, + "Y": 58.91578, + "Z": 174.0902 + }, + "MinimumAngle": -185, + "MaximumAngle": 115 + }, + { + "Position": { + "X": -499.2416, + "Y": 54.9705, + "Z": 144.132 + } + } + ] + }, + { + "DataId": 32216, + "Locations": [ + { + "Position": { + "X": -510.2239, + "Y": 55.62017, + "Z": 137.6676 + } + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 32215, + "Locations": [ + { + "Position": { + "X": -498.1188, + "Y": 57.86262, + "Z": 230.4597 + } + }, + { + "Position": { + "X": -513.0305, + "Y": 56.18323, + "Z": 239.2122 + }, + "MinimumAngle": -35, + "MaximumAngle": 235 + }, + { + "Position": { + "X": -506.6473, + "Y": 56.30998, + "Z": 258.2175 + } + } + ] + }, + { + "DataId": 32214, + "Locations": [ + { + "Position": { + "X": -509.9459, + "Y": 56.21313, + "Z": 252.2773 + } + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 32213, + "Locations": [ + { + "Position": { + "X": -391.9599, + "Y": 50.21202, + "Z": 184.0853 + } + }, + { + "Position": { + "X": -419.9665, + "Y": 48.34329, + "Z": 125.2942 + } + } + ] + }, + { + "DataId": 32212, + "Locations": [ + { + "Position": { + "X": -391.2807, + "Y": 47.10617, + "Z": 153.422 + } + } + ] + } + ] + } + ] +} diff --git a/GatheringPaths/4.x - Stormblood/The Fringes/513_Dimwold_BTN.json b/GatheringPaths/4.x - Stormblood/The Fringes/513_Dimwold_BTN.json new file mode 100644 index 00000000..9386a44c --- /dev/null +++ b/GatheringPaths/4.x - Stormblood/The Fringes/513_Dimwold_BTN.json @@ -0,0 +1,131 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/GatheringPaths/gatheringlocation-v1.json", + "Author": "liza", + "TerritoryId": 612, + "AetheryteShortcut": "Fringes - Castrum Oriens", + "Groups": [ + { + "Nodes": [ + { + "DataId": 32236, + "Locations": [ + { + "Position": { + "X": -590.3985, + "Y": 37.74836, + "Z": 392.8004 + }, + "MinimumAngle": 60, + "MaximumAngle": 260 + } + ] + }, + { + "DataId": 32237, + "Locations": [ + { + "Position": { + "X": -713.7814, + "Y": 51.18425, + "Z": 365.8188 + }, + "MinimumAngle": 145, + "MaximumAngle": 275 + }, + { + "Position": { + "X": -674.6958, + "Y": 44.06395, + "Z": 347.5866 + }, + "MinimumAngle": -70, + "MaximumAngle": 75 + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 32239, + "Locations": [ + { + "Position": { + "X": -625.3124, + "Y": 36.73846, + "Z": 442.5669 + }, + "MinimumAngle": 140, + "MaximumAngle": 235 + }, + { + "Position": { + "X": -655.4194, + "Y": 40.51354, + "Z": 402.2708 + }, + "MinimumAngle": -95, + "MaximumAngle": 60 + } + ] + }, + { + "DataId": 32238, + "Locations": [ + { + "Position": { + "X": -628.1135, + "Y": 36.66908, + "Z": 480.3016 + }, + "MinimumAngle": 85, + "MaximumAngle": 250 + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 32240, + "Locations": [ + { + "Position": { + "X": -575.3094, + "Y": 36.61243, + "Z": 500.9136 + }, + "MinimumAngle": 15, + "MaximumAngle": 180 + } + ] + }, + { + "DataId": 32241, + "Locations": [ + { + "Position": { + "X": -560.735, + "Y": 37.00333, + "Z": 439.5417 + }, + "MinimumAngle": -15, + "MaximumAngle": 95 + }, + { + "Position": { + "X": -586.5652, + "Y": 37.77999, + "Z": 459.6001 + }, + "MinimumAngle": 40, + "MaximumAngle": 200 + } + ] + } + ] + } + ] +} diff --git a/GatheringPaths/4.x - Stormblood/The Lochs/493_The High Bank_MIN.json b/GatheringPaths/4.x - Stormblood/The Lochs/493_The High Bank_MIN.json new file mode 100644 index 00000000..4d75f62e --- /dev/null +++ b/GatheringPaths/4.x - Stormblood/The Lochs/493_The High Bank_MIN.json @@ -0,0 +1,158 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/GatheringPaths/gatheringlocation-v1.json", + "Author": "liza", + "TerritoryId": 621, + "AetheryteShortcut": "Lochs - Porta Praetoria", + "Groups": [ + { + "Nodes": [ + { + "DataId": 32167, + "Locations": [ + { + "Position": { + "X": -569.6677, + "Y": 17.29578, + "Z": -148.952 + }, + "MinimumAngle": 175, + "MaximumAngle": 300 + }, + { + "Position": { + "X": -575.41, + "Y": 18.57019, + "Z": -160.1905 + }, + "MinimumAngle": -90, + "MaximumAngle": 15 + }, + { + "Position": { + "X": -569.3643, + "Y": 15.97435, + "Z": -170.2152 + }, + "MinimumAngle": 225, + "MaximumAngle": 350 + } + ] + }, + { + "DataId": 32166, + "Locations": [ + { + "Position": { + "X": -578.1491, + "Y": 20.07928, + "Z": -153.1853 + }, + "MinimumAngle": 205, + "MaximumAngle": 355 + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 32170, + "Locations": [ + { + "Position": { + "X": -542.444, + "Y": 15.60992, + "Z": -299.645 + }, + "MinimumAngle": 245, + "MaximumAngle": 360 + } + ] + }, + { + "DataId": 32171, + "Locations": [ + { + "Position": { + "X": -540.2715, + "Y": 16.96567, + "Z": -304.0383 + }, + "MinimumAngle": 220, + "MaximumAngle": 350 + }, + { + "Position": { + "X": -516.496, + "Y": 21.84032, + "Z": -346.177 + }, + "MinimumAngle": -55, + "MaximumAngle": 75 + }, + { + "Position": { + "X": -507.6519, + "Y": 9.185992, + "Z": -287.0281 + }, + "MinimumAngle": 30, + "MaximumAngle": 160 + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 32168, + "Locations": [ + { + "Position": { + "X": -404.0753, + "Y": 14.02301, + "Z": -270.8308 + }, + "MinimumAngle": 195, + "MaximumAngle": 315 + } + ] + }, + { + "DataId": 32169, + "Locations": [ + { + "Position": { + "X": -393.6106, + "Y": 13.93396, + "Z": -262.3799 + }, + "MinimumAngle": 15, + "MaximumAngle": 130 + }, + { + "Position": { + "X": -406.0579, + "Y": 12.16138, + "Z": -255.3292 + }, + "MinimumAngle": -145, + "MaximumAngle": 20 + }, + { + "Position": { + "X": -394.2554, + "Y": 13.38954, + "Z": -275.8168 + }, + "MinimumAngle": 60, + "MaximumAngle": 135 + } + ] + } + ] + } + ] +} diff --git a/GatheringPaths/4.x - Stormblood/The Lochs/514_Abalathia's Skull_BTN.json b/GatheringPaths/4.x - Stormblood/The Lochs/514_Abalathia's Skull_BTN.json new file mode 100644 index 00000000..46299430 --- /dev/null +++ b/GatheringPaths/4.x - Stormblood/The Lochs/514_Abalathia's Skull_BTN.json @@ -0,0 +1,158 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/GatheringPaths/gatheringlocation-v1.json", + "Author": "liza", + "TerritoryId": 621, + "AetheryteShortcut": "Lochs - Ala Mhigan Quarter", + "Groups": [ + { + "Nodes": [ + { + "DataId": 32245, + "Locations": [ + { + "Position": { + "X": 333.1211, + "Y": 20.88004, + "Z": -522.5363 + }, + "MinimumAngle": 160, + "MaximumAngle": 335 + }, + { + "Position": { + "X": 338.3687, + "Y": 21.54188, + "Z": -512.1134 + }, + "MinimumAngle": 120, + "MaximumAngle": 275 + }, + { + "Position": { + "X": 374.9138, + "Y": 25.00688, + "Z": -515.2723 + }, + "MinimumAngle": -85, + "MaximumAngle": 90 + } + ] + }, + { + "DataId": 32244, + "Locations": [ + { + "Position": { + "X": 368.5785, + "Y": 24.38493, + "Z": -507.3824 + }, + "MinimumAngle": 65, + "MaximumAngle": 240 + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 32243, + "Locations": [ + { + "Position": { + "X": 426.1108, + "Y": 25.12664, + "Z": -607.2003 + }, + "MinimumAngle": -20, + "MaximumAngle": 145 + }, + { + "Position": { + "X": 400.1029, + "Y": 25.21572, + "Z": -648.0899 + }, + "MinimumAngle": 190, + "MaximumAngle": 325 + }, + { + "Position": { + "X": 463.1597, + "Y": 24.9486, + "Z": -602.0026 + }, + "MinimumAngle": 0, + "MaximumAngle": 150 + } + ] + }, + { + "DataId": 32242, + "Locations": [ + { + "Position": { + "X": 396.3124, + "Y": 25.41136, + "Z": -663.1417 + }, + "MinimumAngle": 20, + "MaximumAngle": 205 + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 32247, + "Locations": [ + { + "Position": { + "X": 274.2476, + "Y": 18.49642, + "Z": -627.4052 + }, + "MinimumAngle": -95, + "MaximumAngle": 100 + }, + { + "Position": { + "X": 248.6237, + "Y": 10.63078, + "Z": -592.5243 + }, + "MinimumAngle": -145, + "MaximumAngle": 35 + }, + { + "Position": { + "X": 259.3484, + "Y": 11.24844, + "Z": -586.5854 + }, + "MinimumAngle": -120, + "MaximumAngle": 45 + } + ] + }, + { + "DataId": 32246, + "Locations": [ + { + "Position": { + "X": 266.4147, + "Y": 18.26739, + "Z": -620.2316 + }, + "MinimumAngle": 135, + "MaximumAngle": 305 + } + ] + } + ] + } + ] +} diff --git a/GatheringPaths/4.x - Stormblood/The Peaks/489_Rustrock_MIN.json b/GatheringPaths/4.x - Stormblood/The Peaks/489_Rustrock_MIN.json new file mode 100644 index 00000000..c2172a4d --- /dev/null +++ b/GatheringPaths/4.x - Stormblood/The Peaks/489_Rustrock_MIN.json @@ -0,0 +1,158 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/GatheringPaths/gatheringlocation-v1.json", + "Author": "liza", + "TerritoryId": 620, + "AetheryteShortcut": "Peaks - Ala Gannha", + "Groups": [ + { + "Nodes": [ + { + "DataId": 32147, + "Locations": [ + { + "Position": { + "X": 112.743, + "Y": 115.1324, + "Z": -511.142 + }, + "MinimumAngle": -165, + "MaximumAngle": -20 + } + ] + }, + { + "DataId": 32148, + "Locations": [ + { + "Position": { + "X": 101.6789, + "Y": 114.9711, + "Z": -506.4506 + }, + "MinimumAngle": 20, + "MaximumAngle": 225 + }, + { + "Position": { + "X": 122.53, + "Y": 116.4095, + "Z": -533.6536 + }, + "MinimumAngle": -80, + "MaximumAngle": 75 + }, + { + "Position": { + "X": 108.0162, + "Y": 115.2875, + "Z": -509.5858 + }, + "MinimumAngle": -20, + "MaximumAngle": 110 + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 32152, + "Locations": [ + { + "Position": { + "X": -6.542124, + "Y": 113.9997, + "Z": -406.9197 + }, + "MinimumAngle": 80, + "MaximumAngle": 150 + }, + { + "Position": { + "X": -4.06374, + "Y": 113.4698, + "Z": -413.3034 + }, + "MinimumAngle": 80, + "MaximumAngle": 200 + }, + { + "Position": { + "X": -13.96204, + "Y": 113.9696, + "Z": -383.4135 + }, + "MinimumAngle": 45, + "MaximumAngle": 160 + } + ] + }, + { + "DataId": 32151, + "Locations": [ + { + "Position": { + "X": -11.21539, + "Y": 114.1222, + "Z": -392.7825 + }, + "MinimumAngle": 70, + "MaximumAngle": 165 + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 32149, + "Locations": [ + { + "Position": { + "X": 167.207, + "Y": 137.3464, + "Z": -336.0433 + }, + "MinimumAngle": 85, + "MaximumAngle": 225 + } + ] + }, + { + "DataId": 32150, + "Locations": [ + { + "Position": { + "X": 176.9339, + "Y": 138.3656, + "Z": -335.729 + }, + "MinimumAngle": 115, + "MaximumAngle": 220 + }, + { + "Position": { + "X": 182.5719, + "Y": 138.795, + "Z": -333.3691 + }, + "MinimumAngle": 195, + "MaximumAngle": 290 + }, + { + "Position": { + "X": 198.0379, + "Y": 136.6125, + "Z": -337.0126 + }, + "MinimumAngle": 60, + "MaximumAngle": 160 + } + ] + } + ] + } + ] +} diff --git a/GatheringPaths/4.x - Stormblood/The Peaks/512_The Last Forest_BTN.json b/GatheringPaths/4.x - Stormblood/The Peaks/512_The Last Forest_BTN.json new file mode 100644 index 00000000..95642b76 --- /dev/null +++ b/GatheringPaths/4.x - Stormblood/The Peaks/512_The Last Forest_BTN.json @@ -0,0 +1,140 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/GatheringPaths/gatheringlocation-v1.json", + "Author": "liza", + "TerritoryId": 620, + "AetheryteShortcut": "Peaks - Ala Gannha", + "Groups": [ + { + "Nodes": [ + { + "DataId": 32234, + "Locations": [ + { + "Position": { + "X": -381.2856, + "Y": 66.03626, + "Z": -548.9689 + } + } + ] + }, + { + "DataId": 32235, + "Locations": [ + { + "Position": { + "X": -421.8894, + "Y": 69.34563, + "Z": -520.4478 + } + }, + { + "Position": { + "X": -376.2228, + "Y": 66.67438, + "Z": -545.8188 + } + }, + { + "Position": { + "X": -355.3144, + "Y": 66.57961, + "Z": -545.7592 + } + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 32232, + "Locations": [ + { + "Position": { + "X": -517.0562, + "Y": 63.73144, + "Z": -477.6884 + } + } + ] + }, + { + "DataId": 32233, + "Locations": [ + { + "Position": { + "X": -550.7997, + "Y": 69.32131, + "Z": -449.5795 + }, + "MinimumAngle": 0, + "MaximumAngle": 230 + }, + { + "Position": { + "X": -507.8166, + "Y": 66.39982, + "Z": -470.319 + } + }, + { + "Position": { + "X": -494.5092, + "Y": 63.5919, + "Z": -497.5369 + } + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 32230, + "Locations": [ + { + "Position": { + "X": -402.3759, + "Y": 95.33111, + "Z": -371.9796 + }, + "MinimumAngle": -15, + "MaximumAngle": 230 + } + ] + }, + { + "DataId": 32231, + "Locations": [ + { + "Position": { + "X": -398.7086, + "Y": 95.14203, + "Z": -377.1731 + }, + "MinimumAngle": 30, + "MaximumAngle": 230 + }, + { + "Position": { + "X": -427.5446, + "Y": 90.42126, + "Z": -391.9806 + } + }, + { + "Position": { + "X": -398.5008, + "Y": 98.82507, + "Z": -351.0829 + } + } + ] + } + ] + } + ] +} diff --git a/GatheringPaths/4.x - Stormblood/The Peaks/531_Sleeping Stones_MIN.json b/GatheringPaths/4.x - Stormblood/The Peaks/531_Sleeping Stones_MIN.json new file mode 100644 index 00000000..10ec9162 --- /dev/null +++ b/GatheringPaths/4.x - Stormblood/The Peaks/531_Sleeping Stones_MIN.json @@ -0,0 +1,131 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/GatheringPaths/gatheringlocation-v1.json", + "Author": "liza", + "TerritoryId": 620, + "AetheryteShortcut": "Peaks - Ala Gannha", + "Groups": [ + { + "Nodes": [ + { + "DataId": 32286, + "Locations": [ + { + "Position": { + "X": 720.7598, + "Y": 247.8707, + "Z": -571.472 + }, + "MinimumAngle": 115, + "MaximumAngle": 235 + } + ] + }, + { + "DataId": 32287, + "Locations": [ + { + "Position": { + "X": 749.6198, + "Y": 250.0555, + "Z": -569.6151 + }, + "MinimumAngle": 160, + "MaximumAngle": 280 + }, + { + "Position": { + "X": 700.801, + "Y": 248.3289, + "Z": -569.3172 + }, + "MinimumAngle": 185, + "MaximumAngle": 275 + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 32285, + "Locations": [ + { + "Position": { + "X": 792.5579, + "Y": 257.8186, + "Z": -661.4872 + }, + "MinimumAngle": 80, + "MaximumAngle": 155 + }, + { + "Position": { + "X": 773.1775, + "Y": 253.9753, + "Z": -671.3119 + }, + "MinimumAngle": -80, + "MaximumAngle": -5 + } + ] + }, + { + "DataId": 32284, + "Locations": [ + { + "Position": { + "X": 788.1879, + "Y": 257.4255, + "Z": -669.3115 + }, + "MinimumAngle": -65, + "MaximumAngle": 5 + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 32289, + "Locations": [ + { + "Position": { + "X": 846.4332, + "Y": 262.9354, + "Z": -500.6171 + }, + "MinimumAngle": 40, + "MaximumAngle": 155 + }, + { + "Position": { + "X": 838.9346, + "Y": 262.0732, + "Z": -527.0631 + }, + "MinimumAngle": 60, + "MaximumAngle": 145 + } + ] + }, + { + "DataId": 32288, + "Locations": [ + { + "Position": { + "X": 845.8228, + "Y": 263.8849, + "Z": -511.0472 + }, + "MinimumAngle": -30, + "MaximumAngle": 60 + } + ] + } + ] + } + ] +} diff --git a/GatheringPaths/4.x - Stormblood/The Peaks/532_The Last Forest_BTN.json b/GatheringPaths/4.x - Stormblood/The Peaks/532_The Last Forest_BTN.json new file mode 100644 index 00000000..35f11b14 --- /dev/null +++ b/GatheringPaths/4.x - Stormblood/The Peaks/532_The Last Forest_BTN.json @@ -0,0 +1,113 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/GatheringPaths/gatheringlocation-v1.json", + "Author": "liza", + "TerritoryId": 620, + "AetheryteShortcut": "Peaks - Ala Gannha", + "Groups": [ + { + "Nodes": [ + { + "DataId": 32292, + "Locations": [ + { + "Position": { + "X": -276.0765, + "Y": 74.99889, + "Z": -751.7645 + } + } + ] + }, + { + "DataId": 32293, + "Locations": [ + { + "Position": { + "X": -291.6779, + "Y": 75.03039, + "Z": -740.0215 + } + }, + { + "Position": { + "X": -309.4909, + "Y": 74.66329, + "Z": -746.8633 + } + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 32290, + "Locations": [ + { + "Position": { + "X": -377.3709, + "Y": 59.22021, + "Z": -721.5839 + } + } + ] + }, + { + "DataId": 32291, + "Locations": [ + { + "Position": { + "X": -385.6718, + "Y": 59.15918, + "Z": -741.5427 + } + }, + { + "Position": { + "X": -409.1402, + "Y": 56.75652, + "Z": -746.273 + } + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 32295, + "Locations": [ + { + "Position": { + "X": -456.0745, + "Y": 57.47042, + "Z": -804.0213 + } + }, + { + "Position": { + "X": -455.9548, + "Y": 57.93848, + "Z": -785.8549 + } + } + ] + }, + { + "DataId": 32294, + "Locations": [ + { + "Position": { + "X": -472.6482, + "Y": 57.45007, + "Z": -798.8556 + } + } + ] + } + ] + } + ] +} diff --git a/GatheringPaths/4.x - Stormblood/The Ruby Sea/487_Hells' Lid_MIN.json b/GatheringPaths/4.x - Stormblood/The Ruby Sea/487_Hells' Lid_MIN.json index 47a321d2..9649c3b7 100644 --- a/GatheringPaths/4.x - Stormblood/The Ruby Sea/487_Hells' Lid_MIN.json +++ b/GatheringPaths/4.x - Stormblood/The Ruby Sea/487_Hells' Lid_MIN.json @@ -2,7 +2,11 @@ "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/GatheringPaths/gatheringlocation-v1.json", "Author": "liza", "TerritoryId": 613, - "AetheryteShortcut": "Ruby Sea - Onokoro", + "AetheryteShortcut": "Kugane", + "AethernetShortcut": [ + "[Kugane] Aetheryte Plaza", + "[Kugane] The Ruby Price" + ], "Groups": [ { "Nodes": [ @@ -103,6 +107,56 @@ ] } ] + }, + { + "Nodes": [ + { + "DataId": 32137, + "Locations": [ + { + "Position": { + "X": 136.1673, + "Y": 35.7457, + "Z": 802.5483 + }, + "MinimumAngle": 175, + "MaximumAngle": 300 + } + ] + }, + { + "DataId": 32138, + "Locations": [ + { + "Position": { + "X": 120.3011, + "Y": 33.62519, + "Z": 797.1313 + }, + "MinimumAngle": 100, + "MaximumAngle": 215 + }, + { + "Position": { + "X": 137.5746, + "Y": 35.89635, + "Z": 805.4796 + }, + "MinimumAngle": 195, + "MaximumAngle": 325 + }, + { + "Position": { + "X": 136.7552, + "Y": 38.41375, + "Z": 817.2667 + }, + "MinimumAngle": 215, + "MaximumAngle": 325 + } + ] + } + ] } ] } diff --git a/GatheringPaths/4.x - Stormblood/The Ruby Sea/533_The Turquoise Trench_MIN.json b/GatheringPaths/4.x - Stormblood/The Ruby Sea/533_The Turquoise Trench_MIN.json new file mode 100644 index 00000000..7134c24b --- /dev/null +++ b/GatheringPaths/4.x - Stormblood/The Ruby Sea/533_The Turquoise Trench_MIN.json @@ -0,0 +1,135 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/GatheringPaths/gatheringlocation-v1.json", + "Author": "liza", + "TerritoryId": 613, + "AetheryteShortcut": "Kugane", + "AethernetShortcut": [ + "[Kugane] Aetheryte Plaza", + "[Kugane] The Ruby Price" + ], + "Groups": [ + { + "Nodes": [ + { + "DataId": 32296, + "Locations": [ + { + "Position": { + "X": -216.1387, + "Y": 0.6300181, + "Z": 616.7697 + }, + "MinimumAngle": 180, + "MaximumAngle": 265 + } + ] + }, + { + "DataId": 32297, + "Locations": [ + { + "Position": { + "X": -236.5302, + "Y": 0.503479, + "Z": 634.821 + }, + "MinimumAngle": 60, + "MaximumAngle": 150 + }, + { + "Position": { + "X": -242.0282, + "Y": 1.464991, + "Z": 649.7866 + }, + "MinimumAngle": -20, + "MaximumAngle": 70 + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 32298, + "Locations": [ + { + "Position": { + "X": -267.9128, + "Y": 0.6036554, + "Z": 722.319 + }, + "MinimumAngle": 230, + "MaximumAngle": 330 + } + ] + }, + { + "DataId": 32299, + "Locations": [ + { + "Position": { + "X": -275.2201, + "Y": 1.438162, + "Z": 727.0667 + }, + "MinimumAngle": 0, + "MaximumAngle": 105 + }, + { + "Position": { + "X": -277.8375, + "Y": 2.060616, + "Z": 721.6605 + }, + "MinimumAngle": 20, + "MaximumAngle": 85 + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 32300, + "Locations": [ + { + "Position": { + "X": -148.4246, + "Y": 11.42871, + "Z": 776.8299 + }, + "MinimumAngle": 105, + "MaximumAngle": 240 + } + ] + }, + { + "DataId": 32301, + "Locations": [ + { + "Position": { + "X": -135.4789, + "Y": 11.61927, + "Z": 765.4382 + }, + "MinimumAngle": 45, + "MaximumAngle": 155 + }, + { + "Position": { + "X": -169.3294, + "Y": 11.36792, + "Z": 784.0237 + }, + "MinimumAngle": 85, + "MaximumAngle": 210 + } + ] + } + ] + } + ] +} diff --git a/GatheringPaths/4.x - Stormblood/The Ruby Sea/534_The Isle of Bekko_BTN.json b/GatheringPaths/4.x - Stormblood/The Ruby Sea/534_The Isle of Bekko_BTN.json new file mode 100644 index 00000000..9844919b --- /dev/null +++ b/GatheringPaths/4.x - Stormblood/The Ruby Sea/534_The Isle of Bekko_BTN.json @@ -0,0 +1,115 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/GatheringPaths/gatheringlocation-v1.json", + "Author": "liza", + "TerritoryId": 613, + "AetheryteShortcut": "Ruby Sea - Tamamizu", + "Groups": [ + { + "Nodes": [ + { + "DataId": 32302, + "Locations": [ + { + "Position": { + "X": 831.4452, + "Y": 48.62377, + "Z": -131.4108 + } + } + ] + }, + { + "DataId": 32303, + "Locations": [ + { + "Position": { + "X": 865.9036, + "Y": 46.76892, + "Z": -129.9611 + } + }, + { + "Position": { + "X": 822.6691, + "Y": 48.57434, + "Z": -130.6889 + } + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 32305, + "Locations": [ + { + "Position": { + "X": 780.787, + "Y": 51.3394, + "Z": -265.6496 + } + }, + { + "Position": { + "X": 824.1245, + "Y": 40.93994, + "Z": -250.4464 + } + } + ] + }, + { + "DataId": 32304, + "Locations": [ + { + "Position": { + "X": 816.6475, + "Y": 41.2146, + "Z": -263.6606 + } + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 32306, + "Locations": [ + { + "Position": { + "X": 648.2073, + "Y": 75.29906, + "Z": -226.7926 + }, + "MinimumAngle": 25, + "MaximumAngle": 290 + } + ] + }, + { + "DataId": 32307, + "Locations": [ + { + "Position": { + "X": 652.0435, + "Y": 71.82505, + "Z": -241.2778 + } + }, + { + "Position": { + "X": 645.0362, + "Y": 69.79202, + "Z": -255.1373 + } + } + ] + } + ] + } + ] +} diff --git a/GatheringPaths/4.x - Stormblood/Yanxia/488_The Gensui Chain_MIN.json b/GatheringPaths/4.x - Stormblood/Yanxia/488_The Gensui Chain_MIN.json new file mode 100644 index 00000000..6e63e7c7 --- /dev/null +++ b/GatheringPaths/4.x - Stormblood/Yanxia/488_The Gensui Chain_MIN.json @@ -0,0 +1,156 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/GatheringPaths/gatheringlocation-v1.json", + "Author": "liza", + "TerritoryId": 614, + "AetheryteShortcut": "Yanxia - Namai", + "Groups": [ + { + "Nodes": [ + { + "DataId": 32144, + "Locations": [ + { + "Position": { + "X": 407.4102, + "Y": 68.66914, + "Z": 19.0117 + }, + "MinimumAngle": 105, + "MaximumAngle": 255 + }, + { + "Position": { + "X": 376.4243, + "Y": 61.81466, + "Z": 5.657309 + }, + "MinimumAngle": 170, + "MaximumAngle": 275 + }, + { + "Position": { + "X": 441.2355, + "Y": 75.06916, + "Z": 17.49573 + }, + "MinimumAngle": 110, + "MaximumAngle": 235 + } + ] + }, + { + "DataId": 32143, + "Locations": [ + { + "Position": { + "X": 417.9466, + "Y": 70.24178, + "Z": 19.50875 + }, + "MinimumAngle": 120, + "MaximumAngle": 240 + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 32142, + "Locations": [ + { + "Position": { + "X": 606.259, + "Y": 93.63981, + "Z": 85.09741 + }, + "MinimumAngle": 65, + "MaximumAngle": 185 + }, + { + "Position": { + "X": 594.0188, + "Y": 87.54358, + "Z": 51.05505 + } + }, + { + "Position": { + "X": 576.0488, + "Y": 91.74075, + "Z": 114.4922 + }, + "MinimumAngle": 75, + "MaximumAngle": 165 + } + ] + }, + { + "DataId": 32141, + "Locations": [ + { + "Position": { + "X": 608.4475, + "Y": 94.5528, + "Z": 80.633 + }, + "MinimumAngle": 45, + "MaximumAngle": 135 + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 32146, + "Locations": [ + { + "Position": { + "X": 519.749, + "Y": 46.5653, + "Z": -59.9632 + }, + "MinimumAngle": 25, + "MaximumAngle": 125 + }, + { + "Position": { + "X": 532.2807, + "Y": 41.75984, + "Z": -85.99076 + }, + "MinimumAngle": 55, + "MaximumAngle": 190 + }, + { + "Position": { + "X": 519.0377, + "Y": 44.42293, + "Z": -67.19048 + }, + "MinimumAngle": 30, + "MaximumAngle": 175 + } + ] + }, + { + "DataId": 32145, + "Locations": [ + { + "Position": { + "X": 520.0951, + "Y": 43.35083, + "Z": -70.45672 + }, + "MinimumAngle": 40, + "MaximumAngle": 145 + } + ] + } + ] + } + ] +} diff --git a/GatheringPaths/4.x - Stormblood/Yanxia/491_Unseen Spirits Laughing_MIN.json b/GatheringPaths/4.x - Stormblood/Yanxia/491_Unseen Spirits Laughing_MIN.json new file mode 100644 index 00000000..a832d569 --- /dev/null +++ b/GatheringPaths/4.x - Stormblood/Yanxia/491_Unseen Spirits Laughing_MIN.json @@ -0,0 +1,158 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/GatheringPaths/gatheringlocation-v1.json", + "Author": "liza", + "TerritoryId": 614, + "AetheryteShortcut": "Yanxia - Namai", + "Groups": [ + { + "Nodes": [ + { + "DataId": 32160, + "Locations": [ + { + "Position": { + "X": 708.6117, + "Y": 111.2374, + "Z": -117.7716 + }, + "MinimumAngle": -65, + "MaximumAngle": 45 + }, + { + "Position": { + "X": 719.1514, + "Y": 103.8884, + "Z": -115.8518 + }, + "MinimumAngle": 170, + "MaximumAngle": 240 + }, + { + "Position": { + "X": 719.6881, + "Y": 103.6927, + "Z": -122.8691 + }, + "MinimumAngle": -85, + "MaximumAngle": 15 + } + ] + }, + { + "DataId": 32159, + "Locations": [ + { + "Position": { + "X": 728.5063, + "Y": 104.6812, + "Z": -115.4031 + }, + "MinimumAngle": 160, + "MaximumAngle": 260 + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 32162, + "Locations": [ + { + "Position": { + "X": 786.5566, + "Y": 127.8859, + "Z": 12.83276 + }, + "MinimumAngle": 200, + "MaximumAngle": 280 + }, + { + "Position": { + "X": 843.5591, + "Y": 136.583, + "Z": 25.3552 + }, + "MinimumAngle": 150, + "MaximumAngle": 205 + }, + { + "Position": { + "X": 822.8708, + "Y": 132.8188, + "Z": 15.71949 + }, + "MinimumAngle": 120, + "MaximumAngle": 220 + } + ] + }, + { + "DataId": 32161, + "Locations": [ + { + "Position": { + "X": 814.1754, + "Y": 132.0118, + "Z": 22.69431 + }, + "MinimumAngle": 70, + "MaximumAngle": 175 + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 32163, + "Locations": [ + { + "Position": { + "X": 893.1265, + "Y": 141.6431, + "Z": -143.2574 + }, + "MinimumAngle": 25, + "MaximumAngle": 140 + } + ] + }, + { + "DataId": 32164, + "Locations": [ + { + "Position": { + "X": 885.5841, + "Y": 139.7701, + "Z": -160.253 + }, + "MinimumAngle": 35, + "MaximumAngle": 110 + }, + { + "Position": { + "X": 894.9779, + "Y": 147.4415, + "Z": -128.2257 + }, + "MinimumAngle": 20, + "MaximumAngle": 190 + }, + { + "Position": { + "X": 893.0733, + "Y": 142.1001, + "Z": -140.2642 + }, + "MinimumAngle": 30, + "MaximumAngle": 155 + } + ] + } + ] + } + ] +} diff --git a/GatheringPaths/4.x - Stormblood/Yanxia/508_The Heron's Flight_BTN.json b/GatheringPaths/4.x - Stormblood/Yanxia/508_The Heron's Flight_BTN.json new file mode 100644 index 00000000..6c13febf --- /dev/null +++ b/GatheringPaths/4.x - Stormblood/Yanxia/508_The Heron's Flight_BTN.json @@ -0,0 +1,147 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/GatheringPaths/gatheringlocation-v1.json", + "Author": "liza", + "TerritoryId": 614, + "AetheryteShortcut": "Yanxia - Namai", + "Groups": [ + { + "Nodes": [ + { + "DataId": 32209, + "Locations": [ + { + "Position": { + "X": 631.2573, + "Y": 127.0901, + "Z": -332.0291 + }, + "MinimumAngle": 155, + "MaximumAngle": 300 + }, + { + "Position": { + "X": 622.622, + "Y": 131.7365, + "Z": -383.0027 + } + }, + { + "Position": { + "X": 652.4154, + "Y": 136.6543, + "Z": -419.1716 + }, + "MinimumAngle": -25, + "MaximumAngle": 140 + } + ] + }, + { + "DataId": 32208, + "Locations": [ + { + "Position": { + "X": 629.0482, + "Y": 138.9971, + "Z": -423.2108 + }, + "MinimumAngle": 240, + "MaximumAngle": 360 + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 32207, + "Locations": [ + { + "Position": { + "X": 708.5831, + "Y": 127.3671, + "Z": -351.2474 + }, + "MinimumAngle": 0, + "MaximumAngle": 100 + }, + { + "Position": { + "X": 684.129, + "Y": 126.6719, + "Z": -335.2414 + }, + "MinimumAngle": 80, + "MaximumAngle": 235 + } + ] + }, + { + "DataId": 32206, + "Locations": [ + { + "Position": { + "X": 705.5267, + "Y": 125.35, + "Z": -370.0978 + }, + "MinimumAngle": -35, + "MaximumAngle": 105 + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 32210, + "Locations": [ + { + "Position": { + "X": 791.947, + "Y": 101.7719, + "Z": -288.1637 + }, + "MinimumAngle": 0, + "MaximumAngle": 155 + } + ] + }, + { + "DataId": 32211, + "Locations": [ + { + "Position": { + "X": 788.803, + "Y": 103.5642, + "Z": -240.686 + }, + "MinimumAngle": 75, + "MaximumAngle": 270 + }, + { + "Position": { + "X": 809.0134, + "Y": 110.9159, + "Z": -306.1294 + }, + "MinimumAngle": 120, + "MaximumAngle": 255 + }, + { + "Position": { + "X": 760.2955, + "Y": 98.77714, + "Z": -209.9551 + }, + "MinimumAngle": 0, + "MaximumAngle": 115 + } + ] + } + ] + } + ] +} diff --git a/GatheringPaths/5.x - Shadowbringers/.gitkeep b/GatheringPaths/5.x - Shadowbringers/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/GatheringPaths/5.x - Shadowbringers/Kholusia/649_Stonegazer_BTN.json b/GatheringPaths/5.x - Shadowbringers/Kholusia/649_Stonegazer_BTN.json new file mode 100644 index 00000000..677ec374 --- /dev/null +++ b/GatheringPaths/5.x - Shadowbringers/Kholusia/649_Stonegazer_BTN.json @@ -0,0 +1,129 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/GatheringPaths/gatheringlocation-v1.json", + "Author": "liza", + "TerritoryId": 814, + "AetheryteShortcut": "Kholusia - Wright", + "Groups": [ + { + "Nodes": [ + { + "DataId": 32816, + "Locations": [ + { + "Position": { + "X": -210.0211, + "Y": 27.87489, + "Z": 244.1517 + } + }, + { + "Position": { + "X": -184.2966, + "Y": 33.53575, + "Z": 220.416 + }, + "MinimumAngle": -70, + "MaximumAngle": 100 + } + ] + }, + { + "DataId": 32815, + "Locations": [ + { + "Position": { + "X": -194.756, + "Y": 30.00866, + "Z": 235.5003 + }, + "MinimumAngle": 85, + "MaximumAngle": 290 + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 32819, + "Locations": [ + { + "Position": { + "X": -184.1455, + "Y": 44.3671, + "Z": 162.0892 + }, + "MinimumAngle": -90, + "MaximumAngle": 100 + } + ] + }, + { + "DataId": 32820, + "Locations": [ + { + "Position": { + "X": -164.9459, + "Y": 43.40527, + "Z": 153.1118 + }, + "MinimumAngle": -100, + "MaximumAngle": 75 + }, + { + "Position": { + "X": -167.3752, + "Y": 47.25292, + "Z": 136.0359 + }, + "MinimumAngle": -105, + "MaximumAngle": 105 + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 32818, + "Locations": [ + { + "Position": { + "X": -246.385, + "Y": 72.55199, + "Z": 90.56253 + }, + "MinimumAngle": -85, + "MaximumAngle": 80 + }, + { + "Position": { + "X": -208.7709, + "Y": 77.46264, + "Z": 68.17573 + }, + "MinimumAngle": -105, + "MaximumAngle": 90 + } + ] + }, + { + "DataId": 32817, + "Locations": [ + { + "Position": { + "X": -243.0861, + "Y": 79.1743, + "Z": 75.10091 + }, + "MinimumAngle": -120, + "MaximumAngle": 95 + } + ] + } + ] + } + ] +} diff --git a/GatheringPaths/5.x - Shadowbringers/Kholusia/650_Shadow Fault_MIN.json b/GatheringPaths/5.x - Shadowbringers/Kholusia/650_Shadow Fault_MIN.json new file mode 100644 index 00000000..83fc6092 --- /dev/null +++ b/GatheringPaths/5.x - Shadowbringers/Kholusia/650_Shadow Fault_MIN.json @@ -0,0 +1,131 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/GatheringPaths/gatheringlocation-v1.json", + "Author": "liza", + "TerritoryId": 814, + "AetheryteShortcut": "Kholusia - Wright", + "Groups": [ + { + "Nodes": [ + { + "DataId": 32825, + "Locations": [ + { + "Position": { + "X": -482.4797, + "Y": 39.54587, + "Z": 243.9857 + }, + "MinimumAngle": -95, + "MaximumAngle": 30 + } + ] + }, + { + "DataId": 32826, + "Locations": [ + { + "Position": { + "X": -479.1443, + "Y": 39.79183, + "Z": 240.7795 + }, + "MinimumAngle": -75, + "MaximumAngle": 15 + }, + { + "Position": { + "X": -486.3334, + "Y": 39.4147, + "Z": 246.6178 + }, + "MinimumAngle": -105, + "MaximumAngle": 35 + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 32824, + "Locations": [ + { + "Position": { + "X": -591.8113, + "Y": 26.1771, + "Z": 413.057 + }, + "MinimumAngle": 165, + "MaximumAngle": 265 + }, + { + "Position": { + "X": -583.5104, + "Y": 26.20471, + "Z": 419.7504 + }, + "MinimumAngle": 180, + "MaximumAngle": 280 + } + ] + }, + { + "DataId": 32823, + "Locations": [ + { + "Position": { + "X": -587.8331, + "Y": 26.20816, + "Z": 416.5177 + }, + "MinimumAngle": 155, + "MaximumAngle": 250 + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 32821, + "Locations": [ + { + "Position": { + "X": -667.9664, + "Y": 24.58142, + "Z": 365.2537 + }, + "MinimumAngle": 165, + "MaximumAngle": 240 + } + ] + }, + { + "DataId": 32822, + "Locations": [ + { + "Position": { + "X": -672.0605, + "Y": 24.69111, + "Z": 363.4729 + }, + "MinimumAngle": 115, + "MaximumAngle": 215 + }, + { + "Position": { + "X": -663.9247, + "Y": 24.84755, + "Z": 366.6812 + }, + "MinimumAngle": 170, + "MaximumAngle": 310 + } + ] + } + ] + } + ] +} diff --git a/GatheringPaths/gatheringlocation-v1.json b/GatheringPaths/gatheringlocation-v1.json index 5c71b876..baac742c 100644 --- a/GatheringPaths/gatheringlocation-v1.json +++ b/GatheringPaths/gatheringlocation-v1.json @@ -25,6 +25,15 @@ "AetheryteShortcut": { "$ref": "https://git.carvel.li/liza/Questionable/raw/branch/master/Questionable.Model/common-schema.json#/$defs/Aetheryte" }, + "AethernetShortcut": { + "type": "array", + "description": "A pair of aethernet locations (from + to) to use as a shortcut", + "minItems": 2, + "maxItems": 2, + "items": { + "$ref": "https://git.carvel.li/liza/Questionable/raw/branch/master/Questionable.Model/common-schema.json#/$defs/AethernetShard" + } + }, "Groups": { "type": "array", "items": { diff --git a/LLib b/LLib index 8d947be6..9db9f95b 160000 --- a/LLib +++ b/LLib @@ -1 +1 @@ -Subproject commit 8d947be6784804a7cab120d596dd54e88e548efc +Subproject commit 9db9f95b8cd3f36262b5b4b14f12b7331d3c7279 diff --git a/QuestPathGenerator/GatheringSourceGenerator.cs b/QuestPathGenerator/GatheringSourceGenerator.cs index 4995c3e4..b2177b25 100644 --- a/QuestPathGenerator/GatheringSourceGenerator.cs +++ b/QuestPathGenerator/GatheringSourceGenerator.cs @@ -153,6 +153,7 @@ public class GatheringSourceGenerator : ISourceGenerator Assignment(nameof(GatheringRoot.TerritoryId), root.TerritoryId, default) .AsSyntaxNodeOrToken(), Assignment(nameof(GatheringRoot.AetheryteShortcut), root.AetheryteShortcut, null), + Assignment(nameof(GatheringRoot.AethernetShortcut), root.AethernetShortcut, null), AssignmentList(nameof(GatheringRoot.Groups), root.Groups).AsSyntaxNodeOrToken())))); } catch (Exception e) diff --git a/Questionable.Model/Questing/AethernetShortcut.cs b/Questionable.Model/Common/AethernetShortcut.cs similarity index 79% rename from Questionable.Model/Questing/AethernetShortcut.cs rename to Questionable.Model/Common/AethernetShortcut.cs index 3d046c44..f5aaab5b 100644 --- a/Questionable.Model/Questing/AethernetShortcut.cs +++ b/Questionable.Model/Common/AethernetShortcut.cs @@ -1,8 +1,7 @@ using System.Text.Json.Serialization; -using Questionable.Model.Common; using Questionable.Model.Questing.Converter; -namespace Questionable.Model.Questing; +namespace Questionable.Model.Common; [JsonConverter(typeof(AethernetShortcutConverter))] public sealed class AethernetShortcut diff --git a/Questionable.Model/Gathering/GatheringRoot.cs b/Questionable.Model/Gathering/GatheringRoot.cs index 5670482e..9011f562 100644 --- a/Questionable.Model/Gathering/GatheringRoot.cs +++ b/Questionable.Model/Gathering/GatheringRoot.cs @@ -2,6 +2,7 @@ using System.Text.Json.Serialization; using Questionable.Model.Common; using Questionable.Model.Common.Converter; +using Questionable.Model.Questing.Converter; namespace Questionable.Model.Gathering; @@ -14,5 +15,6 @@ public sealed class GatheringRoot [JsonConverter(typeof(AetheryteConverter))] public EAetheryteLocation? AetheryteShortcut { get; set; } + public AethernetShortcut? AethernetShortcut { get; set; } public List Groups { get; set; } = []; } diff --git a/Questionable/Controller/ContextMenuController.cs b/Questionable/Controller/ContextMenuController.cs index 13c5e03f..e4f7e329 100644 --- a/Questionable/Controller/ContextMenuController.cs +++ b/Questionable/Controller/ContextMenuController.cs @@ -4,8 +4,11 @@ using Dalamud.Game.Gui.ContextMenu; using Dalamud.Game.Text; using Dalamud.Plugin.Services; using FFXIVClientStructs.FFXIV.Client.Game; +using FFXIVClientStructs.FFXIV.Client.UI.Agent; +using LLib.GameData; using Microsoft.Extensions.Logging; using Questionable.Data; +using Questionable.GameStructs; using Questionable.Model; using Questionable.Model.Questing; @@ -59,7 +62,7 @@ internal sealed class ContextMenuController : IDisposable if (itemId >= 500_000) itemId -= 500_000; - if (!_gatheringData.TryGetGatheringPointId(itemId, _clientState.LocalPlayer!.ClassJob.Id, out _)) + if (!_gatheringData.TryGetGatheringPointId(itemId, (EClassJob)_clientState.LocalPlayer!.ClassJob.Id, out _)) { _logger.LogInformation("No gathering point found for current job."); return; @@ -72,12 +75,23 @@ internal sealed class ContextMenuController : IDisposable if (collectability == 0) return; + unsafe + { + var agentSatisfactionSupply = AgentSatisfactionSupply.Instance(); + if (agentSatisfactionSupply->IsAgentActive()) + { + quantityToGather = Math.Min(agentSatisfactionSupply->RemainingAllowances, + ((AgentSatisfactionSupply2*)agentSatisfactionSupply)->TurnInsToNextRank); + } + } + args.AddMenuItem(new MenuItem { Prefix = SeIconChar.Hyadelyn, PrefixColor = 52, Name = "Gather with Questionable", OnClicked = _ => StartGathering(npcId, itemId, quantityToGather, collectability), + IsEnabled = quantityToGather > 0, }); } } @@ -97,7 +111,7 @@ internal sealed class ContextMenuController : IDisposable Collectability = collectability } ]; - _questController.SetNextQuest(quest); + _questController.SetGatheringQuest(quest); _questController.ExecuteNextStep(QuestController.EAutomationType.CurrentQuestOnly); } else diff --git a/Questionable/Controller/QuestController.cs b/Questionable/Controller/QuestController.cs index c953b851..cde68ae2 100644 --- a/Questionable/Controller/QuestController.cs +++ b/Questionable/Controller/QuestController.cs @@ -33,6 +33,7 @@ internal sealed class QuestController : MiniTaskController private QuestProgress? _startedQuest; private QuestProgress? _nextQuest; private QuestProgress? _simulatedQuest; + private QuestProgress? _gatheringQuest; private EAutomationType _automationType; /// @@ -79,6 +80,8 @@ internal sealed class QuestController : MiniTaskController return (_simulatedQuest, ECurrentQuestType.Simulated); else if (_nextQuest != null && _gameFunctions.IsReadyToAcceptQuest(_nextQuest.Quest.Id)) return (_nextQuest, ECurrentQuestType.Next); + else if (_gatheringQuest != null) + return (_gatheringQuest, ECurrentQuestType.Gathering); else if (_startedQuest != null) return (_startedQuest, ECurrentQuestType.Normal); else @@ -91,6 +94,7 @@ internal sealed class QuestController : MiniTaskController public QuestProgress? StartedQuest => _startedQuest; public QuestProgress? SimulatedQuest => _simulatedQuest; public QuestProgress? NextQuest => _nextQuest; + public QuestProgress? GatheringQuest => _gatheringQuest; public string? DebugState { get; private set; } @@ -102,6 +106,7 @@ internal sealed class QuestController : MiniTaskController _startedQuest = null; _nextQuest = null; + _gatheringQuest = null; _simulatedQuest = null; _safeAnimationEnd = DateTime.MinValue; @@ -212,6 +217,17 @@ internal sealed class QuestController : MiniTaskController _automationType == EAutomationType.Automatic) ExecuteNextStep(_automationType); } + else if (_gatheringQuest != null) + { + questToRun = _gatheringQuest; + currentSequence = _gatheringQuest.Sequence; + if (_gatheringQuest.Step == 0 && + _currentTask == null && + _taskQueue.Count == 0 && + _automationType == EAutomationType.Automatic) + ExecuteNextStep(_automationType); + + } else { (ElementId? currentQuestId, currentSequence) = _gameFunctions.GetCurrentQuest(); @@ -404,6 +420,7 @@ internal sealed class QuestController : MiniTaskController _logger.LogInformation("Stopping automatic questing"); _automationType = EAutomationType.Manual; _nextQuest = null; + _gatheringQuest = null; } } @@ -427,6 +444,15 @@ internal sealed class QuestController : MiniTaskController _nextQuest = null; } + public void SetGatheringQuest(Quest? quest) + { + _logger.LogInformation("GatheringQuest: {QuestId}", quest?.Id); + if (quest != null) + _gatheringQuest = new QuestProgress(quest); + else + _gatheringQuest = null; + } + protected override void UpdateCurrentTask() { if (_gameFunctions.IsOccupied()) @@ -460,10 +486,11 @@ internal sealed class QuestController : MiniTaskController if (CurrentQuestDetails?.Progress.Quest.Id is SatisfactionSupplyNpcId && CurrentQuestDetails?.Progress.Sequence == 0 && CurrentQuestDetails?.Progress.Step == 255 && - CurrentQuestDetails?.Type == ECurrentQuestType.Next) + CurrentQuestDetails?.Type == ECurrentQuestType.Gathering) { _logger.LogInformation("Completed delivery quest"); - SetNextQuest(null); + SetGatheringQuest(null); + Stop("Gathering quest complete"); } else { @@ -650,6 +677,7 @@ internal sealed class QuestController : MiniTaskController { Normal, Next, + Gathering, Simulated, } diff --git a/Questionable/Controller/Steps/Gathering/DoGatherCollectable.cs b/Questionable/Controller/Steps/Gathering/DoGatherCollectable.cs index eb41094c..2590f7cf 100644 --- a/Questionable/Controller/Steps/Gathering/DoGatherCollectable.cs +++ b/Questionable/Controller/Steps/Gathering/DoGatherCollectable.cs @@ -2,6 +2,7 @@ using Dalamud.Game.Text; using Dalamud.Plugin.Services; using FFXIVClientStructs.FFXIV.Component.GUI; +using LLib.GameData; using LLib.GameUI; using Microsoft.Extensions.Logging; using Questionable.Model.Gathering; @@ -138,7 +139,7 @@ internal sealed class DoGatherCollectable( private EAction PickAction(EAction minerAction, EAction botanistAction) { - if (clientState.LocalPlayer?.ClassJob.Id == 16) + if ((EClassJob?)clientState.LocalPlayer?.ClassJob.Id == EClassJob.Miner) return minerAction; else return botanistAction; diff --git a/Questionable/Controller/Steps/Gathering/MoveToLandingLocation.cs b/Questionable/Controller/Steps/Gathering/MoveToLandingLocation.cs index 5f6a2844..46cc268c 100644 --- a/Questionable/Controller/Steps/Gathering/MoveToLandingLocation.cs +++ b/Questionable/Controller/Steps/Gathering/MoveToLandingLocation.cs @@ -2,14 +2,12 @@ using System.Globalization; using System.Linq; using System.Numerics; -using System.Security.Cryptography; using Dalamud.Game.ClientState.Objects.Enums; using Dalamud.Plugin.Services; using GatheringPathRenderer; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; using Questionable.Controller.Steps.Shared; -using Questionable.External; using Questionable.Model.Gathering; namespace Questionable.Controller.Steps.Gathering; @@ -18,7 +16,6 @@ internal sealed class MoveToLandingLocation( IServiceProvider serviceProvider, GameFunctions gameFunctions, IObjectTable objectTable, - NavmeshIpc navmeshIpc, ILogger logger) : ITask { private ushort _territoryId; @@ -50,25 +47,8 @@ internal sealed class MoveToLandingLocation( target.ToString("G", CultureInfo.InvariantCulture), degrees, range); bool fly = gameFunctions.IsFlyingUnlocked(_territoryId); - Vector3? pointOnFloor = navmeshIpc.GetPointOnFloor(target with { Y = target.Y + 5f }, false); - if (pointOnFloor != null) - pointOnFloor = pointOnFloor.Value with { Y = pointOnFloor.Value.Y + (fly ? 0.5f : 0f) }; - - // since we only allow points that can be landed on, the distance is important but the angle shouldn't matter - if (pointOnFloor != null && Vector3.Distance(pointOnFloor.Value, location.Position) > - location.CalculateMaximumDistance()) - { - pointOnFloor = location.Position + Vector3.Normalize(pointOnFloor.Value - location.Position) * location.CalculateMaximumDistance(); - logger.LogInformation("Adjusted landing location: {Location}", pointOnFloor.Value.ToString("G", CultureInfo.InvariantCulture)); } - else - { - logger.LogInformation("Final landing location: {Location}", - (pointOnFloor ?? target).ToString("G", CultureInfo.InvariantCulture)); - } - - _moveTask = serviceProvider.GetRequiredService() - .With(_territoryId, pointOnFloor ?? target, 0.25f, dataId: _gatheringNode.DataId, fly: fly, + .With(_territoryId, target, 0.25f, dataId: _gatheringNode.DataId, fly: fly, ignoreDistanceToObject: true); return _moveTask.Start(); } diff --git a/Questionable/Controller/Steps/Shared/AethernetShortcut.cs b/Questionable/Controller/Steps/Shared/AethernetShortcut.cs index a66e7c0f..d8d33cfb 100644 --- a/Questionable/Controller/Steps/Shared/AethernetShortcut.cs +++ b/Questionable/Controller/Steps/Shared/AethernetShortcut.cs @@ -45,7 +45,7 @@ internal static class AethernetShortcut public SkipAetheryteCondition SkipConditions { get; set; } = null!; public ITask With(EAetheryteLocation from, EAetheryteLocation to, - SkipAetheryteCondition? skipConditions) + SkipAetheryteCondition? skipConditions = null) { From = from; To = to; diff --git a/Questionable/Controller/Steps/Shared/GatheringRequiredItems.cs b/Questionable/Controller/Steps/Shared/GatheringRequiredItems.cs index a2428a8d..df213a33 100644 --- a/Questionable/Controller/Steps/Shared/GatheringRequiredItems.cs +++ b/Questionable/Controller/Steps/Shared/GatheringRequiredItems.cs @@ -3,10 +3,10 @@ using System.Collections.Generic; using Dalamud.Game.Text; using Dalamud.Plugin.Services; using FFXIVClientStructs.FFXIV.Client.Game; +using LLib.GameData; using Microsoft.Extensions.DependencyInjection; using Questionable.Controller.Steps.Common; using Questionable.Data; -using Questionable.External; using Questionable.GatheringPaths; using Questionable.Model; using Questionable.Model.Gathering; @@ -21,14 +21,15 @@ internal static class GatheringRequiredItems MovementController movementController, IClientState clientState, GatheringData gatheringData, - TerritoryData territoryData) : ITaskFactory + TerritoryData territoryData, + AetheryteData aetheryteData) : ITaskFactory { public IEnumerable CreateAllTasks(Quest quest, QuestSequence sequence, QuestStep step) { foreach (var requiredGatheredItems in step.RequiredGatheredItems) { if (!gatheringData.TryGetGatheringPointId(requiredGatheredItems.ItemId, - clientState.LocalPlayer!.ClassJob.Id, out var gatheringPointId)) + (EClassJob)clientState.LocalPlayer!.ClassJob.Id, out var gatheringPointId)) throw new TaskException($"No gathering point found for item {requiredGatheredItems.ItemId}"); if (!AssemblyGatheringLocationLoader.GetLocations() @@ -40,8 +41,18 @@ internal static class GatheringRequiredItems if (gatheringRoot.AetheryteShortcut != null && clientState.TerritoryType != gatheringRoot.TerritoryId) { + ushort expectedTerritoryId = gatheringRoot.TerritoryId; + if (gatheringRoot.AethernetShortcut != null) + expectedTerritoryId = aetheryteData.TerritoryIds[gatheringRoot.AethernetShortcut.From]; + yield return serviceProvider.GetRequiredService() - .With(null, gatheringRoot.AetheryteShortcut.Value, gatheringRoot.TerritoryId); + .With(null, gatheringRoot.AetheryteShortcut.Value, expectedTerritoryId); + } + + if (gatheringRoot.AethernetShortcut != null) + { + yield return serviceProvider.GetRequiredService() + .With(gatheringRoot.AethernetShortcut.From, gatheringRoot.AethernetShortcut.To); } yield return new WaitConditionTask(() => clientState.TerritoryType == gatheringRoot.TerritoryId, diff --git a/Questionable/Data/GatheringData.cs b/Questionable/Data/GatheringData.cs index 5877a1a3..e1f6f2c5 100644 --- a/Questionable/Data/GatheringData.cs +++ b/Questionable/Data/GatheringData.cs @@ -1,6 +1,7 @@ using System.Collections.Generic; using System.Linq; using Dalamud.Plugin.Services; +using LLib.GameData; using Lumina.Excel.GeneratedSheets; using Microsoft.Extensions.Logging; @@ -58,11 +59,11 @@ internal sealed class GatheringData .ToDictionary(x => x.ItemId, x => x.NpcId); } - public bool TryGetGatheringPointId(uint itemId, uint classJobId, out ushort gatheringPointId) + public bool TryGetGatheringPointId(uint itemId, EClassJob classJobId, out ushort gatheringPointId) { - if (classJobId == 16) + if (classJobId == EClassJob.Miner) return _minerGatheringPoints.TryGetValue(itemId, out gatheringPointId); - else if (classJobId == 17) + else if (classJobId == EClassJob.Botanist) return _botanistGatheringPoints.TryGetValue(itemId, out gatheringPointId); else { diff --git a/Questionable/GameStructs/AgentSatisfactionSupply2.cs b/Questionable/GameStructs/AgentSatisfactionSupply2.cs new file mode 100644 index 00000000..70573fa5 --- /dev/null +++ b/Questionable/GameStructs/AgentSatisfactionSupply2.cs @@ -0,0 +1,28 @@ +using System.Runtime.InteropServices; + +namespace Questionable.GameStructs; + +[StructLayout(LayoutKind.Explicit, Size = 0x500)] +internal struct AgentSatisfactionSupply2 +{ + /// + /// at 4/5 hearts + /// 3 deliveries: 540 / 1080 + /// 4 deliveries: 720 / 1080 + /// 5 deliveries: 900 / 1080 + /// 5 hearts: 0 / 0 + /// + [FieldOffset(0x70)] public ushort CurrentSatisfaction; + [FieldOffset(0x72)] public ushort MaxSatisfaction; + + public int TurnInsToNextRank + { + get + { + if (MaxSatisfaction == 0) + return 6; + + return 6 * (MaxSatisfaction - CurrentSatisfaction) / MaxSatisfaction; + } + } +} diff --git a/Questionable/Questionable.csproj b/Questionable/Questionable.csproj index 1e9d92fa..bc466645 100644 --- a/Questionable/Questionable.csproj +++ b/Questionable/Questionable.csproj @@ -1,6 +1,6 @@  - 2.0 + 2.1 dist $(SolutionDir)=X:\ x64 diff --git a/Questionable/Validation/Validators/AethernetShortcutValidator.cs b/Questionable/Validation/Validators/AethernetShortcutValidator.cs index af380f8a..037ba3f4 100644 --- a/Questionable/Validation/Validators/AethernetShortcutValidator.cs +++ b/Questionable/Validation/Validators/AethernetShortcutValidator.cs @@ -2,6 +2,7 @@ using System.Linq; using Questionable.Data; using Questionable.Model; +using Questionable.Model.Common; using Questionable.Model.Questing; namespace Questionable.Validation.Validators;