Rough Update for Labyrinthos2 up to Alzadaals Legacy + remaining EW Aethercurrent...
authorLiza Carvelli <liza@carvel.li>
Wed, 29 May 2024 19:22:58 +0000 (21:22 +0200)
committerLiza Carvelli <liza@carvel.li>
Wed, 29 May 2024 19:22:58 +0000 (21:22 +0200)
50 files changed:
Questionable.sln.DotSettings [new file with mode: 0644]
Questionable/Controller/QuestController.cs
Questionable/GameFunctions.cs
Questionable/Model/V1/AethernetShortcut.cs
Questionable/Model/V1/Converter/AetheryteConverter.cs
Questionable/Model/V1/Converter/EmoteConverter.cs
Questionable/Model/V1/Converter/EnemySpawnTypeConverter.cs
Questionable/Model/V1/Converter/EnumConverter.cs [new file with mode: 0644]
Questionable/Model/V1/Converter/InteractionTypeConverter.cs
Questionable/Model/V1/Converter/SkipConditionConverter.cs [new file with mode: 0644]
Questionable/Model/V1/EAetheryteLocation.cs
Questionable/Model/V1/EEmote.cs
Questionable/Model/V1/EEnemySpawnType.cs
Questionable/Model/V1/EInteractionType.cs
Questionable/Model/V1/ESkipCondition.cs [new file with mode: 0644]
Questionable/Model/V1/QuestStep.cs
Questionable/QuestPaths/Endwalker/AetherCurrents/Labyrinthos/4320_Gleaners Wish.json [new file with mode: 0644]
Questionable/QuestPaths/Endwalker/AetherCurrents/Labyrinthos/4329_Let the Good Times Troll.json [new file with mode: 0644]
Questionable/QuestPaths/Endwalker/AetherCurrents/Labyrinthos/4480_Lost Little Troll.json [new file with mode: 0644]
Questionable/QuestPaths/Endwalker/AetherCurrents/Labyrinthos/4484_The Lad in Labyrinthos.json [new file with mode: 0644]
Questionable/QuestPaths/Endwalker/AetherCurrents/Mare Lamentorum/4240_True Carrot Crimes.json [new file with mode: 0644]
Questionable/QuestPaths/Endwalker/AetherCurrents/Mare Lamentorum/4241_Carrots Its Whats for Dinner.json [new file with mode: 0644]
Questionable/QuestPaths/Endwalker/AetherCurrents/Mare Lamentorum/4253_Alluring Allag.json [new file with mode: 0644]
Questionable/QuestPaths/Endwalker/AetherCurrents/Mare Lamentorum/4516_Name That Way.json [new file with mode: 0644]
Questionable/QuestPaths/Endwalker/AetherCurrents/Ultima Thule/4342_Ending as One.json [new file with mode: 0644]
Questionable/QuestPaths/Endwalker/AetherCurrents/Ultima Thule/4346_A Most Stimulating Discussion.json [new file with mode: 0644]
Questionable/QuestPaths/Endwalker/AetherCurrents/Ultima Thule/4354_Combat Evolved.json [new file with mode: 0644]
Questionable/QuestPaths/Endwalker/MSQ/F-Labyrinthos2/4442_No Job Too Small.json
Questionable/QuestPaths/Endwalker/MSQ/F-Labyrinthos2/4447_Once Forged.json
Questionable/QuestPaths/Endwalker/MSQ/F-Labyrinthos2/4448_Bonds of Adamantite.json
Questionable/QuestPaths/Endwalker/MSQ/F-Labyrinthos2/4449_Her Children One and All.json
Questionable/QuestPaths/Endwalker/MSQ/G-UltimaThule/4450_A Bold Decision.json
Questionable/QuestPaths/Endwalker/MSQ/G-UltimaThule/4451_Friends Gathered.json
Questionable/QuestPaths/Endwalker/MSQ/G-UltimaThule/4452_Unto the Heavens.json
Questionable/QuestPaths/Endwalker/MSQ/G-UltimaThule/4453_A Strange New World.json
Questionable/QuestPaths/Endwalker/MSQ/G-UltimaThule/4454_On Burdened Wings.json
Questionable/QuestPaths/Endwalker/MSQ/G-UltimaThule/4455_A Test of Will.json
Questionable/QuestPaths/Endwalker/MSQ/G-UltimaThule/4456_Roads Paved of Sacrifice.json
Questionable/QuestPaths/Endwalker/MSQ/G-UltimaThule/4457_Flesh Abandoned.json
Questionable/QuestPaths/Endwalker/MSQ/G-UltimaThule/4458_Where Knowledge Leads.json
Questionable/QuestPaths/Endwalker/MSQ/G-UltimaThule/4459_Victory x Lost.json
Questionable/QuestPaths/Endwalker/MSQ/G-UltimaThule/4460_x.json
Questionable/QuestPaths/Endwalker/MSQ/G-UltimaThule/4461_Hello World.json
Questionable/QuestPaths/Endwalker/MSQ/G-UltimaThule/4462_Forge Ahead.json
Questionable/QuestPaths/Endwalker/MSQ/G-UltimaThule/4463_Youre Not Alone.json
Questionable/QuestPaths/Endwalker/MSQ/G-UltimaThule/4464_Endwalker.json
Questionable/QuestPaths/Endwalker/MSQ/H-6.1/4527_Bountiful Ruins.json
Questionable/QuestPaths/Endwalker/MSQ/H-6.1/4528_Friends for the Road.json
Questionable/QuestSchema/schema_v1.json
Questionable/Windows/DebugWindow.cs

diff --git a/Questionable.sln.DotSettings b/Questionable.sln.DotSettings
new file mode 100644 (file)
index 0000000..381b586
--- /dev/null
@@ -0,0 +1,2 @@
+<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
+       <s:Boolean x:Key="/Default/Environment/AutoImport2/=CSHARP/BlackLists/=Newtonsoft_002E_002A/@EntryIndexedValue">True</s:Boolean></wpf:ResourceDictionary>
\ No newline at end of file
index 50698b423b09259b5aad795d14b1f92d70173b27..001ac1804a2883ebb2dd868d1f7a13a8dae425fb 100644 (file)
@@ -264,6 +264,13 @@ internal sealed class QuestController
             return;
 
         Debug.Assert(CurrentQuest != null, nameof(CurrentQuest) + " != null");
+        if (step.Disabled)
+        {
+            _pluginLog.Information("Skipping step, as it is disabled");
+            IncreaseStepCount();
+            return;
+        }
+
         if (!CurrentQuest.StepProgress.AetheryteShortcutUsed && step.AetheryteShortcut != null)
         {
             bool skipTeleport = false;
@@ -308,6 +315,13 @@ internal sealed class QuestController
             }
         }
 
