From da2c505c1386d495c9efcd1353543d2c9a6cf243 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Fri, 19 Jul 2024 01:15:55 +0200 Subject: [PATCH] Add Heritage Found side quests --- .../Unlocks/Misc/5187_Bottled Fantasy.json | 64 ++++++++ .../Heritage Found/5149_Gwok Away.json | 114 ++++++++++++++ .../5150_Natural Selection.json | 95 ++++++++++++ .../5151_The Miracle of Electrope.json | 103 +++++++++++++ ...ear and Lightning in the Thunderyards.json | 107 ++++++++++++++ .../Heritage Found/5154_Refined Tastes.json | 52 +++++++ .../Heritage Found/5155_History Reforged.json | 135 +++++++++++++++++ .../5157_A Well-oiled Machine.json | 63 ++++++++ .../Heritage Found/5158_Storm's Traces.json | 90 ++++++++++++ .../Heritage Found/5161_Yyupye's Dirt.json | 139 ++++++++++++++++++ .../5162_What She Left Behind.json | 86 +++++++++++ .../5163_All That She Carried.json | 106 +++++++++++++ .../Solution Nine/5173_Tasteful Memories.json | 129 ++++++++++++++++ QuestPaths/quest-v1.json | 3 +- .../V1/Converter/SkipConditionConverter.cs | 1 + Questionable.Model/V1/ESkipCondition.cs | 1 + Questionable/Controller/MovementController.cs | 9 +- .../MovementOverrideController.cs | 4 + .../Steps/Interactions/EquipItem.cs | 1 + .../Controller/Steps/Shared/SkipCondition.cs | 11 ++ Questionable/Questionable.csproj | 2 +- 21 files changed, 1309 insertions(+), 6 deletions(-) create mode 100644 QuestPaths/2.x - A Realm Reborn/Unlocks/Misc/5187_Bottled Fantasy.json create mode 100644 QuestPaths/7.x - Dawntrail/Side Quests/Heritage Found/5149_Gwok Away.json create mode 100644 QuestPaths/7.x - Dawntrail/Side Quests/Heritage Found/5150_Natural Selection.json create mode 100644 QuestPaths/7.x - Dawntrail/Side Quests/Heritage Found/5151_The Miracle of Electrope.json create mode 100644 QuestPaths/7.x - Dawntrail/Side Quests/Heritage Found/5152_Fear and Lightning in the Thunderyards.json create mode 100644 QuestPaths/7.x - Dawntrail/Side Quests/Heritage Found/5154_Refined Tastes.json create mode 100644 QuestPaths/7.x - Dawntrail/Side Quests/Heritage Found/5155_History Reforged.json create mode 100644 QuestPaths/7.x - Dawntrail/Side Quests/Heritage Found/5157_A Well-oiled Machine.json create mode 100644 QuestPaths/7.x - Dawntrail/Side Quests/Heritage Found/5158_Storm's Traces.json create mode 100644 QuestPaths/7.x - Dawntrail/Side Quests/Heritage Found/5161_Yyupye's Dirt.json create mode 100644 QuestPaths/7.x - Dawntrail/Side Quests/Heritage Found/5162_What She Left Behind.json create mode 100644 QuestPaths/7.x - Dawntrail/Side Quests/Heritage Found/5163_All That She Carried.json create mode 100644 QuestPaths/7.x - Dawntrail/Side Quests/Solution Nine/5173_Tasteful Memories.json diff --git a/QuestPaths/2.x - A Realm Reborn/Unlocks/Misc/5187_Bottled Fantasy.json b/QuestPaths/2.x - A Realm Reborn/Unlocks/Misc/5187_Bottled Fantasy.json new file mode 100644 index 00000000..0436f17d --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Unlocks/Misc/5187_Bottled Fantasy.json @@ -0,0 +1,64 @@ +{ + "$schema": "https://carvel.li/questionable/quest-1.0", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1051600, + "Position": { + "X": 111.16199, + "Y": 4, + "Z": -98.92432 + }, + "TerritoryId": 131, + "InteractionType": "AcceptQuest", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_KINGYR301_05187_Q1_000_000", + "Answer": "TEXT_KINGYR301_05187_A1_000_002" + } + ] + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1051601, + "Position": { + "X": -45.5177, + "Y": 7.9999995, + "Z": -100.72485 + }, + "TerritoryId": 130, + "InteractionType": "Interact", + "AetheryteShortcut": "Ul'dah" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1051600, + "Position": { + "X": 111.16199, + "Y": 4, + "Z": -98.92432 + }, + "TerritoryId": 131, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Sapphire Avenue Exchange" + ] + } + ] + } + ] +} diff --git a/QuestPaths/7.x - Dawntrail/Side Quests/Heritage Found/5149_Gwok Away.json b/QuestPaths/7.x - Dawntrail/Side Quests/Heritage Found/5149_Gwok Away.json new file mode 100644 index 00000000..b0da9077 --- /dev/null +++ b/QuestPaths/7.x - Dawntrail/Side Quests/Heritage Found/5149_Gwok Away.json @@ -0,0 +1,114 @@ +{ + "$schema": "https://carvel.li/questionable/quest-1.0", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1049442, + "Position": { + "X": -272.23627, + "Y": 30.001156, + "Z": -577.59973 + }, + "TerritoryId": 1191, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2014079, + "Position": { + "X": -213.24487, + "Y": 30.838379, + "Z": -618.0362 + }, + "StopDistance": 0.25, + "TerritoryId": 1191, + "InteractionType": "UseItem", + "ItemId": 2003594, + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 2014078, + "Position": { + "X": -272.8161, + "Y": 37.857544, + "Z": -504.9058 + }, + "StopDistance": 0.25, + "TerritoryId": 1191, + "InteractionType": "UseItem", + "ItemId": 2003594, + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 2014080, + "Position": { + "X": -349.1112, + "Y": 37.857544, + "Z": -610.5898 + }, + "StopDistance": 0.25, + "TerritoryId": 1191, + "InteractionType": "UseItem", + "ItemId": 2003594, + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": -270.87784, + "Y": 30, + "Z": -577.24225 + }, + "TerritoryId": 1191, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 1049442, + "Position": { + "X": -272.23627, + "Y": 30.001156, + "Z": -577.59973 + }, + "TerritoryId": 1191, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/7.x - Dawntrail/Side Quests/Heritage Found/5150_Natural Selection.json b/QuestPaths/7.x - Dawntrail/Side Quests/Heritage Found/5150_Natural Selection.json new file mode 100644 index 00000000..01b3f726 --- /dev/null +++ b/QuestPaths/7.x - Dawntrail/Side Quests/Heritage Found/5150_Natural Selection.json @@ -0,0 +1,95 @@ +{ + "$schema": "https://carvel.li/questionable/quest-1.0", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1049465, + "Position": { + "X": -333.3944, + "Y": 43.50267, + "Z": -643.64087 + }, + "TerritoryId": 1191, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": -316.46542, + "Y": 38.99998, + "Z": -622.67126 + }, + "TerritoryId": 1191, + "InteractionType": "WalkTo", + "Mount": true + }, + { + "DataId": 1049475, + "Position": { + "X": -69.87109, + "Y": 36.567646, + "Z": -217.39532 + }, + "TerritoryId": 1191, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2014084, + "Position": { + "X": -69.68799, + "Y": 36.972534, + "Z": -215.7168 + }, + "StopDistance": 4.5, + "TerritoryId": 1191, + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_KINGZF002_05150_Q1_100_008", + "Yes": true + } + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": -316.46542, + "Y": 38.99998, + "Z": -622.67126 + }, + "TerritoryId": 1191, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 1049465, + "Position": { + "X": -333.3944, + "Y": 43.50267, + "Z": -643.64087 + }, + "TerritoryId": 1191, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/7.x - Dawntrail/Side Quests/Heritage Found/5151_The Miracle of Electrope.json b/QuestPaths/7.x - Dawntrail/Side Quests/Heritage Found/5151_The Miracle of Electrope.json new file mode 100644 index 00000000..233b39c3 --- /dev/null +++ b/QuestPaths/7.x - Dawntrail/Side Quests/Heritage Found/5151_The Miracle of Electrope.json @@ -0,0 +1,103 @@ +{ + "$schema": "https://carvel.li/questionable/quest-1.0", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1050659, + "Position": { + "X": -215.198, + "Y": 36.994804, + "Z": -497.85614 + }, + "TerritoryId": 1191, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1050659, + "Position": { + "X": -215.198, + "Y": 36.994804, + "Z": -497.85614 + }, + "TerritoryId": 1191, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1050659, + "Position": { + "X": -185.05022, + "Y": 30.989729, + "Z": -513.96875 + }, + "StopDistance": 0.5, + "TerritoryId": 1191, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1050659, + "Position": { + "X": -196.74313, + "Y": 34.982788, + "Z": -643.43665 + }, + "StopDistance": 0.5, + "TerritoryId": 1191, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1050659, + "Position": { + "X": -165.5087, + "Y": 38.967262, + "Z": -706.4246 + }, + "StopDistance": 0.5, + "TerritoryId": 1191, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1050659, + "Position": { + "X": -215.198, + "Y": 36.994804, + "Z": -497.85614 + }, + "TerritoryId": 1191, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/7.x - Dawntrail/Side Quests/Heritage Found/5152_Fear and Lightning in the Thunderyards.json b/QuestPaths/7.x - Dawntrail/Side Quests/Heritage Found/5152_Fear and Lightning in the Thunderyards.json new file mode 100644 index 00000000..ba1207c8 --- /dev/null +++ b/QuestPaths/7.x - Dawntrail/Side Quests/Heritage Found/5152_Fear and Lightning in the Thunderyards.json @@ -0,0 +1,107 @@ +{ + "$schema": "https://carvel.li/questionable/quest-1.0", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1050660, + "Position": { + "X": 421.8661, + "Y": 90, + "Z": -476.67664 + }, + "TerritoryId": 1191, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1050661, + "Position": { + "X": -136.09528, + "Y": 26.068634, + "Z": -509.39197 + }, + "TerritoryId": 1191, + "InteractionType": "Interact", + "AetheryteShortcut": "Heritage Found - The Outskirts", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1050661, + "Position": { + "X": -136.09528, + "Y": 26.068634, + "Z": -509.39197 + }, + "TerritoryId": 1191, + "InteractionType": "Emote", + "Emote": "cheer", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1050662, + "Position": { + "X": 149.7367, + "Y": 48.34552, + "Z": -463.5844 + }, + "TerritoryId": 1191, + "InteractionType": "Emote", + "Emote": "cheer", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1050727, + "Position": { + "X": 309.65125, + "Y": 71.38871, + "Z": -473.68585 + }, + "StopDistance": 0.25, + "TerritoryId": 1191, + "InteractionType": "Emote", + "Emote": "psych", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1050660, + "Position": { + "X": 421.8661, + "Y": 90, + "Z": -476.67664 + }, + "StopDistance": 0.25, + "TerritoryId": 1191, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/7.x - Dawntrail/Side Quests/Heritage Found/5154_Refined Tastes.json b/QuestPaths/7.x - Dawntrail/Side Quests/Heritage Found/5154_Refined Tastes.json new file mode 100644 index 00000000..81690125 --- /dev/null +++ b/QuestPaths/7.x - Dawntrail/Side Quests/Heritage Found/5154_Refined Tastes.json @@ -0,0 +1,52 @@ +{ + "$schema": "https://carvel.li/questionable/quest-1.0", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1051378, + "Position": { + "X": -184.89362, + "Y": 29.978386, + "Z": -584.52734 + }, + "TerritoryId": 1191, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1051379, + "Position": { + "X": -324.51367, + "Y": 36.98768, + "Z": -554.00934 + }, + "TerritoryId": 1191, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1051380, + "Position": { + "X": -323.72015, + "Y": 36.98504, + "Z": -555.8404 + }, + "TerritoryId": 1191, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/7.x - Dawntrail/Side Quests/Heritage Found/5155_History Reforged.json b/QuestPaths/7.x - Dawntrail/Side Quests/Heritage Found/5155_History Reforged.json new file mode 100644 index 00000000..8e446198 --- /dev/null +++ b/QuestPaths/7.x - Dawntrail/Side Quests/Heritage Found/5155_History Reforged.json @@ -0,0 +1,135 @@ +{ + "$schema": "https://carvel.li/questionable/quest-1.0", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1049500, + "Position": { + "X": -591.76013, + "Y": -2.503842, + "Z": -502.09814 + }, + "TerritoryId": 1191, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": -731.0091, + "Y": 10.949384, + "Z": -113.12315 + }, + "TerritoryId": 1191, + "InteractionType": "WalkTo", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + -128 + ] + }, + { + "DataId": 2014091, + "Position": { + "X": -732.44836, + "Y": 11.459534, + "Z": -110.185425 + }, + "StopDistance": 4, + "TerritoryId": 1191, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 2014092, + "Position": { + "X": -771.93866, + "Y": 8.2855835, + "Z": -37.583008 + }, + "TerritoryId": 1191, + "InteractionType": "Interact", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "Position": { + "X": -646.74786, + "Y": 17.395247, + "Z": 39.380535 + }, + "TerritoryId": 1191, + "InteractionType": "WalkTo", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + -32 + ] + }, + { + "DataId": 2014093, + "Position": { + "X": -645.3804, + "Y": 17.837708, + "Z": 39.230957 + }, + "TerritoryId": 1191, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1049500, + "Position": { + "X": -591.76013, + "Y": -2.503842, + "Z": -502.09814 + }, + "TerritoryId": 1191, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Heritage Found - The Outskirts", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/7.x - Dawntrail/Side Quests/Heritage Found/5157_A Well-oiled Machine.json b/QuestPaths/7.x - Dawntrail/Side Quests/Heritage Found/5157_A Well-oiled Machine.json new file mode 100644 index 00000000..5e33b3ca --- /dev/null +++ b/QuestPaths/7.x - Dawntrail/Side Quests/Heritage Found/5157_A Well-oiled Machine.json @@ -0,0 +1,63 @@ +{ + "$schema": "https://carvel.li/questionable/quest-1.0", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1049488, + "Position": { + "X": -195.23926, + "Y": 31.00003, + "Z": 142.90063 + }, + "TerritoryId": 1191, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": -50.850063, + "Y": 67.24198, + "Z": 182.26367 + }, + "TerritoryId": 1191, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 1050667, + "Position": { + "X": -51.46869, + "Y": 66.87813, + "Z": 180.07166 + }, + "TerritoryId": 1191, + "InteractionType": "Emote", + "Emote": "poke" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1049488, + "Position": { + "X": -195.23926, + "Y": 31.00003, + "Z": 142.90063 + }, + "TerritoryId": 1191, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Heritage Found - Electrope Strike" + } + ] + } + ] +} diff --git a/QuestPaths/7.x - Dawntrail/Side Quests/Heritage Found/5158_Storm's Traces.json b/QuestPaths/7.x - Dawntrail/Side Quests/Heritage Found/5158_Storm's Traces.json new file mode 100644 index 00000000..7af26d4c --- /dev/null +++ b/QuestPaths/7.x - Dawntrail/Side Quests/Heritage Found/5158_Storm's Traces.json @@ -0,0 +1,90 @@ +{ + "$schema": "https://carvel.li/questionable/quest-1.0", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1049489, + "Position": { + "X": -250.04962, + "Y": 31.000015, + "Z": 134.7218 + }, + "TerritoryId": 1191, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": -174.01418, + "Y": 31.361284, + "Z": 268.5205 + }, + "StopDistance": 0.5, + "TerritoryId": 1191, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [ + 17682, + 17683 + ], + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "Position": { + "X": -352.59204, + "Y": 39.809544, + "Z": -44.773865 + }, + "StopDistance": 0.5, + "TerritoryId": 1191, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [ + 17680, + 17681 + ], + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1049489, + "Position": { + "X": -250.04962, + "Y": 31.000015, + "Z": 134.7218 + }, + "TerritoryId": 1191, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Heritage Found - Electrope Strike" + } + ] + } + ] +} diff --git a/QuestPaths/7.x - Dawntrail/Side Quests/Heritage Found/5161_Yyupye's Dirt.json b/QuestPaths/7.x - Dawntrail/Side Quests/Heritage Found/5161_Yyupye's Dirt.json new file mode 100644 index 00000000..9672253f --- /dev/null +++ b/QuestPaths/7.x - Dawntrail/Side Quests/Heritage Found/5161_Yyupye's Dirt.json @@ -0,0 +1,139 @@ +{ + "$schema": "https://carvel.li/questionable/quest-1.0", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1050806, + "Position": { + "X": -151.99518, + "Y": 34.94368, + "Z": -581.23145 + }, + "TerritoryId": 1191, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1050802, + "Position": { + "X": -153.09375, + "Y": 34.946026, + "Z": -581.0178 + }, + "TerritoryId": 1191, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1050807, + "Position": { + "X": -165.97241, + "Y": 25.979595, + "Z": -502.80005 + }, + "TerritoryId": 1191, + "InteractionType": "Interact", + "Fly": true, + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_KINGZF202_05161_Q1_000_001", + "Answer": "TEXT_KINGZF202_05161_A1_000_003" + } + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2014035, + "Position": { + "X": -61.478638, + "Y": 35.355103, + "Z": -294.75854 + }, + "TerritoryId": 1191, + "InteractionType": "Interact", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 2014036, + "Position": { + "X": -99.53461, + "Y": 36.9115, + "Z": -233.47827 + }, + "TerritoryId": 1191, + "InteractionType": "Interact", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 2014037, + "Position": { + "X": -38.31543, + "Y": 37.979614, + "Z": -221.5763 + }, + "TerritoryId": 1191, + "InteractionType": "Interact", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1050802, + "Position": { + "X": -153.09375, + "Y": 34.946026, + "Z": -581.0178 + }, + "TerritoryId": 1191, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Heritage Found - The Outskirts", + "Fly": true, + "NextQuestId": 5162 + } + ] + } + ] +} diff --git a/QuestPaths/7.x - Dawntrail/Side Quests/Heritage Found/5162_What She Left Behind.json b/QuestPaths/7.x - Dawntrail/Side Quests/Heritage Found/5162_What She Left Behind.json new file mode 100644 index 00000000..074faedb --- /dev/null +++ b/QuestPaths/7.x - Dawntrail/Side Quests/Heritage Found/5162_What She Left Behind.json @@ -0,0 +1,86 @@ +{ + "$schema": "https://carvel.li/questionable/quest-1.0", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1050802, + "Position": { + "X": -153.09375, + "Y": 34.946026, + "Z": -581.0178 + }, + "TerritoryId": 1191, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1050809, + "Position": { + "X": -59.372925, + "Y": 42.99715, + "Z": -637.2626 + }, + "TerritoryId": 1191, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1050810, + "Position": { + "X": -44.480103, + "Y": 33.495888, + "Z": -306.99628 + }, + "TerritoryId": 1191, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1050810, + "Position": { + "X": 516.28033, + "Y": 145.60376, + "Z": 228.34976 + }, + "TerritoryId": 1191, + "InteractionType": "Interact", + "AetheryteShortcut": "Heritage Found - Yyasulani Station" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1050806, + "Position": { + "X": -151.99518, + "Y": 34.94368, + "Z": -581.23145 + }, + "StopDistance": 5, + "TerritoryId": 1191, + "InteractionType": "CompleteQuest", + "NextQuestId": 5163 + } + ] + } + ] +} diff --git a/QuestPaths/7.x - Dawntrail/Side Quests/Heritage Found/5163_All That She Carried.json b/QuestPaths/7.x - Dawntrail/Side Quests/Heritage Found/5163_All That She Carried.json new file mode 100644 index 00000000..9a4b98d8 --- /dev/null +++ b/QuestPaths/7.x - Dawntrail/Side Quests/Heritage Found/5163_All That She Carried.json @@ -0,0 +1,106 @@ +{ + "$schema": "https://carvel.li/questionable/quest-1.0", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1050806, + "Position": { + "X": -151.99518, + "Y": 34.94368, + "Z": -581.23145 + }, + "StopDistance": 5, + "TerritoryId": 1191, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1050957, + "Position": { + "X": -59.372925, + "Y": 42.99715, + "Z": -637.2626 + }, + "TerritoryId": 1191, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2014063, + "Position": { + "X": 46.00586, + "Y": 34.01233, + "Z": -411.33746 + }, + "StopDistance": 0.5, + "TerritoryId": 1191, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 17685 + ], + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 2014077, + "Position": { + "X": -22.110352, + "Y": 34.6532, + "Z": -268.9403 + }, + "StopDistance": 0.5, + "TerritoryId": 1191, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 17685 + ], + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1050811, + "Position": { + "X": -97.0932, + "Y": 28.796848, + "Z": -446.7079 + }, + "TerritoryId": 1191, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/7.x - Dawntrail/Side Quests/Solution Nine/5173_Tasteful Memories.json b/QuestPaths/7.x - Dawntrail/Side Quests/Solution Nine/5173_Tasteful Memories.json new file mode 100644 index 00000000..ee3bf8b7 --- /dev/null +++ b/QuestPaths/7.x - Dawntrail/Side Quests/Solution Nine/5173_Tasteful Memories.json @@ -0,0 +1,129 @@ +{ + "$schema": "https://carvel.li/questionable/quest-1.0", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1051381, + "Position": { + "X": 261.7074, + "Y": 59.699993, + "Z": 5.0201416 + }, + "TerritoryId": 1186, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1051381, + "Position": { + "X": 261.7074, + "Y": 59.699993, + "Z": 5.0201416 + }, + "TerritoryId": 1186, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1051382, + "Position": { + "X": 317.46387, + "Y": 70.75, + "Z": -64.01166 + }, + "TerritoryId": 1186, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 1051383, + "Position": { + "X": 363.24097, + "Y": 50.75, + "Z": 185.77856 + }, + "TerritoryId": 1186, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 1051384, + "Position": { + "X": 253.52856, + "Y": 50.3, + "Z": 189.07446 + }, + "TerritoryId": 1186, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1051385, + "Position": { + "X": 451.5907, + "Y": 61.38527, + "Z": 319.44763 + }, + "TerritoryId": 1186, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Solution Nine] Neon Stein", + "[Solution Nine] The Arcadion" + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1051386, + "Position": { + "X": 453.1776, + "Y": 61.38527, + "Z": 321.85852 + }, + "TerritoryId": 1186, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/quest-v1.json b/QuestPaths/quest-v1.json index 95f9a630..91f7d9c7 100644 --- a/QuestPaths/quest-v1.json +++ b/QuestPaths/quest-v1.json @@ -183,7 +183,8 @@ "DifferentTerritory", "ChocoboUnlocked", "AetheryteShortcutIfInSameTerritory", - "NotTargetable" + "NotTargetable", + "ItemNotInInventory" ] } }, diff --git a/Questionable.Model/V1/Converter/SkipConditionConverter.cs b/Questionable.Model/V1/Converter/SkipConditionConverter.cs index adf008ba..4a31f616 100644 --- a/Questionable.Model/V1/Converter/SkipConditionConverter.cs +++ b/Questionable.Model/V1/Converter/SkipConditionConverter.cs @@ -12,5 +12,6 @@ public sealed class SkipConditionConverter() : EnumConverter(Val { ESkipCondition.ChocoboUnlocked, "ChocoboUnlocked" }, { ESkipCondition.AetheryteShortcutIfInSameTerritory, "AetheryteShortcutIfInSameTerritory" }, { ESkipCondition.NotTargetable, "NotTargetable" }, + { ESkipCondition.ItemNotInInventory, "ItemNotInInventory" }, }; } diff --git a/Questionable.Model/V1/ESkipCondition.cs b/Questionable.Model/V1/ESkipCondition.cs index 3ece172b..f5f0e676 100644 --- a/Questionable.Model/V1/ESkipCondition.cs +++ b/Questionable.Model/V1/ESkipCondition.cs @@ -13,4 +13,5 @@ public enum ESkipCondition ChocoboUnlocked, AetheryteShortcutIfInSameTerritory, NotTargetable, + ItemNotInInventory, } diff --git a/Questionable/Controller/MovementController.cs b/Questionable/Controller/MovementController.cs index ba8c3077..dca221d0 100644 --- a/Questionable/Controller/MovementController.cs +++ b/Questionable/Controller/MovementController.cs @@ -89,10 +89,7 @@ internal sealed class MovementController : IDisposable { if (_pathfindTask.IsCompletedSuccessfully) { - _logger.LogInformation("Pathfinding complete, route: [{Route}]", - string.Join(" → ", - _pathfindTask.Result.Select(x => x.ToString("G", CultureInfo.InvariantCulture)))); - + _logger.LogInformation("Pathfinding complete, got {Count} points", _pathfindTask.Result.Count); if (_pathfindTask.Result.Count == 0) { ResetPathfinding(); @@ -115,6 +112,10 @@ internal sealed class MovementController : IDisposable if (!Destination.IsFlying) _movementOverrideController.AdjustPath(navPoints); + _logger.LogInformation("Navigating via route: [{Route}]", + string.Join(" → ", + _pathfindTask.Result.Select(x => x.ToString("G", CultureInfo.InvariantCulture)))); + _navmeshIpc.MoveTo(navPoints, Destination.IsFlying); MovementStartedAt = DateTime.Now; diff --git a/Questionable/Controller/NavigationOverrides/MovementOverrideController.cs b/Questionable/Controller/NavigationOverrides/MovementOverrideController.cs index f0837b4e..38f9fb4a 100644 --- a/Questionable/Controller/NavigationOverrides/MovementOverrideController.cs +++ b/Questionable/Controller/NavigationOverrides/MovementOverrideController.cs @@ -17,6 +17,10 @@ internal sealed class MovementOverrideController new BlacklistedPoint(132, new(45.5f, -8f, 101f), new(50.53978f, -8.046954f, 101.06045f)), new BlacklistedPoint(1189, new(574f, -142.25f, 504.25f), new(574.44183f, -142.12766f, 507.60065f)), + + // heritage found: yyupye's halo (farm, npc: Mahuwsa) + new BlacklistedPoint(1191, new(-108f, 29.25f, -350.75f), new(-107.56289f, 29.008266f, -348.80087f)), + new BlacklistedPoint(1191, new(-105.75f, 29.75f, -351f), new(-105.335304f, 29.017048f, -348.85077f)), ]; private readonly IClientState _clientState; diff --git a/Questionable/Controller/Steps/Interactions/EquipItem.cs b/Questionable/Controller/Steps/Interactions/EquipItem.cs index 6a6157a8..929d33e0 100644 --- a/Questionable/Controller/Steps/Interactions/EquipItem.cs +++ b/Questionable/Controller/Steps/Interactions/EquipItem.cs @@ -145,6 +145,7 @@ internal static class EquipItem { >= 1 and <= 11 => [(ushort)(item.EquipSlotCategory.Row - 1)], 12 => [11, 12], // rings + 13 => [0], 17 => [14], // soul crystal _ => null }; diff --git a/Questionable/Controller/Steps/Shared/SkipCondition.cs b/Questionable/Controller/Steps/Shared/SkipCondition.cs index fbc6ff25..edd2b612 100644 --- a/Questionable/Controller/Steps/Shared/SkipCondition.cs +++ b/Questionable/Controller/Steps/Shared/SkipCondition.cs @@ -4,6 +4,7 @@ using System.Linq; using Dalamud.Game.ClientState.Objects.Types; using Dalamud.Plugin.Services; using FFXIVClientStructs.FFXIV.Application.Network.WorkDefinitions; +using FFXIVClientStructs.FFXIV.Client.Game; using FFXIVClientStructs.FFXIV.Client.Game.UI; using FFXIVClientStructs.FFXIV.Client.System.Framework; using Microsoft.Extensions.DependencyInjection; @@ -94,6 +95,16 @@ internal static class SkipCondition } } + if (SkipConditions.Contains(ESkipCondition.ItemNotInInventory) && Step is { ItemId: not null }) + { + InventoryManager* inventoryManager = InventoryManager.Instance(); + if (inventoryManager->GetInventoryItemCount(Step.ItemId.Value) == 0) + { + logger.LogInformation("Skipping step, no item with itemId {ItemId} in inventory", Step.ItemId.Value); + return true; + } + } + if (Step is { DataId: not null, diff --git a/Questionable/Questionable.csproj b/Questionable/Questionable.csproj index 9639c5f0..b74d56de 100644 --- a/Questionable/Questionable.csproj +++ b/Questionable/Questionable.csproj @@ -1,6 +1,6 @@  - 1.10 + 1.11 dist $(SolutionDir)=X:\