From 5ed1aa641d1a7c9e7fd7c169e664ceb3b956dc58 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Wed, 29 May 2024 21:22:58 +0200 Subject: [PATCH] Rough Update for Labyrinthos2 up to Alzadaals Legacy + remaining EW Aethercurrent quests --- Questionable.sln.DotSettings | 2 + Questionable/Controller/QuestController.cs | 19 ++- Questionable/GameFunctions.cs | 2 +- Questionable/Model/V1/AethernetShortcut.cs | 8 +- .../Model/V1/Converter/AetheryteConverter.cs | 34 +--- .../Model/V1/Converter/EmoteConverter.cs | 32 +--- .../V1/Converter/EnemySpawnTypeConverter.cs | 32 +--- .../Model/V1/Converter/EnumConverter.cs | 43 +++++ .../V1/Converter/InteractionTypeConverter.cs | 31 +--- .../V1/Converter/SkipConditionConverter.cs | 11 ++ Questionable/Model/V1/EAetheryteLocation.cs | 6 +- Questionable/Model/V1/EEmote.cs | 7 +- Questionable/Model/V1/EEnemySpawnType.cs | 6 +- Questionable/Model/V1/EInteractionType.cs | 6 +- Questionable/Model/V1/ESkipCondition.cs | 11 ++ Questionable/Model/V1/QuestStep.cs | 11 +- .../Labyrinthos/4320_Gleaners Wish.json | 68 ++++++++ .../4329_Let the Good Times Troll.json | 71 ++++++++ .../Labyrinthos/4480_Lost Little Troll.json | 118 ++++++++++++++ .../4484_The Lad in Labyrinthos.json | 51 ++++++ .../4240_True Carrot Crimes.json | 77 +++++++++ .../4241_Carrots Its Whats for Dinner.json | 98 +++++++++++ .../Mare Lamentorum/4253_Alluring Allag.json | 153 ++++++++++++++++++ .../Mare Lamentorum/4516_Name That Way.json | 93 +++++++++++ .../Ultima Thule/4342_Ending as One.json | 52 ++++++ .../4346_A Most Stimulating Discussion.json | 76 +++++++++ .../Ultima Thule/4354_Combat Evolved.json | 56 +++++++ .../F-Labyrinthos2/4442_No Job Too Small.json | 44 +---- .../MSQ/F-Labyrinthos2/4447_Once Forged.json | 41 +++++ .../4448_Bonds of Adamantite.json | 13 +- .../4449_Her Children One and All.json | 2 +- .../G-UltimaThule/4450_A Bold Decision.json | 2 + .../G-UltimaThule/4451_Friends Gathered.json | 8 +- .../G-UltimaThule/4452_Unto the Heavens.json | 6 +- .../4453_A Strange New World.json | 9 +- .../G-UltimaThule/4454_On Burdened Wings.json | 41 +++-- .../G-UltimaThule/4455_A Test of Will.json | 5 +- .../4456_Roads Paved of Sacrifice.json | 31 +++- .../G-UltimaThule/4457_Flesh Abandoned.json | 1 + .../4458_Where Knowledge Leads.json | 46 +++++- .../G-UltimaThule/4459_Victory x Lost.json | 39 +++-- .../Endwalker/MSQ/G-UltimaThule/4460_x.json | 22 ++- .../MSQ/G-UltimaThule/4461_Hello World.json | 5 +- .../MSQ/G-UltimaThule/4462_Forge Ahead.json | 4 +- .../G-UltimaThule/4463_Youre Not Alone.json | 24 ++- .../MSQ/G-UltimaThule/4464_Endwalker.json | 32 +++- .../MSQ/H-6.1/4527_Bountiful Ruins.json | 6 +- .../MSQ/H-6.1/4528_Friends for the Road.json | 29 +++- Questionable/QuestSchema/schema_v1.json | 5 +- Questionable/Windows/DebugWindow.cs | 2 + 50 files changed, 1338 insertions(+), 253 deletions(-) create mode 100644 Questionable.sln.DotSettings create mode 100644 Questionable/Model/V1/Converter/EnumConverter.cs create mode 100644 Questionable/Model/V1/Converter/SkipConditionConverter.cs create mode 100644 Questionable/Model/V1/ESkipCondition.cs create mode 100644 Questionable/QuestPaths/Endwalker/AetherCurrents/Labyrinthos/4320_Gleaners Wish.json create mode 100644 Questionable/QuestPaths/Endwalker/AetherCurrents/Labyrinthos/4329_Let the Good Times Troll.json create mode 100644 Questionable/QuestPaths/Endwalker/AetherCurrents/Labyrinthos/4480_Lost Little Troll.json create mode 100644 Questionable/QuestPaths/Endwalker/AetherCurrents/Labyrinthos/4484_The Lad in Labyrinthos.json create mode 100644 Questionable/QuestPaths/Endwalker/AetherCurrents/Mare Lamentorum/4240_True Carrot Crimes.json create mode 100644 Questionable/QuestPaths/Endwalker/AetherCurrents/Mare Lamentorum/4241_Carrots Its Whats for Dinner.json create mode 100644 Questionable/QuestPaths/Endwalker/AetherCurrents/Mare Lamentorum/4253_Alluring Allag.json create mode 100644 Questionable/QuestPaths/Endwalker/AetherCurrents/Mare Lamentorum/4516_Name That Way.json create mode 100644 Questionable/QuestPaths/Endwalker/AetherCurrents/Ultima Thule/4342_Ending as One.json create mode 100644 Questionable/QuestPaths/Endwalker/AetherCurrents/Ultima Thule/4346_A Most Stimulating Discussion.json create mode 100644 Questionable/QuestPaths/Endwalker/AetherCurrents/Ultima Thule/4354_Combat Evolved.json diff --git a/Questionable.sln.DotSettings b/Questionable.sln.DotSettings new file mode 100644 index 00000000..381b5868 --- /dev/null +++ b/Questionable.sln.DotSettings @@ -0,0 +1,2 @@ + + True \ No newline at end of file diff --git a/Questionable/Controller/QuestController.cs b/Questionable/Controller/QuestController.cs index 50698b42..001ac180 100644 --- a/Questionable/Controller/QuestController.cs +++ b/Questionable/Controller/QuestController.cs @@ -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) diff --git a/Questionable/GameFunctions.cs b/Questionable/GameFunctions.cs index 31670dc9..eb96ce8d 100644 --- a/Questionable/GameFunctions.cs +++ b/Questionable/GameFunctions.cs @@ -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; diff --git a/Questionable/Model/V1/AethernetShortcut.cs b/Questionable/Model/V1/AethernetShortcut.cs index f605809e..40514b58 100644 --- a/Questionable/Model/V1/AethernetShortcut.cs +++ b/Questionable/Model/V1/AethernetShortcut.cs @@ -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; } diff --git a/Questionable/Model/V1/Converter/AetheryteConverter.cs b/Questionable/Model/V1/Converter/AetheryteConverter.cs index 6c8eb384..55a30e5e 100644 --- a/Questionable/Model/V1/Converter/AetheryteConverter.cs +++ b/Questionable/Model/V1/Converter/AetheryteConverter.cs @@ -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 +public sealed class AetheryteConverter() : EnumConverter(Values) { - private static readonly Dictionary EnumToString = new() + private static readonly Dictionary Values = new() { { EAetheryteLocation.Limsa, "Limsa Lominsa" }, { EAetheryteLocation.Gridania, "Gridania" }, @@ -67,29 +63,7 @@ public sealed class AetheryteConverter : JsonConverter { 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 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]); - } } diff --git a/Questionable/Model/V1/Converter/EmoteConverter.cs b/Questionable/Model/V1/Converter/EmoteConverter.cs index ce301049..d903e09a 100644 --- a/Questionable/Model/V1/Converter/EmoteConverter.cs +++ b/Questionable/Model/V1/Converter/EmoteConverter.cs @@ -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 +public sealed class EmoteConverter() : EnumConverter(Values) { - private static readonly Dictionary EnumToString = new() + private static readonly Dictionary Values = new() { { EEmote.Stretch, "stretch" }, { EEmote.Wave, "wave" }, { EEmote.Rally, "rally" }, { EEmote.Deny, "deny" }, + { EEmote.Pray, "pray" }, }; - private static readonly Dictionary 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]); - } } diff --git a/Questionable/Model/V1/Converter/EnemySpawnTypeConverter.cs b/Questionable/Model/V1/Converter/EnemySpawnTypeConverter.cs index 29578b68..e7841962 100644 --- a/Questionable/Model/V1/Converter/EnemySpawnTypeConverter.cs +++ b/Questionable/Model/V1/Converter/EnemySpawnTypeConverter.cs @@ -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 +public sealed class EnemySpawnTypeConverter() : EnumConverter(Values) { - private static readonly Dictionary EnumToString = new() + private static readonly Dictionary Values = new() { { EEnemySpawnType.AfterInteraction, "AfterInteraction" }, { EEnemySpawnType.AutoOnEnterArea, "AutoOnEnterArea" }, }; - - private static readonly Dictionary 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 index 00000000..cf70131b --- /dev/null +++ b/Questionable/Model/V1/Converter/EnumConverter.cs @@ -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 : JsonConverter + where T : Enum +{ + private readonly ReadOnlyDictionary _enumToString; + private readonly ReadOnlyDictionary _stringToEnum; + + protected EnumConverter(IReadOnlyDictionary values) + { + _enumToString = values is IDictionary dict + ? new ReadOnlyDictionary(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]); + } +} diff --git a/Questionable/Model/V1/Converter/InteractionTypeConverter.cs b/Questionable/Model/V1/Converter/InteractionTypeConverter.cs index e6786e3c..0778b86b 100644 --- a/Questionable/Model/V1/Converter/InteractionTypeConverter.cs +++ b/Questionable/Model/V1/Converter/InteractionTypeConverter.cs @@ -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 +public sealed class InteractionTypeConverter() : EnumConverter(Values) { - private static readonly Dictionary EnumToString = new() + private static readonly Dictionary Values = new() { { EInteractionType.Interact, "Interact" }, { EInteractionType.WalkTo, "WalkTo" }, @@ -22,25 +18,4 @@ public sealed class InteractionTypeConverter : JsonConverter { EInteractionType.WaitForObjectAtPosition, "WaitForNpcAtPosition" }, { EInteractionType.ManualAction, "ManualAction" } }; - - private static readonly Dictionary 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 index 00000000..0d98e515 --- /dev/null +++ b/Questionable/Model/V1/Converter/SkipConditionConverter.cs @@ -0,0 +1,11 @@ +using System.Collections.Generic; + +namespace Questionable.Model.V1.Converter; + +public sealed class SkipConditionConverter() : EnumConverter(Values) +{ + private static readonly Dictionary Values = new() + { + { ESkipCondition.FlyingUnlocked, "FlyingUnlocked" }, + }; +} diff --git a/Questionable/Model/V1/EAetheryteLocation.cs b/Questionable/Model/V1/EAetheryteLocation.cs index d7e2c6b4..a89e980f 100644 --- a/Questionable/Model/V1/EAetheryteLocation.cs +++ b/Questionable/Model/V1/EAetheryteLocation.cs @@ -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, diff --git a/Questionable/Model/V1/EEmote.cs b/Questionable/Model/V1/EEmote.cs index 0d8f4a00..dcdc11b1 100644 --- a/Questionable/Model/V1/EEmote.cs +++ b/Questionable/Model/V1/EEmote.cs @@ -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, } diff --git a/Questionable/Model/V1/EEnemySpawnType.cs b/Questionable/Model/V1/EEnemySpawnType.cs index c2c968d5..50f82b45 100644 --- a/Questionable/Model/V1/EEnemySpawnType.cs +++ b/Questionable/Model/V1/EEnemySpawnType.cs @@ -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, diff --git a/Questionable/Model/V1/EInteractionType.cs b/Questionable/Model/V1/EInteractionType.cs index 9c9c8d38..5e03db43 100644 --- a/Questionable/Model/V1/EInteractionType.cs +++ b/Questionable/Model/V1/EInteractionType.cs @@ -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 index 00000000..42b67ef5 --- /dev/null +++ b/Questionable/Model/V1/ESkipCondition.cs @@ -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, +} diff --git a/Questionable/Model/V1/QuestStep.cs b/Questionable/Model/V1/QuestStep.cs index 404e6910..58a84226 100644 --- a/Questionable/Model/V1/QuestStep.cs +++ b/Questionable/Model/V1/QuestStep.cs @@ -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? KillEnemyDataIds { get; set; } + public IList KillEnemyDataIds { get; set; } = new List(); + + public IList SkipIf { get; set; } = new List(); } 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 index 00000000..ae137fd2 --- /dev/null +++ b/Questionable/QuestPaths/Endwalker/AetherCurrents/Labyrinthos/4320_Gleaners Wish.json @@ -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 index 00000000..bb4390ea --- /dev/null +++ b/Questionable/QuestPaths/Endwalker/AetherCurrents/Labyrinthos/4329_Let the Good Times Troll.json @@ -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 index 00000000..ff4153da --- /dev/null +++ b/Questionable/QuestPaths/Endwalker/AetherCurrents/Labyrinthos/4480_Lost Little Troll.json @@ -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 index 00000000..84b3ed64 --- /dev/null +++ b/Questionable/QuestPaths/Endwalker/AetherCurrents/Labyrinthos/4484_The Lad in Labyrinthos.json @@ -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 index 00000000..3b475c42 --- /dev/null +++ b/Questionable/QuestPaths/Endwalker/AetherCurrents/Mare Lamentorum/4240_True Carrot Crimes.json @@ -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 index 00000000..1d647dd6 --- /dev/null +++ b/Questionable/QuestPaths/Endwalker/AetherCurrents/Mare Lamentorum/4241_Carrots Its Whats for Dinner.json @@ -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 index 00000000..0bc968ef --- /dev/null +++ b/Questionable/QuestPaths/Endwalker/AetherCurrents/Mare Lamentorum/4253_Alluring Allag.json @@ -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 index 00000000..38d7f401 --- /dev/null +++ b/Questionable/QuestPaths/Endwalker/AetherCurrents/Mare Lamentorum/4516_Name That Way.json @@ -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 index 00000000..537f9e4e --- /dev/null +++ b/Questionable/QuestPaths/Endwalker/AetherCurrents/Ultima Thule/4342_Ending as One.json @@ -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 index 00000000..6927c115 --- /dev/null +++ b/Questionable/QuestPaths/Endwalker/AetherCurrents/Ultima Thule/4346_A Most Stimulating Discussion.json @@ -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 index 00000000..68b2a162 --- /dev/null +++ b/Questionable/QuestPaths/Endwalker/AetherCurrents/Ultima Thule/4354_Combat Evolved.json @@ -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" + } + ] + } + ] +} diff --git a/Questionable/QuestPaths/Endwalker/MSQ/F-Labyrinthos2/4442_No Job Too Small.json b/Questionable/QuestPaths/Endwalker/MSQ/F-Labyrinthos2/4442_No Job Too Small.json index f0bfbd39..2de34634 100644 --- a/Questionable/QuestPaths/Endwalker/MSQ/F-Labyrinthos2/4442_No Job Too Small.json +++ b/Questionable/QuestPaths/Endwalker/MSQ/F-Labyrinthos2/4442_No Job Too Small.json @@ -21,47 +21,6 @@ { "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, diff --git a/Questionable/QuestPaths/Endwalker/MSQ/F-Labyrinthos2/4447_Once Forged.json b/Questionable/QuestPaths/Endwalker/MSQ/F-Labyrinthos2/4447_Once Forged.json index f4f01da3..129aa1ff 100644 --- a/Questionable/QuestPaths/Endwalker/MSQ/F-Labyrinthos2/4447_Once Forged.json +++ b/Questionable/QuestPaths/Endwalker/MSQ/F-Labyrinthos2/4447_Once Forged.json @@ -83,6 +83,47 @@ "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": { diff --git a/Questionable/QuestPaths/Endwalker/MSQ/F-Labyrinthos2/4448_Bonds of Adamantite.json b/Questionable/QuestPaths/Endwalker/MSQ/F-Labyrinthos2/4448_Bonds of Adamantite.json index e0f7313c..ae59c625 100644 --- a/Questionable/QuestPaths/Endwalker/MSQ/F-Labyrinthos2/4448_Bonds of Adamantite.json +++ b/Questionable/QuestPaths/Endwalker/MSQ/F-Labyrinthos2/4448_Bonds of Adamantite.json @@ -20,6 +20,16 @@ { "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" } ] }, diff --git a/Questionable/QuestPaths/Endwalker/MSQ/F-Labyrinthos2/4449_Her Children One and All.json b/Questionable/QuestPaths/Endwalker/MSQ/F-Labyrinthos2/4449_Her Children One and All.json index ebcf3a36..53f10dbe 100644 --- a/Questionable/QuestPaths/Endwalker/MSQ/F-Labyrinthos2/4449_Her Children One and All.json +++ b/Questionable/QuestPaths/Endwalker/MSQ/F-Labyrinthos2/4449_Her Children One and All.json @@ -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" diff --git a/Questionable/QuestPaths/Endwalker/MSQ/G-UltimaThule/4450_A Bold Decision.json b/Questionable/QuestPaths/Endwalker/MSQ/G-UltimaThule/4450_A Bold Decision.json index d77ad64c..0dbe3cf1 100644 --- a/Questionable/QuestPaths/Endwalker/MSQ/G-UltimaThule/4450_A Bold Decision.json +++ b/Questionable/QuestPaths/Endwalker/MSQ/G-UltimaThule/4450_A Bold Decision.json @@ -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" } diff --git a/Questionable/QuestPaths/Endwalker/MSQ/G-UltimaThule/4451_Friends Gathered.json b/Questionable/QuestPaths/Endwalker/MSQ/G-UltimaThule/4451_Friends Gathered.json index a847682f..ff79368e 100644 --- a/Questionable/QuestPaths/Endwalker/MSQ/G-UltimaThule/4451_Friends Gathered.json +++ b/Questionable/QuestPaths/Endwalker/MSQ/G-UltimaThule/4451_Friends Gathered.json @@ -65,6 +65,7 @@ "Y": -13.777, "Z": 149.70618 }, + "StopDistance": 5, "TerritoryId": 962, "InteractionType": "Interact" } @@ -114,8 +115,13 @@ "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" + ] } ] } diff --git a/Questionable/QuestPaths/Endwalker/MSQ/G-UltimaThule/4452_Unto the Heavens.json b/Questionable/QuestPaths/Endwalker/MSQ/G-UltimaThule/4452_Unto the Heavens.json index f15b9b31..89c4e4ee 100644 --- a/Questionable/QuestPaths/Endwalker/MSQ/G-UltimaThule/4452_Unto the Heavens.json +++ b/Questionable/QuestPaths/Endwalker/MSQ/G-UltimaThule/4452_Unto the Heavens.json @@ -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" } diff --git a/Questionable/QuestPaths/Endwalker/MSQ/G-UltimaThule/4453_A Strange New World.json b/Questionable/QuestPaths/Endwalker/MSQ/G-UltimaThule/4453_A Strange New World.json index 9a485536..cf022dd1 100644 --- a/Questionable/QuestPaths/Endwalker/MSQ/G-UltimaThule/4453_A Strange New World.json +++ b/Questionable/QuestPaths/Endwalker/MSQ/G-UltimaThule/4453_A Strange New World.json @@ -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, diff --git a/Questionable/QuestPaths/Endwalker/MSQ/G-UltimaThule/4454_On Burdened Wings.json b/Questionable/QuestPaths/Endwalker/MSQ/G-UltimaThule/4454_On Burdened Wings.json index 63150653..a71e5b75 100644 --- a/Questionable/QuestPaths/Endwalker/MSQ/G-UltimaThule/4454_On Burdened Wings.json +++ b/Questionable/QuestPaths/Endwalker/MSQ/G-UltimaThule/4454_On Burdened Wings.json @@ -12,6 +12,7 @@ "Y": 73.47535, "Z": 309.86487 }, + "StopDistance": 7, "TerritoryId": 960, "InteractionType": "Interact" } @@ -27,8 +28,11 @@ "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, @@ -37,8 +41,11 @@ "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" } @@ -88,17 +97,9 @@ "Z": -30.71643 }, "TerritoryId": 960, - "InteractionType": "Interact" - }, - { - "DataId": 2012283, - "Position": { - "X": -465.1103, - "Y": 56.47351, - "Z": -30.71643 - }, - "TerritoryId": 960, - "InteractionType": "Interact" + "InteractionType": "Interact", + "$.0": "[1]", + "$.1": "QuestVariables if done first: 1 0 0 0 0 ??" }, { "DataId": 2012282, @@ -108,6 +109,18 @@ "Z": -33.676758 }, "TerritoryId": 960, + "InteractionType": "Interact", + "$.0": "[1]", + "$.1": "QuestVariables if done after [1]: 2 0 0 0 0 ??" + }, + { + "DataId": 2012281, + "Position": { + "X": -472.25153, + "Y": 56.26001, + "Z": -20.676025 + }, + "TerritoryId": 960, "InteractionType": "Interact" } ] @@ -137,8 +150,10 @@ "Y": 64.78333, "Z": -200.3357 }, + "StopDistance": 1, "TerritoryId": 960, "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", "KillEnemyDataIds": [ 14002 ] diff --git a/Questionable/QuestPaths/Endwalker/MSQ/G-UltimaThule/4455_A Test of Will.json b/Questionable/QuestPaths/Endwalker/MSQ/G-UltimaThule/4455_A Test of Will.json index b3a9e5b8..6f0777b8 100644 --- a/Questionable/QuestPaths/Endwalker/MSQ/G-UltimaThule/4455_A Test of Will.json +++ b/Questionable/QuestPaths/Endwalker/MSQ/G-UltimaThule/4455_A Test of Will.json @@ -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" } diff --git a/Questionable/QuestPaths/Endwalker/MSQ/G-UltimaThule/4456_Roads Paved of Sacrifice.json b/Questionable/QuestPaths/Endwalker/MSQ/G-UltimaThule/4456_Roads Paved of Sacrifice.json index c3e34381..3e06deef 100644 --- a/Questionable/QuestPaths/Endwalker/MSQ/G-UltimaThule/4456_Roads Paved of Sacrifice.json +++ b/Questionable/QuestPaths/Endwalker/MSQ/G-UltimaThule/4456_Roads Paved of Sacrifice.json @@ -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 } ] }, @@ -107,8 +111,11 @@ "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, @@ -117,8 +124,11 @@ "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, @@ -127,6 +137,7 @@ "Y": 272.48022, "Z": -657.49603 }, + "StopDistance": 8, "TerritoryId": 960, "InteractionType": "AttuneAetheryte" }, @@ -137,8 +148,11 @@ "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, @@ -147,8 +161,11 @@ "Y": 272.9381, "Z": -592.5841 }, + "StopDistance": 4, "TerritoryId": 960, - "InteractionType": "Interact" + "InteractionType": "Interact", + "$.0": "[4]", + "$.1": "QuestVariables if done first: TODO" } ] }, diff --git a/Questionable/QuestPaths/Endwalker/MSQ/G-UltimaThule/4457_Flesh Abandoned.json b/Questionable/QuestPaths/Endwalker/MSQ/G-UltimaThule/4457_Flesh Abandoned.json index 437dc072..16e9a70c 100644 --- a/Questionable/QuestPaths/Endwalker/MSQ/G-UltimaThule/4457_Flesh Abandoned.json +++ b/Questionable/QuestPaths/Endwalker/MSQ/G-UltimaThule/4457_Flesh Abandoned.json @@ -72,6 +72,7 @@ "Y": 269.0949, "Z": -491.66098 }, + "StopDistance": 7, "TerritoryId": 960, "InteractionType": "Interact" } diff --git a/Questionable/QuestPaths/Endwalker/MSQ/G-UltimaThule/4458_Where Knowledge Leads.json b/Questionable/QuestPaths/Endwalker/MSQ/G-UltimaThule/4458_Where Knowledge Leads.json index ade54fa1..ede2f55d 100644 --- a/Questionable/QuestPaths/Endwalker/MSQ/G-UltimaThule/4458_Where Knowledge Leads.json +++ b/Questionable/QuestPaths/Endwalker/MSQ/G-UltimaThule/4458_Where Knowledge Leads.json @@ -12,6 +12,7 @@ "Y": 269.0903, "Z": -490.44025 }, + "StopDistance": 7, "TerritoryId": 960, "InteractionType": "Interact" } @@ -50,6 +51,35 @@ { "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": { @@ -58,7 +88,21 @@ "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, diff --git a/Questionable/QuestPaths/Endwalker/MSQ/G-UltimaThule/4459_Victory x Lost.json b/Questionable/QuestPaths/Endwalker/MSQ/G-UltimaThule/4459_Victory x Lost.json index eabfc771..74e149b1 100644 --- a/Questionable/QuestPaths/Endwalker/MSQ/G-UltimaThule/4459_Victory x Lost.json +++ b/Questionable/QuestPaths/Endwalker/MSQ/G-UltimaThule/4459_Victory x Lost.json @@ -12,6 +12,7 @@ "Y": 269.0203, "Z": -633.5393 }, + "StopDistance": 5, "TerritoryId": 960, "InteractionType": "Interact" } @@ -20,6 +21,17 @@ { "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" } @@ -118,6 +132,7 @@ }, "TerritoryId": 960, "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", "KillEnemyDataIds": [ 13999 ] @@ -135,7 +150,8 @@ "Z": 239.39868 }, "TerritoryId": 960, - "InteractionType": "AttuneAetherCurrent" + "InteractionType": "AttuneAetherCurrent", + "AetherCurrentId": 2818392 }, { "DataId": 1039791, @@ -194,29 +210,10 @@ "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": { diff --git a/Questionable/QuestPaths/Endwalker/MSQ/G-UltimaThule/4460_x.json b/Questionable/QuestPaths/Endwalker/MSQ/G-UltimaThule/4460_x.json index 6d64d03a..cb9500ea 100644 --- a/Questionable/QuestPaths/Endwalker/MSQ/G-UltimaThule/4460_x.json +++ b/Questionable/QuestPaths/Endwalker/MSQ/G-UltimaThule/4460_x.json @@ -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, @@ -110,7 +113,16 @@ }, "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, @@ -120,7 +132,9 @@ "Z": 289.66187 }, "TerritoryId": 960, - "InteractionType": "AttuneAetherCurrent" + "InteractionType": "AttuneAetherCurrent", + "AetherCurrentId": 2818397, + "DisableNavmesh": true }, { "DataId": 1040349, diff --git a/Questionable/QuestPaths/Endwalker/MSQ/G-UltimaThule/4461_Hello World.json b/Questionable/QuestPaths/Endwalker/MSQ/G-UltimaThule/4461_Hello World.json index f20abe88..7fddef99 100644 --- a/Questionable/QuestPaths/Endwalker/MSQ/G-UltimaThule/4461_Hello World.json +++ b/Questionable/QuestPaths/Endwalker/MSQ/G-UltimaThule/4461_Hello World.json @@ -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)" } ] }, diff --git a/Questionable/QuestPaths/Endwalker/MSQ/G-UltimaThule/4462_Forge Ahead.json b/Questionable/QuestPaths/Endwalker/MSQ/G-UltimaThule/4462_Forge Ahead.json index ff5df6aa..8d3eda32 100644 --- a/Questionable/QuestPaths/Endwalker/MSQ/G-UltimaThule/4462_Forge Ahead.json +++ b/Questionable/QuestPaths/Endwalker/MSQ/G-UltimaThule/4462_Forge Ahead.json @@ -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" } diff --git a/Questionable/QuestPaths/Endwalker/MSQ/G-UltimaThule/4463_Youre Not Alone.json b/Questionable/QuestPaths/Endwalker/MSQ/G-UltimaThule/4463_Youre Not Alone.json index 6c790307..84bf520b 100644 --- a/Questionable/QuestPaths/Endwalker/MSQ/G-UltimaThule/4463_Youre Not Alone.json +++ b/Questionable/QuestPaths/Endwalker/MSQ/G-UltimaThule/4463_Youre Not Alone.json @@ -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, @@ -121,8 +131,8 @@ "Y": 637.1029, "Z": 2.690414 }, - "TerritoryId": 960, - "InteractionType": "Interact" + "TerritoryId": 1027, + "InteractionType": "WalkTo" } ] }, diff --git a/Questionable/QuestPaths/Endwalker/MSQ/G-UltimaThule/4464_Endwalker.json b/Questionable/QuestPaths/Endwalker/MSQ/G-UltimaThule/4464_Endwalker.json index edd471cf..dc1a27d2 100644 --- a/Questionable/QuestPaths/Endwalker/MSQ/G-UltimaThule/4464_Endwalker.json +++ b/Questionable/QuestPaths/Endwalker/MSQ/G-UltimaThule/4464_Endwalker.json @@ -46,6 +46,7 @@ "Y": 0, "Z": 106 }, + "StopDistance": 5, "TerritoryId": 1029, "InteractionType": "ManualAction", "Comment": "Duty - The Final Day" @@ -78,8 +79,11 @@ "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, @@ -88,8 +92,11 @@ "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, @@ -99,7 +106,9 @@ "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, @@ -108,8 +117,11 @@ "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, @@ -119,7 +131,9 @@ "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, @@ -129,7 +143,9 @@ "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, @@ -139,7 +155,9 @@ "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, diff --git a/Questionable/QuestPaths/Endwalker/MSQ/H-6.1/4527_Bountiful Ruins.json b/Questionable/QuestPaths/Endwalker/MSQ/H-6.1/4527_Bountiful Ruins.json index 0904c1dd..bbcf8a31 100644 --- a/Questionable/QuestPaths/Endwalker/MSQ/H-6.1/4527_Bountiful Ruins.json +++ b/Questionable/QuestPaths/Endwalker/MSQ/H-6.1/4527_Bountiful Ruins.json @@ -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 } ] } diff --git a/Questionable/QuestPaths/Endwalker/MSQ/H-6.1/4528_Friends for the Road.json b/Questionable/QuestPaths/Endwalker/MSQ/H-6.1/4528_Friends for the Road.json index c67d2170..eea0ec92 100644 --- a/Questionable/QuestPaths/Endwalker/MSQ/H-6.1/4528_Friends for the Road.json +++ b/Questionable/QuestPaths/Endwalker/MSQ/H-6.1/4528_Friends for the Road.json @@ -27,8 +27,10 @@ "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" @@ -39,6 +41,19 @@ { "Sequence": 2, "Steps": [ + { + "Position": { + "X": -350.9551, + "Y": 18.999998, + "Z": 56.043774 + }, + "TerritoryId": 962, + "InteractionType": "WalkTo", + "AethernetShortcut": [ + "[Old Sharlayan] The Baldesion Annex", + "[Old Sharlayan] The Studium" + ] + }, { "DataId": 1039581, "Position": { @@ -47,11 +62,7 @@ "Z": 92.48486 }, "TerritoryId": 962, - "InteractionType": "Interact", - "AethernetShortcut": [ - "[Old Sharlayan] The Baldesion Annex", - "[Old Sharlayan] The Studium" - ] + "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 } ] }, @@ -94,7 +107,9 @@ "Z": 603.41797 }, "TerritoryId": 957, - "InteractionType": "Interact" + "InteractionType": "Interact", + "AetheryteShortcut": "Thavnair - Yedlihmad", + "Fly": true } ] } diff --git a/Questionable/QuestSchema/schema_v1.json b/Questionable/QuestSchema/schema_v1.json index b1030690..46d49250 100644 --- a/Questionable/QuestSchema/schema_v1.json +++ b/Questionable/QuestSchema/schema_v1.json @@ -103,7 +103,7 @@ ] }, "Disabled": { - "description": "Unused (TODO)", + "description": "Whether this step is disabled (see SkipIf for more control)", "type": "boolean" }, "DisableNavmesh": { @@ -301,7 +301,8 @@ "stretch", "wave", "rally", - "deny" + "deny", + "pray" ] }, "ChatMessage": { diff --git a/Questionable/Windows/DebugWindow.cs b/Questionable/Windows/DebugWindow.cs index 61c843bc..2b08ab01 100644 --- a/Questionable/Windows/DebugWindow.cs +++ b/Questionable/Windows/DebugWindow.cs @@ -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();