+        if (step.SkipIf.Contains(ESkipCondition.FlyingUnlocked) && _gameFunctions.IsFlyingUnlocked(step.TerritoryId))
+        {
+            _pluginLog.Information("Skipping step, as flying is unlocked");
+            IncreaseStepCount();
+            return;
+        }
+
         if (!CurrentQuest.StepProgress.AethernetShortcutUsed)
         {
             if (step.AethernetShortcut != null &&
@@ -357,7 +371,8 @@ internal sealed class QuestController
 
             if (step.Mount == true && !_gameFunctions.HasStatusPreventingSprintOrMount())
             {
-                if (!_condition[ConditionFlag.Mounted] && _territoryData.CanUseMount(_clientState.TerritoryType))
+                if (!_condition[ConditionFlag.Mounted] && !_condition[ConditionFlag.InCombat] &&
+                    _territoryData.CanUseMount(_clientState.TerritoryType))
                 {
                     if (ActionManager.Instance()->GetActionStatus(ActionType.Mount, 71) == 0)
                         ActionManager.Instance()->UseAction(ActionType.Mount, 71);
@@ -376,7 +391,7 @@ internal sealed class QuestController
             if (!step.DisableNavmesh)
             {
                 if (step.Mount != false && actualDistance > 30f && !_condition[ConditionFlag.Mounted] &&
-                    _territoryData.CanUseMount(_clientState.TerritoryType) &&
+                    !_condition[ConditionFlag.InCombat] && _territoryData.CanUseMount(_clientState.TerritoryType) &&
                     !_gameFunctions.HasStatusPreventingSprintOrMount())
                 {
                     if (ActionManager.Instance()->GetActionStatus(ActionType.Mount, 71) == 0)
index 31670dc965c93a3b421f98a9b540e9b55659d929..eb96ce8dd7d5e9fe524e60745ccc7fac7c93b8c3 100644 (file)
@@ -393,7 +393,7 @@ internal sealed unsafe class GameFunctions
         {
             var battleChara = (BattleChara*)gameObject;
             StatusManager* statusManager = battleChara->GetStatusManager;
-            return statusManager->HasStatus(565) || statusManager->HasStatus(404);
+            return statusManager->HasStatus(565) || statusManager->HasStatus(404) || statusManager->HasStatus(2730);
         }
 
         return false;
index f605809e7d67c4961327765c3798330c6acde8ba..40514b5873ed135f3916e1143dd89c159d02e8a9 100644 (file)
@@ -1,6 +1,10 @@
-namespace Questionable.Model.V1;
+using System.Text.Json.Serialization;
+using Questionable.Model.V1.Converter;
 
-public class AethernetShortcut
+namespace Questionable.Model.V1;
+
+[JsonConverter(typeof(AethernetShortcutConverter))]
+public sealed class AethernetShortcut
 {
     public EAetheryteLocation From { get; set; }
     public EAetheryteLocation To { get; set; }
index 6c8eb384f19a1cb633ced69b8216d2820289a03d..55a30e5e01d1b5010fa7fa151198c4d8d7bf8d1f 100644 (file)
@@ -1,14 +1,10 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text.Json;
-using System.Text.Json.Serialization;
+using System.Collections.Generic;
 
 namespace Questionable.Model.V1.Converter;
 
-public sealed class AetheryteConverter : JsonConverter<EAetheryteLocation>
+public sealed class AetheryteConverter() : EnumConverter<EAetheryteLocation>(Values)
 {
-    private static readonly Dictionary<EAetheryteLocation, string> EnumToString = new()
+    private static readonly Dictionary<EAetheryteLocation, string> Values = new()
     {
         { EAetheryteLocation.Limsa, "Limsa Lominsa" },
         { EAetheryteLocation.Gridania, "Gridania" },
@@ -67,29 +63,7 @@ public sealed class AetheryteConverter : JsonConverter<EAetheryteLocation>
         { EAetheryteLocation.ElpisTwelveWonders, "Elpis - Twelve Wonders" },
         { EAetheryteLocation.ElpisPoietenOikos, "Elpis - Poieten Oikos" },
         { EAetheryteLocation.UltimaThuleReahTahra, "Ultima Thule - Reah Tahra" },
-        { EAetheryteLocation.UltimaThuleAbodeOfTheEa, "Ultima Thula - Abode of the Ea" },
+        { EAetheryteLocation.UltimaThuleAbodeOfTheEa, "Ultima Thule - Abode of the Ea" },
         { EAetheryteLocation.UltimaThuleBaseOmicron, "Ultima Thule - Base Omicron" }
     };
-
-    private static readonly Dictionary<string, EAetheryteLocation> StringToEnum =
-        EnumToString.ToDictionary(x => x.Value, x => x.Key);
-
-    public override EAetheryteLocation Read(ref Utf8JsonReader reader, Type typeToConvert,
-        JsonSerializerOptions options)
-    {
-        if (reader.TokenType != JsonTokenType.String)
-            throw new JsonException();
-
-        string? str = reader.GetString();
-        if (str == null)
-            throw new JsonException();
-
-        return StringToEnum.TryGetValue(str, out EAetheryteLocation value) ? value : throw new JsonException();
-    }
-
-    public override void Write(Utf8JsonWriter writer, EAetheryteLocation value, JsonSerializerOptions options)
-    {
-        ArgumentNullException.ThrowIfNull(writer);
-        writer.WriteStringValue(EnumToString[value]);
-    }
 }
index ce301049317e3b6039084727caf2c94fd8fd35bd..d903e09aa694461da957934a738e2f35c94a5941 100644 (file)
@@ -1,40 +1,16 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text.Json;
-using System.Text.Json.Serialization;
+using System.Collections.Generic;
 
 namespace Questionable.Model.V1.Converter;
 
-public class EmoteConverter : JsonConverter<EEmote>
+public sealed class EmoteConverter() : EnumConverter<EEmote>(Values)
 {
-    private static readonly Dictionary<EEmote, string> EnumToString = new()
+    private static readonly Dictionary<EEmote, string> Values = new()
     {
         { EEmote.Stretch, "stretch" },
         { EEmote.Wave, "wave" },
         { EEmote.Rally, "rally" },
         { EEmote.Deny, "deny" },
+        { EEmote.Pray, "pray" },
     };
 
-    private static readonly Dictionary<string, EEmote> StringToEnum =
-        EnumToString.ToDictionary(x => x.Value, x => x.Key);
-
-    public override EEmote Read(ref Utf8JsonReader reader, Type typeToConvert,
-        JsonSerializerOptions options)
-    {
-        if (reader.TokenType != JsonTokenType.String)
-            throw new JsonException();
-
-        string? str = reader.GetString();
-        if (str == null)
-            throw new JsonException();
-
-        return StringToEnum.TryGetValue(str, out EEmote value) ? value : throw new JsonException();
-    }
-
-    public override void Write(Utf8JsonWriter writer, EEmote value, JsonSerializerOptions options)
-    {
-        ArgumentNullException.ThrowIfNull(writer);
-        writer.WriteStringValue(EnumToString[value]);
-    }
 }
index 29578b685bd778025103283fe5ecdfabb2b26344..e78419622270df3260fb52d8f5526c1a4fd5e5fe 100644 (file)
@@ -1,38 +1,12 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text.Json;
-using System.Text.Json.Serialization;
+using System.Collections.Generic;
 
 namespace Questionable.Model.V1.Converter;
 
-public class EnemySpawnTypeConverter : JsonConverter<EEnemySpawnType>
+public sealed class EnemySpawnTypeConverter() : EnumConverter<EEnemySpawnType>(Values)
 {
-    private static readonly Dictionary<EEnemySpawnType, string> EnumToString = new()
+    private static readonly Dictionary<EEnemySpawnType, string> Values = new()
     {
         { EEnemySpawnType.AfterInteraction, "AfterInteraction" },
         { EEnemySpawnType.AutoOnEnterArea, "AutoOnEnterArea" },
     };
-
-    private static readonly Dictionary<string, EEnemySpawnType> StringToEnum =
-        EnumToString.ToDictionary(x => x.Value, x => x.Key);
-
-    public override EEnemySpawnType Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
-    {
-        if (reader.TokenType != JsonTokenType.String)
-            throw new JsonException();
-
-        string? str = reader.GetString();
-        if (str == null)
-            throw new JsonException();
-
-        return StringToEnum.TryGetValue(str, out EEnemySpawnType value) ? value : throw new JsonException();
-    }
-
-    public override void Write(Utf8JsonWriter writer, EEnemySpawnType value, JsonSerializerOptions options)
-    {
-        ArgumentNullException.ThrowIfNull(writer);
-        writer.WriteStringValue(EnumToString[value]);
-    }
-
 }
diff --git a/Questionable/Model/V1/Converter/EnumConverter.cs b/Questionable/Model/V1/Converter/EnumConverter.cs
new file mode 100644 (file)
index 0000000..cf70131
--- /dev/null
@@ -0,0 +1,43 @@
+using System;
+using System.Collections.Generic;
+using System.Collections.ObjectModel;
+using System.Linq;
+using System.Text.Json;
+using System.Text.Json.Serialization;
+
+namespace Questionable.Model.V1.Converter;
+
+public abstract class EnumConverter<T> : JsonConverter<T>
+    where T : Enum
+{
+    private readonly ReadOnlyDictionary<T, string> _enumToString;
+    private readonly ReadOnlyDictionary<string, T> _stringToEnum;
+
+    protected EnumConverter(IReadOnlyDictionary<T, string> values)
+    {
+        _enumToString = values is IDictionary<T, string> dict
+            ? new ReadOnlyDictionary<T, string>(dict)
+            : values.ToDictionary(x => x.Key, x => x.Value).AsReadOnly();
+        _stringToEnum = _enumToString.ToDictionary(x => x.Value, x => x.Key)
+            .AsReadOnly();
+    }
+
+    public override T? Read(ref Utf8JsonReader reader, Type typeToConvert,
+        JsonSerializerOptions options)
+    {
+        if (reader.TokenType != JsonTokenType.String)
+            throw new JsonException();
+
+        string? str = reader.GetString();
+        if (str == null)
+            throw new JsonException();
+
+        return _stringToEnum.TryGetValue(str, out T? value) ? value : throw new JsonException();
+    }
+
+    public override void Write(Utf8JsonWriter writer, T value, JsonSerializerOptions options)
+    {
+        ArgumentNullException.ThrowIfNull(writer);
+        writer.WriteStringValue(_enumToString[value]);
+    }
+}
index e6786e3c35190a01ce24f52400d28b584b0aec17..0778b86b3c61c1a5543d19b88d548c0e9b0652bb 100644 (file)
@@ -1,14 +1,10 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text.Json;
-using System.Text.Json.Serialization;
+using System.Collections.Generic;
 
 namespace Questionable.Model.V1.Converter;
 
-public sealed class InteractionTypeConverter : JsonConverter<EInteractionType>
+public sealed class InteractionTypeConverter() : EnumConverter<EInteractionType>(Values)
 {
-    private static readonly Dictionary<EInteractionType, string> EnumToString = new()
+    private static readonly Dictionary<EInteractionType, string> Values = new()
     {
         { EInteractionType.Interact, "Interact" },
         { EInteractionType.WalkTo, "WalkTo" },
@@ -22,25 +18,4 @@ public sealed class InteractionTypeConverter : JsonConverter<EInteractionType>
         { EInteractionType.WaitForObjectAtPosition, "WaitForNpcAtPosition" },
         { EInteractionType.ManualAction, "ManualAction" }
     };
-
-    private static readonly Dictionary<string, EInteractionType> StringToEnum =
-        EnumToString.ToDictionary(x => x.Value, x => x.Key);
-
-    public override EInteractionType Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
-    {
-        if (reader.TokenType != JsonTokenType.String)
-            throw new JsonException();
-
-        string? str = reader.GetString();
-        if (str == null)
-            throw new JsonException();
-
-        return StringToEnum.TryGetValue(str, out EInteractionType value) ? value : throw new JsonException();
-    }
-
-    public override void Write(Utf8JsonWriter writer, EInteractionType value, JsonSerializerOptions options)
-    {
-        ArgumentNullException.ThrowIfNull(writer);
-        writer.WriteStringValue(EnumToString[value]);
-    }
 }
diff --git a/Questionable/Model/V1/Converter/SkipConditionConverter.cs b/Questionable/Model/V1/Converter/SkipConditionConverter.cs
new file mode 100644 (file)
index 0000000..0d98e51
--- /dev/null
@@ -0,0 +1,11 @@
+using System.Collections.Generic;
+
+namespace Questionable.Model.V1.Converter;
+
+public sealed class SkipConditionConverter() : EnumConverter<ESkipCondition>(Values)
+{
+    private static readonly Dictionary<ESkipCondition, string> Values = new()
+    {
+        { ESkipCondition.FlyingUnlocked, "FlyingUnlocked" },
+    };
+}
index d7e2c6b4e3491d5775cfebee22f09791c715e119..a89e980f4e68e7bd4de257383d200d56148ccf17 100644 (file)
@@ -1,5 +1,9 @@
-namespace Questionable.Model.V1;
+using System.Text.Json.Serialization;
+using Questionable.Model.V1.Converter;
 
+namespace Questionable.Model.V1;
+
+[JsonConverter(typeof(AetheryteConverter))]
 public enum EAetheryteLocation
 {
     None = 0,
index 0d8f4a002e3c09e09cbfe80b9abc59d029ebfee4..dcdc11b1b4c8921ff2061f46762086aca4286840 100644 (file)
@@ -1,5 +1,9 @@
-namespace Questionable.Model.V1;
+using System.Text.Json.Serialization;
+using Questionable.Model.V1.Converter;
 
+namespace Questionable.Model.V1;
+
+[JsonConverter(typeof(EmoteConverter))]
 public enum EEmote
 {
     None = 0,
@@ -8,4 +12,5 @@ public enum EEmote
     Wave = 16,
     Rally = 34,
     Deny = 25,
+    Pray = 58,
 }
index c2c968d5d5ff0132b17f22ea506c8c86115211de..50f82b45d0632d354cbbd52b3bae37c3d0b180a9 100644 (file)
@@ -1,5 +1,9 @@
-namespace Questionable.Model.V1;
+using System.Text.Json.Serialization;
+using Questionable.Model.V1.Converter;
 
+namespace Questionable.Model.V1;
+
+[JsonConverter(typeof(EnemySpawnTypeConverter))]
 public enum EEnemySpawnType
 {
     None = 0,
index 9c9c8d386e7a5c370a999292748fc03f6a377cac..5e03db43682d33949e4e2172fb870c85042e7dc8 100644 (file)
@@ -1,5 +1,9 @@
-namespace Questionable.Model.V1;
+using System.Text.Json.Serialization;
+using Questionable.Model.V1.Converter;
 
+namespace Questionable.Model.V1;
+
+[JsonConverter(typeof(InteractionTypeConverter))]
 public enum EInteractionType
 {
     Interact,
diff --git a/Questionable/Model/V1/ESkipCondition.cs b/Questionable/Model/V1/ESkipCondition.cs
new file mode 100644 (file)
index 0000000..42b67ef
--- /dev/null
@@ -0,0 +1,11 @@
+using System.Text.Json.Serialization;
+using Questionable.Model.V1.Converter;
+
+namespace Questionable.Model.V1;
+
+[JsonConverter(typeof(SkipConditionConverter))]
+public enum ESkipCondition
+{
+    None,
+    FlyingUnlocked,
+}
index 404e6910cf08d1285a1d8b0af2198e79c1db5ddf..58a84226eb81564e2be31cae852bc29dc445bd40 100644 (file)
@@ -7,7 +7,6 @@ namespace Questionable.Model.V1;
 
 public class QuestStep
 {
-    [JsonConverter(typeof(InteractionTypeConverter))]
     public EInteractionType InteractionType { get; set; }
 
     public uint? DataId { get; set; }
@@ -25,22 +24,20 @@ public class QuestStep
     public bool Fly { get; set; }
     public string? Comment { get; set; }
 
-    [JsonConverter(typeof(AetheryteConverter))]
     public EAetheryteLocation? AetheryteShortcut { get; set; }
 
-    [JsonConverter(typeof(AethernetShortcutConverter))]
     public AethernetShortcut? AethernetShortcut { get; set; }
     public uint? AetherCurrentId { get; set; }
 
     public uint? ItemId { get; set; }
     public bool? GroundTarget { get; set; }
 
-    [JsonConverter(typeof(EmoteConverter))]
     public EEmote? Emote { get; set; }
-    public string ChatMessage { get; set; }
+    public string? ChatMessage { get; set; }
 
-    [JsonConverter(typeof(EnemySpawnTypeConverter))]
     public EEnemySpawnType? EnemySpawnType { get; set; }
 
-    public IList<uint>? KillEnemyDataIds { get; set; }
+    public IList<uint> KillEnemyDataIds { get; set; } = new List<uint>();
+
+    public IList<ESkipCondition> SkipIf { get; set; } = new List<ESkipCondition>();
 }
diff --git a/Questionable/QuestPaths/Endwalker/AetherCurrents/Labyrinthos/4320_Gleaners Wish.json b/Questionable/QuestPaths/Endwalker/AetherCurrents/Labyrinthos/4320_Gleaners Wish.json
new file mode 100644 (file)
index 0000000..ae137fd
--- /dev/null
@@ -0,0 +1,68 @@
+{
+  "Version": 1,
+  "Author": "liza",
+  "QuestSequence": [
+    {
+      "Sequence": 0,
+      "Steps": [
+        {
+          "DataId": 1041313,
+          "Position": {
+            "X": 89.28052,
+            "Y": -17.530382,
+            "Z": -74.906555
+          },
+          "TerritoryId": 956,
+          "InteractionType": "Interact"
+        }
+      ]
+    },
+    {
+      "Sequence": 1,
+      "Steps": [
+        {
+          "DataId": 1041314,
+          "Position": {
+            "X": 78.3855,
+            "Y": -29.79994,
+            "Z": 159.5636
+          },
+          "TerritoryId": 956,
+          "InteractionType": "Interact"
+        }
+      ]
+    },
+    {
+      "Sequence": 2,
+      "Steps": [
+        {
+          "DataId": 2012494,
+          "Position": {
+            "X": 78.96533,
+            "Y": -29.098999,
+            "Z": 161.02844
+          },
+          "StopDistance": 5,
+          "TerritoryId": 956,
+          "InteractionType": "Emote",
+          "Emote": "pray"
+        }
+      ]
+    },
+    {
+      "Sequence": 255,
+      "Steps": [
+        {
+          "DataId": 1041313,
+          "Position": {
+            "X": 89.28052,
+            "Y": -17.530382,
+            "Z": -74.906555
+          },
+          "TerritoryId": 956,
+          "InteractionType": "Interact"
+        }
+      ]
+    }
+  ]
+}
diff --git a/Questionable/QuestPaths/Endwalker/AetherCurrents/Labyrinthos/4329_Let the Good Times Troll.json b/Questionable/QuestPaths/Endwalker/AetherCurrents/Labyrinthos/4329_Let the Good Times Troll.json
new file mode 100644 (file)
index 0000000..bb4390e
--- /dev/null
@@ -0,0 +1,71 @@
+{
+  "Version": 1,
+  "Author": "liza",
+  "QuestSequence": [
+    {
+      "Sequence": 0,
+      "Steps": [
+        {
+          "DataId": 1041129,
+          "Position": {
+            "X": -23.575256,
+            "Y": -31.53021,
+            "Z": 1.8463135
+          },
+          "TerritoryId": 956,
+          "InteractionType": "Interact"
+        }
+      ]
+    },
+    {
+      "Sequence": 1,
+      "Steps": [
+        {
+          "Position": {
+            "X": 262.07907,
+            "Y": -18.527845,
+            "Z": 183.61182
+          },
+          "StopDistance": 1,
+          "TerritoryId": 956,
+          "InteractionType": "Combat",
+          "EnemySpawnType": "AutoOnEnterArea",
+          "KillEnemyDataIds": [
+            14123
+          ]
+        }
+      ]
+    },
+    {
+      "Sequence": 2,
+      "Steps": [
+        {
+          "DataId": 1041128,
+          "Position": {
+            "X": 263.1112,
+            "Y": -18.597479,
+            "Z": 185.99219
+          },
+          "StopDistance": 5,
+          "TerritoryId": 956,
+          "InteractionType": "Interact"
+        }
+      ]
+    },
+    {
+      "Sequence": 255,
+      "Steps": [
+        {
+          "DataId": 1041129,
+          "Position": {
+            "X": -23.575256,
+            "Y": -31.53021,
+            "Z": 1.8463135
+          },
+          "TerritoryId": 956,
+          "InteractionType": "Interact"
+        }
+      ]
+    }
+  ]
+}
diff --git a/Questionable/QuestPaths/Endwalker/AetherCurrents/Labyrinthos/4480_Lost Little Troll.json b/Questionable/QuestPaths/Endwalker/AetherCurrents/Labyrinthos/4480_Lost Little Troll.json
new file mode 100644 (file)
index 0000000..ff4153d
--- /dev/null
@@ -0,0 +1,118 @@
+{
+  "Version": 1,
+  "Author": "liza",
+  "QuestSequence": [
+    {
+      "Sequence": 0,
+      "Steps": [
+        {
+          "DataId": 1041667,
+          "Position": {
+            "X": 443.96118,
+            "Y": 65.162,
+            "Z": -105.4552
+          },
+          "TerritoryId": 956,
+          "InteractionType": "Interact"
+        }
+      ]
+    },
+    {
+      "Sequence": 1,
+      "Steps": [
+        {
+          "DataId": 2012725,
+          "Position": {
+            "X": 693.1715,
+            "Y": 99.01575,
+            "Z": 123.52173
+          },
+          "TerritoryId": 956,
+          "InteractionType": "Interact"
+        }
+      ]
+    },
+    {
+      "Sequence": 2,
+      "Steps": [
+        {
+          "DataId": 2012726,
+          "Position": {
+            "X": 806.79016,
+            "Y": 154.10083,
+            "Z": -149.64526
+          },
+          "TerritoryId": 956,
+          "InteractionType": "Interact"
+        }
+      ]
+    },
+    {
+      "Sequence": 3,
+      "Steps": [
+        {
+          "DataId": 1041681,
+          "Position": {
+            "X": 436.69788,
+            "Y": 166.19273,
+            "Z": -430.4723
+          },
+          "TerritoryId": 956,
+          "InteractionType": "Interact",
+          "AetheryteShortcut": "Labyrinthos - Archeion"
+        }
+      ]
+    },
+    {
+      "Sequence": 4,
+      "Steps": [
+        {
+          "DataId": 1041668,
+          "Position": {
+            "X": 394.12524,
+            "Y": 173.82095,
+            "Z": -646.75366
+          },
+          "TerritoryId": 956,
+          "InteractionType": "Interact"
+        }
+      ]
+    },
+    {
+      "Sequence": 5,
+      "Steps": [
+        {
+          "DataId": 1041670,
+          "Position": {
+            "X": 285.23682,
+            "Y": 185.65448,
+            "Z": -729.67114
+          },
+          "StopDistance": 1,
+          "TerritoryId": 956,
+          "InteractionType": "Combat",
+          "EnemySpawnType": "AfterInteraction",
+          "KillEnemyDataIds": [
+            14069
+          ]
+        }
+      ]
+    },
+    {
+      "Sequence": 255,
+      "Steps": [
+        {
+          "DataId": 1041670,
+          "Position": {
+            "X": 285.23682,
+            "Y": 185.65448,
+            "Z": -729.67114
+          },
+          "StopDistance": 5,
+          "TerritoryId": 956,
+          "InteractionType": "Interact"
+        }
+      ]
+    }
+  ]
+}
diff --git a/Questionable/QuestPaths/Endwalker/AetherCurrents/Labyrinthos/4484_The Lad in Labyrinthos.json b/Questionable/QuestPaths/Endwalker/AetherCurrents/Labyrinthos/4484_The Lad in Labyrinthos.json
new file mode 100644 (file)
index 0000000..84b3ed6
--- /dev/null
@@ -0,0 +1,51 @@
+{
+  "Version": 1,
+  "Author": "liza",
+  "QuestSequence": [
+    {
+      "Sequence": 0,
+      "Steps": [
+        {
+          "DataId": 1041683,
+          "Position": {
+            "X": -29.984009,
+            "Y": -31.53043,
+            "Z": -23.758362
+          },
+          "TerritoryId": 956,
+          "InteractionType": "Interact"
+        }
+      ]
+    },
+    {
+      "Sequence": 1,
+      "Steps": [
+        {
+          "DataId": 1041684,
+          "Position": {
+            "X": 50.43103,
+            "Y": -29.530062,
+            "Z": 27.115234
+          },
+          "TerritoryId": 956,
+          "InteractionType": "Interact"
+        }
+      ]
+    },
+    {
+      "Sequence": 255,
+      "Steps": [
+        {
+          "DataId": 1041685,
+          "Position": {
+            "X": 154.89429,
+            "Y": -17.530376,
+            "Z": -66.2395
+          },
+          "TerritoryId": 956,
+          "InteractionType": "Interact"
+        }
+      ]
+    }
+  ]
+}
diff --git a/Questionable/QuestPaths/Endwalker/AetherCurrents/Mare Lamentorum/4240_True Carrot Crimes.json b/Questionable/QuestPaths/Endwalker/AetherCurrents/Mare Lamentorum/4240_True Carrot Crimes.json
new file mode 100644 (file)
index 0000000..3b475c4
--- /dev/null
@@ -0,0 +1,77 @@
+{
+  "Version": 1,
+  "Author": "liza",
+  "QuestSequence": [
+    {
+      "Sequence": 0,
+      "Steps": [
+        {
+          "DataId": 1037867,
+          "Position": {
+            "X": -301.62512,
+            "Y": -144.00002,
+            "Z": -491.14215
+          },
+          "TerritoryId": 959,
+          "InteractionType": "Interact"
+        }
+      ]
+    },
+    {
+      "Sequence": 1,
+      "Steps": [
+        {
+          "DataId": 1041132,
+          "Position": {
+            "X": -558.1293,
+            "Y": -168,
+            "Z": -475.3338
+          },
+          "TerritoryId": 959,
+          "InteractionType": "Combat",
+          "EnemySpawnType": "AfterInteraction",
+          "KillEnemyDataIds": [
+            14053
+          ]
+        }
+      ]
+    },
+    {
+      "Sequence": 255,
+      "Steps": [
+        {
+          "Position": {
+            "X": -719.5691,
+            "Y": -152.90369,
+            "Z": -807.82135
+          },
+          "TerritoryId": 959,
+          "InteractionType": "ManualAction",
+          "Comment": "Navmesh can't jump (TODO this is super out of the way)"
+        },
+        {
+          "DataId": 2012018,
+          "Position": {
+            "X": -733.63855,
+            "Y": -139.6659,
+            "Z": -733.30286
+          },
+          "TerritoryId": 959,
+          "InteractionType": "AttuneAetherCurrent",
+          "AetherCurrentId": 2818367
+        },
+        {
+          "DataId": 1037867,
+          "Position": {
+            "X": -301.62512,
+            "Y": -144.00002,
+            "Z": -491.14215
+          },
+          "TerritoryId": 959,
+          "InteractionType": "Interact",
+          "AetheryteShortcut": "Mare Lamentorum - Bestways Burrow"
+        }
+      ]
+    }
+  ]
+}
diff --git a/Questionable/QuestPaths/Endwalker/AetherCurrents/Mare Lamentorum/4241_Carrots Its Whats for Dinner.json b/Questionable/QuestPaths/Endwalker/AetherCurrents/Mare Lamentorum/4241_Carrots Its Whats for Dinner.json
new file mode 100644 (file)
index 0000000..1d647dd
--- /dev/null
@@ -0,0 +1,98 @@
+{
+  "Version": 1,
+  "Author": "liza",
+  "QuestSequence": [
+    {
+      "Sequence": 0,
+      "Steps": [
+        {
+          "DataId": 1039520,
+          "Position": {
+            "X": -287.8615,
+            "Y": -143.50005,
+            "Z": -520.28687
+          },
+          "TerritoryId": 959,
+          "InteractionType": "Interact"
+        }
+      ]
+    },
+    {
+      "Sequence": 1,
+      "Steps": [
+        {
+          "Position": {
+            "X": -345.7338,
+            "Y": -161.8501,
+            "Z": -646.97064
+          },
+          "TerritoryId": 959,
+          "InteractionType": "ManualAction",
+          "Comment": "Navmesh can't jump"
+        },
+        {
+          "DataId": 1041789,
+          "StopDistance": 3,
+          "TerritoryId": 959,
+          "InteractionType": "Say",
+          "ChatMessage": "carrot of happiness"
+        },
+        {
+          "DataId": 1041790,
+          "Position": {
+            "X": -482.01727,
+            "Y": -167.50002,
+            "Z": -545.6169
+          },
+          "StopDistance": 3,
+          "TerritoryId": 959,
+          "InteractionType": "Say",
+          "ChatMessage": "carrot of happiness",
+          "$.1": "QuestVariables if done after [1]: 2 0 0 0 0 192"
+        },
+        {
+          "Position": {
+            "X": -438.33246,
+            "Y": -168.00002,
+            "Z": -420.43494
+          },
+          "TerritoryId": 959,
+          "InteractionType": "ManualAction",
+          "Comment": "Navmesh can't jump"
+        },
+        {
+          "DataId": 1041791,
+          "StopDistance": 3,
+          "TerritoryId": 959,
+          "InteractionType": "Say",
+          "ChatMessage": "carrot of happiness"
+        }
+      ]
+    },
+    {
+      "Sequence": 255,
+      "Steps": [
+        {
+          "Position": {
+            "X": -376.5167,
+            "Y": -168,
+            "Z": -432.03497
+          },
+          "TerritoryId": 959,
+          "InteractionType": "WalkTo",
+          "DisableNavmesh": true
+        },
+        {
+          "DataId": 1039520,
+          "Position": {
+            "X": -287.8615,
+            "Y": -143.50005,
+            "Z": -520.28687
+          },
+          "TerritoryId": 959,
+          "InteractionType": "Interact"
+        }
+      ]
+    }
+  ]
+}
diff --git a/Questionable/QuestPaths/Endwalker/AetherCurrents/Mare Lamentorum/4253_Alluring Allag.json b/Questionable/QuestPaths/Endwalker/AetherCurrents/Mare Lamentorum/4253_Alluring Allag.json
new file mode 100644 (file)
index 0000000..0bc968e
--- /dev/null
@@ -0,0 +1,153 @@
+{
+  "Version": 1,
+  "Author": "liza",
+  "QuestSequence": [
+    {
+      "Sequence": 0,
+      "Steps": [
+        {
+          "DataId": 1041123,
+          "Position": {
+            "X": -81.864685,
+            "Y": -132.74333,
+            "Z": -521.6602
+          },
+          "TerritoryId": 959,
+          "InteractionType": "Interact"
+        }
+      ]
+    },
+    {
+      "Sequence": 1,
+      "Steps": [
+        {
+          "DataId": 2012015,
+          "Position": {
+            "X": 591.3633,
+            "Y": 149.33997,
+            "Z": 114.91565
+          },
+          "StopDistance": 4,
+          "TerritoryId": 959,
+          "InteractionType": "AttuneAetherCurrent",
+          "AetherCurrentId": 2818364,
+          "Comment": "TODO Unsure if this can be reached via navmesh directly from Bestways Burrows"
+        },
+        {
+          "DataId": 1041127,
+          "Position": {
+            "X": 537.3159,
+            "Y": 132.40395,
+            "Z": 233.81396
+          },
+          "TerritoryId": 959,
+          "InteractionType": "Interact"
+        }
+      ]
+    },
+    {
+      "Sequence": 2,
+      "Steps": [
+        {
+          "DataId": 2012338,
+          "Position": {
+            "X": 700.19055,
+            "Y": 135.21008,
+            "Z": 229.48035
+          },
+          "TerritoryId": 959,
+          "InteractionType": "Interact",
+          "$.1": "QuestVariables if done first: 17 0 0 0 0 32"
+        },
+        {
+          "DataId": 1041125,
+          "Position": {
+            "X": 735.5,
+            "Y": 151.08012,
+            "Z": 189.01343
+          },
+          "TerritoryId": 959,
+          "InteractionType": "Combat",
+          "EnemySpawnType": "AfterInteraction",
+          "KillEnemyDataIds": [
+            14050
+          ],
+          "$.1": "QuestVariables if done after [1]: 33 1 0 0 0 160"
+        },
+        {
+          "DataId": 1041124,
+          "Position": {
+            "X": 663.6301,
+            "Y": 128.48961,
+            "Z": 188.18945
+          },
+          "TerritoryId": 959,
+          "InteractionType": "Interact"
+        }
+      ]
+    },
+    {
+      "Sequence": 3,
+      "Steps": [
+        {
+          "DataId": 1041127,
+          "Position": {
+            "X": 537.3159,
+            "Y": 132.40395,
+            "Z": 233.81396
+          },
+          "StopDistance": 1,
+          "TerritoryId": 959,
+          "InteractionType": "Combat",
+          "EnemySpawnType": "AutoOnEnterArea",
+          "KillEnemyDataIds": [
+            14049
+          ]
+        }
+      ]
+    },
+    {
+      "Sequence": 4,
+      "Steps": [
+        {
+          "DataId": 1041127,
+          "Position": {
+            "X": 537.3159,
+            "Y": 132.40395,
+            "Z": 233.81396
+          },
+          "StopDistance": 5,
+          "TerritoryId": 959,
+          "InteractionType": "Interact"
+        }
+      ]
+    },
+    {
+      "Sequence": 255,
+      "Steps": [
+        {
+          "DataId": 2012016,
+          "Position": {
+            "X": 388.3573,
+            "Y": 99.90076,
+            "Z": 306.05017
+          },
+          "TerritoryId": 959,
+          "InteractionType": "AttuneAetherCurrent",
+          "AetherCurrentId": 2818365
+        },
+        {
+          "DataId": 1041123,
+          "Position": {
+            "X": -81.864685,
+            "Y": -132.74333,
+            "Z": -521.6602
+          },
+          "TerritoryId": 959,
+          "InteractionType": "Interact",
+          "AetheryteShortcut": "Mare Lamentorum - Bestways Burrow"
+        }
+      ]
+    }
+  ]
+}
diff --git a/Questionable/QuestPaths/Endwalker/AetherCurrents/Mare Lamentorum/4516_Name That Way.json b/Questionable/QuestPaths/Endwalker/AetherCurrents/Mare Lamentorum/4516_Name That Way.json
new file mode 100644 (file)
index 0000000..38d7f40
--- /dev/null
@@ -0,0 +1,93 @@
+{
+  "Version": 1,
+  "Author": "liza",
+  "QuestSequence": [
+    {
+      "Sequence": 0,
+      "Steps": [
+        {
+          "DataId": 1041555,
+          "Position": {
+            "X": 26.443848,
+            "Y": -129.20917,
+            "Z": -536.9497
+          },
+          "TerritoryId": 959,
+          "InteractionType": "Interact"
+        }
+      ]
+    },
+    {
+      "Sequence": 1,
+      "Steps": [
+        {
+          "DataId": 1041556,
+          "Position": {
+            "X": 113.14563,
+            "Y": -133.07352,
+            "Z": -465.17133
+          },
+          "TerritoryId": 959,
+          "InteractionType": "Interact"
+        }
+      ]
+    },
+    {
+      "Sequence": 2,
+      "Steps": [
+        {
+          "DataId": 1041745,
+          "Position": {
+            "X": 66.23938,
+            "Y": -133.00002,
+            "Z": -432.8222
+          },
+          "TerritoryId": 959,
+          "InteractionType": "Interact",
+          "Comment": "Cheerful Loporrit",
+          "$.0": "[1]",
+          "$.1": "QuestVariables if done first: 1 0 0 0 0 64"
+        },
+        {
+          "DataId": 1041746,
+          "Position": {
+            "X": -85.83203,
+            "Y": -133.0356,
+            "Z": -507.1336
+          },
+          "TerritoryId": 959,
+          "InteractionType": "Interact",
+          "Comment": "Stern Loporrit",
+          "$.0": "[2]",
+          "$.1": "QuestVariables if done after [1]: 2 0 0 0 0 96"
+        },
+        {
+          "DataId": 1041744,
+          "Position": {
+            "X": -110.12439,
+            "Y": -133.07341,
+            "Z": -556.7865
+          },
+          "TerritoryId": 959,
+          "InteractionType": "Interact",
+          "Comment": "Easygoing Loporrit"
+        }
+      ]
+    },
+    {
+      "Sequence": 255,
+      "Steps": [
+        {
+          "DataId": 1041556,
+          "Position": {
+            "X": 113.14563,
+            "Y": -133.07352,
+            "Z": -465.17133
+          },
+          "TerritoryId": 959,
+          "InteractionType": "Interact"
+        }
+      ]
+    }
+  ]
+}
diff --git a/Questionable/QuestPaths/Endwalker/AetherCurrents/Ultima Thule/4342_Ending as One.json b/Questionable/QuestPaths/Endwalker/AetherCurrents/Ultima Thule/4342_Ending as One.json
new file mode 100644 (file)
index 0000000..537f9e4
--- /dev/null
@@ -0,0 +1,52 @@
+{
+  "Version": 1,
+  "Author": "liza",
+  "QuestSequence": [
+    {
+      "Sequence": 0,
+      "Steps": [
+        {
+          "DataId": 1040876,
+          "Position": {
+            "X": 49.42395,
+            "Y": 269.25684,
+            "Z": -523.2472
+          },
+          "TerritoryId": 960,
+          "InteractionType": "Interact"
+        }
+      ]
+    },
+    {
+      "Sequence": 1,
+      "Steps": [
+        {
+          "Position": {
+            "X": -41.26438,
+            "Y": 274.85336,
+            "Z": -523.8633
+          },
+          "TerritoryId": 960,
+          "InteractionType": "ManualAction",
+          "Comment": "Kill 2 Drifting Ea",
+          "$": "QuestVariables: 0 0-16-32 0 0 0 0"
+        }
+      ]
+    },
+    {
+      "Sequence": 255,
+      "Steps": [
+        {
+          "DataId": 1040876,
+          "Position": {
+            "X": 49.42395,
+            "Y": 269.25684,
+            "Z": -523.2472
+          },
+          "TerritoryId": 960,
+          "InteractionType": "Interact"
+        }
+      ]
+    }
+  ]
+}
diff --git a/Questionable/QuestPaths/Endwalker/AetherCurrents/Ultima Thule/4346_A Most Stimulating Discussion.json b/Questionable/QuestPaths/Endwalker/AetherCurrents/Ultima Thule/4346_A Most Stimulating Discussion.json
new file mode 100644 (file)
index 0000000..6927c11
--- /dev/null
@@ -0,0 +1,76 @@
+{
+  "Version": 1,
+  "Author": "liza",
+  "QuestSequence": [
+    {
+      "Sequence": 0,
+      "Steps": [
+        {
+          "DataId": 1038016,
+          "Position": {
+            "X": 105.42456,
+            "Y": 269.29584,
+            "Z": -454.3069
+          },
+          "TerritoryId": 960,
+          "InteractionType": "Interact"
+        }
+      ]
+    },
+    {
+      "Sequence": 1,
+      "Steps": [
+        {
+          "DataId": 1040880,
+          "Position": {
+            "X": -110.185425,
+            "Y": 269.2062,
+            "Z": -713.5271
+          },
+          "TerritoryId": 960,
+          "InteractionType": "Interact",
+          "AetheryteShortcut": "Ultima Thule - Abode of the Ea"
+        },
+        {
+          "DataId": 1040881,
+          "Position": {
+            "X": -201.86163,
+            "Y": 288.6714,
+            "Z": -466.331
+          },
+          "TerritoryId": 960,
+          "InteractionType": "Interact",
+          "$.0": "[2]",
+          "$.1": "QuestVariables if done after [3]: 32 17 0 0 0 160"
+        },
+        {
+          "DataId": 1040879,
+          "Position": {
+            "X": -184.52734,
+            "Y": 267.47086,
+            "Z": -292.65283
+          },
+          "TerritoryId": 960,
+          "InteractionType": "Interact",
+          "$.0": "[3]",
+          "$.1": "QuestVariables if done first: 16 1 0 0 0 128"
+        }
+      ]
+    },
+    {
+      "Sequence": 255,
+      "Steps": [
+        {
+          "DataId": 1038016,
+          "Position": {
+            "X": 105.42456,
+            "Y": 269.29584,
+            "Z": -454.3069
+          },
+          "TerritoryId": 960,
+          "InteractionType": "Interact"
+        }
+      ]
+    }
+  ]
+}
diff --git a/Questionable/QuestPaths/Endwalker/AetherCurrents/Ultima Thule/4354_Combat Evolved.json b/Questionable/QuestPaths/Endwalker/AetherCurrents/Ultima Thule/4354_Combat Evolved.json
new file mode 100644 (file)
index 0000000..68b2a16
--- /dev/null
@@ -0,0 +1,56 @@
+{
+  "Version": 1,
+  "Author": "liza",
+  "QuestSequence": [
+    {
+      "Sequence": 0,
+      "Steps": [
+        {
+          "DataId": 1038043,
+          "Position": {
+            "X": 470.4203,
+            "Y": 437.00183,
+            "Z": 315.81592
+          },
+          "TerritoryId": 960,
+          "InteractionType": "Interact"
+        }
+      ]
+    },
+    {
+      "Sequence": 1,
+      "Steps": [
+        {
+          "Position": {
+            "X": 656.94653,
+            "Y": 437.98502,
+            "Z": 302.6322
+          },
+          "StopDistance": 0.5,
+          "TerritoryId": 960,
+          "InteractionType": "ManualAction",
+          "EnemySpawnType": "AutoOnEnterArea",
+          "KillEnemyDataIds": [
+            14044
+          ],
+          "Comment": "Can maybe be automated to use item depending on quest vars??"
+        }
+      ]
+    },
+    {
+      "Sequence": 255,
+      "Steps": [
+        {
+          "DataId": 1038043,
+          "Position": {
+            "X": 470.4203,
+            "Y": 437.00183,
+            "Z": 315.81592
+          },
+          "TerritoryId": 960,
+          "InteractionType": "Interact"
+        }
+      ]
+    }
+  ]
+}
index f0bfbd39ee42038e3bcd66b504d052d7fae884a8..2de34634ccff792f4a50497ecf9077deb2640b2f 100644 (file)
     {
       "Sequence": 1,
       "Steps": [
-        {
-          "Position": {
-            "X": -102.94707,
-            "Y": -29.933468,
-            "Z": 674.6727
-          },
-          "TerritoryId": 956,
-          "InteractionType": "WalkTo"
-        },
-        {
-          "Position": {
-            "X": -118.62926,
-            "Y": -22.071072,
-            "Z": 681.35846
-          },
-          "TerritoryId": 956,
-          "InteractionType": "ManualAction",
-          "DisableNavmesh": true,
-          "Comment": "Navmesh can't jump"
-        },
-        {
-          "DataId": 2011986,
-          "Position": {
-            "X": -128.06903,
-            "Y": -20.523438,
-            "Z": 676.7223
-          },
-          "TerritoryId": 956,
-          "InteractionType": "AttuneAetherCurrent",
-          "AetherCurrentId": 2818317
-        },
-        {
-          "Position": {
-            "X": -114.01625,
-            "Y": -30.313616,
-            "Z": 670.05585
-          },
-          "TerritoryId": 956,
-          "InteractionType": "WalkTo",
-          "DisableNavmesh": true
-        },
         {
           "Position": {
             "X": 79.66557,
@@ -69,7 +28,8 @@
             "Z": 457.04776
           },
           "TerritoryId": 956,
-          "InteractionType": "WalkTo"
+          "InteractionType": "WalkTo",
+          "Comment": "TODO verify this is correct, there was an aether current prior to this"
         },
         {
           "DataId": 2011989,
index f4f01da3aac7d908e88e682bd25e9126944c7f21..129aa1ff525abdbc257cc78c16fc5515175990d0 100644 (file)
           "InteractionType": "AttuneAetherCurrent",
           "AetherCurrentId": 2818316
         },
+        {
+          "Position": {
+            "X": -102.94707,
+            "Y": -29.933468,
+            "Z": 674.6727
+          },
+          "TerritoryId": 956,
+          "InteractionType": "WalkTo"
+        },
+        {
+          "Position": {
+            "X": -118.62926,
+            "Y": -22.071072,
+            "Z": 681.35846
+          },
+          "TerritoryId": 956,
+          "InteractionType": "ManualAction",
+          "DisableNavmesh": true,
+          "Comment": "Navmesh can't jump"
+        },
+        {
+          "DataId": 2011986,
+          "Position": {
+            "X": -128.06903,
+            "Y": -20.523438,
+            "Z": 676.7223
+          },
+          "TerritoryId": 956,
+          "InteractionType": "AttuneAetherCurrent",
+          "AetherCurrentId": 2818317
+        },
+        {
+          "Position": {
+            "X": -114.01625,
+            "Y": -30.313616,
+            "Z": 670.05585
+          },
+          "TerritoryId": 956,
+          "InteractionType": "WalkTo",
+          "DisableNavmesh": true
+        },
         {
           "DataId": 1040455,
           "Position": {
index e0f7313c8bc421ddf9cc668460f7f9835dee2937..ae59c625383b95f3da4fb200b0f023d105a2182c 100644 (file)
     {
       "Sequence": 1,
       "Steps": [
+        {
+          "Position": {
+            "X": 5.4520116,
+            "Y": -28.723352,
+            "Z": -42.992764
+          },
+          "AetheryteShortcut": "Labyrinthos - Sharlayan Hamlet",
+          "TerritoryId": 956,
+          "InteractionType": "WalkTo"
+        },
         {
           "DataId": 2012226,
           "Position": {
@@ -58,7 +68,8 @@
             "Z": 301.93018
           },
           "TerritoryId": 956,
-          "InteractionType": "Interact"
+          "InteractionType": "Interact",
+          "AetheryteShortcut": "Labyrinthos - Aporia"
         }
       ]
     },
index ebcf3a365f0e2a1567c4413d28d701abb6244d41..53f10dbeb7679a27ad1220f289a9627b3e733fdd 100644 (file)
@@ -1,7 +1,6 @@
 {
   "Version": 1,
   "Author": "liza",
-  "Comment": "Sequence 2 is 'Enter' dungeon, Sequence 3 is 'Clear' dungeon",
   "QuestSequence": [
     {
       "Sequence": 0,
@@ -91,6 +90,7 @@
           },
           "TerritoryId": 962,
           "InteractionType": "Interact",
+          "StopDistance": 5,
           "AethernetShortcut": [
             "[Old Sharlayan] The Rostra",
             "[Old Sharlayan] The Baldesion Annex"
index d77ad64cd3f39d23b3829c03bf68ab51b66fa840..0dbe3cf1126ca077db5962916bab6c78f1699633 100644 (file)
@@ -12,6 +12,7 @@
             "Y": 3.9334679,
             "Z": 1.3884888
           },
+          "StopDistance": 7,
           "TerritoryId": 962,
           "InteractionType": "Interact"
         }
@@ -96,6 +97,7 @@
             "Y": 5.1499996,
             "Z": -65.87323
           },
+          "StopDistance": 5,
           "TerritoryId": 962,
           "InteractionType": "Interact"
         }
index a847682f1aa9494f844c880bb2772e8691667c80..ff79368ec8701e144decfb2ba5be4fbe02a066fb 100644 (file)
@@ -65,6 +65,7 @@
             "Y": -13.777,
             "Z": 149.70618
           },
+          "StopDistance": 5,
           "TerritoryId": 962,
           "InteractionType": "Interact"
         }
             "Y": 4.357494,
             "Z": 0.7476196
           },
+          "StopDistance": 5,
           "TerritoryId": 962,
-          "InteractionType": "Interact"
+          "InteractionType": "Interact",
+          "AethernetShortcut": [
+            "[Old Sharlayan] The Leveilleur Estate",
+            "[Old Sharlayan] The Baldesion Annex"
+          ]
         }
       ]
     }
index f15b9b3156fd10087c8f76fe5ee3f6a29dc39cd4..89c4e4eecb06ef534cfd4a329c30de593e07c50a 100644 (file)
@@ -12,6 +12,7 @@
             "Y": 4.357494,
             "Z": 0.7476196
           },
+          "StopDistance": 5,
           "TerritoryId": 962,
           "InteractionType": "Interact"
         }
@@ -29,6 +30,7 @@
           },
           "TerritoryId": 956,
           "InteractionType": "Interact",
+          "AetheryteShortcut": "Labyrinthos - Aporia",
           "SkipIf": [
             "FlyingUnlocked"
           ]
@@ -41,7 +43,8 @@
             "Z": 301.56396
           },
           "TerritoryId": 956,
-          "InteractionType": "Interact"
+          "InteractionType": "Interact",
+          "Fly": true
         }
       ]
     },
