From deb426f81cf83dc544ba693fe53982b3cedae651 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Wed, 24 Jul 2024 20:47:08 +0200 Subject: [PATCH] Diving; add more Shadowbringers MSQ --- QuestPathGenerator/RoslynShortcuts.cs | 2 + .../3375_Work to Live or Live to Work.json | 127 +++++++ .../Il Mheg/3398_Delightful Decorations.json | 4 +- .../Rak'tika/3444_What We Do for Family.json | 69 ++++ .../Rak'tika/3467_Suit Up.json | 96 +++++ .../Rak'tika/3478_Stand on Ceremony.json | 88 +++++ .../Rak'tika/3656_The Great Deceiver.json | 66 ++++ .../3291_In Search of Alisaie.json | 0 .../3292_City of the Mord.json | 0 .../3293_Working Off the Meal.json | 0 .../3294_A Desert Crossing.json | 0 .../3295_Following in Her Footprints.json | 0 .../3296_Culling Their Ranks.json | 0 .../3297_A Purchase of Fruit.json | 0 .../3298_The Time Left to Us.json | 0 .../3299_Tears on the Sand.json | 0 .../B-Il Mheg/3319_Memento of a Friend.json | 4 +- .../MSQ/C-Rak'tika/3328_Saying Good-bye.json | 1 + .../C-Rak'tika/3329_Stirring Up Trouble.json | 185 ++++++++++ .../C-Rak'tika/3330_A Beeautiful Plan.json | 109 ++++++ .../C-Rak'tika/3331_An Unwanted Proposal.json | 69 ++++ .../MSQ/C-Rak'tika/3332_Put to the Proof.json | 197 ++++++++++ .../MSQ/C-Rak'tika/3333_Into the Wood.json | 109 ++++++ .../MSQ/C-Rak'tika/3334_Top of the Tree.json | 134 +++++++ .../C-Rak'tika/3335_Look to the Stars.json | 348 ++++++++++++++++++ .../MSQ/C-Rak'tika/3336_Mi Casa, Toupasa.json | 219 +++++++++++ ...37_Legend of the Not-so-hidden Temple.json | 51 +++ .../MSQ/C-Rak'tika/3338_The Aftermath.json | 99 +++++ .../MSQ/C-Rak'tika/3339_In Good Faith.json | 106 ++++++ .../3340_The Burden of Knowledge.json | 77 ++++ .../MSQ/C-Rak'tika/3341_Bearing with It.json | 55 +++ .../MSQ/C-Rak'tika/3342_Out of the Wood.json | 106 ++++++ .../D-Amh Araeng 2/3606_When It Rains.json | 99 +++++ .../3607_Word from On High.json | 98 +++++ .../MSQ/D-Amh Araeng 2/3608_Small Favors.json | 137 +++++++ .../D-Amh Araeng 2/3609_The Best Way Out.json | 142 +++++++ .../MSQ/D-Amh Araeng 2/3610_Free Trade.json | 117 ++++++ .../3611_The Trolley Problem.json | 159 ++++++++ .../D-Amh Araeng 2/3612_Rust and Ruin.json | 142 +++++++ .../MSQ/D-Amh Araeng 2/3613_On Track.json | 214 +++++++++++ .../3614_Down for Maintenance.json | 75 ++++ .../D-Amh Araeng 2/3615_The Truth Hurts.json | 22 ++ QuestPaths/quest-v1.json | 15 + .../V1/Converter/InteractionTypeConverter.cs | 1 + .../V1/Converter/JumpTypeConverter.cs | 12 + Questionable.Model/V1/EInteractionType.cs | 1 + Questionable.Model/V1/EJumpType.cs | 11 + Questionable.Model/V1/JumpDestination.cs | 3 + .../Steps/Common/AbstractDelayedTask.cs | 2 +- .../Controller/Steps/Interactions/Dive.cs | 143 +++++++ .../Controller/Steps/Interactions/Jump.cs | 65 +++- Questionable/QuestionablePlugin.cs | 3 +- .../QuestComponents/CreationUtilsComponent.cs | 2 +- 53 files changed, 3771 insertions(+), 13 deletions(-) create mode 100644 QuestPaths/5.x - Shadowbringers/Aether Currents/Amh Araeng/3375_Work to Live or Live to Work.json create mode 100644 QuestPaths/5.x - Shadowbringers/Aether Currents/Rak'tika/3444_What We Do for Family.json create mode 100644 QuestPaths/5.x - Shadowbringers/Aether Currents/Rak'tika/3467_Suit Up.json create mode 100644 QuestPaths/5.x - Shadowbringers/Aether Currents/Rak'tika/3478_Stand on Ceremony.json create mode 100644 QuestPaths/5.x - Shadowbringers/Aether Currents/Rak'tika/3656_The Great Deceiver.json rename QuestPaths/5.x - Shadowbringers/MSQ/{A3-Amh Areng 1 => A3-Amh Araeng 1}/3291_In Search of Alisaie.json (100%) rename QuestPaths/5.x - Shadowbringers/MSQ/{A3-Amh Areng 1 => A3-Amh Araeng 1}/3292_City of the Mord.json (100%) rename QuestPaths/5.x - Shadowbringers/MSQ/{A3-Amh Areng 1 => A3-Amh Araeng 1}/3293_Working Off the Meal.json (100%) rename QuestPaths/5.x - Shadowbringers/MSQ/{A3-Amh Areng 1 => A3-Amh Araeng 1}/3294_A Desert Crossing.json (100%) rename QuestPaths/5.x - Shadowbringers/MSQ/{A3-Amh Areng 1 => A3-Amh Araeng 1}/3295_Following in Her Footprints.json (100%) rename QuestPaths/5.x - Shadowbringers/MSQ/{A3-Amh Areng 1 => A3-Amh Araeng 1}/3296_Culling Their Ranks.json (100%) rename QuestPaths/5.x - Shadowbringers/MSQ/{A3-Amh Areng 1 => A3-Amh Araeng 1}/3297_A Purchase of Fruit.json (100%) rename QuestPaths/5.x - Shadowbringers/MSQ/{A3-Amh Areng 1 => A3-Amh Araeng 1}/3298_The Time Left to Us.json (100%) rename QuestPaths/5.x - Shadowbringers/MSQ/{A3-Amh Areng 1 => A3-Amh Araeng 1}/3299_Tears on the Sand.json (100%) create mode 100644 QuestPaths/5.x - Shadowbringers/MSQ/C-Rak'tika/3329_Stirring Up Trouble.json create mode 100644 QuestPaths/5.x - Shadowbringers/MSQ/C-Rak'tika/3330_A Beeautiful Plan.json create mode 100644 QuestPaths/5.x - Shadowbringers/MSQ/C-Rak'tika/3331_An Unwanted Proposal.json create mode 100644 QuestPaths/5.x - Shadowbringers/MSQ/C-Rak'tika/3332_Put to the Proof.json create mode 100644 QuestPaths/5.x - Shadowbringers/MSQ/C-Rak'tika/3333_Into the Wood.json create mode 100644 QuestPaths/5.x - Shadowbringers/MSQ/C-Rak'tika/3334_Top of the Tree.json create mode 100644 QuestPaths/5.x - Shadowbringers/MSQ/C-Rak'tika/3335_Look to the Stars.json create mode 100644 QuestPaths/5.x - Shadowbringers/MSQ/C-Rak'tika/3336_Mi Casa, Toupasa.json create mode 100644 QuestPaths/5.x - Shadowbringers/MSQ/C-Rak'tika/3337_Legend of the Not-so-hidden Temple.json create mode 100644 QuestPaths/5.x - Shadowbringers/MSQ/C-Rak'tika/3338_The Aftermath.json create mode 100644 QuestPaths/5.x - Shadowbringers/MSQ/C-Rak'tika/3339_In Good Faith.json create mode 100644 QuestPaths/5.x - Shadowbringers/MSQ/C-Rak'tika/3340_The Burden of Knowledge.json create mode 100644 QuestPaths/5.x - Shadowbringers/MSQ/C-Rak'tika/3341_Bearing with It.json create mode 100644 QuestPaths/5.x - Shadowbringers/MSQ/C-Rak'tika/3342_Out of the Wood.json create mode 100644 QuestPaths/5.x - Shadowbringers/MSQ/D-Amh Araeng 2/3606_When It Rains.json create mode 100644 QuestPaths/5.x - Shadowbringers/MSQ/D-Amh Araeng 2/3607_Word from On High.json create mode 100644 QuestPaths/5.x - Shadowbringers/MSQ/D-Amh Araeng 2/3608_Small Favors.json create mode 100644 QuestPaths/5.x - Shadowbringers/MSQ/D-Amh Araeng 2/3609_The Best Way Out.json create mode 100644 QuestPaths/5.x - Shadowbringers/MSQ/D-Amh Araeng 2/3610_Free Trade.json create mode 100644 QuestPaths/5.x - Shadowbringers/MSQ/D-Amh Araeng 2/3611_The Trolley Problem.json create mode 100644 QuestPaths/5.x - Shadowbringers/MSQ/D-Amh Araeng 2/3612_Rust and Ruin.json create mode 100644 QuestPaths/5.x - Shadowbringers/MSQ/D-Amh Araeng 2/3613_On Track.json create mode 100644 QuestPaths/5.x - Shadowbringers/MSQ/D-Amh Araeng 2/3614_Down for Maintenance.json create mode 100644 QuestPaths/5.x - Shadowbringers/MSQ/D-Amh Araeng 2/3615_The Truth Hurts.json create mode 100644 Questionable.Model/V1/Converter/JumpTypeConverter.cs create mode 100644 Questionable.Model/V1/EJumpType.cs create mode 100644 Questionable/Controller/Steps/Interactions/Dive.cs diff --git a/QuestPathGenerator/RoslynShortcuts.cs b/QuestPathGenerator/RoslynShortcuts.cs index 2ebecd41..c584e811 100644 --- a/QuestPathGenerator/RoslynShortcuts.cs +++ b/QuestPathGenerator/RoslynShortcuts.cs @@ -145,6 +145,8 @@ public static class RoslynShortcuts Assignment(nameof(JumpDestination.StopDistance), jumpDestination.StopDistance, null) .AsSyntaxNodeOrToken(), Assignment(nameof(JumpDestination.DelaySeconds), jumpDestination.DelaySeconds, null) + .AsSyntaxNodeOrToken(), + Assignment(nameof(JumpDestination.Type), jumpDestination.Type, default) .AsSyntaxNodeOrToken())))); } else if (value is ExcelRef excelRef) diff --git a/QuestPaths/5.x - Shadowbringers/Aether Currents/Amh Araeng/3375_Work to Live or Live to Work.json b/QuestPaths/5.x - Shadowbringers/Aether Currents/Amh Araeng/3375_Work to Live or Live to Work.json new file mode 100644 index 00000000..2b0ad608 --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Aether Currents/Amh Araeng/3375_Work to Live or Live to Work.json @@ -0,0 +1,127 @@ +{ + "$schema": "https://carvel.li/questionable/quest-1.0", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1027872, + "Position": { + "X": 268.4519, + "Y": 4.0296993, + "Z": -144.1825 + }, + "TerritoryId": 815, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1027264, + "Position": { + "X": 60.593506, + "Y": 36.247692, + "Z": -171.80133 + }, + "StopDistance": 7, + "TerritoryId": 819, + "InteractionType": "Interact", + "AetheryteShortcut": "Crystarium", + "AethernetShortcut": [ + "[Crystarium] Aetheryte Plaza", + "[Crystarium] The Amaro Launch" + ], + "TargetTerritoryId": 815 + }, + { + "DataId": 1030391, + "Position": { + "X": 579.9801, + "Y": -46.38523, + "Z": -684.90125 + }, + "TerritoryId": 815, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2010010, + "Position": { + "X": 651.8806, + "Y": -54.062744, + "Z": -594.5068 + }, + "TerritoryId": 815, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 2010011, + "Position": { + "X": 665.0338, + "Y": -58.9151, + "Z": -575.9518 + }, + "TerritoryId": 815, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 2010012, + "Position": { + "X": 674.5249, + "Y": -60.654602, + "Z": -566.03345 + }, + "TerritoryId": 815, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1030391, + "Position": { + "X": 579.9801, + "Y": -46.38523, + "Z": -684.90125 + }, + "TerritoryId": 815, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Aether Currents/Il Mheg/3398_Delightful Decorations.json b/QuestPaths/5.x - Shadowbringers/Aether Currents/Il Mheg/3398_Delightful Decorations.json index 7db687df..363f2587 100644 --- a/QuestPaths/5.x - Shadowbringers/Aether Currents/Il Mheg/3398_Delightful Decorations.json +++ b/QuestPaths/5.x - Shadowbringers/Aether Currents/Il Mheg/3398_Delightful Decorations.json @@ -27,8 +27,8 @@ "Z": -194.937 }, "TerritoryId": 816, - "InteractionType": "WaitForManualProgress", - "Comment": "Dive (manually)" + "InteractionType": "Dive", + "Comment": "TODO: Verify diving works here" }, { "DataId": 2010160, diff --git a/QuestPaths/5.x - Shadowbringers/Aether Currents/Rak'tika/3444_What We Do for Family.json b/QuestPaths/5.x - Shadowbringers/Aether Currents/Rak'tika/3444_What We Do for Family.json new file mode 100644 index 00000000..26e5c4d7 --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Aether Currents/Rak'tika/3444_What We Do for Family.json @@ -0,0 +1,69 @@ +{ + "$schema": "https://carvel.li/questionable/quest-1.0", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1029023, + "Position": { + "X": -131.36493, + "Y": -16.477911, + "Z": 316.3042 + }, + "TerritoryId": 817, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1029024, + "Position": { + "X": -301.5335, + "Y": 8.681433, + "Z": 711.2992 + }, + "TerritoryId": 817, + "InteractionType": "Say", + "ChatMessage": { + "Key": "TEXT_LUCKZE010_03444_SYSTEM_100_011" + } + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2009776, + "Position": { + "X": -375.38727, + "Y": 10.0251465, + "Z": 451.65173 + }, + "TerritoryId": 817, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1029024, + "Position": { + "X": -301.5335, + "Y": 8.681433, + "Z": 711.2992 + }, + "TerritoryId": 817, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Aether Currents/Rak'tika/3467_Suit Up.json b/QuestPaths/5.x - Shadowbringers/Aether Currents/Rak'tika/3467_Suit Up.json new file mode 100644 index 00000000..dcfa760f --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Aether Currents/Rak'tika/3467_Suit Up.json @@ -0,0 +1,96 @@ +{ + "$schema": "https://carvel.li/questionable/quest-1.0", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1027736, + "Position": { + "X": 396.38354, + "Y": 20.422523, + "Z": -179.12573 + }, + "TerritoryId": 817, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1031383, + "Position": { + "X": 569.51245, + "Y": 27.331062, + "Z": 143.69421 + }, + "TerritoryId": 817, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, + { + "DataId": 1031381, + "Position": { + "X": 558.64795, + "Y": 27.378386, + "Z": 152.42236 + }, + "TerritoryId": 817, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 1031382, + "Position": { + "X": 575.1887, + "Y": 27.872107, + "Z": 161.39453 + }, + "TerritoryId": 817, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1027736, + "Position": { + "X": 396.38354, + "Y": 20.422523, + "Z": -179.12573 + }, + "TerritoryId": 817, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Rak'tika - Fanow" + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Aether Currents/Rak'tika/3478_Stand on Ceremony.json b/QuestPaths/5.x - Shadowbringers/Aether Currents/Rak'tika/3478_Stand on Ceremony.json new file mode 100644 index 00000000..5abf3a2c --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Aether Currents/Rak'tika/3478_Stand on Ceremony.json @@ -0,0 +1,88 @@ +{ + "$schema": "https://carvel.li/questionable/quest-1.0", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1027716, + "Position": { + "X": 494.9873, + "Y": -6.555339, + "Z": -224.93329 + }, + "TerritoryId": 817, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1031001, + "Position": { + "X": 167.71179, + "Y": -20, + "Z": -471.00024 + }, + "TerritoryId": 817, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": 168.35954, + "Y": -20, + "Z": -483.02176 + }, + "StopDistance": 0.5, + "TerritoryId": 817, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [ + 11163, + 11164 + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1031001, + "Position": { + "X": 167.71179, + "Y": -20, + "Z": -471.00024 + }, + "StopDistance": 7, + "TerritoryId": 817, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1027716, + "Position": { + "X": 494.9873, + "Y": -6.555339, + "Z": -224.93329 + }, + "TerritoryId": 817, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Rak'tika - Fanow" + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Aether Currents/Rak'tika/3656_The Great Deceiver.json b/QuestPaths/5.x - Shadowbringers/Aether Currents/Rak'tika/3656_The Great Deceiver.json new file mode 100644 index 00000000..458418ca --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Aether Currents/Rak'tika/3656_The Great Deceiver.json @@ -0,0 +1,66 @@ +{ + "$schema": "https://carvel.li/questionable/quest-1.0", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1030747, + "Position": { + "X": -81.28485, + "Y": -19.061882, + "Z": 307.20984 + }, + "TerritoryId": 817, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1030818, + "Position": { + "X": -28.641174, + "Y": -24.631424, + "Z": 318.98987 + }, + "TerritoryId": 817, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2010348, + "Position": { + "X": -354.5739, + "Y": 7.3395386, + "Z": 266.65137 + }, + "TerritoryId": 817, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1030821, + "Position": { + "X": -524.4679, + "Y": 0.08425587, + "Z": 227.00842 + }, + "TerritoryId": 817, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/MSQ/A3-Amh Areng 1/3291_In Search of Alisaie.json b/QuestPaths/5.x - Shadowbringers/MSQ/A3-Amh Araeng 1/3291_In Search of Alisaie.json similarity index 100% rename from QuestPaths/5.x - Shadowbringers/MSQ/A3-Amh Areng 1/3291_In Search of Alisaie.json rename to QuestPaths/5.x - Shadowbringers/MSQ/A3-Amh Araeng 1/3291_In Search of Alisaie.json diff --git a/QuestPaths/5.x - Shadowbringers/MSQ/A3-Amh Areng 1/3292_City of the Mord.json b/QuestPaths/5.x - Shadowbringers/MSQ/A3-Amh Araeng 1/3292_City of the Mord.json similarity index 100% rename from QuestPaths/5.x - Shadowbringers/MSQ/A3-Amh Areng 1/3292_City of the Mord.json rename to QuestPaths/5.x - Shadowbringers/MSQ/A3-Amh Araeng 1/3292_City of the Mord.json diff --git a/QuestPaths/5.x - Shadowbringers/MSQ/A3-Amh Areng 1/3293_Working Off the Meal.json b/QuestPaths/5.x - Shadowbringers/MSQ/A3-Amh Araeng 1/3293_Working Off the Meal.json similarity index 100% rename from QuestPaths/5.x - Shadowbringers/MSQ/A3-Amh Areng 1/3293_Working Off the Meal.json rename to QuestPaths/5.x - Shadowbringers/MSQ/A3-Amh Araeng 1/3293_Working Off the Meal.json diff --git a/QuestPaths/5.x - Shadowbringers/MSQ/A3-Amh Areng 1/3294_A Desert Crossing.json b/QuestPaths/5.x - Shadowbringers/MSQ/A3-Amh Araeng 1/3294_A Desert Crossing.json similarity index 100% rename from QuestPaths/5.x - Shadowbringers/MSQ/A3-Amh Areng 1/3294_A Desert Crossing.json rename to QuestPaths/5.x - Shadowbringers/MSQ/A3-Amh Araeng 1/3294_A Desert Crossing.json diff --git a/QuestPaths/5.x - Shadowbringers/MSQ/A3-Amh Areng 1/3295_Following in Her Footprints.json b/QuestPaths/5.x - Shadowbringers/MSQ/A3-Amh Araeng 1/3295_Following in Her Footprints.json similarity index 100% rename from QuestPaths/5.x - Shadowbringers/MSQ/A3-Amh Areng 1/3295_Following in Her Footprints.json rename to QuestPaths/5.x - Shadowbringers/MSQ/A3-Amh Araeng 1/3295_Following in Her Footprints.json diff --git a/QuestPaths/5.x - Shadowbringers/MSQ/A3-Amh Areng 1/3296_Culling Their Ranks.json b/QuestPaths/5.x - Shadowbringers/MSQ/A3-Amh Araeng 1/3296_Culling Their Ranks.json similarity index 100% rename from QuestPaths/5.x - Shadowbringers/MSQ/A3-Amh Areng 1/3296_Culling Their Ranks.json rename to QuestPaths/5.x - Shadowbringers/MSQ/A3-Amh Araeng 1/3296_Culling Their Ranks.json diff --git a/QuestPaths/5.x - Shadowbringers/MSQ/A3-Amh Areng 1/3297_A Purchase of Fruit.json b/QuestPaths/5.x - Shadowbringers/MSQ/A3-Amh Araeng 1/3297_A Purchase of Fruit.json similarity index 100% rename from QuestPaths/5.x - Shadowbringers/MSQ/A3-Amh Areng 1/3297_A Purchase of Fruit.json rename to QuestPaths/5.x - Shadowbringers/MSQ/A3-Amh Araeng 1/3297_A Purchase of Fruit.json diff --git a/QuestPaths/5.x - Shadowbringers/MSQ/A3-Amh Areng 1/3298_The Time Left to Us.json b/QuestPaths/5.x - Shadowbringers/MSQ/A3-Amh Araeng 1/3298_The Time Left to Us.json similarity index 100% rename from QuestPaths/5.x - Shadowbringers/MSQ/A3-Amh Areng 1/3298_The Time Left to Us.json rename to QuestPaths/5.x - Shadowbringers/MSQ/A3-Amh Araeng 1/3298_The Time Left to Us.json diff --git a/QuestPaths/5.x - Shadowbringers/MSQ/A3-Amh Areng 1/3299_Tears on the Sand.json b/QuestPaths/5.x - Shadowbringers/MSQ/A3-Amh Araeng 1/3299_Tears on the Sand.json similarity index 100% rename from QuestPaths/5.x - Shadowbringers/MSQ/A3-Amh Areng 1/3299_Tears on the Sand.json rename to QuestPaths/5.x - Shadowbringers/MSQ/A3-Amh Araeng 1/3299_Tears on the Sand.json diff --git a/QuestPaths/5.x - Shadowbringers/MSQ/B-Il Mheg/3319_Memento of a Friend.json b/QuestPaths/5.x - Shadowbringers/MSQ/B-Il Mheg/3319_Memento of a Friend.json index 8105c5b9..bffd1e74 100644 --- a/QuestPaths/5.x - Shadowbringers/MSQ/B-Il Mheg/3319_Memento of a Friend.json +++ b/QuestPaths/5.x - Shadowbringers/MSQ/B-Il Mheg/3319_Memento of a Friend.json @@ -28,8 +28,8 @@ "Z": -431.17603 }, "TerritoryId": 816, - "InteractionType": "Instruction", - "Comment": "Dive (manually)" + "InteractionType": "Dive", + "Comment": "TODO: Verify diving works here" }, { "DataId": 2009837, diff --git a/QuestPaths/5.x - Shadowbringers/MSQ/C-Rak'tika/3328_Saying Good-bye.json b/QuestPaths/5.x - Shadowbringers/MSQ/C-Rak'tika/3328_Saying Good-bye.json index a34e55d3..40c8c349 100644 --- a/QuestPaths/5.x - Shadowbringers/MSQ/C-Rak'tika/3328_Saying Good-bye.json +++ b/QuestPaths/5.x - Shadowbringers/MSQ/C-Rak'tika/3328_Saying Good-bye.json @@ -88,6 +88,7 @@ "Y": -18.920458, "Z": 336.62915 }, + "StopDistance": 5, "TerritoryId": 817, "InteractionType": "CompleteQuest" } diff --git a/QuestPaths/5.x - Shadowbringers/MSQ/C-Rak'tika/3329_Stirring Up Trouble.json b/QuestPaths/5.x - Shadowbringers/MSQ/C-Rak'tika/3329_Stirring Up Trouble.json new file mode 100644 index 00000000..31d9bce1 --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/MSQ/C-Rak'tika/3329_Stirring Up Trouble.json @@ -0,0 +1,185 @@ +{ + "$schema": "https://carvel.li/questionable/quest-1.0", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1029194, + "Position": { + "X": -37.216797, + "Y": -18.920458, + "Z": 336.62915 + }, + "StopDistance": 5, + "TerritoryId": 817, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1029212, + "Position": { + "X": -313.5882, + "Y": 5.156485, + "Z": 285.60303 + }, + "TerritoryId": 817, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2010066, + "Position": { + "X": -141.58856, + "Y": -0.9003296, + "Z": 49.759644 + }, + "TerritoryId": 817, + "InteractionType": "AttuneAetherCurrent", + "AetherCurrentId": 2818285 + }, + { + "DataId": 1029214, + "Position": { + "X": -157.64093, + "Y": 7.3982058, + "Z": -13.351685 + }, + "StopDistance": 2, + "TerritoryId": 817, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [ + 10879 + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1029214, + "Position": { + "X": -157.64093, + "Y": 7.3982058, + "Z": -13.351685 + }, + "TerritoryId": 817, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 2009874, + "Position": { + "X": -231.8609, + "Y": 21.713562, + "Z": -49.302002 + }, + "TerritoryId": 817, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 2009875, + "Position": { + "X": -292.2561, + "Y": 23.5141, + "Z": -182.75739 + }, + "TerritoryId": 817, + "InteractionType": "Combat", + "EnemySpawnType": "AfterItemUse", + "ItemId": 2002547, + "KillEnemyDataIds": [ + 10880 + ] + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 2010501, + "Position": { + "X": -292.28656, + "Y": 23.483582, + "Z": -182.78784 + }, + "TerritoryId": 817, + "InteractionType": "UseItem", + "ItemId": 2002548 + } + ] + }, + { + "Sequence": 7, + "Steps": [ + { + "DataId": 2009876, + "Position": { + "X": -190.44794, + "Y": 3.036438, + "Z": 2.5787354 + }, + "TerritoryId": 817, + "InteractionType": "Combat", + "EnemySpawnType": "AfterItemUse", + "ItemId": 2002547, + "KillEnemyDataIds": [ + 10881 + ] + } + ] + }, + { + "Sequence": 8, + "Steps": [ + { + "DataId": 2010502, + "Position": { + "X": -190.44794, + "Y": 3.036438, + "Z": 2.5787354 + }, + "TerritoryId": 817, + "InteractionType": "UseItem", + "ItemId": 2002548 + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1029216, + "Position": { + "X": -235.09583, + "Y": 19.22425, + "Z": -70.72565 + }, + "TerritoryId": 817, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/MSQ/C-Rak'tika/3330_A Beeautiful Plan.json b/QuestPaths/5.x - Shadowbringers/MSQ/C-Rak'tika/3330_A Beeautiful Plan.json new file mode 100644 index 00000000..9c32f692 --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/MSQ/C-Rak'tika/3330_A Beeautiful Plan.json @@ -0,0 +1,109 @@ +{ + "$schema": "https://carvel.li/questionable/quest-1.0", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1029216, + "Position": { + "X": -235.09583, + "Y": 19.22425, + "Z": -70.72565 + }, + "TerritoryId": 817, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1029218, + "Position": { + "X": -704.43274, + "Y": 14.656629, + "Z": -45.5177 + }, + "TerritoryId": 817, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": -761.0279, + "Y": 36.49958, + "Z": -337.04126 + }, + "TerritoryId": 817, + "InteractionType": "WalkTo", + "Comment": "Moves out of aggro range of the door guard" + }, + { + "DataId": 1029764, + "Position": { + "X": -763.79034, + "Y": 36.49958, + "Z": -332.29572 + }, + "StopDistance": 7, + "TerritoryId": 817, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1029220, + "Position": { + "X": -801.4496, + "Y": 40.021206, + "Z": -393.6065 + }, + "TerritoryId": 817, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 2009877, + "Position": { + "X": -820.6455, + "Y": 38.376343, + "Z": -359.4873 + }, + "TerritoryId": 817, + "InteractionType": "WaitForManualProgress", + "Comment": "Click murals" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1029221, + "Position": { + "X": -523.09454, + "Y": 2.9589303, + "Z": -35.629883 + }, + "StopDistance": 7, + "TerritoryId": 817, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/MSQ/C-Rak'tika/3331_An Unwanted Proposal.json b/QuestPaths/5.x - Shadowbringers/MSQ/C-Rak'tika/3331_An Unwanted Proposal.json new file mode 100644 index 00000000..72ce87e4 --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/MSQ/C-Rak'tika/3331_An Unwanted Proposal.json @@ -0,0 +1,69 @@ +{ + "$schema": "https://carvel.li/questionable/quest-1.0", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1029221, + "Position": { + "X": -523.09454, + "Y": 2.9589303, + "Z": -35.629883 + }, + "StopDistance": 7, + "TerritoryId": 817, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1029197, + "Position": { + "X": -87.87671, + "Y": -19.022131, + "Z": 298.20703 + }, + "TerritoryId": 817, + "InteractionType": "Interact", + "AetheryteShortcut": "Rak'tika - Slitherbough" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2009878, + "Position": { + "X": -78.90448, + "Y": -19.272217, + "Z": 312.4895 + }, + "TerritoryId": 817, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1029195, + "Position": { + "X": -35.751892, + "Y": -18.919392, + "Z": 335.71375 + }, + "StopDistance": 5, + "TerritoryId": 817, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/MSQ/C-Rak'tika/3332_Put to the Proof.json b/QuestPaths/5.x - Shadowbringers/MSQ/C-Rak'tika/3332_Put to the Proof.json new file mode 100644 index 00000000..62781539 --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/MSQ/C-Rak'tika/3332_Put to the Proof.json @@ -0,0 +1,197 @@ +{ + "$schema": "https://carvel.li/questionable/quest-1.0", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1029195, + "Position": { + "X": -35.751892, + "Y": -18.919392, + "Z": 335.71375 + }, + "StopDistance": 5, + "TerritoryId": 817, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1029223, + "Position": { + "X": -470.96973, + "Y": 2.3035004, + "Z": 301.4724 + }, + "TerritoryId": 817, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": -528.96277, + "Y": -0.6, + "Z": 341.0297 + }, + "TerritoryId": 817, + "InteractionType": "Dive" + }, + { + "DataId": 2009879, + "Position": { + "X": -591.97375, + "Y": -90.56238, + "Z": 291.6151 + }, + "TerritoryId": 817, + "InteractionType": "Interact", + "Fly": true, + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_LUCKMC111_03332_Q2_000_071", + "Yes": true + } + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2009880, + "Position": { + "X": -670.25256, + "Y": -90.68439, + "Z": 449.94275 + }, + "TerritoryId": 817, + "InteractionType": "Interact", + "Fly": true, + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_LUCKMC111_03332_Q3_000_081", + "Yes": true + } + ] + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 2009882, + "Position": { + "X": -880.15564, + "Y": -90.68439, + "Z": 289.99768 + }, + "TerritoryId": 817, + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_LUCKMC111_03332_Q5_000_091", + "Yes": true + } + ] + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "Position": { + "X": -591.7246, + "Y": -92.929955, + "Z": 279.56708 + }, + "TerritoryId": 817, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 2009884, + "Position": { + "X": -593.164, + "Y": -95.23157, + "Z": 256.0005 + }, + "TerritoryId": 817, + "InteractionType": "Interact", + "Fly": true, + "DisableNavmesh": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": -591.7246, + "Y": -92.929955, + "Z": 279.56708 + }, + "TerritoryId": 817, + "InteractionType": "WalkTo", + "Fly": true, + "DisableNavmesh": true + }, + { + "Position": { + "X": -594.93475, + "Y": -77.64466, + "Z": 341.04385 + }, + "TerritoryId": 817, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "Position": { + "X": -537.1801, + "Y": -0.6, + "Z": 340.31 + }, + "TerritoryId": 817, + "InteractionType": "WalkTo", + "DisableNavmesh": true + }, + { + "Position": { + "X": -509.11002, + "Y": -0.3000083, + "Z": 324.28143 + }, + "TerritoryId": 817, + "InteractionType": "WalkTo", + "DisableNavmesh": true + }, + { + "DataId": 1029223, + "Position": { + "X": -470.96973, + "Y": 2.3035004, + "Z": 301.4724 + }, + "TerritoryId": 817, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/MSQ/C-Rak'tika/3333_Into the Wood.json b/QuestPaths/5.x - Shadowbringers/MSQ/C-Rak'tika/3333_Into the Wood.json new file mode 100644 index 00000000..485f5229 --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/MSQ/C-Rak'tika/3333_Into the Wood.json @@ -0,0 +1,109 @@ +{ + "$schema": "https://carvel.li/questionable/quest-1.0", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1029223, + "Position": { + "X": -470.96973, + "Y": 2.3035004, + "Z": 301.4724 + }, + "TerritoryId": 817, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1029224, + "Position": { + "X": -7.4921875, + "Y": 0.74753714, + "Z": 205.40161 + }, + "TerritoryId": 817, + "InteractionType": "Interact", + "AetheryteShortcut": "Rak'tika - Slitherbough" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": 66.71601, + "Y": 0.675326, + "Z": 231.57246 + }, + "TerritoryId": 817, + "InteractionType": "WalkTo", + "DisableNavmesh": true + }, + { + "Position": { + "X": 252.46225, + "Y": -0.91537976, + "Z": 257.19345 + }, + "TerritoryId": 817, + "InteractionType": "WalkTo" + }, + { + "Position": { + "X": 334.33804, + "Y": 23.86952, + "Z": 271.9542 + }, + "TerritoryId": 817, + "InteractionType": "WalkTo", + "DisableNavmesh": true + }, + { + "DataId": 2010069, + "Position": { + "X": 338.6129, + "Y": 24.12439, + "Z": 203.17383 + }, + "TerritoryId": 817, + "InteractionType": "AttuneAetherCurrent", + "AetherCurrentId": 2818288 + }, + { + "DataId": 2009886, + "Position": { + "X": 288.19702, + "Y": -0.10687256, + "Z": 221.66772 + }, + "TerritoryId": 817, + "InteractionType": "Interact", + "DisableNavmesh": true, + "Mount": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1029228, + "Position": { + "X": 454.88672, + "Y": 18.97871, + "Z": -57.14508 + }, + "TerritoryId": 817, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/MSQ/C-Rak'tika/3334_Top of the Tree.json b/QuestPaths/5.x - Shadowbringers/MSQ/C-Rak'tika/3334_Top of the Tree.json new file mode 100644 index 00000000..13ef569b --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/MSQ/C-Rak'tika/3334_Top of the Tree.json @@ -0,0 +1,134 @@ +{ + "$schema": "https://carvel.li/questionable/quest-1.0", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1030374, + "Position": { + "X": 452.93335, + "Y": 18.97871, + "Z": -56.961975 + }, + "StopDistance": 5, + "TerritoryId": 817, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1029231, + "Position": { + "X": 453.05554, + "Y": 33.66181, + "Z": -156.9696 + }, + "TerritoryId": 817, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1027711, + "Position": { + "X": 429.86182, + "Y": 34.051743, + "Z": -114.85474 + }, + "TerritoryId": 817, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 1027717, + "Position": { + "X": 334.18774, + "Y": 7.960762, + "Z": -141.46643 + }, + "TerritoryId": 817, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "TerritoryId": 817, + "InteractionType": "AttuneAetheryte", + "Aetheryte": "Rak'tika - Fanow" + }, + { + "DataId": 1027719, + "Position": { + "X": 303.5172, + "Y": 34.242825, + "Z": -146.65448 + }, + "TerritoryId": 817, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 16 + ] + }, + { + "DataId": 1027712, + "Position": { + "X": 454.1847, + "Y": 6.955061, + "Z": -193.07245 + }, + "TerritoryId": 817, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1029231, + "Position": { + "X": 453.05554, + "Y": 33.66181, + "Z": -156.9696 + }, + "TerritoryId": 817, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/MSQ/C-Rak'tika/3335_Look to the Stars.json b/QuestPaths/5.x - Shadowbringers/MSQ/C-Rak'tika/3335_Look to the Stars.json new file mode 100644 index 00000000..caf9416f --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/MSQ/C-Rak'tika/3335_Look to the Stars.json @@ -0,0 +1,348 @@ +{ + "$schema": "https://carvel.li/questionable/quest-1.0", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1029231, + "Position": { + "X": 453.05554, + "Y": 33.66181, + "Z": -156.9696 + }, + "TerritoryId": 817, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1029238, + "Position": { + "X": 206.56128, + "Y": -6.300962, + "Z": -352.4682 + }, + "TerritoryId": 817, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": 188.16484, + "Y": -19.576328, + "Z": -435.14563 + }, + "TerritoryId": 817, + "InteractionType": "WalkTo" + }, + { + "DataId": 1030944, + "Position": { + "X": 169.604, + "Y": -19.98162, + "Z": -455.5276 + }, + "TerritoryId": 817, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "Position": { + "X": 194.89655, + "Y": -18.734356, + "Z": -426.63055 + }, + "StopDistance": 0.25, + "TerritoryId": 817, + "InteractionType": "Jump", + "Comment": "Southeast", + "JumpDestination": { + "Position": { + "X": 215.55302, + "Y": 8.500989, + "Z": -426.5461 + }, + "DelaySeconds": 0.2, + "StopDistance": 2, + "Type": "RepeatedJumps" + }, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + -16 + ] + }, + { + "DataId": 2009890, + "Position": { + "X": 218.46338, + "Y": 10.574402, + "Z": -425.25372 + }, + "TerritoryId": 817, + "InteractionType": "UseItem", + "ItemId": 2002552, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 16 + ] + }, + { + "Position": { + "X": 149.22699, + "Y": -19.278904, + "Z": -427.7278 + }, + "StopDistance": 0.25, + "TerritoryId": 817, + "InteractionType": "Jump", + "Comment": "Southwest", + "DisableNavmesh": true, + "JumpDestination": { + "Position": { + "X": 126.889496, + "Y": 8.974887, + "Z": -428.30518 + }, + "DelaySeconds": 0.2, + "StopDistance": 2, + "Type": "RepeatedJumps" + }, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + -128 + ] + }, + { + "DataId": 2009887, + "Position": { + "X": 124.37622, + "Y": 10.879639, + "Z": -429.43463 + }, + "TerritoryId": 817, + "InteractionType": "UseItem", + "ItemId": 2002552, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "Position": { + "X": 154.42946, + "Y": -19.372574, + "Z": -430.77545 + }, + "TerritoryId": 817, + "InteractionType": "WalkTo", + "DisableNavmesh": true, + "Mount": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + -64 + ] + }, + { + "Position": { + "X": 145.00993, + "Y": -20, + "Z": -509.06528 + }, + "StopDistance": 0.25, + "TerritoryId": 817, + "InteractionType": "Jump", + "Comment": "Northwest", + "DisableNavmesh": true, + "JumpDestination": { + "Position": { + "X": 123.35363, + "Y": 8.441412, + "Z": -509.28867 + }, + "DelaySeconds": 0.2, + "StopDistance": 2, + "Type": "RepeatedJumps" + }, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + -64 + ] + }, + { + "DataId": 2009888, + "Position": { + "X": 119.920654, + "Y": 10.696533, + "Z": -510.52112 + }, + "TerritoryId": 817, + "InteractionType": "UseItem", + "ItemId": 2002552, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "Position": { + "X": 195.20181, + "Y": -19.677738, + "Z": -516.0344 + }, + "StopDistance": 0.25, + "TerritoryId": 817, + "InteractionType": "Jump", + "Comment": "Northwest", + "DisableNavmesh": true, + "JumpDestination": { + "Position": { + "X": 215.5381, + "Y": 6.683917, + "Z": -515.7127 + }, + "DelaySeconds": 0.2, + "StopDistance": 2, + "Type": "RepeatedJumps" + }, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + -32 + ] + }, + { + "DataId": 2009889, + "Position": { + "X": 218.92114, + "Y": 8.957031, + "Z": -514.45795 + }, + "TerritoryId": 817, + "InteractionType": "UseItem", + "ItemId": 2002552, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "Position": { + "X": 192.24295, + "Y": -19.743376, + "Z": -515.7917 + }, + "TerritoryId": 817, + "InteractionType": "WalkTo", + "DisableNavmesh": true, + "Mount": true + }, + { + "DataId": 1029241, + "Position": { + "X": 177.203, + "Y": -19.544508, + "Z": -533.53174 + }, + "TerritoryId": 817, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1030946, + "Position": { + "X": 175.37183, + "Y": -19.521969, + "Z": -536.0647 + }, + "StopDistance": 7, + "TerritoryId": 817, + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_LUCKMC114_03335_Q1_000_000", + "Yes": true + }, + { + "Type": "List", + "Prompt": "TEXT_LUCKMC114_03335_Q2_000_000", + "Answer": "TEXT_LUCKMC114_03335_A2_000_004" + } + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1029240, + "Position": { + "X": 173.2356, + "Y": -19.585392, + "Z": -536.82764 + }, + "TerritoryId": 817, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/MSQ/C-Rak'tika/3336_Mi Casa, Toupasa.json b/QuestPaths/5.x - Shadowbringers/MSQ/C-Rak'tika/3336_Mi Casa, Toupasa.json new file mode 100644 index 00000000..c5c031f2 --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/MSQ/C-Rak'tika/3336_Mi Casa, Toupasa.json @@ -0,0 +1,219 @@ +{ + "$schema": "https://carvel.li/questionable/quest-1.0", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1029240, + "Position": { + "X": 173.2356, + "Y": -19.585392, + "Z": -536.82764 + }, + "TerritoryId": 817, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": 104.577484, + "Y": -18.78201, + "Z": -710.81934 + }, + "TerritoryId": 817, + "InteractionType": "WalkTo" + }, + { + "Position": { + "X": 72.32005, + "Y": -11.506357, + "Z": -869.2572 + }, + "TerritoryId": 817, + "InteractionType": "WalkTo" + }, + { + "DataId": 1029242, + "Position": { + "X": 122.697754, + "Y": -8.781986, + "Z": -891.4168 + }, + "TerritoryId": 817, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": 175.20982, + "Y": -4.4171376, + "Z": -842.7409 + }, + "TerritoryId": 817, + "InteractionType": "WalkTo" + }, + { + "Position": { + "X": 176.5321, + "Y": 11.218012, + "Z": -713.26447 + }, + "TerritoryId": 817, + "InteractionType": "WalkTo", + "DisableNavmesh": true + }, + { + "DataId": 2010218, + "Position": { + "X": 220.17236, + "Y": 12.436096, + "Z": -711.9707 + }, + "TerritoryId": 817, + "InteractionType": "Interact", + "DisableNavmesh": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2010218, + "Position": { + "X": 220.17236, + "Y": 12.436096, + "Z": -711.9707 + }, + "TerritoryId": 817, + "InteractionType": "Interact", + "Comment": "Retry point", + "SkipIf": [ + "NotTargetable" + ] + }, + { + "Position": { + "X": 179.29196, + "Y": 11.218012, + "Z": -716.2551 + }, + "TerritoryId": 817, + "InteractionType": "WalkTo" + }, + { + "Position": { + "X": 178.56311, + "Y": 1.2180231, + "Z": -760.07153 + }, + "TerritoryId": 817, + "InteractionType": "WalkTo", + "DisableNavmesh": true + }, + { + "Position": { + "X": 190.72441, + "Y": 1.2180231, + "Z": -774.9509 + }, + "TerritoryId": 817, + "InteractionType": "WalkTo" + }, + { + "Position": { + "X": 182.27933, + "Y": 1.2180231, + "Z": -794.6802 + }, + "TerritoryId": 817, + "InteractionType": "WalkTo" + }, + { + "Position": { + "X": 176.54279, + "Y": 0.4118718, + "Z": -831.1932 + }, + "TerritoryId": 817, + "InteractionType": "WalkTo", + "DisableNavmesh": true + }, + { + "Position": { + "X": 170.7773, + "Y": -8.781983, + "Z": -864.8363 + }, + "TerritoryId": 817, + "InteractionType": "WalkTo", + "DisableNavmesh": true + }, + { + "Position": { + "X": 128.05794, + "Y": -8.781985, + "Z": -861.96173 + }, + "TerritoryId": 817, + "InteractionType": "WalkTo" + }, + { + "Position": { + "X": 104.804436, + "Y": -8.781986, + "Z": -852.4725 + }, + "TerritoryId": 817, + "InteractionType": "WalkTo" + }, + { + "Position": { + "X": 104.83191, + "Y": -8.781986, + "Z": -882.98535 + }, + "TerritoryId": 817, + "InteractionType": "WalkTo", + "DisableNavmesh": true + }, + { + "DataId": 2010217, + "Position": { + "X": 115.43445, + "Y": -7.400635, + "Z": -895.4757 + }, + "TerritoryId": 817, + "InteractionType": "Interact", + "DisableNavmesh": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1029242, + "Position": { + "X": 122.697754, + "Y": -8.781986, + "Z": -891.4168 + }, + "TerritoryId": 817, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/MSQ/C-Rak'tika/3337_Legend of the Not-so-hidden Temple.json b/QuestPaths/5.x - Shadowbringers/MSQ/C-Rak'tika/3337_Legend of the Not-so-hidden Temple.json new file mode 100644 index 00000000..ef4ca782 --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/MSQ/C-Rak'tika/3337_Legend of the Not-so-hidden Temple.json @@ -0,0 +1,51 @@ +{ + "$schema": "https://carvel.li/questionable/quest-1.0", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1029242, + "Position": { + "X": 122.697754, + "Y": -8.781986, + "Z": -891.4168 + }, + "TerritoryId": 817, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1029243, + "Position": { + "X": 121.3855, + "Y": -8.781985, + "Z": -890.62335 + }, + "TerritoryId": 817, + "InteractionType": "SinglePlayerDuty" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1029244, + "Position": { + "X": 171.19092, + "Y": -19.76173, + "Z": -534.05054 + }, + "TerritoryId": 817, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/MSQ/C-Rak'tika/3338_The Aftermath.json b/QuestPaths/5.x - Shadowbringers/MSQ/C-Rak'tika/3338_The Aftermath.json new file mode 100644 index 00000000..24289818 --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/MSQ/C-Rak'tika/3338_The Aftermath.json @@ -0,0 +1,99 @@ +{ + "$schema": "https://carvel.li/questionable/quest-1.0", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1029247, + "Position": { + "X": 166.91846, + "Y": -19.856256, + "Z": -535.1797 + }, + "StopDistance": 5, + "TerritoryId": 817, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1029249, + "Position": { + "X": 449.8817, + "Y": 6.955061, + "Z": -208.75867 + }, + "StopDistance": 2, + "TerritoryId": 817, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1029250, + "Position": { + "X": 448.2948, + "Y": 7.479239, + "Z": -208.14838 + }, + "TerritoryId": 817, + "InteractionType": "UseItem", + "ItemId": 2002553 + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1029250, + "Position": { + "X": 448.2948, + "Y": 7.479239, + "Z": -208.14838 + }, + "TerritoryId": 817, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1029250, + "Position": { + "X": 448.2948, + "Y": 7.479239, + "Z": -208.14838 + }, + "TerritoryId": 817, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1029249, + "Position": { + "X": 449.8817, + "Y": 6.955061, + "Z": -208.75867 + }, + "TerritoryId": 817, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/MSQ/C-Rak'tika/3339_In Good Faith.json b/QuestPaths/5.x - Shadowbringers/MSQ/C-Rak'tika/3339_In Good Faith.json new file mode 100644 index 00000000..96e1bf67 --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/MSQ/C-Rak'tika/3339_In Good Faith.json @@ -0,0 +1,106 @@ +{ + "$schema": "https://carvel.li/questionable/quest-1.0", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1029249, + "Position": { + "X": 449.8817, + "Y": 6.955061, + "Z": -208.75867 + }, + "TerritoryId": 817, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1029251, + "Position": { + "X": 450.00366, + "Y": 6.955061, + "Z": -202.38043 + }, + "StopDistance": 7, + "TerritoryId": 817, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": 580.9263, + "Y": 18.753235, + "Z": -43.01526 + }, + "StopDistance": 1, + "TerritoryId": 817, + "InteractionType": "UseItem", + "ItemId": 2002554 + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2009892, + "Position": { + "X": 580.9263, + "Y": 18.753235, + "Z": -43.01526 + }, + "TerritoryId": 817, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1029554, + "Position": { + "X": 585.7174, + "Y": 18.386158, + "Z": -59.18976 + }, + "TerritoryId": 817, + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_LUCKMC118_03339_Q1_000_000", + "Answer": "TEXT_LUCKMC118_03339_A1_000_002" + } + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1029555, + "Position": { + "X": 453.26917, + "Y": 6.955061, + "Z": -204.39465 + }, + "TerritoryId": 817, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Rak'tika - Fanow" + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/MSQ/C-Rak'tika/3340_The Burden of Knowledge.json b/QuestPaths/5.x - Shadowbringers/MSQ/C-Rak'tika/3340_The Burden of Knowledge.json new file mode 100644 index 00000000..700cab1a --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/MSQ/C-Rak'tika/3340_The Burden of Knowledge.json @@ -0,0 +1,77 @@ +{ + "$schema": "https://carvel.li/questionable/quest-1.0", + "Author": "liza", + "TerritoryBlacklist": [ + 823 + ], + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1029255, + "Position": { + "X": 453.6964, + "Y": 6.955061, + "Z": -201.15973 + }, + "StopDistance": 7, + "TerritoryId": 817, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2010073, + "Position": { + "X": 681.1168, + "Y": -39.2005, + "Z": -262.77563 + }, + "TerritoryId": 817, + "InteractionType": "AttuneAetherCurrent", + "AetherCurrentId": 2818292 + }, + { + "DataId": 2009893, + "Position": { + "X": 854.39844, + "Y": -63.85907, + "Z": -394.43048 + }, + "TerritoryId": 817, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "TerritoryId": 817, + "InteractionType": "Duty", + "ContentFinderConditionId": 651 + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1029557, + "Position": { + "X": 848.7831, + "Y": -65.42493, + "Z": -394.67462 + }, + "StopDistance": 5, + "TerritoryId": 817, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/MSQ/C-Rak'tika/3341_Bearing with It.json b/QuestPaths/5.x - Shadowbringers/MSQ/C-Rak'tika/3341_Bearing with It.json new file mode 100644 index 00000000..525824ad --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/MSQ/C-Rak'tika/3341_Bearing with It.json @@ -0,0 +1,55 @@ +{ + "$schema": "https://carvel.li/questionable/quest-1.0", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1029557, + "Position": { + "X": 848.7831, + "Y": -65.42493, + "Z": -394.67462 + }, + "StopDistance": 5, + "TerritoryId": 817, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1029231, + "Position": { + "X": 453.05554, + "Y": 33.66181, + "Z": -156.9696 + }, + "TerritoryId": 817, + "InteractionType": "Interact", + "AetheryteShortcut": "Rak'tika - Fanow", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1029197, + "Position": { + "X": -87.87671, + "Y": -19.022131, + "Z": 298.20703 + }, + "TerritoryId": 817, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Rak'tika - Slitherbough" + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/MSQ/C-Rak'tika/3342_Out of the Wood.json b/QuestPaths/5.x - Shadowbringers/MSQ/C-Rak'tika/3342_Out of the Wood.json new file mode 100644 index 00000000..0992deb1 --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/MSQ/C-Rak'tika/3342_Out of the Wood.json @@ -0,0 +1,106 @@ +{ + "$schema": "https://carvel.li/questionable/quest-1.0", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1029011, + "Position": { + "X": -88.822815, + "Y": -19.053196, + "Z": 296.65063 + }, + "StopDistance": 5, + "TerritoryId": 817, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1029194, + "Position": { + "X": -37.216797, + "Y": -18.920458, + "Z": 336.62915 + }, + "TerritoryId": 817, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": -64.28227, + "Y": -19.16186, + "Z": 319.19778 + }, + "TerritoryId": 817, + "InteractionType": "WalkTo" + }, + { + "DataId": 2009894, + "Position": { + "X": -259.51025, + "Y": -2.395752, + "Z": 332.81445 + }, + "TerritoryId": 817, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1029558, + "Position": { + "X": 28.732666, + "Y": 0, + "Z": 1.87677 + }, + "TerritoryId": 819, + "InteractionType": "Interact", + "AetheryteShortcut": "Crystarium", + "Sprint": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1030610, + "Position": { + "X": 65.11023, + "Y": 1.7160122, + "Z": 249.7749 + }, + "StopDistance": 7, + "TerritoryId": 819, + "InteractionType": "CompleteQuest", + "AethernetShortcut": [ + "[Crystarium] The Dossal Gate", + "[Crystarium] The Pendants" + ], + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_LUCKMC121_03342_Q1_000_000", + "Yes": true + } + ] + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/MSQ/D-Amh Araeng 2/3606_When It Rains.json b/QuestPaths/5.x - Shadowbringers/MSQ/D-Amh Araeng 2/3606_When It Rains.json new file mode 100644 index 00000000..e60ff9a1 --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/MSQ/D-Amh Araeng 2/3606_When It Rains.json @@ -0,0 +1,99 @@ +{ + "$schema": "https://carvel.li/questionable/quest-1.0", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1027231, + "Position": { + "X": 65.35437, + "Y": 1.7160122, + "Z": 249.83594 + }, + "StopDistance": 7, + "TerritoryId": 819, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2009895, + "Position": { + "X": 26.04712, + "Y": -0.015319824, + "Z": 73.92993 + }, + "TerritoryId": 819, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2009896, + "Position": { + "X": -224.445, + "Y": 21.377869, + "Z": -58.06067 + }, + "TerritoryId": 819, + "InteractionType": "Interact", + "AetheryteShortcut": "Crystarium" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2009897, + "Position": { + "X": -224.47546, + "Y": 21.22528, + "Z": 58.03003 + }, + "TerritoryId": 819, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1029599, + "Position": { + "X": -107.0116, + "Y": 20, + "Z": 12.619202 + }, + "StopDistance": 5, + "TerritoryId": 819, + "InteractionType": "SinglePlayerDuty" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1029601, + "Position": { + "X": -707.5456, + "Y": 51.501152, + "Z": -241.56561 + }, + "TerritoryId": 813, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/MSQ/D-Amh Araeng 2/3607_Word from On High.json b/QuestPaths/5.x - Shadowbringers/MSQ/D-Amh Araeng 2/3607_Word from On High.json new file mode 100644 index 00000000..f182d6cd --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/MSQ/D-Amh Araeng 2/3607_Word from On High.json @@ -0,0 +1,98 @@ +{ + "$schema": "https://carvel.li/questionable/quest-1.0", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1029601, + "Position": { + "X": -707.5456, + "Y": 51.501152, + "Z": -241.56561 + }, + "TerritoryId": 813, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1030314, + "Position": { + "X": -690.0587, + "Y": 52.7832, + "Z": -302.20496 + }, + "TerritoryId": 813, + "InteractionType": "Interact", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, + { + "DataId": 1030313, + "Position": { + "X": -649.13403, + "Y": 53.2081, + "Z": -178.08807 + }, + "TerritoryId": 813, + "InteractionType": "Interact", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 1030312, + "Position": { + "X": -694.0261, + "Y": 52.60457, + "Z": -124.74249 + }, + "TerritoryId": 813, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1029606, + "Position": { + "X": -734.5541, + "Y": 52.60457, + "Z": -147.1123 + }, + "TerritoryId": 813, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/MSQ/D-Amh Araeng 2/3608_Small Favors.json b/QuestPaths/5.x - Shadowbringers/MSQ/D-Amh Araeng 2/3608_Small Favors.json new file mode 100644 index 00000000..9c1633d0 --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/MSQ/D-Amh Araeng 2/3608_Small Favors.json @@ -0,0 +1,137 @@ +{ + "$schema": "https://carvel.li/questionable/quest-1.0", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1030587, + "Position": { + "X": -728.0537, + "Y": 52.604565, + "Z": -146.3493 + }, + "StopDistance": 5, + "TerritoryId": 813, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1029607, + "Position": { + "X": -32.791687, + "Y": -0.6250627, + "Z": -44.663208 + }, + "TerritoryId": 819, + "InteractionType": "Interact", + "AetheryteShortcut": "Crystarium" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1029608, + "Position": { + "X": -120.83624, + "Y": -47.55994, + "Z": -166.15558 + }, + "TerritoryId": 819, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Crystarium] The Dossal Gate", + "[Crystarium] The Cabinet of Curiosity" + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1029608, + "Position": { + "X": -120.83624, + "Y": -47.55994, + "Z": -166.15558 + }, + "TerritoryId": 819, + "InteractionType": "Emote", + "Emote": "poke", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_LUCKMD103_03608_Q1_000_000", + "Answer": "TEXT_LUCKMD103_03608_A1_000_002" + } + ] + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 2009900, + "Position": { + "X": -136.64453, + "Y": -46.00598, + "Z": -183.67291 + }, + "TerritoryId": 819, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 2009899, + "Position": { + "X": -140.97815, + "Y": -44.75476, + "Z": -156.66437 + }, + "TerritoryId": 819, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1027248, + "Position": { + "X": -30.807983, + "Y": -0.64999914, + "Z": -51.438232 + }, + "TerritoryId": 819, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Crystarium" + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/MSQ/D-Amh Araeng 2/3609_The Best Way Out.json b/QuestPaths/5.x - Shadowbringers/MSQ/D-Amh Araeng 2/3609_The Best Way Out.json new file mode 100644 index 00000000..4c0348de --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/MSQ/D-Amh Araeng 2/3609_The Best Way Out.json @@ -0,0 +1,142 @@ +{ + "$schema": "https://carvel.li/questionable/quest-1.0", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1029853, + "Position": { + "X": -30.991089, + "Y": -0.6499998, + "Z": -49.69867 + }, + "TerritoryId": 819, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1027230, + "Position": { + "X": 117.997925, + "Y": 14.649025, + "Z": 7.156433 + }, + "TerritoryId": 819, + "InteractionType": "Interact", + "TargetTerritoryId": 844 + }, + { + "DataId": 1028923, + "Position": { + "X": -0.015319824, + "Y": -1.0530548E-13, + "Z": -6.0273438 + }, + "TerritoryId": 844, + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_LUCKMD104_03609_Q1_000_000", + "Answer": "TEXT_LUCKMD104_03609_A1_000_002" + } + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1029597, + "Position": { + "X": 2.4871826, + "Y": 0, + "Z": 1.5106201 + }, + "StopDistance": 7, + "TerritoryId": 844, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2009903, + "Position": { + "X": -177.56934, + "Y": -0.015319824, + "Z": -0.38153076 + }, + "TerritoryId": 819, + "InteractionType": "Interact", + "AetheryteShortcut": "Crystarium" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "Position": { + "X": -246.00786, + "Y": -3.0897782, + "Z": -0.36405885 + }, + "TerritoryId": 819, + "InteractionType": "WalkTo" + }, + { + "DataId": 1029611, + "Position": { + "X": 576.95886, + "Y": 6.6976085, + "Z": 636.71313 + }, + "TerritoryId": 813, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1028305, + "Position": { + "X": 525.65796, + "Y": -5.2326922, + "Z": 854.2457 + }, + "TerritoryId": 813, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1029614, + "Position": { + "X": -554.1314, + "Y": 35.800797, + "Z": -669.70325 + }, + "TerritoryId": 815, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/MSQ/D-Amh Araeng 2/3610_Free Trade.json b/QuestPaths/5.x - Shadowbringers/MSQ/D-Amh Araeng 2/3610_Free Trade.json new file mode 100644 index 00000000..cc92431c --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/MSQ/D-Amh Araeng 2/3610_Free Trade.json @@ -0,0 +1,117 @@ +{ + "$schema": "https://carvel.li/questionable/quest-1.0", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1029615, + "Position": { + "X": -556.69495, + "Y": 36.586422, + "Z": -670.06946 + }, + "TerritoryId": 815, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1030438, + "Position": { + "X": -403.67743, + "Y": -20.21407, + "Z": -589.9901 + }, + "TerritoryId": 815, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1027918, + "Position": { + "X": -389.76123, + "Y": -17.724838, + "Z": -586.1448 + }, + "TerritoryId": 815, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 1027919, + "Position": { + "X": -404.50146, + "Y": -17.85281, + "Z": -549.95044 + }, + "TerritoryId": 815, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, + { + "DataId": 1027917, + "Position": { + "X": -448.3559, + "Y": -20.016521, + "Z": -554.6807 + }, + "TerritoryId": 815, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1029617, + "Position": { + "X": -419.39423, + "Y": -20.145794, + "Z": -578.88153 + }, + "TerritoryId": 815, + "InteractionType": "CompleteQuest", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_LUCKMD105_03610_Q1_000_000", + "Answer": "TEXT_LUCKMD105_03610_A1_000_003" + } + ] + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/MSQ/D-Amh Araeng 2/3611_The Trolley Problem.json b/QuestPaths/5.x - Shadowbringers/MSQ/D-Amh Araeng 2/3611_The Trolley Problem.json new file mode 100644 index 00000000..4d130e34 --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/MSQ/D-Amh Araeng 2/3611_The Trolley Problem.json @@ -0,0 +1,159 @@ +{ + "$schema": "https://carvel.li/questionable/quest-1.0", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1030438, + "Position": { + "X": -403.67743, + "Y": -20.21407, + "Z": -589.9901 + }, + "TerritoryId": 815, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1030947, + "Position": { + "X": -461.9364, + "Y": -1.2183915, + "Z": -372.06073 + }, + "TerritoryId": 815, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1029620, + "Position": { + "X": -2.0905762, + "Y": 45.61908, + "Z": -583.48975 + }, + "TerritoryId": 815, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2009906, + "Position": { + "X": -0.7172241, + "Y": 48.722046, + "Z": -529.80853 + }, + "TerritoryId": 815, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, + { + "DataId": 2009904, + "Position": { + "X": 19.821411, + "Y": 46.189087, + "Z": -575.0973 + }, + "TerritoryId": 815, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 2009905, + "Position": { + "X": 13.443176, + "Y": 47.89807, + "Z": -618.12775 + }, + "TerritoryId": 815, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1029622, + "Position": { + "X": 80.338745, + "Y": 45.622585, + "Z": -641.5351 + }, + "TerritoryId": 815, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1029623, + "Position": { + "X": -62.760437, + "Y": 45.619083, + "Z": -606.3783 + }, + "TerritoryId": 815, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 10882 + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1029624, + "Position": { + "X": 90.196045, + "Y": 45.72853, + "Z": -598.90137 + }, + "TerritoryId": 815, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/MSQ/D-Amh Araeng 2/3612_Rust and Ruin.json b/QuestPaths/5.x - Shadowbringers/MSQ/D-Amh Araeng 2/3612_Rust and Ruin.json new file mode 100644 index 00000000..3511eee7 --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/MSQ/D-Amh Araeng 2/3612_Rust and Ruin.json @@ -0,0 +1,142 @@ +{ + "$schema": "https://carvel.li/questionable/quest-1.0", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1029629, + "Position": { + "X": 88.48706, + "Y": 45.737045, + "Z": -595.9106 + }, + "StopDistance": 7, + "TerritoryId": 815, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1029631, + "Position": { + "X": -94.65173, + "Y": 41.257984, + "Z": -537.59064 + }, + "TerritoryId": 815, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1029632, + "Position": { + "X": -136.36993, + "Y": 28.480484, + "Z": -374.99048 + }, + "TerritoryId": 815, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "Position": { + "X": -158.38751, + "Y": 25.202963, + "Z": -285.0746 + }, + "TerritoryId": 815, + "InteractionType": "WalkTo", + "Sprint": true + }, + { + "Position": { + "X": -276.48285, + "Y": 18.86909, + "Z": -244.22473 + }, + "StopDistance": 1, + "TerritoryId": 815, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [ + 11138 + ] + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1029633, + "Position": { + "X": -278.03473, + "Y": 19.067781, + "Z": -249.19507 + }, + "StopDistance": 7, + "TerritoryId": 815, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1029634, + "Position": { + "X": -479.7895, + "Y": 45.16138, + "Z": -213.6416 + }, + "TerritoryId": 815, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1029635, + "Position": { + "X": -479.45374, + "Y": 47.777702, + "Z": -189.77649 + }, + "TerritoryId": 815, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1029637, + "Position": { + "X": -483.23798, + "Y": 45.473377, + "Z": -211.3222 + }, + "TerritoryId": 815, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/MSQ/D-Amh Araeng 2/3613_On Track.json b/QuestPaths/5.x - Shadowbringers/MSQ/D-Amh Araeng 2/3613_On Track.json new file mode 100644 index 00000000..11ec946e --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/MSQ/D-Amh Araeng 2/3613_On Track.json @@ -0,0 +1,214 @@ +{ + "$schema": "https://carvel.li/questionable/quest-1.0", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1029637, + "Position": { + "X": -483.23798, + "Y": 45.473377, + "Z": -211.3222 + }, + "TerritoryId": 815, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "TerritoryId": 815, + "InteractionType": "AttuneAetheryte", + "Aetheryte": "Amh Araeng - Twine" + }, + { + "DataId": 1029640, + "Position": { + "X": -545.31165, + "Y": 45.512848, + "Z": -230.6402 + }, + "TerritoryId": 815, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": -410.60504, + "Y": 46.19129, + "Z": -245.38031 + }, + "StopDistance": 2, + "TerritoryId": 815, + "InteractionType": "UseItem", + "ItemId": 2002559, + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_LUCKMD108_03613_Q1_000_000", + "Answer": "TEXT_LUCKMD108_03613_A1_000_002" + } + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "Position": { + "X": -341.64484, + "Y": 46.191288, + "Z": -244.7952 + }, + "TerritoryId": 815, + "InteractionType": "WalkTo" + }, + { + "DataId": 2010050, + "Position": { + "X": -343.80103, + "Y": 46.98242, + "Z": -235.43152 + }, + "TerritoryId": 815, + "InteractionType": "AttuneAetherCurrent", + "AetherCurrentId": 2818259, + "DisableNavmesh": true + }, + { + "Position": { + "X": -341.64484, + "Y": 46.191288, + "Z": -244.7952 + }, + "TerritoryId": 815, + "InteractionType": "WalkTo", + "DisableNavmesh": true + }, + { + "Position": { + "X": -226.30658, + "Y": 46.19127, + "Z": -247.21143 + }, + "StopDistance": 2, + "TerritoryId": 815, + "InteractionType": "UseItem", + "ItemId": 2002559, + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_LUCKMD108_03613_Q2_000_000", + "Answer": "TEXT_LUCKMD108_03613_A2_000_003" + } + ] + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 2009910, + "Position": { + "X": -170.48907, + "Y": 46.189087, + "Z": -279.56055 + }, + "TerritoryId": 815, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [10883], + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 2009911, + "Position": { + "X": -181.5061, + "Y": 46.189087, + "Z": -362.6917 + }, + "TerritoryId": 815, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [10883], + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 2009912, + "Position": { + "X": -127.58075, + "Y": 45.914307, + "Z": -456.59576 + }, + "TerritoryId": 815, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [10883], + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1029642, + "Position": { + "X": -226.30658, + "Y": 46.19127, + "Z": -247.21143 + }, + "TerritoryId": 815, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1029643, + "Position": { + "X": -453.60498, + "Y": 45.48443, + "Z": -236.86578 + }, + "TerritoryId": 815, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Amh Araeng - Twine" + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/MSQ/D-Amh Araeng 2/3614_Down for Maintenance.json b/QuestPaths/5.x - Shadowbringers/MSQ/D-Amh Araeng 2/3614_Down for Maintenance.json new file mode 100644 index 00000000..8d1af988 --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/MSQ/D-Amh Araeng 2/3614_Down for Maintenance.json @@ -0,0 +1,75 @@ +{ + "$schema": "https://carvel.li/questionable/quest-1.0", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1029643, + "Position": { + "X": -453.60498, + "Y": 45.48443, + "Z": -236.86578 + }, + "TerritoryId": 815, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1029645, + "Position": { + "X": -503.16626, + "Y": 45.71098, + "Z": -258.32 + }, + "TerritoryId": 815, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": -395.11795, + "Y": 24.01915, + "Z": -200.26707 + }, + "TerritoryId": 815, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "ComplexCombatData": [ + { + "DataId": 10347, + "MinimumKillCount": 3, + "RewardItemId": 2002560, + "RewardItemCount": 3 + } + ], + "Comment": "Probably needs manual movement (or waiting for enemies to respawn)" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1029761, + "Position": { + "X": -503.19678, + "Y": 45.72556, + "Z": -254.01697 + }, + "TerritoryId": 815, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/MSQ/D-Amh Araeng 2/3615_The Truth Hurts.json b/QuestPaths/5.x - Shadowbringers/MSQ/D-Amh Araeng 2/3615_The Truth Hurts.json new file mode 100644 index 00000000..b8247e51 --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/MSQ/D-Amh Araeng 2/3615_The Truth Hurts.json @@ -0,0 +1,22 @@ +{ + "$schema": "https://carvel.li/questionable/quest-1.0", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1030569, + "Position": { + "X": -504.47852, + "Y": 45.822144, + "Z": -250.44635 + }, + "StopDistance": 5, + "TerritoryId": 815, + "InteractionType": "AcceptQuest" + } + ] + } + ] +} diff --git a/QuestPaths/quest-v1.json b/QuestPaths/quest-v1.json index ba7841d0..2a529e6e 100644 --- a/QuestPaths/quest-v1.json +++ b/QuestPaths/quest-v1.json @@ -117,6 +117,7 @@ "Duty", "SinglePlayerDuty", "Jump", + "Dive", "Instruction", "AcceptQuest", "CompleteQuest" @@ -689,6 +690,14 @@ "number", "null" ] + }, + "Type": { + "type": "string", + "enum": [ + "SingleJump", + "RepeatedJumps" + ], + "default": "SingleJump" } }, "required": [ @@ -724,6 +733,12 @@ }, { "const": "Instruction" + }, + { + "const": "Emote" + }, + { + "const": "UseItem" } ] } diff --git a/Questionable.Model/V1/Converter/InteractionTypeConverter.cs b/Questionable.Model/V1/Converter/InteractionTypeConverter.cs index cc9d6562..08be6ff6 100644 --- a/Questionable.Model/V1/Converter/InteractionTypeConverter.cs +++ b/Questionable.Model/V1/Converter/InteractionTypeConverter.cs @@ -22,6 +22,7 @@ public sealed class InteractionTypeConverter() : EnumConverter { EInteractionType.Duty, "Duty" }, { EInteractionType.SinglePlayerDuty, "SinglePlayerDuty" }, { EInteractionType.Jump, "Jump" }, + { EInteractionType.Dive, "Dive" }, { EInteractionType.Instruction, "Instruction" }, { EInteractionType.AcceptQuest, "AcceptQuest" }, { EInteractionType.CompleteQuest, "CompleteQuest" }, diff --git a/Questionable.Model/V1/Converter/JumpTypeConverter.cs b/Questionable.Model/V1/Converter/JumpTypeConverter.cs new file mode 100644 index 00000000..94c8ea2b --- /dev/null +++ b/Questionable.Model/V1/Converter/JumpTypeConverter.cs @@ -0,0 +1,12 @@ +using System.Collections.Generic; + +namespace Questionable.Model.V1.Converter; + +public sealed class JumpTypeConverter() : EnumConverter(Values) +{ + private static readonly Dictionary Values = new() + { + { EJumpType.SingleJump, "SingleJump" }, + { EJumpType.RepeatedJumps, "RepeatedJumps" }, + }; +} diff --git a/Questionable.Model/V1/EInteractionType.cs b/Questionable.Model/V1/EInteractionType.cs index 1c008b48..843f600d 100644 --- a/Questionable.Model/V1/EInteractionType.cs +++ b/Questionable.Model/V1/EInteractionType.cs @@ -22,6 +22,7 @@ public enum EInteractionType Duty, SinglePlayerDuty, Jump, + Dive, /// /// Needs to be manually continued. diff --git a/Questionable.Model/V1/EJumpType.cs b/Questionable.Model/V1/EJumpType.cs new file mode 100644 index 00000000..b06365eb --- /dev/null +++ b/Questionable.Model/V1/EJumpType.cs @@ -0,0 +1,11 @@ +using System.Text.Json.Serialization; +using Questionable.Model.V1.Converter; + +namespace Questionable.Model.V1; + +[JsonConverter(typeof(JumpTypeConverter))] +public enum EJumpType +{ + SingleJump, + RepeatedJumps, +} diff --git a/Questionable.Model/V1/JumpDestination.cs b/Questionable.Model/V1/JumpDestination.cs index e6a709e7..2497560a 100644 --- a/Questionable.Model/V1/JumpDestination.cs +++ b/Questionable.Model/V1/JumpDestination.cs @@ -11,4 +11,7 @@ public sealed class JumpDestination public float? StopDistance { get; set; } public float? DelaySeconds { get; set; } + public EJumpType Type { get; set; } = EJumpType.SingleJump; + + public float CalculateStopDistance() => StopDistance ?? 1f; } diff --git a/Questionable/Controller/Steps/Common/AbstractDelayedTask.cs b/Questionable/Controller/Steps/Common/AbstractDelayedTask.cs index e5a3b102..e4586fb8 100644 --- a/Questionable/Controller/Steps/Common/AbstractDelayedTask.cs +++ b/Questionable/Controller/Steps/Common/AbstractDelayedTask.cs @@ -26,7 +26,7 @@ internal abstract class AbstractDelayedTask : ITask protected abstract bool StartInternal(); - public ETaskResult Update() + public virtual ETaskResult Update() { if (_continueAt >= DateTime.Now) return ETaskResult.StillRunning; diff --git a/Questionable/Controller/Steps/Interactions/Dive.cs b/Questionable/Controller/Steps/Interactions/Dive.cs new file mode 100644 index 00000000..05e9cf44 --- /dev/null +++ b/Questionable/Controller/Steps/Interactions/Dive.cs @@ -0,0 +1,143 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics.CodeAnalysis; +using System.Linq; +using System.Runtime.InteropServices; +using Dalamud.Game.ClientState.Conditions; +using Dalamud.Plugin.Services; +using FFXIVClientStructs.FFXIV.Client.Graphics.Kernel; +using FFXIVClientStructs.FFXIV.Client.System.String; +using FFXIVClientStructs.FFXIV.Client.UI; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Logging; +using Questionable.Controller.Steps.Common; +using Questionable.Model; +using Questionable.Model.V1; + +namespace Questionable.Controller.Steps.Interactions; + +internal static class Dive +{ + internal sealed class Factory(IServiceProvider serviceProvider) : ITaskFactory + { + public ITask? CreateTask(Quest quest, QuestSequence sequence, QuestStep step) + { + if (step.InteractionType != EInteractionType.Dive) + return null; + + return serviceProvider.GetRequiredService(); + } + } + + internal sealed class DoDive(ICondition condition, ILogger logger) + : AbstractDelayedTask(TimeSpan.FromSeconds(5)) + { + private readonly Queue<(uint Type, nint Key)> _keysToPress = []; + private int _attempts; + + protected override bool StartInternal() + { + if (condition[ConditionFlag.Diving]) + return false; + + if (condition[ConditionFlag.Mounted] || condition[ConditionFlag.Swimming]) + { + Descend(); + return true; + } + + throw new TaskException("You aren't swimming, so we can't dive."); + } + + public override unsafe ETaskResult Update() + { + if (_keysToPress.TryDequeue(out var definition)) + { + if (definition.Type == 0) + return ETaskResult.StillRunning; + + logger.LogDebug("{Action} key {KeyCode:X2}", + definition.Type == NativeMethods.WM_KEYDOWN ? "Pressing" : "Releasing", definition.Key); + NativeMethods.SendMessage((nint)Device.Instance()->hWnd, definition.Type, definition.Key, nint.Zero); + return ETaskResult.StillRunning; + } + + return base.Update(); + } + + protected override ETaskResult UpdateInternal() + { + if (condition[ConditionFlag.Diving]) + return ETaskResult.TaskComplete; + + if (_attempts >= 3) + throw new TaskException("Please dive manually."); + + Descend(); + _attempts++; + return ETaskResult.StillRunning; + } + + private unsafe void Descend() + { + var keybind = new UIInputData.Keybind(); + var keyName = Utf8String.FromString("MOVE_DESCENT"); + var inputData = UIInputData.Instance(); + inputData->GetKeybind(keyName, &keybind); + + logger.LogInformation("Dive keybind: {Key1} + {Modifier1}, {Key2} + {Modifier2}", keybind.Key, + keybind.Modifier, keybind.AltKey, keybind.AltModifier); + + // find the shortest of the two key combinations to press + List?> availableKeys = + [GetKeysToPress(keybind.Key, keybind.Modifier), GetKeysToPress(keybind.AltKey, keybind.AltModifier)]; + List? realKeys = availableKeys.Where(x => x != null).Select(x => x!).MinBy(x => x.Count); + if (realKeys == null || realKeys.Count == 0) + throw new TaskException("No useable keybind found for diving"); + + foreach (var key in realKeys) + { + _keysToPress.Enqueue((NativeMethods.WM_KEYDOWN, key)); + _keysToPress.Enqueue((0, 0)); + _keysToPress.Enqueue((0, 0)); + } + + for (int i = 0; i < 5; ++i) + _keysToPress.Enqueue((0, 0)); // do nothing + + realKeys.Reverse(); + foreach (var key in realKeys) + _keysToPress.Enqueue((NativeMethods.WM_KEYUP, key)); + } + + public override string ToString() => "Dive"; + } + + private static List? GetKeysToPress(SeVirtualKey key, ModifierFlag modifier) + { + List keys = []; + if (modifier.HasFlag(ModifierFlag.Ctrl)) + keys.Add(0x11); // VK_CONTROL + if (modifier.HasFlag(ModifierFlag.Shift)) + keys.Add(0x10); // VK_SHIFT + if (modifier.HasFlag(ModifierFlag.Alt)) + keys.Add(0x12); // VK_MENU + + nint mappedKey = (nint)key; + if (mappedKey == 0) + return null; + + keys.Add(mappedKey); + return keys; + } + + private static class NativeMethods + { + public const uint WM_KEYUP = 0x101; + public const uint WM_KEYDOWN = 0x100; + + [DllImport("user32.dll", CharSet = CharSet.Auto)] + [DefaultDllImportSearchPaths(DllImportSearchPath.System32)] + public static extern IntPtr SendMessage(IntPtr hWnd, uint Msg, nint wParam, nint lParam); + } +} diff --git a/Questionable/Controller/Steps/Interactions/Jump.cs b/Questionable/Controller/Steps/Interactions/Jump.cs index 1d25ea44..5c3d9add 100644 --- a/Questionable/Controller/Steps/Interactions/Jump.cs +++ b/Questionable/Controller/Steps/Interactions/Jump.cs @@ -2,6 +2,7 @@ using Dalamud.Plugin.Services; using FFXIVClientStructs.FFXIV.Client.Game; using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Logging; using Questionable.Controller.Steps.Common; using Questionable.Model; using Questionable.Model.V1; @@ -19,12 +20,20 @@ internal static class Jump ArgumentNullException.ThrowIfNull(step.JumpDestination); - return serviceProvider.GetRequiredService() - .With(step.DataId, step.JumpDestination, step.Comment); + if (step.JumpDestination.Type == EJumpType.SingleJump) + { + return serviceProvider.GetRequiredService() + .With(step.DataId, step.JumpDestination, step.Comment); + } + else + { + return serviceProvider.GetRequiredService() + .With(step.DataId, step.JumpDestination, step.Comment); + } } } - internal sealed class DoJump( + internal class SingleJump( MovementController movementController, IClientState clientState, IFramework framework) : ITask @@ -41,9 +50,9 @@ internal static class Jump return this; } - public bool Start() + public virtual bool Start() { - float stopDistance = JumpDestination.StopDistance ?? 1f; + float stopDistance = JumpDestination.CalculateStopDistance(); if ((clientState.LocalPlayer!.Position - JumpDestination.Position).Length() <= stopDistance) return false; @@ -60,7 +69,7 @@ internal static class Jump return true; } - public ETaskResult Update() + public virtual ETaskResult Update() { if (movementController.IsPathfinding || movementController.IsPathRunning) return ETaskResult.StillRunning; @@ -74,4 +83,48 @@ internal static class Jump public override string ToString() => $"Jump({Comment})"; } + + internal sealed class RepeatedJumps( + MovementController movementController, + IClientState clientState, + IFramework framework, + ILogger logger) : SingleJump(movementController, clientState, framework) + { + private readonly IClientState _clientState = clientState; + private DateTime _continueAt = DateTime.MinValue; + private int _attempts; + + public override bool Start() + { + _continueAt = DateTime.Now + TimeSpan.FromSeconds(2 * (JumpDestination.DelaySeconds ?? 0.5f)); + return base.Start(); + } + + public override ETaskResult Update() + { + if (DateTime.Now < _continueAt) + return ETaskResult.StillRunning; + + float stopDistance = JumpDestination.CalculateStopDistance(); + if ((_clientState.LocalPlayer!.Position - JumpDestination.Position).Length() <= stopDistance || + _clientState.LocalPlayer.Position.Y >= JumpDestination.Position.Y - 0.5f) + return ETaskResult.TaskComplete; + + logger.LogTrace("Y-Heights for jumps: player={A}, target={B}", _clientState.LocalPlayer.Position.Y, + JumpDestination.Position.Y - 0.5f); + unsafe + { + ActionManager.Instance()->UseAction(ActionType.GeneralAction, 2); + } + + ++_attempts; + if (_attempts >= 50) + throw new TaskException("Tried to jump too many times, didn't reach the target"); + + _continueAt = DateTime.Now + TimeSpan.FromSeconds(JumpDestination.DelaySeconds ?? 0.5f); + return ETaskResult.StillRunning; + } + + public override string ToString() => $"RepeatedJump({Comment})"; + } } diff --git a/Questionable/QuestionablePlugin.cs b/Questionable/QuestionablePlugin.cs index 90286f74..f9318b70 100644 --- a/Questionable/QuestionablePlugin.cs +++ b/Questionable/QuestionablePlugin.cs @@ -120,7 +120,8 @@ public sealed class QuestionablePlugin : IDalamudPlugin serviceCollection.AddTaskWithFactory(); serviceCollection.AddTaskWithFactory(); serviceCollection.AddTaskWithFactory(); - serviceCollection.AddTaskWithFactory(); + serviceCollection.AddTaskWithFactory(); + serviceCollection.AddTaskWithFactory(); serviceCollection.AddTaskWithFactory(); serviceCollection.AddTaskWithFactory(); serviceCollection.AddTaskWithFactory(); diff --git a/Questionable/Windows/QuestComponents/CreationUtilsComponent.cs b/Questionable/Windows/QuestComponents/CreationUtilsComponent.cs index a67221a4..a1fac0a4 100644 --- a/Questionable/Windows/QuestComponents/CreationUtilsComponent.cs +++ b/Questionable/Windows/QuestComponents/CreationUtilsComponent.cs @@ -115,7 +115,7 @@ internal sealed class CreationUtilsComponent ImGui.BeginDisabled(!_movementController.IsNavmeshReady); if (!_movementController.IsPathfinding) { - if (ImGui.Button("Move to Target")) + if (ImGuiComponents.IconButtonWithText(FontAwesomeIcon.Bullseye, "To Target")) { _movementController.NavigateTo(EMovementType.DebugWindow, _targetManager.Target.DataId, _targetManager.Target.Position,