From d5b64434d5e5132977b4be667924e191739f6d39 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sun, 14 Jul 2024 12:39:02 +0200 Subject: [PATCH] Update landing, add Arkasodara unlock --- .../3683_Manic Pixie Dream Realm.json | 0 .../3685_The Heart's Oasis.json | 0 .../Thavnair/4257_In Agamas Footsteps.json | 39 ++- .../Thavnair/4489_Steppe Child.json | 1 + .../4490_The Matanga along the Way.json | 187 ++++++++++++++ .../Thavnair/4491_Ogul Repays Her Favors.json | 210 +++++++++++++++ .../Thavnair/4492_The Yedlihmad Hunt.json | 194 ++++++++++++++ .../Thavnair/4493_What's in a Parent.json | 149 +++++++++++ .../Thavnair/4494_Curing What Ails.json | 157 ++++++++++++ .../Thavnair/4495_The Sins We Bear.json | 214 ++++++++++++++++ .../Thavnair/4496_Societal Alchemy.json | 112 ++++++++ .../Thavnair/4497_A Budding Adventure.json | 179 +++++++++++++ .../Dailies/4555_Flowers for Sanduruva.json | 148 +++++++++++ .../Dailies/4556_Anxious Rookie.json | 63 +++++ .../Story/4545_Hippos Born to Run.json | 241 ++++++++++++++++++ QuestPaths/quest-v1.json | 5 + Questionable/Controller/MovementController.cs | 20 +- Questionable/Controller/Steps/Shared/Move.cs | 39 ++- .../Controller/Steps/Shared/WaitAtEnd.cs | 2 +- Questionable/QuestionablePlugin.cs | 1 - 20 files changed, 1934 insertions(+), 27 deletions(-) rename QuestPaths/5.x - Shadowbringers/Tribal/Pixies/{Unlock => Story}/3683_Manic Pixie Dream Realm.json (100%) rename QuestPaths/5.x - Shadowbringers/Tribal/Pixies/{Progress => Story}/3685_The Heart's Oasis.json (100%) create mode 100644 QuestPaths/6.x - Endwalker/Side Quests/Thavnair/4490_The Matanga along the Way.json create mode 100644 QuestPaths/6.x - Endwalker/Side Quests/Thavnair/4491_Ogul Repays Her Favors.json create mode 100644 QuestPaths/6.x - Endwalker/Side Quests/Thavnair/4492_The Yedlihmad Hunt.json create mode 100644 QuestPaths/6.x - Endwalker/Side Quests/Thavnair/4493_What's in a Parent.json create mode 100644 QuestPaths/6.x - Endwalker/Side Quests/Thavnair/4494_Curing What Ails.json create mode 100644 QuestPaths/6.x - Endwalker/Side Quests/Thavnair/4495_The Sins We Bear.json create mode 100644 QuestPaths/6.x - Endwalker/Side Quests/Thavnair/4496_Societal Alchemy.json create mode 100644 QuestPaths/6.x - Endwalker/Side Quests/Thavnair/4497_A Budding Adventure.json create mode 100644 QuestPaths/6.x - Endwalker/Tribal/Arkasodara/Dailies/4555_Flowers for Sanduruva.json create mode 100644 QuestPaths/6.x - Endwalker/Tribal/Arkasodara/Dailies/4556_Anxious Rookie.json create mode 100644 QuestPaths/6.x - Endwalker/Tribal/Arkasodara/Story/4545_Hippos Born to Run.json diff --git a/QuestPaths/5.x - Shadowbringers/Tribal/Pixies/Unlock/3683_Manic Pixie Dream Realm.json b/QuestPaths/5.x - Shadowbringers/Tribal/Pixies/Story/3683_Manic Pixie Dream Realm.json similarity index 100% rename from QuestPaths/5.x - Shadowbringers/Tribal/Pixies/Unlock/3683_Manic Pixie Dream Realm.json rename to QuestPaths/5.x - Shadowbringers/Tribal/Pixies/Story/3683_Manic Pixie Dream Realm.json diff --git a/QuestPaths/5.x - Shadowbringers/Tribal/Pixies/Progress/3685_The Heart's Oasis.json b/QuestPaths/5.x - Shadowbringers/Tribal/Pixies/Story/3685_The Heart's Oasis.json similarity index 100% rename from QuestPaths/5.x - Shadowbringers/Tribal/Pixies/Progress/3685_The Heart's Oasis.json rename to QuestPaths/5.x - Shadowbringers/Tribal/Pixies/Story/3685_The Heart's Oasis.json diff --git a/QuestPaths/6.x - Endwalker/Aether Currents/Thavnair/4257_In Agamas Footsteps.json b/QuestPaths/6.x - Endwalker/Aether Currents/Thavnair/4257_In Agamas Footsteps.json index 0eb7dcb0..7ccd9b87 100644 --- a/QuestPaths/6.x - Endwalker/Aether Currents/Thavnair/4257_In Agamas Footsteps.json +++ b/QuestPaths/6.x - Endwalker/Aether Currents/Thavnair/4257_In Agamas Footsteps.json @@ -28,14 +28,44 @@ "Z": -178.63745 }, "TerritoryId": 957, - "InteractionType": "Interact", - "Comment": "Unclear if this can be done automatically, enemies seem to despawn" + "InteractionType": "Interact" } ] }, { "Sequence": 2, "Steps": [ + { + "Position": { + "X": 46.32264, + "Y": 21.089579, + "Z": -190.2062 + }, + "TerritoryId": 957, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [ + 14114 + ], + "Mount": false, + "Sprint": false, + "DelaySecondsAtStart": 3 + }, + { + "DataId": 14115, + "Position": { + "X": 333.8999, + "Y": 13.173893, + "Z": -239.1983 + }, + "StopDistance": 1, + "TerritoryId": 957, + "InteractionType": "WaitForNpcAtPosition", + "NpcWaitDistance": 4, + "Mount": false, + "Sprint": false, + "DelaySecondsAtStart": 3 + }, { "DataId": 2012261, "Position": { @@ -44,10 +74,7 @@ "Z": -239.7956 }, "TerritoryId": 957, - "InteractionType": "Interact", - "Mount": false, - "Sprint": false, - "DelaySecondsAtStart": 3 + "InteractionType": "Interact" } ] }, diff --git a/QuestPaths/6.x - Endwalker/Aether Currents/Thavnair/4489_Steppe Child.json b/QuestPaths/6.x - Endwalker/Aether Currents/Thavnair/4489_Steppe Child.json index 9b0171cd..70901df8 100644 --- a/QuestPaths/6.x - Endwalker/Aether Currents/Thavnair/4489_Steppe Child.json +++ b/QuestPaths/6.x - Endwalker/Aether Currents/Thavnair/4489_Steppe Child.json @@ -64,6 +64,7 @@ "Y": 41.652294, "Z": 409.31412 }, + "StopDistance": 1, "TerritoryId": 957, "InteractionType": "Combat", "EnemySpawnType": "AutoOnEnterArea", diff --git a/QuestPaths/6.x - Endwalker/Side Quests/Thavnair/4490_The Matanga along the Way.json b/QuestPaths/6.x - Endwalker/Side Quests/Thavnair/4490_The Matanga along the Way.json new file mode 100644 index 00000000..ca119d94 --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Side Quests/Thavnair/4490_The Matanga along the Way.json @@ -0,0 +1,187 @@ +{ + "$schema": "https://carvel.li/questionable/quest-1.0", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1041332, + "Position": { + "X": 194.68982, + "Y": 14.118598, + "Z": 485.9845 + }, + "TerritoryId": 957, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1041340, + "Position": { + "X": -124.43738, + "Y": 1.3207349, + "Z": 613.94666 + }, + "TerritoryId": 957, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1041341, + "Position": { + "X": -122.75885, + "Y": 1.2757957, + "Z": 616.5408 + }, + "StopDistance": 7, + "TerritoryId": 957, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1041342, + "Position": { + "X": -123.9491, + "Y": 0.3411509, + "Z": 642.8778 + }, + "TerritoryId": 957, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 1041344, + "Position": { + "X": -160.29602, + "Y": -0.10002975, + "Z": 661.86 + }, + "TerritoryId": 957, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, + { + "DataId": 1041343, + "Position": { + "X": -181.10938, + "Y": 0.2237328, + "Z": 640.2533 + }, + "TerritoryId": 957, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1041340, + "Position": { + "X": -124.43738, + "Y": 1.3207349, + "Z": 613.94666 + }, + "TerritoryId": 957, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1041345, + "Position": { + "X": -112.596375, + "Y": 35.468357, + "Z": 392.87402 + }, + "TerritoryId": 957, + "InteractionType": "Interact", + "Fly": true, + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_AKTKZA202_04490_Q1_000_042", + "Answer": "TEXT_AKTKZA202_04490_A1_000_001" + } + ] + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 2012325, + "Position": { + "X": -206.16473, + "Y": 20.645447, + "Z": 229.20569 + }, + "TerritoryId": 957, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 14042 + ], + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1041340, + "Position": { + "X": -124.43738, + "Y": 1.3207349, + "Z": 613.94666 + }, + "TerritoryId": 957, + "InteractionType": "CompleteQuest", + "Fly": true, + "NextQuestId": 4491 + } + ] + } + ] +} diff --git a/QuestPaths/6.x - Endwalker/Side Quests/Thavnair/4491_Ogul Repays Her Favors.json b/QuestPaths/6.x - Endwalker/Side Quests/Thavnair/4491_Ogul Repays Her Favors.json new file mode 100644 index 00000000..198eee3c --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Side Quests/Thavnair/4491_Ogul Repays Her Favors.json @@ -0,0 +1,210 @@ +{ + "$schema": "https://carvel.li/questionable/quest-1.0", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1041341, + "Position": { + "X": -122.75885, + "Y": 1.2757957, + "Z": 616.5408 + }, + "StopDistance": 7, + "TerritoryId": 957, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": 191.63799, + "Y": 15.136713, + "Z": 508.80118 + }, + "TerritoryId": 957, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Thavnair - Yedlihmad", + "Fly": true + }, + { + "DataId": 1041332, + "Position": { + "X": 194.68982, + "Y": 14.118598, + "Z": 485.9845 + }, + "TerritoryId": 957, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": 191.63799, + "Y": 15.136713, + "Z": 508.80118 + }, + "TerritoryId": 957, + "InteractionType": "WalkTo" + }, + { + "DataId": 1041347, + "Position": { + "X": 171.40454, + "Y": 4.763736, + "Z": 670.7103 + }, + "TerritoryId": 957, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1041348, + "Position": { + "X": 176.83679, + "Y": 10.170378, + "Z": 549.0044 + }, + "TerritoryId": 957, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "Position": { + "X": 217.2226, + "Y": 10.08736, + "Z": 604.91754 + }, + "TerritoryId": 957, + "InteractionType": "WalkTo", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + -128 + ] + }, + { + "DataId": 1037655, + "Position": { + "X": 218.73804, + "Y": 10.087359, + "Z": 605.249 + }, + "TerritoryId": 957, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 1037656, + "Position": { + "X": 208.1482, + "Y": 4.5989733, + "Z": 672.0835 + }, + "TerritoryId": 957, + "InteractionType": "Interact", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "Position": { + "X": 161.044, + "Y": 1.8294137, + "Z": 708.1364 + }, + "TerritoryId": 957, + "InteractionType": "WalkTo", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + -32 + ] + }, + { + "DataId": 1037708, + "Position": { + "X": 160.84534, + "Y": 1.8294137, + "Z": 710.68884 + }, + "TerritoryId": 957, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + -32 + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": 191.63799, + "Y": 15.136713, + "Z": 508.80118 + }, + "TerritoryId": 957, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 1041389, + "Position": { + "X": 192.79773, + "Y": 14.118593, + "Z": 487.6936 + }, + "TerritoryId": 957, + "InteractionType": "CompleteQuest", + "NextQuestId": 4492 + } + ] + } + ] +} diff --git a/QuestPaths/6.x - Endwalker/Side Quests/Thavnair/4492_The Yedlihmad Hunt.json b/QuestPaths/6.x - Endwalker/Side Quests/Thavnair/4492_The Yedlihmad Hunt.json new file mode 100644 index 00000000..5c3bceb9 --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Side Quests/Thavnair/4492_The Yedlihmad Hunt.json @@ -0,0 +1,194 @@ +{ + "$schema": "https://carvel.li/questionable/quest-1.0", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1041389, + "Position": { + "X": 192.79773, + "Y": 14.118593, + "Z": 487.6936 + }, + "TerritoryId": 957, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": 191.63799, + "Y": 15.136713, + "Z": 508.80118 + }, + "TerritoryId": 957, + "InteractionType": "WalkTo", + "Mount": true + }, + { + "DataId": 2012451, + "Position": { + "X": 215.53369, + "Y": 9.903015, + "Z": 597.4059 + }, + "TerritoryId": 957, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2012451, + "Position": { + "X": 215.53369, + "Y": 9.903015, + "Z": 597.4059 + }, + "TerritoryId": 957, + "InteractionType": "Interact", + "SkipIf": [ + "NotTargetable" + ], + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_AKTKZA204_04492_Q1_000_054", + "Yes": true + } + ] + }, + { + "DataId": 1041390, + "Position": { + "X": 196.16476, + "Y": 9.8597355, + "Z": 555.2623 + }, + "TerritoryId": 957, + "InteractionType": "WaitForNpcAtPosition", + "StopDistance": 100, + "Mount": false, + "Sprint": false + }, + { + "Position": { + "X": 199.92545, + "Y": 10.335635, + "Z": 567.79816 + }, + "TerritoryId": 957, + "InteractionType": "WalkTo", + "Mount": false, + "Sprint": false + }, + { + "DataId": 1041390, + "Position": { + "X": 170.85558, + "Y": 9.90086, + "Z": 552.88477 + }, + "TerritoryId": 957, + "InteractionType": "WaitForNpcAtPosition", + "StopDistance": 100, + "Mount": false, + "Sprint": false + }, + { + "Position": { + "X": 157.38617, + "Y": 14.520461, + "Z": 539.5006 + }, + "TerritoryId": 957, + "InteractionType": "WalkTo", + "Mount": false, + "Sprint": false + }, + { + "DataId": 1041390, + "Position": { + "X": 135.2287, + "Y": 19.553255, + "Z": 527.03894 + }, + "TerritoryId": 957, + "InteractionType": "WaitForNpcAtPosition", + "StopDistance": 100, + "Mount": false, + "Sprint": false + }, + { + "Position": { + "X": 154.45122, + "Y": 23.673492, + "Z": 500.76654 + }, + "TerritoryId": 957, + "InteractionType": "WalkTo", + "Mount": false, + "Sprint": false + }, + { + "Position": { + "X": 156.16548, + "Y": 23.302423, + "Z": 481.5656 + }, + "TerritoryId": 957, + "InteractionType": "WalkTo" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1041394, + "Position": { + "X": -30.289246, + "Y": 29.867386, + "Z": 458.15198 + }, + "TerritoryId": 957, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": 191.63799, + "Y": 15.136713, + "Z": 508.80118 + }, + "TerritoryId": 957, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 1041332, + "Position": { + "X": 194.68982, + "Y": 14.118598, + "Z": 485.9845 + }, + "TerritoryId": 957, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/6.x - Endwalker/Side Quests/Thavnair/4493_What's in a Parent.json b/QuestPaths/6.x - Endwalker/Side Quests/Thavnair/4493_What's in a Parent.json new file mode 100644 index 00000000..1febdd0d --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Side Quests/Thavnair/4493_What's in a Parent.json @@ -0,0 +1,149 @@ +{ + "$schema": "https://carvel.li/questionable/quest-1.0", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1042175, + "Position": { + "X": 386.83142, + "Y": 12.541633, + "Z": -311.20776 + }, + "TerritoryId": 957, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1041400, + "Position": { + "X": 422.53748, + "Y": 3.1168795, + "Z": -268.1468 + }, + "TerritoryId": 957, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, + { + "DataId": 1041398, + "Position": { + "X": 437.39978, + "Y": 3.1168795, + "Z": -248.64581 + }, + "TerritoryId": 957, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 1041399, + "Position": { + "X": 365.9265, + "Y": 3.1168795, + "Z": -245.53296 + }, + "TerritoryId": 957, + "InteractionType": "Interact", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": 398.03082, + "Y": 6.081707, + "Z": -206.11922 + }, + "TerritoryId": 957, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 1042187, + "Position": { + "X": 404.89807, + "Y": 7.6153164, + "Z": -200.64093 + }, + "TerritoryId": 957, + "InteractionType": "Interact", + "DisableNavmesh": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "Position": { + "X": 398.03082, + "Y": 6.081707, + "Z": -206.11922 + }, + "TerritoryId": 957, + "InteractionType": "WalkTo" + }, + { + "DataId": 1041402, + "Position": { + "X": 411.06274, + "Y": 3.1168792, + "Z": -268.6046 + }, + "TerritoryId": 957, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1041397, + "Position": { + "X": 402.30408, + "Y": 3.0506973, + "Z": -212.35986 + }, + "TerritoryId": 957, + "InteractionType": "CompleteQuest", + "Fly": true, + "NextQuestId": 4494 + } + ] + } + ] +} diff --git a/QuestPaths/6.x - Endwalker/Side Quests/Thavnair/4494_Curing What Ails.json b/QuestPaths/6.x - Endwalker/Side Quests/Thavnair/4494_Curing What Ails.json new file mode 100644 index 00000000..6e744b01 --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Side Quests/Thavnair/4494_Curing What Ails.json @@ -0,0 +1,157 @@ +{ + "$schema": "https://carvel.li/questionable/quest-1.0", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1041397, + "Position": { + "X": 402.30408, + "Y": 3.0506973, + "Z": -212.35986 + }, + "TerritoryId": 957, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2012454, + "Position": { + "X": 519.6764, + "Y": 13.01593, + "Z": -339.5285 + }, + "TerritoryId": 957, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 14041 + ], + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, + { + "DataId": 2012453, + "Position": { + "X": 556.02344, + "Y": 9.170593, + "Z": -382.00964 + }, + "TerritoryId": 957, + "InteractionType": "Interact", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 2012452, + "Position": { + "X": 515.8617, + "Y": 7.4310913, + "Z": -413.59583 + }, + "TerritoryId": 957, + "InteractionType": "Interact", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1041404, + "Position": { + "X": 503.9596, + "Y": 9.601132, + "Z": -368.15448 + }, + "TerritoryId": 957, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1041397, + "Position": { + "X": 402.30408, + "Y": 3.0506973, + "Z": -212.35986 + }, + "TerritoryId": 957, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1041405, + "Position": { + "X": 377.67603, + "Y": 3.1168795, + "Z": -238.57489 + }, + "TerritoryId": 957, + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_AKTKZF102_04494_Q1_000_033", + "Answer": "TEXT_AKTKZF102_04494_A1_000_001" + } + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1041397, + "Position": { + "X": 402.30408, + "Y": 3.0506973, + "Z": -212.35986 + }, + "TerritoryId": 957, + "InteractionType": "CompleteQuest", + "NextQuestId": 4495 + } + ] + } + ] +} diff --git a/QuestPaths/6.x - Endwalker/Side Quests/Thavnair/4495_The Sins We Bear.json b/QuestPaths/6.x - Endwalker/Side Quests/Thavnair/4495_The Sins We Bear.json new file mode 100644 index 00000000..68bf9ce9 --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Side Quests/Thavnair/4495_The Sins We Bear.json @@ -0,0 +1,214 @@ +{ + "$schema": "https://carvel.li/questionable/quest-1.0", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1041406, + "Position": { + "X": 405.02014, + "Y": 3.0593626, + "Z": -212.90918 + }, + "TerritoryId": 957, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1041407, + "Position": { + "X": 672.5414, + "Y": 41.21271, + "Z": 145.46423 + }, + "TerritoryId": 957, + "InteractionType": "Interact", + "Fly": true, + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_AKTKZF103_04495_Q1_000_016", + "Answer": "TEXT_AKTKZF103_04495_A1_000_001" + } + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1041408, + "Position": { + "X": 523.7964, + "Y": 20.494349, + "Z": 346.8833 + }, + "TerritoryId": 957, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "Position": { + "X": 573.3712, + "Y": 22.500977, + "Z": 284.17334 + }, + "TerritoryId": 957, + "InteractionType": "WalkTo", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + -128 + ] + }, + { + "DataId": 2012455, + "Position": { + "X": 574.91406, + "Y": 24.979004, + "Z": 284.3518 + }, + "TerritoryId": 957, + "InteractionType": "Interact", + "IgnoreDistanceToObject": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "Position": { + "X": 603.8397, + "Y": 21.10483, + "Z": 233.13884 + }, + "TerritoryId": 957, + "InteractionType": "WalkTo", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + -32 + ] + }, + { + "DataId": 2012457, + "Position": { + "X": 604.60803, + "Y": 22.903748, + "Z": 233.63086 + }, + "TerritoryId": 957, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, + { + "Position": { + "X": 585.39026, + "Y": 36.73129, + "Z": 279.6089 + }, + "TerritoryId": 957, + "InteractionType": "WalkTo", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + -64 + ] + }, + { + "DataId": 2012456, + "Position": { + "X": 584.0084, + "Y": 38.254395, + "Z": 278.7976 + }, + "TerritoryId": 957, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1041408, + "Position": { + "X": 523.7964, + "Y": 20.494349, + "Z": 346.8833 + }, + "TerritoryId": 957, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1041402, + "Position": { + "X": 411.06274, + "Y": 3.1168792, + "Z": -268.6046 + }, + "TerritoryId": 957, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Thavnair - Palaka's Stand", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_AKTKZF103_04495_Q2_000_045", + "Answer": "TEXT_AKTKZF103_04495_A2_000_001" + } + ], + "NextQuestId": 4496 + } + ] + } + ] +} diff --git a/QuestPaths/6.x - Endwalker/Side Quests/Thavnair/4496_Societal Alchemy.json b/QuestPaths/6.x - Endwalker/Side Quests/Thavnair/4496_Societal Alchemy.json new file mode 100644 index 00000000..1b9af311 --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Side Quests/Thavnair/4496_Societal Alchemy.json @@ -0,0 +1,112 @@ +{ + "$schema": "https://carvel.li/questionable/quest-1.0", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1041403, + "Position": { + "X": 411.7036, + "Y": 3.1168795, + "Z": -266.89557 + }, + "TerritoryId": 957, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2012460, + "Position": { + "X": 240.52795, + "Y": 7.095398, + "Z": -556.5729 + }, + "TerritoryId": 957, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": 274.3244, + "Y": 6.2260103, + "Z": -553.4195 + }, + "TerritoryId": 957, + "InteractionType": "WalkTo", + "Mount": false + }, + { + "DataId": 1041410, + "Position": { + "X": 271.5343, + "Y": 6.226011, + "Z": -556.54236 + }, + "StopDistance": 5, + "TerritoryId": 957, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1041397, + "Position": { + "X": 402.30408, + "Y": 3.0506973, + "Z": -212.35986 + }, + "TerritoryId": 957, + "InteractionType": "Interact", + "AetheryteShortcut": "Thavnair - Palaka's Stand" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1041401, + "Position": { + "X": 411.06274, + "Y": 3.1168792, + "Z": -268.6046 + }, + "TerritoryId": 957, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1041397, + "Position": { + "X": 402.30408, + "Y": 3.0506973, + "Z": -212.35986 + }, + "TerritoryId": 957, + "InteractionType": "CompleteQuest", + "Fly": true, + "NextQuestId": 4497 + } + ] + } + ] +} diff --git a/QuestPaths/6.x - Endwalker/Side Quests/Thavnair/4497_A Budding Adventure.json b/QuestPaths/6.x - Endwalker/Side Quests/Thavnair/4497_A Budding Adventure.json new file mode 100644 index 00000000..f24dac24 --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Side Quests/Thavnair/4497_A Budding Adventure.json @@ -0,0 +1,179 @@ +{ + "$schema": "https://carvel.li/questionable/quest-1.0", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1041397, + "Position": { + "X": 402.30408, + "Y": 3.0506973, + "Z": -212.35986 + }, + "TerritoryId": 957, + "InteractionType": "AcceptQuest", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_AKTKZF201_04497_Q1_000_012", + "Answer": "TEXT_AKTKZF201_04497_A1_000_001" + } + ] + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": 191.63799, + "Y": 15.136713, + "Z": 508.80118 + }, + "TerritoryId": 957, + "InteractionType": "WalkTo", + "Fly": true, + "AetheryteShortcut": "Thavnair - Yedlihmad" + }, + { + "DataId": 1041332, + "Position": { + "X": 194.68982, + "Y": 14.118598, + "Z": 485.9845 + }, + "TerritoryId": 957, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": 191.63799, + "Y": 15.136713, + "Z": 508.80118 + }, + "TerritoryId": 957, + "InteractionType": "WalkTo", + "Mount": true + }, + { + "DataId": 1041412, + "Position": { + "X": 93.88867, + "Y": 8.462445, + "Z": 566.0028 + }, + "TerritoryId": 957, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "Position": { + "X": -282.0419, + "Y": 67.704025, + "Z": -545.84924 + }, + "StopDistance": 1, + "TerritoryId": 957, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [ + 14039 + ], + "Fly": true, + "AetheryteShortcut": "Thavnair - Great Work" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1041415, + "Position": { + "X": -282.3072, + "Y": 67.844055, + "Z": -543.1144 + }, + "StopDistance": 7, + "TerritoryId": 957, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1041417, + "Position": { + "X": 388.7235, + "Y": 22.369963, + "Z": -488.42606 + }, + "TerritoryId": 957, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1041397, + "Position": { + "X": 402.30408, + "Y": 3.0506973, + "Z": -212.35986 + }, + "TerritoryId": 957, + "InteractionType": "Interact", + "AetheryteShortcut": "Thavnair - Palaka's Stand" + } + ] + }, + { + "Sequence": 7, + "Steps": [ + { + "DataId": 1041421, + "Position": { + "X": 401.8158, + "Y": 3.0714467, + "Z": -214.74023 + }, + "TerritoryId": 957, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1041397, + "Position": { + "X": 402.30408, + "Y": 3.0506973, + "Z": -212.35986 + }, + "TerritoryId": 957, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/6.x - Endwalker/Tribal/Arkasodara/Dailies/4555_Flowers for Sanduruva.json b/QuestPaths/6.x - Endwalker/Tribal/Arkasodara/Dailies/4555_Flowers for Sanduruva.json new file mode 100644 index 00000000..7cc9b39b --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Tribal/Arkasodara/Dailies/4555_Flowers for Sanduruva.json @@ -0,0 +1,148 @@ +{ + "$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": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1043108, + "Position": { + "X": 336.41565, + "Y": 0.9428888, + "Z": 624.10913 + }, + "TerritoryId": 957, + "InteractionType": "Interact", + "SkipIf": [ + "FlyingUnlocked" + ], + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_BANARK105_04555_Q1_000_000", + "Yes": true + } + ] + }, + { + "DataId": 2012853, + "Position": { + "X": 392.66028, + "Y": 57.602783, + "Z": 630.64 + }, + "TerritoryId": 957, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 2012854, + "Position": { + "X": 422.99524, + "Y": 62.91284, + "Z": 584.161 + }, + "TerritoryId": 957, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, + { + "DataId": 2012852, + "Position": { + "X": 445.27344, + "Y": 68.46716, + "Z": 588.03687 + }, + "TerritoryId": 957, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1043107, + "Position": { + "X": 376.51636, + "Y": 55.220497, + "Z": 601.0985 + }, + "TerritoryId": 957, + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_BANARK105_04555_Q2_000_000", + "Yes": true + } + ], + "SkipIf": [ + "FlyingUnlocked" + ] + }, + { + "Position": { + "X": 236.26051, + "Y": 2.3393192, + "Z": 644.57275 + }, + "TerritoryId": 957, + "InteractionType": "WalkTo", + "SkipIf": [ + "FlyingUnlocked" + ] + }, + { + "DataId": 1042301, + "Position": { + "X": -66.02582, + "Y": 39.994705, + "Z": 321.06494 + }, + "TerritoryId": 957, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/6.x - Endwalker/Tribal/Arkasodara/Dailies/4556_Anxious Rookie.json b/QuestPaths/6.x - Endwalker/Tribal/Arkasodara/Dailies/4556_Anxious Rookie.json new file mode 100644 index 00000000..40ffbca8 --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Tribal/Arkasodara/Dailies/4556_Anxious Rookie.json @@ -0,0 +1,63 @@ +{ + "$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": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Comment": "There are more NPC/dialogue choices", + "Steps": [ + { + "DataId": 1042370, + "Position": { + "X": -506.37067, + "Y": 5.1961365, + "Z": 63.401123 + }, + "TerritoryId": 957, + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_BANARK106_04556_Q3_000_000", + "Answer": "TEXT_BANARK106_04556_A3_000_001" + } + ], + "SkipIf": [ + "NotTargetable" + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1042301, + "Position": { + "X": -66.02582, + "Y": 39.994705, + "Z": 321.06494 + }, + "TerritoryId": 957, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/6.x - Endwalker/Tribal/Arkasodara/Story/4545_Hippos Born to Run.json b/QuestPaths/6.x - Endwalker/Tribal/Arkasodara/Story/4545_Hippos Born to Run.json new file mode 100644 index 00000000..6dfebbbc --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Tribal/Arkasodara/Story/4545_Hippos Born to Run.json @@ -0,0 +1,241 @@ +{ + "$schema": "https://carvel.li/questionable/quest-1.0", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1041332, + "Position": { + "X": 194.68982, + "Y": 14.118598, + "Z": 485.9845 + }, + "TerritoryId": 957, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Thavnair - Yedlihmad", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_BANARK001_04545_Q1_000_004", + "Answer": "TEXT_BANARK001_04545_A1_000_002" + } + ] + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1042303, + "Position": { + "X": 183.79492, + "Y": 10.683311, + "Z": 557.42737 + }, + "TerritoryId": 957, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 1042305, + "Position": { + "X": 200, + "Y": 10.114502, + "Z": 579.1256 + }, + "TerritoryId": 957, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, + { + "DataId": 1042304, + "Position": { + "X": 171.58765, + "Y": 4.763736, + "Z": 683.37524 + }, + "TerritoryId": 957, + "InteractionType": "Interact", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1042306, + "Position": { + "X": -260.6394, + "Y": 14.412592, + "Z": 202.62451 + }, + "TerritoryId": 957, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "Position": { + "X": 191.63799, + "Y": 15.136713, + "Z": 508.80118 + }, + "TerritoryId": 957, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 1041332, + "Position": { + "X": 194.68982, + "Y": 14.118598, + "Z": 485.9845 + }, + "TerritoryId": 957, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "Position": { + "X": 191.63799, + "Y": 15.136713, + "Z": 508.80118 + }, + "TerritoryId": 957, + "InteractionType": "WalkTo", + "Mount": true + }, + { + "DataId": 1042307, + "Position": { + "X": 121.01929, + "Y": 6.780056, + "Z": 585.59546 + }, + "TerritoryId": 957, + "InteractionType": "Interact", + "Fly": true, + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_BANARK001_04545_Q4_000_081", + "Yes": true + } + ] + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1042310, + "Position": { + "X": -488.7007, + "Y": 4.563182, + "Z": 18.20398 + }, + "StopDistance": 5, + "TerritoryId": 957, + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_BANARK001_04545_Q5_000_115", + "Yes": true + } + ] + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "Position": { + "X": 159.25264, + "Y": 5.220791, + "Z": 606.4928 + }, + "TerritoryId": 957, + "InteractionType": "WalkTo" + } + ] + }, + { + "Sequence": 7, + "Steps": [ + { + "DataId": 1041332, + "Position": { + "X": 194.68982, + "Y": 14.118598, + "Z": 485.9845 + }, + "TerritoryId": 957, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": 191.63799, + "Y": 15.136713, + "Z": 508.80118 + }, + "TerritoryId": 957, + "InteractionType": "WalkTo", + "Mount": true + }, + { + "DataId": 1042313, + "Position": { + "X": -78.690796, + "Y": 40.010006, + "Z": 323.2318 + }, + "TerritoryId": 957, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/quest-v1.json b/QuestPaths/quest-v1.json index 31d0f17a..334dd298 100644 --- a/QuestPaths/quest-v1.json +++ b/QuestPaths/quest-v1.json @@ -5,6 +5,10 @@ "description": "A series of quest sequences", "type": "object", "properties": { + "$schema": { + "type": "string", + "const": "https://carvel.li/questionable/quest-1.0" + }, "Author": { "description": "Author of the quest sequence", "type": "string" @@ -1015,6 +1019,7 @@ } }, "required": [ + "$schema", "QuestSequence", "Author" ], diff --git a/Questionable/Controller/MovementController.cs b/Questionable/Controller/MovementController.cs index 0ef82568..ba8c3077 100644 --- a/Questionable/Controller/MovementController.cs +++ b/Questionable/Controller/MovementController.cs @@ -245,7 +245,7 @@ internal sealed class MovementController : IDisposable } private void PrepareNavigation(EMovementType type, uint? dataId, Vector3 to, bool fly, bool sprint, - float? stopDistance, bool ignoreDistanceToObject, bool useNavmesh) + float? stopDistance, bool ignoreDistanceToObject, bool land, bool useNavmesh) { ResetPathfinding(); @@ -256,16 +256,18 @@ internal sealed class MovementController : IDisposable } Destination = new DestinationData(type, dataId, to, stopDistance ?? (QuestStep.DefaultStopDistance - 0.2f), fly, - sprint, - ignoreDistanceToObject, useNavmesh); + sprint, ignoreDistanceToObject, land, useNavmesh); MovementStartedAt = DateTime.MaxValue; } public void NavigateTo(EMovementType type, uint? dataId, Vector3 to, bool fly, bool sprint, - float? stopDistance = null, bool ignoreDistanceToObject = false) + float? stopDistance = null, bool ignoreDistanceToObject = false, bool land = false) { fly |= _condition[ConditionFlag.Diving]; - PrepareNavigation(type, dataId, to, fly, sprint, stopDistance, ignoreDistanceToObject, true); + if (fly && land) + to = to with { Y = to.Y + 2.6f }; + + PrepareNavigation(type, dataId, to, fly, sprint, stopDistance, ignoreDistanceToObject, land, true); _logger.LogInformation("Pathfinding to {Destination}", Destination); _cancellationTokenSource = new(); @@ -275,10 +277,13 @@ internal sealed class MovementController : IDisposable } public void NavigateTo(EMovementType type, uint? dataId, List to, bool fly, bool sprint, - float? stopDistance, bool ignoreDistanceToObject = false) + float? stopDistance, bool ignoreDistanceToObject = false, bool land = false) { fly |= _condition[ConditionFlag.Diving]; - PrepareNavigation(type, dataId, to.Last(), fly, sprint, stopDistance, ignoreDistanceToObject, false); + if (fly && land && to.Count > 0) + to[^1] = to[^1] with { Y = to[^1].Y + 2.6f }; + + PrepareNavigation(type, dataId, to.Last(), fly, sprint, stopDistance, ignoreDistanceToObject, land, false); _logger.LogInformation("Moving to {Destination}", Destination); _navmeshIpc.MoveTo(to, fly); @@ -328,6 +333,7 @@ internal sealed class MovementController : IDisposable bool IsFlying, bool CanSprint, bool IgnoreDistanceToObject, + bool Land, bool UseNavmesh); public sealed class PathfindingFailedException : Exception diff --git a/Questionable/Controller/Steps/Shared/Move.cs b/Questionable/Controller/Steps/Shared/Move.cs index 914e1720..a77fee9b 100644 --- a/Questionable/Controller/Steps/Shared/Move.cs +++ b/Questionable/Controller/Steps/Shared/Move.cs @@ -5,6 +5,8 @@ using System.Numerics; using Dalamud.Game.ClientState.Conditions; using Dalamud.Game.ClientState.Objects.Types; using Dalamud.Plugin.Services; +using FFXIVClientStructs.FFXIV.Client.Game; +using FFXIVClientStructs.FFXIV.Client.Game.Character; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; using Questionable.Controller.NavigationOverrides; @@ -103,7 +105,8 @@ internal static class Move fly: Step.Fly == true && gameFunctions.IsFlyingUnlocked(Step.TerritoryId), sprint: Step.Sprint != false, stopDistance: distance, - ignoreDistanceToObject: Step.IgnoreDistanceToObject == true); + ignoreDistanceToObject: Step.IgnoreDistanceToObject == true, + land: Step.Land == true); }); } } @@ -118,7 +121,8 @@ internal static class Move m.NavigateTo(EMovementType.Quest, Step.DataId, [Destination], fly: Step.Fly == true && gameFunctions.IsFlyingUnlockedInCurrentZone(), sprint: Step.Sprint != false, - stopDistance: distance); + stopDistance: distance, + land: Step.Land == true); }); } } @@ -182,8 +186,11 @@ internal static class Move } } - internal sealed class Land(MovementController movementController, IClientState clientState, ICondition condition, ILogger logger) : ITask + internal sealed class Land(IClientState clientState, ICondition condition, ILogger logger) : ITask { + private bool _landing; + private DateTime _continueAt; + public bool Start() { if (!condition[ConditionFlag.InFlight]) @@ -192,32 +199,40 @@ internal static class Move return false; } - AttemptLanding(); + _landing = AttemptLanding(); + _continueAt = DateTime.Now.AddSeconds(0.25); return true; } public ETaskResult Update() { - if (movementController.IsPathfinding || movementController.IsPathRunning) + if (DateTime.Now < _continueAt) return ETaskResult.StillRunning; if (condition[ConditionFlag.InFlight]) { - AttemptLanding(); + if (!_landing) + { + _landing = AttemptLanding(); + _continueAt = DateTime.Now.AddSeconds(0.25); + } + return ETaskResult.StillRunning; } return ETaskResult.TaskComplete; } - private void AttemptLanding() + private unsafe bool AttemptLanding() { - Vector3 playerPosition = clientState.LocalPlayer!.Position; - playerPosition.Y -= 3; + var character = (Character*)(clientState.LocalPlayer?.Address ?? 0); + if (character != null) + { + logger.LogInformation("Attempting to land"); + return ActionManager.Instance()->UseAction(ActionType.Mount, character->Mount.MountId); + } - Vector3 nearbyPosition = Vector3.Normalize(playerPosition with { Y = 0 }) * 0.05f; - playerPosition += nearbyPosition; - movementController.NavigateTo(EMovementType.Landing, null, [playerPosition], true, false, 0); + return false; } } } diff --git a/Questionable/Controller/Steps/Shared/WaitAtEnd.cs b/Questionable/Controller/Steps/Shared/WaitAtEnd.cs index 27feae23..8e8a8c63 100644 --- a/Questionable/Controller/Steps/Shared/WaitAtEnd.cs +++ b/Questionable/Controller/Steps/Shared/WaitAtEnd.cs @@ -205,7 +205,7 @@ internal static class WaitAtEnd : ETaskResult.StillRunning; public override string ToString() => - $"WaitObj({DataId} at {Destination.ToString("G", CultureInfo.InvariantCulture)})"; + $"WaitObj({DataId} at {Destination.ToString("G", CultureInfo.InvariantCulture)} < {Distance})"; } internal sealed class WaitQuestAccepted : ITask diff --git a/Questionable/QuestionablePlugin.cs b/Questionable/QuestionablePlugin.cs index 49513766..c81eced2 100644 --- a/Questionable/QuestionablePlugin.cs +++ b/Questionable/QuestionablePlugin.cs @@ -11,7 +11,6 @@ using Microsoft.Extensions.Logging; using Questionable.Controller; using Questionable.Controller.CombatModules; using Questionable.Controller.NavigationOverrides; -using Questionable.Controller.Steps; using Questionable.Controller.Steps.Shared; using Questionable.Controller.Steps.Common; using Questionable.Controller.Steps.Interactions;