@@ -70,6 +73,7 @@
             "Y": 80.7959,
             "Z": 607.6904
           },
+          "StopDistance": 5,
           "TerritoryId": 960,
           "InteractionType": "Interact"
         }
index 9a485536b55136e232b09ef8b68a299531767492..cf022dd13f917e44b628964635aefa326ec372c4 100644 (file)
@@ -12,6 +12,7 @@
             "Y": 80.86001,
             "Z": 606.53076
           },
+          "StopDistance": 7,
           "TerritoryId": 960,
           "InteractionType": "Interact"
         }
@@ -43,7 +44,9 @@
             "Z": 533.6842
           },
           "TerritoryId": 960,
-          "InteractionType": "Interact"
+          "InteractionType": "Interact",
+          "$.0": "[1]",
+          "$.1": "QuestVariables if done first: 16 1 0 0 0 128"
         },
         {
           "DataId": 1040292,
@@ -53,7 +56,9 @@
             "Z": 554.4059
           },
           "TerritoryId": 960,
-          "InteractionType": "Interact"
+          "InteractionType": "Interact",
+          "$.0": "[2]",
+          "$.2": "QuestVariables if done after [1]: 33 1 0 0 0 192"
         },
         {
           "DataId": 1040293,
index 63150653264d4b65bb8e5baec6627b28ee93b225..a71e5b75abc3995d34b6953c680b7f8583c1cf05 100644 (file)
@@ -12,6 +12,7 @@
             "Y": 73.47535,
             "Z": 309.86487
           },
