From 83e88e9e36641ddbc01157c03ad78e6efdb08481 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Mon, 29 Jul 2024 21:19:22 +0200 Subject: [PATCH] Add a few unlock quests --- .../CRP/138_Way of the Carpenter.json | 43 ++++ .../184_So You Want to Be a Carpenter.json | 28 +++ .../Class Quests/CRP/205_My First Saw.json | 41 ++++ .../Story/1217_Peace for Thanalan.json | 104 +++++++++ .../Story/1218_Brotherhood of Ash.json | 106 +++++++++ .../Tribal/Ixal/Story/1486_A Bad Bladder.json | 115 ++++++++++ .../Story/1487_Reaching for Cloud Nine.json | 130 +++++++++++ .../Kobolds/Story/1320_Highway Robbery.json | 136 +++++++++++ .../Story/1321_How Low Can You Go.json | 185 +++++++++++++++ .../Story/1374_They Came from the Deep.json | 3 +- .../Sylphs/Story/1252_Seeking Solace.json | 89 ++++++++ .../Sylphs/Story/1253_Voyce of Concern.json | 101 ++++++++ .../Story/2164_Three Beaks to the Wind.json | 205 +++++++++++++++++ .../Vath/Story/2255_The Naming of Vath.json | 215 ++++++++++++++++++ .../Unlocks/Instant/2921_Leves of Kugane.json | 22 ++ .../2943_Songs in the Key of Kugane.json | 21 ++ .../Misc/2631_I Dream of Shirogane.json | 96 ++++++++ .../Instant/3602_Leves of the Crystarium.json | 22 ++ .../Misc/4170_Leves of Old Sharlayan.json | 22 ++ .../PCT/4854_The Joy of Pictomancy.json | 78 +++++++ .../PCT/4855_Mind over Manor.json | 149 ++++++++++++ .../VPR/4849_Fangs of the Viper.json | 24 +- QuestPaths/quest-v1.json | 2 + .../V1/Converter/ActionConverter.cs | 2 + Questionable.Model/V1/EAction.cs | 10 +- Questionable/Controller/GameUiController.cs | 75 ++++-- 26 files changed, 1978 insertions(+), 46 deletions(-) create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/CRP/138_Way of the Carpenter.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/CRP/184_So You Want to Be a Carpenter.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/CRP/205_My First Saw.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Tribal/Amalj'aa/Story/1217_Peace for Thanalan.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Tribal/Amalj'aa/Story/1218_Brotherhood of Ash.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Tribal/Ixal/Story/1486_A Bad Bladder.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Tribal/Ixal/Story/1487_Reaching for Cloud Nine.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Tribal/Kobolds/Story/1320_Highway Robbery.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Tribal/Kobolds/Story/1321_How Low Can You Go.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Tribal/Sylphs/Story/1252_Seeking Solace.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Tribal/Sylphs/Story/1253_Voyce of Concern.json create mode 100644 QuestPaths/3.x - Heavensward/Tribal/Vanu Vanu/Story/2164_Three Beaks to the Wind.json create mode 100644 QuestPaths/3.x - Heavensward/Tribal/Vath/Story/2255_The Naming of Vath.json create mode 100644 QuestPaths/4.x - Stormblood/Unlocks/Instant/2921_Leves of Kugane.json create mode 100644 QuestPaths/4.x - Stormblood/Unlocks/Instant/2943_Songs in the Key of Kugane.json create mode 100644 QuestPaths/4.x - Stormblood/Unlocks/Misc/2631_I Dream of Shirogane.json create mode 100644 QuestPaths/5.x - Shadowbringers/Unlocks/Instant/3602_Leves of the Crystarium.json create mode 100644 QuestPaths/6.x - Endwalker/Unlocks/Misc/4170_Leves of Old Sharlayan.json create mode 100644 QuestPaths/7.x - Dawntrail/Class Quests/PCT/4854_The Joy of Pictomancy.json create mode 100644 QuestPaths/7.x - Dawntrail/Class Quests/PCT/4855_Mind over Manor.json diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/CRP/138_Way of the Carpenter.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/CRP/138_Way of the Carpenter.json new file mode 100644 index 000000000..e0e51f7f8 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/CRP/138_Way of the Carpenter.json @@ -0,0 +1,43 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1000148, + "Position": { + "X": -20.279297, + "Y": -3.25, + "Z": 45.97534 + }, + "TerritoryId": 132, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1000153, + "Position": { + "X": -44.87683, + "Y": -1.2500024, + "Z": 56.839844 + }, + "TerritoryId": 132, + "InteractionType": "CompleteQuest", + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_CLSWDK000_00138_Q1_000_1", + "Yes": true + } + ] + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/CRP/184_So You Want to Be a Carpenter.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/CRP/184_So You Want to Be a Carpenter.json new file mode 100644 index 000000000..3226ac80e --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/CRP/184_So You Want to Be a Carpenter.json @@ -0,0 +1,28 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1000148, + "Position": { + "X": -20.279297, + "Y": -3.25, + "Z": 45.97534 + }, + "TerritoryId": 132, + "InteractionType": "AcceptQuest", + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_CLSWDK999_00184_Q1_000_1", + "Yes": true + } + ] + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/CRP/205_My First Saw.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/CRP/205_My First Saw.json new file mode 100644 index 000000000..c96de5240 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/CRP/205_My First Saw.json @@ -0,0 +1,41 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "TerritoryId": 132, + "InteractionType": "EquipItem", + "ItemId": 2314 + }, + { + "DataId": 1000153, + "Position": { + "X": -44.87683, + "Y": -1.2500024, + "Z": 56.839844 + }, + "TerritoryId": 132, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1000153, + "Position": { + "X": -44.87683, + "Y": -1.2500024, + "Z": 56.839844 + }, + "TerritoryId": 132, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Tribal/Amalj'aa/Story/1217_Peace for Thanalan.json b/QuestPaths/2.x - A Realm Reborn/Tribal/Amalj'aa/Story/1217_Peace for Thanalan.json new file mode 100644 index 000000000..b66e973df --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Tribal/Amalj'aa/Story/1217_Peace for Thanalan.json @@ -0,0 +1,104 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1004576, + "Position": { + "X": -141.64954, + "Y": 4.1, + "Z": -114.67157 + }, + "TerritoryId": 130, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1006217, + "Position": { + "X": -181.04828, + "Y": 28.214073, + "Z": -402.02948 + }, + "TerritoryId": 146, + "InteractionType": "Interact", + "AetheryteShortcut": "Southern Thanalan - Little Ala Mhigo" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": -150.9585, + "Y": 43.717075, + "Z": -345.03116 + }, + "TerritoryId": 146, + "InteractionType": "WalkTo", + "Fly": true, + "SkipConditions": { + "StepIf": { + "Flying": "Locked" + } + } + }, + { + "Position": { + "X": 91.463745, + "Y": 10.278164, + "Z": -461.99072 + }, + "TerritoryId": 146, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 2002919, + "Position": { + "X": 90.958984, + "Y": 9.994568, + "Z": -460.41046 + }, + "TerritoryId": 146, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": 107.40087, + "Y": 15.010546, + "Z": -360.9872 + }, + "TerritoryId": 146, + "InteractionType": "WalkTo", + "Fly": true, + "$": "Southern Thanalan, Hamujj Gah Cave" + }, + { + "DataId": 1005553, + "Position": { + "X": 122.6062, + "Y": 16.402647, + "Z": -362.11188 + }, + "TerritoryId": 146, + "InteractionType": "CompleteQuest", + "NextQuestId": 1218 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Tribal/Amalj'aa/Story/1218_Brotherhood of Ash.json b/QuestPaths/2.x - A Realm Reborn/Tribal/Amalj'aa/Story/1218_Brotherhood of Ash.json new file mode 100644 index 000000000..9141443d7 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Tribal/Amalj'aa/Story/1218_Brotherhood of Ash.json @@ -0,0 +1,106 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1005553, + "Position": { + "X": 122.6062, + "Y": 16.402647, + "Z": -362.11188 + }, + "TerritoryId": 146, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": 107.40087, + "Y": 15.010546, + "Z": -360.9872 + }, + "TerritoryId": 146, + "InteractionType": "WalkTo", + "$": "Southern Thanalan, Hamujj Gah Cave" + }, + { + "DataId": 2002931, + "Position": { + "X": -268.54352, + "Y": 4.7455444, + "Z": -77.16492 + }, + "StopDistance": 0.5, + "TerritoryId": 146, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 2458, + 2459 + ], + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1005579, + "Position": { + "X": -262.3789, + "Y": 4.4491196, + "Z": -75.791565 + }, + "TerritoryId": 146, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1005578, + "Position": { + "X": 89.00586, + "Y": 14.439478, + "Z": -387.77753 + }, + "TerritoryId": 146, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1005553, + "Position": { + "X": 122.6062, + "Y": 16.402647, + "Z": -362.11188 + }, + "TerritoryId": 146, + "InteractionType": "CompleteQuest", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_BANAMA002_01218_SYSYTEM_Q1_000_1", + "Answer": "TEXT_BANAMA002_01218_SYSYTEM_A1_000_1" + } + ] + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Tribal/Ixal/Story/1486_A Bad Bladder.json b/QuestPaths/2.x - A Realm Reborn/Tribal/Ixal/Story/1486_A Bad Bladder.json new file mode 100644 index 000000000..2c6394546 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Tribal/Ixal/Story/1486_A Bad Bladder.json @@ -0,0 +1,115 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1009294, + "Position": { + "X": -63.767517, + "Y": -1.7171676, + "Z": 11.673096 + }, + "TerritoryId": 132, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1000612, + "Position": { + "X": 357.96143, + "Y": 8.934158, + "Z": 214.46558 + }, + "TerritoryId": 154, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Yellow Serpent Gate (North Shroud)" + ], + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": 264.54797, + "Y": -14.2467, + "Z": 56.094566 + }, + "TerritoryId": 154, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 2004442, + "Position": { + "X": 265.00342, + "Y": -13.931519, + "Z": 58.457275 + }, + "TerritoryId": 154, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1000612, + "Position": { + "X": 357.96143, + "Y": 8.934158, + "Z": 214.46558 + }, + "TerritoryId": 154, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 2004443, + "Position": { + "X": 211.9325, + "Y": -4.928711, + "Z": 27.572998 + }, + "TerritoryId": 154, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1009199, + "Position": { + "X": 149.43152, + "Y": -18.140299, + "Z": 99.22937 + }, + "TerritoryId": 154, + "InteractionType": "CompleteQuest", + "Fly": true, + "NextQuestId": 1487 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Tribal/Ixal/Story/1487_Reaching for Cloud Nine.json b/QuestPaths/2.x - A Realm Reborn/Tribal/Ixal/Story/1487_Reaching for Cloud Nine.json new file mode 100644 index 000000000..054652f8c --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Tribal/Ixal/Story/1487_Reaching for Cloud Nine.json @@ -0,0 +1,130 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1009199, + "Position": { + "X": 149.43152, + "Y": -18.140299, + "Z": 99.22937 + }, + "TerritoryId": 154, + "InteractionType": "AcceptQuest", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_BANIXA002_01487_Q1_000_000", + "Answer": "TEXT_BANIXA002_01487_A1_000_001" + } + ] + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1009594, + "Position": { + "X": -22.568176, + "Y": -48.098206, + "Z": 289.66187 + }, + "TerritoryId": 154, + "InteractionType": "Interact", + "AetheryteShortcut": "North Shroud - Fallgourd Float" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": -4.085219, + "Y": -40.94998, + "Z": 179.05669 + }, + "TerritoryId": 154, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 1009218, + "Position": { + "X": -4.1047363, + "Y": -40.949986, + "Z": 176.83679 + }, + "TerritoryId": 154, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1009595, + "Position": { + "X": -2.8534546, + "Y": -40.94998, + "Z": 178.72888 + }, + "TerritoryId": 154, + "InteractionType": "Interact", + "$": "Missing craft step", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_BANIXA002_01487_Q2_000_000", + "Answer": "TEXT_BANIXA002_01487_A2_000_001" + } + ] + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1009199, + "Position": { + "X": 149.43152, + "Y": -18.140299, + "Z": 99.22937 + }, + "TerritoryId": 154, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1009199, + "Position": { + "X": 149.43152, + "Y": -18.140299, + "Z": 99.22937 + }, + "TerritoryId": 154, + "InteractionType": "CompleteQuest", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_BANIXA002_01487_Q3_000_000", + "Answer": "TEXT_BANIXA002_01487_A3_000_001" + } + ] + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Tribal/Kobolds/Story/1320_Highway Robbery.json b/QuestPaths/2.x - A Realm Reborn/Tribal/Kobolds/Story/1320_Highway Robbery.json new file mode 100644 index 000000000..d97c732c9 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Tribal/Kobolds/Story/1320_Highway Robbery.json @@ -0,0 +1,136 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1003550, + "Position": { + "X": 76.85962, + "Y": 39.99632, + "Z": 78.99597 + }, + "TerritoryId": 128, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1005964, + "Position": { + "X": 651.1177, + "Y": 9.597839, + "Z": 484.73328 + }, + "TerritoryId": 138, + "InteractionType": "Interact", + "AetheryteShortcut": "Western La Noscea - Swiftperch" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2003711, + "Position": { + "X": 629.0836, + "Y": 9.719971, + "Z": 496.33008 + }, + "TerritoryId": 138, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1005964, + "Position": { + "X": 651.1177, + "Y": 9.597839, + "Z": 484.73328 + }, + "TerritoryId": 138, + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_BANKOB001_01320_Q1_000_000", + "Answer": "TEXT_BANKOB001_01320_A1_000_002" + } + ] + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1006325, + "Position": { + "X": -141.55798, + "Y": 64.59769, + "Z": -212.26831 + }, + "TerritoryId": 180, + "InteractionType": "Interact", + "AetheryteShortcut": "Outer La Noscea - Camp Overlook" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "Position": { + "X": 19.274828, + "Y": 16.260347, + "Z": -199.21056 + }, + "TerritoryId": 180, + "InteractionType": "WalkTo", + "Fly": true + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1007950, + "Position": { + "X": 19.485779, + "Y": 16.159302, + "Z": -196.42938 + }, + "TerritoryId": 180, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1005927, + "Position": { + "X": -2.8534546, + "Y": 16.03717, + "Z": -172.5033 + }, + "TerritoryId": 180, + "InteractionType": "CompleteQuest", + "NextQuestId": 1321 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Tribal/Kobolds/Story/1321_How Low Can You Go.json b/QuestPaths/2.x - A Realm Reborn/Tribal/Kobolds/Story/1321_How Low Can You Go.json new file mode 100644 index 000000000..7f119f735 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Tribal/Kobolds/Story/1321_How Low Can You Go.json @@ -0,0 +1,185 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1005927, + "Position": { + "X": -2.8534546, + "Y": 16.03717, + "Z": -172.5033 + }, + "TerritoryId": 180, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": 155.47716, + "Y": 68.658165, + "Z": -256.36594 + }, + "TerritoryId": 180, + "InteractionType": "WalkTo", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + -32 + ] + }, + { + "DataId": 2003715, + "Position": { + "X": 154.49756, + "Y": 69.047, + "Z": -254.32214 + }, + "TerritoryId": 180, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, + { + "DataId": 2003713, + "Position": { + "X": 181.47546, + "Y": 64.59143, + "Z": -282.42926 + }, + "TerritoryId": 180, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 2003716, + "Position": { + "X": 180.28528, + "Y": 64.62195, + "Z": -255.17664 + }, + "TerritoryId": 180, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 16 + ] + }, + { + "DataId": 2003714, + "Position": { + "X": 197.00916, + "Y": 64.042114, + "Z": -225.60468 + }, + "TerritoryId": 180, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1005927, + "Position": { + "X": -2.8534546, + "Y": 16.03717, + "Z": -172.5033 + }, + "TerritoryId": 180, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2003717, + "Position": { + "X": 0.38146973, + "Y": 16.433899, + "Z": -177.47778 + }, + "TerritoryId": 180, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1005927, + "Position": { + "X": -2.8534546, + "Y": 16.03717, + "Z": -172.5033 + }, + "StopDistance": 5, + "TerritoryId": 180, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1005927, + "Position": { + "X": -2.8534546, + "Y": 16.03717, + "Z": -172.5033 + }, + "StopDistance": 5, + "TerritoryId": 180, + "InteractionType": "CompleteQuest", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_BANKOB002_01321_Q1_000_000", + "Answer": "TEXT_BANKOB002_01321_A1_000_001" + } + ] + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Tribal/Sahagin/Story/1374_They Came from the Deep.json b/QuestPaths/2.x - A Realm Reborn/Tribal/Sahagin/Story/1374_They Came from the Deep.json index b0f7ef9a7..3788baf15 100644 --- a/QuestPaths/2.x - A Realm Reborn/Tribal/Sahagin/Story/1374_They Came from the Deep.json +++ b/QuestPaths/2.x - A Realm Reborn/Tribal/Sahagin/Story/1374_They Came from the Deep.json @@ -184,7 +184,8 @@ }, "TerritoryId": 138, "InteractionType": "CompleteQuest", - "Fly": true + "Fly": true, + "NextQuestId": 1375 } ] } diff --git a/QuestPaths/2.x - A Realm Reborn/Tribal/Sylphs/Story/1252_Seeking Solace.json b/QuestPaths/2.x - A Realm Reborn/Tribal/Sylphs/Story/1252_Seeking Solace.json new file mode 100644 index 000000000..505c80953 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Tribal/Sylphs/Story/1252_Seeking Solace.json @@ -0,0 +1,89 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1000168, + "Position": { + "X": -75.48645, + "Y": -0.5013741, + "Z": -5.081299 + }, + "TerritoryId": 132, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": 45.84424, + "Y": 6.073427, + "Z": 248.96754 + }, + "TerritoryId": 152, + "InteractionType": "WalkTo", + "AetheryteShortcut": "East Shroud - Hawthorne Hut", + "Fly": true + }, + { + "DataId": 1005564, + "Position": { + "X": 48.203125, + "Y": 6.0734696, + "Z": 247.79126 + }, + "TerritoryId": 152, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1005577, + "Position": { + "X": 28.488525, + "Y": -3.6319542, + "Z": 210.62024 + }, + "TerritoryId": 152, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": 45.84424, + "Y": 6.073427, + "Z": 248.96754 + }, + "TerritoryId": 152, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 1005564, + "Position": { + "X": 48.203125, + "Y": 6.0734696, + "Z": 247.79126 + }, + "TerritoryId": 152, + "InteractionType": "CompleteQuest", + "NextQuestId": 1253 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Tribal/Sylphs/Story/1253_Voyce of Concern.json b/QuestPaths/2.x - A Realm Reborn/Tribal/Sylphs/Story/1253_Voyce of Concern.json new file mode 100644 index 000000000..e9bd843ff --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Tribal/Sylphs/Story/1253_Voyce of Concern.json @@ -0,0 +1,101 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1005564, + "Position": { + "X": 48.203125, + "Y": 6.0734696, + "Z": 247.79126 + }, + "TerritoryId": 152, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2002864, + "Position": { + "X": 270.28296, + "Y": -0.25946045, + "Z": 168.53589 + }, + "TerritoryId": 152, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1005570, + "Position": { + "X": 292.77478, + "Y": -0.00153354, + "Z": 145.12854 + }, + "StopDistance": 7, + "TerritoryId": 152, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1005565, + "Position": { + "X": 22.47644, + "Y": -6.2105103, + "Z": 252.552 + }, + "TerritoryId": 152, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": 45.84424, + "Y": 6.073427, + "Z": 248.96754 + }, + "TerritoryId": 152, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 1005564, + "Position": { + "X": 48.203125, + "Y": 6.0734696, + "Z": 247.79126 + }, + "TerritoryId": 152, + "InteractionType": "CompleteQuest", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_BANSYL002_01253_SYSYTEM_Q1_000_1", + "Answer": "TEXT_BANSYL002_01253_SYSYTEM_A1_000_1" + } + ] + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Tribal/Vanu Vanu/Story/2164_Three Beaks to the Wind.json b/QuestPaths/3.x - Heavensward/Tribal/Vanu Vanu/Story/2164_Three Beaks to the Wind.json new file mode 100644 index 000000000..8903a9f42 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Tribal/Vanu Vanu/Story/2164_Three Beaks to the Wind.json @@ -0,0 +1,205 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1012064, + "Position": { + "X": -542.7787, + "Y": -37.11544, + "Z": -386.7094 + }, + "TerritoryId": 401, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2006621, + "Position": { + "X": -428.27502, + "Y": 201.34265, + "Z": -229.05322 + }, + "StopDistance": 0.5, + "TerritoryId": 401, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": -427.762, + "Y": 168.23676, + "Z": -215.835 + }, + "StopDistance": 5, + "TerritoryId": 401, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [ + 5232, + 5233 + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1016150, + "Position": { + "X": -429.52625, + "Y": 167.9683, + "Z": -224.445 + }, + "TerritoryId": 401, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1012064, + "Position": { + "X": -542.7787, + "Y": -37.11544, + "Z": -386.7094 + }, + "TerritoryId": 401, + "InteractionType": "Interact", + "AetheryteShortcut": "The Sea of Clouds - Ok' Zundu", + "Fly": true + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1016087, + "Position": { + "X": -796.7498, + "Y": -133.2695, + "Z": -410.6966 + }, + "TerritoryId": 401, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1016158, + "Position": { + "X": -779.263, + "Y": -117.906494, + "Z": -393.54547 + }, + "TerritoryId": 401, + "InteractionType": "Action", + "Action": "Buffet", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, + { + "DataId": 1016157, + "Position": { + "X": -813.2906, + "Y": -110.49066, + "Z": -434.1955 + }, + "TerritoryId": 401, + "InteractionType": "Action", + "Action": "Buffet", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 1016156, + "Position": { + "X": -860.59357, + "Y": -122.91144, + "Z": -378.34747 + }, + "TerritoryId": 401, + "InteractionType": "Action", + "Action": "Buffet", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": -796.7498, + "Y": -133.2695, + "Z": -410.6966 + }, + "StopDistance": 2, + "TerritoryId": 401, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 1016087, + "Position": { + "X": -796.7498, + "Y": -133.2695, + "Z": -410.6966 + }, + "TerritoryId": 401, + "InteractionType": "CompleteQuest", + "Mount": false, + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_BANVAN001_02164_SYSYTEM_Q1_000_110", + "Answer": "TEXT_BANVAN001_02164_SYSYTEM_A1_000_111" + } + ] + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Tribal/Vath/Story/2255_The Naming of Vath.json b/QuestPaths/3.x - Heavensward/Tribal/Vath/Story/2255_The Naming of Vath.json new file mode 100644 index 000000000..6f23c83c7 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Tribal/Vath/Story/2255_The Naming of Vath.json @@ -0,0 +1,215 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1011928, + "Position": { + "X": 73.19751, + "Y": -49.19563, + "Z": -139.05548 + }, + "TerritoryId": 398, + "InteractionType": "AcceptQuest", + "Fly": true + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1016835, + "Position": { + "X": 447.37915, + "Y": -51.141407, + "Z": 108.53735 + }, + "TerritoryId": 398, + "InteractionType": "Interact", + "AetheryteShortcut": "The Dravanian Forelands - Tailfeather", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1016836, + "Position": { + "X": 212.42078, + "Y": -58.007248, + "Z": -228.07666 + }, + "TerritoryId": 398, + "InteractionType": "Interact", + "Fly": true, + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_BANGNA001_02255_Q1_000_031", + "Answer": "TEXT_BANGNA001_02255_A1_000_032" + } + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2006874, + "Position": { + "X": 222.156, + "Y": -74.93713, + "Z": 122.51465 + }, + "TerritoryId": 398, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 5540 + ], + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1016836, + "Position": { + "X": 212.42078, + "Y": -58.007248, + "Z": -228.07666 + }, + "TerritoryId": 398, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "Position": { + "X": 471.25446, + "Y": -51.141403, + "Z": 35.94126 + }, + "TerritoryId": 398, + "InteractionType": "WalkTo", + "AetheryteShortcut": "The Dravanian Forelands - Tailfeather", + "Fly": true + }, + { + "DataId": 1011916, + "Position": { + "X": 470.02356, + "Y": -49.89133, + "Z": 20.370789 + }, + "TerritoryId": 398, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "Position": { + "X": 471.25446, + "Y": -51.141403, + "Z": 35.94126 + }, + "TerritoryId": 398, + "InteractionType": "WalkTo", + "Mount": true + }, + { + "DataId": 1011928, + "Position": { + "X": 73.19751, + "Y": -49.19563, + "Z": -139.05548 + }, + "TerritoryId": 398, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 7, + "Steps": [ + { + "DataId": 1016837, + "Position": { + "X": 58.88452, + "Y": -48.000004, + "Z": -171.06891 + }, + "TerritoryId": 398, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 8, + "Steps": [ + { + "Position": { + "X": 215.13696, + "Y": -87.32745, + "Z": 217.94458 + }, + "TerritoryId": 398, + "InteractionType": "Action", + "Action": "Fumigate", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": 58.88452, + "Y": -48.000004, + "Z": -171.06891 + }, + "StopDistance": 2, + "TerritoryId": 398, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 1016837, + "Position": { + "X": 58.88452, + "Y": -48.000004, + "Z": -171.06891 + }, + "TerritoryId": 398, + "InteractionType": "CompleteQuest", + "Mount": false, + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_BANGNA001_02255_Q1_000_105", + "Answer": "TEXT_BANGNA001_02255_A1_000_106" + } + ] + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Unlocks/Instant/2921_Leves of Kugane.json b/QuestPaths/4.x - Stormblood/Unlocks/Instant/2921_Leves of Kugane.json new file mode 100644 index 000000000..b1987150e --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Unlocks/Instant/2921_Leves of Kugane.json @@ -0,0 +1,22 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1018997, + "Position": { + "X": 20.492798, + "Y": -8.014721E-11, + "Z": -80.94916 + }, + "StopDistance": 5, + "TerritoryId": 628, + "InteractionType": "AcceptQuest" + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Unlocks/Instant/2943_Songs in the Key of Kugane.json b/QuestPaths/4.x - Stormblood/Unlocks/Instant/2943_Songs in the Key of Kugane.json new file mode 100644 index 000000000..199938f3c --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Unlocks/Instant/2943_Songs in the Key of Kugane.json @@ -0,0 +1,21 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1022622, + "Position": { + "X": 18.08191, + "Y": 4.0559936, + "Z": 70.02356 + }, + "TerritoryId": 628, + "InteractionType": "AcceptQuest" + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Unlocks/Misc/2631_I Dream of Shirogane.json b/QuestPaths/4.x - Stormblood/Unlocks/Misc/2631_I Dream of Shirogane.json new file mode 100644 index 000000000..2668b8356 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Unlocks/Misc/2631_I Dream of Shirogane.json @@ -0,0 +1,96 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1022628, + "Position": { + "X": 38.651123, + "Y": 2.99999, + "Z": -66.7583 + }, + "TerritoryId": 628, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1023604, + "Position": { + "X": -113.96973, + "Y": -7.010037, + "Z": -39.292053 + }, + "TerritoryId": 628, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Kugane] Aetheryte Plaza", + "[Kugane] Shiokaze Hostelry" + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1019006, + "Position": { + "X": -116.80786, + "Y": -7.0101376, + "Z": -39.108948 + }, + "StopDistance": 7, + "TerritoryId": 628, + "InteractionType": "Interact", + "TargetTerritoryId": 641, + "DialogueChoices": [ + { + "Type": "List", + "ExcelSheet": "Addon", + "Prompt": 6347, + "Answer": 6349 + } + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1023605, + "Position": { + "X": -99.99243, + "Y": 2.1199996, + "Z": 117.57068 + }, + "TerritoryId": 641, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1022628, + "Position": { + "X": 38.651123, + "Y": 2.99999, + "Z": -66.7583 + }, + "TerritoryId": 628, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Kugane" + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Unlocks/Instant/3602_Leves of the Crystarium.json b/QuestPaths/5.x - Shadowbringers/Unlocks/Instant/3602_Leves of the Crystarium.json new file mode 100644 index 000000000..53af66795 --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Unlocks/Instant/3602_Leves of the Crystarium.json @@ -0,0 +1,22 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1027847, + "Position": { + "X": -76.34094, + "Y": 20.04979, + "Z": -110.97894 + }, + "StopDistance": 5, + "TerritoryId": 819, + "InteractionType": "AcceptQuest" + } + ] + } + ] +} diff --git a/QuestPaths/6.x - Endwalker/Unlocks/Misc/4170_Leves of Old Sharlayan.json b/QuestPaths/6.x - Endwalker/Unlocks/Misc/4170_Leves of Old Sharlayan.json new file mode 100644 index 000000000..7d32c2573 --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Unlocks/Misc/4170_Leves of Old Sharlayan.json @@ -0,0 +1,22 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1037263, + "Position": { + "X": 46.829956, + "Y": -15.646994, + "Z": 107.86597 + }, + "StopDistance": 5, + "TerritoryId": 962, + "InteractionType": "AcceptQuest" + } + ] + } + ] +} diff --git a/QuestPaths/7.x - Dawntrail/Class Quests/PCT/4854_The Joy of Pictomancy.json b/QuestPaths/7.x - Dawntrail/Class Quests/PCT/4854_The Joy of Pictomancy.json new file mode 100644 index 000000000..86f5071ca --- /dev/null +++ b/QuestPaths/7.x - Dawntrail/Class Quests/PCT/4854_The Joy of Pictomancy.json @@ -0,0 +1,78 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1049794, + "Position": { + "X": -158.98376, + "Y": 4.51273, + "Z": -45.63977 + }, + "TerritoryId": 133, + "InteractionType": "AcceptQuest", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_KINGBB201_04854_Q1_000_000", + "Answer": "TEXT_KINGBB201_04854_A1_000_002" + } + ] + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2013738, + "Position": { + "X": -6.9123535, + "Y": -1.4191895, + "Z": 5.508484 + }, + "TerritoryId": 132, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Gridania] Conjurers' Guild", + "[Gridania] Aetheryte Plaza" + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1049795, + "Position": { + "X": 54.306763, + "Y": -8.321841, + "Z": 94.13281 + }, + "TerritoryId": 132, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1049795, + "Position": { + "X": 54.306763, + "Y": -8.321841, + "Z": 94.13281 + }, + "TerritoryId": 132, + "InteractionType": "CompleteQuest", + "NextQuestId": 4855 + } + ] + } + ] +} diff --git a/QuestPaths/7.x - Dawntrail/Class Quests/PCT/4855_Mind over Manor.json b/QuestPaths/7.x - Dawntrail/Class Quests/PCT/4855_Mind over Manor.json new file mode 100644 index 000000000..f997d61ea --- /dev/null +++ b/QuestPaths/7.x - Dawntrail/Class Quests/PCT/4855_Mind over Manor.json @@ -0,0 +1,149 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "Position": { + "X": 54.306763, + "Y": -8.321841, + "Z": 94.13281 + }, + "TerritoryId": 132, + "InteractionType": "UseItem", + "ItemId": 43538, + "SkipConditions": { + "StepIf": { + "Item": { + "NotInInventory": true + } + } + } + }, + { + "TerritoryId": 132, + "InteractionType": "EquipItem", + "ItemId": 41809, + "SkipConditions": { + "StepIf": { + "Item": { + "NotInInventory": true + } + } + }, + "$": "This should probably call /equiprecommended if it exists" + }, + { + "TerritoryId": 132, + "InteractionType": "EquipItem", + "ItemId": 43183, + "SkipConditions": { + "StepIf": { + "Item": { + "NotInInventory": true + } + } + } + }, + { + "TerritoryId": 132, + "InteractionType": "EquipItem", + "ItemId": 43184, + "SkipConditions": { + "StepIf": { + "Item": { + "NotInInventory": true + } + } + } + }, + { + "TerritoryId": 132, + "InteractionType": "EquipItem", + "ItemId": 43185, + "SkipConditions": { + "StepIf": { + "Item": { + "NotInInventory": true + } + } + } + }, + { + "TerritoryId": 132, + "InteractionType": "EquipItem", + "ItemId": 43186, + "SkipConditions": { + "StepIf": { + "Item": { + "NotInInventory": true + } + } + } + }, + { + "TerritoryId": 132, + "InteractionType": "EquipItem", + "ItemId": 43187, + "SkipConditions": { + "StepIf": { + "Item": { + "NotInInventory": true + } + } + } + }, + { + "DataId": 1049795, + "Position": { + "X": 54.306763, + "Y": -8.321841, + "Z": 94.13281 + }, + "TerritoryId": 132, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1049794, + "Position": { + "X": -158.98376, + "Y": 4.51273, + "Z": -45.63977 + }, + "TerritoryId": 133, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Conjurers' Guild" + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1049796, + "Position": { + "X": 27.695068, + "Y": 16.16987, + "Z": -339.13184 + }, + "TerritoryId": 133, + "InteractionType": "SinglePlayerDuty", + "AethernetShortcut": [ + "[Gridania] Conjurers' Guild", + "[Gridania] Lancers' Guild" + ] + } + ] + } + ] +} diff --git a/QuestPaths/7.x - Dawntrail/Class Quests/VPR/4849_Fangs of the Viper.json b/QuestPaths/7.x - Dawntrail/Class Quests/VPR/4849_Fangs of the Viper.json index e03945f3d..0ed327534 100644 --- a/QuestPaths/7.x - Dawntrail/Class Quests/VPR/4849_Fangs of the Viper.json +++ b/QuestPaths/7.x - Dawntrail/Class Quests/VPR/4849_Fangs of the Viper.json @@ -26,12 +26,7 @@ } }, { - "Position": { - "X": 89.036255, - "Y": 12, - "Z": 47.287598 - }, - "TerritoryId": 131, + "TerritoryId": 131, "InteractionType": "EquipItem", "ItemId": 41808, "SkipConditions": { @@ -44,11 +39,6 @@ "$": "This should probably call /equiprecommended if it exists" }, { - "Position": { - "X": 89.036255, - "Y": 12, - "Z": 47.287598 - }, "TerritoryId": 131, "InteractionType": "EquipItem", "ItemId": 43178, @@ -61,11 +51,6 @@ } }, { - "Position": { - "X": 89.036255, - "Y": 12, - "Z": 47.287598 - }, "TerritoryId": 131, "InteractionType": "EquipItem", "ItemId": 43179, @@ -78,12 +63,7 @@ } }, { - "Position": { - "X": 89.036255, - "Y": 12, - "Z": 47.287598 - }, - "TerritoryId": 131, + "TerritoryId": 131, "InteractionType": "EquipItem", "ItemId": 43180, "SkipConditions": { diff --git a/QuestPaths/quest-v1.json b/QuestPaths/quest-v1.json index 91193fee8..340621f11 100644 --- a/QuestPaths/quest-v1.json +++ b/QuestPaths/quest-v1.json @@ -720,6 +720,8 @@ "enum": [ "Esuna", "Physick", + "Buffet", + "Fumigate", "Siphon Snout", "Red Gulal", "Yellow Gulal", diff --git a/Questionable.Model/V1/Converter/ActionConverter.cs b/Questionable.Model/V1/Converter/ActionConverter.cs index 23711daec..67a32a8d9 100644 --- a/Questionable.Model/V1/Converter/ActionConverter.cs +++ b/Questionable.Model/V1/Converter/ActionConverter.cs @@ -8,6 +8,8 @@ public sealed class ActionConverter() : EnumConverter(Values) { { EAction.Esuna, "Esuna" }, { EAction.Physick, "Physick" }, + { EAction.Buffet, "Buffet" }, + { EAction.Fumigate, "Fumigate" }, { EAction.SiphonSnout, "Siphon Snout" }, { EAction.RedGulal, "Red Gulal" }, { EAction.YellowGulal, "Yellow Gulal" }, diff --git a/Questionable.Model/V1/EAction.cs b/Questionable.Model/V1/EAction.cs index 4464fc545..b83e6c863 100644 --- a/Questionable.Model/V1/EAction.cs +++ b/Questionable.Model/V1/EAction.cs @@ -8,6 +8,8 @@ public enum EAction { Esuna = 7568, Physick = 190, + Buffet = 4931, + Fumigate = 5872, SiphonSnout = 18187, RedGulal = 29382, YellowGulal = 29383, @@ -18,6 +20,12 @@ public static class EActionExtensions { public static bool RequiresMount(this EAction action) { - return action is EAction.SiphonSnout or EAction.RedGulal or EAction.YellowGulal or EAction.BlueGulal; + return action + is EAction.Buffet + or EAction.Fumigate + or EAction.SiphonSnout + or EAction.RedGulal + or EAction.YellowGulal + or EAction.BlueGulal; } } diff --git a/Questionable/Controller/GameUiController.cs b/Questionable/Controller/GameUiController.cs index be43974cd..0bb4e12b4 100644 --- a/Questionable/Controller/GameUiController.cs +++ b/Questionable/Controller/GameUiController.cs @@ -59,6 +59,7 @@ internal sealed class GameUiController : IDisposable _addonLifecycle.RegisterListener(AddonEvent.PostSetup, "AkatsukiNote", UnendingCodexPostSetup); _addonLifecycle.RegisterListener(AddonEvent.PostSetup, "ContentsTutorial", ContentsTutorialPostSetup); _addonLifecycle.RegisterListener(AddonEvent.PostSetup, "MultipleHelpWindow", MultipleHelpWindowPostSetup); + _addonLifecycle.RegisterListener(AddonEvent.PostSetup, "HousingSelectBlock", HousingSelectBlockPostSetup); } internal unsafe void HandleCurrentDialogueChoices() @@ -353,6 +354,7 @@ internal sealed class GameUiController : IDisposable SelectYesnoPostSetup(addonSelectYesno, false); } + [SuppressMessage("ReSharper", "RedundantJumpStatement")] private unsafe void SelectYesnoPostSetup(AddonSelectYesno* addonSelectYesno, bool checkAllSteps) { string? actualPrompt = addonSelectYesno->AtkUnitBase.AtkValues[0].ReadAtkString(); @@ -362,34 +364,42 @@ internal sealed class GameUiController : IDisposable _logger.LogTrace("Prompt: '{Prompt}'", actualPrompt); var currentQuest = _questController.StartedQuest; - if (currentQuest != null) - { - var quest = currentQuest.Quest; - if (checkAllSteps) - { - var sequence = quest.FindSequence(currentQuest.Sequence); - if (sequence != null && HandleDefaultYesNo(addonSelectYesno, quest, - sequence.Steps.SelectMany(x => x.DialogueChoices).ToList(), actualPrompt)) - return; - } - else - { - var step = quest.FindSequence(currentQuest.Sequence)?.FindStep(currentQuest.Step); - if (step != null && HandleDefaultYesNo(addonSelectYesno, quest, step.DialogueChoices, actualPrompt)) - return; - } - - if (HandleTravelYesNo(addonSelectYesno, currentQuest, actualPrompt)) - return; - } + if (currentQuest != null && CheckQuestYesNo(addonSelectYesno, currentQuest, actualPrompt, checkAllSteps)) + return; var simulatedQuest = _questController.SimulatedQuest; if (simulatedQuest != null && HandleTravelYesNo(addonSelectYesno, simulatedQuest, actualPrompt)) return; var nextQuest = _questController.NextQuest; - if (nextQuest != null) - HandleTravelYesNo(addonSelectYesno, nextQuest, actualPrompt); + if (nextQuest != null && CheckQuestYesNo(addonSelectYesno, nextQuest, actualPrompt, checkAllSteps)) + return; + + return; + } + + private unsafe bool CheckQuestYesNo(AddonSelectYesno* addonSelectYesno, QuestController.QuestProgress currentQuest, + string actualPrompt, bool checkAllSteps) + { + var quest = currentQuest.Quest; + if (checkAllSteps) + { + var sequence = quest.FindSequence(currentQuest.Sequence); + if (sequence != null && HandleDefaultYesNo(addonSelectYesno, quest, + sequence.Steps.SelectMany(x => x.DialogueChoices).ToList(), actualPrompt)) + return true; + } + else + { + var step = quest.FindSequence(currentQuest.Sequence)?.FindStep(currentQuest.Step); + if (step != null && HandleDefaultYesNo(addonSelectYesno, quest, step.DialogueChoices, actualPrompt)) + return true; + } + + if (HandleTravelYesNo(addonSelectYesno, currentQuest, actualPrompt)) + return true; + + return false; } private unsafe bool HandleDefaultYesNo(AddonSelectYesno* addonSelectYesno, Quest quest, @@ -434,6 +444,13 @@ internal sealed class GameUiController : IDisposable return true; } + if (_questController.IsRunning && _gameGui.TryGetAddonByName("HousingSelectBlock", out AtkUnitBase* _)) + { + _logger.LogInformation("Automatically confirming ward selection"); + addonSelectYesno->AtkUnitBase.FireCallbackInt(0); + return true; + } + var targetTerritoryId = FindTargetTerritoryFromQuestStep(currentQuest); if (targetTerritoryId != null && TryFindWarp(targetTerritoryId.Value, actualPrompt, out uint? warpId, out string? warpText)) @@ -601,6 +618,9 @@ internal sealed class GameUiController : IDisposable } } + /// + /// Opened e.g. the first time you open the duty finder window during Sastasha. + /// private unsafe void MultipleHelpWindowPostSetup(AddonEvent type, AddonArgs args) { if (_questController.StartedQuest?.Quest.QuestId == 245) @@ -612,6 +632,16 @@ internal sealed class GameUiController : IDisposable } } + private unsafe void HousingSelectBlockPostSetup(AddonEvent type, AddonArgs args) + { + if (_questController.IsRunning) + { + _logger.LogInformation("Confirming selected housing ward"); + AtkUnitBase* addon = (AtkUnitBase*)args.Addon; + addon->FireCallbackInt(0); + } + } + /// /// Ensures characters like '-' are handled equally in both strings. /// @@ -643,6 +673,7 @@ internal sealed class GameUiController : IDisposable public void Dispose() { + _addonLifecycle.UnregisterListener(AddonEvent.PostSetup, "HousingSelectBlock", HousingSelectBlockPostSetup); _addonLifecycle.UnregisterListener(AddonEvent.PostSetup, "MultipleHelpWindow", MultipleHelpWindowPostSetup); _addonLifecycle.UnregisterListener(AddonEvent.PostSetup, "ContentsTutorial", ContentsTutorialPostSetup); _addonLifecycle.UnregisterListener(AddonEvent.PostSetup, "AkatsukiNote", UnendingCodexPostSetup);