diff --git a/QuestPathGenerator/QuestSourceGenerator.cs b/QuestPathGenerator/QuestSourceGenerator.cs index 8bb37b736..5413660ca 100644 --- a/QuestPathGenerator/QuestSourceGenerator.cs +++ b/QuestPathGenerator/QuestSourceGenerator.cs @@ -309,6 +309,8 @@ public class QuestSourceGenerator : ISourceGenerator .AsSyntaxNodeOrToken(), Assignment(nameof(QuestStep.Fly), step.Fly, emptyStep.Fly) .AsSyntaxNodeOrToken(), + Assignment(nameof(QuestStep.Land), step.Land, emptyStep.Land) + .AsSyntaxNodeOrToken(), Assignment(nameof(QuestStep.Sprint), step.Sprint, emptyStep.Sprint) .AsSyntaxNodeOrToken(), Assignment(nameof(QuestStep.Comment), step.Comment, emptyStep.Comment) diff --git a/QuestPaths/6.x - Endwalker/Tribal/Arkasodara/4564_Olfactory Warfare.json b/QuestPaths/6.x - Endwalker/Tribal/Arkasodara/4564_Olfactory Warfare.json new file mode 100644 index 000000000..1c2b49974 --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Tribal/Arkasodara/4564_Olfactory Warfare.json @@ -0,0 +1,185 @@ +{ + "$schema": "https://carvel.li/questionable/quest-1.0", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1042301, + "Position": { + "X": -66.02582, + "Y": 39.994705, + "Z": 321.06494 + }, + "TerritoryId": 957, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1042302, + "Position": { + "X": -102.43384, + "Y": 40.00001, + "Z": 331.89893 + }, + "TerritoryId": 957, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": 86.44138, + "Y": 38.836067, + "Z": 375.43958 + }, + "TerritoryId": 957, + "InteractionType": "WalkTo", + "Fly": true, + "Land": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + -128 + ] + }, + { + "DataId": 2012887, + "Position": { + "X": 90.71484, + "Y": 38.70359, + "Z": 377.7981 + }, + "StopDistance": 5, + "TerritoryId": 957, + "InteractionType": "Action", + "Action": "Yellow Gulal", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "Position": { + "X": -73.42284, + "Y": 50.283375, + "Z": 165.20433 + }, + "TerritoryId": 957, + "InteractionType": "WalkTo", + "Fly": true, + "Land": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + -64 + ] + }, + { + "DataId": 2012888, + "Position": { + "X": -74.2962, + "Y": 50.095337, + "Z": 160.41797 + }, + "StopDistance": 5, + "TerritoryId": 957, + "InteractionType": "Action", + "Action": "Yellow Gulal", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "Position": { + "X": -195.75089, + "Y": 35.536575, + "Z": 98.20429 + }, + "TerritoryId": 957, + "InteractionType": "WalkTo", + "Fly": true, + "Land": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, + { + "DataId": 2012889, + "Position": { + "X": -197.9859, + "Y": 36.209595, + "Z": 94.102295 + }, + "StopDistance": 5, + "TerritoryId": 957, + "InteractionType": "Action", + "Action": "Yellow Gulal", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + -32 + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": -68.59158, + "Y": 39.9961, + "Z": 320.7581 + }, + "TerritoryId": 957, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 1042301, + "Position": { + "X": -66.02582, + "Y": 39.994705, + "Z": 321.06494 + }, + "TerritoryId": 957, + "InteractionType": "CompleteQuest", + "Mount": false, + "Comment": "TODO Verify this properly unmounts" + } + ] + } + ] +} diff --git a/QuestPaths/6.x - Endwalker/Tribal/Arkasodara/4565_Ridin' Hazards.json b/QuestPaths/6.x - Endwalker/Tribal/Arkasodara/4565_Ridin' Hazards.json new file mode 100644 index 000000000..c2578b9a9 --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Tribal/Arkasodara/4565_Ridin' Hazards.json @@ -0,0 +1,58 @@ +{ + "$schema": "https://carvel.li/questionable/quest-1.0", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1042301, + "Position": { + "X": -66.02582, + "Y": 39.994705, + "Z": 321.06494 + }, + "TerritoryId": 957, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2012855, + "Position": { + "X": -255.23767, + "Y": 69.13855, + "Z": -527.8248 + }, + "TerritoryId": 957, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 14677 + ], + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1042301, + "Position": { + "X": -66.02582, + "Y": 39.994705, + "Z": 321.06494 + }, + "TerritoryId": 957, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Thavnair - Yedlihmad", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/6.x - Endwalker/Tribal/Arkasodara/4566_Hippo Scrub.json b/QuestPaths/6.x - Endwalker/Tribal/Arkasodara/4566_Hippo Scrub.json new file mode 100644 index 000000000..25dd87c31 --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Tribal/Arkasodara/4566_Hippo Scrub.json @@ -0,0 +1,88 @@ +{ + "$schema": "https://carvel.li/questionable/quest-1.0", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1042301, + "Position": { + "X": -66.02582, + "Y": 39.994705, + "Z": 321.06494 + }, + "TerritoryId": 957, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1042469, + "Position": { + "X": -578.5153, + "Y": -0.01527307, + "Z": -36.514893 + }, + "TerritoryId": 957, + "InteractionType": "Interact", + "AetheryteShortcut": "Thavnair - Great Work", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1042470, + "Position": { + "X": -579.553, + "Y": -0.058757372, + "Z": -31.23523 + }, + "StopDistance": 4, + "TerritoryId": 957, + "InteractionType": "UseItem", + "ItemId": 2003401 + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1042470, + "Position": { + "X": -579.553, + "Y": -0.058757372, + "Z": -31.23523 + }, + "StopDistance": 4, + "TerritoryId": 957, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1042301, + "Position": { + "X": -66.02582, + "Y": 39.994705, + "Z": 321.06494 + }, + "TerritoryId": 957, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Thavnair - Yedlihmad", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/7.x - Dawntrail/Side Quests/Living Memory/5175_The Canals of History.json b/QuestPaths/7.x - Dawntrail/Side Quests/Living Memory/5175_The Canals of History.json new file mode 100644 index 000000000..a500a3138 --- /dev/null +++ b/QuestPaths/7.x - Dawntrail/Side Quests/Living Memory/5175_The Canals of History.json @@ -0,0 +1,121 @@ +{ + "$schema": "https://carvel.li/questionable/quest-1.0", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1050620, + "Position": { + "X": -733.79114, + "Y": 0.007321423, + "Z": 518.33374 + }, + "TerritoryId": 1192, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": -549.43896, + "Y": 20.09976, + "Z": 630.3976 + }, + "TerritoryId": 1192, + "InteractionType": "WalkTo", + "Fly": true, + "SkipIf": [ + "FlyingLocked" + ], + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + -128 + ] + }, + { + "DataId": 2013901, + "Position": { + "X": -515.9838, + "Y": -0.015319824, + "Z": 625.14685 + }, + "TerritoryId": 1192, + "InteractionType": "Interact", + "DisableNavmesh": true, + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 2013902, + "Position": { + "X": -496.78802, + "Y": 0.045776367, + "Z": 668.72656 + }, + "TerritoryId": 1192, + "InteractionType": "Interact", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 2013903, + "Position": { + "X": -424.2771, + "Y": -0.10687256, + "Z": 660.7003 + }, + "TerritoryId": 1192, + "InteractionType": "Interact", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1050620, + "Position": { + "X": -733.79114, + "Y": 0.007321423, + "Z": 518.33374 + }, + "TerritoryId": 1192, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/7.x - Dawntrail/Side Quests/Living Memory/5177_Brotherly Bonds Know No Barrier.json b/QuestPaths/7.x - Dawntrail/Side Quests/Living Memory/5177_Brotherly Bonds Know No Barrier.json new file mode 100644 index 000000000..6cdb6ee43 --- /dev/null +++ b/QuestPaths/7.x - Dawntrail/Side Quests/Living Memory/5177_Brotherly Bonds Know No Barrier.json @@ -0,0 +1,86 @@ +{ + "$schema": "https://carvel.li/questionable/quest-1.0", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1050623, + "Position": { + "X": 253.83374, + "Y": -0.034116313, + "Z": 439.3529 + }, + "TerritoryId": 1192, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1050623, + "Position": { + "X": 253.83374, + "Y": -0.034116313, + "Z": 439.3529 + }, + "TerritoryId": 1192, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1050623, + "Position": { + "X": 406.71564, + "Y": 1.3939283, + "Z": 550.029 + }, + "StopDistance": 0.25, + "TerritoryId": 1192, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1050623, + "Position": { + "X": 577.7826, + "Y": 7.5857296, + "Z": 662.96063 + }, + "StopDistance": 0.25, + "TerritoryId": 1192, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1050624, + "Position": { + "X": 581.1398, + "Y": 7.6887574, + "Z": 664.05725 + }, + "StopDistance": 5, + "TerritoryId": 1192, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/7.x - Dawntrail/Side Quests/Living Memory/5180_Lindblum, We Hardly Knew Ye.json b/QuestPaths/7.x - Dawntrail/Side Quests/Living Memory/5180_Lindblum, We Hardly Knew Ye.json new file mode 100644 index 000000000..260e27a56 --- /dev/null +++ b/QuestPaths/7.x - Dawntrail/Side Quests/Living Memory/5180_Lindblum, We Hardly Knew Ye.json @@ -0,0 +1,83 @@ +{ + "$schema": "https://carvel.li/questionable/quest-1.0", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1050634, + "Position": { + "X": -181.62811, + "Y": 30.999819, + "Z": 22.079773 + }, + "TerritoryId": 1192, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1050635, + "Position": { + "X": -201.83112, + "Y": 29.999939, + "Z": -124.28479 + }, + "TerritoryId": 1192, + "InteractionType": "Interact", + "Fly": true, + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_KINGZH007_05180_Q1_000_005", + "Answer": "TEXT_KINGZH007_05180_A1_000_001" + } + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1050636, + "Position": { + "X": -410.5135, + "Y": 30.49998, + "Z": -131.94476 + }, + "TerritoryId": 1192, + "InteractionType": "Interact", + "Fly": true, + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_KINGZH007_05180_Q2_000_013", + "Answer": "TEXT_KINGZH007_05180_A2_000_003" + } + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1050813, + "Position": { + "X": -277.76, + "Y": 54.31037, + "Z": -382.58948 + }, + "TerritoryId": 1192, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Living Memory - Leynode Aero" + } + ] + } + ] +} diff --git a/QuestPaths/7.x - Dawntrail/Side Quests/Living Memory/5181_Leaving This Place for Good.json b/QuestPaths/7.x - Dawntrail/Side Quests/Living Memory/5181_Leaving This Place for Good.json new file mode 100644 index 000000000..c9f13669b --- /dev/null +++ b/QuestPaths/7.x - Dawntrail/Side Quests/Living Memory/5181_Leaving This Place for Good.json @@ -0,0 +1,136 @@ +{ + "$schema": "https://carvel.li/questionable/quest-1.0", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1050637, + "Position": { + "X": -539.66583, + "Y": -10.000358, + "Z": -477.89734 + }, + "TerritoryId": 1192, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2013918, + "Position": { + "X": -429.89246, + "Y": -4.5319824, + "Z": -466.45306 + }, + "StopDistance": 0.25, + "TerritoryId": 1192, + "InteractionType": "Interact", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "Position": { + "X": -647.346, + "Y": -5.0000005, + "Z": -455.4366 + }, + "TerritoryId": 1192, + "InteractionType": "WalkTo", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + -32 + ] + }, + { + "DataId": 2013916, + "Position": { + "X": -648.85944, + "Y": -3.7995605, + "Z": -454.06274 + }, + "TerritoryId": 1192, + "InteractionType": "Interact", + "Mount": false, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, + { + "Position": { + "X": -572.3234, + "Y": -2.729274, + "Z": -703.2586 + }, + "TerritoryId": 1192, + "InteractionType": "WalkTo", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + -128 + ] + }, + { + "DataId": 2013917, + "Position": { + "X": -573.14417, + "Y": -1.0529175, + "Z": -702.05237 + }, + "TerritoryId": 1192, + "InteractionType": "Interact", + "Mount": false, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1050814, + "Position": { + "X": -539.7269, + "Y": -10.000359, + "Z": -477.8363 + }, + "TerritoryId": 1192, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/7.x - Dawntrail/Side Quests/Urqopacha/5032_Dirty Dancing.json b/QuestPaths/7.x - Dawntrail/Side Quests/Urqopacha/5032_Dirty Dancing.json new file mode 100644 index 000000000..cabd33978 --- /dev/null +++ b/QuestPaths/7.x - Dawntrail/Side Quests/Urqopacha/5032_Dirty Dancing.json @@ -0,0 +1,53 @@ +{ + "$schema": "https://carvel.li/questionable/quest-1.0", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1048712, + "Position": { + "X": 446.67737, + "Y": -116.815155, + "Z": -178.75946 + }, + "TerritoryId": 1187, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1050672, + "Position": { + "X": 550.65234, + "Y": -54.46781, + "Z": 42.83203 + }, + "TerritoryId": 1187, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1048712, + "Position": { + "X": 446.67737, + "Y": -116.815155, + "Z": -178.75946 + }, + "TerritoryId": 1187, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/7.x - Dawntrail/Side Quests/Urqopacha/5033_Gone Doll.json b/QuestPaths/7.x - Dawntrail/Side Quests/Urqopacha/5033_Gone Doll.json new file mode 100644 index 000000000..4dd28d481 --- /dev/null +++ b/QuestPaths/7.x - Dawntrail/Side Quests/Urqopacha/5033_Gone Doll.json @@ -0,0 +1,63 @@ +{ + "$schema": "https://carvel.li/questionable/quest-1.0", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1050673, + "Position": { + "X": 375.6007, + "Y": -116.81515, + "Z": -175.03625 + }, + "TerritoryId": 1187, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": 522.757, + "Y": -54.457268, + "Z": 57.29732 + }, + "StopDistance": 0.5, + "TerritoryId": 1187, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 2014108, + "Position": { + "X": 521.84326, + "Y": -53.543945, + "Z": 57.938477 + }, + "TerritoryId": 1187, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1050673, + "Position": { + "X": 375.6007, + "Y": -116.81515, + "Z": -175.03625 + }, + "Fly": true, + "TerritoryId": 1187, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/7.x - Dawntrail/Side Quests/Urqopacha/5034_A Blend for Every Taste.json b/QuestPaths/7.x - Dawntrail/Side Quests/Urqopacha/5034_A Blend for Every Taste.json new file mode 100644 index 000000000..934abde82 --- /dev/null +++ b/QuestPaths/7.x - Dawntrail/Side Quests/Urqopacha/5034_A Blend for Every Taste.json @@ -0,0 +1,117 @@ +{ + "$schema": "https://carvel.li/questionable/quest-1.0", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1048694, + "Position": { + "X": -401.7243, + "Y": -46.3959, + "Z": -449.5766 + }, + "TerritoryId": 1187, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1050674, + "Position": { + "X": -388.4795, + "Y": -46.297935, + "Z": -498.10028 + }, + "TerritoryId": 1187, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": -388.4795, + "Y": -46.297935, + "Z": -498.10028 + }, + "TerritoryId": 1187, + "InteractionType": "UseItem", + "ItemId": 2003604, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "Position": { + "X": -388.4795, + "Y": -46.297935, + "Z": -498.10028 + }, + "TerritoryId": 1187, + "InteractionType": "UseItem", + "ItemId": 2003605, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "Position": { + "X": -388.4795, + "Y": -46.297935, + "Z": -498.10028 + }, + "TerritoryId": 1187, + "InteractionType": "UseItem", + "ItemId": 2003606, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1048694, + "Position": { + "X": -401.7243, + "Y": -46.3959, + "Z": -449.5766 + }, + "TerritoryId": 1187, + "InteractionType": "CompleteQuest", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_KINGZB005_05034_Q1_000_000", + "Answer": "TEXT_KINGZB005_05034_A1_000_003" + } + ] + } + ] + } + ] +} diff --git a/QuestPaths/7.x - Dawntrail/Side Quests/Urqopacha/5035_Mate is the Medicine.json b/QuestPaths/7.x - Dawntrail/Side Quests/Urqopacha/5035_Mate is the Medicine.json new file mode 100644 index 000000000..7eed4e9f7 --- /dev/null +++ b/QuestPaths/7.x - Dawntrail/Side Quests/Urqopacha/5035_Mate is the Medicine.json @@ -0,0 +1,69 @@ +{ + "$schema": "https://carvel.li/questionable/quest-1.0", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1050675, + "Position": { + "X": -421.80518, + "Y": -45.817875, + "Z": -496.14713 + }, + "TerritoryId": 1187, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1048690, + "Position": { + "X": -406.42407, + "Y": -41.099792, + "Z": -565.6062 + }, + "TerritoryId": 1187, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1050676, + "Position": { + "X": -517.052, + "Y": -11.170306, + "Z": -652.58264 + }, + "TerritoryId": 1187, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1050716, + "Position": { + "X": -421.80518, + "Y": -45.817875, + "Z": -496.14713 + }, + "TerritoryId": 1187, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/7.x - Dawntrail/Side Quests/Urqopacha/5036_The Reeking Robber.json b/QuestPaths/7.x - Dawntrail/Side Quests/Urqopacha/5036_The Reeking Robber.json new file mode 100644 index 000000000..ba6aff7d7 --- /dev/null +++ b/QuestPaths/7.x - Dawntrail/Side Quests/Urqopacha/5036_The Reeking Robber.json @@ -0,0 +1,91 @@ +{ + "$schema": "https://carvel.li/questionable/quest-1.0", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1050678, + "Position": { + "X": -103.4715, + "Y": -128.19942, + "Z": -465.90375 + }, + "TerritoryId": 1187, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1050680, + "Position": { + "X": -67.91791, + "Y": -140.2539, + "Z": -676.7224 + }, + "StopDistance": 0.5, + "TerritoryId": 1187, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 17643, + 17644 + ], + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1050680, + "Position": { + "X": -67.91791, + "Y": -140.2539, + "Z": -676.7224 + }, + "StopDistance": 7, + "TerritoryId": 1187, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2014112, + "Position": { + "X": -68.07056, + "Y": -140.15417, + "Z": -678.9197 + }, + "StopDistance": 4.5, + "TerritoryId": 1187, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1050678, + "Position": { + "X": -103.4715, + "Y": -128.19942, + "Z": -465.90375 + }, + "TerritoryId": 1187, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/7.x - Dawntrail/Side Quests/Urqopacha/5037_A Sordid Situation.json b/QuestPaths/7.x - Dawntrail/Side Quests/Urqopacha/5037_A Sordid Situation.json new file mode 100644 index 000000000..787aace71 --- /dev/null +++ b/QuestPaths/7.x - Dawntrail/Side Quests/Urqopacha/5037_A Sordid Situation.json @@ -0,0 +1,137 @@ +{ + "$schema": "https://carvel.li/questionable/quest-1.0", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1048666, + "Position": { + "X": -54.8562, + "Y": -130.17744, + "Z": -443.1983 + }, + "TerritoryId": 1187, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": -192.7804, + "Y": -68.15436, + "Z": -139.24495 + }, + "TerritoryId": 1187, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 1050683, + "Position": { + "X": -194.32367, + "Y": -67.68594, + "Z": -135.57642 + }, + "StopDistance": 5, + "TerritoryId": 1187, + "InteractionType": "UseItem", + "ItemId": 2003608, + "GroundTarget": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2014115, + "Position": { + "X": -191.63806, + "Y": -67.216064, + "Z": -130.11371 + }, + "TerritoryId": 1187, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, + { + "DataId": 2014114, + "Position": { + "X": -194.78143, + "Y": -67.24658, + "Z": -131.27338 + }, + "StopDistance": 4.5, + "TerritoryId": 1187, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 2014113, + "Position": { + "X": -197.9859, + "Y": -66.971924, + "Z": -130.87665 + }, + "TerritoryId": 1187, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": -57.510014, + "Y": -130.50172, + "Z": -442.2758 + }, + "TerritoryId": 1187, + "InteractionType": "WalkTo", + "Fly": true, + "SkipIf": [ + "FlyingLocked" + ] + }, + { + "DataId": 1048666, + "Position": { + "X": -54.8562, + "Y": -130.17744, + "Z": -443.1983 + }, + "TerritoryId": 1187, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/7.x - Dawntrail/Side Quests/Urqopacha/5038_In Pursuit of Mezcal.json b/QuestPaths/7.x - Dawntrail/Side Quests/Urqopacha/5038_In Pursuit of Mezcal.json new file mode 100644 index 000000000..e463241df --- /dev/null +++ b/QuestPaths/7.x - Dawntrail/Side Quests/Urqopacha/5038_In Pursuit of Mezcal.json @@ -0,0 +1,60 @@ +{ + "$schema": "https://carvel.li/questionable/quest-1.0", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1048658, + "Position": { + "X": 365.46875, + "Y": -146.10005, + "Z": -465.01874 + }, + "TerritoryId": 1187, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2014116, + "Position": { + "X": -6.1189575, + "Y": -99.50415, + "Z": -247.97437 + }, + "StopDistance": 0.25, + "TerritoryId": 1187, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 17645 + ], + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1048658, + "Position": { + "X": 365.46875, + "Y": -146.10005, + "Z": -465.01874 + }, + "StopDistance": 0.5, + "TerritoryId": 1187, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Urqopacha - Wachunpelo", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/7.x - Dawntrail/Side Quests/Urqopacha/5040_Too Much of a Good Thing.json b/QuestPaths/7.x - Dawntrail/Side Quests/Urqopacha/5040_Too Much of a Good Thing.json new file mode 100644 index 000000000..4ddb92da2 --- /dev/null +++ b/QuestPaths/7.x - Dawntrail/Side Quests/Urqopacha/5040_Too Much of a Good Thing.json @@ -0,0 +1,55 @@ +{ + "$schema": "https://carvel.li/questionable/quest-1.0", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1051369, + "Position": { + "X": 357.83923, + "Y": -156.11935, + "Z": -386.43475 + }, + "TerritoryId": 1187, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Urqopacha - Wachunpelo", + "SkipIf": [ + "AetheryteShortcutIfInSameTerritory" + ] + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1051370, + "Position": { + "X": 302.02173, + "Y": -163.4447, + "Z": -420.34027 + }, + "TerritoryId": 1187, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1051371, + "Position": { + "X": 303.02893, + "Y": -163.416, + "Z": -421.53052 + }, + "TerritoryId": 1187, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/7.x - Dawntrail/Side Quests/Urqopacha/5041_Grandmother's Grave Gift.json b/QuestPaths/7.x - Dawntrail/Side Quests/Urqopacha/5041_Grandmother's Grave Gift.json new file mode 100644 index 000000000..db5e73c5b --- /dev/null +++ b/QuestPaths/7.x - Dawntrail/Side Quests/Urqopacha/5041_Grandmother's Grave Gift.json @@ -0,0 +1,103 @@ +{ + "$schema": "https://carvel.li/questionable/quest-1.0", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1050689, + "Position": { + "X": -147.2649, + "Y": 40.238018, + "Z": 44.449463 + }, + "StopDistance": 5, + "TerritoryId": 1187, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2014120, + "Position": { + "X": -624.5365, + "Y": 63.46228, + "Z": 210.8949 + }, + "TerritoryId": 1187, + "InteractionType": "Interact", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 2014121, + "Position": { + "X": -663.9048, + "Y": 61.875244, + "Z": 207.20227 + }, + "TerritoryId": 1187, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 17647 + ], + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, + { + "DataId": 2014119, + "Position": { + "X": -658.4421, + "Y": 59.03711, + "Z": 182.42151 + }, + "TerritoryId": 1187, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1050689, + "Position": { + "X": -147.2649, + "Y": 40.238018, + "Z": 44.449463 + }, + "StopDistance": 5, + "TerritoryId": 1187, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/7.x - Dawntrail/Side Quests/Urqopacha/5042_The Might Be Giant.json b/QuestPaths/7.x - Dawntrail/Side Quests/Urqopacha/5042_The Might Be Giant.json new file mode 100644 index 000000000..93fa0867a --- /dev/null +++ b/QuestPaths/7.x - Dawntrail/Side Quests/Urqopacha/5042_The Might Be Giant.json @@ -0,0 +1,87 @@ +{ + "$schema": "https://carvel.li/questionable/quest-1.0", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1050690, + "Position": { + "X": -82.993835, + "Y": 16.354095, + "Z": 19.150085 + }, + "StopDistance": 5, + "TerritoryId": 1187, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2014123, + "Position": { + "X": -84.55023, + "Y": 16.830688, + "Z": 17.288391 + }, + "StopDistance": 4.5, + "TerritoryId": 1187, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2014124, + "Position": { + "X": -299.64142, + "Y": 62.638306, + "Z": -66.331055 + }, + "TerritoryId": 1187, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1050691, + "Position": { + "X": -300.28235, + "Y": 62.68029, + "Z": -68.89453 + }, + "StopDistance": 7, + "TerritoryId": 1187, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1050690, + "Position": { + "X": -82.993835, + "Y": 16.354095, + "Z": 19.150085 + }, + "StopDistance": 5, + "TerritoryId": 1187, + "InteractionType": "CompleteQuest", + "Emote": "me", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/7.x - Dawntrail/Side Quests/Urqopacha/5043_Putting Out Fires.json b/QuestPaths/7.x - Dawntrail/Side Quests/Urqopacha/5043_Putting Out Fires.json new file mode 100644 index 000000000..7f8ddfd53 --- /dev/null +++ b/QuestPaths/7.x - Dawntrail/Side Quests/Urqopacha/5043_Putting Out Fires.json @@ -0,0 +1,103 @@ +{ + "$schema": "https://carvel.li/questionable/quest-1.0", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1048761, + "Position": { + "X": -499.71774, + "Y": 59.95439, + "Z": 130.93762 + }, + "StopDistance": 5, + "TerritoryId": 1187, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2014126, + "Position": { + "X": -182.69635, + "Y": 51.68225, + "Z": 164.56848 + }, + "TerritoryId": 1187, + "InteractionType": "Instruction", + "Fly": true, + "Comment": "TODO Needs item use", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 2014125, + "Position": { + "X": -161.57782, + "Y": 39.902344, + "Z": 252.39941 + }, + "TerritoryId": 1187, + "InteractionType": "Interact", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, + { + "DataId": 2014127, + "Position": { + "X": -239.36829, + "Y": 49.79016, + "Z": 343.52625 + }, + "TerritoryId": 1187, + "InteractionType": "Instruction", + "Fly": true, + "Comment": "TODO Needs item use", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1048761, + "Position": { + "X": -499.71774, + "Y": 59.95439, + "Z": 130.93762 + }, + "StopDistance": 5, + "TerritoryId": 1187, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/7.x - Dawntrail/Side Quests/Urqopacha/5044_Paws off That Pigment.json b/QuestPaths/7.x - Dawntrail/Side Quests/Urqopacha/5044_Paws off That Pigment.json new file mode 100644 index 000000000..92c177714 --- /dev/null +++ b/QuestPaths/7.x - Dawntrail/Side Quests/Urqopacha/5044_Paws off That Pigment.json @@ -0,0 +1,59 @@ +{ + "$schema": "https://carvel.li/questionable/quest-1.0", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1050692, + "Position": { + "X": -410.84918, + "Y": 68.61058, + "Z": 184.9851 + }, + "StopDistance": 5, + "TerritoryId": 1187, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2014128, + "Position": { + "X": -71.64111, + "Y": 18.295532, + "Z": 255.75635 + }, + "TerritoryId": 1187, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 17649 + ], + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1050720, + "Position": { + "X": -410.84918, + "Y": 68.61058, + "Z": 184.9851 + }, + "StopDistance": 5, + "TerritoryId": 1187, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/7.x - Dawntrail/Side Quests/Urqopacha/5045_Big Wounds to Heal.json b/QuestPaths/7.x - Dawntrail/Side Quests/Urqopacha/5045_Big Wounds to Heal.json new file mode 100644 index 000000000..1384b4cb4 --- /dev/null +++ b/QuestPaths/7.x - Dawntrail/Side Quests/Urqopacha/5045_Big Wounds to Heal.json @@ -0,0 +1,100 @@ +{ + "$schema": "https://carvel.li/questionable/quest-1.0", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1048728, + "Position": { + "X": 439.8108, + "Y": 112.435, + "Z": 669.6116 + }, + "StopDistance": 5, + "TerritoryId": 1187, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2014130, + "Position": { + "X": 438.651, + "Y": 103.80713, + "Z": 299.33618 + }, + "TerritoryId": 1187, + "InteractionType": "Interact", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 2014129, + "Position": { + "X": 466.23938, + "Y": 106.767334, + "Z": 244.67834 + }, + "TerritoryId": 1187, + "InteractionType": "Interact", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 2014131, + "Position": { + "X": 486.6255, + "Y": 112.71838, + "Z": 271.13745 + }, + "TerritoryId": 1187, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1048728, + "Position": { + "X": 439.8108, + "Y": 112.435, + "Z": 669.6116 + }, + "StopDistance": 5, + "TerritoryId": 1187, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Urqopacha - Worlar's Echo" + } + ] + } + ] +} diff --git a/QuestPaths/7.x - Dawntrail/Side Quests/Urqopacha/5046_A Tradition Best Preserved.json b/QuestPaths/7.x - Dawntrail/Side Quests/Urqopacha/5046_A Tradition Best Preserved.json new file mode 100644 index 000000000..2edd614af --- /dev/null +++ b/QuestPaths/7.x - Dawntrail/Side Quests/Urqopacha/5046_A Tradition Best Preserved.json @@ -0,0 +1,58 @@ +{ + "$schema": "https://carvel.li/questionable/quest-1.0", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1048729, + "Position": { + "X": 513.4203, + "Y": 107.13501, + "Z": 545.7998 + }, + "StopDistance": 5, + "TerritoryId": 1187, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": 375.92813, + "Y": 74.827896, + "Z": 411.13763 + }, + "TerritoryId": 1187, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "KillEnemyDataIds": [ + 17484 + ], + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1048729, + "Position": { + "X": 513.4203, + "Y": 107.13501, + "Z": 545.7998 + }, + "StopDistance": 5, + "TerritoryId": 1187, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/7.x - Dawntrail/Side Quests/Urqopacha/5048_Soothing the Salty.json b/QuestPaths/7.x - Dawntrail/Side Quests/Urqopacha/5048_Soothing the Salty.json new file mode 100644 index 000000000..c32782878 --- /dev/null +++ b/QuestPaths/7.x - Dawntrail/Side Quests/Urqopacha/5048_Soothing the Salty.json @@ -0,0 +1,75 @@ +{ + "$schema": "https://carvel.li/questionable/quest-1.0", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1050693, + "Position": { + "X": 398.70288, + "Y": 122.54732, + "Z": 523.4912 + }, + "StopDistance": 5, + "TerritoryId": 1187, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1050694, + "Position": { + "X": -22.720703, + "Y": 54.759686, + "Z": 522.88086 + }, + "TerritoryId": 1187, + "InteractionType": "Emote", + "Emote": "soothe", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1050694, + "Position": { + "X": -22.720703, + "Y": 54.759686, + "Z": 522.88086 + }, + "TerritoryId": 1187, + "InteractionType": "Say", + "ChatMessage": { + "Key": "TEXT_KINGZB108_05048_SAYTODO_000_100" + } + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1050693, + "Position": { + "X": 398.70288, + "Y": 122.54732, + "Z": 523.4912 + }, + "StopDistance": 5, + "TerritoryId": 1187, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Urqopacha - Worlar's Echo", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/7.x - Dawntrail/Side Quests/Urqopacha/5049_The Biggest Sucker.json b/QuestPaths/7.x - Dawntrail/Side Quests/Urqopacha/5049_The Biggest Sucker.json new file mode 100644 index 000000000..ce53f333a --- /dev/null +++ b/QuestPaths/7.x - Dawntrail/Side Quests/Urqopacha/5049_The Biggest Sucker.json @@ -0,0 +1,126 @@ +{ + "$schema": "https://carvel.li/questionable/quest-1.0", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1048731, + "Position": { + "X": 464.71338, + "Y": 131.25926, + "Z": 690.66907 + }, + "StopDistance": 1, + "TerritoryId": 1187, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1050697, + "Position": { + "X": 190.4784, + "Y": 18.978786, + "Z": 210.49817 + }, + "TerritoryId": 1187, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": 238.52116, + "Y": 47.201637, + "Z": 78.30595 + }, + "StopDistance": 0.25, + "TerritoryId": 1187, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [ + 17650 + ], + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "Position": { + "X": 173.96666, + "Y": 56.288116, + "Z": -18.299652 + }, + "TerritoryId": 1187, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [ + 17650 + ], + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1050698, + "Position": { + "X": 97.642456, + "Y": 38.62021, + "Z": -35.81299 + }, + "TerritoryId": 1187, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 17651 + ], + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1048731, + "Position": { + "X": 464.71338, + "Y": 131.25926, + "Z": 690.66907 + }, + "StopDistance": 1, + "TerritoryId": 1187, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Urqopacha - Worlar's Echo", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/7.x - Dawntrail/Side Quests/Urqopacha/5050_Bearing Fruit.json b/QuestPaths/7.x - Dawntrail/Side Quests/Urqopacha/5050_Bearing Fruit.json new file mode 100644 index 000000000..8118873e8 --- /dev/null +++ b/QuestPaths/7.x - Dawntrail/Side Quests/Urqopacha/5050_Bearing Fruit.json @@ -0,0 +1,101 @@ +{ + "$schema": "https://carvel.li/questionable/quest-1.0", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1048732, + "Position": { + "X": 541.4053, + "Y": 107.13434, + "Z": 602.50244 + }, + "StopDistance": 5, + "TerritoryId": 1187, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1048774, + "Position": { + "X": 495.35352, + "Y": 114.935, + "Z": 632.95935 + }, + "TerritoryId": 1187, + "InteractionType": "Interact", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, + { + "DataId": 1048745, + "Position": { + "X": 383.3523, + "Y": 129.04726, + "Z": 657.52637 + }, + "TerritoryId": 1187, + "InteractionType": "Interact", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 1048747, + "Position": { + "X": 348.47034, + "Y": 130.34726, + "Z": 597.3755 + }, + "TerritoryId": 1187, + "InteractionType": "Interact", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1048732, + "Position": { + "X": 541.4053, + "Y": 107.13434, + "Z": 602.50244 + }, + "StopDistance": 5, + "TerritoryId": 1187, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/7.x - Dawntrail/Side Quests/Urqopacha/5056_Sparks of Joy.json b/QuestPaths/7.x - Dawntrail/Side Quests/Urqopacha/5056_Sparks of Joy.json new file mode 100644 index 000000000..faa33dc76 --- /dev/null +++ b/QuestPaths/7.x - Dawntrail/Side Quests/Urqopacha/5056_Sparks of Joy.json @@ -0,0 +1,161 @@ +{ + "$schema": "https://carvel.li/questionable/quest-1.0", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1051207, + "Position": { + "X": 425.07043, + "Y": 118.935005, + "Z": 606.13403 + }, + "StopDistance": 5, + "TerritoryId": 1187, + "InteractionType": "AcceptQuest", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_KINGZB302_05056_Q1_000_000", + "Answer": "TEXT_KINGZB302_05056_A1_000_001" + } + ] + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1051211, + "Position": { + "X": 508.35413, + "Y": 111.134995, + "Z": 711.57385 + }, + "TerritoryId": 1187, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2014275, + "Position": { + "X": 673.2433, + "Y": 124.40674, + "Z": 416.28137 + }, + "StopDistance": 0.25, + "TerritoryId": 1187, + "InteractionType": "Interact", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, + { + "DataId": 2014273, + "Position": { + "X": 631.58606, + "Y": 124.833984, + "Z": 405.7527 + }, + "StopDistance": 0.25, + "TerritoryId": 1187, + "InteractionType": "Interact", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 2014274, + "Position": { + "X": 637.93384, + "Y": 120.80554, + "Z": 352.34607 + }, + "StopDistance": 0.25, + "TerritoryId": 1187, + "InteractionType": "Interact", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1051213, + "Position": { + "X": 624.9331, + "Y": 122.30835, + "Z": 387.41125 + }, + "StopDistance": 5, + "TerritoryId": 1187, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1051211, + "Position": { + "X": 508.35413, + "Y": 111.134995, + "Z": 711.57385 + }, + "TerritoryId": 1187, + "InteractionType": "Interact", + "AetheryteShortcut": "Urqopacha - Worlar's Echo", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1051207, + "Position": { + "X": 425.07043, + "Y": 118.935005, + "Z": 606.13403 + }, + "StopDistance": 5, + "TerritoryId": 1187, + "InteractionType": "CompleteQuest", + "Fly": true, + "NextQuestId": 5057 + } + ] + } + ] +} diff --git a/QuestPaths/7.x - Dawntrail/Side Quests/Urqopacha/5057_A Giant's Footsteps.json b/QuestPaths/7.x - Dawntrail/Side Quests/Urqopacha/5057_A Giant's Footsteps.json new file mode 100644 index 000000000..f83378f6e --- /dev/null +++ b/QuestPaths/7.x - Dawntrail/Side Quests/Urqopacha/5057_A Giant's Footsteps.json @@ -0,0 +1,189 @@ +{ + "$schema": "https://carvel.li/questionable/quest-1.0", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1051207, + "Position": { + "X": 425.07043, + "Y": 118.935005, + "Z": 606.13403 + }, + "StopDistance": 5, + "TerritoryId": 1187, + "InteractionType": "AcceptQuest", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_KINGZB303_05057_Q1_000_000", + "Answer": "TEXT_KINGZB303_05057_A1_000_001" + } + ] + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1051214, + "Position": { + "X": 256.21423, + "Y": 25.563068, + "Z": 227.55774 + }, + "TerritoryId": 1187, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 17653, + "Position": { + "X": 215.6255, + "Y": 24.677507, + "Z": 182.81274 + }, + "TerritoryId": 1187, + "InteractionType": "WaitForNpcAtPosition", + "NpcWaitDistance": 6, + "Mount": false, + "Sprint": false + }, + { + "DataId": 17653, + "Position": { + "X": 167.20306, + "Y": 24.205856, + "Z": 150.9515 + }, + "TerritoryId": 1187, + "InteractionType": "WaitForNpcAtPosition", + "NpcWaitDistance": 6, + "Mount": false, + "Sprint": false + }, + { + "DataId": 17653, + "Position": { + "X": 202.11948, + "Y": 39.574707, + "Z": 86.737045 + }, + "TerritoryId": 1187, + "InteractionType": "WaitForNpcAtPosition", + "NpcWaitDistance": 6, + "Mount": false, + "Sprint": false + }, + { + "Position": { + "X": 194.26257, + "Y": 47.196045, + "Z": 45.853394 + }, + "TerritoryId": 1187, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [ + 17654 + ], + "Mount": false, + "Sprint": false + }, + { + "DataId": 2014276, + "Position": { + "X": 194.26257, + "Y": 47.196045, + "Z": 45.853394 + }, + "TerritoryId": 1187, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 17653, + "Position": { + "X": 235.00903, + "Y": 44.070503, + "Z": -28.761452 + }, + "TerritoryId": 1187, + "InteractionType": "WaitForNpcAtPosition", + "NpcWaitDistance": 6.5, + "Mount": false, + "Sprint": false + }, + { + "DataId": 17653, + "Position": { + "X": 248.98132, + "Y": 29.587158, + "Z": -67.73486 + }, + "TerritoryId": 1187, + "InteractionType": "WaitForNpcAtPosition", + "NpcWaitDistance": 6.5, + "Mount": false, + "Sprint": false + }, + { + "DataId": 2014277, + "Position": { + "X": 248.98132, + "Y": 29.587158, + "Z": -67.73486 + }, + "TerritoryId": 1187, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1051215, + "Position": { + "X": 247.60815, + "Y": 29.59192, + "Z": -64.40839 + }, + "StopDistance": 5, + "TerritoryId": 1187, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1051207, + "Position": { + "X": 425.07043, + "Y": 118.935005, + "Z": 606.13403 + }, + "StopDistance": 5, + "TerritoryId": 1187, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Urqopacha - Worlar's Echo", + "NextQuestId": 5058 + } + ] + } + ] +} diff --git a/QuestPaths/7.x - Dawntrail/Side Quests/Urqopacha/5058_Resolve Reignited.json b/QuestPaths/7.x - Dawntrail/Side Quests/Urqopacha/5058_Resolve Reignited.json new file mode 100644 index 000000000..9a58fdbc4 --- /dev/null +++ b/QuestPaths/7.x - Dawntrail/Side Quests/Urqopacha/5058_Resolve Reignited.json @@ -0,0 +1,140 @@ +{ + "$schema": "https://carvel.li/questionable/quest-1.0", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1051207, + "Position": { + "X": 425.07043, + "Y": 118.935005, + "Z": 606.13403 + }, + "StopDistance": 5, + "TerritoryId": 1187, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1051216, + "Position": { + "X": 522.8502, + "Y": 111.135, + "Z": 614.3434 + }, + "TerritoryId": 1187, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1051218, + "Position": { + "X": -595.72754, + "Y": 58.576252, + "Z": 137.86523 + }, + "TerritoryId": 1187, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1051221, + "Position": { + "X": -670.25256, + "Y": 53.34527, + "Z": 126.29883 + }, + "StopDistance": 0.25, + "TerritoryId": 1187, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "Position": { + "X": -779.43585, + "Y": 61.86622, + "Z": 198.07907 + }, + "StopDistance": 0.25, + "TerritoryId": 1187, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [ + 17655 + ] + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1051223, + "Position": { + "X": -781.3993, + "Y": 61.80422, + "Z": 198.2909 + }, + "StopDistance": 8, + "TerritoryId": 1187, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1051225, + "Position": { + "X": -787.5334, + "Y": 50.050797, + "Z": 88.54797 + }, + "StopDistance": 5, + "TerritoryId": 1187, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1051207, + "Position": { + "X": 425.07043, + "Y": 118.935005, + "Z": 606.13403 + }, + "StopDistance": 5, + "TerritoryId": 1187, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Urqopacha - Worlar's Echo", + "NextQuestId": 5059 + } + ] + } + ] +} diff --git a/QuestPaths/7.x - Dawntrail/Side Quests/Urqopacha/5059_Brains and Brawn.json b/QuestPaths/7.x - Dawntrail/Side Quests/Urqopacha/5059_Brains and Brawn.json new file mode 100644 index 000000000..a7375a9c3 --- /dev/null +++ b/QuestPaths/7.x - Dawntrail/Side Quests/Urqopacha/5059_Brains and Brawn.json @@ -0,0 +1,103 @@ +{ + "$schema": "https://carvel.li/questionable/quest-1.0", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1051207, + "Position": { + "X": 425.07043, + "Y": 118.935005, + "Z": 606.13403 + }, + "StopDistance": 5, + "TerritoryId": 1187, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1051195, + "Position": { + "X": 383.29138, + "Y": -154.50243, + "Z": -420.49292 + }, + "TerritoryId": 1187, + "InteractionType": "Interact", + "AetheryteShortcut": "Urqopacha - Wachunpelo" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1051228, + "Position": { + "X": 476.2798, + "Y": -133.9321, + "Z": -353.01752 + }, + "TerritoryId": 1187, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1051230, + "Position": { + "X": -23.422668, + "Y": 54.695663, + "Z": 533.1044 + }, + "TerritoryId": 1187, + "InteractionType": "Interact", + "AetheryteShortcut": "Urqopacha - Worlar's Echo", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1051235, + "Position": { + "X": -22.354492, + "Y": 54.58289, + "Z": 536.1256 + }, + "StopDistance": 5, + "TerritoryId": 1187, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1051236, + "Position": { + "X": 426.3828, + "Y": 118.935, + "Z": 603.6621 + }, + "TerritoryId": 1187, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Urqopacha - Worlar's Echo" + } + ] + } + ] +} diff --git a/QuestPaths/quest-v1.json b/QuestPaths/quest-v1.json index dbf3465aa..a3fcaa633 100644 --- a/QuestPaths/quest-v1.json +++ b/QuestPaths/quest-v1.json @@ -127,6 +127,10 @@ "type": "boolean", "description": "If true and flying is unlocked in a zone, will use a flight path" }, + "Land": { + "type": "boolean", + "description": "If true and flying, will attempt to land on the ground" + }, "Sprint": { "type": [ "boolean", @@ -653,7 +657,8 @@ "happy", "poke", "flex", - "soothe" + "soothe", + "me" ] } } @@ -719,7 +724,10 @@ "type": "string", "description": "The action to use", "enum": [ - "Esuna" + "Esuna", + "Red Gulal", + "Yellow Gulal", + "Blue Gulal" ] } }, diff --git a/Questionable.Model/V1/Converter/ActionConverter.cs b/Questionable.Model/V1/Converter/ActionConverter.cs index 618465947..1624c18f5 100644 --- a/Questionable.Model/V1/Converter/ActionConverter.cs +++ b/Questionable.Model/V1/Converter/ActionConverter.cs @@ -7,5 +7,8 @@ public sealed class ActionConverter() : EnumConverter(Values) private static readonly Dictionary Values = new() { { EAction.Esuna, "Esuna" }, + { EAction.RedGulal, "Red Gulal" }, + { EAction.YellowGulal, "Yellow Gulal" }, + { EAction.BlueGulal, "Blue Gulal" }, }; } diff --git a/Questionable.Model/V1/Converter/EmoteConverter.cs b/Questionable.Model/V1/Converter/EmoteConverter.cs index 04202daaf..70f9f6638 100644 --- a/Questionable.Model/V1/Converter/EmoteConverter.cs +++ b/Questionable.Model/V1/Converter/EmoteConverter.cs @@ -19,5 +19,6 @@ public sealed class EmoteConverter() : EnumConverter(Values) { EEmote.Poke, "poke" }, { EEmote.Flex, "flex" }, { EEmote.Soothe, "soothe" }, + { EEmote.Me, "me" }, }; } diff --git a/Questionable.Model/V1/EAction.cs b/Questionable.Model/V1/EAction.cs index b5bf2ff06..c9bb24933 100644 --- a/Questionable.Model/V1/EAction.cs +++ b/Questionable.Model/V1/EAction.cs @@ -7,4 +7,15 @@ namespace Questionable.Model.V1; public enum EAction { Esuna = 7568, + RedGulal = 29382, + YellowGulal = 29383, + BlueGulal = 29384, +} + +public static class EActionExtensions +{ + public static bool RequiresMount(this EAction action) + { + return action is EAction.RedGulal or EAction.YellowGulal or EAction.BlueGulal; + } } diff --git a/Questionable.Model/V1/EEmote.cs b/Questionable.Model/V1/EEmote.cs index 502ed7ca1..9084b11a3 100644 --- a/Questionable.Model/V1/EEmote.cs +++ b/Questionable.Model/V1/EEmote.cs @@ -21,4 +21,5 @@ public enum EEmote Poke = 28, Flex = 139, Soothe = 35, + Me = 23, } diff --git a/Questionable.Model/V1/QuestStep.cs b/Questionable.Model/V1/QuestStep.cs index e7c4906fa..a3465d384 100644 --- a/Questionable.Model/V1/QuestStep.cs +++ b/Questionable.Model/V1/QuestStep.cs @@ -28,6 +28,7 @@ public sealed class QuestStep public bool DisableNavmesh { get; set; } public bool? Mount { get; set; } public bool? Fly { get; set; } + public bool? Land { get; set; } public bool? Sprint { get; set; } public string? Comment { get; set; } diff --git a/Questionable/Controller/MovementController.cs b/Questionable/Controller/MovementController.cs index c4d225032..2d2a09e65 100644 --- a/Questionable/Controller/MovementController.cs +++ b/Questionable/Controller/MovementController.cs @@ -148,7 +148,12 @@ internal sealed class MovementController : IDisposable } Vector3 localPlayerPosition = _clientState.LocalPlayer?.Position ?? Vector3.Zero; - if ((localPlayerPosition - Destination.Position).Length() < Destination.StopDistance) + if (Destination.MovementType == EMovementType.Landing) + { + if (!_condition[ConditionFlag.InFlight]) + Stop(); + } + else if ((localPlayerPosition - Destination.Position).Length() < Destination.StopDistance) { if (Destination.DataId is 2012173 or 2012174 or 2012175 or 2012176 @@ -242,7 +247,7 @@ internal sealed class MovementController : IDisposable _chatFunctions.ExecuteCommand("/automove off"); } - Destination = new DestinationData(dataId, to, stopDistance ?? (QuestStep.DefaultStopDistance - 0.2f), fly, sprint, + Destination = new DestinationData(type, dataId, to, stopDistance ?? (QuestStep.DefaultStopDistance - 0.2f), fly, sprint, useNavmesh); MovementStartedAt = DateTime.MaxValue; } @@ -307,6 +312,7 @@ internal sealed class MovementController : IDisposable } public sealed record DestinationData( + EMovementType MovementType, uint? DataId, Vector3 Position, float StopDistance, diff --git a/Questionable/Controller/Steps/Interactions/Action.cs b/Questionable/Controller/Steps/Interactions/Action.cs index 75a40b3ee..94125e43a 100644 --- a/Questionable/Controller/Steps/Interactions/Action.cs +++ b/Questionable/Controller/Steps/Interactions/Action.cs @@ -20,13 +20,17 @@ internal static class Action if (step.InteractionType != EInteractionType.Action) return []; - ArgumentNullException.ThrowIfNull(step.DataId); ArgumentNullException.ThrowIfNull(step.Action); - var unmount = serviceProvider.GetRequiredService(); var task = serviceProvider.GetRequiredService() - .With(step.DataId.Value, step.Action.Value); - return [unmount, task]; + .With(step.DataId, step.Action.Value); + if (step.Action.Value.RequiresMount()) + return [task]; + else + { + var unmount = serviceProvider.GetRequiredService(); + return [unmount, task]; + } } public ITask CreateTask(Quest quest, QuestSequence sequence, QuestStep step) @@ -38,10 +42,10 @@ internal static class Action private bool _usedAction; private DateTime _continueAt = DateTime.MinValue; - public uint DataId { get; set; } + public uint? DataId { get; set; } public EAction Action { get; set; } - public ITask With(uint dataId, EAction action) + public ITask With(uint? dataId, EAction action) { DataId = dataId; Action = action; @@ -50,16 +54,25 @@ internal static class Action public bool Start() { - IGameObject? gameObject = gameFunctions.FindObjectByDataId(DataId); - if (gameObject == null) + if (DataId != null) { - logger.LogWarning("No game object with dataId {DataId}", DataId); - return false; - } + IGameObject? gameObject = gameFunctions.FindObjectByDataId(DataId.Value); + if (gameObject == null) + { + logger.LogWarning("No game object with dataId {DataId}", DataId); + return false; + } - if (gameObject.IsTargetable) + if (gameObject.IsTargetable) + { + _usedAction = gameFunctions.UseAction(gameObject, Action); + _continueAt = DateTime.Now.AddSeconds(0.5); + return true; + } + } + else { - _usedAction = gameFunctions.UseAction(gameObject, Action); + _usedAction = gameFunctions.UseAction(Action); _continueAt = DateTime.Now.AddSeconds(0.5); return true; } @@ -74,12 +87,21 @@ internal static class Action if (!_usedAction) { - IGameObject? gameObject = gameFunctions.FindObjectByDataId(DataId); - if (gameObject == null || !gameObject.IsTargetable) - return ETaskResult.StillRunning; + if (DataId != null) + { + IGameObject? gameObject = gameFunctions.FindObjectByDataId(DataId.Value); + if (gameObject == null || !gameObject.IsTargetable) + return ETaskResult.StillRunning; + + _usedAction = gameFunctions.UseAction(gameObject, Action); + _continueAt = DateTime.Now.AddSeconds(0.5); + } + else + { + _usedAction = gameFunctions.UseAction(Action); + _continueAt = DateTime.Now.AddSeconds(0.5); + } - _usedAction = gameFunctions.UseAction(gameObject, Action); - _continueAt = DateTime.Now.AddSeconds(0.5); return ETaskResult.StillRunning; } diff --git a/Questionable/Controller/Steps/Shared/Move.cs b/Questionable/Controller/Steps/Shared/Move.cs index 91812a38a..a3f420741 100644 --- a/Questionable/Controller/Steps/Shared/Move.cs +++ b/Questionable/Controller/Steps/Shared/Move.cs @@ -2,10 +2,12 @@ using System.Collections.Generic; using System.Globalization; using System.Numerics; +using Dalamud.Game.ClientState.Conditions; using Dalamud.Game.ClientState.Objects.Types; using Dalamud.Plugin.Services; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; +using Questionable.Controller.NavigationOverrides; using Questionable.Controller.Steps.Common; using Questionable.Data; using Questionable.Model; @@ -119,6 +121,9 @@ internal static class Move }); } } + + if (Step.Fly == true && Step.Land == true) + yield return serviceProvider.GetRequiredService(); } } @@ -175,4 +180,43 @@ internal static class Move return ETaskResult.TaskComplete; } } + + internal sealed class Land(MovementController movementController, IClientState clientState, ICondition condition, ILogger logger) : ITask + { + public bool Start() + { + if (!condition[ConditionFlag.InFlight]) + { + logger.LogInformation("Not flying, not attempting to land"); + return false; + } + + AttemptLanding(); + return true; + } + + public ETaskResult Update() + { + if (movementController.IsPathfinding || movementController.IsPathRunning) + return ETaskResult.StillRunning; + + if (condition[ConditionFlag.InFlight]) + { + AttemptLanding(); + return ETaskResult.StillRunning; + } + + return ETaskResult.TaskComplete; + } + + private void AttemptLanding() + { + Vector3 playerPosition = clientState.LocalPlayer!.Position; + playerPosition.Y -= 3; + + Vector3 nearbyPosition = Vector3.Normalize(playerPosition with { Y = 0 }) * 0.05f; + playerPosition += nearbyPosition; + movementController.NavigateTo(EMovementType.Landing, null, [playerPosition], true, false, 0); + } + } } diff --git a/Questionable/GameFunctions.cs b/Questionable/GameFunctions.cs index 731189656..d26e139a7 100644 --- a/Questionable/GameFunctions.cs +++ b/Questionable/GameFunctions.cs @@ -23,6 +23,7 @@ using Lumina.Excel.GeneratedSheets2; using Microsoft.Extensions.Logging; using Questionable.Controller; using Questionable.Model.V1; +using Action = Lumina.Excel.GeneratedSheets2.Action; using BattleChara = FFXIVClientStructs.FFXIV.Client.Game.Character.BattleChara; using ContentFinderCondition = Lumina.Excel.GeneratedSheets.ContentFinderCondition; using ContentTalk = Lumina.Excel.GeneratedSheets.ContentTalk; @@ -383,8 +384,22 @@ internal sealed unsafe class GameFunctions return false; } + public bool UseAction(EAction action) + { + if (ActionManager.Instance()->GetActionStatus(ActionType.Action, (uint)action) == 0) + { + bool result = ActionManager.Instance()->UseAction(ActionType.Action, (uint)action); + _logger.LogInformation("UseAction {Action} result: {Result}", action, result); + + return result; + } + + return false; + } + public bool UseAction(IGameObject gameObject, EAction action) { + var actionRow = _dataManager.GetExcelSheet()!.GetRow((uint)action)!; if (!ActionManager.CanUseActionOnTarget((uint)action, (GameObject*)gameObject.Address)) { _logger.LogWarning("Can not use action {Action} on target {Target}", action, gameObject); @@ -394,8 +409,19 @@ internal sealed unsafe class GameFunctions _targetManager.Target = gameObject; if (ActionManager.Instance()->GetActionStatus(ActionType.Action, (uint)action, gameObject.GameObjectId) == 0) { - bool result = ActionManager.Instance()->UseAction(ActionType.Action, (uint)action, gameObject.GameObjectId); - _logger.LogInformation("UseAction {Action} on target {Target} result: {Result}", action, gameObject, result); + bool result; + if (actionRow.TargetArea) + { + Vector3 position = gameObject.Position; + result = ActionManager.Instance()->UseActionLocation(ActionType.Action, (uint)action, location: &position); + _logger.LogInformation("UseAction {Action} on target area {Target} result: {Result}", action, gameObject, + result); + } + else { + result = ActionManager.Instance()->UseAction(ActionType.Action, (uint)action, gameObject.GameObjectId); + _logger.LogInformation("UseAction {Action} on target {Target} result: {Result}", action, gameObject, + result); + } return result; } diff --git a/Questionable/Model/EMovementType.cs b/Questionable/Model/EMovementType.cs index eb645b030..c02815f88 100644 --- a/Questionable/Model/EMovementType.cs +++ b/Questionable/Model/EMovementType.cs @@ -6,4 +6,5 @@ public enum EMovementType Quest, DebugWindow, Shortcut, + Landing, } diff --git a/Questionable/QuestionablePlugin.cs b/Questionable/QuestionablePlugin.cs index df02a5822..a2600c920 100644 --- a/Questionable/QuestionablePlugin.cs +++ b/Questionable/QuestionablePlugin.cs @@ -85,7 +85,7 @@ public sealed class QuestionablePlugin : IDalamudPlugin serviceCollection.AddTaskWithFactory(); serviceCollection.AddTaskWithFactory(); serviceCollection.AddTaskWithFactory(); - serviceCollection.AddTaskWithFactory(); + serviceCollection.AddTaskWithFactory(); serviceCollection.AddTransient(); serviceCollection.AddTaskWithFactory();