+          "StopDistance": 7,
           "TerritoryId": 960,
           "InteractionType": "Interact"
         }
             "Y": 72.5362,
             "Z": 332.23462
           },
+          "StopDistance": 8,
           "TerritoryId": 960,
-          "InteractionType": "Interact"
+          "InteractionType": "Interact",
+          "$.0": "[1]",
+          "$.1": "QuestVariables if done first: 1 0 0 0 0 64"
         },
         {
           "DataId": 1038008,
             "Y": 78.6382,
             "Z": 303.8529
           },
+          "StopDistance": 8,
           "TerritoryId": 960,
-          "InteractionType": "Interact"
+          "InteractionType": "Interact",
+          "$.0": "[2]",
+          "$.1": "QuestVariables if done after [1]: 2 0 0 0 0 96"
         },
         {
           "DataId": 179,
@@ -47,6 +54,7 @@
             "Y": 74.34187,
             "Z": 269.6726
           },
+          "StopDistance": 10,
           "TerritoryId": 960,
           "InteractionType": "AttuneAetheryte"
         },
@@ -57,6 +65,7 @@
             "Y": 88.871994,
             "Z": 207.35486
           },
+          "StopDistance": 8,
           "TerritoryId": 960,
           "InteractionType": "Interact"
         }
             "Z": -30.71643
           },
           "TerritoryId": 960,
-          "InteractionType": "Interact"
+          "InteractionType": "Interact",
+          "$.0": "[1]",
+          "$.1": "QuestVariables if done first: 1 0 0 0 0 ??"
         },
         {
-          "DataId": 2012283,
+          "DataId": 2012282,
           "Position": {
-            "X": -465.1103,
-            "Y": 56.47351,
-            "Z": -30.71643
+            "X": -479.3927,
+            "Y": 56.290405,
+            "Z": -33.676758
           },
           "TerritoryId": 960,
-          "InteractionType": "Interact"
+          "InteractionType": "Interact",
+          "$.0": "[1]",
+          "$.1": "QuestVariables if done after [1]: 2 0 0 0 0 ??"
         },
         {
-          "DataId": 2012282,
+          "DataId": 2012281,
           "Position": {
-            "X": -479.3927,
-            "Y": 56.290405,
-            "Z": -33.676758
+            "X": -472.25153,
+            "Y": 56.26001,
+            "Z": -20.676025
           },
           "TerritoryId": 960,
           "InteractionType": "Interact"
             "Y": 64.78333,
             "Z": -200.3357
           },
+          "StopDistance": 1,
           "TerritoryId": 960,
           "InteractionType": "Combat",
+          "EnemySpawnType": "AutoOnEnterArea",
           "KillEnemyDataIds": [
             14002
           ]
index b3a9e5b837501c93c5e46c8203a1d4761f00bcf3..6f0777b8333d10cc6d87c105452ba052c5f59cd8 100644 (file)
@@ -28,7 +28,8 @@
             "Z": 273.9757
           },
           "TerritoryId": 960,
-          "InteractionType": "Interact"
+          "InteractionType": "Interact",
+          "AetheryteShortcut": "Ultima Thule - Reah Tahra"
         }
       ]
     },
@@ -42,6 +43,7 @@
             "Y": 59.814697,
             "Z": 55.954834
           },
+          "StopDistance": 8,
           "TerritoryId": 960,
           "InteractionType": "Interact"
         }
@@ -82,6 +84,7 @@
             "Y": 232.19641,
             "Z": -253.10144
           },
+          "StopDistance": 5,
           "TerritoryId": 960,
           "InteractionType": "Interact"
         }
index c3e343814d73dd0b7b89590cd4929e5f4cd78999..3e06deef50c65a1c22c7735c688397eac5222b19 100644 (file)
@@ -12,6 +12,7 @@
             "Y": 232.2548,
             "Z": -252.8573
           },
+          "StopDistance": 5,
           "TerritoryId": 960,
           "InteractionType": "Interact"
         }
@@ -58,7 +59,8 @@
             "Z": -361.50153
           },
           "TerritoryId": 960,
-          "InteractionType": "AttuneAetherCurrent"
+          "InteractionType": "AttuneAetherCurrent",
+          "AetherCurrentId": 2818389
         },
         {
           "DataId": 2012035,
@@ -68,7 +70,8 @@
             "Z": -295.15533
           },
           "TerritoryId": 960,
-          "InteractionType": "AttuneAetherCurrent"
+          "InteractionType": "AttuneAetherCurrent",
+          "AetherCurrentId": 2818394
         },
         {
           "DataId": 1040317,
@@ -78,7 +81,8 @@
             "Z": -312.58112
           },
           "TerritoryId": 960,
-          "InteractionType": "Interact"
+          "InteractionType": "Interact",
+          "DisableNavmesh": true
         }
       ]
     },
             "Y": 272.51086,
             "Z": -600.7019
           },
+          "StopDistance": 4,
           "TerritoryId": 960,
-          "InteractionType": "Interact"
+          "InteractionType": "Interact",
+          "$.0": "[1]",
+          "$.1": "QuestVariables if done first: 1 0 0 0 0 128"
         },
         {
           "DataId": 2012355,
             "Y": 272.4497,
             "Z": -616.4492
           },
+          "StopDistance": 4,
           "TerritoryId": 960,
-          "InteractionType": "Interact"
+          "InteractionType": "Interact",
+          "$.0": "[2]",
+          "$.1": "QuestVariables if done after [1]: 2 0 0 0 0 192"
         },
         {
           "DataId": 180,
             "Y": 272.48022,
             "Z": -657.49603
           },
+          "StopDistance": 8,
           "TerritoryId": 960,
           "InteractionType": "AttuneAetheryte"
         },
             "Y": 272.99915,
             "Z": -617.853
           },
+          "StopDistance": 4,
           "TerritoryId": 960,
-          "InteractionType": "Interact"
+          "InteractionType": "Interact",
+          "$.0": "[3]",
+          "$.1": "QuestVariables if done after [2]: 3 0 0 0 0 224"
         },
         {
           "DataId": 2012357,
             "Y": 272.9381,
             "Z": -592.5841
           },
+          "StopDistance": 4,
           "TerritoryId": 960,
-          "InteractionType": "Interact"
+          "InteractionType": "Interact",
+          "$.0": "[4]",
+          "$.1": "QuestVariables if done first: TODO"
         }
       ]
     },
index 437dc0720bf45f6e7fd71a1a63eaf3d134889446..16e9a70cba2662f7704df50dcd1caf46330a7c7b 100644 (file)
@@ -72,6 +72,7 @@
             "Y": 269.0949,
             "Z": -491.66098
           },
+          "StopDistance": 7,
           "TerritoryId": 960,
           "InteractionType": "Interact"
         }
index ade54fa1aa512582116f171283bdf1303b4e0667..ede2f55d6ae3356b454b3294ee652fd01d53d37f 100644 (file)
@@ -12,6 +12,7 @@
             "Y": 269.0903,
             "Z": -490.44025
           },
+          "StopDistance": 7,
           "TerritoryId": 960,
           "InteractionType": "Interact"
         }
     {
       "Sequence": 255,
       "Steps": [
+        {
+          "Position": {
+            "X": -353.82343,
+            "Y": 263.4366,
+            "Z": -458.5238
+          },
+          "TerritoryId": 960,
+          "InteractionType": "WalkTo",
+          "Mount": true
+        },
+        {
+          "Position": {
+            "X": -394.40567,
+            "Y": 266.7831,
+            "Z": -478.6604
+          },
+          "TerritoryId": 960,
+          "InteractionType": "WalkTo",
+          "DisableNavmesh": true
+        },
+        {
+          "Position": {
+            "X": -408.86514,
+            "Y": 266.81473,
+            "Z": -519.4911
+          },
+          "TerritoryId": 960,
+          "InteractionType": "WalkTo"
+        },
         {
           "DataId": 2012036,
           "Position": {
             "Z": -629.8772
           },
           "TerritoryId": 960,
-          "InteractionType": "Interact"
+          "InteractionType": "AttuneAetherCurrent",
+          "AetherCurrentId": 2818395
+        },
+        {
+          "DataId": 2012031,
+          "Position": {
+            "X": 13.107483,
+            "Y": 275.56262,
+            "Z": -756.40497
+          },
+          "TerritoryId": 960,
+          "InteractionType": "AttuneAetherCurrent",
+          "AetheryteShortcut": "Ultima Thule - Abode of the Ea",
+          "AetherCurrentId": 2818390,
+          "Comment": "TODO Verify"
         },
         {
           "DataId": 1039778,
index eabfc771f91558fe6178398e5c7b614d530b0a06..74e149b1fee10858e76c1045301e8d468b9c64fd 100644 (file)
@@ -12,6 +12,7 @@
             "Y": 269.0203,
             "Z": -633.5393
           },
+          "StopDistance": 5,
           "TerritoryId": 960,
           "InteractionType": "Interact"
         }
     {
       "Sequence": 1,
       "Steps": [
+        {
+          "DataId": 2012034,
+          "Position": {
+            "X": 424.55164,
+            "Y": 283.37524,
+            "Z": -679.7742
+          },
+          "TerritoryId": 960,
+          "InteractionType": "AttuneAetherCurrent",
+          "AetherCurrentId": 2818393
+        },
         {
           "DataId": 1039787,
           "Position": {
@@ -54,6 +66,7 @@
           },
           "TerritoryId": 960,
           "InteractionType": "Combat",
+          "EnemySpawnType": "AfterInteraction",
           "KillEnemyDataIds": [
             14000,
             14001
@@ -86,6 +99,7 @@
             "Y": 439.695,
             "Z": 155.59619
           },
+          "StopDistance": 5,
           "TerritoryId": 960,
           "InteractionType": "Interact"
         }
           },
           "TerritoryId": 960,
           "InteractionType": "Combat",
+          "EnemySpawnType": "AfterInteraction",
           "KillEnemyDataIds": [
             13999
           ]
             "Z": 239.39868
           },
           "TerritoryId": 960,
-          "InteractionType": "AttuneAetherCurrent"
+          "InteractionType": "AttuneAetherCurrent",
+          "AetherCurrentId": 2818392
         },
         {
           "DataId": 1039791,
             "Y": 437.5829,
             "Z": 333.63843
           },
+          "StopDistance": 5,
           "TerritoryId": 960,
           "InteractionType": "AttuneAetheryte"
         },
-        {
-          "DataId": 2012031,
-          "Position": {
-            "X": 13.107483,
-            "Y": 275.56262,
-            "Z": -756.40497
-          },
-          "TerritoryId": 960,
-          "InteractionType": "AttuneAetherCurrent"
-        },
-        {
-          "DataId": 2012034,
-          "Position": {
-            "X": 424.55164,
-            "Y": 283.37524,
-            "Z": -679.7742
-          },
-          "TerritoryId": 960,
-          "InteractionType": "AttuneAetherCurrent"
-        },
         {
           "DataId": 1039791,
           "Position": {
index 6d64d03ae8cf795ac38d0e757c472a96736f8354..cb9500ea54039b81d71b53b1bb4c3dda1599339b 100644 (file)
@@ -12,6 +12,7 @@
             "Y": 437.9998,
             "Z": 301.4419
           },
+          "StopDistance": 5,
           "TerritoryId": 960,
           "InteractionType": "Interact"
         }
@@ -28,7 +29,8 @@
             "Z": 402.12085
           },
           "TerritoryId": 960,
-          "InteractionType": "AttuneAetherCurrent"
+          "InteractionType": "AttuneAetherCurrent",
+          "AetherCurrentId": 2818398
         },
         {
           "DataId": 2012032,
@@ -38,7 +40,8 @@
             "Z": 411.73413
           },
           "TerritoryId": 960,
-          "InteractionType": "AttuneAetherCurrent"
+          "InteractionType": "AttuneAetherCurrent",
+          "AetherCurrentId": 2818391
         },
         {
           "DataId": 1040343,
           },
           "TerritoryId": 960,
           "InteractionType": "AttuneAetherCurrent",
-          "Comment": "Unsure if this is the right spot"
+          "AetherCurrentId": 2818396
+        },
+        {
+          "Position": {
+            "X": 639.9123,
+            "Y": 438.7276,
+            "Z": 293.33954
+          },
+          "TerritoryId": 960,
+          "InteractionType": "WalkTo"
         },
         {
           "DataId": 2012038,
             "Z": 289.66187
           },
           "TerritoryId": 960,
-          "InteractionType": "AttuneAetherCurrent"
+          "InteractionType": "AttuneAetherCurrent",
+          "AetherCurrentId": 2818397,
+          "DisableNavmesh": true
         },
         {
           "DataId": 1040349,
index f20abe88e00aa8f3438b93865d001b9f296cb554..7fddef99b91e57c8e3bd7d02e9b51d09b6401adf 100644 (file)
@@ -28,7 +28,8 @@
             "Z": 303.8529
           },
           "TerritoryId": 960,
-          "InteractionType": "Interact"
+          "InteractionType": "Interact",
+          "AetheryteShortcut": "Ultima Thule - Base Omicron"
         }
       ]
     },
@@ -44,7 +45,7 @@
           },
           "TerritoryId": 960,
           "InteractionType": "ManualAction",
-          "Comment": "Identify Anomaly (Elbow)"
+          "Comment": "Identify Anomaly (Elbow/Knee)"
         }
       ]
     },
index ff5df6aa676adb4cb7e2595a617be4ef652b7c7b..8d3eda32451bf64196f143dd9b8e413dce5a8df5 100644 (file)
@@ -28,7 +28,8 @@
             "Z": 360.46387
           },
           "TerritoryId": 960,
-          "InteractionType": "Interact"
+          "InteractionType": "Interact",
+          "AetheryteShortcut": "Ultima Thule - Base Omicron"
         }
       ]
     },
@@ -82,6 +83,7 @@
             "Y": 566,
             "Z": 317.96698
           },
+          "StopDistance": 1,
           "TerritoryId": 960,
           "InteractionType": "Interact"
         }
index 6c7903079680718074308d7c257b90aebbdfed4a..84bf520b824302a449148bffba5a6d480d320552 100644 (file)
@@ -28,7 +28,9 @@
             "Z": 296.98633
           },
           "TerritoryId": 960,
-          "InteractionType": "Interact"
+          "InteractionType": "Interact",
+          "$.0": "[1]",
+          "$.1": "QuestVariables if done first: 16 0 0 16 0 128"
         },
         {
           "DataId": 2012367,
@@ -38,7 +40,9 @@
             "Z": 240.03955
           },
           "TerritoryId": 960,
-          "InteractionType": "Interact"
+          "InteractionType": "Interact",
+          "$.0": "[2]",
+          "$.1": "QuestVariables if done after [1]: 32 16 0 16 0 144"
         },
         {
           "DataId": 2012368,
@@ -48,7 +52,9 @@
             "Z": 280.93384
           },
           "TerritoryId": 960,
-          "InteractionType": "Interact"
+          "InteractionType": "Interact",
+          "$.0": "[3]",
+          "$.1": "QuestVariables if done after [1, 2]: 48 17 0 16 0 152"
         },
         {
           "DataId": 2012366,
@@ -58,7 +64,9 @@
             "Z": 295.97925
           },
           "TerritoryId": 960,
-          "InteractionType": "Interact"
+          "InteractionType": "Interact",
+          "$.0": "[4]",
+          "$.1": "QuestVariables if done after [1, 2, 3]: 65 17 0 16 0 184"
         },
         {
           "DataId": 2012369,
@@ -68,7 +76,9 @@
             "Z": 297.16943
           },
           "TerritoryId": 960,
-          "InteractionType": "Interact"
+          "InteractionType": "Interact",
+          "$.0": "[5]",
+          "$.1": "QuestVariables if done after [1, 2, 3, 4]: 81 17 16 16 0 188"
         },
         {
           "DataId": 2012365,
             "Y": 637.1029,
             "Z": 2.690414
           },
-          "TerritoryId": 960,
-          "InteractionType": "Interact"
+          "TerritoryId": 1027,
+          "InteractionType": "WalkTo"
         }
       ]
     },
index edd471cfed41fdba656ed63d5b9dfca9f47f18b5..dc1a27d2875364549a91487a49bec4a62a20fb71 100644 (file)
@@ -46,6 +46,7 @@
             "Y": 0,
             "Z": 106
           },
+          "StopDistance": 5,
           "TerritoryId": 1029,
           "InteractionType": "ManualAction",
           "Comment": "Duty - The Final Day"
             "Y": 0,
             "Z": 0.8086548
           },
+          "StopDistance": 5,
           "TerritoryId": 351,
-          "InteractionType": "Interact"
+          "InteractionType": "Interact",
+          "$.0": "[1]",
+          "$.1": "QuestVariables if done first: 1 0 0 0 0 1"
         },
         {
           "DataId": 1041181,
             "Y": 0,
             "Z": 0.6560669
           },
+          "StopDistance": 5,
           "TerritoryId": 351,
-          "InteractionType": "Interact"
+          "InteractionType": "Interact",
+          "$.0": "[2]",
+          "$.1": "QuestVariables if done after [1]: 2 0 0 0 0 129"
         },
         {
           "DataId": 1041182,
             "Z": -4.7455444
           },
           "TerritoryId": 351,
-          "InteractionType": "Interact"
+          "InteractionType": "Interact",
+          "$.0": "[3]",
+          "$.1": "QuestVariables if done after [1, 2]: 3 0 0 0 0 193"
         },
         {
           "DataId": 1041184,
             "Y": 0,
             "Z": -5.8442383
           },
+          "StopDistance": 5,
           "TerritoryId": 351,
-          "InteractionType": "Interact"
+          "InteractionType": "Interact",
+          "$.0": "[4]",
+          "$.1": "QuestVariables if done after [1, 2, 3]: 4 0 0 0 0 209"
         },
         {
           "DataId": 1041183,
             "Z": -6.790344
           },
           "TerritoryId": 351,
-          "InteractionType": "Interact"
+          "InteractionType": "Interact",
+          "$.0": "[5]",
+          "$.1": "QuestVariables if done after [1, 2, 3, 4]: 5 0 0 0 0 241"
         },
         {
           "DataId": 1041187,
             "Z": -8.255188
           },
           "TerritoryId": 351,
-          "InteractionType": "Interact"
+          "InteractionType": "Interact",
+          "$.0": "[6]",
+          "$.1": "QuestVariables if done after [1, 2, 3, 4, 5]: 6 0 0 0 0 243"
         },
         {
           "DataId": 1041185,
             "Z": -5.7526855
           },
           "TerritoryId": 351,
-          "InteractionType": "Interact"
+          "InteractionType": "Interact",
+          "$.0": "[7]",
+          "$.1": "QuestVariables if done after [1, 2, 3, 4, 5, 6]: 7 0 0 0 0 251"
         },
         {
           "DataId": 1041186,
index 0904c1ddc90404c6d94167494266b2d2ca023595..bbcf8a31c5edcdaf99cf1fd1d77f80d2d16354e1 100644 (file)
@@ -29,6 +29,7 @@
           },
           "TerritoryId": 963,
           "InteractionType": "Interact",
+          "AetheryteShortcut": "Radz-at-Han",
           "AethernetShortcut": [
             "[Radz-at-Han] Aetheryte Plaza",
             "[Radz-at-Han] Mehryde's Meyhane"
@@ -77,6 +78,7 @@
             "Y": -3.2177195E-06,
             "Z": -13.687378
           },
+          "StopDistance": 5,
           "TerritoryId": 963,
           "InteractionType": "Interact"
         }
@@ -93,7 +95,9 @@
             "Z": 570.94666
           },
           "TerritoryId": 957,
-          "InteractionType": "Interact"
+          "InteractionType": "Interact",
+          "AetheryteShortcut": "Thavnair - Yedlihmad",
+          "Fly": true
         }
       ]
     }
index c67d21702823b2f150e32b1b32fdf1e41db946f0..eea0ec923f854b6ebb181c7b7eeb791d271e4049 100644 (file)
             "Y": 4.357494,
             "Z": 0.7476196
           },
+          "StopDistance": 5,
           "TerritoryId": 962,
           "InteractionType": "Interact",
+          "AetheryteShortcut": "Old Sharlayan",
           "AethernetShortcut": [
             "[Old Sharlayan] Aetheryte Plaza",
             "[Old Sharlayan] The Baldesion Annex"
       "Sequence": 2,
       "Steps": [
         {
-          "DataId": 1039581,
           "Position": {
-            "X": -398.45886,
-            "Y": 19,
-            "Z": 92.48486
+            "X": -350.9551,
+            "Y": 18.999998,
+            "Z": 56.043774
           },
           "TerritoryId": 962,
-          "InteractionType": "Interact",
+          "InteractionType": "WalkTo",
           "AethernetShortcut": [
             "[Old Sharlayan] The Baldesion Annex",
             "[Old Sharlayan] The Studium"
           ]
+        },
+        {
+          "DataId": 1039581,
+          "Position": {
+            "X": -398.45886,
+            "Y": 19,
+            "Z": 92.48486
+          },
+          "TerritoryId": 962,
+          "InteractionType": "Interact"
         }
       ]
     },
@@ -67,6 +78,7 @@
           },
           "TerritoryId": 956,
           "InteractionType": "Interact",
+          "AetheryteShortcut": "Labyrinthos - Aporia",
           "SkipIf": [
             "FlyingUnlocked"
           ]
@@ -79,7 +91,8 @@
             "Z": 298.39014
           },
           "TerritoryId": 956,
-          "InteractionType": "Interact"
+          "InteractionType": "Interact",
+          "Fly": true
         }
       ]
     },
             "Z": 603.41797
           },
           "TerritoryId": 957,
-          "InteractionType": "Interact"
+          "InteractionType": "Interact",
+          "AetheryteShortcut": "Thavnair - Yedlihmad",
+          "Fly": true
         }
       ]
     }
index b1030690bdf3613235eada566d7bcd019af62493..46d49250a372ff5d0d56bca3b10c8fb8e9aecf13 100644 (file)
                   ]
                 },
                 "Disabled": {
-                  "description": "Unused (TODO)",
+                  "description": "Whether this step is disabled (see SkipIf for more control)",
                   "type": "boolean"
                 },
                 "DisableNavmesh": {
                     "stretch",
                     "wave",
                     "rally",
-                    "deny"
+                    "deny",
+                    "pray"
                   ]
                 },
                 "ChatMessage": {
index 61c843bcd4c5a0d0e3ce8cb3b77e9f6c161d1d9f..2b08ab01601294d34e255f9bdc9b94e5add1dd85 100644 (file)
@@ -57,6 +57,7 @@ internal sealed class DebugWindow : Window
         {
             ImGui.TextUnformatted($"Quest: {currentQuest.Quest.Name} / {currentQuest.Sequence} / {currentQuest.Step}");
 
+            ImGui.BeginDisabled();
             var questWork = _gameFunctions.GetQuestEx(currentQuest.Quest.QuestId);
             if (questWork != null)
             {
@@ -78,6 +79,7 @@ internal sealed class DebugWindow : Window
                 ImGui.TextUnformatted("(Not accepted)");
 
             ImGui.TextUnformatted(_questController.DebugState ?? "--");
+            ImGui.EndDisabled();
             ImGui.TextUnformatted(_questController.Comment ?? "--");
 
             var nextStep = _questController.GetNextStep();