From 5317d5ee52deca7d91206f234e985dab1bf380e6 Mon Sep 17 00:00:00 2001 From: MDlumia Date: Mon, 23 Sep 2024 00:13:52 -0500 Subject: [PATCH 001/448] Fix: Add additonal Pathing point to fix Nav issue --- .../4689_Money Makes the Moon Go Round.json | 105 ++++++++++-------- 1 file changed, 58 insertions(+), 47 deletions(-) diff --git a/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Dailies/4689_Money Makes the Moon Go Round.json b/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Dailies/4689_Money Makes the Moon Go Round.json index e72b91fdf..2f92e7c0d 100644 --- a/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Dailies/4689_Money Makes the Moon Go Round.json +++ b/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Dailies/4689_Money Makes the Moon Go Round.json @@ -26,52 +26,63 @@ } ] }, - { - "Sequence": 1, - "Steps": [ - { - "DataId": 1044572, - "Position": { - "X": -638.056, - "Y": -143.79326, - "Z": -513.0846 - }, - "TerritoryId": 959, - "InteractionType": "Interact", - "Fly": true - } - ] - }, - { - "Sequence": 255, - "Steps": [ - { - "TerritoryId": 959, - "InteractionType": "Craft", - "ItemId": 38857, - "ItemCount": 4 + + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": -170.51479, + "Y": -105.22506, + "Z": -511.04712 }, - { - "Position": { - "X": -201.42024, - "Y": -49.149708, - "Z": -273.68756 - }, - "TerritoryId": 959, - "InteractionType": "WalkTo", - "Fly": true + "TerritoryId": 959, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 1044572, + "Position": { + "X": -638.056, + "Y": -143.79326, + "Z": -513.0846 }, - { - "DataId": 1044403, - "Position": { - "X": -203.5401, - "Y": -48.949707, - "Z": -273.60956 - }, - "TerritoryId": 959, - "InteractionType": "CompleteQuest" - } - ] - } - ] -} + "TerritoryId": 959, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "TerritoryId": 959, + "InteractionType": "Craft", + "ItemId": 38857, + "ItemCount": 4 + }, + { + "Position": { + "X": -201.42024, + "Y": -49.149708, + "Z": -273.68756 + }, + "TerritoryId": 959, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 1044403, + "Position": { + "X": -203.5401, + "Y": -48.949707, + "Z": -273.60956 + }, + "TerritoryId": 959, + "InteractionType": "CompleteQuest" + } + ] + } +] +} \ No newline at end of file -- 2.45.2 From e97b17ed346ae9762a764791af713c516571ca00 Mon Sep 17 00:00:00 2001 From: MDlumia Date: Mon, 23 Sep 2024 05:22:20 +0000 Subject: [PATCH 002/448] revert 5317d5ee52deca7d91206f234e985dab1bf380e6 revert Fix: Add additonal Pathing point to fix Nav issue --- .../4689_Money Makes the Moon Go Round.json | 105 ++++++++---------- 1 file changed, 47 insertions(+), 58 deletions(-) diff --git a/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Dailies/4689_Money Makes the Moon Go Round.json b/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Dailies/4689_Money Makes the Moon Go Round.json index 2f92e7c0d..e72b91fdf 100644 --- a/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Dailies/4689_Money Makes the Moon Go Round.json +++ b/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Dailies/4689_Money Makes the Moon Go Round.json @@ -26,63 +26,52 @@ } ] }, - - { - "Sequence": 1, - "Steps": [ - { - "Position": { - "X": -170.51479, - "Y": -105.22506, - "Z": -511.04712 + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1044572, + "Position": { + "X": -638.056, + "Y": -143.79326, + "Z": -513.0846 + }, + "TerritoryId": 959, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "TerritoryId": 959, + "InteractionType": "Craft", + "ItemId": 38857, + "ItemCount": 4 }, - "TerritoryId": 959, - "InteractionType": "WalkTo", - "Fly": true - }, - { - "DataId": 1044572, - "Position": { - "X": -638.056, - "Y": -143.79326, - "Z": -513.0846 + { + "Position": { + "X": -201.42024, + "Y": -49.149708, + "Z": -273.68756 + }, + "TerritoryId": 959, + "InteractionType": "WalkTo", + "Fly": true }, - "TerritoryId": 959, - "InteractionType": "Interact", - "Fly": true - } - ] - }, - { - "Sequence": 255, - "Steps": [ - { - "TerritoryId": 959, - "InteractionType": "Craft", - "ItemId": 38857, - "ItemCount": 4 - }, - { - "Position": { - "X": -201.42024, - "Y": -49.149708, - "Z": -273.68756 - }, - "TerritoryId": 959, - "InteractionType": "WalkTo", - "Fly": true - }, - { - "DataId": 1044403, - "Position": { - "X": -203.5401, - "Y": -48.949707, - "Z": -273.60956 - }, - "TerritoryId": 959, - "InteractionType": "CompleteQuest" - } - ] - } -] -} \ No newline at end of file + { + "DataId": 1044403, + "Position": { + "X": -203.5401, + "Y": -48.949707, + "Z": -273.60956 + }, + "TerritoryId": 959, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} -- 2.45.2 From e8ec0f87e4efb09dc538dfa5aab429bb1c1c5562 Mon Sep 17 00:00:00 2001 From: MDlumia Date: Mon, 23 Sep 2024 00:33:18 -0500 Subject: [PATCH 003/448] Fix: Add additonal Pathing point to fix Nav issue --- .../Dailies/4689_Money Makes the Moon Go Round.json | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Dailies/4689_Money Makes the Moon Go Round.json b/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Dailies/4689_Money Makes the Moon Go Round.json index e72b91fdf..11b508a2b 100644 --- a/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Dailies/4689_Money Makes the Moon Go Round.json +++ b/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Dailies/4689_Money Makes the Moon Go Round.json @@ -29,6 +29,16 @@ { "Sequence": 1, "Steps": [ + { + "Position": { + "X": -170.51479, + "Y": -105.22506, + "Z": -511.04712 + }, + "TerritoryId": 959, + "InteractionType": "WalkTo", + "Fly": true + }, { "DataId": 1044572, "Position": { @@ -74,4 +84,4 @@ ] } ] -} +} \ No newline at end of file -- 2.45.2 From 963442ba25edc5697f3a13cd29f99ae44fb01627 Mon Sep 17 00:00:00 2001 From: kaiser Date: Tue, 24 Sep 2024 03:18:29 +1000 Subject: [PATCH 004/448] chore: optimize sage focus quest and few others. Don't teleport to Summerford Farms, instead use aethernet and teleport to the gate. --- .../Class Quests/SGE/4067_Sage's Path.json | 14 +++++++------- .../Class Quests/SGE/4068_Sage's Focus.json | 4 ++++ 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/QuestPaths/6.x - Endwalker/Class Quests/SGE/4067_Sage's Path.json b/QuestPaths/6.x - Endwalker/Class Quests/SGE/4067_Sage's Path.json index 64b7fe955..1cf674ab8 100644 --- a/QuestPaths/6.x - Endwalker/Class Quests/SGE/4067_Sage's Path.json +++ b/QuestPaths/6.x - Endwalker/Class Quests/SGE/4067_Sage's Path.json @@ -12,6 +12,7 @@ "Y": 20, "Z": 85.55737 }, + "StopDistance": 5, "TerritoryId": 129, "InteractionType": "AcceptQuest", "AetheryteShortcut": "Limsa Lominsa", @@ -33,15 +34,13 @@ "Y": 42.597717, "Z": 163.7445 }, + "StopDistance": 5, "TerritoryId": 134, "InteractionType": "Interact", - "AetheryteShortcut": "Middle La Noscea - Summerford Farms", - "Fly": true, - "SkipConditions": { - "AetheryteShortcutIf": { - "InSameTerritory": true - } - } + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] Zephyr Gate (Middle La Noscea)" + ] } ] }, @@ -55,6 +54,7 @@ "Y": 42.597717, "Z": 163.7445 }, + "StopDistance": 5, "TerritoryId": 134, "InteractionType": "CompleteQuest", "AetheryteShortcut": "Middle La Noscea - Summerford Farms", diff --git a/QuestPaths/6.x - Endwalker/Class Quests/SGE/4068_Sage's Focus.json b/QuestPaths/6.x - Endwalker/Class Quests/SGE/4068_Sage's Focus.json index 38e37f323..5c731ab81 100644 --- a/QuestPaths/6.x - Endwalker/Class Quests/SGE/4068_Sage's Focus.json +++ b/QuestPaths/6.x - Endwalker/Class Quests/SGE/4068_Sage's Focus.json @@ -13,6 +13,7 @@ "Y": 42.597717, "Z": 162.65016 }, + "StopDistance": 5, "TerritoryId": 134, "AetheryteShortcut": "Middle La Noscea - Summerford Farms", "Fly": true, @@ -57,6 +58,7 @@ "Y": 42.597717, "Z": 163.7445 }, + "StopDistance": 5, "TerritoryId": 134, "InteractionType": "AcceptQuest", "AetheryteShortcut": "Middle La Noscea - Summerford Farms", @@ -79,6 +81,7 @@ "Y": 207, "Z": 49.332397 }, + "StopDistance": 5, "TerritoryId": 478, "InteractionType": "Interact", "AetheryteShortcut": "Idyllshire", @@ -100,6 +103,7 @@ "Y": 215.44214, "Z": -108.171265 }, + "StopDistance": 2, "TerritoryId": 478, "InteractionType": "Interact", "AetheryteShortcut": "Idyllshire", -- 2.45.2 From d7d5aee3e18f73154a358d114da76a68371560fa Mon Sep 17 00:00:00 2001 From: kaiser Date: Tue, 24 Sep 2024 03:36:03 +1000 Subject: [PATCH 005/448] fix: Added a step to get us back into the green room. --- .../Raid Quests/4963_Yaana's Yarn.json | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/QuestPaths/7.x - Dawntrail/Raid Quests/4963_Yaana's Yarn.json b/QuestPaths/7.x - Dawntrail/Raid Quests/4963_Yaana's Yarn.json index e890b43ee..43bd5f8dc 100644 --- a/QuestPaths/7.x - Dawntrail/Raid Quests/4963_Yaana's Yarn.json +++ b/QuestPaths/7.x - Dawntrail/Raid Quests/4963_Yaana's Yarn.json @@ -34,6 +34,33 @@ } ] }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1049787, + "Position": { + "X": 364.3396, + "Y": 60.125, + "Z": 357.1068 + }, + "TerritoryId": 1186, + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Type": "YesNo", + "ExcelSheet": "quest/049/KinGra101_04960", + "Prompt": "TEXT_KINGRA101_04960_SYSTEM_100_030", + "Yes": true + } + ], + "AethernetShortcut": [ + "[Solution Nine] True Vue", + "[Solution Nine] The Arcadion" + ] + } + ] + }, { "Sequence": 255, "Steps": [ -- 2.45.2 From c6739b3cced6c441d1246ac41835b2dcb787065f Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Wed, 25 Sep 2024 00:07:34 +0800 Subject: [PATCH 006/448] Updated the following daily quest: - Serpent's Will Be Done --- .../Dailies/3832_Serpent's Will Be Done.json | 36 +++++++++++++++++-- 1 file changed, 34 insertions(+), 2 deletions(-) diff --git a/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Dailies/3832_Serpent's Will Be Done.json b/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Dailies/3832_Serpent's Will Be Done.json index bdbb16961..bd564434b 100644 --- a/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Dailies/3832_Serpent's Will Be Done.json +++ b/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Dailies/3832_Serpent's Will Be Done.json @@ -1,7 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "liza", - "Disabled": true, + "Author": "plogon_enjoyer", "QuestSequence": [ { "Sequence": 0, @@ -18,6 +17,39 @@ } ] }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1032663, + "Position": { + "X": 793.97266, + "Y": -45.811764, + "Z": -188.03699 + }, + "TerritoryId": 817, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2010998, + "Position": { + "X": -677.0886, + "Y": 0.32037354, + "Z": 208.69751 + }, + "TerritoryId": 817, + "InteractionType": "Action", + "Action": "Peculiar Light", + "Fly": true + } + ] + }, { "Sequence": 255, "Steps": [ -- 2.45.2 From 225ffe7ba0f5369d97697a3cd4fbcb07d899f10f Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Wed, 25 Sep 2024 00:55:29 +0800 Subject: [PATCH 007/448] Added the following daily quests: - Dance Commander --- .../Dailies/2197_Dance Commander.json | 116 ++++++++++++++++++ 1 file changed, 116 insertions(+) create mode 100644 QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2197_Dance Commander.json diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2197_Dance Commander.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2197_Dance Commander.json new file mode 100644 index 000000000..bbf06ae73 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2197_Dance Commander.json @@ -0,0 +1,116 @@ +{ + "$schema": "https://git.carvel.li/plogon_enjoyer/Questionable/raw/branch/temp/QuestPaths/quest-v1.json", + "Author": "plogon_enjoyer", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1016089, + "Position": { + "X": -799.46594, + "Y": -133.2695, + "Z": -404.1352 + }, + "TerritoryId": 401, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1016088, + "Position": { + "X": -818.143, + "Y": -129.93259, + "Z": -414.02307 + }, + "TerritoryId": 401, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": 650.37317, + "Y": -41.15606, + "Z": -302.4378 + }, + "TerritoryId": 401, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 1016362, + "Position": { + "X": 647.57764, + "Y": -41.156067, + "Z": -301.47253 + }, + "TerritoryId": 401, + "InteractionType": "Emote", + "Emote": "sundropdance" + }, + { + "DataId": 1016365, + "Position": { + "X": 682.36804, + "Y": -11.396843, + "Z": -400.6256 + }, + "TerritoryId": 401, + "InteractionType": "Emote", + "Emote": "sundropdance", + "Fly": true + }, + { + "DataId": 1016364, + "Position": { + "X": 799.9846, + "Y": -11.396843, + "Z": -416.98334 + }, + "TerritoryId": 401, + "InteractionType": "Emote", + "Emote": "sundropdance", + "Fly": true + }, + { + "DataId": 1016363, + "Position": { + "X": 776.9131, + "Y": -39.97968, + "Z": -540.24567 + }, + "TerritoryId": 401, + "InteractionType": "Emote", + "Emote": "sundropdance", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1016088, + "Position": { + "X": -818.143, + "Y": -129.93259, + "Z": -414.02307 + }, + "TerritoryId": 401, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "The Sea of Clouds - Ok' Zundu", + "Fly": true + } + ] + } + ] +} -- 2.45.2 From 412a42a0a1e35676e04f612f0686ab1d051eeab5 Mon Sep 17 00:00:00 2001 From: kaiser Date: Wed, 25 Sep 2024 19:54:38 +1000 Subject: [PATCH 008/448] feat: add the /hdance emote unlock. --- .../1425_Saw That One Coming.json | 225 ++++++++++++++++++ 1 file changed, 225 insertions(+) create mode 100644 QuestPaths/2.x - A Realm Reborn/Unlocks/Emotes/Harvest Dance/1425_Saw That One Coming.json diff --git a/QuestPaths/2.x - A Realm Reborn/Unlocks/Emotes/Harvest Dance/1425_Saw That One Coming.json b/QuestPaths/2.x - A Realm Reborn/Unlocks/Emotes/Harvest Dance/1425_Saw That One Coming.json new file mode 100644 index 000000000..0ae4dcffe --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Unlocks/Emotes/Harvest Dance/1425_Saw That One Coming.json @@ -0,0 +1,225 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "kaiser", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "Position": { + "X": 54.415092, + "Y": -8.047034, + "Z": 104.69259 + }, + "TerritoryId": 132, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Gridania", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + }, + "Comment": "We have get here first just to make sure we don't run into walls." + }, + { + "Position": { + "X": 37.72773, + "Y": -8, + "Z": 104.152405 + }, + "TerritoryId": 132, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Gridania", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + }, + "Comment": "Cool now go inside" + }, + { + "DataId": 1000375, + "Position": { + "X": 42.313232, + "Y": -8, + "Z": 96.54382 + }, + "TerritoryId": 132, + "InteractionType": "AcceptQuest", + "StopDistance": 5, + "AetheryteShortcut": "Gridania", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": 40.8096, + "Y": -8, + "Z": 104.92199 + }, + "TerritoryId": 132, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Gridania", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + }, + "StepIf": { + "NearPosition": { + "Position": { + "X": -87.84625, + "Y": -3.3081923, + "Z": 41.70288 + }, + "TerritoryId": 132, + "MaximumDistance": 5 + } + } + } + }, + { + "DataId": 1007792, + "Position": { + "X": -87.84625, + "Y": -3.3081923, + "Z": 41.70288 + }, + "TerritoryId": 132, + "InteractionType": "Interact", + "StopDistance": 5, + "AetheryteShortcut": "Gridania", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + }, + "Comment": "Interact with the gal now!" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1000153, + "Position": { + "X": -44.87683, + "Y": -1.2500024, + "Z": 56.839844 + }, + "TerritoryId": 132, + "InteractionType": "Interact", + "StopDistance": 5, + "AetheryteShortcut": "Gridania", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + }, + "Comment": "Speak with the man now!" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1007795, + "Position": { + "X": 28.94629, + "Y": 8.45142, + "Z": -96.421814 + }, + "TerritoryId": 133, + "InteractionType": "Interact", + "StopDistance": 5, + "AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Leatherworkers' Guild & Shaded Bower" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + }, + "Comment": "Give the First kid his present" + }, + { + "DataId": 1007794, + "Position": { + "X": -124.864624, + "Y": 6.567382, + "Z": -120.74469 + }, + "TerritoryId": 133, + "InteractionType": "Interact", + "StopDistance": 5, + "AethernetShortcut": [ + "[Gridania] Leatherworkers' Guild & Shaded Bower", + "[Gridania] Mih Khetto's Amphitheatre" + ], + "Comment": "Give the second kid his present." + }, + { + "DataId": 1007793, + "Position": { + "X": -143.3891, + "Y": 4.123518, + "Z": -29.312622 + }, + "TerritoryId": 133, + "InteractionType": "Interact", + "StopDistance": 5, + "AethernetShortcut": [ + "[Gridania] Mih Khetto's Amphitheatre", + "[Gridania] Conjurers' Guild" + ], + "Comment": "Give the third kid his present." + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": -128.09769, + "Y": 5.6480865, + "Z": -36.499104 + }, + "TerritoryId": 133, + "InteractionType": "WalkTo" + }, + { + "DataId": 1007792, + "Position": { + "X": -87.84625, + "Y": -3.3081923, + "Z": 41.70288 + }, + "TerritoryId": 132, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Conjurers' Guild", + "[Gridania] Aetheryte Plaza" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + } + ] +} -- 2.45.2 From c60724e3672f136d4dcc40d15fa2387bb86c429d Mon Sep 17 00:00:00 2001 From: kaiser Date: Wed, 25 Sep 2024 19:56:42 +1000 Subject: [PATCH 009/448] chore: bom --- .../Unlocks/Emotes/Harvest Dance/1425_Saw That One Coming.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/QuestPaths/2.x - A Realm Reborn/Unlocks/Emotes/Harvest Dance/1425_Saw That One Coming.json b/QuestPaths/2.x - A Realm Reborn/Unlocks/Emotes/Harvest Dance/1425_Saw That One Coming.json index 0ae4dcffe..794b3e022 100644 --- a/QuestPaths/2.x - A Realm Reborn/Unlocks/Emotes/Harvest Dance/1425_Saw That One Coming.json +++ b/QuestPaths/2.x - A Realm Reborn/Unlocks/Emotes/Harvest Dance/1425_Saw That One Coming.json @@ -1,4 +1,4 @@ -{ +{ "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "kaiser", "QuestSequence": [ -- 2.45.2 From 4f6914d835f464c4cbff4e3c41a6d8d631c108a7 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Wed, 25 Sep 2024 20:07:40 +0200 Subject: [PATCH 010/448] Extend error toast handling --- .../Controller/GatheringController.cs | 2 +- Questionable/Controller/MiniTaskController.cs | 30 +++++++++++++++++-- Questionable/Controller/QuestController.cs | 24 +-------------- .../Steps/Gathering/MoveToLandingLocation.cs | 4 ++- .../Controller/Steps/Shared/Gather.cs | 11 ++++++- 5 files changed, 43 insertions(+), 28 deletions(-) diff --git a/Questionable/Controller/GatheringController.cs b/Questionable/Controller/GatheringController.cs index 4af7ede2e..8c7dedd4a 100644 --- a/Questionable/Controller/GatheringController.cs +++ b/Questionable/Controller/GatheringController.cs @@ -51,7 +51,7 @@ internal sealed unsafe class GatheringController : MiniTaskController private readonly IServiceProvider _serviceProvider; private readonly ILogger _logger; + private readonly string _actionCanceledText; + protected MiniTaskController(IChatGui chatGui, ICondition condition, IServiceProvider serviceProvider, - ILogger logger) + IDataManager dataManager, ILogger logger) { _chatGui = chatGui; _logger = logger; _serviceProvider = serviceProvider; _condition = condition; + + _actionCanceledText = dataManager.GetString(1314, x => x.Text)!; } protected virtual void UpdateCurrentTask() @@ -172,4 +180,22 @@ internal abstract class MiniTaskController foreach (ITask task in _taskQueue.RemainingTasks) _logger.LogInformation("- {TaskName}", task); } + + public void OnErrorToast(ref SeString message, ref bool isHandled) + { + if (_taskQueue.CurrentTaskExecutor is IToastAware toastAware) + { + if (toastAware.OnErrorToast(message)) + { + isHandled = true; + } + } + + if (!isHandled) + { + if (GameFunctions.GameStringEquals(_actionCanceledText, message.TextValue) && + !_condition[ConditionFlag.InFlight]) + InterruptQueueWithCombat(); + } + } } diff --git a/Questionable/Controller/QuestController.cs b/Questionable/Controller/QuestController.cs index b736de2eb..fc1734d31 100644 --- a/Questionable/Controller/QuestController.cs +++ b/Questionable/Controller/QuestController.cs @@ -43,8 +43,6 @@ internal sealed class QuestController : MiniTaskController, IDi private readonly TaskCreator _taskCreator; private readonly ILogger _logger; - private readonly string _actionCanceledText; - private readonly object _progressLock = new(); private QuestProgress? _startedQuest; @@ -84,7 +82,7 @@ internal sealed class QuestController : MiniTaskController, IDi TaskCreator taskCreator, IServiceProvider serviceProvider, IDataManager dataManager) - : base(chatGui, condition, serviceProvider, logger) + : base(chatGui, condition, serviceProvider, dataManager, logger) { _clientState = clientState; _gameFunctions = gameFunctions; @@ -105,8 +103,6 @@ internal sealed class QuestController : MiniTaskController, IDi _condition.ConditionChange += OnConditionChange; _toastGui.Toast += OnNormalToast; _toastGui.ErrorToast += OnErrorToast; - - _actionCanceledText = dataManager.GetString(1314, x => x.Text)!; } public EAutomationType AutomationType @@ -809,24 +805,6 @@ internal sealed class QuestController : MiniTaskController, IDi _gatheringController.OnNormalToast(message); } - private void OnErrorToast(ref SeString message, ref bool isHandled) - { - if (_taskQueue.CurrentTaskExecutor is IToastAware toastAware) - { - if (toastAware.OnErrorToast(message)) - { - isHandled = true; - } - } - - if (!isHandled) - { - if (GameFunctions.GameStringEquals(_actionCanceledText, message.TextValue) && - !_condition[ConditionFlag.InFlight]) - InterruptQueueWithCombat(); - } - } - public void Dispose() { _toastGui.ErrorToast -= OnErrorToast; diff --git a/Questionable/Controller/Steps/Gathering/MoveToLandingLocation.cs b/Questionable/Controller/Steps/Gathering/MoveToLandingLocation.cs index 14552c213..38fa30cd6 100644 --- a/Questionable/Controller/Steps/Gathering/MoveToLandingLocation.cs +++ b/Questionable/Controller/Steps/Gathering/MoveToLandingLocation.cs @@ -2,6 +2,7 @@ using System.Linq; using System.Numerics; using Dalamud.Game.ClientState.Objects.Enums; +using Dalamud.Game.Text.SeStringHandling; using Dalamud.Plugin.Services; using Microsoft.Extensions.Logging; using Questionable.Controller.Steps.Shared; @@ -26,7 +27,7 @@ internal static class MoveToLandingLocation MoveTo.MoveExecutor moveExecutor, GameFunctions gameFunctions, IObjectTable objectTable, - ILogger logger) : TaskExecutor + ILogger logger) : TaskExecutor, IToastAware { private ITask _moveTask = null!; @@ -57,5 +58,6 @@ internal static class MoveToLandingLocation } public override ETaskResult Update() => moveExecutor.Update(); + public bool OnErrorToast(SeString message) => moveExecutor.OnErrorToast(message); } } diff --git a/Questionable/Controller/Steps/Shared/Gather.cs b/Questionable/Controller/Steps/Shared/Gather.cs index 52229aa18..ee5c50a00 100644 --- a/Questionable/Controller/Steps/Shared/Gather.cs +++ b/Questionable/Controller/Steps/Shared/Gather.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using System.Linq; using Dalamud.Game.Text; +using Dalamud.Game.Text.SeStringHandling; using Dalamud.Plugin.Services; using FFXIVClientStructs.FFXIV.Application.Network.WorkDefinitions; using FFXIVClientStructs.FFXIV.Client.Game; @@ -124,7 +125,8 @@ internal static class Gather } } - internal sealed class StartGathering(GatheringController gatheringController) : TaskExecutor + internal sealed class StartGathering(GatheringController gatheringController) : TaskExecutor, + IToastAware { protected override bool Start() { @@ -140,6 +142,13 @@ internal static class Gather return ETaskResult.StillRunning; } + + public bool OnErrorToast(SeString message) + { + bool isHandled = false; + gatheringController.OnErrorToast(ref message, ref isHandled); + return isHandled; + } } /// -- 2.45.2 From 143fc4c836bdfd0b7eefe3e97f6d23f0f7703ea7 Mon Sep 17 00:00:00 2001 From: Stefan Belmont Date: Thu, 26 Sep 2024 01:28:52 +0100 Subject: [PATCH 011/448] first attempt, first path, et cetera --- .../Garlemald/4221_Heroes All.json | 90 +++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4221_Heroes All.json diff --git a/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4221_Heroes All.json b/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4221_Heroes All.json new file mode 100644 index 000000000..e80956459 --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4221_Heroes All.json @@ -0,0 +1,90 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "goatzone", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1037733, + "Position": { + "X": -375.14313, + "Y": 22, + "Z": 513.54236 + }, + "TerritoryId": 958, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1039396, + "Position": { + "X": -318.227, + "Y": 22.376268, + "Z": 449.45447 + }, + "TerritoryId": 958, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ], + "$": "0 0 48 0 0 0 -> 16 1 32 0 0 128" + }, + { + "DataId": 1039397, + "Position": { + "X": -317.76917, + "Y": 22, + "Z": 428.7937 + }, + "TerritoryId": 958, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ], + "$": "16 1 32 0 0 128 -> 33 1 16 0 0 192" + }, + { + "DataId": 1039398, + "Position": { + "X": -318.62366, + "Y": 22.943655, + "Z": 391.4701 + }, + "TerritoryId": 958, + "InteractionType": "Interact", + "$": "33 1 16 0 0 192 -> 0 0 0 0 0 0" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1037733, + "Position": { + "X": -375.14313, + "Y": 22, + "Z": 513.54236 + }, + "TerritoryId": 958, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} -- 2.45.2 From 72a2a4c7166e1a15724275d1e72daafb387c75a2 Mon Sep 17 00:00:00 2001 From: Stefan Belmont Date: Thu, 26 Sep 2024 03:46:18 +0100 Subject: [PATCH 012/448] second, snipe mission --- ...4_Put Your Plasma Where Your Mouth Is.json | 84 +++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4234_Put Your Plasma Where Your Mouth Is.json diff --git a/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4234_Put Your Plasma Where Your Mouth Is.json b/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4234_Put Your Plasma Where Your Mouth Is.json new file mode 100644 index 000000000..09507a070 --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4234_Put Your Plasma Where Your Mouth Is.json @@ -0,0 +1,84 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "goatzone", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1039358, + "Position": { + "X": -321.43134, + "Y": 22.377153, + "Z": 473.167 + }, + "TerritoryId": 958, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1039359, + "Position": { + "X": 486.71704, + "Y": 11.195138, + "Z": -299.36682 + }, + "TerritoryId": 958, + "InteractionType": "Interact", + "AetheryteShortcut": "Garlemald - Tertium" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2011849, + "Position": { + "X": 486.04553, + "Y": 11.154297, + "Z": -296.37604 + }, + "TerritoryId": 958, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1039359, + "Position": { + "X": 486.71704, + "Y": 11.195138, + "Z": -299.36682 + }, + "TerritoryId": 958, + "InteractionType": "Interact", + "$": "snipe instance, auto option seems to skip it" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1037729, + "Position": { + "X": -342.67188, + "Y": 22.377153, + "Z": 466.8496 + }, + "TerritoryId": 958, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Garlemald - Camp Broken Glass" + } + ] + } + ] +} -- 2.45.2 From 77c83ca5c0e5ac8209ab18eaf814eec4cee3795b Mon Sep 17 00:00:00 2001 From: Stefan Belmont Date: Thu, 26 Sep 2024 04:08:32 +0100 Subject: [PATCH 013/448] changed the snipe to InteractionType: Snipe and added a comment, would assume this still works fine but can't prove it; only thought to change after finishing the quest --- .../Garlemald/4234_Put Your Plasma Where Your Mouth Is.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4234_Put Your Plasma Where Your Mouth Is.json b/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4234_Put Your Plasma Where Your Mouth Is.json index 09507a070..b3da475f9 100644 --- a/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4234_Put Your Plasma Where Your Mouth Is.json +++ b/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4234_Put Your Plasma Where Your Mouth Is.json @@ -59,7 +59,8 @@ "Z": -299.36682 }, "TerritoryId": 958, - "InteractionType": "Interact", + "InteractionType": "Snipe", + "Comment": "they don't move very fast, one left one middle one right.", "$": "snipe instance, auto option seems to skip it" } ] -- 2.45.2 From d3226e66b0b1e3e0da58aad244bfbfad2afaa186 Mon Sep 17 00:00:00 2001 From: Stefan Belmont Date: Thu, 26 Sep 2024 04:12:28 +0100 Subject: [PATCH 014/448] no point in the dollarsign comment anymore, actually --- .../Garlemald/4234_Put Your Plasma Where Your Mouth Is.json | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4234_Put Your Plasma Where Your Mouth Is.json b/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4234_Put Your Plasma Where Your Mouth Is.json index b3da475f9..1d168c8e1 100644 --- a/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4234_Put Your Plasma Where Your Mouth Is.json +++ b/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4234_Put Your Plasma Where Your Mouth Is.json @@ -60,8 +60,7 @@ }, "TerritoryId": 958, "InteractionType": "Snipe", - "Comment": "they don't move very fast, one left one middle one right.", - "$": "snipe instance, auto option seems to skip it" + "Comment": "they don't move very fast, one left one middle one right." } ] }, -- 2.45.2 From b563a42bda974684e99806214bb68d463551fb85 Mon Sep 17 00:00:00 2001 From: Stefan Belmont Date: Thu, 26 Sep 2024 05:13:22 +0100 Subject: [PATCH 015/448] +quest --- .../4233_Mama, She Is in Rubble Deep.json | 133 ++++++++++++++++++ ...4_Put Your Plasma Where Your Mouth Is.json | 2 +- 2 files changed, 134 insertions(+), 1 deletion(-) create mode 100644 QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4233_Mama, She Is in Rubble Deep.json diff --git a/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4233_Mama, She Is in Rubble Deep.json b/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4233_Mama, She Is in Rubble Deep.json new file mode 100644 index 000000000..54100ea7e --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4233_Mama, She Is in Rubble Deep.json @@ -0,0 +1,133 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "goatzone", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1037722, + "Position": { + "X": -308.0949, + "Y": 22, + "Z": 415.3047 + }, + "TerritoryId": 958, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1039353, + "Position": { + "X": -308.00336, + "Y": 22, + "Z": 413.80933 + }, + "TerritoryId": 958, + "InteractionType": "Emote", + "Emote": "soothe" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1039353, + "Position": { + "X": -308.00336, + "Y": 22, + "Z": 413.80933 + }, + "TerritoryId": 958, + "InteractionType": "Interact", + "$": "nosprint + nomount isn't really necessary here, but it looks a little unnatural to zip forward so far and wait, methinks." + }, + { + "DataId": 1039353, + "Position": { + "X": -310.48834, + "Y": 24.947939, + "Z": 377.09357 + }, + "TerritoryId": 958, + "InteractionType": "WaitForNpcAtPosition", + "NpcWaitDistance": 1, + "Mount": false, + "Sprint": false + }, + { + "DataId": 1039353, + "Position": { + "X": -351.1446, + "Y": 7.736393, + "Z": 303.24872 + }, + "TerritoryId": 958, + "InteractionType": "WaitForNpcAtPosition", + "NpcWaitDistance": 1, + "Mount": false, + "Sprint": false + }, + { + "DataId": 1039353, + "Position": { + "X": -334.03958, + "Y": 19.434929, + "Z": 175.00089 + }, + "TerritoryId": 958, + "InteractionType": "WaitForNpcAtPosition", + "NpcWaitDistance": 1, + "Mount": false, + "Sprint": false + }, + { + "DataId": 1039353, + "Position": { + "X": -321.72916, + "Y": 18.139357, + "Z": 98.16852 + }, + "TerritoryId": 958, + "InteractionType": "WaitForNpcAtPosition", + "NpcWaitDistance": 1, + "Mount": false, + "Sprint": false + }, + { + "DataId": 1039355, + "Position": { + "X": -319.4171, + "Y": 8.981749, + "Z": -9.475891 + }, + "TerritoryId": 958, + "InteractionType": "Interact", + "Mount": false, + "Sprint": false + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1037722, + "Position": { + "X": -308.0949, + "Y": 22, + "Z": 415.3047 + }, + "TerritoryId": 958, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Garlemald - Camp Broken Glass" + } + ] + } + ] +} diff --git a/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4234_Put Your Plasma Where Your Mouth Is.json b/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4234_Put Your Plasma Where Your Mouth Is.json index 1d168c8e1..0bc0a04ad 100644 --- a/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4234_Put Your Plasma Where Your Mouth Is.json +++ b/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4234_Put Your Plasma Where Your Mouth Is.json @@ -60,7 +60,7 @@ }, "TerritoryId": 958, "InteractionType": "Snipe", - "Comment": "they don't move very fast, one left one middle one right." + "Comment": "They don't move very fast. One left, one middle, one right." } ] }, -- 2.45.2 From 228a06723117766b5ba527027baec76773c599f7 Mon Sep 17 00:00:00 2001 From: kaiser Date: Thu, 26 Sep 2024 18:20:00 +1000 Subject: [PATCH 016/448] feat: add Loporrits The Incredible machines --- .../Story/4682_The Incredible Machines.json | 147 ++++++++++++++++++ 1 file changed, 147 insertions(+) create mode 100644 QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Story/4682_The Incredible Machines.json diff --git a/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Story/4682_The Incredible Machines.json b/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Story/4682_The Incredible Machines.json new file mode 100644 index 000000000..caaaa04f2 --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Story/4682_The Incredible Machines.json @@ -0,0 +1,147 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "kaiser", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "Position": { + "X": -193.89642, + "Y": -49.19972, + "Z": -262.13477 + }, + "TerritoryId": 959, + "InteractionType": "None", + "AetheryteShortcut": "Mare Lamentorum - Bestways Burrow", + "Fly": true, + "StopDistance": 5, + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": -193.89642, + "Y": -49.19972, + "Z": -262.13477 + }, + "TerritoryId": 959, + "MaximumDistance": 100 + } + } + } + } + , + { + "DataId": 1044402, + "Position": { + "X": -193.89642, + "Y": -49.19972, + "Z": -262.13477 + }, + "TerritoryId": 959, + "InteractionType": "AcceptQuest", + "StopDistance": 5, + "Fly": true + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1044924, + "Position": { + "X": 344.625, + "Y": -168.00002, + "Z": -403.89105 + }, + "TerritoryId": 959, + "InteractionType": "Interact", + "StopDistance": 5, + "AetheryteShortcut": "Mare Lamentorum - Bestways Burrow", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1044926, + "Position": { + "X": 500.96887, + "Y": -164.43474, + "Z": -698.3902 + }, + "TerritoryId": 959, + "InteractionType": "Interact", + "StopDistance": 5, + "AetheryteShortcut": "Mare Lamentorum - Bestways Burrow", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1044928, + "Position": { + "X": -172.74744, + "Y": -49.199722, + "Z": -250.8736 + }, + "TerritoryId": 959, + "InteractionType": "Interact", + "StopDistance": 5, + "AetheryteShortcut": "Mare Lamentorum - Bestways Burrow", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "TerritoryId": 959, + "InteractionType": "Craft", + "ItemId": 38845, + "ItemCount": 2 + }, + { + "DataId": 1044928, + "Position": { + "X": -172.74744, + "Y": -49.199722, + "Z": -250.8736 + }, + "TerritoryId": 959, + "InteractionType": "CompleteQuest", + "StopDistance": 5, + "AetheryteShortcut": "Mare Lamentorum - Bestways Burrow", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + } + ] +} -- 2.45.2 From c472cf703dfa158412d0da9f970a84842f30f387 Mon Sep 17 00:00:00 2001 From: kaiser Date: Thu, 26 Sep 2024 18:37:57 +1000 Subject: [PATCH 017/448] feat: add lopporits Pitch Perfect dailies. --- .../Loporrits/Dailies/4694_Pitch Perfect.json | 76 ++++++++++++++++--- 1 file changed, 64 insertions(+), 12 deletions(-) diff --git a/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Dailies/4694_Pitch Perfect.json b/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Dailies/4694_Pitch Perfect.json index d731dcbc4..0b569942c 100644 --- a/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Dailies/4694_Pitch Perfect.json +++ b/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Dailies/4694_Pitch Perfect.json @@ -1,7 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "liza", - "Disabled": true, + "Author": "kaiser", "QuestSequence": [ { "Sequence": 0, @@ -30,20 +29,58 @@ { "Sequence": 1, "Steps": [ + { + "DataId": 1044408, + "Position": { + "X": -164.08032, + "Y": -49.199722, + "Z": -250.75159 + }, + "TerritoryId": 959, + "InteractionType": "Interact", + "StopDistance": 5, + "AetheryteShortcut": "Mare Lamentorum - Bestways Burrow", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2013257, + "Position": { + "X": -706.41644, + "Y": -140.39832, + "Z": -433.76825 + }, + "TerritoryId": 959, + "InteractionType": "Action", + "Action": "Hop-step", + "Fly": true + }, + { + "DataId": 2013256, + "Position": { + "X": -739.0097, + "Y": -139.72687, + "Z": -539.0555 + }, + "TerritoryId": 959, + "InteractionType": "Action", + "Action": "Hop-step", + "Fly": true + } ] }, { "Sequence": 255, "Steps": [ - { - "Position": { - "X": -201.42024, - "Y": -49.149708, - "Z": -273.68756 - }, - "TerritoryId": 959, - "InteractionType": "WalkTo" - }, { "DataId": 1044403, "Position": { @@ -52,7 +89,22 @@ "Z": -273.60956 }, "TerritoryId": 959, - "InteractionType": "CompleteQuest" + "InteractionType": "CompleteQuest", + "StopDistance": 5, + "AetheryteShortcut": "Mare Lamentorum - Bestways Burrow", + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": -203.5401, + "Y": -48.949707, + "Z": -273.60956 + }, + "TerritoryId": 959, + "MaximumDistance": 100 + } + } + } } ] } -- 2.45.2 From 3a1438202d4a97df10955d10f2d96a38a8fe3dbf Mon Sep 17 00:00:00 2001 From: kaiser Date: Thu, 26 Sep 2024 18:40:48 +1000 Subject: [PATCH 018/448] refactor: add landing, we need to land to use tha action. --- .../Loporrits/Dailies/4694_Pitch Perfect.json | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Dailies/4694_Pitch Perfect.json b/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Dailies/4694_Pitch Perfect.json index 0b569942c..38e7af09b 100644 --- a/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Dailies/4694_Pitch Perfect.json +++ b/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Dailies/4694_Pitch Perfect.json @@ -62,7 +62,8 @@ "TerritoryId": 959, "InteractionType": "Action", "Action": "Hop-step", - "Fly": true + "Fly": true, + "Land": true }, { "DataId": 2013256, @@ -74,7 +75,8 @@ "TerritoryId": 959, "InteractionType": "Action", "Action": "Hop-step", - "Fly": true + "Fly": true, + "Land": true } ] }, -- 2.45.2 From d5244689c90fcbebfeeda68c5814972c08514f7b Mon Sep 17 00:00:00 2001 From: kaiser Date: Thu, 26 Sep 2024 18:42:01 +1000 Subject: [PATCH 019/448] refactor: add fly, and increase the max distance. --- .../Allied Societies/Loporrits/Dailies/4694_Pitch Perfect.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Dailies/4694_Pitch Perfect.json b/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Dailies/4694_Pitch Perfect.json index 38e7af09b..8cdedf700 100644 --- a/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Dailies/4694_Pitch Perfect.json +++ b/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Dailies/4694_Pitch Perfect.json @@ -94,6 +94,7 @@ "InteractionType": "CompleteQuest", "StopDistance": 5, "AetheryteShortcut": "Mare Lamentorum - Bestways Burrow", + "Fly": true, "SkipConditions": { "AetheryteShortcutIf": { "NearPosition": { @@ -103,7 +104,7 @@ "Z": -273.60956 }, "TerritoryId": 959, - "MaximumDistance": 100 + "MaximumDistance": 200 } } } -- 2.45.2 From fcf99088a7dee13aa369790b2ed547b698a3d4cd Mon Sep 17 00:00:00 2001 From: kaiser Date: Thu, 26 Sep 2024 18:42:58 +1000 Subject: [PATCH 020/448] chore: remove BOM --- .../Allied Societies/Loporrits/Dailies/4694_Pitch Perfect.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Dailies/4694_Pitch Perfect.json b/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Dailies/4694_Pitch Perfect.json index 8cdedf700..0df5b0809 100644 --- a/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Dailies/4694_Pitch Perfect.json +++ b/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Dailies/4694_Pitch Perfect.json @@ -1,4 +1,4 @@ -{ +{ "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "kaiser", "QuestSequence": [ -- 2.45.2 From 03d69692d018a5eb798835e1e60bb9d84ac44c03 Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Thu, 26 Sep 2024 22:13:56 +0800 Subject: [PATCH 021/448] Added the following daily quests: - Smooth as Silk, Cool as Air - Gaelicat's Out of the Bag - Rotten to the Korrigan --- .../2191_Smooth as Silk, Cool as Air.json | 105 +++++++++++++++ .../2192_Gaelicat's Out of the Bag.json | 120 ++++++++++++++++++ .../Dailies/2193_Rotten to the Korrigan.json | 104 +++++++++++++++ 3 files changed, 329 insertions(+) create mode 100644 QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2191_Smooth as Silk, Cool as Air.json create mode 100644 QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2192_Gaelicat's Out of the Bag.json create mode 100644 QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2193_Rotten to the Korrigan.json diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2191_Smooth as Silk, Cool as Air.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2191_Smooth as Silk, Cool as Air.json new file mode 100644 index 000000000..e04cb159e --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2191_Smooth as Silk, Cool as Air.json @@ -0,0 +1,105 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "plogon_enjoyer", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1016089, + "Position": { + "X": -799.46594, + "Y": -133.2695, + "Z": -404.1352 + }, + "TerritoryId": 401, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1016088, + "Position": { + "X": -818.143, + "Y": -129.93259, + "Z": -414.02307 + }, + "TerritoryId": 401, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2006687, + "Position": { + "X": -553.97876, + "Y": -58.42682, + "Z": -271.10706 + }, + "TerritoryId": 401, + "InteractionType": "Interact", + "Fly": true, + "AetheryteShortcut": "The Sea of Clouds - Ok' Zundu" + }, + { + "DataId": 2006688, + "Position": { + "X": -715.1446, + "Y": -58.640503, + "Z": -342.30566 + }, + "TerritoryId": 401, + "InteractionType": "Interact", + "Fly": true + }, + { + "DataId": 2006689, + "Position": { + "X": -830.3197, + "Y": -14.358765, + "Z": -131.82275 + }, + "TerritoryId": 401, + "InteractionType": "Interact", + "Fly": true + }, + { + "DataId": 2006690, + "Position": { + "X": -857.6333, + "Y": 4.6539917, + "Z": -218.67706 + }, + "TerritoryId": 401, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [5246], + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1016088, + "Position": { + "X": -818.143, + "Y": -129.93259, + "Z": -414.02307 + }, + "TerritoryId": 401, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2192_Gaelicat's Out of the Bag.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2192_Gaelicat's Out of the Bag.json new file mode 100644 index 000000000..62988c555 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2192_Gaelicat's Out of the Bag.json @@ -0,0 +1,120 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "plogon_enjoyer", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1016089, + "Position": { + "X": -799.46594, + "Y": -133.2695, + "Z": -404.1352 + }, + "TerritoryId": 401, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1016092, + "Position": { + "X": -792.6299, + "Y": -133.32184, + "Z": -425.5589 + }, + "TerritoryId": 401, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1016375, + "Position": { + "X": -627.89355, + "Y": -149.95285, + "Z": 480.15564 + }, + "TerritoryId": 401, + "InteractionType": "UseItem", + "ItemId": 2001934, + "Fly": true, + "AetheryteShortcut": "The Sea of Clouds - Camp Cloudtop" + }, + { + "DataId": 1016232, + "Position": { + "X": -452.10956, + "Y": -187.396, + "Z": 734.18774 + }, + "TerritoryId": 401, + "InteractionType": "UseItem", + "ItemId": 2001934, + "Fly": true + }, + { + "DataId": 1016233, + "Position": { + "X": -359.823, + "Y": -184.95448, + "Z": 796.71924 + }, + "TerritoryId": 401, + "InteractionType": "UseItem", + "ItemId": 2001934, + "Fly": true + }, + { + "DataId": 1016374, + "Position": { + "X": -343.00757, + "Y": -161.8661, + "Z": 770.01587 + }, + "TerritoryId": 401, + "InteractionType": "UseItem", + "ItemId": 2001934, + "Fly": true + }, + { + "DataId": 1016231, + "Position": { + "X": -333.79114, + "Y": -184.97446, + "Z": 625.1162 + }, + "TerritoryId": 401, + "InteractionType": "UseItem", + "ItemId": 2001934, + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1016092, + "Position": { + "X": -792.6299, + "Y": -133.32184, + "Z": -425.5589 + }, + "TerritoryId": 401, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "The Sea of Clouds - Ok' Zundu", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2193_Rotten to the Korrigan.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2193_Rotten to the Korrigan.json new file mode 100644 index 000000000..0d571b1c7 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2193_Rotten to the Korrigan.json @@ -0,0 +1,104 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "plogon_enjoyer", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1016089, + "Position": { + "X": -799.46594, + "Y": -133.2695, + "Z": -404.1352 + }, + "TerritoryId": 401, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1016091, + "Position": { + "X": -804.25726, + "Y": -133.2695, + "Z": -390.89038 + }, + "TerritoryId": 401, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1016508, + "Position": { + "X": -261.8601, + "Y": -132.0669, + "Z": 388.66248 + }, + "TerritoryId": 401, + "InteractionType": "Interact", + "Fly": true, + "AetheryteShortcut": "The Sea of Clouds - Camp Cloudtop" + }, + { + "DataId": 1016235, + "Position": { + "X": -229.48047, + "Y": -129.59497, + "Z": 418.44812 + }, + "TerritoryId": 401, + "InteractionType": "Interact", + "Fly": true + }, + { + "DataId": 1016236, + "Position": { + "X": -196.2768, + "Y": -131.82275, + "Z": 333.9436 + }, + "TerritoryId": 401, + "InteractionType": "Interact", + "Fly": true + }, + { + "DataId": 1016216, + "Position": { + "X": -253.62024, + "Y": -130.38837, + "Z": 340.3219 + }, + "TerritoryId": 401, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1016091, + "Position": { + "X": -804.25726, + "Y": -133.2695, + "Z": -390.89038 + }, + "TerritoryId": 401, + "InteractionType": "CompleteQuest", + "Fly": true, + "AetheryteShortcut": "The Sea of Clouds - Ok' Zundu" + } + ] + } + ] +} -- 2.45.2 From 22b9c6f12afc1643a82ede0eea570914f1aeb2d3 Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Thu, 26 Sep 2024 22:33:17 +0800 Subject: [PATCH 022/448] Reordered steps in sequence 2 --- .../2191_Smooth as Silk, Cool as Air.json | 47 +++++++++---------- 1 file changed, 23 insertions(+), 24 deletions(-) diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2191_Smooth as Silk, Cool as Air.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2191_Smooth as Silk, Cool as Air.json index e04cb159e..4471cd3cf 100644 --- a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2191_Smooth as Silk, Cool as Air.json +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2191_Smooth as Silk, Cool as Air.json @@ -37,26 +37,16 @@ "Sequence": 2, "Steps": [ { - "DataId": 2006687, + "DataId": 2006690, "Position": { - "X": -553.97876, - "Y": -58.42682, - "Z": -271.10706 + "X": -857.6333, + "Y": 4.6539917, + "Z": -218.67706 }, "TerritoryId": 401, - "InteractionType": "Interact", - "Fly": true, - "AetheryteShortcut": "The Sea of Clouds - Ok' Zundu" - }, - { - "DataId": 2006688, - "Position": { - "X": -715.1446, - "Y": -58.640503, - "Z": -342.30566 - }, - "TerritoryId": 401, - "InteractionType": "Interact", + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [5246], "Fly": true }, { @@ -71,16 +61,25 @@ "Fly": true }, { - "DataId": 2006690, + "DataId": 2006687, "Position": { - "X": -857.6333, - "Y": 4.6539917, - "Z": -218.67706 + "X": -553.97876, + "Y": -58.42682, + "Z": -271.10706 }, "TerritoryId": 401, - "InteractionType": "Combat", - "EnemySpawnType": "AfterInteraction", - "KillEnemyDataIds": [5246], + "InteractionType": "Interact", + "Fly": true + }, + { + "DataId": 2006688, + "Position": { + "X": -715.1446, + "Y": -58.640503, + "Z": -342.30566 + }, + "TerritoryId": 401, + "InteractionType": "Interact", "Fly": true } ] -- 2.45.2 From ac5f7a4e4f19970584f23bf73e172afabe44100b Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Fri, 27 Sep 2024 00:10:33 +0800 Subject: [PATCH 023/448] Added story quest: - Celebratory Smorgasbord --- .../Story/3041_Celebratory Smorgasbord.json | 98 +++++++++++++++++++ 1 file changed, 98 insertions(+) create mode 100644 QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Story/3041_Celebratory Smorgasbord.json diff --git a/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Story/3041_Celebratory Smorgasbord.json b/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Story/3041_Celebratory Smorgasbord.json new file mode 100644 index 000000000..81c0e3ac9 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Story/3041_Celebratory Smorgasbord.json @@ -0,0 +1,98 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "plogon_enjoyer", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1024771, + "Position": { + "X": 12.008789, + "Y": 55.97821, + "Z": 237.96448 + }, + "TerritoryId": 612, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1023142, + "Position": { + "X": -642.9083, + "Y": 130.25946, + "Z": -538.29254 + }, + "TerritoryId": 612, + "InteractionType": "Interact", + "Fly": true, + "AetheryteShortcut": "Fringes - Castrum Oriens" + }, + { + "DataId": 1024937, + "Position": { + "X": 450.88867, + "Y": 114.36421, + "Z": 235.91968 + }, + "TerritoryId": 612, + "InteractionType": "Interact", + "Fly": true, + "AetheryteShortcut": "Fringes - Peering Stones" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1024952, + "Position": { + "X": 12.008789, + "Y": 55.97821, + "Z": 237.96448 + }, + "TerritoryId": 612, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1025235, + "Position": { + "X": -155.2301, + "Y": 39.096687, + "Z": 159.0448 + }, + "TerritoryId": 612, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1024952, + "Position": { + "X": 12.008789, + "Y": 55.97821, + "Z": 237.96448 + }, + "TerritoryId": 612, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} -- 2.45.2 From ad905bbd7fff3b057206502de6a6dda36a225706 Mon Sep 17 00:00:00 2001 From: Stefan Belmont Date: Thu, 26 Sep 2024 20:15:12 +0100 Subject: [PATCH 024/448] +4235, add fly to 4234 dialogue untested due to major oopsie with the force TA button : ( --- ...4_Put Your Plasma Where Your Mouth Is.json | 6 +- .../Garlemald/4235_The Hero Never Bombs.json | 128 ++++++++++++++++++ 2 files changed, 131 insertions(+), 3 deletions(-) create mode 100644 QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4235_The Hero Never Bombs.json diff --git a/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4234_Put Your Plasma Where Your Mouth Is.json b/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4234_Put Your Plasma Where Your Mouth Is.json index 0bc0a04ad..86f427054 100644 --- a/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4234_Put Your Plasma Where Your Mouth Is.json +++ b/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4234_Put Your Plasma Where Your Mouth Is.json @@ -29,7 +29,8 @@ }, "TerritoryId": 958, "InteractionType": "Interact", - "AetheryteShortcut": "Garlemald - Tertium" + "AetheryteShortcut": "Garlemald - Tertium", + "Fly": true } ] }, @@ -59,8 +60,7 @@ "Z": -299.36682 }, "TerritoryId": 958, - "InteractionType": "Snipe", - "Comment": "They don't move very fast. One left, one middle, one right." + "InteractionType": "Snipe" } ] }, diff --git a/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4235_The Hero Never Bombs.json b/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4235_The Hero Never Bombs.json new file mode 100644 index 000000000..7e337ac18 --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4235_The Hero Never Bombs.json @@ -0,0 +1,128 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "goatzone", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1037751, + "Position": { + "X": -424.15503, + "Y": 22.196602, + "Z": 423.48352 + }, + "TerritoryId": 958, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1040663, + "Position": { + "X": -318.10486, + "Y": 23.722221, + "Z": 353.93298 + }, + "TerritoryId": 958, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1040664, + "Position": { + "X": 382.22327, + "Y": 10.762111, + "Z": -713.3135 + }, + "TerritoryId": 958, + "InteractionType": "Interact", + "AetheryteShortcut": "Garlemald - Tertium", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2012052, + "Position": { + "X": 383.84058, + "Y": 11.48999, + "Z": -711.1162 + }, + "TerritoryId": 958, + "InteractionType": "UseItem", + "ItemId": 2003210, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ], + "$": "0 2 0 0 0 0 -> 17 1 0 0 0 64" + }, + { + "DataId": 2012051, + "Position": { + "X": 383.5354, + "Y": 11.306824, + "Z": -708.03394 + }, + "TerritoryId": 958, + "InteractionType": "UseItem", + "ItemId": 2003210 + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1040664, + "Position": { + "X": 382.22327, + "Y": 10.762111, + "Z": -713.3135 + }, + "TerritoryId": 958, + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_AKTKZD011_04235_Q1_000_000", + "Answer": "TEXT_AKTKZD011_04235_A1_000_001" + } + ], + "$": "" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1037751, + "Position": { + "X": -424.15503, + "Y": 22.196602, + "Z": 423.48352 + }, + "TerritoryId": 958, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Garlemald - Camp Broken Glass" + } + ] + } + ] +} -- 2.45.2 From 6bf0bd1eb97457c4e960287685866234137e9be2 Mon Sep 17 00:00:00 2001 From: Stefan Belmont Date: Thu, 26 Sep 2024 20:44:56 +0100 Subject: [PATCH 025/448] +4238 --- .../4238_A Place of Greater Safety.json | 63 +++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4238_A Place of Greater Safety.json diff --git a/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4238_A Place of Greater Safety.json b/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4238_A Place of Greater Safety.json new file mode 100644 index 000000000..f4f62bf67 --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4238_A Place of Greater Safety.json @@ -0,0 +1,63 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "goatzone", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1037755, + "Position": { + "X": -338.76556, + "Y": 22.462305, + "Z": 449.08826 + }, + "TerritoryId": 958, + "InteractionType": "AcceptQuest", + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_AKTKZD014_04238_Q1_000_000", + "Yes": true, + "$": "history's least necessary YesNo" + } + ] + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1040640, + "Position": { + "X": -239.15472, + "Y": 11.232812, + "Z": -256.61102 + }, + "TerritoryId": 958, + "InteractionType": "UseItem", + "ItemId": 2003244, + "Fly": true, + "$": "fly explicit because it walks directly into house & gets stuck otherwise." + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1037755, + "Position": { + "X": -338.76556, + "Y": 22.462305, + "Z": 449.08826 + }, + "TerritoryId": 958, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Garlemald - Camp Broken Glass" + } + ] + } + ] +} -- 2.45.2 From eeea9a66f6ec2bf6ae57cc0fe0255f45424334be Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Thu, 26 Sep 2024 22:11:05 +0200 Subject: [PATCH 026/448] Fix issues in 'Pussyfooting About' --- .../Vanu Vanu/Dailies/2172_Pussyfooting About.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2172_Pussyfooting About.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2172_Pussyfooting About.json index 0771c2924..7fd649f63 100644 --- a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2172_Pussyfooting About.json +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2172_Pussyfooting About.json @@ -1,5 +1,5 @@ { - "$schema": "https://git.carvel.li/plogon_enjoyer/Questionable/raw/branch/temp/QuestPaths/quest-v1.json", + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "plogon_enjoyer", "QuestSequence": [ { @@ -100,7 +100,7 @@ "Z": -404.1352 }, "TerritoryId": 401, - "InteractionType": "Interact", + "InteractionType": "CompleteQuest", "AetheryteShortcut": "The Sea of Clouds - Ok' Zundu", "Fly": true } -- 2.45.2 From 22949d0e327ad89276a1cef233803f82dfa97625 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Thu, 26 Sep 2024 22:50:05 +0200 Subject: [PATCH 027/448] Fix 'Bringing out the Dead' --- .../MSQ-2/B5-Western Thanalan/876_Bringing out the Dead.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/QuestPaths/2.x - A Realm Reborn/MSQ-2/B5-Western Thanalan/876_Bringing out the Dead.json b/QuestPaths/2.x - A Realm Reborn/MSQ-2/B5-Western Thanalan/876_Bringing out the Dead.json index 8db848843..6b4070d06 100644 --- a/QuestPaths/2.x - A Realm Reborn/MSQ-2/B5-Western Thanalan/876_Bringing out the Dead.json +++ b/QuestPaths/2.x - A Realm Reborn/MSQ-2/B5-Western Thanalan/876_Bringing out the Dead.json @@ -269,7 +269,8 @@ "Z": -353.6584 }, "TerritoryId": 140, - "InteractionType": "Interact" + "InteractionType": "Interact", + "DisableNavmesh": true } ] }, -- 2.45.2 From 2e7946fade99c2c88f92bab52bfb627f6b297780 Mon Sep 17 00:00:00 2001 From: Stefan Belmont Date: Fri, 27 Sep 2024 01:59:44 +0100 Subject: [PATCH 028/448] +4224 --- .../Garlemald/4224_Under Lock and Code.json | 131 ++++++++++++++++++ 1 file changed, 131 insertions(+) create mode 100644 QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4224_Under Lock and Code.json diff --git a/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4224_Under Lock and Code.json b/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4224_Under Lock and Code.json new file mode 100644 index 000000000..16c5b261d --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4224_Under Lock and Code.json @@ -0,0 +1,131 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "goatzone", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1037729, + "Position": { + "X": -342.67188, + "Y": 22.377153, + "Z": 466.8496 + }, + "TerritoryId": 958, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1039392, + "Position": { + "X": -378.4085, + "Y": 22.105467, + "Z": 535.33215 + }, + "TerritoryId": 958, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1037731, + "Position": { + "X": -356.80176, + "Y": 22, + "Z": 518.9745 + }, + "TerritoryId": 958, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + 128, + null, + null, + null, + 64 + ], + "$": "0 0 0 0 0 0 -> 0 128 0 0 0 64" + }, + { + "DataId": 1037754, + "Position": { + "X": -431.29626, + "Y": 22.278519, + "Z": 437.6134 + }, + "TerritoryId": 958, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + 64, + null, + null, + null, + 32 + ], + "$": "0 128 0 0 0 64 -> 0 192 0 0 0 96" + }, + { + "DataId": 1039393, + "Position": { + "X": -415.9762, + "Y": 21.392963, + "Z": 384.9087 + }, + "TerritoryId": 958, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + 32, + null, + null, + null, + 16 + ], + "$": "0 192 0 0 0 96 -> 0 224 0 0 0 112" + }, + { + "DataId": 1039392, + "Position": { + "X": -378.4085, + "Y": 22.105467, + "Z": 535.33215 + }, + "TerritoryId": 958, + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_AKTKZC015_04224_Q1_000_000", + "Answer": "TEXT_AKTKZC015_04224_A1_000_000" + } + ], + "$": "any answer works, but you need all 3 to continue" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1037729, + "Position": { + "X": -342.67188, + "Y": 22.377153, + "Z": 466.8496 + }, + "TerritoryId": 958, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} -- 2.45.2 From b877c5240fcb420cc7d8c859279965709cedbf39 Mon Sep 17 00:00:00 2001 From: Stefan Belmont Date: Fri, 27 Sep 2024 02:18:11 +0100 Subject: [PATCH 029/448] +4220, nixed superfluous comments --- .../Garlemald/4220_Help Me to Help You.json | 69 +++++++++++++++++++ .../Garlemald/4235_The Hero Never Bombs.json | 3 +- .../4238_A Place of Greater Safety.json | 3 +- 3 files changed, 71 insertions(+), 4 deletions(-) create mode 100644 QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4220_Help Me to Help You.json diff --git a/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4220_Help Me to Help You.json b/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4220_Help Me to Help You.json new file mode 100644 index 000000000..c9327df75 --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4220_Help Me to Help You.json @@ -0,0 +1,69 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "goatzone", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1037728, + "Position": { + "X": -369.52777, + "Y": 22.149097, + "Z": 391.95837 + }, + "TerritoryId": 958, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2012040, + "Position": { + "X": -229.14478, + "Y": 20.035034, + "Z": 319.417 + }, + "TerritoryId": 958, + "InteractionType": "Snipe", + "Comment": "Zoom in between the buildings and wait a few seconds." + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1039395, + "Position": { + "X": 83.84827, + "Y": 1.1234589, + "Z": 137.19385 + }, + "TerritoryId": 958, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1037728, + "Position": { + "X": -369.52777, + "Y": 22.149097, + "Z": 391.95837 + }, + "TerritoryId": 958, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Garlemald - Camp Broken Glass" + } + ] + } + ] +} diff --git a/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4235_The Hero Never Bombs.json b/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4235_The Hero Never Bombs.json index 7e337ac18..5ff36d18c 100644 --- a/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4235_The Hero Never Bombs.json +++ b/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4235_The Hero Never Bombs.json @@ -103,8 +103,7 @@ "Prompt": "TEXT_AKTKZD011_04235_Q1_000_000", "Answer": "TEXT_AKTKZD011_04235_A1_000_001" } - ], - "$": "" + ] } ] }, diff --git a/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4238_A Place of Greater Safety.json b/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4238_A Place of Greater Safety.json index f4f62bf67..e77a859b4 100644 --- a/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4238_A Place of Greater Safety.json +++ b/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4238_A Place of Greater Safety.json @@ -38,8 +38,7 @@ "TerritoryId": 958, "InteractionType": "UseItem", "ItemId": 2003244, - "Fly": true, - "$": "fly explicit because it walks directly into house & gets stuck otherwise." + "Fly": true } ] }, -- 2.45.2 From 1b8033322b5c5849941e22b3bc8d8a99e43f491f Mon Sep 17 00:00:00 2001 From: Stefan Belmont Date: Fri, 27 Sep 2024 02:36:44 +0100 Subject: [PATCH 030/448] +4239 --- .../4239_In the Skies above Garlemald.json | 76 +++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4239_In the Skies above Garlemald.json diff --git a/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4239_In the Skies above Garlemald.json b/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4239_In the Skies above Garlemald.json new file mode 100644 index 000000000..07a989a02 --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4239_In the Skies above Garlemald.json @@ -0,0 +1,76 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "goatzone", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1040662, + "Position": { + "X": -373.18994, + "Y": 22.268795, + "Z": 385.00024 + }, + "TerritoryId": 958, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1040642, + "Position": { + "X": 49.149292, + "Y": 0.78169787, + "Z": 90.89795 + }, + "TerritoryId": 958, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1040642, + "Position": { + "X": 49.149292, + "Y": 0.78169787, + "Z": 90.89795 + }, + "TerritoryId": 958, + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_AKTKZD015_04239_Q1_000_000", + "Yes": true + } + ], + "$": "weird quest but works fine" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1040662, + "Position": { + "X": -373.18994, + "Y": 22.268795, + "Z": 385.00024 + }, + "TerritoryId": 958, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Garlemald - Camp Broken Glass" + } + ] + } + ] +} -- 2.45.2 From 9dd7a319546e2e4dec4a2e4db8ef5228cf130da2 Mon Sep 17 00:00:00 2001 From: Stefan Belmont Date: Fri, 27 Sep 2024 03:01:38 +0100 Subject: [PATCH 031/448] +4219 --- .../4219_Your Inventory Is Not Full.json | 90 +++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4219_Your Inventory Is Not Full.json diff --git a/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4219_Your Inventory Is Not Full.json b/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4219_Your Inventory Is Not Full.json new file mode 100644 index 000000000..12e6840bb --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4219_Your Inventory Is Not Full.json @@ -0,0 +1,90 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "goatzone", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1039381, + "Position": { + "X": -437.7661, + "Y": 22.209024, + "Z": 431.937 + }, + "TerritoryId": 958, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1037733, + "Position": { + "X": -375.14313, + "Y": 22, + "Z": 513.54236 + }, + "TerritoryId": 958, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + 1, + null, + null, + null, + 128 + ], + "$": "0 0 0 0 0 0 -> 16 1 0 0 0 128" + }, + { + "DataId": 1037747, + "Position": { + "X": -314.25964, + "Y": 22.00559, + "Z": 430.47217 + }, + "TerritoryId": 958, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + 16, + null, + null, + null, + 32 + ], + "$": "16 1 0 0 0 128 -> 32 17 0 0 0 160" + }, + { + "DataId": 1037728, + "Position": { + "X": -369.52777, + "Y": 22.149097, + "Z": 391.95837 + }, + "TerritoryId": 958, + "InteractionType": "Interact", + "$": "32 17 0 0 0 160 -> 0 0 0 0 0 0" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1039381, + "Position": { + "X": -437.7661, + "Y": 22.209024, + "Z": 431.937 + }, + "TerritoryId": 958, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} -- 2.45.2 From b06eec1d5fed5d98ab1809c1399ed67df53a8470 Mon Sep 17 00:00:00 2001 From: Stefan Belmont Date: Fri, 27 Sep 2024 03:33:07 +0100 Subject: [PATCH 032/448] +4223 --- .../Garlemald/4223_Bear Baiting.json | 99 +++++++++++++++++++ 1 file changed, 99 insertions(+) create mode 100644 QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4223_Bear Baiting.json diff --git a/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4223_Bear Baiting.json b/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4223_Bear Baiting.json new file mode 100644 index 000000000..062dcd91e --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4223_Bear Baiting.json @@ -0,0 +1,99 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "goatzone", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1037751, + "Position": { + "X": -424.15503, + "Y": 22.196602, + "Z": 423.48352 + }, + "TerritoryId": 958, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2011969, + "Position": { + "X": -371.26727, + "Y": 24.979004, + "Z": 151.20166 + }, + "TerritoryId": 958, + "InteractionType": "UseItem", + "ItemId": 2003195, + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ], + "$": "0 0 48 0 0 0 -> 17 0 32 0 0 64" + }, + { + "DataId": 2011968, + "Position": { + "X": -313.92395, + "Y": 21.805054, + "Z": 147.87512 + }, + "TerritoryId": 958, + "InteractionType": "UseItem", + "ItemId": 2003195, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ], + "$": "17 0 32 0 0 64 -> 33 16 16 0 0 192" + }, + { + "DataId": 2011970, + "Position": { + "X": -375.29565, + "Y": 21.164185, + "Z": 99.47351 + }, + "TerritoryId": 958, + "InteractionType": "Combat", + "ItemId": 2003195, + "EnemySpawnType": "AfterItemUse", + "KillEnemyDataIds": [ + 14104 + ], + "$": "33 16 16 0 0 192 -> 0 0 0 0 0 0" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1037751, + "Position": { + "X": -424.15503, + "Y": 22.196602, + "Z": 423.48352 + }, + "TerritoryId": 958, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Garlemald - Camp Broken Glass" + } + ] + } + ] +} -- 2.45.2 From 50652dc0b3dfd13c733c8e97849e660a49221807 Mon Sep 17 00:00:00 2001 From: Stefan Belmont Date: Fri, 27 Sep 2024 04:23:30 +0100 Subject: [PATCH 033/448] +4237 --- .../4237_Ordnance Cleanup Committee.json | 115 ++++++++++++++++++ 1 file changed, 115 insertions(+) create mode 100644 QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4237_Ordnance Cleanup Committee.json diff --git a/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4237_Ordnance Cleanup Committee.json b/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4237_Ordnance Cleanup Committee.json new file mode 100644 index 000000000..44a0d55b8 --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4237_Ordnance Cleanup Committee.json @@ -0,0 +1,115 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "goatzone", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1037747, + "Position": { + "X": -314.25964, + "Y": 22.00559, + "Z": 430.47217 + }, + "TerritoryId": 958, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2012054, + "Position": { + "X": -156.05408, + "Y": 10.788086, + "Z": -235.40094 + }, + "TerritoryId": 958, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ], + "$.0": "0 0 0 0 0 0 -> 1 16 0 0 0 128", + "AetheryteShortcut": "Garlemald - Tertium", + "Fly": true, + "$.1": "flight path gets stuck from camp BG, not so from tertium; walkto would probably be cleaner but this seems intuitive." + }, + { + "DataId": 2012055, + "Position": { + "X": -129.83911, + "Y": 10.788086, + "Z": -270.95447 + }, + "TerritoryId": 958, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ], + "$": "1 16 0 0 0 128 -> 2 32 0 0 0 192" + }, + { + "DataId": 2012056, + "Position": { + "X": -234.6991, + "Y": 10.788086, + "Z": -367.2389 + }, + "TerritoryId": 958, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ], + "$.0": "2 32 0 0 0 192 -> 3 48 0 0 0 224", + "$.1": "fly also gets stuck here" + }, + { + "DataId": 2012057, + "Position": { + "X": -246.93683, + "Y": 16.494995, + "Z": -413.016 + }, + "TerritoryId": 958, + "InteractionType": "Interact", + "$.0": "3 48 0 0 0 224 -> 0 64 0 0 0 0", + "$.1": "no fly here, tries and fails to land on the railing: can't interact while flying" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1037747, + "Position": { + "X": -314.25964, + "Y": 22.00559, + "Z": 430.47217 + }, + "TerritoryId": 958, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Garlemald - Camp Broken Glass" + } + ] + } + ] +} -- 2.45.2 From 6e2ef0b958233156b75a2c40478c2d6e7dc72a43 Mon Sep 17 00:00:00 2001 From: Stefan Belmont Date: Fri, 27 Sep 2024 04:57:55 +0100 Subject: [PATCH 034/448] +4236 --- .../4236_Beasts of the Imperial Wild.json | 117 ++++++++++++++++++ 1 file changed, 117 insertions(+) create mode 100644 QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4236_Beasts of the Imperial Wild.json diff --git a/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4236_Beasts of the Imperial Wild.json b/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4236_Beasts of the Imperial Wild.json new file mode 100644 index 000000000..4a4dcc080 --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4236_Beasts of the Imperial Wild.json @@ -0,0 +1,117 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "goatzone", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1037741, + "Position": { + "X": -434.50067, + "Y": 22.00912, + "Z": 470.32874 + }, + "TerritoryId": 958, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1040666, + "Position": { + "X": -294.20923, + "Y": 21.732546, + "Z": 485.67932 + }, + "TerritoryId": 958, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1040667, + "Position": { + "X": 323.26233, + "Y": -9.523699, + "Z": 251.88062 + }, + "TerritoryId": 958, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2012053, + "Position": { + "X": 313.6797, + "Y": -11.978394, + "Z": 279.74353 + }, + "TerritoryId": 958, + "InteractionType": "Interact" + }, + { + "DataId": 14100, + "Position": { + "X": 302.5399, + "Y": -12.244642, + "Z": 304.46622 + }, + "TerritoryId": 958, + "InteractionType": "Combat", + "EnemySpawnType": "AfterItemUse", + "ItemId": 2003211, + "KillEnemyDataIds": [ + 14100 + ], + "$": "feel like there's a fancier way to do this but it's entirely functional" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1040667, + "Position": { + "X": 323.26233, + "Y": -9.523699, + "Z": 251.88062 + }, + "TerritoryId": 958, + "InteractionType": "Interact", + "Fly": false, + "$": "got a bit wonky on a slope here" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1037741, + "Position": { + "X": -434.50067, + "Y": 22.00912, + "Z": 470.32874 + }, + "TerritoryId": 958, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Garlemald - Camp Broken Glass" + } + ] + } + ] +} -- 2.45.2 From a3c9d64b8c1672e151086cbce37f6b010d0cb287 Mon Sep 17 00:00:00 2001 From: Stefan Belmont Date: Fri, 27 Sep 2024 08:09:07 +0100 Subject: [PATCH 035/448] +4222 --- .../Garlemald/4222_Scouting for Scouts.json | 87 +++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4222_Scouting for Scouts.json diff --git a/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4222_Scouting for Scouts.json b/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4222_Scouting for Scouts.json new file mode 100644 index 000000000..af84b2534 --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4222_Scouting for Scouts.json @@ -0,0 +1,87 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "goatzone", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1037755, + "Position": { + "X": -338.76556, + "Y": 22.462305, + "Z": 449.08826 + }, + "TerritoryId": 958, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": 147.65237, + "Y": -18.974234, + "Z": 434.61954 + }, + "TerritoryId": 958, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [ + 14105, + 14106 + ], + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1039388, + "Position": { + "X": 145.4032, + "Y": -18.974236, + "Z": 435.0193 + }, + "TerritoryId": 958, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1039387, + "Position": { + "X": 144.82336, + "Y": -18.974234, + "Z": 436.27063 + }, + "TerritoryId": 958, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1037755, + "Position": { + "X": -338.76556, + "Y": 22.462305, + "Z": 449.08826 + }, + "TerritoryId": 958, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Garlemald - Camp Broken Glass" + } + ] + } + ] +} -- 2.45.2 From 0da44c965e268f9d6f836e780da2d80f3d857631 Mon Sep 17 00:00:00 2001 From: Stefan Belmont Date: Fri, 27 Sep 2024 10:10:27 +0100 Subject: [PATCH 036/448] +4229 --- .../4229_Brick by Brick, Tank by Tank.json | 115 ++++++++++++++++++ 1 file changed, 115 insertions(+) create mode 100644 QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4229_Brick by Brick, Tank by Tank.json diff --git a/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4229_Brick by Brick, Tank by Tank.json b/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4229_Brick by Brick, Tank by Tank.json new file mode 100644 index 000000000..b9922655e --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4229_Brick by Brick, Tank by Tank.json @@ -0,0 +1,115 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "goatzone", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1037779, + "Position": { + "X": 513.7865, + "Y": -36.65, + "Z": -135.91211 + }, + "TerritoryId": 958, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1039400, + "Position": { + "X": 364.76685, + "Y": 10.8, + "Z": -308.03394 + }, + "TerritoryId": 958, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 14103 + ], + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ], + "$": "0 0 0 0 0 0 -> 16 0 16 0 0 128", + "Fly": true + }, + { + "DataId": 1040627, + "Position": { + "X": 282.00195, + "Y": 11.327993, + "Z": -365.8656 + }, + "TerritoryId": 958, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ], + "$": "16 0 16 0 0 128 -> 32 16 16 0 0 160" + }, + { + "DataId": 1040626, + "Position": { + "X": 296.4065, + "Y": 10.799999, + "Z": -387.9912 + }, + "TerritoryId": 958, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ], + "$": "32 16 16 0 0 160 -> 49 16 16 0 0 224" + }, + { + "DataId": 1040628, + "Position": { + "X": 260.8224, + "Y": 10.849999, + "Z": -456.32104 + }, + "TerritoryId": 958, + "InteractionType": "Interact", + "$": "49 16 16 0 0 224 -> 0 16 0 0 0 0" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1037779, + "Position": { + "X": 513.7865, + "Y": -36.65, + "Z": -135.91211 + }, + "TerritoryId": 958, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Garlemald - Tertium" + } + ] + } + ] +} -- 2.45.2 From 1314fc4e62d0d2b24e41e7c95577e23ab0b51a24 Mon Sep 17 00:00:00 2001 From: Stefan Belmont Date: Fri, 27 Sep 2024 10:52:41 +0100 Subject: [PATCH 037/448] +4226 --- .../Garlemald/4226_With Folded Hands.json | 54 +++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4226_With Folded Hands.json diff --git a/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4226_With Folded Hands.json b/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4226_With Folded Hands.json new file mode 100644 index 000000000..dff6a220a --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4226_With Folded Hands.json @@ -0,0 +1,54 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "goatzone", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1039399, + "Position": { + "X": 556.4812, + "Y": -40.250004, + "Z": -133.04346 + }, + "TerritoryId": 958, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 13468, + "Position": { + "X": -159.59418, + "Y": 10.8, + "Z": -468.8335 + }, + "TerritoryId": 958, + "InteractionType": "WaitForManualProgress", + "Comment": "Use item 2003202 on 13468 after \"weakening\"", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1039399, + "Position": { + "X": 556.4812, + "Y": -40.250004, + "Z": -133.04346 + }, + "TerritoryId": 958, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Garlemald - Tertium" + } + ] + } + ] +} -- 2.45.2 From d1a3b2e1e4c2a569a6e201297f1c3201cbaf7c67 Mon Sep 17 00:00:00 2001 From: Stefan Belmont Date: Fri, 27 Sep 2024 11:09:27 +0100 Subject: [PATCH 038/448] +4227 --- .../4227_A Light That Never Goes Out.json | 82 +++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4227_A Light That Never Goes Out.json diff --git a/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4227_A Light That Never Goes Out.json b/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4227_A Light That Never Goes Out.json new file mode 100644 index 000000000..55d6d41f1 --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4227_A Light That Never Goes Out.json @@ -0,0 +1,82 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "goatzone", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1037782, + "Position": { + "X": 545.2506, + "Y": -36.61608, + "Z": -230.24347 + }, + "TerritoryId": 958, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": 539.7576, + "Y": -36.65, + "Z": -237.16893 + }, + "TerritoryId": 958, + "InteractionType": "WalkTo", + "$": "tries to fly through subway car roof otherwise" + }, + { + "DataId": 2012049, + "Position": { + "X": 301.86914, + "Y": 10.788086, + "Z": -540.79504 + }, + "TerritoryId": 958, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ], + "$": "0 0 0 0 0 0 -> 16 17 0 0 0 128", + "Fly": true + }, + { + "DataId": 2012050, + "Position": { + "X": 295.49097, + "Y": 11.306824, + "Z": -500.26703 + }, + "TerritoryId": 958, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1037782, + "Position": { + "X": 545.2506, + "Y": -36.61608, + "Z": -230.24347 + }, + "TerritoryId": 958, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Garlemald - Tertium" + } + ] + } + ] +} -- 2.45.2 From 3abce26e53d70d9088be000b6b792bdf0b9d44eb Mon Sep 17 00:00:00 2001 From: Stefan Belmont Date: Fri, 27 Sep 2024 11:40:53 +0100 Subject: [PATCH 039/448] +4225 --- .../4225_And Then a Hero Comes Along.json | 115 ++++++++++++++++++ 1 file changed, 115 insertions(+) create mode 100644 QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4225_And Then a Hero Comes Along.json diff --git a/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4225_And Then a Hero Comes Along.json b/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4225_And Then a Hero Comes Along.json new file mode 100644 index 000000000..03f41e4ad --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4225_And Then a Hero Comes Along.json @@ -0,0 +1,115 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "goatzone", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1037767, + "Position": { + "X": 545.2506, + "Y": -36.61618, + "Z": -252.12488 + }, + "TerritoryId": 958, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": 541.0247, + "Y": -36.65, + "Z": -244.85428 + }, + "TerritoryId": 958, + "InteractionType": "WalkTo", + "$": "let's not get stuck on ceilings, now" + }, + { + "DataId": 2011973, + "Position": { + "X": 370.5653, + "Y": 10.788086, + "Z": -450.6447 + }, + "TerritoryId": 958, + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_AKTKZD001_04225_Q1_000_000", + "Yes": true + } + ], + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ], + "$": "0 0 0 0 0 0 -> 0 0 0 128 0 64" + }, + { + "DataId": 2011974, + "Position": { + "X": 282.39868, + "Y": 10.788086, + "Z": -323.07928 + }, + "TerritoryId": 958, + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_AKTKZD001_04225_Q2_000_000", + "Yes": true + } + ], + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ], + "$": "0 0 0 128 0 64 -> 0 0 0 192 0 96" + }, + { + "DataId": 2011972, + "Position": { + "X": 241.19922, + "Y": 11.673096, + "Z": -292.98853 + }, + "TerritoryId": 958, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1037767, + "Position": { + "X": 545.2506, + "Y": -36.61618, + "Z": -252.12488 + }, + "TerritoryId": 958, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Garlemald - Tertium" + } + ] + } + ] +} -- 2.45.2 From f8a8505036176ece25fbcac65e0ea13d71557e79 Mon Sep 17 00:00:00 2001 From: Stefan Belmont Date: Fri, 27 Sep 2024 12:46:09 +0100 Subject: [PATCH 040/448] +4231 --- .../Garlemald/4231_Some Like It Hot.json | 103 ++++++++++++++++++ 1 file changed, 103 insertions(+) create mode 100644 QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4231_Some Like It Hot.json diff --git a/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4231_Some Like It Hot.json b/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4231_Some Like It Hot.json new file mode 100644 index 000000000..48e29f164 --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4231_Some Like It Hot.json @@ -0,0 +1,103 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "goatzone", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1040646, + "Position": { + "X": 503.9292, + "Y": -36.65, + "Z": -253.07086 + }, + "TerritoryId": 958, + "InteractionType": "AcceptQuest", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_AKTKZD007_04231_Q1_000_000", + "Answer": "TEXT_AKTKZD007_04231_A1_000_001" + } + ] + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1037766, + "Position": { + "X": 545.3115, + "Y": -36.616177, + "Z": -265.00348 + }, + "TerritoryId": 958, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ], + "$": "0 0 0 0 0 0 -> 1 32 0 0 0 64" + }, + { + "DataId": 1037774, + "Position": { + "X": 518.181, + "Y": -36.65, + "Z": -212.14618 + }, + "TerritoryId": 958, + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_AKTKZD007_04231_Q2_000_100", + "Answer": "TEXT_AKTKZD007_04231_A2_000_102" + } + ], + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ], + "$": "1 32 0 0 0 64 -> 2 16 0 0 0 192" + }, + { + "DataId": 1040632, + "Position": { + "X": 537.4684, + "Y": -36.65, + "Z": -175.21942 + }, + "TerritoryId": 958, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1040646, + "Position": { + "X": 503.9292, + "Y": -36.65, + "Z": -253.07086 + }, + "TerritoryId": 958, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} -- 2.45.2 From da9284ba0820b27287f92994c9e02ccc59c276d8 Mon Sep 17 00:00:00 2001 From: Stefan Belmont Date: Fri, 27 Sep 2024 13:07:12 +0100 Subject: [PATCH 041/448] +4228 --- .../Garlemald/4228_PS I Love You.json | 59 +++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4228_PS I Love You.json diff --git a/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4228_PS I Love You.json b/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4228_PS I Love You.json new file mode 100644 index 000000000..f49961d50 --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4228_PS I Love You.json @@ -0,0 +1,59 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "goatzone", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1041911, + "Position": { + "X": 508.8424, + "Y": -3.8202174, + "Z": -352.71234 + }, + "TerritoryId": 958, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1040659, + "Position": { + "X": 514.5189, + "Y": -36.65, + "Z": -156.9696 + }, + "TerritoryId": 958, + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_AKTKZD004_04228_Q1_000_000", + "Answer": "TEXT_AKTKZD004_04228_A1_000_002" + } + ], + "$": "this is the correct option, we can skip the other two" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1037771, + "Position": { + "X": 524.28467, + "Y": -19.820217, + "Z": -298.81744 + }, + "TerritoryId": 958, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} -- 2.45.2 From 2765f11ec9fe572c54503187fb48fae50bb667bc Mon Sep 17 00:00:00 2001 From: Stefan Belmont Date: Fri, 27 Sep 2024 23:59:59 +0100 Subject: [PATCH 042/448] +4230 --- .../4230_Rest, Thy Warfare O'er.json | 95 +++++++++++++++++++ 1 file changed, 95 insertions(+) create mode 100644 QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4230_Rest, Thy Warfare O'er.json diff --git a/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4230_Rest, Thy Warfare O'er.json b/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4230_Rest, Thy Warfare O'er.json new file mode 100644 index 000000000..19aad92ee --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4230_Rest, Thy Warfare O'er.json @@ -0,0 +1,95 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "goatzone", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1040645, + "Position": { + "X": 485.2522, + "Y": 10.800001, + "Z": -456.32104 + }, + "TerritoryId": 958, + "InteractionType": "AcceptQuest", + "Fly": true + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": -340.87164, + "Y": 10.803238, + "Z": -694.511 + }, + "TerritoryId": 958, + "InteractionType": "WalkTo", + "Fly": true, + "$": "need to land on the road to avoid awkward flypathing through the burned buildings." + }, + { + "Position": { + "X": -310.5188, + "Y": 10.813947, + "Z": -720.8323 + }, + "TerritoryId": 958, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [ + 14102 + ], + "Fly": false + }, + { + "DataId": 14102, + "Position": { + "X": -313.222, + "Y": 10.821807, + "Z": -720.4852 + }, + "TerritoryId": 958, + "InteractionType": "UseItem", + "ItemId": 2003208 + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1040629, + "Position": { + "X": -310.47534, + "Y": 10.815676, + "Z": -720.2411 + }, + "TerritoryId": 958, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1040645, + "Position": { + "X": 485.2522, + "Y": 10.800001, + "Z": -456.32104 + }, + "TerritoryId": 958, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Garlemald - Tertium", + "Fly": true + } + ] + } + ] +} -- 2.45.2 From 4702fcf85a5ae951e70d25280caf1946a9fb771b Mon Sep 17 00:00:00 2001 From: Stefan Belmont Date: Sat, 28 Sep 2024 01:10:41 +0100 Subject: [PATCH 043/448] add dismount as action --- QuestPaths/quest-v1.json | 3 ++- Questionable.Model/Questing/Converter/ActionConverter.cs | 1 + Questionable.Model/Questing/EAction.cs | 6 ++++-- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/QuestPaths/quest-v1.json b/QuestPaths/quest-v1.json index 0c0661f74..163d32079 100644 --- a/QuestPaths/quest-v1.json +++ b/QuestPaths/quest-v1.json @@ -919,7 +919,8 @@ "Yellow Gulal", "Blue Gulal", "Electric Flux", - "Hop-step" + "Hop-step", + "Dismount" ] } }, diff --git a/Questionable.Model/Questing/Converter/ActionConverter.cs b/Questionable.Model/Questing/Converter/ActionConverter.cs index 32a6654fa..c178ad799 100644 --- a/Questionable.Model/Questing/Converter/ActionConverter.cs +++ b/Questionable.Model/Questing/Converter/ActionConverter.cs @@ -34,5 +34,6 @@ public sealed class ActionConverter() : EnumConverter(Values) { EAction.BlueGulal, "Blue Gulal" }, { EAction.ElectrixFlux, "Electric Flux" }, { EAction.HopStep, "Hop-step" }, + { EAction.Dismount, "Dismount" } }; } diff --git a/Questionable.Model/Questing/EAction.cs b/Questionable.Model/Questing/EAction.cs index bcc676e40..d331d80c0 100644 --- a/Questionable.Model/Questing/EAction.cs +++ b/Questionable.Model/Questing/EAction.cs @@ -14,7 +14,7 @@ public enum EAction HeavyShot = 97, Cure = 120, Cure2 = 135, - Eukrasia = 24290, + Eukrasia = 24290, Diagnosis = 24284, EukrasianDiagnosis = 24291, Esuna = 7568, @@ -35,6 +35,7 @@ public enum EAction BlueGulal = 29384, ElectrixFlux = 29718, HopStep = 31116, + Dismount = 23, CollectMiner = 240, ScourMiner = 22182, @@ -70,6 +71,7 @@ public static class EActionExtensions or EAction.YellowGulal or EAction.BlueGulal or EAction.ElectrixFlux - or EAction.HopStep; + or EAction.HopStep + or EAction.Dismount; } } -- 2.45.2 From 82e12b660e08d9e639bebc86b3eb05a065c11a73 Mon Sep 17 00:00:00 2001 From: Stefan Belmont Date: Sat, 28 Sep 2024 01:29:23 +0100 Subject: [PATCH 044/448] Revert "add dismount as action" This reverts commit 4702fcf85a5ae951e70d25280caf1946a9fb771b. --- QuestPaths/quest-v1.json | 3 +-- Questionable.Model/Questing/Converter/ActionConverter.cs | 1 - Questionable.Model/Questing/EAction.cs | 6 ++---- 3 files changed, 3 insertions(+), 7 deletions(-) diff --git a/QuestPaths/quest-v1.json b/QuestPaths/quest-v1.json index 163d32079..0c0661f74 100644 --- a/QuestPaths/quest-v1.json +++ b/QuestPaths/quest-v1.json @@ -919,8 +919,7 @@ "Yellow Gulal", "Blue Gulal", "Electric Flux", - "Hop-step", - "Dismount" + "Hop-step" ] } }, diff --git a/Questionable.Model/Questing/Converter/ActionConverter.cs b/Questionable.Model/Questing/Converter/ActionConverter.cs index c178ad799..32a6654fa 100644 --- a/Questionable.Model/Questing/Converter/ActionConverter.cs +++ b/Questionable.Model/Questing/Converter/ActionConverter.cs @@ -34,6 +34,5 @@ public sealed class ActionConverter() : EnumConverter(Values) { EAction.BlueGulal, "Blue Gulal" }, { EAction.ElectrixFlux, "Electric Flux" }, { EAction.HopStep, "Hop-step" }, - { EAction.Dismount, "Dismount" } }; } diff --git a/Questionable.Model/Questing/EAction.cs b/Questionable.Model/Questing/EAction.cs index d331d80c0..bcc676e40 100644 --- a/Questionable.Model/Questing/EAction.cs +++ b/Questionable.Model/Questing/EAction.cs @@ -14,7 +14,7 @@ public enum EAction HeavyShot = 97, Cure = 120, Cure2 = 135, - Eukrasia = 24290, + Eukrasia = 24290, Diagnosis = 24284, EukrasianDiagnosis = 24291, Esuna = 7568, @@ -35,7 +35,6 @@ public enum EAction BlueGulal = 29384, ElectrixFlux = 29718, HopStep = 31116, - Dismount = 23, CollectMiner = 240, ScourMiner = 22182, @@ -71,7 +70,6 @@ public static class EActionExtensions or EAction.YellowGulal or EAction.BlueGulal or EAction.ElectrixFlux - or EAction.HopStep - or EAction.Dismount; + or EAction.HopStep; } } -- 2.45.2 From 04d6a81c14878c40ce0bbf5c550331e86795c67a Mon Sep 17 00:00:00 2001 From: Stefan Belmont Date: Sat, 28 Sep 2024 01:57:23 +0100 Subject: [PATCH 045/448] +4499 --- .../Garlemald/4499_Camp Broken Engines.json | 61 +++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4499_Camp Broken Engines.json diff --git a/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4499_Camp Broken Engines.json b/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4499_Camp Broken Engines.json new file mode 100644 index 000000000..0001b8fc8 --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4499_Camp Broken Engines.json @@ -0,0 +1,61 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "goatzone", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1041755, + "Position": { + "X": -340.35254, + "Y": 22, + "Z": 502.037 + }, + "TerritoryId": 958, + "InteractionType": "AcceptQuest", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_AKTKZC102_04499_Q1_000_000", + "Answer": "TEXT_AKTKZC102_04499_A1_000_002" + } + ] + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2012620, + "Position": { + "X": 64.68298, + "Y": -14.358765, + "Z": 395.22388 + }, + "TerritoryId": 958, + "InteractionType": "Interact", + "Fly": true, + "$": "multi option, this one is correct so we can skip the rest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1041754, + "Position": { + "X": -340.84082, + "Y": 22, + "Z": 500.57214 + }, + "TerritoryId": 958, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Garlemald - Camp Broken Glass" + } + ] + } + ] +} -- 2.45.2 From 6d73427ab5dadd64dfc75438a89ea2592bacb614 Mon Sep 17 00:00:00 2001 From: Stefan Belmont Date: Sat, 28 Sep 2024 02:09:29 +0100 Subject: [PATCH 046/448] +4500 --- .../4500_Operation: Reactivation.json | 79 +++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4500_Operation: Reactivation.json diff --git a/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4500_Operation: Reactivation.json b/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4500_Operation: Reactivation.json new file mode 100644 index 000000000..3ee5020cb --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4500_Operation: Reactivation.json @@ -0,0 +1,79 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "goatzone", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1041755, + "Position": { + "X": -340.35254, + "Y": 22, + "Z": 502.037 + }, + "TerritoryId": 958, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1040963, + "Position": { + "X": -325.27655, + "Y": 22.462305, + "Z": 450.49194 + }, + "TerritoryId": 958, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1041760, + "Position": { + "X": 413.87048, + "Y": -18.81719, + "Z": 612.05444 + }, + "TerritoryId": 958, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 2012622, + "Position": { + "X": 413.35156, + "Y": -18.814392, + "Z": 614.43494 + }, + "TerritoryId": 958, + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_AKTKZC103_04500_Q1_000_000", + "Answer": "TEXT_AKTKZC103_04500_A1_000_001" + }, + { + "Type": "List", + "Prompt": "TEXT_AKTKZC103_04500_Q2_000_000", + "Answer": "TEXT_AKTKZC103_04500_A2_000_001" + } + ] + } + ] + } + ] +} -- 2.45.2 From 81808eda12ccc9f8269bf3a3e4d59ac859073fc6 Mon Sep 17 00:00:00 2001 From: Stefan Belmont Date: Sat, 28 Sep 2024 02:29:31 +0100 Subject: [PATCH 047/448] +4501 --- .../Garlemald/4501_Energy for All.json | 91 +++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4501_Energy for All.json diff --git a/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4501_Energy for All.json b/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4501_Energy for All.json new file mode 100644 index 000000000..c452a4ea0 --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4501_Energy for All.json @@ -0,0 +1,91 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "goatzone", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1041761, + "Position": { + "X": 414.51123, + "Y": -18.808798, + "Z": 613.1837 + }, + "TerritoryId": 958, + "InteractionType": "AcceptQuest", + "Fly": true, + "$": "you should be in range right away, but if you aren't then you might be 700 yalms away back at camp" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2012329, + "Position": { + "X": 376.82153, + "Y": -18.875488, + "Z": 512.65735 + }, + "TerritoryId": 958, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 14094, + 14095 + ], + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1041760, + "Position": { + "X": 413.87048, + "Y": -18.81719, + "Z": 612.05444 + }, + "TerritoryId": 958, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1041761, + "Position": { + "X": 414.51123, + "Y": -18.808798, + "Z": 613.1837 + }, + "TerritoryId": 958, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1040963, + "Position": { + "X": -325.27655, + "Y": 22.462305, + "Z": 450.49194 + }, + "TerritoryId": 958, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Garlemald - Camp Broken Glass" + } + ] + } + ] +} -- 2.45.2 From 93c56c050b51c2bc21a2017ec8bbc1064ec20d83 Mon Sep 17 00:00:00 2001 From: Stefan Belmont Date: Sat, 28 Sep 2024 03:36:53 +0100 Subject: [PATCH 048/448] +4503 --- .../Garlemald/4503_Longing for Home.json | 91 +++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4503_Longing for Home.json diff --git a/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4503_Longing for Home.json b/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4503_Longing for Home.json new file mode 100644 index 000000000..60c26c491 --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4503_Longing for Home.json @@ -0,0 +1,91 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "goatzone", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1041767, + "Position": { + "X": 541.03906, + "Y": -36.65, + "Z": -132.46362 + }, + "TerritoryId": 958, + "InteractionType": "AcceptQuest", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_AKTKZD102_04503_Q1_000_000", + "Answer": "TEXT_AKTKZD102_04503_A1_000_001" + } + ] + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1041769, + "Position": { + "X": 215.198, + "Y": 10.8, + "Z": -104.509094 + }, + "TerritoryId": 958, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2012623, + "Position": { + "X": 168.26111, + "Y": 11.36792, + "Z": -102.92212 + }, + "TerritoryId": 958, + "InteractionType": "Interact", + "$": "can skip other interactables" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1041769, + "Position": { + "X": 215.198, + "Y": 10.8, + "Z": -104.509094 + }, + "TerritoryId": 958, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1041767, + "Position": { + "X": 541.03906, + "Y": -36.65, + "Z": -132.46362 + }, + "TerritoryId": 958, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Garlemald - Tertium" + } + ] + } + ] +} -- 2.45.2 From cd2070bb631dcb364b4993ff508e813bb70b5a45 Mon Sep 17 00:00:00 2001 From: Stefan Belmont Date: Sat, 28 Sep 2024 04:05:07 +0100 Subject: [PATCH 049/448] +4504 --- .../4504_Palatial Possibilities.json | 85 +++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4504_Palatial Possibilities.json diff --git a/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4504_Palatial Possibilities.json b/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4504_Palatial Possibilities.json new file mode 100644 index 000000000..47cf187fe --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4504_Palatial Possibilities.json @@ -0,0 +1,85 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "goatzone", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1041768, + "Position": { + "X": 539.9404, + "Y": -36.65, + "Z": -132.37207 + }, + "TerritoryId": 958, + "InteractionType": "AcceptQuest", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_AKTKZD103_04504_Q1_000_000", + "Answer": "TEXT_AKTKZD103_04504_A1_000_001" + } + ] + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1041770, + "Position": { + "X": 157.30518, + "Y": 23.164677, + "Z": -415.36584 + }, + "TerritoryId": 958, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2012331, + "Position": { + "X": 150.89636, + "Y": 23.147888, + "Z": -414.9386 + }, + "TerritoryId": 958, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 14092 + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 2012629, + "Position": { + "X": 155.74878, + "Y": 23.147888, + "Z": -414.29773 + }, + "TerritoryId": 958, + "InteractionType": "CompleteQuest", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_AKTKZD103_04504_Q2_000_000", + "Answer": "TEXT_AKTKZD103_04504_A2_000_001" + } + ] + } + ] + } + ] +} -- 2.45.2 From 54193662d14588fc9b8392b9a8bb4e3adf7d638b Mon Sep 17 00:00:00 2001 From: Stefan Belmont Date: Sat, 28 Sep 2024 04:28:29 +0100 Subject: [PATCH 050/448] +4505, fix InteractionType on 4500 --- .../4500_Operation: Reactivation.json | 2 +- .../Garlemald/4505_Mum Is the Word.json | 94 +++++++++++++++++++ 2 files changed, 95 insertions(+), 1 deletion(-) create mode 100644 QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4505_Mum Is the Word.json diff --git a/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4500_Operation: Reactivation.json b/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4500_Operation: Reactivation.json index 3ee5020cb..1332dffdf 100644 --- a/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4500_Operation: Reactivation.json +++ b/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4500_Operation: Reactivation.json @@ -59,7 +59,7 @@ "Z": 614.43494 }, "TerritoryId": 958, - "InteractionType": "Interact", + "InteractionType": "CompleteQuest", "DialogueChoices": [ { "Type": "List", diff --git a/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4505_Mum Is the Word.json b/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4505_Mum Is the Word.json new file mode 100644 index 000000000..a9ceee1b7 --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4505_Mum Is the Word.json @@ -0,0 +1,94 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "goatzone", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1041770, + "Position": { + "X": 157.30518, + "Y": 23.164677, + "Z": -415.36584 + }, + "TerritoryId": 958, + "InteractionType": "AcceptQuest", + "Fly": true, + "$": "you should be right next to it, but if you aren't..." + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1041771, + "Position": { + "X": -157.67151, + "Y": 10.8, + "Z": -530.6325 + }, + "TerritoryId": 958, + "InteractionType": "Interact", + "Fly": true, + "$": "there's an underpass flypathing that /looks/ like it should get stuck, but doesn't. not sure if WoL size and/or mount would make it stuck; YMMV" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1041773, + "Position": { + "X": -78.446655, + "Y": 10.5, + "Z": -590.08167 + }, + "TerritoryId": 958, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1041774, + "Position": { + "X": -44.815796, + "Y": 10.8, + "Z": -614.40454 + }, + "TerritoryId": 958, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1041767, + "Position": { + "X": 541.03906, + "Y": -36.65, + "Z": -132.46362 + }, + "TerritoryId": 958, + "InteractionType": "CompleteQuest", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_AKTKZD104_04505_Q1_000_000", + "Answer": "TEXT_AKTKZD104_04505_A1_000_002" + } + ], + "AetheryteShortcut": "Garlemald - Tertium" + } + ] + } + ] +} -- 2.45.2 From 671ad2c54e683b5785cd1d706c0ade5f42238f67 Mon Sep 17 00:00:00 2001 From: Stefan Belmont Date: Sat, 28 Sep 2024 05:07:22 +0100 Subject: [PATCH 051/448] +4506! --- .../Garlemald/4506_Who Is Your Daddy.json | 141 ++++++++++++++++++ 1 file changed, 141 insertions(+) create mode 100644 QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4506_Who Is Your Daddy.json diff --git a/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4506_Who Is Your Daddy.json b/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4506_Who Is Your Daddy.json new file mode 100644 index 000000000..63c4f8dff --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4506_Who Is Your Daddy.json @@ -0,0 +1,141 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "goatzone", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1041776, + "Position": { + "X": 541.89355, + "Y": -36.65, + "Z": -132.64673 + }, + "TerritoryId": 958, + "InteractionType": "AcceptQuest", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_AKTKZD201_04506_Q1_000_000", + "Answer": "TEXT_AKTKZD201_04506_A1_000_002" + } + ] + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1041754, + "Position": { + "X": -340.84082, + "Y": 22, + "Z": 500.57214 + }, + "TerritoryId": 958, + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_AKTKZD201_04506_Q2_000_000", + "Answer": "TEXT_AKTKZD201_04506_A2_000_002" + } + ], + "AetheryteShortcut": "Garlemald - Camp Broken Glass" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1041778, + "Position": { + "X": -322.10272, + "Y": 10.85, + "Z": -576.04333 + }, + "TerritoryId": 958, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2012746, + "Position": { + "X": -580.6211, + "Y": 10.482849, + "Z": -721.18713 + }, + "TerritoryId": 958, + "InteractionType": "Interact", + "Fly": true, + "$": "other destination is a decoy, can skip" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "Position": { + "X": -276.31705, + "Y": 10.799999, + "Z": -592.71124 + }, + "TerritoryId": 958, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [ + 14091 + ], + "Fly": true + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1041782, + "Position": { + "X": -274.0063, + "Y": 10.8, + "Z": -590.41736 + }, + "TerritoryId": 958, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1041784, + "Position": { + "X": -342.67188, + "Y": 22, + "Z": 499.07666 + }, + "TerritoryId": 958, + "InteractionType": "CompleteQuest", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_AKTKZD201_04506_Q3_000_000", + "Answer": "TEXT_AKTKZD201_04506_A3_000_002" + } + ], + "AetheryteShortcut": "Garlemald - Camp Broken Glass" + } + ] + } + ] +} -- 2.45.2 From b082e8ae42f9285a088c4f328ed1d622a27c2df7 Mon Sep 17 00:00:00 2001 From: Stefan Belmont Date: Sat, 28 Sep 2024 05:40:05 +0100 Subject: [PATCH 052/448] +4217 --- .../Garlemald/4217_Armored Up.json | 101 ++++++++++++++++++ 1 file changed, 101 insertions(+) create mode 100644 QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4217_Armored Up.json diff --git a/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4217_Armored Up.json b/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4217_Armored Up.json new file mode 100644 index 000000000..3d25099e6 --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4217_Armored Up.json @@ -0,0 +1,101 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "goatzone", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1041122, + "Position": { + "X": 134.844, + "Y": -13.286316, + "Z": 649.8054 + }, + "TerritoryId": 958, + "InteractionType": "AcceptQuest", + "Fly": true, + "$": "this thing starts out in the boonies" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1041119, + "Position": { + "X": 135.85095, + "Y": -17.135998, + "Z": 567.8645 + }, + "TerritoryId": 958, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": 73.64728, + "Y": -18.777306, + "Z": 527.2946 + }, + "TerritoryId": 958, + "InteractionType": "WaitForManualProgress", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ], + "Comment": "Use the mount's abilities to kill the drones.", + "$.0": "0 0 0 0 0 0 -> 16 64 0 0 0 128", + "$.1": "can't find any currently extant method of automating this - could add the actions, but it's combat with the actions specifically, repeat use on targets" + }, + { + "Position": { + "X": 370.17212, + "Y": -18.937208, + "Z": 338.0957 + }, + "TerritoryId": 958, + "InteractionType": "WaitForManualProgress", + "Comment": "Use the mount's abilities to kill the drones." + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": 370.17212, + "Y": -18.937208, + "Z": 338.0957 + }, + "TerritoryId": 958, + "InteractionType": "Action", + "Action": "Dismount", + "$": "need to dismount explicitly or it blocks quest turnin, gets mad at you for not using the pet hotbar action. if we do it now, we can fly to turnin, big speedup" + }, + { + "DataId": 1041119, + "Position": { + "X": 135.85095, + "Y": -17.135998, + "Z": 567.8645 + }, + "TerritoryId": 958, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} -- 2.45.2 From b41d47a16238dd56b716f60d74e6264df28afb11 Mon Sep 17 00:00:00 2001 From: Stefan Belmont Date: Sat, 28 Sep 2024 05:53:25 +0100 Subject: [PATCH 053/448] Action: Dismount --- QuestPaths/quest-v1.json | 3 ++- Questionable.Model/Questing/Converter/ActionConverter.cs | 1 + Questionable.Model/Questing/EAction.cs | 6 ++++-- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/QuestPaths/quest-v1.json b/QuestPaths/quest-v1.json index 0c0661f74..163d32079 100644 --- a/QuestPaths/quest-v1.json +++ b/QuestPaths/quest-v1.json @@ -919,7 +919,8 @@ "Yellow Gulal", "Blue Gulal", "Electric Flux", - "Hop-step" + "Hop-step", + "Dismount" ] } }, diff --git a/Questionable.Model/Questing/Converter/ActionConverter.cs b/Questionable.Model/Questing/Converter/ActionConverter.cs index 32a6654fa..fba2b1698 100644 --- a/Questionable.Model/Questing/Converter/ActionConverter.cs +++ b/Questionable.Model/Questing/Converter/ActionConverter.cs @@ -34,5 +34,6 @@ public sealed class ActionConverter() : EnumConverter(Values) { EAction.BlueGulal, "Blue Gulal" }, { EAction.ElectrixFlux, "Electric Flux" }, { EAction.HopStep, "Hop-step" }, + { EAction.Dismount, "Dismount" }, }; } diff --git a/Questionable.Model/Questing/EAction.cs b/Questionable.Model/Questing/EAction.cs index bcc676e40..d331d80c0 100644 --- a/Questionable.Model/Questing/EAction.cs +++ b/Questionable.Model/Questing/EAction.cs @@ -14,7 +14,7 @@ public enum EAction HeavyShot = 97, Cure = 120, Cure2 = 135, - Eukrasia = 24290, + Eukrasia = 24290, Diagnosis = 24284, EukrasianDiagnosis = 24291, Esuna = 7568, @@ -35,6 +35,7 @@ public enum EAction BlueGulal = 29384, ElectrixFlux = 29718, HopStep = 31116, + Dismount = 23, CollectMiner = 240, ScourMiner = 22182, @@ -70,6 +71,7 @@ public static class EActionExtensions or EAction.YellowGulal or EAction.BlueGulal or EAction.ElectrixFlux - or EAction.HopStep; + or EAction.HopStep + or EAction.Dismount; } } -- 2.45.2 From 77d1e27d452258321cf5dea4a004384884917a2e Mon Sep 17 00:00:00 2001 From: Stefan Belmont Date: Sat, 28 Sep 2024 06:10:25 +0100 Subject: [PATCH 054/448] forgot 4218... --- .../Garlemald/4218_A Dream of Home.json | 94 +++++++++++++++++++ 1 file changed, 94 insertions(+) create mode 100644 QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4218_A Dream of Home.json diff --git a/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4218_A Dream of Home.json b/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4218_A Dream of Home.json new file mode 100644 index 000000000..281b1eece --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4218_A Dream of Home.json @@ -0,0 +1,94 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "goatzone", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1041119, + "Position": { + "X": 135.85095, + "Y": -17.135998, + "Z": 567.8645 + }, + "TerritoryId": 958, + "InteractionType": "AcceptQuest", + "Fly": true, + "$": "again, if you happen to be at an aetheryte, very far without flyspeed" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1041121, + "Position": { + "X": 208.51453, + "Y": 4.706692, + "Z": 77.77527 + }, + "TerritoryId": 958, + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_AKTKZC009_04218_Q1_000_000", + "Answer": "TEXT_AKTKZC009_04218_A1_000_001" + } + ], + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2012474, + "Position": { + "X": 210.28455, + "Y": 5.355835, + "Z": 76.76807 + }, + "TerritoryId": 958, + "InteractionType": "Emote", + "Emote": "pray" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1042180, + "Position": { + "X": 127.06189, + "Y": -13.29479, + "Z": 650.8429 + }, + "TerritoryId": 958, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1040898, + "Position": { + "X": -433.12738, + "Y": 22.221891, + "Z": 460.80713 + }, + "TerritoryId": 958, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Garlemald - Camp Broken Glass" + } + ] + } + ] +} -- 2.45.2 From d4ae5f95b25942b84f76e56381c5dd522d6dab07 Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Sat, 28 Sep 2024 16:12:33 +0800 Subject: [PATCH 055/448] Added new daily quests: - Shady Premonitions - Pestered Ancestors --- .../Dailies/2189_Shady Premonitions.json | 138 ++++++++++++++++++ .../Dailies/2190_Pestered Ancestors.json | 86 +++++++++++ 2 files changed, 224 insertions(+) create mode 100644 QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2189_Shady Premonitions.json create mode 100644 QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2190_Pestered Ancestors.json diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2189_Shady Premonitions.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2189_Shady Premonitions.json new file mode 100644 index 000000000..3f662fcbb --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2189_Shady Premonitions.json @@ -0,0 +1,138 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "plogon_enjoyer", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1016089, + "Position": { + "X": -799.46594, + "Y": -133.2695, + "Z": -404.1352 + }, + "TerritoryId": 401, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1016088, + "Position": { + "X": -818.143, + "Y": -129.93259, + "Z": -414.02307 + }, + "TerritoryId": 401, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1016228, + "Position": { + "X": -547.7836, + "Y": -57.646603, + "Z": -549.76733 + }, + "TerritoryId": 401, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2006684, + "Position": { + "X": -357.29004, + "Y": -56.565247, + "Z": -598.9929 + }, + "TerritoryId": 401, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [5243], + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1016229, + "Position": { + "X": -369.31415, + "Y": -54.222214, + "Z": -605.3407 + }, + "TerritoryId": 401, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 2006685, + "Position": { + "X": -107.07257, + "Y": -13.5043335, + "Z": -655.6039 + }, + "TerritoryId": 401, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [5243], + "Fly": true + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1016230, + "Position": { + "X": -114.85474, + "Y": -13.978999, + "Z": -652.8878 + }, + "TerritoryId": 401, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1016088, + "Position": { + "X": -818.143, + "Y": -129.93259, + "Z": -414.02307 + }, + "TerritoryId": 401, + "InteractionType": "CompleteQuest", + "Fly": true, + "AetheryteShortcut": "The Sea of Clouds - Ok' Zundu" + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2190_Pestered Ancestors.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2190_Pestered Ancestors.json new file mode 100644 index 000000000..b41fc640d --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2190_Pestered Ancestors.json @@ -0,0 +1,86 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "plogon_enjoyer", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1016089, + "Position": { + "X": -799.46594, + "Y": -133.2695, + "Z": -404.1352 + }, + "TerritoryId": 401, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1016088, + "Position": { + "X": -818.143, + "Y": -129.93259, + "Z": -414.02307 + }, + "TerritoryId": 401, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2006707, + "Position": { + "X": 72.92273, + "Y": -88.39557, + "Z": 428.82422 + }, + "TerritoryId": 401, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [5244], + "Fly": true, + "AetheryteShortcut": "The Sea of Clouds - Camp Cloudtop" + }, + { + "DataId": 2006686, + "Position": { + "X": 167.58984, + "Y": -97.428955, + "Z": 455.71057 + }, + "TerritoryId": 401, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [5244], + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1016088, + "Position": { + "X": -818.143, + "Y": -129.93259, + "Z": -414.02307 + }, + "TerritoryId": 401, + "InteractionType": "CompleteQuest", + "Fly": true, + "AetheryteShortcut": "The Sea of Clouds - Ok' Zundu" + } + ] + } + ] +} -- 2.45.2 From 38f5cd66cdce01880ad3cdd020a8e425b1c025c1 Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Sat, 28 Sep 2024 16:13:16 +0800 Subject: [PATCH 056/448] Updated "A Hut to Dye For". Added step to run away from spawned enemy to be able to TP away, since defeating it is not required to proceed. --- .../Vanu Vanu/Dailies/2188_A Hut to Dye For.json | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2188_A Hut to Dye For.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2188_A Hut to Dye For.json index 484d98342..935cc0a3d 100644 --- a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2188_A Hut to Dye For.json +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2188_A Hut to Dye For.json @@ -84,6 +84,16 @@ { "Sequence": 255, "Steps": [ + { + "Position": { + "X": 317.41415, + "Y": 110.85538, + "Z": -34.527588 + }, + "TerritoryId": 401, + "InteractionType": "WalkTo", + "$": "Run away from the enemy to TP" + }, { "DataId": 1016092, "Position": { -- 2.45.2 From 90b543c95ad84e9512747d4dbc80febe04666994 Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Sat, 28 Sep 2024 17:11:30 +0800 Subject: [PATCH 057/448] Added new daily quests: - A Shell to Scry On - Losing One's Tempered - Blitzing the Beacons --- .../Dailies/1222_A Shell to Scry On.json | 76 ++++++++++++ .../Dailies/1228_Losing One's Tempered.json | 114 ++++++++++++++++++ .../Dailies/1231_Blitzing the Beacons.json | 68 +++++++++++ 3 files changed, 258 insertions(+) create mode 100644 QuestPaths/2.x - A Realm Reborn/Allied Societies/Amalj'aa/Dailies/1222_A Shell to Scry On.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Allied Societies/Amalj'aa/Dailies/1228_Losing One's Tempered.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Allied Societies/Amalj'aa/Dailies/1231_Blitzing the Beacons.json diff --git a/QuestPaths/2.x - A Realm Reborn/Allied Societies/Amalj'aa/Dailies/1222_A Shell to Scry On.json b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Amalj'aa/Dailies/1222_A Shell to Scry On.json new file mode 100644 index 000000000..afc10e117 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Amalj'aa/Dailies/1222_A Shell to Scry On.json @@ -0,0 +1,76 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "plogon_enjoyer", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1005550, + "Position": { + "X": 105.27197, + "Y": 15.359643, + "Z": -357.3816 + }, + "TerritoryId": 146, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": -84.12953, + "Y": -14.744684, + "Z": -148.0814 + }, + "TerritoryId": 146, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "ComplexCombatData": [ + { + "DataId": 134, + "MinimumKillCount": 2 + } + ], + "Fly": true + }, + { + "Position": { + "X": -253.56975, + "Y": 6.8785334, + "Z": 162.0949 + }, + "TerritoryId": 146, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "ComplexCombatData": [ + { + "DataId": 358, + "MinimumKillCount": 1 + } + ], + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1005550, + "Position": { + "X": 105.27197, + "Y": 15.359643, + "Z": -357.3816 + }, + "TerritoryId": 146, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Allied Societies/Amalj'aa/Dailies/1228_Losing One's Tempered.json b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Amalj'aa/Dailies/1228_Losing One's Tempered.json new file mode 100644 index 000000000..a7c09b47f --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Amalj'aa/Dailies/1228_Losing One's Tempered.json @@ -0,0 +1,114 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "plogon_enjoyer", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1005550, + "Position": { + "X": 105.27197, + "Y": 15.359643, + "Z": -357.3816 + }, + "TerritoryId": 146, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2003169, + "Position": { + "X": -191.18036, + "Y": 3.6774292, + "Z": -162.00513 + }, + "TerritoryId": 146, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [80], + "Fly": true + }, + { + "DataId": 80, + "Position": { + "X": -198.6194, + "Y": 4.4395595, + "Z": -156.7357 + }, + "TerritoryId": 146, + "InteractionType": "UseItem", + "ItemId": 2001191 + }, + { + "DataId": 2003168, + "Position": { + "X": -155.44366, + "Y": 3.8604736, + "Z": -132.21948 + }, + "TerritoryId": 146, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [80], + "Fly": true + }, + { + "DataId": 80, + "Position": { + "X": -159.83832, + "Y": 4.2440715, + "Z": -136.43097 + }, + "TerritoryId": 146, + "InteractionType": "UseItem", + "ItemId": 2001191 + }, + { + "DataId": 2003172, + "Position": { + "X": -19.36377, + "Y": 0.47296143, + "Z": 15.182739 + }, + "TerritoryId": 146, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [80], + "Fly": true + }, + { + "DataId": 81, + "Position": { + "X": -19.760498, + "Y": 0.97421986, + "Z": 19.790894 + }, + "TerritoryId": 146, + "InteractionType": "UseItem", + "ItemId": 2001191 + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1005550, + "Position": { + "X": 105.27197, + "Y": 15.359643, + "Z": -357.3816 + }, + "TerritoryId": 146, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Allied Societies/Amalj'aa/Dailies/1231_Blitzing the Beacons.json b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Amalj'aa/Dailies/1231_Blitzing the Beacons.json new file mode 100644 index 000000000..232222cb2 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Amalj'aa/Dailies/1231_Blitzing the Beacons.json @@ -0,0 +1,68 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "plogon_enjoyer", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1005550, + "Position": { + "X": 105.27197, + "Y": 15.359643, + "Z": -357.3816 + }, + "TerritoryId": 146, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": -9.631764, + "Y": 4.530592, + "Z": -52.115612 + }, + "TerritoryId": 146, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "ComplexCombatData": [ + { + "DataId": 2452, + "MinimumKillCount": 2 + } + ], + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": -74.8761, + "Y": -1.9533517, + "Z": -51.731575 + }, + "TerritoryId": 146, + "InteractionType": "WalkTo" + }, + { + "DataId": 1005550, + "Position": { + "X": 105.27197, + "Y": 15.359643, + "Z": -357.3816 + }, + "TerritoryId": 146, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} -- 2.45.2 From 79c52cf45dbf9477a13d683bb5b9aabe784e5699 Mon Sep 17 00:00:00 2001 From: Stefan Belmont Date: Sat, 28 Sep 2024 10:28:48 +0100 Subject: [PATCH 058/448] Revert "Action: Dismount" (again) This reverts commit b41d47a16238dd56b716f60d74e6264df28afb11. --- QuestPaths/quest-v1.json | 3 +-- Questionable.Model/Questing/Converter/ActionConverter.cs | 1 - Questionable.Model/Questing/EAction.cs | 6 ++---- 3 files changed, 3 insertions(+), 7 deletions(-) diff --git a/QuestPaths/quest-v1.json b/QuestPaths/quest-v1.json index 163d32079..0c0661f74 100644 --- a/QuestPaths/quest-v1.json +++ b/QuestPaths/quest-v1.json @@ -919,8 +919,7 @@ "Yellow Gulal", "Blue Gulal", "Electric Flux", - "Hop-step", - "Dismount" + "Hop-step" ] } }, diff --git a/Questionable.Model/Questing/Converter/ActionConverter.cs b/Questionable.Model/Questing/Converter/ActionConverter.cs index fba2b1698..32a6654fa 100644 --- a/Questionable.Model/Questing/Converter/ActionConverter.cs +++ b/Questionable.Model/Questing/Converter/ActionConverter.cs @@ -34,6 +34,5 @@ public sealed class ActionConverter() : EnumConverter(Values) { EAction.BlueGulal, "Blue Gulal" }, { EAction.ElectrixFlux, "Electric Flux" }, { EAction.HopStep, "Hop-step" }, - { EAction.Dismount, "Dismount" }, }; } diff --git a/Questionable.Model/Questing/EAction.cs b/Questionable.Model/Questing/EAction.cs index d331d80c0..bcc676e40 100644 --- a/Questionable.Model/Questing/EAction.cs +++ b/Questionable.Model/Questing/EAction.cs @@ -14,7 +14,7 @@ public enum EAction HeavyShot = 97, Cure = 120, Cure2 = 135, - Eukrasia = 24290, + Eukrasia = 24290, Diagnosis = 24284, EukrasianDiagnosis = 24291, Esuna = 7568, @@ -35,7 +35,6 @@ public enum EAction BlueGulal = 29384, ElectrixFlux = 29718, HopStep = 31116, - Dismount = 23, CollectMiner = 240, ScourMiner = 22182, @@ -71,7 +70,6 @@ public static class EActionExtensions or EAction.YellowGulal or EAction.BlueGulal or EAction.ElectrixFlux - or EAction.HopStep - or EAction.Dismount; + or EAction.HopStep; } } -- 2.45.2 From 3c2d29df1cdc1752e507c51ea3623d3e722c0f07 Mon Sep 17 00:00:00 2001 From: Stefan Belmont Date: Sat, 28 Sep 2024 10:33:21 +0100 Subject: [PATCH 059/448] re-do unmount in 4217 --- .../Side Quests/Garlemald/4217_Armored Up.json | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4217_Armored Up.json b/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4217_Armored Up.json index 3d25099e6..b9a1da6a9 100644 --- a/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4217_Armored Up.json +++ b/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4217_Armored Up.json @@ -74,15 +74,9 @@ "Sequence": 255, "Steps": [ { - "Position": { - "X": 370.17212, - "Y": -18.937208, - "Z": 338.0957 - }, "TerritoryId": 958, - "InteractionType": "Action", - "Action": "Dismount", - "$": "need to dismount explicitly or it blocks quest turnin, gets mad at you for not using the pet hotbar action. if we do it now, we can fly to turnin, big speedup" + "InteractionType": "None", + "Mount": false }, { "DataId": 1041119, -- 2.45.2 From 619b5431d5b9459df644db4652bafecaee0c916a Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sat, 28 Sep 2024 15:47:48 +0200 Subject: [PATCH 060/448] Skip loading unknown quests (e.g. for CN) shipped with the plugin --- Questionable/Controller/QuestRegistry.cs | 27 +++++++++++++++--------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/Questionable/Controller/QuestRegistry.cs b/Questionable/Controller/QuestRegistry.cs index 502630519..724acaf4c 100644 --- a/Questionable/Controller/QuestRegistry.cs +++ b/Questionable/Controller/QuestRegistry.cs @@ -92,17 +92,24 @@ internal sealed class QuestRegistry foreach ((ElementId questId, QuestRoot questRoot) in AssemblyQuestLoader.GetQuests()) { - var questInfo = _questData.GetQuestInfo(questId); - if (questInfo is LeveInfo leveInfo) - _leveData.AddQuestSteps(leveInfo, questRoot); - Quest quest = new() + try { - Id = questId, - Root = questRoot, - Info = questInfo, - Source = Quest.ESource.Assembly, - }; - _quests[quest.Id] = quest; + var questInfo = _questData.GetQuestInfo(questId); + if (questInfo is LeveInfo leveInfo) + _leveData.AddQuestSteps(leveInfo, questRoot); + Quest quest = new() + { + Id = questId, + Root = questRoot, + Info = questInfo, + Source = Quest.ESource.Assembly, + }; + _quests[quest.Id] = quest; + } + catch (Exception e) + { + _logger.LogWarning("Not loading unknown quest {QuestId} from assembly: {Message}", questId, e.Message); + } } _logger.LogInformation("Loaded {Count} quests from assembly", _quests.Count); -- 2.45.2 From 17cfda172b8c819a5cc8485c7f15a3c5f7e9c22b Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sat, 28 Sep 2024 23:28:53 +0200 Subject: [PATCH 061/448] Add support for Old Sharlayan leves --- .../6.x - Endwalker/Labyrinthos/886__MIN.json | 160 ++++++++++++++++++ .../Leves/MIN/L1675_Rocks of a Feather.json | 38 +++++ Questionable/Data/LeveData.cs | 29 +++- 3 files changed, 222 insertions(+), 5 deletions(-) create mode 100644 GatheringPaths/6.x - Endwalker/Labyrinthos/886__MIN.json create mode 100644 QuestPaths/6.x - Endwalker/Leves/MIN/L1675_Rocks of a Feather.json diff --git a/GatheringPaths/6.x - Endwalker/Labyrinthos/886__MIN.json b/GatheringPaths/6.x - Endwalker/Labyrinthos/886__MIN.json new file mode 100644 index 000000000..8bb595147 --- /dev/null +++ b/GatheringPaths/6.x - Endwalker/Labyrinthos/886__MIN.json @@ -0,0 +1,160 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/GatheringPaths/gatheringlocation-v1.json", + "Author": "liza", + "Steps": [ + { + "TerritoryId": 956, + "InteractionType": "None" + } + ], + "Groups": [ + { + "Nodes": [ + { + "DataId": 34281, + "Locations": [ + { + "Position": { + "X": -510.2663, + "Y": -20.72923, + "Z": -119.9257 + }, + "MinimumAngle": -120, + "MaximumAngle": 10 + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 34283, + "Locations": [ + { + "Position": { + "X": -502.4525, + "Y": -18.55583, + "Z": -139.683 + }, + "MinimumAngle": -95, + "MaximumAngle": -35, + "MinimumDistance": 1, + "MaximumDistance": 1.8 + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 34284, + "Locations": [ + { + "Position": { + "X": -499.3535, + "Y": -18.75164, + "Z": -141.9256 + }, + "MinimumAngle": -75, + "MaximumAngle": 15, + "MinimumDistance": 1, + "MaximumDistance": 2.3 + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 34285, + "Locations": [ + { + "Position": { + "X": -495.1168, + "Y": -18.65139, + "Z": -142.5636 + }, + "MinimumAngle": -85, + "MaximumAngle": 45 + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 34286, + "Locations": [ + { + "Position": { + "X": -491.4826, + "Y": -19.44574, + "Z": -144.2088 + }, + "MinimumAngle": -105, + "MaximumAngle": 25 + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 34287, + "Locations": [ + { + "Position": { + "X": -488.8665, + "Y": -19.70717, + "Z": -147.403 + }, + "MinimumAngle": 230, + "MaximumAngle": 340 + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 34289, + "Locations": [ + { + "Position": { + "X": -489.1829, + "Y": -19.91622, + "Z": -153.7781 + }, + "MinimumAngle": 200, + "MaximumAngle": 320 + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 34291, + "Locations": [ + { + "Position": { + "X": -490.1324, + "Y": -18.06493, + "Z": -164.4281 + }, + "MinimumAngle": 210, + "MaximumAngle": 310 + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/QuestPaths/6.x - Endwalker/Leves/MIN/L1675_Rocks of a Feather.json b/QuestPaths/6.x - Endwalker/Leves/MIN/L1675_Rocks of a Feather.json new file mode 100644 index 000000000..7b90c2f75 --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Leves/MIN/L1675_Rocks of a Feather.json @@ -0,0 +1,38 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": -506.1484, + "Y": -22.671598, + "Z": -116.16144 + }, + "TerritoryId": 956, + "InteractionType": "InitiateLeve", + "AetheryteShortcut": "Labyrinthos - Aporia", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + }, + { + "TerritoryId": 956, + "InteractionType": "Gather", + "ItemsToGather": [ + { + "ItemId": 2003172, + "AlternativeItemId": 2003173, + "ItemCount": 999 + } + ] + } + ] + } + ] +} diff --git a/Questionable/Data/LeveData.cs b/Questionable/Data/LeveData.cs index a8d5835ca..a80842006 100644 --- a/Questionable/Data/LeveData.cs +++ b/Questionable/Data/LeveData.cs @@ -13,7 +13,16 @@ internal sealed class LeveData { private static readonly List Leves = [ - new(EAetheryteLocation.Tuliyollal, 1048390, new(15.243713f, -14.000001f, 85.83191f)), + new( + aetheryteLocation: EAetheryteLocation.OldSharlayan, + aethernetShortcut: new AethernetShortcut + { From = EAetheryteLocation.OldSharlayan, To = EAetheryteLocation.OldSharlayanScholarsHarbor }, + issuerDataId: 1037263, + issuerPosition: new(45.818386f, -15.646993f, 109.40509f)), + new(aetheryteLocation: EAetheryteLocation.Tuliyollal, + aethernetShortcut: null, + issuerDataId: 1048390, + issuerPosition: new(15.243713f, -14.000001f, 85.83191f)), ]; private readonly AetheryteData _aetheryteData; @@ -44,6 +53,7 @@ internal sealed class LeveData TerritoryId = _aetheryteData.TerritoryIds[leveStepData.AetheryteLocation], InteractionType = EInteractionType.AcceptLeve, AetheryteShortcut = leveStepData.AetheryteLocation, + AethernetShortcut = leveStepData.AethernetShortcut, SkipConditions = new() { AetheryteShortcutIf = new() @@ -71,6 +81,7 @@ internal sealed class LeveData TerritoryId = _aetheryteData.TerritoryIds[leveStepData.AetheryteLocation], InteractionType = EInteractionType.CompleteLeve, AetheryteShortcut = leveStepData.AetheryteLocation, + AethernetShortcut = leveStepData.AethernetShortcut, SkipConditions = new() { AetheryteShortcutIf = new() @@ -93,10 +104,16 @@ internal sealed class LeveData private readonly uint? _crafterTurnInDataId; private readonly Vector3? _crafterTurnInPosition; - public LeveStepData(EAetheryteLocation aetheryteLocation, uint issuerDataId, Vector3 issuerPosition, - uint? turnInDataId = null, Vector3? turnInPosition = null, - uint? gathererTurnInDataId = null, Vector3? gathererTurnInPosition = null, - uint? crafterTurnInDataId = null, Vector3? crafterTurnInPosition = null) + public LeveStepData(EAetheryteLocation aetheryteLocation, + AethernetShortcut? aethernetShortcut, + uint issuerDataId, + Vector3 issuerPosition, + uint? turnInDataId = null, + Vector3? turnInPosition = null, + uint? gathererTurnInDataId = null, + Vector3? gathererTurnInPosition = null, + uint? crafterTurnInDataId = null, + Vector3? crafterTurnInPosition = null) { _turnInDataId = turnInDataId; _turnInPosition = turnInPosition; @@ -105,11 +122,13 @@ internal sealed class LeveData _crafterTurnInDataId = crafterTurnInDataId; _crafterTurnInPosition = crafterTurnInPosition; AetheryteLocation = aetheryteLocation; + AethernetShortcut = aethernetShortcut; IssuerDataId = issuerDataId; IssuerPosition = issuerPosition; } public EAetheryteLocation AetheryteLocation { get; } + public AethernetShortcut? AethernetShortcut { get; } public uint IssuerDataId { get; } public Vector3 IssuerPosition { get; } -- 2.45.2 From 2e98c94ca5ac1f603c3a9b3986d14b83c61db493 Mon Sep 17 00:00:00 2001 From: kaiser Date: Sun, 29 Sep 2024 14:09:29 +1000 Subject: [PATCH 062/448] chore: remove comment from ui. --- .../Unlocks/Emotes/Harvest Dance/1425_Saw That One Coming.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/QuestPaths/2.x - A Realm Reborn/Unlocks/Emotes/Harvest Dance/1425_Saw That One Coming.json b/QuestPaths/2.x - A Realm Reborn/Unlocks/Emotes/Harvest Dance/1425_Saw That One Coming.json index 794b3e022..076643a96 100644 --- a/QuestPaths/2.x - A Realm Reborn/Unlocks/Emotes/Harvest Dance/1425_Saw That One Coming.json +++ b/QuestPaths/2.x - A Realm Reborn/Unlocks/Emotes/Harvest Dance/1425_Saw That One Coming.json @@ -35,7 +35,7 @@ "InSameTerritory": true } }, - "Comment": "Cool now go inside" + "$": "Cool now go inside" }, { "DataId": 1000375, -- 2.45.2 From ffb65babd61cae2bd56c4739d168cd5deba33a3e Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sun, 29 Sep 2024 12:03:57 +0200 Subject: [PATCH 063/448] Fix schema url --- .../Vanu Vanu/Dailies/2197_Dance Commander.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2197_Dance Commander.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2197_Dance Commander.json index bbf06ae73..fbbafa26a 100644 --- a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2197_Dance Commander.json +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2197_Dance Commander.json @@ -1,5 +1,5 @@ { - "$schema": "https://git.carvel.li/plogon_enjoyer/Questionable/raw/branch/temp/QuestPaths/quest-v1.json", + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "plogon_enjoyer", "QuestSequence": [ { -- 2.45.2 From 74ec55ae4b5dd7d56b1da8e99fcc73b3a696aaed Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Mon, 30 Sep 2024 00:05:35 +0800 Subject: [PATCH 064/448] Added new story quest: - What Ails the Forest --- .../Story/3798_What Ails the Forest.json | 131 ++++++++++++++++++ 1 file changed, 131 insertions(+) create mode 100644 QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Story/3798_What Ails the Forest.json diff --git a/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Story/3798_What Ails the Forest.json b/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Story/3798_What Ails the Forest.json new file mode 100644 index 000000000..e7e98bf51 --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Story/3798_What Ails the Forest.json @@ -0,0 +1,131 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "plogon_enjoyer", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1032735, + "Position": { + "X": 803.7993, + "Y": -45.924515, + "Z": -217.94464 + }, + "TerritoryId": 817, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1032659, + "Position": { + "X": 802.79236, + "Y": -45.91779, + "Z": -218.58557 + }, + "TerritoryId": 817, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1027716, + "Position": { + "X": 494.9873, + "Y": -6.555339, + "Z": -224.93329 + }, + "TerritoryId": 817, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1032967, + "Position": { + "X": 774.8989, + "Y": -45.74954, + "Z": -205.52374 + }, + "TerritoryId": 817, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1032967, + "Position": { + "X": 774.8989, + "Y": -45.74954, + "Z": -205.52374 + }, + "TerritoryId": 817, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "TerritoryId": 817, + "InteractionType": "Gather", + "ItemsToGather": [ + { + "QuestAcceptedAsClass": "Miner", + "ItemId": 29516, + "ItemCount": 3 + }, + { + "QuestAcceptedAsClass": "Botanist", + "ItemId": 29542, + "ItemCount": 3 + } + ] + }, + { + "DataId": 1032967, + "Position": { + "X": 774.8989, + "Y": -45.74954, + "Z": -205.52374 + }, + "TerritoryId": 817, + "InteractionType": "Interact", + "Fly": true, + "AetheryteShortcut": "Rak'tika - Fanow" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1032660, + "Position": { + "X": 804.4098, + "Y": -45.9255, + "Z": -216.41876 + }, + "TerritoryId": 817, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} -- 2.45.2 From 86caa24b06da6899e294369a8e486fca78e0376f Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Fri, 27 Sep 2024 02:26:16 +0800 Subject: [PATCH 065/448] Added new daily quests: - Best Served Foul - A Real Pearler - You Have the Rite --- .../Kojin/Dailies/2979_Best Served Foul.json | 137 ++++++++++++ .../Kojin/Dailies/2980_A Real Pearler.json | 196 ++++++++++++++++++ .../Kojin/Dailies/2981_You Have the Rite.json | 106 ++++++++++ 3 files changed, 439 insertions(+) create mode 100644 QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2979_Best Served Foul.json create mode 100644 QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2980_A Real Pearler.json create mode 100644 QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2981_You Have the Rite.json diff --git a/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2979_Best Served Foul.json b/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2979_Best Served Foul.json new file mode 100644 index 000000000..2a43a8689 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2979_Best Served Foul.json @@ -0,0 +1,137 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "plogon_enjoyer", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1024217, + "Position": { + "X": 394.39978, + "Y": -119.58932, + "Z": -232.28815 + }, + "TerritoryId": 613, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1024538, + "Position": { + "X": 703.7003, + "Y": 0.73878324, + "Z": -26.077698 + }, + "TerritoryId": 613, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2009241, + "Position": { + "X": 532.6465, + "Y": 0.99176025, + "Z": -201.2818 + }, + "TerritoryId": 613, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [8234], + "Fly": true, + "RequiredQuestVariables": [null, null, [34], null, null, null] + }, + { + "DataId": 8234, + "Position": { + "X": 534.78296, + "Y": 1, + "Z": -193.164 + }, + "TerritoryId": 613, + "InteractionType": "UseItem", + "ItemId": 2002398, + "RequiredQuestVariables": [null, null, [34], null, null, null] + }, + { + "DataId": 2009240, + "Position": { + "X": 620.2334, + "Y": 0.10675049, + "Z": -315.9076 + }, + "TerritoryId": 613, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [8233], + "Fly": true, + "RequiredQuestVariables": [null, null, [18, 35], null, null, null] + }, + { + "DataId": 8233, + "Position": { + "X": 616.9984, + "Y": 0.04129504, + "Z": -318.1964 + }, + "TerritoryId": 613, + "InteractionType": "UseItem", + "ItemId": 2002398, + "RequiredQuestVariables": [null, null, [18, 35], null, null, null] + }, + { + "DataId": 2009239, + "Position": { + "X": 762.9358, + "Y": 0.44250488, + "Z": -286.7323 + }, + "TerritoryId": 613, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [8232], + "Fly": true, + "RequiredQuestVariables": [null, null, [19], null, null, null] + }, + { + "DataId": 8232, + "Position": { + "X": 760.98267, + "Y": 0.36481446, + "Z": -290.0893 + }, + "TerritoryId": 613, + "InteractionType": "UseItem", + "ItemId": 2002398, + "RequiredQuestVariables": [null, null, [19], null, null, null] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1024217, + "Position": { + "X": 394.39978, + "Y": -119.58932, + "Z": -232.28815 + }, + "TerritoryId": 613, + "InteractionType": "CompleteQuest", + "Fly": true, + "AetheryteShortcut": "Ruby Sea - Tamamizu" + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2980_A Real Pearler.json b/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2980_A Real Pearler.json new file mode 100644 index 000000000..f3ee8c5a8 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2980_A Real Pearler.json @@ -0,0 +1,196 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "plogon_enjoyer", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1024217, + "Position": { + "X": 394.39978, + "Y": -119.58932, + "Z": -232.28815 + }, + "TerritoryId": 613, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": 317.60394, + "Y": -83.29468, + "Z": -227.42934 + }, + "TerritoryId": 613, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 2009094, + "Position": { + "X": 211.078, + "Y": -135.14917, + "Z": 56.168457 + }, + "TerritoryId": 613, + "InteractionType": "Interact", + "Fly": true, + "RequiredQuestVariables": [ + null, + [1, 3, 5, 6, 7, 8], + null, + null, + null, + null + ] + }, + { + "DataId": 2009095, + "Position": { + "X": 163.0426, + "Y": -148.05829, + "Z": 72.28198 + }, + "TerritoryId": 613, + "InteractionType": "Interact", + "Fly": true, + "RequiredQuestVariables": [null, [2, 9, 21], null, null, null, null] + }, + { + "DataId": 2009096, + "Position": { + "X": 134.23352, + "Y": -161.21161, + "Z": 70.450806 + }, + "TerritoryId": 613, + "InteractionType": "Interact", + "Fly": true, + "RequiredQuestVariables": [null, [24, 37], null, null, null, null] + }, + { + "DataId": 2009080, + "Position": { + "X": 196.27673, + "Y": -146.685, + "Z": 40.45166 + }, + "TerritoryId": 613, + "InteractionType": "Interact", + "Fly": true, + "RequiredQuestVariables": [null, [4, 19], null, null, null, null] + }, + { + "DataId": 2009081, + "Position": { + "X": 151.56775, + "Y": -168.1087, + "Z": 49.454468 + }, + "TerritoryId": 613, + "InteractionType": "Interact", + "Fly": true, + "RequiredQuestVariables": [null, [22, 23, 40], null, null, null, null] + }, + { + "DataId": 2009082, + "Position": { + "X": 141.86316, + "Y": -170.30597, + "Z": 96.75745 + }, + "TerritoryId": 613, + "InteractionType": "Interact", + "Fly": true, + "RequiredQuestVariables": [ + null, + [18, 17, 20, 35, 38], + null, + null, + null, + null + ] + }, + { + "DataId": 2009083, + "Position": { + "X": 165.08728, + "Y": -143.54169, + "Z": 116.227905 + }, + "TerritoryId": 613, + "InteractionType": "Interact", + "Fly": true, + "RequiredQuestVariables": [ + null, + [25, 33, 36, 39], + null, + null, + null, + null + ] + }, + { + "DataId": 2009084, + "Position": { + "X": 173.81543, + "Y": -167.3457, + "Z": 114.61047 + }, + "TerritoryId": 613, + "InteractionType": "Interact", + "Fly": true, + "RequiredQuestVariables": [null, [34, 41], null, null, null, null] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": 804.21405, + "Y": 1.4000988, + "Z": 720.92487 + }, + "TerritoryId": 613, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 1024460, + "Position": { + "X": 873.9298, + "Y": 1.1792068, + "Z": 851.9568 + }, + "TerritoryId": 613, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1024217, + "Position": { + "X": 394.39978, + "Y": -119.58932, + "Z": -232.28815 + }, + "TerritoryId": 613, + "InteractionType": "CompleteQuest", + "Fly": true, + "AetheryteShortcut": "Ruby Sea - Tamamizu" + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2981_You Have the Rite.json b/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2981_You Have the Rite.json new file mode 100644 index 000000000..f20f18c5f --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2981_You Have the Rite.json @@ -0,0 +1,106 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "plogon_enjoyer", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1024217, + "Position": { + "X": 394.39978, + "Y": -119.58932, + "Z": -232.28815 + }, + "TerritoryId": 613, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": 317.60394, + "Y": -83.29468, + "Z": -227.42934 + }, + "TerritoryId": 613, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "Position": { + "X": -3.8817294, + "Y": -146.96666, + "Z": -155.70833 + }, + "TerritoryId": 613, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 1024294, + "Position": { + "X": -24.765442, + "Y": -190.38937, + "Z": -137.10236 + }, + "TerritoryId": 613, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": 368.39856, + "Y": -116.624695, + "Z": -291.34058 + }, + "TerritoryId": 613, + "InteractionType": "UseItem", + "ItemId": 2002400, + "AetheryteShortcut": "Ruby Sea - Tamamizu", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2009085, + "Position": { + "X": 367.18176, + "Y": -119.93892, + "Z": -291.77762 + }, + "TerritoryId": 613, + "InteractionType": "Emote", + "Emote": "pray" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1024217, + "Position": { + "X": 394.39978, + "Y": -119.58932, + "Z": -232.28815 + }, + "TerritoryId": 613, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} -- 2.45.2 From 087a6068d095691b3a33f593f90b35d4497104ff Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Sat, 28 Sep 2024 16:16:14 +0800 Subject: [PATCH 066/448] Added new daily quest: - Pickles of Partnership --- .../Dailies/2984_Pickles of Partnership.json | 75 +++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2984_Pickles of Partnership.json diff --git a/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2984_Pickles of Partnership.json b/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2984_Pickles of Partnership.json new file mode 100644 index 000000000..dcf8bcfe8 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2984_Pickles of Partnership.json @@ -0,0 +1,75 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "plogon_enjoyer", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1024217, + "Position": { + "X": 394.39978, + "Y": -119.58932, + "Z": -232.28815 + }, + "TerritoryId": 613, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1019249, + "Position": { + "X": 537.1328, + "Y": 33.655228, + "Z": -811.1849 + }, + "TerritoryId": 613, + "InteractionType": "Interact", + "Fly": true, + "AetheryteShortcut": "Ruby Sea - Onokoro" + }, + { + "DataId": 1024420, + "Position": { + "X": 577.3556, + "Y": 9.866471, + "Z": -733.79114 + }, + "TerritoryId": 613, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": 391.50903, + "Y": -119.58932, + "Z": -236.18898 + }, + "TerritoryId": 613, + "InteractionType": "WalkTo", + "Fly": true, + "AetheryteShortcut": "Ruby Sea - Tamamizu" + }, + { + "DataId": 1024217, + "Position": { + "X": 394.39978, + "Y": -119.58932, + "Z": -232.28815 + }, + "TerritoryId": 613, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} -- 2.45.2 From e0056147d29af6f55f735c9d2dc6d0f27e67e4f2 Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Sun, 29 Sep 2024 01:02:40 +0800 Subject: [PATCH 067/448] Updated "Pickles of Partnership". Added another possible NPC to interact. Added conditional quest variables. --- .../Dailies/2984_Pickles of Partnership.json | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2984_Pickles of Partnership.json b/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2984_Pickles of Partnership.json index dcf8bcfe8..41b1d804f 100644 --- a/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2984_Pickles of Partnership.json +++ b/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2984_Pickles of Partnership.json @@ -30,7 +30,20 @@ "TerritoryId": 613, "InteractionType": "Interact", "Fly": true, - "AetheryteShortcut": "Ruby Sea - Onokoro" + "AetheryteShortcut": "Ruby Sea - Onokoro", + "RequiredQuestVariables": [null, null, [16, 32], null, null, null] + }, + { + "DataId": 1024348, + "Position": { + "X": 724.8187, + "Y": 1.3691645, + "Z": -814.4198 + }, + "TerritoryId": 613, + "InteractionType": "Interact", + "Fly": true, + "RequiredQuestVariables": [null, null, [32], null, null, null] }, { "DataId": 1024420, @@ -41,7 +54,8 @@ }, "TerritoryId": 613, "InteractionType": "Interact", - "Fly": true + "Fly": true, + "RequiredQuestVariables": [null, null, [16], null, null, null] } ] }, -- 2.45.2 From eae070d6fb2d792d51bea625e57cbe8e22bdc185 Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Sun, 29 Sep 2024 01:06:22 +0800 Subject: [PATCH 068/448] Updated step 255 of some of the daily quests. --- .../Kojin/Dailies/2979_Best Served Foul.json | 15 ++++++++++++--- .../Kojin/Dailies/2980_A Real Pearler.json | 15 ++++++++++++--- .../Kojin/Dailies/2981_You Have the Rite.json | 13 +++++++++++-- .../Dailies/2984_Pickles of Partnership.json | 6 +++--- 4 files changed, 38 insertions(+), 11 deletions(-) diff --git a/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2979_Best Served Foul.json b/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2979_Best Served Foul.json index 2a43a8689..9da9135a2 100644 --- a/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2979_Best Served Foul.json +++ b/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2979_Best Served Foul.json @@ -119,6 +119,17 @@ { "Sequence": 255, "Steps": [ + { + "Position": { + "X": 392.59683, + "Y": -119.589325, + "Z": -234.30063 + }, + "TerritoryId": 613, + "InteractionType": "WalkTo", + "Fly": true, + "AetheryteShortcut": "Ruby Sea - Tamamizu" + }, { "DataId": 1024217, "Position": { @@ -127,9 +138,7 @@ "Z": -232.28815 }, "TerritoryId": 613, - "InteractionType": "CompleteQuest", - "Fly": true, - "AetheryteShortcut": "Ruby Sea - Tamamizu" + "InteractionType": "CompleteQuest" } ] } diff --git a/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2980_A Real Pearler.json b/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2980_A Real Pearler.json index f3ee8c5a8..bc0fa0f71 100644 --- a/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2980_A Real Pearler.json +++ b/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2980_A Real Pearler.json @@ -178,6 +178,17 @@ { "Sequence": 255, "Steps": [ + { + "Position": { + "X": 392.59683, + "Y": -119.589325, + "Z": -234.30063 + }, + "TerritoryId": 613, + "InteractionType": "WalkTo", + "Fly": true, + "AetheryteShortcut": "Ruby Sea - Tamamizu" + }, { "DataId": 1024217, "Position": { @@ -186,9 +197,7 @@ "Z": -232.28815 }, "TerritoryId": 613, - "InteractionType": "CompleteQuest", - "Fly": true, - "AetheryteShortcut": "Ruby Sea - Tamamizu" + "InteractionType": "CompleteQuest" } ] } diff --git a/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2981_You Have the Rite.json b/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2981_You Have the Rite.json index f20f18c5f..8cafa32ba 100644 --- a/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2981_You Have the Rite.json +++ b/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2981_You Have the Rite.json @@ -89,6 +89,16 @@ { "Sequence": 255, "Steps": [ + { + "Position": { + "X": 392.59683, + "Y": -119.589325, + "Z": -234.30063 + }, + "TerritoryId": 613, + "InteractionType": "WalkTo", + "Fly": true + }, { "DataId": 1024217, "Position": { @@ -97,8 +107,7 @@ "Z": -232.28815 }, "TerritoryId": 613, - "InteractionType": "CompleteQuest", - "Fly": true + "InteractionType": "CompleteQuest" } ] } diff --git a/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2984_Pickles of Partnership.json b/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2984_Pickles of Partnership.json index 41b1d804f..758957390 100644 --- a/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2984_Pickles of Partnership.json +++ b/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2984_Pickles of Partnership.json @@ -64,9 +64,9 @@ "Steps": [ { "Position": { - "X": 391.50903, - "Y": -119.58932, - "Z": -236.18898 + "X": 392.59683, + "Y": -119.589325, + "Z": -234.30063 }, "TerritoryId": 613, "InteractionType": "WalkTo", -- 2.45.2 From 95dd132dcbc9274069558931c318b0e47690a495 Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Sun, 29 Sep 2024 01:19:04 +0800 Subject: [PATCH 069/448] Added new story quest: - Under Wraps --- .../Kojin/Story/2974_Under Wraps.json | 133 ++++++++++++++++++ 1 file changed, 133 insertions(+) create mode 100644 QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Story/2974_Under Wraps.json diff --git a/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Story/2974_Under Wraps.json b/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Story/2974_Under Wraps.json new file mode 100644 index 000000000..9da1c6c87 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Story/2974_Under Wraps.json @@ -0,0 +1,133 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "plogon_enjoyer", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1024215, + "Position": { + "X": 400.07617, + "Y": -119.589325, + "Z": -247.54712 + }, + "TerritoryId": 613, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1024231, + "Position": { + "X": 463.40125, + "Y": 56.86197, + "Z": -157.94617 + }, + "TerritoryId": 614, + "InteractionType": "Interact", + "Fly": true, + "AetheryteShortcut": "Yanxia - Namai", + "DialogueChoices": [ + { + "Prompt": "TEXT_BANKJN002_02974_Q1_000_000", + "Type": "List", + "Answer": "TEXT_BANKJN002_02974_A1_000_001" + } + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2009169, + "Position": { + "X": 145.922, + "Y": 26.352295, + "Z": 456.9314 + }, + "TerritoryId": 614, + "InteractionType": "Snipe", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2009170, + "Position": { + "X": 205.31006, + "Y": 14.297607, + "Z": 712.76404 + }, + "TerritoryId": 614, + "InteractionType": "Snipe", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1024238, + "Position": { + "X": 302.72363, + "Y": 2.8619597, + "Z": 731.44116 + }, + "TerritoryId": 614, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1024244, + "Position": { + "X": 181.10925, + "Y": 6.1105657, + "Z": 553.2462 + }, + "TerritoryId": 614, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1024215, + "Position": { + "X": 400.07617, + "Y": -119.589325, + "Z": -247.54712 + }, + "TerritoryId": 613, + "InteractionType": "CompleteQuest", + "Fly": true, + "AetheryteShortcut": "Ruby Sea - Tamamizu", + "DialogueChoices": [ + { + "Prompt": "TEXT_BANKJN002_02974_Q3_000_000", + "Type": "List", + "Answer": "TEXT_BANKJN002_02974_A3_000_001" + } + ] + } + ] + } + ] +} -- 2.45.2 From d3389baa4585f39dd01c0a5f8e73a97c304d0d70 Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Sun, 29 Sep 2024 01:53:40 +0800 Subject: [PATCH 070/448] Added new action "Inhale" --- QuestPaths/quest-v1.json | 1 + Questionable.Model/Questing/Converter/ActionConverter.cs | 1 + Questionable.Model/Questing/EAction.cs | 2 ++ 3 files changed, 4 insertions(+) diff --git a/QuestPaths/quest-v1.json b/QuestPaths/quest-v1.json index 0c0661f74..b0fd35d28 100644 --- a/QuestPaths/quest-v1.json +++ b/QuestPaths/quest-v1.json @@ -912,6 +912,7 @@ "Buffet (Griffin)", "Trample", "Fumigate", + "Inhale", "Siphon Snout", "Peculiar Light", "Cannonfire", diff --git a/Questionable.Model/Questing/Converter/ActionConverter.cs b/Questionable.Model/Questing/Converter/ActionConverter.cs index 32a6654fa..6f0be40e5 100644 --- a/Questionable.Model/Questing/Converter/ActionConverter.cs +++ b/Questionable.Model/Questing/Converter/ActionConverter.cs @@ -26,6 +26,7 @@ public sealed class ActionConverter() : EnumConverter(Values) { EAction.BuffetGriffin, "Buffet (Griffin)" }, { EAction.Trample, "Trample" }, { EAction.Fumigate, "Fumigate" }, + { EAction.Inhale, "Inhale" }, { EAction.SiphonSnout, "Siphon Snout" }, { EAction.PeculiarLight, "Peculiar Light" }, { EAction.Cannonfire, "Cannonfire" }, diff --git a/Questionable.Model/Questing/EAction.cs b/Questionable.Model/Questing/EAction.cs index bcc676e40..27bcca1ff 100644 --- a/Questionable.Model/Questing/EAction.cs +++ b/Questionable.Model/Questing/EAction.cs @@ -27,6 +27,7 @@ public enum EAction Fumigate = 5872, MagitekPulse = 8624, MagitekThunder = 8625, + Inhale = 10013, SiphonSnout = 18187, PeculiarLight = 20030, Cannonfire = 20121, @@ -63,6 +64,7 @@ public static class EActionExtensions or EAction.BuffetGriffin or EAction.Trample or EAction.Fumigate + or EAction.Inhale or EAction.SiphonSnout or EAction.PeculiarLight or EAction.Cannonfire -- 2.45.2 From f7ba64d34bad007567447162dbd5060c8bc492eb Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Sun, 29 Sep 2024 02:25:59 +0800 Subject: [PATCH 071/448] Added new daily quests: - Little Kojin Lost - Much at Steak - Sand-sifting Specialist --- .../Kojin/Dailies/2985_Little Kojin Lost.json | 118 ++++++++++++ .../Kojin/Dailies/2986_Much at Steak.json | 97 ++++++++++ .../Dailies/2990_Sand-sifting Specialist.json | 179 ++++++++++++++++++ 3 files changed, 394 insertions(+) create mode 100644 QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2985_Little Kojin Lost.json create mode 100644 QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2986_Much at Steak.json create mode 100644 QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2990_Sand-sifting Specialist.json diff --git a/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2985_Little Kojin Lost.json b/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2985_Little Kojin Lost.json new file mode 100644 index 000000000..658f8fdb0 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2985_Little Kojin Lost.json @@ -0,0 +1,118 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "plogon_enjoyer", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1024217, + "Position": { + "X": 394.39978, + "Y": -119.58932, + "Z": -232.28815 + }, + "TerritoryId": 613, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": 324.734, + "Y": -118.16611, + "Z": -310.65613 + }, + "TerritoryId": 613, + "InteractionType": "WalkTo", + "Fly": true, + "RestartNavigationIfCancelled": false + }, + { + "DataId": 2009099, + "Position": { + "X": 829.0073, + "Y": -122.179016, + "Z": -768.91736 + }, + "TerritoryId": 613, + "InteractionType": "Say", + "ChatMessage": { + "Key": "TEXT_BANKJN401_02985_SAYTODO_000_015" + }, + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1024295, + "Position": { + "X": 861.6616, + "Y": -108.659546, + "Z": -546.4103 + }, + "TerritoryId": 613, + "InteractionType": "Interact", + "Fly": true, + "RequiredQuestVariables": [null, [16], null, null, null, null] + }, + { + "DataId": 1024345, + "Position": { + "X": 891.78296, + "Y": -140.61188, + "Z": -794.36945 + }, + "TerritoryId": 613, + "InteractionType": "Interact", + "Fly": true, + "RequiredQuestVariables": [null, [32], null, null, null, null] + }, + { + "DataId": 1024344, + "Position": { + "X": 836.14856, + "Y": -127.85541, + "Z": -910.7042 + }, + "TerritoryId": 613, + "InteractionType": "Interact", + "Fly": true, + "RequiredQuestVariables": [null, [48], null, null, null, null] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": 392.59683, + "Y": -119.589325, + "Z": -234.30063 + }, + "TerritoryId": 613, + "InteractionType": "WalkTo", + "Fly": true, + "AetheryteShortcut": "Ruby Sea - Tamamizu" + }, + { + "DataId": 1024217, + "Position": { + "X": 394.39978, + "Y": -119.58932, + "Z": -232.28815 + }, + "TerritoryId": 613, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2986_Much at Steak.json b/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2986_Much at Steak.json new file mode 100644 index 000000000..ba5a8f43a --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2986_Much at Steak.json @@ -0,0 +1,97 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "plogon_enjoyer", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1024217, + "Position": { + "X": 394.39978, + "Y": -119.58932, + "Z": -232.28815 + }, + "TerritoryId": 613, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": -305.79498, + "Y": -0.5, + "Z": -517.7326 + }, + "TerritoryId": 613, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [8237], + "Fly": true, + "Land": true, + "AetheryteShortcut": "Ruby Sea - Onokoro", + "RequiredQuestVariables": [null, null, [1], null, null, null] + }, + { + "Position": { + "X": 166.64561, + "Y": -0.4983238, + "Z": -751.1739 + }, + "TerritoryId": 613, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [8237], + "Fly": true, + "Land": true, + "AetheryteShortcut": "Ruby Sea - Onokoro", + "RequiredQuestVariables": [null, null, [2], null, null, null] + }, + { + "Position": { + "X": -135.29268, + "Y": -0.06343824, + "Z": -805.9451 + }, + "TerritoryId": 613, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [8237], + "Fly": true, + "Land": true, + "AetheryteShortcut": "Ruby Sea - Onokoro", + "RequiredQuestVariables": [null, null, [3], null, null, null] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": 392.59683, + "Y": -119.589325, + "Z": -234.30063 + }, + "TerritoryId": 613, + "InteractionType": "WalkTo", + "Fly": true, + "AetheryteShortcut": "Ruby Sea - Tamamizu" + }, + { + "DataId": 1024217, + "Position": { + "X": 394.39978, + "Y": -119.58932, + "Z": -232.28815 + }, + "TerritoryId": 613, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2990_Sand-sifting Specialist.json b/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2990_Sand-sifting Specialist.json new file mode 100644 index 000000000..f08218d80 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2990_Sand-sifting Specialist.json @@ -0,0 +1,179 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "plogon_enjoyer", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1024217, + "Position": { + "X": 394.39978, + "Y": -119.58932, + "Z": -232.28815 + }, + "TerritoryId": 613, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1024218, + "Position": { + "X": 387.56384, + "Y": -119.795334, + "Z": -257.64862 + }, + "TerritoryId": 613, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": 322.45865, + "Y": -121.24298, + "Z": -314.65158 + }, + "TerritoryId": 613, + "InteractionType": "WalkTo", + "Fly": true, + "RestartNavigationIfCancelled": false + }, + { + "DataId": 2009109, + "Position": { + "X": 239.18518, + "Y": -74.99817, + "Z": -464.95764 + }, + "TerritoryId": 613, + "InteractionType": "Action", + "Action": "Inhale", + "Fly": true, + "RequiredQuestVariables": [ + null, + null, + null, + [16, 48, 128, 144], + null, + null + ] + }, + { + "DataId": 2009108, + "Position": { + "X": 286.33557, + "Y": -74.60144, + "Z": -499.01584 + }, + "TerritoryId": 613, + "InteractionType": "Action", + "Action": "Inhale", + "Fly": true, + "RequiredQuestVariables": [ + null, + null, + null, + [16, 48, 128, 160], + null, + null + ] + }, + { + "DataId": 2009106, + "Position": { + "X": 539.2385, + "Y": -56.26001, + "Z": -364.88904 + }, + "TerritoryId": 613, + "InteractionType": "Action", + "Action": "Inhale", + "Fly": true, + "RequiredQuestVariables": [ + null, + null, + null, + [16, 64, 160], + null, + null + ] + }, + { + "DataId": 2009107, + "Position": { + "X": 560.14343, + "Y": -75.547424, + "Z": -410.81866 + }, + "TerritoryId": 613, + "InteractionType": "Action", + "Action": "Inhale", + "Fly": true, + "RequiredQuestVariables": [ + null, + null, + null, + [48, 64, 144, 160], + null, + null + ] + }, + { + "DataId": 2009105, + "Position": { + "X": 613.94666, + "Y": -74.57086, + "Z": -400.04578 + }, + "TerritoryId": 613, + "InteractionType": "Action", + "Action": "Inhale", + "Fly": true, + "RequiredQuestVariables": [ + null, + null, + null, + [64, 128, 144], + null, + null + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": 392.59683, + "Y": -119.589325, + "Z": -234.30063 + }, + "TerritoryId": 613, + "InteractionType": "WalkTo", + "Fly": true, + "AetheryteShortcut": "Ruby Sea - Tamamizu" + }, + { + "DataId": 1024217, + "Position": { + "X": 394.39978, + "Y": -119.58932, + "Z": -232.28815 + }, + "TerritoryId": 613, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} -- 2.45.2 From b5ba224f108d941f2772df8d4e98521d561ae60c Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Wed, 25 Sep 2024 00:38:31 +0800 Subject: [PATCH 072/448] Added new daily quest - Fifty Shades of Yellow --- .../Dailies/2277_Fifty Shades of Yellow.json | 118 ++++++++++++++++++ 1 file changed, 118 insertions(+) create mode 100644 QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2277_Fifty Shades of Yellow.json diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2277_Fifty Shades of Yellow.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2277_Fifty Shades of Yellow.json new file mode 100644 index 000000000..1f83afd02 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2277_Fifty Shades of Yellow.json @@ -0,0 +1,118 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "plogon_enjoyer", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1016803, + "Position": { + "X": 57.297607, + "Y": -47.842846, + "Z": -174.63953 + }, + "TerritoryId": 398, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1016872, + "Position": { + "X": -42.954163, + "Y": -33.573986, + "Z": -24.490784 + }, + "TerritoryId": 398, + "InteractionType": "Say", + "ChatMessage": { + "Key": "TEXT_BANGNA602_02277_SYSTEM_000_012" + }, + "Fly": true + }, + { + "DataId": 1016871, + "Position": { + "X": -113.38989, + "Y": -34.45324, + "Z": -206.65302 + }, + "TerritoryId": 398, + "InteractionType": "Say", + "ChatMessage": { + "Key": "TEXT_BANGNA602_02277_SYSTEM_000_012" + }, + "Fly": true + }, + { + "DataId": 1016873, + "Position": { + "X": -178.17963, + "Y": -35.40849, + "Z": -80.094604 + }, + "TerritoryId": 398, + "InteractionType": "Say", + "ChatMessage": { + "Key": "TEXT_BANGNA602_02277_SYSTEM_000_012" + }, + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1016874, + "Position": { + "X": -399.25232, + "Y": 96.070595, + "Z": -43.01526 + }, + "TerritoryId": 398, + "InteractionType": "Say", + "ChatMessage": { + "Key": "TEXT_BANGNA602_02277_SYSTEM_000_012" + }, + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1016874, + "Position": { + "X": -399.25232, + "Y": 96.070595, + "Z": -43.01526 + }, + "TerritoryId": 398, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1016803, + "Position": { + "X": 57.297607, + "Y": -47.842846, + "Z": -174.63953 + }, + "TerritoryId": 398, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} -- 2.45.2 From 46d54f4d7928b3310ef1fe94ef0472678b1fc1c3 Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Thu, 26 Sep 2024 21:51:42 +0800 Subject: [PATCH 073/448] Added new daily quest: - Bugging the Bugs --- .../Vath/Dailies/2263_Bugging the Bugs.json | 116 ++++++++++++++++++ 1 file changed, 116 insertions(+) create mode 100644 QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2263_Bugging the Bugs.json diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2263_Bugging the Bugs.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2263_Bugging the Bugs.json new file mode 100644 index 000000000..933aa250b --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2263_Bugging the Bugs.json @@ -0,0 +1,116 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "plogon_enjoyer", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1016803, + "Position": { + "X": 57.297607, + "Y": -47.842846, + "Z": -174.63953 + }, + "TerritoryId": 398, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1017031, + "Position": { + "X": 74.20459, + "Y": -48.533592, + "Z": -171.12994 + }, + "TerritoryId": 398, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2006887, + "Position": { + "X": 523.4302, + "Y": -50.370117, + "Z": 90.86743 + }, + "TerritoryId": 398, + "InteractionType": "Action", + "Action": "Fumigate", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2006970, + "Position": { + "X": 517.4791, + "Y": -50.644714, + "Z": 89.00586 + }, + "TerritoryId": 398, + "InteractionType": "Action", + "Action": "Fumigate", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 2006889, + "Position": { + "X": 689.7229, + "Y": -52.262207, + "Z": 62.088867 + }, + "TerritoryId": 398, + "InteractionType": "Action", + "Action": "Fumigate", + "Fly": true + }, + { + "DataId": 2006888, + "Position": { + "X": 586.1753, + "Y": -37.979797, + "Z": 257.3739 + }, + "TerritoryId": 398, + "InteractionType": "Action", + "Action": "Fumigate", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1016803, + "Position": { + "X": 57.297607, + "Y": -47.842846, + "Z": -174.63953 + }, + "TerritoryId": 398, + "InteractionType": "CompleteQuest", + "Fly": true, + "AetheryteShortcut": "The Dravanian Forelands - Anyx Trine" + } + ] + } + ] +} -- 2.45.2 From 7436f03199ca0242d8eb8b6e272a976d5e03dab9 Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Mon, 30 Sep 2024 00:24:13 +0800 Subject: [PATCH 074/448] Removed the following daily quests: - Best Served Foul - A Real Pearler --- .../Kojin/Dailies/2979_Best Served Foul.json | 146 ------------- .../Kojin/Dailies/2980_A Real Pearler.json | 205 ------------------ 2 files changed, 351 deletions(-) delete mode 100644 QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2979_Best Served Foul.json delete mode 100644 QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2980_A Real Pearler.json diff --git a/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2979_Best Served Foul.json b/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2979_Best Served Foul.json deleted file mode 100644 index 9da9135a2..000000000 --- a/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2979_Best Served Foul.json +++ /dev/null @@ -1,146 +0,0 @@ -{ - "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "plogon_enjoyer", - "QuestSequence": [ - { - "Sequence": 0, - "Steps": [ - { - "DataId": 1024217, - "Position": { - "X": 394.39978, - "Y": -119.58932, - "Z": -232.28815 - }, - "TerritoryId": 613, - "InteractionType": "AcceptQuest" - } - ] - }, - { - "Sequence": 1, - "Steps": [ - { - "DataId": 1024538, - "Position": { - "X": 703.7003, - "Y": 0.73878324, - "Z": -26.077698 - }, - "TerritoryId": 613, - "InteractionType": "Interact", - "Fly": true - } - ] - }, - { - "Sequence": 2, - "Steps": [ - { - "DataId": 2009241, - "Position": { - "X": 532.6465, - "Y": 0.99176025, - "Z": -201.2818 - }, - "TerritoryId": 613, - "InteractionType": "Combat", - "EnemySpawnType": "AfterInteraction", - "KillEnemyDataIds": [8234], - "Fly": true, - "RequiredQuestVariables": [null, null, [34], null, null, null] - }, - { - "DataId": 8234, - "Position": { - "X": 534.78296, - "Y": 1, - "Z": -193.164 - }, - "TerritoryId": 613, - "InteractionType": "UseItem", - "ItemId": 2002398, - "RequiredQuestVariables": [null, null, [34], null, null, null] - }, - { - "DataId": 2009240, - "Position": { - "X": 620.2334, - "Y": 0.10675049, - "Z": -315.9076 - }, - "TerritoryId": 613, - "InteractionType": "Combat", - "EnemySpawnType": "AfterInteraction", - "KillEnemyDataIds": [8233], - "Fly": true, - "RequiredQuestVariables": [null, null, [18, 35], null, null, null] - }, - { - "DataId": 8233, - "Position": { - "X": 616.9984, - "Y": 0.04129504, - "Z": -318.1964 - }, - "TerritoryId": 613, - "InteractionType": "UseItem", - "ItemId": 2002398, - "RequiredQuestVariables": [null, null, [18, 35], null, null, null] - }, - { - "DataId": 2009239, - "Position": { - "X": 762.9358, - "Y": 0.44250488, - "Z": -286.7323 - }, - "TerritoryId": 613, - "InteractionType": "Combat", - "EnemySpawnType": "AfterInteraction", - "KillEnemyDataIds": [8232], - "Fly": true, - "RequiredQuestVariables": [null, null, [19], null, null, null] - }, - { - "DataId": 8232, - "Position": { - "X": 760.98267, - "Y": 0.36481446, - "Z": -290.0893 - }, - "TerritoryId": 613, - "InteractionType": "UseItem", - "ItemId": 2002398, - "RequiredQuestVariables": [null, null, [19], null, null, null] - } - ] - }, - { - "Sequence": 255, - "Steps": [ - { - "Position": { - "X": 392.59683, - "Y": -119.589325, - "Z": -234.30063 - }, - "TerritoryId": 613, - "InteractionType": "WalkTo", - "Fly": true, - "AetheryteShortcut": "Ruby Sea - Tamamizu" - }, - { - "DataId": 1024217, - "Position": { - "X": 394.39978, - "Y": -119.58932, - "Z": -232.28815 - }, - "TerritoryId": 613, - "InteractionType": "CompleteQuest" - } - ] - } - ] -} diff --git a/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2980_A Real Pearler.json b/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2980_A Real Pearler.json deleted file mode 100644 index bc0fa0f71..000000000 --- a/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2980_A Real Pearler.json +++ /dev/null @@ -1,205 +0,0 @@ -{ - "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "plogon_enjoyer", - "QuestSequence": [ - { - "Sequence": 0, - "Steps": [ - { - "DataId": 1024217, - "Position": { - "X": 394.39978, - "Y": -119.58932, - "Z": -232.28815 - }, - "TerritoryId": 613, - "InteractionType": "AcceptQuest" - } - ] - }, - { - "Sequence": 1, - "Steps": [ - { - "Position": { - "X": 317.60394, - "Y": -83.29468, - "Z": -227.42934 - }, - "TerritoryId": 613, - "InteractionType": "WalkTo", - "Fly": true - }, - { - "DataId": 2009094, - "Position": { - "X": 211.078, - "Y": -135.14917, - "Z": 56.168457 - }, - "TerritoryId": 613, - "InteractionType": "Interact", - "Fly": true, - "RequiredQuestVariables": [ - null, - [1, 3, 5, 6, 7, 8], - null, - null, - null, - null - ] - }, - { - "DataId": 2009095, - "Position": { - "X": 163.0426, - "Y": -148.05829, - "Z": 72.28198 - }, - "TerritoryId": 613, - "InteractionType": "Interact", - "Fly": true, - "RequiredQuestVariables": [null, [2, 9, 21], null, null, null, null] - }, - { - "DataId": 2009096, - "Position": { - "X": 134.23352, - "Y": -161.21161, - "Z": 70.450806 - }, - "TerritoryId": 613, - "InteractionType": "Interact", - "Fly": true, - "RequiredQuestVariables": [null, [24, 37], null, null, null, null] - }, - { - "DataId": 2009080, - "Position": { - "X": 196.27673, - "Y": -146.685, - "Z": 40.45166 - }, - "TerritoryId": 613, - "InteractionType": "Interact", - "Fly": true, - "RequiredQuestVariables": [null, [4, 19], null, null, null, null] - }, - { - "DataId": 2009081, - "Position": { - "X": 151.56775, - "Y": -168.1087, - "Z": 49.454468 - }, - "TerritoryId": 613, - "InteractionType": "Interact", - "Fly": true, - "RequiredQuestVariables": [null, [22, 23, 40], null, null, null, null] - }, - { - "DataId": 2009082, - "Position": { - "X": 141.86316, - "Y": -170.30597, - "Z": 96.75745 - }, - "TerritoryId": 613, - "InteractionType": "Interact", - "Fly": true, - "RequiredQuestVariables": [ - null, - [18, 17, 20, 35, 38], - null, - null, - null, - null - ] - }, - { - "DataId": 2009083, - "Position": { - "X": 165.08728, - "Y": -143.54169, - "Z": 116.227905 - }, - "TerritoryId": 613, - "InteractionType": "Interact", - "Fly": true, - "RequiredQuestVariables": [ - null, - [25, 33, 36, 39], - null, - null, - null, - null - ] - }, - { - "DataId": 2009084, - "Position": { - "X": 173.81543, - "Y": -167.3457, - "Z": 114.61047 - }, - "TerritoryId": 613, - "InteractionType": "Interact", - "Fly": true, - "RequiredQuestVariables": [null, [34, 41], null, null, null, null] - } - ] - }, - { - "Sequence": 2, - "Steps": [ - { - "Position": { - "X": 804.21405, - "Y": 1.4000988, - "Z": 720.92487 - }, - "TerritoryId": 613, - "InteractionType": "WalkTo", - "Fly": true - }, - { - "DataId": 1024460, - "Position": { - "X": 873.9298, - "Y": 1.1792068, - "Z": 851.9568 - }, - "TerritoryId": 613, - "InteractionType": "Interact", - "Fly": true - } - ] - }, - { - "Sequence": 255, - "Steps": [ - { - "Position": { - "X": 392.59683, - "Y": -119.589325, - "Z": -234.30063 - }, - "TerritoryId": 613, - "InteractionType": "WalkTo", - "Fly": true, - "AetheryteShortcut": "Ruby Sea - Tamamizu" - }, - { - "DataId": 1024217, - "Position": { - "X": 394.39978, - "Y": -119.58932, - "Z": -232.28815 - }, - "TerritoryId": 613, - "InteractionType": "CompleteQuest" - } - ] - } - ] -} -- 2.45.2 From 6f18796642f1f8c35c98b52b4c58b2fe24f899cd Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Mon, 30 Sep 2024 00:27:27 +0800 Subject: [PATCH 075/448] Added the following daily quests: - Best Served Foul - A Real Pearler --- .../Kojin/Dailies/2979_Best Served Foul.json | 146 +++++++++++++ .../Kojin/Dailies/2980_A Real Pearler.json | 206 ++++++++++++++++++ 2 files changed, 352 insertions(+) create mode 100644 QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2979_Best Served Foul.json create mode 100644 QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2980_A Real Pearler.json diff --git a/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2979_Best Served Foul.json b/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2979_Best Served Foul.json new file mode 100644 index 000000000..5e390995e --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2979_Best Served Foul.json @@ -0,0 +1,146 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "plogon_enjoyer", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1024217, + "Position": { + "X": 394.39978, + "Y": -119.58932, + "Z": -232.28815 + }, + "TerritoryId": 613, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1024538, + "Position": { + "X": 703.7003, + "Y": 0.73878324, + "Z": -26.077698 + }, + "TerritoryId": 613, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2009241, + "Position": { + "X": 532.6465, + "Y": 0.99176025, + "Z": -201.2818 + }, + "TerritoryId": 613, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [8234], + "Fly": true, + "RequiredQuestVariables": [null, null, [34], null, null, null] + }, + { + "DataId": 8234, + "Position": { + "X": 534.78296, + "Y": 1, + "Z": -193.164 + }, + "TerritoryId": 613, + "InteractionType": "UseItem", + "ItemId": 2002398, + "RequiredQuestVariables": [null, null, [34], null, null, null] + }, + { + "DataId": 2009240, + "Position": { + "X": 620.2334, + "Y": 0.10675049, + "Z": -315.9076 + }, + "TerritoryId": 613, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [8233], + "Fly": true, + "RequiredQuestVariables": [null, null, [18, 35], null, null, null] + }, + { + "DataId": 8233, + "Position": { + "X": 616.9984, + "Y": 0.04129504, + "Z": -318.1964 + }, + "TerritoryId": 613, + "InteractionType": "UseItem", + "ItemId": 2002398, + "RequiredQuestVariables": [null, null, [18, 35], null, null, null] + }, + { + "DataId": 2009239, + "Position": { + "X": 762.9358, + "Y": 0.44250488, + "Z": -286.7323 + }, + "TerritoryId": 613, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [8232], + "Fly": true, + "RequiredQuestVariables": [null, null, [19], null, null, null] + }, + { + "DataId": 8232, + "Position": { + "X": 760.98267, + "Y": 0.36481446, + "Z": -290.0893 + }, + "TerritoryId": 613, + "InteractionType": "UseItem", + "ItemId": 2002398, + "RequiredQuestVariables": [null, null, [19], null, null, null] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": 391.50903, + "Y": -119.58932, + "Z": -236.18898 + }, + "TerritoryId": 613, + "InteractionType": "WalkTo", + "Fly": true, + "AetheryteShortcut": "Ruby Sea - Tamamizu" + }, + { + "DataId": 1024217, + "Position": { + "X": 394.39978, + "Y": -119.58932, + "Z": -232.28815 + }, + "TerritoryId": 613, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2980_A Real Pearler.json b/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2980_A Real Pearler.json new file mode 100644 index 000000000..ae49b3168 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2980_A Real Pearler.json @@ -0,0 +1,206 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "plogon_enjoyer", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1024217, + "Position": { + "X": 394.39978, + "Y": -119.58932, + "Z": -232.28815 + }, + "TerritoryId": 613, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": 291.9449, + "Y": -62.62814, + "Z": -214.1033 + }, + "TerritoryId": 613, + "InteractionType": "WalkTo", + "Fly": true, + "RestartNavigationIfCancelled": false + }, + { + "DataId": 2009094, + "Position": { + "X": 211.078, + "Y": -135.14917, + "Z": 56.168457 + }, + "TerritoryId": 613, + "InteractionType": "Interact", + "Fly": true, + "RequiredQuestVariables": [ + null, + [1, 3, 5, 6, 7, 8], + null, + null, + null, + null + ] + }, + { + "DataId": 2009095, + "Position": { + "X": 163.0426, + "Y": -148.05829, + "Z": 72.28198 + }, + "TerritoryId": 613, + "InteractionType": "Interact", + "Fly": true, + "RequiredQuestVariables": [null, [2, 9, 21], null, null, null, null] + }, + { + "DataId": 2009096, + "Position": { + "X": 134.23352, + "Y": -161.21161, + "Z": 70.450806 + }, + "TerritoryId": 613, + "InteractionType": "Interact", + "Fly": true, + "RequiredQuestVariables": [null, [24, 37], null, null, null, null] + }, + { + "DataId": 2009080, + "Position": { + "X": 196.27673, + "Y": -146.685, + "Z": 40.45166 + }, + "TerritoryId": 613, + "InteractionType": "Interact", + "Fly": true, + "RequiredQuestVariables": [null, [4, 19], null, null, null, null] + }, + { + "DataId": 2009081, + "Position": { + "X": 151.56775, + "Y": -168.1087, + "Z": 49.454468 + }, + "TerritoryId": 613, + "InteractionType": "Interact", + "Fly": true, + "RequiredQuestVariables": [null, [22, 23, 40], null, null, null, null] + }, + { + "DataId": 2009082, + "Position": { + "X": 141.86316, + "Y": -170.30597, + "Z": 96.75745 + }, + "TerritoryId": 613, + "InteractionType": "Interact", + "Fly": true, + "RequiredQuestVariables": [ + null, + [18, 17, 20, 35, 38], + null, + null, + null, + null + ] + }, + { + "DataId": 2009083, + "Position": { + "X": 165.08728, + "Y": -143.54169, + "Z": 116.227905 + }, + "TerritoryId": 613, + "InteractionType": "Interact", + "Fly": true, + "RequiredQuestVariables": [ + null, + [25, 33, 36, 39], + null, + null, + null, + null + ] + }, + { + "DataId": 2009084, + "Position": { + "X": 173.81543, + "Y": -167.3457, + "Z": 114.61047 + }, + "TerritoryId": 613, + "InteractionType": "Interact", + "Fly": true, + "RequiredQuestVariables": [null, [34, 41], null, null, null, null] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": 804.21405, + "Y": 1.4000988, + "Z": 720.92487 + }, + "TerritoryId": 613, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 1024460, + "Position": { + "X": 873.9298, + "Y": 1.1792068, + "Z": 851.9568 + }, + "TerritoryId": 613, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": 392.59683, + "Y": -119.589325, + "Z": -234.30063 + }, + "TerritoryId": 613, + "InteractionType": "WalkTo", + "Fly": true, + "AetheryteShortcut": "Ruby Sea - Tamamizu" + }, + { + "DataId": 1024217, + "Position": { + "X": 394.39978, + "Y": -119.58932, + "Z": -232.28815 + }, + "TerritoryId": 613, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} -- 2.45.2 From 46e4ab609e7194010fb227e69f56488509de0d6a Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Thu, 26 Sep 2024 23:51:21 +0800 Subject: [PATCH 076/448] Added the following story quest: - A Symbiotic Friendship (cherry picked from commit 65e3417d1ceef875690ea1f99b36387c02c4f03f) --- .../Story/2260_A Symbiotic Friendship.json | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Story/2260_A Symbiotic Friendship.json diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Story/2260_A Symbiotic Friendship.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Story/2260_A Symbiotic Friendship.json new file mode 100644 index 000000000..bc9a3ec9d --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Story/2260_A Symbiotic Friendship.json @@ -0,0 +1,37 @@ +{ + "$schema": "https://git.carvel.li/plogon_enjoyer/Questionable/raw/branch/temp/QuestPaths/quest-v1.json", + "Author": "plogon_enjoyer", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1016802, + "Position": { + "X": 53.360718, + "Y": -48.000004, + "Z": -169.97028 + }, + "TerritoryId": 398, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1011928, + "Position": { + "X": 73.19751, + "Y": -49.19563, + "Z": -139.05548 + }, + "TerritoryId": 398, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} -- 2.45.2 From 9611e79cf2239865b2028941eb5f3c7f629be811 Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Mon, 30 Sep 2024 00:31:43 +0800 Subject: [PATCH 077/448] Fixed InteractionType. Changed from "Interact" to "AcceptQuest". (cherry picked from commit 83c48a8454ea11616e4e72976138616dc33b1f23) --- .../Vanu Vanu/Story/2260_A Symbiotic Friendship.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Story/2260_A Symbiotic Friendship.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Story/2260_A Symbiotic Friendship.json index bc9a3ec9d..f061ed478 100644 --- a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Story/2260_A Symbiotic Friendship.json +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Story/2260_A Symbiotic Friendship.json @@ -13,7 +13,7 @@ "Z": -169.97028 }, "TerritoryId": 398, - "InteractionType": "Interact" + "InteractionType": "AcceptQuest" } ] }, -- 2.45.2 From 01e657dbdd2229638c56df7c19c87b105148d970 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sun, 29 Sep 2024 20:22:28 +0200 Subject: [PATCH 078/448] Add support for Crystarium leves --- .../Kholusia/576__MIN.json | 120 ++++++++++++++++++ .../6.x - Endwalker/Labyrinthos/886__MIN.json | 3 +- .../Leves/MIN/L1540_Barmy for Ballistas.json | 38 ++++++ .../MSQ/I-5.3/3774_Food for the Soul.json | 1 - .../Misc/3605_The Aspiring Skywatcher.json | 21 +++ Questionable/Data/LeveData.cs | 5 + 6 files changed, 186 insertions(+), 2 deletions(-) create mode 100644 GatheringPaths/5.x - Shadowbringers/Kholusia/576__MIN.json create mode 100644 QuestPaths/5.x - Shadowbringers/Leves/MIN/L1540_Barmy for Ballistas.json create mode 100644 QuestPaths/5.x - Shadowbringers/Unlocks/Misc/3605_The Aspiring Skywatcher.json diff --git a/GatheringPaths/5.x - Shadowbringers/Kholusia/576__MIN.json b/GatheringPaths/5.x - Shadowbringers/Kholusia/576__MIN.json new file mode 100644 index 000000000..6be75bd0b --- /dev/null +++ b/GatheringPaths/5.x - Shadowbringers/Kholusia/576__MIN.json @@ -0,0 +1,120 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/GatheringPaths/gatheringlocation-v1.json", + "Author": "liza", + "Steps": [ + { + "TerritoryId": 814, + "InteractionType": "None" + } + ], + "Groups": [ + { + "Nodes": [ + { + "DataId": 32512, + "Locations": [ + { + "Position": { + "X": -221.5365, + "Y": 88.75751, + "Z": 36.51096 + }, + "MinimumAngle": -100, + "MaximumAngle": 25 + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 32513, + "Locations": [ + { + "Position": { + "X": -227.0897, + "Y": 89.90434, + "Z": 37.42806 + }, + "MinimumAngle": -20, + "MaximumAngle": 60 + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 32514, + "Locations": [ + { + "Position": { + "X": -233.9371, + "Y": 89.18435, + "Z": 42.91663 + }, + "MinimumAngle": -110, + "MaximumAngle": -25 + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 32515, + "Locations": [ + { + "Position": { + "X": -243.0384, + "Y": 88.70179, + "Z": 48.95438 + }, + "MinimumAngle": -70, + "MaximumAngle": 45 + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 32516, + "Locations": [ + { + "Position": { + "X": -256.5147, + "Y": 90.32328, + "Z": 51.07351 + }, + "MinimumAngle": -75, + "MaximumAngle": 90 + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 32517, + "Locations": [ + { + "Position": { + "X": -265.2769, + "Y": 90.43383, + "Z": 45.49376 + }, + "MinimumAngle": -40, + "MaximumAngle": 40 + } + ] + } + ] + } + ] +} diff --git a/GatheringPaths/6.x - Endwalker/Labyrinthos/886__MIN.json b/GatheringPaths/6.x - Endwalker/Labyrinthos/886__MIN.json index 8bb595147..0657a96fe 100644 --- a/GatheringPaths/6.x - Endwalker/Labyrinthos/886__MIN.json +++ b/GatheringPaths/6.x - Endwalker/Labyrinthos/886__MIN.json @@ -1,6 +1,7 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/GatheringPaths/gatheringlocation-v1.json", "Author": "liza", + "FlyBetweenNodes": false, "Steps": [ { "TerritoryId": 956, @@ -157,4 +158,4 @@ ] } ] -} \ No newline at end of file +} diff --git a/QuestPaths/5.x - Shadowbringers/Leves/MIN/L1540_Barmy for Ballistas.json b/QuestPaths/5.x - Shadowbringers/Leves/MIN/L1540_Barmy for Ballistas.json new file mode 100644 index 000000000..486319319 --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Leves/MIN/L1540_Barmy for Ballistas.json @@ -0,0 +1,38 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": -213.94563, + "Y": 84.02199, + "Z": 43.544315 + }, + "TerritoryId": 814, + "InteractionType": "InitiateLeve", + "AetheryteShortcut": "Kholusia - Wright", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + }, + { + "TerritoryId": 814, + "InteractionType": "Gather", + "ItemsToGather": [ + { + "ItemId": 2002785, + "AlternativeItemId": 2002786, + "ItemCount": 999 + } + ] + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/MSQ/I-5.3/3774_Food for the Soul.json b/QuestPaths/5.x - Shadowbringers/MSQ/I-5.3/3774_Food for the Soul.json index aaf605788..3408d12f6 100644 --- a/QuestPaths/5.x - Shadowbringers/MSQ/I-5.3/3774_Food for the Soul.json +++ b/QuestPaths/5.x - Shadowbringers/MSQ/I-5.3/3774_Food for the Soul.json @@ -52,7 +52,6 @@ "Fly": true }, { - "Comment": "TODO Verify", "DataId": 1033818, "Position": { "X": 24.551636, diff --git a/QuestPaths/5.x - Shadowbringers/Unlocks/Misc/3605_The Aspiring Skywatcher.json b/QuestPaths/5.x - Shadowbringers/Unlocks/Misc/3605_The Aspiring Skywatcher.json new file mode 100644 index 000000000..b0905c11f --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Unlocks/Misc/3605_The Aspiring Skywatcher.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": 1031106, + "Position": { + "X": -8.255188, + "Y": -3.1851232E-07, + "Z": 10.543945 + }, + "TerritoryId": 819, + "InteractionType": "AcceptQuest" + } + ] + } + ] +} diff --git a/Questionable/Data/LeveData.cs b/Questionable/Data/LeveData.cs index a80842006..fcabe5d80 100644 --- a/Questionable/Data/LeveData.cs +++ b/Questionable/Data/LeveData.cs @@ -13,6 +13,11 @@ internal sealed class LeveData { private static readonly List Leves = [ + new( + aetheryteLocation: EAetheryteLocation.Crystarium, + aethernetShortcut: new AethernetShortcut{From = EAetheryteLocation.Crystarium, To = EAetheryteLocation.CrystariumCrystallineMean}, + issuerDataId: 1027847, + issuerPosition: new(-73.94349f, 19.999794f, -110.86395f)), new( aetheryteLocation: EAetheryteLocation.OldSharlayan, aethernetShortcut: new AethernetShortcut -- 2.45.2 From 7397ca547a7ee58022af72b1385db8030ffa06be Mon Sep 17 00:00:00 2001 From: Limiana <5073202+Limiana@users.noreply.github.com> Date: Mon, 30 Sep 2024 23:14:56 +0300 Subject: [PATCH 079/448] Add TextAdvance ipc --- Questionable/External/TextAdvanceIpc.cs | 79 +++++++++++++++++++++++++ Questionable/QuestionablePlugin.cs | 2 + 2 files changed, 81 insertions(+) create mode 100644 Questionable/External/TextAdvanceIpc.cs diff --git a/Questionable/External/TextAdvanceIpc.cs b/Questionable/External/TextAdvanceIpc.cs new file mode 100644 index 000000000..bb771b024 --- /dev/null +++ b/Questionable/External/TextAdvanceIpc.cs @@ -0,0 +1,79 @@ +using Dalamud.Plugin; +using Dalamud.Plugin.Ipc; +using Dalamud.Plugin.Services; +using FFXIVClientStructs.FFXIV.Client.Game; +using Questionable.Controller; +using Questionable.Data; +using Questionable.Model.Common; +using System; + +namespace Questionable.External; + +internal sealed class TextAdvanceIpc : IDisposable +{ + private bool _isExternalControlActivated; + private readonly QuestController _questController; + private readonly IFramework _framework; + private readonly ICallGateSubscriber _isInExternalControl; + private readonly ICallGateSubscriber _enableExternalControl; + private readonly ICallGateSubscriber _disableExternalControl; + private readonly string _pluginName; + private readonly ExternalTerritoryConfig _externalTerritoryConfig = new(); + + public TextAdvanceIpc(IDalamudPluginInterface pluginInterface, IFramework framework, QuestController questController) + { + _framework = framework; + _questController = questController; + _isInExternalControl = pluginInterface.GetIpcSubscriber("TextAdvance.IsInExternalControl"); + _enableExternalControl = pluginInterface.GetIpcSubscriber("TextAdvance.EnableExternalControl"); + _disableExternalControl = pluginInterface.GetIpcSubscriber("TextAdvance.DisableExternalControl"); + _pluginName = pluginInterface.InternalName; + _framework.Update += OnUpdate; + } + + public void Dispose() + { + _framework.Update -= OnUpdate; + if(_isExternalControlActivated) + { + _disableExternalControl.InvokeFunc(_pluginName); + } + } + + public void OnUpdate(IFramework framework) + { + if(_questController.IsRunning) + { + if(!_isInExternalControl.InvokeFunc()) + { + if(_enableExternalControl.InvokeFunc(_pluginName, _externalTerritoryConfig)) + { + _isExternalControlActivated = true; + } + } + } + else + { + if(_isExternalControlActivated) + { + if(_disableExternalControl.InvokeFunc(_pluginName) || !_isInExternalControl.InvokeFunc()) + { + _isExternalControlActivated = false; + } + } + } + } + + public class ExternalTerritoryConfig + { + public bool? EnableQuestAccept = true; + public bool? EnableQuestComplete = true; + public bool? EnableRewardPick = true; + public bool? EnableRequestHandin = true; + public bool? EnableCutsceneEsc = true; + public bool? EnableCutsceneSkipConfirm = true; + public bool? EnableTalkSkip = true; + public bool? EnableRequestFill = true; + public bool? EnableAutoInteract = false; + } +} diff --git a/Questionable/QuestionablePlugin.cs b/Questionable/QuestionablePlugin.cs index a3731ed49..b9a1c54eb 100644 --- a/Questionable/QuestionablePlugin.cs +++ b/Questionable/QuestionablePlugin.cs @@ -124,6 +124,7 @@ public sealed class QuestionablePlugin : IDalamudPlugin serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); + serviceCollection.AddSingleton(); } private static void AddTaskFactories(ServiceCollection serviceCollection) @@ -289,6 +290,7 @@ public sealed class QuestionablePlugin : IDalamudPlugin serviceProvider.GetRequiredService(); serviceProvider.GetRequiredService(); serviceProvider.GetRequiredService().Enable(); + serviceProvider.GetRequiredService(); } public void Dispose() -- 2.45.2 From 4c63c2b88ff345358552298375e3ebfa7de86414 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Tue, 1 Oct 2024 20:53:21 +0200 Subject: [PATCH 080/448] Minor EW path adjustments --- .../Thavnair/4203_Alchemist or Dancer.json | 10 ++++++++++ .../4369_On Low Tide.json | 9 +++++++++ .../4370_A Fishermans Friend.json | 18 ++++++++++++++++++ .../B-Garlemald/4389_Personae non Gratae.json | 6 ++++-- 4 files changed, 41 insertions(+), 2 deletions(-) diff --git a/QuestPaths/6.x - Endwalker/Aether Currents/Thavnair/4203_Alchemist or Dancer.json b/QuestPaths/6.x - Endwalker/Aether Currents/Thavnair/4203_Alchemist or Dancer.json index 3b15ae0b7..85aec37d5 100644 --- a/QuestPaths/6.x - Endwalker/Aether Currents/Thavnair/4203_Alchemist or Dancer.json +++ b/QuestPaths/6.x - Endwalker/Aether Currents/Thavnair/4203_Alchemist or Dancer.json @@ -20,6 +20,15 @@ { "Sequence": 1, "Steps": [ + { + "Position": { + "X": 19.631685, + "Y": 90.24879, + "Z": -136.69801 + }, + "TerritoryId": 957, + "InteractionType": "WalkTo" + }, { "DataId": 1039382, "Position": { @@ -27,6 +36,7 @@ "Y": 90.248795, "Z": -133.34863 }, + "StopDistance": 7, "TerritoryId": 957, "InteractionType": "Interact" } diff --git a/QuestPaths/6.x - Endwalker/MSQ/A-Thavnair1-Labyrinthos1/4369_On Low Tide.json b/QuestPaths/6.x - Endwalker/MSQ/A-Thavnair1-Labyrinthos1/4369_On Low Tide.json index 86c7a33f7..7023f1429 100644 --- a/QuestPaths/6.x - Endwalker/MSQ/A-Thavnair1-Labyrinthos1/4369_On Low Tide.json +++ b/QuestPaths/6.x - Endwalker/MSQ/A-Thavnair1-Labyrinthos1/4369_On Low Tide.json @@ -36,6 +36,15 @@ "TerritoryId": 957, "InteractionType": "Interact" }, + { + "Position": { + "X": 193.6185, + "Y": 1.9123514, + "Z": 713.436 + }, + "TerritoryId": 957, + "InteractionType": "WalkTo" + }, { "DataId": 1037622, "Position": { diff --git a/QuestPaths/6.x - Endwalker/MSQ/A-Thavnair1-Labyrinthos1/4370_A Fishermans Friend.json b/QuestPaths/6.x - Endwalker/MSQ/A-Thavnair1-Labyrinthos1/4370_A Fishermans Friend.json index d3ac21665..ab24c9cec 100644 --- a/QuestPaths/6.x - Endwalker/MSQ/A-Thavnair1-Labyrinthos1/4370_A Fishermans Friend.json +++ b/QuestPaths/6.x - Endwalker/MSQ/A-Thavnair1-Labyrinthos1/4370_A Fishermans Friend.json @@ -67,6 +67,24 @@ { "Sequence": 3, "Steps": [ + { + "Position": { + "X": 198.9156, + "Y": 4.763735, + "Z": 657.83264 + }, + "TerritoryId": 957, + "InteractionType": "WalkTo" + }, + { + "Position": { + "X": 177.03275, + "Y": 4.763736, + "Z": 658.2807 + }, + "TerritoryId": 957, + "InteractionType": "WalkTo" + }, { "DataId": 1037626, "Position": { diff --git a/QuestPaths/6.x - Endwalker/MSQ/B-Garlemald/4389_Personae non Gratae.json b/QuestPaths/6.x - Endwalker/MSQ/B-Garlemald/4389_Personae non Gratae.json index 9bee400fc..47b951a3c 100644 --- a/QuestPaths/6.x - Endwalker/MSQ/B-Garlemald/4389_Personae non Gratae.json +++ b/QuestPaths/6.x - Endwalker/MSQ/B-Garlemald/4389_Personae non Gratae.json @@ -163,7 +163,8 @@ "Z": -237.499 }, "TerritoryId": 958, - "InteractionType": "WalkTo" + "InteractionType": "WalkTo", + "Mount": true }, { "Position": { @@ -197,7 +198,8 @@ "Z": -244.6051 }, "TerritoryId": 958, - "InteractionType": "WalkTo" + "InteractionType": "WalkTo", + "Mount": true }, { "Position": { -- 2.45.2 From fad4f0e72072b93323f8332f40cab6efb866719d Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Tue, 1 Oct 2024 21:28:19 +0200 Subject: [PATCH 081/448] Minor path adjustments --- .../1425_Saw That One Coming.json | 36 +++++++++++++++---- 1 file changed, 30 insertions(+), 6 deletions(-) diff --git a/QuestPaths/2.x - A Realm Reborn/Unlocks/Emotes/Harvest Dance/1425_Saw That One Coming.json b/QuestPaths/2.x - A Realm Reborn/Unlocks/Emotes/Harvest Dance/1425_Saw That One Coming.json index 076643a96..101c13a3e 100644 --- a/QuestPaths/2.x - A Realm Reborn/Unlocks/Emotes/Harvest Dance/1425_Saw That One Coming.json +++ b/QuestPaths/2.x - A Realm Reborn/Unlocks/Emotes/Harvest Dance/1425_Saw That One Coming.json @@ -19,7 +19,7 @@ "InSameTerritory": true } }, - "Comment": "We have get here first just to make sure we don't run into walls." + "$": "We have get here first just to make sure we don't run into walls." }, { "Position": { @@ -101,7 +101,7 @@ "InSameTerritory": true } }, - "Comment": "Interact with the gal now!" + "$": "Interact with the gal now!" } ] }, @@ -124,7 +124,7 @@ "InSameTerritory": true } }, - "Comment": "Speak with the man now!" + "$": "Speak with the man now!" } ] }, @@ -151,7 +151,15 @@ "InSameTerritory": true } }, - "Comment": "Give the First kid his present" + "$": "Give the First kid his present", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] }, { "DataId": 1007794, @@ -167,7 +175,15 @@ "[Gridania] Leatherworkers' Guild & Shaded Bower", "[Gridania] Mih Khetto's Amphitheatre" ], - "Comment": "Give the second kid his present." + "$": "Give the second kid his present.", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] }, { "DataId": 1007793, @@ -183,7 +199,15 @@ "[Gridania] Mih Khetto's Amphitheatre", "[Gridania] Conjurers' Guild" ], - "Comment": "Give the third kid his present." + "$": "Give the third kid his present.", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] } ] }, -- 2.45.2 From 35eeb83b49b4546f48a36cf4f235bced8bb7938d Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Tue, 1 Oct 2024 21:47:30 +0200 Subject: [PATCH 082/448] Consider quest step complete if QuestWork matches + maybe fix some interact interruptions --- .../Controller/Steps/Interactions/Interact.cs | 38 ++++++++++++++----- 1 file changed, 29 insertions(+), 9 deletions(-) diff --git a/Questionable/Controller/Steps/Interactions/Interact.cs b/Questionable/Controller/Steps/Interactions/Interact.cs index 3cb137c46..ac8f5109a 100644 --- a/Questionable/Controller/Steps/Interactions/Interact.cs +++ b/Questionable/Controller/Steps/Interactions/Interact.cs @@ -7,6 +7,7 @@ using Dalamud.Plugin.Services; using FFXIVClientStructs.FFXIV.Client.Game; using Microsoft.Extensions.Logging; using Questionable.Controller.Steps.Shared; +using Questionable.Controller.Utils; using Questionable.Functions; using Questionable.Model; using Questionable.Model.Questing; @@ -57,7 +58,7 @@ internal static class Interact yield return new Task(step.DataId.Value, quest, step.InteractionType, step.TargetTerritoryId != null || quest.Id is SatisfactionSupplyNpcId || step.SkipConditions is { StepIf.Never: true } || step.InteractionType == EInteractionType.PurchaseItem, - step.PickUpItemId, step.SkipConditions?.StepIf); + step.PickUpItemId, step.SkipConditions?.StepIf, step.CompletionQuestVariablesFlags); } } @@ -67,15 +68,25 @@ internal static class Interact EInteractionType InteractionType, bool SkipMarkerCheck = false, uint? PickUpItemId = null, - SkipStepConditions? SkipConditions = null) : ITask + SkipStepConditions? SkipConditions = null, + List? CompletionQuestVariablesFlags = null) : ITask { + public List CompletionQuestVariablesFlags { get; } = CompletionQuestVariablesFlags ?? []; + + public bool HasCompletionQuestVariablesFlags { get; } = + Quest != null && + CompletionQuestVariablesFlags != null && + QuestWorkUtils.HasCompletionFlags(CompletionQuestVariablesFlags); + public bool ShouldRedoOnInterrupt() => true; - public override string ToString() => $"Interact({DataId})"; + public override string ToString() => + $"Interact{(HasCompletionQuestVariablesFlags ? "*" : "")}({DataId})"; } internal sealed class DoInteract( GameFunctions gameFunctions, + QuestFunctions questFunctions, ICondition condition, ILogger logger) : TaskExecutor, IConditionChangeAware @@ -151,13 +162,22 @@ internal static class Interact return ETaskResult.TaskComplete; } } - else + else if (InteractionType == EInteractionType.Gather && condition[ConditionFlag.Gathering]) + return ETaskResult.TaskComplete; + else if (Quest != null && Task.HasCompletionQuestVariablesFlags) { - if (ProgressContext != null && (ProgressContext.WasSuccessful() || - _interactionState == EInteractionState.InteractionConfirmed)) - return ETaskResult.TaskComplete; - - if (InteractionType == EInteractionType.Gather && condition[ConditionFlag.Gathering]) + var questWork = questFunctions.GetQuestProgressInfo(Quest.Id); + return questWork != null && + QuestWorkUtils.MatchesQuestWork(Task.CompletionQuestVariablesFlags, questWork) + ? ETaskResult.TaskComplete + : ETaskResult.StillRunning; + } + else if (ProgressContext != null) + { + if (ProgressContext.WasInterrupted()) + return ETaskResult.StillRunning; + else if (ProgressContext.WasSuccessful() || + _interactionState == EInteractionState.InteractionConfirmed) return ETaskResult.TaskComplete; } -- 2.45.2 From 4ccd615832b6a6c195fb6a62317f2ae1e3ed9efc Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Tue, 1 Oct 2024 22:05:21 +0200 Subject: [PATCH 083/448] Fix 'NotInInventory' ignoring HQ items --- .../Class Quests/SGE/4068_Sage's Focus.json | 14 +------------- .../Controller/Steps/Interactions/EquipItem.cs | 2 ++ .../Controller/Steps/Shared/SkipCondition.cs | 3 ++- 3 files changed, 5 insertions(+), 14 deletions(-) diff --git a/QuestPaths/6.x - Endwalker/Class Quests/SGE/4068_Sage's Focus.json b/QuestPaths/6.x - Endwalker/Class Quests/SGE/4068_Sage's Focus.json index 5c731ab81..18fbc7da7 100644 --- a/QuestPaths/6.x - Endwalker/Class Quests/SGE/4068_Sage's Focus.json +++ b/QuestPaths/6.x - Endwalker/Class Quests/SGE/4068_Sage's Focus.json @@ -33,13 +33,8 @@ "TerritoryId": 134, "InteractionType": "EquipItem", "ItemId": 35778, - "AetheryteShortcut": "Middle La Noscea - Summerford Farms", - "Fly": true, "Comment": "Try to Equip Stonegold Milpreves", "SkipConditions": { - "AetheryteShortcutIf": { - "InSameTerritory": true - }, "StepIf": { "Item": { "NotInInventory": true @@ -60,14 +55,7 @@ }, "StopDistance": 5, "TerritoryId": 134, - "InteractionType": "AcceptQuest", - "AetheryteShortcut": "Middle La Noscea - Summerford Farms", - "Fly": true, - "SkipConditions": { - "AetheryteShortcutIf": { - "InSameTerritory": true - } - } + "InteractionType": "AcceptQuest" } ] }, diff --git a/Questionable/Controller/Steps/Interactions/EquipItem.cs b/Questionable/Controller/Steps/Interactions/EquipItem.cs index 9e424f652..c8159247f 100644 --- a/Questionable/Controller/Steps/Interactions/EquipItem.cs +++ b/Questionable/Controller/Steps/Interactions/EquipItem.cs @@ -158,6 +158,8 @@ internal static class EquipItem return; } } + + throw new TaskException($"Could not equip item {Task.ItemId}."); } private static List? GetEquipSlot(Item item) diff --git a/Questionable/Controller/Steps/Shared/SkipCondition.cs b/Questionable/Controller/Steps/Shared/SkipCondition.cs index 9690d4740..c95ee8eab 100644 --- a/Questionable/Controller/Steps/Shared/SkipCondition.cs +++ b/Questionable/Controller/Steps/Shared/SkipCondition.cs @@ -144,7 +144,8 @@ internal static class SkipCondition if (skipConditions.Item is { NotInInventory: true } && step is { ItemId: not null }) { InventoryManager* inventoryManager = InventoryManager.Instance(); - if (inventoryManager->GetInventoryItemCount(step.ItemId.Value) == 0) + if (inventoryManager->GetInventoryItemCount(step.ItemId.Value) == 0 && + inventoryManager->GetInventoryItemCount(step.ItemId.Value, true) == 0) { logger.LogInformation("Skipping step, no item with itemId {ItemId} in inventory", step.ItemId.Value); -- 2.45.2 From e9b6b27ce2fb0a5565fa540c74a7b11021070ca0 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Tue, 1 Oct 2024 22:25:25 +0200 Subject: [PATCH 084/448] Remove 'TerritoryBlacklist' from quests --- QuestPathGenerator/QuestSourceGenerator.cs | 3 --- .../Alliance Raid Quests/494_The World of Darkness.json | 3 --- .../MSQ-1/Gridania/129_Spirithold Broken.json | 3 --- .../MSQ-1/Gridania/445_Chasing Shadows.json | 3 --- .../MSQ-1/Limsa/414_Victory in Peril.json | 3 --- .../2.x - A Realm Reborn/MSQ-1/Limsa/469_Just Deserts.json | 3 --- .../MSQ-1/Limsa/543_Lurkers in the Grotto.json | 3 --- .../MSQ-1/Limsa/544_Feint and Strike.json | 3 --- .../MSQ-1/Shared/245_It's Probably Pirates.json | 3 --- .../MSQ-1/Shared/343_Lord of the Inferno.json | 4 ---- .../MSQ-1/Shared/660_Into a Copper Hell.json | 4 ---- .../MSQ-1/Shared/677_Fire in the Gloom.json | 3 --- .../MSQ-1/Ul'dah/550_Underneath the Sultantree.json | 3 --- .../MSQ-1/Ul'dah/551_Duty, Honor, Country.json | 3 --- .../514_Into the Beast's Maw.json | 3 --- .../832_The Things We Do for Cheese.json | 3 --- .../MSQ-2/B4-Titan/857_Lord of Crags.json | 3 --- .../952_In Pursuit of the Past.json | 3 --- .../967_History Repeating.json | 3 --- .../1005_Every Little Thing She Does Is Magitek.json | 3 --- .../MSQ-2/C9-Ultimate Weapon/3873_Rock the Castrum.json | 3 --- .../MSQ-2/C9-Ultimate Weapon/4521_Operation Archon.json | 3 --- .../MSQ-2/C9-Ultimate Weapon/4522_The Ultimate Weapon.json | 4 ---- .../MSQ-2/E2-2.2/1361_Lord of the Whorl.json | 3 --- .../MSQ-2/E3-2.3/3885_Levin an Impression.json | 3 --- .../Unlocks/Dungeons/1128_Shadows Uncast (Maelstrom).json | 3 --- .../Unlocks/Dungeons/1129_Shadows Uncast (Twin Adder).json | 3 --- .../Dungeons/1130_Shadows Uncast (Immortal Flames).json | 3 --- .../A7-Azys Lla/1667_Close Encounters of the VIth Kind.json | 3 --- .../MSQ/H-4.55/3185_A Requiem for Heroes.json | 3 --- .../MSQ/A4-Crystarium 2/3300_The Lightwardens.json | 3 --- .../MSQ/B-Il Mheg/3305_The Oracle of Light.json | 3 --- .../MSQ/B-Il Mheg/3312_The Key to the Castle.json | 3 --- .../MSQ/B-Il Mheg/3320_Acht-la Ormh Inn.json | 3 --- .../MSQ/C-Rak'tika/3340_The Burden of Knowledge.json | 3 --- .../MSQ/D-Amh Araeng 2/3619_Full Steam Ahead.json | 3 --- .../MSQ/D-Amh Araeng 2/3621_A Fresh Start.json | 3 --- .../MSQ/E-Kholusia 2/3631_A Feast of Lies.json | 3 --- .../MSQ/E-Kholusia 2/3643_Extinguishing the Last Light.json | 4 ---- .../MSQ/F-Tempest/3654_Shadowbringers.json | 4 ---- .../MSQ/G-5.1/3674_A Grand Adventure.json | 3 --- .../MSQ/G-5.1/3682_Vows of Virtue, Deeds of Cruelty.json | 3 --- .../MSQ/H-5.2/3769_Beneath the Surface.json | 3 --- .../5.x - Shadowbringers/MSQ/I-5.3/3775_Faded Memories.json | 3 --- .../MSQ/I-5.3/3777_The Converging Light.json | 3 --- .../MSQ/I-5.3/3778_Hope's Confluence.json | 3 --- .../MSQ/J-5.4/4011_Like Master, Like Pupil.json | 3 --- .../MSQ/J-5.4/4015_The Great Ship Vylbrand.json | 3 --- .../MSQ/K-5.5/4062_The Flames of War.json | 3 --- .../MSQ/L-5.55/4066_Death Unto Dawn.json | 3 --- .../4377_In the Dark of the Tower.json | 3 --- .../MSQ/B-Garlemald/4383_A Frosty Reception.json | 3 --- .../MSQ/B-Garlemald/4394_In from the Cold.json | 3 --- .../MSQ/B-Garlemald/4395_Gateway of the Gods.json | 3 --- .../6.x - Endwalker/MSQ/B-Garlemald/4398_The Martyr.json | 3 --- .../6.x - Endwalker/MSQ/D-Thavnair2/4409_Skies Aflame.json | 3 --- .../MSQ/E-Elpis/4432_Worthy of His Back.json | 3 --- .../MSQ/E-Elpis/4437_Caging the Messenger.json | 3 --- .../MSQ/F-Labyrinthos2/4439_As the Heavens Burn.json | 3 --- .../MSQ/F-Labyrinthos2/4449_Her Children One and All.json | 4 ---- .../6.x - Endwalker/MSQ/G-UltimaThule/4464_Endwalker.json | 5 ----- .../6.x - Endwalker/MSQ/H-6.1/4529_Alzadaals Legacy.json | 3 --- .../6.x - Endwalker/MSQ/I-6.2/4592_In Search of Azdaja.json | 3 --- .../MSQ/I-6.2/4594_Where Everything Begins.json | 3 --- .../6.x - Endwalker/MSQ/I-6.2/4597_The Wind Rises.json | 3 --- .../MSQ/J-6.3/4673_An Unforeseen Bargain.json | 3 --- .../MSQ/J-6.3/4674_King of the Mountain.json | 3 --- .../6.x - Endwalker/MSQ/J-6.3/4677_Desires Untold.json | 3 --- QuestPaths/6.x - Endwalker/MSQ/K-6.4/4736_Going Haam.json | 3 --- QuestPaths/6.x - Endwalker/MSQ/K-6.4/4742_Abyssal Dark.json | 3 --- .../6.x - Endwalker/MSQ/L-6.5/4748_Down in the Dark.json | 4 ---- .../6.x - Endwalker/MSQ/M-6.55/4752_The Game Is Afoot.json | 3 --- .../Class Quests/VPR/4849_Fangs of the Viper.json | 3 --- .../MSQ/A-Kozama'uka1-Urqopacha1/4879_For All Turali.json | 3 --- .../B-Kozama'uka2-Urqopacha2/4891_The High Luminary.json | 3 --- .../MSQ/B-Kozama'uka2-Urqopacha2/4894_The Skyruin.json | 3 --- .../7.x - Dawntrail/MSQ/C-Yak T'el/4902_Taking a Stand.json | 3 --- .../MSQ/C-Yak T'el/4908_The Feat of Brotherhood.json | 3 --- .../MSQ/C-Yak T'el/4909_Road to the Golden City.json | 3 --- .../MSQ/D-Shaaloani-HeritageFound1/4926_All Aboard.json | 3 --- .../4942_The Protector and the Destroyer.json | 3 --- .../4945_The Resilient Son.json | 4 ---- .../7.x - Dawntrail/MSQ/F-Living Memory/4959_Dawntrail.json | 4 ---- .../Raid Quests/4961_The Claw in the Dark.json | 3 --- .../7.x - Dawntrail/Raid Quests/4962_Sweet Poison.json | 3 --- QuestPaths/7.x - Dawntrail/Raid Quests/4964_Vile Heat.json | 3 --- .../Raid Quests/4965_The Neoteric Witch.json | 3 --- .../Magical Ranged/4847_Heroes and Pretenders.json | 3 --- .../Physical Ranged/4841_The Mightiest Shield.json | 3 --- .../Role Quests/Tank/4823_Dreams of a New Day.json | 3 --- .../Dungeons/5014_Something Stray in the Neighborhood.json | 3 --- QuestPaths/quest-v1.json | 6 ------ Questionable.Model/Questing/QuestRoot.cs | 1 - Questionable/Controller/QuestController.cs | 3 --- Questionable/Windows/QuestWindow.cs | 3 +-- 95 files changed, 1 insertion(+), 296 deletions(-) diff --git a/QuestPathGenerator/QuestSourceGenerator.cs b/QuestPathGenerator/QuestSourceGenerator.cs index bcf960f36..b23bb9dae 100644 --- a/QuestPathGenerator/QuestSourceGenerator.cs +++ b/QuestPathGenerator/QuestSourceGenerator.cs @@ -57,7 +57,6 @@ public class QuestSourceGenerator : ISourceGenerator { quest.Author = []; quest.QuestSequence = []; - quest.TerritoryBlacklist = []; } quests.Add((id, quest)); @@ -165,8 +164,6 @@ public class QuestSourceGenerator : ISourceGenerator Assignment(nameof(QuestRoot.Disabled), quest.Disabled, false).AsSyntaxNodeOrToken(), Assignment(nameof(QuestRoot.Comment), quest.Comment, null) .AsSyntaxNodeOrToken(), - AssignmentList(nameof(QuestRoot.TerritoryBlacklist), - quest.TerritoryBlacklist).AsSyntaxNodeOrToken(), AssignmentExpression( SyntaxKind.SimpleAssignmentExpression, IdentifierName(nameof(QuestRoot.QuestSequence)), diff --git a/QuestPaths/2.x - A Realm Reborn/Alliance Raid Quests/494_The World of Darkness.json b/QuestPaths/2.x - A Realm Reborn/Alliance Raid Quests/494_The World of Darkness.json index 82facbb5f..9fec034e1 100644 --- a/QuestPaths/2.x - A Realm Reborn/Alliance Raid Quests/494_The World of Darkness.json +++ b/QuestPaths/2.x - A Realm Reborn/Alliance Raid Quests/494_The World of Darkness.json @@ -1,9 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "JerryWester", - "TerritoryBlacklist": [ - 151 - ], "QuestSequence": [ { "Sequence": 0, diff --git a/QuestPaths/2.x - A Realm Reborn/MSQ-1/Gridania/129_Spirithold Broken.json b/QuestPaths/2.x - A Realm Reborn/MSQ-1/Gridania/129_Spirithold Broken.json index e687b40cc..8c7b51e10 100644 --- a/QuestPaths/2.x - A Realm Reborn/MSQ-1/Gridania/129_Spirithold Broken.json +++ b/QuestPaths/2.x - A Realm Reborn/MSQ-1/Gridania/129_Spirithold Broken.json @@ -1,9 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", - "TerritoryBlacklist": [ - 225 - ], "QuestSequence": [ { "Sequence": 0, diff --git a/QuestPaths/2.x - A Realm Reborn/MSQ-1/Gridania/445_Chasing Shadows.json b/QuestPaths/2.x - A Realm Reborn/MSQ-1/Gridania/445_Chasing Shadows.json index 5eebced74..d59a446c9 100644 --- a/QuestPaths/2.x - A Realm Reborn/MSQ-1/Gridania/445_Chasing Shadows.json +++ b/QuestPaths/2.x - A Realm Reborn/MSQ-1/Gridania/445_Chasing Shadows.json @@ -1,9 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", - "TerritoryBlacklist": [ - 233 - ], "QuestSequence": [ { "Sequence": 0, diff --git a/QuestPaths/2.x - A Realm Reborn/MSQ-1/Limsa/414_Victory in Peril.json b/QuestPaths/2.x - A Realm Reborn/MSQ-1/Limsa/414_Victory in Peril.json index b4a19a725..05886053a 100644 --- a/QuestPaths/2.x - A Realm Reborn/MSQ-1/Limsa/414_Victory in Peril.json +++ b/QuestPaths/2.x - A Realm Reborn/MSQ-1/Limsa/414_Victory in Peril.json @@ -1,9 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", - "TerritoryBlacklist": [ - 249 - ], "QuestSequence": [ { "Sequence": 0, diff --git a/QuestPaths/2.x - A Realm Reborn/MSQ-1/Limsa/469_Just Deserts.json b/QuestPaths/2.x - A Realm Reborn/MSQ-1/Limsa/469_Just Deserts.json index 83d0dd967..62476d4e7 100644 --- a/QuestPaths/2.x - A Realm Reborn/MSQ-1/Limsa/469_Just Deserts.json +++ b/QuestPaths/2.x - A Realm Reborn/MSQ-1/Limsa/469_Just Deserts.json @@ -1,9 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", - "TerritoryBlacklist": [ - 272 - ], "QuestSequence": [ { "Sequence": 0, diff --git a/QuestPaths/2.x - A Realm Reborn/MSQ-1/Limsa/543_Lurkers in the Grotto.json b/QuestPaths/2.x - A Realm Reborn/MSQ-1/Limsa/543_Lurkers in the Grotto.json index 6c4e8377a..8e6aad406 100644 --- a/QuestPaths/2.x - A Realm Reborn/MSQ-1/Limsa/543_Lurkers in the Grotto.json +++ b/QuestPaths/2.x - A Realm Reborn/MSQ-1/Limsa/543_Lurkers in the Grotto.json @@ -1,9 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", - "TerritoryBlacklist": [ - 252 - ], "QuestSequence": [ { "Sequence": 0, diff --git a/QuestPaths/2.x - A Realm Reborn/MSQ-1/Limsa/544_Feint and Strike.json b/QuestPaths/2.x - A Realm Reborn/MSQ-1/Limsa/544_Feint and Strike.json index b12023a30..e812ae0f1 100644 --- a/QuestPaths/2.x - A Realm Reborn/MSQ-1/Limsa/544_Feint and Strike.json +++ b/QuestPaths/2.x - A Realm Reborn/MSQ-1/Limsa/544_Feint and Strike.json @@ -1,9 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", - "TerritoryBlacklist": [ - 280 - ], "QuestSequence": [ { "Sequence": 0, diff --git a/QuestPaths/2.x - A Realm Reborn/MSQ-1/Shared/245_It's Probably Pirates.json b/QuestPaths/2.x - A Realm Reborn/MSQ-1/Shared/245_It's Probably Pirates.json index 2abe3f675..8a3522540 100644 --- a/QuestPaths/2.x - A Realm Reborn/MSQ-1/Shared/245_It's Probably Pirates.json +++ b/QuestPaths/2.x - A Realm Reborn/MSQ-1/Shared/245_It's Probably Pirates.json @@ -1,9 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", - "TerritoryBlacklist": [ - 1036 - ], "QuestSequence": [ { "Sequence": 0, diff --git a/QuestPaths/2.x - A Realm Reborn/MSQ-1/Shared/343_Lord of the Inferno.json b/QuestPaths/2.x - A Realm Reborn/MSQ-1/Shared/343_Lord of the Inferno.json index 0b6de9a4a..ff980ffa8 100644 --- a/QuestPaths/2.x - A Realm Reborn/MSQ-1/Shared/343_Lord of the Inferno.json +++ b/QuestPaths/2.x - A Realm Reborn/MSQ-1/Shared/343_Lord of the Inferno.json @@ -1,10 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", - "TerritoryBlacklist": [ - 275, - 1045 - ], "QuestSequence": [ { "Sequence": 0, diff --git a/QuestPaths/2.x - A Realm Reborn/MSQ-1/Shared/660_Into a Copper Hell.json b/QuestPaths/2.x - A Realm Reborn/MSQ-1/Shared/660_Into a Copper Hell.json index 83960d585..b6f45f31c 100644 --- a/QuestPaths/2.x - A Realm Reborn/MSQ-1/Shared/660_Into a Copper Hell.json +++ b/QuestPaths/2.x - A Realm Reborn/MSQ-1/Shared/660_Into a Copper Hell.json @@ -1,10 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", - "TerritoryBlacklist": [ - 1038, - 274 - ], "QuestSequence": [ { "Sequence": 0, diff --git a/QuestPaths/2.x - A Realm Reborn/MSQ-1/Shared/677_Fire in the Gloom.json b/QuestPaths/2.x - A Realm Reborn/MSQ-1/Shared/677_Fire in the Gloom.json index f62baef3c..7340e66a7 100644 --- a/QuestPaths/2.x - A Realm Reborn/MSQ-1/Shared/677_Fire in the Gloom.json +++ b/QuestPaths/2.x - A Realm Reborn/MSQ-1/Shared/677_Fire in the Gloom.json @@ -1,9 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", - "TerritoryBlacklist": [ - 1037 - ], "QuestSequence": [ { "Sequence": 0, diff --git a/QuestPaths/2.x - A Realm Reborn/MSQ-1/Ul'dah/550_Underneath the Sultantree.json b/QuestPaths/2.x - A Realm Reborn/MSQ-1/Ul'dah/550_Underneath the Sultantree.json index 5446546ef..c12bda58a 100644 --- a/QuestPaths/2.x - A Realm Reborn/MSQ-1/Ul'dah/550_Underneath the Sultantree.json +++ b/QuestPaths/2.x - A Realm Reborn/MSQ-1/Ul'dah/550_Underneath the Sultantree.json @@ -1,9 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", - "TerritoryBlacklist": [ - 270 - ], "QuestSequence": [ { "Sequence": 0, diff --git a/QuestPaths/2.x - A Realm Reborn/MSQ-1/Ul'dah/551_Duty, Honor, Country.json b/QuestPaths/2.x - A Realm Reborn/MSQ-1/Ul'dah/551_Duty, Honor, Country.json index 016fb60c1..c16c22b97 100644 --- a/QuestPaths/2.x - A Realm Reborn/MSQ-1/Ul'dah/551_Duty, Honor, Country.json +++ b/QuestPaths/2.x - A Realm Reborn/MSQ-1/Ul'dah/551_Duty, Honor, Country.json @@ -1,9 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", - "TerritoryBlacklist": [ - 271 - ], "QuestSequence": [ { "Sequence": 0, diff --git a/QuestPaths/2.x - A Realm Reborn/MSQ-2/A3-South Shroud, Buscarron’s Druthers/514_Into the Beast's Maw.json b/QuestPaths/2.x - A Realm Reborn/MSQ-2/A3-South Shroud, Buscarron’s Druthers/514_Into the Beast's Maw.json index 12924d715..cf0acff26 100644 --- a/QuestPaths/2.x - A Realm Reborn/MSQ-2/A3-South Shroud, Buscarron’s Druthers/514_Into the Beast's Maw.json +++ b/QuestPaths/2.x - A Realm Reborn/MSQ-2/A3-South Shroud, Buscarron’s Druthers/514_Into the Beast's Maw.json @@ -1,9 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "JerryWester", - "TerritoryBlacklist": [ - 1039 - ], "QuestSequence": [ { "Sequence": 0, diff --git a/QuestPaths/2.x - A Realm Reborn/MSQ-2/B2-Eastern La Noscea, Brayflox, Cheese and Wine/832_The Things We Do for Cheese.json b/QuestPaths/2.x - A Realm Reborn/MSQ-2/B2-Eastern La Noscea, Brayflox, Cheese and Wine/832_The Things We Do for Cheese.json index 61cf091c1..bcb40f054 100644 --- a/QuestPaths/2.x - A Realm Reborn/MSQ-2/B2-Eastern La Noscea, Brayflox, Cheese and Wine/832_The Things We Do for Cheese.json +++ b/QuestPaths/2.x - A Realm Reborn/MSQ-2/B2-Eastern La Noscea, Brayflox, Cheese and Wine/832_The Things We Do for Cheese.json @@ -1,9 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "JerryWester", - "TerritoryBlacklist": [ - 1041 - ], "QuestSequence": [ { "Sequence": 0, diff --git a/QuestPaths/2.x - A Realm Reborn/MSQ-2/B4-Titan/857_Lord of Crags.json b/QuestPaths/2.x - A Realm Reborn/MSQ-2/B4-Titan/857_Lord of Crags.json index 28997d993..e08981891 100644 --- a/QuestPaths/2.x - A Realm Reborn/MSQ-2/B4-Titan/857_Lord of Crags.json +++ b/QuestPaths/2.x - A Realm Reborn/MSQ-2/B4-Titan/857_Lord of Crags.json @@ -1,9 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "JerryWester", - "TerritoryBlacklist": [ - 1046 - ], "QuestSequence": [ { "Sequence": 0, diff --git a/QuestPaths/2.x - A Realm Reborn/MSQ-2/C1-Coerthas Central Highlands, The Enterprise/952_In Pursuit of the Past.json b/QuestPaths/2.x - A Realm Reborn/MSQ-2/C1-Coerthas Central Highlands, The Enterprise/952_In Pursuit of the Past.json index ce945842d..ad446eeb1 100644 --- a/QuestPaths/2.x - A Realm Reborn/MSQ-2/C1-Coerthas Central Highlands, The Enterprise/952_In Pursuit of the Past.json +++ b/QuestPaths/2.x - A Realm Reborn/MSQ-2/C1-Coerthas Central Highlands, The Enterprise/952_In Pursuit of the Past.json @@ -1,9 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "JerryWester", - "TerritoryBlacklist": [ - 1042 - ], "QuestSequence": [ { "Sequence": 0, diff --git a/QuestPaths/2.x - A Realm Reborn/MSQ-2/C2-Western La Noscea, Isles of Umbra/967_History Repeating.json b/QuestPaths/2.x - A Realm Reborn/MSQ-2/C2-Western La Noscea, Isles of Umbra/967_History Repeating.json index 087bbfcaa..931e753c2 100644 --- a/QuestPaths/2.x - A Realm Reborn/MSQ-2/C2-Western La Noscea, Isles of Umbra/967_History Repeating.json +++ b/QuestPaths/2.x - A Realm Reborn/MSQ-2/C2-Western La Noscea, Isles of Umbra/967_History Repeating.json @@ -1,9 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "JerryWester", - "TerritoryBlacklist": [ - 330 - ], "QuestSequence": [ { "Sequence": 0, diff --git a/QuestPaths/2.x - A Realm Reborn/MSQ-2/C6-Mor Dhona/1005_Every Little Thing She Does Is Magitek.json b/QuestPaths/2.x - A Realm Reborn/MSQ-2/C6-Mor Dhona/1005_Every Little Thing She Does Is Magitek.json index 762c7e024..07af74fb9 100644 --- a/QuestPaths/2.x - A Realm Reborn/MSQ-2/C6-Mor Dhona/1005_Every Little Thing She Does Is Magitek.json +++ b/QuestPaths/2.x - A Realm Reborn/MSQ-2/C6-Mor Dhona/1005_Every Little Thing She Does Is Magitek.json @@ -1,9 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "JerryWester", - "TerritoryBlacklist": [ - 309 - ], "QuestSequence": [ { "Sequence": 0, diff --git a/QuestPaths/2.x - A Realm Reborn/MSQ-2/C9-Ultimate Weapon/3873_Rock the Castrum.json b/QuestPaths/2.x - A Realm Reborn/MSQ-2/C9-Ultimate Weapon/3873_Rock the Castrum.json index b45a155b5..f7d746fe6 100644 --- a/QuestPaths/2.x - A Realm Reborn/MSQ-2/C9-Ultimate Weapon/3873_Rock the Castrum.json +++ b/QuestPaths/2.x - A Realm Reborn/MSQ-2/C9-Ultimate Weapon/3873_Rock the Castrum.json @@ -1,9 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "JerryWester", - "TerritoryBlacklist": [ - 1043 - ], "QuestSequence": [ { "Sequence": 0, diff --git a/QuestPaths/2.x - A Realm Reborn/MSQ-2/C9-Ultimate Weapon/4521_Operation Archon.json b/QuestPaths/2.x - A Realm Reborn/MSQ-2/C9-Ultimate Weapon/4521_Operation Archon.json index f56eca2f0..81c32c864 100644 --- a/QuestPaths/2.x - A Realm Reborn/MSQ-2/C9-Ultimate Weapon/4521_Operation Archon.json +++ b/QuestPaths/2.x - A Realm Reborn/MSQ-2/C9-Ultimate Weapon/4521_Operation Archon.json @@ -1,9 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "JerryWester", - "TerritoryBlacklist": [ - 1049 - ], "QuestSequence": [ { "Sequence": 0, diff --git a/QuestPaths/2.x - A Realm Reborn/MSQ-2/C9-Ultimate Weapon/4522_The Ultimate Weapon.json b/QuestPaths/2.x - A Realm Reborn/MSQ-2/C9-Ultimate Weapon/4522_The Ultimate Weapon.json index d2255ab98..c878f58b6 100644 --- a/QuestPaths/2.x - A Realm Reborn/MSQ-2/C9-Ultimate Weapon/4522_The Ultimate Weapon.json +++ b/QuestPaths/2.x - A Realm Reborn/MSQ-2/C9-Ultimate Weapon/4522_The Ultimate Weapon.json @@ -1,10 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "JerryWester", - "TerritoryBlacklist": [ - 1044, - 1048 - ], "QuestSequence": [ { "Sequence": 0, diff --git a/QuestPaths/2.x - A Realm Reborn/MSQ-2/E2-2.2/1361_Lord of the Whorl.json b/QuestPaths/2.x - A Realm Reborn/MSQ-2/E2-2.2/1361_Lord of the Whorl.json index 1dfcc6729..c030ff43f 100644 --- a/QuestPaths/2.x - A Realm Reborn/MSQ-2/E2-2.2/1361_Lord of the Whorl.json +++ b/QuestPaths/2.x - A Realm Reborn/MSQ-2/E2-2.2/1361_Lord of the Whorl.json @@ -1,9 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "JerryWester", - "TerritoryBlacklist": [ - 281 - ], "QuestSequence": [ { "Sequence": 0, diff --git a/QuestPaths/2.x - A Realm Reborn/MSQ-2/E3-2.3/3885_Levin an Impression.json b/QuestPaths/2.x - A Realm Reborn/MSQ-2/E3-2.3/3885_Levin an Impression.json index 488ad1ea8..fcafa039a 100644 --- a/QuestPaths/2.x - A Realm Reborn/MSQ-2/E3-2.3/3885_Levin an Impression.json +++ b/QuestPaths/2.x - A Realm Reborn/MSQ-2/E3-2.3/3885_Levin an Impression.json @@ -1,9 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "JerryWester", - "TerritoryBlacklist": [ - 374 - ], "QuestSequence": [ { "Sequence": 0, diff --git a/QuestPaths/2.x - A Realm Reborn/Unlocks/Dungeons/1128_Shadows Uncast (Maelstrom).json b/QuestPaths/2.x - A Realm Reborn/Unlocks/Dungeons/1128_Shadows Uncast (Maelstrom).json index 19a06dada..69dff9a12 100644 --- a/QuestPaths/2.x - A Realm Reborn/Unlocks/Dungeons/1128_Shadows Uncast (Maelstrom).json +++ b/QuestPaths/2.x - A Realm Reborn/Unlocks/Dungeons/1128_Shadows Uncast (Maelstrom).json @@ -1,9 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", - "TerritoryBlacklist": [ - 171 - ], "QuestSequence": [ { "Sequence": 0, diff --git a/QuestPaths/2.x - A Realm Reborn/Unlocks/Dungeons/1129_Shadows Uncast (Twin Adder).json b/QuestPaths/2.x - A Realm Reborn/Unlocks/Dungeons/1129_Shadows Uncast (Twin Adder).json index b1b7beb35..bb2006b85 100644 --- a/QuestPaths/2.x - A Realm Reborn/Unlocks/Dungeons/1129_Shadows Uncast (Twin Adder).json +++ b/QuestPaths/2.x - A Realm Reborn/Unlocks/Dungeons/1129_Shadows Uncast (Twin Adder).json @@ -1,9 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", - "TerritoryBlacklist": [ - 171 - ], "QuestSequence": [ { "Sequence": 0, diff --git a/QuestPaths/2.x - A Realm Reborn/Unlocks/Dungeons/1130_Shadows Uncast (Immortal Flames).json b/QuestPaths/2.x - A Realm Reborn/Unlocks/Dungeons/1130_Shadows Uncast (Immortal Flames).json index 90c6b7d51..76187f73b 100644 --- a/QuestPaths/2.x - A Realm Reborn/Unlocks/Dungeons/1130_Shadows Uncast (Immortal Flames).json +++ b/QuestPaths/2.x - A Realm Reborn/Unlocks/Dungeons/1130_Shadows Uncast (Immortal Flames).json @@ -1,9 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", - "TerritoryBlacklist": [ - 171 - ], "QuestSequence": [ { "Sequence": 0, diff --git a/QuestPaths/3.x - Heavensward/MSQ/A7-Azys Lla/1667_Close Encounters of the VIth Kind.json b/QuestPaths/3.x - Heavensward/MSQ/A7-Azys Lla/1667_Close Encounters of the VIth Kind.json index 79d9235b6..907bdd453 100644 --- a/QuestPaths/3.x - Heavensward/MSQ/A7-Azys Lla/1667_Close Encounters of the VIth Kind.json +++ b/QuestPaths/3.x - Heavensward/MSQ/A7-Azys Lla/1667_Close Encounters of the VIth Kind.json @@ -1,9 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "JerryWester", - "TerritoryBlacklist": [ - 459 - ], "QuestSequence": [ { "Sequence": 0, diff --git a/QuestPaths/4.x - Stormblood/MSQ/H-4.55/3185_A Requiem for Heroes.json b/QuestPaths/4.x - Stormblood/MSQ/H-4.55/3185_A Requiem for Heroes.json index fdb4747b5..57a652e9d 100644 --- a/QuestPaths/4.x - Stormblood/MSQ/H-4.55/3185_A Requiem for Heroes.json +++ b/QuestPaths/4.x - Stormblood/MSQ/H-4.55/3185_A Requiem for Heroes.json @@ -1,9 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", - "TerritoryBlacklist": [ - 830 - ], "QuestSequence": [ { "Sequence": 0, diff --git a/QuestPaths/5.x - Shadowbringers/MSQ/A4-Crystarium 2/3300_The Lightwardens.json b/QuestPaths/5.x - Shadowbringers/MSQ/A4-Crystarium 2/3300_The Lightwardens.json index e889192d2..d4eef79d6 100644 --- a/QuestPaths/5.x - Shadowbringers/MSQ/A4-Crystarium 2/3300_The Lightwardens.json +++ b/QuestPaths/5.x - Shadowbringers/MSQ/A4-Crystarium 2/3300_The Lightwardens.json @@ -1,9 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", - "TerritoryBlacklist": [ - 837 - ], "QuestSequence": [ { "Sequence": 0, diff --git a/QuestPaths/5.x - Shadowbringers/MSQ/B-Il Mheg/3305_The Oracle of Light.json b/QuestPaths/5.x - Shadowbringers/MSQ/B-Il Mheg/3305_The Oracle of Light.json index 92bd076be..695679a70 100644 --- a/QuestPaths/5.x - Shadowbringers/MSQ/B-Il Mheg/3305_The Oracle of Light.json +++ b/QuestPaths/5.x - Shadowbringers/MSQ/B-Il Mheg/3305_The Oracle of Light.json @@ -1,9 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", - "TerritoryBlacklist": [ - 861 - ], "QuestSequence": [ { "Sequence": 0, diff --git a/QuestPaths/5.x - Shadowbringers/MSQ/B-Il Mheg/3312_The Key to the Castle.json b/QuestPaths/5.x - Shadowbringers/MSQ/B-Il Mheg/3312_The Key to the Castle.json index 226f762c5..8f5193b0b 100644 --- a/QuestPaths/5.x - Shadowbringers/MSQ/B-Il Mheg/3312_The Key to the Castle.json +++ b/QuestPaths/5.x - Shadowbringers/MSQ/B-Il Mheg/3312_The Key to the Castle.json @@ -1,9 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", - "TerritoryBlacklist": [ - 821 - ], "QuestSequence": [ { "Sequence": 0, diff --git a/QuestPaths/5.x - Shadowbringers/MSQ/B-Il Mheg/3320_Acht-la Ormh Inn.json b/QuestPaths/5.x - Shadowbringers/MSQ/B-Il Mheg/3320_Acht-la Ormh Inn.json index 9343449ab..28fb3a341 100644 --- a/QuestPaths/5.x - Shadowbringers/MSQ/B-Il Mheg/3320_Acht-la Ormh Inn.json +++ b/QuestPaths/5.x - Shadowbringers/MSQ/B-Il Mheg/3320_Acht-la Ormh Inn.json @@ -1,9 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", - "TerritoryBlacklist": [ - 845 - ], "QuestSequence": [ { "Sequence": 0, diff --git a/QuestPaths/5.x - Shadowbringers/MSQ/C-Rak'tika/3340_The Burden of Knowledge.json b/QuestPaths/5.x - Shadowbringers/MSQ/C-Rak'tika/3340_The Burden of Knowledge.json index 63ebecdc6..075dff0cc 100644 --- a/QuestPaths/5.x - Shadowbringers/MSQ/C-Rak'tika/3340_The Burden of Knowledge.json +++ b/QuestPaths/5.x - Shadowbringers/MSQ/C-Rak'tika/3340_The Burden of Knowledge.json @@ -1,9 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", - "TerritoryBlacklist": [ - 823 - ], "QuestSequence": [ { "Sequence": 0, diff --git a/QuestPaths/5.x - Shadowbringers/MSQ/D-Amh Araeng 2/3619_Full Steam Ahead.json b/QuestPaths/5.x - Shadowbringers/MSQ/D-Amh Araeng 2/3619_Full Steam Ahead.json index 4a39fbd5b..425b0c747 100644 --- a/QuestPaths/5.x - Shadowbringers/MSQ/D-Amh Araeng 2/3619_Full Steam Ahead.json +++ b/QuestPaths/5.x - Shadowbringers/MSQ/D-Amh Araeng 2/3619_Full Steam Ahead.json @@ -1,9 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", - "TerritoryBlacklist": [ - 860 - ], "QuestSequence": [ { "Sequence": 0, diff --git a/QuestPaths/5.x - Shadowbringers/MSQ/D-Amh Araeng 2/3621_A Fresh Start.json b/QuestPaths/5.x - Shadowbringers/MSQ/D-Amh Araeng 2/3621_A Fresh Start.json index f33c24e05..6018d53d2 100644 --- a/QuestPaths/5.x - Shadowbringers/MSQ/D-Amh Araeng 2/3621_A Fresh Start.json +++ b/QuestPaths/5.x - Shadowbringers/MSQ/D-Amh Araeng 2/3621_A Fresh Start.json @@ -1,9 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", - "TerritoryBlacklist": [ - 836 - ], "QuestSequence": [ { "Sequence": 0, diff --git a/QuestPaths/5.x - Shadowbringers/MSQ/E-Kholusia 2/3631_A Feast of Lies.json b/QuestPaths/5.x - Shadowbringers/MSQ/E-Kholusia 2/3631_A Feast of Lies.json index 0060a0884..7eee6e713 100644 --- a/QuestPaths/5.x - Shadowbringers/MSQ/E-Kholusia 2/3631_A Feast of Lies.json +++ b/QuestPaths/5.x - Shadowbringers/MSQ/E-Kholusia 2/3631_A Feast of Lies.json @@ -1,9 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", - "TerritoryBlacklist": [ - 863 - ], "QuestSequence": [ { "Sequence": 0, diff --git a/QuestPaths/5.x - Shadowbringers/MSQ/E-Kholusia 2/3643_Extinguishing the Last Light.json b/QuestPaths/5.x - Shadowbringers/MSQ/E-Kholusia 2/3643_Extinguishing the Last Light.json index 67b106f2f..9ee12fd73 100644 --- a/QuestPaths/5.x - Shadowbringers/MSQ/E-Kholusia 2/3643_Extinguishing the Last Light.json +++ b/QuestPaths/5.x - Shadowbringers/MSQ/E-Kholusia 2/3643_Extinguishing the Last Light.json @@ -1,10 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", - "TerritoryBlacklist": [ - 822, - 846 - ], "QuestSequence": [ { "Sequence": 0, diff --git a/QuestPaths/5.x - Shadowbringers/MSQ/F-Tempest/3654_Shadowbringers.json b/QuestPaths/5.x - Shadowbringers/MSQ/F-Tempest/3654_Shadowbringers.json index 40480ce7c..eb439d5f9 100644 --- a/QuestPaths/5.x - Shadowbringers/MSQ/F-Tempest/3654_Shadowbringers.json +++ b/QuestPaths/5.x - Shadowbringers/MSQ/F-Tempest/3654_Shadowbringers.json @@ -1,10 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", - "TerritoryBlacklist": [ - 838, - 847 - ], "QuestSequence": [ { "Sequence": 0, diff --git a/QuestPaths/5.x - Shadowbringers/MSQ/G-5.1/3674_A Grand Adventure.json b/QuestPaths/5.x - Shadowbringers/MSQ/G-5.1/3674_A Grand Adventure.json index bee1224a8..bb3162757 100644 --- a/QuestPaths/5.x - Shadowbringers/MSQ/G-5.1/3674_A Grand Adventure.json +++ b/QuestPaths/5.x - Shadowbringers/MSQ/G-5.1/3674_A Grand Adventure.json @@ -1,9 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", - "TerritoryBlacklist": [ - 884 - ], "QuestSequence": [ { "Sequence": 0, diff --git a/QuestPaths/5.x - Shadowbringers/MSQ/G-5.1/3682_Vows of Virtue, Deeds of Cruelty.json b/QuestPaths/5.x - Shadowbringers/MSQ/G-5.1/3682_Vows of Virtue, Deeds of Cruelty.json index b9298647a..c8a671c33 100644 --- a/QuestPaths/5.x - Shadowbringers/MSQ/G-5.1/3682_Vows of Virtue, Deeds of Cruelty.json +++ b/QuestPaths/5.x - Shadowbringers/MSQ/G-5.1/3682_Vows of Virtue, Deeds of Cruelty.json @@ -1,9 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", - "TerritoryBlacklist": [ - 893 - ], "QuestSequence": [ { "Sequence": 0, diff --git a/QuestPaths/5.x - Shadowbringers/MSQ/H-5.2/3769_Beneath the Surface.json b/QuestPaths/5.x - Shadowbringers/MSQ/H-5.2/3769_Beneath the Surface.json index 5c1fed1b9..c947dc964 100644 --- a/QuestPaths/5.x - Shadowbringers/MSQ/H-5.2/3769_Beneath the Surface.json +++ b/QuestPaths/5.x - Shadowbringers/MSQ/H-5.2/3769_Beneath the Surface.json @@ -1,9 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", - "TerritoryBlacklist": [ - 898 - ], "QuestSequence": [ { "Sequence": 0, diff --git a/QuestPaths/5.x - Shadowbringers/MSQ/I-5.3/3775_Faded Memories.json b/QuestPaths/5.x - Shadowbringers/MSQ/I-5.3/3775_Faded Memories.json index ed00c176f..9bd052233 100644 --- a/QuestPaths/5.x - Shadowbringers/MSQ/I-5.3/3775_Faded Memories.json +++ b/QuestPaths/5.x - Shadowbringers/MSQ/I-5.3/3775_Faded Memories.json @@ -1,9 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", - "TerritoryBlacklist": [ - 932 - ], "QuestSequence": [ { "Sequence": 0, diff --git a/QuestPaths/5.x - Shadowbringers/MSQ/I-5.3/3777_The Converging Light.json b/QuestPaths/5.x - Shadowbringers/MSQ/I-5.3/3777_The Converging Light.json index e6b53036e..70ed34485 100644 --- a/QuestPaths/5.x - Shadowbringers/MSQ/I-5.3/3777_The Converging Light.json +++ b/QuestPaths/5.x - Shadowbringers/MSQ/I-5.3/3777_The Converging Light.json @@ -1,9 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", - "TerritoryBlacklist": [ - 916 - ], "QuestSequence": [ { "Sequence": 0, diff --git a/QuestPaths/5.x - Shadowbringers/MSQ/I-5.3/3778_Hope's Confluence.json b/QuestPaths/5.x - Shadowbringers/MSQ/I-5.3/3778_Hope's Confluence.json index 553634bd6..a0daf4443 100644 --- a/QuestPaths/5.x - Shadowbringers/MSQ/I-5.3/3778_Hope's Confluence.json +++ b/QuestPaths/5.x - Shadowbringers/MSQ/I-5.3/3778_Hope's Confluence.json @@ -1,9 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", - "TerritoryBlacklist": [ - 922 - ], "QuestSequence": [ { "Sequence": 0, diff --git a/QuestPaths/5.x - Shadowbringers/MSQ/J-5.4/4011_Like Master, Like Pupil.json b/QuestPaths/5.x - Shadowbringers/MSQ/J-5.4/4011_Like Master, Like Pupil.json index 6eb1a7ccd..959276cc3 100644 --- a/QuestPaths/5.x - Shadowbringers/MSQ/J-5.4/4011_Like Master, Like Pupil.json +++ b/QuestPaths/5.x - Shadowbringers/MSQ/J-5.4/4011_Like Master, Like Pupil.json @@ -1,9 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", - "TerritoryBlacklist": [ - 933 - ], "QuestSequence": [ { "Sequence": 0, diff --git a/QuestPaths/5.x - Shadowbringers/MSQ/J-5.4/4015_The Great Ship Vylbrand.json b/QuestPaths/5.x - Shadowbringers/MSQ/J-5.4/4015_The Great Ship Vylbrand.json index c3f2fc989..a906fe10a 100644 --- a/QuestPaths/5.x - Shadowbringers/MSQ/J-5.4/4015_The Great Ship Vylbrand.json +++ b/QuestPaths/5.x - Shadowbringers/MSQ/J-5.4/4015_The Great Ship Vylbrand.json @@ -1,9 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", - "TerritoryBlacklist": [ - 954 - ], "QuestSequence": [ { "Sequence": 0, diff --git a/QuestPaths/5.x - Shadowbringers/MSQ/K-5.5/4062_The Flames of War.json b/QuestPaths/5.x - Shadowbringers/MSQ/K-5.5/4062_The Flames of War.json index bf610ba58..c74e6ed80 100644 --- a/QuestPaths/5.x - Shadowbringers/MSQ/K-5.5/4062_The Flames of War.json +++ b/QuestPaths/5.x - Shadowbringers/MSQ/K-5.5/4062_The Flames of War.json @@ -1,9 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", - "TerritoryBlacklist": [ - 938 - ], "QuestSequence": [ { "Sequence": 0, diff --git a/QuestPaths/5.x - Shadowbringers/MSQ/L-5.55/4066_Death Unto Dawn.json b/QuestPaths/5.x - Shadowbringers/MSQ/L-5.55/4066_Death Unto Dawn.json index 12faa18dd..dee4eaecf 100644 --- a/QuestPaths/5.x - Shadowbringers/MSQ/L-5.55/4066_Death Unto Dawn.json +++ b/QuestPaths/5.x - Shadowbringers/MSQ/L-5.55/4066_Death Unto Dawn.json @@ -1,9 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", - "TerritoryBlacklist": [ - 977 - ], "QuestSequence": [ { "Sequence": 0, diff --git a/QuestPaths/6.x - Endwalker/MSQ/A-Thavnair1-Labyrinthos1/4377_In the Dark of the Tower.json b/QuestPaths/6.x - Endwalker/MSQ/A-Thavnair1-Labyrinthos1/4377_In the Dark of the Tower.json index 024cb04a7..22f2d97ab 100644 --- a/QuestPaths/6.x - Endwalker/MSQ/A-Thavnair1-Labyrinthos1/4377_In the Dark of the Tower.json +++ b/QuestPaths/6.x - Endwalker/MSQ/A-Thavnair1-Labyrinthos1/4377_In the Dark of the Tower.json @@ -1,9 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", - "TerritoryBlacklist": [ - 952 - ], "QuestSequence": [ { "Sequence": 0, diff --git a/QuestPaths/6.x - Endwalker/MSQ/B-Garlemald/4383_A Frosty Reception.json b/QuestPaths/6.x - Endwalker/MSQ/B-Garlemald/4383_A Frosty Reception.json index c79e9a2cf..5169a8f45 100644 --- a/QuestPaths/6.x - Endwalker/MSQ/B-Garlemald/4383_A Frosty Reception.json +++ b/QuestPaths/6.x - Endwalker/MSQ/B-Garlemald/4383_A Frosty Reception.json @@ -1,9 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", - "TerritoryBlacklist": [ - 1010 - ], "QuestSequence": [ { "Sequence": 0, diff --git a/QuestPaths/6.x - Endwalker/MSQ/B-Garlemald/4394_In from the Cold.json b/QuestPaths/6.x - Endwalker/MSQ/B-Garlemald/4394_In from the Cold.json index df2c8baa5..20e3b2b8d 100644 --- a/QuestPaths/6.x - Endwalker/MSQ/B-Garlemald/4394_In from the Cold.json +++ b/QuestPaths/6.x - Endwalker/MSQ/B-Garlemald/4394_In from the Cold.json @@ -1,9 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", - "TerritoryBlacklist": [ - 1011 - ], "QuestSequence": [ { "Sequence": 0, diff --git a/QuestPaths/6.x - Endwalker/MSQ/B-Garlemald/4395_Gateway of the Gods.json b/QuestPaths/6.x - Endwalker/MSQ/B-Garlemald/4395_Gateway of the Gods.json index 62032af3f..485746d35 100644 --- a/QuestPaths/6.x - Endwalker/MSQ/B-Garlemald/4395_Gateway of the Gods.json +++ b/QuestPaths/6.x - Endwalker/MSQ/B-Garlemald/4395_Gateway of the Gods.json @@ -1,9 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", - "TerritoryBlacklist": [ - 969 - ], "QuestSequence": [ { "Sequence": 0, diff --git a/QuestPaths/6.x - Endwalker/MSQ/B-Garlemald/4398_The Martyr.json b/QuestPaths/6.x - Endwalker/MSQ/B-Garlemald/4398_The Martyr.json index e590093e2..0f24a82dd 100644 --- a/QuestPaths/6.x - Endwalker/MSQ/B-Garlemald/4398_The Martyr.json +++ b/QuestPaths/6.x - Endwalker/MSQ/B-Garlemald/4398_The Martyr.json @@ -1,9 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", - "TerritoryBlacklist": [ - 992 - ], "QuestSequence": [ { "Sequence": 0, diff --git a/QuestPaths/6.x - Endwalker/MSQ/D-Thavnair2/4409_Skies Aflame.json b/QuestPaths/6.x - Endwalker/MSQ/D-Thavnair2/4409_Skies Aflame.json index 432f8f8df..37285324e 100644 --- a/QuestPaths/6.x - Endwalker/MSQ/D-Thavnair2/4409_Skies Aflame.json +++ b/QuestPaths/6.x - Endwalker/MSQ/D-Thavnair2/4409_Skies Aflame.json @@ -1,9 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", - "TerritoryBlacklist": [ - 970 - ], "QuestSequence": [ { "Sequence": 0, diff --git a/QuestPaths/6.x - Endwalker/MSQ/E-Elpis/4432_Worthy of His Back.json b/QuestPaths/6.x - Endwalker/MSQ/E-Elpis/4432_Worthy of His Back.json index b315afade..c9b3c8c2d 100644 --- a/QuestPaths/6.x - Endwalker/MSQ/E-Elpis/4432_Worthy of His Back.json +++ b/QuestPaths/6.x - Endwalker/MSQ/E-Elpis/4432_Worthy of His Back.json @@ -1,9 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", - "TerritoryBlacklist": [ - 1014 - ], "QuestSequence": [ { "Sequence": 0, diff --git a/QuestPaths/6.x - Endwalker/MSQ/E-Elpis/4437_Caging the Messenger.json b/QuestPaths/6.x - Endwalker/MSQ/E-Elpis/4437_Caging the Messenger.json index f46eacb33..0a7e8e555 100644 --- a/QuestPaths/6.x - Endwalker/MSQ/E-Elpis/4437_Caging the Messenger.json +++ b/QuestPaths/6.x - Endwalker/MSQ/E-Elpis/4437_Caging the Messenger.json @@ -1,9 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", - "TerritoryBlacklist": [ - 974 - ], "QuestSequence": [ { "Sequence": 0, diff --git a/QuestPaths/6.x - Endwalker/MSQ/F-Labyrinthos2/4439_As the Heavens Burn.json b/QuestPaths/6.x - Endwalker/MSQ/F-Labyrinthos2/4439_As the Heavens Burn.json index 8b05a9d88..182ffffab 100644 --- a/QuestPaths/6.x - Endwalker/MSQ/F-Labyrinthos2/4439_As the Heavens Burn.json +++ b/QuestPaths/6.x - Endwalker/MSQ/F-Labyrinthos2/4439_As the Heavens Burn.json @@ -1,9 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", - "TerritoryBlacklist": [ - 1012 - ], "QuestSequence": [ { "Sequence": 0, diff --git a/QuestPaths/6.x - Endwalker/MSQ/F-Labyrinthos2/4449_Her Children One and All.json b/QuestPaths/6.x - Endwalker/MSQ/F-Labyrinthos2/4449_Her Children One and All.json index fd828e386..5294bab43 100644 --- a/QuestPaths/6.x - Endwalker/MSQ/F-Labyrinthos2/4449_Her Children One and All.json +++ b/QuestPaths/6.x - Endwalker/MSQ/F-Labyrinthos2/4449_Her Children One and All.json @@ -1,10 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", - "TerritoryBlacklist": [ - 978, - 995 - ], "QuestSequence": [ { "Sequence": 0, diff --git a/QuestPaths/6.x - Endwalker/MSQ/G-UltimaThule/4464_Endwalker.json b/QuestPaths/6.x - Endwalker/MSQ/G-UltimaThule/4464_Endwalker.json index af09a13a4..9a1abef66 100644 --- a/QuestPaths/6.x - Endwalker/MSQ/G-UltimaThule/4464_Endwalker.json +++ b/QuestPaths/6.x - Endwalker/MSQ/G-UltimaThule/4464_Endwalker.json @@ -1,11 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", - "TerritoryBlacklist": [ - 973, - 997, - 1013 - ], "QuestSequence": [ { "Sequence": 0, diff --git a/QuestPaths/6.x - Endwalker/MSQ/H-6.1/4529_Alzadaals Legacy.json b/QuestPaths/6.x - Endwalker/MSQ/H-6.1/4529_Alzadaals Legacy.json index d05a59781..c79468bb3 100644 --- a/QuestPaths/6.x - Endwalker/MSQ/H-6.1/4529_Alzadaals Legacy.json +++ b/QuestPaths/6.x - Endwalker/MSQ/H-6.1/4529_Alzadaals Legacy.json @@ -1,9 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", - "TerritoryBlacklist": [ - 1050 - ], "QuestSequence": [ { "Sequence": 0, diff --git a/QuestPaths/6.x - Endwalker/MSQ/I-6.2/4592_In Search of Azdaja.json b/QuestPaths/6.x - Endwalker/MSQ/I-6.2/4592_In Search of Azdaja.json index 007d0a433..cc6ea1fad 100644 --- a/QuestPaths/6.x - Endwalker/MSQ/I-6.2/4592_In Search of Azdaja.json +++ b/QuestPaths/6.x - Endwalker/MSQ/I-6.2/4592_In Search of Azdaja.json @@ -1,9 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", - "TerritoryBlacklist": [ - 1070 - ], "QuestSequence": [ { "Sequence": 0, diff --git a/QuestPaths/6.x - Endwalker/MSQ/I-6.2/4594_Where Everything Begins.json b/QuestPaths/6.x - Endwalker/MSQ/I-6.2/4594_Where Everything Begins.json index ee0a66ccd..98b7ea556 100644 --- a/QuestPaths/6.x - Endwalker/MSQ/I-6.2/4594_Where Everything Begins.json +++ b/QuestPaths/6.x - Endwalker/MSQ/I-6.2/4594_Where Everything Begins.json @@ -1,9 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", - "TerritoryBlacklist": [ - 1091 - ], "QuestSequence": [ { "Sequence": 0, diff --git a/QuestPaths/6.x - Endwalker/MSQ/I-6.2/4597_The Wind Rises.json b/QuestPaths/6.x - Endwalker/MSQ/I-6.2/4597_The Wind Rises.json index 4e75ca6da..926a40f1d 100644 --- a/QuestPaths/6.x - Endwalker/MSQ/I-6.2/4597_The Wind Rises.json +++ b/QuestPaths/6.x - Endwalker/MSQ/I-6.2/4597_The Wind Rises.json @@ -1,9 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", - "TerritoryBlacklist": [ - 1071 - ], "QuestSequence": [ { "Sequence": 0, diff --git a/QuestPaths/6.x - Endwalker/MSQ/J-6.3/4673_An Unforeseen Bargain.json b/QuestPaths/6.x - Endwalker/MSQ/J-6.3/4673_An Unforeseen Bargain.json index 66b764ab2..e19e89505 100644 --- a/QuestPaths/6.x - Endwalker/MSQ/J-6.3/4673_An Unforeseen Bargain.json +++ b/QuestPaths/6.x - Endwalker/MSQ/J-6.3/4673_An Unforeseen Bargain.json @@ -1,9 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", - "TerritoryBlacklist": [ - 1120 - ], "QuestSequence": [ { "Sequence": 0, diff --git a/QuestPaths/6.x - Endwalker/MSQ/J-6.3/4674_King of the Mountain.json b/QuestPaths/6.x - Endwalker/MSQ/J-6.3/4674_King of the Mountain.json index 9d9c0f9e9..130cb389e 100644 --- a/QuestPaths/6.x - Endwalker/MSQ/J-6.3/4674_King of the Mountain.json +++ b/QuestPaths/6.x - Endwalker/MSQ/J-6.3/4674_King of the Mountain.json @@ -1,9 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", - "TerritoryBlacklist": [ - 1097 - ], "QuestSequence": [ { "Sequence": 0, diff --git a/QuestPaths/6.x - Endwalker/MSQ/J-6.3/4677_Desires Untold.json b/QuestPaths/6.x - Endwalker/MSQ/J-6.3/4677_Desires Untold.json index 78cfbbc7f..3a42aaaad 100644 --- a/QuestPaths/6.x - Endwalker/MSQ/J-6.3/4677_Desires Untold.json +++ b/QuestPaths/6.x - Endwalker/MSQ/J-6.3/4677_Desires Untold.json @@ -1,9 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", - "TerritoryBlacklist": [ - 1095 - ], "QuestSequence": [ { "Sequence": 0, diff --git a/QuestPaths/6.x - Endwalker/MSQ/K-6.4/4736_Going Haam.json b/QuestPaths/6.x - Endwalker/MSQ/K-6.4/4736_Going Haam.json index 7a4cf1d4a..9f738bc8f 100644 --- a/QuestPaths/6.x - Endwalker/MSQ/K-6.4/4736_Going Haam.json +++ b/QuestPaths/6.x - Endwalker/MSQ/K-6.4/4736_Going Haam.json @@ -1,9 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", - "TerritoryBlacklist": [ - 1126 - ], "QuestSequence": [ { "Sequence": 0, diff --git a/QuestPaths/6.x - Endwalker/MSQ/K-6.4/4742_Abyssal Dark.json b/QuestPaths/6.x - Endwalker/MSQ/K-6.4/4742_Abyssal Dark.json index 925170a09..8faf117c1 100644 --- a/QuestPaths/6.x - Endwalker/MSQ/K-6.4/4742_Abyssal Dark.json +++ b/QuestPaths/6.x - Endwalker/MSQ/K-6.4/4742_Abyssal Dark.json @@ -1,9 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", - "TerritoryBlacklist": [ - 1140 - ], "QuestSequence": [ { "Sequence": 0, diff --git a/QuestPaths/6.x - Endwalker/MSQ/L-6.5/4748_Down in the Dark.json b/QuestPaths/6.x - Endwalker/MSQ/L-6.5/4748_Down in the Dark.json index 766724f92..3930a8dde 100644 --- a/QuestPaths/6.x - Endwalker/MSQ/L-6.5/4748_Down in the Dark.json +++ b/QuestPaths/6.x - Endwalker/MSQ/L-6.5/4748_Down in the Dark.json @@ -1,10 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", - "TerritoryBlacklist": [ - 1164, - 1168 - ], "QuestSequence": [ { "Sequence": 0, diff --git a/QuestPaths/6.x - Endwalker/MSQ/M-6.55/4752_The Game Is Afoot.json b/QuestPaths/6.x - Endwalker/MSQ/M-6.55/4752_The Game Is Afoot.json index 5525ce221..24e33e79a 100644 --- a/QuestPaths/6.x - Endwalker/MSQ/M-6.55/4752_The Game Is Afoot.json +++ b/QuestPaths/6.x - Endwalker/MSQ/M-6.55/4752_The Game Is Afoot.json @@ -1,9 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", - "TerritoryBlacklist": [ - 1177 - ], "QuestSequence": [ { "Sequence": 0, 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 dec630ecd..7ab437970 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 @@ -1,9 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", - "TerritoryBlacklist": [ - 1235 - ], "QuestSequence": [ { "Sequence": 0, diff --git a/QuestPaths/7.x - Dawntrail/MSQ/A-Kozama'uka1-Urqopacha1/4879_For All Turali.json b/QuestPaths/7.x - Dawntrail/MSQ/A-Kozama'uka1-Urqopacha1/4879_For All Turali.json index 9a9839434..28e35590e 100644 --- a/QuestPaths/7.x - Dawntrail/MSQ/A-Kozama'uka1-Urqopacha1/4879_For All Turali.json +++ b/QuestPaths/7.x - Dawntrail/MSQ/A-Kozama'uka1-Urqopacha1/4879_For All Turali.json @@ -1,9 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", - "TerritoryBlacklist": [ - 1167 - ], "QuestSequence": [ { "Sequence": 0, diff --git a/QuestPaths/7.x - Dawntrail/MSQ/B-Kozama'uka2-Urqopacha2/4891_The High Luminary.json b/QuestPaths/7.x - Dawntrail/MSQ/B-Kozama'uka2-Urqopacha2/4891_The High Luminary.json index fd17edfa8..8b1a2021b 100644 --- a/QuestPaths/7.x - Dawntrail/MSQ/B-Kozama'uka2-Urqopacha2/4891_The High Luminary.json +++ b/QuestPaths/7.x - Dawntrail/MSQ/B-Kozama'uka2-Urqopacha2/4891_The High Luminary.json @@ -1,9 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", - "TerritoryBlacklist": [ - 1193 - ], "QuestSequence": [ { "Sequence": 0, diff --git a/QuestPaths/7.x - Dawntrail/MSQ/B-Kozama'uka2-Urqopacha2/4894_The Skyruin.json b/QuestPaths/7.x - Dawntrail/MSQ/B-Kozama'uka2-Urqopacha2/4894_The Skyruin.json index 170b1a17c..3b8ee0058 100644 --- a/QuestPaths/7.x - Dawntrail/MSQ/B-Kozama'uka2-Urqopacha2/4894_The Skyruin.json +++ b/QuestPaths/7.x - Dawntrail/MSQ/B-Kozama'uka2-Urqopacha2/4894_The Skyruin.json @@ -1,9 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", - "TerritoryBlacklist": [ - 1195 - ], "QuestSequence": [ { "Sequence": 0, diff --git a/QuestPaths/7.x - Dawntrail/MSQ/C-Yak T'el/4902_Taking a Stand.json b/QuestPaths/7.x - Dawntrail/MSQ/C-Yak T'el/4902_Taking a Stand.json index 0c7f0af78..4a4940ccc 100644 --- a/QuestPaths/7.x - Dawntrail/MSQ/C-Yak T'el/4902_Taking a Stand.json +++ b/QuestPaths/7.x - Dawntrail/MSQ/C-Yak T'el/4902_Taking a Stand.json @@ -1,9 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", - "TerritoryBlacklist": [ - 1211 - ], "QuestSequence": [ { "Sequence": 0, diff --git a/QuestPaths/7.x - Dawntrail/MSQ/C-Yak T'el/4908_The Feat of Brotherhood.json b/QuestPaths/7.x - Dawntrail/MSQ/C-Yak T'el/4908_The Feat of Brotherhood.json index abb2d9bf9..0b7c8b479 100644 --- a/QuestPaths/7.x - Dawntrail/MSQ/C-Yak T'el/4908_The Feat of Brotherhood.json +++ b/QuestPaths/7.x - Dawntrail/MSQ/C-Yak T'el/4908_The Feat of Brotherhood.json @@ -1,9 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", - "TerritoryBlacklist": [ - 1212 - ], "QuestSequence": [ { "Sequence": 0, diff --git a/QuestPaths/7.x - Dawntrail/MSQ/C-Yak T'el/4909_Road to the Golden City.json b/QuestPaths/7.x - Dawntrail/MSQ/C-Yak T'el/4909_Road to the Golden City.json index efabe8bef..384623cef 100644 --- a/QuestPaths/7.x - Dawntrail/MSQ/C-Yak T'el/4909_Road to the Golden City.json +++ b/QuestPaths/7.x - Dawntrail/MSQ/C-Yak T'el/4909_Road to the Golden City.json @@ -1,9 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", - "TerritoryBlacklist": [ - 1194 - ], "QuestSequence": [ { "Sequence": 0, diff --git a/QuestPaths/7.x - Dawntrail/MSQ/D-Shaaloani-HeritageFound1/4926_All Aboard.json b/QuestPaths/7.x - Dawntrail/MSQ/D-Shaaloani-HeritageFound1/4926_All Aboard.json index ec258cb1c..51a119877 100644 --- a/QuestPaths/7.x - Dawntrail/MSQ/D-Shaaloani-HeritageFound1/4926_All Aboard.json +++ b/QuestPaths/7.x - Dawntrail/MSQ/D-Shaaloani-HeritageFound1/4926_All Aboard.json @@ -1,9 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", - "TerritoryBlacklist": [ - 1198 - ], "QuestSequence": [ { "Sequence": 0, diff --git a/QuestPaths/7.x - Dawntrail/MSQ/E-SolutionNine-HeritageFound2/4942_The Protector and the Destroyer.json b/QuestPaths/7.x - Dawntrail/MSQ/E-SolutionNine-HeritageFound2/4942_The Protector and the Destroyer.json index cb0a79af1..b3c05e7d8 100644 --- a/QuestPaths/7.x - Dawntrail/MSQ/E-SolutionNine-HeritageFound2/4942_The Protector and the Destroyer.json +++ b/QuestPaths/7.x - Dawntrail/MSQ/E-SolutionNine-HeritageFound2/4942_The Protector and the Destroyer.json @@ -1,9 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", - "TerritoryBlacklist": [ - 1213 - ], "QuestSequence": [ { "Sequence": 0, diff --git a/QuestPaths/7.x - Dawntrail/MSQ/E-SolutionNine-HeritageFound2/4945_The Resilient Son.json b/QuestPaths/7.x - Dawntrail/MSQ/E-SolutionNine-HeritageFound2/4945_The Resilient Son.json index bb4681d73..8e9677088 100644 --- a/QuestPaths/7.x - Dawntrail/MSQ/E-SolutionNine-HeritageFound2/4945_The Resilient Son.json +++ b/QuestPaths/7.x - Dawntrail/MSQ/E-SolutionNine-HeritageFound2/4945_The Resilient Son.json @@ -1,10 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", - "TerritoryBlacklist": [ - 1200, - 1208 - ], "QuestSequence": [ { "Sequence": 0, diff --git a/QuestPaths/7.x - Dawntrail/MSQ/F-Living Memory/4959_Dawntrail.json b/QuestPaths/7.x - Dawntrail/MSQ/F-Living Memory/4959_Dawntrail.json index f5798feb5..778f11db5 100644 --- a/QuestPaths/7.x - Dawntrail/MSQ/F-Living Memory/4959_Dawntrail.json +++ b/QuestPaths/7.x - Dawntrail/MSQ/F-Living Memory/4959_Dawntrail.json @@ -1,10 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", - "TerritoryBlacklist": [ - 1199, - 1202 - ], "QuestSequence": [ { "Sequence": 0, diff --git a/QuestPaths/7.x - Dawntrail/Raid Quests/4961_The Claw in the Dark.json b/QuestPaths/7.x - Dawntrail/Raid Quests/4961_The Claw in the Dark.json index cb804c979..d4ec0c276 100644 --- a/QuestPaths/7.x - Dawntrail/Raid Quests/4961_The Claw in the Dark.json +++ b/QuestPaths/7.x - Dawntrail/Raid Quests/4961_The Claw in the Dark.json @@ -1,9 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", - "TerritoryBlacklist": [ - 1225 - ], "QuestSequence": [ { "Sequence": 0, diff --git a/QuestPaths/7.x - Dawntrail/Raid Quests/4962_Sweet Poison.json b/QuestPaths/7.x - Dawntrail/Raid Quests/4962_Sweet Poison.json index 0073030d9..408d87c9d 100644 --- a/QuestPaths/7.x - Dawntrail/Raid Quests/4962_Sweet Poison.json +++ b/QuestPaths/7.x - Dawntrail/Raid Quests/4962_Sweet Poison.json @@ -1,9 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", - "TerritoryBlacklist": [ - 1227 - ], "QuestSequence": [ { "Sequence": 0, diff --git a/QuestPaths/7.x - Dawntrail/Raid Quests/4964_Vile Heat.json b/QuestPaths/7.x - Dawntrail/Raid Quests/4964_Vile Heat.json index ade868658..d593ae593 100644 --- a/QuestPaths/7.x - Dawntrail/Raid Quests/4964_Vile Heat.json +++ b/QuestPaths/7.x - Dawntrail/Raid Quests/4964_Vile Heat.json @@ -1,9 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", - "TerritoryBlacklist": [ - 1229 - ], "QuestSequence": [ { "Sequence": 0, diff --git a/QuestPaths/7.x - Dawntrail/Raid Quests/4965_The Neoteric Witch.json b/QuestPaths/7.x - Dawntrail/Raid Quests/4965_The Neoteric Witch.json index a4fef371b..b764b27cb 100644 --- a/QuestPaths/7.x - Dawntrail/Raid Quests/4965_The Neoteric Witch.json +++ b/QuestPaths/7.x - Dawntrail/Raid Quests/4965_The Neoteric Witch.json @@ -1,9 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", - "TerritoryBlacklist": [ - 1231 - ], "QuestSequence": [ { "Sequence": 0, diff --git a/QuestPaths/7.x - Dawntrail/Role Quests/Magical Ranged/4847_Heroes and Pretenders.json b/QuestPaths/7.x - Dawntrail/Role Quests/Magical Ranged/4847_Heroes and Pretenders.json index 73a1350de..765794c01 100644 --- a/QuestPaths/7.x - Dawntrail/Role Quests/Magical Ranged/4847_Heroes and Pretenders.json +++ b/QuestPaths/7.x - Dawntrail/Role Quests/Magical Ranged/4847_Heroes and Pretenders.json @@ -1,9 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", - "TerritoryBlacklist": [ - 1218 - ], "QuestSequence": [ { "Sequence": 0, diff --git a/QuestPaths/7.x - Dawntrail/Role Quests/Physical Ranged/4841_The Mightiest Shield.json b/QuestPaths/7.x - Dawntrail/Role Quests/Physical Ranged/4841_The Mightiest Shield.json index 599b3b176..20380ed1a 100644 --- a/QuestPaths/7.x - Dawntrail/Role Quests/Physical Ranged/4841_The Mightiest Shield.json +++ b/QuestPaths/7.x - Dawntrail/Role Quests/Physical Ranged/4841_The Mightiest Shield.json @@ -1,9 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", - "TerritoryBlacklist": [ - 1217 - ], "QuestSequence": [ { "Sequence": 0, diff --git a/QuestPaths/7.x - Dawntrail/Role Quests/Tank/4823_Dreams of a New Day.json b/QuestPaths/7.x - Dawntrail/Role Quests/Tank/4823_Dreams of a New Day.json index db15f8e23..4f05b345b 100644 --- a/QuestPaths/7.x - Dawntrail/Role Quests/Tank/4823_Dreams of a New Day.json +++ b/QuestPaths/7.x - Dawntrail/Role Quests/Tank/4823_Dreams of a New Day.json @@ -1,9 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", - "TerritoryBlacklist": [ - 1214 - ], "QuestSequence": [ { "Sequence": 0, diff --git a/QuestPaths/7.x - Dawntrail/Unlocks/Dungeons/5014_Something Stray in the Neighborhood.json b/QuestPaths/7.x - Dawntrail/Unlocks/Dungeons/5014_Something Stray in the Neighborhood.json index 235b4349e..0e421d584 100644 --- a/QuestPaths/7.x - Dawntrail/Unlocks/Dungeons/5014_Something Stray in the Neighborhood.json +++ b/QuestPaths/7.x - Dawntrail/Unlocks/Dungeons/5014_Something Stray in the Neighborhood.json @@ -1,9 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", - "TerritoryBlacklist": [ - 1204 - ], "QuestSequence": [ { "Sequence": 0, diff --git a/QuestPaths/quest-v1.json b/QuestPaths/quest-v1.json index b0fd35d28..3fe60751f 100644 --- a/QuestPaths/quest-v1.json +++ b/QuestPaths/quest-v1.json @@ -29,12 +29,6 @@ "type": "string", "description": "Dev Comment (not visible in-game)" }, - "TerritoryBlacklist": { - "type": "array", - "items": { - "type": "integer" - } - }, "QuestSequence": { "type": "array", "items": { diff --git a/Questionable.Model/Questing/QuestRoot.cs b/Questionable.Model/Questing/QuestRoot.cs index e1158fc89..998994126 100644 --- a/Questionable.Model/Questing/QuestRoot.cs +++ b/Questionable.Model/Questing/QuestRoot.cs @@ -16,6 +16,5 @@ public sealed class QuestRoot public bool Disabled { get; set; } public string? Comment { get; set; } - public List TerritoryBlacklist { get; set; } = new(); public List QuestSequence { get; set; } = new(); } diff --git a/Questionable/Controller/QuestController.cs b/Questionable/Controller/QuestController.cs index fc1734d31..594cac80a 100644 --- a/Questionable/Controller/QuestController.cs +++ b/Questionable/Controller/QuestController.cs @@ -210,9 +210,6 @@ internal sealed class QuestController : MiniTaskController, IDi } } - if (CurrentQuest != null && CurrentQuest.Quest.Root.TerritoryBlacklist.Contains(_clientState.TerritoryType)) - return; - if (AutomationType == EAutomationType.Automatic && (_taskQueue.AllTasksComplete || _taskQueue.CurrentTaskExecutor?.CurrentTask is WaitAtEnd.WaitQuestAccepted) && CurrentQuest is { Sequence: 0, Step: 0 } or { Sequence: 0, Step: 255 } diff --git a/Questionable/Windows/QuestWindow.cs b/Questionable/Windows/QuestWindow.cs index fa880ec4c..37724c8ce 100644 --- a/Questionable/Windows/QuestWindow.cs +++ b/Questionable/Windows/QuestWindow.cs @@ -119,8 +119,7 @@ internal sealed class QuestWindow : LWindow, IPersistableWindowConfig if (_configuration.General.HideInAllInstances && _territoryData.IsDutyInstance(_clientState.TerritoryType)) return false; - var currentQuest = _questController.CurrentQuest; - return currentQuest == null || !currentQuest.Quest.Root.TerritoryBlacklist.Contains(_clientState.TerritoryType); + return true; } public override void Draw() -- 2.45.2 From 3fdf86f240e78246c5c6bd80d559749ff12c6659 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Tue, 1 Oct 2024 23:25:10 +0200 Subject: [PATCH 085/448] Version bump --- Directory.Build.targets | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Directory.Build.targets b/Directory.Build.targets index 6aced3c9e..939fb575a 100644 --- a/Directory.Build.targets +++ b/Directory.Build.targets @@ -1,5 +1,5 @@ - 3.7 + 3.8 -- 2.45.2 From 7e0bfaf706de8571a4d425cf0e4923541e556292 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Tue, 1 Oct 2024 23:45:36 +0200 Subject: [PATCH 086/448] Update ECommons --- vendor/ECommons | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vendor/ECommons b/vendor/ECommons index 1038f5ae8..147e12e95 160000 --- a/vendor/ECommons +++ b/vendor/ECommons @@ -1 +1 @@ -Subproject commit 1038f5ae8964c7ea57aea6f0fe2aef7c9be50848 +Subproject commit 147e12e95f2fb781f2c8ddac31d948700ed9051c -- 2.45.2 From f85b858fc3fac1ee325d0707bb2fcb3ae7b4198f Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Thu, 3 Oct 2024 18:30:59 +0200 Subject: [PATCH 087/448] Fix schema URL --- .../Vanu Vanu/Story/2260_A Symbiotic Friendship.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Story/2260_A Symbiotic Friendship.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Story/2260_A Symbiotic Friendship.json index f061ed478..a2400d21d 100644 --- a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Story/2260_A Symbiotic Friendship.json +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Story/2260_A Symbiotic Friendship.json @@ -1,5 +1,5 @@ { - "$schema": "https://git.carvel.li/plogon_enjoyer/Questionable/raw/branch/temp/QuestPaths/quest-v1.json", + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "plogon_enjoyer", "QuestSequence": [ { -- 2.45.2 From 005574a77456e4fe4924e7722848a06d0e0cb7b2 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Thu, 3 Oct 2024 18:31:32 +0200 Subject: [PATCH 088/448] Minor quest additions --- .../Kugane/2669_Zero Tolerance Teahouse.json | 67 +++++++ .../Side Quests/Kugane/2813_Child Labor.json | 176 ++++++++++++++++++ .../4369_On Low Tide.json | 19 +- .../4812_Treasured Bonds.json | 114 ++++++++++++ .../4813_More Precious than Gil.json | 167 +++++++++++++++++ 5 files changed, 535 insertions(+), 8 deletions(-) create mode 100644 QuestPaths/4.x - Stormblood/Side Quests/Kugane/2669_Zero Tolerance Teahouse.json create mode 100644 QuestPaths/4.x - Stormblood/Side Quests/Kugane/2813_Child Labor.json create mode 100644 QuestPaths/6.x - Endwalker/Side Stories/Tataru's Grand Endeavor/4812_Treasured Bonds.json create mode 100644 QuestPaths/6.x - Endwalker/Side Stories/Tataru's Grand Endeavor/4813_More Precious than Gil.json diff --git a/QuestPaths/4.x - Stormblood/Side Quests/Kugane/2669_Zero Tolerance Teahouse.json b/QuestPaths/4.x - Stormblood/Side Quests/Kugane/2669_Zero Tolerance Teahouse.json new file mode 100644 index 000000000..1d54419a2 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Side Quests/Kugane/2669_Zero Tolerance Teahouse.json @@ -0,0 +1,67 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1023304, + "Position": { + "X": 2.7008667, + "Y": 2.0507723E-06, + "Z": -52.84204 + }, + "TerritoryId": 628, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1023306, + "Position": { + "X": -80.338745, + "Y": -6.9700804, + "Z": -49.118835 + }, + "TerritoryId": 628, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1023305, + "Position": { + "X": 4.409851, + "Y": 2.100081E-06, + "Z": -52.903076 + }, + "TerritoryId": 628, + "InteractionType": "UseItem", + "ItemId": 2002339 + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1023304, + "Position": { + "X": 2.7008667, + "Y": 2.0507723E-06, + "Z": -52.84204 + }, + "TerritoryId": 628, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Side Quests/Kugane/2813_Child Labor.json b/QuestPaths/4.x - Stormblood/Side Quests/Kugane/2813_Child Labor.json new file mode 100644 index 000000000..112b2757a --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Side Quests/Kugane/2813_Child Labor.json @@ -0,0 +1,176 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1022620, + "Position": { + "X": -4.7455444, + "Y": 0.022830343, + "Z": -113.96973 + }, + "TerritoryId": 628, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1023127, + "Position": { + "X": -102.9527, + "Y": 11.80004, + "Z": -114.76312 + }, + "TerritoryId": 628, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 1023131, + "Position": { + "X": -88.304016, + "Y": -6.9999995, + "Z": -63.09613 + }, + "TerritoryId": 628, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Kugane] Bokairo Inn", + "[Kugane] Shiokaze Hostelry" + ], + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 4 + ] + }, + { + "DataId": 1023126, + "Position": { + "X": 32.60852, + "Y": 2.9999993, + "Z": -49.881836 + }, + "TerritoryId": 628, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Kugane] Shiokaze Hostelry", + "[Kugane] Aetheryte Plaza" + ], + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 1023130, + "Position": { + "X": 80.460815, + "Y": 4.000001, + "Z": 71.488525 + }, + "TerritoryId": 628, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Kugane] Aetheryte Plaza", + "[Kugane] Kogane Dori Markets" + ], + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 8 + ] + }, + { + "DataId": 1023128, + "Position": { + "X": -34.103943, + "Y": 15.000004, + "Z": 68.86389 + }, + "TerritoryId": 628, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, + { + "DataId": 1023129, + "Position": { + "X": 17.593567, + "Y": 11.44387, + "Z": 174.45642 + }, + "TerritoryId": 628, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Kugane] Kogane Dori Markets", + "[Kugane] Thavnairian Consulate" + ], + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 16 + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1022620, + "Position": { + "X": -4.7455444, + "Y": 0.022830343, + "Z": -113.96973 + }, + "TerritoryId": 628, + "InteractionType": "CompleteQuest", + "AethernetShortcut": [ + "[Kugane] Thavnairian Consulate", + "[Kugane] Rakuza District" + ], + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_STMBDZ710_02813_Q1_000_031", + "Answer": "TEXT_STMBDZ710_02813_A1_000_032" + } + ] + } + ] + } + ] +} diff --git a/QuestPaths/6.x - Endwalker/MSQ/A-Thavnair1-Labyrinthos1/4369_On Low Tide.json b/QuestPaths/6.x - Endwalker/MSQ/A-Thavnair1-Labyrinthos1/4369_On Low Tide.json index 7023f1429..cb13b7533 100644 --- a/QuestPaths/6.x - Endwalker/MSQ/A-Thavnair1-Labyrinthos1/4369_On Low Tide.json +++ b/QuestPaths/6.x - Endwalker/MSQ/A-Thavnair1-Labyrinthos1/4369_On Low Tide.json @@ -83,21 +83,24 @@ "Steps": [ { "Position": { - "X": 200.24112, - "Y": 1.7700036, - "Z": 712.99384 + "X": 223.328, + "Y": -0.6, + "Z": 752.7248 }, "TerritoryId": 957, - "InteractionType": "WalkTo" + "InteractionType": "WalkTo", + "DisableNavmesh": true, + "Sprint": true }, { "Position": { - "X": 240.97523, - "Y": 0.8542664, - "Z": 712.4415 + "X": 253.03053, + "Y": 0.7659681, + "Z": 732.0563 }, "TerritoryId": 957, - "InteractionType": "WalkTo" + "InteractionType": "WalkTo", + "DisableNavmesh": true }, { "DataId": 1038606, diff --git a/QuestPaths/6.x - Endwalker/Side Stories/Tataru's Grand Endeavor/4812_Treasured Bonds.json b/QuestPaths/6.x - Endwalker/Side Stories/Tataru's Grand Endeavor/4812_Treasured Bonds.json new file mode 100644 index 000000000..ae400744a --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Side Stories/Tataru's Grand Endeavor/4812_Treasured Bonds.json @@ -0,0 +1,114 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1042599, + "Position": { + "X": 31.998047, + "Y": 5.1499996, + "Z": -67.73486 + }, + "TerritoryId": 962, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Old Sharlayan", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1046136, + "Position": { + "X": -341.39008, + "Y": 22.3, + "Z": -103.74609 + }, + "TerritoryId": 962, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Old Sharlayan] Aetheryte Plaza", + "[Old Sharlayan] The Studium" + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1046138, + "Position": { + "X": 30.960571, + "Y": 5.1499996, + "Z": -66.88031 + }, + "StopDistance": 7, + "TerritoryId": 962, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1046139, + "Position": { + "X": 87.63245, + "Y": -16.247002, + "Z": 123.76587 + }, + "TerritoryId": 962, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Old Sharlayan] Aetheryte Plaza", + "[Old Sharlayan] Scholar's Harbor" + ] + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1046141, + "Position": { + "X": -133.4707, + "Y": 28.049995, + "Z": 219.65356 + }, + "StopDistance": 5, + "TerritoryId": 963, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 2013721, + "Position": { + "X": 406.30188, + "Y": 13.01593, + "Z": -299.8551 + }, + "TerritoryId": 957, + "InteractionType": "Interact", + "AetheryteShortcut": "Thavnair - Palaka's Stand", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/6.x - Endwalker/Side Stories/Tataru's Grand Endeavor/4813_More Precious than Gil.json b/QuestPaths/6.x - Endwalker/Side Stories/Tataru's Grand Endeavor/4813_More Precious than Gil.json new file mode 100644 index 000000000..39c2cefa2 --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Side Stories/Tataru's Grand Endeavor/4813_More Precious than Gil.json @@ -0,0 +1,167 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1046203, + "Position": { + "X": 406.42407, + "Y": 3.1168795, + "Z": -272.26672 + }, + "StopDistance": 5, + "TerritoryId": 957, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Thavnair - Palaka's Stand", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1046203, + "Position": { + "X": 406.42407, + "Y": 3.1168795, + "Z": -272.26672 + }, + "StopDistance": 5, + "TerritoryId": 957, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1037703, + "Position": { + "X": 423.7887, + "Y": 3.1168795, + "Z": -269.73376 + }, + "TerritoryId": 957, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, + { + "DataId": 1037707, + "Position": { + "X": 432.02856, + "Y": 5.912681, + "Z": -225.20789 + }, + "TerritoryId": 957, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 1039517, + "Position": { + "X": 376.6078, + "Y": 5.709401, + "Z": -220.50812 + }, + "TerritoryId": 957, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1046203, + "Position": { + "X": 545.292, + "Y": 10.612534, + "Z": 232.90868 + }, + "StopDistance": 0.5, + "TerritoryId": 957, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1037630, + "Position": { + "X": 401.8158, + "Y": 3.1168792, + "Z": -273.76215 + }, + "StopDistance": 7, + "TerritoryId": 957, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1042599, + "Position": { + "X": 31.998047, + "Y": 5.1499996, + "Z": -67.73486 + }, + "TerritoryId": 962, + "InteractionType": "Interact", + "AetheryteShortcut": "Old Sharlayan" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1042599, + "Position": { + "X": 31.998047, + "Y": 5.1499996, + "Z": -67.73486 + }, + "TerritoryId": 962, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} -- 2.45.2 From a8e3eb95c9ba8b22101c674ad7dfec0d16d315d1 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Thu, 3 Oct 2024 18:31:44 +0200 Subject: [PATCH 089/448] Show validation info in journal window --- .../4812_Treasured Bonds.json | 2 +- Questionable/Validation/QuestValidator.cs | 4 ++ .../QuestJournalComponent.cs | 49 ++++++++++++------- .../QuickAccessButtonsComponent.cs | 2 +- Questionable/Windows/QuestValidationWindow.cs | 2 +- 5 files changed, 38 insertions(+), 21 deletions(-) diff --git a/QuestPaths/6.x - Endwalker/Side Stories/Tataru's Grand Endeavor/4812_Treasured Bonds.json b/QuestPaths/6.x - Endwalker/Side Stories/Tataru's Grand Endeavor/4812_Treasured Bonds.json index ae400744a..ec71ebfbe 100644 --- a/QuestPaths/6.x - Endwalker/Side Stories/Tataru's Grand Endeavor/4812_Treasured Bonds.json +++ b/QuestPaths/6.x - Endwalker/Side Stories/Tataru's Grand Endeavor/4812_Treasured Bonds.json @@ -104,7 +104,7 @@ "Z": -299.8551 }, "TerritoryId": 957, - "InteractionType": "Interact", + "InteractionType": "CompleteQuest", "AetheryteShortcut": "Thavnair - Palaka's Stand", "Fly": true } diff --git a/Questionable/Validation/QuestValidator.cs b/Questionable/Validation/QuestValidator.cs index 80050d407..847c705be 100644 --- a/Questionable/Validation/QuestValidator.cs +++ b/Questionable/Validation/QuestValidator.cs @@ -5,6 +5,7 @@ using System.Threading; using System.Threading.Tasks; using Microsoft.Extensions.Logging; using Questionable.Model; +using Questionable.Model.Questing; namespace Questionable.Validation; @@ -91,6 +92,9 @@ internal sealed class QuestValidator }, CancellationToken.None, TaskCreationOptions.LongRunning, TaskScheduler.Default); } + public List GetIssues(ElementId elementId) => + _validationIssues.Where(x => x.ElementId == elementId).ToList(); + private static IEnumerable DisabledTribesAsIssues(Dictionary disabledTribeQuests) { return disabledTribeQuests diff --git a/Questionable/Windows/JournalComponents/QuestJournalComponent.cs b/Questionable/Windows/JournalComponents/QuestJournalComponent.cs index e1d2b6c55..f273b00da 100644 --- a/Questionable/Windows/JournalComponents/QuestJournalComponent.cs +++ b/Questionable/Windows/JournalComponents/QuestJournalComponent.cs @@ -13,19 +13,16 @@ using Questionable.Data; using Questionable.Functions; using Questionable.Model; using Questionable.Model.Questing; +using Questionable.Validation; using Questionable.Windows.QuestComponents; namespace Questionable.Windows.JournalComponents; internal sealed class QuestJournalComponent { - private readonly Dictionary _genreCounts = []; - - private readonly Dictionary _categoryCounts = - []; - - private readonly Dictionary _sectionCounts = - []; + private readonly Dictionary _genreCounts = []; + private readonly Dictionary _categoryCounts = []; + private readonly Dictionary _sectionCounts = []; private readonly JournalData _journalData; private readonly QuestRegistry _questRegistry; @@ -35,13 +32,14 @@ internal sealed class QuestJournalComponent private readonly IDalamudPluginInterface _pluginInterface; private readonly QuestController _questController; private readonly ICommandManager _commandManager; + private readonly QuestValidator _questValidator; private List _filteredSections = []; private string _searchText = string.Empty; public QuestJournalComponent(JournalData journalData, QuestRegistry questRegistry, QuestFunctions questFunctions, UiUtils uiUtils, QuestTooltipComponent questTooltipComponent, IDalamudPluginInterface pluginInterface, - QuestController questController, ICommandManager commandManager) + QuestController questController, ICommandManager commandManager, QuestValidator questValidator) { _journalData = journalData; _questRegistry = questRegistry; @@ -51,6 +49,7 @@ internal sealed class QuestJournalComponent _pluginInterface = pluginInterface; _questController = questController; _commandManager = commandManager; + _questValidator = questValidator; } public void DrawQuests() @@ -99,7 +98,7 @@ internal sealed class QuestJournalComponent if (filter.Section.QuestCount == 0) return; - (int available, int obtainable, int completed) = _sectionCounts.GetValueOrDefault(filter.Section); + (int available, int obtainable, int completed) = _sectionCounts.GetValueOrDefault(filter.Section, new()); ImGui.TableNextRow(); ImGui.TableNextColumn(); @@ -125,7 +124,7 @@ internal sealed class QuestJournalComponent if (filter.Category.QuestCount == 0) return; - (int available, int obtainable, int completed) = _categoryCounts.GetValueOrDefault(filter.Category); + (int available, int obtainable, int completed) = _categoryCounts.GetValueOrDefault(filter.Category, new()); ImGui.TableNextRow(); ImGui.TableNextColumn(); @@ -151,7 +150,7 @@ internal sealed class QuestJournalComponent if (filter.Genre.QuestCount == 0) return; - (int supported, int obtainable, int completed) = _genreCounts.GetValueOrDefault(filter.Genre); + (int supported, int obtainable, int completed) = _genreCounts.GetValueOrDefault(filter.Genre, new()); ImGui.TableNextRow(); ImGui.TableNextColumn(); @@ -212,7 +211,19 @@ internal sealed class QuestJournalComponent } ImGui.SetCursorPosX(ImGui.GetCursorPosX() + spacing); - _uiUtils.ChecklistItem(string.Empty, quest is { Root.Disabled: false }); + + if (quest is { Root.Disabled: false }) + { + List issues = _questValidator.GetIssues(quest.Id); + if (issues.Any(x => x.Severity == EIssueSeverity.Error)) + _uiUtils.ChecklistItem(string.Empty, ImGuiColors.DalamudRed, FontAwesomeIcon.ExclamationTriangle); + else if (issues.Count > 0) + _uiUtils.ChecklistItem(string.Empty, ImGuiColors.ParsedBlue, FontAwesomeIcon.InfoCircle); + else + _uiUtils.ChecklistItem(string.Empty, true); + } + else + _uiUtils.ChecklistItem(string.Empty, false); ImGui.TableNextColumn(); var (color, icon, text) = _uiUtils.GetQuestStyle(questInfo.QuestId); @@ -329,7 +340,7 @@ internal sealed class QuestJournalComponent _questRegistry.TryGetQuest(x.QuestId, out var quest) && !quest.Root.Disabled); int obtainable = genre.Quests.Count(x => !_questFunctions.IsQuestUnobtainable(x.QuestId)); int completed = genre.Quests.Count(x => _questFunctions.IsQuestComplete(x.QuestId)); - _genreCounts[genre] = (available, obtainable, completed); + _genreCounts[genre] = new(available, obtainable, completed); } foreach (var category in _journalData.Categories) @@ -341,7 +352,7 @@ internal sealed class QuestJournalComponent int available = counts.Sum(x => x.Available); int obtainable = counts.Sum(x => x.Obtainable); int completed = counts.Sum(x => x.Completed); - _categoryCounts[category] = (available, obtainable, completed); + _categoryCounts[category] = new(available, obtainable, completed); } foreach (var section in _journalData.Sections) @@ -353,20 +364,20 @@ internal sealed class QuestJournalComponent int available = counts.Sum(x => x.Available); int obtainable = counts.Sum(x => x.Obtainable); int completed = counts.Sum(x => x.Completed); - _sectionCounts[section] = (available, obtainable, completed); + _sectionCounts[section] = new(available, obtainable, completed); } } internal void ClearCounts() { foreach (var genreCount in _genreCounts.ToList()) - _genreCounts[genreCount.Key] = (genreCount.Value.Available, genreCount.Value.Available, 0); + _genreCounts[genreCount.Key] = genreCount.Value with { Completed = 0 }; foreach (var categoryCount in _categoryCounts.ToList()) - _categoryCounts[categoryCount.Key] = (categoryCount.Value.Available, categoryCount.Value.Available, 0); + _categoryCounts[categoryCount.Key] = categoryCount.Value with { Completed = 0 }; foreach (var sectionCount in _sectionCounts.ToList()) - _sectionCounts[sectionCount.Key] = (sectionCount.Value.Available, sectionCount.Value.Available, 0); + _sectionCounts[sectionCount.Key] = sectionCount.Value with { Completed = 0 }; } private sealed record FilteredSection(JournalData.Section Section, List Categories); @@ -374,4 +385,6 @@ internal sealed class QuestJournalComponent private sealed record FilteredCategory(JournalData.Category Category, List Genres); private sealed record FilteredGenre(JournalData.Genre Genre, List Quests); + + private sealed record JournalCounts(int Available = 0, int Obtainable = 0, int Completed = 0); } diff --git a/Questionable/Windows/QuestComponents/QuickAccessButtonsComponent.cs b/Questionable/Windows/QuestComponents/QuickAccessButtonsComponent.cs index 4860f687f..6093686a8 100644 --- a/Questionable/Windows/QuestComponents/QuickAccessButtonsComponent.cs +++ b/Questionable/Windows/QuestComponents/QuickAccessButtonsComponent.cs @@ -113,7 +113,7 @@ internal sealed class QuickAccessButtonsComponent int partsToRender = errorCount == 0 || infoCount == 0 ? 1 : 2; using var id = ImRaii.PushId("validationissues"); - var icon1 = FontAwesomeIcon.TimesCircle; + var icon1 = FontAwesomeIcon.ExclamationTriangle; var icon2 = FontAwesomeIcon.InfoCircle; Vector2 iconSize1, iconSize2; using (var _ = _pluginInterface.UiBuilder.IconFontFixedWidthHandle.Push()) diff --git a/Questionable/Windows/QuestValidationWindow.cs b/Questionable/Windows/QuestValidationWindow.cs index 173c82f37..7532ac5ea 100644 --- a/Questionable/Windows/QuestValidationWindow.cs +++ b/Questionable/Windows/QuestValidationWindow.cs @@ -77,7 +77,7 @@ internal sealed class QuestValidationWindow : LWindow if (validationIssue.Severity == EIssueSeverity.Error) { using var color = ImRaii.PushColor(ImGuiCol.Text, ImGuiColors.DalamudRed); - ImGui.TextUnformatted(FontAwesomeIcon.TimesCircle.ToIconString()); + ImGui.TextUnformatted(FontAwesomeIcon.ExclamationTriangle.ToIconString()); } else { -- 2.45.2 From 4d0161b42704b71fbfc83924bcb7982a2ef58439 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Fri, 4 Oct 2024 00:44:40 +0200 Subject: [PATCH 090/448] Add Heavensward/Stormblood Hildibrand quests --- .../Hildibrand/502_Her Last Vow.json | 3 +- ..._A Gentleman Falls, Rather than Flies.json | 238 +++++++++++++++ .../2227_Don't Call It a Comeback.json | 119 ++++++++ .../Hildibrand/2228_The Gigi Situation.json | 114 +++++++ .../2229_The Measure of a Mammet.json | 138 +++++++++ .../2369_A Gazebo to Call Our Own.json | 228 ++++++++++++++ .../2370_Don't Trust Anyone over Sixty.json | 213 +++++++++++++ .../2371_The Proud and the Pointy-eyed.json | 187 ++++++++++++ .../2372_If I Could Turn Back Time.json | 162 ++++++++++ ...68_A Picture Is Worth a Thousand Moms.json | 160 ++++++++++ .../3008_A Hingan Tale - Nashu Goes East.json | 197 ++++++++++++ .../3020_Life Imitates Art Imitates Life.json | 167 ++++++++++ .../3021_Of Wolves and Gentlemen.json | 136 +++++++++ .../3094_In the Eye of the Hingan.json | 101 ++++++ .../Side Stories/3095_The Blade Mislaid.json | 151 +++++++++ .../3150_The Black Heart Beneath.json | 162 ++++++++++ .../3151_Good Swords, Good Dogs.json | 111 +++++++ .../3167_The Past Is Never Past.json | 179 +++++++++++ .../3168_Don't Do the Dewprism.json | 164 ++++++++++ .../4542_The Sleeping Gentleman.json | 289 ++++++++++++++++++ .../Hildibrand/4543_A Soulful Reunion.json | 236 ++++++++++++++ 21 files changed, 3454 insertions(+), 1 deletion(-) create mode 100644 QuestPaths/3.x - Heavensward/Side Stories/Hildibrand/2226_A Gentleman Falls, Rather than Flies.json create mode 100644 QuestPaths/3.x - Heavensward/Side Stories/Hildibrand/2227_Don't Call It a Comeback.json create mode 100644 QuestPaths/3.x - Heavensward/Side Stories/Hildibrand/2228_The Gigi Situation.json create mode 100644 QuestPaths/3.x - Heavensward/Side Stories/Hildibrand/2229_The Measure of a Mammet.json create mode 100644 QuestPaths/3.x - Heavensward/Side Stories/Hildibrand/2369_A Gazebo to Call Our Own.json create mode 100644 QuestPaths/3.x - Heavensward/Side Stories/Hildibrand/2370_Don't Trust Anyone over Sixty.json create mode 100644 QuestPaths/3.x - Heavensward/Side Stories/Hildibrand/2371_The Proud and the Pointy-eyed.json create mode 100644 QuestPaths/3.x - Heavensward/Side Stories/Hildibrand/2372_If I Could Turn Back Time.json create mode 100644 QuestPaths/4.x - Stormblood/Side Quests/Kugane/2668_A Picture Is Worth a Thousand Moms.json create mode 100644 QuestPaths/4.x - Stormblood/Side Stories/3008_A Hingan Tale - Nashu Goes East.json create mode 100644 QuestPaths/4.x - Stormblood/Side Stories/3020_Life Imitates Art Imitates Life.json create mode 100644 QuestPaths/4.x - Stormblood/Side Stories/3021_Of Wolves and Gentlemen.json create mode 100644 QuestPaths/4.x - Stormblood/Side Stories/3094_In the Eye of the Hingan.json create mode 100644 QuestPaths/4.x - Stormblood/Side Stories/3095_The Blade Mislaid.json create mode 100644 QuestPaths/4.x - Stormblood/Side Stories/3150_The Black Heart Beneath.json create mode 100644 QuestPaths/4.x - Stormblood/Side Stories/3151_Good Swords, Good Dogs.json create mode 100644 QuestPaths/4.x - Stormblood/Side Stories/3167_The Past Is Never Past.json create mode 100644 QuestPaths/4.x - Stormblood/Side Stories/3168_Don't Do the Dewprism.json create mode 100644 QuestPaths/6.x - Endwalker/Side Stories/Hildibrand/4542_The Sleeping Gentleman.json create mode 100644 QuestPaths/6.x - Endwalker/Side Stories/Hildibrand/4543_A Soulful Reunion.json diff --git a/QuestPaths/2.x - A Realm Reborn/Side Stories/Hildibrand/502_Her Last Vow.json b/QuestPaths/2.x - A Realm Reborn/Side Stories/Hildibrand/502_Her Last Vow.json index 4fb68dddc..7f34150e6 100644 --- a/QuestPaths/2.x - A Realm Reborn/Side Stories/Hildibrand/502_Her Last Vow.json +++ b/QuestPaths/2.x - A Realm Reborn/Side Stories/Hildibrand/502_Her Last Vow.json @@ -99,7 +99,8 @@ "Z": 173.72388 }, "TerritoryId": 153, - "InteractionType": "CompleteQuest" + "InteractionType": "CompleteQuest", + "NextQuestId": 2226 } ] } diff --git a/QuestPaths/3.x - Heavensward/Side Stories/Hildibrand/2226_A Gentleman Falls, Rather than Flies.json b/QuestPaths/3.x - Heavensward/Side Stories/Hildibrand/2226_A Gentleman Falls, Rather than Flies.json new file mode 100644 index 000000000..e0b00111e --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Side Stories/Hildibrand/2226_A Gentleman Falls, Rather than Flies.json @@ -0,0 +1,238 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1016597, + "Position": { + "X": -266.71252, + "Y": -20.034918, + "Z": -66.42261 + }, + "TerritoryId": 419, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] The Jeweled Crozier" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InTerritory": [ + 419 + ], + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": -258.68442, + "Y": -20.03493, + "Z": -66.1965 + }, + "TerritoryId": 419, + "InteractionType": "WalkTo", + "SkipConditions": { + "StepIf": { + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + } + } + }, + { + "DataId": 1011207, + "Position": { + "X": -258.8083, + "Y": -20.03509, + "Z": -63.553833 + }, + "TerritoryId": 419, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "Position": { + "X": -226.53459, + "Y": -16.134916, + "Z": -51.93084 + }, + "TerritoryId": 419, + "InteractionType": "WalkTo", + "SkipConditions": { + "StepIf": { + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + } + } + }, + { + "DataId": 1011202, + "Position": { + "X": -228.10712, + "Y": -16.034918, + "Z": -49.912292 + }, + "TerritoryId": 419, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "Position": { + "X": -205.36649, + "Y": -16.134916, + "Z": -51.418564 + }, + "TerritoryId": 419, + "InteractionType": "WalkTo", + "SkipConditions": { + "StepIf": { + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + } + } + }, + { + "DataId": 1011204, + "Position": { + "X": -203.6012, + "Y": -16.034918, + "Z": -53.23877 + }, + "TerritoryId": 419, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1012180, + "Position": { + "X": -174.18176, + "Y": -12.555469, + "Z": -21.561035 + }, + "TerritoryId": 419, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1015596, + "Position": { + "X": 15.915161, + "Y": 15.96505, + "Z": -0.22894287 + }, + "TerritoryId": 419, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Ishgard] The Jeweled Crozier", + "[Ishgard] The Last Vigil" + ] + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 2006709, + "Position": { + "X": 38.80359, + "Y": 16.494995, + "Z": -31.204712 + }, + "TerritoryId": 419, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1011231, + "Position": { + "X": 503.1051, + "Y": 217.95148, + "Z": 790.2189 + }, + "TerritoryId": 397, + "InteractionType": "Interact", + "AetheryteShortcut": "Coerthas Western Highlands - Falcon's Nest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 2006753, + "Position": { + "X": -217.05963, + "Y": 88.09033, + "Z": -585.2598 + }, + "TerritoryId": 397, + "InteractionType": "CompleteQuest", + "Fly": true, + "NextQuestId": 2227 + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Side Stories/Hildibrand/2227_Don't Call It a Comeback.json b/QuestPaths/3.x - Heavensward/Side Stories/Hildibrand/2227_Don't Call It a Comeback.json new file mode 100644 index 000000000..416cbf97b --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Side Stories/Hildibrand/2227_Don't Call It a Comeback.json @@ -0,0 +1,119 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1016604, + "Position": { + "X": -222.24768, + "Y": 88.525505, + "Z": -582.8794 + }, + "StopDistance": 7, + "TerritoryId": 397, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1016629, + "Position": { + "X": 409.9336, + "Y": 166.24477, + "Z": -448.661 + }, + "TerritoryId": 397, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1016612, + "Position": { + "X": 757.83923, + "Y": 186.03809, + "Z": -538.26196 + }, + "TerritoryId": 397, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "Position": { + "X": 789.0687, + "Y": 186.03352, + "Z": -529.4571 + }, + "TerritoryId": 397, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [ + 5536 + ] + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 2006763, + "Position": { + "X": 789.2728, + "Y": 186.44995, + "Z": -529.3507 + }, + "TerritoryId": 397, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1016617, + "Position": { + "X": 790.3716, + "Y": 186.03076, + "Z": -527.0314 + }, + "TerritoryId": 397, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1016619, + "Position": { + "X": -66.84979, + "Y": 8.05915, + "Z": 9.506287 + }, + "TerritoryId": 418, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ishgard", + "NextQuestId": 2228 + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Side Stories/Hildibrand/2228_The Gigi Situation.json b/QuestPaths/3.x - Heavensward/Side Stories/Hildibrand/2228_The Gigi Situation.json new file mode 100644 index 000000000..35bdbb10c --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Side Stories/Hildibrand/2228_The Gigi Situation.json @@ -0,0 +1,114 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1016619, + "Position": { + "X": -66.84979, + "Y": 8.05915, + "Z": 9.506287 + }, + "TerritoryId": 418, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1016600, + "Position": { + "X": 46.097534, + "Y": 15.8650675, + "Z": -27.298462 + }, + "TerritoryId": 419, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] The Last Vigil" + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1017131, + "Position": { + "X": 35.446655, + "Y": 15.965061, + "Z": -96.75751 + }, + "TerritoryId": 419, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Ishgard] The Last Vigil", + "[Ishgard] The Tribunal" + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1017278, + "Position": { + "X": -158.31238, + "Y": 2.0333426, + "Z": -10.635559 + }, + "TerritoryId": 418, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Ishgard] The Tribunal", + "[Ishgard] Skysteel Manufactory" + ] + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1016607, + "Position": { + "X": -260.12054, + "Y": -20.035, + "Z": -66.14789 + }, + "TerritoryId": 419, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Ishgard] Skysteel Manufactory", + "[Ishgard] The Jeweled Crozier" + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1016608, + "Position": { + "X": -261.0971, + "Y": -20.03499, + "Z": -66.11737 + }, + "StopDistance": 5, + "TerritoryId": 419, + "InteractionType": "CompleteQuest", + "NextQuestId": 2229 + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Side Stories/Hildibrand/2229_The Measure of a Mammet.json b/QuestPaths/3.x - Heavensward/Side Stories/Hildibrand/2229_The Measure of a Mammet.json new file mode 100644 index 000000000..88ac8dfb5 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Side Stories/Hildibrand/2229_The Measure of a Mammet.json @@ -0,0 +1,138 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1016608, + "Position": { + "X": -261.0971, + "Y": -20.03499, + "Z": -66.11737 + }, + "StopDistance": 5, + "TerritoryId": 419, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1011225, + "Position": { + "X": -170.6112, + "Y": 16.979578, + "Z": -37.125244 + }, + "TerritoryId": 418, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Ishgard] The Jeweled Crozier", + "[Ishgard] Skysteel Manufactory" + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1017133, + "Position": { + "X": 408.07202, + "Y": 195.66847, + "Z": 585.3512 + }, + "TerritoryId": 397, + "InteractionType": "Interact", + "AetheryteShortcut": "Coerthas Western Highlands - Falcon's Nest", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2007180, + "Position": { + "X": 262.10425, + "Y": 163.31726, + "Z": 295.67407 + }, + "TerritoryId": 397, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1017274, + "Position": { + "X": 164.53796, + "Y": 166.2741, + "Z": 181.32288 + }, + "TerritoryId": 397, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1017274, + "Position": { + "X": 164.53796, + "Y": 166.2741, + "Z": 181.32288 + }, + "TerritoryId": 397, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1017277, + "Position": { + "X": 163.13416, + "Y": 166.2741, + "Z": 179.4613 + }, + "StopDistance": 5, + "TerritoryId": 397, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1016619, + "Position": { + "X": -66.84979, + "Y": 8.05915, + "Z": 9.506287 + }, + "TerritoryId": 418, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ishgard", + "NextQuestId": 2369 + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Side Stories/Hildibrand/2369_A Gazebo to Call Our Own.json b/QuestPaths/3.x - Heavensward/Side Stories/Hildibrand/2369_A Gazebo to Call Our Own.json new file mode 100644 index 000000000..fc1d57ed4 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Side Stories/Hildibrand/2369_A Gazebo to Call Our Own.json @@ -0,0 +1,228 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1016619, + "Position": { + "X": -66.84979, + "Y": 8.05915, + "Z": 9.506287 + }, + "TerritoryId": 418, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1017959, + "Position": { + "X": 39.505493, + "Y": 16.49931, + "Z": -29.922974 + }, + "TerritoryId": 419, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] The Last Vigil" + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1017962, + "Position": { + "X": 4.837097, + "Y": 11.964993, + "Z": 31.296265 + }, + "TerritoryId": 419, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 1017963, + "Position": { + "X": 21.683044, + "Y": 11.965154, + "Z": 47.68445 + }, + "TerritoryId": 419, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 1017964, + "Position": { + "X": -40.634766, + "Y": 11.965008, + "Z": 32.028687 + }, + "TerritoryId": 419, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1017968, + "Position": { + "X": -43.778137, + "Y": 11.965093, + "Z": 47.348755 + }, + "TerritoryId": 419, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1017970, + "Position": { + "X": 132.43298, + "Y": 205.99544, + "Z": 80.9491 + }, + "TerritoryId": 478, + "InteractionType": "Interact", + "AetheryteShortcut": "Idyllshire" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1012099, + "Position": { + "X": 50.278442, + "Y": 206.04715, + "Z": 57.75537 + }, + "TerritoryId": 478, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 1012299, + "Position": { + "X": -16.586609, + "Y": 206.49942, + "Z": 42.98462 + }, + "StopDistance": 5, + "TerritoryId": 478, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "Position": { + "X": -2.76668, + "Y": 205.81511, + "Z": 24.614613 + }, + "TerritoryId": 478, + "InteractionType": "WalkTo", + "SkipConditions": { + "StepIf": { + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + } + } + }, + { + "DataId": 1017977, + "Position": { + "X": -0.7172241, + "Y": 206.49947, + "Z": 20.09607 + }, + "StopDistance": 7, + "TerritoryId": 478, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1017981, + "Position": { + "X": 10.208252, + "Y": 206.77286, + "Z": 62.394165 + }, + "TerritoryId": 478, + "InteractionType": "CompleteQuest", + "NextQuestId": 2370 + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Side Stories/Hildibrand/2370_Don't Trust Anyone over Sixty.json b/QuestPaths/3.x - Heavensward/Side Stories/Hildibrand/2370_Don't Trust Anyone over Sixty.json new file mode 100644 index 000000000..f5a29229e --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Side Stories/Hildibrand/2370_Don't Trust Anyone over Sixty.json @@ -0,0 +1,213 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1017983, + "Position": { + "X": 11.520508, + "Y": 207.49994, + "Z": 85.34363 + }, + "StopDistance": 7, + "TerritoryId": 478, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1017988, + "Position": { + "X": -544.1825, + "Y": 144.84157, + "Z": -346.7918 + }, + "TerritoryId": 399, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Idyllshire] Aetheryte Plaza", + "[Idyllshire] Prologue Gate (Western Hinterlands)" + ], + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1017993, + "Position": { + "X": -544.1825, + "Y": 144.84157, + "Z": -346.7918 + }, + "TerritoryId": 399, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1017997, + "Position": { + "X": -595.48334, + "Y": 147.9601, + "Z": -37.43042 + }, + "TerritoryId": 399, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1018005, + "Position": { + "X": -761.31836, + "Y": 149.64381, + "Z": 16.739136 + }, + "TerritoryId": 399, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1018005, + "Position": { + "X": -761.31836, + "Y": 149.64381, + "Z": 16.739136 + }, + "TerritoryId": 399, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1018122, + "Position": { + "X": -761.2573, + "Y": 149.64243, + "Z": 16.80011 + }, + "TerritoryId": 399, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 7, + "Steps": [ + { + "DataId": 1018122, + "Position": { + "X": -761.2573, + "Y": 149.64243, + "Z": 16.80011 + }, + "TerritoryId": 399, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 8, + "Steps": [ + { + "DataId": 1018122, + "Position": { + "X": -761.2573, + "Y": 149.64243, + "Z": 16.80011 + }, + "TerritoryId": 399, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 9, + "Steps": [ + { + "DataId": 1018122, + "Position": { + "X": -761.2573, + "Y": 149.64243, + "Z": 16.80011 + }, + "TerritoryId": 399, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 10, + "Steps": [ + { + "DataId": 1017997, + "Position": { + "X": -595.48334, + "Y": 147.9601, + "Z": -37.43042 + }, + "TerritoryId": 399, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 11, + "Steps": [ + { + "DataId": 1018007, + "Position": { + "X": -602.5941, + "Y": 147.58852, + "Z": -39.230957 + }, + "StopDistance": 7, + "TerritoryId": 399, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1016619, + "Position": { + "X": -66.84979, + "Y": 8.05915, + "Z": 9.506287 + }, + "TerritoryId": 418, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ishgard", + "NextQuestId": 2371 + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Side Stories/Hildibrand/2371_The Proud and the Pointy-eyed.json b/QuestPaths/3.x - Heavensward/Side Stories/Hildibrand/2371_The Proud and the Pointy-eyed.json new file mode 100644 index 000000000..75850c08c --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Side Stories/Hildibrand/2371_The Proud and the Pointy-eyed.json @@ -0,0 +1,187 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1016619, + "Position": { + "X": -66.84979, + "Y": 8.05915, + "Z": 9.506287 + }, + "TerritoryId": 418, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1018448, + "Position": { + "X": 11.48999, + "Y": 206.58485, + "Z": 76.157715 + }, + "TerritoryId": 478, + "InteractionType": "Interact", + "AetheryteShortcut": "Idyllshire" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1018451, + "Position": { + "X": 606.775, + "Y": -49.501324, + "Z": 40.482178 + }, + "TerritoryId": 398, + "InteractionType": "Interact", + "AetheryteShortcut": "The Dravanian Forelands - Tailfeather", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1011920, + "Position": { + "X": 519.8595, + "Y": -51.071976, + "Z": 88.24292 + }, + "TerritoryId": 398, + "InteractionType": "Interact", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 1011921, + "Position": { + "X": 453.36072, + "Y": -51.141403, + "Z": 58.579346 + }, + "TerritoryId": 398, + "InteractionType": "Interact", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, + { + "Position": { + "X": 493.00256, + "Y": -51.02798, + "Z": 16.711847 + }, + "TerritoryId": 398, + "InteractionType": "WalkTo", + "Fly": true, + "SkipConditions": { + "StepIf": { + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + } + } + }, + { + "DataId": 1011919, + "Position": { + "X": 497.82556, + "Y": -49.790283, + "Z": 11.825684 + }, + "StopDistance": 7, + "TerritoryId": 398, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1018454, + "Position": { + "X": 549.18726, + "Y": -51.275715, + "Z": 6.1798096 + }, + "TerritoryId": 398, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1018460, + "Position": { + "X": -108.659546, + "Y": -35.633152, + "Z": -19.485779 + }, + "TerritoryId": 398, + "InteractionType": "Interact", + "AetheryteShortcut": "The Dravanian Forelands - Anyx Trine", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1018460, + "Position": { + "X": -108.659546, + "Y": -35.633152, + "Z": -19.485779 + }, + "TerritoryId": 398, + "InteractionType": "CompleteQuest", + "NextQuestId": 2372 + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Side Stories/Hildibrand/2372_If I Could Turn Back Time.json b/QuestPaths/3.x - Heavensward/Side Stories/Hildibrand/2372_If I Could Turn Back Time.json new file mode 100644 index 000000000..2fa5e8edc --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Side Stories/Hildibrand/2372_If I Could Turn Back Time.json @@ -0,0 +1,162 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1018463, + "Position": { + "X": -108.62903, + "Y": -35.63229, + "Z": -19.455322 + }, + "TerritoryId": 398, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1018468, + "Position": { + "X": -559.7162, + "Y": 48, + "Z": 304.5243 + }, + "TerritoryId": 400, + "InteractionType": "Interact", + "AetheryteShortcut": "The Churning Mists - Zenith" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1018468, + "Position": { + "X": -559.7162, + "Y": 48, + "Z": 304.5243 + }, + "TerritoryId": 400, + "InteractionType": "UseItem", + "ItemId": 2002034 + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1018468, + "Position": { + "X": -559.7162, + "Y": 48, + "Z": 304.5243 + }, + "TerritoryId": 400, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1018468, + "Position": { + "X": -559.7162, + "Y": 48, + "Z": 304.5243 + }, + "TerritoryId": 400, + "InteractionType": "UseItem", + "ItemId": 2002047 + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1018468, + "Position": { + "X": -559.7162, + "Y": 48, + "Z": 304.5243 + }, + "TerritoryId": 400, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1018468, + "Position": { + "X": -559.7162, + "Y": 48, + "Z": 304.5243 + }, + "TerritoryId": 400, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 7, + "Steps": [ + { + "DataId": 1018468, + "Position": { + "X": -559.7162, + "Y": 48, + "Z": 304.5243 + }, + "TerritoryId": 400, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 8, + "Steps": [ + { + "DataId": 1018459, + "Position": { + "X": -673.8232, + "Y": 73, + "Z": 288.4718 + }, + "StopDistance": 5, + "TerritoryId": 400, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1018456, + "Position": { + "X": 13.595764, + "Y": 206.59943, + "Z": 77.28699 + }, + "TerritoryId": 478, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Idyllshire", + "NextQuestId": 3008 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Side Quests/Kugane/2668_A Picture Is Worth a Thousand Moms.json b/QuestPaths/4.x - Stormblood/Side Quests/Kugane/2668_A Picture Is Worth a Thousand Moms.json new file mode 100644 index 000000000..e6debd998 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Side Quests/Kugane/2668_A Picture Is Worth a Thousand Moms.json @@ -0,0 +1,160 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1022958, + "Position": { + "X": 25.253662, + "Y": 7.9999995, + "Z": 159.47205 + }, + "TerritoryId": 628, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": -59.62348, + "Y": 7.999999, + "Z": -59.427254 + }, + "TerritoryId": 628, + "InteractionType": "WalkTo", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ], + "AethernetShortcut": [ + "[Kugane] Thavnairian Consulate", + "[Kugane] Shiokaze Hostelry" + ], + "RestartNavigationIfCancelled": false + }, + { + "Position": { + "X": -74.28216, + "Y": 18, + "Z": -164.39622 + }, + "TerritoryId": 628, + "InteractionType": "Jump", + "AethernetShortcut": [ + "[Kugane] Shiokaze Hostelry", + "[Kugane] Bokairo Inn" + ], + "JumpDestination": { + "Position": { + "X": -67.259315, + "Y": 20.530502, + "Z": -163.86617 + }, + "StopDistance": 0.5, + "Type": "RepeatedJumps" + } + }, + { + "Position": { + "X": -37.85175, + "Y": 20.196363, + "Z": -163.43034 + }, + "TerritoryId": 628, + "InteractionType": "WalkTo" + }, + { + "Position": { + "X": -37.806847, + "Y": 21.332985, + "Z": -161.45049 + }, + "StopDistance": 1, + "TerritoryId": 628, + "InteractionType": "Jump", + "JumpDestination": { + "Position": { + "X": -31.778416, + "Y": 23.141376, + "Z": -159.92921 + } + } + }, + { + "Position": { + "X": -32.529102, + "Y": 23.164635, + "Z": -159.86409 + }, + "StopDistance": 0.5, + "TerritoryId": 628, + "InteractionType": "Jump", + "JumpDestination": { + "Position": { + "X": -28.255697, + "Y": 24.146992, + "Z": -159.81477 + } + } + }, + { + "Position": { + "X": -28.255697, + "Y": 24.146992, + "Z": -159.81477 + }, + "StopDistance": 0.5, + "TerritoryId": 628, + "InteractionType": "Jump", + "JumpDestination": { + "Position": { + "X": -24.809277, + "Y": 24.899979, + "Z": -159.88982 + }, + "StopDistance": 0.5 + }, + "RestartNavigationIfCancelled": false, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1022958, + "Position": { + "X": 25.253662, + "Y": 7.9999995, + "Z": 159.47205 + }, + "TerritoryId": 628, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Kugane", + "AethernetShortcut": [ + "[Kugane] Aetheryte Plaza", + "[Kugane] Thavnairian Consulate" + ] + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Side Stories/3008_A Hingan Tale - Nashu Goes East.json b/QuestPaths/4.x - Stormblood/Side Stories/3008_A Hingan Tale - Nashu Goes East.json new file mode 100644 index 000000000..8715a0071 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Side Stories/3008_A Hingan Tale - Nashu Goes East.json @@ -0,0 +1,197 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1024349, + "Position": { + "X": -27.054321, + "Y": -1.3048761E-05, + "Z": -69.596436 + }, + "TerritoryId": 628, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Kugane", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1024350, + "Position": { + "X": -36.02661, + "Y": 14.001708, + "Z": -45.39563 + }, + "TerritoryId": 628, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1024350, + "Position": { + "X": -36.02661, + "Y": 14.001708, + "Z": -45.39563 + }, + "TerritoryId": 628, + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_CHRHDB711_03008_Q1_000_000", + "Answer": "TEXT_CHRHDB711_03008_A1_000_002" + } + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1019000, + "Position": { + "X": 39.414062, + "Y": 4.49998, + "Z": -43.47296 + }, + "TerritoryId": 628, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "Position": { + "X": -93.72425, + "Y": 11.799999, + "Z": -147.28041 + }, + "TerritoryId": 628, + "InteractionType": "WalkTo", + "SkipConditions": { + "StepIf": { + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + } + } + }, + { + "DataId": 1019034, + "Position": { + "X": -95.84198, + "Y": 11.8, + "Z": -147.29541 + }, + "TerritoryId": 628, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, + { + "DataId": 1024409, + "Position": { + "X": -20.920166, + "Y": 6.019962, + "Z": -133.31812 + }, + "TerritoryId": 628, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1024351, + "Position": { + "X": -36.270752, + "Y": 5.9819617, + "Z": -152.36133 + }, + "TerritoryId": 628, + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_CHRHDB711_03008_Q2_000_000", + "Answer": "TEXT_CHRHDB711_03008_A2_000_001" + } + ] + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1024352, + "Position": { + "X": 24.093994, + "Y": 6.025086, + "Z": -134.02002 + }, + "TerritoryId": 628, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1024355, + "Position": { + "X": 25.375732, + "Y": 6.0313134, + "Z": -119.432434 + }, + "TerritoryId": 628, + "InteractionType": "CompleteQuest", + "NextQuestId": 3020 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Side Stories/3020_Life Imitates Art Imitates Life.json b/QuestPaths/4.x - Stormblood/Side Stories/3020_Life Imitates Art Imitates Life.json new file mode 100644 index 000000000..15ab40c0f --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Side Stories/3020_Life Imitates Art Imitates Life.json @@ -0,0 +1,167 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1024355, + "Position": { + "X": 25.375732, + "Y": 6.0313134, + "Z": -119.432434 + }, + "TerritoryId": 628, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Kugane", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + }, + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_CHRHDB721_03020_Q1_000_004", + "Answer": "TEXT_CHRHDB721_03020_A1_000_005" + } + ] + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1024711, + "Position": { + "X": 136.21729, + "Y": 12.000006, + "Z": -69.87109 + }, + "TerritoryId": 628, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Kugane] Rakuza District", + "[Kugane] Sekiseigumi Barracks" + ], + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 1019063, + "Position": { + "X": 3.3416748, + "Y": -6.6541724E-11, + "Z": -67.73486 + }, + "TerritoryId": 628, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Kugane] Sekiseigumi Barracks", + "[Kugane] Aetheryte Plaza" + ], + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, + { + "DataId": 1019039, + "Position": { + "X": -35.111023, + "Y": 13.999897, + "Z": -64.042114 + }, + "TerritoryId": 628, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1024705, + "Position": { + "X": 8.590759, + "Y": 4, + "Z": 35.171997 + }, + "TerritoryId": 628, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1024708, + "Position": { + "X": 98.83264, + "Y": 4.0000014, + "Z": 103.471436 + }, + "TerritoryId": 628, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1024709, + "Position": { + "X": -108.01868, + "Y": -5.999997, + "Z": 70.23718 + }, + "TerritoryId": 628, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1024710, + "Position": { + "X": 835.5382, + "Y": 5.9230075, + "Z": 834.6837 + }, + "TerritoryId": 613, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Kugane", + "AethernetShortcut": [ + "[Kugane] Aetheryte Plaza", + "[Kugane] The Ruby Price" + ], + "NextQuestId": 3021 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Side Stories/3021_Of Wolves and Gentlemen.json b/QuestPaths/4.x - Stormblood/Side Stories/3021_Of Wolves and Gentlemen.json new file mode 100644 index 000000000..1f90ec688 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Side Stories/3021_Of Wolves and Gentlemen.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": 1024710, + "Position": { + "X": 835.5382, + "Y": 5.9230075, + "Z": 834.6837 + }, + "TerritoryId": 613, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1019166, + "Position": { + "X": 495.6587, + "Y": 29.394592, + "Z": 722.0111 + }, + "TerritoryId": 613, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1024717, + "Position": { + "X": 503.44092, + "Y": 28.738373, + "Z": 737.4226 + }, + "TerritoryId": 613, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2008628, + "Position": { + "X": 633.81384, + "Y": 1.4800415, + "Z": 216.26611 + }, + "TerritoryId": 613, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1024722, + "Position": { + "X": 615.4115, + "Y": 69.10424, + "Z": -79.88104 + }, + "TerritoryId": 613, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1024723, + "Position": { + "X": 534.2031, + "Y": 0.004061999, + "Z": -252.58258 + }, + "TerritoryId": 613, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1024725, + "Position": { + "X": 100.02283, + "Y": 4.0000014, + "Z": 99.25989 + }, + "TerritoryId": 628, + "InteractionType": "Interact", + "AetheryteShortcut": "Kugane", + "AethernetShortcut": [ + "[Kugane] Aetheryte Plaza", + "[Kugane] Kogane Dori Markets" + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1024708, + "Position": { + "X": 98.83264, + "Y": 4.0000014, + "Z": 103.471436 + }, + "TerritoryId": 628, + "InteractionType": "CompleteQuest", + "NextQuestId": 3094 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Side Stories/3094_In the Eye of the Hingan.json b/QuestPaths/4.x - Stormblood/Side Stories/3094_In the Eye of the Hingan.json new file mode 100644 index 000000000..cbbdeeeb5 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Side Stories/3094_In the Eye of the Hingan.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": 1024708, + "Position": { + "X": 98.83264, + "Y": 4.0000014, + "Z": 103.471436 + }, + "TerritoryId": 628, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1025885, + "Position": { + "X": 26.443848, + "Y": 6.024561, + "Z": -118.57788 + }, + "TerritoryId": 628, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Kugane] Kogane Dori Markets", + "[Kugane] Rakuza District" + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1025887, + "Position": { + "X": -62.790894, + "Y": 6.0295854, + "Z": -171.19104 + }, + "TerritoryId": 628, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1025891, + "Position": { + "X": -45.059937, + "Y": 10.503964, + "Z": -191.79071 + }, + "TerritoryId": 628, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1025887, + "Position": { + "X": -62.790894, + "Y": 6.0295854, + "Z": -171.19104 + }, + "TerritoryId": 628, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1025893, + "Position": { + "X": -60.41046, + "Y": 6.0110765, + "Z": -168.41382 + }, + "TerritoryId": 628, + "InteractionType": "CompleteQuest", + "NextQuestId": 3095 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Side Stories/3095_The Blade Mislaid.json b/QuestPaths/4.x - Stormblood/Side Stories/3095_The Blade Mislaid.json new file mode 100644 index 000000000..c493b8f0f --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Side Stories/3095_The Blade Mislaid.json @@ -0,0 +1,151 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1025893, + "Position": { + "X": -60.41046, + "Y": 6.0110765, + "Z": -168.41382 + }, + "TerritoryId": 628, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1025896, + "Position": { + "X": 248.09644, + "Y": 17.471375, + "Z": -664.9729 + }, + "TerritoryId": 614, + "InteractionType": "Interact", + "AetheryteShortcut": "Yanxia - House of the Fierce", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1025901, + "Position": { + "X": -93.70575, + "Y": 53.144028, + "Z": -530.2663 + }, + "TerritoryId": 614, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1025906, + "Position": { + "X": -208.8808, + "Y": 53.217514, + "Z": -581.3535 + }, + "TerritoryId": 614, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 2009533, + "Position": { + "X": -220.11145, + "Y": 53.20813, + "Z": -597.80273 + }, + "TerritoryId": 614, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1025910, + "Position": { + "X": -125.41394, + "Y": 53.217514, + "Z": -648.4321 + }, + "TerritoryId": 614, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1025911, + "Position": { + "X": -126.237915, + "Y": 53.217514, + "Z": -650.6905 + }, + "StopDistance": 5, + "TerritoryId": 614, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 7, + "Steps": [ + { + "DataId": 1019030, + "Position": { + "X": 65.72058, + "Y": 10.503965, + "Z": -167.1626 + }, + "TerritoryId": 628, + "InteractionType": "Interact", + "AetheryteShortcut": "Kugane" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1025912, + "Position": { + "X": 66.57507, + "Y": 10.503965, + "Z": -155.59625 + }, + "StopDistance": 5, + "TerritoryId": 628, + "InteractionType": "CompleteQuest", + "NextQuestId": 3150 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Side Stories/3150_The Black Heart Beneath.json b/QuestPaths/4.x - Stormblood/Side Stories/3150_The Black Heart Beneath.json new file mode 100644 index 000000000..70c91fb6d --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Side Stories/3150_The Black Heart Beneath.json @@ -0,0 +1,162 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1025912, + "Position": { + "X": 66.57507, + "Y": 10.503965, + "Z": -155.59625 + }, + "StopDistance": 5, + "TerritoryId": 628, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1022620, + "Position": { + "X": -4.7455444, + "Y": 0.022830343, + "Z": -113.96973 + }, + "TerritoryId": 628, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 1019063, + "Position": { + "X": 3.3416748, + "Y": -6.6541724E-11, + "Z": -67.73486 + }, + "TerritoryId": 628, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, + { + "DataId": 1022628, + "Position": { + "X": 38.651123, + "Y": 2.99999, + "Z": -66.7583 + }, + "TerritoryId": 628, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1025912, + "Position": { + "X": 66.57507, + "Y": 10.503965, + "Z": -155.59625 + }, + "TerritoryId": 628, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1026349, + "Position": { + "X": 62.18042, + "Y": 5.991543, + "Z": -106.126526 + }, + "StopDistance": 5, + "TerritoryId": 628, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "Position": { + "X": 65.39469, + "Y": 5.8110533, + "Z": -121.784775 + }, + "TerritoryId": 628, + "InteractionType": "WalkTo" + }, + { + "Position": { + "X": 72.780495, + "Y": -8.000002, + "Z": -127.28816 + }, + "TerritoryId": 628, + "InteractionType": "WalkTo", + "DisableNavmesh": true + }, + { + "DataId": 1026457, + "Position": { + "X": 62.271973, + "Y": -8.0999975, + "Z": -225.2995 + }, + "TerritoryId": 628, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1026353, + "Position": { + "X": 45.456543, + "Y": -7.470526, + "Z": -261.34125 + }, + "TerritoryId": 628, + "InteractionType": "CompleteQuest", + "NextQuestId": 3151 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Side Stories/3151_Good Swords, Good Dogs.json b/QuestPaths/4.x - Stormblood/Side Stories/3151_Good Swords, Good Dogs.json new file mode 100644 index 000000000..50a08d2b5 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Side Stories/3151_Good Swords, Good Dogs.json @@ -0,0 +1,111 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1026351, + "Position": { + "X": 45.090332, + "Y": -7.469796, + "Z": -262.7146 + }, + "StopDistance": 5, + "TerritoryId": 628, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1026355, + "Position": { + "X": 841.27563, + "Y": 1.1792023, + "Z": 861.90576 + }, + "TerritoryId": 613, + "InteractionType": "Interact", + "AetheryteShortcut": "Kugane", + "AethernetShortcut": [ + "[Kugane] Aetheryte Plaza", + "[Kugane] The Ruby Price" + ], + "Mount": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1019166, + "Position": { + "X": 495.6587, + "Y": 29.394592, + "Z": 722.0111 + }, + "TerritoryId": 613, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1026366, + "Position": { + "X": 433.73767, + "Y": 30.29471, + "Z": 780.69727 + }, + "TerritoryId": 613, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1026367, + "Position": { + "X": 297.32202, + "Y": 0.35283074, + "Z": 470.51184 + }, + "TerritoryId": 613, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1026369, + "Position": { + "X": -35.080566, + "Y": 5.983372, + "Z": -152.23932 + }, + "TerritoryId": 628, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Kugane", + "AethernetShortcut": [ + "[Kugane] Aetheryte Plaza", + "[Kugane] Rakuza District" + ], + "NextQuestId": 3167 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Side Stories/3167_The Past Is Never Past.json b/QuestPaths/4.x - Stormblood/Side Stories/3167_The Past Is Never Past.json new file mode 100644 index 000000000..a2a606f82 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Side Stories/3167_The Past Is Never Past.json @@ -0,0 +1,179 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1024351, + "Position": { + "X": -36.270752, + "Y": 5.9819617, + "Z": -152.36133 + }, + "StopDistance": 5, + "TerritoryId": 628, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1026363, + "Position": { + "X": 54.61206, + "Y": 7.999999, + "Z": 192.401 + }, + "TerritoryId": 628, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Kugane] Rakuza District", + "[Kugane] Thavnairian Consulate" + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "TerritoryId": 628, + "InteractionType": "Duty", + "ContentFinderConditionId": 595 + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1026364, + "Position": { + "X": 52.536743, + "Y": 8.02, + "Z": 192.49243 + }, + "TerritoryId": 628, + "InteractionType": "Interact", + "AetheryteShortcut": "Kugane", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1024351, + "Position": { + "X": -36.270752, + "Y": 5.9819617, + "Z": -152.36133 + }, + "TerritoryId": 628, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Kugane] Thavnairian Consulate", + "[Kugane] Rakuza District" + ] + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1019063, + "Position": { + "X": 3.3416748, + "Y": -6.6541724E-11, + "Z": -67.73486 + }, + "TerritoryId": 628, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 1018994, + "Position": { + "X": 49.240845, + "Y": 4.0000005, + "Z": 55.77173 + }, + "TerritoryId": 628, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Kugane] Aetheryte Plaza", + "[Kugane] Kogane Dori Markets" + ], + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1026369, + "Position": { + "X": -35.080566, + "Y": 5.983372, + "Z": -152.23932 + }, + "TerritoryId": 628, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Kugane] Kogane Dori Markets", + "[Kugane] Rakuza District" + ], + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_CHRHDB751_03167_Q1_000_000", + "Answer": "TEXT_CHRHDB751_03167_A1_000_002" + } + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1025885, + "Position": { + "X": 26.443848, + "Y": 6.024561, + "Z": -118.57788 + }, + "StopDistance": 5, + "TerritoryId": 628, + "InteractionType": "CompleteQuest", + "NextQuestId": 3168 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Side Stories/3168_Don't Do the Dewprism.json b/QuestPaths/4.x - Stormblood/Side Stories/3168_Don't Do the Dewprism.json new file mode 100644 index 000000000..fdb72ac46 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Side Stories/3168_Don't Do the Dewprism.json @@ -0,0 +1,164 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1025885, + "Position": { + "X": 26.443848, + "Y": 6.024561, + "Z": -118.57788 + }, + "StopDistance": 5, + "TerritoryId": 628, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": 65.39469, + "Y": 5.8110533, + "Z": -121.784775 + }, + "TerritoryId": 628, + "InteractionType": "WalkTo" + }, + { + "Position": { + "X": 72.780495, + "Y": -8.000002, + "Z": -127.28816 + }, + "TerritoryId": 628, + "InteractionType": "WalkTo", + "DisableNavmesh": true + }, + { + "DataId": 1019068, + "Position": { + "X": 42.191162, + "Y": -7.463482, + "Z": -264.75934 + }, + "TerritoryId": 628, + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_CHRHDB752_03168_Q1_000_000", + "Answer": "TEXT_CHRHDB752_03168_A1_000_001" + } + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1019033, + "Position": { + "X": 52.048462, + "Y": 8.02, + "Z": 140.55078 + }, + "TerritoryId": 628, + "InteractionType": "Interact", + "AetheryteShortcut": "Kugane", + "AethernetShortcut": [ + "[Kugane] Aetheryte Plaza", + "[Kugane] Thavnairian Consulate" + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "Position": { + "X": 16.635633, + "Y": 11.441568, + "Z": 174.71848 + }, + "TerritoryId": 628, + "InteractionType": "WalkTo" + }, + { + "DataId": 1026764, + "Position": { + "X": 24.917969, + "Y": 6.0124164, + "Z": -123.979614 + }, + "TerritoryId": 628, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Kugane] Thavnairian Consulate", + "[Kugane] Rakuza District" + ] + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1026350, + "Position": { + "X": 512.90137, + "Y": 0.8484344, + "Z": 148.91272 + }, + "TerritoryId": 613, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Kugane] Rakuza District", + "[Kugane] The Ruby Price" + ], + "Fly": true + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1026765, + "Position": { + "X": 495.10938, + "Y": 1.611506, + "Z": 149.49255 + }, + "StopDistance": 5, + "TerritoryId": 613, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1026766, + "Position": { + "X": 52.384155, + "Y": 10.503965, + "Z": -154.03986 + }, + "TerritoryId": 628, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Kugane", + "NextQuestId": 4542 + } + ] + } + ] +} diff --git a/QuestPaths/6.x - Endwalker/Side Stories/Hildibrand/4542_The Sleeping Gentleman.json b/QuestPaths/6.x - Endwalker/Side Stories/Hildibrand/4542_The Sleeping Gentleman.json new file mode 100644 index 000000000..2116b0b5b --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Side Stories/Hildibrand/4542_The Sleeping Gentleman.json @@ -0,0 +1,289 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1042487, + "Position": { + "X": 32.272827, + "Y": -4.4237822E-07, + "Z": -0.7477417 + }, + "TerritoryId": 963, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Radz-at-Han", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_CHRHDB811_04542_Q4_000_000", + "Answer": "TEXT_CHRHDB811_04542_A4_000_001" + } + ] + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1042488, + "Position": { + "X": 150.68274, + "Y": 4.783756, + "Z": -145.00653 + }, + "TerritoryId": 963, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1042489, + "Position": { + "X": 147.75305, + "Y": 27.06, + "Z": 36.057007 + }, + "TerritoryId": 963, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Radz-at-Han] Aetheryte Plaza", + "[Radz-at-Han] Kama" + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1027322, + "Position": { + "X": -20.126648, + "Y": 3.9998171, + "Z": 204.24194 + }, + "StopDistance": 5, + "TerritoryId": 819, + "InteractionType": "Interact", + "AetheryteShortcut": "Crystarium", + "AethernetShortcut": [ + "[Crystarium] Aetheryte Plaza", + "[Crystarium] The Pendants" + ] + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "TerritoryId": 819, + "AethernetShortcut": [ + "[Crystarium] The Pendants", + "[Crystarium] Tessellation (Lakeland)" + ], + "InteractionType": "None" + }, + { + "Position": { + "X": 55.589294, + "Y": 2.0276523, + "Z": 669.1557 + }, + "TerritoryId": 813, + "InteractionType": "WalkTo", + "SkipConditions": { + "StepIf": { + "Flying": "Unlocked" + } + }, + "Comment": "these bridges have navmesh problems" + }, + { + "Position": { + "X": 15.410904, + "Y": 2.2598603, + "Z": 677.3755 + }, + "TerritoryId": 813, + "InteractionType": "WalkTo", + "DisableNavmesh": true, + "SkipConditions": { + "StepIf": { + "Flying": "Unlocked" + } + } + }, + { + "Position": { + "X": -82.79376, + "Y": 11.970126, + "Z": 765.8721 + }, + "TerritoryId": 813, + "InteractionType": "WalkTo", + "SkipConditions": { + "StepIf": { + "Flying": "Unlocked" + } + } + }, + { + "DataId": 1042493, + "Position": { + "X": -106.73688, + "Y": 14.173656, + "Z": 756.4354 + }, + "TerritoryId": 813, + "InteractionType": "Interact", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, + { + "DataId": 1042491, + "Position": { + "X": -137.22437, + "Y": 9.572956, + "Z": 708.3999 + }, + "StopDistance": 1, + "TerritoryId": 813, + "InteractionType": "Interact", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 1042492, + "Position": { + "X": -218.76862, + "Y": 1.9084097, + "Z": 756.16077 + }, + "TerritoryId": 813, + "InteractionType": "Interact", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "Position": { + "X": -82.79376, + "Y": 11.970126, + "Z": 765.8721 + }, + "TerritoryId": 813, + "InteractionType": "WalkTo", + "SkipConditions": { + "StepIf": { + "Flying": "Unlocked" + } + } + }, + { + "DataId": 1042494, + "Position": { + "X": -54.032227, + "Y": 2.015483, + "Z": 677.9125 + }, + "TerritoryId": 813, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": 15.410904, + "Y": 2.2598603, + "Z": 677.3755 + }, + "TerritoryId": 813, + "InteractionType": "WalkTo", + "SkipConditions": { + "StepIf": { + "Flying": "Unlocked" + } + } + }, + { + "Position": { + "X": 55.589294, + "Y": 2.0276523, + "Z": 669.1557 + }, + "TerritoryId": 813, + "InteractionType": "WalkTo", + "DisableNavmesh": true, + "SkipConditions": { + "StepIf": { + "Flying": "Unlocked" + } + }, + "Comment": "these bridges have navmesh problems" + }, + { + "Position": { + "X": 105.453514, + "Y": -1.5952542, + "Z": 604.3535 + }, + "TerritoryId": 813, + "InteractionType": "WalkTo", + "SkipConditions": { + "StepIf": { + "Flying": "Unlocked" + } + } + }, + { + "DataId": 1042497, + "Position": { + "X": 220.7522, + "Y": 12.699311, + "Z": 229.84656 + }, + "TerritoryId": 813, + "InteractionType": "CompleteQuest", + "Fly": true, + "NextQuestId": 4543 + } + ] + } + ] +} diff --git a/QuestPaths/6.x - Endwalker/Side Stories/Hildibrand/4543_A Soulful Reunion.json b/QuestPaths/6.x - Endwalker/Side Stories/Hildibrand/4543_A Soulful Reunion.json new file mode 100644 index 000000000..08b0bfae0 --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Side Stories/Hildibrand/4543_A Soulful Reunion.json @@ -0,0 +1,236 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1042499, + "Position": { + "X": 217.51733, + "Y": 12.445339, + "Z": 228.44275 + }, + "StopDistance": 5, + "TerritoryId": 813, + "InteractionType": "AcceptQuest", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_CHRHDB812_04543_Q1_000_000", + "Answer": "TEXT_CHRHDB812_04543_A1_000_002" + } + ] + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1042502, + "Position": { + "X": -57.38922, + "Y": -36.72638, + "Z": -254.53583 + }, + "TerritoryId": 819, + "InteractionType": "Interact", + "AetheryteShortcut": "Crystarium", + "AethernetShortcut": [ + "[Crystarium] Aetheryte Plaza", + "[Crystarium] The Cabinet of Curiosity" + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1042505, + "Position": { + "X": 148.11926, + "Y": 27.06, + "Z": 36.240112 + }, + "TerritoryId": 963, + "InteractionType": "Interact", + "AetheryteShortcut": "Radz-at-Han", + "AethernetShortcut": [ + "[Radz-at-Han] Aetheryte Plaza", + "[Radz-at-Han] Kama" + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1037341, + "Position": { + "X": 133.77576, + "Y": 26.99999, + "Z": 12.405518 + }, + "TerritoryId": 963, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 1037352, + "Position": { + "X": 112.10791, + "Y": 26.99999, + "Z": 25.253662 + }, + "TerritoryId": 963, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1042506, + "Position": { + "X": 126.11572, + "Y": 26.999989, + "Z": 32.76111 + }, + "TerritoryId": 963, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1042508, + "Position": { + "X": 126.11572, + "Y": 26.999989, + "Z": 32.76111 + }, + "TerritoryId": 963, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1037324, + "Position": { + "X": -4.257263, + "Y": 27, + "Z": 36.362183 + }, + "TerritoryId": 963, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 7, + "Steps": [ + { + "Position": { + "X": -3.0175605, + "Y": 27, + "Z": 36.584843 + }, + "StopDistance": 0.5, + "TerritoryId": 963, + "InteractionType": "Jump", + "JumpDestination": { + "Position": { + "X": -3.6922705, + "Y": -1.9999962, + "Z": 52.106045 + } + } + }, + { + "DataId": 1042509, + "Position": { + "X": -29.373718, + "Y": -1.9999962, + "Z": 130.93762 + }, + "TerritoryId": 963, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 8, + "Steps": [ + { + "DataId": 1042510, + "Position": { + "X": -337.57538, + "Y": 3.2215352, + "Z": 365.7129 + }, + "TerritoryId": 957, + "InteractionType": "Interact", + "AetheryteShortcut": "Thavnair - Great Work", + "Fly": true + } + ] + }, + { + "Sequence": 9, + "Steps": [ + { + "DataId": 1042511, + "Position": { + "X": -376.669, + "Y": 1.1651754, + "Z": 379.23242 + }, + "StopDistance": 5, + "TerritoryId": 957, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1042512, + "Position": { + "X": 31.387817, + "Y": -5.021957E-07, + "Z": -0.65618896 + }, + "TerritoryId": 963, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Radz-at-Han" + } + ] + } + ] +} -- 2.45.2 From 0475a8601687574f710f088e42cd8e967b9ab7e9 Mon Sep 17 00:00:00 2001 From: kaiser Date: Sat, 5 Oct 2024 08:54:36 +1000 Subject: [PATCH 091/448] WIP: Astro quests. --- .../AST/2013_Fortune Favors the Bole.json | 74 ++++++++ .../AST/2014_Hanging in the Balance.json | 165 ++++++++++++++++++ 2 files changed, 239 insertions(+) create mode 100644 QuestPaths/3.x - Heavensward/Class Quests/AST/2013_Fortune Favors the Bole.json create mode 100644 QuestPaths/3.x - Heavensward/Class Quests/AST/2014_Hanging in the Balance.json diff --git a/QuestPaths/3.x - Heavensward/Class Quests/AST/2013_Fortune Favors the Bole.json b/QuestPaths/3.x - Heavensward/Class Quests/AST/2013_Fortune Favors the Bole.json new file mode 100644 index 000000000..cc573a4b4 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Class Quests/AST/2013_Fortune Favors the Bole.json @@ -0,0 +1,74 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "kaiser", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1014981, + "Position": { + "X": 185.62585, + "Y": 14.044273, + "Z": 50.492065 + }, + "TerritoryId": 153, + "InteractionType": "AcceptQuest", + "StopDistance": 5, + "Fly": true, + "AetheryteShortcut": "South Shroud - Quarrymill", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + }, + "Comment": "This quest have solo duty!" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1014981, + "Position": { + "X": 185.62585, + "Y": 14.044273, + "Z": 50.492065 + }, + "TerritoryId": 153, + "InteractionType": "SinglePlayerDuty", + "StopDistance": 5, + "Fly": true, + "AetheryteShortcut": "South Shroud - Quarrymill", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1012222, + "Position": { + "X": 202.38037, + "Y": -5.3999662, + "Z": -58.9151 + }, + "TerritoryId": 419, + "InteractionType": "CompleteQuest", + "StopDistance": 5, + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] Athenaeum Astrologicum" + ] + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Class Quests/AST/2014_Hanging in the Balance.json b/QuestPaths/3.x - Heavensward/Class Quests/AST/2014_Hanging in the Balance.json new file mode 100644 index 000000000..d496cab03 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Class Quests/AST/2014_Hanging in the Balance.json @@ -0,0 +1,165 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "kaiser", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1012222, + "Position": { + "X": 202.38037, + "Y": -5.3999662, + "Z": -58.9151 + }, + "TerritoryId": 419, + "InteractionType": "AcceptQuest", + "StopDistance": 5, + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] Athenaeum Astrologicum" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1014935, + "Position": { + "X": 143.35852, + "Y": -6.0896406, + "Z": 409.81152 + }, + "TerritoryId": 145, + "InteractionType": "Interact", + "StopDistance": 5, + "Fly": true, + "AetheryteShortcut": "Eastern Thanalan - Camp Drybone", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2006314, + "Position": { + "X": 143.05322, + "Y": -6.149414, + "Z": 412.10034 + }, + "TerritoryId": 145, + "InteractionType": "Interact", + "StopDistance": 2, + "AetheryteShortcut": "Eastern Thanalan - Camp Drybone", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1014941, + "Position": { + "X": -61.72278, + "Y": 23.150558, + "Z": -408.71295 + }, + "TerritoryId": 146, + "InteractionType": "Interact", + "StopDistance": 4, + "Fly": false, + "AetheryteShortcut": "Southern Thanalan - Little Ala Mhigo", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 2006315, + "Position": { + "X": -60.16632, + "Y": 23.147888, + "Z": -406.79028 + }, + "TerritoryId": 146, + "InteractionType": "Interact", + "StopDistance": 2, + "AetheryteShortcut": "Southern Thanalan - Little Ala Mhigo", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1014941, + "Position": { + "X": -61.72278, + "Y": 23.150558, + "Z": -408.71295 + }, + "TerritoryId": 146, + "InteractionType": "Interact", + "StopDistance": 3, + "AetheryteShortcut": "Southern Thanalan - Little Ala Mhigo", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1012222, + "Position": { + "X": 202.38037, + "Y": -5.3999662, + "Z": -58.9151 + }, + "TerritoryId": 419, + "InteractionType": "CompleteQuest", + "StopDistance": 5, + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] Athenaeum Astrologicum" + ] + } + ] + } + ] +} -- 2.45.2 From 708e260eee95a508758e00b24758d08ac79eb84e Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sat, 5 Oct 2024 14:32:29 +0200 Subject: [PATCH 092/448] Add config option for TA settings --- Directory.Build.targets | 2 +- Questionable/Configuration.cs | 1 + Questionable/External/TextAdvanceIpc.cs | 14 ++++++++++---- Questionable/Windows/ConfigWindow.cs | 7 +++++++ 4 files changed, 19 insertions(+), 5 deletions(-) diff --git a/Directory.Build.targets b/Directory.Build.targets index 939fb575a..590411dd5 100644 --- a/Directory.Build.targets +++ b/Directory.Build.targets @@ -1,5 +1,5 @@ - 3.8 + 3.9 diff --git a/Questionable/Configuration.cs b/Questionable/Configuration.cs index 3ea014cb8..f2a251640 100644 --- a/Questionable/Configuration.cs +++ b/Questionable/Configuration.cs @@ -20,6 +20,7 @@ internal sealed class Configuration : IPluginConfiguration public bool UseEscToCancelQuesting { get; set; } = true; public bool ShowIncompleteSeasonalEvents { get; set; } = true; public bool AutomaticallyCompleteSnipeTasks { get; set; } + public bool ConfigureTextAdvance { get; set; } = true; } internal sealed class AdvancedConfiguration diff --git a/Questionable/External/TextAdvanceIpc.cs b/Questionable/External/TextAdvanceIpc.cs index bb771b024..dd4fa3959 100644 --- a/Questionable/External/TextAdvanceIpc.cs +++ b/Questionable/External/TextAdvanceIpc.cs @@ -6,6 +6,7 @@ using Questionable.Controller; using Questionable.Data; using Questionable.Model.Common; using System; +using System.Diagnostics.CodeAnalysis; namespace Questionable.External; @@ -13,6 +14,7 @@ internal sealed class TextAdvanceIpc : IDisposable { private bool _isExternalControlActivated; private readonly QuestController _questController; + private readonly Configuration _configuration; private readonly IFramework _framework; private readonly ICallGateSubscriber _isInExternalControl; private readonly ICallGateSubscriber _enableExternalControl; @@ -20,10 +22,11 @@ internal sealed class TextAdvanceIpc : IDisposable private readonly string _pluginName; private readonly ExternalTerritoryConfig _externalTerritoryConfig = new(); - public TextAdvanceIpc(IDalamudPluginInterface pluginInterface, IFramework framework, QuestController questController) + public TextAdvanceIpc(IDalamudPluginInterface pluginInterface, IFramework framework, QuestController questController, Configuration configuration) { _framework = framework; _questController = questController; + _configuration = configuration; _isInExternalControl = pluginInterface.GetIpcSubscriber("TextAdvance.IsInExternalControl"); _enableExternalControl = pluginInterface.GetIpcSubscriber("TextAdvance.EnableExternalControl"); _disableExternalControl = pluginInterface.GetIpcSubscriber("TextAdvance.DisableExternalControl"); @@ -40,9 +43,9 @@ internal sealed class TextAdvanceIpc : IDisposable } } - public void OnUpdate(IFramework framework) + private void OnUpdate(IFramework framework) { - if(_questController.IsRunning) + if(_configuration.General.ConfigureTextAdvance && _questController.IsRunning) { if(!_isInExternalControl.InvokeFunc()) { @@ -64,8 +67,10 @@ internal sealed class TextAdvanceIpc : IDisposable } } - public class ExternalTerritoryConfig + [SuppressMessage("ReSharper", "MemberCanBePrivate.Global")] + public sealed class ExternalTerritoryConfig { +#pragma warning disable CS0414 // Field is assigned but its value is never used public bool? EnableQuestAccept = true; public bool? EnableQuestComplete = true; public bool? EnableRewardPick = true; @@ -75,5 +80,6 @@ internal sealed class TextAdvanceIpc : IDisposable public bool? EnableTalkSkip = true; public bool? EnableRequestFill = true; public bool? EnableAutoInteract = false; +#pragma warning restore CS0414 // Field is assigned but its value is never used } } diff --git a/Questionable/Windows/ConfigWindow.cs b/Questionable/Windows/ConfigWindow.cs index 0b278c04b..0416943f7 100644 --- a/Questionable/Windows/ConfigWindow.cs +++ b/Questionable/Windows/ConfigWindow.cs @@ -90,6 +90,13 @@ internal sealed class ConfigWindow : LWindow, IPersistableWindowConfig Save(); } + bool configureTextAdvance = _configuration.General.ConfigureTextAdvance; + if (ImGui.Checkbox("Automatically configure TextAdvance with the recommended settings", ref configureTextAdvance)) + { + _configuration.General.ConfigureTextAdvance = configureTextAdvance; + Save(); + } + if (ImGui.CollapsingHeader("Cheats")) { ImGui.TextColored(ImGuiColors.DalamudRed, "This setting will be removed in a future version, and will be\navailable through TextAdvance instead."); -- 2.45.2 From 3cb9df4a53d9ddee24779f0f39ca8a6229647678 Mon Sep 17 00:00:00 2001 From: kaiser Date: Sun, 6 Oct 2024 00:30:36 +1000 Subject: [PATCH 093/448] feat: added more class quest for ast. Still more to do, another 14 quests. --- .../AST/2015_A Lesson in Patience.json | 74 +++++ .../AST/2016_Slings and Arrows.json | 289 ++++++++++++++++++ .../Class Quests/AST/2017_Ewer Right.json | 183 +++++++++++ 3 files changed, 546 insertions(+) create mode 100644 QuestPaths/3.x - Heavensward/Class Quests/AST/2015_A Lesson in Patience.json create mode 100644 QuestPaths/3.x - Heavensward/Class Quests/AST/2016_Slings and Arrows.json create mode 100644 QuestPaths/3.x - Heavensward/Class Quests/AST/2017_Ewer Right.json diff --git a/QuestPaths/3.x - Heavensward/Class Quests/AST/2015_A Lesson in Patience.json b/QuestPaths/3.x - Heavensward/Class Quests/AST/2015_A Lesson in Patience.json new file mode 100644 index 000000000..54420ba6f --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Class Quests/AST/2015_A Lesson in Patience.json @@ -0,0 +1,74 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "kaiser", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1012222, + "Position": { + "X": 202.38037, + "Y": -5.3999662, + "Z": -58.9151 + }, + "TerritoryId": 419, + "InteractionType": "AcceptQuest", + "StopDistance": 5, + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] Athenaeum Astrologicum" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": 202.38037, + "Y": -5.3999662, + "Z": -58.9151 + }, + "MaximumDistance": 100, + "TerritoryId": 419 + } + } + } + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1014944, + "Position": { + "X": 199.93884, + "Y": -0.899981, + "Z": -48.722107 + }, + "TerritoryId": 419, + "InteractionType": "CompleteQuest", + "StopDistance": 5, + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] Athenaeum Astrologicum" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": 199.93884, + "Y": -0.899981, + "Z": -48.722107 + }, + "TerritoryId": 419, + "MaximumDistance": 100 + } + } + } + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Class Quests/AST/2016_Slings and Arrows.json b/QuestPaths/3.x - Heavensward/Class Quests/AST/2016_Slings and Arrows.json new file mode 100644 index 000000000..9f80b8509 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Class Quests/AST/2016_Slings and Arrows.json @@ -0,0 +1,289 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "kaiser", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1014944, + "Position": { + "X": 199.93884, + "Y": -0.899981, + "Z": -48.722107 + }, + "TerritoryId": 419, + "InteractionType": "AcceptQuest", + "StopDistance": 5, + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] Athenaeum Astrologicum" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": 199.93884, + "Y": -0.899981, + "Z": -48.722107 + }, + "MaximumDistance": 100, + "TerritoryId": 419 + } + } + }, + "Comment": "This quest have solo duty!" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1012222, + "Position": { + "X": 202.38037, + "Y": -5.3999662, + "Z": -58.9151 + }, + "TerritoryId": 419, + "InteractionType": "Interact", + "StopDistance": 4, + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] Athenaeum Astrologicum" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": 202.38037, + "Y": -5.3999662, + "Z": -58.9151 + }, + "MaximumDistance": 100, + "TerritoryId": 419 + } + } + } + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1014946, + "Position": { + "X": -189.89856, + "Y": 16, + "Z": 58.182617 + }, + "TerritoryId": 129, + "InteractionType": "Interact", + "StopDistance": 5, + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] Hawkers' Alley" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1014947, + "Position": { + "X": -187.85382, + "Y": 3.9999306, + "Z": 170.1228 + }, + "TerritoryId": 129, + "InteractionType": "Interact", + "StopDistance": 5, + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Hawkers' Alley", + "[Limsa Lominsa] Fishermens' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + }, + "StepIf": { + "CompletionQuestVariablesFlags": [ + 16, + 16, + null, + null, + null, + 128 + ] + } + } + }, + { + "DataId": 1003282, + "Position": { + "X": -3.03656, + "Y": 48.168007, + "Z": -261.70752 + }, + "TerritoryId": 128, + "InteractionType": "Interact", + "StopDistance": 5, + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Fishermens' Guild", + "[Limsa Lominsa] Marauders' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + }, + "Comment": "You will probably need to do this manually navmesh doesn't work inside Coral Tower" + }, + { + "DataId": 1003282, + "Position": { + "X": -3.03656, + "Y": 48.168007, + "Z": -261.70752 + }, + "TerritoryId": 128, + "InteractionType": "Interact", + "StopDistance": 5, + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Fishermens' Guild", + "[Limsa Lominsa] Marauders' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + }, + "Comment": "You will probably need to do this manually navmesh doesn't work inside Coral Tower" + }, + { + "DataId": 1002680, + "Position": { + "X": 1.4800415, + "Y": 30.47563, + "Z": -242.20648 + }, + "TerritoryId": 128, + "InteractionType": "Interact", + "StopDistance": 5, + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] Marauders' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1014948, + "Position": { + "X": 17.166382, + "Y": 47.600006, + "Z": -160.23505 + }, + "TerritoryId": 128, + "InteractionType": "Interact", + "StopDistance": 5, + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] Marauders' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + }, + "Comment": "Do it manually, navmesh can't get inside the building it seem.\nOtherwise it will run into wall." + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 2006316, + "Position": { + "X": 17.715698, + "Y": 47.592896, + "Z": -160.47919 + }, + "TerritoryId": 128, + "InteractionType": "SinglePlayerDuty", + "StopDistance": 3, + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] Marauders' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1012222, + "Position": { + "X": 202.38037, + "Y": -5.3999662, + "Z": -58.9151 + }, + "TerritoryId": 419, + "InteractionType": "CompleteQuest", + "StopDistance": 5, + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] Athenaeum Astrologicum" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": 202.38037, + "Y": -5.3999662, + "Z": -58.9151 + }, + "TerritoryId": 419, + "MaximumDistance": 100 + } + } + } + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Class Quests/AST/2017_Ewer Right.json b/QuestPaths/3.x - Heavensward/Class Quests/AST/2017_Ewer Right.json new file mode 100644 index 000000000..337795daa --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Class Quests/AST/2017_Ewer Right.json @@ -0,0 +1,183 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "kaiser", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1012222, + "Position": { + "X": 202.38037, + "Y": -5.3999662, + "Z": -58.9151 + }, + "TerritoryId": 419, + "InteractionType": "AcceptQuest", + "StopDistance": 5, + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] Athenaeum Astrologicum" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": 202.38037, + "Y": -5.3999662, + "Z": -58.9151 + }, + "TerritoryId": 419, + "MaximumDistance": 100 + } + } + }, + "Comment": "This Quest have solo duty!" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": 197.69202, + "Y": 307.86456, + "Z": 409.4611 + }, + "TerritoryId": 155, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + }, + { + "DataId": 1006377, + "Position": { + "X": 200.97656, + "Y": 293.33, + "Z": 420.37073 + }, + "TerritoryId": 155, + "InteractionType": "Interact", + "StopDistance": 4, + "Fly": false, + "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1012222, + "Position": { + "X": 202.38037, + "Y": -5.3999662, + "Z": -58.9151 + }, + "TerritoryId": 419, + "InteractionType": "Interact", + "StopDistance": 5, + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] Athenaeum Astrologicum" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": 202.38037, + "Y": -5.3999662, + "Z": -58.9151 + }, + "TerritoryId": 419, + "MaximumDistance": 100 + } + } + } + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1014949, + "Position": { + "X": -159.65515, + "Y": 40.350307, + "Z": -194.7204 + }, + "TerritoryId": 156, + "InteractionType": "SinglePlayerDuty", + "StopDistance": 5, + "AetheryteShortcut": "Mor Dhona", + "Fly": true, + "Comment": "Solo duty here!" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 2006318, + "Position": { + "X": -147.2649, + "Y": 43.320312, + "Z": -186.63312 + }, + "TerritoryId": 156, + "InteractionType": "Interact", + "StopDistance": 3 + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1012222, + "Position": { + "X": 202.38037, + "Y": -5.3999662, + "Z": -58.9151 + }, + "TerritoryId": 419, + "InteractionType": "CompleteQuest", + "StopDistance": 5, + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] Athenaeum Astrologicum" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": 202.38037, + "Y": -5.3999662, + "Z": -58.9151 + }, + "TerritoryId": 419, + "MaximumDistance": 100 + } + } + } + } + ] + } + ] +} -- 2.45.2 From e47ef82d947d53dc7bee7614ab06e6d5f57a0266 Mon Sep 17 00:00:00 2001 From: kaiser Date: Sun, 6 Oct 2024 04:26:07 +1100 Subject: [PATCH 094/448] feat: added few more quests. --- .../AST/2018_Loved by the Sun.json | 74 ++++++ .../AST/2019_Spearheading Initiatives.json | 211 ++++++++++++++++++ .../AST/2020_Sharlayan Ascending.json | 209 +++++++++++++++++ 3 files changed, 494 insertions(+) create mode 100644 QuestPaths/3.x - Heavensward/Class Quests/AST/2018_Loved by the Sun.json create mode 100644 QuestPaths/3.x - Heavensward/Class Quests/AST/2019_Spearheading Initiatives.json create mode 100644 QuestPaths/3.x - Heavensward/Class Quests/AST/2020_Sharlayan Ascending.json diff --git a/QuestPaths/3.x - Heavensward/Class Quests/AST/2018_Loved by the Sun.json b/QuestPaths/3.x - Heavensward/Class Quests/AST/2018_Loved by the Sun.json new file mode 100644 index 000000000..cd772fa0d --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Class Quests/AST/2018_Loved by the Sun.json @@ -0,0 +1,74 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "kaiser", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1012222, + "Position": { + "X": 202.38037, + "Y": -5.3999662, + "Z": -58.9151 + }, + "TerritoryId": 419, + "InteractionType": "AcceptQuest", + "StopDistance": 5, + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] Athenaeum Astrologicum" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": 202.38037, + "Y": -5.3999662, + "Z": -58.9151 + }, + "TerritoryId": 419, + "MaximumDistance": 100 + } + } + } + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1014944, + "Position": { + "X": 199.93884, + "Y": -0.899981, + "Z": -48.722107 + }, + "TerritoryId": 419, + "InteractionType": "CompleteQuest", + "StopDistance": 5, + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] Athenaeum Astrologicum" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": 199.93884, + "Y": -0.899981, + "Z": -48.722107 + }, + "TerritoryId": 419, + "MaximumDistance": 100 + } + } + } + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Class Quests/AST/2019_Spearheading Initiatives.json b/QuestPaths/3.x - Heavensward/Class Quests/AST/2019_Spearheading Initiatives.json new file mode 100644 index 000000000..c0fc2c1b5 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Class Quests/AST/2019_Spearheading Initiatives.json @@ -0,0 +1,211 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "kaiser", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1014944, + "Position": { + "X": 199.93884, + "Y": -0.899981, + "Z": -48.722107 + }, + "TerritoryId": 419, + "InteractionType": "AcceptQuest", + "StopDistance": 5, + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] Athenaeum Astrologicum" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": 199.93884, + "Y": -0.899981, + "Z": -48.722107 + }, + "TerritoryId": 419, + "MaximumDistance": 100 + } + } + }, + "Comment": "This quest have solo duty!" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1012222, + "Position": { + "X": 202.38037, + "Y": -5.3999662, + "Z": -58.9151 + }, + "TerritoryId": 419, + "InteractionType": "Interact", + "StopDistance": 4, + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] Athenaeum Astrologicum" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": 202.38037, + "Y": -5.3999662, + "Z": -58.9151 + }, + "TerritoryId": 419, + "MaximumDistance": 100 + } + } + } + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1014957, + "Position": { + "X": 238.78845, + "Y": 302, + "Z": -277.97363 + }, + "TerritoryId": 155, + "InteractionType": "SinglePlayerDuty", + "StopDistance": 4, + "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", + "Comment": "Do the solo duty!" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1014960, + "Position": { + "X": 262.83667, + "Y": 359.1351, + "Z": -688.3192 + }, + "TerritoryId": 155, + "InteractionType": "WalkTo", + "Fly": true, + "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + }, + "StepIf": { + "NearPosition": { + "Position": { + "X": 262.83667, + "Y": 359.1351, + "Z": -688.3192 + }, + "MaximumDistance": 100, + "TerritoryId": 155 + } + } + } + }, + { + "DataId": 1014960, + "Position": { + "X": 262.83667, + "Y": 359.1351, + "Z": -688.3192 + }, + "TerritoryId": 155, + "InteractionType": "Interact", + "StopDistance": 4, + "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1014960, + "Position": { + "X": 259.72375, + "Y": 359.09564, + "Z": -689.93665 + }, + "TerritoryId": 155, + "InteractionType": "WalkTo", + "Fly": true, + "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + }, + "StepIf": { + "NearPosition": { + "Position": { + "X": 259.72375, + "Y": 359.09564, + "Z": -689.93665 + }, + "MaximumDistance": 100, + "TerritoryId": 155 + } + } + } + }, + { + "DataId": 1014961, + "Position": { + "X": 259.72375, + "Y": 359.09564, + "Z": -689.93665 + }, + "TerritoryId": 155, + "InteractionType": "Interact", + "StopDistance": 4, + "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 2006367, + "Position": { + "X": 205.92041, + "Y": 307.8507, + "Z": 412.25293 + }, + "TerritoryId": 155, + "InteractionType": "CompleteQuest", + "StopDistance": 2, + "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Class Quests/AST/2020_Sharlayan Ascending.json b/QuestPaths/3.x - Heavensward/Class Quests/AST/2020_Sharlayan Ascending.json new file mode 100644 index 000000000..cd1f9aca5 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Class Quests/AST/2020_Sharlayan Ascending.json @@ -0,0 +1,209 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "kaiser", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1015127, + "Position": { + "X": 204.60815, + "Y": 307.87106, + "Z": 414.63342 + }, + "TerritoryId": 155, + "InteractionType": "AcceptQuest", + "StopDistance": 3, + "Fly": true, + "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": 204.60815, + "Y": 307.87106, + "Z": 414.63342 + }, + "TerritoryId": 155, + "MaximumDistance": 5 + } + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1006377, + "Position": { + "X": 200.97656, + "Y": 293.33, + "Z": 420.37073 + }, + "TerritoryId": 155, + "InteractionType": "Interact", + "StopDistance": 4, + "SkipConditions": { + "StepIf": { + "CompletionQuestVariablesFlags": [ + 1, + null, + null, + null, + null, + 128 + ] + } + } + }, + { + "Position": { + "X": 205.51671, + "Y": 285.27087, + "Z": 413.4063 + }, + "TerritoryId": 155, + "InteractionType": "Jump", + "JumpDestination": { + "Position": { + "X": 198.82875, + "Y": 234.59601, + "Z": 424.70218 + }, + "Type": "SingleJump" + } + }, + { + "DataId": 1006376, + "Position": { + "X": 195.3612, + "Y": 234.79839, + "Z": 419.3026 + }, + "TerritoryId": 155, + "InteractionType": "Interact", + "StopDistance": 3 + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1012222, + "Position": { + "X": 202.38037, + "Y": -5.3999662, + "Z": -58.9151 + }, + "TerritoryId": 419, + "InteractionType": "Interact", + "StopDistance": 5, + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] Athenaeum Astrologicum" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": 202.38037, + "Y": -5.3999662, + "Z": -58.9151 + }, + "TerritoryId": 419, + "MaximumDistance": 100 + } + } + } + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1015128, + "Position": { + "X": 116.472046, + "Y": -4.734893, + "Z": -52.567383 + }, + "TerritoryId": 419, + "InteractionType": "Interact", + "StopDistance": 5 + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1015130, + "Position": { + "X": 51.743286, + "Y": 11.741424, + "Z": 27.115234 + }, + "TerritoryId": 419, + "InteractionType": "Interact", + "StopDistance": 5 + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1015129, + "Position": { + "X": -0.07635498, + "Y": 11.965096, + "Z": 44.327393 + }, + "TerritoryId": 419, + "InteractionType": "Interact", + "StopDistance": 5 + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1012222, + "Position": { + "X": 202.38037, + "Y": -5.3999662, + "Z": -58.9151 + }, + "TerritoryId": 419, + "InteractionType": "CompleteQuest", + "StopDistance": 5, + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] Athenaeum Astrologicum" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": 202.38037, + "Y": -5.3999662, + "Z": -58.9151 + }, + "TerritoryId": 419, + "MaximumDistance": 100 + } + } + } + } + ] + } + ] +} -- 2.45.2 From 08c06bcfd1a81d60020eb5556effb74647bde80f Mon Sep 17 00:00:00 2001 From: kaiser Date: Sun, 6 Oct 2024 16:06:03 +1100 Subject: [PATCH 095/448] refactor: add next quest ids. --- .../Class Quests/AST/2013_Fortune Favors the Bole.json | 3 ++- .../Class Quests/AST/2014_Hanging in the Balance.json | 3 ++- .../Class Quests/AST/2015_A Lesson in Patience.json | 3 ++- .../Class Quests/AST/2016_Slings and Arrows.json | 3 ++- .../3.x - Heavensward/Class Quests/AST/2017_Ewer Right.json | 3 ++- .../Class Quests/AST/2018_Loved by the Sun.json | 3 ++- .../Class Quests/AST/2019_Spearheading Initiatives.json | 3 ++- .../Class Quests/AST/2020_Sharlayan Ascending.json | 3 ++- 8 files changed, 16 insertions(+), 8 deletions(-) diff --git a/QuestPaths/3.x - Heavensward/Class Quests/AST/2013_Fortune Favors the Bole.json b/QuestPaths/3.x - Heavensward/Class Quests/AST/2013_Fortune Favors the Bole.json index cc573a4b4..dbdcf21de 100644 --- a/QuestPaths/3.x - Heavensward/Class Quests/AST/2013_Fortune Favors the Bole.json +++ b/QuestPaths/3.x - Heavensward/Class Quests/AST/2013_Fortune Favors the Bole.json @@ -66,7 +66,8 @@ "AethernetShortcut": [ "[Ishgard] Aetheryte Plaza", "[Ishgard] Athenaeum Astrologicum" - ] + ], + "NextQuestId": 2014 } ] } diff --git a/QuestPaths/3.x - Heavensward/Class Quests/AST/2014_Hanging in the Balance.json b/QuestPaths/3.x - Heavensward/Class Quests/AST/2014_Hanging in the Balance.json index d496cab03..cf954642f 100644 --- a/QuestPaths/3.x - Heavensward/Class Quests/AST/2014_Hanging in the Balance.json +++ b/QuestPaths/3.x - Heavensward/Class Quests/AST/2014_Hanging in the Balance.json @@ -157,7 +157,8 @@ "AethernetShortcut": [ "[Ishgard] Aetheryte Plaza", "[Ishgard] Athenaeum Astrologicum" - ] + ], + "NextQuestId": 2015 } ] } diff --git a/QuestPaths/3.x - Heavensward/Class Quests/AST/2015_A Lesson in Patience.json b/QuestPaths/3.x - Heavensward/Class Quests/AST/2015_A Lesson in Patience.json index 54420ba6f..a1e835e08 100644 --- a/QuestPaths/3.x - Heavensward/Class Quests/AST/2015_A Lesson in Patience.json +++ b/QuestPaths/3.x - Heavensward/Class Quests/AST/2015_A Lesson in Patience.json @@ -66,7 +66,8 @@ "MaximumDistance": 100 } } - } + }, + "NextQuestId": 2016 } ] } diff --git a/QuestPaths/3.x - Heavensward/Class Quests/AST/2016_Slings and Arrows.json b/QuestPaths/3.x - Heavensward/Class Quests/AST/2016_Slings and Arrows.json index 9f80b8509..b1c0fbcdb 100644 --- a/QuestPaths/3.x - Heavensward/Class Quests/AST/2016_Slings and Arrows.json +++ b/QuestPaths/3.x - Heavensward/Class Quests/AST/2016_Slings and Arrows.json @@ -281,7 +281,8 @@ "MaximumDistance": 100 } } - } + }, + "NextQuestId": 2017 } ] } diff --git a/QuestPaths/3.x - Heavensward/Class Quests/AST/2017_Ewer Right.json b/QuestPaths/3.x - Heavensward/Class Quests/AST/2017_Ewer Right.json index 337795daa..9ae1ef2bc 100644 --- a/QuestPaths/3.x - Heavensward/Class Quests/AST/2017_Ewer Right.json +++ b/QuestPaths/3.x - Heavensward/Class Quests/AST/2017_Ewer Right.json @@ -175,7 +175,8 @@ "MaximumDistance": 100 } } - } + }, + "NextQuestId": 2018 } ] } diff --git a/QuestPaths/3.x - Heavensward/Class Quests/AST/2018_Loved by the Sun.json b/QuestPaths/3.x - Heavensward/Class Quests/AST/2018_Loved by the Sun.json index cd772fa0d..cd40495ff 100644 --- a/QuestPaths/3.x - Heavensward/Class Quests/AST/2018_Loved by the Sun.json +++ b/QuestPaths/3.x - Heavensward/Class Quests/AST/2018_Loved by the Sun.json @@ -66,7 +66,8 @@ "MaximumDistance": 100 } } - } + }, + "NextQuestId": 2019 } ] } diff --git a/QuestPaths/3.x - Heavensward/Class Quests/AST/2019_Spearheading Initiatives.json b/QuestPaths/3.x - Heavensward/Class Quests/AST/2019_Spearheading Initiatives.json index c0fc2c1b5..e64ab5ede 100644 --- a/QuestPaths/3.x - Heavensward/Class Quests/AST/2019_Spearheading Initiatives.json +++ b/QuestPaths/3.x - Heavensward/Class Quests/AST/2019_Spearheading Initiatives.json @@ -203,7 +203,8 @@ "InteractionType": "CompleteQuest", "StopDistance": 2, "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", - "Fly": true + "Fly": true, + "NextQuestId": 2020 } ] } diff --git a/QuestPaths/3.x - Heavensward/Class Quests/AST/2020_Sharlayan Ascending.json b/QuestPaths/3.x - Heavensward/Class Quests/AST/2020_Sharlayan Ascending.json index cd1f9aca5..6ba00408a 100644 --- a/QuestPaths/3.x - Heavensward/Class Quests/AST/2020_Sharlayan Ascending.json +++ b/QuestPaths/3.x - Heavensward/Class Quests/AST/2020_Sharlayan Ascending.json @@ -201,7 +201,8 @@ "MaximumDistance": 100 } } - } + }, + "NextQuestId": 2021 } ] } -- 2.45.2 From 170a81fb06f84fabf9fae82d3245f51c9abbf3e2 Mon Sep 17 00:00:00 2001 From: kaiser Date: Sun, 6 Oct 2024 16:06:15 +1100 Subject: [PATCH 096/448] feat: more quests, another 4 left. Pain. --- .../Class Quests/AST/2021_Empty Nest.json | 254 ++++++++++++++++++ .../Class Quests/AST/2022_Conviction.json | 196 ++++++++++++++ .../AST/2023_Feather in the Cap.json | 210 +++++++++++++++ .../Class Quests/AST/2024_Trumped.json | 214 +++++++++++++++ .../AST/2025_The Hands of Fate.json | 185 +++++++++++++ .../AST/2409_East Meets West.json | 128 +++++++++ .../AST/2410_Ride Like the Wind.json | 164 +++++++++++ 7 files changed, 1351 insertions(+) create mode 100644 QuestPaths/3.x - Heavensward/Class Quests/AST/2021_Empty Nest.json create mode 100644 QuestPaths/3.x - Heavensward/Class Quests/AST/2022_Conviction.json create mode 100644 QuestPaths/3.x - Heavensward/Class Quests/AST/2023_Feather in the Cap.json create mode 100644 QuestPaths/3.x - Heavensward/Class Quests/AST/2024_Trumped.json create mode 100644 QuestPaths/3.x - Heavensward/Class Quests/AST/2025_The Hands of Fate.json create mode 100644 QuestPaths/3.x - Heavensward/Class Quests/AST/2409_East Meets West.json create mode 100644 QuestPaths/3.x - Heavensward/Class Quests/AST/2410_Ride Like the Wind.json diff --git a/QuestPaths/3.x - Heavensward/Class Quests/AST/2021_Empty Nest.json b/QuestPaths/3.x - Heavensward/Class Quests/AST/2021_Empty Nest.json new file mode 100644 index 000000000..03c2c710f --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Class Quests/AST/2021_Empty Nest.json @@ -0,0 +1,254 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "kaiser", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1012222, + "Position": { + "X": 202.38037, + "Y": -5.3999662, + "Z": -58.9151 + }, + "TerritoryId": 419, + "InteractionType": "AcceptQuest", + "StopDistance": 5, + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] Athenaeum Astrologicum" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": 202.38037, + "Y": -5.3999662, + "Z": -58.9151 + }, + "TerritoryId": 419, + "MaximumDistance": 100 + } + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1015142, + "Position": { + "X": 446.98242, + "Y": 217.95142, + "Z": 753.994 + }, + "TerritoryId": 397, + "InteractionType": "Interact", + "StopDistance": 5, + "Fly": true, + "AetheryteShortcut": "Coerthas Western Highlands - Falcon's Nest", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1015145, + "Position": { + "X": 487.17468, + "Y": 200.23772, + "Z": 656.27515 + }, + "TerritoryId": 397, + "InteractionType": "Interact", + "Fly": true, + "StopDistance": 5, + "AetheryteShortcut": "Coerthas Western Highlands - Falcon's Nest", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1015146, + "Position": { + "X": 485.0995, + "Y": 200.2377, + "Z": 654.68823 + }, + "TerritoryId": 397, + "InteractionType": "Action", + "StopDistance": 4, + "Action": "Aspected Benefic" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "Position": { + "X": 501.1413, + "Y": 161.74702, + "Z": -318.04788 + }, + "TerritoryId": 397, + "InteractionType": "Combat", + "StopDistance": 3, + "EnemySpawnType": "AutoOnEnterArea", + "ComplexCombatData": [ + { + "DataId": 4619, + "MinimumKillCount": 1 + }, + { + "DataId": 4360, + "MinimumKillCount": 2 + } + ], + "AetheryteShortcut": "Coerthas Western Highlands - Falcon's Nest", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1015147, + "Position": { + "X": 500.11438, + "Y": 161.61157, + "Z": -320.02753 + }, + "TerritoryId": 397, + "InteractionType": "Action", + "Action": "Aspected Benefic", + "StopDistance": 3 + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1015142, + "Position": { + "X": 446.98242, + "Y": 217.95142, + "Z": 753.994 + }, + "TerritoryId": 397, + "InteractionType": "Interact", + "StopDistance": 4, + "AetheryteShortcut": "Coerthas Western Highlands - Falcon's Nest", + "Fly": true + } + ] + }, + { + "Sequence": 7, + "Steps": [ + { + "Position": { + "X": 529.5874, + "Y": 227.05162, + "Z": 717.32074 + }, + "TerritoryId": 397, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "InteractionType": "None", + "Mount": false, + "TerritoryId": 397 + }, + { + "DataId": 1015149, + "Position": { + "X": 533.59265, + "Y": 228.33778, + "Z": 720.2715 + }, + "TerritoryId": 397, + "InteractionType": "Interact", + "StopDistance": 4 + } + ] + }, + { + "Sequence": 8, + "Steps": [ + { + "DataId": 1015151, + "Position": { + "X": 541.25256, + "Y": 228.85133, + "Z": 742.5497 + }, + "TerritoryId": 397, + "InteractionType": "Interact", + "StopDistance": 4, + "Fly": false + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1012222, + "Position": { + "X": 202.38037, + "Y": -5.3999662, + "Z": -58.9151 + }, + "TerritoryId": 419, + "InteractionType": "CompleteQuest", + "StopDistance": 5, + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] Athenaeum Astrologicum" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": 202.38037, + "Y": -5.3999662, + "Z": -58.9151 + }, + "TerritoryId": 419, + "MaximumDistance": 100 + } + } + }, + "NextQuestId": 2022 + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Class Quests/AST/2022_Conviction.json b/QuestPaths/3.x - Heavensward/Class Quests/AST/2022_Conviction.json new file mode 100644 index 000000000..261f76a95 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Class Quests/AST/2022_Conviction.json @@ -0,0 +1,196 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "kaiser", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1012222, + "Position": { + "X": 202.38037, + "Y": -5.3999662, + "Z": -58.9151 + }, + "TerritoryId": 419, + "InteractionType": "AcceptQuest", + "StopDistance": 5, + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] Athenaeum Astrologicum" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": 202.38037, + "Y": -5.3999662, + "Z": -58.9151 + }, + "TerritoryId": 419, + "MaximumDistance": 100 + } + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1015168, + "Position": { + "X": -266.01056, + "Y": 126.407364, + "Z": -0.045776367 + }, + "TerritoryId": 397, + "InteractionType": "Interact", + "StopDistance": 5, + "Fly": true, + "AetheryteShortcut": "Coerthas Western Highlands - Falcon's Nest", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1015169, + "Position": { + "X": -311.42145, + "Y": 126.83597, + "Z": 3.4942627 + }, + "TerritoryId": 397, + "InteractionType": "Action", + "StopDistance": 4, + "Action": "Aspected Benefic", + "SkipConditions": { + "StepIf": { + "CompletionQuestVariablesFlags": [ + 1, + null, + null, + null, + null, + 128 + ] + } + } + }, + { + "DataId": 1015171, + "Position": { + "X": -320.02753, + "Y": 126.52038, + "Z": -14.023071 + }, + "TerritoryId": 397, + "InteractionType": "Action", + "StopDistance": 4, + "Action": "Aspected Benefic", + "SkipConditions": { + "StepIf": { + "CompletionQuestVariablesFlags": [ + 2, + null, + null, + null, + null, + 128 + ] + } + } + }, + { + "DataId": 1015170, + "Position": { + "X": -296.86432, + "Y": 125.87531, + "Z": -14.389343 + }, + "TerritoryId": 397, + "InteractionType": "Action", + "StopDistance": 4, + "Action": "Aspected Benefic" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1015163, + "Position": { + "X": -310.0786, + "Y": 125.02021, + "Z": -25.192688 + }, + "TerritoryId": 397, + "InteractionType": "Interact", + "StopDistance": 4 + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1015178, + "Position": { + "X": -310.0786, + "Y": 125.02021, + "Z": -25.192688 + }, + "TerritoryId": 397, + "InteractionType": "Action", + "StopDistance": 4, + "Action": "Aspected Benefic" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1012222, + "Position": { + "X": 202.38037, + "Y": -5.3999662, + "Z": -58.9151 + }, + "TerritoryId": 419, + "InteractionType": "CompleteQuest", + "StopDistance": 5, + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] Athenaeum Astrologicum" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": 202.38037, + "Y": -5.3999662, + "Z": -58.9151 + }, + "TerritoryId": 419, + "MaximumDistance": 100 + } + } + }, + "NextQuestId": 2023 + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Class Quests/AST/2023_Feather in the Cap.json b/QuestPaths/3.x - Heavensward/Class Quests/AST/2023_Feather in the Cap.json new file mode 100644 index 000000000..a27178275 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Class Quests/AST/2023_Feather in the Cap.json @@ -0,0 +1,210 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "kaiser", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1012222, + "Position": { + "X": 202.38037, + "Y": -5.3999662, + "Z": -58.9151 + }, + "TerritoryId": 419, + "InteractionType": "AcceptQuest", + "StopDistance": 5, + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] Athenaeum Astrologicum" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": 202.38037, + "Y": -5.3999662, + "Z": -58.9151 + }, + "TerritoryId": 419, + "MaximumDistance": 100 + } + } + }, + "Comment": "This quest have solo duty!" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1015084, + "Position": { + "X": 487.08313, + "Y": -51.1414, + "Z": 33.340942 + }, + "TerritoryId": 398, + "InteractionType": "Interact", + "StopDistance": 5, + "Fly": false, + "AetheryteShortcut": "The Dravanian Forelands - Tailfeather", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1015094, + "Position": { + "X": 472.03772, + "Y": -51.14139, + "Z": 8.590759 + }, + "TerritoryId": 398, + "InteractionType": "Action", + "StopDistance": 4, + "Action": "Aspected Benefic", + "SkipConditions": { + "StepIf": { + "CompletionQuestVariablesFlags": [ + 1, + null, + null, + null, + null, + 32 + ] + } + } + }, + { + "DataId": 1015092, + "Position": { + "X": 560.9979, + "Y": -51.27571, + "Z": 62.974 + }, + "TerritoryId": 398, + "InteractionType": "Action", + "StopDistance": 4, + "Action": "Aspected Benefic", + "SkipConditions": { + "StepIf": { + "CompletionQuestVariablesFlags": [ + 2, + null, + null, + null, + null, + 128 + ] + } + } + }, + { + "DataId": 1015093, + "Position": { + "X": 465.568, + "Y": -51.19559, + "Z": 98.10022 + }, + "TerritoryId": 398, + "InteractionType": "Action", + "StopDistance": 4, + "Action": "Aspected Benefic" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1015087, + "Position": { + "X": 509.75806, + "Y": -51.32657, + "Z": 75.913574 + }, + "TerritoryId": 398, + "InteractionType": "Interact", + "StopDistance": 4, + "AetheryteShortcut": "The Dravanian Forelands - Tailfeather", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1015095, + "Position": { + "X": 731.56323, + "Y": -40.98759, + "Z": -27.420471 + }, + "TerritoryId": 398, + "InteractionType": "SinglePlayerDuty", + "StopDistance": 4, + "AetheryteShortcut": "The Dravanian Forelands - Tailfeather", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + }, + "Comment": "Do the solo duty!" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1012222, + "Position": { + "X": 202.38037, + "Y": -5.3999662, + "Z": -58.9151 + }, + "TerritoryId": 419, + "InteractionType": "CompleteQuest", + "StopDistance": 5, + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] Athenaeum Astrologicum" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": 202.38037, + "Y": -5.3999662, + "Z": -58.9151 + }, + "TerritoryId": 419, + "MaximumDistance": 100 + } + } + }, + "NextQuestId": 2024 + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Class Quests/AST/2024_Trumped.json b/QuestPaths/3.x - Heavensward/Class Quests/AST/2024_Trumped.json new file mode 100644 index 000000000..8cd22a313 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Class Quests/AST/2024_Trumped.json @@ -0,0 +1,214 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "kaiser", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1012222, + "Position": { + "X": 202.38037, + "Y": -5.3999662, + "Z": -58.9151 + }, + "TerritoryId": 419, + "InteractionType": "AcceptQuest", + "StopDistance": 5, + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] Athenaeum Astrologicum" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": 202.38037, + "Y": -5.3999662, + "Z": -58.9151 + }, + "TerritoryId": 419, + "MaximumDistance": 100 + } + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1015181, + "Position": { + "X": 707.94226, + "Y": 204.32489, + "Z": -252.49103 + }, + "TerritoryId": 397, + "InteractionType": "Interact", + "StopDistance": 5, + "Fly": true, + "AetheryteShortcut": "Coerthas Western Highlands - Falcon's Nest", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1015190, + "Position": { + "X": 679.1942, + "Y": 207.2133, + "Z": -273.82324 + }, + "TerritoryId": 397, + "InteractionType": "Action", + "StopDistance": 4, + "Action": "Aspected Benefic" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1015191, + "Position": { + "X": 651.78906, + "Y": 207.92256, + "Z": -268.29938 + }, + "TerritoryId": 397, + "InteractionType": "Action", + "StopDistance": 4, + "Action": "Aspected Benefic" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1015192, + "Position": { + "X": 652.82666, + "Y": 209.09976, + "Z": -282.70392 + }, + "TerritoryId": 397, + "InteractionType": "Action", + "StopDistance": 4, + "Action": "Aspected Benefic" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "Position": { + "X": 614.313, + "Y": 210.86438, + "Z": -301.28937 + }, + "TerritoryId": 397, + "InteractionType": "Combat", + "StopDistance": 3, + "EnemySpawnType": "AutoOnEnterArea", + "ComplexCombatData": [ + { + "DataId": 4676, + "MinimumKillCount": 3 + } + ] + }, + { + "DataId": 2006415, + "Position": { + "X": 614.313, + "Y": 210.86438, + "Z": -301.28937 + }, + "TerritoryId": 397, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1015197, + "Position": { + "X": 614.25183, + "Y": 210.67752, + "Z": -300.1908 + }, + "TerritoryId": 397, + "InteractionType": "Interact", + "StopDistance": 3 + } + ] + }, + { + "Sequence": 7, + "Steps": [ + { + "DataId": 1015181, + "Position": { + "X": 707.94226, + "Y": 204.32489, + "Z": -252.49103 + }, + "TerritoryId": 397, + "InteractionType": "Interact", + "StopDistance": 5, + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1012222, + "Position": { + "X": 202.38037, + "Y": -5.3999662, + "Z": -58.9151 + }, + "TerritoryId": 419, + "InteractionType": "CompleteQuest", + "StopDistance": 5, + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] Athenaeum Astrologicum" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": 202.38037, + "Y": -5.3999662, + "Z": -58.9151 + }, + "TerritoryId": 419, + "MaximumDistance": 100 + } + } + }, + "NextQuestId": 2025 + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Class Quests/AST/2025_The Hands of Fate.json b/QuestPaths/3.x - Heavensward/Class Quests/AST/2025_The Hands of Fate.json new file mode 100644 index 000000000..08ae88de7 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Class Quests/AST/2025_The Hands of Fate.json @@ -0,0 +1,185 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "kaiser", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1012222, + "Position": { + "X": 202.38037, + "Y": -5.3999662, + "Z": -58.9151 + }, + "TerritoryId": 419, + "InteractionType": "AcceptQuest", + "StopDistance": 5, + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] Athenaeum Astrologicum" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": 202.38037, + "Y": -5.3999662, + "Z": -58.9151 + }, + "TerritoryId": 419, + "MaximumDistance": 100 + } + } + }, + "Comment": "This quest have solo duty!" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1015108, + "Position": { + "X": -359.42633, + "Y": 141.55403, + "Z": -215.32007 + }, + "TerritoryId": 399, + "InteractionType": "Interact", + "StopDistance": 5, + "Fly": true, + "AetheryteShortcut": "Idyllshire", + "AethernetShortcut": [ + "[Idyllshire] Aetheryte Plaza", + "[Idyllshire] Prologue Gate (Western Hinterlands)" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1015111, + "Position": { + "X": -447.65393, + "Y": 159.354, + "Z": 147.63098 + }, + "TerritoryId": 399, + "InteractionType": "Interact", + "StopDistance": 5, + "Fly": true, + "AetheryteShortcut": "Idyllshire", + "AethernetShortcut": [ + "[Idyllshire] Aetheryte Plaza", + "[Idyllshire] Prologue Gate (Western Hinterlands)" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InTerritory": [ + 399 + ] + }, + "AethernetShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1015114, + "Position": { + "X": -370.47382, + "Y": 147.34354, + "Z": 59.128662 + }, + "TerritoryId": 399, + "InteractionType": "SinglePlayerDuty", + "StopDistance": 4, + "Fly": true, + "AetheryteShortcut": "Idyllshire", + "AethernetShortcut": [ + "[Idyllshire] Aetheryte Plaza", + "[Idyllshire] Prologue Gate (Western Hinterlands)" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 399 + ] + }, + "AethernetShortcutIf": { + "InSameTerritory": true + } + }, + "Comment": "Do the Solo Duty!" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1015114, + "Position": { + "X": -370.47382, + "Y": 147.34354, + "Z": 59.128662 + }, + "TerritoryId": 399, + "InteractionType": "Interact", + "StopDistance": 4 + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1012222, + "Position": { + "X": 202.38037, + "Y": -5.3999662, + "Z": -58.9151 + }, + "TerritoryId": 419, + "InteractionType": "CompleteQuest", + "StopDistance": 5, + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] Athenaeum Astrologicum" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": 202.38037, + "Y": -5.3999662, + "Z": -58.9151 + }, + "TerritoryId": 419, + "MaximumDistance": 100 + } + } + }, + "NextQuestId": 2409 + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Class Quests/AST/2409_East Meets West.json b/QuestPaths/3.x - Heavensward/Class Quests/AST/2409_East Meets West.json new file mode 100644 index 000000000..4b5af937e --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Class Quests/AST/2409_East Meets West.json @@ -0,0 +1,128 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "kaiser", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1012222, + "Position": { + "X": 202.38037, + "Y": -5.3999662, + "Z": -58.9151 + }, + "TerritoryId": 419, + "InteractionType": "AcceptQuest", + "StopDistance": 5, + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] Athenaeum Astrologicum" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": 202.38037, + "Y": -5.3999662, + "Z": -58.9151 + }, + "TerritoryId": 419, + "MaximumDistance": 100 + } + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1021184, + "Position": { + "X": 191.9126, + "Y": 234.44899, + "Z": 402.45667 + }, + "TerritoryId": 155, + "InteractionType": "Interact", + "StopDistance": 5, + "Fly": true, + "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1021187, + "Position": { + "X": -1.9990234, + "Y": 0.74534994, + "Z": 360.25012 + }, + "TerritoryId": 153, + "InteractionType": "Interact", + "StopDistance": 5, + "Fly": true, + "AetheryteShortcut": "South Shroud - Camp Tranquil", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + }, + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_JOBAST601_02409_Q1_000_000", + "Answer": "TEXT_JOBAST601_02409_A1_000_001" + } + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1021191, + "Position": { + "X": 195.1781, + "Y": -5.3999624, + "Z": -67.06348 + }, + "TerritoryId": 419, + "InteractionType": "CompleteQuest", + "StopDistance": 5, + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] Athenaeum Astrologicum" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": 195.1781, + "Y": -5.3999624, + "Z": -67.06348 + }, + "TerritoryId": 419, + "MaximumDistance": 100 + } + } + }, + "NextQuestId": 2410 + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Class Quests/AST/2410_Ride Like the Wind.json b/QuestPaths/3.x - Heavensward/Class Quests/AST/2410_Ride Like the Wind.json new file mode 100644 index 000000000..4383dc781 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Class Quests/AST/2410_Ride Like the Wind.json @@ -0,0 +1,164 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "kaiser", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1021191, + "Position": { + "X": 195.1781, + "Y": -5.3999624, + "Z": -67.06348 + }, + "TerritoryId": 419, + "InteractionType": "AcceptQuest", + "StopDistance": 5, + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] Athenaeum Astrologicum" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": 195.1781, + "Y": -5.3999624, + "Z": -67.06348 + }, + "TerritoryId": 419, + "MaximumDistance": 100 + } + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1021221, + "Position": { + "X": 180.22424, + "Y": -5.4349146, + "Z": -55.588684 + }, + "TerritoryId": 419, + "InteractionType": "Interact", + "StopDistance": 5 + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": 244.403, + "Y": 361.78677, + "Z": -616.2311 + }, + "TerritoryId": 155, + "InteractionType": "Combat", + "StopDistance": 5, + "Fly": true, + "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + }, + "EnemySpawnType": "AutoOnEnterArea", + "ComplexCombatData": [ + { + "DataId": 7235, + "MinimumKillCount": 2 + } + ] + }, + { + "DataId": 1021222, + "Position": { + "X": 240.68054, + "Y": 362.1392, + "Z": -614.74023 + }, + "TerritoryId": 155, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1021191, + "Position": { + "X": 195.1781, + "Y": -5.3999624, + "Z": -67.06348 + }, + "TerritoryId": 419, + "InteractionType": "Interact", + "StopDistance": 5, + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] Athenaeum Astrologicum" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": 195.1781, + "Y": -5.3999624, + "Z": -67.06348 + }, + "TerritoryId": 419, + "MaximumDistance": 100 + } + } + } + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1012222, + "Position": { + "X": 202.38037, + "Y": -5.3999662, + "Z": -58.9151 + }, + "TerritoryId": 419, + "InteractionType": "CompleteQuest", + "StopDistance": 5, + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] Athenaeum Astrologicum" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": 202.38037, + "Y": -5.3999662, + "Z": -58.9151 + }, + "TerritoryId": 419, + "MaximumDistance": 100 + } + } + }, + "NextQuestId": 2411 + } + ] + } + ] +} -- 2.45.2 From 409d3cc3c661adacaa4734fd46106dcd68bcd720 Mon Sep 17 00:00:00 2001 From: kaiser Date: Sun, 6 Oct 2024 16:32:41 +1100 Subject: [PATCH 097/448] feat: add the first quest. --- .../AST/2012_Stairway to the Heavens.json | 219 ++++++++++++++++++ 1 file changed, 219 insertions(+) create mode 100644 QuestPaths/3.x - Heavensward/Class Quests/AST/2012_Stairway to the Heavens.json diff --git a/QuestPaths/3.x - Heavensward/Class Quests/AST/2012_Stairway to the Heavens.json b/QuestPaths/3.x - Heavensward/Class Quests/AST/2012_Stairway to the Heavens.json new file mode 100644 index 000000000..8d76255ee --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Class Quests/AST/2012_Stairway to the Heavens.json @@ -0,0 +1,219 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "kaiser", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1012222, + "Position": { + "X": 202.38037, + "Y": -5.3999662, + "Z": -58.9151 + }, + "TerritoryId": 419, + "InteractionType": "AcceptQuest", + "StopDistance": 5, + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] Athenaeum Astrologicum" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": 202.38037, + "Y": -5.3999662, + "Z": -58.9151 + }, + "TerritoryId": 419, + "MaximumDistance": 100 + } + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1012222, + "Position": { + "X": 202.38037, + "Y": -5.3999662, + "Z": -58.9151 + }, + "TerritoryId": 419, + "InteractionType": "Interact", + "StopDistance": 5 + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1012221, + "Position": { + "X": 195.08655, + "Y": -5.3999624, + "Z": -65.65961 + }, + "TerritoryId": 419, + "InteractionType": "Interact", + "StopDistance": 4, + "SkipConditions": { + "StepIf": { + "CompletionQuestVariablesFlags": [ + 1, + null, + null, + null, + null, + 128 + ] + } + } + }, + { + "DataId": 1012223, + "Position": { + "X": 188.70825, + "Y": -5.3999662, + "Z": -68.833435 + }, + "TerritoryId": 419, + "InteractionType": "Interact", + "StopDistance": 4, + "SkipConditions": { + "StepIf": { + "CompletionQuestVariablesFlags": [ + 2, + null, + null, + null, + null, + null + ] + } + } + }, + { + "DataId": 1012224, + "Position": { + "X": 175.12769, + "Y": -5.4349146, + "Z": -57.938538 + }, + "TerritoryId": 419, + "InteractionType": "Interact", + "StopDistance": 4 + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1012222, + "Position": { + "X": 202.38037, + "Y": -5.3999662, + "Z": -58.9151 + }, + "TerritoryId": 419, + "InteractionType": "Interact", + "StopDistance": 4 + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "Position": { + "X": 197.57971, + "Y": 307.86523, + "Z": 409.82266 + }, + "TerritoryId": 155, + "InteractionType": "WalkTo", + "Fly": true, + "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + }, + { + "DataId": 1014980, + "Position": { + "X": 198.6571, + "Y": 293.33, + "Z": 418.57007 + }, + "TerritoryId": 155, + "InteractionType": "Interact", + "Fly": false, + "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", + "StopDistance": 4, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1014931, + "Position": { + "X": 182.97095, + "Y": 7.488976, + "Z": -46.830017 + }, + "TerritoryId": 153, + "InteractionType": "Interact", + "AetheryteShortcut": "South Shroud - Quarrymill", + "StopDistance": 4, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1014925, + "Position": { + "X": 184.49683, + "Y": 14.1174555, + "Z": 51.92639 + }, + "TerritoryId": 153, + "InteractionType": "CompleteQuest", + "StopDistance": 5, + "Fly": true, + "AetheryteShortcut": "South Shroud - Quarrymill", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + }, + "NextQuestId": 2013 + } + ] + } + ] +} -- 2.45.2 From a9216f246407700046e1ae2ad80b7be24e603743 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sun, 6 Oct 2024 17:58:59 +0200 Subject: [PATCH 098/448] Add Endwalker Hildibrand quests --- .../MSQ/K-5.5/4062_The Flames of War.json | 2 +- .../MSQ/K-5.5/4063_When the Dust Settles.json | 2 +- .../Hildibrand/4543_A Soulful Reunion.json | 3 +- .../Hildibrand/4641_Lunar Conspiracy.json | 211 ++++++++++++++++++ .../4642_The Imperfect Gentleman.json | 104 +++++++++ .../4718_The Spectacle of Inspection.json | 197 ++++++++++++++++ .../Hildibrand/4719_Generational Bonding.json | 120 ++++++++++ .../Hildibrand/4754_By Agents Unknown.json | 120 ++++++++++ .../Hildibrand/4755_Not from Around Here.json | 205 +++++++++++++++++ .../4799_Of Duplicity and Duplication.json | 152 +++++++++++++ .../Hildibrand/4800_Gentlemen at Heart.json | 73 ++++++ 11 files changed, 1186 insertions(+), 3 deletions(-) create mode 100644 QuestPaths/6.x - Endwalker/Side Stories/Hildibrand/4641_Lunar Conspiracy.json create mode 100644 QuestPaths/6.x - Endwalker/Side Stories/Hildibrand/4642_The Imperfect Gentleman.json create mode 100644 QuestPaths/6.x - Endwalker/Side Stories/Hildibrand/4718_The Spectacle of Inspection.json create mode 100644 QuestPaths/6.x - Endwalker/Side Stories/Hildibrand/4719_Generational Bonding.json create mode 100644 QuestPaths/6.x - Endwalker/Side Stories/Hildibrand/4754_By Agents Unknown.json create mode 100644 QuestPaths/6.x - Endwalker/Side Stories/Hildibrand/4755_Not from Around Here.json create mode 100644 QuestPaths/6.x - Endwalker/Side Stories/Hildibrand/4799_Of Duplicity and Duplication.json create mode 100644 QuestPaths/6.x - Endwalker/Side Stories/Hildibrand/4800_Gentlemen at Heart.json diff --git a/QuestPaths/5.x - Shadowbringers/MSQ/K-5.5/4062_The Flames of War.json b/QuestPaths/5.x - Shadowbringers/MSQ/K-5.5/4062_The Flames of War.json index c74e6ed80..d4f274974 100644 --- a/QuestPaths/5.x - Shadowbringers/MSQ/K-5.5/4062_The Flames of War.json +++ b/QuestPaths/5.x - Shadowbringers/MSQ/K-5.5/4062_The Flames of War.json @@ -88,7 +88,7 @@ "Y": 83.2, "Z": 15.121643 }, - "StopDistance": 5, + "StopDistance": 7, "TerritoryId": 130, "InteractionType": "CompleteQuest" } diff --git a/QuestPaths/5.x - Shadowbringers/MSQ/K-5.5/4063_When the Dust Settles.json b/QuestPaths/5.x - Shadowbringers/MSQ/K-5.5/4063_When the Dust Settles.json index 607c69f2d..cc73070e6 100644 --- a/QuestPaths/5.x - Shadowbringers/MSQ/K-5.5/4063_When the Dust Settles.json +++ b/QuestPaths/5.x - Shadowbringers/MSQ/K-5.5/4063_When the Dust Settles.json @@ -12,7 +12,7 @@ "Y": 83.2, "Z": 15.121643 }, - "StopDistance": 5, + "StopDistance": 7, "TerritoryId": 130, "InteractionType": "AcceptQuest" } diff --git a/QuestPaths/6.x - Endwalker/Side Stories/Hildibrand/4543_A Soulful Reunion.json b/QuestPaths/6.x - Endwalker/Side Stories/Hildibrand/4543_A Soulful Reunion.json index 08b0bfae0..c950da6ec 100644 --- a/QuestPaths/6.x - Endwalker/Side Stories/Hildibrand/4543_A Soulful Reunion.json +++ b/QuestPaths/6.x - Endwalker/Side Stories/Hildibrand/4543_A Soulful Reunion.json @@ -228,7 +228,8 @@ }, "TerritoryId": 963, "InteractionType": "CompleteQuest", - "AetheryteShortcut": "Radz-at-Han" + "AetheryteShortcut": "Radz-at-Han", + "NextQuestId": 4641 } ] } diff --git a/QuestPaths/6.x - Endwalker/Side Stories/Hildibrand/4641_Lunar Conspiracy.json b/QuestPaths/6.x - Endwalker/Side Stories/Hildibrand/4641_Lunar Conspiracy.json new file mode 100644 index 000000000..deeaa99ae --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Side Stories/Hildibrand/4641_Lunar Conspiracy.json @@ -0,0 +1,211 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1042512, + "Position": { + "X": 31.387817, + "Y": -5.021957E-07, + "Z": -0.65618896 + }, + "TerritoryId": 963, + "InteractionType": "AcceptQuest", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_CHRHDB821_04641_Q2_000_000", + "Answer": "TEXT_CHRHDB821_04641_A2_000_002" + }, + { + "Type": "List", + "Prompt": "TEXT_CHRHDB821_04641_Q3_000_000", + "Answer": "TEXT_CHRHDB821_04641_A3_000_001" + } + ] + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1042524, + "Position": { + "X": -432.70013, + "Y": 22.328213, + "Z": 508.75085 + }, + "TerritoryId": 958, + "InteractionType": "Interact", + "AetheryteShortcut": "Garlemald - Camp Broken Glass" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2012531, + "Position": { + "X": -663.29443, + "Y": 132.6466, + "Z": 728.96924 + }, + "StopDistance": 0.5, + "TerritoryId": 959, + "InteractionType": "Interact", + "TargetTerritoryId": 1024, + "AetheryteShortcut": "Mare Lamentorum - Sinus Lacrimarum", + "Fly": true + }, + { + "DataId": 2012529, + "Position": { + "X": 0.07623291, + "Y": 0.83917236, + "Z": 52.506226 + }, + "TerritoryId": 1024, + "InteractionType": "Interact", + "TargetTerritoryId": 958 + }, + { + "DataId": 1042525, + "Position": { + "X": -446.0365, + "Y": 10.5, + "Z": -616.14404 + }, + "TerritoryId": 958, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1042526, + "Position": { + "X": -657.9232, + "Y": 130.61172, + "Z": 722.62134 + }, + "StopDistance": 7, + "TerritoryId": 959, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1042528, + "Position": { + "X": -15.213318, + "Y": -129.20917, + "Z": -475.6695 + }, + "TerritoryId": 959, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1042531, + "Position": { + "X": -103.07471, + "Y": -137.41672, + "Z": -444.66315 + }, + "TerritoryId": 959, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "Position": { + "X": -59.250706, + "Y": -133.00002, + "Z": -587.20355 + }, + "TerritoryId": 959, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 1042532, + "Position": { + "X": -60.624146, + "Y": -132.80109, + "Z": -587.4266 + }, + "TerritoryId": 959, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 7, + "Steps": [ + { + "DataId": 1037816, + "Position": { + "X": 114.3053, + "Y": -132.87448, + "Z": -559.35 + }, + "TerritoryId": 959, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 8, + "Steps": [ + { + "DataId": 2013061, + "Position": { + "X": 249.19507, + "Y": 66.544556, + "Z": 367.2693 + }, + "StopDistance": 0.5, + "TerritoryId": 959, + "InteractionType": "Interact", + "AetheryteShortcut": "Mare Lamentorum - Sinus Lacrimarum", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1042544, + "Position": { + "X": 324.422, + "Y": 130.1783, + "Z": 711.94006 + }, + "StopDistance": 7, + "TerritoryId": 959, + "InteractionType": "CompleteQuest", + "NextQuestId": 4642 + } + ] + } + ] +} diff --git a/QuestPaths/6.x - Endwalker/Side Stories/Hildibrand/4642_The Imperfect Gentleman.json b/QuestPaths/6.x - Endwalker/Side Stories/Hildibrand/4642_The Imperfect Gentleman.json new file mode 100644 index 000000000..39e836340 --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Side Stories/Hildibrand/4642_The Imperfect Gentleman.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": 1042544, + "Position": { + "X": 324.422, + "Y": 130.1783, + "Z": 711.94006 + }, + "StopDistance": 6, + "TerritoryId": 959, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1042548, + "Position": { + "X": 1.5106201, + "Y": 70.01534, + "Z": -1.083435 + }, + "TerritoryId": 959, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2013062, + "Position": { + "X": -129.83911, + "Y": 61.661743, + "Z": 120.80554 + }, + "StopDistance": 0.5, + "TerritoryId": 959, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2013063, + "Position": { + "X": -249.22565, + "Y": 81.712036, + "Z": 134.1726 + }, + "TerritoryId": 959, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 2013064, + "Position": { + "X": -358.23608, + "Y": 104.53955, + "Z": 117.234985 + }, + "TerritoryId": 959, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1042555, + "Position": { + "X": 31.204712, + "Y": -5.351952E-07, + "Z": -0.77819824 + }, + "StopDistance": 5, + "TerritoryId": 963, + "InteractionType": "CompleteQuest", + "NextQuestId": 4718 + } + ] + } + ] +} diff --git a/QuestPaths/6.x - Endwalker/Side Stories/Hildibrand/4718_The Spectacle of Inspection.json b/QuestPaths/6.x - Endwalker/Side Stories/Hildibrand/4718_The Spectacle of Inspection.json new file mode 100644 index 000000000..a99ea5c0a --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Side Stories/Hildibrand/4718_The Spectacle of Inspection.json @@ -0,0 +1,197 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1042558, + "Position": { + "X": 33.066284, + "Y": -5.8859587E-07, + "Z": -2.2125854 + }, + "StopDistance": 5, + "TerritoryId": 963, + "InteractionType": "AcceptQuest", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_CHRHDB831_04718_Q6_000_000", + "Answer": "TEXT_CHRHDB831_04718_A6_000_001" + } + ] + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1042560, + "Position": { + "X": 431.96765, + "Y": 3.1168795, + "Z": -250.5379 + }, + "TerritoryId": 957, + "InteractionType": "Interact", + "AetheryteShortcut": "Thavnair - Palaka's Stand" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1042564, + "Position": { + "X": 423.63623, + "Y": 3.1168795, + "Z": -273.8537 + }, + "TerritoryId": 957, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 1042565, + "Position": { + "X": 393.14856, + "Y": 3.1164212, + "Z": -212.9397 + }, + "TerritoryId": 957, + "InteractionType": "Interact", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1042567, + "Position": { + "X": 374.80737, + "Y": 3.1168795, + "Z": -256.45844 + }, + "TerritoryId": 957, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1042572, + "Position": { + "X": 374.44104, + "Y": 3.1168795, + "Z": -257.64862 + }, + "StopDistance": 5, + "TerritoryId": 957, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 2013267, + "Position": { + "X": 205.70679, + "Y": 7.9193726, + "Z": -180.34644 + }, + "TerritoryId": 957, + "InteractionType": "Interact", + "Fly": true, + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_CHRHDB831_04718_Q4_000_000", + "Answer": "TEXT_CHRHDB831_04718_A4_000_001" + } + ] + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 2013268, + "Position": { + "X": 36.209595, + "Y": 17.196838, + "Z": -232.68488 + }, + "TerritoryId": 957, + "InteractionType": "Interact", + "Fly": true, + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_CHRHDB831_04718_Q5_000_000", + "Answer": "TEXT_CHRHDB831_04718_A5_000_001" + } + ] + } + ] + }, + { + "Sequence": 7, + "Steps": [ + { + "DataId": 2013269, + "Position": { + "X": -13.565308, + "Y": 22.964722, + "Z": -346.7613 + }, + "TerritoryId": 957, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1042573, + "Position": { + "X": 565.91125, + "Y": 13.300535, + "Z": 242.48108 + }, + "StopDistance": 7, + "TerritoryId": 957, + "InteractionType": "CompleteQuest", + "NextQuestId": 4719 + } + ] + } + ] +} diff --git a/QuestPaths/6.x - Endwalker/Side Stories/Hildibrand/4719_Generational Bonding.json b/QuestPaths/6.x - Endwalker/Side Stories/Hildibrand/4719_Generational Bonding.json new file mode 100644 index 000000000..19d9c1bfe --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Side Stories/Hildibrand/4719_Generational Bonding.json @@ -0,0 +1,120 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1042573, + "Position": { + "X": 565.91125, + "Y": 13.300535, + "Z": 242.48108 + }, + "StopDistance": 7, + "TerritoryId": 957, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1044765, + "Position": { + "X": 9.567322, + "Y": -6.762952E-05, + "Z": 17.715698 + }, + "TerritoryId": 963, + "InteractionType": "Interact", + "AetheryteShortcut": "Radz-at-Han" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1044752, + "Position": { + "X": -432.02875, + "Y": 22.24389, + "Z": 507.53027 + }, + "TerritoryId": 958, + "InteractionType": "Interact", + "AetheryteShortcut": "Garlemald - Camp Broken Glass" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1044754, + "Position": { + "X": -458.3963, + "Y": 20.805109, + "Z": -333.69952 + }, + "TerritoryId": 958, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 2013272, + "Position": { + "X": 697.8712, + "Y": 30.105957, + "Z": -789.7612 + }, + "TerritoryId": 958, + "InteractionType": "Interact", + "AetheryteShortcut": "Garlemald - Tertium", + "Fly": true + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1044762, + "Position": { + "X": 694.97217, + "Y": 30.104027, + "Z": -785.8244 + }, + "StopDistance": 5, + "TerritoryId": 958, + "InteractionType": "SinglePlayerDuty" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1044765, + "Position": { + "X": 9.567322, + "Y": -6.762952E-05, + "Z": 17.715698 + }, + "StopDistance": 5, + "TerritoryId": 963, + "InteractionType": "CompleteQuest", + "NextQuestId": 4754 + } + ] + } + ] +} diff --git a/QuestPaths/6.x - Endwalker/Side Stories/Hildibrand/4754_By Agents Unknown.json b/QuestPaths/6.x - Endwalker/Side Stories/Hildibrand/4754_By Agents Unknown.json new file mode 100644 index 000000000..d2d7b9ccf --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Side Stories/Hildibrand/4754_By Agents Unknown.json @@ -0,0 +1,120 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1044768, + "Position": { + "X": 11.154297, + "Y": -0.00010118321, + "Z": 14.816467 + }, + "StopDistance": 5, + "TerritoryId": 963, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1044769, + "Position": { + "X": 145.73889, + "Y": 27.059998, + "Z": 36.819946 + }, + "TerritoryId": 963, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Radz-at-Han] Aetheryte Plaza", + "[Radz-at-Han] Kama" + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": 31.966597, + "Y": 5.8818626, + "Z": 580.4358 + }, + "TerritoryId": 957, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "ComplexCombatData": [ + { + "DataId": 13527, + "MinimumKillCount": 1, + "RewardItemId": 2003459, + "RewardItemCount": 1 + } + ], + "AetheryteShortcut": "Thavnair - Yedlihmad", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1044774, + "Position": { + "X": -483.57367, + "Y": 1.580146, + "Z": -24.551819 + }, + "TerritoryId": 957, + "InteractionType": "Interact", + "AetheryteShortcut": "Thavnair - Great Work", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 2013336, + "Position": { + "X": -589.50183, + "Y": 2.2735596, + "Z": -285.42004 + }, + "TerritoryId": 957, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1044772, + "Position": { + "X": 147.35632, + "Y": 27.059998, + "Z": 32.700073 + }, + "TerritoryId": 963, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Radz-at-Han", + "AethernetShortcut": [ + "[Radz-at-Han] Aetheryte Plaza", + "[Radz-at-Han] Kama" + ], + "NextQuestId": 4755 + } + ] + } + ] +} diff --git a/QuestPaths/6.x - Endwalker/Side Stories/Hildibrand/4755_Not from Around Here.json b/QuestPaths/6.x - Endwalker/Side Stories/Hildibrand/4755_Not from Around Here.json new file mode 100644 index 000000000..1dfcd8e60 --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Side Stories/Hildibrand/4755_Not from Around Here.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": 1044783, + "Position": { + "X": -313.4051, + "Y": 93.68002, + "Z": -316.7926 + }, + "StopDistance": 5, + "TerritoryId": 957, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Thavnair - Great Work", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1044788, + "Position": { + "X": -42.191284, + "Y": 2.4950514, + "Z": -36.14868 + }, + "TerritoryId": 962, + "InteractionType": "Interact", + "AetheryteShortcut": "Old Sharlayan", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_CHRHDB842_04755_Q2_000_000", + "Answer": "TEXT_CHRHDB842_04755_A2_000_001" + } + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1039544, + "Position": { + "X": -29.617859, + "Y": 179.71387, + "Z": -826.2302 + }, + "TerritoryId": 956, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Old Sharlayan] Aetheryte Plaza", + "[Old Sharlayan] The Hall of Artifice (Labyrinthos)" + ], + "TargetTerritoryId": 962 + }, + { + "DataId": 1044794, + "Position": { + "X": -63.09613, + "Y": 18, + "Z": -297.59674 + }, + "TerritoryId": 962, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1044799, + "Position": { + "X": 408.49915, + "Y": 170.17088, + "Z": -431.7235 + }, + "TerritoryId": 956, + "InteractionType": "Interact", + "AetheryteShortcut": "Labyrinthos - Archeion" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1044805, + "Position": { + "X": 435.26355, + "Y": 65.16199, + "Z": -134.20312 + }, + "TerritoryId": 956, + "InteractionType": "Interact", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 1044806, + "Position": { + "X": 414.87744, + "Y": 65.16199, + "Z": -117.784424 + }, + "TerritoryId": 956, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 1044807, + "Position": { + "X": 494.40747, + "Y": 65.16199, + "Z": -82.993835 + }, + "TerritoryId": 956, + "InteractionType": "Interact", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1044809, + "Position": { + "X": 470.90857, + "Y": 65.16199, + "Z": -85.61841 + }, + "TerritoryId": 956, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1044765, + "Position": { + "X": 9.567322, + "Y": -6.762952E-05, + "Z": 17.715698 + }, + "TerritoryId": 963, + "InteractionType": "Interact", + "AetheryteShortcut": "Radz-at-Han" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1044768, + "Position": { + "X": 11.154297, + "Y": -0.00010118321, + "Z": 14.816467 + }, + "TerritoryId": 963, + "InteractionType": "CompleteQuest", + "NextQuestId": 4799 + } + ] + } + ] +} diff --git a/QuestPaths/6.x - Endwalker/Side Stories/Hildibrand/4799_Of Duplicity and Duplication.json b/QuestPaths/6.x - Endwalker/Side Stories/Hildibrand/4799_Of Duplicity and Duplication.json new file mode 100644 index 000000000..3c4d70a2c --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Side Stories/Hildibrand/4799_Of Duplicity and Duplication.json @@ -0,0 +1,152 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1044768, + "Position": { + "X": 11.154297, + "Y": -0.00010118321, + "Z": 14.816467 + }, + "TerritoryId": 963, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1044815, + "Position": { + "X": 182.17737, + "Y": 5.3180933, + "Z": 646.3873 + }, + "TerritoryId": 957, + "InteractionType": "Interact", + "AetheryteShortcut": "Thavnair - Yedlihmad" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1044821, + "Position": { + "X": 216.38806, + "Y": 10.035135, + "Z": 613.79407 + }, + "TerritoryId": 957, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 1044822, + "Position": { + "X": 244.09851, + "Y": 9.916463, + "Z": 575.8601 + }, + "TerritoryId": 957, + "InteractionType": "Interact", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, + { + "Position": { + "X": 203.62158, + "Y": 1.7700036, + "Z": 711.6622 + }, + "TerritoryId": 957, + "InteractionType": "WalkTo", + "Fly": true, + "SkipConditions": { + "StepIf": { + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + } + } + }, + { + "DataId": 1044820, + "Position": { + "X": 205.09644, + "Y": 1.7700036, + "Z": 710.84155 + }, + "TerritoryId": 957, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1044824, + "Position": { + "X": 212.4513, + "Y": 4.763736, + "Z": 653.65063 + }, + "TerritoryId": 957, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1044830, + "Position": { + "X": 25.680908, + "Y": 1.5596709, + "Z": 634.5464 + }, + "StopDistance": 5, + "TerritoryId": 957, + "InteractionType": "CompleteQuest", + "NextQuestId": 4800 + } + ] + } + ] +} diff --git a/QuestPaths/6.x - Endwalker/Side Stories/Hildibrand/4800_Gentlemen at Heart.json b/QuestPaths/6.x - Endwalker/Side Stories/Hildibrand/4800_Gentlemen at Heart.json new file mode 100644 index 000000000..1c46edd92 --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Side Stories/Hildibrand/4800_Gentlemen at Heart.json @@ -0,0 +1,73 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1044835, + "Position": { + "X": 24.338135, + "Y": 1.6764785, + "Z": 631.1284 + }, + "StopDistance": 5, + "TerritoryId": 957, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": -18.503275, + "Y": 56.94149, + "Z": 74.85906 + }, + "TerritoryId": 957, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 1044751, + "Position": { + "X": -16.617126, + "Y": 56.856533, + "Z": 74.052 + }, + "TerritoryId": 957, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "TerritoryId": 1183, + "InteractionType": "Duty", + "ContentFinderConditionId": 944 + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1044768, + "Position": { + "X": 11.154297, + "Y": -0.00010118321, + "Z": 14.816467 + }, + "StopDistance": 5, + "TerritoryId": 963, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} -- 2.45.2 From bc794811bf43f5606af8314109ac86a96586cdd6 Mon Sep 17 00:00:00 2001 From: kaiser Date: Mon, 7 Oct 2024 09:04:17 +1100 Subject: [PATCH 099/448] refactor: moved to 4.x since it's stormblood quests. --- .../Class Quests/AST/2409_East Meets West.json | 0 .../Class Quests/AST/2410_Ride Like the Wind.json | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename QuestPaths/{3.x - Heavensward => 4.x - Stormblood}/Class Quests/AST/2409_East Meets West.json (100%) rename QuestPaths/{3.x - Heavensward => 4.x - Stormblood}/Class Quests/AST/2410_Ride Like the Wind.json (100%) diff --git a/QuestPaths/3.x - Heavensward/Class Quests/AST/2409_East Meets West.json b/QuestPaths/4.x - Stormblood/Class Quests/AST/2409_East Meets West.json similarity index 100% rename from QuestPaths/3.x - Heavensward/Class Quests/AST/2409_East Meets West.json rename to QuestPaths/4.x - Stormblood/Class Quests/AST/2409_East Meets West.json diff --git a/QuestPaths/3.x - Heavensward/Class Quests/AST/2410_Ride Like the Wind.json b/QuestPaths/4.x - Stormblood/Class Quests/AST/2410_Ride Like the Wind.json similarity index 100% rename from QuestPaths/3.x - Heavensward/Class Quests/AST/2410_Ride Like the Wind.json rename to QuestPaths/4.x - Stormblood/Class Quests/AST/2410_Ride Like the Wind.json -- 2.45.2 From 51ed5eb0b8eaf23ebb109f9a5ae6d3d016a00034 Mon Sep 17 00:00:00 2001 From: kaiser Date: Mon, 7 Oct 2024 10:26:11 +1100 Subject: [PATCH 100/448] feat: Finish the rest of the quests. --- .../AST/2411_Come Rain or Shrine.json | 235 ++++++++++++++++++ .../AST/2412_Behind Door Number Two.json | 165 ++++++++++++ .../Class Quests/AST/2413_Foxfire.json | 147 +++++++++++ 3 files changed, 547 insertions(+) create mode 100644 QuestPaths/4.x - Stormblood/Class Quests/AST/2411_Come Rain or Shrine.json create mode 100644 QuestPaths/4.x - Stormblood/Class Quests/AST/2412_Behind Door Number Two.json create mode 100644 QuestPaths/4.x - Stormblood/Class Quests/AST/2413_Foxfire.json diff --git a/QuestPaths/4.x - Stormblood/Class Quests/AST/2411_Come Rain or Shrine.json b/QuestPaths/4.x - Stormblood/Class Quests/AST/2411_Come Rain or Shrine.json new file mode 100644 index 000000000..79ba0fdf2 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/AST/2411_Come Rain or Shrine.json @@ -0,0 +1,235 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "kaiser", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1012222, + "Position": { + "X": 202.38037, + "Y": -5.3999662, + "Z": -58.9151 + }, + "TerritoryId": 419, + "InteractionType": "AcceptQuest", + "StopDistance": 5, + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] Athenaeum Astrologicum" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": 202.38037, + "Y": -5.3999662, + "Z": -58.9151 + }, + "TerritoryId": 419, + "MaximumDistance": 100 + } + } + }, + "Comment": "This quest have solo duty!" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1021255, + "Position": { + "X": -0.35101318, + "Y": 11.965101, + "Z": 45.029297 + }, + "TerritoryId": 419, + "InteractionType": "Interact", + "StopDistance": 5, + "AethernetShortcut": [ + "[Ishgard] Athenaeum Astrologicum", + "[Ishgard] The Last Vigil" + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1021259, + "Position": { + "X": -16.250854, + "Y": 0.09999631, + "Z": -31.784546 + }, + "TerritoryId": 628, + "InteractionType": "Interact", + "StopDistance": 4, + "AetheryteShortcut": "Kugane", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + }, + "StepIf": { + "CompletionQuestVariablesFlags": [ + 1, + null, + null, + null, + null, + 64 + ] + } + } + }, + { + "DataId": 1021256, + "Position": { + "X": 28.610596, + "Y": 4, + "Z": 53.57434 + }, + "TerritoryId": 628, + "InteractionType": "Interact", + "StopDistance": 4, + "AetheryteShortcut": "Kugane", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + }, + "StepIf": { + "CompletionQuestVariablesFlags": [ + 2, + null, + null, + null, + null, + null + ] + } + } + }, + { + "DataId": 1021260, + "Position": { + "X": -12.069946, + "Y": -4.9889293, + "Z": 15.579407 + }, + "TerritoryId": 628, + "InteractionType": "Interact", + "StopDistance": 4, + "AetheryteShortcut": "Kugane", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2007937, + "Position": { + "X": -51.621338, + "Y": 16.891724, + "Z": 0.045776367 + }, + "TerritoryId": 628, + "InteractionType": "Interact", + "StopDistance": 2, + "AetheryteShortcut": "Kugane", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "Position": { + "X": -53.109528, + "Y": 15.469519, + "Z": 22.387312 + }, + "TerritoryId": 628, + "InteractionType": "Jump", + "JumpDestination": { + "Type": "RepeatedJumps", + "Position": { + "X": -57.846985, + "Y": -3, + "Z": 25.16211 + }, + "StopDistance": 4 + } + }, + { + "DataId": 1021261, + "Position": { + "X": -57.846985, + "Y": -3, + "Z": 25.16211 + }, + "StopDistance": 4, + "TerritoryId": 628, + "InteractionType": "SinglePlayerDuty", + "AetheryteShortcut": "Kugane", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + }, + "Comment": "Do the Solo duty!" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1021262, + "Position": { + "X": 98.10022, + "Y": 4.0000014, + "Z": 87.44946 + }, + "TerritoryId": 628, + "InteractionType": "CompleteQuest", + "StopDistance": 5, + "AetheryteShortcut": "Kugane", + "AethernetShortcut": [ + "[Kugane] Aetheryte Plaza", + "[Kugane] The Ruby Bazaar" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": 98.10022, + "Y": 4.0000014, + "Z": 87.44946 + }, + "TerritoryId": 628, + "MaximumDistance": 20 + } + } + }, + "NextQuestId": 2412 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Class Quests/AST/2412_Behind Door Number Two.json b/QuestPaths/4.x - Stormblood/Class Quests/AST/2412_Behind Door Number Two.json new file mode 100644 index 000000000..881150a03 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/AST/2412_Behind Door Number Two.json @@ -0,0 +1,165 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "kaiser", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1021262, + "Position": { + "X": 98.10022, + "Y": 4.0000014, + "Z": 87.44946 + }, + "TerritoryId": 628, + "InteractionType": "AcceptQuest", + "StopDistance": 5, + "AetheryteShortcut": "Kugane", + "AethernetShortcut": [ + "[Kugane] Aetheryte Plaza", + "[Kugane] The Ruby Bazaar" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": 98.10022, + "Y": 4.0000014, + "Z": 87.44946 + }, + "TerritoryId": 628, + "MaximumDistance": 20 + } + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1021273, + "Position": { + "X": 469.84045, + "Y": 69.6416, + "Z": -68.37573 + }, + "TerritoryId": 614, + "InteractionType": "Interact", + "StopDistance": 5, + "AetheryteShortcut": "Yanxia - Namai" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1021274, + "Position": { + "X": -413.77893, + "Y": 55.093624, + "Z": 305.83655 + }, + "TerritoryId": 614, + "InteractionType": "Combat", + "StopDistance": 4, + "Fly": true, + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_JOBAST680_02412_Q1_000_024", + "Yes": true + } + ], + "AetheryteShortcut": "Yanxia - Namai", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + }, + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 7236 + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1021274, + "Position": { + "X": -413.77893, + "Y": 55.093624, + "Z": 305.83655 + }, + "TerritoryId": 614, + "InteractionType": "Interact", + "StopDistance": 4, + "Fly": false + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1021054, + "Position": { + "X": -36.66742, + "Y": 14.000003, + "Z": -58.457336 + }, + "TerritoryId": 628, + "InteractionType": "Interact", + "AetheryteShortcut": "Kugane", + "StopDistance": 4, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1021262, + "Position": { + "X": 98.10022, + "Y": 4.0000014, + "Z": 87.44946 + }, + "TerritoryId": 628, + "InteractionType": "CompleteQuest", + "StopDistance": 5, + "AetheryteShortcut": "Kugane", + "AethernetShortcut": [ + "[Kugane] Aetheryte Plaza", + "[Kugane] The Ruby Bazaar" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": 98.10022, + "Y": 4.0000014, + "Z": 87.44946 + }, + "TerritoryId": 628, + "MaximumDistance": 20 + } + } + }, + "NextQuestId": 2413 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Class Quests/AST/2413_Foxfire.json b/QuestPaths/4.x - Stormblood/Class Quests/AST/2413_Foxfire.json new file mode 100644 index 000000000..1938bc52e --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/AST/2413_Foxfire.json @@ -0,0 +1,147 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "kaiser", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1021262, + "Position": { + "X": 98.10022, + "Y": 4.0000014, + "Z": 87.44946 + }, + "TerritoryId": 628, + "InteractionType": "AcceptQuest", + "StopDistance": 5, + "AetheryteShortcut": "Kugane", + "AethernetShortcut": [ + "[Kugane] Aetheryte Plaza", + "[Kugane] The Ruby Bazaar" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": 98.10022, + "Y": 4.0000014, + "Z": 87.44946 + }, + "TerritoryId": 628, + "MaximumDistance": 20 + } + } + }, + "Comment": "This quest have solo duty!" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2008103, + "Position": { + "X": 44.84619, + "Y": 8.255066, + "Z": 178.11853 + }, + "TerritoryId": 628, + "InteractionType": "Interact", + "StopDistance": 5, + "AetheryteShortcut": "Kugane", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1021305, + "Position": { + "X": -61.356567, + "Y": -3, + "Z": 28.854736 + }, + "TerritoryId": 628, + "InteractionType": "Interact", + "StopDistance": 5, + "AetheryteShortcut": "Kugane", + "AethernetShortcut": [ + "[Kugane] Thavnairian Consulate", + "[Kugane] Kogane Dori Markets" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2008104, + "Position": { + "X": 128.13, + "Y": 24.979004, + "Z": -0.22894287 + }, + "TerritoryId": 628, + "InteractionType": "SinglePlayerDuty", + "StopDistance": 3, + "AetheryteShortcut": "Kugane", + "AethernetShortcut": [ + "[Kugane] Kogane Dori Markets", + "[Kugane] The Ruby Bazaar" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + }, + "Comment": "Do the solo Duty!" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1021309, + "Position": { + "X": -47.501343, + "Y": 16.624714, + "Z": 9.719971 + }, + "TerritoryId": 628, + "InteractionType": "CompleteQuest", + "StopDistance": 5, + "AetheryteShortcut": "Kugane", + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": -47.501343, + "Y": 16.624714, + "Z": 9.719971 + }, + "TerritoryId": 628, + "MaximumDistance": 20 + } + } + }, + "NextQuestId": 3222 + } + ] + } + ] +} -- 2.45.2 From ef9e4c33a1336039745850ec0f9229d4b13f15db Mon Sep 17 00:00:00 2001 From: kaiser Date: Tue, 8 Oct 2024 11:14:49 +1100 Subject: [PATCH 101/448] chore: fix, there is no 2nd sequence. --- .../7.x - Dawntrail/Raid Quests/4963_Yaana's Yarn.json | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/QuestPaths/7.x - Dawntrail/Raid Quests/4963_Yaana's Yarn.json b/QuestPaths/7.x - Dawntrail/Raid Quests/4963_Yaana's Yarn.json index 43bd5f8dc..09b370c3e 100644 --- a/QuestPaths/7.x - Dawntrail/Raid Quests/4963_Yaana's Yarn.json +++ b/QuestPaths/7.x - Dawntrail/Raid Quests/4963_Yaana's Yarn.json @@ -35,7 +35,7 @@ ] }, { - "Sequence": 2, + "Sequence": 255, "Steps": [ { "DataId": 1049787, @@ -58,12 +58,7 @@ "[Solution Nine] True Vue", "[Solution Nine] The Arcadion" ] - } - ] - }, - { - "Sequence": 255, - "Steps": [ + }, { "DataId": 1049789, "Position": { -- 2.45.2 From 1ffaf0447597e6dd79b0d4199a96b2bddf56f852 Mon Sep 17 00:00:00 2001 From: kaiser Date: Wed, 9 Oct 2024 17:50:38 +1100 Subject: [PATCH 102/448] feat: add Margrat quest. --- .../4816_The Pride of Labyrinthos.json | 120 ++++++++++++++++++ 1 file changed, 120 insertions(+) create mode 100644 QuestPaths/6.x - Endwalker/Side Quests/Old Sharlayan/4816_The Pride of Labyrinthos.json diff --git a/QuestPaths/6.x - Endwalker/Side Quests/Old Sharlayan/4816_The Pride of Labyrinthos.json b/QuestPaths/6.x - Endwalker/Side Quests/Old Sharlayan/4816_The Pride of Labyrinthos.json new file mode 100644 index 000000000..eb2562339 --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Side Quests/Old Sharlayan/4816_The Pride of Labyrinthos.json @@ -0,0 +1,120 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "kaiser", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1046073, + "Position": { + "X": -53.635498, + "Y": -29.497286, + "Z": -65.14081 + }, + "TerritoryId": 956, + "InteractionType": "AcceptQuest", + "StopDistance": 5, + "AetheryteShortcut": "Labyrinthos - Sharlayan Hamlet", + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": -53.635498, + "Y": -29.497286, + "Z": -65.14081 + }, + "MaximumDistance": 30, + "TerritoryId": 956 + } + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1046404, + "Position": { + "X": -707.6982, + "Y": -31.53043, + "Z": 280.38452 + }, + "TerritoryId": 956, + "InteractionType": "Interact", + "StopDistance": 5, + "AetheryteShortcut": "Labyrinthos - Aporia" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1046073, + "Position": { + "X": -53.635498, + "Y": -29.497286, + "Z": -65.14081 + }, + "TerritoryId": 956, + "InteractionType": "Interact", + "StopDistance": 5, + "AetheryteShortcut": "Labyrinthos - Sharlayan Hamlet", + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_SUBCTS606_04816_Q2_000_055", + "Yes": true + } + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": -53.635498, + "Y": -29.497286, + "Z": -65.14081 + }, + "MaximumDistance": 30, + "TerritoryId": 956 + } + } + } + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1046073, + "Position": { + "X": -53.635498, + "Y": -29.497286, + "Z": -65.14081 + }, + "TerritoryId": 956, + "InteractionType": "CompleteQuest", + "StopDistance": 5, + "AetheryteShortcut": "Labyrinthos - Sharlayan Hamlet", + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": -53.635498, + "Y": -29.497286, + "Z": -65.14081 + }, + "MaximumDistance": 30, + "TerritoryId": 956 + } + } + } + } + ] + } + ] +} -- 2.45.2 From 756fd155a24385a8599c39f333bb3b261a0e6409 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Wed, 9 Oct 2024 16:44:47 +0200 Subject: [PATCH 103/448] Add SkipCondition --- .../Dailies/4689_Money Makes the Moon Go Round.json | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Dailies/4689_Money Makes the Moon Go Round.json b/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Dailies/4689_Money Makes the Moon Go Round.json index 11b508a2b..4b1d7ea1d 100644 --- a/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Dailies/4689_Money Makes the Moon Go Round.json +++ b/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Dailies/4689_Money Makes the Moon Go Round.json @@ -37,7 +37,12 @@ }, "TerritoryId": 959, "InteractionType": "WalkTo", - "Fly": true + "Fly": true, + "SkipConditions": { + "StepIf": { + "Flying": "Locked" + } + } }, { "DataId": 1044572, @@ -84,4 +89,4 @@ ] } ] -} \ No newline at end of file +} -- 2.45.2 From ab6e3a847f30a042dfa53f66052fc41c027d18d3 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Wed, 9 Oct 2024 17:49:02 +0200 Subject: [PATCH 104/448] Change DialogueChoices to TargetTerritoryId in Yaana's Yarn --- .../Raid Quests/4963_Yaana's Yarn.json | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/QuestPaths/7.x - Dawntrail/Raid Quests/4963_Yaana's Yarn.json b/QuestPaths/7.x - Dawntrail/Raid Quests/4963_Yaana's Yarn.json index 09b370c3e..ed2b9b8cf 100644 --- a/QuestPaths/7.x - Dawntrail/Raid Quests/4963_Yaana's Yarn.json +++ b/QuestPaths/7.x - Dawntrail/Raid Quests/4963_Yaana's Yarn.json @@ -38,7 +38,7 @@ "Sequence": 255, "Steps": [ { - "DataId": 1049787, + "DataId": 1049793, "Position": { "X": 364.3396, "Y": 60.125, @@ -46,14 +46,7 @@ }, "TerritoryId": 1186, "InteractionType": "Interact", - "DialogueChoices": [ - { - "Type": "YesNo", - "ExcelSheet": "quest/049/KinGra101_04960", - "Prompt": "TEXT_KINGRA101_04960_SYSTEM_100_030", - "Yes": true - } - ], + "TargetTerritoryId": 1224, "AethernetShortcut": [ "[Solution Nine] True Vue", "[Solution Nine] The Arcadion" -- 2.45.2 From 588beffc37c9fd8f46135d130dd79f09b4048c0f Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Wed, 9 Oct 2024 18:20:38 +0200 Subject: [PATCH 105/448] Add workaround for RSR refusing to attack enemies spawned by quest in 'Taking Stock' --- .../1963_Taking Stock.json | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/QuestPaths/3.x - Heavensward/Aether Currents/The Dravanian Hinterlands/1963_Taking Stock.json b/QuestPaths/3.x - Heavensward/Aether Currents/The Dravanian Hinterlands/1963_Taking Stock.json index 338a7da49..848be8ee6 100644 --- a/QuestPaths/3.x - Heavensward/Aether Currents/The Dravanian Hinterlands/1963_Taking Stock.json +++ b/QuestPaths/3.x - Heavensward/Aether Currents/The Dravanian Hinterlands/1963_Taking Stock.json @@ -72,17 +72,14 @@ "Steps": [ { "Position": { - "X": -403.42465, - "Y": 154.8542, - "Z": 82.59637 + "X": -346.407, + "Y": 152.32855, + "Z": 86.98739 }, "TerritoryId": 399, - "InteractionType": "Combat", - "EnemySpawnType": "AutoOnEnterArea", - "KillEnemyDataIds": [ - 5042 - ], - "CombatDelaySecondsAtStart": 1 + "InteractionType": "WalkTo", + "Mount": false, + "Sprint": false }, { "DataId": 2005885, @@ -92,7 +89,8 @@ "Z": 82.84119 }, "TerritoryId": 399, - "InteractionType": "Interact" + "InteractionType": "Interact", + "DelaySecondsAtStart": 5 } ] }, -- 2.45.2 From 5bc0d4d80e774b1723d8c6aebc333854eb8a86ff Mon Sep 17 00:00:00 2001 From: Liza Date: Thu, 10 Oct 2024 07:40:03 +0000 Subject: [PATCH 106/448] Fix illegal file name on Windows --- ...ration: Reactivation.json => 4500_Operation Reactivation.json} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename QuestPaths/6.x - Endwalker/Side Quests/Garlemald/{4500_Operation: Reactivation.json => 4500_Operation Reactivation.json} (100%) diff --git a/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4500_Operation: Reactivation.json b/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4500_Operation Reactivation.json similarity index 100% rename from QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4500_Operation: Reactivation.json rename to QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4500_Operation Reactivation.json -- 2.45.2 From e5c49c35b8e10336f099ce7f280351f4528da99e Mon Sep 17 00:00:00 2001 From: kaiser Date: Fri, 11 Oct 2024 19:58:18 +1100 Subject: [PATCH 107/448] feat: Allied society quest Lopporits. --- .../4692_Underneath the Starry Lights.json | 52 +++++++++++++++++-- 1 file changed, 49 insertions(+), 3 deletions(-) diff --git a/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Dailies/4692_Underneath the Starry Lights.json b/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Dailies/4692_Underneath the Starry Lights.json index d731dcbc4..353bf2459 100644 --- a/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Dailies/4692_Underneath the Starry Lights.json +++ b/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Dailies/4692_Underneath the Starry Lights.json @@ -1,7 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "liza", - "Disabled": true, + "Author": "Kaiser", "QuestSequence": [ { "Sequence": 0, @@ -30,11 +29,43 @@ { "Sequence": 1, "Steps": [ + { + "DataId": 1044569, + "Position": { + "X": -385.6718, + "Y": -151.67168, + "Z": -261.28027 + }, + "TerritoryId": 959, + "InteractionType": "Interact", + "AetheryteShortcut": "Mare Lamentorum - Bestways Burrow", + "StopDistance": 5, + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": -385.6718, + "Y": -151.67168, + "Z": -261.28027 + }, + "MaximumDistance": 30, + "TerritoryId": 959 + } + } + } + } ] }, { "Sequence": 255, "Steps": [ + { + "TerritoryId": 959, + "InteractionType": "Craft", + "ItemId": 38861, + "ItemCount": 2 + }, { "Position": { "X": -201.42024, @@ -42,7 +73,22 @@ "Z": -273.68756 }, "TerritoryId": 959, - "InteractionType": "WalkTo" + "InteractionType": "WalkTo", + "AetheryteShortcut": "Mare Lamentorum - Bestways Burrow", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": -201.42024, + "Y": -49.149708, + "Z": -273.68756 + }, + "MaximumDistance": 100, + "TerritoryId": 959 + } + } + } }, { "DataId": 1044403, -- 2.45.2 From 5f95e5aaac9b331adf978827386d034513dab028 Mon Sep 17 00:00:00 2001 From: kaiser Date: Fri, 11 Oct 2024 20:00:18 +1100 Subject: [PATCH 108/448] chore: BoM --- .../Loporrits/Dailies/4692_Underneath the Starry Lights.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Dailies/4692_Underneath the Starry Lights.json b/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Dailies/4692_Underneath the Starry Lights.json index 353bf2459..5d1dfec06 100644 --- a/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Dailies/4692_Underneath the Starry Lights.json +++ b/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Dailies/4692_Underneath the Starry Lights.json @@ -1,4 +1,4 @@ -{ +{ "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "Kaiser", "QuestSequence": [ -- 2.45.2 From 569261c04148c5f43df9654f2ceae886b40ec7aa Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Fri, 11 Oct 2024 16:26:08 +0200 Subject: [PATCH 109/448] Hide ActionManager info in quest window --- .../QuestComponents/CreationUtilsComponent.cs | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/Questionable/Windows/QuestComponents/CreationUtilsComponent.cs b/Questionable/Windows/QuestComponents/CreationUtilsComponent.cs index d1db774f2..e7b6c8616 100644 --- a/Questionable/Windows/QuestComponents/CreationUtilsComponent.cs +++ b/Questionable/Windows/QuestComponents/CreationUtilsComponent.cs @@ -157,14 +157,17 @@ internal sealed class CreationUtilsComponent } #endif -#if true - unsafe +#if false + if (_configuration.Advanced.AdditionalStatusInformation) { - var actionManager = ActionManager.Instance(); - ImGui.Text( - $"A1: {actionManager->CastActionId} ({actionManager->LastUsedActionSequence} → {actionManager->LastHandledActionSequence})"); - ImGui.Text($"A2: {actionManager->CastTimeElapsed} / {actionManager->CastTimeTotal}"); - ImGui.Text($"{_questController.TaskQueue.CurrentTaskExecutor?.ProgressContext}"); + unsafe + { + var actionManager = ActionManager.Instance(); + ImGui.Text( + $"A1: {actionManager->CastActionId} ({actionManager->LastUsedActionSequence} → {actionManager->LastHandledActionSequence})"); + ImGui.Text($"A2: {actionManager->CastTimeElapsed} / {actionManager->CastTimeTotal}"); + ImGui.Text($"{_questController.TaskQueue.CurrentTaskExecutor?.ProgressContext}"); + } } #endif -- 2.45.2 From 11f901d60fd8a6ea37b6a8df0209ced15f9332dc Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Fri, 11 Oct 2024 21:30:54 +0200 Subject: [PATCH 110/448] Add some delay to chat messages in 'Unto the Truth' --- .../MSQ/B-Il Mheg/3310_Unto the Truth.json | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/QuestPaths/5.x - Shadowbringers/MSQ/B-Il Mheg/3310_Unto the Truth.json b/QuestPaths/5.x - Shadowbringers/MSQ/B-Il Mheg/3310_Unto the Truth.json index 2f4410b7f..bfc0517a6 100644 --- a/QuestPaths/5.x - Shadowbringers/MSQ/B-Il Mheg/3310_Unto the Truth.json +++ b/QuestPaths/5.x - Shadowbringers/MSQ/B-Il Mheg/3310_Unto the Truth.json @@ -49,7 +49,8 @@ "InteractionType": "Say", "ChatMessage": { "Key": "TEXT_LUCKMB109_03310_SYSTEM_000_060" - } + }, + "DelaySecondsAtStart": 6 } ] }, @@ -67,7 +68,8 @@ "InteractionType": "Say", "ChatMessage": { "Key": "TEXT_LUCKMB109_03310_SYSTEM_000_070" - } + }, + "DelaySecondsAtStart": 8 } ] }, -- 2.45.2 From 4c2639ee9166e96e7095354e11b6cf9d4e304ec2 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sat, 12 Oct 2024 15:59:21 +0200 Subject: [PATCH 111/448] Make Comment field required for manual interactions --- .../Kojin/Story/2974_Under Wraps.json | 6 +++-- .../Ultima Thule/4354_Combat Evolved.json | 2 +- ...4_Put Your Plasma Where Your Mouth Is.json | 5 ++-- QuestPaths/quest-v1.json | 24 +++++++++++++++++++ Questionable/Controller/QuestRegistry.cs | 2 +- Questionable/Model/IQuestInfo.cs | 9 +++++++ 6 files changed, 42 insertions(+), 6 deletions(-) diff --git a/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Story/2974_Under Wraps.json b/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Story/2974_Under Wraps.json index 9da1c6c87..dd7b9ed12 100644 --- a/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Story/2974_Under Wraps.json +++ b/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Story/2974_Under Wraps.json @@ -53,7 +53,8 @@ }, "TerritoryId": 614, "InteractionType": "Snipe", - "Fly": true + "Fly": true, + "Comment": "Snipe Namazu" } ] }, @@ -69,7 +70,8 @@ }, "TerritoryId": 614, "InteractionType": "Snipe", - "Fly": true + "Fly": true, + "Comment": "Snipe Namazu" } ] }, diff --git a/QuestPaths/6.x - Endwalker/Aether Currents/Ultima Thule/4354_Combat Evolved.json b/QuestPaths/6.x - Endwalker/Aether Currents/Ultima Thule/4354_Combat Evolved.json index 752ec884e..5b8449c00 100644 --- a/QuestPaths/6.x - Endwalker/Aether Currents/Ultima Thule/4354_Combat Evolved.json +++ b/QuestPaths/6.x - Endwalker/Aether Currents/Ultima Thule/4354_Combat Evolved.json @@ -51,7 +51,7 @@ }, "StopDistance": 0.5, "TerritoryId": 960, - "InteractionType": "WaitForManualProgress", + "InteractionType": "Combat", "EnemySpawnType": "AutoOnEnterArea", "KillEnemyDataIds": [ 14044 diff --git a/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4234_Put Your Plasma Where Your Mouth Is.json b/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4234_Put Your Plasma Where Your Mouth Is.json index 86f427054..52b9b801c 100644 --- a/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4234_Put Your Plasma Where Your Mouth Is.json +++ b/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4234_Put Your Plasma Where Your Mouth Is.json @@ -45,7 +45,8 @@ "Z": -296.37604 }, "TerritoryId": 958, - "InteractionType": "Interact" + "InteractionType": "Snipe", + "Comment": "Snipe Magitek Colossi" } ] }, @@ -60,7 +61,7 @@ "Z": -299.36682 }, "TerritoryId": 958, - "InteractionType": "Snipe" + "InteractionType": "Interact" } ] }, diff --git a/QuestPaths/quest-v1.json b/QuestPaths/quest-v1.json index 3fe60751f..aa74871eb 100644 --- a/QuestPaths/quest-v1.json +++ b/QuestPaths/quest-v1.json @@ -1275,6 +1275,30 @@ "ItemsToGather" ] } + }, + { + "if": { + "properties": { + "InteractionType": { + "anyOf": [ + { + "const": "WaitForManualProgress" + }, + { + "const": "Instruction" + }, + { + "const": "Snipe" + } + ] + } + } + }, + "then": { + "required": [ + "Comment" + ] + } } ] } diff --git a/Questionable/Controller/QuestRegistry.cs b/Questionable/Controller/QuestRegistry.cs index 724acaf4c..c948abe23 100644 --- a/Questionable/Controller/QuestRegistry.cs +++ b/Questionable/Controller/QuestRegistry.cs @@ -144,7 +144,7 @@ internal sealed class QuestRegistry private void ValidateQuests() { - _questValidator.Validate(_quests.Values.Where(x => x.Source != Quest.ESource.Assembly)); + _questValidator.Validate(_quests.Values.Where(x => x.Source != Quest.ESource.Assembly).ToList()); } private void LoadQuestFromStream(string fileName, Stream stream, Quest.ESource source) diff --git a/Questionable/Model/IQuestInfo.cs b/Questionable/Model/IQuestInfo.cs index d2c0e3861..143f60461 100644 --- a/Questionable/Model/IQuestInfo.cs +++ b/Questionable/Model/IQuestInfo.cs @@ -25,5 +25,14 @@ internal interface IQuestInfo public string SimplifiedName => Name .Replace(".", "", StringComparison.Ordinal) + .Replace("*", "", StringComparison.Ordinal) + .Replace("\"", "", StringComparison.Ordinal) + .Replace("/", "", StringComparison.Ordinal) + .Replace("\\", "", StringComparison.Ordinal) + .Replace("<", "", StringComparison.Ordinal) + .Replace(">", "", StringComparison.Ordinal) + .Replace("|", "", StringComparison.Ordinal) + .Replace(":", "", StringComparison.Ordinal) + .Replace("?", "", StringComparison.Ordinal) .TrimStart(SeIconChar.QuestSync.ToIconChar(), SeIconChar.QuestRepeatable.ToIconChar(), ' '); } -- 2.45.2 From 3379458385557864dfcd0c266c9b336c43dcde25 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sat, 12 Oct 2024 16:22:45 +0200 Subject: [PATCH 112/448] Minor adjustments to Garlemald paths --- .../Garlemald/4217_Armored Up.json | 50 +++++-- .../4219_Your Inventory Is Not Full.json | 34 +++-- .../Garlemald/4221_Heroes All.json | 10 +- .../Garlemald/4223_Bear Baiting.json | 10 +- .../Garlemald/4224_Under Lock and Code.json | 36 +++--- .../4225_And Then a Hero Comes Along.json | 34 +++-- .../4229_Brick by Brick, Tank by Tank.json | 11 +- .../Garlemald/4231_Some Like It Hot.json | 56 ++++++-- .../Garlemald/4235_The Hero Never Bombs.json | 10 +- .../4237_Ordnance Cleanup Committee.json | 122 ++++++++++++++---- .../Garlemald/4499_Camp Broken Engines.json | 3 +- .../4500_Operation Reactivation.json | 3 +- .../Garlemald/4503_Longing for Home.json | 3 +- .../4504_Palatial Possibilities.json | 3 +- .../Garlemald/4505_Mum Is the Word.json | 4 +- .../Garlemald/4506_Who Is Your Daddy.json | 1 + .../CombatModules/Mount128Module.cs | 2 +- 17 files changed, 288 insertions(+), 104 deletions(-) diff --git a/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4217_Armored Up.json b/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4217_Armored Up.json index b9a1da6a9..809210a0e 100644 --- a/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4217_Armored Up.json +++ b/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4217_Armored Up.json @@ -44,19 +44,22 @@ "Y": -18.777306, "Z": 527.2946 }, + "StopDistance": 0.5, "TerritoryId": 958, - "InteractionType": "WaitForManualProgress", - "CompletionQuestVariablesFlags": [ - null, - null, - null, - null, - null, - 128 + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [ + 14107 ], - "Comment": "Use the mount's abilities to kill the drones.", - "$.0": "0 0 0 0 0 0 -> 16 64 0 0 0 128", - "$.1": "can't find any currently extant method of automating this - could add the actions, but it's combat with the actions specifically, repeat use on targets" + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ], + "$.0": "0 0 0 0 0 0 -> 16 64 0 0 0 128" }, { "Position": { @@ -64,9 +67,21 @@ "Y": -18.937208, "Z": 338.0957 }, + "StopDistance": 0.5, "TerritoryId": 958, - "InteractionType": "WaitForManualProgress", - "Comment": "Use the mount's abilities to kill the drones." + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [ + 14107 + ], + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] } ] }, @@ -74,6 +89,12 @@ "Sequence": 255, "Steps": [ { + "Position": { + "X": 135.85095, + "Y": -17.135998, + "Z": 567.8645 + }, + "StopDistance": 2000, "TerritoryId": 958, "InteractionType": "None", "Mount": false @@ -87,7 +108,8 @@ }, "TerritoryId": 958, "InteractionType": "CompleteQuest", - "Fly": true + "Fly": true, + "NextQuestId": 4218 } ] } diff --git a/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4219_Your Inventory Is Not Full.json b/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4219_Your Inventory Is Not Full.json index 12e6840bb..f477359f2 100644 --- a/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4219_Your Inventory Is Not Full.json +++ b/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4219_Your Inventory Is Not Full.json @@ -30,12 +30,12 @@ "TerritoryId": 958, "InteractionType": "Interact", "CompletionQuestVariablesFlags": [ - null, - 1, - null, - null, - null, - 128 + null, + null, + null, + null, + null, + 128 ], "$": "0 0 0 0 0 0 -> 16 1 0 0 0 128" }, @@ -49,12 +49,12 @@ "TerritoryId": 958, "InteractionType": "Interact", "CompletionQuestVariablesFlags": [ - null, - 16, - null, - null, - null, - 32 + null, + null, + null, + null, + null, + 32 ], "$": "16 1 0 0 0 128 -> 32 17 0 0 0 160" }, @@ -67,7 +67,15 @@ }, "TerritoryId": 958, "InteractionType": "Interact", - "$": "32 17 0 0 0 160 -> 0 0 0 0 0 0" + "$": "32 17 0 0 0 160 -> 0 0 0 0 0 0", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] } ] }, diff --git a/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4221_Heroes All.json b/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4221_Heroes All.json index e80956459..09c425b01 100644 --- a/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4221_Heroes All.json +++ b/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4221_Heroes All.json @@ -67,7 +67,15 @@ }, "TerritoryId": 958, "InteractionType": "Interact", - "$": "33 1 16 0 0 192 -> 0 0 0 0 0 0" + "$": "33 1 16 0 0 192 -> 0 0 0 0 0 0", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] } ] }, diff --git a/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4223_Bear Baiting.json b/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4223_Bear Baiting.json index 062dcd91e..ded2bfd60 100644 --- a/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4223_Bear Baiting.json +++ b/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4223_Bear Baiting.json @@ -75,7 +75,15 @@ "KillEnemyDataIds": [ 14104 ], - "$": "33 16 16 0 0 192 -> 0 0 0 0 0 0" + "$": "33 16 16 0 0 192 -> 0 0 0 0 0 0", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] } ] }, diff --git a/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4224_Under Lock and Code.json b/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4224_Under Lock and Code.json index 16c5b261d..81796e0f0 100644 --- a/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4224_Under Lock and Code.json +++ b/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4224_Under Lock and Code.json @@ -45,12 +45,12 @@ "TerritoryId": 958, "InteractionType": "Interact", "CompletionQuestVariablesFlags": [ - null, - 128, - null, - null, - null, - 64 + null, + null, + null, + null, + null, + 64 ], "$": "0 0 0 0 0 0 -> 0 128 0 0 0 64" }, @@ -64,12 +64,12 @@ "TerritoryId": 958, "InteractionType": "Interact", "CompletionQuestVariablesFlags": [ - null, - 64, - null, - null, - null, - 32 + null, + null, + null, + null, + null, + 32 ], "$": "0 128 0 0 0 64 -> 0 192 0 0 0 96" }, @@ -83,12 +83,12 @@ "TerritoryId": 958, "InteractionType": "Interact", "CompletionQuestVariablesFlags": [ - null, - 32, - null, - null, - null, - 16 + null, + null, + null, + null, + null, + 16 ], "$": "0 192 0 0 0 96 -> 0 224 0 0 0 112" }, diff --git a/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4225_And Then a Hero Comes Along.json b/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4225_And Then a Hero Comes Along.json index 03f41e4ad..db8d12479 100644 --- a/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4225_And Then a Hero Comes Along.json +++ b/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4225_And Then a Hero Comes Along.json @@ -48,12 +48,12 @@ ], "Fly": true, "CompletionQuestVariablesFlags": [ - null, - null, - null, - null, - null, - 64 + null, + null, + null, + null, + null, + 64 ], "$": "0 0 0 0 0 0 -> 0 0 0 128 0 64" }, @@ -74,12 +74,12 @@ } ], "CompletionQuestVariablesFlags": [ - null, - null, - null, - null, - null, - 32 + null, + null, + null, + null, + null, + 32 ], "$": "0 0 0 128 0 64 -> 0 0 0 192 0 96" }, @@ -91,7 +91,15 @@ "Z": -292.98853 }, "TerritoryId": 958, - "InteractionType": "Interact" + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] } ] }, diff --git a/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4229_Brick by Brick, Tank by Tank.json b/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4229_Brick by Brick, Tank by Tank.json index b9922655e..2532ec56a 100644 --- a/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4229_Brick by Brick, Tank by Tank.json +++ b/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4229_Brick by Brick, Tank by Tank.json @@ -72,6 +72,7 @@ }, "TerritoryId": 958, "InteractionType": "Interact", + "Mount": true, "CompletionQuestVariablesFlags": [ null, null, @@ -91,7 +92,15 @@ }, "TerritoryId": 958, "InteractionType": "Interact", - "$": "49 16 16 0 0 224 -> 0 16 0 0 0 0" + "$": "49 16 16 0 0 224 -> 0 16 0 0 0 0", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 16 + ] } ] }, diff --git a/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4231_Some Like It Hot.json b/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4231_Some Like It Hot.json index 48e29f164..f1467906e 100644 --- a/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4231_Some Like It Hot.json +++ b/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4231_Some Like It Hot.json @@ -27,6 +27,28 @@ { "Sequence": 1, "Steps": [ + { + "Position": { + "X": 545.40717, + "Y": -36.616177, + "Z": -267.17505 + }, + "TerritoryId": 958, + "InteractionType": "WalkTo", + "SkipConditions": { + "StepIf": { + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + } + }, + "$": "Without this step, it'll interact with the NPC in the wagon through the wall" + }, { "DataId": 1037766, "Position": { @@ -37,12 +59,12 @@ "TerritoryId": 958, "InteractionType": "Interact", "CompletionQuestVariablesFlags": [ - null, - null, - null, - null, - null, - 64 + null, + null, + null, + null, + null, + 64 ], "$": "0 0 0 0 0 0 -> 1 32 0 0 0 64" }, @@ -63,12 +85,12 @@ } ], "CompletionQuestVariablesFlags": [ - null, - null, - null, - null, - null, - 128 + null, + null, + null, + null, + null, + 128 ], "$": "1 32 0 0 0 64 -> 2 16 0 0 0 192" }, @@ -80,7 +102,15 @@ "Z": -175.21942 }, "TerritoryId": 958, - "InteractionType": "Interact" + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] } ] }, diff --git a/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4235_The Hero Never Bombs.json b/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4235_The Hero Never Bombs.json index 5ff36d18c..3b373719a 100644 --- a/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4235_The Hero Never Bombs.json +++ b/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4235_The Hero Never Bombs.json @@ -81,7 +81,15 @@ }, "TerritoryId": 958, "InteractionType": "UseItem", - "ItemId": 2003210 + "ItemId": 2003210, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] } ] }, diff --git a/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4237_Ordnance Cleanup Committee.json b/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4237_Ordnance Cleanup Committee.json index 44a0d55b8..0a4d39509 100644 --- a/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4237_Ordnance Cleanup Committee.json +++ b/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4237_Ordnance Cleanup Committee.json @@ -20,6 +20,29 @@ { "Sequence": 1, "Steps": [ + { + "Position": { + "X": -189.97284, + "Y": 15.907461, + "Z": -169.83481 + }, + "TerritoryId": 958, + "InteractionType": "WalkTo", + "Fly": true, + "SkipConditions": { + "StepIf": { + "Flying": "Locked", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + } + } + }, { "DataId": 2012054, "Position": { @@ -30,17 +53,15 @@ "TerritoryId": 958, "InteractionType": "Interact", "CompletionQuestVariablesFlags": [ - null, - null, - null, - null, - null, - 128 + null, + null, + null, + null, + null, + 128 ], "$.0": "0 0 0 0 0 0 -> 1 16 0 0 0 128", - "AetheryteShortcut": "Garlemald - Tertium", - "Fly": true, - "$.1": "flight path gets stuck from camp BG, not so from tertium; walkto would probably be cleaner but this seems intuitive." + "Fly": true }, { "DataId": 2012055, @@ -52,15 +73,61 @@ "TerritoryId": 958, "InteractionType": "Interact", "CompletionQuestVariablesFlags": [ - null, - null, - null, - null, - null, - 64 + null, + null, + null, + null, + null, + 64 ], + "Fly": true, "$": "1 16 0 0 0 128 -> 2 32 0 0 0 192" }, + { + "Position": { + "X": -223.12543, + "Y": 10.826223, + "Z": -368.8611 + }, + "TerritoryId": 958, + "InteractionType": "WalkTo", + "SkipConditions": { + "StepIf": { + "Flying": "Unlocked", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + } + } + }, + { + "Position": { + "X": -140.08179, + "Y": 16.226164, + "Z": -310.9478 + }, + "TerritoryId": 958, + "InteractionType": "WalkTo", + "Fly": true, + "SkipConditions": { + "StepIf": { + "Flying": "Locked", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + } + } + }, { "DataId": 2012056, "Position": { @@ -71,15 +138,15 @@ "TerritoryId": 958, "InteractionType": "Interact", "CompletionQuestVariablesFlags": [ - null, - null, - null, - null, - null, - 32 + null, + null, + null, + null, + null, + 32 ], "$.0": "2 32 0 0 0 192 -> 3 48 0 0 0 224", - "$.1": "fly also gets stuck here" + "Fly": true }, { "DataId": 2012057, @@ -88,10 +155,19 @@ "Y": 16.494995, "Z": -413.016 }, + "StopDistance": 1, "TerritoryId": 958, "InteractionType": "Interact", "$.0": "3 48 0 0 0 224 -> 0 64 0 0 0 0", - "$.1": "no fly here, tries and fails to land on the railing: can't interact while flying" + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 16 + ] } ] }, diff --git a/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4499_Camp Broken Engines.json b/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4499_Camp Broken Engines.json index 0001b8fc8..58860c932 100644 --- a/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4499_Camp Broken Engines.json +++ b/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4499_Camp Broken Engines.json @@ -53,7 +53,8 @@ }, "TerritoryId": 958, "InteractionType": "CompleteQuest", - "AetheryteShortcut": "Garlemald - Camp Broken Glass" + "AetheryteShortcut": "Garlemald - Camp Broken Glass", + "NextQuestId": 4500 } ] } diff --git a/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4500_Operation Reactivation.json b/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4500_Operation Reactivation.json index 1332dffdf..b967ad00e 100644 --- a/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4500_Operation Reactivation.json +++ b/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4500_Operation Reactivation.json @@ -71,7 +71,8 @@ "Prompt": "TEXT_AKTKZC103_04500_Q2_000_000", "Answer": "TEXT_AKTKZC103_04500_A2_000_001" } - ] + ], + "NextQuestId": 4501 } ] } diff --git a/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4503_Longing for Home.json b/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4503_Longing for Home.json index 60c26c491..3c5de1a74 100644 --- a/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4503_Longing for Home.json +++ b/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4503_Longing for Home.json @@ -83,7 +83,8 @@ }, "TerritoryId": 958, "InteractionType": "CompleteQuest", - "AetheryteShortcut": "Garlemald - Tertium" + "AetheryteShortcut": "Garlemald - Tertium", + "NextQuestId": 4504 } ] } diff --git a/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4504_Palatial Possibilities.json b/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4504_Palatial Possibilities.json index 47cf187fe..7c9f11c69 100644 --- a/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4504_Palatial Possibilities.json +++ b/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4504_Palatial Possibilities.json @@ -77,7 +77,8 @@ "Prompt": "TEXT_AKTKZD103_04504_Q2_000_000", "Answer": "TEXT_AKTKZD103_04504_A2_000_001" } - ] + ], + "NextQuestId": 4505 } ] } diff --git a/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4505_Mum Is the Word.json b/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4505_Mum Is the Word.json index a9ceee1b7..6b3722c55 100644 --- a/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4505_Mum Is the Word.json +++ b/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4505_Mum Is the Word.json @@ -12,6 +12,7 @@ "Y": 23.164677, "Z": -415.36584 }, + "StopDistance": 7, "TerritoryId": 958, "InteractionType": "AcceptQuest", "Fly": true, @@ -86,7 +87,8 @@ "Answer": "TEXT_AKTKZD104_04505_A1_000_002" } ], - "AetheryteShortcut": "Garlemald - Tertium" + "AetheryteShortcut": "Garlemald - Tertium", + "NextQuestId": 4506 } ] } diff --git a/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4506_Who Is Your Daddy.json b/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4506_Who Is Your Daddy.json index 63c4f8dff..34d24b885 100644 --- a/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4506_Who Is Your Daddy.json +++ b/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4506_Who Is Your Daddy.json @@ -12,6 +12,7 @@ "Y": -36.65, "Z": -132.64673 }, + "StopDistance": 5, "TerritoryId": 958, "InteractionType": "AcceptQuest", "DialogueChoices": [ diff --git a/Questionable/Controller/CombatModules/Mount128Module.cs b/Questionable/Controller/CombatModules/Mount128Module.cs index 39ef13cc3..c2f1a6f88 100644 --- a/Questionable/Controller/CombatModules/Mount128Module.cs +++ b/Questionable/Controller/CombatModules/Mount128Module.cs @@ -47,5 +47,5 @@ internal sealed class Mount128Module : ICombatModule { } - public bool CanAttack(IBattleNpc target) => target.DataId is 7504 or 7505; + public bool CanAttack(IBattleNpc target) => target.DataId is 7504 or 7505 or 14107; } -- 2.45.2 From 77a06bc40105ccffd4d6c72eea11008c67abdcba Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sat, 12 Oct 2024 18:17:16 +0200 Subject: [PATCH 113/448] Minor adjustments to AST quests --- .../AST/2012_Stairway to the Heavens.json | 29 +++-- .../AST/2013_Fortune Favors the Bole.json | 8 +- .../AST/2014_Hanging in the Balance.json | 5 +- .../AST/2015_A Lesson in Patience.json | 13 +- .../AST/2016_Slings and Arrows.json | 120 +++++++----------- .../Class Quests/AST/2017_Ewer Right.json | 16 +-- .../AST/2018_Loved by the Sun.json | 13 +- .../AST/2019_Spearheading Initiatives.json | 72 +---------- .../AST/2020_Sharlayan Ascending.json | 13 +- .../Class Quests/AST/2021_Empty Nest.json | 13 +- .../Class Quests/AST/2022_Conviction.json | 63 +++++---- .../AST/2023_Feather in the Cap.json | 66 +++++----- .../Class Quests/AST/2024_Trumped.json | 13 +- .../AST/2025_The Hands of Fate.json | 16 +-- .../AST/2123_What's Your Sign.json | 47 +++++++ .../AST/2411_Come Rain or Shrine.json | 3 +- .../Class Quests/AST/2413_Foxfire.json | 4 +- 17 files changed, 213 insertions(+), 301 deletions(-) create mode 100644 QuestPaths/3.x - Heavensward/Class Quests/AST/2123_What's Your Sign.json diff --git a/QuestPaths/3.x - Heavensward/Class Quests/AST/2012_Stairway to the Heavens.json b/QuestPaths/3.x - Heavensward/Class Quests/AST/2012_Stairway to the Heavens.json index 8d76255ee..3c0f7158e 100644 --- a/QuestPaths/3.x - Heavensward/Class Quests/AST/2012_Stairway to the Heavens.json +++ b/QuestPaths/3.x - Heavensward/Class Quests/AST/2012_Stairway to the Heavens.json @@ -22,15 +22,10 @@ ], "SkipConditions": { "AetheryteShortcutIf": { - "NearPosition": { - "Position": { - "X": 202.38037, - "Y": -5.3999662, - "Z": -58.9151 - }, - "TerritoryId": 419, - "MaximumDistance": 100 - } + "InSameTerritory": true, + "InTerritory": [ + 419 + ] } } } @@ -68,7 +63,7 @@ "SkipConditions": { "StepIf": { "CompletionQuestVariablesFlags": [ - 1, + null, null, null, null, @@ -91,12 +86,12 @@ "SkipConditions": { "StepIf": { "CompletionQuestVariablesFlags": [ - 2, null, null, null, null, - null + null, + 64 ] } } @@ -110,7 +105,15 @@ }, "TerritoryId": 419, "InteractionType": "Interact", - "StopDistance": 4 + "StopDistance": 4, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] } ] }, diff --git a/QuestPaths/3.x - Heavensward/Class Quests/AST/2013_Fortune Favors the Bole.json b/QuestPaths/3.x - Heavensward/Class Quests/AST/2013_Fortune Favors the Bole.json index dbdcf21de..044fc6656 100644 --- a/QuestPaths/3.x - Heavensward/Class Quests/AST/2013_Fortune Favors the Bole.json +++ b/QuestPaths/3.x - Heavensward/Class Quests/AST/2013_Fortune Favors the Bole.json @@ -19,10 +19,12 @@ "AetheryteShortcut": "South Shroud - Quarrymill", "SkipConditions": { "AetheryteShortcutIf": { - "InSameTerritory": true + "InSameTerritory": true, + "InTerritory": [ + 419 + ] } - }, - "Comment": "This quest have solo duty!" + } } ] }, diff --git a/QuestPaths/3.x - Heavensward/Class Quests/AST/2014_Hanging in the Balance.json b/QuestPaths/3.x - Heavensward/Class Quests/AST/2014_Hanging in the Balance.json index cf954642f..e5c48b7e2 100644 --- a/QuestPaths/3.x - Heavensward/Class Quests/AST/2014_Hanging in the Balance.json +++ b/QuestPaths/3.x - Heavensward/Class Quests/AST/2014_Hanging in the Balance.json @@ -22,7 +22,10 @@ ], "SkipConditions": { "AetheryteShortcutIf": { - "InSameTerritory": true + "InSameTerritory": true, + "InTerritory": [ + 419 + ] } } } diff --git a/QuestPaths/3.x - Heavensward/Class Quests/AST/2015_A Lesson in Patience.json b/QuestPaths/3.x - Heavensward/Class Quests/AST/2015_A Lesson in Patience.json index a1e835e08..cdc2fc0c6 100644 --- a/QuestPaths/3.x - Heavensward/Class Quests/AST/2015_A Lesson in Patience.json +++ b/QuestPaths/3.x - Heavensward/Class Quests/AST/2015_A Lesson in Patience.json @@ -22,15 +22,10 @@ ], "SkipConditions": { "AetheryteShortcutIf": { - "NearPosition": { - "Position": { - "X": 202.38037, - "Y": -5.3999662, - "Z": -58.9151 - }, - "MaximumDistance": 100, - "TerritoryId": 419 - } + "InSameTerritory": true, + "InTerritory": [ + 419 + ] } } } diff --git a/QuestPaths/3.x - Heavensward/Class Quests/AST/2016_Slings and Arrows.json b/QuestPaths/3.x - Heavensward/Class Quests/AST/2016_Slings and Arrows.json index b1c0fbcdb..4e0e5b5e1 100644 --- a/QuestPaths/3.x - Heavensward/Class Quests/AST/2016_Slings and Arrows.json +++ b/QuestPaths/3.x - Heavensward/Class Quests/AST/2016_Slings and Arrows.json @@ -22,18 +22,12 @@ ], "SkipConditions": { "AetheryteShortcutIf": { - "NearPosition": { - "Position": { - "X": 199.93884, - "Y": -0.899981, - "Z": -48.722107 - }, - "MaximumDistance": 100, - "TerritoryId": 419 - } + "InSameTerritory": true, + "InTerritory": [ + 419 + ] } - }, - "Comment": "This quest have solo duty!" + } } ] }, @@ -121,11 +115,31 @@ }, "StepIf": { "CompletionQuestVariablesFlags": [ - 16, - 16, null, null, null, + null, + null, + 128 + ] + } + } + }, + { + "Position": { + "X": -2.1358607, + "Y": 45.631218, + "Z": -258.50027 + }, + "TerritoryId": 128, + "InteractionType": "WalkTo", + "AethernetShortcut": [ + "[Limsa Lominsa] Fishermens' Guild", + "[Limsa Lominsa] Marauders' Guild" + ], + "SkipConditions": { + "StepIf": { + "InTerritory": [ 128 ] } @@ -141,39 +155,14 @@ "TerritoryId": 128, "InteractionType": "Interact", "StopDistance": 5, - "AetheryteShortcut": "Limsa Lominsa", - "AethernetShortcut": [ - "[Limsa Lominsa] Fishermens' Guild", - "[Limsa Lominsa] Marauders' Guild" - ], - "SkipConditions": { - "AetheryteShortcutIf": { - "InSameTerritory": true - } - }, - "Comment": "You will probably need to do this manually navmesh doesn't work inside Coral Tower" - }, - { - "DataId": 1003282, - "Position": { - "X": -3.03656, - "Y": 48.168007, - "Z": -261.70752 - }, - "TerritoryId": 128, - "InteractionType": "Interact", - "StopDistance": 5, - "AetheryteShortcut": "Limsa Lominsa", - "AethernetShortcut": [ - "[Limsa Lominsa] Fishermens' Guild", - "[Limsa Lominsa] Marauders' Guild" - ], - "SkipConditions": { - "AetheryteShortcutIf": { - "InSameTerritory": true - } - }, - "Comment": "You will probably need to do this manually navmesh doesn't work inside Coral Tower" + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] }, { "DataId": 1002680, @@ -185,16 +174,14 @@ "TerritoryId": 128, "InteractionType": "Interact", "StopDistance": 5, - "AetheryteShortcut": "Limsa Lominsa", - "AethernetShortcut": [ - "[Limsa Lominsa] Aetheryte Plaza", - "[Limsa Lominsa] Marauders' Guild" - ], - "SkipConditions": { - "AetheryteShortcutIf": { - "InSameTerritory": true - } - } + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] } ] }, @@ -215,13 +202,7 @@ "AethernetShortcut": [ "[Limsa Lominsa] Aetheryte Plaza", "[Limsa Lominsa] Marauders' Guild" - ], - "SkipConditions": { - "AetheryteShortcutIf": { - "InSameTerritory": true - } - }, - "Comment": "Do it manually, navmesh can't get inside the building it seem.\nOtherwise it will run into wall." + ] } ] }, @@ -236,18 +217,7 @@ "Z": -160.47919 }, "TerritoryId": 128, - "InteractionType": "SinglePlayerDuty", - "StopDistance": 3, - "AetheryteShortcut": "Limsa Lominsa", - "AethernetShortcut": [ - "[Limsa Lominsa] Aetheryte Plaza", - "[Limsa Lominsa] Marauders' Guild" - ], - "SkipConditions": { - "AetheryteShortcutIf": { - "InSameTerritory": true - } - } + "InteractionType": "SinglePlayerDuty" } ] }, diff --git a/QuestPaths/3.x - Heavensward/Class Quests/AST/2017_Ewer Right.json b/QuestPaths/3.x - Heavensward/Class Quests/AST/2017_Ewer Right.json index 9ae1ef2bc..f239d318c 100644 --- a/QuestPaths/3.x - Heavensward/Class Quests/AST/2017_Ewer Right.json +++ b/QuestPaths/3.x - Heavensward/Class Quests/AST/2017_Ewer Right.json @@ -22,18 +22,12 @@ ], "SkipConditions": { "AetheryteShortcutIf": { - "NearPosition": { - "Position": { - "X": 202.38037, - "Y": -5.3999662, - "Z": -58.9151 - }, - "TerritoryId": 419, - "MaximumDistance": 100 - } + "InSameTerritory": true, + "InTerritory": [ + 419 + ] } - }, - "Comment": "This Quest have solo duty!" + } } ] }, diff --git a/QuestPaths/3.x - Heavensward/Class Quests/AST/2018_Loved by the Sun.json b/QuestPaths/3.x - Heavensward/Class Quests/AST/2018_Loved by the Sun.json index cd40495ff..53c9b3613 100644 --- a/QuestPaths/3.x - Heavensward/Class Quests/AST/2018_Loved by the Sun.json +++ b/QuestPaths/3.x - Heavensward/Class Quests/AST/2018_Loved by the Sun.json @@ -22,15 +22,10 @@ ], "SkipConditions": { "AetheryteShortcutIf": { - "NearPosition": { - "Position": { - "X": 202.38037, - "Y": -5.3999662, - "Z": -58.9151 - }, - "TerritoryId": 419, - "MaximumDistance": 100 - } + "InSameTerritory": true, + "InTerritory": [ + 419 + ] } } } diff --git a/QuestPaths/3.x - Heavensward/Class Quests/AST/2019_Spearheading Initiatives.json b/QuestPaths/3.x - Heavensward/Class Quests/AST/2019_Spearheading Initiatives.json index e64ab5ede..867d60e7f 100644 --- a/QuestPaths/3.x - Heavensward/Class Quests/AST/2019_Spearheading Initiatives.json +++ b/QuestPaths/3.x - Heavensward/Class Quests/AST/2019_Spearheading Initiatives.json @@ -22,18 +22,12 @@ ], "SkipConditions": { "AetheryteShortcutIf": { - "NearPosition": { - "Position": { - "X": 199.93884, - "Y": -0.899981, - "Z": -48.722107 - }, - "TerritoryId": 419, - "MaximumDistance": 100 - } + "InSameTerritory": true, + "InTerritory": [ + 419 + ] } - }, - "Comment": "This quest have solo duty!" + } } ] }, @@ -92,34 +86,6 @@ { "Sequence": 3, "Steps": [ - { - "DataId": 1014960, - "Position": { - "X": 262.83667, - "Y": 359.1351, - "Z": -688.3192 - }, - "TerritoryId": 155, - "InteractionType": "WalkTo", - "Fly": true, - "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", - "SkipConditions": { - "AetheryteShortcutIf": { - "InSameTerritory": true - }, - "StepIf": { - "NearPosition": { - "Position": { - "X": 262.83667, - "Y": 359.1351, - "Z": -688.3192 - }, - "MaximumDistance": 100, - "TerritoryId": 155 - } - } - } - }, { "DataId": 1014960, "Position": { @@ -142,34 +108,6 @@ { "Sequence": 4, "Steps": [ - { - "DataId": 1014960, - "Position": { - "X": 259.72375, - "Y": 359.09564, - "Z": -689.93665 - }, - "TerritoryId": 155, - "InteractionType": "WalkTo", - "Fly": true, - "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", - "SkipConditions": { - "AetheryteShortcutIf": { - "InSameTerritory": true - }, - "StepIf": { - "NearPosition": { - "Position": { - "X": 259.72375, - "Y": 359.09564, - "Z": -689.93665 - }, - "MaximumDistance": 100, - "TerritoryId": 155 - } - } - } - }, { "DataId": 1014961, "Position": { diff --git a/QuestPaths/3.x - Heavensward/Class Quests/AST/2020_Sharlayan Ascending.json b/QuestPaths/3.x - Heavensward/Class Quests/AST/2020_Sharlayan Ascending.json index 6ba00408a..278fcccdd 100644 --- a/QuestPaths/3.x - Heavensward/Class Quests/AST/2020_Sharlayan Ascending.json +++ b/QuestPaths/3.x - Heavensward/Class Quests/AST/2020_Sharlayan Ascending.json @@ -19,15 +19,10 @@ "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", "SkipConditions": { "AetheryteShortcutIf": { - "NearPosition": { - "Position": { - "X": 204.60815, - "Y": 307.87106, - "Z": 414.63342 - }, - "TerritoryId": 155, - "MaximumDistance": 5 - } + "InSameTerritory": true, + "InTerritory": [ + 419 + ] } } } diff --git a/QuestPaths/3.x - Heavensward/Class Quests/AST/2021_Empty Nest.json b/QuestPaths/3.x - Heavensward/Class Quests/AST/2021_Empty Nest.json index 03c2c710f..1d50e6b1a 100644 --- a/QuestPaths/3.x - Heavensward/Class Quests/AST/2021_Empty Nest.json +++ b/QuestPaths/3.x - Heavensward/Class Quests/AST/2021_Empty Nest.json @@ -22,15 +22,10 @@ ], "SkipConditions": { "AetheryteShortcutIf": { - "NearPosition": { - "Position": { - "X": 202.38037, - "Y": -5.3999662, - "Z": -58.9151 - }, - "TerritoryId": 419, - "MaximumDistance": 100 - } + "InSameTerritory": true, + "InTerritory": [ + 419 + ] } } } diff --git a/QuestPaths/3.x - Heavensward/Class Quests/AST/2022_Conviction.json b/QuestPaths/3.x - Heavensward/Class Quests/AST/2022_Conviction.json index 261f76a95..fa5702bba 100644 --- a/QuestPaths/3.x - Heavensward/Class Quests/AST/2022_Conviction.json +++ b/QuestPaths/3.x - Heavensward/Class Quests/AST/2022_Conviction.json @@ -22,15 +22,10 @@ ], "SkipConditions": { "AetheryteShortcutIf": { - "NearPosition": { - "Position": { - "X": 202.38037, - "Y": -5.3999662, - "Z": -58.9151 - }, - "TerritoryId": 419, - "MaximumDistance": 100 - } + "InSameTerritory": true, + "InTerritory": [ + 419 + ] } } } @@ -73,18 +68,14 @@ "InteractionType": "Action", "StopDistance": 4, "Action": "Aspected Benefic", - "SkipConditions": { - "StepIf": { - "CompletionQuestVariablesFlags": [ - 1, - null, - null, - null, - null, - 128 - ] - } - } + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] }, { "DataId": 1015171, @@ -97,18 +88,14 @@ "InteractionType": "Action", "StopDistance": 4, "Action": "Aspected Benefic", - "SkipConditions": { - "StepIf": { - "CompletionQuestVariablesFlags": [ - 2, - null, - null, - null, - null, - 128 - ] - } - } + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] }, { "DataId": 1015170, @@ -120,7 +107,15 @@ "TerritoryId": 397, "InteractionType": "Action", "StopDistance": 4, - "Action": "Aspected Benefic" + "Action": "Aspected Benefic", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] } ] }, diff --git a/QuestPaths/3.x - Heavensward/Class Quests/AST/2023_Feather in the Cap.json b/QuestPaths/3.x - Heavensward/Class Quests/AST/2023_Feather in the Cap.json index a27178275..d2ca071df 100644 --- a/QuestPaths/3.x - Heavensward/Class Quests/AST/2023_Feather in the Cap.json +++ b/QuestPaths/3.x - Heavensward/Class Quests/AST/2023_Feather in the Cap.json @@ -22,18 +22,12 @@ ], "SkipConditions": { "AetheryteShortcutIf": { - "NearPosition": { - "Position": { - "X": 202.38037, - "Y": -5.3999662, - "Z": -58.9151 - }, - "TerritoryId": 419, - "MaximumDistance": 100 - } + "InSameTerritory": true, + "InTerritory": [ + 419 + ] } - }, - "Comment": "This quest have solo duty!" + } } ] }, @@ -74,18 +68,14 @@ "InteractionType": "Action", "StopDistance": 4, "Action": "Aspected Benefic", - "SkipConditions": { - "StepIf": { - "CompletionQuestVariablesFlags": [ - 1, - null, - null, - null, - null, - 32 - ] - } - } + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] }, { "DataId": 1015092, @@ -98,18 +88,14 @@ "InteractionType": "Action", "StopDistance": 4, "Action": "Aspected Benefic", - "SkipConditions": { - "StepIf": { - "CompletionQuestVariablesFlags": [ - 2, - null, - null, - null, - null, - 128 - ] - } - } + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] }, { "DataId": 1015093, @@ -121,7 +107,15 @@ "TerritoryId": 398, "InteractionType": "Action", "StopDistance": 4, - "Action": "Aspected Benefic" + "Action": "Aspected Benefic", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] } ] }, diff --git a/QuestPaths/3.x - Heavensward/Class Quests/AST/2024_Trumped.json b/QuestPaths/3.x - Heavensward/Class Quests/AST/2024_Trumped.json index 8cd22a313..aaecc2f05 100644 --- a/QuestPaths/3.x - Heavensward/Class Quests/AST/2024_Trumped.json +++ b/QuestPaths/3.x - Heavensward/Class Quests/AST/2024_Trumped.json @@ -22,15 +22,10 @@ ], "SkipConditions": { "AetheryteShortcutIf": { - "NearPosition": { - "Position": { - "X": 202.38037, - "Y": -5.3999662, - "Z": -58.9151 - }, - "TerritoryId": 419, - "MaximumDistance": 100 - } + "InSameTerritory": true, + "InTerritory": [ + 419 + ] } } } diff --git a/QuestPaths/3.x - Heavensward/Class Quests/AST/2025_The Hands of Fate.json b/QuestPaths/3.x - Heavensward/Class Quests/AST/2025_The Hands of Fate.json index 08ae88de7..7a47af451 100644 --- a/QuestPaths/3.x - Heavensward/Class Quests/AST/2025_The Hands of Fate.json +++ b/QuestPaths/3.x - Heavensward/Class Quests/AST/2025_The Hands of Fate.json @@ -22,18 +22,12 @@ ], "SkipConditions": { "AetheryteShortcutIf": { - "NearPosition": { - "Position": { - "X": 202.38037, - "Y": -5.3999662, - "Z": -58.9151 - }, - "TerritoryId": 419, - "MaximumDistance": 100 - } + "InSameTerritory": true, + "InTerritory": [ + 419 + ] } - }, - "Comment": "This quest have solo duty!" + } } ] }, diff --git a/QuestPaths/3.x - Heavensward/Class Quests/AST/2123_What's Your Sign.json b/QuestPaths/3.x - Heavensward/Class Quests/AST/2123_What's Your Sign.json new file mode 100644 index 000000000..523b0758c --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Class Quests/AST/2123_What's Your Sign.json @@ -0,0 +1,47 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1012222, + "Position": { + "X": 202.38037, + "Y": -5.3999662, + "Z": -58.9151 + }, + "TerritoryId": 419, + "InteractionType": "AcceptQuest", + "StopDistance": 5, + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] Athenaeum Astrologicum" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 419 + ] + } + }, + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_JOBAST299_02123_Q1_000_000", + "Yes": true + }, + { + "Type": "YesNo", + "Prompt": "TEXT_JOBAST299_02123_Q2_000_000", + "Yes": true + } + ] + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Class Quests/AST/2411_Come Rain or Shrine.json b/QuestPaths/4.x - Stormblood/Class Quests/AST/2411_Come Rain or Shrine.json index 79ba0fdf2..95cbec5af 100644 --- a/QuestPaths/4.x - Stormblood/Class Quests/AST/2411_Come Rain or Shrine.json +++ b/QuestPaths/4.x - Stormblood/Class Quests/AST/2411_Come Rain or Shrine.json @@ -32,8 +32,7 @@ "MaximumDistance": 100 } } - }, - "Comment": "This quest have solo duty!" + } } ] }, diff --git a/QuestPaths/4.x - Stormblood/Class Quests/AST/2413_Foxfire.json b/QuestPaths/4.x - Stormblood/Class Quests/AST/2413_Foxfire.json index 1938bc52e..7fc5f03db 100644 --- a/QuestPaths/4.x - Stormblood/Class Quests/AST/2413_Foxfire.json +++ b/QuestPaths/4.x - Stormblood/Class Quests/AST/2413_Foxfire.json @@ -32,8 +32,7 @@ "MaximumDistance": 20 } } - }, - "Comment": "This quest have solo duty!" + } } ] }, @@ -49,7 +48,6 @@ }, "TerritoryId": 628, "InteractionType": "Interact", - "StopDistance": 5, "AetheryteShortcut": "Kugane", "SkipConditions": { "AetheryteShortcutIf": { -- 2.45.2 From 4f5721e67b12e2c15a9b0e1cde7d33404db06415 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sat, 12 Oct 2024 18:18:54 +0200 Subject: [PATCH 114/448] Minor adjustments to AST quests --- Directory.Build.targets | 2 +- .../Class Quests/AST/2019_Spearheading Initiatives.json | 3 +-- .../Class Quests/AST/2023_Feather in the Cap.json | 3 +-- .../Class Quests/AST/2025_The Hands of Fate.json | 3 +-- .../Class Quests/AST/2411_Come Rain or Shrine.json | 3 +-- QuestPaths/4.x - Stormblood/Class Quests/AST/2413_Foxfire.json | 3 +-- 6 files changed, 6 insertions(+), 11 deletions(-) diff --git a/Directory.Build.targets b/Directory.Build.targets index 590411dd5..5883b50c5 100644 --- a/Directory.Build.targets +++ b/Directory.Build.targets @@ -1,5 +1,5 @@ - 3.9 + 3.10 diff --git a/QuestPaths/3.x - Heavensward/Class Quests/AST/2019_Spearheading Initiatives.json b/QuestPaths/3.x - Heavensward/Class Quests/AST/2019_Spearheading Initiatives.json index 867d60e7f..3eca2030e 100644 --- a/QuestPaths/3.x - Heavensward/Class Quests/AST/2019_Spearheading Initiatives.json +++ b/QuestPaths/3.x - Heavensward/Class Quests/AST/2019_Spearheading Initiatives.json @@ -78,8 +78,7 @@ "TerritoryId": 155, "InteractionType": "SinglePlayerDuty", "StopDistance": 4, - "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", - "Comment": "Do the solo duty!" + "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead" } ] }, diff --git a/QuestPaths/3.x - Heavensward/Class Quests/AST/2023_Feather in the Cap.json b/QuestPaths/3.x - Heavensward/Class Quests/AST/2023_Feather in the Cap.json index d2ca071df..a53cd9890 100644 --- a/QuestPaths/3.x - Heavensward/Class Quests/AST/2023_Feather in the Cap.json +++ b/QuestPaths/3.x - Heavensward/Class Quests/AST/2023_Feather in the Cap.json @@ -160,8 +160,7 @@ "AetheryteShortcutIf": { "InSameTerritory": true } - }, - "Comment": "Do the solo duty!" + } } ] }, diff --git a/QuestPaths/3.x - Heavensward/Class Quests/AST/2025_The Hands of Fate.json b/QuestPaths/3.x - Heavensward/Class Quests/AST/2025_The Hands of Fate.json index 7a47af451..72c549eef 100644 --- a/QuestPaths/3.x - Heavensward/Class Quests/AST/2025_The Hands of Fate.json +++ b/QuestPaths/3.x - Heavensward/Class Quests/AST/2025_The Hands of Fate.json @@ -119,8 +119,7 @@ "AethernetShortcutIf": { "InSameTerritory": true } - }, - "Comment": "Do the Solo Duty!" + } } ] }, diff --git a/QuestPaths/4.x - Stormblood/Class Quests/AST/2411_Come Rain or Shrine.json b/QuestPaths/4.x - Stormblood/Class Quests/AST/2411_Come Rain or Shrine.json index 95cbec5af..71290a6dc 100644 --- a/QuestPaths/4.x - Stormblood/Class Quests/AST/2411_Come Rain or Shrine.json +++ b/QuestPaths/4.x - Stormblood/Class Quests/AST/2411_Come Rain or Shrine.json @@ -190,8 +190,7 @@ "AetheryteShortcutIf": { "InSameTerritory": true } - }, - "Comment": "Do the Solo duty!" + } } ] }, diff --git a/QuestPaths/4.x - Stormblood/Class Quests/AST/2413_Foxfire.json b/QuestPaths/4.x - Stormblood/Class Quests/AST/2413_Foxfire.json index 7fc5f03db..624cdfe59 100644 --- a/QuestPaths/4.x - Stormblood/Class Quests/AST/2413_Foxfire.json +++ b/QuestPaths/4.x - Stormblood/Class Quests/AST/2413_Foxfire.json @@ -105,8 +105,7 @@ "AetheryteShortcutIf": { "InSameTerritory": true } - }, - "Comment": "Do the solo Duty!" + } } ] }, -- 2.45.2 From 7a3bab3d51a1b83eb97f34c14be73a0a140f3f20 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sat, 12 Oct 2024 22:11:54 +0200 Subject: [PATCH 115/448] Experimentally handle item use in 'Strange Bedfellows' --- .../B-Garlemald/4393_Strange Bedfellows.json | 18 ++- QuestPaths/quest-v1.json | 19 +++ Questionable.Model/Questing/CombatItemUse.cs | 12 ++ .../CombatItemUseConditionConverter.cs | 12 ++ .../Questing/ECombatItemUseCondition.cs | 7 + Questionable.Model/Questing/QuestStep.cs | 1 + Questionable/Controller/CombatController.cs | 5 +- .../Controller/CombatModules/ICombatModule.cs | 4 +- .../Controller/CombatModules/ItemUseModule.cs | 142 ++++++++++++++++++ .../CombatModules/Mount128Module.cs | 4 +- .../RotationSolverRebornModule.cs | 21 ++- Questionable/Controller/MiniTaskController.cs | 2 +- .../Controller/Steps/Interactions/Combat.cs | 5 +- Questionable/QuestionablePlugin.cs | 1 + 14 files changed, 224 insertions(+), 29 deletions(-) create mode 100644 Questionable.Model/Questing/CombatItemUse.cs create mode 100644 Questionable.Model/Questing/Converter/CombatItemUseConditionConverter.cs create mode 100644 Questionable.Model/Questing/ECombatItemUseCondition.cs create mode 100644 Questionable/Controller/CombatModules/ItemUseModule.cs diff --git a/QuestPaths/6.x - Endwalker/MSQ/B-Garlemald/4393_Strange Bedfellows.json b/QuestPaths/6.x - Endwalker/MSQ/B-Garlemald/4393_Strange Bedfellows.json index 1ed061f7d..36790c213 100644 --- a/QuestPaths/6.x - Endwalker/MSQ/B-Garlemald/4393_Strange Bedfellows.json +++ b/QuestPaths/6.x - Endwalker/MSQ/B-Garlemald/4393_Strange Bedfellows.json @@ -188,14 +188,15 @@ "Z": 94.77368 }, "TerritoryId": 958, - "InteractionType": "Instruction", + "InteractionType": "Combat", "EnemySpawnType": "AfterInteraction", "KillEnemyDataIds": [ 14079 ], - "Comment": "TODO Needs item use?", - "ItemId": 2003231, - "ItemUseHealthMaxPercent": 10, + "CombatItemUse": { + "ItemId": 2003231, + "Condition": "Incapacitated" + }, "CompletionQuestVariablesFlags": [ null, null, @@ -279,14 +280,15 @@ "Z": 396.96338 }, "TerritoryId": 958, - "InteractionType": "Instruction", + "InteractionType": "Combat", "EnemySpawnType": "AfterInteraction", "KillEnemyDataIds": [ 14080 ], - "Comment": "TODO Needs item use?", - "ItemId": 2003231, - "ItemUseHealthMaxPercent": 10, + "CombatItemUse": { + "ItemId": 2003231, + "Condition": "Incapacitated" + }, "DisableNavmesh": true, "CompletionQuestVariablesFlags": [ null, diff --git a/QuestPaths/quest-v1.json b/QuestPaths/quest-v1.json index aa74871eb..50d39d052 100644 --- a/QuestPaths/quest-v1.json +++ b/QuestPaths/quest-v1.json @@ -617,6 +617,25 @@ ] } }, + "CombatItemUse": { + "description": "Unlike the 'AfterItemUse' condition that is used for spawning an enemy in the first place, interacting with an item at a certain stage of combat is required", + "type": "object", + "properties": { + "ItemId": { + "type": "integer" + }, + "Condition": { + "type": "string", + "enum": [ + "Incapacitated" + ] + } + }, + "required": [ + "ItemId", + "Condition" + ] + }, "CombatDelaySecondsAtStart": { "type": "number" } diff --git a/Questionable.Model/Questing/CombatItemUse.cs b/Questionable.Model/Questing/CombatItemUse.cs new file mode 100644 index 000000000..bbcfd1006 --- /dev/null +++ b/Questionable.Model/Questing/CombatItemUse.cs @@ -0,0 +1,12 @@ +using System.Text.Json.Serialization; +using Questionable.Model.Questing.Converter; + +namespace Questionable.Model.Questing; + +public sealed class CombatItemUse +{ + public uint ItemId { get; set; } + + [JsonConverter(typeof(CombatItemUseConditionConverter))] + public ECombatItemUseCondition Condition { get; set; } +} diff --git a/Questionable.Model/Questing/Converter/CombatItemUseConditionConverter.cs b/Questionable.Model/Questing/Converter/CombatItemUseConditionConverter.cs new file mode 100644 index 000000000..d2bca66a7 --- /dev/null +++ b/Questionable.Model/Questing/Converter/CombatItemUseConditionConverter.cs @@ -0,0 +1,12 @@ +using System.Collections.Generic; +using Questionable.Model.Common.Converter; + +namespace Questionable.Model.Questing.Converter; + +public sealed class CombatItemUseConditionConverter() : EnumConverter(Values) +{ + private static readonly Dictionary Values = new() + { + { ECombatItemUseCondition.Incapacitated, "Incapacitated" }, + }; +} diff --git a/Questionable.Model/Questing/ECombatItemUseCondition.cs b/Questionable.Model/Questing/ECombatItemUseCondition.cs new file mode 100644 index 000000000..dab191e67 --- /dev/null +++ b/Questionable.Model/Questing/ECombatItemUseCondition.cs @@ -0,0 +1,7 @@ +namespace Questionable.Model.Questing; + +public enum ECombatItemUseCondition +{ + None, + Incapacitated, +} diff --git a/Questionable.Model/Questing/QuestStep.cs b/Questionable.Model/Questing/QuestStep.cs index c5626a5d6..dcb8042a9 100644 --- a/Questionable.Model/Questing/QuestStep.cs +++ b/Questionable.Model/Questing/QuestStep.cs @@ -67,6 +67,7 @@ public sealed class QuestStep public EEnemySpawnType? EnemySpawnType { get; set; } public List KillEnemyDataIds { get; set; } = []; public List ComplexCombatData { get; set; } = []; + public CombatItemUse? CombatItemUse { get; set; } public float? CombatDelaySecondsAtStart { get; set; } public JumpDestination? JumpDestination { get; set; } diff --git a/Questionable/Controller/CombatController.cs b/Questionable/Controller/CombatController.cs index d4b8ae4e6..9cdf3bcf0 100644 --- a/Questionable/Controller/CombatController.cs +++ b/Questionable/Controller/CombatController.cs @@ -65,11 +65,11 @@ internal sealed class CombatController : IDisposable { Stop("Starting combat"); - var combatModule = _combatModules.FirstOrDefault(x => x.IsLoaded); + var combatModule = _combatModules.FirstOrDefault(x => x.CanHandleFight(combatData)); if (combatModule == null) return false; - if (combatModule.Start()) + if (combatModule.Start(combatData)) { _currentFight = new CurrentFight { @@ -364,6 +364,7 @@ internal sealed class CombatController : IDisposable public required EEnemySpawnType SpawnType { get; init; } public required List KillEnemyDataIds { get; init; } public required List ComplexCombatDatas { get; init; } + public required CombatItemUse? CombatItemUse { get; init; } public HashSet CompletedComplexDatas { get; } = new(); } diff --git a/Questionable/Controller/CombatModules/ICombatModule.cs b/Questionable/Controller/CombatModules/ICombatModule.cs index 542e2d6f9..06fe4ae68 100644 --- a/Questionable/Controller/CombatModules/ICombatModule.cs +++ b/Questionable/Controller/CombatModules/ICombatModule.cs @@ -4,9 +4,9 @@ namespace Questionable.Controller.CombatModules; internal interface ICombatModule { - bool IsLoaded { get; } + bool CanHandleFight(CombatController.CombatData combatData); - bool Start(); + bool Start(CombatController.CombatData combatData); bool Stop(); diff --git a/Questionable/Controller/CombatModules/ItemUseModule.cs b/Questionable/Controller/CombatModules/ItemUseModule.cs new file mode 100644 index 000000000..cff431617 --- /dev/null +++ b/Questionable/Controller/CombatModules/ItemUseModule.cs @@ -0,0 +1,142 @@ +using System; +using System.Collections.Generic; +using System.Linq; +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.Functions; +using Questionable.Model.Questing; + +namespace Questionable.Controller.CombatModules; + +internal sealed class ItemUseModule : ICombatModule +{ + private readonly IServiceProvider _serviceProvider; + private readonly GameFunctions _gameFunctions; + private readonly ICondition _condition; + private readonly ILogger _logger; + + private ICombatModule? _delegate; + private CombatController.CombatData? _combatData; + private bool _isDoingRotation; + + public ItemUseModule(IServiceProvider serviceProvider, GameFunctions gameFunctions, ICondition condition, + ILogger logger) + { + _serviceProvider = serviceProvider; + _gameFunctions = gameFunctions; + _condition = condition; + _logger = logger; + } + + public bool CanHandleFight(CombatController.CombatData combatData) + { + if (combatData.CombatItemUse == null) + return false; + + _delegate = _serviceProvider.GetRequiredService>() + .Where(x => x is not ItemUseModule) + .FirstOrDefault(x => x.CanHandleFight(combatData)); + _logger.LogInformation("ItemUse delegate: {Delegate}", _delegate?.GetType().Name); + return _delegate != null; + } + + public bool Start(CombatController.CombatData combatData) + { + if (_delegate!.Start(combatData)) + { + _combatData = combatData; + _isDoingRotation = true; + return true; + } + + return false; + } + + public bool Stop() + { + if (_isDoingRotation) + { + _delegate!.Stop(); + _isDoingRotation = false; + _combatData = null; + _delegate = null; + } + + return true; + } + + public void Update(IGameObject nextTarget) + { + if (_delegate == null) + return; + + if (_combatData?.CombatItemUse == null) + { + _delegate.Update(nextTarget); + return; + } + + if (_combatData.KillEnemyDataIds.Contains(nextTarget.DataId) || + _combatData.ComplexCombatDatas.Any(x => x.DataId == nextTarget.DataId)) + { + if (_isDoingRotation) + { + unsafe + { + InventoryManager* inventoryManager = InventoryManager.Instance(); + if (inventoryManager->GetInventoryItemCount(_combatData.CombatItemUse.ItemId) == 0) + { + _isDoingRotation = false; + _delegate.Stop(); + } + } + + if (ShouldUseItem(nextTarget)) + { + _isDoingRotation = false; + _delegate.Stop(); + _gameFunctions.UseItem(nextTarget.DataId, _combatData.CombatItemUse.ItemId); + } + else + _delegate.Update(nextTarget); + } + else if (_condition[ConditionFlag.Casting]) + { + // do nothing + } + else + { + _isDoingRotation = true; + _delegate.Start(_combatData); + } + } + else if (_isDoingRotation) + { + _delegate.Update(nextTarget); + } + } + + private unsafe bool ShouldUseItem(IGameObject gameObject) + { + if (_combatData?.CombatItemUse == null) + return false; + + if (gameObject is IBattleChara) + { + BattleChara* battleChara = (BattleChara*)gameObject.Address; + if (_combatData.CombatItemUse.Condition == ECombatItemUseCondition.Incapacitated) + return (battleChara->Flags2 & 128u) != 0; + } + + return false; + } + + public void MoveToTarget(IGameObject nextTarget) => _delegate!.MoveToTarget(nextTarget); + + public bool CanAttack(IBattleNpc target) => _delegate!.CanAttack(target); +} diff --git a/Questionable/Controller/CombatModules/Mount128Module.cs b/Questionable/Controller/CombatModules/Mount128Module.cs index c2f1a6f88..e665163a0 100644 --- a/Questionable/Controller/CombatModules/Mount128Module.cs +++ b/Questionable/Controller/CombatModules/Mount128Module.cs @@ -25,9 +25,9 @@ internal sealed class Mount128Module : ICombatModule _gameFunctions = gameFunctions; } - public bool IsLoaded => _gameFunctions.GetMountId() == MountId; + public bool CanHandleFight(CombatController.CombatData combatData) => _gameFunctions.GetMountId() == MountId; - public bool Start() => true; + public bool Start(CombatController.CombatData combatData) => true; public bool Stop() => true; diff --git a/Questionable/Controller/CombatModules/RotationSolverRebornModule.cs b/Questionable/Controller/CombatModules/RotationSolverRebornModule.cs index 72e13ae70..a0b43b2fd 100644 --- a/Questionable/Controller/CombatModules/RotationSolverRebornModule.cs +++ b/Questionable/Controller/CombatModules/RotationSolverRebornModule.cs @@ -32,23 +32,20 @@ internal sealed class RotationSolverRebornModule : ICombatModule, IDisposable pluginInterface.GetIpcSubscriber("RotationSolverReborn.ChangeOperatingMode"); } - public bool IsLoaded + public bool CanHandleFight(CombatController.CombatData combatData) { - get + try { - try - { - _test.InvokeAction("Validate RSR is callable from Questionable"); - return true; - } - catch (IpcError) - { - return false; - } + _test.InvokeAction("Validate RSR is callable from Questionable"); + return true; + } + catch (IpcError) + { + return false; } } - public bool Start() + public bool Start(CombatController.CombatData combatData) { try { diff --git a/Questionable/Controller/MiniTaskController.cs b/Questionable/Controller/MiniTaskController.cs index 4cf0828e3..dfa0bfc9e 100644 --- a/Questionable/Controller/MiniTaskController.cs +++ b/Questionable/Controller/MiniTaskController.cs @@ -169,7 +169,7 @@ internal abstract class MiniTaskController if (_condition[ConditionFlag.Mounted]) tasks.Add(new Mount.UnmountTask()); - tasks.Add(Combat.Factory.CreateTask(null, false, EEnemySpawnType.QuestInterruption, [], [], [])); + tasks.Add(Combat.Factory.CreateTask(null, false, EEnemySpawnType.QuestInterruption, [], [], [], null)); tasks.Add(new WaitAtEnd.WaitDelay()); _taskQueue.InterruptWith(tasks); } diff --git a/Questionable/Controller/Steps/Interactions/Combat.cs b/Questionable/Controller/Steps/Interactions/Combat.cs index 12a41d605..c670e3bca 100644 --- a/Questionable/Controller/Steps/Interactions/Combat.cs +++ b/Questionable/Controller/Steps/Interactions/Combat.cs @@ -97,12 +97,12 @@ internal static class Combat bool isLastStep = sequence.Steps.Last() == step; return CreateTask(quest.Id, isLastStep, step.EnemySpawnType.Value, step.KillEnemyDataIds, - step.CompletionQuestVariablesFlags, step.ComplexCombatData); + step.CompletionQuestVariablesFlags, step.ComplexCombatData, step.CombatItemUse); } internal static Task CreateTask(ElementId? elementId, bool isLastStep, EEnemySpawnType enemySpawnType, IList killEnemyDataIds, IList completionQuestVariablesFlags, - IList complexCombatData) + IList complexCombatData, CombatItemUse? combatItemUse) { return new Task(new CombatController.CombatData { @@ -110,6 +110,7 @@ internal static class Combat SpawnType = enemySpawnType, KillEnemyDataIds = killEnemyDataIds.ToList(), ComplexCombatDatas = complexCombatData.ToList(), + CombatItemUse = combatItemUse, }, completionQuestVariablesFlags, isLastStep); } } diff --git a/Questionable/QuestionablePlugin.cs b/Questionable/QuestionablePlugin.cs index b9a1c54eb..bdb639f45 100644 --- a/Questionable/QuestionablePlugin.cs +++ b/Questionable/QuestionablePlugin.cs @@ -234,6 +234,7 @@ public sealed class QuestionablePlugin : IDalamudPlugin serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); + serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); } -- 2.45.2 From 368b119b6dbbba805bb9f010fd13187185b483a4 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sun, 13 Oct 2024 01:51:44 +0200 Subject: [PATCH 116/448] Add Health% as combat item use condition --- .../MSQ/L-5.55/4066_Death Unto Dawn.json | 2 +- .../MSQ/E-Elpis/4421_Petalouda Hunt.json | 17 +++++++++++-- .../Garlemald/4226_With Folded Hands.json | 14 ++++++++--- QuestPaths/quest-v1.json | 6 ++++- Questionable.Model/Questing/CombatItemUse.cs | 2 ++ .../CombatItemUseConditionConverter.cs | 1 + .../Questing/ECombatItemUseCondition.cs | 1 + .../Controller/CombatModules/ItemUseModule.cs | 25 +++++++++++++++---- 8 files changed, 56 insertions(+), 12 deletions(-) diff --git a/QuestPaths/5.x - Shadowbringers/MSQ/L-5.55/4066_Death Unto Dawn.json b/QuestPaths/5.x - Shadowbringers/MSQ/L-5.55/4066_Death Unto Dawn.json index dee4eaecf..2e7967997 100644 --- a/QuestPaths/5.x - Shadowbringers/MSQ/L-5.55/4066_Death Unto Dawn.json +++ b/QuestPaths/5.x - Shadowbringers/MSQ/L-5.55/4066_Death Unto Dawn.json @@ -55,7 +55,7 @@ "Steps": [ { "TerritoryId": 351, - "InteractionType": "WaitForManualProgress", + "InteractionType": "None", "Comment": "Credits" } ] diff --git a/QuestPaths/6.x - Endwalker/MSQ/E-Elpis/4421_Petalouda Hunt.json b/QuestPaths/6.x - Endwalker/MSQ/E-Elpis/4421_Petalouda Hunt.json index 04c452c57..c11ebd1da 100644 --- a/QuestPaths/6.x - Endwalker/MSQ/E-Elpis/4421_Petalouda Hunt.json +++ b/QuestPaths/6.x - Endwalker/MSQ/E-Elpis/4421_Petalouda Hunt.json @@ -37,10 +37,23 @@ "Sequence": 2, "Steps": [ { + "Position": { + "X": 206.0426, + "Y": 20.561113, + "Z": 629.14465 + }, "DataId": 1039998, "TerritoryId": 961, - "InteractionType": "WaitForManualProgress", - "Comment": "Capture Mobs with less than 50% HP" + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "KillEnemyDataIds": [ + 13447, 13448, 13449 + ], + "CombatItemUse": { + "ItemId": 2003232, + "Condition": "Health%", + "Value": 50 + } } ] }, diff --git a/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4226_With Folded Hands.json b/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4226_With Folded Hands.json index dff6a220a..0001cbe93 100644 --- a/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4226_With Folded Hands.json +++ b/QuestPaths/6.x - Endwalker/Side Quests/Garlemald/4226_With Folded Hands.json @@ -21,15 +21,23 @@ "Sequence": 1, "Steps": [ { - "DataId": 13468, "Position": { "X": -159.59418, "Y": 10.8, "Z": -468.8335 }, + "StopDistance": 0.5, "TerritoryId": 958, - "InteractionType": "WaitForManualProgress", - "Comment": "Use item 2003202 on 13468 after \"weakening\"", + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "KillEnemyDataIds": [ + 13468 + ], + "CombatItemUse": { + "ItemId": 2003202, + "Condition": "Health%", + "Value": 40 + }, "Fly": true } ] diff --git a/QuestPaths/quest-v1.json b/QuestPaths/quest-v1.json index 50d39d052..eefbf1eb7 100644 --- a/QuestPaths/quest-v1.json +++ b/QuestPaths/quest-v1.json @@ -627,8 +627,12 @@ "Condition": { "type": "string", "enum": [ - "Incapacitated" + "Incapacitated", + "Health%" ] + }, + "Value": { + "type": "integer" } }, "required": [ diff --git a/Questionable.Model/Questing/CombatItemUse.cs b/Questionable.Model/Questing/CombatItemUse.cs index bbcfd1006..565a0c778 100644 --- a/Questionable.Model/Questing/CombatItemUse.cs +++ b/Questionable.Model/Questing/CombatItemUse.cs @@ -9,4 +9,6 @@ public sealed class CombatItemUse [JsonConverter(typeof(CombatItemUseConditionConverter))] public ECombatItemUseCondition Condition { get; set; } + + public int Value { get; set; } } diff --git a/Questionable.Model/Questing/Converter/CombatItemUseConditionConverter.cs b/Questionable.Model/Questing/Converter/CombatItemUseConditionConverter.cs index d2bca66a7..1b4086ffd 100644 --- a/Questionable.Model/Questing/Converter/CombatItemUseConditionConverter.cs +++ b/Questionable.Model/Questing/Converter/CombatItemUseConditionConverter.cs @@ -8,5 +8,6 @@ public sealed class CombatItemUseConditionConverter() : EnumConverter Values = new() { { ECombatItemUseCondition.Incapacitated, "Incapacitated" }, + { ECombatItemUseCondition.HealthPercent, "Health%" }, }; } diff --git a/Questionable.Model/Questing/ECombatItemUseCondition.cs b/Questionable.Model/Questing/ECombatItemUseCondition.cs index dab191e67..7bb4e2b20 100644 --- a/Questionable.Model/Questing/ECombatItemUseCondition.cs +++ b/Questionable.Model/Questing/ECombatItemUseCondition.cs @@ -4,4 +4,5 @@ public enum ECombatItemUseCondition { None, Incapacitated, + HealthPercent, } diff --git a/Questionable/Controller/CombatModules/ItemUseModule.cs b/Questionable/Controller/CombatModules/ItemUseModule.cs index cff431617..91b4ca1dd 100644 --- a/Questionable/Controller/CombatModules/ItemUseModule.cs +++ b/Questionable/Controller/CombatModules/ItemUseModule.cs @@ -6,6 +6,7 @@ using Dalamud.Game.ClientState.Objects.Types; using Dalamud.Plugin.Services; using FFXIVClientStructs.FFXIV.Client.Game; using FFXIVClientStructs.FFXIV.Client.Game.Character; +using FFXIVClientStructs.FFXIV.Client.UI.Agent; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; using Questionable.Functions; @@ -16,19 +17,17 @@ namespace Questionable.Controller.CombatModules; internal sealed class ItemUseModule : ICombatModule { private readonly IServiceProvider _serviceProvider; - private readonly GameFunctions _gameFunctions; private readonly ICondition _condition; private readonly ILogger _logger; private ICombatModule? _delegate; private CombatController.CombatData? _combatData; private bool _isDoingRotation; + private DateTime _continueAt; - public ItemUseModule(IServiceProvider serviceProvider, GameFunctions gameFunctions, ICondition condition, - ILogger logger) + public ItemUseModule(IServiceProvider serviceProvider, ICondition condition, ILogger logger) { _serviceProvider = serviceProvider; - _gameFunctions = gameFunctions; _condition = condition; _logger = logger; } @@ -51,6 +50,7 @@ internal sealed class ItemUseModule : ICombatModule { _combatData = combatData; _isDoingRotation = true; + _continueAt = DateTime.Now; return true; } @@ -65,6 +65,7 @@ internal sealed class ItemUseModule : ICombatModule _isDoingRotation = false; _combatData = null; _delegate = null; + _continueAt = DateTime.Now; } return true; @@ -75,6 +76,9 @@ internal sealed class ItemUseModule : ICombatModule if (_delegate == null) return; + if (_continueAt > DateTime.Now) + return; + if (_combatData?.CombatItemUse == null) { _delegate.Update(nextTarget); @@ -93,6 +97,7 @@ internal sealed class ItemUseModule : ICombatModule { _isDoingRotation = false; _delegate.Stop(); + return; } } @@ -100,7 +105,11 @@ internal sealed class ItemUseModule : ICombatModule { _isDoingRotation = false; _delegate.Stop(); - _gameFunctions.UseItem(nextTarget.DataId, _combatData.CombatItemUse.ItemId); + unsafe + { + AgentInventoryContext.Instance()->UseItem(_combatData.CombatItemUse.ItemId); + } + _continueAt = DateTime.Now.AddSeconds(2); } else _delegate.Update(nextTarget); @@ -108,6 +117,9 @@ internal sealed class ItemUseModule : ICombatModule else if (_condition[ConditionFlag.Casting]) { // do nothing + DateTime alternativeContinueAt = DateTime.Now.AddSeconds(0.5); + if (alternativeContinueAt > _continueAt) + _continueAt = alternativeContinueAt; } else { @@ -131,6 +143,9 @@ internal sealed class ItemUseModule : ICombatModule BattleChara* battleChara = (BattleChara*)gameObject.Address; if (_combatData.CombatItemUse.Condition == ECombatItemUseCondition.Incapacitated) return (battleChara->Flags2 & 128u) != 0; + + if (_combatData.CombatItemUse.Condition == ECombatItemUseCondition.HealthPercent) + return (100f * battleChara->Health / battleChara->MaxHealth) < _combatData.CombatItemUse.Value; } return false; -- 2.45.2 From 01faa9e4c87ef4cf0675e68a873a273c6a1639b3 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sun, 13 Oct 2024 02:28:42 +0200 Subject: [PATCH 117/448] Add Doman Adventurer's Guild/Doman Reconstruction starting quests --- .../100_Short Arms of the Law.json | 141 ++++++++++++ .../45_Toll Booty.json | 166 ++++++++++++++ .../50_Li'l Rascals.json | 212 ++++++++++++++++++ .../3086_Precious Reclamation.json | 103 +++++++++ .../3087_A Thousand and One Farewells.json | 118 ++++++++++ .../3141_It Takes an Enclave.json | 57 +++++ .../3008_A Hingan Tale - Nashu Goes East.json | 0 .../3020_Life Imitates Art Imitates Life.json | 0 .../3021_Of Wolves and Gentlemen.json | 0 .../3094_In the Eye of the Hingan.json | 0 .../3095_The Blade Mislaid.json | 0 .../3150_The Black Heart Beneath.json | 0 .../3151_Good Swords, Good Dogs.json | 0 .../3167_The Past Is Never Past.json | 0 .../3168_Don't Do the Dewprism.json | 0 15 files changed, 797 insertions(+) create mode 100644 QuestPaths/3.x - Heavensward/Side Stories/Doman Adventurer's Guild/100_Short Arms of the Law.json create mode 100644 QuestPaths/3.x - Heavensward/Side Stories/Doman Adventurer's Guild/45_Toll Booty.json create mode 100644 QuestPaths/3.x - Heavensward/Side Stories/Doman Adventurer's Guild/50_Li'l Rascals.json create mode 100644 QuestPaths/4.x - Stormblood/Side Stories/Doman Reconstruction/3086_Precious Reclamation.json create mode 100644 QuestPaths/4.x - Stormblood/Side Stories/Doman Reconstruction/3087_A Thousand and One Farewells.json create mode 100644 QuestPaths/4.x - Stormblood/Side Stories/Doman Reconstruction/3141_It Takes an Enclave.json rename QuestPaths/4.x - Stormblood/Side Stories/{ => Hildibrand}/3008_A Hingan Tale - Nashu Goes East.json (100%) rename QuestPaths/4.x - Stormblood/Side Stories/{ => Hildibrand}/3020_Life Imitates Art Imitates Life.json (100%) rename QuestPaths/4.x - Stormblood/Side Stories/{ => Hildibrand}/3021_Of Wolves and Gentlemen.json (100%) rename QuestPaths/4.x - Stormblood/Side Stories/{ => Hildibrand}/3094_In the Eye of the Hingan.json (100%) rename QuestPaths/4.x - Stormblood/Side Stories/{ => Hildibrand}/3095_The Blade Mislaid.json (100%) rename QuestPaths/4.x - Stormblood/Side Stories/{ => Hildibrand}/3150_The Black Heart Beneath.json (100%) rename QuestPaths/4.x - Stormblood/Side Stories/{ => Hildibrand}/3151_Good Swords, Good Dogs.json (100%) rename QuestPaths/4.x - Stormblood/Side Stories/{ => Hildibrand}/3167_The Past Is Never Past.json (100%) rename QuestPaths/4.x - Stormblood/Side Stories/{ => Hildibrand}/3168_Don't Do the Dewprism.json (100%) diff --git a/QuestPaths/3.x - Heavensward/Side Stories/Doman Adventurer's Guild/100_Short Arms of the Law.json b/QuestPaths/3.x - Heavensward/Side Stories/Doman Adventurer's Guild/100_Short Arms of the Law.json new file mode 100644 index 000000000..51cbb57a9 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Side Stories/Doman Adventurer's Guild/100_Short Arms of the Law.json @@ -0,0 +1,141 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1009813, + "Position": { + "X": 55.436035, + "Y": 31.187548, + "Z": -763.42413 + }, + "TerritoryId": 156, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Mor Dhona", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1009828, + "Position": { + "X": 64.95764, + "Y": 20.487333, + "Z": -641.01624 + }, + "TerritoryId": 156, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1009831, + "Position": { + "X": -58.487915, + "Y": 3.4366195, + "Z": -645.655 + }, + "TerritoryId": 156, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1009835, + "Position": { + "X": -103.379944, + "Y": -1.3236009, + "Z": -615.9304 + }, + "TerritoryId": 156, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 3565, + 4619, + 5044 + ] + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1009835, + "Position": { + "X": -103.379944, + "Y": -1.3236009, + "Z": -615.9304 + }, + "TerritoryId": 156, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 2004633, + "Position": { + "X": -98.74121, + "Y": -0.015319824, + "Z": -616.5408 + }, + "TerritoryId": 156, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1009839, + "Position": { + "X": -95.780945, + "Y": -0.42092213, + "Z": -625.6962 + }, + "TerritoryId": 156, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1006530, + "Position": { + "X": 21.927185, + "Y": 20.746975, + "Z": -682.06305 + }, + "TerritoryId": 156, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Side Stories/Doman Adventurer's Guild/45_Toll Booty.json b/QuestPaths/3.x - Heavensward/Side Stories/Doman Adventurer's Guild/45_Toll Booty.json new file mode 100644 index 000000000..500e5e6aa --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Side Stories/Doman Adventurer's Guild/45_Toll Booty.json @@ -0,0 +1,166 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1009812, + "Position": { + "X": 74.08252, + "Y": 30.549389, + "Z": -720.9735 + }, + "TerritoryId": 156, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Mor Dhona", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": 26.405773, + "Y": 29.49983, + "Z": -767.3998 + }, + "TerritoryId": 156, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "Position": { + "X": 25.629164, + "Y": 28.999998, + "Z": -823.2204 + }, + "TerritoryId": 156, + "InteractionType": "WalkTo" + }, + { + "DataId": 1001304, + "Position": { + "X": 25.589355, + "Y": 29, + "Z": -825.37573 + }, + "TerritoryId": 156, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2004628, + "Position": { + "X": 50.614136, + "Y": 31.143677, + "Z": -748.40924 + }, + "TerritoryId": 156, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2004631, + "Position": { + "X": -127.55017, + "Y": -1.9379272, + "Z": -638.4833 + }, + "TerritoryId": 156, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "Position": { + "X": -165.20372, + "Y": 11.28438, + "Z": -619.29504 + }, + "TerritoryId": 156, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 2004629, + "Position": { + "X": -166.79645, + "Y": 12.283508, + "Z": -619.8978 + }, + "TerritoryId": 156, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1009817, + "Position": { + "X": -130.1748, + "Y": -0.85852593, + "Z": -645.2583 + }, + "TerritoryId": 156, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1006530, + "Position": { + "X": 21.927185, + "Y": 20.746975, + "Z": -682.06305 + }, + "TerritoryId": 156, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1009813, + "Position": { + "X": 55.436035, + "Y": 31.187548, + "Z": -763.42413 + }, + "TerritoryId": 156, + "InteractionType": "CompleteQuest", + "Fly": true, + "NextQuestId": 50 + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Side Stories/Doman Adventurer's Guild/50_Li'l Rascals.json b/QuestPaths/3.x - Heavensward/Side Stories/Doman Adventurer's Guild/50_Li'l Rascals.json new file mode 100644 index 000000000..9d6291993 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Side Stories/Doman Adventurer's Guild/50_Li'l Rascals.json @@ -0,0 +1,212 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1009813, + "Position": { + "X": 55.436035, + "Y": 31.187548, + "Z": -763.42413 + }, + "TerritoryId": 156, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Mor Dhona", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1009812, + "Position": { + "X": 74.08252, + "Y": 30.549389, + "Z": -720.9735 + }, + "TerritoryId": 156, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1006530, + "Position": { + "X": 21.927185, + "Y": 20.746975, + "Z": -682.06305 + }, + "TerritoryId": 156, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1009825, + "Position": { + "X": 86.07605, + "Y": 28.34813, + "Z": -622.18665 + }, + "StopDistance": 0.5, + "TerritoryId": 156, + "InteractionType": "Interact", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, + { + "Position": { + "X": 30.917934, + "Y": 20.495003, + "Z": -656.1909 + }, + "TerritoryId": 156, + "InteractionType": "WalkTo", + "Fly": true, + "$": "Rising Stones Door", + "SkipConditions": { + "StepIf": { + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 16 + ] + } + } + }, + { + "DataId": 1009826, + "Position": { + "X": 29.160034, + "Y": 21.252728, + "Z": -642.51166 + }, + "TerritoryId": 156, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 16 + ] + }, + { + "Position": { + "X": 30.917934, + "Y": 20.495003, + "Z": -656.1909 + }, + "TerritoryId": 156, + "InteractionType": "WalkTo", + "Mount": true, + "$": "Rising Stones Door" + }, + { + "Position": { + "X": 18.883974, + "Y": 53.583996, + "Z": -702.24194 + }, + "TerritoryId": 156, + "InteractionType": "WalkTo", + "Fly": true, + "SkipConditions": { + "StepIf": { + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + } + } + }, + { + "DataId": 1009823, + "Position": { + "X": 16.983276, + "Y": 53.614998, + "Z": -703.3341 + }, + "TerritoryId": 156, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 1009824, + "Position": { + "X": 22.262878, + "Y": 28.999968, + "Z": -780.85 + }, + "TerritoryId": 156, + "InteractionType": "Interact", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1009813, + "Position": { + "X": 55.436035, + "Y": 31.187548, + "Z": -763.42413 + }, + "TerritoryId": 156, + "InteractionType": "CompleteQuest", + "Fly": true, + "NextQuestId": 100 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Side Stories/Doman Reconstruction/3086_Precious Reclamation.json b/QuestPaths/4.x - Stormblood/Side Stories/Doman Reconstruction/3086_Precious Reclamation.json new file mode 100644 index 000000000..dc4d3638a --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Side Stories/Doman Reconstruction/3086_Precious Reclamation.json @@ -0,0 +1,103 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1024791, + "Position": { + "X": 31.60144, + "Y": 0.26575702, + "Z": 28.915894 + }, + "TerritoryId": 759, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Doman Enclave", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1006530, + "Position": { + "X": 21.927185, + "Y": 20.746975, + "Z": -682.06305 + }, + "TerritoryId": 156, + "InteractionType": "Interact", + "AetheryteShortcut": "Mor Dhona" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1025287, + "Position": { + "X": 64.34729, + "Y": 31.199963, + "Z": -754.0246 + }, + "TerritoryId": 156, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 2009436, + "Position": { + "X": 70.05408, + "Y": 30.746826, + "Z": -722.86566 + }, + "TerritoryId": 156, + "InteractionType": "CompleteQuest", + "Fly": true, + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_STMBDY501_03086_Q1_000_091", + "Yes": true + }, + { + "Type": "List", + "Prompt": "TEXT_STMBDY501_03086_Q2_000_097", + "Answer": "TEXT_STMBDY501_03086_A2_000_100" + }, + { + "Type": "List", + "Prompt": "TEXT_STMBDY501_03086_Q3_000_118", + "Answer": "TEXT_STMBDY501_03086_A3_000_119" + }, + { + "Type": "List", + "Prompt": "TEXT_STMBDY501_03086_Q4_000_134", + "Answer": "TEXT_STMBDY501_03086_A4_000_136" + }, + { + "Type": "List", + "Prompt": "TEXT_STMBDY501_03086_Q5_000_156", + "Answer": "TEXT_STMBDY501_03086_A5_000_158" + } + ], + "NextQuestId": 3087 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Side Stories/Doman Reconstruction/3087_A Thousand and One Farewells.json b/QuestPaths/4.x - Stormblood/Side Stories/Doman Reconstruction/3087_A Thousand and One Farewells.json new file mode 100644 index 000000000..0c5847acd --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Side Stories/Doman Reconstruction/3087_A Thousand and One Farewells.json @@ -0,0 +1,118 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1025330, + "Position": { + "X": 64.83557, + "Y": 30.6188, + "Z": -722.3774 + }, + "StopDistance": 7, + "TerritoryId": 156, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Mor Dhona", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1006530, + "Position": { + "X": 21.927185, + "Y": 20.746975, + "Z": -682.06305 + }, + "TerritoryId": 156, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1009813, + "Position": { + "X": 55.436035, + "Y": 31.187548, + "Z": -763.42413 + }, + "TerritoryId": 156, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "Position": { + "X": 51.799374, + "Y": 50, + "Z": -774.0067 + }, + "TerritoryId": 156, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 1018433, + "Position": { + "X": 50.766724, + "Y": 50, + "Z": -772.3964 + }, + "TerritoryId": 156, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1025287, + "Position": { + "X": 64.34729, + "Y": 31.199963, + "Z": -754.0246 + }, + "TerritoryId": 156, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1024791, + "Position": { + "X": 31.60144, + "Y": 0.26575702, + "Z": 28.915894 + }, + "TerritoryId": 759, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Doman Enclave", + "NextQuestId": 3141 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Side Stories/Doman Reconstruction/3141_It Takes an Enclave.json b/QuestPaths/4.x - Stormblood/Side Stories/Doman Reconstruction/3141_It Takes an Enclave.json new file mode 100644 index 000000000..2eb8da81b --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Side Stories/Doman Reconstruction/3141_It Takes an Enclave.json @@ -0,0 +1,57 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1024791, + "Position": { + "X": 31.60144, + "Y": 0.26575702, + "Z": 28.915894 + }, + "TerritoryId": 759, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Doman Enclave", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1024793, + "Position": { + "X": 66.666626, + "Y": -7.579447E-09, + "Z": -59.67804 + }, + "TerritoryId": 759, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1024791, + "Position": { + "X": 31.60144, + "Y": 0.26575702, + "Z": 28.915894 + }, + "TerritoryId": 759, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Side Stories/3008_A Hingan Tale - Nashu Goes East.json b/QuestPaths/4.x - Stormblood/Side Stories/Hildibrand/3008_A Hingan Tale - Nashu Goes East.json similarity index 100% rename from QuestPaths/4.x - Stormblood/Side Stories/3008_A Hingan Tale - Nashu Goes East.json rename to QuestPaths/4.x - Stormblood/Side Stories/Hildibrand/3008_A Hingan Tale - Nashu Goes East.json diff --git a/QuestPaths/4.x - Stormblood/Side Stories/3020_Life Imitates Art Imitates Life.json b/QuestPaths/4.x - Stormblood/Side Stories/Hildibrand/3020_Life Imitates Art Imitates Life.json similarity index 100% rename from QuestPaths/4.x - Stormblood/Side Stories/3020_Life Imitates Art Imitates Life.json rename to QuestPaths/4.x - Stormblood/Side Stories/Hildibrand/3020_Life Imitates Art Imitates Life.json diff --git a/QuestPaths/4.x - Stormblood/Side Stories/3021_Of Wolves and Gentlemen.json b/QuestPaths/4.x - Stormblood/Side Stories/Hildibrand/3021_Of Wolves and Gentlemen.json similarity index 100% rename from QuestPaths/4.x - Stormblood/Side Stories/3021_Of Wolves and Gentlemen.json rename to QuestPaths/4.x - Stormblood/Side Stories/Hildibrand/3021_Of Wolves and Gentlemen.json diff --git a/QuestPaths/4.x - Stormblood/Side Stories/3094_In the Eye of the Hingan.json b/QuestPaths/4.x - Stormblood/Side Stories/Hildibrand/3094_In the Eye of the Hingan.json similarity index 100% rename from QuestPaths/4.x - Stormblood/Side Stories/3094_In the Eye of the Hingan.json rename to QuestPaths/4.x - Stormblood/Side Stories/Hildibrand/3094_In the Eye of the Hingan.json diff --git a/QuestPaths/4.x - Stormblood/Side Stories/3095_The Blade Mislaid.json b/QuestPaths/4.x - Stormblood/Side Stories/Hildibrand/3095_The Blade Mislaid.json similarity index 100% rename from QuestPaths/4.x - Stormblood/Side Stories/3095_The Blade Mislaid.json rename to QuestPaths/4.x - Stormblood/Side Stories/Hildibrand/3095_The Blade Mislaid.json diff --git a/QuestPaths/4.x - Stormblood/Side Stories/3150_The Black Heart Beneath.json b/QuestPaths/4.x - Stormblood/Side Stories/Hildibrand/3150_The Black Heart Beneath.json similarity index 100% rename from QuestPaths/4.x - Stormblood/Side Stories/3150_The Black Heart Beneath.json rename to QuestPaths/4.x - Stormblood/Side Stories/Hildibrand/3150_The Black Heart Beneath.json diff --git a/QuestPaths/4.x - Stormblood/Side Stories/3151_Good Swords, Good Dogs.json b/QuestPaths/4.x - Stormblood/Side Stories/Hildibrand/3151_Good Swords, Good Dogs.json similarity index 100% rename from QuestPaths/4.x - Stormblood/Side Stories/3151_Good Swords, Good Dogs.json rename to QuestPaths/4.x - Stormblood/Side Stories/Hildibrand/3151_Good Swords, Good Dogs.json diff --git a/QuestPaths/4.x - Stormblood/Side Stories/3167_The Past Is Never Past.json b/QuestPaths/4.x - Stormblood/Side Stories/Hildibrand/3167_The Past Is Never Past.json similarity index 100% rename from QuestPaths/4.x - Stormblood/Side Stories/3167_The Past Is Never Past.json rename to QuestPaths/4.x - Stormblood/Side Stories/Hildibrand/3167_The Past Is Never Past.json diff --git a/QuestPaths/4.x - Stormblood/Side Stories/3168_Don't Do the Dewprism.json b/QuestPaths/4.x - Stormblood/Side Stories/Hildibrand/3168_Don't Do the Dewprism.json similarity index 100% rename from QuestPaths/4.x - Stormblood/Side Stories/3168_Don't Do the Dewprism.json rename to QuestPaths/4.x - Stormblood/Side Stories/Hildibrand/3168_Don't Do the Dewprism.json -- 2.45.2 From feca95443ce515ee6b9a925434b16a6e3baff045 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sun, 13 Oct 2024 19:03:08 +0200 Subject: [PATCH 118/448] Minor 'Aether to Aether' path change --- .../MSQ/E-Elpis/4426_Aether to Aether.json | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/QuestPaths/6.x - Endwalker/MSQ/E-Elpis/4426_Aether to Aether.json b/QuestPaths/6.x - Endwalker/MSQ/E-Elpis/4426_Aether to Aether.json index e4748e24d..5df22e730 100644 --- a/QuestPaths/6.x - Endwalker/MSQ/E-Elpis/4426_Aether to Aether.json +++ b/QuestPaths/6.x - Endwalker/MSQ/E-Elpis/4426_Aether to Aether.json @@ -32,6 +32,16 @@ "InteractionType": "AcceptQuest", "PickUpQuestId": 4507 }, + { + "Position": { + "X": -109.12761, + "Y": -34.0357, + "Z": 397.6694 + }, + "TerritoryId": 961, + "InteractionType": "WalkTo", + "$": "Avoids combat" + }, { "DataId": 1040073, "Position": { -- 2.45.2 From 6cfccc843f9195cc9ce44359c1d002ac45f77262 Mon Sep 17 00:00:00 2001 From: xanunderscore <149614526+xanunderscore@users.noreply.github.com> Date: Sun, 13 Oct 2024 13:24:50 -0400 Subject: [PATCH 119/448] nin --- .../212_Peasants by Day, Ninjas by Night.json | 184 +++++++++++ .../Class Quests/NIN/213_My First Mudra.json | 134 ++++++++ .../NIN/214_Killer Combinations.json | 52 +++ .../NIN/215_Once Upon a Time in Doma.json | 210 +++++++++++++ .../NIN/216_Pirates versus Ninjas.json | 68 ++++ .../Class Quests/NIN/217_Ninja Bathin'.json | 241 ++++++++++++++ .../Class Quests/NIN/232_Tough Guys.json | 295 ++++++++++++++++++ .../Class Quests/NIN/233_The Crow Knows.json | 120 +++++++ .../NIN/234_Master and Student.json | 196 ++++++++++++ .../NIN/235_Strangers in a Strange Land.json | 225 +++++++++++++ .../NIN/1684_The Impossible Girl.json | 197 ++++++++++++ .../Class Quests/NIN/1685_Ninja Assassin.json | 227 ++++++++++++++ .../NIN/1686_Medieval Espionage.json | 215 +++++++++++++ .../Class Quests/NIN/1687_Staying Alive.json | 203 ++++++++++++ .../Class Quests/NIN/1688_In Her Defense.json | 253 +++++++++++++++ .../2948_Search for the Stolen Scroll.json | 243 +++++++++++++++ .../NIN/2949_Ninja Bathin' Redux.json | 290 +++++++++++++++++ .../NIN/2950_A Game of Life and Death.json | 143 +++++++++ .../NIN/2951_True Enlightenment.json | 149 +++++++++ .../NIN/2952_When Clans Collide.json | 97 ++++++ 20 files changed, 3742 insertions(+) create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/212_Peasants by Day, Ninjas by Night.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/213_My First Mudra.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/214_Killer Combinations.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/215_Once Upon a Time in Doma.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/216_Pirates versus Ninjas.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/217_Ninja Bathin'.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/232_Tough Guys.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/233_The Crow Knows.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/234_Master and Student.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/235_Strangers in a Strange Land.json create mode 100644 QuestPaths/3.x - Heavensward/Class Quests/NIN/1684_The Impossible Girl.json create mode 100644 QuestPaths/3.x - Heavensward/Class Quests/NIN/1685_Ninja Assassin.json create mode 100644 QuestPaths/3.x - Heavensward/Class Quests/NIN/1686_Medieval Espionage.json create mode 100644 QuestPaths/3.x - Heavensward/Class Quests/NIN/1687_Staying Alive.json create mode 100644 QuestPaths/3.x - Heavensward/Class Quests/NIN/1688_In Her Defense.json create mode 100644 QuestPaths/4.x - Stormblood/Class Quests/NIN/2948_Search for the Stolen Scroll.json create mode 100644 QuestPaths/4.x - Stormblood/Class Quests/NIN/2949_Ninja Bathin' Redux.json create mode 100644 QuestPaths/4.x - Stormblood/Class Quests/NIN/2950_A Game of Life and Death.json create mode 100644 QuestPaths/4.x - Stormblood/Class Quests/NIN/2951_True Enlightenment.json create mode 100644 QuestPaths/4.x - Stormblood/Class Quests/NIN/2952_When Clans Collide.json diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/212_Peasants by Day, Ninjas by Night.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/212_Peasants by Day, Ninjas by Night.json new file mode 100644 index 000000000..b4d68b9e7 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/212_Peasants by Day, Ninjas by Night.json @@ -0,0 +1,184 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "xan", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1009944, + "Position": { + "X": -152.66656, + "Y": 2.8562405, + "Z": 243.18298 + }, + "TerritoryId": 129, + "InteractionType": "Interact", + "AetheryteShortcut": "Limsa Lominsa", + "TargetTerritoryId": 129, + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] Fishermens' Guild" + ], + "SkipConditions": { + "StepIf": { + "NearPosition": { + "Position": { + "X": -151.80984, + "Y": -128.6493, + "Z": 265.27332 + }, + "TerritoryId": 129, + "MaximumDistance": 50 + } + } + } + }, + { + "DataId": 1009943, + "Position": { + "X": -153.36847, + "Y": -129.4397, + "Z": 265.88843 + }, + "TerritoryId": 129, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1010602, + "Position": { + "X": -1.449646, + "Y": 66.48521, + "Z": 46.28064 + }, + "TerritoryId": 137, + "InteractionType": "Interact", + "AetheryteShortcut": "Eastern La Noscea - Wineport", + "SkipConditions": { + "AetheryteShortcutIf": { "InSameTerritory": true } + } + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1010603, + "Position": { + "X": -67.36859, + "Y": 70.39888, + "Z": 11.032227 + }, + "TerritoryId": 137, + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_JOBNIN300_00212_Q1_000_000", + "Answer": "TEXT_JOBNIN300_00212_A1_000_001" + } + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1010607, + "Position": { + "X": 97.42883, + "Y": 68.34448, + "Z": -2.3651733 + }, + "TerritoryId": 137, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1010611, + "Position": { + "X": 585.1987, + "Y": -2.4988298, + "Z": 221.85083 + }, + "Fly": true, + "TerritoryId": 139, + "InteractionType": "Interact", + "AetheryteShortcut": "Upper La Noscea - Camp Bronze Lake", + "SkipConditions": { + "AetheryteShortcutIf": { "InSameTerritory": true } + } + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1010615, + "Position": { + "X": -8.529846, + "Y": 39.569904, + "Z": 260.8529 + }, + "TerritoryId": 137, + "InteractionType": "Interact", + "AetheryteShortcut": "Eastern La Noscea - Wineport", + "SkipConditions": { + "AetheryteShortcutIf": { "InSameTerritory": true } + } + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1010601, + "Position": { + "X": -14.755493, + "Y": 41.39178, + "Z": 258.13684 + }, + "TerritoryId": 137, + "TargetTerritoryId": 137, + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_JOBNIN300_00212_Q3_000_000", + "Answer": "TEXT_JOBNIN300_00212_A3_000_001" + } + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1010139, + "Position": { + "X": -33.218933, + "Y": -24.674446, + "Z": 257.98413 + }, + "TerritoryId": 137, + "InteractionType": "CompleteQuest", + "NextQuestId": 213 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/213_My First Mudra.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/213_My First Mudra.json new file mode 100644 index 000000000..36039c5b2 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/213_My First Mudra.json @@ -0,0 +1,134 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "xan", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1010601, + "Position": { + "X": -14.755493, + "Y": 41.39178, + "Z": 258.13684 + }, + "TerritoryId": 137, + "InteractionType": "Interact", + "AetheryteShortcut": "Eastern La Noscea - Wineport", + "SkipConditions": { + "AetheryteShortcutIf": { "InSameTerritory": true }, + "StepIf": { + "NearPosition": { + "Position": { + "X": -25.149055, + "Y": -24.773232, + "Z": 258.15594 + }, + "TerritoryId": 137, + "MaximumDistance": 25 + } + } + }, + "TargetTerritoryId": 137, + "Comment": "Gatekeep" + }, + { + "InteractionType": "EquipItem", + "ItemId": 7886, + "TerritoryId": 137 + }, + { + "DataId": 1010139, + "Position": { + "X": -33.218933, + "Y": -24.674446, + "Z": 257.98413 + }, + "TerritoryId": 137, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2004966, + "Position": { + "X": -16.128845, + "Y": -23.300598, + "Z": 258.13684 + }, + "TerritoryId": 137, + "TargetTerritoryId": 137, + "InteractionType": "Interact", + "SkipConditions": { + "StepIf": { + "NearPosition": { + "Position": { + "X": -6.8438888, + "Y": 39.451496, + "Z": 259.44324 + }, + "TerritoryId": 137, + "MaximumDistance": 20 + } + } + } + }, + { + "InteractionType": "WaitForManualProgress", + "TerritoryId": 137, + "Comment": "Use Ten -> Fuma Shuriken on the dummy" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1010616, + "Position": { + "X": -4.348877, + "Y": 39.531937, + "Z": 247.63867 + }, + "TerritoryId": 137, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1010616, + "Position": { + "X": -4.348877, + "Y": 39.531937, + "Z": 247.63867 + }, + "TerritoryId": 137, + "InteractionType": "SinglePlayerDuty" + } + ] + }, + { "Sequence": 4 }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1010616, + "Position": { + "X": -4.348877, + "Y": 39.531937, + "Z": 247.63867 + }, + "TerritoryId": 137, + "InteractionType": "CompleteQuest", + "NextQuestId": 214 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/214_Killer Combinations.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/214_Killer Combinations.json new file mode 100644 index 000000000..258bcf96c --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/214_Killer Combinations.json @@ -0,0 +1,52 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "xan", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1010140, + "Position": { + "X": -8.712891, + "Y": 39.590378, + "Z": 255.23767 + }, + "TerritoryId": 137, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Eastern La Noscea - Wineport", + "SkipConditions": { + "AetheryteShortcutIf": { "InSameTerritory": true } + } + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1010601, + "Position": { + "X": -14.755493, + "Y": 41.39178, + "Z": 258.13684 + }, + "TerritoryId": 137, + "InteractionType": "Interact", + "TargetTerritoryId": 137 + }, + { + "DataId": 1010139, + "Position": { + "X": -33.218933, + "Y": -24.674446, + "Z": 257.98413 + }, + "TerritoryId": 137, + "InteractionType": "CompleteQuest", + "NextQuestId": 215 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/215_Once Upon a Time in Doma.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/215_Once Upon a Time in Doma.json new file mode 100644 index 000000000..4f10975f0 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/215_Once Upon a Time in Doma.json @@ -0,0 +1,210 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "xan", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1010601, + "Position": { + "X": -14.755493, + "Y": 41.39178, + "Z": 258.13684 + }, + "TerritoryId": 137, + "InteractionType": "Interact", + "AetheryteShortcut": "Eastern La Noscea - Wineport", + "SkipConditions": { + "AetheryteShortcutIf": { "InSameTerritory": true }, + "StepIf": { + "NearPosition": { + "Position": { + "X": -25.149055, + "Y": -24.773232, + "Z": 258.15594 + }, + "TerritoryId": 137, + "MaximumDistance": 25 + } + } + }, + "TargetTerritoryId": 137 + }, + { + "DataId": 1010139, + "Position": { + "X": -33.218933, + "Y": -24.674446, + "Z": 257.98413 + }, + "TerritoryId": 137, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2004966, + "Position": { + "X": -16.128845, + "Y": -23.300598, + "Z": 258.13684 + }, + "TerritoryId": 137, + "TargetTerritoryId": 137, + "InteractionType": "Interact", + "SkipConditions": { + "StepIf": { + "NearPosition": { + "Position": { + "X": -6.8438888, + "Y": 39.451496, + "Z": 259.44324 + }, + "TerritoryId": 137, + "MaximumDistance": 20 + } + } + } + }, + { + "InteractionType": "WaitForManualProgress", + "TerritoryId": 137, + "Comment": "Use Ten -> Chi -> Raiton on the dummy" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1010615, + "Position": { + "X": -8.529846, + "Y": 39.569904, + "Z": 260.8529 + }, + "TerritoryId": 137, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "InteractionType": "WaitForManualProgress", + "TerritoryId": 137, + "Comment": "Use Chi -> Ten -> Katon on the dummy" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1010615, + "Position": { + "X": -8.529846, + "Y": 39.569904, + "Z": 260.8529 + }, + "TerritoryId": 137, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "Position": { + "X": 407.71924, + "Y": 32.11566, + "Z": -14.989758 + }, + "TerritoryId": 138, + "TargetTerritoryId": 139, + "Fly": true, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Western La Noscea - Aleport", + "SkipConditions": { + "AetheryteShortcutIf": { "InTerritory": [139] }, + "StepIf": { "InTerritory": [139] } + } + }, + { + "DataId": 1010618, + "Position": { + "X": -570.82477, + "Y": -1.4935175, + "Z": -12.619263 + }, + "TerritoryId": 139, + "InteractionType": "SinglePlayerDuty", + "Fly": true + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1010618, + "Position": { + "X": -570.82477, + "Y": -1.4935175, + "Z": -12.619263 + }, + "TerritoryId": 139, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1010601, + "Position": { + "X": -14.755493, + "Y": 41.39178, + "Z": 258.13684 + }, + "TerritoryId": 137, + "InteractionType": "Interact", + "AetheryteShortcut": "Eastern La Noscea - Wineport", + "SkipConditions": { + "AetheryteShortcutIf": { "InSameTerritory": true }, + "StepIf": { + "NearPosition": { + "Position": { + "X": -25.149055, + "Y": -24.773232, + "Z": 258.15594 + }, + "TerritoryId": 137, + "MaximumDistance": 25 + } + } + }, + "TargetTerritoryId": 137 + }, + { + "DataId": 1010139, + "Position": { + "X": -33.218933, + "Y": -24.674446, + "Z": 257.98413 + }, + "TerritoryId": 137, + "InteractionType": "CompleteQuest", + "NextQuestId": 216 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/216_Pirates versus Ninjas.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/216_Pirates versus Ninjas.json new file mode 100644 index 000000000..5449a01ed --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/216_Pirates versus Ninjas.json @@ -0,0 +1,68 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "xan", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1010601, + "Position": { + "X": -14.755493, + "Y": 41.39178, + "Z": 258.13684 + }, + "TerritoryId": 137, + "InteractionType": "Interact", + "AetheryteShortcut": "Eastern La Noscea - Wineport", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { "InSameTerritory": true }, + "StepIf": { + "NearPosition": { + "Position": { + "X": -25.149055, + "Y": -24.773232, + "Z": 258.15594 + }, + "TerritoryId": 137, + "MaximumDistance": 25 + } + } + }, + "TargetTerritoryId": 137 + }, + { + "DataId": 1010139, + "Position": { + "X": -33.218933, + "Y": -24.674446, + "Z": 257.98413 + }, + "TerritoryId": 137, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1010619, + "Position": { + "X": 473.13635, + "Y": 16.492989, + "Z": 67.33801 + }, + "TerritoryId": 139, + "AetheryteShortcut": "Upper La Noscea - Camp Bronze Lake", + "SkipConditions": { + "AetheryteShortcutIf": { "InSameTerritory": true } + }, + "InteractionType": "CompleteQuest", + "NextQuestId": 217 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/217_Ninja Bathin'.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/217_Ninja Bathin'.json new file mode 100644 index 000000000..2108a0ce2 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/217_Ninja Bathin'.json @@ -0,0 +1,241 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "xan", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1010619, + "Position": { + "X": 473.13635, + "Y": 16.492989, + "Z": 67.33801 + }, + "TerritoryId": 139, + "AetheryteShortcut": "Upper La Noscea - Camp Bronze Lake", + "SkipConditions": { + "AetheryteShortcutIf": { "InSameTerritory": true } + }, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": 472.00787, + "Y": 16.493, + "Z": 62.747707 + }, + "TerritoryId": 139, + "Mount": false, + "InteractionType": "WalkTo" + }, + { + "InteractionType": "Jump", + "Position": { + "X": 472.10626, + "Y": 16.493, + "Z": 62.870472 + }, + "JumpDestination": { + "Position": { + "X": 463.8162, + "Y": 12.86743, + "Z": 59.443794 + } + }, + "TerritoryId": 139 + }, + { + "Position": { + "X": 462.61212, + "Y": 12.600694, + "Z": 60.520195 + }, + "JumpDestination": { + "Position": { + "X": 456.10245, + "Y": 12.277541, + "Z": 65.88876 + } + }, + "TerritoryId": 139, + "InteractionType": "Jump" + }, + { + "DataId": 2004930, + "Position": { + "X": 439.78027, + "Y": 12.161377, + "Z": 70.54236 + }, + "TerritoryId": 139, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": 441.9759, + "Y": 4.122239, + "Z": 81.76867 + }, + "TerritoryId": 139, + "InteractionType": "WalkTo", + "DisableNavmesh": true + }, + { + "DataId": 1010622, + "Position": { + "X": 488.365, + "Y": 16.907331, + "Z": 86.71704 + }, + "TerritoryId": 139, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1010623, + "Position": { + "X": 413.47375, + "Y": 3.6090105, + "Z": 76.21875 + }, + "TerritoryId": 139, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "Position": { + "X": 472.00787, + "Y": 16.493, + "Z": 62.747707 + }, + "TerritoryId": 139, + "Mount": false, + "InteractionType": "WalkTo" + }, + { + "InteractionType": "Jump", + "Position": { + "X": 472.10626, + "Y": 16.493, + "Z": 62.870472 + }, + "JumpDestination": { + "Position": { + "X": 463.8162, + "Y": 12.86743, + "Z": 59.443794 + } + }, + "TerritoryId": 139 + }, + { + "Position": { + "X": 462.61212, + "Y": 12.600694, + "Z": 60.520195 + }, + "JumpDestination": { + "Position": { + "X": 456.10245, + "Y": 12.277541, + "Z": 65.88876 + } + }, + "TerritoryId": 139, + "InteractionType": "Jump" + }, + { + "DataId": 1010621, + "Position": { + "X": 441.94702, + "Y": 15.396649, + "Z": 65.659546 + }, + "TerritoryId": 139, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "AetheryteShortcut": "Western La Noscea - Aleport", + "DataId": 2004931, + "Position": { + "X": 305.5924, + "Y": -25.0401, + "Z": 229.63293 + }, + "TerritoryId": 138, + "InteractionType": "SinglePlayerDuty", + "SkipConditions": { + "AetheryteShortcutIf": { "InSameTerritory": true } + } + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1010601, + "Position": { + "X": -14.755493, + "Y": 41.39178, + "Z": 258.13684 + }, + "TerritoryId": 137, + "InteractionType": "Interact", + "AetheryteShortcut": "Eastern La Noscea - Wineport", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { "InSameTerritory": true }, + "StepIf": { + "NearPosition": { + "Position": { + "X": -25.149055, + "Y": -24.773232, + "Z": 258.15594 + }, + "TerritoryId": 137, + "MaximumDistance": 25 + } + } + }, + "TargetTerritoryId": 137 + }, + { + "DataId": 1010139, + "Position": { + "X": -33.218933, + "Y": -24.674446, + "Z": 257.98413 + }, + "TerritoryId": 137, + "InteractionType": "CompleteQuest", + "NextQuestId": 232 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/232_Tough Guys.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/232_Tough Guys.json new file mode 100644 index 000000000..277b3c15a --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/232_Tough Guys.json @@ -0,0 +1,295 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "xan", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1010601, + "Position": { + "X": -14.755493, + "Y": 41.39178, + "Z": 258.13684 + }, + "TerritoryId": 137, + "InteractionType": "Interact", + "AetheryteShortcut": "Eastern La Noscea - Wineport", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { "InSameTerritory": true }, + "StepIf": { + "NearPosition": { + "Position": { + "X": -25.149055, + "Y": -24.773232, + "Z": 258.15594 + }, + "TerritoryId": 137, + "MaximumDistance": 25 + } + } + }, + "TargetTerritoryId": 137 + }, + { + "DataId": 1010139, + "Position": { + "X": -33.218933, + "Y": -24.674446, + "Z": 257.98413 + }, + "TerritoryId": 137, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "AetheryteShortcut": "Eastern La Noscea - Wineport", + "Position": { + "X": -116.833, + "Y": 70.279, + "Z": 47.983 + }, + "TerritoryId": 137, + "TargetTerritoryId": 134, + "InteractionType": "WalkTo", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { "InTerritory": [134] }, + "StepIf": { "InTerritory": [134] } + } + }, + { + "DataId": 1010573, + "Position": { + "X": -188.46423, + "Y": 30.723186, + "Z": -685.1759 + }, + "Fly": true, + "TerritoryId": 134, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [3572] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1010627, + "Position": { + "X": -189.65442, + "Y": 30.837437, + "Z": -685.298 + }, + "TerritoryId": 134, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "InteractionType": "WalkTo", + "Position": { + "X": 246.007, + "Y": 56.384, + "Z": 839.334 + }, + "Fly": true, + "TerritoryId": 137, + "TargetTerritoryId": 135, + "AetheryteShortcut": "Eastern La Noscea - Costa Del Sol", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [135] + }, + "StepIf": { "InTerritory": [135] } + } + }, + { + "DataId": 1010571, + "Position": { + "X": 491.05054, + "Y": 68.14364, + "Z": -198.50464 + }, + "TerritoryId": 135, + "Fly": true, + "KillEnemyDataIds": [3573], + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 2005006, + "Position": { + "X": 492.88147, + "Y": 68.955444, + "Z": -197.58905 + }, + "TerritoryId": 135, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1010575, + "Position": { + "X": 516.68555, + "Y": 9.414734, + "Z": 351.12524 + }, + "Fly": true, + "KillEnemyDataIds": [3572], + "TerritoryId": 137, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "AetheryteShortcut": "Eastern La Noscea - Costa Del Sol", + "SkipConditions": { + "AetheryteShortcutIf": { "InSameTerritory": true } + } + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 2005007, + "Position": { + "X": 515.5565, + "Y": 9.47583, + "Z": 349.93518 + }, + "TerritoryId": 137, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 7, + "Steps": [ + { + "DataId": 1010572, + "Position": { + "X": 209.21643, + "Y": -2.0700505, + "Z": 260.3036 + }, + "KillEnemyDataIds": [3573], + "Fly": true, + "TerritoryId": 139, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "AetheryteShortcut": "Upper La Noscea - Camp Bronze Lake", + "SkipConditions": { + "AetheryteShortcutIf": { "InSameTerritory": true } + } + } + ] + }, + { + "Sequence": 8, + "Steps": [ + { + "DataId": 2005008, + "Position": { + "X": 208.27039, + "Y": -2.0905762, + "Z": 259.84583 + }, + "TerritoryId": 139, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 9, + "Steps": [ + { + "DataId": 1010574, + "Position": { + "X": -76.98181, + "Y": 64.50076, + "Z": -241.56561 + }, + "TerritoryId": 180, + "InteractionType": "Combat", + "KillEnemyDataIds": [3572], + "EnemySpawnType": "AfterInteraction", + "AetheryteShortcut": "Outer La Noscea - Camp Overlook", + "SkipConditions": { + "AetheryteShortcutIf": { "InSameTerritory": true } + } + } + ] + }, + { + "Sequence": 10, + "Steps": [ + { + "DataId": 2005009, + "Position": { + "X": -77.195435, + "Y": 64.49988, + "Z": -240.71112 + }, + "TerritoryId": 180, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "AetheryteShortcut": "Eastern La Noscea - Wineport", + "Position": { + "X": -116.833, + "Y": 70.279, + "Z": 47.983 + }, + "TerritoryId": 137, + "TargetTerritoryId": 134, + "InteractionType": "WalkTo", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [134] + }, + "StepIf": { "InTerritory": [134] } + } + }, + { + "DataId": 2004932, + "Position": { + "X": -182.81836, + "Y": 30.533203, + "Z": -684.93176 + }, + "Fly": true, + "TerritoryId": 134, + "InteractionType": "CompleteQuest", + "NextQuestId": 233 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/233_The Crow Knows.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/233_The Crow Knows.json new file mode 100644 index 000000000..4bc21c0a0 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/233_The Crow Knows.json @@ -0,0 +1,120 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "xan", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1010628, + "Position": { + "X": -189.01355, + "Y": 30.937378, + "Z": -687.2816 + }, + "TerritoryId": 134, + "Fly": true, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Middle La Noscea - Summerford Farms", + "SkipConditions": { + "AetheryteShortcutIf": { "InSameTerritory": true } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1010629, + "Position": { + "X": -8.712891, + "Y": 39.580772, + "Z": 258.2589 + }, + "TerritoryId": 137, + "InteractionType": "Interact", + "Fly": true, + "AetheryteShortcut": "Eastern La Noscea - Wineport", + "SkipConditions": { + "AetheryteShortcutIf": { "InSameTerritory": true } + } + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1010630, + "Position": { + "X": -70.93927, + "Y": 36.04747, + "Z": 475.66956 + }, + "TerritoryId": 137, + "InteractionType": "SinglePlayerDuty", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1010631, + "Position": { + "X": -68.95557, + "Y": 36.05801, + "Z": 471.4275 + }, + "TerritoryId": 137, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1010601, + "Position": { + "X": -14.755493, + "Y": 41.39178, + "Z": 258.13684 + }, + "TerritoryId": 137, + "InteractionType": "Interact", + "AetheryteShortcut": "Eastern La Noscea - Wineport", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { "InSameTerritory": true }, + "StepIf": { + "NearPosition": { + "Position": { + "X": -25.149055, + "Y": -24.773232, + "Z": 258.15594 + }, + "TerritoryId": 137, + "MaximumDistance": 25 + } + } + }, + "TargetTerritoryId": 137 + }, + { + "DataId": 1010139, + "Position": { + "X": -33.218933, + "Y": -24.674446, + "Z": 257.98413 + }, + "TerritoryId": 137, + "InteractionType": "CompleteQuest", + "NextQuestId": 234 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/234_Master and Student.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/234_Master and Student.json new file mode 100644 index 000000000..04608f05b --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/234_Master and Student.json @@ -0,0 +1,196 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "xan", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1010601, + "Position": { + "X": -14.755493, + "Y": 41.39178, + "Z": 258.13684 + }, + "TerritoryId": 137, + "InteractionType": "Interact", + "AetheryteShortcut": "Eastern La Noscea - Wineport", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { "InSameTerritory": true }, + "StepIf": { + "NearPosition": { + "Position": { + "X": -25.149055, + "Y": -24.773232, + "Z": 258.15594 + }, + "TerritoryId": 137, + "MaximumDistance": 25 + } + } + }, + "TargetTerritoryId": 137 + }, + { + "DataId": 1010139, + "Position": { + "X": -33.218933, + "Y": -24.674446, + "Z": 257.98413 + }, + "TerritoryId": 137, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1010632, + "Position": { + "X": -33.76825, + "Y": -24.674442, + "Z": 250.32422 + }, + "TerritoryId": 137, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": 407.71924, + "Y": 32.11566, + "Z": -14.989758 + }, + "TerritoryId": 138, + "TargetTerritoryId": 139, + "Fly": true, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Western La Noscea - Aleport", + "SkipConditions": { + "AetheryteShortcutIf": { "InTerritory": [139] }, + "StepIf": { "InTerritory": [139] } + } + }, + { + "DataId": 1010633, + "Position": { + "X": -570.82477, + "Y": -1.4935175, + "Z": -12.619263 + }, + "TerritoryId": 139, + "InteractionType": "Interact", + "Fly": true, + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_JOBNIN500_00234_Q2_000_000", + "Answer": "TEXT_JOBNIN500_00234_A2_000_001" + } + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1010634, + "Position": { + "X": -560.0519, + "Y": -1.7964863, + "Z": -14.572449 + }, + "TerritoryId": 139, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1002515, + "Position": { + "X": -10.421997, + "Y": 8.921356, + "Z": 831.6013 + }, + "TerritoryId": 135, + "InteractionType": "Interact", + "Fly": true, + "AetheryteShortcut": "Lower La Noscea - Moraby Drydocks", + "SkipConditions": { + "AetheryteShortcutIf": { "InSameTerritory": true } + } + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 2004935, + "Position": { + "X": 19.943481, + "Y": 42.923584, + "Z": 855.46655 + }, + "TerritoryId": 135, + "InteractionType": "SinglePlayerDuty", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1010601, + "Position": { + "X": -14.755493, + "Y": 41.39178, + "Z": 258.13684 + }, + "TerritoryId": 137, + "InteractionType": "Interact", + "AetheryteShortcut": "Eastern La Noscea - Wineport", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { "InSameTerritory": true }, + "StepIf": { + "NearPosition": { + "Position": { + "X": -25.149055, + "Y": -24.773232, + "Z": 258.15594 + }, + "TerritoryId": 137, + "MaximumDistance": 25 + } + } + }, + "TargetTerritoryId": 137 + }, + { + "DataId": 1010139, + "Position": { + "X": -33.218933, + "Y": -24.674446, + "Z": 257.98413 + }, + "TerritoryId": 137, + "InteractionType": "CompleteQuest", + "NextQuestId": 235 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/235_Strangers in a Strange Land.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/235_Strangers in a Strange Land.json new file mode 100644 index 000000000..c0da4f4e3 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/235_Strangers in a Strange Land.json @@ -0,0 +1,225 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "xan", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1010601, + "Position": { + "X": -14.755493, + "Y": 41.39178, + "Z": 258.13684 + }, + "TerritoryId": 137, + "InteractionType": "Interact", + "AetheryteShortcut": "Eastern La Noscea - Wineport", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { "InSameTerritory": true }, + "StepIf": { + "NearPosition": { + "Position": { + "X": -25.149055, + "Y": -24.773232, + "Z": 258.15594 + }, + "TerritoryId": 137, + "MaximumDistance": 25 + } + } + }, + "TargetTerritoryId": 137 + }, + { + "DataId": 1010139, + "Position": { + "X": -33.218933, + "Y": -24.674446, + "Z": 257.98413 + }, + "TerritoryId": 137, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1009944, + "Position": { + "X": -152.66656, + "Y": 2.8562405, + "Z": 243.18298 + }, + "TerritoryId": 129, + "TargetTerritoryId": 129, + "InteractionType": "Interact", + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] Fishermens' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": -151.80984, + "Y": -128.6493, + "Z": 265.27332 + }, + "TerritoryId": 129, + "MaximumDistance": 50 + } + }, + "StepIf": { + "NearPosition": { + "Position": { + "X": -151.80984, + "Y": -128.6493, + "Z": 265.27332 + }, + "TerritoryId": 129, + "MaximumDistance": 50 + } + } + } + }, + { + "DataId": 1009943, + "Position": { + "X": -153.36847, + "Y": -129.4397, + "Z": 265.88843 + }, + "TerritoryId": 129, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1013884, + "Position": { + "X": 172.8999, + "Y": 95.27325, + "Z": -202.92981 + }, + "TerritoryId": 134, + "InteractionType": "Interact", + "AetheryteShortcut": "Middle La Noscea - Summerford Farms", + "SkipConditions": { + "AetheryteShortcutIf": { "InSameTerritory": true } + } + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2005921, + "Position": { + "X": 30.990967, + "Y": 60.65454, + "Z": -205.40173 + }, + "TerritoryId": 134, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 2005922, + "Position": { + "X": -90.37921, + "Y": 43.045654, + "Z": -308.30853 + }, + "TerritoryId": 134, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 2005923, + "Position": { + "X": -148.02783, + "Y": 20.309753, + "Z": -339.40643 + }, + "TerritoryId": 134, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1013892, + "Position": { + "X": -19.241638, + "Y": 12.516694, + "Z": -462.66882 + }, + "TerritoryId": 134, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1010601, + "Position": { + "X": -14.755493, + "Y": 41.39178, + "Z": 258.13684 + }, + "TerritoryId": 137, + "InteractionType": "Interact", + "AetheryteShortcut": "Eastern La Noscea - Wineport", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { "InSameTerritory": true }, + "StepIf": { + "NearPosition": { + "Position": { + "X": -25.149055, + "Y": -24.773232, + "Z": 258.15594 + }, + "TerritoryId": 137, + "MaximumDistance": 25 + } + } + }, + "TargetTerritoryId": 137 + }, + { + "DataId": 1010139, + "Position": { + "X": -33.218933, + "Y": -24.674446, + "Z": 257.98413 + }, + "TerritoryId": 137, + "InteractionType": "CompleteQuest", + "NextQuestId": 1684 + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Class Quests/NIN/1684_The Impossible Girl.json b/QuestPaths/3.x - Heavensward/Class Quests/NIN/1684_The Impossible Girl.json new file mode 100644 index 000000000..b4bf12a18 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Class Quests/NIN/1684_The Impossible Girl.json @@ -0,0 +1,197 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "xan", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1010601, + "Position": { + "X": -14.755493, + "Y": 41.39178, + "Z": 258.13684 + }, + "TerritoryId": 137, + "InteractionType": "Interact", + "AetheryteShortcut": "Eastern La Noscea - Wineport", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { "InSameTerritory": true }, + "StepIf": { + "NearPosition": { + "Position": { + "X": -25.149055, + "Y": -24.773232, + "Z": 258.15594 + }, + "TerritoryId": 137, + "MaximumDistance": 25 + } + } + }, + "TargetTerritoryId": 137 + }, + { + "DataId": 1010139, + "Position": { + "X": -33.218933, + "Y": -24.674446, + "Z": 257.98413 + }, + "TerritoryId": 137, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": 227.31966, + "Y": -0.91833544, + "Z": 258.60855 + }, + "TerritoryId": 139, + "InteractionType": "WalkTo", + "Fly": true, + "AetheryteShortcut": "Upper La Noscea - Camp Bronze Lake" + }, + { + "DataId": 1003587, + "Position": { + "X": 220.90479, + "Y": -0.9591979, + "Z": 257.4043 + }, + "TerritoryId": 139, + "Mount": false, + "InteractionType": "Interact", + "TargetTerritoryId": 139 + }, + { + "DataId": 1013893, + "Position": { + "X": -335.2865, + "Y": -2.7013655, + "Z": 135.17957 + }, + "TerritoryId": 139, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2005925, + "Position": { + "X": -449.08832, + "Y": -1.2055054, + "Z": 116.59412 + }, + "KillEnemyDataIds": [5048, 5046], + "TerritoryId": 139, + "InteractionType": "Combat", + "EnemySpawnType": "AfterItemUse", + "ItemId": 2001723, + "CompletionQuestVariablesFlags": [null, null, null, null, null, 128], + "$.0": "[1]", + "$.1": "QuestVariables if done first: 16 32 32 0 0 128" + }, + { + "DataId": 2005926, + "Position": { + "X": -424.24664, + "Y": -5.1728516, + "Z": 168.65796 + }, + "TerritoryId": 139, + "InteractionType": "Combat", + "KillEnemyDataIds": [5046, 5048], + "EnemySpawnType": "AfterItemUse", + "ItemId": 2001723, + "CompletionQuestVariablesFlags": [null, null, null, null, null, 64], + "$.0": "[2]", + "$.1": "QuestVariables if done after [1]: 34 32 16 0 0 192" + }, + { + "DataId": 2005927, + "Position": { + "X": -457.75543, + "Y": -12.64978, + "Z": 218.92114 + }, + "KillEnemyDataIds": [5042, 4619], + "TerritoryId": 139, + "InteractionType": "Combat", + "EnemySpawnType": "AfterItemUse", + "ItemId": 2001723, + "CompletionQuestVariablesFlags": [null, null, null, null, null, 32], + "$.0": "[3]", + "$.1": "QuestVariables if done first: 16 3 32 0 0 32" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1013896, + "Position": { + "X": -430.89954, + "Y": -12.362141, + "Z": 208.23987 + }, + "TerritoryId": 139, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1010601, + "Position": { + "X": -14.755493, + "Y": 41.39178, + "Z": 258.13684 + }, + "TerritoryId": 137, + "InteractionType": "Interact", + "AetheryteShortcut": "Eastern La Noscea - Wineport", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { "InSameTerritory": true }, + "StepIf": { + "NearPosition": { + "Position": { + "X": -25.149055, + "Y": -24.773232, + "Z": 258.15594 + }, + "TerritoryId": 137, + "MaximumDistance": 25 + } + } + }, + "TargetTerritoryId": 137 + }, + { + "DataId": 1010139, + "Position": { + "X": -33.218933, + "Y": -24.674446, + "Z": 257.98413 + }, + "TerritoryId": 137, + "InteractionType": "CompleteQuest", + "NextQuestId": 1685 + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Class Quests/NIN/1685_Ninja Assassin.json b/QuestPaths/3.x - Heavensward/Class Quests/NIN/1685_Ninja Assassin.json new file mode 100644 index 000000000..7fd6311f4 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Class Quests/NIN/1685_Ninja Assassin.json @@ -0,0 +1,227 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "xan", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1010601, + "Position": { + "X": -14.755493, + "Y": 41.39178, + "Z": 258.13684 + }, + "TerritoryId": 137, + "InteractionType": "Interact", + "AetheryteShortcut": "Eastern La Noscea - Wineport", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { "InSameTerritory": true }, + "StepIf": { + "NearPosition": { + "Position": { + "X": -25.149055, + "Y": -24.773232, + "Z": 258.15594 + }, + "TerritoryId": 137, + "MaximumDistance": 25 + } + } + }, + "TargetTerritoryId": 137 + }, + { + "DataId": 1010139, + "Position": { + "X": -33.218933, + "Y": -24.674446, + "Z": 257.98413 + }, + "TerritoryId": 137, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1013898, + "Position": { + "X": 107.71338, + "Y": 68.15523, + "Z": 332.5094 + }, + "TerritoryId": 135, + "InteractionType": "Interact", + "Fly": true, + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_JOBNIN540_01685_Q1_000_000", + "Answer": "TEXT_JOBNIN540_01685_A1_000_020" + } + ], + "AetheryteShortcut": "Lower La Noscea - Moraby Drydocks", + "SkipConditions": { + "AetheryteShortcutIf": { "InSameTerritory": true } + } + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": -11.615023, + "Y": 66.32614, + "Z": 421.28235 + }, + "TerritoryId": 135, + "InteractionType": "WalkTo" + }, + { + "TerritoryId": 135, + "InteractionType": "WaitForManualProgress", + "Comment": "Use Raiton on destination" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "Position": { + "X": -45.41632, + "Y": 50.40381, + "Z": 519.4183 + }, + "TerritoryId": 135, + "InteractionType": "WalkTo" + }, + { + "TerritoryId": 135, + "InteractionType": "WaitForManualProgress", + "Comment": "Use Raiton on destination" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "Position": { + "X": -91.23599, + "Y": 28.63774, + "Z": 617.4151 + }, + "TerritoryId": 135, + "InteractionType": "WalkTo" + }, + { + "TerritoryId": 135, + "InteractionType": "WaitForManualProgress", + "Comment": "Use Raiton on destination" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 2005931, + "Position": { + "X": -185.41241, + "Y": 0.015197754, + "Z": 678.8281 + }, + "TerritoryId": 135, + "Fly": true, + "InteractionType": "SinglePlayerDuty" + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1013906, + "Position": { + "X": -136.88867, + "Y": 2.2586327, + "Z": 697.8407 + }, + "TerritoryId": 135, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 7, + "Steps": [ + { + "DataId": 1013908, + "Position": { + "X": -38.010254, + "Y": 71.439964, + "Z": 111.95532 + }, + "TerritoryId": 135, + "InteractionType": "Interact", + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] Tempest Gate (Lower La Noscea)" + ], + "SkipConditions": { "AetheryteShortcutIf": { "InTerritory": [129] } } + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1010601, + "Position": { + "X": -14.755493, + "Y": 41.39178, + "Z": 258.13684 + }, + "TerritoryId": 137, + "InteractionType": "Interact", + "AetheryteShortcut": "Eastern La Noscea - Wineport", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { "InSameTerritory": true }, + "StepIf": { + "NearPosition": { + "Position": { + "X": -25.149055, + "Y": -24.773232, + "Z": 258.15594 + }, + "TerritoryId": 137, + "MaximumDistance": 25 + } + } + }, + "TargetTerritoryId": 137 + }, + { + "DataId": 1010139, + "Position": { + "X": -33.218933, + "Y": -24.674446, + "Z": 257.98413 + }, + "TerritoryId": 137, + "InteractionType": "CompleteQuest", + "NextQuestId": 1686 + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Class Quests/NIN/1686_Medieval Espionage.json b/QuestPaths/3.x - Heavensward/Class Quests/NIN/1686_Medieval Espionage.json new file mode 100644 index 000000000..1fac612b4 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Class Quests/NIN/1686_Medieval Espionage.json @@ -0,0 +1,215 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "xan", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1010601, + "Position": { + "X": -14.755493, + "Y": 41.39178, + "Z": 258.13684 + }, + "TerritoryId": 137, + "InteractionType": "Interact", + "AetheryteShortcut": "Eastern La Noscea - Wineport", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { "InSameTerritory": true }, + "StepIf": { + "NearPosition": { + "Position": { + "X": -25.149055, + "Y": -24.773232, + "Z": 258.15594 + }, + "TerritoryId": 137, + "MaximumDistance": 25 + } + } + }, + "TargetTerritoryId": 137 + }, + { + "DataId": 1010139, + "Position": { + "X": -33.218933, + "Y": -24.674446, + "Z": 257.98413 + }, + "TerritoryId": 137, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1009944, + "Position": { + "X": -152.66656, + "Y": 2.8562405, + "Z": 243.18298 + }, + "TerritoryId": 129, + "TargetTerritoryId": 129, + "InteractionType": "Interact", + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] Fishermens' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": -151.80984, + "Y": -128.6493, + "Z": 265.27332 + }, + "TerritoryId": 129, + "MaximumDistance": 50 + } + }, + "StepIf": { + "NearPosition": { + "Position": { + "X": -151.80984, + "Y": -128.6493, + "Z": 265.27332 + }, + "TerritoryId": 129, + "MaximumDistance": 50 + } + } + } + }, + { + "DataId": 1009943, + "Position": { + "X": -153.36847, + "Y": -129.4397, + "Z": 265.88843 + }, + "TerritoryId": 129, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "InteractionType": "WalkTo", + "Position": { + "X": 246.007, + "Y": 56.384, + "Z": 839.334 + }, + "Fly": true, + "TerritoryId": 137, + "TargetTerritoryId": 135, + "AetheryteShortcut": "Eastern La Noscea - Costa Del Sol", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [135] + }, + "StepIf": { "InTerritory": [135] } + } + }, + { + "Position": { + "X": 508.80716, + "Y": 95.940796, + "Z": -450.35608 + }, + "TerritoryId": 135, + "Fly": true, + "KillEnemyDataIds": [4616], + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1013909, + "Position": { + "X": 508.75085, + "Y": 95.94249, + "Z": -450.2785 + }, + "TerritoryId": 135, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 2005932, + "Position": { + "X": 483.36, + "Y": 10.879639, + "Z": 348.89746 + }, + "TerritoryId": 137, + "InteractionType": "Interact", + "AetheryteShortcut": "Eastern La Noscea - Costa Del Sol", + "SkipConditions": { + "AetheryteShortcutIf": { "InSameTerritory": true } + } + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1010601, + "Position": { + "X": -14.755493, + "Y": 41.39178, + "Z": 258.13684 + }, + "TerritoryId": 137, + "InteractionType": "Interact", + "AetheryteShortcut": "Eastern La Noscea - Wineport", + "Fly": true, + "SkipConditions": { + "StepIf": { + "NearPosition": { + "Position": { + "X": -25.149055, + "Y": -24.773232, + "Z": 258.15594 + }, + "TerritoryId": 137, + "MaximumDistance": 25 + } + } + }, + "TargetTerritoryId": 137 + }, + { + "DataId": 1010139, + "Position": { + "X": -33.218933, + "Y": -24.674446, + "Z": 257.98413 + }, + "TerritoryId": 137, + "InteractionType": "CompleteQuest", + "NextQuestId": 1687 + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Class Quests/NIN/1687_Staying Alive.json b/QuestPaths/3.x - Heavensward/Class Quests/NIN/1687_Staying Alive.json new file mode 100644 index 000000000..9d8c74d85 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Class Quests/NIN/1687_Staying Alive.json @@ -0,0 +1,203 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "xan", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1010601, + "Position": { + "X": -14.755493, + "Y": 41.39178, + "Z": 258.13684 + }, + "TerritoryId": 137, + "InteractionType": "Interact", + "AetheryteShortcut": "Eastern La Noscea - Wineport", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { "InSameTerritory": true }, + "StepIf": { + "NearPosition": { + "Position": { + "X": -25.149055, + "Y": -24.773232, + "Z": 258.15594 + }, + "TerritoryId": 137, + "MaximumDistance": 25 + } + } + }, + "TargetTerritoryId": 137 + }, + { + "DataId": 1010139, + "Position": { + "X": -33.218933, + "Y": -24.674446, + "Z": 257.98413 + }, + "TerritoryId": 137, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1001208, + "Position": { + "X": -228.16821, + "Y": 16, + "Z": 50.644653 + }, + "TerritoryId": 129, + "InteractionType": "Interact", + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] Hawkers' Alley" + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2005934, + "Position": { + "X": -188.79993, + "Y": 1.7241821, + "Z": 207.7821 + }, + "TerritoryId": 129, + "InteractionType": "UseItem", + "ItemId": 2001725, + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Hawkers' Alley", + "[Limsa Lominsa] Fishermens' Guild" + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2005935, + "Position": { + "X": -175.55511, + "Y": 3.982544, + "Z": 179.24768 + }, + "TerritoryId": 129, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "Position": { + "X": 234.53989, + "Y": -56.43721, + "Z": -254.02878 + }, + "TerritoryId": 398, + "InteractionType": "WalkTo", + "AetheryteShortcut": "The Dravanian Forelands - Tailfeather" + }, + { + "DataId": 1013912, + "Position": { + "X": 230.73157, + "Y": -56.71082, + "Z": -247.21143 + }, + "TerritoryId": 398, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 2005938, + "Position": { + "X": 163.28674, + "Y": -64.2558, + "Z": -102.89166 + }, + "TerritoryId": 398, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [5042, 4619] + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1015302, + "Position": { + "X": 237.59814, + "Y": -54.04252, + "Z": -217.02905 + }, + "TerritoryId": 398, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1010601, + "Position": { + "X": -14.755493, + "Y": 41.39178, + "Z": 258.13684 + }, + "TerritoryId": 137, + "InteractionType": "Interact", + "AetheryteShortcut": "Eastern La Noscea - Wineport", + "Fly": true, + "SkipConditions": { + "StepIf": { + "NearPosition": { + "Position": { + "X": -25.149055, + "Y": -24.773232, + "Z": 258.15594 + }, + "TerritoryId": 137, + "MaximumDistance": 25 + } + } + }, + "TargetTerritoryId": 137 + }, + { + "DataId": 1010139, + "Position": { + "X": -33.218933, + "Y": -24.674446, + "Z": 257.98413 + }, + "TerritoryId": 137, + "InteractionType": "CompleteQuest", + "NextQuestId": 1688 + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Class Quests/NIN/1688_In Her Defense.json b/QuestPaths/3.x - Heavensward/Class Quests/NIN/1688_In Her Defense.json new file mode 100644 index 000000000..5003e0636 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Class Quests/NIN/1688_In Her Defense.json @@ -0,0 +1,253 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "xan", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1010601, + "Position": { + "X": -14.755493, + "Y": 41.39178, + "Z": 258.13684 + }, + "TerritoryId": 137, + "InteractionType": "Interact", + "AetheryteShortcut": "Eastern La Noscea - Wineport", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { "InSameTerritory": true }, + "StepIf": { + "NearPosition": { + "Position": { + "X": -25.149055, + "Y": -24.773232, + "Z": 258.15594 + }, + "TerritoryId": 137, + "MaximumDistance": 25 + } + } + }, + "TargetTerritoryId": 137 + }, + { + "DataId": 1010139, + "Position": { + "X": -33.218933, + "Y": -24.674446, + "Z": 257.98413 + }, + "TerritoryId": 137, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2004966, + "Position": { + "X": -16.128845, + "Y": -23.300598, + "Z": 258.13684 + }, + "TerritoryId": 137, + "TargetTerritoryId": 137, + "InteractionType": "Interact", + "SkipConditions": { + "StepIf": { + "NearPosition": { + "Position": { + "X": -6.8438888, + "Y": 39.451496, + "Z": 259.44324 + }, + "TerritoryId": 137, + "MaximumDistance": 20 + } + } + } + }, + { + "DataId": 2005940, + "Position": { + "X": -4.867676, + "Y": 39.414062, + "Z": 263.7826 + }, + "TerritoryId": 137, + "InteractionType": "Combat", + "EnemySpawnType": "AfterEmote", + "KillEnemyDataIds": [5042, 4619], + "Emote": "doze", + "CompletionQuestVariablesFlags": [null, null, null, null, null, 128] + }, + { + "DataId": 2005941, + "Position": { + "X": -47.104614, + "Y": 39.749634, + "Z": 255.6648 + }, + "TerritoryId": 137, + "InteractionType": "Combat", + "EnemySpawnType": "AfterEmote", + "KillEnemyDataIds": [5042, 4619], + "Emote": "doze", + "CompletionQuestVariablesFlags": [null, null, null, null, null, 64] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1010601, + "Position": { + "X": -14.755493, + "Y": 41.39178, + "Z": 258.13684 + }, + "TerritoryId": 137, + "InteractionType": "Interact", + "AetheryteShortcut": "Eastern La Noscea - Wineport", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { "InSameTerritory": true }, + "StepIf": { + "NearPosition": { + "Position": { + "X": -25.149055, + "Y": -24.773232, + "Z": 258.15594 + }, + "TerritoryId": 137, + "MaximumDistance": 25 + } + } + }, + "TargetTerritoryId": 137 + }, + { + "DataId": 1010139, + "Position": { + "X": -33.218933, + "Y": -24.674446, + "Z": 257.98413 + }, + "TerritoryId": 137, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1013916, + "Position": { + "X": 103.990234, + "Y": 53.596413, + "Z": 674.8607 + }, + "TerritoryId": 135, + "Fly": true, + "InteractionType": "Interact", + "AetheryteShortcut": "Lower La Noscea - Moraby Drydocks" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 2005942, + "Position": { + "X": 122.545166, + "Y": 60.65454, + "Z": 934.47766 + }, + "TerritoryId": 135, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1013920, + "Position": { + "X": 259.60168, + "Y": 4.4031205, + "Z": 715.3887 + }, + "TerritoryId": 135, + "Fly": true, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1013920, + "Position": { + "X": 259.60168, + "Y": 4.4031205, + "Z": 715.3887 + }, + "TerritoryId": 135, + "InteractionType": "SinglePlayerDuty" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1010601, + "Position": { + "X": -14.755493, + "Y": 41.39178, + "Z": 258.13684 + }, + "TerritoryId": 137, + "InteractionType": "Interact", + "AetheryteShortcut": "Eastern La Noscea - Wineport", + "Fly": true, + "SkipConditions": { + "StepIf": { + "NearPosition": { + "Position": { + "X": -25.149055, + "Y": -24.773232, + "Z": 258.15594 + }, + "TerritoryId": 137, + "MaximumDistance": 25 + } + } + }, + "TargetTerritoryId": 137 + }, + { + "DataId": 1010139, + "Position": { + "X": -33.218933, + "Y": -24.674446, + "Z": 257.98413 + }, + "TerritoryId": 137, + "InteractionType": "CompleteQuest", + "NextQuestId": 2948 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Class Quests/NIN/2948_Search for the Stolen Scroll.json b/QuestPaths/4.x - Stormblood/Class Quests/NIN/2948_Search for the Stolen Scroll.json new file mode 100644 index 000000000..da54b86af --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/NIN/2948_Search for the Stolen Scroll.json @@ -0,0 +1,243 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "xan", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1010601, + "Position": { + "X": -14.755493, + "Y": 41.39178, + "Z": 258.13684 + }, + "TerritoryId": 137, + "InteractionType": "Interact", + "AetheryteShortcut": "Eastern La Noscea - Wineport", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { "InSameTerritory": true }, + "StepIf": { + "NearPosition": { + "Position": { + "X": -25.149055, + "Y": -24.773232, + "Z": 258.15594 + }, + "TerritoryId": 137, + "MaximumDistance": 25 + } + } + }, + "TargetTerritoryId": 137 + }, + { + "DataId": 1010139, + "Position": { + "X": -33.218933, + "Y": -24.674446, + "Z": 257.98413 + }, + "TerritoryId": 137, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1009944, + "Position": { + "X": -152.66656, + "Y": 2.8562405, + "Z": 243.18298 + }, + "TerritoryId": 129, + "TargetTerritoryId": 129, + "InteractionType": "Interact", + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] Fishermens' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": -151.80984, + "Y": -128.6493, + "Z": 265.27332 + }, + "TerritoryId": 129, + "MaximumDistance": 50 + } + }, + "StepIf": { + "NearPosition": { + "Position": { + "X": -151.80984, + "Y": -128.6493, + "Z": 265.27332 + }, + "TerritoryId": 129, + "MaximumDistance": 50 + } + } + } + }, + { + "DataId": 1009943, + "Position": { + "X": -153.36847, + "Y": -129.4397, + "Z": 265.88843 + }, + "TerritoryId": 129, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1005411, + "Position": { + "X": 13.412659, + "Y": 40.2, + "Z": -13.260071 + }, + "TerritoryId": 128, + "InteractionType": "Interact", + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] The Aftcastle" + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1003597, + "Position": { + "X": 8.194031, + "Y": 39.999973, + "Z": 17.746216 + }, + "TerritoryId": 128, + "TargetTerritoryId": 129, + "InteractionType": "Interact", + "SkipConditions": { "StepIf": { "InTerritory": [129] } } + }, + { + "DataId": 1023751, + "Position": { + "X": 0.62561035, + "Y": 20.333344, + "Z": 5.935669 + }, + "TerritoryId": 129, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1023545, + "Position": { + "X": -3.8911133, + "Y": 66.760155, + "Z": 45.303955 + }, + "TerritoryId": 137, + "InteractionType": "Interact", + "AetheryteShortcut": "Eastern La Noscea - Wineport" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1023547, + "Position": { + "X": 468.80298, + "Y": 10.538202, + "Z": 774.13586 + }, + "TerritoryId": 137, + "Fly": true, + "KillEnemyDataIds": [7496], + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "AetheryteShortcut": "Eastern La Noscea - Costa Del Sol" + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1023550, + "Position": { + "X": 477.10376, + "Y": 11.543927, + "Z": 232.28796 + }, + "TerritoryId": 137, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1010601, + "Position": { + "X": -14.755493, + "Y": 41.39178, + "Z": 258.13684 + }, + "TerritoryId": 137, + "InteractionType": "Interact", + "AetheryteShortcut": "Eastern La Noscea - Wineport", + "Fly": true, + "SkipConditions": { + "StepIf": { + "NearPosition": { + "Position": { + "X": -25.149055, + "Y": -24.773232, + "Z": 258.15594 + }, + "TerritoryId": 137, + "MaximumDistance": 25 + } + } + }, + "TargetTerritoryId": 137 + }, + { + "DataId": 1010139, + "Position": { + "X": -33.218933, + "Y": -24.674446, + "Z": 257.98413 + }, + "TerritoryId": 137, + "InteractionType": "CompleteQuest", + "NextQuestId": 2949 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Class Quests/NIN/2949_Ninja Bathin' Redux.json b/QuestPaths/4.x - Stormblood/Class Quests/NIN/2949_Ninja Bathin' Redux.json new file mode 100644 index 000000000..0db541cf8 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/NIN/2949_Ninja Bathin' Redux.json @@ -0,0 +1,290 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "xan", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1010601, + "Position": { + "X": -14.755493, + "Y": 41.39178, + "Z": 258.13684 + }, + "TerritoryId": 137, + "InteractionType": "Interact", + "AetheryteShortcut": "Eastern La Noscea - Wineport", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { "InSameTerritory": true }, + "StepIf": { + "NearPosition": { + "Position": { + "X": -25.149055, + "Y": -24.773232, + "Z": 258.15594 + }, + "TerritoryId": 137, + "MaximumDistance": 25 + } + } + }, + "TargetTerritoryId": 137 + }, + { + "DataId": 1010778, + "Position": { + "X": -28.854858, + "Y": -24.773243, + "Z": 265.3086 + }, + "TerritoryId": 137, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1023555, + "Position": { + "X": 116.349976, + "Y": 11.993538, + "Z": -40.45172 + }, + "TerritoryId": 628, + "InteractionType": "Interact", + "AetheryteShortcut": "Kugane", + "AethernetShortcut": [ + "[Kugane] Aetheryte Plaza", + "[Kugane] Sekiseigumi Barracks" + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": -22.793612, + "Y": 2.2649765e-6, + "Z": -60.22008 + }, + "TerritoryId": 628, + "InteractionType": "WalkTo", + "AethernetShortcut": [ + "[Kugane] Sekiseigumi Barracks", + "[Kugane] Aetheryte Plaza" + ], + "SkipConditions": { + "StepIf": { + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + } + } + }, + { + "InteractionType": "WaitForManualProgress", + "TerritoryId": 628, + "Comment": "Hide, then approach Loutish Lickspittle", + "CompletionQuestVariablesFlags": [null, null, null, null, null, 128] + }, + { + "Position": { + "X": -53.864307, + "Y": -2.1307263, + "Z": -106.929726 + }, + "TerritoryId": 628, + "InteractionType": "WalkTo" + }, + { + "InteractionType": "WaitForManualProgress", + "TerritoryId": 628, + "Comment": "Hide, then approach the two NPCs downstairs" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1023555, + "Position": { + "X": 116.349976, + "Y": 11.993538, + "Z": -40.45172 + }, + "TerritoryId": 628, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Kugane] Aetheryte Plaza", + "[Kugane] Sekiseigumi Barracks" + ] + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "JumpDestination": { + "Position": { + "X": -70.46664, + "Y": 19.583387, + "Z": -163.98515 + } + }, + "Position": { + "X": -75.76606, + "Y": 18, + "Z": -164.78288 + }, + "InteractionType": "Jump", + "TerritoryId": 628, + "AethernetShortcut": [ + "[Kugane] Sekiseigumi Barracks", + "[Kugane] Bokairo Inn" + ] + }, + { + "JumpDestination": { + "Position": { + "X": -67.09049, + "Y": 20.600859, + "Z": -163.70255 + } + }, + "Position": { + "X": -70.54904, + "Y": 19.550425, + "Z": -163.96664 + }, + "TerritoryId": 628, + "InteractionType": "Jump" + }, + { + "JumpDestination": { + "Position": { + "X": -67.90176, + "Y": 24.143099, + "Z": -159.9363 + } + }, + "Position": { + "X": -68.15528, + "Y": 20.696194, + "Z": -163.4804 + }, + "TerritoryId": 628, + "InteractionType": "Jump" + }, + { + "Position": { + "X": -39.38211, + "Y": 20.545578, + "Z": -156.03827 + }, + "TerritoryId": 628, + "InteractionType": "WalkTo", + "DisableNavmesh": true + }, + { + "DataId": 2008933, + "Position": { + "X": -40.05493, + "Y": 18.783813, + "Z": -143.3891 + }, + "TerritoryId": 628, + "InteractionType": "Interact", + "DisableNavmesh": true + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "Position": { + "X": -55.23437, + "Y": 5.9548235, + "Z": -144.91388 + }, + "TerritoryId": 628, + "InteractionType": "WalkTo", + "DisableNavmesh": true + }, + { + "DataId": 2008934, + "Position": { + "X": -117.5708, + "Y": 13.412659, + "Z": -134.35571 + }, + "TerritoryId": 628, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 2008935, + "Position": { + "X": -118.18121, + "Y": 13.199036, + "Z": -143.14496 + }, + "TerritoryId": 628, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 7, + "Steps": [ + { + "DataId": 2008936, + "Position": { + "X": -107.49988, + "Y": 19.241516, + "Z": -201.31226 + }, + "TerritoryId": 628, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 2008937, + "Position": { + "X": 116.80774, + "Y": 11.9782715, + "Z": -38.345947 + }, + "TerritoryId": 628, + "InteractionType": "CompleteQuest", + "AethernetShortcut": [ + "[Kugane] Bokairo Inn", + "[Kugane] Sekiseigumi Barracks" + ], + "NextQuestId": 2950 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Class Quests/NIN/2950_A Game of Life and Death.json b/QuestPaths/4.x - Stormblood/Class Quests/NIN/2950_A Game of Life and Death.json new file mode 100644 index 000000000..90ad79668 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/NIN/2950_A Game of Life and Death.json @@ -0,0 +1,143 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "xan", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1023555, + "Position": { + "X": 116.349976, + "Y": 11.993538, + "Z": -40.45172 + }, + "TerritoryId": 628, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Kugane", + "SkipConditions": { + "AetheryteShortcutIf": { "InSameTerritory": true } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1023565, + "Position": { + "X": 60.77661, + "Y": 2.011992, + "Z": 34.042847 + }, + "TerritoryId": 628, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Kugane] Sekiseigumi Barracks", + "[Kugane] Kogane Dori Markets" + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1023566, + "Position": { + "X": 8.682312, + "Y": 4, + "Z": 49.881714 + }, + "TerritoryId": 628, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1023565, + "Position": { + "X": 60.77661, + "Y": 2.011992, + "Z": 34.042847 + }, + "TerritoryId": 628, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1023555, + "Position": { + "X": 116.349976, + "Y": 11.993538, + "Z": -40.45172 + }, + "TerritoryId": 628, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Kugane] Kogane Dori Markets", + "[Kugane] Sekiseigumi Barracks" + ] + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1023567, + "Position": { + "X": 696.681, + "Y": -0.051437557, + "Z": 22.659607 + }, + "TerritoryId": 613, + "Fly": true, + "InteractionType": "SinglePlayerDuty", + "AetheryteShortcut": "Ruby Sea - Tamamizu", + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": 696.681, + "Y": -0.051437557, + "Z": 22.659607 + }, + "MaximumDistance": 100, + "TerritoryId": 613 + } + } + } + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1023570, + "Position": { + "X": 412.16138, + "Y": 68.02851, + "Z": -96.75751 + }, + "TerritoryId": 614, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Yanxia - Namai", + "SkipConditions": { + "AetheryteShortcutIf": { "InSameTerritory": true } + }, + "NextQuestId": 2951 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Class Quests/NIN/2951_True Enlightenment.json b/QuestPaths/4.x - Stormblood/Class Quests/NIN/2951_True Enlightenment.json new file mode 100644 index 000000000..326f2abc5 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/NIN/2951_True Enlightenment.json @@ -0,0 +1,149 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "xan", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1023571, + "Position": { + "X": 413.0769, + "Y": 68.02851, + "Z": -99.321045 + }, + "TerritoryId": 614, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Yanxia - Namai", + "SkipConditions": { + "AetheryteShortcutIf": { "InSameTerritory": true } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1023573, + "Position": { + "X": 703.24243, + "Y": 107.83904, + "Z": -341.45117 + }, + "TerritoryId": 614, + "Fly": true, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1023570, + "Position": { + "X": 412.16138, + "Y": 68.02851, + "Z": -96.75751 + }, + "TerritoryId": 614, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1023577, + "Position": { + "X": 693.2936, + "Y": 171.37398, + "Z": 84.82483 + }, + "TerritoryId": 614, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1023570, + "Position": { + "X": 412.16138, + "Y": 68.02851, + "Z": -96.75751 + }, + "TerritoryId": 614, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "Position": { + "X": 555.4114, + "Y": 16.160986, + "Z": 390.68732 + }, + "TerritoryId": 614, + "InteractionType": "Combat", + "KillEnemyDataIds": [6641], + "EnemySpawnType": "OverworldEnemies" + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1023570, + "Position": { + "X": 412.16138, + "Y": 68.02851, + "Z": -96.75751 + }, + "TerritoryId": 614, + "InteractionType": "Interact", + "AetheryteShortcut": "Yanxia - Namai" + } + ] + }, + { + "Sequence": 7, + "Steps": [ + { + "DataId": 1023577, + "Position": { + "X": 693.2936, + "Y": 171.37398, + "Z": 84.82483 + }, + "TerritoryId": 614, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1023570, + "Position": { + "X": 412.16138, + "Y": 68.02851, + "Z": -96.75751 + }, + "TerritoryId": 614, + "InteractionType": "CompleteQuest", + "NextQuestId": 2952 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Class Quests/NIN/2952_When Clans Collide.json b/QuestPaths/4.x - Stormblood/Class Quests/NIN/2952_When Clans Collide.json new file mode 100644 index 000000000..ba6035e0b --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/NIN/2952_When Clans Collide.json @@ -0,0 +1,97 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "xan", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1023570, + "Position": { + "X": 413.0769, + "Y": 68.02851, + "Z": -99.321045 + }, + "TerritoryId": 614, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Yanxia - Namai", + "SkipConditions": { + "AetheryteShortcutIf": { "InSameTerritory": true } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2008939, + "Position": { + "X": -174.60901, + "Y": 1.1138916, + "Z": 767.5134 + }, + "TerritoryId": 622, + "InteractionType": "SinglePlayerDuty", + "Fly": true, + "AetheryteShortcut": "Azim Steppe - Dawn Throne", + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": -174.60901, + "Y": 1.1138916, + "Z": 767.5134 + }, + "MaximumDistance": 100, + "TerritoryId": 622 + } + } + } + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1010601, + "Position": { + "X": -14.755493, + "Y": 41.39178, + "Z": 258.13684 + }, + "TerritoryId": 137, + "InteractionType": "Interact", + "AetheryteShortcut": "Eastern La Noscea - Wineport", + "Fly": true, + "SkipConditions": { + "StepIf": { + "NearPosition": { + "Position": { + "X": -25.149055, + "Y": -24.773232, + "Z": 258.15594 + }, + "TerritoryId": 137, + "MaximumDistance": 25 + } + } + }, + "TargetTerritoryId": 137 + }, + { + "DataId": 1010139, + "Position": { + "X": -33.218933, + "Y": -24.674446, + "Z": 257.98413 + }, + "TerritoryId": 137, + "InteractionType": "CompleteQuest", + "NextQuestId": 2949 + } + ] + } + ] +} -- 2.45.2 From aebcb87abac3e58886d5ab147ff863674555c909 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sun, 13 Oct 2024 20:14:56 +0200 Subject: [PATCH 120/448] Add talisman confirmation to 'A Sleep Disturbed' --- .../MSQ/H-5.2/3765_A Sleep Disturbed.json | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/QuestPaths/5.x - Shadowbringers/MSQ/H-5.2/3765_A Sleep Disturbed.json b/QuestPaths/5.x - Shadowbringers/MSQ/H-5.2/3765_A Sleep Disturbed.json index 851bec648..5cd92e470 100644 --- a/QuestPaths/5.x - Shadowbringers/MSQ/H-5.2/3765_A Sleep Disturbed.json +++ b/QuestPaths/5.x - Shadowbringers/MSQ/H-5.2/3765_A Sleep Disturbed.json @@ -70,6 +70,12 @@ "ExcelSheet": "GimmickYesNo", "Prompt": 142, "Yes": true + }, + { + "Type": "YesNo", + "ExcelSheet": "GimmickYesNo", + "Prompt": 137, + "Yes": true } ] } -- 2.45.2 From 6515a880660fc512eb3c86657ea0a37030064635 Mon Sep 17 00:00:00 2001 From: Stefan Belmont Date: Mon, 14 Oct 2024 05:56:33 +0100 Subject: [PATCH 121/448] +2032 --- .../PLD/2032_An Exemplary Example.json | 142 ++++++++++++++++++ 1 file changed, 142 insertions(+) create mode 100644 QuestPaths/3.x - Heavensward/Class Quests/PLD/2032_An Exemplary Example.json diff --git a/QuestPaths/3.x - Heavensward/Class Quests/PLD/2032_An Exemplary Example.json b/QuestPaths/3.x - Heavensward/Class Quests/PLD/2032_An Exemplary Example.json new file mode 100644 index 000000000..c7daa8f36 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Class Quests/PLD/2032_An Exemplary Example.json @@ -0,0 +1,142 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "goatzone", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1006747, + "Position": { + "X": -20.828613, + "Y": 29.999964, + "Z": -2.4262085 + }, + "TerritoryId": 131, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] The Chamber of Rule" + ], + "SkipConditions": { + "AetheryteShortcutIf": { "InTerritory": [130, 131] }, + "AethernetShortcutIf": { "InSameTerritory": true } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1014046, + "Position": { + "X": 38.223755, + "Y": 5.000002, + "Z": 404.28784 + }, + "TerritoryId": 147, + "InteractionType": "Interact", + "AetheryteShortcut": "Northern Thanalan - Camp Bluefog", + "SkipConditions": { + "AetheryteShortcutIf": { "InSameTerritory": true } + } + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1014121, + "Position": { + "X": 47.104614, + "Y": 14.24741, + "Z": 197.92468 + }, + "TerritoryId": 147, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2005978, + "Position": { + "X": 1.5715942, + "Y": 21.316772, + "Z": 181.8722 + }, + "TerritoryId": 147, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [4686] + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1014121, + "Position": { + "X": 47.104614, + "Y": 14.24741, + "Z": 197.92468 + }, + "TerritoryId": 147, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1006747, + "Position": { + "X": -20.828613, + "Y": 29.999964, + "Z": -2.4262085 + }, + "TerritoryId": 131, + "InteractionType": "Interact", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] The Chamber of Rule" + ], + "SkipConditions": { + "AetheryteShortcutIf": { "InTerritory": [130, 131] }, + "AethernetShortcutIf": { "InSameTerritory": true } + } + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1003995, + "Position": { + "X": 75.33374, + "Y": 2.135708, + "Z": 316.33472 + }, + "TerritoryId": 141, + "InteractionType": "CompleteQuest", + "Fly": true, + "AethernetShortcut": [ + "[Ul'dah] The Chamber of Rule", + "[Ul'dah] Gate of Thal (Central Thanalan)" + ], + "$": "nald and thal are approx. the same distance but coming from nald requires an extra walkto because it tries and fails to land on the ledge" + } + ] + } + ] +} -- 2.45.2 From e04432ea49cb8485ea9aaa511d6559c9ef83b8ac Mon Sep 17 00:00:00 2001 From: Stefan Belmont Date: Mon, 14 Oct 2024 07:31:07 +0100 Subject: [PATCH 122/448] +2033, formatting in 2032 --- .../PLD/2032_An Exemplary Example.json | 10 +- .../PLD/2033_The Paladin Who Cried Wolf.json | 148 ++++++++++++++++++ 2 files changed, 156 insertions(+), 2 deletions(-) create mode 100644 QuestPaths/3.x - Heavensward/Class Quests/PLD/2033_The Paladin Who Cried Wolf.json diff --git a/QuestPaths/3.x - Heavensward/Class Quests/PLD/2032_An Exemplary Example.json b/QuestPaths/3.x - Heavensward/Class Quests/PLD/2032_An Exemplary Example.json index c7daa8f36..ee824e805 100644 --- a/QuestPaths/3.x - Heavensward/Class Quests/PLD/2032_An Exemplary Example.json +++ b/QuestPaths/3.x - Heavensward/Class Quests/PLD/2032_An Exemplary Example.json @@ -20,7 +20,10 @@ "[Ul'dah] The Chamber of Rule" ], "SkipConditions": { - "AetheryteShortcutIf": { "InTerritory": [130, 131] }, + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [131] + }, "AethernetShortcutIf": { "InSameTerritory": true } } } @@ -111,7 +114,10 @@ "[Ul'dah] The Chamber of Rule" ], "SkipConditions": { - "AetheryteShortcutIf": { "InTerritory": [130, 131] }, + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [131] + }, "AethernetShortcutIf": { "InSameTerritory": true } } } diff --git a/QuestPaths/3.x - Heavensward/Class Quests/PLD/2033_The Paladin Who Cried Wolf.json b/QuestPaths/3.x - Heavensward/Class Quests/PLD/2033_The Paladin Who Cried Wolf.json new file mode 100644 index 000000000..8f4ed9773 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Class Quests/PLD/2033_The Paladin Who Cried Wolf.json @@ -0,0 +1,148 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "goatzone", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1003995, + "Position": { + "X": 75.33374, + "Y": 2.135708, + "Z": 316.33472 + }, + "TerritoryId": 141, + "InteractionType": "AcceptQuest", + "Fly": true, + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Gate of Thal (Central Thanalan)" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [141] + }, + "AethernetShortcutIf": { "InSameTerritory": true } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1011237, + "Position": { + "X": 447.3181, + "Y": 212.53984, + "Z": 725.00183 + }, + "TerritoryId": 397, + "InteractionType": "Interact", + "AetheryteShortcut": "Coerthas Western Highlands - Falcon's Nest", + "SkipConditions": { + "AetheryteShortcutIf": { "InSameTerritory": true } + }, + "CompletionQuestVariablesFlags": [null, null, null, null, null, 32], + "$": "0 0 0 0 0 0 -> 1 0 0 0 0 32" + }, + { + "DataId": 1011233, + "Position": { + "X": 518.9136, + "Y": 217.95152, + "Z": 769.9243 + }, + "TerritoryId": 397, + "InteractionType": "Interact", + "Fly": true, + "CompletionQuestVariablesFlags": [null, null, null, null, null, 128], + "$": "1 0 0 0 0 32 -> 2 0 0 0 0 160" + }, + { + "DataId": 1011235, + "Position": { + "X": 522.54517, + "Y": 228.3512, + "Z": 723.5675 + }, + "TerritoryId": 397, + "InteractionType": "Interact", + "Fly": true, + "CompletionQuestVariablesFlags": [null, null, null, null, null, 64], + "$": "if done as second step, 1 0 0 0 0 32 -> 2 0 0 0 0 96" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1014052, + "Position": { + "X": 458.12158, + "Y": 200.23763, + "Z": 658.0757 + }, + "TerritoryId": 397, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "Position": { + "X": 50.883884, + "Y": 124.41451, + "Z": 174.64914 + }, + "TerritoryId": 397, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "Fly": true, + "KillEnemyDataIds": [5043, 4619], + "CompletionQuestVariablesFlags": [ + { "Low": 3 }, + null, + null, + null, + null, + null + ] + }, + { + "DataId": 1014053, + "Position": { + "X": 48.966187, + "Y": 124.34676, + "Z": 175.73816 + }, + "TerritoryId": 397, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1014054, + "Position": { + "X": 509.17822, + "Y": 212.5399, + "Z": 695.796 + }, + "TerritoryId": 397, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Coerthas Western Highlands - Falcon's Nest" + } + ] + } + ] +} -- 2.45.2 From e411608375a58752c769bea86622af9f69513a38 Mon Sep 17 00:00:00 2001 From: Stefan Belmont Date: Mon, 14 Oct 2024 07:55:21 +0100 Subject: [PATCH 123/448] +2034 --- .../PLD/2034_Big Sollerets to Fill.json | 193 ++++++++++++++++++ 1 file changed, 193 insertions(+) create mode 100644 QuestPaths/3.x - Heavensward/Class Quests/PLD/2034_Big Sollerets to Fill.json diff --git a/QuestPaths/3.x - Heavensward/Class Quests/PLD/2034_Big Sollerets to Fill.json b/QuestPaths/3.x - Heavensward/Class Quests/PLD/2034_Big Sollerets to Fill.json new file mode 100644 index 000000000..94a3ea81c --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Class Quests/PLD/2034_Big Sollerets to Fill.json @@ -0,0 +1,193 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "goatzone", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1014054, + "Position": { + "X": 509.17822, + "Y": 212.5399, + "Z": 695.796 + }, + "TerritoryId": 397, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Coerthas Western Highlands - Falcon's Nest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1014055, + "Position": { + "X": 173.69336, + "Y": 133.38922, + "Z": -413.47375 + }, + "TerritoryId": 397, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2005983, + "Position": { + "X": 108.07959, + "Y": 129.41174, + "Z": -403.52484 + }, + "TerritoryId": 397, + "InteractionType": "Interact" + }, + { + "DataId": 2005980, + "Position": { + "X": 64.68298, + "Y": 128.61829, + "Z": -397.42126 + }, + "TerritoryId": 397, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1014055, + "Position": { + "X": 173.69336, + "Y": 133.38922, + "Z": -413.47375 + }, + "TerritoryId": 397, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 2005981, + "Position": { + "X": 15.487854, + "Y": 106.09595, + "Z": -419.30273 + }, + "TerritoryId": 397, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 2005982, + "Position": { + "X": -4.6845703, + "Y": 94.13281, + "Z": -506.15704 + }, + "TerritoryId": 397, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "Position": { + "X": -134.89986, + "Y": 88.67885, + "Z": -576.3159 + }, + "TerritoryId": 397, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "Fly": true, + "KillEnemyDataIds": [4360, 4619], + "CompletionQuestVariablesFlags": [ + { "Low": 3 }, + null, + null, + null, + null, + null + ] + }, + { + "DataId": 1014058, + "Position": { + "X": -138.35364, + "Y": 88.59643, + "Z": -577.0504 + }, + "TerritoryId": 397, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 7, + "Steps": [ + { + "DataId": 1014059, + "Position": { + "X": -788.02167, + "Y": 113.151276, + "Z": -589.807 + }, + "TerritoryId": 397, + "InteractionType": "SinglePlayerDuty", + "Fly": true + } + ] + }, + { + "Sequence": 8, + "Steps": [ + { + "DataId": 1014064, + "Position": { + "X": -788.02167, + "Y": 113.151276, + "Z": -589.807 + }, + "TerritoryId": 397, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1014065, + "Position": { + "X": 509.17822, + "Y": 212.5399, + "Z": 695.796 + }, + "TerritoryId": 397, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Coerthas Western Highlands - Falcon's Nest" + } + ] + } + ] +} -- 2.45.2 From bb6a2178fbad4a236b667880325d52d789f82583 Mon Sep 17 00:00:00 2001 From: Stefan Belmont Date: Mon, 14 Oct 2024 08:07:46 +0100 Subject: [PATCH 124/448] +2035 --- .../PLD/2035_Hey Soul Crystal.json | 90 +++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 QuestPaths/3.x - Heavensward/Class Quests/PLD/2035_Hey Soul Crystal.json diff --git a/QuestPaths/3.x - Heavensward/Class Quests/PLD/2035_Hey Soul Crystal.json b/QuestPaths/3.x - Heavensward/Class Quests/PLD/2035_Hey Soul Crystal.json new file mode 100644 index 000000000..ea476c6a5 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Class Quests/PLD/2035_Hey Soul Crystal.json @@ -0,0 +1,90 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "goatzone", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1014065, + "Position": { + "X": 509.17822, + "Y": 212.5399, + "Z": 695.796 + }, + "TerritoryId": 397, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Coerthas Western Highlands - Falcon's Nest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1011922, + "Position": { + "X": 448.56934, + "Y": -51.141407, + "Z": 108.93408 + }, + "TerritoryId": 398, + "InteractionType": "Interact", + "Fly": true, + "AetheryteShortcut": "The Dravanian Forelands - Tailfeather" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1014067, + "Position": { + "X": 451.34656, + "Y": -24.978418, + "Z": -496.39127 + }, + "TerritoryId": 398, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2005986, + "Position": { + "X": 507.86584, + "Y": -21.927307, + "Z": -524.4374 + }, + "TerritoryId": 398, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1014068, + "Position": { + "X": 51.132935, + "Y": 124.95631, + "Z": 178.69836 + }, + "TerritoryId": 397, + "InteractionType": "CompleteQuest", + "Fly": true, + "AetheryteShortcut": "Coerthas Western Highlands - Falcon's Nest", + "SkipConditions": { + "AetheryteShortcutIf": { "InSameTerritory": true } + } + } + ] + } + ] +} -- 2.45.2 From 955c02b4546827e8e16140fc0650f5c563247118 Mon Sep 17 00:00:00 2001 From: Stefan Belmont Date: Mon, 14 Oct 2024 23:46:27 +0100 Subject: [PATCH 125/448] +2036, added forgotten NextQuestIds --- .../PLD/2032_An Exemplary Example.json | 3 +- .../PLD/2033_The Paladin Who Cried Wolf.json | 3 +- .../PLD/2034_Big Sollerets to Fill.json | 3 +- .../PLD/2035_Hey Soul Crystal.json | 3 +- .../PLD/2036_All According to Plan.json | 173 ++++++++++++++++++ 5 files changed, 181 insertions(+), 4 deletions(-) create mode 100644 QuestPaths/3.x - Heavensward/Class Quests/PLD/2036_All According to Plan.json diff --git a/QuestPaths/3.x - Heavensward/Class Quests/PLD/2032_An Exemplary Example.json b/QuestPaths/3.x - Heavensward/Class Quests/PLD/2032_An Exemplary Example.json index ee824e805..8a2ba52dd 100644 --- a/QuestPaths/3.x - Heavensward/Class Quests/PLD/2032_An Exemplary Example.json +++ b/QuestPaths/3.x - Heavensward/Class Quests/PLD/2032_An Exemplary Example.json @@ -140,7 +140,8 @@ "[Ul'dah] The Chamber of Rule", "[Ul'dah] Gate of Thal (Central Thanalan)" ], - "$": "nald and thal are approx. the same distance but coming from nald requires an extra walkto because it tries and fails to land on the ledge" + "$": "nald and thal are approx. the same distance but coming from nald requires an extra walkto because it tries and fails to land on the ledge", + "NextQuestId": 2033 } ] } diff --git a/QuestPaths/3.x - Heavensward/Class Quests/PLD/2033_The Paladin Who Cried Wolf.json b/QuestPaths/3.x - Heavensward/Class Quests/PLD/2033_The Paladin Who Cried Wolf.json index 8f4ed9773..ae7e89881 100644 --- a/QuestPaths/3.x - Heavensward/Class Quests/PLD/2033_The Paladin Who Cried Wolf.json +++ b/QuestPaths/3.x - Heavensward/Class Quests/PLD/2033_The Paladin Who Cried Wolf.json @@ -140,7 +140,8 @@ }, "TerritoryId": 397, "InteractionType": "CompleteQuest", - "AetheryteShortcut": "Coerthas Western Highlands - Falcon's Nest" + "AetheryteShortcut": "Coerthas Western Highlands - Falcon's Nest", + "NextQuestId": 2034 } ] } diff --git a/QuestPaths/3.x - Heavensward/Class Quests/PLD/2034_Big Sollerets to Fill.json b/QuestPaths/3.x - Heavensward/Class Quests/PLD/2034_Big Sollerets to Fill.json index 94a3ea81c..f0cde2845 100644 --- a/QuestPaths/3.x - Heavensward/Class Quests/PLD/2034_Big Sollerets to Fill.json +++ b/QuestPaths/3.x - Heavensward/Class Quests/PLD/2034_Big Sollerets to Fill.json @@ -185,7 +185,8 @@ }, "TerritoryId": 397, "InteractionType": "CompleteQuest", - "AetheryteShortcut": "Coerthas Western Highlands - Falcon's Nest" + "AetheryteShortcut": "Coerthas Western Highlands - Falcon's Nest", + "NextQuestId": 2035 } ] } diff --git a/QuestPaths/3.x - Heavensward/Class Quests/PLD/2035_Hey Soul Crystal.json b/QuestPaths/3.x - Heavensward/Class Quests/PLD/2035_Hey Soul Crystal.json index ea476c6a5..73280b59f 100644 --- a/QuestPaths/3.x - Heavensward/Class Quests/PLD/2035_Hey Soul Crystal.json +++ b/QuestPaths/3.x - Heavensward/Class Quests/PLD/2035_Hey Soul Crystal.json @@ -82,7 +82,8 @@ "AetheryteShortcut": "Coerthas Western Highlands - Falcon's Nest", "SkipConditions": { "AetheryteShortcutIf": { "InSameTerritory": true } - } + }, + "NextQuestId": 2036 } ] } diff --git a/QuestPaths/3.x - Heavensward/Class Quests/PLD/2036_All According to Plan.json b/QuestPaths/3.x - Heavensward/Class Quests/PLD/2036_All According to Plan.json new file mode 100644 index 000000000..3ba61eef6 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Class Quests/PLD/2036_All According to Plan.json @@ -0,0 +1,173 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "goatzone", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1014068, + "Position": { + "X": 51.132935, + "Y": 124.95631, + "Z": 178.69836 + }, + "TerritoryId": 397, + "InteractionType": "AcceptQuest", + "Fly": true, + "AetheryteShortcut": "Coerthas Western Highlands - Falcon's Nest", + "SkipConditions": { + "AetheryteShortcutIf": { "InSameTerritory": true } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1014069, + "Position": { + "X": 460.5935, + "Y": 200.23763, + "Z": 658.56396 + }, + "TerritoryId": 397, + "InteractionType": "Interact", + "Fly": true, + "AetheryteShortcut": "Coerthas Western Highlands - Falcon's Nest" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1011233, + "Position": { + "X": 518.9136, + "Y": 217.95152, + "Z": 769.9243 + }, + "TerritoryId": 397, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1014073, + "Position": { + "X": -693.8125, + "Y": -109.83532, + "Z": 490.95898 + }, + "TerritoryId": 401, + "InteractionType": "Interact", + "Fly": true, + "AetheryteShortcut": "The Sea of Clouds - Camp Cloudtop" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1014075, + "Position": { + "X": -272.17517, + "Y": -184.2003, + "Z": 736.0493 + }, + "TerritoryId": 401, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "Position": { + "X": -43.012157, + "Y": -176.80112, + "Z": 753.7885 + }, + "TerritoryId": 401, + "InteractionType": "Combat", + "Fly": true, + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [5048, 5049] + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "Position": { + "X": 207.48586, + "Y": -176.39336, + "Z": 721.5167 + }, + "TerritoryId": 401, + "InteractionType": "Combat", + "Fly": true, + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [4687, 4688] + } + ] + }, + { + "Sequence": 7, + "Steps": [ + { + "DataId": 1014088, + "Position": { + "X": 200.42712, + "Y": -176.62952, + "Z": 737.0565 + }, + "TerritoryId": 401, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 8, + "Steps": [ + { + "DataId": 1014089, + "Position": { + "X": 205.98145, + "Y": -176.69763, + "Z": 739.52844 + }, + "TerritoryId": 401, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1015055, + "Position": { + "X": 509.17822, + "Y": 212.5399, + "Z": 695.796 + }, + "TerritoryId": 397, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Coerthas Western Highlands - Falcon's Nest", + "NextQuestId": 2037 + } + ] + } + ] +} -- 2.45.2 From 76ce411e1c9b2ff21a28d85200af2b181fb6e576 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Tue, 15 Oct 2024 01:09:21 +0200 Subject: [PATCH 126/448] Handle dialogue choices in 'In from the Cold' --- GatheringPathRenderer/packages.lock.json | 14 ++------ GatheringPaths/packages.lock.json | 14 ++------ QuestPathGenerator/QuestPathGenerator.csproj | 2 +- .../DialogueChoiceExtensions.cs | 3 ++ QuestPathGenerator/packages.lock.json | 8 ++--- .../B-Garlemald/4394_In from the Cold.json | 13 +++++++ QuestPaths/packages.lock.json | 14 ++------ Questionable.Model/Questing/DialogueChoice.cs | 5 +++ Questionable.Model/Questionable.Model.csproj | 2 +- Questionable.Model/packages.lock.json | 6 ++-- .../GameUi/InteractionUiController.cs | 34 ++++++++++++++++++- Questionable/Questionable.csproj | 2 +- Questionable/packages.lock.json | 20 ++++------- 13 files changed, 79 insertions(+), 58 deletions(-) diff --git a/GatheringPathRenderer/packages.lock.json b/GatheringPathRenderer/packages.lock.json index f7b5b4d3d..aae9abbad 100644 --- a/GatheringPathRenderer/packages.lock.json +++ b/GatheringPathRenderer/packages.lock.json @@ -76,18 +76,10 @@ "Microsoft.SourceLink.Common": "1.1.1" } }, - "System.Text.Encodings.Web": { - "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "yev/k9GHAEGx2Rg3/tU6MQh4HGBXJs70y7j1LaM1i/ER9po+6nnQ6RRqTJn1E7Xu0fbIFK80Nh5EoODxrbxwBQ==" - }, "System.Text.Json": { "type": "Transitive", - "resolved": "8.0.4", - "contentHash": "bAkhgDJ88XTsqczoxEMliSrpijKZHhbJQldhAmObj/RbrN3sU5dcokuXmWJWsdQAhiMJ9bTayWsL1C9fbbCRhw==", - "dependencies": { - "System.Text.Encodings.Web": "8.0.0" - } + "resolved": "8.0.5", + "contentHash": "0f1B50Ss7rqxXiaBJyzUu9bWFOO2/zSlifZ/UNMdiIpDYe4cY4LQQicP4nirK1OS31I43rn062UIJ1Q9bpmHpg==" }, "ecommons": { "type": "Project" @@ -101,7 +93,7 @@ "questionable.model": { "type": "Project", "dependencies": { - "System.Text.Json": "[8.0.4, )" + "System.Text.Json": "[8.0.5, )" } } } diff --git a/GatheringPaths/packages.lock.json b/GatheringPaths/packages.lock.json index 408e267a5..d46a7a0e8 100644 --- a/GatheringPaths/packages.lock.json +++ b/GatheringPaths/packages.lock.json @@ -2,23 +2,15 @@ "version": 1, "dependencies": { "net8.0-windows7.0": { - "System.Text.Encodings.Web": { - "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "yev/k9GHAEGx2Rg3/tU6MQh4HGBXJs70y7j1LaM1i/ER9po+6nnQ6RRqTJn1E7Xu0fbIFK80Nh5EoODxrbxwBQ==" - }, "System.Text.Json": { "type": "Transitive", - "resolved": "8.0.4", - "contentHash": "bAkhgDJ88XTsqczoxEMliSrpijKZHhbJQldhAmObj/RbrN3sU5dcokuXmWJWsdQAhiMJ9bTayWsL1C9fbbCRhw==", - "dependencies": { - "System.Text.Encodings.Web": "8.0.0" - } + "resolved": "8.0.5", + "contentHash": "0f1B50Ss7rqxXiaBJyzUu9bWFOO2/zSlifZ/UNMdiIpDYe4cY4LQQicP4nirK1OS31I43rn062UIJ1Q9bpmHpg==" }, "questionable.model": { "type": "Project", "dependencies": { - "System.Text.Json": "[8.0.4, )" + "System.Text.Json": "[8.0.5, )" } } } diff --git a/QuestPathGenerator/QuestPathGenerator.csproj b/QuestPathGenerator/QuestPathGenerator.csproj index d5eb73ba8..9c862ec98 100644 --- a/QuestPathGenerator/QuestPathGenerator.csproj +++ b/QuestPathGenerator/QuestPathGenerator.csproj @@ -26,7 +26,7 @@ - + diff --git a/QuestPathGenerator/RoslynElements/DialogueChoiceExtensions.cs b/QuestPathGenerator/RoslynElements/DialogueChoiceExtensions.cs index 92f6ab874..e33fe4085 100644 --- a/QuestPathGenerator/RoslynElements/DialogueChoiceExtensions.cs +++ b/QuestPathGenerator/RoslynElements/DialogueChoiceExtensions.cs @@ -42,6 +42,9 @@ internal static class DialogueChoiceExtensions .AsSyntaxNodeOrToken(), Assignment(nameof(DialogueChoice.DataId), dialogueChoice.DataId, emptyChoice.DataId) + .AsSyntaxNodeOrToken(), + Assignment(nameof(DialogueChoice.SpecialCondition), dialogueChoice.SpecialCondition, + emptyChoice.SpecialCondition) .AsSyntaxNodeOrToken())))); } } diff --git a/QuestPathGenerator/packages.lock.json b/QuestPathGenerator/packages.lock.json index 77bbdf0a8..44b2a0117 100644 --- a/QuestPathGenerator/packages.lock.json +++ b/QuestPathGenerator/packages.lock.json @@ -68,9 +68,9 @@ }, "System.Text.Json": { "type": "Direct", - "requested": "[8.0.4, )", - "resolved": "8.0.4", - "contentHash": "bAkhgDJ88XTsqczoxEMliSrpijKZHhbJQldhAmObj/RbrN3sU5dcokuXmWJWsdQAhiMJ9bTayWsL1C9fbbCRhw==", + "requested": "[8.0.5, )", + "resolved": "8.0.5", + "contentHash": "0f1B50Ss7rqxXiaBJyzUu9bWFOO2/zSlifZ/UNMdiIpDYe4cY4LQQicP4nirK1OS31I43rn062UIJ1Q9bpmHpg==", "dependencies": { "Microsoft.Bcl.AsyncInterfaces": "8.0.0", "System.Buffers": "4.5.1", @@ -264,7 +264,7 @@ "questionable.model": { "type": "Project", "dependencies": { - "System.Text.Json": "[8.0.4, )" + "System.Text.Json": "[8.0.5, )" } } } diff --git a/QuestPaths/6.x - Endwalker/MSQ/B-Garlemald/4394_In from the Cold.json b/QuestPaths/6.x - Endwalker/MSQ/B-Garlemald/4394_In from the Cold.json index 20e3b2b8d..aaa63db46 100644 --- a/QuestPaths/6.x - Endwalker/MSQ/B-Garlemald/4394_In from the Cold.json +++ b/QuestPaths/6.x - Endwalker/MSQ/B-Garlemald/4394_In from the Cold.json @@ -65,6 +65,19 @@ "Type": "YesNo", "Prompt": "TEXT_AKTKMB115_04394_Q1_000_042", "Yes": true + }, + { + "Type": "List", + "ExcelSheet": "ContentTalk", + "Prompt": 254, + "Answer": 247, + "SpecialCondition": "NoDutyActions" + }, + { + "Type": "List", + "ExcelSheet": "ContentTalk", + "Prompt": 254, + "Answer": 248 } ], "AetheryteShortcut": "Garlemald - Camp Broken Glass", diff --git a/QuestPaths/packages.lock.json b/QuestPaths/packages.lock.json index 408e267a5..d46a7a0e8 100644 --- a/QuestPaths/packages.lock.json +++ b/QuestPaths/packages.lock.json @@ -2,23 +2,15 @@ "version": 1, "dependencies": { "net8.0-windows7.0": { - "System.Text.Encodings.Web": { - "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "yev/k9GHAEGx2Rg3/tU6MQh4HGBXJs70y7j1LaM1i/ER9po+6nnQ6RRqTJn1E7Xu0fbIFK80Nh5EoODxrbxwBQ==" - }, "System.Text.Json": { "type": "Transitive", - "resolved": "8.0.4", - "contentHash": "bAkhgDJ88XTsqczoxEMliSrpijKZHhbJQldhAmObj/RbrN3sU5dcokuXmWJWsdQAhiMJ9bTayWsL1C9fbbCRhw==", - "dependencies": { - "System.Text.Encodings.Web": "8.0.0" - } + "resolved": "8.0.5", + "contentHash": "0f1B50Ss7rqxXiaBJyzUu9bWFOO2/zSlifZ/UNMdiIpDYe4cY4LQQicP4nirK1OS31I43rn062UIJ1Q9bpmHpg==" }, "questionable.model": { "type": "Project", "dependencies": { - "System.Text.Json": "[8.0.4, )" + "System.Text.Json": "[8.0.5, )" } } } diff --git a/Questionable.Model/Questing/DialogueChoice.cs b/Questionable.Model/Questing/DialogueChoice.cs index a43a335c0..329449a73 100644 --- a/Questionable.Model/Questing/DialogueChoice.cs +++ b/Questionable.Model/Questing/DialogueChoice.cs @@ -23,4 +23,9 @@ public sealed class DialogueChoice /// If set, only applies when focusing the given target id. /// public uint? DataId { get; set; } + + /// + /// Used for 'In from the Cold'. + /// + public string? SpecialCondition { get; set; } } diff --git a/Questionable.Model/Questionable.Model.csproj b/Questionable.Model/Questionable.Model.csproj index 54301430a..62ae2a34b 100644 --- a/Questionable.Model/Questionable.Model.csproj +++ b/Questionable.Model/Questionable.Model.csproj @@ -11,7 +11,7 @@ - + diff --git a/Questionable.Model/packages.lock.json b/Questionable.Model/packages.lock.json index c609cb4fe..7fd9471e6 100644 --- a/Questionable.Model/packages.lock.json +++ b/Questionable.Model/packages.lock.json @@ -13,9 +13,9 @@ }, "System.Text.Json": { "type": "Direct", - "requested": "[8.0.4, )", - "resolved": "8.0.4", - "contentHash": "bAkhgDJ88XTsqczoxEMliSrpijKZHhbJQldhAmObj/RbrN3sU5dcokuXmWJWsdQAhiMJ9bTayWsL1C9fbbCRhw==", + "requested": "[8.0.5, )", + "resolved": "8.0.5", + "contentHash": "0f1B50Ss7rqxXiaBJyzUu9bWFOO2/zSlifZ/UNMdiIpDYe4cY4LQQicP4nirK1OS31I43rn062UIJ1Q9bpmHpg==", "dependencies": { "Microsoft.Bcl.AsyncInterfaces": "8.0.0", "System.Buffers": "4.5.1", diff --git a/Questionable/Controller/GameUi/InteractionUiController.cs b/Questionable/Controller/GameUi/InteractionUiController.cs index 6db38b80f..698d24dda 100644 --- a/Questionable/Controller/GameUi/InteractionUiController.cs +++ b/Questionable/Controller/GameUi/InteractionUiController.cs @@ -7,7 +7,9 @@ using Dalamud.Game.Addon.Lifecycle; using Dalamud.Game.Addon.Lifecycle.AddonArgTypes; using Dalamud.Game.ClientState.Objects; using Dalamud.Plugin.Services; +using FFXIVClientStructs.FFXIV.Client.Game; using FFXIVClientStructs.FFXIV.Client.Game.Event; +using FFXIVClientStructs.FFXIV.Client.Game.InstanceContent; using FFXIVClientStructs.FFXIV.Client.Game.UI; using FFXIVClientStructs.FFXIV.Client.UI; using FFXIVClientStructs.FFXIV.Component.GUI; @@ -333,7 +335,16 @@ internal sealed class InteractionUiController : IDisposable } else { - var step = quest.FindSequence(currentQuest.Sequence)?.FindStep(currentQuest.Step); + QuestStep? step = null; + if (_territoryData.IsQuestBattleInstance(_clientState.TerritoryType)) + { + step = quest.FindSequence(currentQuest.Sequence)?.Steps + .FirstOrDefault(x => x.InteractionType == EInteractionType.SinglePlayerDuty); + } + + if (step == null) + step = quest.FindSequence(currentQuest.Sequence)?.FindStep(currentQuest.Step); + if (step == null) _logger.LogDebug("Ignoring current quest dialogue choices, no active step"); else @@ -427,6 +438,27 @@ internal sealed class InteractionUiController : IDisposable if (dialogueChoice.Type != EDialogChoiceType.List) continue; + if (dialogueChoice.SpecialCondition == "NoDutyActions") + { + try + { + unsafe + { + ContentDirector* contentDirector = EventFramework.Instance()->GetContentDirector(); + if (contentDirector != null && contentDirector->DutyActionManager.ActionsPresent) + { + _logger.LogInformation("NoDutyActions: actions present, skipping dialogue choice"); + continue; + } + } + } + catch (Exception ex) + { + _logger.LogError(ex, "Failed to check for duty actions"); + continue; + } + } + if (dialogueChoice.Answer == null) { _logger.LogDebug("Ignoring entry in DialogueChoices, no answer"); diff --git a/Questionable/Questionable.csproj b/Questionable/Questionable.csproj index 376045ee1..8d1a3c894 100644 --- a/Questionable/Questionable.csproj +++ b/Questionable/Questionable.csproj @@ -13,7 +13,7 @@ - + diff --git a/Questionable/packages.lock.json b/Questionable/packages.lock.json index 1fd128654..07f5b16f2 100644 --- a/Questionable/packages.lock.json +++ b/Questionable/packages.lock.json @@ -65,12 +65,9 @@ }, "System.Text.Json": { "type": "Direct", - "requested": "[8.0.4, )", - "resolved": "8.0.4", - "contentHash": "bAkhgDJ88XTsqczoxEMliSrpijKZHhbJQldhAmObj/RbrN3sU5dcokuXmWJWsdQAhiMJ9bTayWsL1C9fbbCRhw==", - "dependencies": { - "System.Text.Encodings.Web": "8.0.0" - } + "requested": "[8.0.5, )", + "resolved": "8.0.5", + "contentHash": "0f1B50Ss7rqxXiaBJyzUu9bWFOO2/zSlifZ/UNMdiIpDYe4cY4LQQicP4nirK1OS31I43rn062UIJ1Q9bpmHpg==" }, "Humanizer.Core": { "type": "Transitive", @@ -174,15 +171,10 @@ "Microsoft.SourceLink.Common": "1.1.1" } }, - "System.Text.Encodings.Web": { - "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "yev/k9GHAEGx2Rg3/tU6MQh4HGBXJs70y7j1LaM1i/ER9po+6nnQ6RRqTJn1E7Xu0fbIFK80Nh5EoODxrbxwBQ==" - }, "gatheringpaths": { "type": "Project", "dependencies": { - "Questionable.Model": "[1.0.0, )" + "Questionable.Model": "[3.10.0, )" } }, "llib": { @@ -194,13 +186,13 @@ "questionable.model": { "type": "Project", "dependencies": { - "System.Text.Json": "[8.0.4, )" + "System.Text.Json": "[8.0.5, )" } }, "questpaths": { "type": "Project", "dependencies": { - "Questionable.Model": "[1.0.0, )" + "Questionable.Model": "[3.10.0, )" } } } -- 2.45.2 From 14ec0d6213cfd32469e862c78a8ff0ce99974fa2 Mon Sep 17 00:00:00 2001 From: Stefan Belmont Date: Tue, 15 Oct 2024 00:25:17 +0100 Subject: [PATCH 127/448] +2037, +comment on 2033, nix errant skipcondition on 2036 --- .../PLD/2033_The Paladin Who Cried Wolf.json | 3 +- .../PLD/2036_All According to Plan.json | 5 +- .../PLD/2037_This Little Sword of Mine.json | 134 ++++++++++++++++++ 3 files changed, 137 insertions(+), 5 deletions(-) create mode 100644 QuestPaths/3.x - Heavensward/Class Quests/PLD/2037_This Little Sword of Mine.json diff --git a/QuestPaths/3.x - Heavensward/Class Quests/PLD/2033_The Paladin Who Cried Wolf.json b/QuestPaths/3.x - Heavensward/Class Quests/PLD/2033_The Paladin Who Cried Wolf.json index ae7e89881..08099f36d 100644 --- a/QuestPaths/3.x - Heavensward/Class Quests/PLD/2033_The Paladin Who Cried Wolf.json +++ b/QuestPaths/3.x - Heavensward/Class Quests/PLD/2033_The Paladin Who Cried Wolf.json @@ -26,7 +26,8 @@ "InTerritory": [141] }, "AethernetShortcutIf": { "InSameTerritory": true } - } + }, + "$":"you could swap this shortcut out for black brush station, just figured it worked once." } ] }, diff --git a/QuestPaths/3.x - Heavensward/Class Quests/PLD/2036_All According to Plan.json b/QuestPaths/3.x - Heavensward/Class Quests/PLD/2036_All According to Plan.json index 3ba61eef6..22d8015e2 100644 --- a/QuestPaths/3.x - Heavensward/Class Quests/PLD/2036_All According to Plan.json +++ b/QuestPaths/3.x - Heavensward/Class Quests/PLD/2036_All According to Plan.json @@ -15,10 +15,7 @@ "TerritoryId": 397, "InteractionType": "AcceptQuest", "Fly": true, - "AetheryteShortcut": "Coerthas Western Highlands - Falcon's Nest", - "SkipConditions": { - "AetheryteShortcutIf": { "InSameTerritory": true } - } + "AetheryteShortcut": "Coerthas Western Highlands - Falcon's Nest" } ] }, diff --git a/QuestPaths/3.x - Heavensward/Class Quests/PLD/2037_This Little Sword of Mine.json b/QuestPaths/3.x - Heavensward/Class Quests/PLD/2037_This Little Sword of Mine.json new file mode 100644 index 000000000..ab71d7781 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Class Quests/PLD/2037_This Little Sword of Mine.json @@ -0,0 +1,134 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "goatzone", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1014092, + "Position": { + "X": 509.17822, + "Y": 212.5399, + "Z": 695.796 + }, + "TerritoryId": 397, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Coerthas Western Highlands - Falcon's Nest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1014094, + "Position": { + "X": 457.51123, + "Y": 200.23764, + "Z": 660.8834 + }, + "TerritoryId": 397, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2005990, + "Position": { + "X": 51.865356, + "Y": 125.26123, + "Z": 179.85803 + }, + "TerritoryId": 397, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1014096, + "Position": { + "X": 458.64026, + "Y": 200.23764, + "Z": 659.7848 + }, + "TerritoryId": 397, + "InteractionType": "Interact", + "AetheryteShortcut": "Coerthas Western Highlands - Falcon's Nest", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1014097, + "Position": { + "X": 452.90295, + "Y": 130.79962, + "Z": -850.1869 + }, + "TerritoryId": 397, + "InteractionType": "Interact", + "Fly": true, + "$": "it might be faster to shortcut to ok' zundu and fly to the adjoiner? this is simpler; smacks into the North Star but doesn't get stuck." + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1014099, + "Position": { + "X": 457.20605, + "Y": 130.79962, + "Z": -848.6 + }, + "TerritoryId": 397, + "InteractionType": "SinglePlayerDuty" + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1014102, + "Position": { + "X": 454.5204, + "Y": 130.79962, + "Z": -850.2479 + }, + "TerritoryId": 397, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1014103, + "Position": { + "X": 509.17822, + "Y": 212.5399, + "Z": 695.796 + }, + "TerritoryId": 397, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Coerthas Western Highlands - Falcon's Nest" + } + ] + } + ] +} -- 2.45.2 From 849ebac0ca0bca2d91eae497789c86676321d412 Mon Sep 17 00:00:00 2001 From: UcanPatates Date: Thu, 17 Oct 2024 09:31:47 +0000 Subject: [PATCH 128/448] QuestPaths/3.x - Heavensward/Unlocks/Instant/2386_Let Me Gubal That for You.json Ekle --- .../2386_Let Me Gubal That for You.json | 100 ++++++++++++++++++ 1 file changed, 100 insertions(+) create mode 100644 QuestPaths/3.x - Heavensward/Unlocks/Instant/2386_Let Me Gubal That for You.json diff --git a/QuestPaths/3.x - Heavensward/Unlocks/Instant/2386_Let Me Gubal That for You.json b/QuestPaths/3.x - Heavensward/Unlocks/Instant/2386_Let Me Gubal That for You.json new file mode 100644 index 000000000..ad94c3718 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Unlocks/Instant/2386_Let Me Gubal That for You.json @@ -0,0 +1,100 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "UcanPatates", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1012133, + "Position": { + "X": -26.840637, + "Y": 206.49944, + "Z": 28.67163 + }, + "TerritoryId": 478, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Idyllshire", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 478 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": 148.23425, + "Y": 207, + "Z": 119.497574 + }, + "TerritoryId": 478, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Idyllshire", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 399 + ] + }, + "StepIf": { + "InTerritory": [ + 399 + ] + } + } + }, + { + "DataId": 1018367, + "Position": { + "X": 302.11328, + "Y": 232.54102, + "Z": 767.14734 + }, + "TerritoryId": 399, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "TerritoryId": 399, + "InteractionType": "Duty", + "ContentFinderConditionId": 196 + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1012133, + "Position": { + "X": -26.840637, + "Y": 206.49944, + "Z": 28.67163 + }, + "TerritoryId": 478, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Idyllshire", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + } + ] +} \ No newline at end of file -- 2.45.2 From 8fadd31e9be06c64125a913e4fd436a29ccc5443 Mon Sep 17 00:00:00 2001 From: UcanPatates Date: Thu, 17 Oct 2024 09:42:53 +0000 Subject: [PATCH 129/448] QuestPaths/3.x - Heavensward/Unlocks/Dungeons/2386_Let Me Gubal That for You.json Ekle --- .../2386_Let Me Gubal That for You.json | 100 ++++++++++++++++++ 1 file changed, 100 insertions(+) create mode 100644 QuestPaths/3.x - Heavensward/Unlocks/Dungeons/2386_Let Me Gubal That for You.json diff --git a/QuestPaths/3.x - Heavensward/Unlocks/Dungeons/2386_Let Me Gubal That for You.json b/QuestPaths/3.x - Heavensward/Unlocks/Dungeons/2386_Let Me Gubal That for You.json new file mode 100644 index 000000000..ad94c3718 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Unlocks/Dungeons/2386_Let Me Gubal That for You.json @@ -0,0 +1,100 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "UcanPatates", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1012133, + "Position": { + "X": -26.840637, + "Y": 206.49944, + "Z": 28.67163 + }, + "TerritoryId": 478, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Idyllshire", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 478 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": 148.23425, + "Y": 207, + "Z": 119.497574 + }, + "TerritoryId": 478, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Idyllshire", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 399 + ] + }, + "StepIf": { + "InTerritory": [ + 399 + ] + } + } + }, + { + "DataId": 1018367, + "Position": { + "X": 302.11328, + "Y": 232.54102, + "Z": 767.14734 + }, + "TerritoryId": 399, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "TerritoryId": 399, + "InteractionType": "Duty", + "ContentFinderConditionId": 196 + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1012133, + "Position": { + "X": -26.840637, + "Y": 206.49944, + "Z": 28.67163 + }, + "TerritoryId": 478, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Idyllshire", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + } + ] +} \ No newline at end of file -- 2.45.2 From a27fc8400dd62e32b28dcc76e0edd3e02888c426 Mon Sep 17 00:00:00 2001 From: UcanPatates Date: Thu, 17 Oct 2024 09:44:04 +0000 Subject: [PATCH 130/448] QuestPaths/3.x - Heavensward/Unlocks/Instant/2386_Let Me Gubal That for You.json Sil --- .../2386_Let Me Gubal That for You.json | 100 ------------------ 1 file changed, 100 deletions(-) delete mode 100644 QuestPaths/3.x - Heavensward/Unlocks/Instant/2386_Let Me Gubal That for You.json diff --git a/QuestPaths/3.x - Heavensward/Unlocks/Instant/2386_Let Me Gubal That for You.json b/QuestPaths/3.x - Heavensward/Unlocks/Instant/2386_Let Me Gubal That for You.json deleted file mode 100644 index ad94c3718..000000000 --- a/QuestPaths/3.x - Heavensward/Unlocks/Instant/2386_Let Me Gubal That for You.json +++ /dev/null @@ -1,100 +0,0 @@ -{ - "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "UcanPatates", - "QuestSequence": [ - { - "Sequence": 0, - "Steps": [ - { - "DataId": 1012133, - "Position": { - "X": -26.840637, - "Y": 206.49944, - "Z": 28.67163 - }, - "TerritoryId": 478, - "InteractionType": "AcceptQuest", - "AetheryteShortcut": "Idyllshire", - "SkipConditions": { - "AetheryteShortcutIf": { - "InSameTerritory": true, - "InTerritory": [ - 478 - ] - } - } - } - ] - }, - { - "Sequence": 1, - "Steps": [ - { - "Position": { - "X": 148.23425, - "Y": 207, - "Z": 119.497574 - }, - "TerritoryId": 478, - "InteractionType": "WalkTo", - "AetheryteShortcut": "Idyllshire", - "SkipConditions": { - "AetheryteShortcutIf": { - "InSameTerritory": true, - "InTerritory": [ - 399 - ] - }, - "StepIf": { - "InTerritory": [ - 399 - ] - } - } - }, - { - "DataId": 1018367, - "Position": { - "X": 302.11328, - "Y": 232.54102, - "Z": 767.14734 - }, - "TerritoryId": 399, - "InteractionType": "Interact", - "Fly": true - } - ] - }, - { - "Sequence": 2, - "Steps": [ - { - "TerritoryId": 399, - "InteractionType": "Duty", - "ContentFinderConditionId": 196 - } - ] - }, - { - "Sequence": 255, - "Steps": [ - { - "DataId": 1012133, - "Position": { - "X": -26.840637, - "Y": 206.49944, - "Z": 28.67163 - }, - "TerritoryId": 478, - "InteractionType": "CompleteQuest", - "AetheryteShortcut": "Idyllshire", - "SkipConditions": { - "AetheryteShortcutIf": { - "InSameTerritory": true - } - } - } - ] - } - ] -} \ No newline at end of file -- 2.45.2 From d21f3bbf49527b2895b54cc1186874a7259872b2 Mon Sep 17 00:00:00 2001 From: UcanPatates Date: Thu, 17 Oct 2024 11:16:08 +0000 Subject: [PATCH 131/448] QuestPaths/2.x - A Realm Reborn/Side Quests/La Noscea/Limsa/661_The Rats in the Wharf.json Ekle --- .../Limsa/661_The Rats in the Wharf.json | 158 ++++++++++++++++++ 1 file changed, 158 insertions(+) create mode 100644 QuestPaths/2.x - A Realm Reborn/Side Quests/La Noscea/Limsa/661_The Rats in the Wharf.json diff --git a/QuestPaths/2.x - A Realm Reborn/Side Quests/La Noscea/Limsa/661_The Rats in the Wharf.json b/QuestPaths/2.x - A Realm Reborn/Side Quests/La Noscea/Limsa/661_The Rats in the Wharf.json new file mode 100644 index 000000000..79a33caba --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Side Quests/La Noscea/Limsa/661_The Rats in the Wharf.json @@ -0,0 +1,158 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "UcanPatates", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1001000, + "Position": { + "X": -32.028687, + "Y": 41.499985, + "Z": 208.39233 + }, + "TerritoryId": 128, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] The Aftcastle" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InTerritory": [ + 129, + 128 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": 25.29642, + "Y": 44.499924, + "Z": 184.26752 + }, + "TerritoryId": 128, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] The Aftcastle" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InTerritory": [ + 129, + 128 + ] + }, + "StepIf": { + "InTerritory": [ + 135 + ] + } + } + }, + { + "Position": { + "X": 21.738638, + "Y": 61.836372, + "Z": 139.60422 + }, + "TerritoryId": 135, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] Tempest Gate (Lower La Noscea)" + ], + "ComplexCombatData": [ + { + "DataId": 347, + "CompletionQuestVariablesFlags": [ + { + "Low": 5 + }, + null, + null, + null, + null, + null + ], + "MinimumKillCount": 5 + } + ], + "CompletionQuestVariablesFlags": [ + { + "Low": 5 + }, + null, + null, + null, + null, + null + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InTerritory": [ + 135 + ] + } + } + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": -67.00804, + "Y": 75.84114, + "Z": 116.815384 + }, + "TerritoryId": 135, + "InteractionType": "WalkTo", + "SkipConditions": { + "StepIf": { + "NotInTerritory": [ + 135 + ] + } + } + }, + { + "DataId": 1000972, + "Position": { + "X": 20.279175, + "Y": 40.19993, + "Z": -6.1189575 + }, + "TerritoryId": 128, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] The Aftcastle" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InTerritory": [ + 129, + 128 + ] + } + } + } + ] + } + ] +} \ No newline at end of file -- 2.45.2 From 5f12f8f78ed582e5e33b36f62667881768309074 Mon Sep 17 00:00:00 2001 From: UcanPatates Date: Thu, 17 Oct 2024 11:52:39 +0000 Subject: [PATCH 132/448] QuestPaths/2.x - A Realm Reborn/Side Quests/La Noscea/Limsa/116_A Sheepish Request.json Ekle --- .../Limsa/116_A Sheepish Request.json | 176 ++++++++++++++++++ 1 file changed, 176 insertions(+) create mode 100644 QuestPaths/2.x - A Realm Reborn/Side Quests/La Noscea/Limsa/116_A Sheepish Request.json diff --git a/QuestPaths/2.x - A Realm Reborn/Side Quests/La Noscea/Limsa/116_A Sheepish Request.json b/QuestPaths/2.x - A Realm Reborn/Side Quests/La Noscea/Limsa/116_A Sheepish Request.json new file mode 100644 index 000000000..4947b0fe1 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Side Quests/La Noscea/Limsa/116_A Sheepish Request.json @@ -0,0 +1,176 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "UcanPatates", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1000959, + "Position": { + "X": -65.62909, + "Y": 41.999985, + "Z": -139.45221 + }, + "TerritoryId": 128, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] Culinarians' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InTerritory": [ + 129, + 128 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1003603, + "Position": { + "X": 20.34021, + "Y": 20, + "Z": 4.3182373 + }, + "TerritoryId": 129, + "InteractionType": "Interact", + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Culinarians' Guild", + "[Limsa Lominsa] Aetheryte Plaza" + ], + "SkipConditions": { + "AethernetShortcutIf": { + "InSameTerritory": true + }, + "AetheryteShortcutIf": { + "InTerritory": [ + 129, + 128 + ] + } + } + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": 64.20255, + "Y": 19.94936, + "Z": 1.0639327 + }, + "TerritoryId": 129, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Limsa Lominsa", + "SkipConditions": { + "AetheryteShortcutIf": { + "InTerritory": [ + 134, + 129 + ] + }, + "StepIf": { + "InTerritory": [ + 134 + ] + } + } + }, + { + "DataId": 338, + "Position": { + "X": 130.05261, + "Y": 51.719154, + "Z": 185.6565 + }, + "TerritoryId": 134, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "ComplexCombatData": [ + { + "DataId": 338, + "CompletionQuestVariablesFlags": [ + { + "Low": 4 + }, + null, + null, + null, + null, + null + ], + "MinimumKillCount": 4 + } + ], + "CompletionQuestVariablesFlags": [ + { + "Low": 4 + }, + null, + null, + null, + null, + null + ], + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": -57.281883, + "Y": 33.088005, + "Z": 160.24603 + }, + "TerritoryId": 134, + "InteractionType": "WalkTo", + "SkipConditions": { + "StepIf": { + "NotInTerritory": [ + 134 + ] + } + }, + "Fly": true + }, + { + "DataId": 1000959, + "Position": { + "X": -65.62909, + "Y": 41.999985, + "Z": -139.45221 + }, + "TerritoryId": 128, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] Culinarians' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InTerritory": [ + 129, + 128 + ] + } + } + } + ] + } + ] +} \ No newline at end of file -- 2.45.2 From eebae38db9547df501557fd1bdfad5539c4e4c50 Mon Sep 17 00:00:00 2001 From: UcanPatates Date: Thu, 17 Oct 2024 12:03:32 +0000 Subject: [PATCH 133/448] QuestPaths/2.x - A Realm Reborn/Side Quests/La Noscea/Limsa/117_A Thousand Words.json Ekle --- .../La Noscea/Limsa/117_A Thousand Words.json | 118 ++++++++++++++++++ 1 file changed, 118 insertions(+) create mode 100644 QuestPaths/2.x - A Realm Reborn/Side Quests/La Noscea/Limsa/117_A Thousand Words.json diff --git a/QuestPaths/2.x - A Realm Reborn/Side Quests/La Noscea/Limsa/117_A Thousand Words.json b/QuestPaths/2.x - A Realm Reborn/Side Quests/La Noscea/Limsa/117_A Thousand Words.json new file mode 100644 index 000000000..18c802697 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Side Quests/La Noscea/Limsa/117_A Thousand Words.json @@ -0,0 +1,118 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "UcanPatates", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1001537, + "Position": { + "X": -58.854065, + "Y": 42.299744, + "Z": -164.08032 + }, + "TerritoryId": 128, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] Culinarians' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InTerritory": [ + 129, + 128 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1000957, + "Position": { + "X": -49.271423, + "Y": 43.999977, + "Z": -146.37988 + }, + "TerritoryId": 128, + "InteractionType": "Interact", + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] Culinarians' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InTerritory": [ + 129, + 128 + ] + } + } + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1000937, + "Position": { + "X": -12.222534, + "Y": 44.99988, + "Z": -251.88074 + }, + "TerritoryId": 128, + "InteractionType": "Interact", + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] Marauders' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InTerritory": [ + 129, + 128 + ] + } + } + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1000957, + "Position": { + "X": -49.271423, + "Y": 43.999977, + "Z": -146.37988 + }, + "TerritoryId": 128, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Marauders' Guild", + "[Limsa Lominsa] Culinarians' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InTerritory": [ + 129, + 128 + ] + } + } + } + ] + } + ] +} \ No newline at end of file -- 2.45.2 From 156721c57f00805d95a035f7dd45da67a914c192 Mon Sep 17 00:00:00 2001 From: UcanPatates Date: Thu, 17 Oct 2024 12:49:27 +0000 Subject: [PATCH 134/448] QuestPaths/2.x - A Realm Reborn/Side Quests/Black Shroud/Gridania/27_Preserving the Past.json Ekle --- .../Gridania/27_Preserving the Past.json | 76 +++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 QuestPaths/2.x - A Realm Reborn/Side Quests/Black Shroud/Gridania/27_Preserving the Past.json diff --git a/QuestPaths/2.x - A Realm Reborn/Side Quests/Black Shroud/Gridania/27_Preserving the Past.json b/QuestPaths/2.x - A Realm Reborn/Side Quests/Black Shroud/Gridania/27_Preserving the Past.json new file mode 100644 index 000000000..4ca8a122b --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Side Quests/Black Shroud/Gridania/27_Preserving the Past.json @@ -0,0 +1,76 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "UcanPatates", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1000194, + "Position": { + "X": -16.281433, + "Y": -3.2499998, + "Z": 41.000854 + }, + "TerritoryId": 132, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Gridania", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1000686, + "Position": { + "X": -66.36151, + "Y": -3.896366, + "Z": 67.00232 + }, + "TerritoryId": 132, + "InteractionType": "Interact", + "AetheryteShortcut": "Gridania", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1000789, + "Position": { + "X": -33.76825, + "Y": 7.3172073, + "Z": -117.052 + }, + "TerritoryId": 133, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Mih Khetto's Amphitheatre" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 132 + ] + } + } + } + ] + } + ] +} \ No newline at end of file -- 2.45.2 From e2c93942de1b09b09f9fa6291efcb36e2dfa0872 Mon Sep 17 00:00:00 2001 From: UcanPatates Date: Thu, 17 Oct 2024 13:01:10 +0000 Subject: [PATCH 135/448] QuestPaths/2.x - A Realm Reborn/Side Quests/Black Shroud/Gridania/969_Adventurer for Hire.json Ekle --- .../Gridania/969_Adventurer for Hire.json | 59 +++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 QuestPaths/2.x - A Realm Reborn/Side Quests/Black Shroud/Gridania/969_Adventurer for Hire.json diff --git a/QuestPaths/2.x - A Realm Reborn/Side Quests/Black Shroud/Gridania/969_Adventurer for Hire.json b/QuestPaths/2.x - A Realm Reborn/Side Quests/Black Shroud/Gridania/969_Adventurer for Hire.json new file mode 100644 index 000000000..bdb01fce3 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Side Quests/Black Shroud/Gridania/969_Adventurer for Hire.json @@ -0,0 +1,59 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "UcanPatates", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1006711, + "Position": { + "X": -140.39832, + "Y": 7.8986163, + "Z": -142.99237 + }, + "TerritoryId": 133, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Mih Khetto's Amphitheatre" + ], + "SkipConditions": { + "AethernetShortcutIf": { + "InSameTerritory": true + }, + "AetheryteShortcutIf": { + "InTerritory": [ + 132, + 133 + ] + } + } + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1000617, + "Position": { + "X": 5.722107, + "Y": -7.2786255, + "Z": 270.95447 + }, + "TerritoryId": 152, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "East Shroud - Hawthorne Hut", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + } + ] +} \ No newline at end of file -- 2.45.2 From 87765768ad1badd2541daf9977d41e86f4055626 Mon Sep 17 00:00:00 2001 From: UcanPatates Date: Thu, 17 Oct 2024 18:59:26 +0000 Subject: [PATCH 136/448] QuestPaths/2.x - A Realm Reborn/Side Quests/Black Shroud/Gridania/970_Some Seedy Business.json Ekle --- .../Gridania/970_Some Seedy Business.json | 163 ++++++++++++++++++ 1 file changed, 163 insertions(+) create mode 100644 QuestPaths/2.x - A Realm Reborn/Side Quests/Black Shroud/Gridania/970_Some Seedy Business.json diff --git a/QuestPaths/2.x - A Realm Reborn/Side Quests/Black Shroud/Gridania/970_Some Seedy Business.json b/QuestPaths/2.x - A Realm Reborn/Side Quests/Black Shroud/Gridania/970_Some Seedy Business.json new file mode 100644 index 000000000..4c67eff7b --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Side Quests/Black Shroud/Gridania/970_Some Seedy Business.json @@ -0,0 +1,163 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "UcanPatates", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1000617, + "Position": { + "X": 5.722107, + "Y": -7.2786255, + "Z": 270.95447 + }, + "TerritoryId": 152, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "East Shroud - Hawthorne Hut", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1000587, + "Position": { + "X": -7.248047, + "Y": -8.407776, + "Z": 268.23828 + }, + "TerritoryId": 152, + "InteractionType": "Interact", + "AetheryteShortcut": "East Shroud - Hawthorne Hut", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2002191, + "Position": { + "X": 189.6543, + "Y": 7.94989, + "Z": 133.65369 + }, + "TerritoryId": 152, + "InteractionType": "Interact", + "StopDistance": 0.1, + "AetheryteShortcut": "East Shroud - Hawthorne Hut", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + }, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 2002192, + "Position": { + "X": 181.04822, + "Y": 0.07623291, + "Z": 43.289795 + }, + "TerritoryId": 152, + "InteractionType": "Interact", + "StopDistance": 0.1, + "AetheryteShortcut": "East Shroud - Hawthorne Hut", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + }, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, + { + "DataId": 2002190, + "Position": { + "X": 233.66138, + "Y": 6.42395, + "Z": 199.11487 + }, + "TerritoryId": 152, + "InteractionType": "Interact", + "StopDistance": 0.1, + "AetheryteShortcut": "East Shroud - Hawthorne Hut", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + }, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": 124.74073, + "Y": 6.729165, + "Z": 190.69174 + }, + "TerritoryId": 152, + "InteractionType": "WalkTo", + "AetheryteShortcut": "East Shroud - Hawthorne Hut", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + }, + { + "DataId": 1006715, + "Position": { + "X": -170.67218, + "Y": 56.713512, + "Z": -255.9701 + }, + "TerritoryId": 152, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} \ No newline at end of file -- 2.45.2 From 5b0b6c688d626abad7583a8211998acb8d251421 Mon Sep 17 00:00:00 2001 From: UcanPatates Date: Thu, 17 Oct 2024 19:08:14 +0000 Subject: [PATCH 137/448] QuestPaths/2.x - A Realm Reborn/Side Quests/Black Shroud/Gridania/972_This One's for the Lovers.json Ekle --- .../972_This One's for the Lovers.json | 80 +++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 QuestPaths/2.x - A Realm Reborn/Side Quests/Black Shroud/Gridania/972_This One's for the Lovers.json diff --git a/QuestPaths/2.x - A Realm Reborn/Side Quests/Black Shroud/Gridania/972_This One's for the Lovers.json b/QuestPaths/2.x - A Realm Reborn/Side Quests/Black Shroud/Gridania/972_This One's for the Lovers.json new file mode 100644 index 000000000..f33610efe --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Side Quests/Black Shroud/Gridania/972_This One's for the Lovers.json @@ -0,0 +1,80 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "UcanPatates", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1006715, + "Position": { + "X": -170.67218, + "Y": 56.713512, + "Z": -255.9701 + }, + "TerritoryId": 152, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "East Shroud - Hawthorne Hut", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": -193.69008, + "Y": 55.59636, + "Z": -177.57457 + }, + "TerritoryId": 152, + "InteractionType": "WalkTo", + "AetheryteShortcut": "East Shroud - Hawthorne Hut", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + }, + { + "DataId": 1007568, + "Position": { + "X": -183.88647, + "Y": 57.451885, + "Z": -143.93835 + }, + "TerritoryId": 152, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1006715, + "Position": { + "X": -170.67218, + "Y": 56.713512, + "Z": -255.9701 + }, + "TerritoryId": 152, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "East Shroud - Hawthorne Hut", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + } + ] +} \ No newline at end of file -- 2.45.2 From d96eddfdec77c822872a0dae6f3c54bd6a42543e Mon Sep 17 00:00:00 2001 From: pot0to <19513249+pot0to@users.noreply.github.com> Date: Thu, 17 Oct 2024 17:49:29 -0700 Subject: [PATCH 138/448] adding Underneath the Starry Lights --- .../4692_Underneath the Starry Lights.json | 26 ++++++++++++++----- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Dailies/4692_Underneath the Starry Lights.json b/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Dailies/4692_Underneath the Starry Lights.json index d731dcbc4..d4d0059fb 100644 --- a/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Dailies/4692_Underneath the Starry Lights.json +++ b/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Dailies/4692_Underneath the Starry Lights.json @@ -1,7 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "liza", - "Disabled": true, + "Author": "pot0to", "QuestSequence": [ { "Sequence": 0, @@ -27,14 +26,27 @@ } ] }, - { - "Sequence": 1, - "Steps": [ - ] - }, { "Sequence": 255, "Steps": [ + { + "DataId": 1044569, + "Position": { + "X": -385.6718, + "Y": -151.67168, + "Z": -261.28027 + }, + "TerritoryId": 959, + "Fly": true, + "InteractionType": "Interact", + "AetheryteShortcut": "Mare Lamentorum - Bestways Burrow" + }, + { + "TerritoryId": 959, + "InteractionType": "Craft", + "ItemId": 38861, + "ItemCount": 2 + }, { "Position": { "X": -201.42024, -- 2.45.2 From 510ef977232cc946e52cc1416a94ad9e2eccccfd Mon Sep 17 00:00:00 2001 From: pot0to <19513249+pot0to@users.noreply.github.com> Date: Thu, 17 Oct 2024 18:36:56 -0700 Subject: [PATCH 139/448] omicrons sold out --- .../Omicrons/Dailies/4618_Sold Out.json | 48 ++++++++++++++++++- 1 file changed, 46 insertions(+), 2 deletions(-) diff --git a/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4618_Sold Out.json b/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4618_Sold Out.json index 368803c3a..4d0cbd761 100644 --- a/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4618_Sold Out.json +++ b/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4618_Sold Out.json @@ -1,7 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "liza", - "Disabled": true, + "Author": "pot0to", "QuestSequence": [ { "Sequence": 0, @@ -18,6 +17,51 @@ } ] }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2013074, + "Position": { + "X": 304.3412, + "Y": 483.48206, + "Z": 143.11438 + }, + "TerritoryId": 960, + "InteractionType": "Interact", + "TargetTerritoryId": 1073, + "$": "Without this step, there are times where it doesn't confirm automatically" + }, + { + "TerritoryId": 1073, + "InteractionType": "Gather", + "ItemsToGather": [ + { + "QuestAcceptedAsClass": "Miner", + "ItemId": 38288, + "ItemCount": 3 + }, + { + "QuestAcceptedAsClass": "Botanist", + "ItemId": 38312, + "ItemCount": 3 + } + ] + }, + { + "DataId": 1044057, + "Position": { + "X": 490.2876, + "Y": 436.9998, + "Z": 312.3064 + }, + "TerritoryId": 960, + "InteractionType": "Interact", + "AetheryteShortcut": "Ultima Thule - Base Omicron", + "Mount": true + } + ] + }, { "Sequence": 255, "Steps": [ -- 2.45.2 From 560f952f9ffa5883c81c8f18d1c6f3f6bedab899 Mon Sep 17 00:00:00 2001 From: pot0to <19513249+pot0to@users.noreply.github.com> Date: Thu, 17 Oct 2024 18:45:22 -0700 Subject: [PATCH 140/448] fixing interaction npc --- .../Allied Societies/Omicrons/Dailies/4618_Sold Out.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4618_Sold Out.json b/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4618_Sold Out.json index 4d0cbd761..173d6aef5 100644 --- a/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4618_Sold Out.json +++ b/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4618_Sold Out.json @@ -49,11 +49,11 @@ ] }, { - "DataId": 1044057, + "DataId": 1043936, "Position": { - "X": 490.2876, - "Y": 436.9998, - "Z": 312.3064 + "X": 194.56775, + "Y": 567.4998, + "Z": 250.93457 }, "TerritoryId": 960, "InteractionType": "Interact", -- 2.45.2 From 1cd11e8375e8fc179561cc8b689211e130fcd88f Mon Sep 17 00:00:00 2001 From: AnimaMachinae Date: Fri, 18 Oct 2024 08:35:40 +0000 Subject: [PATCH 141/448] Upload files to "QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Story" Story Rank 5-6 quest --- .../4684_Teamwork Makes the Dream Work.json | 179 ++++++++++++++++++ 1 file changed, 179 insertions(+) create mode 100644 QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Story/4684_Teamwork Makes the Dream Work.json diff --git a/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Story/4684_Teamwork Makes the Dream Work.json b/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Story/4684_Teamwork Makes the Dream Work.json new file mode 100644 index 000000000..44a27dce4 --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Story/4684_Teamwork Makes the Dream Work.json @@ -0,0 +1,179 @@ +{ + "schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "AnimaMachinae", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1044402, + "Position": { + "X": -193.89642, + "Y": -49.19972, + "Z": -262.13477 + }, + "TerritoryId": 959, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2013281, + "Position": { + "X": -330.19, + "Y": 105.1499, + "Z": 554.5586 + }, + "TerritoryId": 959, + "InteractionType": "Interact", + "Fly": true, + "AetheryteShortcut": "Mare Lamentorum - Sinus Lacrimarum" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1044942, + "Position": { + "X": -331.838, + "Y": 105.39431, + "Z": 551.2322 + }, + "TerritoryId": 959, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1044931, + "Position": { + "X": 148.30237, + "Y": -49.589592, + "Z": -361.77618 + }, + "TerritoryId": 959, + "InteractionType": "Interact", + "Fly": true, + "AetheryteShortcut": "Mare Lamentorum - Bestways Burrow" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1044402, + "Position": { + "X": -193.89642, + "Y": -49.19972, + "Z": -262.13477 + }, + "TerritoryId": 959, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1044944, + "Position": { + "X": -463.55383, + "Y": -157.99237, + "Z": -513.3593 + }, + "TerritoryId": 959, + "InteractionType": "Interact", + "Fly": true, + "AetheryteShortcut": "Mare Lamentorum - Bestways Burrow", + "CompletionQuestVariablesFlags": [ + 17, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 1044945, + "Position": { + "X": -540.1236, + "Y": -167.8502, + "Z": -620.63025 + }, + "TerritoryId": 959, + "InteractionType": "Interact", + "Fly": true, + "CompletionQuestVariablesFlags": [ + 33, + 16, + null, + null, + null, + 96 + ] + }, + { + "DataId": 1044943, + "Position": { + "X": -414.54187, + "Y": -158.1177, + "Z": -639.9481 + }, + "TerritoryId": 959, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1044947, + "Position": { + "X": -145.70844, + "Y": -49.19972, + "Z": -271.5343 + }, + "TerritoryId": 959, + "InteractionType": "Interact", + "Fly": true, + "AetheryteShortcut": "Mare Lamentorum - Bestways Burrow" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "TerritoryId": 959, + "InteractionType": "Craft", + "ItemId": 38849, + "ItemCount": 1 + }, + { + "DataId": 1044947, + "Position": { + "X": -145.70844, + "Y": -49.19972, + "Z": -271.5343 + }, + "TerritoryId": 959, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} \ No newline at end of file -- 2.45.2 From afdc92cc8ccb571f26270f0a41d8f62422c426fe Mon Sep 17 00:00:00 2001 From: AnimaMachinae Date: Fri, 18 Oct 2024 08:36:52 +0000 Subject: [PATCH 142/448] Upload files to "QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies" --- .../Dailies/2173_Endymion Disco.json | 153 ++++++++++++++++++ 1 file changed, 153 insertions(+) create mode 100644 QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2173_Endymion Disco.json diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2173_Endymion Disco.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2173_Endymion Disco.json new file mode 100644 index 000000000..8b4af2a3e --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2173_Endymion Disco.json @@ -0,0 +1,153 @@ +{ + "schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "AnimaMachinae", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1016089, + "Position": { + "X": -799.46594, + "Y": -133.2695, + "Z": -404.1352 + }, + "TerritoryId": 401, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1016093, + "Position": { + "X": -776.0281, + "Y": -133.35559, + "Z": -414.32825 + }, + "TerritoryId": 401, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": -544.89056, + "Y": 61.602722, + "Z": -373.9669 + }, + "TerritoryId": 401, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 2006649, + "Position": { + "X": -539.0555, + "Y": 64.22522, + "Z": -377.0047 + }, + "TerritoryId": 401, + "InteractionType": "Action", + "Action": "Buffet (Sanuwa)", + "StopDistance": 3, + "$": "0 0 0 0 0 0 --> 1 0 0 0 0 16", + "CompletionQuestVariablesFlags": [1,null,null,null,null,16] + }, + { + "Position": { + "X": -505.35422, + "Y": -28.166508, + "Z": -528.1072 + }, + "TerritoryId": 401, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 2006647, + "Position": { + "X": -504.78372, + "Y": -26.68805, + "Z": -530.93774 + }, + "TerritoryId": 401, + "InteractionType": "Action", + "Action": "Buffet (Sanuwa)", + "StopDistance": 3, + "$": "1 0 0 0 0 16 --> 2 0 0 0 0 80", + "CompletionQuestVariablesFlags": [2,null,null,null,null,80] + }, + { + "Position": { + "X": -478.25208, + "Y": -31.101946, + "Z": -663.0455 + }, + "TerritoryId": 401, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 2006648, + "Position": { + "X": -477.40906, + "Y": -28.885437, + "Z": -668.32996 + }, + "TerritoryId": 401, + "InteractionType": "Action", + "Action": "Buffet (Sanuwa)", + "StopDistance": 3, + "$": "2 0 0 0 0 80 --> 3 0 0 0 0 112", + "CompletionQuestVariablesFlags": [3,null,null,null,null,112] + }, + { + "Position": { + "X": -102.45963, + "Y": -1.2632592, + "Z": -619.294 + }, + "TerritoryId": 401, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 2006646, + "Position": { + "X": -96.20813, + "Y": 0.32037354, + "Z": -620.26404 + }, + "TerritoryId": 401, + "InteractionType": "Action", + "Action": "Buffet (Sanuwa)", + "StopDistance": 3, + "$": "3 0 0 0 0 112 --> 0 0 0 0 0 0" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1016089, + "Position": { + "X": -799.46594, + "Y": -133.2695, + "Z": -404.1352 + }, + "TerritoryId": 401, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "The Sea of Clouds - Ok' Zundu", + "Fly": true + } + ] + } + ] +} \ No newline at end of file -- 2.45.2 From 8b8c940d34b7005d766ec62c4e42c090f6a0c6bb Mon Sep 17 00:00:00 2001 From: AnimaMachinae Date: Fri, 18 Oct 2024 08:40:08 +0000 Subject: [PATCH 143/448] Upload files to "QuestPaths/3.x - Heavensward/Class Quests/DRG" 50-54 quests --- .../DRG/1689_Sky's the Limit.json | 108 +++++++++++++ .../Class Quests/DRG/1690_Days of Azure.json | 112 ++++++++++++++ .../DRG/1691_Heart of Justice.json | 81 ++++++++++ .../DRG/1692_Sworn Upon a Lance.json | 146 ++++++++++++++++++ 4 files changed, 447 insertions(+) create mode 100644 QuestPaths/3.x - Heavensward/Class Quests/DRG/1689_Sky's the Limit.json create mode 100644 QuestPaths/3.x - Heavensward/Class Quests/DRG/1690_Days of Azure.json create mode 100644 QuestPaths/3.x - Heavensward/Class Quests/DRG/1691_Heart of Justice.json create mode 100644 QuestPaths/3.x - Heavensward/Class Quests/DRG/1692_Sworn Upon a Lance.json diff --git a/QuestPaths/3.x - Heavensward/Class Quests/DRG/1689_Sky's the Limit.json b/QuestPaths/3.x - Heavensward/Class Quests/DRG/1689_Sky's the Limit.json new file mode 100644 index 000000000..9f0973051 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Class Quests/DRG/1689_Sky's the Limit.json @@ -0,0 +1,108 @@ +{ + "schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "AnimaMachinae", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "Position": { + "X": 215.65454, + "Y": 222.1, + "Z": 345.1806 + }, + "TerritoryId": 155, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", + "Land": true, + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + }, + "$": "Alberic" + }, + { + "DataId": 1006748, + "Position": { + "X": 217.88354, + "Y": 222, + "Z": 345.3269 + }, + "TerritoryId": 155, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1013437, + "Position": { + "X": -580.5906, + "Y": 206.85785, + "Z": -407.64478 + }, + "TerritoryId": 155, + "InteractionType": "Combat", + "Land": true, + "Fly": true, + "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [ + 4478 + ], + "CompletionQuestVariablesFlags": [ + 1, + null, + null, + null, + null, + null + ] + }, + { + "DataId": 1013437, + "Position": { + "X": -580.5906, + "Y": 206.85785, + "Z": -407.64478 + }, + "TerritoryId": 155, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": 215.65454, + "Y": 222.1, + "Z": 345.1806 + }, + "TerritoryId": 155, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", + "Land": true, + "Fly": true, + "$": "Alberic" + }, + { + "DataId": 1006748, + "Position": { + "X": 217.88354, + "Y": 222, + "Z": 345.3269 + }, + "TerritoryId": 155, + "InteractionType": "CompleteQuest", + "NextQuestId": 1690 + } + ] + } + ] +} \ No newline at end of file diff --git a/QuestPaths/3.x - Heavensward/Class Quests/DRG/1690_Days of Azure.json b/QuestPaths/3.x - Heavensward/Class Quests/DRG/1690_Days of Azure.json new file mode 100644 index 000000000..fb0f7c955 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Class Quests/DRG/1690_Days of Azure.json @@ -0,0 +1,112 @@ +{ + "schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "AnimaMachinae", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "Position": { + "X": 215.65454, + "Y": 222.1, + "Z": 345.1806 + }, + "TerritoryId": 155, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", + "Land": true, + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + }, + "$": "Alberic" + }, + { + "DataId": 1006748, + "Position": { + "X": 217.88354, + "Y": 222, + "Z": 345.3269 + }, + "TerritoryId": 155, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1013441, + "Position": { + "X": 468.58923, + "Y": 166.28001, + "Z": 256.73303 + }, + "TerritoryId": 397, + "InteractionType": "Combat", + "AetheryteShortcut": "Coerthas Western Highlands - Falcon's Nest", + "Land": true, + "Fly": true, + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 4504 + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1013441, + "Position": { + "X": 468.58923, + "Y": 166.28001, + "Z": 256.73303 + }, + "TerritoryId": 397, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2006182, + "Position": { + "X": 197.40588, + "Y": 184.00854, + "Z": -102.80011 + }, + "TerritoryId": 397, + "InteractionType": "Combat", + "Land": true, + "Fly": true, + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 4486 + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1013445, + "Position": { + "X": 202.19727, + "Y": 183.6595, + "Z": -96.11658 + }, + "TerritoryId": 397, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} \ No newline at end of file diff --git a/QuestPaths/3.x - Heavensward/Class Quests/DRG/1691_Heart of Justice.json b/QuestPaths/3.x - Heavensward/Class Quests/DRG/1691_Heart of Justice.json new file mode 100644 index 000000000..00cf0dafd --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Class Quests/DRG/1691_Heart of Justice.json @@ -0,0 +1,81 @@ +{ + "schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "AnimaMachinae", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1013445, + "Position": { + "X": 202.19727, + "Y": 183.6595, + "Z": -96.11658 + }, + "TerritoryId": 397, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Coerthas Western Highlands - Falcon's Nest", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1013448, + "Position": { + "X": 83.26843, + "Y": 23.979126, + "Z": 2.3345947 + }, + "TerritoryId": 418, + "InteractionType": "Interact", + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] The Forgotten Knight" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": 215.65454, + "Y": 222.1, + "Z": 345.1806 + }, + "TerritoryId": 155, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", + "Land": true, + "Fly": true, + "$": "Alberic" + }, + { + "DataId": 1006748, + "Position": { + "X": 217.88354, + "Y": 222, + "Z": 345.3269 + }, + "TerritoryId": 155, + "InteractionType": "CompleteQuest", + "NextQuestId": 1690 + } + ] + } + ] +} \ No newline at end of file diff --git a/QuestPaths/3.x - Heavensward/Class Quests/DRG/1692_Sworn Upon a Lance.json b/QuestPaths/3.x - Heavensward/Class Quests/DRG/1692_Sworn Upon a Lance.json new file mode 100644 index 000000000..53d969e5e --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Class Quests/DRG/1692_Sworn Upon a Lance.json @@ -0,0 +1,146 @@ +{ + "schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "AnimaMachinae", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "Position": { + "X": 215.65454, + "Y": 222.1, + "Z": 345.1806 + }, + "TerritoryId": 155, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", + "Land": true, + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + }, + "$": "Alberic" + }, + { + "DataId": 1006748, + "Position": { + "X": 217.88354, + "Y": 222, + "Z": 345.3269 + }, + "TerritoryId": 155, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1013450, + "Position": { + "X": 84.30603, + "Y": 23.979128, + "Z": -12.802368 + }, + "TerritoryId": 418, + "InteractionType": "Interact", + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] The Forgotten Knight" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1013456, + "Position": { + "X": 489.82983, + "Y": 164.7244, + "Z": 266.25464 + }, + "TerritoryId": 397, + "InteractionType": "SinglePlayerDuty", + "AetheryteShortcut": "Coerthas Western Highlands - Falcon's Nest", + "Land": true, + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1013457, + "Position": { + "X": 492.88147, + "Y": 164.6694, + "Z": 265.06445 + }, + "TerritoryId": 397, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1013464, + "Position": { + "X": 133.47058, + "Y": 24.400866, + "Z": -6.149414 + }, + "TerritoryId": 418, + "InteractionType": "Interact", + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] The Forgotten Knight" + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": 215.65454, + "Y": 222.1, + "Z": 345.1806 + }, + "TerritoryId": 155, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", + "Land": true, + "Fly": true, + "$": "Alberic" + }, + { + "DataId": 1006748, + "Position": { + "X": 217.88354, + "Y": 222, + "Z": 345.3269 + }, + "TerritoryId": 155, + "InteractionType": "CompleteQuest", + "NextQuestId": 1690 + } + ] + } + ] +} \ No newline at end of file -- 2.45.2 From 09f99f510a32cb1ad1b984939d6622f58dbb6981 Mon Sep 17 00:00:00 2001 From: pot0to <19513249+pot0to@users.noreply.github.com> Date: Fri, 18 Oct 2024 01:43:51 -0700 Subject: [PATCH 144/448] restoring submodule hashes --- LLib | 2 +- vendor/ECommons | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/LLib b/LLib index 43c3dba11..6dfc18ee6 160000 --- a/LLib +++ b/LLib @@ -1 +1 @@ -Subproject commit 43c3dba112c202e2d0ff1a6909020c2b83e20dc3 +Subproject commit 6dfc18ee6a187138036ee2d51ba2257741c1e568 diff --git a/vendor/ECommons b/vendor/ECommons index ac744e72d..147e12e95 160000 --- a/vendor/ECommons +++ b/vendor/ECommons @@ -1 +1 @@ -Subproject commit ac744e72d99da3f3b4efc64bcadcfd40de7c21eb +Subproject commit 147e12e95f2fb781f2c8ddac31d948700ed9051c -- 2.45.2 From bcfe07c03d9ed8c4fae583caacd45c855066d875 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Fri, 18 Oct 2024 20:27:09 +0200 Subject: [PATCH 145/448] Add All Saints Wake quests --- Directory.Build.targets | 2 +- .../5184_The Aether-starved Ahriman.json | 100 ++++++++++++++++++ ..._All Fiends Sated on All Saints' Wake.json | 98 +++++++++++++++++ .../QuestComponents/EventInfoComponent.cs | 1 + 4 files changed, 200 insertions(+), 1 deletion(-) create mode 100644 QuestPaths/7.x - Dawntrail/Seasonal Events/All Saints' Wake (2024)/5184_The Aether-starved Ahriman.json create mode 100644 QuestPaths/7.x - Dawntrail/Seasonal Events/All Saints' Wake (2024)/5185_All Fiends Sated on All Saints' Wake.json diff --git a/Directory.Build.targets b/Directory.Build.targets index 5883b50c5..eb87dd28e 100644 --- a/Directory.Build.targets +++ b/Directory.Build.targets @@ -1,5 +1,5 @@ - 3.10 + 3.11 diff --git a/QuestPaths/7.x - Dawntrail/Seasonal Events/All Saints' Wake (2024)/5184_The Aether-starved Ahriman.json b/QuestPaths/7.x - Dawntrail/Seasonal Events/All Saints' Wake (2024)/5184_The Aether-starved Ahriman.json new file mode 100644 index 000000000..7ea3ff216 --- /dev/null +++ b/QuestPaths/7.x - Dawntrail/Seasonal Events/All Saints' Wake (2024)/5184_The Aether-starved Ahriman.json @@ -0,0 +1,100 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1050484, + "Position": { + "X": -50.003845, + "Y": 6.5, + "Z": -88.39557 + }, + "TerritoryId": 133, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Mih Khetto's Amphitheatre" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 133 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1050479, + "Position": { + "X": -157.33582, + "Y": 7.982081, + "Z": -143.69421 + }, + "TerritoryId": 133, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1050483, + "Position": { + "X": -151.07965, + "Y": 5.417452, + "Z": -53.330322 + }, + "TerritoryId": 133, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1050483, + "Position": { + "X": -151.07965, + "Y": 5.417452, + "Z": -53.330322 + }, + "TerritoryId": 133, + "InteractionType": "Emote", + "Emote": "soothe" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1050484, + "Position": { + "X": -50.003845, + "Y": 6.5, + "Z": -88.39557 + }, + "TerritoryId": 133, + "InteractionType": "CompleteQuest", + "AethernetShortcut": [ + "[Gridania] Conjurers' Guild", + "[Gridania] Mih Khetto's Amphitheatre" + ], + "NextQuestId": 5185 + } + ] + } + ] +} diff --git a/QuestPaths/7.x - Dawntrail/Seasonal Events/All Saints' Wake (2024)/5185_All Fiends Sated on All Saints' Wake.json b/QuestPaths/7.x - Dawntrail/Seasonal Events/All Saints' Wake (2024)/5185_All Fiends Sated on All Saints' Wake.json new file mode 100644 index 000000000..3ab2b84c3 --- /dev/null +++ b/QuestPaths/7.x - Dawntrail/Seasonal Events/All Saints' Wake (2024)/5185_All Fiends Sated on All Saints' Wake.json @@ -0,0 +1,98 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1050485, + "Position": { + "X": -48.69159, + "Y": 6.4999957, + "Z": -89.79938 + }, + "TerritoryId": 133, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Mih Khetto's Amphitheatre" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 133 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1050486, + "Position": { + "X": -105.97394, + "Y": 6.9391603, + "Z": -133.95898 + }, + "TerritoryId": 133, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1050488, + "Position": { + "X": 12.619202, + "Y": 13.1293745, + "Z": -292.31714 + }, + "TerritoryId": 133, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1050489, + "Position": { + "X": 153.76514, + "Y": 11.213254, + "Z": -221.5763 + }, + "TerritoryId": 133, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1050484, + "Position": { + "X": -50.003845, + "Y": 6.5, + "Z": -88.39557 + }, + "TerritoryId": 133, + "InteractionType": "CompleteQuest", + "AethernetShortcut": [ + "[Gridania] Lancers' Guild", + "[Gridania] Mih Khetto's Amphitheatre" + ] + } + ] + } + ] +} diff --git a/Questionable/Windows/QuestComponents/EventInfoComponent.cs b/Questionable/Windows/QuestComponents/EventInfoComponent.cs index d85e1f70c..cfe507929 100644 --- a/Questionable/Windows/QuestComponents/EventInfoComponent.cs +++ b/Questionable/Windows/QuestComponents/EventInfoComponent.cs @@ -22,6 +22,7 @@ internal sealed class EventInfoComponent [SuppressMessage("ReSharper", "CollectionNeverUpdated.Local")] private readonly List _eventQuests = [ + new("All Saints' Wake", [new(5184)], AtDailyReset(new(2024, 11, 4))), ]; private readonly QuestData _questData; -- 2.45.2 From 8d2c4139f92541f6e2605217a841655f8459d7dc Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Fri, 18 Oct 2024 21:27:31 +0200 Subject: [PATCH 146/448] Add missing quest id for ASW --- Questionable/Windows/QuestComponents/EventInfoComponent.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Questionable/Windows/QuestComponents/EventInfoComponent.cs b/Questionable/Windows/QuestComponents/EventInfoComponent.cs index cfe507929..fedeb0455 100644 --- a/Questionable/Windows/QuestComponents/EventInfoComponent.cs +++ b/Questionable/Windows/QuestComponents/EventInfoComponent.cs @@ -22,7 +22,7 @@ internal sealed class EventInfoComponent [SuppressMessage("ReSharper", "CollectionNeverUpdated.Local")] private readonly List _eventQuests = [ - new("All Saints' Wake", [new(5184)], AtDailyReset(new(2024, 11, 4))), + new("All Saints' Wake", [new(5184), new(5185)], AtDailyReset(new(2024, 11, 4))), ]; private readonly QuestData _questData; -- 2.45.2 From 15999c8c790b96a9f411c353b9a19dae97c91b55 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sat, 19 Oct 2024 10:10:33 +0200 Subject: [PATCH 147/448] Add 'disappointed', 'examineself' and 'joy' emotes --- QuestPaths/quest-v1.json | 5 ++++- Questionable.Model/Questing/Converter/EmoteConverter.cs | 5 ++++- Questionable.Model/Questing/EEmote.cs | 3 +++ 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/QuestPaths/quest-v1.json b/QuestPaths/quest-v1.json index eefbf1eb7..3751b47d0 100644 --- a/QuestPaths/quest-v1.json +++ b/QuestPaths/quest-v1.json @@ -826,7 +826,10 @@ "battlestance", "doze", "box", - "sundropdance" + "sundropdance", + "disappointed", + "examineself", + "joy" ] } } diff --git a/Questionable.Model/Questing/Converter/EmoteConverter.cs b/Questionable.Model/Questing/Converter/EmoteConverter.cs index 213d909a3..e899a582d 100644 --- a/Questionable.Model/Questing/Converter/EmoteConverter.cs +++ b/Questionable.Model/Questing/Converter/EmoteConverter.cs @@ -36,6 +36,9 @@ public sealed class EmoteConverter() : EnumConverter(Values) { EEmote.BattleStance, "battlestance" }, { EEmote.Doze, "doze" }, { EEmote.Box, "box" }, - { EEmote.SundropDance, "sundropdance"} + { EEmote.SundropDance, "sundropdance"}, + { EEmote.Disappointed, "disappointed" }, + { EEmote.ExamineSelf, "examineself" }, + { EEmote.Joy, "joy" }, }; } diff --git a/Questionable.Model/Questing/EEmote.cs b/Questionable.Model/Questing/EEmote.cs index 4f1b2c6f7..2656997b3 100644 --- a/Questionable.Model/Questing/EEmote.cs +++ b/Questionable.Model/Questing/EEmote.cs @@ -38,4 +38,7 @@ public enum EEmote Doze = 13, Box = 166, SundropDance = 120, + Disappointed = 49, + ExamineSelf = 44, + Joy = 18, } -- 2.45.2 From 3dd5c07a1a770451a035b2ff28ac2895ff7de61e Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sat, 19 Oct 2024 10:31:27 +0200 Subject: [PATCH 148/448] Add new skip conditions for NIN quests --- QuestPaths/quest-v1.json | 4 +- .../Converter/SkipConditionConverter.cs | 2 + .../Questing/EExtraSkipCondition.cs | 11 +++++- .../Controller/Steps/Shared/SkipCondition.cs | 37 ++++++++++--------- 4 files changed, 35 insertions(+), 19 deletions(-) diff --git a/QuestPaths/quest-v1.json b/QuestPaths/quest-v1.json index 3751b47d0..4551e444e 100644 --- a/QuestPaths/quest-v1.json +++ b/QuestPaths/quest-v1.json @@ -286,7 +286,9 @@ "type": "string", "enum": [ "WakingSandsMainArea", - "RisingStonesSolar" + "RisingStonesSolar", + "RoguesGuild", + "DockStorehouse" ] } }, diff --git a/Questionable.Model/Questing/Converter/SkipConditionConverter.cs b/Questionable.Model/Questing/Converter/SkipConditionConverter.cs index 4088446e7..3de919b9f 100644 --- a/Questionable.Model/Questing/Converter/SkipConditionConverter.cs +++ b/Questionable.Model/Questing/Converter/SkipConditionConverter.cs @@ -9,5 +9,7 @@ public sealed class SkipConditionConverter() : EnumConverter + /// Location for ROG quests in Limsa Lominsa; located far underneath the actual lower decks. + /// + RoguesGuild, + + /// + /// Location for NIN quests in Eastern La Noscea; located far underneath the actual zone. + /// + DockStorehouse, } diff --git a/Questionable/Controller/Steps/Shared/SkipCondition.cs b/Questionable/Controller/Steps/Shared/SkipCondition.cs index c95ee8eab..c1efdbded 100644 --- a/Questionable/Controller/Steps/Shared/SkipCondition.cs +++ b/Questionable/Controller/Steps/Shared/SkipCondition.cs @@ -1,4 +1,5 @@ -using System.Linq; +using System; +using System.Linq; using System.Numerics; using Dalamud.Game.ClientState.Objects.Types; using Dalamud.Plugin.Services; @@ -225,24 +226,14 @@ internal static class SkipCondition } } - if (skipConditions.ExtraCondition == EExtraSkipCondition.WakingSandsMainArea && - clientState.TerritoryType == 212) + if (skipConditions.ExtraCondition != null && skipConditions.ExtraCondition != EExtraSkipCondition.None) { - var position = clientState.LocalPlayer!.Position; - if (position.X < 24) + var position = clientState.LocalPlayer?.Position; + if (position != null && + clientState.TerritoryType != 0 && + MatchesExtraCondition(skipConditions.ExtraCondition.Value, position.Value, clientState.TerritoryType)) { - logger.LogInformation("Skipping step, as we're not in the Solar"); - return true; - } - } - - if (skipConditions.ExtraCondition == EExtraSkipCondition.RisingStonesSolar && - clientState.TerritoryType == 351) - { - var position = clientState.LocalPlayer!.Position; - if (position.Z <= -28) - { - logger.LogInformation("Skipping step, as we're in the Rising Stones Solar"); + logger.LogInformation("Skipping step, extra condition {} matches", skipConditions.ExtraCondition); return true; } } @@ -262,6 +253,18 @@ internal static class SkipCondition return false; } + private static bool MatchesExtraCondition(EExtraSkipCondition condition, Vector3 position, ushort territoryType) + { + return condition switch + { + EExtraSkipCondition.WakingSandsMainArea => territoryType == 212 && position.X < 24, + EExtraSkipCondition.RisingStonesSolar => territoryType == 351 && position.Z <= -28, + EExtraSkipCondition.RoguesGuild => territoryType == 129 && position.Y <= -115, + EExtraSkipCondition.DockStorehouse => territoryType == 137 && position.Y <= -20, + _ => throw new ArgumentOutOfRangeException(nameof(condition), condition, null) + }; + } + public override ETaskResult Update() => ETaskResult.SkipRemainingTasksForStep; } } -- 2.45.2 From 7871025139bb059548b6f7a6699e193997880926 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sat, 19 Oct 2024 10:31:45 +0200 Subject: [PATCH 149/448] Add new actions for NIN quests --- QuestPaths/quest-v1.json | 5 ++++- Questionable.Model/Questing/Converter/ActionConverter.cs | 3 +++ Questionable.Model/Questing/EAction.cs | 7 +++++++ 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/QuestPaths/quest-v1.json b/QuestPaths/quest-v1.json index 4551e444e..fb18c119f 100644 --- a/QuestPaths/quest-v1.json +++ b/QuestPaths/quest-v1.json @@ -942,7 +942,10 @@ "Yellow Gulal", "Blue Gulal", "Electric Flux", - "Hop-step" + "Hop-step", + "Fuma Shuriken", + "Katon", + "Raiton" ] } }, diff --git a/Questionable.Model/Questing/Converter/ActionConverter.cs b/Questionable.Model/Questing/Converter/ActionConverter.cs index 6f0be40e5..9b1be7dd8 100644 --- a/Questionable.Model/Questing/Converter/ActionConverter.cs +++ b/Questionable.Model/Questing/Converter/ActionConverter.cs @@ -35,5 +35,8 @@ public sealed class ActionConverter() : EnumConverter(Values) { EAction.BlueGulal, "Blue Gulal" }, { EAction.ElectrixFlux, "Electric Flux" }, { EAction.HopStep, "Hop-step" }, + { EAction.FumaShuriken, "Fuma Shuriken" }, + { EAction.Katon, "Katon" }, + { EAction.Raiton, "Raiton" }, }; } diff --git a/Questionable.Model/Questing/EAction.cs b/Questionable.Model/Questing/EAction.cs index 27bcca1ff..71549e6e6 100644 --- a/Questionable.Model/Questing/EAction.cs +++ b/Questionable.Model/Questing/EAction.cs @@ -36,6 +36,13 @@ public enum EAction BlueGulal = 29384, ElectrixFlux = 29718, HopStep = 31116, + Ten = 2259, + Ninjutsu = 2260, + Chi = 2261, + Jin = 2263, + FumaShuriken = 2265, + Katon = 2266, + Raiton = 2267, CollectMiner = 240, ScourMiner = 22182, -- 2.45.2 From c2b6b4e6bab22c10c96f93cd882e8838999ceaaf Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Sat, 19 Oct 2024 21:49:09 +0800 Subject: [PATCH 150/448] Added new daily quest: Tonight We Dine in Shells --- .../2983_Tonight We Dine in Shells.json | 112 ++++++++++++++++++ 1 file changed, 112 insertions(+) create mode 100644 QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2983_Tonight We Dine in Shells.json diff --git a/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2983_Tonight We Dine in Shells.json b/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2983_Tonight We Dine in Shells.json new file mode 100644 index 000000000..ecb3ee0a3 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2983_Tonight We Dine in Shells.json @@ -0,0 +1,112 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "plogon_enjoyer", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1024217, + "Position": { + "X": 394.39978, + "Y": -119.58932, + "Z": -232.28815 + }, + "TerritoryId": 613, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": 840.90247, + "Y": 5.923009, + "Z": 842.75916 + }, + "TerritoryId": 613, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Kugane", + "AethernetShortcut": [ + "[Kugane] Aetheryte Plaza", + "[Kugane] The Ruby Price" + ], + "Fly": true + }, + { + "DataId": 2009092, + "Position": { + "X": 38.864624, + "Y": 18.20398, + "Z": 712.7947 + }, + "TerritoryId": 613, + "InteractionType": "Combat", + "EnemySpawnType": "AfterItemUse", + "ItemId": 2002401, + "KillEnemyDataIds": [8236], + "RequiredQuestVariables": [null, null, null, [16, 32], null, null], + "Fly": true + }, + { + "DataId": 2009091, + "Position": { + "X": -72.58722, + "Y": 10.513428, + "Z": 632.41016 + }, + "TerritoryId": 613, + "InteractionType": "Combat", + "EnemySpawnType": "AfterItemUse", + "ItemId": 2002401, + "KillEnemyDataIds": [8236], + "RequiredQuestVariables": [null, null, null, [16], null, null], + "Fly": true + }, + { + "DataId": 2009093, + "Position": { + "X": 29.495605, + "Y": 3.0059814, + "Z": 527.7637 + }, + "TerritoryId": 613, + "InteractionType": "Combat", + "EnemySpawnType": "AfterItemUse", + "ItemId": 2002401, + "KillEnemyDataIds": [8236], + "RequiredQuestVariables": [null, null, null, [32], null, null], + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": 391.50903, + "Y": -119.58932, + "Z": -236.18898 + }, + "TerritoryId": 613, + "InteractionType": "WalkTo", + "Fly": true, + "AetheryteShortcut": "Ruby Sea - Tamamizu" + }, + { + "DataId": 1024217, + "Position": { + "X": 394.39978, + "Y": -119.58932, + "Z": -232.28815 + }, + "TerritoryId": 613, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} -- 2.45.2 From 38f4f6120dcf96610b886d79b69c15484282464f Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Sat, 19 Oct 2024 22:07:56 +0800 Subject: [PATCH 151/448] Added new story quest: Nest Side Story --- .../Vanu Vanu/Story/2170_Nest Side Story.json | 87 +++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Story/2170_Nest Side Story.json diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Story/2170_Nest Side Story.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Story/2170_Nest Side Story.json new file mode 100644 index 000000000..605ff2053 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Story/2170_Nest Side Story.json @@ -0,0 +1,87 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "plogon_enjoyer", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1016087, + "Position": { + "X": -796.7498, + "Y": -133.2695, + "Z": -410.6966 + }, + "TerritoryId": 401, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2006623, + "Position": { + "X": -761.74567, + "Y": -132.61621, + "Z": -422.1714 + }, + "TerritoryId": 401, + "InteractionType": "Emote", + "Emote": "sundropdance", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1016087, + "Position": { + "X": -796.7498, + "Y": -133.2695, + "Z": -410.6966 + }, + "TerritoryId": 401, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "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": 255, + "Steps": [ + { + "DataId": 2006637, + "Position": { + "X": -220.47766, + "Y": -4.9592285, + "Z": -582.3301 + }, + "TerritoryId": 401, + "InteractionType": "Interact", + "Fly": true + } + ] + } + ] +} -- 2.45.2 From ffa4fbb79366986ffcc7476fb7745e1bdbc04a8c Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Sat, 19 Oct 2024 22:24:10 +0800 Subject: [PATCH 152/448] Added new daily quests: - Borderline Slaughter - Fighting Firesand with Fire - Smothering Instinct - Arms of the U --- .../Dailies/1223_Borderline Slaughter.json | 63 +++++++++ .../1226_Fighting Firesand with Fire.json | 53 +++++++ .../Dailies/1227_Smothering Instinct.json | 37 +++++ .../Amalj'aa/Dailies/1230_Arms of the U.json | 132 ++++++++++++++++++ 4 files changed, 285 insertions(+) create mode 100644 QuestPaths/2.x - A Realm Reborn/Allied Societies/Amalj'aa/Dailies/1223_Borderline Slaughter.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Allied Societies/Amalj'aa/Dailies/1226_Fighting Firesand with Fire.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Allied Societies/Amalj'aa/Dailies/1227_Smothering Instinct.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Allied Societies/Amalj'aa/Dailies/1230_Arms of the U.json diff --git a/QuestPaths/2.x - A Realm Reborn/Allied Societies/Amalj'aa/Dailies/1223_Borderline Slaughter.json b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Amalj'aa/Dailies/1223_Borderline Slaughter.json new file mode 100644 index 000000000..bbc7f00b3 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Amalj'aa/Dailies/1223_Borderline Slaughter.json @@ -0,0 +1,63 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "plogon_enjoyer", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1005550, + "Position": { + "X": 105.27197, + "Y": 15.359643, + "Z": -357.3816 + }, + "TerritoryId": 146, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": 38.26816, + "Y": 2.6207216, + "Z": -275.37003 + }, + "TerritoryId": 146, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "ComplexCombatData": [ + { + "DataId": 742, + "MinimumKillCount": 2 + }, + { + "DataId": 739, + "MinimumKillCount": 2 + } + ], + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1005550, + "Position": { + "X": 105.27197, + "Y": 15.359643, + "Z": -357.3816 + }, + "TerritoryId": 146, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Allied Societies/Amalj'aa/Dailies/1226_Fighting Firesand with Fire.json b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Amalj'aa/Dailies/1226_Fighting Firesand with Fire.json new file mode 100644 index 000000000..79a7150fa --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Amalj'aa/Dailies/1226_Fighting Firesand with Fire.json @@ -0,0 +1,53 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "plogon_enjoyer", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1005550, + "Position": { + "X": 105.27197, + "Y": 15.359643, + "Z": -357.3816 + }, + "TerritoryId": 146, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1008327, + "Position": { + "X": 45.303955, + "Y": 4, + "Z": -345.11334 + }, + "TerritoryId": 146, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1005550, + "Position": { + "X": 105.27197, + "Y": 15.359643, + "Z": -357.3816 + }, + "TerritoryId": 146, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Allied Societies/Amalj'aa/Dailies/1227_Smothering Instinct.json b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Amalj'aa/Dailies/1227_Smothering Instinct.json new file mode 100644 index 000000000..538e8a4de --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Amalj'aa/Dailies/1227_Smothering Instinct.json @@ -0,0 +1,37 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "plogon_enjoyer", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1005550, + "Position": { + "X": 105.27197, + "Y": 15.359643, + "Z": -357.3816 + }, + "TerritoryId": 146, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1005550, + "Position": { + "X": 105.27197, + "Y": 15.359643, + "Z": -357.3816 + }, + "TerritoryId": 146, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Allied Societies/Amalj'aa/Dailies/1230_Arms of the U.json b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Amalj'aa/Dailies/1230_Arms of the U.json new file mode 100644 index 000000000..971efc8db --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Amalj'aa/Dailies/1230_Arms of the U.json @@ -0,0 +1,132 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "plogon_enjoyer", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1005550, + "Position": { + "X": 105.27197, + "Y": 15.359643, + "Z": -357.3816 + }, + "TerritoryId": 146, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2003141, + "Position": { + "X": -22.537598, + "Y": 3.616333, + "Z": -44.663208 + }, + "TerritoryId": 146, + "InteractionType": "Interact", + "Fly": true, + "RequiredQuestVariables": [null, null, null, [2, 3, 4], null, null] + }, + { + "DataId": 2003148, + "Position": { + "X": 15.27417, + "Y": 2.1820068, + "Z": 22.9953 + }, + "TerritoryId": 146, + "InteractionType": "Interact", + "Fly": true, + "RequiredQuestVariables": [null, null, null, [1, 4, 5], null, null] + }, + { + "DataId": 2003147, + "Position": { + "X": 25.192627, + "Y": 2.8533936, + "Z": 10.788086 + }, + "TerritoryId": 146, + "InteractionType": "Interact", + "Fly": true, + "RequiredQuestVariables": [null, null, null, [1, 3, 5], null, null] + }, + { + "DataId": 2003140, + "Position": { + "X": -37.094727, + "Y": -0.5340576, + "Z": 14.90802 + }, + "TerritoryId": 146, + "InteractionType": "Interact", + "Fly": true, + "RequiredQuestVariables": [null, null, null, [2, 5], null, null] + }, + { + "DataId": 2003136, + "Position": { + "X": -52.99463, + "Y": -1.2055054, + "Z": 17.532532 + }, + "TerritoryId": 146, + "InteractionType": "Interact", + "Fly": true, + "RequiredQuestVariables": [null, null, null, [1, 2, 3, 4], null, null] + }, + { + "Position": { + "X": -52.99463, + "Y": -1.2055054, + "Z": 17.532532 + }, + "TerritoryId": 146, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "ComplexCombatData": [ + { + "DataId": 740, + "MinimumKillCount": 1 + }, + { + "DataId": 741, + "MinimumKillCount": 1 + } + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": -124.393555, + "Y": -2.04119, + "Z": 36.344994 + }, + "TerritoryId": 146, + "InteractionType": "WalkTo" + }, + { + "DataId": 1005550, + "Position": { + "X": 105.27197, + "Y": 15.359643, + "Z": -357.3816 + }, + "TerritoryId": 146, + "InteractionType": "CompleteQuest", + "Fly": true, + "DelaySecondsAtStart": 3 + } + ] + } + ] +} -- 2.45.2 From c6272ccd88c0058be0bb43ee549bc8cdc82dee80 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sat, 19 Oct 2024 17:24:21 +0200 Subject: [PATCH 153/448] Add rogue quests; adjust ninja paths --- .../RoslynElements/QuestStepExtensions.cs | 2 + .../Class Quests/NIN/102_My First Dagger.json | 3 +- .../NIN/104_Stabbers in Yer Fambles.json | 196 ++++++++++ .../NIN/110_A Dainty Dilemma.json | 298 +++++++++++++++ .../NIN/126_Stray into the Shadows.json | 346 ++++++++++++++++++ .../Class Quests/NIN/144_Stifled Screams.json | 144 ++++++++ .../NIN/145_Slave to the Code.json | 86 +++++ .../NIN/146_Grinners in the Mist.json | 258 +++++++++++++ .../Class Quests/NIN/148_Sweet Sorrows.json | 292 +++++++++++++++ .../NIN/154_Market for Death.json | 160 ++++++++ .../Class Quests/NIN/155_Cloying Victory.json | 108 ++++++ .../212_Peasants by Day, Ninjas by Night.json | 27 +- .../Class Quests/NIN/213_My First Mudra.json | 20 +- .../NIN/215_Once Upon a Time in Doma.json | 41 +-- .../NIN/216_Pirates versus Ninjas.json | 20 +- .../Class Quests/NIN/217_Ninja Bathin'.json | 11 +- .../Class Quests/NIN/232_Tough Guys.json | 11 +- .../Class Quests/NIN/233_The Crow Knows.json | 11 +- .../NIN/234_Master and Student.json | 31 +- .../NIN/235_Strangers in a Strange Land.json | 22 +- .../NIN/1684_The Impossible Girl.json | 22 +- .../Class Quests/NIN/1685_Ninja Assassin.json | 67 +--- .../NIN/1686_Medieval Espionage.json | 22 +- .../Class Quests/NIN/1687_Staying Alive.json | 29 +- .../Class Quests/NIN/1688_In Her Defense.json | 42 +-- .../2948_Search for the Stolen Scroll.json | 29 +- .../NIN/2949_Ninja Bathin' Redux.json | 43 ++- .../NIN/2951_True Enlightenment.json | 31 +- .../NIN/2952_When Clans Collide.json | 22 +- QuestPaths/quest-v1.json | 27 +- .../Questing/Converter/ActionConverter.cs | 1 + .../Converter/InteractionTypeConverter.cs | 1 + .../Questing/Converter/StatusConverter.cs | 12 + Questionable.Model/Questing/EAction.cs | 2 + .../Questing/EInteractionType.cs | 1 + Questionable.Model/Questing/EStatus.cs | 12 + Questionable.Model/Questing/QuestStep.cs | 1 + .../Controller/Steps/Gathering/DoGather.cs | 4 +- .../Controller/Steps/Interactions/Action.cs | 82 ++++- .../Steps/Interactions/StatusOff.cs | 47 +++ Questionable/Functions/GameFunctions.cs | 8 +- Questionable/QuestionablePlugin.cs | 2 + 42 files changed, 2261 insertions(+), 333 deletions(-) create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/104_Stabbers in Yer Fambles.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/110_A Dainty Dilemma.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/126_Stray into the Shadows.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/144_Stifled Screams.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/145_Slave to the Code.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/146_Grinners in the Mist.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/148_Sweet Sorrows.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/154_Market for Death.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/155_Cloying Victory.json create mode 100644 Questionable.Model/Questing/Converter/StatusConverter.cs create mode 100644 Questionable.Model/Questing/EStatus.cs create mode 100644 Questionable/Controller/Steps/Interactions/StatusOff.cs diff --git a/QuestPathGenerator/RoslynElements/QuestStepExtensions.cs b/QuestPathGenerator/RoslynElements/QuestStepExtensions.cs index 45f2a858e..d65ca7942 100644 --- a/QuestPathGenerator/RoslynElements/QuestStepExtensions.cs +++ b/QuestPathGenerator/RoslynElements/QuestStepExtensions.cs @@ -95,6 +95,8 @@ internal static class QuestStepExtensions .AsSyntaxNodeOrToken(), Assignment(nameof(QuestStep.Action), step.Action, emptyStep.Action) .AsSyntaxNodeOrToken(), + Assignment(nameof(QuestStep.Status), step.Status, emptyStep.Status) + .AsSyntaxNodeOrToken(), Assignment(nameof(QuestStep.EnemySpawnType), step.EnemySpawnType, emptyStep.EnemySpawnType) .AsSyntaxNodeOrToken(), diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/102_My First Dagger.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/102_My First Dagger.json index 431a9e90b..bece61c85 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/102_My First Dagger.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/102_My First Dagger.json @@ -53,7 +53,8 @@ "Prompt": "TEXT_CLSROG011_00102_Q1_000_030", "Yes": true } - ] + ], + "NextQuestId": 104 } ] } diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/104_Stabbers in Yer Fambles.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/104_Stabbers in Yer Fambles.json new file mode 100644 index 000000000..a87348bb6 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/104_Stabbers in Yer Fambles.json @@ -0,0 +1,196 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1009944, + "Position": { + "X": -152.66656, + "Y": 2.8562405, + "Z": 243.18298 + }, + "TerritoryId": 129, + "InteractionType": "Interact", + "AetheryteShortcut": "Limsa Lominsa", + "TargetTerritoryId": 129, + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] Fishermens' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + }, + "StepIf": { + "ExtraCondition": "RoguesGuild" + } + } + }, + { + "DataId": 1009943, + "Position": { + "X": -153.36847, + "Y": -129.4397, + "Z": 265.88843 + }, + "StopDistance": 7, + "TerritoryId": 129, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": 31.662792, + "Y": 44.020653, + "Z": 146.94322 + }, + "TerritoryId": 134, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "ComplexCombatData": [ + { + "DataId": 347, + "MinimumKillCount": 3, + "CompletionQuestVariablesFlags": [ + { + "Low": 3 + }, + null, + null, + null, + null, + null + ] + } + ], + "AethernetShortcut": [ + "[Limsa Lominsa] Fishermens' Guild", + "[Limsa Lominsa] Zephyr Gate (Middle La Noscea)" + ], + "CompletionQuestVariablesFlags": [ + { + "Low": 3 + }, + null, + null, + null, + null, + null + ] + }, + { + "Position": { + "X": 74.15681, + "Y": 45.953808, + "Z": 169.73499 + }, + "TerritoryId": 134, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "ComplexCombatData": [ + { + "DataId": 338, + "MinimumKillCount": 3, + "CompletionQuestVariablesFlags": [ + null, + { + "Low": 3 + }, + null, + null, + null, + null + ] + } + ], + "CompletionQuestVariablesFlags": [ + null, + { + "Low": 3 + }, + null, + null, + null, + null + ] + }, + { + "Position": { + "X": 5.6626997, + "Y": 42.625427, + "Z": 55.983746 + }, + "TerritoryId": 134, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "ComplexCombatData": [ + { + "DataId": 383, + "MinimumKillCount": 3, + "CompletionQuestVariablesFlags": [ + null, + { + "High": 3 + }, + null, + null, + null, + null + ] + } + ], + "CompletionQuestVariablesFlags": [ + null, + { + "High": 3 + }, + null, + null, + null, + null + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1009944, + "Position": { + "X": -152.66656, + "Y": 2.8562405, + "Z": 243.18298 + }, + "TerritoryId": 129, + "InteractionType": "Interact", + "TargetTerritoryId": 129, + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] Fishermens' Guild" + ] + }, + { + "DataId": 1009943, + "Position": { + "X": -153.36847, + "Y": -129.4397, + "Z": 265.88843 + }, + "StopDistance": 7, + "TerritoryId": 129, + "InteractionType": "CompleteQuest", + "NextQuestId": 110 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/110_A Dainty Dilemma.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/110_A Dainty Dilemma.json new file mode 100644 index 000000000..062d18b9d --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/110_A Dainty Dilemma.json @@ -0,0 +1,298 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1009944, + "Position": { + "X": -152.66656, + "Y": 2.8562405, + "Z": 243.18298 + }, + "TerritoryId": 129, + "InteractionType": "Interact", + "AetheryteShortcut": "Limsa Lominsa", + "TargetTerritoryId": 129, + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] Fishermens' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + }, + "StepIf": { + "ExtraCondition": "RoguesGuild" + } + } + }, + { + "DataId": 1009943, + "Position": { + "X": -153.36847, + "Y": -129.4397, + "Z": 265.88843 + }, + "StopDistance": 7, + "TerritoryId": 129, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1010197, + "Position": { + "X": -150.98804, + "Y": -129.4397, + "Z": 266.31567 + }, + "StopDistance": 7, + "TerritoryId": 129, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2004936, + "Position": { + "X": -151.90363, + "Y": -128.16058, + "Z": 256.8551 + }, + "TerritoryId": 129, + "InteractionType": "Interact", + "TargetTerritoryId": 129, + "SkipConditions": { + "StepIf": { + "InTerritory": [ + 135 + ] + } + } + }, + { + "Position": { + "X": 174.3623, + "Y": 39.811382, + "Z": 52.27733 + }, + "TerritoryId": 135, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "Fly": true, + "KillEnemyDataIds": [ + 324 + ], + "AethernetShortcut": [ + "[Limsa Lominsa] Fishermens' Guild", + "[Limsa Lominsa] Tempest Gate (Lower La Noscea)" + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1009944, + "Position": { + "X": -152.66656, + "Y": 2.8562405, + "Z": 243.18298 + }, + "TerritoryId": 129, + "InteractionType": "Interact", + "TargetTerritoryId": 129, + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] Fishermens' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + }, + "StepIf": { + "ExtraCondition": "RoguesGuild" + } + } + }, + { + "DataId": 1010197, + "Position": { + "X": -150.98804, + "Y": -129.4397, + "Z": 266.31567 + }, + "StopDistance": 7, + "TerritoryId": 129, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 2004936, + "Position": { + "X": -151.90363, + "Y": -128.16058, + "Z": 256.8551 + }, + "TerritoryId": 129, + "InteractionType": "Interact", + "TargetTerritoryId": 129, + "AethernetShortcut": [ + "[Limsa Lominsa] Fishermens' Guild", + "[Limsa Lominsa] The Aftcastle" + ], + "SkipConditions": { + "StepIf": { + "InTerritory": [ + 128 + ] + } + } + }, + { + "DataId": 1005411, + "Position": { + "X": 13.412659, + "Y": 40.2, + "Z": -13.260071 + }, + "TerritoryId": 128, + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_CLSROG050_00110_Q1_000_061", + "Answer": "TEXT_CLSROG050_00110_A1_000_064" + } + ] + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1010206, + "Position": { + "X": 107.71338, + "Y": 47.783855, + "Z": 50.736206 + }, + "TerritoryId": 134, + "InteractionType": "Interact", + "Fly": true, + "AethernetShortcut": [ + "[Limsa Lominsa] The Aftcastle", + "[Limsa Lominsa] Zephyr Gate (Middle La Noscea)" + ] + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "Position": { + "X": 101.76026, + "Y": 48.69752, + "Z": 10.89893 + }, + "TerritoryId": 134, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "KillEnemyDataIds": [ + 769 + ], + "Fly": true + } + ] + }, + { + "Sequence": 7, + "Steps": [ + { + "DataId": 1010206, + "Position": { + "X": 107.71338, + "Y": 47.783855, + "Z": 50.736206 + }, + "TerritoryId": 134, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 8, + "Steps": [ + { + "DataId": 1009944, + "Position": { + "X": -152.66656, + "Y": 2.8562405, + "Z": 243.18298 + }, + "TerritoryId": 129, + "InteractionType": "Interact", + "TargetTerritoryId": 129, + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] Fishermens' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + }, + "StepIf": { + "ExtraCondition": "RoguesGuild" + } + } + }, + { + "DataId": 1009943, + "Position": { + "X": -153.36847, + "Y": -129.4397, + "Z": 265.88843 + }, + "StopDistance": 7, + "TerritoryId": 129, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1009943, + "Position": { + "X": -153.36847, + "Y": -129.4397, + "Z": 265.88843 + }, + "StopDistance": 7, + "TerritoryId": 129, + "InteractionType": "CompleteQuest", + "NextQuestId": 126 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/126_Stray into the Shadows.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/126_Stray into the Shadows.json new file mode 100644 index 000000000..bf69b4562 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/126_Stray into the Shadows.json @@ -0,0 +1,346 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1009944, + "Position": { + "X": -152.66656, + "Y": 2.8562405, + "Z": 243.18298 + }, + "TerritoryId": 129, + "InteractionType": "Interact", + "AetheryteShortcut": "Limsa Lominsa", + "TargetTerritoryId": 129, + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] Fishermens' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + }, + "StepIf": { + "ExtraCondition": "RoguesGuild" + } + } + }, + { + "DataId": 1009943, + "Position": { + "X": -153.36847, + "Y": -129.4397, + "Z": 265.88843 + }, + "StopDistance": 7, + "TerritoryId": 129, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1010198, + "Position": { + "X": -152.11719, + "Y": -129.4397, + "Z": 267.10913 + }, + "StopDistance": 7, + "TerritoryId": 129, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2004936, + "Position": { + "X": -151.8734, + "Y": -128.1446, + "Z": 256.8712 + }, + "TerritoryId": 129, + "InteractionType": "Interact", + "TargetTerritoryId": 129, + "SkipConditions": { + "StepIf": { + "InTerritory": [ + 128 + ] + } + } + }, + { + "DataId": 1010212, + "Position": { + "X": -50.8584, + "Y": 40, + "Z": 111.40613 + }, + "TerritoryId": 128, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Limsa Lominsa] Fishermens' Guild", + "[Limsa Lominsa] The Aftcastle" + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1010211, + "Position": { + "X": -42.22174, + "Y": 42.249126, + "Z": 115.89221 + }, + "TerritoryId": 128, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "Position": { + "X": -62.300663, + "Y": 42.300003, + "Z": -151.94725 + }, + "StopDistance": 0.5, + "TerritoryId": 128, + "InteractionType": "Action", + "Action": "Hide", + "AethernetShortcut": [ + "[Limsa Lominsa] The Aftcastle", + "[Limsa Lominsa] Culinarians' Guild" + ], + "SkipConditions": { + "StepIf": { + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + } + } + }, + { + "Position": { + "X": -54.962505, + "Y": 42.300007, + "Z": -158.14607 + }, + "StopDistance": 0.5, + "TerritoryId": 128, + "InteractionType": "WalkTo", + "DisableNavmesh": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "TerritoryId": 128, + "InteractionType": "StatusOff", + "Status": "Hidden" + }, + { + "Position": { + "X": -155.25468, + "Y": 18, + "Z": 28.882175 + }, + "StopDistance": 0.5, + "TerritoryId": 129, + "InteractionType": "Action", + "Action": "Hide", + "AethernetShortcut": [ + "[Limsa Lominsa] Culinarians' Guild", + "[Limsa Lominsa] Hawkers' Alley" + ], + "SkipConditions": { + "StepIf": { + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + } + } + }, + { + "Position": { + "X": -150.91245, + "Y": 18.2, + "Z": 34.06711 + }, + "StopDistance": 0.5, + "TerritoryId": 129, + "InteractionType": "WalkTo", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, + { + "TerritoryId": 129, + "InteractionType": "StatusOff", + "Status": "Hidden" + }, + { + "Position": { + "X": -187.95581, + "Y": 1.2697256, + "Z": 208.46738 + }, + "StopDistance": 0.5, + "TerritoryId": 129, + "InteractionType": "Action", + "Action": "Hide", + "AethernetShortcut": [ + "[Limsa Lominsa] Hawkers' Alley", + "[Limsa Lominsa] Fishermens' Guild" + ], + "SkipConditions": { + "StepIf": { + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + } + } + }, + { + "Position": { + "X": -190.81572, + "Y": 0.9999907, + "Z": 210.59836 + }, + "TerritoryId": 129, + "InteractionType": "WalkTo", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "TerritoryId": 129, + "InteractionType": "StatusOff", + "Status": "Hidden" + }, + { + "DataId": 1010213, + "Position": { + "X": -161.12, + "Y": 1.9499999, + "Z": 239.30713 + }, + "TerritoryId": 129, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1010213, + "Position": { + "X": -161.12, + "Y": 1.9499999, + "Z": 239.30713 + }, + "TerritoryId": 129, + "InteractionType": "SinglePlayerDuty" + } + ] + }, + { + "Sequence": 7, + "Steps": [ + { + "DataId": 1010213, + "Position": { + "X": -161.12, + "Y": 1.9499999, + "Z": 239.30713 + }, + "TerritoryId": 129, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Limsa Lominsa] Hawkers' Alley", + "[Limsa Lominsa] Fishermens' Guild" + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1009944, + "Position": { + "X": -152.66656, + "Y": 2.8562405, + "Z": 243.18298 + }, + "TerritoryId": 129, + "InteractionType": "Interact", + "TargetTerritoryId": 129 + }, + { + "DataId": 1009943, + "Position": { + "X": -153.36847, + "Y": -129.4397, + "Z": 265.88843 + }, + "StopDistance": 7, + "TerritoryId": 129, + "InteractionType": "CompleteQuest", + "NextQuestId": 144 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/144_Stifled Screams.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/144_Stifled Screams.json new file mode 100644 index 000000000..be10582b4 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/144_Stifled Screams.json @@ -0,0 +1,144 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1009944, + "Position": { + "X": -152.66656, + "Y": 2.8562405, + "Z": 243.18298 + }, + "TerritoryId": 129, + "InteractionType": "Interact", + "AetheryteShortcut": "Limsa Lominsa", + "TargetTerritoryId": 129, + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] Fishermens' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + }, + "StepIf": { + "ExtraCondition": "RoguesGuild" + } + } + }, + { + "DataId": 1009943, + "Position": { + "X": -153.36847, + "Y": -129.4397, + "Z": 265.88843 + }, + "StopDistance": 7, + "TerritoryId": 129, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1009943, + "Position": { + "X": -153.36847, + "Y": -129.4397, + "Z": 265.88843 + }, + "StopDistance": 7, + "TerritoryId": 129, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1010199, + "Position": { + "X": 256.12268, + "Y": 21.097961, + "Z": 581.3839 + }, + "TerritoryId": 135, + "InteractionType": "Interact", + "AetheryteShortcut": "Lower La Noscea - Moraby Drydocks", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2004861, + "Position": { + "X": -131.63965, + "Y": 0.503479, + "Z": 729.9762 + }, + "TerritoryId": 135, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1010218, + "Position": { + "X": 319.44763, + "Y": -36.353825, + "Z": 346.76123 + }, + "TerritoryId": 138, + "InteractionType": "Interact", + "Fly": true, + "AetheryteShortcut": "Western La Noscea - Aleport" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1010218, + "Position": { + "X": 319.44763, + "Y": -36.353825, + "Z": 346.76123 + }, + "TerritoryId": 138, + "InteractionType": "SinglePlayerDuty" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1010218, + "Position": { + "X": 319.44763, + "Y": -36.353825, + "Z": 346.76123 + }, + "StopDistance": 5, + "TerritoryId": 138, + "InteractionType": "CompleteQuest", + "NextQuestId": 145 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/145_Slave to the Code.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/145_Slave to the Code.json new file mode 100644 index 000000000..18b09b127 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/145_Slave to the Code.json @@ -0,0 +1,86 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1010218, + "Position": { + "X": 319.44763, + "Y": -36.353825, + "Z": 346.76123 + }, + "StopDistance": 5, + "TerritoryId": 138, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Western La Noscea - Aleport", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": 593.2056, + "Y": 43.88314, + "Z": 304.65137 + }, + "TerritoryId": 138, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 1010228, + "Position": { + "X": 594.1709, + "Y": 43.893982, + "Z": 303.76135 + }, + "TerritoryId": 138, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1009944, + "Position": { + "X": -152.66656, + "Y": 2.8562405, + "Z": 243.18298 + }, + "TerritoryId": 129, + "InteractionType": "Interact", + "TargetTerritoryId": 129, + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] Fishermens' Guild" + ] + }, + { + "DataId": 1009943, + "Position": { + "X": -153.36847, + "Y": -129.4397, + "Z": 265.88843 + }, + "StopDistance": 7, + "TerritoryId": 129, + "InteractionType": "CompleteQuest", + "NextQuestId": 146 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/146_Grinners in the Mist.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/146_Grinners in the Mist.json new file mode 100644 index 000000000..091bc9be8 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/146_Grinners in the Mist.json @@ -0,0 +1,258 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1009944, + "Position": { + "X": -152.66656, + "Y": 2.8562405, + "Z": 243.18298 + }, + "TerritoryId": 129, + "InteractionType": "Interact", + "AetheryteShortcut": "Limsa Lominsa", + "TargetTerritoryId": 129, + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] Fishermens' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + }, + "StepIf": { + "ExtraCondition": "RoguesGuild" + } + } + }, + { + "DataId": 1009943, + "Position": { + "X": -153.36847, + "Y": -129.4397, + "Z": 265.88843 + }, + "StopDistance": 7, + "TerritoryId": 129, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2004936, + "Position": { + "X": -151.90363, + "Y": -128.16058, + "Z": 256.8551 + }, + "TerritoryId": 129, + "InteractionType": "Interact", + "TargetTerritoryId": 129 + }, + { + "DataId": 1010238, + "Position": { + "X": 146.71545, + "Y": 62.3279, + "Z": 291.82874 + }, + "TerritoryId": 134, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Limsa Lominsa] Fishermens' Guild", + "[Limsa Lominsa] Zephyr Gate (Middle La Noscea)" + ], + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": 168.34132, + "Y": 69.5, + "Z": 327.67975 + }, + "StopDistance": 0.5, + "TerritoryId": 134, + "InteractionType": "Action", + "Action": "Hide" + }, + { + "Position": { + "X": 178.24341, + "Y": 69.5, + "Z": 328.4606 + }, + "TerritoryId": 134, + "InteractionType": "WalkTo" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "TerritoryId": 134, + "InteractionType": "StatusOff", + "Status": "Hidden" + }, + { + "DataId": 1010238, + "Position": { + "X": 146.71545, + "Y": 62.3279, + "Z": 291.82874 + }, + "TerritoryId": 134, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1010242, + "Position": { + "X": 7.2174683, + "Y": 57.91383, + "Z": -307.11835 + }, + "TerritoryId": 134, + "InteractionType": "Combat", + "AetheryteShortcut": "Middle La Noscea - Summerford Farms", + "Fly": true, + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 3567, + 3568 + ] + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1010242, + "Position": { + "X": 7.2174683, + "Y": 57.91383, + "Z": -307.11835 + }, + "TerritoryId": 134, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1009944, + "Position": { + "X": -152.66656, + "Y": 2.8562405, + "Z": 243.18298 + }, + "TerritoryId": 129, + "InteractionType": "Interact", + "TargetTerritoryId": 129, + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] Fishermens' Guild" + ] + }, + { + "DataId": 1009943, + "Position": { + "X": -153.36847, + "Y": -129.4397, + "Z": 265.88843 + }, + "StopDistance": 7, + "TerritoryId": 129, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 7, + "Steps": [ + { + "DataId": 1010237, + "Position": { + "X": 242.29797, + "Y": 8.000164, + "Z": 668.2383 + }, + "TerritoryId": 135, + "InteractionType": "SinglePlayerDuty", + "AetheryteShortcut": "Lower La Noscea - Moraby Drydocks", + "Fly": true + } + ] + }, + { + "Sequence": 8, + "Steps": [ + { + "DataId": 1010237, + "Position": { + "X": 242.29797, + "Y": 8.000164, + "Z": 668.2383 + }, + "StopDistance": 7, + "TerritoryId": 135, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1009944, + "Position": { + "X": -152.66656, + "Y": 2.8562405, + "Z": 243.18298 + }, + "TerritoryId": 129, + "InteractionType": "Interact", + "TargetTerritoryId": 129, + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] Fishermens' Guild" + ] + }, + { + "DataId": 1009943, + "Position": { + "X": -153.36847, + "Y": -129.4397, + "Z": 265.88843 + }, + "StopDistance": 7, + "TerritoryId": 129, + "InteractionType": "CompleteQuest", + "NextQuestId": 148 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/148_Sweet Sorrows.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/148_Sweet Sorrows.json new file mode 100644 index 000000000..78735a356 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/148_Sweet Sorrows.json @@ -0,0 +1,292 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1009944, + "Position": { + "X": -152.66656, + "Y": 2.8562405, + "Z": 243.18298 + }, + "TerritoryId": 129, + "InteractionType": "Interact", + "AetheryteShortcut": "Limsa Lominsa", + "TargetTerritoryId": 129, + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] Fishermens' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + }, + "StepIf": { + "ExtraCondition": "RoguesGuild" + } + } + }, + { + "DataId": 1009943, + "Position": { + "X": -153.36847, + "Y": -129.4397, + "Z": 265.88843 + }, + "StopDistance": 7, + "TerritoryId": 129, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2004936, + "Position": { + "X": -151.90363, + "Y": -128.16058, + "Z": 256.8551 + }, + "TerritoryId": 129, + "InteractionType": "Interact", + "TargetTerritoryId": 129, + "SkipConditions": { + "StepIf": { + "InTerritory": [ + 134, + 135 + ] + } + } + }, + { + "Position": { + "X": 212.54845, + "Y": 65.80573, + "Z": 285.71436 + }, + "TerritoryId": 134, + "InteractionType": "WalkTo", + "AethernetShortcut": [ + "[Limsa Lominsa] Fishermens' Guild", + "[Limsa Lominsa] Zephyr Gate (Middle La Noscea)" + ], + "Fly": true, + "SkipConditions": { + "StepIf": { + "InTerritory": [ + 135 + ] + } + } + }, + { + "Position": { + "X": 509.26575, + "Y": 95.90476, + "Z": -446.11078 + }, + "StopDistance": 0.5, + "TerritoryId": 135, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [ + 2864, + 2865, + 2866 + ], + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1010252, + "Position": { + "X": 508.23218, + "Y": 95.95811, + "Z": -449.82074 + }, + "TerritoryId": 135, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1009944, + "Position": { + "X": -152.66656, + "Y": 2.8562405, + "Z": 243.18298 + }, + "TerritoryId": 129, + "InteractionType": "Interact", + "TargetTerritoryId": 129, + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] Fishermens' Guild" + ] + }, + { + "DataId": 1009943, + "Position": { + "X": -153.36847, + "Y": -129.4397, + "Z": 265.88843 + }, + "StopDistance": 7, + "TerritoryId": 129, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 2004936, + "Position": { + "X": -151.90363, + "Y": -128.16058, + "Z": 256.8551 + }, + "TerritoryId": 129, + "InteractionType": "Interact", + "TargetTerritoryId": 129, + "SkipConditions": { + "StepIf": { + "AetheryteUnlocked": "Eastern La Noscea - Costa Del Sol" + } + }, + "$": "Pathfinder ref" + }, + { + "DataId": 1000868, + "Position": { + "X": -192.00433, + "Y": 0.9999907, + "Z": 211.68835 + }, + "TerritoryId": 129, + "InteractionType": "Interact", + "TargetTerritoryId": 137, + "SkipConditions": { + "StepIf": { + "AetheryteUnlocked": "Eastern La Noscea - Costa Del Sol" + } + } + }, + { + "TerritoryId": 137, + "InteractionType": "AttuneAetheryte", + "Aetheryte": "Eastern La Noscea - Costa Del Sol", + "SkipConditions": { + "StepIf": { + "AetheryteUnlocked": "Eastern La Noscea - Costa Del Sol" + } + } + }, + { + "Position": { + "X": 449.17413, + "Y": 16.072088, + "Z": 406.06335 + }, + "TerritoryId": 137, + "InteractionType": "WalkTo", + "Fly": true, + "AetheryteShortcut": "Eastern La Noscea - Costa Del Sol", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + }, + { + "DataId": 1010251, + "Position": { + "X": 450.82776, + "Y": 16.18121, + "Z": 406.69873 + }, + "TerritoryId": 137, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1010251, + "Position": { + "X": 450.82776, + "Y": 16.18121, + "Z": 406.69873 + }, + "TerritoryId": 137, + "InteractionType": "SinglePlayerDuty" + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1010250, + "Position": { + "X": 448.47778, + "Y": 16.154829, + "Z": 408.77393 + }, + "TerritoryId": 137, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1009944, + "Position": { + "X": -152.66656, + "Y": 2.8562405, + "Z": 243.18298 + }, + "TerritoryId": 129, + "InteractionType": "Interact", + "TargetTerritoryId": 129, + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] Fishermens' Guild" + ] + }, + { + "DataId": 1009943, + "Position": { + "X": -153.36847, + "Y": -129.4397, + "Z": 265.88843 + }, + "StopDistance": 7, + "TerritoryId": 129, + "InteractionType": "CompleteQuest", + "NextQuestId": 154 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/154_Market for Death.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/154_Market for Death.json new file mode 100644 index 000000000..d0908b941 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/154_Market for Death.json @@ -0,0 +1,160 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1009944, + "Position": { + "X": -152.66656, + "Y": 2.8562405, + "Z": 243.18298 + }, + "TerritoryId": 129, + "InteractionType": "Interact", + "AetheryteShortcut": "Limsa Lominsa", + "TargetTerritoryId": 129, + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] Fishermens' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + }, + "StepIf": { + "ExtraCondition": "RoguesGuild" + } + } + }, + { + "DataId": 1009943, + "Position": { + "X": -153.36847, + "Y": -129.4397, + "Z": 265.88843 + }, + "StopDistance": 7, + "TerritoryId": 129, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": 410.07083, + "Y": 31.504957, + "Z": -12.586371 + }, + "TerritoryId": 138, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Western La Noscea - Aleport", + "TargetTerritoryId": 139, + "Fly": true + }, + { + "Position": { + "X": -436.69995, + "Y": -2.0159357, + "Z": 48.819775 + }, + "StopDistance": 1, + "TerritoryId": 139, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [ + 3569, + 3570, + 3571 + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2004916, + "Position": { + "X": -436.02655, + "Y": -1.9379272, + "Z": 48.569458 + }, + "TerritoryId": 139, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1010261, + "Position": { + "X": -437.3694, + "Y": -2.369183, + "Z": 55.954834 + }, + "StopDistance": 7, + "TerritoryId": 139, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1010267, + "Position": { + "X": -449.08832, + "Y": 21.634577, + "Z": -327.93164 + }, + "TerritoryId": 134, + "InteractionType": "Interact", + "AetheryteShortcut": "Middle La Noscea - Summerford Farms", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1009944, + "Position": { + "X": -152.66656, + "Y": 2.8562405, + "Z": 243.18298 + }, + "TerritoryId": 129, + "InteractionType": "Interact", + "TargetTerritoryId": 129, + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] Fishermens' Guild" + ] + }, + { + "DataId": 1009943, + "Position": { + "X": -153.36847, + "Y": -129.4397, + "Z": 265.88843 + }, + "StopDistance": 7, + "TerritoryId": 129, + "InteractionType": "CompleteQuest", + "NextQuestId": 155 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/155_Cloying Victory.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/155_Cloying Victory.json new file mode 100644 index 000000000..4b7c8044e --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/155_Cloying Victory.json @@ -0,0 +1,108 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1009944, + "Position": { + "X": -152.66656, + "Y": 2.8562405, + "Z": 243.18298 + }, + "TerritoryId": 129, + "InteractionType": "Interact", + "AetheryteShortcut": "Limsa Lominsa", + "TargetTerritoryId": 129, + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] Fishermens' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + }, + "StepIf": { + "ExtraCondition": "RoguesGuild" + } + } + }, + { + "DataId": 1009943, + "Position": { + "X": -153.36847, + "Y": -129.4397, + "Z": 265.88843 + }, + "StopDistance": 7, + "TerritoryId": 129, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2004936, + "Position": { + "X": -151.90363, + "Y": -128.16058, + "Z": 256.8551 + }, + "TerritoryId": 129, + "InteractionType": "Interact", + "TargetTerritoryId": 129 + }, + { + "DataId": 2004863, + "Position": { + "X": 4.4403076, + "Y": 44.47998, + "Z": 121.29382 + }, + "TerritoryId": 128, + "InteractionType": "SinglePlayerDuty", + "AethernetShortcut": [ + "[Limsa Lominsa] Fishermens' Guild", + "[Limsa Lominsa] The Aftcastle" + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1009944, + "Position": { + "X": -152.66656, + "Y": 2.8562405, + "Z": 243.18298 + }, + "TerritoryId": 129, + "InteractionType": "Interact", + "TargetTerritoryId": 129, + "AethernetShortcut": [ + "[Limsa Lominsa] The Aftcastle", + "[Limsa Lominsa] Fishermens' Guild" + ] + }, + { + "DataId": 1009943, + "Position": { + "X": -153.36847, + "Y": -129.4397, + "Z": 265.88843 + }, + "StopDistance": 7, + "TerritoryId": 129, + "InteractionType": "CompleteQuest", + "NextQuestId": 212 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/212_Peasants by Day, Ninjas by Night.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/212_Peasants by Day, Ninjas by Night.json index b4d68b9e7..c0aece195 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/212_Peasants by Day, Ninjas by Night.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/212_Peasants by Day, Ninjas by Night.json @@ -21,16 +21,11 @@ "[Limsa Lominsa] Fishermens' Guild" ], "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + }, "StepIf": { - "NearPosition": { - "Position": { - "X": -151.80984, - "Y": -128.6493, - "Z": 265.27332 - }, - "TerritoryId": 129, - "MaximumDistance": 50 - } + "ExtraCondition": "RoguesGuild" } } }, @@ -41,6 +36,7 @@ "Y": -129.4397, "Z": 265.88843 }, + "StopDistance": 7, "TerritoryId": 129, "InteractionType": "AcceptQuest" } @@ -98,7 +94,8 @@ "Z": -2.3651733 }, "TerritoryId": 137, - "InteractionType": "Interact" + "InteractionType": "Interact", + "Fly": true } ] }, @@ -135,9 +132,17 @@ "TerritoryId": 137, "InteractionType": "Interact", "AetheryteShortcut": "Eastern La Noscea - Wineport", + "Fly": true, "SkipConditions": { "AetheryteShortcutIf": { "InSameTerritory": true } - } + }, + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_JOBNIN300_00212_Q2_000_000", + "Yes": true + } + ] } ] }, diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/213_My First Mudra.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/213_My First Mudra.json index 36039c5b2..68637f769 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/213_My First Mudra.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/213_My First Mudra.json @@ -18,15 +18,7 @@ "SkipConditions": { "AetheryteShortcutIf": { "InSameTerritory": true }, "StepIf": { - "NearPosition": { - "Position": { - "X": -25.149055, - "Y": -24.773232, - "Z": 258.15594 - }, - "TerritoryId": 137, - "MaximumDistance": 25 - } + "ExtraCondition": "DockStorehouse" } }, "TargetTerritoryId": 137, @@ -77,9 +69,15 @@ } }, { - "InteractionType": "WaitForManualProgress", + "DataId": 2004927, + "Position": { + "X": -10.605103, + "Y": 41.397705, + "Z": 267.87207 + }, "TerritoryId": 137, - "Comment": "Use Ten -> Fuma Shuriken on the dummy" + "InteractionType": "Action", + "Action": "Fuma Shuriken" } ] }, diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/215_Once Upon a Time in Doma.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/215_Once Upon a Time in Doma.json index 4f10975f0..a0d21f699 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/215_Once Upon a Time in Doma.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/215_Once Upon a Time in Doma.json @@ -18,15 +18,7 @@ "SkipConditions": { "AetheryteShortcutIf": { "InSameTerritory": true }, "StepIf": { - "NearPosition": { - "Position": { - "X": -25.149055, - "Y": -24.773232, - "Z": 258.15594 - }, - "TerritoryId": 137, - "MaximumDistance": 25 - } + "ExtraCondition": "DockStorehouse" } }, "TargetTerritoryId": 137 @@ -71,9 +63,15 @@ } }, { - "InteractionType": "WaitForManualProgress", + "DataId": 2004928, + "Position": { + "X": -10.605103, + "Y": 41.397705, + "Z": 267.87207 + }, "TerritoryId": 137, - "Comment": "Use Ten -> Chi -> Raiton on the dummy" + "InteractionType": "Action", + "Action": "Raiton" } ] }, @@ -96,9 +94,16 @@ "Sequence": 3, "Steps": [ { - "InteractionType": "WaitForManualProgress", + "DataId": 2004929, + "Position": { + "X": -10.605103, + "Y": 41.397705, + "Z": 267.87207 + }, + "StopDistance": 7, "TerritoryId": 137, - "Comment": "Use Chi -> Ten -> Katon on the dummy" + "InteractionType": "Action", + "Action": "Katon" } ] }, @@ -180,15 +185,7 @@ "SkipConditions": { "AetheryteShortcutIf": { "InSameTerritory": true }, "StepIf": { - "NearPosition": { - "Position": { - "X": -25.149055, - "Y": -24.773232, - "Z": 258.15594 - }, - "TerritoryId": 137, - "MaximumDistance": 25 - } + "ExtraCondition": "DockStorehouse" } }, "TargetTerritoryId": 137 diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/216_Pirates versus Ninjas.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/216_Pirates versus Ninjas.json index 5449a01ed..f93110de2 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/216_Pirates versus Ninjas.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/216_Pirates versus Ninjas.json @@ -15,19 +15,10 @@ "TerritoryId": 137, "InteractionType": "Interact", "AetheryteShortcut": "Eastern La Noscea - Wineport", - "Fly": true, "SkipConditions": { "AetheryteShortcutIf": { "InSameTerritory": true }, "StepIf": { - "NearPosition": { - "Position": { - "X": -25.149055, - "Y": -24.773232, - "Z": 258.15594 - }, - "TerritoryId": 137, - "MaximumDistance": 25 - } + "ExtraCondition": "DockStorehouse" } }, "TargetTerritoryId": 137 @@ -40,7 +31,14 @@ "Z": 257.98413 }, "TerritoryId": 137, - "InteractionType": "AcceptQuest" + "InteractionType": "AcceptQuest", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_JOBNIN400_00216_Q1_000_000", + "Answer": "TEXT_JOBNIN400_00216_A1_000_001" + } + ] } ] }, diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/217_Ninja Bathin'.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/217_Ninja Bathin'.json index 2108a0ce2..47e609362 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/217_Ninja Bathin'.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/217_Ninja Bathin'.json @@ -207,19 +207,10 @@ "TerritoryId": 137, "InteractionType": "Interact", "AetheryteShortcut": "Eastern La Noscea - Wineport", - "Fly": true, "SkipConditions": { "AetheryteShortcutIf": { "InSameTerritory": true }, "StepIf": { - "NearPosition": { - "Position": { - "X": -25.149055, - "Y": -24.773232, - "Z": 258.15594 - }, - "TerritoryId": 137, - "MaximumDistance": 25 - } + "ExtraCondition": "DockStorehouse" } }, "TargetTerritoryId": 137 diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/232_Tough Guys.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/232_Tough Guys.json index 277b3c15a..da4da560e 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/232_Tough Guys.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/232_Tough Guys.json @@ -15,19 +15,10 @@ "TerritoryId": 137, "InteractionType": "Interact", "AetheryteShortcut": "Eastern La Noscea - Wineport", - "Fly": true, "SkipConditions": { "AetheryteShortcutIf": { "InSameTerritory": true }, "StepIf": { - "NearPosition": { - "Position": { - "X": -25.149055, - "Y": -24.773232, - "Z": 258.15594 - }, - "TerritoryId": 137, - "MaximumDistance": 25 - } + "ExtraCondition": "DockStorehouse" } }, "TargetTerritoryId": 137 diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/233_The Crow Knows.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/233_The Crow Knows.json index 4bc21c0a0..6d437dd4b 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/233_The Crow Knows.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/233_The Crow Knows.json @@ -86,19 +86,10 @@ "TerritoryId": 137, "InteractionType": "Interact", "AetheryteShortcut": "Eastern La Noscea - Wineport", - "Fly": true, "SkipConditions": { "AetheryteShortcutIf": { "InSameTerritory": true }, "StepIf": { - "NearPosition": { - "Position": { - "X": -25.149055, - "Y": -24.773232, - "Z": 258.15594 - }, - "TerritoryId": 137, - "MaximumDistance": 25 - } + "ExtraCondition": "DockStorehouse" } }, "TargetTerritoryId": 137 diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/234_Master and Student.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/234_Master and Student.json index 04608f05b..8f2abd348 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/234_Master and Student.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/234_Master and Student.json @@ -15,19 +15,10 @@ "TerritoryId": 137, "InteractionType": "Interact", "AetheryteShortcut": "Eastern La Noscea - Wineport", - "Fly": true, "SkipConditions": { "AetheryteShortcutIf": { "InSameTerritory": true }, "StepIf": { - "NearPosition": { - "Position": { - "X": -25.149055, - "Y": -24.773232, - "Z": 258.15594 - }, - "TerritoryId": 137, - "MaximumDistance": 25 - } + "ExtraCondition": "DockStorehouse" } }, "TargetTerritoryId": 137 @@ -55,7 +46,14 @@ "Z": 250.32422 }, "TerritoryId": 137, - "InteractionType": "Interact" + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_JOBNIN500_00234_Q1_000_000", + "Answer": "TEXT_JOBNIN500_00234_A1_000_002" + } + ] } ] }, @@ -162,19 +160,10 @@ "TerritoryId": 137, "InteractionType": "Interact", "AetheryteShortcut": "Eastern La Noscea - Wineport", - "Fly": true, "SkipConditions": { "AetheryteShortcutIf": { "InSameTerritory": true }, "StepIf": { - "NearPosition": { - "Position": { - "X": -25.149055, - "Y": -24.773232, - "Z": 258.15594 - }, - "TerritoryId": 137, - "MaximumDistance": 25 - } + "ExtraCondition": "DockStorehouse" } }, "TargetTerritoryId": 137 diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/235_Strangers in a Strange Land.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/235_Strangers in a Strange Land.json index c0da4f4e3..5bd22f6b2 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/235_Strangers in a Strange Land.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/235_Strangers in a Strange Land.json @@ -15,19 +15,10 @@ "TerritoryId": 137, "InteractionType": "Interact", "AetheryteShortcut": "Eastern La Noscea - Wineport", - "Fly": true, "SkipConditions": { "AetheryteShortcutIf": { "InSameTerritory": true }, "StepIf": { - "NearPosition": { - "Position": { - "X": -25.149055, - "Y": -24.773232, - "Z": 258.15594 - }, - "TerritoryId": 137, - "MaximumDistance": 25 - } + "ExtraCondition": "DockStorehouse" } }, "TargetTerritoryId": 137 @@ -191,19 +182,10 @@ "TerritoryId": 137, "InteractionType": "Interact", "AetheryteShortcut": "Eastern La Noscea - Wineport", - "Fly": true, "SkipConditions": { "AetheryteShortcutIf": { "InSameTerritory": true }, "StepIf": { - "NearPosition": { - "Position": { - "X": -25.149055, - "Y": -24.773232, - "Z": 258.15594 - }, - "TerritoryId": 137, - "MaximumDistance": 25 - } + "ExtraCondition": "DockStorehouse" } }, "TargetTerritoryId": 137 diff --git a/QuestPaths/3.x - Heavensward/Class Quests/NIN/1684_The Impossible Girl.json b/QuestPaths/3.x - Heavensward/Class Quests/NIN/1684_The Impossible Girl.json index b4bf12a18..62ab34356 100644 --- a/QuestPaths/3.x - Heavensward/Class Quests/NIN/1684_The Impossible Girl.json +++ b/QuestPaths/3.x - Heavensward/Class Quests/NIN/1684_The Impossible Girl.json @@ -15,19 +15,10 @@ "TerritoryId": 137, "InteractionType": "Interact", "AetheryteShortcut": "Eastern La Noscea - Wineport", - "Fly": true, "SkipConditions": { "AetheryteShortcutIf": { "InSameTerritory": true }, "StepIf": { - "NearPosition": { - "Position": { - "X": -25.149055, - "Y": -24.773232, - "Z": 258.15594 - }, - "TerritoryId": 137, - "MaximumDistance": 25 - } + "ExtraCondition": "DockStorehouse" } }, "TargetTerritoryId": 137 @@ -163,19 +154,10 @@ "TerritoryId": 137, "InteractionType": "Interact", "AetheryteShortcut": "Eastern La Noscea - Wineport", - "Fly": true, "SkipConditions": { "AetheryteShortcutIf": { "InSameTerritory": true }, "StepIf": { - "NearPosition": { - "Position": { - "X": -25.149055, - "Y": -24.773232, - "Z": 258.15594 - }, - "TerritoryId": 137, - "MaximumDistance": 25 - } + "ExtraCondition": "DockStorehouse" } }, "TargetTerritoryId": 137 diff --git a/QuestPaths/3.x - Heavensward/Class Quests/NIN/1685_Ninja Assassin.json b/QuestPaths/3.x - Heavensward/Class Quests/NIN/1685_Ninja Assassin.json index 7fd6311f4..3bf578ba9 100644 --- a/QuestPaths/3.x - Heavensward/Class Quests/NIN/1685_Ninja Assassin.json +++ b/QuestPaths/3.x - Heavensward/Class Quests/NIN/1685_Ninja Assassin.json @@ -15,19 +15,10 @@ "TerritoryId": 137, "InteractionType": "Interact", "AetheryteShortcut": "Eastern La Noscea - Wineport", - "Fly": true, "SkipConditions": { "AetheryteShortcutIf": { "InSameTerritory": true }, "StepIf": { - "NearPosition": { - "Position": { - "X": -25.149055, - "Y": -24.773232, - "Z": 258.15594 - }, - "TerritoryId": 137, - "MaximumDistance": 25 - } + "ExtraCondition": "DockStorehouse" } }, "TargetTerritoryId": 137 @@ -75,18 +66,15 @@ "Sequence": 2, "Steps": [ { + "DataId": 2005928, "Position": { - "X": -11.615023, - "Y": 66.32614, - "Z": 421.28235 + "X": -22.842834, + "Y": 66.300415, + "Z": 426.1692 }, "TerritoryId": 135, - "InteractionType": "WalkTo" - }, - { - "TerritoryId": 135, - "InteractionType": "WaitForManualProgress", - "Comment": "Use Raiton on destination" + "InteractionType": "Action", + "Action": "Raiton" } ] }, @@ -94,18 +82,15 @@ "Sequence": 3, "Steps": [ { + "DataId": 2005929, "Position": { - "X": -45.41632, - "Y": 50.40381, - "Z": 519.4183 + "X": -46.707886, + "Y": 48.41687, + "Z": 529.1676 }, "TerritoryId": 135, - "InteractionType": "WalkTo" - }, - { - "TerritoryId": 135, - "InteractionType": "WaitForManualProgress", - "Comment": "Use Raiton on destination" + "InteractionType": "Action", + "Action": "Raiton" } ] }, @@ -113,18 +98,15 @@ "Sequence": 4, "Steps": [ { + "DataId": 2005930, "Position": { - "X": -91.23599, - "Y": 28.63774, - "Z": 617.4151 + "X": -93.888794, + "Y": 26.932129, + "Z": 623.25464 }, "TerritoryId": 135, - "InteractionType": "WalkTo" - }, - { - "TerritoryId": 135, - "InteractionType": "WaitForManualProgress", - "Comment": "Use Raiton on destination" + "InteractionType": "Action", + "Action": "Raiton" } ] }, @@ -193,19 +175,10 @@ "TerritoryId": 137, "InteractionType": "Interact", "AetheryteShortcut": "Eastern La Noscea - Wineport", - "Fly": true, "SkipConditions": { "AetheryteShortcutIf": { "InSameTerritory": true }, "StepIf": { - "NearPosition": { - "Position": { - "X": -25.149055, - "Y": -24.773232, - "Z": 258.15594 - }, - "TerritoryId": 137, - "MaximumDistance": 25 - } + "ExtraCondition": "DockStorehouse" } }, "TargetTerritoryId": 137 diff --git a/QuestPaths/3.x - Heavensward/Class Quests/NIN/1686_Medieval Espionage.json b/QuestPaths/3.x - Heavensward/Class Quests/NIN/1686_Medieval Espionage.json index 1fac612b4..5dd02706a 100644 --- a/QuestPaths/3.x - Heavensward/Class Quests/NIN/1686_Medieval Espionage.json +++ b/QuestPaths/3.x - Heavensward/Class Quests/NIN/1686_Medieval Espionage.json @@ -15,19 +15,10 @@ "TerritoryId": 137, "InteractionType": "Interact", "AetheryteShortcut": "Eastern La Noscea - Wineport", - "Fly": true, "SkipConditions": { "AetheryteShortcutIf": { "InSameTerritory": true }, "StepIf": { - "NearPosition": { - "Position": { - "X": -25.149055, - "Y": -24.773232, - "Z": 258.15594 - }, - "TerritoryId": 137, - "MaximumDistance": 25 - } + "ExtraCondition": "DockStorehouse" } }, "TargetTerritoryId": 137 @@ -182,18 +173,9 @@ "TerritoryId": 137, "InteractionType": "Interact", "AetheryteShortcut": "Eastern La Noscea - Wineport", - "Fly": true, "SkipConditions": { "StepIf": { - "NearPosition": { - "Position": { - "X": -25.149055, - "Y": -24.773232, - "Z": 258.15594 - }, - "TerritoryId": 137, - "MaximumDistance": 25 - } + "ExtraCondition": "DockStorehouse" } }, "TargetTerritoryId": 137 diff --git a/QuestPaths/3.x - Heavensward/Class Quests/NIN/1687_Staying Alive.json b/QuestPaths/3.x - Heavensward/Class Quests/NIN/1687_Staying Alive.json index 9d8c74d85..52e53ea9e 100644 --- a/QuestPaths/3.x - Heavensward/Class Quests/NIN/1687_Staying Alive.json +++ b/QuestPaths/3.x - Heavensward/Class Quests/NIN/1687_Staying Alive.json @@ -15,19 +15,10 @@ "TerritoryId": 137, "InteractionType": "Interact", "AetheryteShortcut": "Eastern La Noscea - Wineport", - "Fly": true, "SkipConditions": { "AetheryteShortcutIf": { "InSameTerritory": true }, "StepIf": { - "NearPosition": { - "Position": { - "X": -25.149055, - "Y": -24.773232, - "Z": 258.15594 - }, - "TerritoryId": 137, - "MaximumDistance": 25 - } + "ExtraCondition": "DockStorehouse" } }, "TargetTerritoryId": 137 @@ -111,6 +102,7 @@ }, "TerritoryId": 398, "InteractionType": "WalkTo", + "Fly": true, "AetheryteShortcut": "The Dravanian Forelands - Tailfeather" }, { @@ -138,7 +130,8 @@ "TerritoryId": 398, "InteractionType": "Combat", "EnemySpawnType": "AfterInteraction", - "KillEnemyDataIds": [5042, 4619] + "KillEnemyDataIds": [5042, 4619], + "Fly": true } ] }, @@ -153,7 +146,8 @@ "Z": -217.02905 }, "TerritoryId": 398, - "InteractionType": "Interact" + "InteractionType": "Interact", + "Fly": true } ] }, @@ -170,18 +164,9 @@ "TerritoryId": 137, "InteractionType": "Interact", "AetheryteShortcut": "Eastern La Noscea - Wineport", - "Fly": true, "SkipConditions": { "StepIf": { - "NearPosition": { - "Position": { - "X": -25.149055, - "Y": -24.773232, - "Z": 258.15594 - }, - "TerritoryId": 137, - "MaximumDistance": 25 - } + "ExtraCondition": "DockStorehouse" } }, "TargetTerritoryId": 137 diff --git a/QuestPaths/3.x - Heavensward/Class Quests/NIN/1688_In Her Defense.json b/QuestPaths/3.x - Heavensward/Class Quests/NIN/1688_In Her Defense.json index 5003e0636..60b6c1cba 100644 --- a/QuestPaths/3.x - Heavensward/Class Quests/NIN/1688_In Her Defense.json +++ b/QuestPaths/3.x - Heavensward/Class Quests/NIN/1688_In Her Defense.json @@ -15,19 +15,10 @@ "TerritoryId": 137, "InteractionType": "Interact", "AetheryteShortcut": "Eastern La Noscea - Wineport", - "Fly": true, "SkipConditions": { "AetheryteShortcutIf": { "InSameTerritory": true }, "StepIf": { - "NearPosition": { - "Position": { - "X": -25.149055, - "Y": -24.773232, - "Z": 258.15594 - }, - "TerritoryId": 137, - "MaximumDistance": 25 - } + "ExtraCondition": "DockStorehouse" } }, "TargetTerritoryId": 137 @@ -114,19 +105,10 @@ "TerritoryId": 137, "InteractionType": "Interact", "AetheryteShortcut": "Eastern La Noscea - Wineport", - "Fly": true, "SkipConditions": { "AetheryteShortcutIf": { "InSameTerritory": true }, "StepIf": { - "NearPosition": { - "Position": { - "X": -25.149055, - "Y": -24.773232, - "Z": 258.15594 - }, - "TerritoryId": 137, - "MaximumDistance": 25 - } + "ExtraCondition": "DockStorehouse" } }, "TargetTerritoryId": 137 @@ -156,7 +138,14 @@ "TerritoryId": 135, "Fly": true, "InteractionType": "Interact", - "AetheryteShortcut": "Lower La Noscea - Moraby Drydocks" + "AetheryteShortcut": "Lower La Noscea - Moraby Drydocks", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_JOBNIN600_01688_Q1_000_000", + "Answer": "TEXT_JOBNIN600_01688_A1_000_010" + } + ] } ] }, @@ -220,18 +209,9 @@ "TerritoryId": 137, "InteractionType": "Interact", "AetheryteShortcut": "Eastern La Noscea - Wineport", - "Fly": true, "SkipConditions": { "StepIf": { - "NearPosition": { - "Position": { - "X": -25.149055, - "Y": -24.773232, - "Z": 258.15594 - }, - "TerritoryId": 137, - "MaximumDistance": 25 - } + "ExtraCondition": "DockStorehouse" } }, "TargetTerritoryId": 137 diff --git a/QuestPaths/4.x - Stormblood/Class Quests/NIN/2948_Search for the Stolen Scroll.json b/QuestPaths/4.x - Stormblood/Class Quests/NIN/2948_Search for the Stolen Scroll.json index da54b86af..8cec6e1b2 100644 --- a/QuestPaths/4.x - Stormblood/Class Quests/NIN/2948_Search for the Stolen Scroll.json +++ b/QuestPaths/4.x - Stormblood/Class Quests/NIN/2948_Search for the Stolen Scroll.json @@ -15,19 +15,10 @@ "TerritoryId": 137, "InteractionType": "Interact", "AetheryteShortcut": "Eastern La Noscea - Wineport", - "Fly": true, "SkipConditions": { "AetheryteShortcutIf": { "InSameTerritory": true }, "StepIf": { - "NearPosition": { - "Position": { - "X": -25.149055, - "Y": -24.773232, - "Z": 258.15594 - }, - "TerritoryId": 137, - "MaximumDistance": 25 - } + "ExtraCondition": "DockStorehouse" } }, "TargetTerritoryId": 137 @@ -115,6 +106,13 @@ "AethernetShortcut": [ "[Limsa Lominsa] Aetheryte Plaza", "[Limsa Lominsa] The Aftcastle" + ], + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_JOBNIN601_02948_Q1_000_031", + "Answer": "TEXT_JOBNIN601_02948_A3_000_034" + } ] } ] @@ -210,18 +208,9 @@ "TerritoryId": 137, "InteractionType": "Interact", "AetheryteShortcut": "Eastern La Noscea - Wineport", - "Fly": true, "SkipConditions": { "StepIf": { - "NearPosition": { - "Position": { - "X": -25.149055, - "Y": -24.773232, - "Z": 258.15594 - }, - "TerritoryId": 137, - "MaximumDistance": 25 - } + "ExtraCondition": "DockStorehouse" } }, "TargetTerritoryId": 137 diff --git a/QuestPaths/4.x - Stormblood/Class Quests/NIN/2949_Ninja Bathin' Redux.json b/QuestPaths/4.x - Stormblood/Class Quests/NIN/2949_Ninja Bathin' Redux.json index 0db541cf8..a4e481929 100644 --- a/QuestPaths/4.x - Stormblood/Class Quests/NIN/2949_Ninja Bathin' Redux.json +++ b/QuestPaths/4.x - Stormblood/Class Quests/NIN/2949_Ninja Bathin' Redux.json @@ -15,19 +15,10 @@ "TerritoryId": 137, "InteractionType": "Interact", "AetheryteShortcut": "Eastern La Noscea - Wineport", - "Fly": true, "SkipConditions": { "AetheryteShortcutIf": { "InSameTerritory": true }, "StepIf": { - "NearPosition": { - "Position": { - "X": -25.149055, - "Y": -24.773232, - "Z": 258.15594 - }, - "TerritoryId": 137, - "MaximumDistance": 25 - } + "ExtraCondition": "DockStorehouse" } }, "TargetTerritoryId": 137 @@ -74,7 +65,8 @@ "Z": -60.22008 }, "TerritoryId": 628, - "InteractionType": "WalkTo", + "InteractionType": "Action", + "Action": "Hide", "AethernetShortcut": [ "[Kugane] Sekiseigumi Barracks", "[Kugane] Aetheryte Plaza" @@ -93,11 +85,20 @@ } }, { - "InteractionType": "WaitForManualProgress", + "Position": { + "X": -46.572186, + "Y": 3.0135043, + "Z": -71.70311 + }, "TerritoryId": 628, - "Comment": "Hide, then approach Loutish Lickspittle", + "InteractionType": "WalkTo", "CompletionQuestVariablesFlags": [null, null, null, null, null, 128] }, + { + "TerritoryId": 628, + "InteractionType": "StatusOff", + "Status": "Hidden" + }, { "Position": { "X": -53.864307, @@ -105,18 +106,28 @@ "Z": -106.929726 }, "TerritoryId": 628, - "InteractionType": "WalkTo" + "InteractionType": "Action", + "Action": "Hide" }, { - "InteractionType": "WaitForManualProgress", + "Position": { + "X": -82.41595, + "Y": -7.300003, + "Z": -111.459076 + }, "TerritoryId": 628, - "Comment": "Hide, then approach the two NPCs downstairs" + "InteractionType": "WalkTo" } ] }, { "Sequence": 3, "Steps": [ + { + "TerritoryId": 628, + "InteractionType": "StatusOff", + "Status": "Hidden" + }, { "DataId": 1023555, "Position": { diff --git a/QuestPaths/4.x - Stormblood/Class Quests/NIN/2951_True Enlightenment.json b/QuestPaths/4.x - Stormblood/Class Quests/NIN/2951_True Enlightenment.json index 326f2abc5..0d833ebd2 100644 --- a/QuestPaths/4.x - Stormblood/Class Quests/NIN/2951_True Enlightenment.json +++ b/QuestPaths/4.x - Stormblood/Class Quests/NIN/2951_True Enlightenment.json @@ -17,7 +17,14 @@ "AetheryteShortcut": "Yanxia - Namai", "SkipConditions": { "AetheryteShortcutIf": { "InSameTerritory": true } - } + }, + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_JOBNIN680_02951_Q1_000_003", + "Answer": "TEXT_JOBNIN680_02951_A3_000_006" + } + ] } ] }, @@ -48,7 +55,14 @@ "Z": -96.75751 }, "TerritoryId": 614, - "InteractionType": "Interact" + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_JOBNIN680_02951_SYSTEM_100_049", + "Yes": true + } + ] } ] }, @@ -91,10 +105,12 @@ "Y": 16.160986, "Z": 390.68732 }, + "StopDistance": 1, "TerritoryId": 614, "InteractionType": "Combat", "KillEnemyDataIds": [6641], - "EnemySpawnType": "OverworldEnemies" + "EnemySpawnType": "OverworldEnemies", + "Fly": true } ] }, @@ -110,7 +126,14 @@ }, "TerritoryId": 614, "InteractionType": "Interact", - "AetheryteShortcut": "Yanxia - Namai" + "AetheryteShortcut": "Yanxia - Namai", + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_JOBNIN680_02951_SYSTEM_100_049", + "Yes": true + } + ] } ] }, diff --git a/QuestPaths/4.x - Stormblood/Class Quests/NIN/2952_When Clans Collide.json b/QuestPaths/4.x - Stormblood/Class Quests/NIN/2952_When Clans Collide.json index ba6035e0b..202dfebd9 100644 --- a/QuestPaths/4.x - Stormblood/Class Quests/NIN/2952_When Clans Collide.json +++ b/QuestPaths/4.x - Stormblood/Class Quests/NIN/2952_When Clans Collide.json @@ -17,7 +17,14 @@ "AetheryteShortcut": "Yanxia - Namai", "SkipConditions": { "AetheryteShortcutIf": { "InSameTerritory": true } - } + }, + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_JOBNIN700_02952_Q1_100_004", + "Answer": "TEXT_JOBNIN700_02952_A1_100_005" + } + ] } ] }, @@ -34,7 +41,7 @@ "TerritoryId": 622, "InteractionType": "SinglePlayerDuty", "Fly": true, - "AetheryteShortcut": "Azim Steppe - Dawn Throne", + "AetheryteShortcut": "Azim Steppe - Reunion", "SkipConditions": { "AetheryteShortcutIf": { "NearPosition": { @@ -64,18 +71,9 @@ "TerritoryId": 137, "InteractionType": "Interact", "AetheryteShortcut": "Eastern La Noscea - Wineport", - "Fly": true, "SkipConditions": { "StepIf": { - "NearPosition": { - "Position": { - "X": -25.149055, - "Y": -24.773232, - "Z": 258.15594 - }, - "TerritoryId": 137, - "MaximumDistance": 25 - } + "ExtraCondition": "DockStorehouse" } }, "TargetTerritoryId": 137 diff --git a/QuestPaths/quest-v1.json b/QuestPaths/quest-v1.json index fb18c119f..dc821c51e 100644 --- a/QuestPaths/quest-v1.json +++ b/QuestPaths/quest-v1.json @@ -118,6 +118,7 @@ "Say", "Emote", "Action", + "StatusOff", "WaitForNpcAtPosition", "WaitForManualProgress", "Duty", @@ -945,7 +946,8 @@ "Hop-step", "Fuma Shuriken", "Katon", - "Raiton" + "Raiton", + "Hide" ] } }, @@ -954,6 +956,29 @@ ] } }, + { + "if": { + "properties": { + "InteractionType": { + "const": "StatusOff" + } + } + }, + "then": { + "properties": { + "Status": { + "type": "string", + "description": "The status to disable", + "enum": [ + "Hidden" + ] + } + }, + "required": [ + "Status" + ] + } + }, { "if": { "properties": { diff --git a/Questionable.Model/Questing/Converter/ActionConverter.cs b/Questionable.Model/Questing/Converter/ActionConverter.cs index 9b1be7dd8..7a2174245 100644 --- a/Questionable.Model/Questing/Converter/ActionConverter.cs +++ b/Questionable.Model/Questing/Converter/ActionConverter.cs @@ -35,6 +35,7 @@ public sealed class ActionConverter() : EnumConverter(Values) { EAction.BlueGulal, "Blue Gulal" }, { EAction.ElectrixFlux, "Electric Flux" }, { EAction.HopStep, "Hop-step" }, + { EAction.Hide, "Hide" }, { EAction.FumaShuriken, "Fuma Shuriken" }, { EAction.Katon, "Katon" }, { EAction.Raiton, "Raiton" }, diff --git a/Questionable.Model/Questing/Converter/InteractionTypeConverter.cs b/Questionable.Model/Questing/Converter/InteractionTypeConverter.cs index aef951bf4..b8367ebbb 100644 --- a/Questionable.Model/Questing/Converter/InteractionTypeConverter.cs +++ b/Questionable.Model/Questing/Converter/InteractionTypeConverter.cs @@ -21,6 +21,7 @@ public sealed class InteractionTypeConverter() : EnumConverter { EInteractionType.Say, "Say" }, { EInteractionType.Emote, "Emote" }, { EInteractionType.Action, "Action" }, + { EInteractionType.StatusOff, "StatusOff" }, { EInteractionType.WaitForObjectAtPosition, "WaitForNpcAtPosition" }, { EInteractionType.WaitForManualProgress, "WaitForManualProgress" }, { EInteractionType.Duty, "Duty" }, diff --git a/Questionable.Model/Questing/Converter/StatusConverter.cs b/Questionable.Model/Questing/Converter/StatusConverter.cs new file mode 100644 index 000000000..e16c493b7 --- /dev/null +++ b/Questionable.Model/Questing/Converter/StatusConverter.cs @@ -0,0 +1,12 @@ +using System.Collections.Generic; +using Questionable.Model.Common.Converter; + +namespace Questionable.Model.Questing.Converter; + +public sealed class StatusConverter() : EnumConverter(Values) +{ + private static readonly Dictionary Values = new() + { + { EStatus.Hidden, "Hidden" }, + }; +} diff --git a/Questionable.Model/Questing/EAction.cs b/Questionable.Model/Questing/EAction.cs index 71549e6e6..429281732 100644 --- a/Questionable.Model/Questing/EAction.cs +++ b/Questionable.Model/Questing/EAction.cs @@ -36,6 +36,7 @@ public enum EAction BlueGulal = 29384, ElectrixFlux = 29718, HopStep = 31116, + Hide = 2245, Ten = 2259, Ninjutsu = 2260, Chi = 2261, @@ -43,6 +44,7 @@ public enum EAction FumaShuriken = 2265, Katon = 2266, Raiton = 2267, + RabbitMedium = 2272, CollectMiner = 240, ScourMiner = 22182, diff --git a/Questionable.Model/Questing/EInteractionType.cs b/Questionable.Model/Questing/EInteractionType.cs index af23e90e7..137078eba 100644 --- a/Questionable.Model/Questing/EInteractionType.cs +++ b/Questionable.Model/Questing/EInteractionType.cs @@ -20,6 +20,7 @@ public enum EInteractionType Say, Emote, Action, + StatusOff, WaitForObjectAtPosition, WaitForManualProgress, Duty, diff --git a/Questionable.Model/Questing/EStatus.cs b/Questionable.Model/Questing/EStatus.cs new file mode 100644 index 000000000..780f1a4e7 --- /dev/null +++ b/Questionable.Model/Questing/EStatus.cs @@ -0,0 +1,12 @@ +using System.Text.Json.Serialization; +using Questionable.Model.Questing.Converter; + +namespace Questionable.Model.Questing; + +[JsonConverter(typeof(StatusConverter))] +public enum EStatus : uint +{ + GatheringRateUp = 218, + Hidden = 614, + Eukrasia = 2606, +} diff --git a/Questionable.Model/Questing/QuestStep.cs b/Questionable.Model/Questing/QuestStep.cs index dcb8042a9..5a6998188 100644 --- a/Questionable.Model/Questing/QuestStep.cs +++ b/Questionable.Model/Questing/QuestStep.cs @@ -63,6 +63,7 @@ public sealed class QuestStep public EEmote? Emote { get; set; } public ChatMessage? ChatMessage { get; set; } public EAction? Action { get; set; } + public EStatus? Status { get; set; } public EEnemySpawnType? EnemySpawnType { get; set; } public List KillEnemyDataIds { get; set; } = []; diff --git a/Questionable/Controller/Steps/Gathering/DoGather.cs b/Questionable/Controller/Steps/Gathering/DoGather.cs index 169b0b7c6..701f85345 100644 --- a/Questionable/Controller/Steps/Gathering/DoGather.cs +++ b/Questionable/Controller/Steps/Gathering/DoGather.cs @@ -37,8 +37,6 @@ internal static class DoGather ICondition condition, ILogger logger) : TaskExecutor { - private const uint StatusGatheringRateUp = 218; - private bool _wasGathering; private SlotInfo? _slotToGather; private Queue? _actionQueue; @@ -155,7 +153,7 @@ internal static class DoGather //uint gp = clientState.LocalPlayer!.CurrentGp; Queue actions = new(); - if (!gameFunctions.HasStatus(StatusGatheringRateUp)) + if (!gameFunctions.HasStatus(EStatus.GatheringRateUp)) { // do we have an alternative item? only happens for 'evaluation' leve quests if (Task.Request.AlternativeItemId != 0) diff --git a/Questionable/Controller/Steps/Interactions/Action.cs b/Questionable/Controller/Steps/Interactions/Action.cs index e6c4f1f48..7255fa0bf 100644 --- a/Questionable/Controller/Steps/Interactions/Action.cs +++ b/Questionable/Controller/Steps/Interactions/Action.cs @@ -1,6 +1,8 @@ using System; using System.Collections.Generic; +using System.Collections.ObjectModel; using Dalamud.Game.ClientState.Objects.Types; +using FFXIVClientStructs.FFXIV.Client.Game; using Microsoft.Extensions.Logging; using Questionable.Controller.Steps.Common; using Questionable.Functions; @@ -29,7 +31,13 @@ internal static class Action public static ITask OnObject(uint? dataId, EAction action) { - return new UseOnObject(dataId, action); + if (action is EAction.FumaShuriken or EAction.Katon or EAction.Raiton) + { + ArgumentNullException.ThrowIfNull(dataId); + return new UseMudraOnObject(dataId.Value, action); + } + else + return new UseOnObject(dataId, action); } } @@ -62,19 +70,18 @@ internal static class Action { if (Task.Action == EAction.Diagnosis) { - uint eukrasiaAura = 2606; // If SGE have Eukrasia status, we need to remove it. - if (gameFunctions.HasStatus(eukrasiaAura)) + if (gameFunctions.HasStatus(EStatus.Eukrasia)) { - if (GameFunctions.RemoveStatus(eukrasiaAura)) + if (GameFunctions.RemoveStatus(EStatus.Eukrasia)) { // Introduce a delay of 2 seconds before using the next action (otherwise it will try and use Eukrasia Diagnosis) _continueAt = DateTime.Now.AddSeconds(2); - return true; + return true; } } } - + _usedAction = gameFunctions.UseAction(gameObject, Task.Action); _continueAt = DateTime.Now.AddSeconds(0.5); return true; @@ -118,4 +125,67 @@ internal static class Action return ETaskResult.TaskComplete; } } + + internal sealed record UseMudraOnObject(uint DataId, EAction Action) : ITask + { + public override string ToString() => $"Mudra({Action})"; + } + + internal sealed class UseMudraOnObjectExecutor( + GameFunctions gameFunctions, + ILogger logger) : TaskExecutor + { + private static readonly ReadOnlyDictionary> Combos = + new Dictionary> + { + { EAction.FumaShuriken, new() { { EAction.Ninjutsu, EAction.Ten } } }, + { EAction.Raiton, new() { { EAction.Ninjutsu, EAction.Ten }, { EAction.FumaShuriken, EAction.Chi } } }, + { EAction.Katon, new() {{ EAction.Ninjutsu, EAction.Chi }, { EAction.FumaShuriken, EAction.Ten } } } + }.AsReadOnly(); + + private DateTime _continueAt = DateTime.MinValue; + + protected override bool Start() => true; + + public override unsafe ETaskResult Update() + { + if (DateTime.Now < _continueAt) + return ETaskResult.StillRunning; + + EAction adjustedNinjutsuId = (EAction)ActionManager.Instance()->GetAdjustedActionId((uint)EAction.Ninjutsu); + if (adjustedNinjutsuId == EAction.RabbitMedium) + { + _continueAt = DateTime.Now.AddSeconds(1); + return ETaskResult.StillRunning; + } + + IGameObject? gameObject = gameFunctions.FindObjectByDataId(Task.DataId); + if (gameObject == null || !gameObject.IsTargetable) + return ETaskResult.StillRunning; + + if (adjustedNinjutsuId == Task.Action) + { + _continueAt = DateTime.Now.AddSeconds(0.25); + return gameFunctions.UseAction(gameObject, Task.Action) + ? ETaskResult.TaskComplete + : ETaskResult.StillRunning; + } + + if (Combos.TryGetValue(Task.Action, out var combo)) + { + if (combo.TryGetValue(adjustedNinjutsuId, out var mudra)) + { + _continueAt = DateTime.Now.AddSeconds(0.25); + gameFunctions.UseAction(mudra); + return ETaskResult.StillRunning; + } + + _continueAt = DateTime.Now.AddSeconds(0.25); + return ETaskResult.StillRunning; + } + + logger.LogError("Unable to find relevant combo for {Action}", Task.Action); + return ETaskResult.TaskComplete; + } + } } diff --git a/Questionable/Controller/Steps/Interactions/StatusOff.cs b/Questionable/Controller/Steps/Interactions/StatusOff.cs new file mode 100644 index 000000000..746f7394c --- /dev/null +++ b/Questionable/Controller/Steps/Interactions/StatusOff.cs @@ -0,0 +1,47 @@ +using System; +using Questionable.Controller.Steps.Common; +using Questionable.Functions; +using Questionable.Model; +using Questionable.Model.Questing; + +namespace Questionable.Controller.Steps.Interactions; + +internal static class StatusOff +{ + internal sealed class Factory : SimpleTaskFactory + { + public override ITask? CreateTask(Quest quest, QuestSequence sequence, QuestStep step) + { + if (step.InteractionType != EInteractionType.StatusOff) + return null; + + ArgumentNullException.ThrowIfNull(step.Status); + return new Task(step.Status.Value); + } + } + + internal sealed record Task(EStatus Status) : ITask + { + public bool ShouldRedoOnInterrupt() => true; + + public override string ToString() => $"StatusOff({Status})"; + } + + internal sealed class DoStatusOff( + GameFunctions gameFunctions) + : AbstractDelayedTaskExecutor + { + protected override bool StartInternal() + { + if (gameFunctions.HasStatus(Task.Status)) + return GameFunctions.RemoveStatus(Task.Status); + + return false; + } + + public override ETaskResult Update() + { + return gameFunctions.HasStatus(Task.Status) ? ETaskResult.StillRunning : ETaskResult.TaskComplete; + } + } +} diff --git a/Questionable/Functions/GameFunctions.cs b/Questionable/Functions/GameFunctions.cs index 2cc2e1226..bb0313ae5 100644 --- a/Questionable/Functions/GameFunctions.cs +++ b/Questionable/Functions/GameFunctions.cs @@ -298,7 +298,7 @@ internal sealed unsafe class GameFunctions statusManager->HasStatus(2730); } - public bool HasStatus(uint statusId) + public bool HasStatus(EStatus statusId) { var localPlayer = _clientState.LocalPlayer; if (localPlayer == null) @@ -306,12 +306,12 @@ internal sealed unsafe class GameFunctions var battleChara = (BattleChara*)localPlayer.Address; StatusManager* statusManager = battleChara->GetStatusManager(); - return statusManager->HasStatus(statusId); + return statusManager->HasStatus((uint)statusId); } - public static bool RemoveStatus(uint statusId) + public static bool RemoveStatus(EStatus statusId) { - return StatusManager.ExecuteStatusOff(statusId); + return StatusManager.ExecuteStatusOff((uint)statusId); } public bool Mount() diff --git a/Questionable/QuestionablePlugin.cs b/Questionable/QuestionablePlugin.cs index bdb639f45..bac542419 100644 --- a/Questionable/QuestionablePlugin.cs +++ b/Questionable/QuestionablePlugin.cs @@ -174,6 +174,8 @@ public sealed class QuestionablePlugin : IDalamudPlugin serviceCollection.AddTaskExecutor(); serviceCollection.AddTaskExecutor(); serviceCollection.AddTaskFactoryAndExecutor(); + serviceCollection.AddTaskExecutor(); + serviceCollection.AddTaskFactoryAndExecutor(); serviceCollection.AddTaskFactoryAndExecutor(); serviceCollection.AddTaskFactory(); serviceCollection.AddTaskExecutor(); -- 2.45.2 From 17c90ba24bafdefd27dc85798fab16e94c164d4b Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sat, 19 Oct 2024 17:32:37 +0200 Subject: [PATCH 154/448] Fix missing CompleteQuest in 'Nest Side Story' --- .../Allied Societies/Vanu Vanu/Story/2170_Nest Side Story.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Story/2170_Nest Side Story.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Story/2170_Nest Side Story.json index 605ff2053..55ef690f0 100644 --- a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Story/2170_Nest Side Story.json +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Story/2170_Nest Side Story.json @@ -78,7 +78,7 @@ "Z": -582.3301 }, "TerritoryId": 401, - "InteractionType": "Interact", + "InteractionType": "CompleteQuest", "Fly": true } ] -- 2.45.2 From 2dfd1c2b0f9a68aa5bf1bcf95b6231aa5972ee50 Mon Sep 17 00:00:00 2001 From: AnimaMachinae Date: Sun, 20 Oct 2024 05:11:22 +0000 Subject: [PATCH 155/448] Update QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2183_Fishing in Troubled Waters.json Adds a jump to fly to prevent pathfinding errors to the opposite corner of map --- .../Dailies/2183_Fishing in Troubled Waters.json | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2183_Fishing in Troubled Waters.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2183_Fishing in Troubled Waters.json index 68dd1ece1..427d674dc 100644 --- a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2183_Fishing in Troubled Waters.json +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2183_Fishing in Troubled Waters.json @@ -36,6 +36,16 @@ { "Sequence": 2, "Steps": [ + { + "Position": { + "X": -834.9571, + "Y": -130.33038, + "Z": -386.03116 + }, + "TerritoryId": 401, + "InteractionType": "WalkTo", + "Fly": true + }, { "Position": { "X": 833.7674, @@ -93,4 +103,4 @@ ] } ] -} +} \ No newline at end of file -- 2.45.2 From 04c96efbe054c9f17c5fa4b041c448e86c226e1f Mon Sep 17 00:00:00 2001 From: AnimaMachinae Date: Sun, 20 Oct 2024 05:25:45 +0000 Subject: [PATCH 156/448] Update QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2173_Endymion Disco.json --- .../Dailies/2173_Endymion Disco.json | 304 +++++++++--------- 1 file changed, 152 insertions(+), 152 deletions(-) diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2173_Endymion Disco.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2173_Endymion Disco.json index 8b4af2a3e..1b762ae9f 100644 --- a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2173_Endymion Disco.json +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2173_Endymion Disco.json @@ -1,153 +1,153 @@ -{ - "schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "AnimaMachinae", - "QuestSequence": [ - { - "Sequence": 0, - "Steps": [ - { - "DataId": 1016089, - "Position": { - "X": -799.46594, - "Y": -133.2695, - "Z": -404.1352 - }, - "TerritoryId": 401, - "InteractionType": "AcceptQuest" - } - ] - }, - { - "Sequence": 1, - "Steps": [ - { - "DataId": 1016093, - "Position": { - "X": -776.0281, - "Y": -133.35559, - "Z": -414.32825 - }, - "TerritoryId": 401, - "InteractionType": "Interact" - } - ] - }, - { - "Sequence": 2, - "Steps": [ - { - "Position": { - "X": -544.89056, - "Y": 61.602722, - "Z": -373.9669 - }, - "TerritoryId": 401, - "InteractionType": "WalkTo", - "Fly": true - }, - { - "DataId": 2006649, - "Position": { - "X": -539.0555, - "Y": 64.22522, - "Z": -377.0047 - }, - "TerritoryId": 401, - "InteractionType": "Action", - "Action": "Buffet (Sanuwa)", - "StopDistance": 3, - "$": "0 0 0 0 0 0 --> 1 0 0 0 0 16", - "CompletionQuestVariablesFlags": [1,null,null,null,null,16] - }, - { - "Position": { - "X": -505.35422, - "Y": -28.166508, - "Z": -528.1072 - }, - "TerritoryId": 401, - "InteractionType": "WalkTo", - "Fly": true - }, - { - "DataId": 2006647, - "Position": { - "X": -504.78372, - "Y": -26.68805, - "Z": -530.93774 - }, - "TerritoryId": 401, - "InteractionType": "Action", - "Action": "Buffet (Sanuwa)", - "StopDistance": 3, - "$": "1 0 0 0 0 16 --> 2 0 0 0 0 80", - "CompletionQuestVariablesFlags": [2,null,null,null,null,80] - }, - { - "Position": { - "X": -478.25208, - "Y": -31.101946, - "Z": -663.0455 - }, - "TerritoryId": 401, - "InteractionType": "WalkTo", - "Fly": true - }, - { - "DataId": 2006648, - "Position": { - "X": -477.40906, - "Y": -28.885437, - "Z": -668.32996 - }, - "TerritoryId": 401, - "InteractionType": "Action", - "Action": "Buffet (Sanuwa)", - "StopDistance": 3, - "$": "2 0 0 0 0 80 --> 3 0 0 0 0 112", - "CompletionQuestVariablesFlags": [3,null,null,null,null,112] - }, - { - "Position": { - "X": -102.45963, - "Y": -1.2632592, - "Z": -619.294 - }, - "TerritoryId": 401, - "InteractionType": "WalkTo", - "Fly": true - }, - { - "DataId": 2006646, - "Position": { - "X": -96.20813, - "Y": 0.32037354, - "Z": -620.26404 - }, - "TerritoryId": 401, - "InteractionType": "Action", - "Action": "Buffet (Sanuwa)", - "StopDistance": 3, - "$": "3 0 0 0 0 112 --> 0 0 0 0 0 0" - } - ] - }, - { - "Sequence": 255, - "Steps": [ - { - "DataId": 1016089, - "Position": { - "X": -799.46594, - "Y": -133.2695, - "Z": -404.1352 - }, - "TerritoryId": 401, - "InteractionType": "CompleteQuest", - "AetheryteShortcut": "The Sea of Clouds - Ok' Zundu", - "Fly": true - } - ] - } - ] +{ + "schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "AnimaMachinae", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1016089, + "Position": { + "X": -799.46594, + "Y": -133.2695, + "Z": -404.1352 + }, + "TerritoryId": 401, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1016093, + "Position": { + "X": -776.0281, + "Y": -133.35559, + "Z": -414.32825 + }, + "TerritoryId": 401, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": -544.89056, + "Y": 61.602722, + "Z": -373.9669 + }, + "TerritoryId": 401, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 2006649, + "Position": { + "X": -539.0555, + "Y": 64.22522, + "Z": -377.0047 + }, + "TerritoryId": 401, + "InteractionType": "Action", + "Action": "Buffet (Sanuwa)", + "StopDistance": 3, + "$": "0 0 0 0 0 0 --> 1 0 0 0 0 16", + "CompletionQuestVariablesFlags": [null,null,null,null,null,16] + }, + { + "Position": { + "X": -505.35422, + "Y": -28.166508, + "Z": -528.1072 + }, + "TerritoryId": 401, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 2006647, + "Position": { + "X": -504.78372, + "Y": -26.68805, + "Z": -530.93774 + }, + "TerritoryId": 401, + "InteractionType": "Action", + "Action": "Buffet (Sanuwa)", + "StopDistance": 3, + "$": "1 0 0 0 0 16 --> 2 0 0 0 0 80", + "CompletionQuestVariablesFlags": [null,null,null,null,null,64] + }, + { + "Position": { + "X": -478.25208, + "Y": -31.101946, + "Z": -663.0455 + }, + "TerritoryId": 401, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 2006648, + "Position": { + "X": -477.40906, + "Y": -28.885437, + "Z": -668.32996 + }, + "TerritoryId": 401, + "InteractionType": "Action", + "Action": "Buffet (Sanuwa)", + "StopDistance": 3, + "$": "2 0 0 0 0 80 --> 3 0 0 0 0 112", + "CompletionQuestVariablesFlags": [null,null,null,null,null,32] + }, + { + "Position": { + "X": -102.45963, + "Y": -1.2632592, + "Z": -619.294 + }, + "TerritoryId": 401, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 2006646, + "Position": { + "X": -96.20813, + "Y": 0.32037354, + "Z": -620.26404 + }, + "TerritoryId": 401, + "InteractionType": "Action", + "Action": "Buffet (Sanuwa)", + "StopDistance": 3, + "$": "3 0 0 0 0 112 --> 0 0 0 0 0 0" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1016089, + "Position": { + "X": -799.46594, + "Y": -133.2695, + "Z": -404.1352 + }, + "TerritoryId": 401, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "The Sea of Clouds - Ok' Zundu", + "Fly": true + } + ] + } + ] } \ No newline at end of file -- 2.45.2 From 08f2be449a43010decab948649d3a1b677267091 Mon Sep 17 00:00:00 2001 From: AnimaMachinae Date: Sun, 20 Oct 2024 06:01:24 +0000 Subject: [PATCH 157/448] Upload files to "QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies" --- .../Dailies/2181_The Binding Soil.json | 169 ++++++++++++++++++ 1 file changed, 169 insertions(+) create mode 100644 QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2181_The Binding Soil.json diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2181_The Binding Soil.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2181_The Binding Soil.json new file mode 100644 index 000000000..848ed72a8 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2181_The Binding Soil.json @@ -0,0 +1,169 @@ +{ + "schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "AnimaMachinae", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1016089, + "Position": { + "X": -799.46594, + "Y": -133.2695, + "Z": -404.1352 + }, + "TerritoryId": 401, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1016091, + "Position": { + "X": -804.25726, + "Y": -133.2695, + "Z": -390.89038 + }, + "TerritoryId": 401, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2006705, + "Position": { + "X": -356.1914, + "Y": -153.21588, + "Z": 246.23486 + }, + "TerritoryId": 401, + "InteractionType": "Interact", + "AetheryteShortcut": "The Sea of Clouds - Camp Cloudtop", + "Fly": true, + "$": "QW: 1 0 16 0 0 2", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 2 + ] + }, + { + "DataId": 2006706, + "Position": { + "X": -292.34766, + "Y": -142.2904, + "Z": 325.91736 + }, + "TerritoryId": 401, + "InteractionType": "Interact", + "Fly": true, + "$": "QW: 2 0 32 0 0 3", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 1 + ] + }, + { + "DataId": 2006704, + "Position": { + "X": -281.11694, + "Y": -133.13501, + "Z": 345.2964 + }, + "TerritoryId": 401, + "InteractionType": "Interact", + "$": "QW: 19 0 48 0 0 7", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 4 + ] + }, + { + "DataId": 2006670, + "Position": { + "X": 165.85034, + "Y": -86.13721, + "Z": 415.94556 + }, + "TerritoryId": 401, + "InteractionType": "Interact", + "Fly": true, + "$": "QW: 19 17 48 0 0 39", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, + { + "DataId": 2006669, + "Position": { + "X": 282.88696, + "Y": -82.26141, + "Z": 366.07922 + }, + "TerritoryId": 401, + "InteractionType": "Interact", + "Fly": true, + "$": "QW: 19 34 48 0 0 103", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 2006671, + "Position": { + "X": 129.8695, + "Y": -92.17981, + "Z": 293.11047 + }, + "TerritoryId": 401, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1016091, + "Position": { + "X": -804.25726, + "Y": -133.2695, + "Z": -390.89038 + }, + "TerritoryId": 401, + "InteractionType": "CompleteQuest", + "Fly": true, + "AetheryteShortcut": "The Sea of Clouds - Ok' Zundu" + } + ] + } + ] +} \ No newline at end of file -- 2.45.2 From 0b8a18cd2aafc360ffa76275caace3a924f2f6fb Mon Sep 17 00:00:00 2001 From: AnimaMachinae Date: Sun, 20 Oct 2024 06:05:46 +0000 Subject: [PATCH 158/448] Update QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Story/4684_Teamwork Makes the Dream Work.json --- .../4684_Teamwork Makes the Dream Work.json | 356 +++++++++--------- 1 file changed, 178 insertions(+), 178 deletions(-) diff --git a/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Story/4684_Teamwork Makes the Dream Work.json b/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Story/4684_Teamwork Makes the Dream Work.json index 44a27dce4..05097b913 100644 --- a/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Story/4684_Teamwork Makes the Dream Work.json +++ b/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Story/4684_Teamwork Makes the Dream Work.json @@ -1,179 +1,179 @@ -{ - "schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "AnimaMachinae", - "QuestSequence": [ - { - "Sequence": 0, - "Steps": [ - { - "DataId": 1044402, - "Position": { - "X": -193.89642, - "Y": -49.19972, - "Z": -262.13477 - }, - "TerritoryId": 959, - "InteractionType": "AcceptQuest" - } - ] - }, - { - "Sequence": 1, - "Steps": [ - { - "DataId": 2013281, - "Position": { - "X": -330.19, - "Y": 105.1499, - "Z": 554.5586 - }, - "TerritoryId": 959, - "InteractionType": "Interact", - "Fly": true, - "AetheryteShortcut": "Mare Lamentorum - Sinus Lacrimarum" - } - ] - }, - { - "Sequence": 2, - "Steps": [ - { - "DataId": 1044942, - "Position": { - "X": -331.838, - "Y": 105.39431, - "Z": 551.2322 - }, - "TerritoryId": 959, - "InteractionType": "Interact" - } - ] - }, - { - "Sequence": 3, - "Steps": [ - { - "DataId": 1044931, - "Position": { - "X": 148.30237, - "Y": -49.589592, - "Z": -361.77618 - }, - "TerritoryId": 959, - "InteractionType": "Interact", - "Fly": true, - "AetheryteShortcut": "Mare Lamentorum - Bestways Burrow" - } - ] - }, - { - "Sequence": 4, - "Steps": [ - { - "DataId": 1044402, - "Position": { - "X": -193.89642, - "Y": -49.19972, - "Z": -262.13477 - }, - "TerritoryId": 959, - "InteractionType": "Interact", - "Fly": true - } - ] - }, - { - "Sequence": 5, - "Steps": [ - { - "DataId": 1044944, - "Position": { - "X": -463.55383, - "Y": -157.99237, - "Z": -513.3593 - }, - "TerritoryId": 959, - "InteractionType": "Interact", - "Fly": true, - "AetheryteShortcut": "Mare Lamentorum - Bestways Burrow", - "CompletionQuestVariablesFlags": [ - 17, - null, - null, - null, - null, - 64 - ] - }, - { - "DataId": 1044945, - "Position": { - "X": -540.1236, - "Y": -167.8502, - "Z": -620.63025 - }, - "TerritoryId": 959, - "InteractionType": "Interact", - "Fly": true, - "CompletionQuestVariablesFlags": [ - 33, - 16, - null, - null, - null, - 96 - ] - }, - { - "DataId": 1044943, - "Position": { - "X": -414.54187, - "Y": -158.1177, - "Z": -639.9481 - }, - "TerritoryId": 959, - "InteractionType": "Interact", - "Fly": true - } - ] - }, - { - "Sequence": 6, - "Steps": [ - { - "DataId": 1044947, - "Position": { - "X": -145.70844, - "Y": -49.19972, - "Z": -271.5343 - }, - "TerritoryId": 959, - "InteractionType": "Interact", - "Fly": true, - "AetheryteShortcut": "Mare Lamentorum - Bestways Burrow" - } - ] - }, - { - "Sequence": 255, - "Steps": [ - { - "TerritoryId": 959, - "InteractionType": "Craft", - "ItemId": 38849, - "ItemCount": 1 - }, - { - "DataId": 1044947, - "Position": { - "X": -145.70844, - "Y": -49.19972, - "Z": -271.5343 - }, - "TerritoryId": 959, - "InteractionType": "CompleteQuest" - } - ] - } - ] +{ + "schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "AnimaMachinae", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1044402, + "Position": { + "X": -193.89642, + "Y": -49.19972, + "Z": -262.13477 + }, + "TerritoryId": 959, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2013281, + "Position": { + "X": -330.19, + "Y": 105.1499, + "Z": 554.5586 + }, + "TerritoryId": 959, + "InteractionType": "Interact", + "Fly": true, + "AetheryteShortcut": "Mare Lamentorum - Sinus Lacrimarum" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1044942, + "Position": { + "X": -331.838, + "Y": 105.39431, + "Z": 551.2322 + }, + "TerritoryId": 959, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1044931, + "Position": { + "X": 148.30237, + "Y": -49.589592, + "Z": -361.77618 + }, + "TerritoryId": 959, + "InteractionType": "Interact", + "Fly": true, + "AetheryteShortcut": "Mare Lamentorum - Bestways Burrow" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1044402, + "Position": { + "X": -193.89642, + "Y": -49.19972, + "Z": -262.13477 + }, + "TerritoryId": 959, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1044944, + "Position": { + "X": -463.55383, + "Y": -157.99237, + "Z": -513.3593 + }, + "TerritoryId": 959, + "InteractionType": "Interact", + "Fly": true, + "AetheryteShortcut": "Mare Lamentorum - Bestways Burrow", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 1044945, + "Position": { + "X": -540.1236, + "Y": -167.8502, + "Z": -620.63025 + }, + "TerritoryId": 959, + "InteractionType": "Interact", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, + { + "DataId": 1044943, + "Position": { + "X": -414.54187, + "Y": -158.1177, + "Z": -639.9481 + }, + "TerritoryId": 959, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1044947, + "Position": { + "X": -145.70844, + "Y": -49.19972, + "Z": -271.5343 + }, + "TerritoryId": 959, + "InteractionType": "Interact", + "Fly": true, + "AetheryteShortcut": "Mare Lamentorum - Bestways Burrow" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "TerritoryId": 959, + "InteractionType": "Craft", + "ItemId": 38849, + "ItemCount": 1 + }, + { + "DataId": 1044947, + "Position": { + "X": -145.70844, + "Y": -49.19972, + "Z": -271.5343 + }, + "TerritoryId": 959, + "InteractionType": "CompleteQuest" + } + ] + } + ] } \ No newline at end of file -- 2.45.2 From f336de8f9bc8fb948eff0650b65b00ceecd66e11 Mon Sep 17 00:00:00 2001 From: pot0to <19513249+pot0to@users.noreply.github.com> Date: Sun, 20 Oct 2024 02:27:30 -0700 Subject: [PATCH 159/448] adding all ARR thaumaturge quests and one more loporrit --- .../BLM/344_Way of the Thaumaturge.json | 2 +- .../BLM/345_Way of the Thaumaturge.json | 3 +- .../BLM/351_The Threat of Perplexity.json | 3 +- .../Dailies/4699_Hare-raising Thrills.json | 41 +++++++++++++-- QuestPaths/quest-v1.json | 3 +- .../Questing/Converter/EmoteConverter.cs | 51 +++++++++--------- Questionable.Model/Questing/EEmote.cs | 52 ++++++++++--------- 7 files changed, 97 insertions(+), 58 deletions(-) diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/BLM/344_Way of the Thaumaturge.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/BLM/344_Way of the Thaumaturge.json index 902c1ef93..7672f5a55 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/BLM/344_Way of the Thaumaturge.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/BLM/344_Way of the Thaumaturge.json @@ -36,7 +36,7 @@ "Yes": true } ], - "NextQuestId": 553 + "NextQuestId": 351 } ] } diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/BLM/345_Way of the Thaumaturge.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/BLM/345_Way of the Thaumaturge.json index 57d4b5d1a..e0f046de1 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/BLM/345_Way of the Thaumaturge.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/BLM/345_Way of the Thaumaturge.json @@ -36,7 +36,8 @@ "Prompt": "TEXT_CLSTHM020_00345_Q1_001_1", "Yes": true } - ] + ], + "NextQuestId": 351 } ] } diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/BLM/351_The Threat of Perplexity.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/BLM/351_The Threat of Perplexity.json index 75d2bceba..dbd4f58c7 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/BLM/351_The Threat of Perplexity.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/BLM/351_The Threat of Perplexity.json @@ -209,7 +209,8 @@ "Z": 80.88806 }, "TerritoryId": 130, - "InteractionType": "CompleteQuest" + "InteractionType": "CompleteQuest", + "NextQuestId": 352 } ] } diff --git a/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Dailies/4699_Hare-raising Thrills.json b/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Dailies/4699_Hare-raising Thrills.json index d731dcbc4..ac2e4f420 100644 --- a/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Dailies/4699_Hare-raising Thrills.json +++ b/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Dailies/4699_Hare-raising Thrills.json @@ -1,7 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "liza", - "Disabled": true, + "Author": "pot0to", "QuestSequence": [ { "Sequence": 0, @@ -13,7 +12,8 @@ "Z": -273.68756 }, "TerritoryId": 959, - "InteractionType": "WalkTo" + "InteractionType": "WalkTo", + "Fly": true }, { "DataId": 1044403, @@ -30,6 +30,38 @@ { "Sequence": 1, "Steps": [ + { + "DataId": 1044412, + "Position": { + "X": -181.56714, + "Y": -49.19972, + "Z": -304.76843 + }, + "TerritoryId": 959, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "TerritoryId": 959, + "InteractionType": "Craft", + "ItemId": 38871, + "ItemCount": 1 + }, + { + "DataId": 1044584, + "Position": { + "X": 563.8971, + "Y": -167.50002, + "Z": -594.53723 + }, + "TerritoryId": 959, + "InteractionType": "Interact", + "Fly": true + } ] }, { @@ -42,7 +74,8 @@ "Z": -273.68756 }, "TerritoryId": 959, - "InteractionType": "WalkTo" + "InteractionType": "WalkTo", + "Fly": true }, { "DataId": 1044403, diff --git a/QuestPaths/quest-v1.json b/QuestPaths/quest-v1.json index eefbf1eb7..aba772ace 100644 --- a/QuestPaths/quest-v1.json +++ b/QuestPaths/quest-v1.json @@ -826,7 +826,8 @@ "battlestance", "doze", "box", - "sundropdance" + "sundropdance", + "cry" ] } } diff --git a/Questionable.Model/Questing/Converter/EmoteConverter.cs b/Questionable.Model/Questing/Converter/EmoteConverter.cs index 213d909a3..7f11a6f21 100644 --- a/Questionable.Model/Questing/Converter/EmoteConverter.cs +++ b/Questionable.Model/Questing/Converter/EmoteConverter.cs @@ -7,35 +7,36 @@ public sealed class EmoteConverter() : EnumConverter(Values) { private static readonly Dictionary Values = new() { - { EEmote.Stretch, "stretch" }, - { EEmote.Wave, "wave" }, - { EEmote.Rally, "rally" }, - { EEmote.Deny, "deny" }, - { EEmote.Pray, "pray" }, - { EEmote.Slap, "slap" }, - { EEmote.Doubt, "doubt" }, - { EEmote.Psych, "psych" }, - { EEmote.Cheer, "cheer" }, - { EEmote.Happy, "happy" }, - { EEmote.Poke, "poke" }, - { EEmote.Flex, "flex" }, - { EEmote.Soothe, "soothe" }, - { EEmote.Me, "me" }, - { EEmote.Welcome, "welcome" }, - { EEmote.ImperialSalute, "imperialsalute" }, - { EEmote.Pet, "pet" }, - { EEmote.Dance, "dance" }, - { EEmote.Respect, "respect" }, - { EEmote.Lookout, "lookout" }, - { EEmote.Kneel, "kneel" }, { EEmote.Bow, "bow" }, - { EEmote.Uchiwasshoi, "uchiwasshoi" }, + { EEmote.Cheer, "cheer" }, { EEmote.Clap, "clap" }, - { EEmote.VictoryPose, "victorypose" }, { EEmote.Comfort, "comfort" }, - { EEmote.BattleStance, "battlestance" }, + { EEmote.Dance, "dance" }, + { EEmote.Doubt, "doubt" }, { EEmote.Doze, "doze" }, + { EEmote.Wave, "wave" }, + { EEmote.Kneel, "kneel" }, + { EEmote.Lookout, "lookout" }, + { EEmote.Me, "me" }, + { EEmote.Deny, "deny" }, + { EEmote.Poke, "poke" }, + { EEmote.Psych, "psych" }, + { EEmote.Rally, "rally" }, + { EEmote.Soothe, "soothe" }, + { EEmote.Stretch, "stretch" }, + { EEmote.Welcome, "welcome" }, + { EEmote.Happy, "happy" }, + { EEmote.Pray, "pray" }, + { EEmote.ImperialSalute, "imperialsalute" }, + { EEmote.Cry, "cry" }, + { EEmote.Pet, "pet" }, + { EEmote.Slap, "slap" }, + { EEmote.SundropDance, "sundropdance"}, + { EEmote.BattleStance, "battlestance" }, + { EEmote.VictoryPose, "victorypose" }, + { EEmote.Flex, "flex" }, + { EEmote.Respect, "respect" }, { EEmote.Box, "box" }, - { EEmote.SundropDance, "sundropdance"} + { EEmote.Uchiwasshoi, "uchiwasshoi" } }; } diff --git a/Questionable.Model/Questing/EEmote.cs b/Questionable.Model/Questing/EEmote.cs index 4f1b2c6f7..9ca0fa68c 100644 --- a/Questionable.Model/Questing/EEmote.cs +++ b/Questionable.Model/Questing/EEmote.cs @@ -8,34 +8,36 @@ public enum EEmote { None = 0, - Stretch = 37, - Wave = 16, - Rally = 34, - Deny = 25, - Pray = 58, - Slap = 111, - Doubt = 12, - Psych = 30, - Cheer = 6, - Happy = 48, - Poke = 28, - Flex = 139, - Soothe = 35, - Me = 23, - Welcome = 41, - ImperialSalute = 59, - Pet = 105, - Dance = 11, - Respect = 140, - Lookout = 22, - Kneel = 19, Bow = 5, - Uchiwasshoi = 278, + Cheer = 6, Clap = 7, - VictoryPose = 122, Comfort = 9, - BattleStance = 121, + Dance = 11, + Doubt = 12, Doze = 13, + Wave = 16, + Kneel = 19, + Lookout = 22, + Me = 23, + Deny = 25, + Poke = 28, + Psych = 30, + Rally = 34, + Soothe = 35, + Stretch = 37, + Welcome = 41, + Happy = 48, + Pray = 58, + ImperialSalute = 59, + Cry = 74, + Pet = 105, + Slap = 111, + SundropDance = 120, + BattleStance = 121, + VictoryPose = 122, + Flex = 139, + Respect = 140, Box = 166, - SundropDance = 120, + Uchiwasshoi = 278 } + -- 2.45.2 From c176bc2b79b001a9c01fbdffdf1326e397e78166 Mon Sep 17 00:00:00 2001 From: pot0to <19513249+pot0to@users.noreply.github.com> Date: Mon, 21 Oct 2024 11:56:55 -0700 Subject: [PATCH 160/448] cleaned up omicrons quest --- .../Omicrons/Dailies/4618_Sold Out.json | 41 +++++++++++++++++-- 1 file changed, 38 insertions(+), 3 deletions(-) diff --git a/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4618_Sold Out.json b/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4618_Sold Out.json index 173d6aef5..4b83ed9dd 100644 --- a/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4618_Sold Out.json +++ b/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4618_Sold Out.json @@ -48,6 +48,31 @@ } ] }, + { + "DataId": 2013072, + "Position": { + "X": 456.65674, + "Y": 438.04077, + "Z": 310.2312 + }, + "TerritoryId": 960, + "InteractionType": "Interact", + "AetheryteShortcut": "Ultima Thule - Base Omicron", + "TargetTerritoryId": 960, + "$": "Portal to A-4 Research" + }, + { + "DataId": 1043865, + "Position": { + "X": 301.8081, + "Y": 482.13644, + "Z": 165.02625 + }, + "TerritoryId": 960, + "InteractionType": "Interact", + "TargetTerritoryId": 960, + "$": "Last Dregs Host Unit" + }, { "DataId": 1043936, "Position": { @@ -56,15 +81,25 @@ "Z": 250.93457 }, "TerritoryId": 960, - "InteractionType": "Interact", - "AetheryteShortcut": "Ultima Thule - Base Omicron", - "Mount": true + "InteractionType": "Interact" } ] }, { "Sequence": 255, "Steps": [ + { + "DataId": 1043864, + "Position": { + "X": 244.83093, + "Y": 564.8203, + "Z": 261.76843 + }, + "TerritoryId": 960, + "InteractionType": "Interact", + "TargetTerritoryId": 960, + "$": "A-4 Transport Unit" + }, { "DataId": 1043417, "Position": { -- 2.45.2 From 786f79a75a0e5a61c0f873eb314b89f73de26846 Mon Sep 17 00:00:00 2001 From: AnimaMachinae Date: Tue, 22 Oct 2024 00:23:35 +0000 Subject: [PATCH 161/448] Upload files to "QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Story" --- .../Story/2166_Linu's Lovely Bones.json | 216 ++++++++++++++++++ 1 file changed, 216 insertions(+) create mode 100644 QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Story/2166_Linu's Lovely Bones.json diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Story/2166_Linu's Lovely Bones.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Story/2166_Linu's Lovely Bones.json new file mode 100644 index 000000000..2bd042314 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Story/2166_Linu's Lovely Bones.json @@ -0,0 +1,216 @@ +{ + "schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "AnimaMachinae", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1016087, + "Position": { + "X": -796.7498, + "Y": -133.2695, + "Z": -410.6966 + }, + "TerritoryId": 401, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": -790.3409, + "Y": -129.17549, + "Z": -409.1912 + }, + "TerritoryId": 401, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 1016166, + "Position": { + "X": 557.885, + "Y": -126.23241, + "Z": 283.07007 + }, + "TerritoryId": 401, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2006627, + "Position": { + "X": 583.52014, + "Y": -126.81775, + "Z": 268.0857 + }, + "TerritoryId": 401, + "InteractionType": "UseItem", + "ItemId": 2001901, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 2006628, + "Position": { + "X": 632.95935, + "Y": -111.680786, + "Z": 157.85449 + }, + "TerritoryId": 401, + "InteractionType": "UseItem", + "ItemId": 2001901, + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 2006629, + "Position": { + "X": 688.5939, + "Y": -95.99457, + "Z": 101.27405 + }, + "TerritoryId": 401, + "InteractionType": "UseItem", + "ItemId": 2001901, + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, + { + "DataId": 2006630, + "Position": { + "X": 709.86475, + "Y": -85.19116, + "Z": 29.892456 + }, + "TerritoryId": 401, + "InteractionType": "UseItem", + "ItemId": 2001901, + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 16 + ] + }, + { + "DataId": 2006631, + "Position": { + "X": 722.8656, + "Y": -65.84277, + "Z": -57.938538 + }, + "TerritoryId": 401, + "InteractionType": "UseItem", + "ItemId": 2001901, + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 8 + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1016166, + "Position": { + "X": 557.885, + "Y": -126.23241, + "Z": 283.07007 + }, + "TerritoryId": 401, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1016166, + "Position": { + "X": 557.885, + "Y": -126.23241, + "Z": 283.07007 + }, + "TerritoryId": 401, + "InteractionType": "Emote", + "Emote": "dance" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1012064, + "Position": { + "X": -542.7787, + "Y": -37.11544, + "Z": -386.7094 + }, + "TerritoryId": 401, + "InteractionType": "Interact", + "Fly": true, + "AetheryteShortcut": "The Sea of Clouds - Ok' Zundu" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1016087, + "Position": { + "X": -796.7498, + "Y": -133.2695, + "Z": -410.6966 + }, + "TerritoryId": 401, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} \ No newline at end of file -- 2.45.2 From b6b0644aa630ea52e304991266455715e52dfced Mon Sep 17 00:00:00 2001 From: AnimaMachinae Date: Tue, 22 Oct 2024 00:24:38 +0000 Subject: [PATCH 162/448] Upload files to "QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies" --- .../2174_Pilfering Pots from the Pantry.json | 129 ++++++++++++++++++ .../Dailies/2175_Chigoe Cha-cha.json | 104 ++++++++++++++ .../Dailies/2176_Water Crystal Waltz.json | 108 +++++++++++++++ .../Dailies/2182_Flight of the Midges.json | 6 +- 4 files changed, 345 insertions(+), 2 deletions(-) create mode 100644 QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2174_Pilfering Pots from the Pantry.json create mode 100644 QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2175_Chigoe Cha-cha.json create mode 100644 QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2176_Water Crystal Waltz.json diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2174_Pilfering Pots from the Pantry.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2174_Pilfering Pots from the Pantry.json new file mode 100644 index 000000000..d89c2fd26 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2174_Pilfering Pots from the Pantry.json @@ -0,0 +1,129 @@ +{ + "schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "AnimaMachinae", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1016089, + "Position": { + "X": -799.46594, + "Y": -133.2695, + "Z": -404.1352 + }, + "TerritoryId": 401, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": -797.36957, + "Y": -130.0076, + "Z": -404.2746 + }, + "TerritoryId": 401, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 2006651, + "Position": { + "X": 664.3624, + "Y": -30.86908, + "Z": -137.0108 + }, + "TerritoryId": 401, + "InteractionType": "Interact", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 2006652, + "Position": { + "X": 847.2876, + "Y": -50.58368, + "Z": 7.2174683 + }, + "TerritoryId": 401, + "InteractionType": "Interact", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 2006653, + "Position": { + "X": 860.2273, + "Y": -84.45868, + "Z": 19.272095 + }, + "TerritoryId": 401, + "InteractionType": "Combat", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ], + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 5235 + ] + }, + { + "DataId": 2006654, + "Position": { + "X": 642.63354, + "Y": -92.57648, + "Z": 63.035034 + }, + "TerritoryId": 401, + "InteractionType": "Combat", + "Fly": true, + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 5235 + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1016089, + "Position": { + "X": -799.46594, + "Y": -133.2695, + "Z": -404.1352 + }, + "TerritoryId": 401, + "InteractionType": "CompleteQuest", + "Fly": true, + "AetheryteShortcut": "The Sea of Clouds - Ok' Zundu" + } + ] + } + ] +} \ No newline at end of file diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2175_Chigoe Cha-cha.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2175_Chigoe Cha-cha.json new file mode 100644 index 000000000..c6ab9dd5b --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2175_Chigoe Cha-cha.json @@ -0,0 +1,104 @@ +{ + "schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "AnimaMachinae", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1016089, + "Position": { + "X": -799.46594, + "Y": -133.2695, + "Z": -404.1352 + }, + "TerritoryId": 401, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1016093, + "Position": { + "X": -776.0281, + "Y": -133.35559, + "Z": -414.32825 + }, + "TerritoryId": 401, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2006655, + "Position": { + "X": -48.325317, + "Y": 17.990356, + "Z": -852.47577 + }, + "TerritoryId": 401, + "InteractionType": "Action", + "Fly": true, + "Action": "Buffet (Sanuwa)" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2006656, + "Position": { + "X": 95.23157, + "Y": -11.886841, + "Z": -817.6242 + }, + "TerritoryId": 401, + "InteractionType": "Action", + "Fly": true, + "Action": "Buffet (Sanuwa)" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 2006657, + "Position": { + "X": 205.8899, + "Y": -6.9123535, + "Z": -785.70233 + }, + "TerritoryId": 401, + "InteractionType": "Action", + "Fly": true, + "Action": "Buffet (Sanuwa)" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1016089, + "Position": { + "X": -799.46594, + "Y": -133.2695, + "Z": -404.1352 + }, + "TerritoryId": 401, + "InteractionType": "CompleteQuest", + "Fly": true, + "AetheryteShortcut": "The Sea of Clouds - Ok' Zundu" + } + ] + } + ] +} \ No newline at end of file diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2176_Water Crystal Waltz.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2176_Water Crystal Waltz.json new file mode 100644 index 000000000..44b7a98bd --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2176_Water Crystal Waltz.json @@ -0,0 +1,108 @@ +{ + "schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "AnimaMachinae", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1016089, + "Position": { + "X": -799.46594, + "Y": -133.2695, + "Z": -404.1352 + }, + "TerritoryId": 401, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1011952, + "Position": { + "X": -277.63788, + "Y": -184.59735, + "Z": 741.60376 + }, + "TerritoryId": 401, + "InteractionType": "Interact", + "Fly": true, + "AetheryteShortcut": "The Sea of Clouds - Camp Cloudtop" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2006662, + "Position": { + "X": 150.77429, + "Y": -133.98956, + "Z": 610.00977 + }, + "TerritoryId": 401, + "InteractionType": "Interact", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 8 + ] + }, + { + "DataId": 2006661, + "Position": { + "X": 207.2633, + "Y": -124.101685, + "Z": 631.8303 + }, + "TerritoryId": 401, + "InteractionType": "Interact", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 16 + ] + }, + { + "DataId": 2006658, + "Position": { + "X": 407.187, + "Y": -122.51471, + "Z": 724.0558 + }, + "TerritoryId": 401, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1016089, + "Position": { + "X": -799.46594, + "Y": -133.2695, + "Z": -404.1352 + }, + "TerritoryId": 401, + "InteractionType": "CompleteQuest", + "Fly": true, + "AetheryteShortcut": "The Sea of Clouds - Ok' Zundu" + } + ] + } + ] +} \ No newline at end of file diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2182_Flight of the Midges.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2182_Flight of the Midges.json index 3ad2f8472..d2db06a6b 100644 --- a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2182_Flight of the Midges.json +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2182_Flight of the Midges.json @@ -71,7 +71,8 @@ "TerritoryId": 401, "InteractionType": "Action", "Action": "Buffet (Sanuwa)", - "Fly": true + "Fly": true, + "CompletionQuestVariablesFlags": [null,null,null,null,null,32] }, { "DataId": 1016221, @@ -83,7 +84,8 @@ "TerritoryId": 401, "InteractionType": "Action", "Action": "Buffet (Sanuwa)", - "Fly": true + "Fly": true, + "CompletionQuestVariablesFlags": [null,null,null,null,null,64] }, { "DataId": 1016220, -- 2.45.2 From ec36e7bebf8836ee7bc3f68fff0fa482ceced687 Mon Sep 17 00:00:00 2001 From: AnimaMachinae Date: Tue, 22 Oct 2024 00:24:50 +0000 Subject: [PATCH 163/448] Upload files to "QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies" -- 2.45.2 From dec4fb64c8426bbfebf596289846e3e6e0d50eb0 Mon Sep 17 00:00:00 2001 From: AnimaMachinae Date: Tue, 22 Oct 2024 00:25:35 +0000 Subject: [PATCH 164/448] Upload files to "QuestPaths/3.x - Heavensward/Class Quests/DRG" --- .../DRG/1693_Dragoon's Errand.json | 158 ++++++++++++++++++ .../DRG/1694_Sanguine Dragoon.json | 141 ++++++++++++++++ 2 files changed, 299 insertions(+) create mode 100644 QuestPaths/3.x - Heavensward/Class Quests/DRG/1693_Dragoon's Errand.json create mode 100644 QuestPaths/3.x - Heavensward/Class Quests/DRG/1694_Sanguine Dragoon.json diff --git a/QuestPaths/3.x - Heavensward/Class Quests/DRG/1693_Dragoon's Errand.json b/QuestPaths/3.x - Heavensward/Class Quests/DRG/1693_Dragoon's Errand.json new file mode 100644 index 000000000..d0c8f5e04 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Class Quests/DRG/1693_Dragoon's Errand.json @@ -0,0 +1,158 @@ +{ + "schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "AnimaMachinae", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "Position": { + "X": 215.65454, + "Y": 222.1, + "Z": 345.1806 + }, + "TerritoryId": 155, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", + "Land": true, + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + }, + "$": "Alberic" + }, + { + "DataId": 1006748, + "Position": { + "X": 217.88354, + "Y": 222, + "Z": 345.3269 + }, + "TerritoryId": 155, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": -48.009445, + "Y": 98.00955, + "Z": 106.47891 + }, + "TerritoryId": 397, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Coerthas Western Highlands - Falcon's Nest", + "Fly": true, + "Land": true + }, + { + "DataId": 1013467, + "Position": { + "X": -51.10254, + "Y": 98.63026, + "Z": 105.1499 + }, + "TerritoryId": 397, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1013466, + "Position": { + "X": -155.5047, + "Y": 175.79733, + "Z": 693.26306 + }, + "TerritoryId": 397, + "InteractionType": "Combat", + "Fly": true, + "Land": true, + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [ + 4482, + 5049 + ], + "CompletionQuestVariablesFlags": [ + 2, + null, + null, + null, + null, + null + ] + }, + { + "DataId": 1013466, + "Position": { + "X": -155.5047, + "Y": 175.79733, + "Z": 693.26306 + }, + "TerritoryId": 397, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1012163, + "Position": { + "X": 128.25195, + "Y": 24.458832, + "Z": -0.6867676 + }, + "TerritoryId": 418, + "InteractionType": "Interact", + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] The Forgotten Knight" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": 215.65454, + "Y": 222.1, + "Z": 345.1806 + }, + "TerritoryId": 155, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", + "Land": true, + "Fly": true + }, + { + "DataId": 1013470, + "Position": { + "X": 218.00562, + "Y": 222, + "Z": 346.45605 + }, + "TerritoryId": 155, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} \ No newline at end of file diff --git a/QuestPaths/3.x - Heavensward/Class Quests/DRG/1694_Sanguine Dragoon.json b/QuestPaths/3.x - Heavensward/Class Quests/DRG/1694_Sanguine Dragoon.json new file mode 100644 index 000000000..4cc22951c --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Class Quests/DRG/1694_Sanguine Dragoon.json @@ -0,0 +1,141 @@ +{ + "schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "AnimaMachinae", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "Position": { + "X": 215.65454, + "Y": 222.1, + "Z": 345.1806 + }, + "TerritoryId": 155, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", + "Land": true, + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + }, + "$": "Alberic" + }, + { + "DataId": 1006748, + "Position": { + "X": 217.88354, + "Y": 222, + "Z": 345.3269 + }, + "TerritoryId": 155, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1013471, + "Position": { + "X": 503.53247, + "Y": -51.363117, + "Z": 79.941895 + }, + "TerritoryId": 398, + "InteractionType": "Interact", + "Fly": true, + "Land": true, + "AetheryteShortcut": "The Dravanian Forelands - Tailfeather" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1013472, + "Position": { + "X": 396.35315, + "Y": -50.87535, + "Z": 73.04492 + }, + "TerritoryId": 398, + "InteractionType": "Combat", + "Fly": true, + "Land": true, + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 4497 + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1013471, + "Position": { + "X": 503.53247, + "Y": -51.363117, + "Z": 79.941895 + }, + "TerritoryId": 398, + "InteractionType": "Interact", + "Fly": true, + "Land": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1013476, + "Position": { + "X": 571.5571, + "Y": -36.290947, + "Z": 359.3651 + }, + "TerritoryId": 398, + "InteractionType": "Interact", + "Fly": true, + "Land": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": 215.65454, + "Y": 222.1, + "Z": 345.1806 + }, + "TerritoryId": 155, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", + "Land": true, + "Fly": true, + "$": "Alberic" + }, + { + "DataId": 1006748, + "Position": { + "X": 217.88354, + "Y": 222, + "Z": 345.3269 + }, + "TerritoryId": 155, + "InteractionType": "CompleteQuest", + "NextQuestId": 1690 + } + ] + } + ] +} \ No newline at end of file -- 2.45.2 From 126ad5a5fbe54fff46a81a6c360d90cf3457e874 Mon Sep 17 00:00:00 2001 From: AnimaMachinae Date: Tue, 22 Oct 2024 00:26:45 +0000 Subject: [PATCH 165/448] Upload files to "QuestPaths/3.x - Heavensward/Allied Societies/Vath/Story" --- .../2256_Adventurers Don't Get Cold Feet.json | 194 ++++++++++++++++++ 1 file changed, 194 insertions(+) create mode 100644 QuestPaths/3.x - Heavensward/Allied Societies/Vath/Story/2256_Adventurers Don't Get Cold Feet.json diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Story/2256_Adventurers Don't Get Cold Feet.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Story/2256_Adventurers Don't Get Cold Feet.json new file mode 100644 index 000000000..77bf1c28f --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Story/2256_Adventurers Don't Get Cold Feet.json @@ -0,0 +1,194 @@ +{ + "schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "AnimaMachinae", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1016802, + "Position": { + "X": 53.360718, + "Y": -48.000004, + "Z": -169.97028 + }, + "TerritoryId": 398, + "InteractionType": "AcceptQuest", + "Fly": true, + "Land": true, + "AetheryteShortcut": "The Dravanian Forelands - Anyx Trine", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1016841, + "Position": { + "X": 842.9846, + "Y": -8.926968, + "Z": 338.2467 + }, + "TerritoryId": 398, + "InteractionType": "Combat", + "Fly": true, + "Land": true, + "AetheryteShortcut": "The Dravanian Forelands - Tailfeather", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 5541 + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1016841, + "Position": { + "X": 842.9846, + "Y": -8.926968, + "Z": 338.2467 + }, + "TerritoryId": 398, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "Position": { + "X": 875.1023, + "Y": -3.6736863, + "Z": 355.24545 + }, + "TerritoryId": 398, + "InteractionType": "WalkTo", + "Fly": true, + "Land": true + }, + { + "DataId": 1016842, + "Position": { + "X": -791.9585, + "Y": 113.93191, + "Z": -624.59753 + }, + "TerritoryId": 397, + "InteractionType": "Interact", + "Fly": true, + "Land": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1011907, + "Position": { + "X": -288.8686, + "Y": 127.06639, + "Z": 13.199036 + }, + "TerritoryId": 397, + "InteractionType": "Interact", + "Fly": true, + "Land": true + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 2006877, + "Position": { + "X": -276.63086, + "Y": 122.27051, + "Z": -45.02942 + }, + "TerritoryId": 397, + "InteractionType": "UseItem", + "ItemId": 2001950 + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1016890, + "Position": { + "X": -273.91473, + "Y": 122.361694, + "Z": -43.320435 + }, + "TerritoryId": 397, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 7, + "Steps": [ + { + "DataId": 1011928, + "Position": { + "X": 73.19751, + "Y": -49.19563, + "Z": -139.05548 + }, + "TerritoryId": 398, + "InteractionType": "Interact", + "Fly": true, + "Land": true, + "AetheryteShortcut": "The Dravanian Forelands - Anyx Trine" + } + ] + }, + { + "Sequence": 8, + "Steps": [ + { + "DataId": 1016843, + "Position": { + "X": 103.16626, + "Y": -50.70595, + "Z": -184.31378 + }, + "TerritoryId": 398, + "InteractionType": "Interact", + "Fly": true, + "Land": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1016802, + "Position": { + "X": 53.360718, + "Y": -48.000004, + "Z": -169.97028 + }, + "TerritoryId": 398, + "InteractionType": "CompleteQuest", + "Fly": true, + "Land": true + } + ] + } + ] +} \ No newline at end of file -- 2.45.2 From 78ca9f2c91d8db54e81286f894e4ee8a3be5d4cb Mon Sep 17 00:00:00 2001 From: AnimaMachinae Date: Tue, 22 Oct 2024 00:27:23 +0000 Subject: [PATCH 166/448] Upload files to "QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies" --- .../Vath/Dailies/2269_Ploughing Ahead.json | 114 ++++++++++++ .../Vath/Dailies/2270_At Full Pelt.json | 173 ++++++++++++++++++ 2 files changed, 287 insertions(+) create mode 100644 QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2269_Ploughing Ahead.json create mode 100644 QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2270_At Full Pelt.json diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2269_Ploughing Ahead.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2269_Ploughing Ahead.json new file mode 100644 index 000000000..ca1740964 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2269_Ploughing Ahead.json @@ -0,0 +1,114 @@ +{ + "schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "AnimaMachinae", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1016803, + "Position": { + "X": 57.297607, + "Y": -47.842846, + "Z": -174.63953 + }, + "TerritoryId": 398, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1017031, + "Position": { + "X": 74.20459, + "Y": -48.533592, + "Z": -171.12994 + }, + "TerritoryId": 398, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2006915, + "Position": { + "X": 96.45227, + "Y": -66.2395, + "Z": 616.6017 + }, + "TerritoryId": 398, + "InteractionType": "Action", + "Action": "Fumigate", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2006916, + "Position": { + "X": -149.95044, + "Y": -55.25299, + "Z": 541.37476 + }, + "TerritoryId": 398, + "InteractionType": "Action", + "Action": "Fumigate", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 2006917, + "Position": { + "X": -625.0859, + "Y": -49.94281, + "Z": 491.02002 + }, + "TerritoryId": 398, + "InteractionType": "Action", + "Action": "Fumigate", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": 59.511234, + "Y": -48, + "Z": -171.35385 + }, + "TerritoryId": 398, + "InteractionType": "WalkTo", + "Fly": true, + "Land": true, + "AetheryteShortcut": "The Dravanian Forelands - Anyx Trine" + }, + { + "DataId": 1016803, + "Position": { + "X": 57.297607, + "Y": -47.842846, + "Z": -174.63953 + }, + "TerritoryId": 398, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} \ No newline at end of file diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2270_At Full Pelt.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2270_At Full Pelt.json new file mode 100644 index 000000000..1a1baff4a --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2270_At Full Pelt.json @@ -0,0 +1,173 @@ +{ + "schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "AnimaMachinae", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1016803, + "Position": { + "X": 57.297607, + "Y": -47.842846, + "Z": -174.63953 + }, + "TerritoryId": 398, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": 449.65012, + "Y": -51.141403, + "Z": 106.932205 + }, + "TerritoryId": 398, + "InteractionType": "WalkTo", + "Fly": true, + "Land": true, + "AetheryteShortcut": "The Dravanian Forelands - Tailfeather" + }, + { + "DataId": 1011922, + "Position": { + "X": 448.56934, + "Y": -51.141407, + "Z": 108.93408 + }, + "TerritoryId": 398, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2006918, + "Position": { + "X": 475.69995, + "Y": -44.174927, + "Z": -231.46417 + }, + "TerritoryId": 398, + "InteractionType": "Combat", + "EnemySpawnType": "AfterItemUse", + "ItemId": 2001961, + "KillEnemyDataIds": [ + 71224 + ], + "Fly": true, + "Land": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 2006920, + "Position": { + "X": 329.4879, + "Y": -45.487183, + "Z": -262.13477 + }, + "TerritoryId": 398, + "InteractionType": "Combat", + "EnemySpawnType": "AfterItemUse", + "ItemId": 2001961, + "KillEnemyDataIds": [ + 5548 + ], + "Fly": true, + "Land": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, + { + "DataId": 2006919, + "Position": { + "X": 535.45435, + "Y": -32.39496, + "Z": -410.60504 + }, + "TerritoryId": 398, + "InteractionType": "Combat", + "EnemySpawnType": "AfterItemUse", + "ItemId": 2001961, + "KillEnemyDataIds": [ + 71224 + ], + "Fly": true, + "Land": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "Position": { + "X": 449.65012, + "Y": -51.141403, + "Z": 106.932205 + }, + "TerritoryId": 398, + "InteractionType": "WalkTo", + "Fly": true, + "Land": true, + "AetheryteShortcut": "The Dravanian Forelands - Tailfeather" + }, + { + "DataId": 1011922, + "Position": { + "X": 448.56934, + "Y": -51.141407, + "Z": 108.93408 + }, + "TerritoryId": 398, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": 59.511234, + "Y": -48, + "Z": -171.35385 + }, + "TerritoryId": 398, + "InteractionType": "WalkTo", + "Fly": true, + "Land": true + }, + { + "DataId": 1016803, + "Position": { + "X": 57.297607, + "Y": -47.842846, + "Z": -174.63953 + }, + "TerritoryId": 398, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} \ No newline at end of file -- 2.45.2 From 1f709cdc5c4b8ddc58ec4159a32615d7af51180c Mon Sep 17 00:00:00 2001 From: AnimaMachinae Date: Tue, 22 Oct 2024 00:28:16 +0000 Subject: [PATCH 167/448] Upload files to "QuestPaths/3.x - Heavensward/Class Quests/DRG" --- .../Class Quests/DRG/1695_Dragoon's Fate.json | 123 ++++++++++++++++++ 1 file changed, 123 insertions(+) create mode 100644 QuestPaths/3.x - Heavensward/Class Quests/DRG/1695_Dragoon's Fate.json diff --git a/QuestPaths/3.x - Heavensward/Class Quests/DRG/1695_Dragoon's Fate.json b/QuestPaths/3.x - Heavensward/Class Quests/DRG/1695_Dragoon's Fate.json new file mode 100644 index 000000000..d4703aed6 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Class Quests/DRG/1695_Dragoon's Fate.json @@ -0,0 +1,123 @@ +{ + "schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "AnimaMachinae", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "Position": { + "X": 215.65454, + "Y": 222.1, + "Z": 345.1806 + }, + "TerritoryId": 155, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", + "Land": true, + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + }, + "$": "Alberic" + }, + { + "DataId": 1006748, + "Position": { + "X": 217.88354, + "Y": 222, + "Z": 345.3269 + }, + "TerritoryId": 155, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1013483, + "Position": { + "X": -272.26672, + "Y": 124.213005, + "Z": -23.361572 + }, + "TerritoryId": 397, + "InteractionType": "Interact", + "Fly": true, + "Land": true, + "AetheryteShortcut": "Coerthas Western Highlands - Falcon's Nest" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1013485, + "Position": { + "X": -360.1892, + "Y": 101.91492, + "Z": -178.79004 + }, + "TerritoryId": 397, + "InteractionType": "Interact", + "Fly": true, + "Land": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1013489, + "Position": { + "X": -429.099, + "Y": 121.59912, + "Z": -309.49878 + }, + "TerritoryId": 397, + "InteractionType": "Interact", + "Fly": true, + "Land": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1013494, + "Position": { + "X": -505.30255, + "Y": 120.61159, + "Z": -311.39087 + }, + "TerritoryId": 397, + "InteractionType": "SinglePlayerDuty", + "Fly": true, + "Land": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1013494, + "Position": { + "X": -505.30255, + "Y": 120.61159, + "Z": -311.39087 + }, + "TerritoryId": 397, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} \ No newline at end of file -- 2.45.2 From 8e2ceff3c44edc92781872c0011e485470b27a91 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Thu, 24 Oct 2024 16:20:14 +0200 Subject: [PATCH 168/448] Minor code cleanup --- .../Windows/QuestComponents/CreationUtilsComponent.cs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Questionable/Windows/QuestComponents/CreationUtilsComponent.cs b/Questionable/Windows/QuestComponents/CreationUtilsComponent.cs index e7b6c8616..8fc03bb42 100644 --- a/Questionable/Windows/QuestComponents/CreationUtilsComponent.cs +++ b/Questionable/Windows/QuestComponents/CreationUtilsComponent.cs @@ -29,7 +29,9 @@ namespace Questionable.Windows.QuestComponents; internal sealed class CreationUtilsComponent { +#if false private readonly QuestController _questController; +#endif private readonly MovementController _movementController; private readonly GameFunctions _gameFunctions; private readonly QuestFunctions _questFunctions; @@ -44,7 +46,9 @@ internal sealed class CreationUtilsComponent private readonly ILogger _logger; public CreationUtilsComponent( +#if false QuestController questController, +#endif MovementController movementController, GameFunctions gameFunctions, QuestFunctions questFunctions, @@ -58,7 +62,9 @@ internal sealed class CreationUtilsComponent Configuration configuration, ILogger logger) { +#if false _questController = questController; +#endif _movementController = movementController; _gameFunctions = gameFunctions; _questFunctions = questFunctions; -- 2.45.2 From 2c989d0aa2c7eed1b5963dc998b2f625f2f27855 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Thu, 24 Oct 2024 16:23:42 +0200 Subject: [PATCH 169/448] Fix wrong $schema declarations --- .../Vanu Vanu/Dailies/2173_Endymion Disco.json | 4 ++-- .../Dailies/2174_Pilfering Pots from the Pantry.json | 4 ++-- .../Vanu Vanu/Dailies/2175_Chigoe Cha-cha.json | 4 ++-- .../Vanu Vanu/Dailies/2176_Water Crystal Waltz.json | 4 ++-- .../Vanu Vanu/Dailies/2181_The Binding Soil.json | 4 ++-- .../Vanu Vanu/Story/2166_Linu's Lovely Bones.json | 4 ++-- .../Allied Societies/Vath/Dailies/2269_Ploughing Ahead.json | 4 ++-- .../Allied Societies/Vath/Dailies/2270_At Full Pelt.json | 4 ++-- .../Vath/Story/2256_Adventurers Don't Get Cold Feet.json | 4 ++-- .../Loporrits/Story/4684_Teamwork Makes the Dream Work.json | 4 ++-- 10 files changed, 20 insertions(+), 20 deletions(-) diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2173_Endymion Disco.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2173_Endymion Disco.json index 1b762ae9f..26d7324a2 100644 --- a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2173_Endymion Disco.json +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2173_Endymion Disco.json @@ -1,5 +1,5 @@ { - "schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "AnimaMachinae", "QuestSequence": [ { @@ -150,4 +150,4 @@ ] } ] -} \ No newline at end of file +} diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2174_Pilfering Pots from the Pantry.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2174_Pilfering Pots from the Pantry.json index d89c2fd26..f569b863a 100644 --- a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2174_Pilfering Pots from the Pantry.json +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2174_Pilfering Pots from the Pantry.json @@ -1,5 +1,5 @@ { - "schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "AnimaMachinae", "QuestSequence": [ { @@ -126,4 +126,4 @@ ] } ] -} \ No newline at end of file +} diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2175_Chigoe Cha-cha.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2175_Chigoe Cha-cha.json index c6ab9dd5b..22ed93eed 100644 --- a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2175_Chigoe Cha-cha.json +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2175_Chigoe Cha-cha.json @@ -1,5 +1,5 @@ { - "schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "AnimaMachinae", "QuestSequence": [ { @@ -101,4 +101,4 @@ ] } ] -} \ No newline at end of file +} diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2176_Water Crystal Waltz.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2176_Water Crystal Waltz.json index 44b7a98bd..4082a8360 100644 --- a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2176_Water Crystal Waltz.json +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2176_Water Crystal Waltz.json @@ -1,5 +1,5 @@ { - "schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "AnimaMachinae", "QuestSequence": [ { @@ -105,4 +105,4 @@ ] } ] -} \ No newline at end of file +} diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2181_The Binding Soil.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2181_The Binding Soil.json index 848ed72a8..455b2b116 100644 --- a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2181_The Binding Soil.json +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2181_The Binding Soil.json @@ -1,5 +1,5 @@ { - "schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "AnimaMachinae", "QuestSequence": [ { @@ -166,4 +166,4 @@ ] } ] -} \ No newline at end of file +} diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Story/2166_Linu's Lovely Bones.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Story/2166_Linu's Lovely Bones.json index 2bd042314..d9621063a 100644 --- a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Story/2166_Linu's Lovely Bones.json +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Story/2166_Linu's Lovely Bones.json @@ -1,5 +1,5 @@ { - "schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "AnimaMachinae", "QuestSequence": [ { @@ -213,4 +213,4 @@ ] } ] -} \ No newline at end of file +} diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2269_Ploughing Ahead.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2269_Ploughing Ahead.json index ca1740964..90040ebf2 100644 --- a/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2269_Ploughing Ahead.json +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2269_Ploughing Ahead.json @@ -1,5 +1,5 @@ { - "schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "AnimaMachinae", "QuestSequence": [ { @@ -111,4 +111,4 @@ ] } ] -} \ No newline at end of file +} diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2270_At Full Pelt.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2270_At Full Pelt.json index 1a1baff4a..799fae826 100644 --- a/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2270_At Full Pelt.json +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2270_At Full Pelt.json @@ -1,5 +1,5 @@ { - "schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "AnimaMachinae", "QuestSequence": [ { @@ -170,4 +170,4 @@ ] } ] -} \ No newline at end of file +} diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Story/2256_Adventurers Don't Get Cold Feet.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Story/2256_Adventurers Don't Get Cold Feet.json index 77bf1c28f..48ac24ce4 100644 --- a/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Story/2256_Adventurers Don't Get Cold Feet.json +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Story/2256_Adventurers Don't Get Cold Feet.json @@ -1,5 +1,5 @@ { - "schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "AnimaMachinae", "QuestSequence": [ { @@ -191,4 +191,4 @@ ] } ] -} \ No newline at end of file +} diff --git a/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Story/4684_Teamwork Makes the Dream Work.json b/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Story/4684_Teamwork Makes the Dream Work.json index 05097b913..841370afc 100644 --- a/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Story/4684_Teamwork Makes the Dream Work.json +++ b/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Story/4684_Teamwork Makes the Dream Work.json @@ -1,5 +1,5 @@ { - "schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "AnimaMachinae", "QuestSequence": [ { @@ -176,4 +176,4 @@ ] } ] -} \ No newline at end of file +} -- 2.45.2 From 1e1c6f9c11aae59ad1d805d7caf876ec5bce11b0 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Thu, 24 Oct 2024 16:54:49 +0200 Subject: [PATCH 170/448] Minor PLD updates --- .../Class Quests/PLD/2037_This Little Sword of Mine.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/QuestPaths/3.x - Heavensward/Class Quests/PLD/2037_This Little Sword of Mine.json b/QuestPaths/3.x - Heavensward/Class Quests/PLD/2037_This Little Sword of Mine.json index ab71d7781..baa22551a 100644 --- a/QuestPaths/3.x - Heavensward/Class Quests/PLD/2037_This Little Sword of Mine.json +++ b/QuestPaths/3.x - Heavensward/Class Quests/PLD/2037_This Little Sword of Mine.json @@ -109,7 +109,8 @@ "Y": 130.79962, "Z": -850.2479 }, - "TerritoryId": 397, + "StopDistance": 5, + "TerritoryId": 397, "InteractionType": "Interact" } ] -- 2.45.2 From ca20cfcd888596b6a0ea261ed4a7d48ce06018d9 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Thu, 24 Oct 2024 20:18:45 +0200 Subject: [PATCH 171/448] Add NextQuestId to some quests --- .../Gridania/969_Adventurer for Hire.json | 113 +++--- .../Gridania/970_Some Seedy Business.json | 321 +++++++++--------- 2 files changed, 218 insertions(+), 216 deletions(-) diff --git a/QuestPaths/2.x - A Realm Reborn/Side Quests/Black Shroud/Gridania/969_Adventurer for Hire.json b/QuestPaths/2.x - A Realm Reborn/Side Quests/Black Shroud/Gridania/969_Adventurer for Hire.json index bdb01fce3..f15231bc4 100644 --- a/QuestPaths/2.x - A Realm Reborn/Side Quests/Black Shroud/Gridania/969_Adventurer for Hire.json +++ b/QuestPaths/2.x - A Realm Reborn/Side Quests/Black Shroud/Gridania/969_Adventurer for Hire.json @@ -1,59 +1,60 @@ { - "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "UcanPatates", - "QuestSequence": [ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "UcanPatates", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ { - "Sequence": 0, - "Steps": [ - { - "DataId": 1006711, - "Position": { - "X": -140.39832, - "Y": 7.8986163, - "Z": -142.99237 - }, - "TerritoryId": 133, - "InteractionType": "AcceptQuest", - "AetheryteShortcut": "Gridania", - "AethernetShortcut": [ - "[Gridania] Aetheryte Plaza", - "[Gridania] Mih Khetto's Amphitheatre" - ], - "SkipConditions": { - "AethernetShortcutIf": { - "InSameTerritory": true - }, - "AetheryteShortcutIf": { - "InTerritory": [ - 132, - 133 - ] - } - } - } - ] - }, - { - "Sequence": 255, - "Steps": [ - { - "DataId": 1000617, - "Position": { - "X": 5.722107, - "Y": -7.2786255, - "Z": 270.95447 - }, - "TerritoryId": 152, - "InteractionType": "CompleteQuest", - "AetheryteShortcut": "East Shroud - Hawthorne Hut", - "Fly": true, - "SkipConditions": { - "AetheryteShortcutIf": { - "InSameTerritory": true - } - } - } - ] + "DataId": 1006711, + "Position": { + "X": -140.39832, + "Y": 7.8986163, + "Z": -142.99237 + }, + "TerritoryId": 133, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Mih Khetto's Amphitheatre" + ], + "SkipConditions": { + "AethernetShortcutIf": { + "InSameTerritory": true + }, + "AetheryteShortcutIf": { + "InTerritory": [ + 132, + 133 + ] + } + } } - ] -} \ No newline at end of file + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1000617, + "Position": { + "X": 5.722107, + "Y": -7.2786255, + "Z": 270.95447 + }, + "TerritoryId": 152, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "East Shroud - Hawthorne Hut", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + }, + "NextQuestId": 970 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Side Quests/Black Shroud/Gridania/970_Some Seedy Business.json b/QuestPaths/2.x - A Realm Reborn/Side Quests/Black Shroud/Gridania/970_Some Seedy Business.json index 4c67eff7b..845367804 100644 --- a/QuestPaths/2.x - A Realm Reborn/Side Quests/Black Shroud/Gridania/970_Some Seedy Business.json +++ b/QuestPaths/2.x - A Realm Reborn/Side Quests/Black Shroud/Gridania/970_Some Seedy Business.json @@ -1,163 +1,164 @@ { - "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "UcanPatates", - "QuestSequence": [ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "UcanPatates", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ { - "Sequence": 0, - "Steps": [ - { - "DataId": 1000617, - "Position": { - "X": 5.722107, - "Y": -7.2786255, - "Z": 270.95447 - }, - "TerritoryId": 152, - "InteractionType": "AcceptQuest", - "AetheryteShortcut": "East Shroud - Hawthorne Hut", - "Fly": true, - "SkipConditions": { - "AetheryteShortcutIf": { - "InSameTerritory": true - } - } - } - ] - }, - { - "Sequence": 1, - "Steps": [ - { - "DataId": 1000587, - "Position": { - "X": -7.248047, - "Y": -8.407776, - "Z": 268.23828 - }, - "TerritoryId": 152, - "InteractionType": "Interact", - "AetheryteShortcut": "East Shroud - Hawthorne Hut", - "SkipConditions": { - "AetheryteShortcutIf": { - "InSameTerritory": true - } - } - } - ] - }, - { - "Sequence": 2, - "Steps": [ - { - "DataId": 2002191, - "Position": { - "X": 189.6543, - "Y": 7.94989, - "Z": 133.65369 - }, - "TerritoryId": 152, - "InteractionType": "Interact", - "StopDistance": 0.1, - "AetheryteShortcut": "East Shroud - Hawthorne Hut", - "Fly": true, - "SkipConditions": { - "AetheryteShortcutIf": { - "InSameTerritory": true - } - }, - "CompletionQuestVariablesFlags": [ - null, - null, - null, - null, - null, - 64 - ] - }, - { - "DataId": 2002192, - "Position": { - "X": 181.04822, - "Y": 0.07623291, - "Z": 43.289795 - }, - "TerritoryId": 152, - "InteractionType": "Interact", - "StopDistance": 0.1, - "AetheryteShortcut": "East Shroud - Hawthorne Hut", - "Fly": true, - "SkipConditions": { - "AetheryteShortcutIf": { - "InSameTerritory": true - } - }, - "CompletionQuestVariablesFlags": [ - null, - null, - null, - null, - null, - 32 - ] - }, - { - "DataId": 2002190, - "Position": { - "X": 233.66138, - "Y": 6.42395, - "Z": 199.11487 - }, - "TerritoryId": 152, - "InteractionType": "Interact", - "StopDistance": 0.1, - "AetheryteShortcut": "East Shroud - Hawthorne Hut", - "Fly": true, - "SkipConditions": { - "AetheryteShortcutIf": { - "InSameTerritory": true - } - }, - "CompletionQuestVariablesFlags": [ - null, - null, - null, - null, - null, - 128 - ] - } - ] - }, - { - "Sequence": 255, - "Steps": [ - { - "Position": { - "X": 124.74073, - "Y": 6.729165, - "Z": 190.69174 - }, - "TerritoryId": 152, - "InteractionType": "WalkTo", - "AetheryteShortcut": "East Shroud - Hawthorne Hut", - "SkipConditions": { - "AetheryteShortcutIf": { - "InSameTerritory": true - } - } - }, - { - "DataId": 1006715, - "Position": { - "X": -170.67218, - "Y": 56.713512, - "Z": -255.9701 - }, - "TerritoryId": 152, - "InteractionType": "CompleteQuest", - "Fly": true - } - ] + "DataId": 1000617, + "Position": { + "X": 5.722107, + "Y": -7.2786255, + "Z": 270.95447 + }, + "TerritoryId": 152, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "East Shroud - Hawthorne Hut", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } } - ] -} \ No newline at end of file + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1000587, + "Position": { + "X": -7.248047, + "Y": -8.407776, + "Z": 268.23828 + }, + "TerritoryId": 152, + "InteractionType": "Interact", + "AetheryteShortcut": "East Shroud - Hawthorne Hut", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2002191, + "Position": { + "X": 189.6543, + "Y": 7.94989, + "Z": 133.65369 + }, + "TerritoryId": 152, + "InteractionType": "Interact", + "StopDistance": 0.1, + "AetheryteShortcut": "East Shroud - Hawthorne Hut", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + }, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 2002192, + "Position": { + "X": 181.04822, + "Y": 0.07623291, + "Z": 43.289795 + }, + "TerritoryId": 152, + "InteractionType": "Interact", + "StopDistance": 0.1, + "AetheryteShortcut": "East Shroud - Hawthorne Hut", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + }, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, + { + "DataId": 2002190, + "Position": { + "X": 233.66138, + "Y": 6.42395, + "Z": 199.11487 + }, + "TerritoryId": 152, + "InteractionType": "Interact", + "StopDistance": 0.1, + "AetheryteShortcut": "East Shroud - Hawthorne Hut", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + }, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": 124.74073, + "Y": 6.729165, + "Z": 190.69174 + }, + "TerritoryId": 152, + "InteractionType": "WalkTo", + "AetheryteShortcut": "East Shroud - Hawthorne Hut", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + }, + { + "DataId": 1006715, + "Position": { + "X": -170.67218, + "Y": 56.713512, + "Z": -255.9701 + }, + "TerritoryId": 152, + "InteractionType": "CompleteQuest", + "Fly": true, + "NextQuestId": 972 + } + ] + } + ] +} -- 2.45.2 From cd9600d840a5ed5be2c52cb50fba5d43fa0ed4a0 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Thu, 24 Oct 2024 20:24:57 +0200 Subject: [PATCH 172/448] Version bump --- Directory.Build.targets | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Directory.Build.targets b/Directory.Build.targets index eb87dd28e..9b59f0ef5 100644 --- a/Directory.Build.targets +++ b/Directory.Build.targets @@ -1,5 +1,5 @@ - 3.11 + 3.12 -- 2.45.2 From eec08014e01733eb0e55256b4bd3c133cf6045f6 Mon Sep 17 00:00:00 2001 From: UcanPatates Date: Fri, 25 Oct 2024 15:33:45 +0000 Subject: [PATCH 173/448] =?UTF-8?q?Dosyalar=C4=B1=20"QuestPaths/5.x=20-=20?= =?UTF-8?q?Shadowbringers/Class=20Quests/MCH"=20dizinine=20y=C3=BCkle?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../MCH/2907_Release the Hounds.json | 118 ++++++++++++ .../MCH/2908_Snouts Down, Tails Up.json | 176 ++++++++++++++++++ 2 files changed, 294 insertions(+) create mode 100644 QuestPaths/5.x - Shadowbringers/Class Quests/MCH/2907_Release the Hounds.json create mode 100644 QuestPaths/5.x - Shadowbringers/Class Quests/MCH/2908_Snouts Down, Tails Up.json diff --git a/QuestPaths/5.x - Shadowbringers/Class Quests/MCH/2907_Release the Hounds.json b/QuestPaths/5.x - Shadowbringers/Class Quests/MCH/2907_Release the Hounds.json new file mode 100644 index 000000000..c0f8cc4dd --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Class Quests/MCH/2907_Release the Hounds.json @@ -0,0 +1,118 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "UcanPatates", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1012251, + "Position": { + "X": 12.313965, + "Y": -12.020877, + "Z": 40.268433 + }, + "TerritoryId": 418, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ishgard", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1022157, + "Position": { + "X": -323.9643, + "Y": 239.9684, + "Z": 372.91516 + }, + "TerritoryId": 155, + "InteractionType": "Interact", + "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1022163, + "Position": { + "X": -395.95636, + "Y": 240.14958, + "Z": 340.59656 + }, + "TerritoryId": 155, + "InteractionType": "SinglePlayerDuty", + "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 3, + "Steps": [ + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1022167, + "Position": { + "X": -385.36664, + "Y": 232.23338, + "Z": 314.65625 + }, + "TerritoryId": 155, + "InteractionType": "Interact", + "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1012251, + "Position": { + "X": 12.313965, + "Y": -12.020877, + "Z": 40.268433 + }, + "TerritoryId": 418, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ishgard", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + } + ] +} \ No newline at end of file diff --git a/QuestPaths/5.x - Shadowbringers/Class Quests/MCH/2908_Snouts Down, Tails Up.json b/QuestPaths/5.x - Shadowbringers/Class Quests/MCH/2908_Snouts Down, Tails Up.json new file mode 100644 index 000000000..ddb138dad --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Class Quests/MCH/2908_Snouts Down, Tails Up.json @@ -0,0 +1,176 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "UcanPatates", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1012251, + "Position": { + "X": 12.313965, + "Y": -12.020877, + "Z": 40.268433 + }, + "TerritoryId": 418, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ishgard", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1022169, + "Position": { + "X": -58.854065, + "Y": 20.000334, + "Z": 42.83203 + }, + "TerritoryId": 129, + "InteractionType": "Interact", + "AetheryteShortcut": "Limsa Lominsa", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1022170, + "Position": { + "X": -172.6253, + "Y": 41.10136, + "Z": 175.89062 + }, + "TerritoryId": 128, + "InteractionType": "Interact", + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] The Aftcastle" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 129 + ] + }, + "AethernetShortcutIf": { + "InSameTerritory": true + } + }, + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_JOBMCH680_02908_Q1_000_000", + "Answer": "TEXT_JOBMCH680_02908_A1_000_001" + } + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1022173, + "Position": { + "X": 356.5575, + "Y": 351.0862, + "Z": -545.2201 + }, + "TerritoryId": 155, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", + "Fly": true, + "ComplexCombatData": [ + { + "DataId": 7487, + "MinimumKillCount": 2 + } + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1022173, + "Position": { + "X": 356.5575, + "Y": 351.0862, + "Z": -545.2201 + }, + "TerritoryId": 155, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1022151, + "Position": { + "X": 115.098755, + "Y": 24.398598, + "Z": 2.822876 + }, + "TerritoryId": 418, + "InteractionType": "Interact", + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] The Forgotten Knight" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1012251, + "Position": { + "X": 12.313965, + "Y": -12.020877, + "Z": 40.268433 + }, + "TerritoryId": 418, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ishgard", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + } + ] +} \ No newline at end of file -- 2.45.2 From 64e45c72c23189b94414e9db05a1fe3d5b1dc691 Mon Sep 17 00:00:00 2001 From: UcanPatates Date: Fri, 25 Oct 2024 16:41:04 +0000 Subject: [PATCH 174/448] =?UTF-8?q?Dosyalar=C4=B1=20"QuestPaths/5.x=20-=20?= =?UTF-8?q?Shadowbringers/Class=20Quests/MCH"=20dizinine=20y=C3=BCkle?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../MCH/2909_The Mongrel and the Knight.json | 98 +++++++++++++++++++ 1 file changed, 98 insertions(+) create mode 100644 QuestPaths/5.x - Shadowbringers/Class Quests/MCH/2909_The Mongrel and the Knight.json diff --git a/QuestPaths/5.x - Shadowbringers/Class Quests/MCH/2909_The Mongrel and the Knight.json b/QuestPaths/5.x - Shadowbringers/Class Quests/MCH/2909_The Mongrel and the Knight.json new file mode 100644 index 000000000..619e768ef --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Class Quests/MCH/2909_The Mongrel and the Knight.json @@ -0,0 +1,98 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "UcanPatates", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1012251, + "Position": { + "X": 12.313965, + "Y": -12.020877, + "Z": 40.268433 + }, + "TerritoryId": 418, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ishgard", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1014577, + "Position": { + "X": -154.31458, + "Y": 16.999992, + "Z": -53.3609 + }, + "TerritoryId": 418, + "InteractionType": "Interact", + "AetheryteShortcut": "Ishgard", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + }, + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] Skysteel Manufactory" + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1012251, + "Position": { + "X": 12.313965, + "Y": -12.020877, + "Z": 40.268433 + }, + "TerritoryId": 418, + "InteractionType": "SinglePlayerDuty", + "AetheryteShortcut": "Ishgard", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + }, + "AethernetShortcut": [ + "[Ishgard] Skysteel Manufactory", + "[Ishgard] Aetheryte Plaza" + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1012251, + "Position": { + "X": 12.313965, + "Y": -12.020877, + "Z": 40.268433 + }, + "TerritoryId": 418, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ishgard", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + } + ] +} \ No newline at end of file -- 2.45.2 From d5a9a6b06c67dc021829da6ced0f29988d853f77 Mon Sep 17 00:00:00 2001 From: UcanPatates Date: Fri, 25 Oct 2024 20:33:25 +0000 Subject: [PATCH 175/448] QuestPaths/5.x - Shadowbringers/Class Quests/MCH/2907_Release the Hounds.json Sil --- .../MCH/2907_Release the Hounds.json | 118 ------------------ 1 file changed, 118 deletions(-) delete mode 100644 QuestPaths/5.x - Shadowbringers/Class Quests/MCH/2907_Release the Hounds.json diff --git a/QuestPaths/5.x - Shadowbringers/Class Quests/MCH/2907_Release the Hounds.json b/QuestPaths/5.x - Shadowbringers/Class Quests/MCH/2907_Release the Hounds.json deleted file mode 100644 index c0f8cc4dd..000000000 --- a/QuestPaths/5.x - Shadowbringers/Class Quests/MCH/2907_Release the Hounds.json +++ /dev/null @@ -1,118 +0,0 @@ -{ - "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "UcanPatates", - "QuestSequence": [ - { - "Sequence": 0, - "Steps": [ - { - "DataId": 1012251, - "Position": { - "X": 12.313965, - "Y": -12.020877, - "Z": 40.268433 - }, - "TerritoryId": 418, - "InteractionType": "AcceptQuest", - "AetheryteShortcut": "Ishgard", - "SkipConditions": { - "AetheryteShortcutIf": { - "InSameTerritory": true - } - } - } - ] - }, - { - "Sequence": 1, - "Steps": [ - { - "DataId": 1022157, - "Position": { - "X": -323.9643, - "Y": 239.9684, - "Z": 372.91516 - }, - "TerritoryId": 155, - "InteractionType": "Interact", - "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", - "Fly": true, - "SkipConditions": { - "AetheryteShortcutIf": { - "InSameTerritory": true - } - } - } - ] - }, - { - "Sequence": 2, - "Steps": [ - { - "DataId": 1022163, - "Position": { - "X": -395.95636, - "Y": 240.14958, - "Z": 340.59656 - }, - "TerritoryId": 155, - "InteractionType": "SinglePlayerDuty", - "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", - "Fly": true, - "SkipConditions": { - "AetheryteShortcutIf": { - "InSameTerritory": true - } - } - } - ] - }, - { - "Sequence": 3, - "Steps": [ - ] - }, - { - "Sequence": 4, - "Steps": [ - { - "DataId": 1022167, - "Position": { - "X": -385.36664, - "Y": 232.23338, - "Z": 314.65625 - }, - "TerritoryId": 155, - "InteractionType": "Interact", - "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", - "SkipConditions": { - "AetheryteShortcutIf": { - "InSameTerritory": true - } - } - } - ] - }, - { - "Sequence": 255, - "Steps": [ - { - "DataId": 1012251, - "Position": { - "X": 12.313965, - "Y": -12.020877, - "Z": 40.268433 - }, - "TerritoryId": 418, - "InteractionType": "CompleteQuest", - "AetheryteShortcut": "Ishgard", - "SkipConditions": { - "AetheryteShortcutIf": { - "InSameTerritory": true - } - } - } - ] - } - ] -} \ No newline at end of file -- 2.45.2 From d41febd9f30ab8b57b856328a25224bb479249c2 Mon Sep 17 00:00:00 2001 From: UcanPatates Date: Fri, 25 Oct 2024 20:33:30 +0000 Subject: [PATCH 176/448] QuestPaths/5.x - Shadowbringers/Class Quests/MCH/2908_Snouts Down, Tails Up.json Sil --- .../MCH/2908_Snouts Down, Tails Up.json | 176 ------------------ 1 file changed, 176 deletions(-) delete mode 100644 QuestPaths/5.x - Shadowbringers/Class Quests/MCH/2908_Snouts Down, Tails Up.json diff --git a/QuestPaths/5.x - Shadowbringers/Class Quests/MCH/2908_Snouts Down, Tails Up.json b/QuestPaths/5.x - Shadowbringers/Class Quests/MCH/2908_Snouts Down, Tails Up.json deleted file mode 100644 index ddb138dad..000000000 --- a/QuestPaths/5.x - Shadowbringers/Class Quests/MCH/2908_Snouts Down, Tails Up.json +++ /dev/null @@ -1,176 +0,0 @@ -{ - "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "UcanPatates", - "QuestSequence": [ - { - "Sequence": 0, - "Steps": [ - { - "DataId": 1012251, - "Position": { - "X": 12.313965, - "Y": -12.020877, - "Z": 40.268433 - }, - "TerritoryId": 418, - "InteractionType": "AcceptQuest", - "AetheryteShortcut": "Ishgard", - "SkipConditions": { - "AetheryteShortcutIf": { - "InSameTerritory": true - } - } - } - ] - }, - { - "Sequence": 1, - "Steps": [ - { - "DataId": 1022169, - "Position": { - "X": -58.854065, - "Y": 20.000334, - "Z": 42.83203 - }, - "TerritoryId": 129, - "InteractionType": "Interact", - "AetheryteShortcut": "Limsa Lominsa", - "SkipConditions": { - "AetheryteShortcutIf": { - "InSameTerritory": true - } - } - } - ] - }, - { - "Sequence": 2, - "Steps": [ - { - "DataId": 1022170, - "Position": { - "X": -172.6253, - "Y": 41.10136, - "Z": 175.89062 - }, - "TerritoryId": 128, - "InteractionType": "Interact", - "AetheryteShortcut": "Limsa Lominsa", - "AethernetShortcut": [ - "[Limsa Lominsa] Aetheryte Plaza", - "[Limsa Lominsa] The Aftcastle" - ], - "SkipConditions": { - "AetheryteShortcutIf": { - "InSameTerritory": true, - "InTerritory": [ - 129 - ] - }, - "AethernetShortcutIf": { - "InSameTerritory": true - } - }, - "DialogueChoices": [ - { - "Type": "List", - "Prompt": "TEXT_JOBMCH680_02908_Q1_000_000", - "Answer": "TEXT_JOBMCH680_02908_A1_000_001" - } - ] - } - ] - }, - { - "Sequence": 3, - "Steps": [ - { - "DataId": 1022173, - "Position": { - "X": 356.5575, - "Y": 351.0862, - "Z": -545.2201 - }, - "TerritoryId": 155, - "InteractionType": "Combat", - "EnemySpawnType": "AfterInteraction", - "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", - "Fly": true, - "ComplexCombatData": [ - { - "DataId": 7487, - "MinimumKillCount": 2 - } - ], - "SkipConditions": { - "AetheryteShortcutIf": { - "InSameTerritory": true - } - } - } - ] - }, - { - "Sequence": 4, - "Steps": [ - { - "DataId": 1022173, - "Position": { - "X": 356.5575, - "Y": 351.0862, - "Z": -545.2201 - }, - "TerritoryId": 155, - "InteractionType": "Interact" - } - ] - }, - { - "Sequence": 5, - "Steps": [ - { - "DataId": 1022151, - "Position": { - "X": 115.098755, - "Y": 24.398598, - "Z": 2.822876 - }, - "TerritoryId": 418, - "InteractionType": "Interact", - "AetheryteShortcut": "Ishgard", - "AethernetShortcut": [ - "[Ishgard] Aetheryte Plaza", - "[Ishgard] The Forgotten Knight" - ], - "SkipConditions": { - "AetheryteShortcutIf": { - "InSameTerritory": true - } - } - } - ] - }, - { - "Sequence": 255, - "Steps": [ - { - "DataId": 1012251, - "Position": { - "X": 12.313965, - "Y": -12.020877, - "Z": 40.268433 - }, - "TerritoryId": 418, - "InteractionType": "CompleteQuest", - "AetheryteShortcut": "Ishgard", - "SkipConditions": { - "AetheryteShortcutIf": { - "InSameTerritory": true - } - } - } - ] - } - ] -} \ No newline at end of file -- 2.45.2 From 6fcfe77b2114fc840da9e293714c56e5230adb4b Mon Sep 17 00:00:00 2001 From: UcanPatates Date: Fri, 25 Oct 2024 20:33:34 +0000 Subject: [PATCH 177/448] QuestPaths/5.x - Shadowbringers/Class Quests/MCH/2909_The Mongrel and the Knight.json Sil --- .../MCH/2909_The Mongrel and the Knight.json | 98 ------------------- 1 file changed, 98 deletions(-) delete mode 100644 QuestPaths/5.x - Shadowbringers/Class Quests/MCH/2909_The Mongrel and the Knight.json diff --git a/QuestPaths/5.x - Shadowbringers/Class Quests/MCH/2909_The Mongrel and the Knight.json b/QuestPaths/5.x - Shadowbringers/Class Quests/MCH/2909_The Mongrel and the Knight.json deleted file mode 100644 index 619e768ef..000000000 --- a/QuestPaths/5.x - Shadowbringers/Class Quests/MCH/2909_The Mongrel and the Knight.json +++ /dev/null @@ -1,98 +0,0 @@ -{ - "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "UcanPatates", - "QuestSequence": [ - { - "Sequence": 0, - "Steps": [ - { - "DataId": 1012251, - "Position": { - "X": 12.313965, - "Y": -12.020877, - "Z": 40.268433 - }, - "TerritoryId": 418, - "InteractionType": "AcceptQuest", - "AetheryteShortcut": "Ishgard", - "SkipConditions": { - "AetheryteShortcutIf": { - "InSameTerritory": true - } - } - } - ] - }, - { - "Sequence": 1, - "Steps": [ - { - "DataId": 1014577, - "Position": { - "X": -154.31458, - "Y": 16.999992, - "Z": -53.3609 - }, - "TerritoryId": 418, - "InteractionType": "Interact", - "AetheryteShortcut": "Ishgard", - "SkipConditions": { - "AetheryteShortcutIf": { - "InSameTerritory": true - } - }, - "AethernetShortcut": [ - "[Ishgard] Aetheryte Plaza", - "[Ishgard] Skysteel Manufactory" - ] - } - ] - }, - { - "Sequence": 2, - "Steps": [ - { - "DataId": 1012251, - "Position": { - "X": 12.313965, - "Y": -12.020877, - "Z": 40.268433 - }, - "TerritoryId": 418, - "InteractionType": "SinglePlayerDuty", - "AetheryteShortcut": "Ishgard", - "SkipConditions": { - "AetheryteShortcutIf": { - "InSameTerritory": true - } - }, - "AethernetShortcut": [ - "[Ishgard] Skysteel Manufactory", - "[Ishgard] Aetheryte Plaza" - ] - } - ] - }, - { - "Sequence": 255, - "Steps": [ - { - "DataId": 1012251, - "Position": { - "X": 12.313965, - "Y": -12.020877, - "Z": 40.268433 - }, - "TerritoryId": 418, - "InteractionType": "CompleteQuest", - "AetheryteShortcut": "Ishgard", - "SkipConditions": { - "AetheryteShortcutIf": { - "InSameTerritory": true - } - } - } - ] - } - ] -} \ No newline at end of file -- 2.45.2 From 55ec23f6ec0c03bef7c9eac3e3d0623b751f6db9 Mon Sep 17 00:00:00 2001 From: UcanPatates Date: Fri, 25 Oct 2024 20:34:38 +0000 Subject: [PATCH 178/448] =?UTF-8?q?Dosyalar=C4=B1=20"QuestPaths/4.x=20-=20?= =?UTF-8?q?Stormblood/Class=20Quests/MCH"=20dizinine=20y=C3=BCkle?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../MCH/2907_Release the Hounds.json | 118 ++++++++++++ .../MCH/2908_Snouts Down, Tails Up.json | 176 ++++++++++++++++++ .../MCH/2909_The Mongrel and the Knight.json | 98 ++++++++++ 3 files changed, 392 insertions(+) create mode 100644 QuestPaths/4.x - Stormblood/Class Quests/MCH/2907_Release the Hounds.json create mode 100644 QuestPaths/4.x - Stormblood/Class Quests/MCH/2908_Snouts Down, Tails Up.json create mode 100644 QuestPaths/4.x - Stormblood/Class Quests/MCH/2909_The Mongrel and the Knight.json diff --git a/QuestPaths/4.x - Stormblood/Class Quests/MCH/2907_Release the Hounds.json b/QuestPaths/4.x - Stormblood/Class Quests/MCH/2907_Release the Hounds.json new file mode 100644 index 000000000..c0f8cc4dd --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/MCH/2907_Release the Hounds.json @@ -0,0 +1,118 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "UcanPatates", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1012251, + "Position": { + "X": 12.313965, + "Y": -12.020877, + "Z": 40.268433 + }, + "TerritoryId": 418, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ishgard", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1022157, + "Position": { + "X": -323.9643, + "Y": 239.9684, + "Z": 372.91516 + }, + "TerritoryId": 155, + "InteractionType": "Interact", + "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1022163, + "Position": { + "X": -395.95636, + "Y": 240.14958, + "Z": 340.59656 + }, + "TerritoryId": 155, + "InteractionType": "SinglePlayerDuty", + "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 3, + "Steps": [ + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1022167, + "Position": { + "X": -385.36664, + "Y": 232.23338, + "Z": 314.65625 + }, + "TerritoryId": 155, + "InteractionType": "Interact", + "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1012251, + "Position": { + "X": 12.313965, + "Y": -12.020877, + "Z": 40.268433 + }, + "TerritoryId": 418, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ishgard", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + } + ] +} \ No newline at end of file diff --git a/QuestPaths/4.x - Stormblood/Class Quests/MCH/2908_Snouts Down, Tails Up.json b/QuestPaths/4.x - Stormblood/Class Quests/MCH/2908_Snouts Down, Tails Up.json new file mode 100644 index 000000000..ddb138dad --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/MCH/2908_Snouts Down, Tails Up.json @@ -0,0 +1,176 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "UcanPatates", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1012251, + "Position": { + "X": 12.313965, + "Y": -12.020877, + "Z": 40.268433 + }, + "TerritoryId": 418, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ishgard", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1022169, + "Position": { + "X": -58.854065, + "Y": 20.000334, + "Z": 42.83203 + }, + "TerritoryId": 129, + "InteractionType": "Interact", + "AetheryteShortcut": "Limsa Lominsa", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1022170, + "Position": { + "X": -172.6253, + "Y": 41.10136, + "Z": 175.89062 + }, + "TerritoryId": 128, + "InteractionType": "Interact", + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] The Aftcastle" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 129 + ] + }, + "AethernetShortcutIf": { + "InSameTerritory": true + } + }, + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_JOBMCH680_02908_Q1_000_000", + "Answer": "TEXT_JOBMCH680_02908_A1_000_001" + } + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1022173, + "Position": { + "X": 356.5575, + "Y": 351.0862, + "Z": -545.2201 + }, + "TerritoryId": 155, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", + "Fly": true, + "ComplexCombatData": [ + { + "DataId": 7487, + "MinimumKillCount": 2 + } + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1022173, + "Position": { + "X": 356.5575, + "Y": 351.0862, + "Z": -545.2201 + }, + "TerritoryId": 155, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1022151, + "Position": { + "X": 115.098755, + "Y": 24.398598, + "Z": 2.822876 + }, + "TerritoryId": 418, + "InteractionType": "Interact", + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] The Forgotten Knight" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1012251, + "Position": { + "X": 12.313965, + "Y": -12.020877, + "Z": 40.268433 + }, + "TerritoryId": 418, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ishgard", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + } + ] +} \ No newline at end of file diff --git a/QuestPaths/4.x - Stormblood/Class Quests/MCH/2909_The Mongrel and the Knight.json b/QuestPaths/4.x - Stormblood/Class Quests/MCH/2909_The Mongrel and the Knight.json new file mode 100644 index 000000000..619e768ef --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/MCH/2909_The Mongrel and the Knight.json @@ -0,0 +1,98 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "UcanPatates", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1012251, + "Position": { + "X": 12.313965, + "Y": -12.020877, + "Z": 40.268433 + }, + "TerritoryId": 418, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ishgard", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1014577, + "Position": { + "X": -154.31458, + "Y": 16.999992, + "Z": -53.3609 + }, + "TerritoryId": 418, + "InteractionType": "Interact", + "AetheryteShortcut": "Ishgard", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + }, + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] Skysteel Manufactory" + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1012251, + "Position": { + "X": 12.313965, + "Y": -12.020877, + "Z": 40.268433 + }, + "TerritoryId": 418, + "InteractionType": "SinglePlayerDuty", + "AetheryteShortcut": "Ishgard", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + }, + "AethernetShortcut": [ + "[Ishgard] Skysteel Manufactory", + "[Ishgard] Aetheryte Plaza" + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1012251, + "Position": { + "X": 12.313965, + "Y": -12.020877, + "Z": 40.268433 + }, + "TerritoryId": 418, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ishgard", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + } + ] +} \ No newline at end of file -- 2.45.2 From 23256c6abf73e25bda124ef51ed4a5737be80982 Mon Sep 17 00:00:00 2001 From: AnimaMachinae Date: Sat, 26 Oct 2024 02:35:48 +0000 Subject: [PATCH 179/448] Update QuestPaths/3.x - Heavensward/Class Quests/DRG/1689_Sky's the Limit.json --- .../DRG/1689_Sky's the Limit.json | 214 +++++++++--------- 1 file changed, 107 insertions(+), 107 deletions(-) diff --git a/QuestPaths/3.x - Heavensward/Class Quests/DRG/1689_Sky's the Limit.json b/QuestPaths/3.x - Heavensward/Class Quests/DRG/1689_Sky's the Limit.json index 9f0973051..20a0a6a75 100644 --- a/QuestPaths/3.x - Heavensward/Class Quests/DRG/1689_Sky's the Limit.json +++ b/QuestPaths/3.x - Heavensward/Class Quests/DRG/1689_Sky's the Limit.json @@ -1,108 +1,108 @@ -{ - "schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "AnimaMachinae", - "QuestSequence": [ - { - "Sequence": 0, - "Steps": [ - { - "Position": { - "X": 215.65454, - "Y": 222.1, - "Z": 345.1806 - }, - "TerritoryId": 155, - "InteractionType": "WalkTo", - "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", - "Land": true, - "Fly": true, - "SkipConditions": { - "AetheryteShortcutIf": { - "InSameTerritory": true - } - }, - "$": "Alberic" - }, - { - "DataId": 1006748, - "Position": { - "X": 217.88354, - "Y": 222, - "Z": 345.3269 - }, - "TerritoryId": 155, - "InteractionType": "AcceptQuest" - } - ] - }, - { - "Sequence": 1, - "Steps": [ - { - "DataId": 1013437, - "Position": { - "X": -580.5906, - "Y": 206.85785, - "Z": -407.64478 - }, - "TerritoryId": 155, - "InteractionType": "Combat", - "Land": true, - "Fly": true, - "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", - "EnemySpawnType": "AutoOnEnterArea", - "KillEnemyDataIds": [ - 4478 - ], - "CompletionQuestVariablesFlags": [ - 1, - null, - null, - null, - null, - null - ] - }, - { - "DataId": 1013437, - "Position": { - "X": -580.5906, - "Y": 206.85785, - "Z": -407.64478 - }, - "TerritoryId": 155, - "InteractionType": "Interact" - } - ] - }, - { - "Sequence": 255, - "Steps": [ - { - "Position": { - "X": 215.65454, - "Y": 222.1, - "Z": 345.1806 - }, - "TerritoryId": 155, - "InteractionType": "WalkTo", - "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", - "Land": true, - "Fly": true, - "$": "Alberic" - }, - { - "DataId": 1006748, - "Position": { - "X": 217.88354, - "Y": 222, - "Z": 345.3269 - }, - "TerritoryId": 155, - "InteractionType": "CompleteQuest", - "NextQuestId": 1690 - } - ] - } - ] +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "AnimaMachinae", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "Position": { + "X": 215.65454, + "Y": 222.1, + "Z": 345.1806 + }, + "TerritoryId": 155, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", + "Land": true, + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + }, + "$": "Alberic" + }, + { + "DataId": 1006748, + "Position": { + "X": 217.88354, + "Y": 222, + "Z": 345.3269 + }, + "TerritoryId": 155, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1013437, + "Position": { + "X": -580.5906, + "Y": 206.85785, + "Z": -407.64478 + }, + "TerritoryId": 155, + "InteractionType": "Combat", + "Land": true, + "Fly": true, + "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [ + 4478 + ], + "CompletionQuestVariablesFlags": [ + 1, + null, + null, + null, + null, + null + ] + }, + { + "DataId": 1013437, + "Position": { + "X": -580.5906, + "Y": 206.85785, + "Z": -407.64478 + }, + "TerritoryId": 155, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": 215.65454, + "Y": 222.1, + "Z": 345.1806 + }, + "TerritoryId": 155, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", + "Land": true, + "Fly": true, + "$": "Alberic" + }, + { + "DataId": 1006748, + "Position": { + "X": 217.88354, + "Y": 222, + "Z": 345.3269 + }, + "TerritoryId": 155, + "InteractionType": "CompleteQuest", + "NextQuestId": 1690 + } + ] + } + ] } \ No newline at end of file -- 2.45.2 From 9a550fe8e0624b4a7c7f9b40c368765a5e1f0680 Mon Sep 17 00:00:00 2001 From: AnimaMachinae Date: Sat, 26 Oct 2024 02:36:00 +0000 Subject: [PATCH 180/448] Update QuestPaths/3.x - Heavensward/Class Quests/DRG/1690_Days of Azure.json --- .../Class Quests/DRG/1690_Days of Azure.json | 222 +++++++++--------- 1 file changed, 111 insertions(+), 111 deletions(-) diff --git a/QuestPaths/3.x - Heavensward/Class Quests/DRG/1690_Days of Azure.json b/QuestPaths/3.x - Heavensward/Class Quests/DRG/1690_Days of Azure.json index fb0f7c955..944608335 100644 --- a/QuestPaths/3.x - Heavensward/Class Quests/DRG/1690_Days of Azure.json +++ b/QuestPaths/3.x - Heavensward/Class Quests/DRG/1690_Days of Azure.json @@ -1,112 +1,112 @@ -{ - "schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "AnimaMachinae", - "QuestSequence": [ - { - "Sequence": 0, - "Steps": [ - { - "Position": { - "X": 215.65454, - "Y": 222.1, - "Z": 345.1806 - }, - "TerritoryId": 155, - "InteractionType": "WalkTo", - "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", - "Land": true, - "Fly": true, - "SkipConditions": { - "AetheryteShortcutIf": { - "InSameTerritory": true - } - }, - "$": "Alberic" - }, - { - "DataId": 1006748, - "Position": { - "X": 217.88354, - "Y": 222, - "Z": 345.3269 - }, - "TerritoryId": 155, - "InteractionType": "AcceptQuest" - } - ] - }, - { - "Sequence": 1, - "Steps": [ - { - "DataId": 1013441, - "Position": { - "X": 468.58923, - "Y": 166.28001, - "Z": 256.73303 - }, - "TerritoryId": 397, - "InteractionType": "Combat", - "AetheryteShortcut": "Coerthas Western Highlands - Falcon's Nest", - "Land": true, - "Fly": true, - "EnemySpawnType": "AfterInteraction", - "KillEnemyDataIds": [ - 4504 - ] - } - ] - }, - { - "Sequence": 2, - "Steps": [ - { - "DataId": 1013441, - "Position": { - "X": 468.58923, - "Y": 166.28001, - "Z": 256.73303 - }, - "TerritoryId": 397, - "InteractionType": "Interact" - } - ] - }, - { - "Sequence": 3, - "Steps": [ - { - "DataId": 2006182, - "Position": { - "X": 197.40588, - "Y": 184.00854, - "Z": -102.80011 - }, - "TerritoryId": 397, - "InteractionType": "Combat", - "Land": true, - "Fly": true, - "EnemySpawnType": "AfterInteraction", - "KillEnemyDataIds": [ - 4486 - ] - } - ] - }, - { - "Sequence": 255, - "Steps": [ - { - "DataId": 1013445, - "Position": { - "X": 202.19727, - "Y": 183.6595, - "Z": -96.11658 - }, - "TerritoryId": 397, - "InteractionType": "CompleteQuest" - } - ] - } - ] +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "AnimaMachinae", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "Position": { + "X": 215.65454, + "Y": 222.1, + "Z": 345.1806 + }, + "TerritoryId": 155, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", + "Land": true, + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + }, + "$": "Alberic" + }, + { + "DataId": 1006748, + "Position": { + "X": 217.88354, + "Y": 222, + "Z": 345.3269 + }, + "TerritoryId": 155, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1013441, + "Position": { + "X": 468.58923, + "Y": 166.28001, + "Z": 256.73303 + }, + "TerritoryId": 397, + "InteractionType": "Combat", + "AetheryteShortcut": "Coerthas Western Highlands - Falcon's Nest", + "Land": true, + "Fly": true, + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 4504 + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1013441, + "Position": { + "X": 468.58923, + "Y": 166.28001, + "Z": 256.73303 + }, + "TerritoryId": 397, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2006182, + "Position": { + "X": 197.40588, + "Y": 184.00854, + "Z": -102.80011 + }, + "TerritoryId": 397, + "InteractionType": "Combat", + "Land": true, + "Fly": true, + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 4486 + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1013445, + "Position": { + "X": 202.19727, + "Y": 183.6595, + "Z": -96.11658 + }, + "TerritoryId": 397, + "InteractionType": "CompleteQuest" + } + ] + } + ] } \ No newline at end of file -- 2.45.2 From 23f93f7de5018c7bc67f21f8af095a8143184fa6 Mon Sep 17 00:00:00 2001 From: AnimaMachinae Date: Sat, 26 Oct 2024 02:36:13 +0000 Subject: [PATCH 181/448] Update QuestPaths/3.x - Heavensward/Class Quests/DRG/1691_Heart of Justice.json --- .../DRG/1691_Heart of Justice.json | 160 +++++++++--------- 1 file changed, 80 insertions(+), 80 deletions(-) diff --git a/QuestPaths/3.x - Heavensward/Class Quests/DRG/1691_Heart of Justice.json b/QuestPaths/3.x - Heavensward/Class Quests/DRG/1691_Heart of Justice.json index 00cf0dafd..87848800c 100644 --- a/QuestPaths/3.x - Heavensward/Class Quests/DRG/1691_Heart of Justice.json +++ b/QuestPaths/3.x - Heavensward/Class Quests/DRG/1691_Heart of Justice.json @@ -1,81 +1,81 @@ -{ - "schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "AnimaMachinae", - "QuestSequence": [ - { - "Sequence": 0, - "Steps": [ - { - "DataId": 1013445, - "Position": { - "X": 202.19727, - "Y": 183.6595, - "Z": -96.11658 - }, - "TerritoryId": 397, - "InteractionType": "AcceptQuest", - "AetheryteShortcut": "Coerthas Western Highlands - Falcon's Nest", - "SkipConditions": { - "AetheryteShortcutIf": { - "InSameTerritory": true - } - } - } - ] - }, - { - "Sequence": 1, - "Steps": [ - { - "DataId": 1013448, - "Position": { - "X": 83.26843, - "Y": 23.979126, - "Z": 2.3345947 - }, - "TerritoryId": 418, - "InteractionType": "Interact", - "AetheryteShortcut": "Ishgard", - "AethernetShortcut": [ - "[Ishgard] Aetheryte Plaza", - "[Ishgard] The Forgotten Knight" - ], - "SkipConditions": { - "AetheryteShortcutIf": { - "InSameTerritory": true - } - } - } - ] - }, - { - "Sequence": 255, - "Steps": [ - { - "Position": { - "X": 215.65454, - "Y": 222.1, - "Z": 345.1806 - }, - "TerritoryId": 155, - "InteractionType": "WalkTo", - "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", - "Land": true, - "Fly": true, - "$": "Alberic" - }, - { - "DataId": 1006748, - "Position": { - "X": 217.88354, - "Y": 222, - "Z": 345.3269 - }, - "TerritoryId": 155, - "InteractionType": "CompleteQuest", - "NextQuestId": 1690 - } - ] - } - ] +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "AnimaMachinae", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1013445, + "Position": { + "X": 202.19727, + "Y": 183.6595, + "Z": -96.11658 + }, + "TerritoryId": 397, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Coerthas Western Highlands - Falcon's Nest", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1013448, + "Position": { + "X": 83.26843, + "Y": 23.979126, + "Z": 2.3345947 + }, + "TerritoryId": 418, + "InteractionType": "Interact", + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] The Forgotten Knight" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": 215.65454, + "Y": 222.1, + "Z": 345.1806 + }, + "TerritoryId": 155, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", + "Land": true, + "Fly": true, + "$": "Alberic" + }, + { + "DataId": 1006748, + "Position": { + "X": 217.88354, + "Y": 222, + "Z": 345.3269 + }, + "TerritoryId": 155, + "InteractionType": "CompleteQuest", + "NextQuestId": 1690 + } + ] + } + ] } \ No newline at end of file -- 2.45.2 From b2c42a8c49e208653169965d0bab0a71fff2f49d Mon Sep 17 00:00:00 2001 From: AnimaMachinae Date: Sat, 26 Oct 2024 02:36:24 +0000 Subject: [PATCH 182/448] Update QuestPaths/3.x - Heavensward/Class Quests/DRG/1692_Sworn Upon a Lance.json --- .../DRG/1692_Sworn Upon a Lance.json | 290 +++++++++--------- 1 file changed, 145 insertions(+), 145 deletions(-) diff --git a/QuestPaths/3.x - Heavensward/Class Quests/DRG/1692_Sworn Upon a Lance.json b/QuestPaths/3.x - Heavensward/Class Quests/DRG/1692_Sworn Upon a Lance.json index 53d969e5e..8aba67192 100644 --- a/QuestPaths/3.x - Heavensward/Class Quests/DRG/1692_Sworn Upon a Lance.json +++ b/QuestPaths/3.x - Heavensward/Class Quests/DRG/1692_Sworn Upon a Lance.json @@ -1,146 +1,146 @@ -{ - "schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "AnimaMachinae", - "QuestSequence": [ - { - "Sequence": 0, - "Steps": [ - { - "Position": { - "X": 215.65454, - "Y": 222.1, - "Z": 345.1806 - }, - "TerritoryId": 155, - "InteractionType": "WalkTo", - "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", - "Land": true, - "Fly": true, - "SkipConditions": { - "AetheryteShortcutIf": { - "InSameTerritory": true - } - }, - "$": "Alberic" - }, - { - "DataId": 1006748, - "Position": { - "X": 217.88354, - "Y": 222, - "Z": 345.3269 - }, - "TerritoryId": 155, - "InteractionType": "AcceptQuest" - } - ] - }, - { - "Sequence": 1, - "Steps": [ - { - "DataId": 1013450, - "Position": { - "X": 84.30603, - "Y": 23.979128, - "Z": -12.802368 - }, - "TerritoryId": 418, - "InteractionType": "Interact", - "AetheryteShortcut": "Ishgard", - "AethernetShortcut": [ - "[Ishgard] Aetheryte Plaza", - "[Ishgard] The Forgotten Knight" - ], - "SkipConditions": { - "AetheryteShortcutIf": { - "InSameTerritory": true - } - } - } - ] - }, - { - "Sequence": 2, - "Steps": [ - { - "DataId": 1013456, - "Position": { - "X": 489.82983, - "Y": 164.7244, - "Z": 266.25464 - }, - "TerritoryId": 397, - "InteractionType": "SinglePlayerDuty", - "AetheryteShortcut": "Coerthas Western Highlands - Falcon's Nest", - "Land": true, - "Fly": true - } - ] - }, - { - "Sequence": 3, - "Steps": [ - { - "DataId": 1013457, - "Position": { - "X": 492.88147, - "Y": 164.6694, - "Z": 265.06445 - }, - "TerritoryId": 397, - "InteractionType": "Interact" - } - ] - }, - { - "Sequence": 4, - "Steps": [ - { - "DataId": 1013464, - "Position": { - "X": 133.47058, - "Y": 24.400866, - "Z": -6.149414 - }, - "TerritoryId": 418, - "InteractionType": "Interact", - "AetheryteShortcut": "Ishgard", - "AethernetShortcut": [ - "[Ishgard] Aetheryte Plaza", - "[Ishgard] The Forgotten Knight" - ] - } - ] - }, - { - "Sequence": 255, - "Steps": [ - { - "Position": { - "X": 215.65454, - "Y": 222.1, - "Z": 345.1806 - }, - "TerritoryId": 155, - "InteractionType": "WalkTo", - "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", - "Land": true, - "Fly": true, - "$": "Alberic" - }, - { - "DataId": 1006748, - "Position": { - "X": 217.88354, - "Y": 222, - "Z": 345.3269 - }, - "TerritoryId": 155, - "InteractionType": "CompleteQuest", - "NextQuestId": 1690 - } - ] - } - ] +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "AnimaMachinae", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "Position": { + "X": 215.65454, + "Y": 222.1, + "Z": 345.1806 + }, + "TerritoryId": 155, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", + "Land": true, + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + }, + "$": "Alberic" + }, + { + "DataId": 1006748, + "Position": { + "X": 217.88354, + "Y": 222, + "Z": 345.3269 + }, + "TerritoryId": 155, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1013450, + "Position": { + "X": 84.30603, + "Y": 23.979128, + "Z": -12.802368 + }, + "TerritoryId": 418, + "InteractionType": "Interact", + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] The Forgotten Knight" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1013456, + "Position": { + "X": 489.82983, + "Y": 164.7244, + "Z": 266.25464 + }, + "TerritoryId": 397, + "InteractionType": "SinglePlayerDuty", + "AetheryteShortcut": "Coerthas Western Highlands - Falcon's Nest", + "Land": true, + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1013457, + "Position": { + "X": 492.88147, + "Y": 164.6694, + "Z": 265.06445 + }, + "TerritoryId": 397, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1013464, + "Position": { + "X": 133.47058, + "Y": 24.400866, + "Z": -6.149414 + }, + "TerritoryId": 418, + "InteractionType": "Interact", + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] The Forgotten Knight" + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": 215.65454, + "Y": 222.1, + "Z": 345.1806 + }, + "TerritoryId": 155, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", + "Land": true, + "Fly": true, + "$": "Alberic" + }, + { + "DataId": 1006748, + "Position": { + "X": 217.88354, + "Y": 222, + "Z": 345.3269 + }, + "TerritoryId": 155, + "InteractionType": "CompleteQuest", + "NextQuestId": 1690 + } + ] + } + ] } \ No newline at end of file -- 2.45.2 From 1ffffd0e833e90d8492b1426c3481efd66eb391d Mon Sep 17 00:00:00 2001 From: AnimaMachinae Date: Sat, 26 Oct 2024 02:36:39 +0000 Subject: [PATCH 183/448] Update QuestPaths/3.x - Heavensward/Class Quests/DRG/1693_Dragoon's Errand.json --- .../DRG/1693_Dragoon's Errand.json | 314 +++++++++--------- 1 file changed, 157 insertions(+), 157 deletions(-) diff --git a/QuestPaths/3.x - Heavensward/Class Quests/DRG/1693_Dragoon's Errand.json b/QuestPaths/3.x - Heavensward/Class Quests/DRG/1693_Dragoon's Errand.json index d0c8f5e04..bf8e87a2b 100644 --- a/QuestPaths/3.x - Heavensward/Class Quests/DRG/1693_Dragoon's Errand.json +++ b/QuestPaths/3.x - Heavensward/Class Quests/DRG/1693_Dragoon's Errand.json @@ -1,158 +1,158 @@ -{ - "schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "AnimaMachinae", - "QuestSequence": [ - { - "Sequence": 0, - "Steps": [ - { - "Position": { - "X": 215.65454, - "Y": 222.1, - "Z": 345.1806 - }, - "TerritoryId": 155, - "InteractionType": "WalkTo", - "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", - "Land": true, - "Fly": true, - "SkipConditions": { - "AetheryteShortcutIf": { - "InSameTerritory": true - } - }, - "$": "Alberic" - }, - { - "DataId": 1006748, - "Position": { - "X": 217.88354, - "Y": 222, - "Z": 345.3269 - }, - "TerritoryId": 155, - "InteractionType": "AcceptQuest" - } - ] - }, - { - "Sequence": 1, - "Steps": [ - { - "Position": { - "X": -48.009445, - "Y": 98.00955, - "Z": 106.47891 - }, - "TerritoryId": 397, - "InteractionType": "WalkTo", - "AetheryteShortcut": "Coerthas Western Highlands - Falcon's Nest", - "Fly": true, - "Land": true - }, - { - "DataId": 1013467, - "Position": { - "X": -51.10254, - "Y": 98.63026, - "Z": 105.1499 - }, - "TerritoryId": 397, - "InteractionType": "Interact" - } - ] - }, - { - "Sequence": 2, - "Steps": [ - { - "DataId": 1013466, - "Position": { - "X": -155.5047, - "Y": 175.79733, - "Z": 693.26306 - }, - "TerritoryId": 397, - "InteractionType": "Combat", - "Fly": true, - "Land": true, - "EnemySpawnType": "AutoOnEnterArea", - "KillEnemyDataIds": [ - 4482, - 5049 - ], - "CompletionQuestVariablesFlags": [ - 2, - null, - null, - null, - null, - null - ] - }, - { - "DataId": 1013466, - "Position": { - "X": -155.5047, - "Y": 175.79733, - "Z": 693.26306 - }, - "TerritoryId": 397, - "InteractionType": "Interact" - } - ] - }, - { - "Sequence": 3, - "Steps": [ - { - "DataId": 1012163, - "Position": { - "X": 128.25195, - "Y": 24.458832, - "Z": -0.6867676 - }, - "TerritoryId": 418, - "InteractionType": "Interact", - "AetheryteShortcut": "Ishgard", - "AethernetShortcut": [ - "[Ishgard] Aetheryte Plaza", - "[Ishgard] The Forgotten Knight" - ], - "SkipConditions": { - "AetheryteShortcutIf": { - "InSameTerritory": true - } - } - } - ] - }, - { - "Sequence": 255, - "Steps": [ - { - "Position": { - "X": 215.65454, - "Y": 222.1, - "Z": 345.1806 - }, - "TerritoryId": 155, - "InteractionType": "WalkTo", - "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", - "Land": true, - "Fly": true - }, - { - "DataId": 1013470, - "Position": { - "X": 218.00562, - "Y": 222, - "Z": 346.45605 - }, - "TerritoryId": 155, - "InteractionType": "CompleteQuest" - } - ] - } - ] +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "AnimaMachinae", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "Position": { + "X": 215.65454, + "Y": 222.1, + "Z": 345.1806 + }, + "TerritoryId": 155, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", + "Land": true, + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + }, + "$": "Alberic" + }, + { + "DataId": 1006748, + "Position": { + "X": 217.88354, + "Y": 222, + "Z": 345.3269 + }, + "TerritoryId": 155, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": -48.009445, + "Y": 98.00955, + "Z": 106.47891 + }, + "TerritoryId": 397, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Coerthas Western Highlands - Falcon's Nest", + "Fly": true, + "Land": true + }, + { + "DataId": 1013467, + "Position": { + "X": -51.10254, + "Y": 98.63026, + "Z": 105.1499 + }, + "TerritoryId": 397, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1013466, + "Position": { + "X": -155.5047, + "Y": 175.79733, + "Z": 693.26306 + }, + "TerritoryId": 397, + "InteractionType": "Combat", + "Fly": true, + "Land": true, + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [ + 4482, + 5049 + ], + "CompletionQuestVariablesFlags": [ + 2, + null, + null, + null, + null, + null + ] + }, + { + "DataId": 1013466, + "Position": { + "X": -155.5047, + "Y": 175.79733, + "Z": 693.26306 + }, + "TerritoryId": 397, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1012163, + "Position": { + "X": 128.25195, + "Y": 24.458832, + "Z": -0.6867676 + }, + "TerritoryId": 418, + "InteractionType": "Interact", + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] The Forgotten Knight" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": 215.65454, + "Y": 222.1, + "Z": 345.1806 + }, + "TerritoryId": 155, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", + "Land": true, + "Fly": true + }, + { + "DataId": 1013470, + "Position": { + "X": 218.00562, + "Y": 222, + "Z": 346.45605 + }, + "TerritoryId": 155, + "InteractionType": "CompleteQuest" + } + ] + } + ] } \ No newline at end of file -- 2.45.2 From 4b8049d699fd82136c9a331e597e462b4928eefe Mon Sep 17 00:00:00 2001 From: AnimaMachinae Date: Sat, 26 Oct 2024 02:36:54 +0000 Subject: [PATCH 184/448] Update QuestPaths/3.x - Heavensward/Class Quests/DRG/1694_Sanguine Dragoon.json --- .../DRG/1694_Sanguine Dragoon.json | 280 +++++++++--------- 1 file changed, 140 insertions(+), 140 deletions(-) diff --git a/QuestPaths/3.x - Heavensward/Class Quests/DRG/1694_Sanguine Dragoon.json b/QuestPaths/3.x - Heavensward/Class Quests/DRG/1694_Sanguine Dragoon.json index 4cc22951c..638a73df3 100644 --- a/QuestPaths/3.x - Heavensward/Class Quests/DRG/1694_Sanguine Dragoon.json +++ b/QuestPaths/3.x - Heavensward/Class Quests/DRG/1694_Sanguine Dragoon.json @@ -1,141 +1,141 @@ -{ - "schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "AnimaMachinae", - "QuestSequence": [ - { - "Sequence": 0, - "Steps": [ - { - "Position": { - "X": 215.65454, - "Y": 222.1, - "Z": 345.1806 - }, - "TerritoryId": 155, - "InteractionType": "WalkTo", - "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", - "Land": true, - "Fly": true, - "SkipConditions": { - "AetheryteShortcutIf": { - "InSameTerritory": true - } - }, - "$": "Alberic" - }, - { - "DataId": 1006748, - "Position": { - "X": 217.88354, - "Y": 222, - "Z": 345.3269 - }, - "TerritoryId": 155, - "InteractionType": "AcceptQuest" - } - ] - }, - { - "Sequence": 1, - "Steps": [ - { - "DataId": 1013471, - "Position": { - "X": 503.53247, - "Y": -51.363117, - "Z": 79.941895 - }, - "TerritoryId": 398, - "InteractionType": "Interact", - "Fly": true, - "Land": true, - "AetheryteShortcut": "The Dravanian Forelands - Tailfeather" - } - ] - }, - { - "Sequence": 2, - "Steps": [ - { - "DataId": 1013472, - "Position": { - "X": 396.35315, - "Y": -50.87535, - "Z": 73.04492 - }, - "TerritoryId": 398, - "InteractionType": "Combat", - "Fly": true, - "Land": true, - "EnemySpawnType": "AfterInteraction", - "KillEnemyDataIds": [ - 4497 - ] - } - ] - }, - { - "Sequence": 3, - "Steps": [ - { - "DataId": 1013471, - "Position": { - "X": 503.53247, - "Y": -51.363117, - "Z": 79.941895 - }, - "TerritoryId": 398, - "InteractionType": "Interact", - "Fly": true, - "Land": true - } - ] - }, - { - "Sequence": 4, - "Steps": [ - { - "DataId": 1013476, - "Position": { - "X": 571.5571, - "Y": -36.290947, - "Z": 359.3651 - }, - "TerritoryId": 398, - "InteractionType": "Interact", - "Fly": true, - "Land": true - } - ] - }, - { - "Sequence": 255, - "Steps": [ - { - "Position": { - "X": 215.65454, - "Y": 222.1, - "Z": 345.1806 - }, - "TerritoryId": 155, - "InteractionType": "WalkTo", - "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", - "Land": true, - "Fly": true, - "$": "Alberic" - }, - { - "DataId": 1006748, - "Position": { - "X": 217.88354, - "Y": 222, - "Z": 345.3269 - }, - "TerritoryId": 155, - "InteractionType": "CompleteQuest", - "NextQuestId": 1690 - } - ] - } - ] +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "AnimaMachinae", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "Position": { + "X": 215.65454, + "Y": 222.1, + "Z": 345.1806 + }, + "TerritoryId": 155, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", + "Land": true, + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + }, + "$": "Alberic" + }, + { + "DataId": 1006748, + "Position": { + "X": 217.88354, + "Y": 222, + "Z": 345.3269 + }, + "TerritoryId": 155, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1013471, + "Position": { + "X": 503.53247, + "Y": -51.363117, + "Z": 79.941895 + }, + "TerritoryId": 398, + "InteractionType": "Interact", + "Fly": true, + "Land": true, + "AetheryteShortcut": "The Dravanian Forelands - Tailfeather" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1013472, + "Position": { + "X": 396.35315, + "Y": -50.87535, + "Z": 73.04492 + }, + "TerritoryId": 398, + "InteractionType": "Combat", + "Fly": true, + "Land": true, + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 4497 + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1013471, + "Position": { + "X": 503.53247, + "Y": -51.363117, + "Z": 79.941895 + }, + "TerritoryId": 398, + "InteractionType": "Interact", + "Fly": true, + "Land": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1013476, + "Position": { + "X": 571.5571, + "Y": -36.290947, + "Z": 359.3651 + }, + "TerritoryId": 398, + "InteractionType": "Interact", + "Fly": true, + "Land": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": 215.65454, + "Y": 222.1, + "Z": 345.1806 + }, + "TerritoryId": 155, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", + "Land": true, + "Fly": true, + "$": "Alberic" + }, + { + "DataId": 1006748, + "Position": { + "X": 217.88354, + "Y": 222, + "Z": 345.3269 + }, + "TerritoryId": 155, + "InteractionType": "CompleteQuest", + "NextQuestId": 1690 + } + ] + } + ] } \ No newline at end of file -- 2.45.2 From 4cb3a9a2215a6ef7d0eb06808f9f78202d5bfdfd Mon Sep 17 00:00:00 2001 From: AnimaMachinae Date: Sat, 26 Oct 2024 02:37:10 +0000 Subject: [PATCH 185/448] Update QuestPaths/3.x - Heavensward/Class Quests/DRG/1695_Dragoon's Fate.json --- .../Class Quests/DRG/1695_Dragoon's Fate.json | 244 +++++++++--------- 1 file changed, 122 insertions(+), 122 deletions(-) diff --git a/QuestPaths/3.x - Heavensward/Class Quests/DRG/1695_Dragoon's Fate.json b/QuestPaths/3.x - Heavensward/Class Quests/DRG/1695_Dragoon's Fate.json index d4703aed6..b9103ce91 100644 --- a/QuestPaths/3.x - Heavensward/Class Quests/DRG/1695_Dragoon's Fate.json +++ b/QuestPaths/3.x - Heavensward/Class Quests/DRG/1695_Dragoon's Fate.json @@ -1,123 +1,123 @@ -{ - "schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "AnimaMachinae", - "QuestSequence": [ - { - "Sequence": 0, - "Steps": [ - { - "Position": { - "X": 215.65454, - "Y": 222.1, - "Z": 345.1806 - }, - "TerritoryId": 155, - "InteractionType": "WalkTo", - "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", - "Land": true, - "Fly": true, - "SkipConditions": { - "AetheryteShortcutIf": { - "InSameTerritory": true - } - }, - "$": "Alberic" - }, - { - "DataId": 1006748, - "Position": { - "X": 217.88354, - "Y": 222, - "Z": 345.3269 - }, - "TerritoryId": 155, - "InteractionType": "AcceptQuest" - } - ] - }, - { - "Sequence": 1, - "Steps": [ - { - "DataId": 1013483, - "Position": { - "X": -272.26672, - "Y": 124.213005, - "Z": -23.361572 - }, - "TerritoryId": 397, - "InteractionType": "Interact", - "Fly": true, - "Land": true, - "AetheryteShortcut": "Coerthas Western Highlands - Falcon's Nest" - } - ] - }, - { - "Sequence": 2, - "Steps": [ - { - "DataId": 1013485, - "Position": { - "X": -360.1892, - "Y": 101.91492, - "Z": -178.79004 - }, - "TerritoryId": 397, - "InteractionType": "Interact", - "Fly": true, - "Land": true - } - ] - }, - { - "Sequence": 3, - "Steps": [ - { - "DataId": 1013489, - "Position": { - "X": -429.099, - "Y": 121.59912, - "Z": -309.49878 - }, - "TerritoryId": 397, - "InteractionType": "Interact", - "Fly": true, - "Land": true - } - ] - }, - { - "Sequence": 4, - "Steps": [ - { - "DataId": 1013494, - "Position": { - "X": -505.30255, - "Y": 120.61159, - "Z": -311.39087 - }, - "TerritoryId": 397, - "InteractionType": "SinglePlayerDuty", - "Fly": true, - "Land": true - } - ] - }, - { - "Sequence": 255, - "Steps": [ - { - "DataId": 1013494, - "Position": { - "X": -505.30255, - "Y": 120.61159, - "Z": -311.39087 - }, - "TerritoryId": 397, - "InteractionType": "CompleteQuest" - } - ] - } - ] +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "AnimaMachinae", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "Position": { + "X": 215.65454, + "Y": 222.1, + "Z": 345.1806 + }, + "TerritoryId": 155, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", + "Land": true, + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + }, + "$": "Alberic" + }, + { + "DataId": 1006748, + "Position": { + "X": 217.88354, + "Y": 222, + "Z": 345.3269 + }, + "TerritoryId": 155, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1013483, + "Position": { + "X": -272.26672, + "Y": 124.213005, + "Z": -23.361572 + }, + "TerritoryId": 397, + "InteractionType": "Interact", + "Fly": true, + "Land": true, + "AetheryteShortcut": "Coerthas Western Highlands - Falcon's Nest" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1013485, + "Position": { + "X": -360.1892, + "Y": 101.91492, + "Z": -178.79004 + }, + "TerritoryId": 397, + "InteractionType": "Interact", + "Fly": true, + "Land": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1013489, + "Position": { + "X": -429.099, + "Y": 121.59912, + "Z": -309.49878 + }, + "TerritoryId": 397, + "InteractionType": "Interact", + "Fly": true, + "Land": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1013494, + "Position": { + "X": -505.30255, + "Y": 120.61159, + "Z": -311.39087 + }, + "TerritoryId": 397, + "InteractionType": "SinglePlayerDuty", + "Fly": true, + "Land": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1013494, + "Position": { + "X": -505.30255, + "Y": 120.61159, + "Z": -311.39087 + }, + "TerritoryId": 397, + "InteractionType": "CompleteQuest" + } + ] + } + ] } \ No newline at end of file -- 2.45.2 From 31991e12a63c63b28b1e4a89ff223610e335695d Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sat, 26 Oct 2024 17:28:35 +0200 Subject: [PATCH 186/448] Add one of the missing weekly NieR quests --- .../Story/2260_A Symbiotic Friendship.json | 0 .../4051_The Merchant of Komra.json | 297 ++++++++++++++++++ .../Side Quests/Thavnair/4198_Tikka Hike.json | 94 ++++++ 3 files changed, 391 insertions(+) rename QuestPaths/3.x - Heavensward/Allied Societies/{Vanu Vanu => Vath}/Story/2260_A Symbiotic Friendship.json (100%) create mode 100644 QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/4051_The Merchant of Komra.json create mode 100644 QuestPaths/6.x - Endwalker/Side Quests/Thavnair/4198_Tikka Hike.json diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Story/2260_A Symbiotic Friendship.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Story/2260_A Symbiotic Friendship.json similarity index 100% rename from QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Story/2260_A Symbiotic Friendship.json rename to QuestPaths/3.x - Heavensward/Allied Societies/Vath/Story/2260_A Symbiotic Friendship.json diff --git a/QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/4051_The Merchant of Komra.json b/QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/4051_The Merchant of Komra.json new file mode 100644 index 000000000..9ce484837 --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/4051_The Merchant of Komra.json @@ -0,0 +1,297 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1036043, + "Position": { + "X": 653.8948, + "Y": 297.51984, + "Z": -171.80133 + }, + "TerritoryId": 814, + "InteractionType": "AcceptQuest", + "Fly": true, + "AetheryteShortcut": "Kholusia - Stilltide", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + }, + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_LUCKTA522_04051_Q1_000_000", + "Answer": "TEXT_LUCKTA522_04051_A1_000_001" + } + ] + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2011154, + "Position": { + "X": 703.1509, + "Y": 295.3993, + "Z": -160.20447 + }, + "TerritoryId": 814, + "InteractionType": "Interact", + "TargetTerritoryId": 928, + "SkipConditions": { + "StepIf": { + "InTerritory": [ + 928 + ] + } + } + }, + { + "Position": { + "X": -352.89597, + "Y": 106.840775, + "Z": 337.33798 + }, + "TerritoryId": 928, + "InteractionType": "WalkTo", + "RestartNavigationIfCancelled": false + }, + { + "TerritoryId": 928, + "InteractionType": "None", + "DelaySecondsAtStart": 3 + }, + { + "Position": { + "X": -271.62762, + "Y": 69.97228, + "Z": 273.0655 + }, + "TerritoryId": 928, + "InteractionType": "WalkTo", + "RestartNavigationIfCancelled": false + }, + { + "TerritoryId": 928, + "InteractionType": "None", + "DelaySecondsAtStart": 2 + }, + { + "Position": { + "X": -234.40671, + "Y": 30, + "Z": 168.78214 + }, + "TerritoryId": 928, + "InteractionType": "WalkTo" + }, + { + "Position": { + "X": -237.90593, + "Y": 36.4109, + "Z": 107.25123 + }, + "TerritoryId": 928, + "InteractionType": "WalkTo" + }, + { + "Position": { + "X": -264.81836, + "Y": 20.597822, + "Z": 72.87652 + }, + "TerritoryId": 928, + "InteractionType": "WalkTo", + "DisableNavmesh": true + }, + { + "Position": { + "X": -246.3392, + "Y": 2.727209, + "Z": 47.629112 + }, + "TerritoryId": 928, + "InteractionType": "WalkTo", + "DisableNavmesh": true + }, + { + "DataId": 2011477, + "Position": { + "X": -233.6004, + "Y": 2.5177002, + "Z": 49.637573 + }, + "TerritoryId": 928, + "InteractionType": "Interact", + "DisableNavmesh": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "Position": { + "X": -246.3392, + "Y": 2.727209, + "Z": 47.629112 + }, + "TerritoryId": 928, + "InteractionType": "WalkTo", + "DisableNavmesh": true + }, + { + "Position": { + "X": -233.77907, + "Y": -3.860001, + "Z": 31.767477 + }, + "TerritoryId": 928, + "InteractionType": "WalkTo", + "DisableNavmesh": true + }, + { + "DataId": 2011234, + "Position": { + "X": -230.12134, + "Y": -2.609314, + "Z": 11.612061 + }, + "TerritoryId": 928, + "InteractionType": "Interact", + "TargetTerritoryId": 928 + }, + { + "Position": { + "X": -229.71193, + "Y": -115.06235, + "Z": -115.379684 + }, + "TerritoryId": 928, + "InteractionType": "WalkTo", + "RestartNavigationIfCancelled": false + }, + { + "TerritoryId": 928, + "InteractionType": "None", + "DelaySecondsAtStart": 2 + }, + { + "Position": { + "X": -229.93883, + "Y": -150.49908, + "Z": -219.08035 + }, + "TerritoryId": 928, + "InteractionType": "WalkTo" + }, + { + "Position": { + "X": -229.96237, + "Y": -168.28922, + "Z": -329.79776 + }, + "TerritoryId": 928, + "InteractionType": "WalkTo", + "DisableNavmesh": true + }, + { + "Position": { + "X": -237.64621, + "Y": -168.16484, + "Z": -336.7267 + }, + "TerritoryId": 928, + "InteractionType": "WalkTo", + "RestartNavigationIfCancelled": false, + "DelaySecondsAtStart": 2 + }, + { + "TerritoryId": 928, + "InteractionType": "None", + "DelaySecondsAtStart": 2 + }, + { + "DataId": 2011458, + "Position": { + "X": -295.1858, + "Y": -203.93689, + "Z": -329.36603 + }, + "TerritoryId": 928, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": -305.8408, + "Y": -204.6433, + "Z": -336.8385 + }, + "TerritoryId": 928, + "InteractionType": "WalkTo", + "RestartNavigationIfCancelled": false + }, + { + "TerritoryId": 928, + "InteractionType": "None", + "DelaySecondsAtStart": 2 + }, + { + "DataId": 2011237, + "Position": { + "X": -366.47595, + "Y": -241.35199, + "Z": -339.07074 + }, + "TerritoryId": 928, + "InteractionType": "Interact", + "TargetTerritoryId": 928 + }, + { + "DataId": 2011155, + "Position": { + "X": -383.81018, + "Y": 102.89148, + "Z": 389.12024 + }, + "TerritoryId": 928, + "InteractionType": "Interact", + "TargetTerritoryId": 814 + }, + { + "DataId": 1036043, + "Position": { + "X": 653.8948, + "Y": 297.51984, + "Z": -171.80133 + }, + "TerritoryId": 814, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/6.x - Endwalker/Side Quests/Thavnair/4198_Tikka Hike.json b/QuestPaths/6.x - Endwalker/Side Quests/Thavnair/4198_Tikka Hike.json new file mode 100644 index 000000000..2ae166de1 --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Side Quests/Thavnair/4198_Tikka Hike.json @@ -0,0 +1,94 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1039375, + "Position": { + "X": 148.3634, + "Y": 5.192836, + "Z": 611.2611 + }, + "TerritoryId": 957, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1039376, + "Position": { + "X": -15.640564, + "Y": 35.742054, + "Z": 392.20264 + }, + "TerritoryId": 957, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2011900, + "Position": { + "X": -17.135986, + "Y": 35.62976, + "Z": 394.39978 + }, + "TerritoryId": 957, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 14121 + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1039376, + "Position": { + "X": -15.640564, + "Y": 35.742054, + "Z": 392.20264 + }, + "TerritoryId": 957, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1039377, + "Position": { + "X": 147.60046, + "Y": 5.186336, + "Z": 610.62024 + }, + "TerritoryId": 957, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Thavnair - Yedlihmad", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_AKTKZA019_04198_Q1_000_000", + "Answer": "TEXT_AKTKZA019_04198_A1_000_002" + } + ] + } + ] + } + ] +} -- 2.45.2 From 7fe0b06addc25570f4b4d839f3cfa55a7f8c3da3 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sat, 26 Oct 2024 23:50:51 +0200 Subject: [PATCH 187/448] Adjust jump timings in 'A Taste of the Moon' --- .../4402_A Taste of the Moon.json | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/QuestPaths/6.x - Endwalker/MSQ/C-MareLamentorum/4402_A Taste of the Moon.json b/QuestPaths/6.x - Endwalker/MSQ/C-MareLamentorum/4402_A Taste of the Moon.json index fe670f69d..d61a1f6b3 100644 --- a/QuestPaths/6.x - Endwalker/MSQ/C-MareLamentorum/4402_A Taste of the Moon.json +++ b/QuestPaths/6.x - Endwalker/MSQ/C-MareLamentorum/4402_A Taste of the Moon.json @@ -110,18 +110,19 @@ "InteractionType": "Jump", "JumpDestination": { "Position": { - "X": -443.62042, - "Y": -160.7644, - "Z": -644.7719 - } + "X": -444.56757, + "Y": -160.76439, + "Z": -644.749 + }, + "DelaySeconds": 0.7 }, "Comment": "Platform 4" }, { "Position": { - "X": -443.62042, - "Y": -160.7644, - "Z": -644.7719 + "X": -444.56757, + "Y": -160.76439, + "Z": -644.749 }, "TerritoryId": 959, "InteractionType": "Jump", -- 2.45.2 From f9e02640d9b80591c8160e1dc219259a94d92b38 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sun, 27 Oct 2024 00:24:52 +0200 Subject: [PATCH 188/448] Update flying waypoint for 'Returning Home' --- .../MSQ/C-MareLamentorum/4408_Returning Home.json | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/QuestPaths/6.x - Endwalker/MSQ/C-MareLamentorum/4408_Returning Home.json b/QuestPaths/6.x - Endwalker/MSQ/C-MareLamentorum/4408_Returning Home.json index ac8ed7bd7..54c107b63 100644 --- a/QuestPaths/6.x - Endwalker/MSQ/C-MareLamentorum/4408_Returning Home.json +++ b/QuestPaths/6.x - Endwalker/MSQ/C-MareLamentorum/4408_Returning Home.json @@ -29,7 +29,12 @@ }, "TerritoryId": 959, "InteractionType": "WalkTo", - "Comment": "Avoids Combat" + "Comment": "Avoids Combat", + "SkipConditions": { + "StepIf": { + "Flying": "Unlocked" + } + } }, { "DataId": 2012531, @@ -40,7 +45,8 @@ }, "TerritoryId": 959, "InteractionType": "Interact", - "TargetTerritoryId": 1024 + "TargetTerritoryId": 1024, + "Fly": true }, { "DataId": 1038960, -- 2.45.2 From 2bd649af3358345d9d81b728ec643a5056626065 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sun, 27 Oct 2024 16:58:43 +0100 Subject: [PATCH 189/448] Use modified position when trying to fly in Camp Dragonhead --- .../1128_Shadows Uncast (Maelstrom).json | 3 ++- .../1129_Shadows Uncast (Twin Adder).json | 3 ++- .../1130_Shadows Uncast (Immortal Flames).json | 3 ++- Questionable/Controller/MovementController.cs | 17 +++++++++++++++-- 4 files changed, 21 insertions(+), 5 deletions(-) diff --git a/QuestPaths/2.x - A Realm Reborn/Unlocks/Dungeons/1128_Shadows Uncast (Maelstrom).json b/QuestPaths/2.x - A Realm Reborn/Unlocks/Dungeons/1128_Shadows Uncast (Maelstrom).json index 69dff9a12..8465af399 100644 --- a/QuestPaths/2.x - A Realm Reborn/Unlocks/Dungeons/1128_Shadows Uncast (Maelstrom).json +++ b/QuestPaths/2.x - A Realm Reborn/Unlocks/Dungeons/1128_Shadows Uncast (Maelstrom).json @@ -29,7 +29,8 @@ }, "TerritoryId": 155, "InteractionType": "Interact", - "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead" + "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", + "Fly": true } ] }, diff --git a/QuestPaths/2.x - A Realm Reborn/Unlocks/Dungeons/1129_Shadows Uncast (Twin Adder).json b/QuestPaths/2.x - A Realm Reborn/Unlocks/Dungeons/1129_Shadows Uncast (Twin Adder).json index bb2006b85..ad46e4d61 100644 --- a/QuestPaths/2.x - A Realm Reborn/Unlocks/Dungeons/1129_Shadows Uncast (Twin Adder).json +++ b/QuestPaths/2.x - A Realm Reborn/Unlocks/Dungeons/1129_Shadows Uncast (Twin Adder).json @@ -29,7 +29,8 @@ }, "TerritoryId": 155, "InteractionType": "Interact", - "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead" + "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", + "Fly": true } ] }, diff --git a/QuestPaths/2.x - A Realm Reborn/Unlocks/Dungeons/1130_Shadows Uncast (Immortal Flames).json b/QuestPaths/2.x - A Realm Reborn/Unlocks/Dungeons/1130_Shadows Uncast (Immortal Flames).json index 76187f73b..0b0c67313 100644 --- a/QuestPaths/2.x - A Realm Reborn/Unlocks/Dungeons/1130_Shadows Uncast (Immortal Flames).json +++ b/QuestPaths/2.x - A Realm Reborn/Unlocks/Dungeons/1130_Shadows Uncast (Immortal Flames).json @@ -29,7 +29,8 @@ }, "TerritoryId": 155, "InteractionType": "Interact", - "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead" + "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", + "Fly": true } ] }, diff --git a/Questionable/Controller/MovementController.cs b/Questionable/Controller/MovementController.cs index bf10142fa..e41b8f04b 100644 --- a/Questionable/Controller/MovementController.cs +++ b/Questionable/Controller/MovementController.cs @@ -16,6 +16,7 @@ using FFXIVClientStructs.FFXIV.Client.Game; using FFXIVClientStructs.FFXIV.Client.Game.Control; using Microsoft.Extensions.Logging; using Questionable.Controller.NavigationOverrides; +using Questionable.Data; using Questionable.External; using Questionable.Functions; using Questionable.Model; @@ -36,13 +37,14 @@ internal sealed class MovementController : IDisposable private readonly ChatFunctions _chatFunctions; private readonly ICondition _condition; private readonly MovementOverrideController _movementOverrideController; + private readonly AetheryteData _aetheryteData; private readonly ILogger _logger; private CancellationTokenSource? _cancellationTokenSource; private Task>? _pathfindTask; public MovementController(NavmeshIpc navmeshIpc, IClientState clientState, GameFunctions gameFunctions, ChatFunctions chatFunctions, ICondition condition, MovementOverrideController movementOverrideController, - ILogger logger) + AetheryteData aetheryteData, ILogger logger) { _navmeshIpc = navmeshIpc; _clientState = clientState; @@ -50,6 +52,7 @@ internal sealed class MovementController : IDisposable _chatFunctions = chatFunctions; _condition = condition; _movementOverrideController = movementOverrideController; + _aetheryteData = aetheryteData; _logger = logger; } @@ -305,8 +308,18 @@ internal sealed class MovementController : IDisposable Destination.NavmeshCalculations++; _cancellationTokenSource = new(); _cancellationTokenSource.CancelAfter(TimeSpan.FromSeconds(30)); + + Vector3 startPosition = _clientState.LocalPlayer!.Position; + if (fly && _aetheryteData.CalculateDistance(startPosition, _clientState.TerritoryType, + EAetheryteLocation.CoerthasCentralHighlandsCampDragonhead) < 11f) + { + startPosition = startPosition with { Y = startPosition.Y + 1f }; + _logger.LogInformation("Using modified start position for flying pathfinding: {StartPosition}", + startPosition.ToString("G", CultureInfo.InvariantCulture)); + } + _pathfindTask = - _navmeshIpc.Pathfind(_clientState.LocalPlayer!.Position, to, fly, _cancellationTokenSource.Token); + _navmeshIpc.Pathfind(startPosition, to, fly, _cancellationTokenSource.Token); } public void NavigateTo(EMovementType type, uint? dataId, List to, bool fly, bool sprint, -- 2.45.2 From c7d359430c853c1138c79a36c5ad3b21bba0bf49 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sun, 27 Oct 2024 17:16:02 +0100 Subject: [PATCH 190/448] Add 'Gilding the Bilious' --- .../1131_Gilding the Bilious (Maelstrom).json | 99 +++++++++++++++++++ ...1132_Gilding the Bilious (Twin Adder).json | 95 ++++++++++++++++++ ...Gilding the Bilious (Immortal Flames).json | 95 ++++++++++++++++++ 3 files changed, 289 insertions(+) create mode 100644 QuestPaths/2.x - A Realm Reborn/Unlocks/Dungeons/1131_Gilding the Bilious (Maelstrom).json create mode 100644 QuestPaths/2.x - A Realm Reborn/Unlocks/Dungeons/1132_Gilding the Bilious (Twin Adder).json create mode 100644 QuestPaths/2.x - A Realm Reborn/Unlocks/Dungeons/1133_Gilding the Bilious (Immortal Flames).json diff --git a/QuestPaths/2.x - A Realm Reborn/Unlocks/Dungeons/1131_Gilding the Bilious (Maelstrom).json b/QuestPaths/2.x - A Realm Reborn/Unlocks/Dungeons/1131_Gilding the Bilious (Maelstrom).json new file mode 100644 index 000000000..e0157efee --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Unlocks/Dungeons/1131_Gilding the Bilious (Maelstrom).json @@ -0,0 +1,99 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1003281, + "Position": { + "X": 97.520386, + "Y": 40.248554, + "Z": 81.1322 + }, + "TerritoryId": 128, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": 126.33908, + "Y": 31.31262, + "Z": -772.82794 + }, + "TerritoryId": 156, + "InteractionType": "WalkTo", + "TargetTerritoryId": 155, + "AetheryteShortcut": "Mor Dhona", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "AetheryteLocked": "Mor Dhona", + "InTerritory": [ + 155 + ] + }, + "StepIf": { + "AetheryteLocked": "Mor Dhona", + "InTerritory": [ + 155 + ] + } + } + }, + { + "DataId": 1007625, + "Position": { + "X": -354.1772, + "Y": 214.60808, + "Z": 692.65283 + }, + "TerritoryId": 155, + "InteractionType": "Interact", + "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "TerritoryId": 155, + "InteractionType": "Duty", + "ContentFinderConditionId": 5 + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1003281, + "Position": { + "X": 97.520386, + "Y": 40.248554, + "Z": 81.1322 + }, + "TerritoryId": 128, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] The Aftcastle" + ] + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Unlocks/Dungeons/1132_Gilding the Bilious (Twin Adder).json b/QuestPaths/2.x - A Realm Reborn/Unlocks/Dungeons/1132_Gilding the Bilious (Twin Adder).json new file mode 100644 index 000000000..178a0b5a4 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Unlocks/Dungeons/1132_Gilding the Bilious (Twin Adder).json @@ -0,0 +1,95 @@ +{ + "$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": 126.33908, + "Y": 31.31262, + "Z": -772.82794 + }, + "TerritoryId": 156, + "InteractionType": "WalkTo", + "TargetTerritoryId": 155, + "AetheryteShortcut": "Mor Dhona", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "AetheryteLocked": "Mor Dhona", + "InTerritory": [ + 155 + ] + }, + "StepIf": { + "AetheryteLocked": "Mor Dhona", + "InTerritory": [ + 155 + ] + } + } + }, + { + "DataId": 1007625, + "Position": { + "X": -354.1772, + "Y": 214.60808, + "Z": 692.65283 + }, + "TerritoryId": 155, + "InteractionType": "Interact", + "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "TerritoryId": 155, + "InteractionType": "Duty", + "ContentFinderConditionId": 5 + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1000168, + "Position": { + "X": -75.48645, + "Y": -0.5013741, + "Z": -5.081299 + }, + "TerritoryId": 132, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Gridania" + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Unlocks/Dungeons/1133_Gilding the Bilious (Immortal Flames).json b/QuestPaths/2.x - A Realm Reborn/Unlocks/Dungeons/1133_Gilding the Bilious (Immortal Flames).json new file mode 100644 index 000000000..8915d6714 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Unlocks/Dungeons/1133_Gilding the Bilious (Immortal Flames).json @@ -0,0 +1,95 @@ +{ + "$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": [ + { + "Position": { + "X": 126.33908, + "Y": 31.31262, + "Z": -772.82794 + }, + "TerritoryId": 156, + "InteractionType": "WalkTo", + "TargetTerritoryId": 155, + "AetheryteShortcut": "Mor Dhona", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "AetheryteLocked": "Mor Dhona", + "InTerritory": [ + 155 + ] + }, + "StepIf": { + "AetheryteLocked": "Mor Dhona", + "InTerritory": [ + 155 + ] + } + } + }, + { + "DataId": 1007625, + "Position": { + "X": -354.1772, + "Y": 214.60808, + "Z": 692.65283 + }, + "TerritoryId": 155, + "InteractionType": "Interact", + "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "TerritoryId": 155, + "InteractionType": "Duty", + "ContentFinderConditionId": 5 + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1004576, + "Position": { + "X": -141.64954, + "Y": 4.1, + "Z": -114.67157 + }, + "TerritoryId": 130, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ul'dah" + } + ] + } + ] +} -- 2.45.2 From 88df503f43618713323cf69bf70a6dbb6c37b1d8 Mon Sep 17 00:00:00 2001 From: pot0to <19513249+pot0to@users.noreply.github.com> Date: Sun, 27 Oct 2024 15:32:56 -0700 Subject: [PATCH 191/448] last 2 lopporit dailies --- .../Dailies/4687_Don't Stop the Music.json | 51 +++++++++++++----- .../Dailies/4714_Sparking Artist.json | 52 +++++++++++++++++-- 2 files changed, 88 insertions(+), 15 deletions(-) diff --git a/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Dailies/4687_Don't Stop the Music.json b/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Dailies/4687_Don't Stop the Music.json index 63f98455b..7ccafb515 100644 --- a/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Dailies/4687_Don't Stop the Music.json +++ b/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Dailies/4687_Don't Stop the Music.json @@ -1,6 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "liza", + "Author": "pot0to", "QuestSequence": [ { "Sequence": 0, @@ -30,28 +30,55 @@ "Sequence": 1, "Steps": [ { - "DataId": 1044564, + "DataId": 1044571, "Position": { - "X": 456.13794, - "Y": -167.50003, - "Z": -759.02954 + "X": 20.09607, + "Y": 64.97662, + "Z": 43.411865 }, "TerritoryId": 959, "InteractionType": "Interact", - "AetheryteShortcut": "Mare Lamentorum - Bestways Burrow", "Fly": true } ] }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1044571, + "Position": { + "X": 20.09607, + "Y": 64.97662, + "Z": 43.411865 + }, + "TerritoryId": 959, + "InteractionType": "UseItem", + "ItemId": 2003449, + "GroundTarget": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1044571, + "Position": { + "X": 20.09607, + "Y": 64.97662, + "Z": 43.411865 + }, + "TerritoryId": 959, + "InteractionType": "UseItem", + "ItemId": 2003449, + "GroundTarget": true + } + ] + }, { "Sequence": 255, "Steps": [ - { - "TerritoryId": 959, - "InteractionType": "Craft", - "ItemId": 38853, - "ItemCount": 3 - }, { "Position": { "X": -201.42024, diff --git a/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Dailies/4714_Sparking Artist.json b/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Dailies/4714_Sparking Artist.json index d731dcbc4..7ccafb515 100644 --- a/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Dailies/4714_Sparking Artist.json +++ b/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Dailies/4714_Sparking Artist.json @@ -1,7 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "liza", - "Disabled": true, + "Author": "pot0to", "QuestSequence": [ { "Sequence": 0, @@ -30,6 +29,51 @@ { "Sequence": 1, "Steps": [ + { + "DataId": 1044571, + "Position": { + "X": 20.09607, + "Y": 64.97662, + "Z": 43.411865 + }, + "TerritoryId": 959, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1044571, + "Position": { + "X": 20.09607, + "Y": 64.97662, + "Z": 43.411865 + }, + "TerritoryId": 959, + "InteractionType": "UseItem", + "ItemId": 2003449, + "GroundTarget": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1044571, + "Position": { + "X": 20.09607, + "Y": 64.97662, + "Z": 43.411865 + }, + "TerritoryId": 959, + "InteractionType": "UseItem", + "ItemId": 2003449, + "GroundTarget": true + } ] }, { @@ -42,7 +86,9 @@ "Z": -273.68756 }, "TerritoryId": 959, - "InteractionType": "WalkTo" + "InteractionType": "WalkTo", + "AetheryteShortcut": "Mare Lamentorum - Bestways Burrow", + "Fly": true }, { "DataId": 1044403, -- 2.45.2 From 5161971bbb0ce81d062689171f261a40449ac04d Mon Sep 17 00:00:00 2001 From: pot0to <19513249+pot0to@users.noreply.github.com> Date: Sun, 27 Oct 2024 15:38:13 -0700 Subject: [PATCH 192/448] restoring quest after accidental overwrite --- .../Dailies/4687_Don't Stop the Music.json | 51 +++++-------------- 1 file changed, 12 insertions(+), 39 deletions(-) diff --git a/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Dailies/4687_Don't Stop the Music.json b/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Dailies/4687_Don't Stop the Music.json index 7ccafb515..63f98455b 100644 --- a/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Dailies/4687_Don't Stop the Music.json +++ b/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Dailies/4687_Don't Stop the Music.json @@ -1,6 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "pot0to", + "Author": "liza", "QuestSequence": [ { "Sequence": 0, @@ -30,55 +30,28 @@ "Sequence": 1, "Steps": [ { - "DataId": 1044571, + "DataId": 1044564, "Position": { - "X": 20.09607, - "Y": 64.97662, - "Z": 43.411865 + "X": 456.13794, + "Y": -167.50003, + "Z": -759.02954 }, "TerritoryId": 959, "InteractionType": "Interact", + "AetheryteShortcut": "Mare Lamentorum - Bestways Burrow", "Fly": true } ] }, - { - "Sequence": 2, - "Steps": [ - { - "DataId": 1044571, - "Position": { - "X": 20.09607, - "Y": 64.97662, - "Z": 43.411865 - }, - "TerritoryId": 959, - "InteractionType": "UseItem", - "ItemId": 2003449, - "GroundTarget": true - } - ] - }, - { - "Sequence": 3, - "Steps": [ - { - "DataId": 1044571, - "Position": { - "X": 20.09607, - "Y": 64.97662, - "Z": 43.411865 - }, - "TerritoryId": 959, - "InteractionType": "UseItem", - "ItemId": 2003449, - "GroundTarget": true - } - ] - }, { "Sequence": 255, "Steps": [ + { + "TerritoryId": 959, + "InteractionType": "Craft", + "ItemId": 38853, + "ItemCount": 3 + }, { "Position": { "X": -201.42024, -- 2.45.2 From 5aa44b2f530876531c0e91b79da72d7a3af60c66 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Mon, 28 Oct 2024 10:07:14 +0100 Subject: [PATCH 193/448] Add 'Braving New Depths' --- .../Dungeons/764_Braving New Depths.json | 48 +++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 QuestPaths/2.x - A Realm Reborn/Unlocks/Dungeons/764_Braving New Depths.json diff --git a/QuestPaths/2.x - A Realm Reborn/Unlocks/Dungeons/764_Braving New Depths.json b/QuestPaths/2.x - A Realm Reborn/Unlocks/Dungeons/764_Braving New Depths.json new file mode 100644 index 000000000..68840342e --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Unlocks/Dungeons/764_Braving New Depths.json @@ -0,0 +1,48 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1005021, + "Position": { + "X": -472.49567, + "Y": 23.008797, + "Z": -355.00116 + }, + "TerritoryId": 140, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": -157.07425, + "Y": 24.884384, + "Z": -354.37775 + }, + "TerritoryId": 146, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Southern Thanalan - Little Ala Mhigo", + "Fly": true + }, + { + "DataId": 1006220, + "Position": { + "X": 185.74805, + "Y": 13.721187, + "Z": -443.1983 + }, + "TerritoryId": 146, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} -- 2.45.2 From f3343ea306f3382ad2c3107f1ce3cd844744ad21 Mon Sep 17 00:00:00 2001 From: pot0to <19513249+pot0to@users.noreply.github.com> Date: Thu, 31 Oct 2024 02:18:36 -0700 Subject: [PATCH 194/448] BLM quests through ARR --- .../BLM/1073_Taking the Black.json | 118 ++++++++++ .../BLM/1074_You'll Never Go Back.json | 131 +++++++++++ .../BLM/1075_International Relations.json | 217 ++++++++++++++++++ .../1076_The Voidgate Breathes Gloomy.json | 111 +++++++++ .../BLM/1077_The Blood Must Flow.json | 148 ++++++++++++ .../BLM/1078_Always Bet on Black.json | 131 +++++++++++ .../BLM/346_My First Scepter.json | 2 +- .../BLM/350_The Threat of Superiority.json | 6 +- 8 files changed, 860 insertions(+), 4 deletions(-) create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/BLM/1073_Taking the Black.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/BLM/1074_You'll Never Go Back.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/BLM/1075_International Relations.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/BLM/1076_The Voidgate Breathes Gloomy.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/BLM/1077_The Blood Must Flow.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/BLM/1078_Always Bet on Black.json diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/BLM/1073_Taking the Black.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/BLM/1073_Taking the Black.json new file mode 100644 index 000000000..1c36e1b1d --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/BLM/1073_Taking the Black.json @@ -0,0 +1,118 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "pot0to", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1002279, + "Position": { + "X": -196.8872, + "Y": 18.459997, + "Z": 59.952637 + }, + "TerritoryId": 130, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Thaumaturges' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 130 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2002533, + "Position": { + "X": -72.67877, + "Y": -32.059265, + "Z": -46.830017 + }, + "TerritoryId": 145, + "InteractionType": "Combat", + "AetheryteShortcut": "Eastern Thanalan - Camp Drybone", + "Fly": true, + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 305 + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2002429, + "Position": { + "X": -72.67877, + "Y": -32.059265, + "Z": -46.830017 + }, + "TerritoryId": 145, + "InteractionType": "UseItem", + "ItemId": 2000954 + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1002279, + "Position": { + "X": -196.8872, + "Y": 18.459997, + "Z": 59.952637 + }, + "TerritoryId": 130, + "InteractionType": "Interact", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Thaumaturges' Guild" + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1006752, + "Position": { + "X": 87.5105, + "Y": 18, + "Z": 113.725464 + }, + "TerritoryId": 131, + "InteractionType": "CompleteQuest", + "AethernetShortcut": [ + "[Ul'dah] Thaumaturges' Guild", + "[Ul'dah] Weavers' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 130 + ] + } + } + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/BLM/1074_You'll Never Go Back.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/BLM/1074_You'll Never Go Back.json new file mode 100644 index 000000000..f327fc856 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/BLM/1074_You'll Never Go Back.json @@ -0,0 +1,131 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "pot0to", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1006752, + "Position": { + "X": 87.5105, + "Y": 18, + "Z": 113.725464 + }, + "TerritoryId": 131, + "InteractionType": "EquipItem", + "ItemId": 4548, + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 130, + 131 + ] + } + } + }, + { + "DataId": 1006752, + "Position": { + "X": 87.5105, + "Y": 18, + "Z": 113.725464 + }, + "TerritoryId": 131, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2002534, + "Position": { + "X": -7.9194946, + "Y": 13.687317, + "Z": 866.54443 + }, + "TerritoryId": 146, + "InteractionType": "Combat", + "AetheryteShortcut": "Southern Thanalan - Forgotten Springs", + "Fly": true, + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 21 + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2002430, + "Position": { + "X": -7.9194946, + "Y": 13.687317, + "Z": 866.54443 + }, + "TerritoryId": 146, + "InteractionType": "UseItem", + "ItemId": 2000809 + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1002279, + "Position": { + "X": -196.8872, + "Y": 18.459997, + "Z": 59.952637 + }, + "TerritoryId": 130, + "InteractionType": "Interact", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Thaumaturges' Guild" + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1006752, + "Position": { + "X": 87.5105, + "Y": 18, + "Z": 113.725464 + }, + "TerritoryId": 131, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 130 + ] + } + } + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/BLM/1075_International Relations.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/BLM/1075_International Relations.json new file mode 100644 index 000000000..9ace8bcbb --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/BLM/1075_International Relations.json @@ -0,0 +1,217 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "pot0to", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1006752, + "Position": { + "X": 87.5105, + "Y": 18, + "Z": 113.725464 + }, + "TerritoryId": 131, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 130, + 131 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1006753, + "Position": { + "X": 325.063, + "Y": 11.236564, + "Z": -6.2105103 + }, + "TerritoryId": 145, + "InteractionType": "Interact", + "AetheryteShortcut": "Eastern Thanalan - Camp Drybone", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1007864, + "Position": { + "X": -167.40674, + "Y": 14.513778, + "Z": -251.3009 + }, + "TerritoryId": 140, + "InteractionType": "Interact", + "AetheryteShortcut": "Western Thanalan - Horizon", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2002535, + "Position": { + "X": -178.39331, + "Y": 15.42688, + "Z": -244.64789 + }, + "TerritoryId": 140, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 182 + ] + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 2002431, + "Position": { + "X": -178.39331, + "Y": 15.42688, + "Z": -244.64789 + }, + "TerritoryId": 140, + "InteractionType": "UseItem", + "ItemId": 2000810 + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1007864, + "Position": { + "X": -167.40674, + "Y": 14.513778, + "Z": -251.3009 + }, + "TerritoryId": 140, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1007865, + "Position": { + "X": -223.10223, + "Y": 14.513845, + "Z": -365.25525 + }, + "TerritoryId": 140, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 7, + "Steps": [ + { + "DataId": 2002536, + "Position": { + "X": -211.16962, + "Y": 15.396301, + "Z": -345.41852 + }, + "TerritoryId": 140, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 182 + ] + } + ] + }, + { + "Sequence": 8, + "Steps": [ + { + "DataId": 2002432, + "Position": { + "X": -211.16962, + "Y": 15.396301, + "Z": -345.41852 + }, + "TerritoryId": 140, + "InteractionType": "UseItem", + "ItemId": 2000811 + } + ] + }, + { + "Sequence": 9, + "Steps": [ + { + "DataId": 1007865, + "Position": { + "X": -223.10223, + "Y": 14.513845, + "Z": -365.25525 + }, + "TerritoryId": 140, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 10, + "Steps": [ + { + "DataId": 1007863, + "Position": { + "X": -131.70062, + "Y": 17.982016, + "Z": -278.8587 + }, + "TerritoryId": 140, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1006753, + "Position": { + "X": 325.063, + "Y": 11.236564, + "Z": -6.2105103 + }, + "TerritoryId": 145, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Eastern Thanalan - Camp Drybone", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/BLM/1076_The Voidgate Breathes Gloomy.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/BLM/1076_The Voidgate Breathes Gloomy.json new file mode 100644 index 000000000..c9ff0010b --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/BLM/1076_The Voidgate Breathes Gloomy.json @@ -0,0 +1,111 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "pot0to", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1006753, + "Position": { + "X": 325.063, + "Y": 11.236564, + "Z": -6.2105103 + }, + "TerritoryId": 145, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Eastern Thanalan - Camp Drybone", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + }, + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_JOBBLM450_01076_Q1_000_1", + "Yes": true + } + ] + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2002433, + "Position": { + "X": 374.28845, + "Y": 3.40271, + "Z": 161.73035 + }, + "TerritoryId": 153, + "InteractionType": "SinglePlayerDuty", + "AetheryteShortcut": "South Shroud - Quarrymill", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1007866, + "Position": { + "X": 376.29065, + "Y": 2.505473, + "Z": 159.52626 + }, + "TerritoryId": 153, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1007867, + "Position": { + "X": 282.39868, + "Y": 11.151184, + "Z": -6.729248 + }, + "TerritoryId": 145, + "InteractionType": "Interact", + "AetheryteShortcut": "Eastern Thanalan - Camp Drybone", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1006753, + "Position": { + "X": 325.063, + "Y": 11.236564, + "Z": -6.2105103 + }, + "TerritoryId": 145, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Eastern Thanalan - Camp Drybone", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/BLM/1077_The Blood Must Flow.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/BLM/1077_The Blood Must Flow.json new file mode 100644 index 000000000..0e96f2677 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/BLM/1077_The Blood Must Flow.json @@ -0,0 +1,148 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "pot0to", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1006753, + "Position": { + "X": 325.063, + "Y": 11.236564, + "Z": -6.2105103 + }, + "TerritoryId": 145, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Eastern Thanalan - Camp Drybone", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2002434, + "Position": { + "X": -101.27417, + "Y": 28.213867, + "Z": 117.234985 + }, + "TerritoryId": 146, + "InteractionType": "UseItem", + "ItemId": 2000812, + "AetheryteShortcut": "Southern Thanalan - Forgotten Springs", + "Fly": true + }, + { + "DataId": 2002435, + "Position": { + "X": -1.8158569, + "Y": -11.703674, + "Z": -37.79669 + }, + "TerritoryId": 154, + "InteractionType": "UseItem", + "ItemId": 2000955, + "AetheryteShortcut": "North Shroud - Fallgourd Float", + "Fly": true + }, + { + "DataId": 2002436, + "Position": { + "X": 68.680786, + "Y": 55.832764, + "Z": -503.95975 + }, + "TerritoryId": 180, + "InteractionType": "UseItem", + "ItemId": 2000956, + "AetheryteShortcut": "Outer La Noscea - Camp Overlook", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1006753, + "Position": { + "X": 325.063, + "Y": 11.236564, + "Z": -6.2105103 + }, + "TerritoryId": 145, + "InteractionType": "Interact", + "AetheryteShortcut": "Eastern Thanalan - Camp Drybone", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2002537, + "Position": { + "X": 220.87427, + "Y": 5.5999756, + "Z": -269.9779 + }, + "TerritoryId": 145, + "InteractionType": "Combat", + "Fly": true, + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 1935, + 1936 + ] + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 2002437, + "Position": { + "X": 220.87427, + "Y": 5.5999756, + "Z": -269.9779 + }, + "TerritoryId": 145, + "InteractionType": "UseItem", + "ItemId": 2000957 + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1006753, + "Position": { + "X": 325.063, + "Y": 11.236564, + "Z": -6.2105103 + }, + "TerritoryId": 145, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Eastern Thanalan - Camp Drybone", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/BLM/1078_Always Bet on Black.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/BLM/1078_Always Bet on Black.json new file mode 100644 index 000000000..b678a1fcc --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/BLM/1078_Always Bet on Black.json @@ -0,0 +1,131 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "pot0to", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1006753, + "Position": { + "X": 325.063, + "Y": 11.236564, + "Z": -6.2105103 + }, + "TerritoryId": 145, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Eastern Thanalan - Camp Drybone", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1006752, + "Position": { + "X": 87.5105, + "Y": 18, + "Z": 113.725464 + }, + "TerritoryId": 131, + "InteractionType": "Interact", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 130, + 131 + ] + } + } + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": -431.92166, + "Y": 6.5580425, + "Z": -17.561014 + }, + "TerritoryId": 146, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Southern Thanalan - Forgotten Springs", + "Fly": false, + "$": "Flying in Thanalan is TERRIBLE due to heigh limit." + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1007872, + "Position": { + "X": -468.925, + "Y": -3.1649342, + "Z": 59.464355 + }, + "TerritoryId": 146, + "InteractionType": "Interact" + }, + { + "DataId": 1007871, + "Position": { + "X": -464.46936, + "Y": -3.1649272, + "Z": 65.415405 + }, + "TerritoryId": 146, + "InteractionType": "Interact" + }, + { + "DataId": 1007873, + "Position": { + "X": -458.70148, + "Y": -3.164927, + "Z": 63.370728 + }, + "TerritoryId": 146, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1006753, + "Position": { + "X": 325.063, + "Y": 11.236564, + "Z": -6.2105103 + }, + "TerritoryId": 145, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Eastern Thanalan - Camp Drybone", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/BLM/346_My First Scepter.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/BLM/346_My First Scepter.json index 160be2559..74f4a3d3e 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/BLM/346_My First Scepter.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/BLM/346_My First Scepter.json @@ -103,7 +103,7 @@ "Y": 3.082914, "Z": 272.46896 }, - "TerritoryId": 148, + "TerritoryId": 141, "InteractionType": "Combat", "EnemySpawnType": "OverworldEnemies", "ComplexCombatData": [ diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/BLM/350_The Threat of Superiority.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/BLM/350_The Threat of Superiority.json index 3f4f94e38..32983076f 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/BLM/350_The Threat of Superiority.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/BLM/350_The Threat of Superiority.json @@ -121,11 +121,11 @@ "Sequence": 255, "Steps": [ { - "DataId": 1001710, + "DataId": 1001711, "Position": { - "X": -240.2533, + "X": -241.62665, "Y": 18.8, - "Z": 86.900024 + "Z": 83.32947 }, "TerritoryId": 130, "InteractionType": "CompleteQuest", -- 2.45.2 From ad76bb88c0e4ddc01e4bf45cd11bb076f513ba89 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sat, 2 Nov 2024 15:51:29 +0100 Subject: [PATCH 195/448] Update distances when following NPC in 'Scales of Blue' --- .../E-SolutionNine-HeritageFound2/4936_Scales of Blue.json | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/QuestPaths/7.x - Dawntrail/MSQ/E-SolutionNine-HeritageFound2/4936_Scales of Blue.json b/QuestPaths/7.x - Dawntrail/MSQ/E-SolutionNine-HeritageFound2/4936_Scales of Blue.json index 831ad3560..1167f268f 100644 --- a/QuestPaths/7.x - Dawntrail/MSQ/E-SolutionNine-HeritageFound2/4936_Scales of Blue.json +++ b/QuestPaths/7.x - Dawntrail/MSQ/E-SolutionNine-HeritageFound2/4936_Scales of Blue.json @@ -92,7 +92,8 @@ "Z": 50.459126 }, "TerritoryId": 1186, - "InteractionType": "WaitForNpcAtPosition" + "InteractionType": "WaitForNpcAtPosition", + "StopDistance": 1 }, { "DataId": 1048078, @@ -103,7 +104,8 @@ }, "TerritoryId": 1186, "InteractionType": "WaitForNpcAtPosition", - "NpcWaitDistance": 2 + "NpcWaitDistance": 3, + "StopDistance": 5 }, { "DataId": 1048078, -- 2.45.2 From bd38b330ed2f0e857d5b048dc5a5e1795f3c190f Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sun, 3 Nov 2024 19:25:33 +0100 Subject: [PATCH 196/448] Add plugin setup window --- LLib | 2 +- Questionable/Configuration.cs | 7 + Questionable/Controller/CommandHandler.cs | 17 ++- Questionable/DalamudInitializer.cs | 19 ++- Questionable/QuestionablePlugin.cs | 3 + Questionable/Windows/OneTimeSetupWindow.cs | 164 +++++++++++++++++++++ Questionable/Windows/QuestWindow.cs | 3 + 7 files changed, 211 insertions(+), 4 deletions(-) create mode 100644 Questionable/Windows/OneTimeSetupWindow.cs diff --git a/LLib b/LLib index 6dfc18ee6..912a7b04c 160000 --- a/LLib +++ b/LLib @@ -1 +1 @@ -Subproject commit 6dfc18ee6a187138036ee2d51ba2257741c1e568 +Subproject commit 912a7b04ce180e337af9beeef2d1393b040c1ba8 diff --git a/Questionable/Configuration.cs b/Questionable/Configuration.cs index f2a251640..fb96ce353 100644 --- a/Questionable/Configuration.cs +++ b/Questionable/Configuration.cs @@ -6,12 +6,19 @@ namespace Questionable; internal sealed class Configuration : IPluginConfiguration { + public const int PluginSetupVersion = 1; + public int Version { get; set; } = 1; + public int PluginSetupCompleteVersion { get; set; } public GeneralConfiguration General { get; } = new(); public AdvancedConfiguration Advanced { get; } = new(); public WindowConfig DebugWindowConfig { get; } = new(); public WindowConfig ConfigWindowConfig { get; } = new(); + internal bool IsPluginSetupComplete() => PluginSetupCompleteVersion == PluginSetupVersion; + + internal void MarkPluginSetupComplete() => PluginSetupCompleteVersion = PluginSetupVersion; + internal sealed class GeneralConfiguration { public uint MountId { get; set; } = 71; diff --git a/Questionable/Controller/CommandHandler.cs b/Questionable/Controller/CommandHandler.cs index 4f80f53b5..0bb87429f 100644 --- a/Questionable/Controller/CommandHandler.cs +++ b/Questionable/Controller/CommandHandler.cs @@ -24,12 +24,14 @@ internal sealed class CommandHandler : IDisposable private readonly QuestRegistry _questRegistry; private readonly ConfigWindow _configWindow; private readonly DebugOverlay _debugOverlay; + private readonly OneTimeSetupWindow _oneTimeSetupWindow; private readonly QuestWindow _questWindow; private readonly QuestSelectionWindow _questSelectionWindow; private readonly ITargetManager _targetManager; private readonly QuestFunctions _questFunctions; private readonly GameFunctions _gameFunctions; private readonly IDataManager _dataManager; + private readonly Configuration _configuration; public CommandHandler( ICommandManager commandManager, @@ -39,12 +41,14 @@ internal sealed class CommandHandler : IDisposable QuestRegistry questRegistry, ConfigWindow configWindow, DebugOverlay debugOverlay, + OneTimeSetupWindow oneTimeSetupWindow, QuestWindow questWindow, QuestSelectionWindow questSelectionWindow, ITargetManager targetManager, QuestFunctions questFunctions, GameFunctions gameFunctions, - IDataManager dataManager) + IDataManager dataManager, + Configuration configuration) { _commandManager = commandManager; _chatGui = chatGui; @@ -53,12 +57,14 @@ internal sealed class CommandHandler : IDisposable _questRegistry = questRegistry; _configWindow = configWindow; _debugOverlay = debugOverlay; + _oneTimeSetupWindow = oneTimeSetupWindow; _questWindow = questWindow; _questSelectionWindow = questSelectionWindow; _targetManager = targetManager; _questFunctions = questFunctions; _gameFunctions = gameFunctions; _dataManager = dataManager; + _configuration = configuration; _commandManager.AddHandler("/qst", new CommandInfo(ProcessCommand) { @@ -75,6 +81,15 @@ internal sealed class CommandHandler : IDisposable private void ProcessCommand(string command, string arguments) { + if (!_configuration.IsPluginSetupComplete()) + { + if (string.IsNullOrEmpty(arguments)) + _oneTimeSetupWindow.IsOpen = true; + else + _chatGui.PrintError("Please complete the one-time setup first.", MessageTag, TagColor); + return; + } + string[] parts = arguments.Split(' '); switch (parts[0]) { diff --git a/Questionable/DalamudInitializer.cs b/Questionable/DalamudInitializer.cs index 78ac865ce..a4b228d92 100644 --- a/Questionable/DalamudInitializer.cs +++ b/Questionable/DalamudInitializer.cs @@ -18,9 +18,11 @@ internal sealed class DalamudInitializer : IDisposable private readonly QuestController _questController; private readonly MovementController _movementController; private readonly WindowSystem _windowSystem; + private readonly OneTimeSetupWindow _oneTimeSetupWindow; private readonly QuestWindow _questWindow; private readonly ConfigWindow _configWindow; private readonly IToastGui _toastGui; + private readonly Configuration _configuration; private readonly ILogger _logger; public DalamudInitializer( @@ -30,6 +32,7 @@ internal sealed class DalamudInitializer : IDisposable MovementController movementController, InteractionUiController interactionUiController, WindowSystem windowSystem, + OneTimeSetupWindow oneTimeSetupWindow, QuestWindow questWindow, DebugOverlay debugOverlay, ConfigWindow configWindow, @@ -38,6 +41,7 @@ internal sealed class DalamudInitializer : IDisposable JournalProgressWindow journalProgressWindow, PriorityWindow priorityWindow, IToastGui toastGui, + Configuration configuration, ILogger logger) { _pluginInterface = pluginInterface; @@ -45,11 +49,14 @@ internal sealed class DalamudInitializer : IDisposable _questController = questController; _movementController = movementController; _windowSystem = windowSystem; + _oneTimeSetupWindow = oneTimeSetupWindow; _questWindow = questWindow; _configWindow = configWindow; _toastGui = toastGui; + _configuration = configuration; _logger = logger; + _windowSystem.AddWindow(oneTimeSetupWindow); _windowSystem.AddWindow(questWindow); _windowSystem.AddWindow(configWindow); _windowSystem.AddWindow(debugOverlay); @@ -59,7 +66,7 @@ internal sealed class DalamudInitializer : IDisposable _windowSystem.AddWindow(priorityWindow); _pluginInterface.UiBuilder.Draw += _windowSystem.Draw; - _pluginInterface.UiBuilder.OpenMainUi += _questWindow.Toggle; + _pluginInterface.UiBuilder.OpenMainUi += ToggleQuestWindow; _pluginInterface.UiBuilder.OpenConfigUi += _configWindow.Toggle; _framework.Update += FrameworkUpdate; _framework.RunOnTick(interactionUiController.HandleCurrentDialogueChoices, TimeSpan.FromMilliseconds(200)); @@ -91,6 +98,14 @@ internal sealed class DalamudInitializer : IDisposable private void OnQuestToast(ref SeString message, ref QuestToastOptions options, ref bool isHandled) => _logger.LogTrace("Quest Toast: {Message}", message); + private void ToggleQuestWindow() + { + if (_configuration.IsPluginSetupComplete()) + _questWindow.Toggle(); + else + _oneTimeSetupWindow.IsOpen = true; + } + public void Dispose() { _toastGui.QuestToast -= OnQuestToast; @@ -98,7 +113,7 @@ internal sealed class DalamudInitializer : IDisposable _toastGui.Toast -= OnToast; _framework.Update -= FrameworkUpdate; _pluginInterface.UiBuilder.OpenConfigUi -= _configWindow.Toggle; - _pluginInterface.UiBuilder.OpenMainUi -= _questWindow.Toggle; + _pluginInterface.UiBuilder.OpenMainUi -= ToggleQuestWindow; _pluginInterface.UiBuilder.Draw -= _windowSystem.Draw; _windowSystem.RemoveAllWindows(); diff --git a/Questionable/QuestionablePlugin.cs b/Questionable/QuestionablePlugin.cs index bac542419..5e8dc11d8 100644 --- a/Questionable/QuestionablePlugin.cs +++ b/Questionable/QuestionablePlugin.cs @@ -6,6 +6,7 @@ using Dalamud.Game.ClientState.Objects; using Dalamud.Interface.Windowing; using Dalamud.Plugin; using Dalamud.Plugin.Services; +using LLib; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; using Questionable.Controller; @@ -110,6 +111,7 @@ public sealed class QuestionablePlugin : IDalamudPlugin serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); + serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); @@ -255,6 +257,7 @@ public sealed class QuestionablePlugin : IDalamudPlugin serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); + serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); diff --git a/Questionable/Windows/OneTimeSetupWindow.cs b/Questionable/Windows/OneTimeSetupWindow.cs new file mode 100644 index 000000000..2e8ac1ff5 --- /dev/null +++ b/Questionable/Windows/OneTimeSetupWindow.cs @@ -0,0 +1,164 @@ +using System; +using System.Collections.Generic; +using Dalamud.Interface; +using Dalamud.Interface.Colors; +using Dalamud.Interface.Components; +using Dalamud.Interface.Utility.Raii; +using Dalamud.Plugin; +using Dalamud.Utility; +using ImGuiNET; +using LLib; +using LLib.ImGui; +using Microsoft.Extensions.Logging; + +namespace Questionable.Windows; + +internal sealed class OneTimeSetupWindow : LWindow, IDisposable +{ + private static readonly IReadOnlyList RequiredPlugins = + [ + new("vnavmesh", + """ + vnavmesh handles the navigation within a zone, moving + your character to the next quest-related objective. + """, + new Uri("https://github.com/awgil/ffxiv_navmesh/")), + new("Lifestream", + """ + Used to travel to aethernet shards in cities. + """, + new Uri("https://github.com/NightmareXIV/Lifestream")), + new("TextAdvance", + """ + Automatically accepts and turns in quests, skips cutscenes + and dialogue. + """, + new Uri("https://github.com/NightmareXIV/TextAdvance")), + ]; + + private static readonly IReadOnlyList RecommendedPlugins = + [ + new("Rotation Solver Reborn", + """ + Automatically handles most combat interactions you encounter + during quests, including being interrupted by mobs. + """, + new Uri("https://github.com/FFXIV-CombatReborn/RotationSolverReborn")), + ]; + + private readonly Configuration _configuration; + private readonly IDalamudPluginInterface _pluginInterface; + private readonly UiUtils _uiUtils; + private readonly DalamudReflector _dalamudReflector; + private readonly ILogger _logger; + + public OneTimeSetupWindow(Configuration configuration, IDalamudPluginInterface pluginInterface, UiUtils uiUtils, + DalamudReflector dalamudReflector, ILogger logger) + : base("Questionable Setup###QuestionableOneTimeSetup", + ImGuiWindowFlags.NoCollapse | ImGuiWindowFlags.AlwaysAutoResize | ImGuiWindowFlags.NoSavedSettings, true) + { + _configuration = configuration; + _pluginInterface = pluginInterface; + _uiUtils = uiUtils; + _dalamudReflector = dalamudReflector; + _logger = logger; + + RespectCloseHotkey = false; + ShowCloseButton = false; + AllowPinning = false; + AllowClickthrough = false; + IsOpen = !_configuration.IsPluginSetupComplete(); + _logger.LogInformation("One-time setup needed: {IsOpen}", IsOpen); + } + + public override void Draw() + { + float checklistPadding; + using (_pluginInterface.UiBuilder.IconFontFixedWidthHandle.Push()) + { + checklistPadding = ImGui.CalcTextSize(FontAwesomeIcon.Check.ToIconString()).X + + ImGui.GetStyle().ItemSpacing.X; + } + + ImGui.Text("Questionable requires the following plugins to work:"); + bool allRequiredInstalled = true; + using (ImRaii.PushIndent()) + { + foreach (var plugin in RequiredPlugins) + allRequiredInstalled &= DrawPlugin(plugin, checklistPadding); + } + + ImGui.Spacing(); + ImGui.Separator(); + ImGui.Spacing(); + + ImGui.Text("The following plugins are recommended, but not required:"); + using (ImRaii.PushIndent()) + { + foreach (var plugin in RecommendedPlugins) + DrawPlugin(plugin, checklistPadding); + } + + ImGui.Spacing(); + ImGui.Separator(); + ImGui.Spacing(); + + if (allRequiredInstalled) + { + using (ImRaii.PushColor(ImGuiCol.Text, ImGuiColors.ParsedGreen)) + { + if (ImGuiComponents.IconButtonWithText(FontAwesomeIcon.Check, "Finish Setup")) + { + _configuration.MarkPluginSetupComplete(); + _pluginInterface.SavePluginConfig(_configuration); + } + } + } + else + { + using (ImRaii.Disabled()) + { + using (ImRaii.PushColor(ImGuiCol.Text, ImGuiColors.DalamudRed)) + ImGuiComponents.IconButtonWithText(FontAwesomeIcon.Check, "Missing required plugins"); + } + } + + ImGui.SameLine(); + + if (ImGuiComponents.IconButtonWithText(FontAwesomeIcon.Times, "Close window & don't enable Questionable")) + { + IsOpen = false; + } + } + + private bool DrawPlugin(PluginInfo plugin, float checklistPadding) + { + bool isInstalled = IsPluginInstalled(plugin.DisplayName); + using (ImRaii.PushId("plugin_" + plugin.DisplayName)) + { + _uiUtils.ChecklistItem(plugin.DisplayName, isInstalled); + using (ImRaii.PushIndent(checklistPadding)) + { + ImGui.TextUnformatted(plugin.Details); + if (!isInstalled && ImGui.Button("Open Repository")) + Util.OpenLink(plugin.Uri.ToString()); + } + } + + return isInstalled; + } + + private bool IsPluginInstalled(string internalName) + { + return _dalamudReflector.TryGetDalamudPlugin(internalName, out _, suppressErrors: true, ignoreCache: true); + } + + public void Dispose() + { + } + + private sealed record PluginInfo( + string DisplayName, + string Details, + Uri Uri); +} diff --git a/Questionable/Windows/QuestWindow.cs b/Questionable/Windows/QuestWindow.cs index 37724c8ce..1deaf934c 100644 --- a/Questionable/Windows/QuestWindow.cs +++ b/Questionable/Windows/QuestWindow.cs @@ -113,6 +113,9 @@ internal sealed class QuestWindow : LWindow, IPersistableWindowConfig public override bool DrawConditions() { + if (!_configuration.IsPluginSetupComplete()) + return false; + if (!_clientState.IsLoggedIn || _clientState.LocalPlayer == null || _clientState.IsPvPExcludingDen) return false; -- 2.45.2 From 9aad77e486f3d150ebb3315aa991b7f41c7609dc Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sun, 3 Nov 2024 19:28:16 +0100 Subject: [PATCH 197/448] Close window when clicking 'FInish setup' --- Questionable/Windows/OneTimeSetupWindow.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/Questionable/Windows/OneTimeSetupWindow.cs b/Questionable/Windows/OneTimeSetupWindow.cs index 2e8ac1ff5..6026bafef 100644 --- a/Questionable/Windows/OneTimeSetupWindow.cs +++ b/Questionable/Windows/OneTimeSetupWindow.cs @@ -111,6 +111,7 @@ internal sealed class OneTimeSetupWindow : LWindow, IDisposable { _configuration.MarkPluginSetupComplete(); _pluginInterface.SavePluginConfig(_configuration); + IsOpen = false; } } } -- 2.45.2 From 1f5b9ac687702c26b02535a19697606d4c2f0a5e Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sun, 3 Nov 2024 20:18:00 +0100 Subject: [PATCH 198/448] Update THM paths; fix /cry being the wrong emote --- .../BLM/346_My First Scepter.json | 2 +- .../BLM/347_The Threat of Intimacy.json | 13 +- .../BLM/349_The Threat of Paucity.json | 142 +++++++++++------- .../BLM/350_The Threat of Superiority.json | 8 +- .../BLM/353_Facing Your Demons.json | 27 ++-- .../Questing/Converter/EmoteConverter.cs | 2 +- Questionable.Model/Questing/EEmote.cs | 2 +- 7 files changed, 119 insertions(+), 77 deletions(-) diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/BLM/346_My First Scepter.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/BLM/346_My First Scepter.json index 160be2559..74f4a3d3e 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/BLM/346_My First Scepter.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/BLM/346_My First Scepter.json @@ -103,7 +103,7 @@ "Y": 3.082914, "Z": 272.46896 }, - "TerritoryId": 148, + "TerritoryId": 141, "InteractionType": "Combat", "EnemySpawnType": "OverworldEnemies", "ComplexCombatData": [ diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/BLM/347_The Threat of Intimacy.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/BLM/347_The Threat of Intimacy.json index 83f8fccdd..d257b9b6e 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/BLM/347_The Threat of Intimacy.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/BLM/347_The Threat of Intimacy.json @@ -93,6 +93,16 @@ { "Sequence": 4, "Steps": [ + { + "Position": { + "X": -253.97243, + "Y": 33.2412, + "Z": 408.68488 + }, + "TerritoryId": 140, + "InteractionType": "WalkTo", + "Fly": true + }, { "DataId": 1002027, "Position": { @@ -101,8 +111,7 @@ "Z": 407.27856 }, "TerritoryId": 140, - "InteractionType": "Interact", - "Fly": true + "InteractionType": "Interact" } ] }, diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/BLM/349_The Threat of Paucity.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/BLM/349_The Threat of Paucity.json index db9410cbd..fdcc2b859 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/BLM/349_The Threat of Paucity.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/BLM/349_The Threat of Paucity.json @@ -33,9 +33,9 @@ { "DataId": 1001710, "Position": { - "X": -240.2533, - "Y": 18.8, - "Z": 86.900024 + "X": -240.2533, + "Y": 18.8, + "Z": 86.900024 }, "TerritoryId": 130, "InteractionType": "Interact" @@ -43,49 +43,79 @@ ] }, { - "Sequence": 2, - "Steps": [ - { - "Position": { - "X": 149.07747, - "Y": -2, - "Z": -225.21188 + "Sequence": 2, + "Steps": [ + { + "TerritoryId": 130, + "InteractionType": "None", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Thaumaturges' Guild", + "[Ul'dah] Gate of Nald (Central Thanalan)" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 141 + ], + "AetheryteUnlocked": "Central Thanalan - Black Brush Station" }, - "TerritoryId": 141, - "AetheryteShortcut": "Ul'dah", - "AethernetShortcut": [ - "[Ul'dah] Thaumaturges' Guild", - "[Ul'dah] Gate of Nald (Central Thanalan)" - ], - "SkipConditions": { - "AetheryteShortcutIf": { - "InSameTerritory": true, - "InTerritory": [ - 141 - ] - } - }, - "InteractionType": "Combat", - "EnemySpawnType": "OverworldEnemies", - "ComplexCombatData": [ - { - "DataId": 160, - "MinimumKillCount": 8, - "$": "Slay efts", - "CompletionQuestVariablesFlags": [ - { - "Low": 8 - }, - null, - null, - null, - null, - null - ] - } - ] + "AethernetShortcutIf": { + "AetheryteUnlocked": "Central Thanalan - Black Brush Station" + } } - ] + }, + { + "Position": { + "X": -62.183617, + "Y": -3.6582246, + "Z": 145.88391 + }, + "InteractionType": "WalkTo", + "TerritoryId": 141, + "SkipConditions": { + "StepIf": { + "Flying": "Unlocked", + "AetheryteUnlocked": "Central Thanalan - Black Brush Station" + } + } + }, + { + "Position": { + "X": 149.07747, + "Y": -2, + "Z": -225.21188 + }, + "TerritoryId": 141, + "AetheryteShortcut": "Central Thanalan - Black Brush Station", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + }, + "Fly": true, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "ComplexCombatData": [ + { + "DataId": 160, + "MinimumKillCount": 8, + "$": "Slay efts", + "CompletionQuestVariablesFlags": [ + { + "Low": 8 + }, + null, + null, + null, + null, + null + ] + } + ] + } + ] }, { "Sequence": 3, @@ -93,9 +123,9 @@ { "DataId": 1001710, "Position": { - "X": -240.2533, - "Y": 18.8, - "Z": 86.900024 + "X": -240.2533, + "Y": 18.8, + "Z": 86.900024 }, "TerritoryId": 130, "InteractionType": "Interact", @@ -125,9 +155,9 @@ { "DataId": 2001512, "Position": { - "X": -366.29285, - "Y": -34.989014, - "Z": 293.56824 + "X": -366.29285, + "Y": -34.989014, + "Z": 293.56824 }, "TerritoryId": 145, "InteractionType": "Combat", @@ -151,9 +181,9 @@ { "DataId": 2001499, "Position": { - "X": -366.29285, - "Y": -34.989014, - "Z": 293.56824 + "X": -366.29285, + "Y": -34.989014, + "Z": 293.56824 }, "TerritoryId": 145, "InteractionType": "Interact" @@ -166,9 +196,9 @@ { "DataId": 1001710, "Position": { - "X": -240.2533, - "Y": 18.8, - "Z": 86.900024 + "X": -240.2533, + "Y": 18.8, + "Z": 86.900024 }, "TerritoryId": 130, "InteractionType": "CompleteQuest", diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/BLM/350_The Threat of Superiority.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/BLM/350_The Threat of Superiority.json index 3f4f94e38..4057558e9 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/BLM/350_The Threat of Superiority.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/BLM/350_The Threat of Superiority.json @@ -121,11 +121,11 @@ "Sequence": 255, "Steps": [ { - "DataId": 1001710, + "DataId": 1001711, "Position": { - "X": -240.2533, - "Y": 18.8, - "Z": 86.900024 + "X": -241.62665, + "Y": 18.8, + "Z": 83.32947 }, "TerritoryId": 130, "InteractionType": "CompleteQuest", diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/BLM/353_Facing Your Demons.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/BLM/353_Facing Your Demons.json index 7465e765c..073489d1e 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/BLM/353_Facing Your Demons.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/BLM/353_Facing Your Demons.json @@ -34,19 +34,12 @@ "Sequence": 1, "Steps": [ { - "DataId": 1004094, - "Position": { - "X": -413.47375, - "Y": 23.113977, - "Z": -383.71863 - }, - "TerritoryId": 140, - "InteractionType": "Interact", - "AetheryteShortcut": "Western Thanalan - Horizon", - "Fly": true, + "TerritoryId": 145, + "InteractionType": "UseItem", + "ItemId": 30362, + "TargetTerritoryId": 140, "SkipConditions": { - "AetheryteShortcutIf": { - "InSameTerritory": true, + "StepIf": { "InTerritory": [ 140 ] @@ -72,6 +65,16 @@ }, "TerritoryId": 140, "InteractionType": "Interact" + }, + { + "DataId": 1004094, + "Position": { + "X": -413.47375, + "Y": 23.113977, + "Z": -383.71863 + }, + "TerritoryId": 140, + "InteractionType": "Interact" } ] }, diff --git a/Questionable.Model/Questing/Converter/EmoteConverter.cs b/Questionable.Model/Questing/Converter/EmoteConverter.cs index 9b0071788..3e7cb2cb2 100644 --- a/Questionable.Model/Questing/Converter/EmoteConverter.cs +++ b/Questionable.Model/Questing/Converter/EmoteConverter.cs @@ -11,6 +11,7 @@ public sealed class EmoteConverter() : EnumConverter(Values) { EEmote.Cheer, "cheer" }, { EEmote.Clap, "clap" }, { EEmote.Comfort, "comfort" }, + { EEmote.Cry, "cry" }, { EEmote.Dance, "dance" }, { EEmote.Doubt, "doubt" }, { EEmote.Doze, "doze" }, @@ -31,7 +32,6 @@ public sealed class EmoteConverter() : EnumConverter(Values) { EEmote.Disappointed, "disappointed" }, { EEmote.Pray, "pray" }, { EEmote.ImperialSalute, "imperialsalute" }, - { EEmote.Cry, "cry" }, { EEmote.Pet, "pet" }, { EEmote.Slap, "slap" }, { EEmote.SundropDance, "sundropdance"}, diff --git a/Questionable.Model/Questing/EEmote.cs b/Questionable.Model/Questing/EEmote.cs index 1056d9aea..933426660 100644 --- a/Questionable.Model/Questing/EEmote.cs +++ b/Questionable.Model/Questing/EEmote.cs @@ -12,6 +12,7 @@ public enum EEmote Cheer = 6, Clap = 7, Comfort = 9, + Cry = 10, Dance = 11, Doubt = 12, Doze = 13, @@ -32,7 +33,6 @@ public enum EEmote Disappointed = 49, Pray = 58, ImperialSalute = 59, - Cry = 74, Pet = 105, Slap = 111, SundropDance = 120, -- 2.45.2 From fb0180ce3b29c2414df0ee112a019463890b5e04 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sun, 3 Nov 2024 20:42:33 +0100 Subject: [PATCH 199/448] Minor DRG updates --- .../DRG/1693_Dragoon's Errand.json | 313 +++++++++--------- .../Controller/Steps/Shared/MoveTo.cs | 1 + 2 files changed, 161 insertions(+), 153 deletions(-) diff --git a/QuestPaths/3.x - Heavensward/Class Quests/DRG/1693_Dragoon's Errand.json b/QuestPaths/3.x - Heavensward/Class Quests/DRG/1693_Dragoon's Errand.json index bf8e87a2b..0dc347150 100644 --- a/QuestPaths/3.x - Heavensward/Class Quests/DRG/1693_Dragoon's Errand.json +++ b/QuestPaths/3.x - Heavensward/Class Quests/DRG/1693_Dragoon's Errand.json @@ -1,158 +1,165 @@ { - "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "AnimaMachinae", - "QuestSequence": [ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "AnimaMachinae", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ { - "Sequence": 0, - "Steps": [ - { - "Position": { - "X": 215.65454, - "Y": 222.1, - "Z": 345.1806 - }, - "TerritoryId": 155, - "InteractionType": "WalkTo", - "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", - "Land": true, - "Fly": true, - "SkipConditions": { - "AetheryteShortcutIf": { - "InSameTerritory": true - } - }, - "$": "Alberic" - }, - { - "DataId": 1006748, - "Position": { - "X": 217.88354, - "Y": 222, - "Z": 345.3269 - }, - "TerritoryId": 155, - "InteractionType": "AcceptQuest" - } - ] + "Position": { + "X": 215.65454, + "Y": 222.1, + "Z": 345.1806 + }, + "TerritoryId": 155, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", + "Land": true, + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + }, + "$": "Alberic" }, { - "Sequence": 1, - "Steps": [ - { - "Position": { - "X": -48.009445, - "Y": 98.00955, - "Z": 106.47891 - }, - "TerritoryId": 397, - "InteractionType": "WalkTo", - "AetheryteShortcut": "Coerthas Western Highlands - Falcon's Nest", - "Fly": true, - "Land": true - }, - { - "DataId": 1013467, - "Position": { - "X": -51.10254, - "Y": 98.63026, - "Z": 105.1499 - }, - "TerritoryId": 397, - "InteractionType": "Interact" - } - ] - }, - { - "Sequence": 2, - "Steps": [ - { - "DataId": 1013466, - "Position": { - "X": -155.5047, - "Y": 175.79733, - "Z": 693.26306 - }, - "TerritoryId": 397, - "InteractionType": "Combat", - "Fly": true, - "Land": true, - "EnemySpawnType": "AutoOnEnterArea", - "KillEnemyDataIds": [ - 4482, - 5049 - ], - "CompletionQuestVariablesFlags": [ - 2, - null, - null, - null, - null, - null - ] - }, - { - "DataId": 1013466, - "Position": { - "X": -155.5047, - "Y": 175.79733, - "Z": 693.26306 - }, - "TerritoryId": 397, - "InteractionType": "Interact" - } - ] - }, - { - "Sequence": 3, - "Steps": [ - { - "DataId": 1012163, - "Position": { - "X": 128.25195, - "Y": 24.458832, - "Z": -0.6867676 - }, - "TerritoryId": 418, - "InteractionType": "Interact", - "AetheryteShortcut": "Ishgard", - "AethernetShortcut": [ - "[Ishgard] Aetheryte Plaza", - "[Ishgard] The Forgotten Knight" - ], - "SkipConditions": { - "AetheryteShortcutIf": { - "InSameTerritory": true - } - } - } - ] - }, - { - "Sequence": 255, - "Steps": [ - { - "Position": { - "X": 215.65454, - "Y": 222.1, - "Z": 345.1806 - }, - "TerritoryId": 155, - "InteractionType": "WalkTo", - "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", - "Land": true, - "Fly": true - }, - { - "DataId": 1013470, - "Position": { - "X": 218.00562, - "Y": 222, - "Z": 346.45605 - }, - "TerritoryId": 155, - "InteractionType": "CompleteQuest" - } - ] + "DataId": 1006748, + "Position": { + "X": 217.88354, + "Y": 222, + "Z": 345.3269 + }, + "TerritoryId": 155, + "InteractionType": "AcceptQuest" } - ] -} \ No newline at end of file + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": -48.009445, + "Y": 98.00955, + "Z": 106.47891 + }, + "TerritoryId": 397, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Coerthas Western Highlands - Falcon's Nest", + "Fly": true, + "Land": true + }, + { + "DataId": 1013467, + "Position": { + "X": -51.10254, + "Y": 98.63026, + "Z": 105.1499 + }, + "TerritoryId": 397, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1013466, + "Position": { + "X": -155.5047, + "Y": 175.79733, + "Z": 693.26306 + }, + "TerritoryId": 397, + "InteractionType": "Combat", + "Fly": true, + "Land": true, + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [ + 4482, + 5049 + ], + "CompletionQuestVariablesFlags": [ + 2, + null, + null, + null, + null, + null + ] + }, + { + "DataId": 1013466, + "Position": { + "X": -155.5047, + "Y": 175.79733, + "Z": 693.26306 + }, + "TerritoryId": 397, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1012163, + "Position": { + "X": 128.25195, + "Y": 24.458832, + "Z": -0.6867676 + }, + "TerritoryId": 418, + "InteractionType": "Interact", + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] The Forgotten Knight" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": 215.65454, + "Y": 222.1, + "Z": 345.1806 + }, + "TerritoryId": 155, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", + "Land": true, + "Fly": true + }, + { + "DataId": 1013470, + "Position": { + "X": 218.00562, + "Y": 222, + "Z": 346.45605 + }, + "TerritoryId": 155, + "InteractionType": "CompleteQuest", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_JOBDRG560_01693_Q1_000_000", + "Answer": "TEXT_JOBDRG560_01693_A1_000_002" + } + ] + } + ] + } + ] +} diff --git a/Questionable/Controller/Steps/Shared/MoveTo.cs b/Questionable/Controller/Steps/Shared/MoveTo.cs index bd62ea139..89b7170a0 100644 --- a/Questionable/Controller/Steps/Shared/MoveTo.cs +++ b/Questionable/Controller/Steps/Shared/MoveTo.cs @@ -325,6 +325,7 @@ internal static class MoveTo internal sealed class LandTask : ITask { public bool ShouldRedoOnInterrupt() => true; + public override string ToString() => "Land"; } internal sealed class LandExecutor(IClientState clientState, ICondition condition, ILogger logger) : TaskExecutor -- 2.45.2 From cc3dc7b4ffae5a6af69833d9905bb1ceecce8b35 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sun, 3 Nov 2024 20:56:22 +0100 Subject: [PATCH 200/448] Add second half of 'The Merchant of Komra' --- .../4051_The Merchant of Komra.json | 98 +++++++++++++++---- 1 file changed, 80 insertions(+), 18 deletions(-) diff --git a/QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/4051_The Merchant of Komra.json b/QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/4051_The Merchant of Komra.json index 9ce484837..b7a276092 100644 --- a/QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/4051_The Merchant of Komra.json +++ b/QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/4051_The Merchant of Komra.json @@ -130,6 +130,16 @@ "TerritoryId": 928, "InteractionType": "Interact", "DisableNavmesh": true, + "RequiredQuestVariables": [ + null, + null, + null, + [ + 1 + ], + null, + null + ], "CompletionQuestVariablesFlags": [ null, null, @@ -237,12 +247,7 @@ null, 64 ] - } - ] - }, - { - "Sequence": 255, - "Steps": [ + }, { "Position": { "X": -305.8408, @@ -251,7 +256,16 @@ }, "TerritoryId": 928, "InteractionType": "WalkTo", - "RestartNavigationIfCancelled": false + "RestartNavigationIfCancelled": false, + "DelaySecondsAtStart": 2, + "RequiredQuestVariables": [ + null, + null, + null, + [2], + null, + null + ] }, { "TerritoryId": 928, @@ -259,27 +273,74 @@ "DelaySecondsAtStart": 2 }, { - "DataId": 2011237, "Position": { - "X": -366.47595, - "Y": -241.35199, - "Z": -339.07074 + "X": -366.50647, + "Y": -241.32147, + "Z": -311.57397 }, + "StopDistance": 0.5, "TerritoryId": 928, - "InteractionType": "Interact", - "TargetTerritoryId": 928 + "InteractionType": "Jump", + "JumpDestination": { + "DataId": 2011269, + "Position": { + "X": -366.558, + "Y": -249.74661, + "Z": -301.74612 + } + }, + "DelaySecondsAtStart": 2, + "RequiredQuestVariables": [ + null, + null, + null, + [2], + null, + null + ] }, { - "DataId": 2011155, + "DataId": 2011269, "Position": { - "X": -383.81018, - "Y": 102.89148, - "Z": 389.12024 + "X": -366.50647, + "Y": -248.43219, + "Z": -285.6947 }, "TerritoryId": 928, "InteractionType": "Interact", - "TargetTerritoryId": 814 + "TargetTerritoryId": 928, + "RequiredQuestVariables": [ + null, + null, + null, + [2], + null, + null + ] }, + { + "DataId": 2011459, + "Position": { + "X": 205.8899, + "Y": -500.0229, + "Z": -167.86456 + }, + "TerritoryId": 928, + "InteractionType": "Interact", + "RequiredQuestVariables": [ + null, + null, + null, + [2], + null, + null + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ { "DataId": 1036043, "Position": { @@ -289,6 +350,7 @@ }, "TerritoryId": 814, "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Kholusia - Stilltide", "Fly": true } ] -- 2.45.2 From eb81c74930ef5ac0ff79d598bb661d2ec0eab86b Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sun, 3 Nov 2024 21:26:57 +0100 Subject: [PATCH 201/448] Add missing SB MCH quests --- .../MCH/2905_The Machinists' Choice.json | 141 +++++++ .../MCH/2906_The Hrunting Heist.json | 145 +++++++ .../MCH/2907_Release the Hounds.json | 239 ++++++------ .../MCH/2908_Snouts Down, Tails Up.json | 354 +++++++++--------- .../MCH/2909_The Mongrel and the Knight.json | 194 +++++----- 5 files changed, 690 insertions(+), 383 deletions(-) create mode 100644 QuestPaths/4.x - Stormblood/Class Quests/MCH/2905_The Machinists' Choice.json create mode 100644 QuestPaths/4.x - Stormblood/Class Quests/MCH/2906_The Hrunting Heist.json diff --git a/QuestPaths/4.x - Stormblood/Class Quests/MCH/2905_The Machinists' Choice.json b/QuestPaths/4.x - Stormblood/Class Quests/MCH/2905_The Machinists' Choice.json new file mode 100644 index 000000000..9a904e25d --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/MCH/2905_The Machinists' Choice.json @@ -0,0 +1,141 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1014577, + "Position": { + "X": -154.31458, + "Y": 16.999992, + "Z": -53.3609 + }, + "TerritoryId": 418, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] Skysteel Manufactory" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1022146, + "Position": { + "X": 56.321045, + "Y": 207.33994, + "Z": -31.937195 + }, + "TerritoryId": 478, + "InteractionType": "Interact", + "AetheryteShortcut": "Idyllshire" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1017656, + "Position": { + "X": 70.7561, + "Y": 207.28993, + "Z": 0.59503174 + }, + "TerritoryId": 478, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 1013721, + "Position": { + "X": 17.380005, + "Y": 205.38686, + "Z": 37.491333 + }, + "TerritoryId": 478, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 1012133, + "Position": { + "X": -26.840637, + "Y": 206.49944, + "Z": 28.67163 + }, + "TerritoryId": 478, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1022148, + "Position": { + "X": -78.965515, + "Y": 206.50021, + "Z": 23.575134 + }, + "TerritoryId": 478, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1012251, + "Position": { + "X": 12.313965, + "Y": -12.020877, + "Z": 40.268433 + }, + "TerritoryId": 418, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] The Brume" + ] + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Class Quests/MCH/2906_The Hrunting Heist.json b/QuestPaths/4.x - Stormblood/Class Quests/MCH/2906_The Hrunting Heist.json new file mode 100644 index 000000000..e92ab1fe9 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/MCH/2906_The Hrunting Heist.json @@ -0,0 +1,145 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1012251, + "Position": { + "X": 12.313965, + "Y": -12.020877, + "Z": 40.268433 + }, + "TerritoryId": 418, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] The Brume" + ], + "SkipConditions": { + "AethernetShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1022151, + "Position": { + "X": 115.098755, + "Y": 24.398598, + "Z": 2.822876 + }, + "TerritoryId": 418, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Ishgard] The Brume", + "[Ishgard] The Forgotten Knight" + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1022152, + "Position": { + "X": 3.9215698, + "Y": 27.790508, + "Z": -150.83551 + }, + "TerritoryId": 419, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Ishgard] The Forgotten Knight", + "[Ishgard] Saint Reymanaud's Cathedral" + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1014577, + "Position": { + "X": -154.31458, + "Y": 16.999992, + "Z": -53.3609 + }, + "TerritoryId": 418, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Ishgard] Saint Reymanaud's Cathedral", + "[Ishgard] Skysteel Manufactory" + ] + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "Position": { + "X": 660.36426, + "Y": 202.54167, + "Z": -180.60214 + }, + "StopDistance": 1, + "TerritoryId": 397, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [ + 7486 + ], + "AetheryteShortcut": "Coerthas Western Highlands - Falcon's Nest", + "Fly": true + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1022153, + "Position": { + "X": 662.95874, + "Y": 202.59106, + "Z": -177.14203 + }, + "StopDistance": 7, + "TerritoryId": 397, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1012251, + "Position": { + "X": 12.313965, + "Y": -12.020877, + "Z": 40.268433 + }, + "TerritoryId": 418, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] The Brume" + ] + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Class Quests/MCH/2907_Release the Hounds.json b/QuestPaths/4.x - Stormblood/Class Quests/MCH/2907_Release the Hounds.json index c0f8cc4dd..f4124deea 100644 --- a/QuestPaths/4.x - Stormblood/Class Quests/MCH/2907_Release the Hounds.json +++ b/QuestPaths/4.x - Stormblood/Class Quests/MCH/2907_Release the Hounds.json @@ -1,118 +1,127 @@ { - "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "UcanPatates", - "QuestSequence": [ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "UcanPatates", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ { - "Sequence": 0, - "Steps": [ - { - "DataId": 1012251, - "Position": { - "X": 12.313965, - "Y": -12.020877, - "Z": 40.268433 - }, - "TerritoryId": 418, - "InteractionType": "AcceptQuest", - "AetheryteShortcut": "Ishgard", - "SkipConditions": { - "AetheryteShortcutIf": { - "InSameTerritory": true - } - } - } - ] - }, - { - "Sequence": 1, - "Steps": [ - { - "DataId": 1022157, - "Position": { - "X": -323.9643, - "Y": 239.9684, - "Z": 372.91516 - }, - "TerritoryId": 155, - "InteractionType": "Interact", - "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", - "Fly": true, - "SkipConditions": { - "AetheryteShortcutIf": { - "InSameTerritory": true - } - } - } - ] - }, - { - "Sequence": 2, - "Steps": [ - { - "DataId": 1022163, - "Position": { - "X": -395.95636, - "Y": 240.14958, - "Z": 340.59656 - }, - "TerritoryId": 155, - "InteractionType": "SinglePlayerDuty", - "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", - "Fly": true, - "SkipConditions": { - "AetheryteShortcutIf": { - "InSameTerritory": true - } - } - } - ] - }, - { - "Sequence": 3, - "Steps": [ - ] - }, - { - "Sequence": 4, - "Steps": [ - { - "DataId": 1022167, - "Position": { - "X": -385.36664, - "Y": 232.23338, - "Z": 314.65625 - }, - "TerritoryId": 155, - "InteractionType": "Interact", - "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", - "SkipConditions": { - "AetheryteShortcutIf": { - "InSameTerritory": true - } - } - } - ] - }, - { - "Sequence": 255, - "Steps": [ - { - "DataId": 1012251, - "Position": { - "X": 12.313965, - "Y": -12.020877, - "Z": 40.268433 - }, - "TerritoryId": 418, - "InteractionType": "CompleteQuest", - "AetheryteShortcut": "Ishgard", - "SkipConditions": { - "AetheryteShortcutIf": { - "InSameTerritory": true - } - } - } - ] + "DataId": 1012251, + "Position": { + "X": 12.313965, + "Y": -12.020877, + "Z": 40.268433 + }, + "TerritoryId": 418, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] The Brume" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } } - ] -} \ No newline at end of file + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1022157, + "Position": { + "X": -323.9643, + "Y": 239.9684, + "Z": 372.91516 + }, + "TerritoryId": 155, + "InteractionType": "Interact", + "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1022163, + "Position": { + "X": -395.95636, + "Y": 240.14958, + "Z": 340.59656 + }, + "TerritoryId": 155, + "InteractionType": "SinglePlayerDuty", + "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 3, + "Steps": [ + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1022167, + "Position": { + "X": -385.36664, + "Y": 232.23338, + "Z": 314.65625 + }, + "StopDistance": 5, + "TerritoryId": 155, + "InteractionType": "Interact", + "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1012251, + "Position": { + "X": 12.313965, + "Y": -12.020877, + "Z": 40.268433 + }, + "TerritoryId": 418, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] The Brume" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Class Quests/MCH/2908_Snouts Down, Tails Up.json b/QuestPaths/4.x - Stormblood/Class Quests/MCH/2908_Snouts Down, Tails Up.json index ddb138dad..edbc70497 100644 --- a/QuestPaths/4.x - Stormblood/Class Quests/MCH/2908_Snouts Down, Tails Up.json +++ b/QuestPaths/4.x - Stormblood/Class Quests/MCH/2908_Snouts Down, Tails Up.json @@ -1,176 +1,184 @@ { - "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "UcanPatates", - "QuestSequence": [ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "UcanPatates", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ { - "Sequence": 0, - "Steps": [ - { - "DataId": 1012251, - "Position": { - "X": 12.313965, - "Y": -12.020877, - "Z": 40.268433 - }, - "TerritoryId": 418, - "InteractionType": "AcceptQuest", - "AetheryteShortcut": "Ishgard", - "SkipConditions": { - "AetheryteShortcutIf": { - "InSameTerritory": true - } - } - } - ] - }, - { - "Sequence": 1, - "Steps": [ - { - "DataId": 1022169, - "Position": { - "X": -58.854065, - "Y": 20.000334, - "Z": 42.83203 - }, - "TerritoryId": 129, - "InteractionType": "Interact", - "AetheryteShortcut": "Limsa Lominsa", - "SkipConditions": { - "AetheryteShortcutIf": { - "InSameTerritory": true - } - } - } - ] - }, - { - "Sequence": 2, - "Steps": [ - { - "DataId": 1022170, - "Position": { - "X": -172.6253, - "Y": 41.10136, - "Z": 175.89062 - }, - "TerritoryId": 128, - "InteractionType": "Interact", - "AetheryteShortcut": "Limsa Lominsa", - "AethernetShortcut": [ - "[Limsa Lominsa] Aetheryte Plaza", - "[Limsa Lominsa] The Aftcastle" - ], - "SkipConditions": { - "AetheryteShortcutIf": { - "InSameTerritory": true, - "InTerritory": [ - 129 - ] - }, - "AethernetShortcutIf": { - "InSameTerritory": true - } - }, - "DialogueChoices": [ - { - "Type": "List", - "Prompt": "TEXT_JOBMCH680_02908_Q1_000_000", - "Answer": "TEXT_JOBMCH680_02908_A1_000_001" - } - ] - } - ] - }, - { - "Sequence": 3, - "Steps": [ - { - "DataId": 1022173, - "Position": { - "X": 356.5575, - "Y": 351.0862, - "Z": -545.2201 - }, - "TerritoryId": 155, - "InteractionType": "Combat", - "EnemySpawnType": "AfterInteraction", - "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", - "Fly": true, - "ComplexCombatData": [ - { - "DataId": 7487, - "MinimumKillCount": 2 - } - ], - "SkipConditions": { - "AetheryteShortcutIf": { - "InSameTerritory": true - } - } - } - ] - }, - { - "Sequence": 4, - "Steps": [ - { - "DataId": 1022173, - "Position": { - "X": 356.5575, - "Y": 351.0862, - "Z": -545.2201 - }, - "TerritoryId": 155, - "InteractionType": "Interact" - } - ] - }, - { - "Sequence": 5, - "Steps": [ - { - "DataId": 1022151, - "Position": { - "X": 115.098755, - "Y": 24.398598, - "Z": 2.822876 - }, - "TerritoryId": 418, - "InteractionType": "Interact", - "AetheryteShortcut": "Ishgard", - "AethernetShortcut": [ - "[Ishgard] Aetheryte Plaza", - "[Ishgard] The Forgotten Knight" - ], - "SkipConditions": { - "AetheryteShortcutIf": { - "InSameTerritory": true - } - } - } - ] - }, - { - "Sequence": 255, - "Steps": [ - { - "DataId": 1012251, - "Position": { - "X": 12.313965, - "Y": -12.020877, - "Z": 40.268433 - }, - "TerritoryId": 418, - "InteractionType": "CompleteQuest", - "AetheryteShortcut": "Ishgard", - "SkipConditions": { - "AetheryteShortcutIf": { - "InSameTerritory": true - } - } - } - ] + "DataId": 1012251, + "Position": { + "X": 12.313965, + "Y": -12.020877, + "Z": 40.268433 + }, + "TerritoryId": 418, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] The Brume" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } } - ] -} \ No newline at end of file + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1022169, + "Position": { + "X": -58.854065, + "Y": 20.000334, + "Z": 42.83203 + }, + "TerritoryId": 129, + "InteractionType": "Interact", + "AetheryteShortcut": "Limsa Lominsa", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1022170, + "Position": { + "X": -172.6253, + "Y": 41.10136, + "Z": 175.89062 + }, + "TerritoryId": 128, + "InteractionType": "Interact", + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] The Aftcastle" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 128 + ] + }, + "AethernetShortcutIf": { + "InSameTerritory": true + } + }, + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_JOBMCH680_02908_Q1_000_000", + "Answer": "TEXT_JOBMCH680_02908_A1_000_001" + } + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1022173, + "Position": { + "X": 356.5575, + "Y": 351.0862, + "Z": -545.2201 + }, + "TerritoryId": 155, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", + "Fly": true, + "ComplexCombatData": [ + { + "DataId": 7487, + "MinimumKillCount": 2 + } + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1022173, + "Position": { + "X": 356.5575, + "Y": 351.0862, + "Z": -545.2201 + }, + "TerritoryId": 155, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1022151, + "Position": { + "X": 115.098755, + "Y": 24.398598, + "Z": 2.822876 + }, + "TerritoryId": 418, + "InteractionType": "Interact", + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] The Forgotten Knight" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1012251, + "Position": { + "X": 12.313965, + "Y": -12.020877, + "Z": 40.268433 + }, + "TerritoryId": 418, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] The Forgotten Knight", + "[Ishgard] The Brume" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Class Quests/MCH/2909_The Mongrel and the Knight.json b/QuestPaths/4.x - Stormblood/Class Quests/MCH/2909_The Mongrel and the Knight.json index 619e768ef..8c8af4e6e 100644 --- a/QuestPaths/4.x - Stormblood/Class Quests/MCH/2909_The Mongrel and the Knight.json +++ b/QuestPaths/4.x - Stormblood/Class Quests/MCH/2909_The Mongrel and the Knight.json @@ -1,98 +1,102 @@ { - "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "UcanPatates", - "QuestSequence": [ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "UcanPatates", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ { - "Sequence": 0, - "Steps": [ - { - "DataId": 1012251, - "Position": { - "X": 12.313965, - "Y": -12.020877, - "Z": 40.268433 - }, - "TerritoryId": 418, - "InteractionType": "AcceptQuest", - "AetheryteShortcut": "Ishgard", - "SkipConditions": { - "AetheryteShortcutIf": { - "InSameTerritory": true - } - } - } - ] - }, - { - "Sequence": 1, - "Steps": [ - { - "DataId": 1014577, - "Position": { - "X": -154.31458, - "Y": 16.999992, - "Z": -53.3609 - }, - "TerritoryId": 418, - "InteractionType": "Interact", - "AetheryteShortcut": "Ishgard", - "SkipConditions": { - "AetheryteShortcutIf": { - "InSameTerritory": true - } - }, - "AethernetShortcut": [ - "[Ishgard] Aetheryte Plaza", - "[Ishgard] Skysteel Manufactory" - ] - } - ] - }, - { - "Sequence": 2, - "Steps": [ - { - "DataId": 1012251, - "Position": { - "X": 12.313965, - "Y": -12.020877, - "Z": 40.268433 - }, - "TerritoryId": 418, - "InteractionType": "SinglePlayerDuty", - "AetheryteShortcut": "Ishgard", - "SkipConditions": { - "AetheryteShortcutIf": { - "InSameTerritory": true - } - }, - "AethernetShortcut": [ - "[Ishgard] Skysteel Manufactory", - "[Ishgard] Aetheryte Plaza" - ] - } - ] - }, - { - "Sequence": 255, - "Steps": [ - { - "DataId": 1012251, - "Position": { - "X": 12.313965, - "Y": -12.020877, - "Z": 40.268433 - }, - "TerritoryId": 418, - "InteractionType": "CompleteQuest", - "AetheryteShortcut": "Ishgard", - "SkipConditions": { - "AetheryteShortcutIf": { - "InSameTerritory": true - } - } - } - ] + "DataId": 1012251, + "Position": { + "X": 12.313965, + "Y": -12.020877, + "Z": 40.268433 + }, + "TerritoryId": 418, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] The Brume" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } } - ] -} \ No newline at end of file + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1014577, + "Position": { + "X": -154.31458, + "Y": 16.999992, + "Z": -53.3609 + }, + "TerritoryId": 418, + "InteractionType": "Interact", + "AetheryteShortcut": "Ishgard", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + }, + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] Skysteel Manufactory" + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1012251, + "Position": { + "X": 12.313965, + "Y": -12.020877, + "Z": 40.268433 + }, + "TerritoryId": 418, + "InteractionType": "SinglePlayerDuty", + "AetheryteShortcut": "Ishgard", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + }, + "AethernetShortcut": [ + "[Ishgard] Skysteel Manufactory", + "[Ishgard] Aetheryte Plaza" + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1012251, + "Position": { + "X": 12.313965, + "Y": -12.020877, + "Z": 40.268433 + }, + "TerritoryId": 418, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ishgard", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + } + ] +} -- 2.45.2 From f42540bd6612b6965bad14a8a4f262434b5a8563 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sun, 3 Nov 2024 22:25:03 +0100 Subject: [PATCH 202/448] Add notification settings for when manual interactions are required --- .gitmodules | 3 + Directory.Build.targets | 2 +- Questionable.sln | 12 + Questionable/Configuration.cs | 12 +- .../Steps/Common/SendNotification.cs | 84 ++++++ .../Controller/Steps/Shared/WaitAtEnd.cs | 24 +- Questionable/Data/TerritoryData.cs | 7 + .../External/NotificationMasterIpc.cs | 24 ++ Questionable/Questionable.csproj | 1 + Questionable/QuestionablePlugin.cs | 2 + Questionable/Windows/ConfigWindow.cs | 250 +++++++++++------- Questionable/Windows/OneTimeSetupWindow.cs | 8 + Questionable/packages.lock.json | 7 +- vendor/NotificationMasterAPI | 1 + 14 files changed, 341 insertions(+), 96 deletions(-) create mode 100644 Questionable/Controller/Steps/Common/SendNotification.cs create mode 100644 Questionable/External/NotificationMasterIpc.cs create mode 160000 vendor/NotificationMasterAPI diff --git a/.gitmodules b/.gitmodules index 0bc08a361..832da345f 100644 --- a/.gitmodules +++ b/.gitmodules @@ -4,3 +4,6 @@ [submodule "vendor/ECommons"] path = vendor/ECommons url = https://github.com/NightmareXIV/ECommons.git +[submodule "vendor/NotificationMasterAPI"] + path = vendor/NotificationMasterAPI + url = https://github.com/NightmareXIV/NotificationMasterAPI.git diff --git a/Directory.Build.targets b/Directory.Build.targets index 9b59f0ef5..1d1142802 100644 --- a/Directory.Build.targets +++ b/Directory.Build.targets @@ -1,5 +1,5 @@ - 3.12 + 3.13 diff --git a/Questionable.sln b/Questionable.sln index ad259b03e..df8987891 100644 --- a/Questionable.sln +++ b/Questionable.sln @@ -26,6 +26,10 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Directory.Build.targets = Directory.Build.targets EndProjectSection EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "vendor", "vendor", "{8F5EC9D5-4CE7-433B-BB3A-782500E84DDB}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NotificationMasterAPI", "vendor\NotificationMasterAPI\NotificationMasterAPI\NotificationMasterAPI.csproj", "{9BD494ED-22F2-487B-BCE1-435399A8720E}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|x64 = Debug|x64 @@ -68,8 +72,16 @@ Global {A12D7B4B-8E6E-4DCF-A41A-12F62E9FF94B}.Debug|x64.Build.0 = Debug|x64 {A12D7B4B-8E6E-4DCF-A41A-12F62E9FF94B}.Release|x64.ActiveCfg = Release|x64 {A12D7B4B-8E6E-4DCF-A41A-12F62E9FF94B}.Release|x64.Build.0 = Release|x64 + {9BD494ED-22F2-487B-BCE1-435399A8720E}.Debug|x64.ActiveCfg = Debug|x64 + {9BD494ED-22F2-487B-BCE1-435399A8720E}.Debug|x64.Build.0 = Debug|x64 + {9BD494ED-22F2-487B-BCE1-435399A8720E}.Release|x64.ActiveCfg = Release|x64 + {9BD494ED-22F2-487B-BCE1-435399A8720E}.Release|x64.Build.0 = Release|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection + GlobalSection(NestedProjects) = preSolution + {A12D7B4B-8E6E-4DCF-A41A-12F62E9FF94B} = {8F5EC9D5-4CE7-433B-BB3A-782500E84DDB} + {9BD494ED-22F2-487B-BCE1-435399A8720E} = {8F5EC9D5-4CE7-433B-BB3A-782500E84DDB} + EndGlobalSection EndGlobal diff --git a/Questionable/Configuration.cs b/Questionable/Configuration.cs index fb96ce353..238e4a511 100644 --- a/Questionable/Configuration.cs +++ b/Questionable/Configuration.cs @@ -1,4 +1,5 @@ using Dalamud.Configuration; +using Dalamud.Game.Text; using FFXIVClientStructs.FFXIV.Client.UI.Agent; using LLib.ImGui; @@ -8,9 +9,10 @@ internal sealed class Configuration : IPluginConfiguration { public const int PluginSetupVersion = 1; - public int Version { get; set; } = 1; + public int Version { get; set; } =1 ; public int PluginSetupCompleteVersion { get; set; } public GeneralConfiguration General { get; } = new(); + public NotificationConfiguration Notifications { get; } = new(); public AdvancedConfiguration Advanced { get; } = new(); public WindowConfig DebugWindowConfig { get; } = new(); public WindowConfig ConfigWindowConfig { get; } = new(); @@ -30,6 +32,14 @@ internal sealed class Configuration : IPluginConfiguration public bool ConfigureTextAdvance { get; set; } = true; } + internal sealed class NotificationConfiguration + { + public bool Enabled { get; set; } = true; + public XivChatType ChatType { get; set; } = XivChatType.Debug; + public bool ShowTrayMessage { get; set; } + public bool FlashTaskbar { get; set; } + } + internal sealed class AdvancedConfiguration { public bool DebugOverlay { get; set; } diff --git a/Questionable/Controller/Steps/Common/SendNotification.cs b/Questionable/Controller/Steps/Common/SendNotification.cs new file mode 100644 index 000000000..76b8a810b --- /dev/null +++ b/Questionable/Controller/Steps/Common/SendNotification.cs @@ -0,0 +1,84 @@ +using Dalamud.Game.Text; +using Dalamud.Game.Text.SeStringHandling; +using Dalamud.Plugin.Services; +using Questionable.External; +using Questionable.Model.Questing; + +namespace Questionable.Controller.Steps.Common; + +internal static class SendNotification +{ + internal sealed record Task(EInteractionType InteractionType, string? Comment) : ITask + { + public override string ToString() => "SendNotification"; + } + + internal sealed class Executor( + NotificationMasterIpc notificationMasterIpc, + IChatGui chatGui, + Configuration configuration) : TaskExecutor + { + protected override bool Start() + { + if (!configuration.Notifications.Enabled) + return false; + + string text = Task.InteractionType switch + { + EInteractionType.Duty => "Duty", + EInteractionType.SinglePlayerDuty => "Single player duty", + EInteractionType.Instruction or EInteractionType.WaitForManualProgress or EInteractionType.Snipe => + "Manual interaction required", + _ => $"{Task.InteractionType}", + }; + + if (!string.IsNullOrEmpty(Task.Comment)) + text += $" - {Task.Comment}"; + + if (configuration.Notifications.ChatType != XivChatType.None) + { + var message = configuration.Notifications.ChatType switch + { + XivChatType.Say + or XivChatType.Shout + or XivChatType.TellOutgoing + or XivChatType.TellIncoming + or XivChatType.Party + or XivChatType.Alliance + or (>= XivChatType.Ls1 and <= XivChatType.Ls8) + or XivChatType.FreeCompany + or XivChatType.NoviceNetwork + or XivChatType.Yell + or XivChatType.CrossParty + or XivChatType.PvPTeam + or XivChatType.CrossLinkShell1 + or XivChatType.NPCDialogue + or XivChatType.NPCDialogueAnnouncements + or (>= XivChatType.CrossLinkShell2 and <= XivChatType.CrossLinkShell8) + => new XivChatEntry + { + Message = text, + Type = configuration.Notifications.ChatType, + Name = new SeStringBuilder() + .AddUiForeground(CommandHandler.MessageTag, CommandHandler.TagColor) + .Build(), + }, + _ => new XivChatEntry + { + Message = new SeStringBuilder() + .AddUiForeground($"[{CommandHandler.MessageTag}] ", CommandHandler.TagColor) + .Append(text) + .Build(), + Type = configuration.Notifications.ChatType, + } + }; + chatGui.Print(message); + } + + notificationMasterIpc.Notify(text); + return true; + } + + public override ETaskResult Update() => ETaskResult.TaskComplete; + } +} diff --git a/Questionable/Controller/Steps/Shared/WaitAtEnd.cs b/Questionable/Controller/Steps/Shared/WaitAtEnd.cs index d64c009bf..84d2e1ca9 100644 --- a/Questionable/Controller/Steps/Shared/WaitAtEnd.cs +++ b/Questionable/Controller/Steps/Shared/WaitAtEnd.cs @@ -6,6 +6,7 @@ using System.Numerics; using Dalamud.Game.ClientState.Conditions; using Dalamud.Plugin.Services; using Questionable.Controller.Steps.Common; +using Questionable.Controller.Steps.Interactions; using Questionable.Controller.Utils; using Questionable.Data; using Questionable.Functions; @@ -19,7 +20,8 @@ internal static class WaitAtEnd internal sealed class Factory( IClientState clientState, ICondition condition, - TerritoryData territoryData) + TerritoryData territoryData, + Configuration configuration) : ITaskFactory { public IEnumerable CreateAllTasks(Quest quest, QuestSequence sequence, QuestStep step) @@ -47,12 +49,28 @@ internal static class WaitAtEnd case EInteractionType.WaitForManualProgress: case EInteractionType.Instruction: - case EInteractionType.Snipe: return [new WaitNextStepOrSequence()]; + case EInteractionType.Snipe: + if (configuration.General.AutomaticallyCompleteSnipeTasks) + return [new WaitNextStepOrSequence()]; + else + return [ + new SendNotification.Task(step.InteractionType, step.Comment), + new WaitNextStepOrSequence() + ]; + case EInteractionType.Duty: + return [ + new SendNotification.Task(step.InteractionType, step.ContentFinderConditionId.HasValue ? territoryData.GetContentFinderConditionName(step.ContentFinderConditionId.Value) : step.Comment), + new EndAutomation(), + ]; + case EInteractionType.SinglePlayerDuty: - return [new EndAutomation()]; + return [ + new SendNotification.Task(step.InteractionType, quest.Info.Name), + new EndAutomation() + ]; case EInteractionType.WalkTo: case EInteractionType.Jump: diff --git a/Questionable/Data/TerritoryData.cs b/Questionable/Data/TerritoryData.cs index 0b20d9a9e..e2d471c34 100644 --- a/Questionable/Data/TerritoryData.cs +++ b/Questionable/Data/TerritoryData.cs @@ -14,6 +14,7 @@ internal sealed class TerritoryData private readonly ImmutableHashSet _territoriesWithMount; private readonly ImmutableDictionary _dutyTerritories; private readonly ImmutableDictionary _instanceNames; + private readonly ImmutableDictionary _contentFinderConditionNames; public TerritoryData(IDataManager dataManager) { @@ -40,6 +41,10 @@ internal sealed class TerritoryData _instanceNames = dataManager.GetExcelSheet()! .Where(x => x.RowId > 0 && x.Content != 0 && x.ContentLinkType == 1 && x.ContentType.Row != 6) .ToImmutableDictionary(x => x.Content, x => x.Name.ToString()); + + _contentFinderConditionNames = dataManager.GetExcelSheet()! + .Where(x => x.RowId > 0 && x.Content != 0 && x.ContentLinkType == 1 && x.ContentType.Row != 6) + .ToImmutableDictionary(x => x.RowId, x => x.Name.ToString()); } public string? GetName(ushort territoryId) => _territoryNames.GetValueOrDefault(territoryId); @@ -61,4 +66,6 @@ internal sealed class TerritoryData _dutyTerritories.TryGetValue(territoryId, out uint contentType) && contentType == 7; public string? GetInstanceName(ushort instanceId) => _instanceNames.GetValueOrDefault(instanceId); + + public string? GetContentFinderConditionName(uint cfcId) => _contentFinderConditionNames.GetValueOrDefault(cfcId); } diff --git a/Questionable/External/NotificationMasterIpc.cs b/Questionable/External/NotificationMasterIpc.cs new file mode 100644 index 000000000..7a528c6f7 --- /dev/null +++ b/Questionable/External/NotificationMasterIpc.cs @@ -0,0 +1,24 @@ +using Dalamud.Plugin; +using NotificationMasterAPI; + +namespace Questionable.External; + +internal sealed class NotificationMasterIpc(IDalamudPluginInterface pluginInterface, Configuration configuration) +{ + private readonly NotificationMasterApi _api = new(pluginInterface); + + public bool Enabled => _api.IsIPCReady(); + + public void Notify(string message) + { + var config = configuration.Notifications; + if (!config.Enabled) + return; + + if (config.ShowTrayMessage) + _api.DisplayTrayNotification("Questionable", message); + + if (config.FlashTaskbar) + _api.FlashTaskbarIcon(); + } +} diff --git a/Questionable/Questionable.csproj b/Questionable/Questionable.csproj index 8d1a3c894..64df5619d 100644 --- a/Questionable/Questionable.csproj +++ b/Questionable/Questionable.csproj @@ -21,5 +21,6 @@ + diff --git a/Questionable/QuestionablePlugin.cs b/Questionable/QuestionablePlugin.cs index 5e8dc11d8..b97158c61 100644 --- a/Questionable/QuestionablePlugin.cs +++ b/Questionable/QuestionablePlugin.cs @@ -127,6 +127,7 @@ public sealed class QuestionablePlugin : IDalamudPlugin serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); + serviceCollection.AddSingleton(); } private static void AddTaskFactories(ServiceCollection serviceCollection) @@ -205,6 +206,7 @@ public sealed class QuestionablePlugin : IDalamudPlugin serviceCollection.AddTaskExecutor(); serviceCollection.AddTaskExecutor(); + serviceCollection.AddTaskExecutor(); serviceCollection.AddTaskExecutor(); serviceCollection.AddTaskFactory(); serviceCollection.AddTaskExecutor(); diff --git a/Questionable/Windows/ConfigWindow.cs b/Questionable/Windows/ConfigWindow.cs index 0416943f7..7bcd76817 100644 --- a/Questionable/Windows/ConfigWindow.cs +++ b/Questionable/Windows/ConfigWindow.cs @@ -1,12 +1,17 @@ using System; using System.Diagnostics.CodeAnalysis; using System.Linq; +using Dalamud.Game.Text; using Dalamud.Interface.Colors; +using Dalamud.Interface.Components; +using Dalamud.Interface.Utility.Raii; using Dalamud.Plugin; using Dalamud.Plugin.Services; +using Dalamud.Utility; using ImGuiNET; using LLib.ImGui; using Lumina.Excel.GeneratedSheets; +using Questionable.External; using GrandCompany = FFXIVClientStructs.FFXIV.Client.UI.Agent.GrandCompany; namespace Questionable.Windows; @@ -14,6 +19,7 @@ namespace Questionable.Windows; internal sealed class ConfigWindow : LWindow, IPersistableWindowConfig { private readonly IDalamudPluginInterface _pluginInterface; + private readonly NotificationMasterIpc _notificationMasterIpc; private readonly Configuration _configuration; private readonly uint[] _mountIds; @@ -23,10 +29,11 @@ internal sealed class ConfigWindow : LWindow, IPersistableWindowConfig ["None (manually pick quest)", "Maelstrom", "Twin Adder", "Immortal Flames"]; [SuppressMessage("Performance", "CA1861", Justification = "One time initialization")] - public ConfigWindow(IDalamudPluginInterface pluginInterface, Configuration configuration, IDataManager dataManager) + public ConfigWindow(IDalamudPluginInterface pluginInterface, NotificationMasterIpc notificationMasterIpc, Configuration configuration, IDataManager dataManager) : base("Config - Questionable###QuestionableConfig", ImGuiWindowFlags.AlwaysAutoResize) { _pluginInterface = pluginInterface; + _notificationMasterIpc = notificationMasterIpc; _configuration = configuration; var mounts = dataManager.GetExcelSheet()! @@ -43,109 +50,174 @@ internal sealed class ConfigWindow : LWindow, IPersistableWindowConfig public override void Draw() { - if (ImGui.BeginTabBar("QuestionableConfigTabs")) + using var tabBar = ImRaii.TabBar("QuestionableConfigTabs"); + if (!tabBar) + return; + + DrawGeneralTab(); + DrawNotificationsTab(); + DrawAdvancedTab(); + } + + private void DrawGeneralTab() + { + using var tab = ImRaii.TabItem("General"); + if (!tab) + return; + int selectedMount = Array.FindIndex(_mountIds, x => x == _configuration.General.MountId); + if (selectedMount == -1) { - if (ImGui.BeginTabItem("General")) + selectedMount = 0; + _configuration.General.MountId = _mountIds[selectedMount]; + Save(); + } + + if (ImGui.Combo("Preferred Mount", ref selectedMount, _mountNames, _mountNames.Length)) + { + _configuration.General.MountId = _mountIds[selectedMount]; + Save(); + } + + int grandCompany = (int)_configuration.General.GrandCompany; + if (ImGui.Combo("Preferred Grand Company", ref grandCompany, _grandCompanyNames, + _grandCompanyNames.Length)) + { + _configuration.General.GrandCompany = (GrandCompany)grandCompany; + Save(); + } + + bool hideInAllInstances = _configuration.General.HideInAllInstances; + if (ImGui.Checkbox("Hide quest window in all instanced duties", ref hideInAllInstances)) + { + _configuration.General.HideInAllInstances = hideInAllInstances; + Save(); + } + + bool useEscToCancelQuesting = _configuration.General.UseEscToCancelQuesting; + if (ImGui.Checkbox("Use ESC to cancel questing/movement", ref useEscToCancelQuesting)) + { + _configuration.General.UseEscToCancelQuesting = useEscToCancelQuesting; + Save(); + } + + bool showIncompleteSeasonalEvents = _configuration.General.ShowIncompleteSeasonalEvents; + if (ImGui.Checkbox("Show details for incomplete seasonal events", ref showIncompleteSeasonalEvents)) + { + _configuration.General.ShowIncompleteSeasonalEvents = showIncompleteSeasonalEvents; + Save(); + } + + bool configureTextAdvance = _configuration.General.ConfigureTextAdvance; + if (ImGui.Checkbox("Automatically configure TextAdvance with the recommended settings", + ref configureTextAdvance)) + { + _configuration.General.ConfigureTextAdvance = configureTextAdvance; + Save(); + } + + if (ImGui.CollapsingHeader("Cheats")) + { + ImGui.TextColored(ImGuiColors.DalamudRed, + "This setting will be removed in a future version, and will be\navailable through TextAdvance instead."); + bool automaticallyCompleteSnipeTasks = _configuration.General.AutomaticallyCompleteSnipeTasks; + if (ImGui.Checkbox("Automatically complete snipe tasks", ref automaticallyCompleteSnipeTasks)) { - int selectedMount = Array.FindIndex(_mountIds, x => x == _configuration.General.MountId); - if (selectedMount == -1) + _configuration.General.AutomaticallyCompleteSnipeTasks = automaticallyCompleteSnipeTasks; + Save(); + } + } + } + + private void DrawNotificationsTab() + { + using var tab = ImRaii.TabItem("Notifications"); + if (!tab) + return; + + bool enabled = _configuration.Notifications.Enabled; + if (ImGui.Checkbox("Enable notifications when manual interaction is required", ref enabled)) + { + _configuration.Notifications.Enabled = enabled; + Save(); + } + + using (ImRaii.Disabled(!_configuration.Notifications.Enabled)) + { + using (ImRaii.PushIndent()) + { + var xivChatTypes = Enum.GetValues() + .Where(x => x != XivChatType.StandardEmote) + .ToArray(); + var selectedChatType = Array.IndexOf(xivChatTypes, _configuration.Notifications.ChatType); + string[] chatTypeNames = xivChatTypes + .Select(t => t.GetAttribute()?.FancyName ?? t.ToString()) + .ToArray(); + if (ImGui.Combo("Chat channel", ref selectedChatType, chatTypeNames, + chatTypeNames.Length)) { - selectedMount = 0; - _configuration.General.MountId = _mountIds[selectedMount]; + _configuration.Notifications.ChatType = xivChatTypes[selectedChatType]; Save(); } - if (ImGui.Combo("Preferred Mount", ref selectedMount, _mountNames, _mountNames.Length)) + ImGui.Separator(); + ImGui.Text("NotificationMaster settings"); + ImGui.SameLine(); + ImGuiComponents.HelpMarker("Requires the plugin 'NotificationMaster' to be installed."); + using (ImRaii.Disabled(!_notificationMasterIpc.Enabled)) { - _configuration.General.MountId = _mountIds[selectedMount]; - Save(); - } - - int grandCompany = (int)_configuration.General.GrandCompany; - if (ImGui.Combo("Preferred Grand Company", ref grandCompany, _grandCompanyNames, - _grandCompanyNames.Length)) - { - _configuration.General.GrandCompany = (GrandCompany)grandCompany; - Save(); - } - - bool hideInAllInstances = _configuration.General.HideInAllInstances; - if (ImGui.Checkbox("Hide quest window in all instanced duties", ref hideInAllInstances)) - { - _configuration.General.HideInAllInstances = hideInAllInstances; - Save(); - } - - bool useEscToCancelQuesting = _configuration.General.UseEscToCancelQuesting; - if (ImGui.Checkbox("Use ESC to cancel questing/movement", ref useEscToCancelQuesting)) - { - _configuration.General.UseEscToCancelQuesting = useEscToCancelQuesting; - Save(); - } - - bool showIncompleteSeasonalEvents = _configuration.General.ShowIncompleteSeasonalEvents; - if (ImGui.Checkbox("Show details for incomplete seasonal events", ref showIncompleteSeasonalEvents)) - { - _configuration.General.ShowIncompleteSeasonalEvents = showIncompleteSeasonalEvents; - Save(); - } - - bool configureTextAdvance = _configuration.General.ConfigureTextAdvance; - if (ImGui.Checkbox("Automatically configure TextAdvance with the recommended settings", ref configureTextAdvance)) - { - _configuration.General.ConfigureTextAdvance = configureTextAdvance; - Save(); - } - - if (ImGui.CollapsingHeader("Cheats")) - { - ImGui.TextColored(ImGuiColors.DalamudRed, "This setting will be removed in a future version, and will be\navailable through TextAdvance instead."); - bool automaticallyCompleteSnipeTasks = _configuration.General.AutomaticallyCompleteSnipeTasks; - if (ImGui.Checkbox("Automatically complete snipe tasks", ref automaticallyCompleteSnipeTasks)) + bool showTrayMessage = _configuration.Notifications.ShowTrayMessage; + if (ImGui.Checkbox("Show tray notification", ref showTrayMessage)) { - _configuration.General.AutomaticallyCompleteSnipeTasks = automaticallyCompleteSnipeTasks; + _configuration.Notifications.ShowTrayMessage = showTrayMessage; + Save(); + } + + bool flashTaskbar = _configuration.Notifications.FlashTaskbar; + if (ImGui.Checkbox("Flash taskbar icon", ref flashTaskbar)) + { + _configuration.Notifications.FlashTaskbar = flashTaskbar; Save(); } } - - ImGui.EndTabItem(); } - - if (ImGui.BeginTabItem("Advanced")) - { - ImGui.TextColored(ImGuiColors.DalamudRed, - "Enabling any option here may cause unexpected behavior. Use at your own risk."); - - ImGui.Separator(); - - bool debugOverlay = _configuration.Advanced.DebugOverlay; - if (ImGui.Checkbox("Enable debug overlay", ref debugOverlay)) - { - _configuration.Advanced.DebugOverlay = debugOverlay; - Save(); - } - - bool neverFly = _configuration.Advanced.NeverFly; - if (ImGui.Checkbox("Disable flying (even if unlocked for the zone)", ref neverFly)) - { - _configuration.Advanced.NeverFly = neverFly; - Save(); - } - - bool additionalStatusInformation = _configuration.Advanced.AdditionalStatusInformation; - if (ImGui.Checkbox("Draw additional status information", ref additionalStatusInformation)) - { - _configuration.Advanced.AdditionalStatusInformation = additionalStatusInformation; - Save(); - } - - ImGui.EndTabItem(); - } - - ImGui.EndTabBar(); } } + private void DrawAdvancedTab() + { + using var tab = ImRaii.TabItem("Advanced"); + if (!tab) + return; + + ImGui.TextColored(ImGuiColors.DalamudRed, + "Enabling any option here may cause unexpected behavior. Use at your own risk."); + + ImGui.Separator(); + + bool debugOverlay = _configuration.Advanced.DebugOverlay; + if (ImGui.Checkbox("Enable debug overlay", ref debugOverlay)) + { + _configuration.Advanced.DebugOverlay = debugOverlay; + Save(); + } + + bool neverFly = _configuration.Advanced.NeverFly; + if (ImGui.Checkbox("Disable flying (even if unlocked for the zone)", ref neverFly)) + { + _configuration.Advanced.NeverFly = neverFly; + Save(); + } + + bool additionalStatusInformation = _configuration.Advanced.AdditionalStatusInformation; + if (ImGui.Checkbox("Draw additional status information", ref additionalStatusInformation)) + { + _configuration.Advanced.AdditionalStatusInformation = additionalStatusInformation; + Save(); + } + + ImGui.EndTabItem(); + } + private void Save() => _pluginInterface.SavePluginConfig(_configuration); public void SaveWindowConfig() => Save(); diff --git a/Questionable/Windows/OneTimeSetupWindow.cs b/Questionable/Windows/OneTimeSetupWindow.cs index 6026bafef..2ec22702b 100644 --- a/Questionable/Windows/OneTimeSetupWindow.cs +++ b/Questionable/Windows/OneTimeSetupWindow.cs @@ -44,6 +44,12 @@ internal sealed class OneTimeSetupWindow : LWindow, IDisposable during quests, including being interrupted by mobs. """, new Uri("https://github.com/FFXIV-CombatReborn/RotationSolverReborn")), + new("NotificationMaster", + """ + Sends a configurable out-of-game notification if a quest + requires manual actions. + """, + new Uri("https://github.com/NightmareXIV/NotificationMaster")), ]; private readonly Configuration _configuration; @@ -109,6 +115,7 @@ internal sealed class OneTimeSetupWindow : LWindow, IDisposable { if (ImGuiComponents.IconButtonWithText(FontAwesomeIcon.Check, "Finish Setup")) { + _logger.LogInformation("Marking setup as complete"); _configuration.MarkPluginSetupComplete(); _pluginInterface.SavePluginConfig(_configuration); IsOpen = false; @@ -128,6 +135,7 @@ internal sealed class OneTimeSetupWindow : LWindow, IDisposable if (ImGuiComponents.IconButtonWithText(FontAwesomeIcon.Times, "Close window & don't enable Questionable")) { + _logger.LogWarning("Closing window without all required plugins installed"); IsOpen = false; } } diff --git a/Questionable/packages.lock.json b/Questionable/packages.lock.json index 07f5b16f2..eb9b1d2ca 100644 --- a/Questionable/packages.lock.json +++ b/Questionable/packages.lock.json @@ -174,7 +174,7 @@ "gatheringpaths": { "type": "Project", "dependencies": { - "Questionable.Model": "[3.10.0, )" + "Questionable.Model": "[3.12.0, )" } }, "llib": { @@ -183,6 +183,9 @@ "DalamudPackager": "[2.1.13, )" } }, + "notificationmasterapi": { + "type": "Project" + }, "questionable.model": { "type": "Project", "dependencies": { @@ -192,7 +195,7 @@ "questpaths": { "type": "Project", "dependencies": { - "Questionable.Model": "[3.10.0, )" + "Questionable.Model": "[3.12.0, )" } } } diff --git a/vendor/NotificationMasterAPI b/vendor/NotificationMasterAPI new file mode 160000 index 000000000..05b1ba788 --- /dev/null +++ b/vendor/NotificationMasterAPI @@ -0,0 +1 @@ +Subproject commit 05b1ba788d5cb940ed8e82599eb88778c9cecdb0 -- 2.45.2 From cc599b36455f3e42aa750b566d3468d7cf71f5dd Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Mon, 4 Nov 2024 01:37:18 +0100 Subject: [PATCH 203/448] Update waypoint order in 'Braced for Trouble' --- .../4914_Braced for Trouble.json | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/QuestPaths/7.x - Dawntrail/MSQ/D-Shaaloani-HeritageFound1/4914_Braced for Trouble.json b/QuestPaths/7.x - Dawntrail/MSQ/D-Shaaloani-HeritageFound1/4914_Braced for Trouble.json index 7e08370be..e211e81d0 100644 --- a/QuestPaths/7.x - Dawntrail/MSQ/D-Shaaloani-HeritageFound1/4914_Braced for Trouble.json +++ b/QuestPaths/7.x - Dawntrail/MSQ/D-Shaaloani-HeritageFound1/4914_Braced for Trouble.json @@ -104,16 +104,6 @@ "InteractionType": "AttuneAetherCurrent", "AetherCurrentId": 2818450 }, - { - "Position": { - "X": -725.3725, - "Y": 28.795446, - "Z": -39.464005 - }, - "TerritoryId": 1190, - "InteractionType": "WalkTo", - "Mount": true - }, { "DataId": 2013799, "Position": { @@ -133,6 +123,16 @@ 64 ] }, + { + "Position": { + "X": -725.3725, + "Y": 28.795446, + "Z": -39.464005 + }, + "TerritoryId": 1190, + "InteractionType": "WalkTo", + "Mount": true + }, { "DataId": 2013800, "Position": { -- 2.45.2 From 39dbfca8fb0a4314a883c02349a9d1286f5bff43 Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Mon, 4 Nov 2024 18:51:31 +0800 Subject: [PATCH 204/448] Added new daily quests: - Krilled to Pieces - Deep Turquoise Sea - Holy Mother of Pearl - Flotsam and Jetsam --- .../Kojin/Dailies/2982_Krilled to Pieces.json | 160 ++++++++++++++++++ .../Dailies/2994_Deep Turquoise Sea.json | 99 +++++++++++ .../Dailies/2995_Holy Mother of Pearl.json | 122 +++++++++++++ .../Dailies/2996_Flotsam and Jetsam.json | 113 +++++++++++++ 4 files changed, 494 insertions(+) create mode 100644 QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2982_Krilled to Pieces.json create mode 100644 QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2994_Deep Turquoise Sea.json create mode 100644 QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2995_Holy Mother of Pearl.json create mode 100644 QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2996_Flotsam and Jetsam.json diff --git a/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2982_Krilled to Pieces.json b/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2982_Krilled to Pieces.json new file mode 100644 index 000000000..65ab799c9 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2982_Krilled to Pieces.json @@ -0,0 +1,160 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "plogon_enjoyer", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1024217, + "Position": { + "X": 394.39978, + "Y": -119.58932, + "Z": -232.28815 + }, + "TerritoryId": 613, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1024218, + "Position": { + "X": 387.56384, + "Y": -119.795334, + "Z": -257.64862 + }, + "TerritoryId": 613, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": 317.60294, + "Y": -83.18693, + "Z": -227.16872 + }, + "TerritoryId": 613, + "InteractionType": "WalkTo", + "RestartNavigationIfCancelled": false, + "Fly": true + }, + { + "DataId": 2009233, + "Position": { + "X": 81.19324, + "Y": -197.77222, + "Z": -266.8651 + }, + "TerritoryId": 613, + "InteractionType": "Action", + "Action": "Inhale", + "RequiredQuestVariables": [null, null, null, [112, 144], null, null] + }, + { + "DataId": 2009234, + "Position": { + "X": 195.05603, + "Y": -183.30664, + "Z": -346.6087 + }, + "TerritoryId": 613, + "InteractionType": "Action", + "Action": "Inhale", + "RequiredQuestVariables": [ + null, + null, + null, + [32, 96, 144], + null, + null + ] + }, + { + "DataId": 2009235, + "Position": { + "X": 50.980347, + "Y": -139.42175, + "Z": -280.96442 + }, + "TerritoryId": 613, + "InteractionType": "Action", + "Action": "Inhale", + "RequiredQuestVariables": [null, null, null, [80, 96], null, null] + }, + { + "DataId": 2009236, + "Position": { + "X": 192.0653, + "Y": -172.80847, + "Z": -247.63867 + }, + "TerritoryId": 613, + "InteractionType": "Action", + "Action": "Inhale", + "RequiredQuestVariables": [ + null, + null, + null, + [32, 80, 96, 112], + null, + null + ] + }, + { + "DataId": 2009237, + "Position": { + "X": 173.99854, + "Y": -161.85254, + "Z": -190.29535 + }, + "TerritoryId": 613, + "InteractionType": "Action", + "Action": "Inhale", + "RequiredQuestVariables": [ + null, + null, + null, + [32, 80, 112, 144], + null, + null + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": 392.59683, + "Y": -119.589325, + "Z": -234.30063 + }, + "TerritoryId": 613, + "AetheryteShortcut": "Ruby Sea - Tamamizu", + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 1024217, + "Position": { + "X": 394.39978, + "Y": -119.58932, + "Z": -232.28815 + }, + "TerritoryId": 613, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2994_Deep Turquoise Sea.json b/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2994_Deep Turquoise Sea.json new file mode 100644 index 000000000..183075b20 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2994_Deep Turquoise Sea.json @@ -0,0 +1,99 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "plogon_enjoyer", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1024217, + "Position": { + "X": 394.39978, + "Y": -119.58932, + "Z": -232.28815 + }, + "TerritoryId": 613, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": 318.03552, + "Y": -82.86303, + "Z": -227.4517 + }, + "TerritoryId": 613, + "InteractionType": "WalkTo", + "Fly": true, + "RestartNavigationIfCancelled": false + }, + { + "DataId": 2009119, + "Position": { + "X": -229.26678, + "Y": -308.73578, + "Z": 449.485 + }, + "TerritoryId": 613, + "InteractionType": "Interact", + "RequiredQuestVariables": [null, [3], null, null, null, null], + "Fly": true + }, + { + "DataId": 2009121, + "Position": { + "X": -279.62158, + "Y": -366.81165, + "Z": 408.68237 + }, + "TerritoryId": 613, + "InteractionType": "Interact", + "RequiredQuestVariables": [null, [19], null, null, null, null], + "Fly": true + }, + { + "DataId": 2009123, + "Position": { + "X": -249.59192, + "Y": -325.948, + "Z": 472.70923 + }, + "TerritoryId": 613, + "InteractionType": "Interact", + "RequiredQuestVariables": [null, [35], null, null, null, null], + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": 391.50903, + "Y": -119.58932, + "Z": -236.18898 + }, + "TerritoryId": 613, + "InteractionType": "WalkTo", + "Fly": true, + "AetheryteShortcut": "Ruby Sea - Tamamizu" + }, + { + "DataId": 1024217, + "Position": { + "X": 394.39978, + "Y": -119.58932, + "Z": -232.28815 + }, + "TerritoryId": 613, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2995_Holy Mother of Pearl.json b/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2995_Holy Mother of Pearl.json new file mode 100644 index 000000000..a0dc61c14 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2995_Holy Mother of Pearl.json @@ -0,0 +1,122 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "plogon_enjoyer", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1024217, + "Position": { + "X": 394.39978, + "Y": -119.58932, + "Z": -232.28815 + }, + "TerritoryId": 613, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1024316, + "Position": { + "X": 714.9614, + "Y": -0.3, + "Z": 140.3982 + }, + "TerritoryId": 613, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2009124, + "Position": { + "X": 753.56665, + "Y": 0.41192627, + "Z": 121.72119 + }, + "TerritoryId": 613, + "InteractionType": "UseItem", + "ItemId": 2002414, + "RequiredQuestVariables": [null, null, null, [17], null, null], + "Fly": true + }, + { + "DataId": 2009127, + "Position": { + "X": 745.44885, + "Y": 0.16778564, + "Z": 95.78088 + }, + "TerritoryId": 613, + "InteractionType": "UseItem", + "ItemId": 2002414, + "RequiredQuestVariables": [null, null, null, [17], null, null], + "Fly": true + }, + { + "DataId": 2009128, + "Position": { + "X": 777.1571, + "Y": 1.2054443, + "Z": 110.36853 + }, + "TerritoryId": 613, + "InteractionType": "UseItem", + "ItemId": 2002414, + "RequiredQuestVariables": [null, null, null, [17], null, null], + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1024316, + "Position": { + "X": 714.9614, + "Y": -0.3, + "Z": 140.3982 + }, + "TerritoryId": 613, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": 391.50903, + "Y": -119.58932, + "Z": -236.18898 + }, + "TerritoryId": 613, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 1024217, + "Position": { + "X": 394.39978, + "Y": -119.58932, + "Z": -232.28815 + }, + "TerritoryId": 613, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2996_Flotsam and Jetsam.json b/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2996_Flotsam and Jetsam.json new file mode 100644 index 000000000..a5def6501 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2996_Flotsam and Jetsam.json @@ -0,0 +1,113 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "plogon_enjoyer", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1024217, + "Position": { + "X": 394.39978, + "Y": -119.58932, + "Z": -232.28815 + }, + "TerritoryId": 613, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2009130, + "Position": { + "X": 14.572327, + "Y": -0.07635498, + "Z": -352.86487 + }, + "TerritoryId": 613, + "InteractionType": "Interact", + "Fly": true, + "AetheryteShortcut": "Ruby Sea - Onokoro", + "RequiredQuestVariables": [null, [6, 7], null, null, null, null] + }, + { + "DataId": 2009131, + "Position": { + "X": 90.13501, + "Y": -0.045776367, + "Z": 177.50818 + }, + "TerritoryId": 613, + "InteractionType": "Interact", + "Fly": true, + "RequiredQuestVariables": [null, [22], null, null, null, null] + }, + { + "DataId": 2009132, + "Position": { + "X": -48.69159, + "Y": -0.045776367, + "Z": -312.1844 + }, + "TerritoryId": 613, + "InteractionType": "Interact", + "Fly": true, + "RequiredQuestVariables": [null, [23], null, null, null, null] + }, + { + "DataId": 2009133, + "Position": { + "X": 23.941406, + "Y": -0.19836426, + "Z": 192.70618 + }, + "TerritoryId": 613, + "InteractionType": "Interact", + "Fly": true, + "RequiredQuestVariables": [null, [39], null, null, null, null] + }, + { + "DataId": 2009134, + "Position": { + "X": 284.99268, + "Y": -0.19836426, + "Z": -28.000305 + }, + "TerritoryId": 613, + "InteractionType": "Interact", + "Fly": true, + "RequiredQuestVariables": [null, [38], null, null, null, null] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": 391.50903, + "Y": -119.58932, + "Z": -236.18898 + }, + "TerritoryId": 613, + "InteractionType": "WalkTo", + "Fly": true, + "AetheryteShortcut": "Ruby Sea - Tamamizu" + }, + { + "DataId": 1024217, + "Position": { + "X": 394.39978, + "Y": -119.58932, + "Z": -232.28815 + }, + "TerritoryId": 613, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} -- 2.45.2 From 0f2857f0759a647f2b506a20686b1d80d4d4405b Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Mon, 4 Nov 2024 18:51:53 +0800 Subject: [PATCH 205/448] Added new story quest - The Value of Silence --- .../Story/2975_The Value of Silence.json | 179 ++++++++++++++++++ 1 file changed, 179 insertions(+) create mode 100644 QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Story/2975_The Value of Silence.json diff --git a/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Story/2975_The Value of Silence.json b/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Story/2975_The Value of Silence.json new file mode 100644 index 000000000..7d9002c90 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Story/2975_The Value of Silence.json @@ -0,0 +1,179 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "plogon_enjoyer", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1024215, + "Position": { + "X": 400.07617, + "Y": -119.589325, + "Z": -247.54712 + }, + "TerritoryId": 613, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1024248, + "Position": { + "X": 539.48267, + "Y": -19.505934, + "Z": 416.09827 + }, + "TerritoryId": 622, + "InteractionType": "Interact", + "AetheryteShortcut": "Azim Steppe - Reunion", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1024250, + "Position": { + "X": 561.21155, + "Y": -19.505632, + "Z": 365.28564 + }, + "TerritoryId": 622, + "InteractionType": "Interact", + "Fly": true + }, + { + "DataId": 1024251, + "Position": { + "X": 553.6124, + "Y": -19.505638, + "Z": 314.7478 + }, + "TerritoryId": 622, + "InteractionType": "Interact", + "Fly": true + }, + { + "DataId": 1024252, + "Position": { + "X": 571.2213, + "Y": -19.505638, + "Z": 296.46753 + }, + "TerritoryId": 622, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1024248, + "Position": { + "X": 539.48267, + "Y": -19.505934, + "Z": 416.09827 + }, + "TerritoryId": 622, + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_BANKJN003_02975_Q1_000_000", + "Answer": "TEXT_BANKJN003_02975_A1_000_001" + } + ], + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1024253, + "Position": { + "X": 355.30627, + "Y": -13.019889, + "Z": 471.1222 + }, + "TerritoryId": 622, + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_BANKJN003_02975_Q2_000_000", + "Answer": "TEXT_BANKJN003_02975_A2_000_001" + } + ], + "Fly": true + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "Position": { + "X": 474.09186, + "Y": -25.232485, + "Z": 550.5908 + }, + "TerritoryId": 622, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [8251, 8252, 8253], + "Fly": true + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1024256, + "Position": { + "X": 355.79456, + "Y": -12.957703, + "Z": 470.29822 + }, + "TerritoryId": 622, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1024215, + "Position": { + "X": 400.07617, + "Y": -119.589325, + "Z": -247.54712 + }, + "TerritoryId": 613, + "InteractionType": "CompleteQuest", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_BANKJN003_02975_Q3_000_000", + "Answer": "TEXT_BANKJN003_02975_A3_000_002" + } + ], + "AetheryteShortcut": "Ruby Sea - Tamamizu", + "Fly": true + } + ] + } + ] +} -- 2.45.2 From d757250d62619555d8ee4194b3f30ab1df3fd6c6 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Mon, 4 Nov 2024 13:42:27 +0100 Subject: [PATCH 206/448] Add HW MCH quests --- .../MCH/1696_Savior of Skysteel.json | 159 +++++++++ .../MCH/1697_Master of Marksmanship.json | 78 +++++ .../1698_Always the Last Place You Look.json | 165 +++++++++ .../MCH/1699_Rook Before You Reap.json | 47 +++ .../MCH/1700_Securing the Locks.json | 206 +++++++++++ .../MCH/1701_A Suppressive Strategy.json | 47 +++ .../MCH/1702_Blood on the Sands.json | 137 ++++++++ .../MCH/1703_Rage against the Machinists.json | 169 +++++++++ .../MCH/1704_The Power of a Tourney.json | 100 ++++++ .../MCH/1705_A Joye-less Celebration.json | 85 +++++ .../MCH/1706_Pushing the Brume.json | 328 ++++++++++++++++++ .../MCH/1707_A Joye-ful Reunion.json | 138 ++++++++ .../MCH/1708_Wheels of Justice.json | 159 +++++++++ .../MCH/1710_Taking the Fall.json | 161 +++++++++ .../Class Quests/MCH/1711_Rusted Steel.json | 86 +++++ .../MCH/1712_Rise of the Machinists.json | 184 ++++++++++ .../2109_So You Want to Be a Machinist.json | 38 ++ QuestPaths/quest-v1.json | 3 +- .../Questing/Converter/ActionConverter.cs | 1 + Questionable.Model/Questing/EAction.cs | 1 + .../MovementOverrideController.cs | 3 + 21 files changed, 2294 insertions(+), 1 deletion(-) create mode 100644 QuestPaths/3.x - Heavensward/Class Quests/MCH/1696_Savior of Skysteel.json create mode 100644 QuestPaths/3.x - Heavensward/Class Quests/MCH/1697_Master of Marksmanship.json create mode 100644 QuestPaths/3.x - Heavensward/Class Quests/MCH/1698_Always the Last Place You Look.json create mode 100644 QuestPaths/3.x - Heavensward/Class Quests/MCH/1699_Rook Before You Reap.json create mode 100644 QuestPaths/3.x - Heavensward/Class Quests/MCH/1700_Securing the Locks.json create mode 100644 QuestPaths/3.x - Heavensward/Class Quests/MCH/1701_A Suppressive Strategy.json create mode 100644 QuestPaths/3.x - Heavensward/Class Quests/MCH/1702_Blood on the Sands.json create mode 100644 QuestPaths/3.x - Heavensward/Class Quests/MCH/1703_Rage against the Machinists.json create mode 100644 QuestPaths/3.x - Heavensward/Class Quests/MCH/1704_The Power of a Tourney.json create mode 100644 QuestPaths/3.x - Heavensward/Class Quests/MCH/1705_A Joye-less Celebration.json create mode 100644 QuestPaths/3.x - Heavensward/Class Quests/MCH/1706_Pushing the Brume.json create mode 100644 QuestPaths/3.x - Heavensward/Class Quests/MCH/1707_A Joye-ful Reunion.json create mode 100644 QuestPaths/3.x - Heavensward/Class Quests/MCH/1708_Wheels of Justice.json create mode 100644 QuestPaths/3.x - Heavensward/Class Quests/MCH/1710_Taking the Fall.json create mode 100644 QuestPaths/3.x - Heavensward/Class Quests/MCH/1711_Rusted Steel.json create mode 100644 QuestPaths/3.x - Heavensward/Class Quests/MCH/1712_Rise of the Machinists.json create mode 100644 QuestPaths/3.x - Heavensward/Class Quests/MCH/2109_So You Want to Be a Machinist.json diff --git a/QuestPaths/3.x - Heavensward/Class Quests/MCH/1696_Savior of Skysteel.json b/QuestPaths/3.x - Heavensward/Class Quests/MCH/1696_Savior of Skysteel.json new file mode 100644 index 000000000..b91e8dad0 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Class Quests/MCH/1696_Savior of Skysteel.json @@ -0,0 +1,159 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1014577, + "Position": { + "X": -154.31458, + "Y": 16.999992, + "Z": -53.3609 + }, + "TerritoryId": 418, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] Skysteel Manufactory" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1014577, + "Position": { + "X": -154.31458, + "Y": 16.999992, + "Z": -53.3609 + }, + "TerritoryId": 418, + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_JOBMCH300_01696_Q1_000_000", + "Answer": "TEXT_JOBMCH300_01696_A1_000_001" + } + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1014731, + "Position": { + "X": -73.16705, + "Y": 64.608665, + "Z": -248.0965 + }, + "TerritoryId": 180, + "InteractionType": "Interact", + "AetheryteShortcut": "Outer La Noscea - Camp Overlook" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1014733, + "Position": { + "X": -98.435974, + "Y": 64.488625, + "Z": -215.56421 + }, + "TerritoryId": 180, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 1014735, + "Position": { + "X": -112.62689, + "Y": 64.39167, + "Z": -200.12213 + }, + "TerritoryId": 180, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, + { + "DataId": 1014734, + "Position": { + "X": -147.81415, + "Y": 64.37568, + "Z": -220.56921 + }, + "TerritoryId": 180, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1014731, + "Position": { + "X": -73.16705, + "Y": 64.608665, + "Z": -248.0965 + }, + "TerritoryId": 180, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1014736, + "Position": { + "X": -99.25995, + "Y": 62.382347, + "Z": -182.78784 + }, + "TerritoryId": 180, + "InteractionType": "CompleteQuest", + "NextQuestId": 1697 + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Class Quests/MCH/1697_Master of Marksmanship.json b/QuestPaths/3.x - Heavensward/Class Quests/MCH/1697_Master of Marksmanship.json new file mode 100644 index 000000000..f815895f1 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Class Quests/MCH/1697_Master of Marksmanship.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": [ + { + "TerritoryId": 180, + "InteractionType": "EquipItem", + "ItemId": 10462, + "AetheryteShortcut": "Outer La Noscea - Camp Overlook", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + }, + "StepIf": { + "Item": { + "NotInInventory": true + } + } + } + }, + { + "TerritoryId": 180, + "InteractionType": "EquipRecommended" + }, + { + "DataId": 1014739, + "Position": { + "X": -97.33734, + "Y": 62.55459, + "Z": -175.34143 + }, + "TerritoryId": 180, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1014742, + "Position": { + "X": -230.30444, + "Y": 63.88775, + "Z": -257.4655 + }, + "TerritoryId": 180, + "InteractionType": "SinglePlayerDuty", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1014577, + "Position": { + "X": -154.31458, + "Y": 16.999992, + "Z": -53.3609 + }, + "TerritoryId": 418, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] Skysteel Manufactory" + ], + "NextQuestId": 1698 + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Class Quests/MCH/1698_Always the Last Place You Look.json b/QuestPaths/3.x - Heavensward/Class Quests/MCH/1698_Always the Last Place You Look.json new file mode 100644 index 000000000..978b5d80d --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Class Quests/MCH/1698_Always the Last Place You Look.json @@ -0,0 +1,165 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1014577, + "Position": { + "X": -154.31458, + "Y": 16.999992, + "Z": -53.3609 + }, + "TerritoryId": 418, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] Skysteel Manufactory" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1014745, + "Position": { + "X": -205.82898, + "Y": 45.803963, + "Z": 517.20447 + }, + "TerritoryId": 137, + "InteractionType": "Interact", + "AetheryteShortcut": "Eastern La Noscea - Wineport", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1014748, + "Position": { + "X": -233.66144, + "Y": 44.330624, + "Z": 519.09656 + }, + "TerritoryId": 137, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 4476 + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "Position": { + "X": -235.98387, + "Y": 44.330624, + "Z": 540.6855 + }, + "TerritoryId": 137, + "InteractionType": "WalkTo" + }, + { + "DataId": 1014749, + "Position": { + "X": -234.02765, + "Y": 44.330624, + "Z": 539.81836 + }, + "TerritoryId": 137, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 4477 + ] + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1014745, + "Position": { + "X": -205.82898, + "Y": 45.803963, + "Z": 517.20447 + }, + "TerritoryId": 137, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 321 + ] + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1014745, + "Position": { + "X": -205.82898, + "Y": 45.803963, + "Z": 517.20447 + }, + "TerritoryId": 137, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1014748, + "Position": { + "X": -233.66144, + "Y": 44.330624, + "Z": 519.09656 + }, + "TerritoryId": 137, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1014577, + "Position": { + "X": -154.31458, + "Y": 16.999992, + "Z": -53.3609 + }, + "TerritoryId": 418, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] Skysteel Manufactory" + ], + "NextQuestId": 1699 + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Class Quests/MCH/1699_Rook Before You Reap.json b/QuestPaths/3.x - Heavensward/Class Quests/MCH/1699_Rook Before You Reap.json new file mode 100644 index 000000000..ba0456a13 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Class Quests/MCH/1699_Rook Before You Reap.json @@ -0,0 +1,47 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1014577, + "Position": { + "X": -154.31458, + "Y": 16.999992, + "Z": -53.3609 + }, + "TerritoryId": 418, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] Skysteel Manufactory" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1014577, + "Position": { + "X": -154.31458, + "Y": 16.999992, + "Z": -53.3609 + }, + "TerritoryId": 418, + "InteractionType": "CompleteQuest", + "NextQuestId": 1700 + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Class Quests/MCH/1700_Securing the Locks.json b/QuestPaths/3.x - Heavensward/Class Quests/MCH/1700_Securing the Locks.json new file mode 100644 index 000000000..8f84b431c --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Class Quests/MCH/1700_Securing the Locks.json @@ -0,0 +1,206 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1014577, + "Position": { + "X": -154.31458, + "Y": 16.999992, + "Z": -53.3609 + }, + "TerritoryId": 418, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] Skysteel Manufactory" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1014750, + "Position": { + "X": -98.802185, + "Y": 16.0083, + "Z": 26.626953 + }, + "TerritoryId": 418, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1014752, + "Position": { + "X": -155.59625, + "Y": 16.979582, + "Z": -38.376526 + }, + "StopDistance": 10, + "TerritoryId": 418, + "InteractionType": "Action", + "Action": "Slug Shot", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 1014753, + "Position": { + "X": 52.994507, + "Y": 24.071722, + "Z": -25.070618 + }, + "StopDistance": 10, + "TerritoryId": 418, + "InteractionType": "Action", + "Action": "Slug Shot", + "AethernetShortcut": [ + "[Ishgard] Skysteel Manufactory", + "[Ishgard] The Forgotten Knight" + ], + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 1014754, + "Position": { + "X": 114.18323, + "Y": -7.146736, + "Z": 83.66516 + }, + "StopDistance": 10, + "TerritoryId": 418, + "InteractionType": "Action", + "Action": "Slug Shot", + "AethernetShortcut": [ + "[Ishgard] The Forgotten Knight", + "[Ishgard] The Brume" + ], + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1014577, + "Position": { + "X": -154.31458, + "Y": 16.999992, + "Z": -53.3609 + }, + "TerritoryId": 418, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Ishgard] The Brume", + "[Ishgard] Skysteel Manufactory" + ] + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1014760, + "Position": { + "X": 232.6543, + "Y": 251.81952, + "Z": 127.21448 + }, + "TerritoryId": 155, + "InteractionType": "SinglePlayerDuty", + "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", + "Fly": true + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1014762, + "Position": { + "X": 207.44641, + "Y": 255.97514, + "Z": 82.26135 + }, + "TerritoryId": 155, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1014762, + "Position": { + "X": 207.44641, + "Y": 255.97514, + "Z": 82.26135 + }, + "TerritoryId": 155, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1014577, + "Position": { + "X": -154.31458, + "Y": 16.999992, + "Z": -53.3609 + }, + "TerritoryId": 418, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] Skysteel Manufactory" + ], + "NextQuestId": 1701 + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Class Quests/MCH/1701_A Suppressive Strategy.json b/QuestPaths/3.x - Heavensward/Class Quests/MCH/1701_A Suppressive Strategy.json new file mode 100644 index 000000000..8a37b97fd --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Class Quests/MCH/1701_A Suppressive Strategy.json @@ -0,0 +1,47 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1014577, + "Position": { + "X": -154.31458, + "Y": 16.999992, + "Z": -53.3609 + }, + "TerritoryId": 418, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] Skysteel Manufactory" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1014577, + "Position": { + "X": -154.31458, + "Y": 16.999992, + "Z": -53.3609 + }, + "TerritoryId": 418, + "InteractionType": "CompleteQuest", + "NextQuestId": 1702 + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Class Quests/MCH/1702_Blood on the Sands.json b/QuestPaths/3.x - Heavensward/Class Quests/MCH/1702_Blood on the Sands.json new file mode 100644 index 000000000..994c210bb --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Class Quests/MCH/1702_Blood on the Sands.json @@ -0,0 +1,137 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1014577, + "Position": { + "X": -154.31458, + "Y": 16.999992, + "Z": -53.3609 + }, + "TerritoryId": 418, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] Skysteel Manufactory" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1014769, + "Position": { + "X": -245.4414, + "Y": -20.03492, + "Z": -63.645386 + }, + "TerritoryId": 419, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Ishgard] Skysteel Manufactory", + "[Ishgard] The Jeweled Crozier" + ], + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_JOBMCH451_01702_Q1_000_000", + "Answer": "TEXT_JOBMCH451_01702_A1_000_002" + } + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2006262, + "Position": { + "X": -246.357, + "Y": -20.035156, + "Z": -64.683044 + }, + "StopDistance": 4.5, + "TerritoryId": 419, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1014770, + "Position": { + "X": -16.281433, + "Y": 16.009666, + "Z": -6.668213 + }, + "TerritoryId": 419, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Ishgard] The Jeweled Crozier", + "[Ishgard] The Last Vigil" + ], + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_JOBMCH451_01702_Q2_000_000", + "Answer": "TEXT_JOBMCH451_01702_A2_000_001" + } + ] + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1014772, + "Position": { + "X": 427.0542, + "Y": 15.170297, + "Z": 706.72156 + }, + "TerritoryId": 137, + "InteractionType": "SinglePlayerDuty", + "AetheryteShortcut": "Eastern La Noscea - Costa Del Sol", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1014577, + "Position": { + "X": -154.31458, + "Y": 16.999992, + "Z": -53.3609 + }, + "TerritoryId": 418, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] Skysteel Manufactory" + ], + "NextQuestId": 1703 + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Class Quests/MCH/1703_Rage against the Machinists.json b/QuestPaths/3.x - Heavensward/Class Quests/MCH/1703_Rage against the Machinists.json new file mode 100644 index 000000000..df3de6f36 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Class Quests/MCH/1703_Rage against the Machinists.json @@ -0,0 +1,169 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1014577, + "Position": { + "X": -154.31458, + "Y": 16.999992, + "Z": -53.3609 + }, + "TerritoryId": 418, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] Skysteel Manufactory" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1014775, + "Position": { + "X": -155.6878, + "Y": 16.979584, + "Z": -38.4375 + }, + "TerritoryId": 418, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1014776, + "Position": { + "X": -138.7503, + "Y": 23.240587, + "Z": -83.878845 + }, + "TerritoryId": 418, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1014778, + "Position": { + "X": -160.35712, + "Y": 26.378231, + "Z": -88.9754 + }, + "TerritoryId": 418, + "InteractionType": "Action", + "Action": "Slug Shot", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 1014779, + "Position": { + "X": -94.31604, + "Y": 19.008303, + "Z": -16.494995 + }, + "TerritoryId": 418, + "InteractionType": "Action", + "Action": "Slug Shot", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, + { + "DataId": 1014777, + "Position": { + "X": -133.83691, + "Y": 18.94346, + "Z": -12.100403 + }, + "TerritoryId": 418, + "InteractionType": "Action", + "Action": "Slug Shot", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1014577, + "Position": { + "X": -154.31458, + "Y": 16.999992, + "Z": -53.3609 + }, + "TerritoryId": 418, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1014782, + "Position": { + "X": -151.59845, + "Y": 16.979586, + "Z": -22.720703 + }, + "TerritoryId": 418, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1014577, + "Position": { + "X": -154.31458, + "Y": 16.999992, + "Z": -53.3609 + }, + "TerritoryId": 418, + "InteractionType": "CompleteQuest", + "NextQuestId": 1704 + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Class Quests/MCH/1704_The Power of a Tourney.json b/QuestPaths/3.x - Heavensward/Class Quests/MCH/1704_The Power of a Tourney.json new file mode 100644 index 000000000..c6d91b50c --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Class Quests/MCH/1704_The Power of a Tourney.json @@ -0,0 +1,100 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1014577, + "Position": { + "X": -154.31458, + "Y": 16.999992, + "Z": -53.3609 + }, + "TerritoryId": 418, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] Skysteel Manufactory" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1014784, + "Position": { + "X": 224.29236, + "Y": 302, + "Z": -276.84448 + }, + "TerritoryId": 155, + "InteractionType": "Interact", + "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1014784, + "Position": { + "X": 224.29236, + "Y": 302, + "Z": -276.84448 + }, + "TerritoryId": 155, + "InteractionType": "SinglePlayerDuty" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1014788, + "Position": { + "X": 222.06445, + "Y": 302, + "Z": -189.01355 + }, + "StopDistance": 5, + "TerritoryId": 155, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1014577, + "Position": { + "X": -154.31458, + "Y": 16.999992, + "Z": -53.3609 + }, + "TerritoryId": 418, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] Skysteel Manufactory" + ], + "NextQuestId": 1705 + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Class Quests/MCH/1705_A Joye-less Celebration.json b/QuestPaths/3.x - Heavensward/Class Quests/MCH/1705_A Joye-less Celebration.json new file mode 100644 index 000000000..48c431cd3 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Class Quests/MCH/1705_A Joye-less Celebration.json @@ -0,0 +1,85 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1014577, + "Position": { + "X": -154.31458, + "Y": 16.999992, + "Z": -53.3609 + }, + "TerritoryId": 418, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] Skysteel Manufactory" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1014793, + "Position": { + "X": -139.48273, + "Y": 19.236662, + "Z": -11.978394 + }, + "TerritoryId": 418, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1014795, + "Position": { + "X": -18.265076, + "Y": 16.009666, + "Z": -7.5532227 + }, + "TerritoryId": 419, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Ishgard] Skysteel Manufactory", + "[Ishgard] The Last Vigil" + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1014796, + "Position": { + "X": -152.88019, + "Y": 16.999998, + "Z": -52.903076 + }, + "TerritoryId": 418, + "InteractionType": "CompleteQuest", + "AethernetShortcut": [ + "[Ishgard] The Last Vigil", + "[Ishgard] Skysteel Manufactory" + ], + "NextQuestId": 1706 + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Class Quests/MCH/1706_Pushing the Brume.json b/QuestPaths/3.x - Heavensward/Class Quests/MCH/1706_Pushing the Brume.json new file mode 100644 index 000000000..9b0e01bde --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Class Quests/MCH/1706_Pushing the Brume.json @@ -0,0 +1,328 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1014577, + "Position": { + "X": -154.31458, + "Y": 16.999992, + "Z": -53.3609 + }, + "StopDistance": 5, + "TerritoryId": 418, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] Skysteel Manufactory" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": -461.6901, + "Y": -4.0053887, + "Z": -292.6277 + }, + "StopDistance": 0.5, + "TerritoryId": 156, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [ + 201 + ], + "AetheryteShortcut": "Mor Dhona", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + }, + "StepIf": { + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + } + } + }, + { + "DataId": 2006271, + "Position": { + "X": -462.7909, + "Y": -2.7619019, + "Z": -289.4179 + }, + "StopDistance": 4.5, + "TerritoryId": 156, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, + { + "Position": { + "X": -567.30835, + "Y": -3.9906769, + "Z": -334.9877 + }, + "StopDistance": 0.5, + "TerritoryId": 156, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [ + 5039, + 5040, + 5041 + ], + "Fly": true, + "SkipConditions": { + "StepIf": { + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + } + } + }, + { + "DataId": 2006270, + "Position": { + "X": -570.4891, + "Y": -2.8840332, + "Z": -334.76776 + }, + "StopDistance": 4.5, + "TerritoryId": 156, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "Position": { + "X": -660.1279, + "Y": -2.9330442, + "Z": -366.86145 + }, + "TerritoryId": 156, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [ + 4472, + 4473 + ], + "Fly": true, + "SkipConditions": { + "StepIf": { + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + } + } + }, + { + "DataId": 2006269, + "Position": { + "X": -661.3413, + "Y": -1.6937866, + "Z": -367.8188 + }, + "TerritoryId": 156, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1014577, + "Position": { + "X": -154.31458, + "Y": 16.999992, + "Z": -53.3609 + }, + "StopDistance": 5, + "TerritoryId": 418, + "InteractionType": "Interact", + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] Skysteel Manufactory" + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1014801, + "Position": { + "X": 16.220276, + "Y": -12.02089, + "Z": 49.454468 + }, + "TerritoryId": 418, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Ishgard] Skysteel Manufactory", + "[Ishgard] The Brume" + ], + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, + { + "DataId": 1014800, + "Position": { + "X": 58.182617, + "Y": -12.020877, + "Z": 79.81995 + }, + "TerritoryId": 418, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 1014799, + "Position": { + "X": 114.88513, + "Y": -19.787056, + "Z": 62.57715 + }, + "TerritoryId": 418, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1014577, + "Position": { + "X": -154.31458, + "Y": 16.999992, + "Z": -53.3609 + }, + "StopDistance": 5, + "TerritoryId": 418, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Ishgard] The Brume", + "[Ishgard] Skysteel Manufactory" + ] + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 2006272, + "Position": { + "X": 483.97034, + "Y": 212.51233, + "Z": 726.8329 + }, + "TerritoryId": 397, + "InteractionType": "Interact", + "AetheryteShortcut": "Coerthas Western Highlands - Falcon's Nest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1014577, + "Position": { + "X": -154.31458, + "Y": 16.999992, + "Z": -53.3609 + }, + "TerritoryId": 418, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] Skysteel Manufactory" + ], + "NextQuestId": 1707, + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_JOBMCH520_01706_Q1_000_000", + "Answer": "TEXT_JOBMCH520_01706_A1_000_001" + } + ] + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Class Quests/MCH/1707_A Joye-ful Reunion.json b/QuestPaths/3.x - Heavensward/Class Quests/MCH/1707_A Joye-ful Reunion.json new file mode 100644 index 000000000..5a260cd3b --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Class Quests/MCH/1707_A Joye-ful Reunion.json @@ -0,0 +1,138 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1014577, + "Position": { + "X": -154.31458, + "Y": 16.999992, + "Z": -53.3609 + }, + "TerritoryId": 418, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] Skysteel Manufactory" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1014805, + "Position": { + "X": 482.96326, + "Y": 212.5841, + "Z": 724.7882 + }, + "TerritoryId": 397, + "InteractionType": "Interact", + "AetheryteShortcut": "Coerthas Western Highlands - Falcon's Nest" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1014809, + "Position": { + "X": 114.335815, + "Y": -19.787056, + "Z": 61.81433 + }, + "TerritoryId": 418, + "InteractionType": "Interact", + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] The Brume" + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1014810, + "Position": { + "X": 117.17395, + "Y": -22.017334, + "Z": 32.791626 + }, + "StopDistance": 10, + "TerritoryId": 418, + "InteractionType": "Action", + "Action": "Slug Shot" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1014811, + "Position": { + "X": 319.69165, + "Y": 161.10796, + "Z": 147.44788 + }, + "TerritoryId": 397, + "InteractionType": "SinglePlayerDuty", + "AetheryteShortcut": "Coerthas Western Highlands - Falcon's Nest", + "Fly": true + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1014816, + "Position": { + "X": 397.05493, + "Y": 161.18224, + "Z": -98.10034 + }, + "StopDistance": 5, + "TerritoryId": 397, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1014577, + "Position": { + "X": -154.31458, + "Y": 16.999992, + "Z": -53.3609 + }, + "TerritoryId": 418, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] Skysteel Manufactory" + ], + "NextQuestId": 1708 + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Class Quests/MCH/1708_Wheels of Justice.json b/QuestPaths/3.x - Heavensward/Class Quests/MCH/1708_Wheels of Justice.json new file mode 100644 index 000000000..bee9501ee --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Class Quests/MCH/1708_Wheels of Justice.json @@ -0,0 +1,159 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1014577, + "Position": { + "X": -154.31458, + "Y": 16.999992, + "Z": -53.3609 + }, + "TerritoryId": 418, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] Skysteel Manufactory" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1014577, + "Position": { + "X": -154.31458, + "Y": 16.999992, + "Z": -53.3609 + }, + "TerritoryId": 418, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1014822, + "Position": { + "X": 95.20105, + "Y": 15.000009, + "Z": 25.345215 + }, + "TerritoryId": 418, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Ishgard] Skysteel Manufactory", + "[Ishgard] The Forgotten Knight" + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1014577, + "Position": { + "X": -154.31458, + "Y": 16.999992, + "Z": -53.3609 + }, + "TerritoryId": 418, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Ishgard] The Forgotten Knight", + "[Ishgard] Skysteel Manufactory" + ] + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1014823, + "Position": { + "X": 490.37915, + "Y": -51.13661, + "Z": 29.587158 + }, + "TerritoryId": 398, + "InteractionType": "Interact", + "AetheryteShortcut": "The Dravanian Forelands - Tailfeather", + "Fly": true + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1014825, + "Position": { + "X": 576.4706, + "Y": -37.673805, + "Z": -134.78296 + }, + "TerritoryId": 398, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 5042, + 5045 + ], + "Fly": true + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1014829, + "Position": { + "X": 578.5762, + "Y": -37.88608, + "Z": -132.55518 + }, + "StopDistance": 7, + "TerritoryId": 398, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1014577, + "Position": { + "X": -154.31458, + "Y": 16.999992, + "Z": -53.3609 + }, + "TerritoryId": 418, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] Skysteel Manufactory" + ], + "NextQuestId": 1710 + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Class Quests/MCH/1710_Taking the Fall.json b/QuestPaths/3.x - Heavensward/Class Quests/MCH/1710_Taking the Fall.json new file mode 100644 index 000000000..c40cf6aff --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Class Quests/MCH/1710_Taking the Fall.json @@ -0,0 +1,161 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1014577, + "Position": { + "X": -154.31458, + "Y": 16.999992, + "Z": -53.3609 + }, + "TerritoryId": 418, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] Skysteel Manufactory" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1014577, + "Position": { + "X": -154.31458, + "Y": 16.999992, + "Z": -53.3609 + }, + "TerritoryId": 418, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": 306.3128, + "Y": 70.876, + "Z": -411.73788 + }, + "TerritoryId": 401, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [ + 4484 + ], + "AetheryteShortcut": "The Sea of Clouds - Ok' Zundu", + "Fly": true, + "SkipConditions": { + "StepIf": { + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + } + } + }, + { + "DataId": 2006274, + "Position": { + "X": 305.0736, + "Y": 71.06128, + "Z": -413.44324 + }, + "TerritoryId": 401, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "Position": { + "X": 382.58212, + "Y": 71.00385, + "Z": -313.4424 + }, + "TerritoryId": 401, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [ + 4617 + ], + "Fly": true, + "SkipConditions": { + "StepIf": { + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + } + } + }, + { + "DataId": 2006275, + "Position": { + "X": 384.02368, + "Y": 71.39697, + "Z": -311.90973 + }, + "TerritoryId": 401, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1014577, + "Position": { + "X": -154.31458, + "Y": 16.999992, + "Z": -53.3609 + }, + "TerritoryId": 418, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] Skysteel Manufactory" + ], + "NextQuestId": 1711 + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Class Quests/MCH/1711_Rusted Steel.json b/QuestPaths/3.x - Heavensward/Class Quests/MCH/1711_Rusted Steel.json new file mode 100644 index 000000000..fb57efc1c --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Class Quests/MCH/1711_Rusted Steel.json @@ -0,0 +1,86 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1014577, + "Position": { + "X": -154.31458, + "Y": 16.999992, + "Z": -53.3609 + }, + "TerritoryId": 418, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] Skysteel Manufactory" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1014830, + "Position": { + "X": 74.81494, + "Y": 10.089107, + "Z": -111.680786 + }, + "TerritoryId": 419, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Ishgard] Skysteel Manufactory", + "[Ishgard] The Tribunal" + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1014830, + "Position": { + "X": 74.81494, + "Y": 10.089107, + "Z": -111.680786 + }, + "TerritoryId": 419, + "InteractionType": "Action", + "Action": "Slug Shot" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1014577, + "Position": { + "X": -154.31458, + "Y": 16.999992, + "Z": -53.3609 + }, + "TerritoryId": 418, + "InteractionType": "CompleteQuest", + "AethernetShortcut": [ + "[Ishgard] The Tribunal", + "[Ishgard] Skysteel Manufactory" + ], + "NextQuestId": 1712 + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Class Quests/MCH/1712_Rise of the Machinists.json b/QuestPaths/3.x - Heavensward/Class Quests/MCH/1712_Rise of the Machinists.json new file mode 100644 index 000000000..989ae5506 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Class Quests/MCH/1712_Rise of the Machinists.json @@ -0,0 +1,184 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1014577, + "Position": { + "X": -154.31458, + "Y": 16.999992, + "Z": -53.3609 + }, + "TerritoryId": 418, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] Skysteel Manufactory" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1014835, + "Position": { + "X": -86.4729, + "Y": 15.23318, + "Z": -63.98114 + }, + "TerritoryId": 418, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 1014837, + "Position": { + "X": -135.51538, + "Y": 5.467082, + "Z": 39.93274 + }, + "TerritoryId": 418, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 16 + ] + }, + { + "DataId": 1014836, + "Position": { + "X": -20.004639, + "Y": 1.5791271, + "Z": 90.37915 + }, + "TerritoryId": 418, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Ishgard] Skysteel Manufactory", + "[Ishgard] Aetheryte Plaza" + ], + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, + { + "DataId": 1014834, + "Position": { + "X": 56.839844, + "Y": 24.071722, + "Z": -30.075562 + }, + "TerritoryId": 418, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] The Forgotten Knight" + ], + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1014577, + "Position": { + "X": -154.31458, + "Y": 16.999992, + "Z": -53.3609 + }, + "StopDistance": 5, + "TerritoryId": 418, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Ishgard] The Forgotten Knight", + "[Ishgard] Skysteel Manufactory" + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "Position": { + "X": 874.0602, + "Y": -3.0127013, + "Z": 353.70963 + }, + "TerritoryId": 398, + "InteractionType": "WalkTo", + "AetheryteShortcut": "The Dravanian Forelands - Tailfeather", + "Fly": true + }, + { + "DataId": 1014841, + "Position": { + "X": -631.281, + "Y": 96.94948, + "Z": -461.63123 + }, + "TerritoryId": 397, + "InteractionType": "SinglePlayerDuty", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1014577, + "Position": { + "X": -154.31458, + "Y": 16.999992, + "Z": -53.3609 + }, + "TerritoryId": 418, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] Skysteel Manufactory" + ], + "NextQuestId": 2109 + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Class Quests/MCH/2109_So You Want to Be a Machinist.json b/QuestPaths/3.x - Heavensward/Class Quests/MCH/2109_So You Want to Be a Machinist.json new file mode 100644 index 000000000..2e4e1d486 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Class Quests/MCH/2109_So You Want to Be a Machinist.json @@ -0,0 +1,38 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1014577, + "Position": { + "X": -154.31458, + "Y": 16.999992, + "Z": -53.3609 + }, + "TerritoryId": 418, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] Skysteel Manufactory" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + }, + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_JOBMCH299_02109_Q1_000_000", + "Yes": true + } + ] + } + ] + } + ] +} diff --git a/QuestPaths/quest-v1.json b/QuestPaths/quest-v1.json index 3a8e5eb30..a1d9aa33d 100644 --- a/QuestPaths/quest-v1.json +++ b/QuestPaths/quest-v1.json @@ -948,7 +948,8 @@ "Fuma Shuriken", "Katon", "Raiton", - "Hide" + "Hide", + "Slug Shot" ] } }, diff --git a/Questionable.Model/Questing/Converter/ActionConverter.cs b/Questionable.Model/Questing/Converter/ActionConverter.cs index 7a2174245..d3a905006 100644 --- a/Questionable.Model/Questing/Converter/ActionConverter.cs +++ b/Questionable.Model/Questing/Converter/ActionConverter.cs @@ -39,5 +39,6 @@ public sealed class ActionConverter() : EnumConverter(Values) { EAction.FumaShuriken, "Fuma Shuriken" }, { EAction.Katon, "Katon" }, { EAction.Raiton, "Raiton" }, + { EAction.SlugShot, "Slug Shot" }, }; } diff --git a/Questionable.Model/Questing/EAction.cs b/Questionable.Model/Questing/EAction.cs index 429281732..5fd172585 100644 --- a/Questionable.Model/Questing/EAction.cs +++ b/Questionable.Model/Questing/EAction.cs @@ -45,6 +45,7 @@ public enum EAction Katon = 2266, Raiton = 2267, RabbitMedium = 2272, + SlugShot = 7412, CollectMiner = 240, ScourMiner = 22182, diff --git a/Questionable/Controller/NavigationOverrides/MovementOverrideController.cs b/Questionable/Controller/NavigationOverrides/MovementOverrideController.cs index 7b7186ef9..182946f67 100644 --- a/Questionable/Controller/NavigationOverrides/MovementOverrideController.cs +++ b/Questionable/Controller/NavigationOverrides/MovementOverrideController.cs @@ -49,6 +49,9 @@ internal sealed class MovementOverrideController // rising stones, plant boxes new BlacklistedPoint(351, new(3.25f, 0.75f, 8.5f), new(4f, 0f, 9.5f)), + // ishgard, clutter + new BlacklistedPoint(418, new(-136.75f, 2.75f, 9), new(-138.66408f, 2.0333426f, 8.860787f), 1f), + // southern sea of clouds, random rock new BlacklistedPoint(401, new(-14.75f, -136.75f, 515.75f), new(-17.631899f, -137.39148f, 512.6676f), 2), -- 2.45.2 From bca953b913c4275803387c01828a7a5a0e068b88 Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Mon, 4 Nov 2024 20:54:37 +0800 Subject: [PATCH 207/448] Added new daily quests: - Confused Courier - Buoyant Bounty - Anala-lyze This --- .../Kojin/Dailies/2987_Confused Courier.json | 105 +++++++++++ .../Kojin/Dailies/2988_Buoyant Bounty.json | 112 +++++++++++ .../Kojin/Dailies/2989_Anala-lyze This.json | 175 ++++++++++++++++++ 3 files changed, 392 insertions(+) create mode 100644 QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2987_Confused Courier.json create mode 100644 QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2988_Buoyant Bounty.json create mode 100644 QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2989_Anala-lyze This.json diff --git a/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2987_Confused Courier.json b/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2987_Confused Courier.json new file mode 100644 index 000000000..39d11335c --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2987_Confused Courier.json @@ -0,0 +1,105 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "plogon_enjoyer", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1024217, + "Position": { + "X": 394.39978, + "Y": -119.58932, + "Z": -232.28815 + }, + "TerritoryId": 613, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1024300, + "Position": { + "X": 139.60474, + "Y": -0.17411774, + "Z": -578.1796 + }, + "TerritoryId": 613, + "InteractionType": "Interact", + "AetheryteShortcut": "Ruby Sea - Onokoro", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1024305, + "Position": { + "X": 30.71643, + "Y": 1.1855971, + "Z": -529.778 + }, + "TerritoryId": 613, + "InteractionType": "Interact", + "RequiredQuestVariables": [null, null, [33, 34], null, null, null], + "Fly": true + }, + { + "DataId": 1024303, + "Position": { + "X": 43.503418, + "Y": 3.6636734, + "Z": -619.379 + }, + "TerritoryId": 613, + "InteractionType": "Interact", + "RequiredQuestVariables": [null, null, [17, 35], null, null, null], + "Fly": true + }, + { + "DataId": 1024301, + "Position": { + "X": -11.886841, + "Y": 3.194641, + "Z": -622.88855 + }, + "TerritoryId": 613, + "InteractionType": "Interact", + "RequiredQuestVariables": [null, null, [18, 19], null, null, null], + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": 392.59683, + "Y": -119.589325, + "Z": -234.30063 + }, + "TerritoryId": 613, + "InteractionType": "WalkTo", + "Fly": true, + "AetheryteShortcut": "Ruby Sea - Tamamizu" + }, + { + "DataId": 1024217, + "Position": { + "X": 394.39978, + "Y": -119.58932, + "Z": -232.28815 + }, + "TerritoryId": 613, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2988_Buoyant Bounty.json b/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2988_Buoyant Bounty.json new file mode 100644 index 000000000..1643f212d --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2988_Buoyant Bounty.json @@ -0,0 +1,112 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "plogon_enjoyer", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1024217, + "Position": { + "X": 394.39978, + "Y": -119.58932, + "Z": -232.28815 + }, + "TerritoryId": 613, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "TerritoryId": 613, + "InteractionType": "None", + "AetheryteShortcut": "Ruby Sea - Onokoro" + }, + { + "DataId": 2009104, + "Position": { + "X": 399.89307, + "Y": -0.10687256, + "Z": -347.21906 + }, + "TerritoryId": 613, + "InteractionType": "UseItem", + "RequiredQuestVariables": [null, null, [16], null, null, null], + "ItemId": 2002405, + "Fly": true + }, + { + "DataId": 2009103, + "Position": { + "X": 187.24341, + "Y": -0.10687256, + "Z": -477.71423 + }, + "TerritoryId": 613, + "InteractionType": "UseItem", + "RequiredQuestVariables": [null, null, [32], null, null, null], + "ItemId": 2002405, + "Fly": true + }, + { + "DataId": 2009102, + "Position": { + "X": 379.07983, + "Y": -0.07635498, + "Z": -494.31604 + }, + "TerritoryId": 613, + "InteractionType": "UseItem", + "RequiredQuestVariables": [null, null, [48], null, null, null], + "ItemId": 2002405, + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1024218, + "Position": { + "X": 387.56384, + "Y": -119.795334, + "Z": -257.64862 + }, + "TerritoryId": 613, + "InteractionType": "Interact", + "AetheryteShortcut": "Ruby Sea - Tamamizu", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": 392.59683, + "Y": -119.589325, + "Z": -234.30063 + }, + "TerritoryId": 613, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 1024217, + "Position": { + "X": 394.39978, + "Y": -119.58932, + "Z": -232.28815 + }, + "TerritoryId": 613, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2989_Anala-lyze This.json b/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2989_Anala-lyze This.json new file mode 100644 index 000000000..a98fc9632 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2989_Anala-lyze This.json @@ -0,0 +1,175 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "plogon_enjoyer", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1024217, + "Position": { + "X": 394.39978, + "Y": -119.58932, + "Z": -232.28815 + }, + "TerritoryId": 613, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "TerritoryId": 613, + "InteractionType": "None", + "AetheryteShortcut": "Kugane", + "AethernetShortcut": [ + "[Kugane] Aetheryte Plaza", + "[Kugane] The Ruby Price" + ] + }, + { + "DataId": 2009161, + "Position": { + "X": 52.262085, + "Y": 18.844849, + "Z": 576.43994 + }, + "TerritoryId": 613, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [8238], + "RequiredQuestVariables": [null, null, [16], null, null, null], + "Fly": true + }, + { + "Position": { + "X": 52.262085, + "Y": 18.844849, + "Z": 576.43994 + }, + "TerritoryId": 613, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "KillEnemyDataIds": [8239], + "RequiredQuestVariables": [null, null, [16], null, null, null] + }, + { + "Position": { + "X": 52.262085, + "Y": 18.844849, + "Z": 576.43994 + }, + "TerritoryId": 613, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "KillEnemyDataIds": [8240], + "RequiredQuestVariables": [null, null, [16], null, null, null] + }, + { + "DataId": 2009162, + "Position": { + "X": 29.587158, + "Y": 51.407593, + "Z": 771.35876 + }, + "TerritoryId": 613, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [8238], + "RequiredQuestVariables": [null, null, [32], null, null, null], + "Fly": true + }, + { + "Position": { + "X": 29.587158, + "Y": 51.407593, + "Z": 771.35876 + }, + "TerritoryId": 613, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "KillEnemyDataIds": [8239], + "RequiredQuestVariables": [null, null, [32], null, null, null] + }, + { + "Position": { + "X": 29.587158, + "Y": 51.407593, + "Z": 771.35876 + }, + "TerritoryId": 613, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "KillEnemyDataIds": [8240], + "RequiredQuestVariables": [null, null, [32], null, null, null] + }, + { + "DataId": 2009163, + "Position": { + "X": 337.84998, + "Y": 5.8136597, + "Z": 685.26733 + }, + "TerritoryId": 613, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [8238], + "RequiredQuestVariables": [null, null, [48], null, null, null], + "Fly": true + }, + { + "Position": { + "X": 337.84998, + "Y": 5.8136597, + "Z": 685.26733 + }, + "TerritoryId": 613, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "KillEnemyDataIds": [8239], + "RequiredQuestVariables": [null, null, [48], null, null, null] + }, + { + "Position": { + "X": 337.84998, + "Y": 5.8136597, + "Z": 685.26733 + }, + "TerritoryId": 613, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "KillEnemyDataIds": [8240], + "RequiredQuestVariables": [null, null, [48], null, null, null] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": 392.59683, + "Y": -119.589325, + "Z": -234.30063 + }, + "TerritoryId": 613, + "InteractionType": "WalkTo", + "Fly": true, + "AetheryteShortcut": "Ruby Sea - Tamamizu" + }, + { + "DataId": 1024217, + "Position": { + "X": 394.39978, + "Y": -119.58932, + "Z": -232.28815 + }, + "TerritoryId": 613, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} -- 2.45.2 From cc8f326d7ea10afefcb0d5a8e7ae5dae99ba9ea1 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Mon, 4 Nov 2024 17:19:49 +0100 Subject: [PATCH 208/448] Handle how required classes are configured for individual quest steps + gathering --- LLib | 2 +- .../RoslynElements/GatheredItemExtensions.cs | 4 - .../RoslynElements/QuestStepExtensions.cs | 6 ++ .../3852_Prudence at This Junction.json | 81 ++++++++++++++++++- .../Qitari/Dailies/3806_A Tool's Errand.json | 16 +++- .../3807_Where the Sun Don't Shine.json | 16 +++- .../Qitari/Dailies/3808_A Touch of Home.json | 16 +++- .../Qitari/Dailies/3809_Mother's Recipe.json | 16 +++- .../Dailies/3811_Rational Thinking.json | 16 +++- .../Qitari/Dailies/3812_Making Scents.json | 16 +++- .../Dailies/3814_Prayers and Poison.json | 16 +++- .../Qitari/Dailies/3815_Salve Our Souls.json | 16 +++- .../Qitari/Dailies/3816_Rings of Pattern.json | 16 +++- .../Qitari/Dailies/3817_You Dirty Rats.json | 16 +++- .../Dailies/3818_If It's Broke, Fix It.json | 16 +++- .../3820_The Qitari Book of Records.json | 16 +++- .../Qitari/Dailies/3821_Meat and Greet.json | 16 +++- .../Dailies/3822_I Have Never Exploded.json | 16 +++- .../Qitari/Dailies/3824_Rock 'n Ronka.json | 16 +++- ...5_There's No Clean Like Qhoterl Clean.json | 16 +++- .../Dailies/3827_Her Splendid Materials.json | 16 +++- .../Qitari/Dailies/3828_Splendid Eats.json | 17 +++- .../Dailies/3830_Safety Is No Accident.json | 16 +++- ...Fish, Two Fish, Bread Fish, Stew Fish.json | 16 +++- .../Story/3795_Wisdom of the Night.json | 16 +++- .../Qitari/Story/3796_Delving Deeper.json | 16 +++- .../Qitari/Story/3797_A Chilling Fate.json | 16 +++- .../Story/3798_What Ails the Forest.json | 16 +++- .../Dailies/4607_Signs of the Past.json | 16 +++- .../Dailies/4609_Well Below Standard.json | 16 +++- .../Dailies/4611_Grounds for Improvement.json | 16 +++- .../Dailies/4612_A Fertile Blend.json | 16 +++- .../Dailies/4614_The Robot and the Sea.json | 16 +++- .../Dailies/4615_Using Their Heads.json | 19 +++-- .../Dailies/4617_I'll Fish It Myself.json | 16 +++- .../Omicrons/Dailies/4618_Sold Out.json | 16 +++- .../Dailies/4620_A Taste of the Sea.json | 16 +++- .../Omicrons/Dailies/4622_Ea Epicurious.json | 16 +++- .../Omicrons/Dailies/4623_I, Omicron.json | 16 +++- ...25_Corporeal Hand to Proverbial Mouth.json | 16 +++- .../Dailies/4626_Mush for Miw Miisv.json | 16 +++- .../Dailies/4627_Corporeal Comforts.json | 16 +++- .../Dailies/4629_A Light in the Dark.json | 16 +++- .../4630_Reclaiming the Taste of Home.json | 16 +++- .../Omicrons/Dailies/4631_Not Forgotten.json | 16 +++- .../Dailies/4632_Checking for Cavities.json | 17 +++- .../Omicrons/Dailies/4634_The Lost World.json | 16 +++- ...1_The Café at the End of the Universe.json | 16 +++- .../4602_Longing So for All the Fish.json | 16 +++- .../Story/4603_And Another Question.json | 19 +++-- ...estaurateur's Guide to the Dragonstar.json | 16 +++- .../Omicrons/Story/4605_Mostly Heartless.json | 16 +++- QuestPaths/quest-v1.json | 21 +++-- .../Questing/Converter/ClassJobConverter.cs | 26 ------ .../Converter/ExtendedClassJobConverter.cs | 57 +++++++++++++ .../Questing/EExtendedClassJob.cs | 55 +++++++++++++ Questionable.Model/Questing/GatheredItem.cs | 6 -- Questionable.Model/Questing/QuestStep.cs | 2 + Questionable.Model/common-schema.json | 51 ++++++++++++ .../Controller/ContextMenuController.cs | 5 +- .../Controller/Steps/Shared/Gather.cs | 27 +------ .../Controller/Steps/Shared/SkipCondition.cs | 41 +++++++++- Questionable/Data/ClassJobUtils.cs | 66 +++++++++++++++ 63 files changed, 1000 insertions(+), 226 deletions(-) delete mode 100644 Questionable.Model/Questing/Converter/ClassJobConverter.cs create mode 100644 Questionable.Model/Questing/Converter/ExtendedClassJobConverter.cs create mode 100644 Questionable.Model/Questing/EExtendedClassJob.cs create mode 100644 Questionable/Data/ClassJobUtils.cs diff --git a/LLib b/LLib index 912a7b04c..fde09c705 160000 --- a/LLib +++ b/LLib @@ -1 +1 @@ -Subproject commit 912a7b04ce180e337af9beeef2d1393b040c1ba8 +Subproject commit fde09c705b648f03c287814191a554f0a4b92cc4 diff --git a/QuestPathGenerator/RoslynElements/GatheredItemExtensions.cs b/QuestPathGenerator/RoslynElements/GatheredItemExtensions.cs index 179c7a668..cad92fac5 100644 --- a/QuestPathGenerator/RoslynElements/GatheredItemExtensions.cs +++ b/QuestPathGenerator/RoslynElements/GatheredItemExtensions.cs @@ -29,10 +29,6 @@ internal static class GatheredItemExtensions .AsSyntaxNodeOrToken(), Assignment(nameof(GatheredItem.Collectability), gatheredItem.Collectability, emptyItem.Collectability) - .AsSyntaxNodeOrToken(), - Assignment(nameof(GatheredItem.QuestAcceptedAsClass), - gatheredItem.QuestAcceptedAsClass, - emptyItem.QuestAcceptedAsClass) .AsSyntaxNodeOrToken())))); } } diff --git a/QuestPathGenerator/RoslynElements/QuestStepExtensions.cs b/QuestPathGenerator/RoslynElements/QuestStepExtensions.cs index d65ca7942..ecfea639e 100644 --- a/QuestPathGenerator/RoslynElements/QuestStepExtensions.cs +++ b/QuestPathGenerator/RoslynElements/QuestStepExtensions.cs @@ -120,6 +120,12 @@ internal static class QuestStepExtensions AssignmentList(nameof(QuestStep.RequiredQuestVariables), step.RequiredQuestVariables) .AsSyntaxNodeOrToken(), + AssignmentList(nameof(QuestStep.RequiredCurrentJob), + step.RequiredCurrentJob) + .AsSyntaxNodeOrToken(), + AssignmentList(nameof(QuestStep.RequiredQuestAcceptedJob), + step.RequiredQuestAcceptedJob) + .AsSyntaxNodeOrToken(), AssignmentList(nameof(QuestStep.ItemsToGather), step.ItemsToGather), AssignmentList(nameof(QuestStep.CompletionQuestVariablesFlags), diff --git a/QuestPaths/2.x - A Realm Reborn/MSQ-1/Ul'dah/3852_Prudence at This Junction.json b/QuestPaths/2.x - A Realm Reborn/MSQ-1/Ul'dah/3852_Prudence at This Junction.json index 50722a12f..e2e944e95 100644 --- a/QuestPaths/2.x - A Realm Reborn/MSQ-1/Ul'dah/3852_Prudence at This Junction.json +++ b/QuestPaths/2.x - A Realm Reborn/MSQ-1/Ul'dah/3852_Prudence at This Junction.json @@ -40,10 +40,88 @@ { "Sequence": 255, "Steps": [ + { + "Position": { + "X": -12.223117, + "Y": -2.0482793, + "Z": -145.75566 + }, + "TerritoryId": 141, + "InteractionType": "WalkTo" + }, { "TerritoryId": 141, "InteractionType": "EquipRecommended" }, + { + "DataId": 1001564, + "Position": { + "X": -9.689575, + "Y": -2.0480804, + "Z": -145.09808 + }, + "TerritoryId": 141, + "InteractionType": "PurchaseItem", + "PurchaseMenu": { + "ExcelSheet": "GilShop", + "Key": 262186 + }, + "ItemId": 2654, + "ItemCount": 1, + "RequiredCurrentJob": [ + "DoW" + ], + "SkipConditions": { + "StepIf": { + "Item": { + "NotInInventory": false + } + } + } + }, + { + "DataId": 1001564, + "Position": { + "X": -9.689575, + "Y": -2.0480804, + "Z": -145.09808 + }, + "TerritoryId": 141, + "InteractionType": "PurchaseItem", + "PurchaseMenu": { + "ExcelSheet": "GilShop", + "Key": 262186 + }, + "ItemId": 2655, + "ItemCount": 1, + "RequiredCurrentJob": [ + "DoM" + ] + }, + { + "TerritoryId": 141, + "InteractionType": "EquipItem", + "ItemId": 2654, + "SkipConditions": { + "StepIf": { + "Item": { + "NotInInventory": true + } + } + } + }, + { + "TerritoryId": 141, + "InteractionType": "EquipItem", + "ItemId": 2655, + "SkipConditions": { + "StepIf": { + "Item": { + "NotInInventory": true + } + } + } + }, { "DataId": 1001447, "Position": { @@ -52,8 +130,7 @@ "Z": -148.51611 }, "TerritoryId": 141, - "InteractionType": "CompleteQuest", - "Comment": "All starting gear (except the hat) is ilvl 5 already" + "InteractionType": "CompleteQuest" } ] } diff --git a/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Dailies/3806_A Tool's Errand.json b/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Dailies/3806_A Tool's Errand.json index 3a11c275a..953473893 100644 --- a/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Dailies/3806_A Tool's Errand.json +++ b/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Dailies/3806_A Tool's Errand.json @@ -23,14 +23,24 @@ { "TerritoryId": 817, "InteractionType": "Gather", + "RequiredQuestAcceptedJob": [ + "Miner" + ], "ItemsToGather": [ { - "QuestAcceptedAsClass": "Miner", "ItemId": 29517, "ItemCount": 3 - }, + } + ] + }, + { + "TerritoryId": 817, + "InteractionType": "Gather", + "RequiredQuestAcceptedJob": [ + "Botanist" + ], + "ItemsToGather": [ { - "QuestAcceptedAsClass": "Botanist", "ItemId": 29543, "ItemCount": 3 } diff --git a/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Dailies/3807_Where the Sun Don't Shine.json b/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Dailies/3807_Where the Sun Don't Shine.json index 194836db3..88b96f984 100644 --- a/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Dailies/3807_Where the Sun Don't Shine.json +++ b/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Dailies/3807_Where the Sun Don't Shine.json @@ -23,14 +23,24 @@ { "TerritoryId": 817, "InteractionType": "Gather", + "RequiredQuestAcceptedJob": [ + "Miner" + ], "ItemsToGather": [ { - "QuestAcceptedAsClass": "Miner", "ItemId": 29518, "ItemCount": 3 - }, + } + ] + }, + { + "TerritoryId": 817, + "InteractionType": "Gather", + "RequiredQuestAcceptedJob": [ + "Botanist" + ], + "ItemsToGather": [ { - "QuestAcceptedAsClass": "Botanist", "ItemId": 29544, "ItemCount": 3 } diff --git a/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Dailies/3808_A Touch of Home.json b/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Dailies/3808_A Touch of Home.json index 5fa818a88..8c2898f55 100644 --- a/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Dailies/3808_A Touch of Home.json +++ b/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Dailies/3808_A Touch of Home.json @@ -23,14 +23,24 @@ { "TerritoryId": 817, "InteractionType": "Gather", + "RequiredQuestAcceptedJob": [ + "Miner" + ], "ItemsToGather": [ { - "QuestAcceptedAsClass": "Miner", "ItemId": 29519, "ItemCount": 3 - }, + } + ] + }, + { + "TerritoryId": 817, + "InteractionType": "Gather", + "RequiredQuestAcceptedJob": [ + "Botanist" + ], + "ItemsToGather": [ { - "QuestAcceptedAsClass": "Botanist", "ItemId": 29545, "ItemCount": 3 } diff --git a/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Dailies/3809_Mother's Recipe.json b/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Dailies/3809_Mother's Recipe.json index e0e1def3c..001da099f 100644 --- a/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Dailies/3809_Mother's Recipe.json +++ b/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Dailies/3809_Mother's Recipe.json @@ -23,14 +23,24 @@ { "TerritoryId": 817, "InteractionType": "Gather", + "RequiredQuestAcceptedJob": [ + "Miner" + ], "ItemsToGather": [ { - "QuestAcceptedAsClass": "Miner", "ItemId": 29520, "ItemCount": 3 - }, + } + ] + }, + { + "TerritoryId": 817, + "InteractionType": "Gather", + "RequiredQuestAcceptedJob": [ + "Botanist" + ], + "ItemsToGather": [ { - "QuestAcceptedAsClass": "Botanist", "ItemId": 29546, "ItemCount": 3 } diff --git a/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Dailies/3811_Rational Thinking.json b/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Dailies/3811_Rational Thinking.json index 1e420bdfa..1d5c1c126 100644 --- a/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Dailies/3811_Rational Thinking.json +++ b/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Dailies/3811_Rational Thinking.json @@ -23,14 +23,24 @@ { "TerritoryId": 817, "InteractionType": "Gather", + "RequiredQuestAcceptedJob": [ + "Miner" + ], "ItemsToGather": [ { - "QuestAcceptedAsClass": "Miner", "ItemId": 29521, "ItemCount": 3 - }, + } + ] + }, + { + "TerritoryId": 817, + "InteractionType": "Gather", + "RequiredQuestAcceptedJob": [ + "Botanist" + ], + "ItemsToGather": [ { - "QuestAcceptedAsClass": "Botanist", "ItemId": 29547, "ItemCount": 3 } diff --git a/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Dailies/3812_Making Scents.json b/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Dailies/3812_Making Scents.json index 6b0ac9041..277bd959c 100644 --- a/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Dailies/3812_Making Scents.json +++ b/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Dailies/3812_Making Scents.json @@ -23,14 +23,24 @@ { "TerritoryId": 817, "InteractionType": "Gather", + "RequiredQuestAcceptedJob": [ + "Miner" + ], "ItemsToGather": [ { - "QuestAcceptedAsClass": "Miner", "ItemId": 29522, "ItemCount": 3 - }, + } + ] + }, + { + "TerritoryId": 817, + "InteractionType": "Gather", + "RequiredQuestAcceptedJob": [ + "Botanist" + ], + "ItemsToGather": [ { - "QuestAcceptedAsClass": "Botanist", "ItemId": 29548, "ItemCount": 3 } diff --git a/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Dailies/3814_Prayers and Poison.json b/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Dailies/3814_Prayers and Poison.json index 6fa2638b1..3805b7a9b 100644 --- a/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Dailies/3814_Prayers and Poison.json +++ b/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Dailies/3814_Prayers and Poison.json @@ -23,14 +23,24 @@ { "TerritoryId": 817, "InteractionType": "Gather", + "RequiredQuestAcceptedJob": [ + "Miner" + ], "ItemsToGather": [ { - "QuestAcceptedAsClass": "Miner", "ItemId": 29523, "ItemCount": 3 - }, + } + ] + }, + { + "TerritoryId": 817, + "InteractionType": "Gather", + "RequiredQuestAcceptedJob": [ + "Botanist" + ], + "ItemsToGather": [ { - "QuestAcceptedAsClass": "Botanist", "ItemId": 29549, "ItemCount": 3 } diff --git a/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Dailies/3815_Salve Our Souls.json b/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Dailies/3815_Salve Our Souls.json index 1a63219d3..43379d50b 100644 --- a/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Dailies/3815_Salve Our Souls.json +++ b/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Dailies/3815_Salve Our Souls.json @@ -23,14 +23,24 @@ { "TerritoryId": 817, "InteractionType": "Gather", + "RequiredQuestAcceptedJob": [ + "Miner" + ], "ItemsToGather": [ { - "QuestAcceptedAsClass": "Miner", "ItemId": 29524, "ItemCount": 3 - }, + } + ] + }, + { + "TerritoryId": 817, + "InteractionType": "Gather", + "RequiredQuestAcceptedJob": [ + "Botanist" + ], + "ItemsToGather": [ { - "QuestAcceptedAsClass": "Botanist", "ItemId": 29550, "ItemCount": 3 } diff --git a/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Dailies/3816_Rings of Pattern.json b/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Dailies/3816_Rings of Pattern.json index bac8bfae7..dfe3de3b9 100644 --- a/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Dailies/3816_Rings of Pattern.json +++ b/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Dailies/3816_Rings of Pattern.json @@ -23,14 +23,24 @@ { "TerritoryId": 817, "InteractionType": "Gather", + "RequiredQuestAcceptedJob": [ + "Miner" + ], "ItemsToGather": [ { - "QuestAcceptedAsClass": "Miner", "ItemId": 29525, "ItemCount": 3 - }, + } + ] + }, + { + "TerritoryId": 817, + "InteractionType": "Gather", + "RequiredQuestAcceptedJob": [ + "Botanist" + ], + "ItemsToGather": [ { - "QuestAcceptedAsClass": "Botanist", "ItemId": 29551, "ItemCount": 3 } diff --git a/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Dailies/3817_You Dirty Rats.json b/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Dailies/3817_You Dirty Rats.json index f01987398..8d18783e0 100644 --- a/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Dailies/3817_You Dirty Rats.json +++ b/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Dailies/3817_You Dirty Rats.json @@ -23,14 +23,24 @@ { "TerritoryId": 817, "InteractionType": "Gather", + "RequiredQuestAcceptedJob": [ + "Miner" + ], "ItemsToGather": [ { - "QuestAcceptedAsClass": "Miner", "ItemId": 29526, "ItemCount": 3 - }, + } + ] + }, + { + "TerritoryId": 817, + "InteractionType": "Gather", + "RequiredQuestAcceptedJob": [ + "Botanist" + ], + "ItemsToGather": [ { - "QuestAcceptedAsClass": "Botanist", "ItemId": 29552, "ItemCount": 3 } diff --git a/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Dailies/3818_If It's Broke, Fix It.json b/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Dailies/3818_If It's Broke, Fix It.json index 8d0ac16d8..6e2d4ab08 100644 --- a/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Dailies/3818_If It's Broke, Fix It.json +++ b/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Dailies/3818_If It's Broke, Fix It.json @@ -23,14 +23,24 @@ { "TerritoryId": 817, "InteractionType": "Gather", + "RequiredQuestAcceptedJob": [ + "Miner" + ], "ItemsToGather": [ { - "QuestAcceptedAsClass": "Miner", "ItemId": 29527, "ItemCount": 3 - }, + } + ] + }, + { + "TerritoryId": 817, + "InteractionType": "Gather", + "RequiredQuestAcceptedJob": [ + "Botanist" + ], + "ItemsToGather": [ { - "QuestAcceptedAsClass": "Botanist", "ItemId": 29553, "ItemCount": 3 } diff --git a/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Dailies/3820_The Qitari Book of Records.json b/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Dailies/3820_The Qitari Book of Records.json index 204ea239f..f3b347cbc 100644 --- a/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Dailies/3820_The Qitari Book of Records.json +++ b/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Dailies/3820_The Qitari Book of Records.json @@ -23,14 +23,24 @@ { "TerritoryId": 817, "InteractionType": "Gather", + "RequiredQuestAcceptedJob": [ + "Miner" + ], "ItemsToGather": [ { - "QuestAcceptedAsClass": "Miner", "ItemId": 29528, "ItemCount": 3 - }, + } + ] + }, + { + "TerritoryId": 817, + "InteractionType": "Gather", + "RequiredQuestAcceptedJob": [ + "Botanist" + ], + "ItemsToGather": [ { - "QuestAcceptedAsClass": "Botanist", "ItemId": 29554, "ItemCount": 3 } diff --git a/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Dailies/3821_Meat and Greet.json b/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Dailies/3821_Meat and Greet.json index ffa6ff83c..afc170ee2 100644 --- a/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Dailies/3821_Meat and Greet.json +++ b/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Dailies/3821_Meat and Greet.json @@ -23,14 +23,24 @@ { "TerritoryId": 817, "InteractionType": "Gather", + "RequiredQuestAcceptedJob": [ + "Miner" + ], "ItemsToGather": [ { - "QuestAcceptedAsClass": "Miner", "ItemId": 29529, "ItemCount": 3 - }, + } + ] + }, + { + "TerritoryId": 817, + "InteractionType": "Gather", + "RequiredQuestAcceptedJob": [ + "Botanist" + ], + "ItemsToGather": [ { - "QuestAcceptedAsClass": "Botanist", "ItemId": 29555, "ItemCount": 3 } diff --git a/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Dailies/3822_I Have Never Exploded.json b/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Dailies/3822_I Have Never Exploded.json index dec082cde..b78b3195e 100644 --- a/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Dailies/3822_I Have Never Exploded.json +++ b/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Dailies/3822_I Have Never Exploded.json @@ -23,14 +23,24 @@ { "TerritoryId": 817, "InteractionType": "Gather", + "RequiredQuestAcceptedJob": [ + "Miner" + ], "ItemsToGather": [ { - "QuestAcceptedAsClass": "Miner", "ItemId": 29530, "ItemCount": 3 - }, + } + ] + }, + { + "TerritoryId": 817, + "InteractionType": "Gather", + "RequiredQuestAcceptedJob": [ + "Botanist" + ], + "ItemsToGather": [ { - "QuestAcceptedAsClass": "Botanist", "ItemId": 29556, "ItemCount": 3 } diff --git a/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Dailies/3824_Rock 'n Ronka.json b/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Dailies/3824_Rock 'n Ronka.json index 7746ab7a9..89faa3184 100644 --- a/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Dailies/3824_Rock 'n Ronka.json +++ b/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Dailies/3824_Rock 'n Ronka.json @@ -23,14 +23,24 @@ { "TerritoryId": 817, "InteractionType": "Gather", + "RequiredQuestAcceptedJob": [ + "Miner" + ], "ItemsToGather": [ { - "QuestAcceptedAsClass": "Miner", "ItemId": 29531, "ItemCount": 3 - }, + } + ] + }, + { + "TerritoryId": 817, + "InteractionType": "Gather", + "RequiredQuestAcceptedJob": [ + "Botanist" + ], + "ItemsToGather": [ { - "QuestAcceptedAsClass": "Botanist", "ItemId": 29557, "ItemCount": 3 } diff --git a/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Dailies/3825_There's No Clean Like Qhoterl Clean.json b/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Dailies/3825_There's No Clean Like Qhoterl Clean.json index b5e71d0b9..02b0e4ea6 100644 --- a/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Dailies/3825_There's No Clean Like Qhoterl Clean.json +++ b/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Dailies/3825_There's No Clean Like Qhoterl Clean.json @@ -23,14 +23,24 @@ { "TerritoryId": 817, "InteractionType": "Gather", + "RequiredQuestAcceptedJob": [ + "Miner" + ], "ItemsToGather": [ { - "QuestAcceptedAsClass": "Miner", "ItemId": 29532, "ItemCount": 3 - }, + } + ] + }, + { + "TerritoryId": 817, + "InteractionType": "Gather", + "RequiredQuestAcceptedJob": [ + "Botanist" + ], + "ItemsToGather": [ { - "QuestAcceptedAsClass": "Botanist", "ItemId": 29558, "ItemCount": 3 } diff --git a/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Dailies/3827_Her Splendid Materials.json b/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Dailies/3827_Her Splendid Materials.json index 6b71e791e..d694fed18 100644 --- a/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Dailies/3827_Her Splendid Materials.json +++ b/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Dailies/3827_Her Splendid Materials.json @@ -23,14 +23,24 @@ { "TerritoryId": 817, "InteractionType": "Gather", + "RequiredQuestAcceptedJob": [ + "Miner" + ], "ItemsToGather": [ { - "QuestAcceptedAsClass": "Miner", "ItemId": 29533, "ItemCount": 3 - }, + } + ] + }, + { + "TerritoryId": 817, + "InteractionType": "Gather", + "RequiredQuestAcceptedJob": [ + "Botanist" + ], + "ItemsToGather": [ { - "QuestAcceptedAsClass": "Botanist", "ItemId": 29559, "ItemCount": 3 } diff --git a/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Dailies/3828_Splendid Eats.json b/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Dailies/3828_Splendid Eats.json index 9442335fa..5e2e49e43 100644 --- a/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Dailies/3828_Splendid Eats.json +++ b/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Dailies/3828_Splendid Eats.json @@ -23,14 +23,25 @@ { "TerritoryId": 817, "InteractionType": "Gather", + "RequiredQuestAcceptedJob": [ + "Miner" + ], "ItemsToGather": [ { - "QuestAcceptedAsClass": "Miner", "ItemId": 29534, "ItemCount": 3 - }, + } + ] + }, + { + "TerritoryId": 817, + "InteractionType": "Gather", + "RequiredQuestAcceptedJob": [ + "Botanist" + ], + "ItemsToGather": [ + { - "QuestAcceptedAsClass": "Botanist", "ItemId": 29560, "ItemCount": 3 } diff --git a/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Dailies/3830_Safety Is No Accident.json b/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Dailies/3830_Safety Is No Accident.json index 8f3976ed9..8e05db5ec 100644 --- a/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Dailies/3830_Safety Is No Accident.json +++ b/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Dailies/3830_Safety Is No Accident.json @@ -23,14 +23,24 @@ { "TerritoryId": 817, "InteractionType": "Gather", + "RequiredQuestAcceptedJob": [ + "Miner" + ], "ItemsToGather": [ { - "QuestAcceptedAsClass": "Miner", "ItemId": 29535, "ItemCount": 3 - }, + } + ] + }, + { + "TerritoryId": 817, + "InteractionType": "Gather", + "RequiredQuestAcceptedJob": [ + "Botanist" + ], + "ItemsToGather": [ { - "QuestAcceptedAsClass": "Botanist", "ItemId": 29561, "ItemCount": 3 } diff --git a/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Dailies/3831_One Fish, Two Fish, Bread Fish, Stew Fish.json b/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Dailies/3831_One Fish, Two Fish, Bread Fish, Stew Fish.json index f2761f621..255ac5495 100644 --- a/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Dailies/3831_One Fish, Two Fish, Bread Fish, Stew Fish.json +++ b/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Dailies/3831_One Fish, Two Fish, Bread Fish, Stew Fish.json @@ -23,14 +23,24 @@ { "TerritoryId": 817, "InteractionType": "Gather", + "RequiredQuestAcceptedJob": [ + "Miner" + ], "ItemsToGather": [ { - "QuestAcceptedAsClass": "Miner", "ItemId": 29536, "ItemCount": 3 - }, + } + ] + }, + { + "TerritoryId": 817, + "InteractionType": "Gather", + "RequiredQuestAcceptedJob": [ + "Botanist" + ], + "ItemsToGather": [ { - "QuestAcceptedAsClass": "Botanist", "ItemId": 29562, "ItemCount": 3 } diff --git a/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Story/3795_Wisdom of the Night.json b/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Story/3795_Wisdom of the Night.json index 84db90fd8..5cd421988 100644 --- a/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Story/3795_Wisdom of the Night.json +++ b/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Story/3795_Wisdom of the Night.json @@ -40,14 +40,24 @@ { "TerritoryId": 817, "InteractionType": "Gather", + "RequiredQuestAcceptedJob": [ + "Miner" + ], "ItemsToGather": [ { - "QuestAcceptedAsClass": "Miner", "ItemId": 29513, "ItemCount": 1 - }, + } + ] + }, + { + "TerritoryId": 817, + "InteractionType": "Gather", + "RequiredQuestAcceptedJob": [ + "Botanist" + ], + "ItemsToGather": [ { - "QuestAcceptedAsClass": "Botanist", "ItemId": 29539, "ItemCount": 1 } diff --git a/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Story/3796_Delving Deeper.json b/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Story/3796_Delving Deeper.json index be8eb6d4f..7e573e1fd 100644 --- a/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Story/3796_Delving Deeper.json +++ b/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Story/3796_Delving Deeper.json @@ -55,14 +55,24 @@ { "TerritoryId": 817, "InteractionType": "Gather", + "RequiredQuestAcceptedJob": [ + "Miner" + ], "ItemsToGather": [ { - "QuestAcceptedAsClass": "Miner", "ItemId": 29514, "ItemCount": 1 - }, + } + ] + }, + { + "TerritoryId": 817, + "InteractionType": "Gather", + "RequiredQuestAcceptedJob": [ + "Botanist" + ], + "ItemsToGather": [ { - "QuestAcceptedAsClass": "Botanist", "ItemId": 29540, "ItemCount": 1 } diff --git a/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Story/3797_A Chilling Fate.json b/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Story/3797_A Chilling Fate.json index 4118fec3f..1b253615c 100644 --- a/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Story/3797_A Chilling Fate.json +++ b/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Story/3797_A Chilling Fate.json @@ -38,14 +38,24 @@ { "TerritoryId": 817, "InteractionType": "Gather", + "RequiredQuestAcceptedJob": [ + "Miner" + ], "ItemsToGather": [ { - "QuestAcceptedAsClass": "Miner", "ItemId": 29515, "ItemCount": 3 - }, + } + ] + }, + { + "TerritoryId": 817, + "InteractionType": "Gather", + "RequiredQuestAcceptedJob": [ + "Botanist" + ], + "ItemsToGather": [ { - "QuestAcceptedAsClass": "Botanist", "ItemId": 29541, "ItemCount": 3 } diff --git a/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Story/3798_What Ails the Forest.json b/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Story/3798_What Ails the Forest.json index e7e98bf51..f5f60b1b4 100644 --- a/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Story/3798_What Ails the Forest.json +++ b/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Story/3798_What Ails the Forest.json @@ -85,14 +85,24 @@ { "TerritoryId": 817, "InteractionType": "Gather", + "RequiredQuestAcceptedJob": [ + "Miner" + ], "ItemsToGather": [ { - "QuestAcceptedAsClass": "Miner", "ItemId": 29516, "ItemCount": 3 - }, + } + ] + }, + { + "TerritoryId": 817, + "InteractionType": "Gather", + "RequiredQuestAcceptedJob": [ + "Botanist" + ], + "ItemsToGather": [ { - "QuestAcceptedAsClass": "Botanist", "ItemId": 29542, "ItemCount": 3 } diff --git a/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4607_Signs of the Past.json b/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4607_Signs of the Past.json index e70487a8a..8a8c5c655 100644 --- a/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4607_Signs of the Past.json +++ b/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4607_Signs of the Past.json @@ -23,14 +23,24 @@ { "TerritoryId": 960, "InteractionType": "Gather", + "RequiredQuestAcceptedJob": [ + "Miner" + ], "ItemsToGather": [ { - "QuestAcceptedAsClass": "Miner", "ItemId": 38281, "ItemCount": 3 - }, + } + ] + }, + { + "TerritoryId": 960, + "InteractionType": "Gather", + "RequiredQuestAcceptedJob": [ + "Botanist" + ], + "ItemsToGather": [ { - "QuestAcceptedAsClass": "Botanist", "ItemId": 38305, "ItemCount": 3 } diff --git a/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4609_Well Below Standard.json b/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4609_Well Below Standard.json index c50c4a581..e66130f81 100644 --- a/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4609_Well Below Standard.json +++ b/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4609_Well Below Standard.json @@ -23,14 +23,24 @@ { "TerritoryId": 960, "InteractionType": "Gather", + "RequiredQuestAcceptedJob": [ + "Miner" + ], "ItemsToGather": [ { - "QuestAcceptedAsClass": "Miner", "ItemId": 38282, "ItemCount": 3 - }, + } + ] + }, + { + "TerritoryId": 960, + "InteractionType": "Gather", + "RequiredQuestAcceptedJob": [ + "Botanist" + ], + "ItemsToGather": [ { - "QuestAcceptedAsClass": "Botanist", "ItemId": 38306, "ItemCount": 3 } diff --git a/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4611_Grounds for Improvement.json b/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4611_Grounds for Improvement.json index 9cdb099ad..a6c457b98 100644 --- a/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4611_Grounds for Improvement.json +++ b/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4611_Grounds for Improvement.json @@ -34,14 +34,24 @@ { "TerritoryId": 1073, "InteractionType": "Gather", + "RequiredQuestAcceptedJob": [ + "Miner" + ], "ItemsToGather": [ { - "QuestAcceptedAsClass": "Miner", "ItemId": 38284, "ItemCount": 3 - }, + } + ] + }, + { + "TerritoryId": 1073, + "InteractionType": "Gather", + "RequiredQuestAcceptedJob": [ + "Botanist" + ], + "ItemsToGather": [ { - "QuestAcceptedAsClass": "Botanist", "ItemId": 38308, "ItemCount": 3 } diff --git a/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4612_A Fertile Blend.json b/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4612_A Fertile Blend.json index 0635180f2..a98f9a30e 100644 --- a/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4612_A Fertile Blend.json +++ b/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4612_A Fertile Blend.json @@ -23,14 +23,24 @@ { "TerritoryId": 960, "InteractionType": "Gather", + "RequiredQuestAcceptedJob": [ + "Miner" + ], "ItemsToGather": [ { - "QuestAcceptedAsClass": "Miner", "ItemId": 38283, "ItemCount": 3 - }, + } + ] + }, + { + "TerritoryId": 960, + "InteractionType": "Gather", + "RequiredQuestAcceptedJob": [ + "Botanist" + ], + "ItemsToGather": [ { - "QuestAcceptedAsClass": "Botanist", "ItemId": 38307, "ItemCount": 3 } diff --git a/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4614_The Robot and the Sea.json b/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4614_The Robot and the Sea.json index 71875e688..24595739a 100644 --- a/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4614_The Robot and the Sea.json +++ b/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4614_The Robot and the Sea.json @@ -34,14 +34,24 @@ { "TerritoryId": 1073, "InteractionType": "Gather", + "RequiredQuestAcceptedJob": [ + "Miner" + ], "ItemsToGather": [ { - "QuestAcceptedAsClass": "Miner", "ItemId": 38285, "ItemCount": 3 - }, + } + ] + }, + { + "TerritoryId": 1073, + "InteractionType": "Gather", + "RequiredQuestAcceptedJob": [ + "Botanist" + ], + "ItemsToGather": [ { - "QuestAcceptedAsClass": "Botanist", "ItemId": 38309, "ItemCount": 3 } diff --git a/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4615_Using Their Heads.json b/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4615_Using Their Heads.json index dece67eb0..7da759d5b 100644 --- a/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4615_Using Their Heads.json +++ b/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4615_Using Their Heads.json @@ -23,19 +23,28 @@ { "TerritoryId": 960, "InteractionType": "Gather", + "RequiredQuestAcceptedJob": [ + "Miner" + ], "ItemsToGather": [ { - "QuestAcceptedAsClass": "Miner", "ItemId": 38286, "ItemCount": 3 - }, + } + ] + }, + { + "TerritoryId": 960, + "InteractionType": "Gather", + "RequiredQuestAcceptedJob": [ + "Botanist" + ], + "ItemsToGather": [ { - "QuestAcceptedAsClass": "Botanist", "ItemId": 38310, "ItemCount": 3 } - ], - "Fly": true + ] }, { "DataId": 2013072, diff --git a/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4617_I'll Fish It Myself.json b/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4617_I'll Fish It Myself.json index 513129c61..037045165 100644 --- a/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4617_I'll Fish It Myself.json +++ b/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4617_I'll Fish It Myself.json @@ -35,14 +35,24 @@ { "TerritoryId": 1073, "InteractionType": "Gather", + "RequiredQuestAcceptedJob": [ + "Miner" + ], "ItemsToGather": [ { - "QuestAcceptedAsClass": "Miner", "ItemId": 38287, "ItemCount": 3 - }, + } + ] + }, + { + "TerritoryId": 1073, + "InteractionType": "Gather", + "RequiredQuestAcceptedJob": [ + "Botanist" + ], + "ItemsToGather": [ { - "QuestAcceptedAsClass": "Botanist", "ItemId": 38311, "ItemCount": 3 } diff --git a/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4618_Sold Out.json b/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4618_Sold Out.json index 4b83ed9dd..901356f3a 100644 --- a/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4618_Sold Out.json +++ b/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4618_Sold Out.json @@ -35,14 +35,24 @@ { "TerritoryId": 1073, "InteractionType": "Gather", + "RequiredQuestAcceptedJob": [ + "Miner" + ], "ItemsToGather": [ { - "QuestAcceptedAsClass": "Miner", "ItemId": 38288, "ItemCount": 3 - }, + } + ] + }, + { + "TerritoryId": 1073, + "InteractionType": "Gather", + "RequiredQuestAcceptedJob": [ + "Botanist" + ], + "ItemsToGather": [ { - "QuestAcceptedAsClass": "Botanist", "ItemId": 38312, "ItemCount": 3 } diff --git a/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4620_A Taste of the Sea.json b/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4620_A Taste of the Sea.json index 943289610..75083d05c 100644 --- a/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4620_A Taste of the Sea.json +++ b/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4620_A Taste of the Sea.json @@ -49,14 +49,24 @@ { "TerritoryId": 1073, "InteractionType": "Gather", + "RequiredQuestAcceptedJob": [ + "Miner" + ], "ItemsToGather": [ { - "QuestAcceptedAsClass": "Miner", "ItemId": 38289, "ItemCount": 3 - }, + } + ] + }, + { + "TerritoryId": 1073, + "InteractionType": "Gather", + "RequiredQuestAcceptedJob": [ + "Botanist" + ], + "ItemsToGather": [ { - "QuestAcceptedAsClass": "Botanist", "ItemId": 38313, "ItemCount": 3 } diff --git a/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4622_Ea Epicurious.json b/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4622_Ea Epicurious.json index 9662a58c6..6bcca2ffc 100644 --- a/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4622_Ea Epicurious.json +++ b/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4622_Ea Epicurious.json @@ -23,14 +23,24 @@ { "TerritoryId": 960, "InteractionType": "Gather", + "RequiredQuestAcceptedJob": [ + "Miner" + ], "ItemsToGather": [ { - "QuestAcceptedAsClass": "Miner", "ItemId": 38290, "ItemCount": 3 - }, + } + ] + }, + { + "TerritoryId": 960, + "InteractionType": "Gather", + "RequiredQuestAcceptedJob": [ + "Botanist" + ], + "ItemsToGather": [ { - "QuestAcceptedAsClass": "Botanist", "ItemId": 38314, "ItemCount": 3 } diff --git a/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4623_I, Omicron.json b/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4623_I, Omicron.json index 6d818a499..b3526732c 100644 --- a/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4623_I, Omicron.json +++ b/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4623_I, Omicron.json @@ -35,14 +35,24 @@ { "TerritoryId": 1073, "InteractionType": "Gather", + "RequiredQuestAcceptedJob": [ + "Miner" + ], "ItemsToGather": [ { - "QuestAcceptedAsClass": "Miner", "ItemId": 38291, "ItemCount": 3 - }, + } + ] + }, + { + "TerritoryId": 1073, + "InteractionType": "Gather", + "RequiredQuestAcceptedJob": [ + "Botanist" + ], + "ItemsToGather": [ { - "QuestAcceptedAsClass": "Botanist", "ItemId": 38315, "ItemCount": 3 } diff --git a/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4625_Corporeal Hand to Proverbial Mouth.json b/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4625_Corporeal Hand to Proverbial Mouth.json index b1fc3e924..547e110f1 100644 --- a/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4625_Corporeal Hand to Proverbial Mouth.json +++ b/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4625_Corporeal Hand to Proverbial Mouth.json @@ -34,14 +34,24 @@ { "TerritoryId": 1073, "InteractionType": "Gather", + "RequiredQuestAcceptedJob": [ + "Miner" + ], "ItemsToGather": [ { - "QuestAcceptedAsClass": "Miner", "ItemId": 38292, "ItemCount": 3 - }, + } + ] + }, + { + "TerritoryId": 1073, + "InteractionType": "Gather", + "RequiredQuestAcceptedJob": [ + "Botanist" + ], + "ItemsToGather": [ { - "QuestAcceptedAsClass": "Botanist", "ItemId": 38316, "ItemCount": 3 } diff --git a/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4626_Mush for Miw Miisv.json b/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4626_Mush for Miw Miisv.json index 1faf24167..9e32671b4 100644 --- a/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4626_Mush for Miw Miisv.json +++ b/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4626_Mush for Miw Miisv.json @@ -34,14 +34,24 @@ { "TerritoryId": 1073, "InteractionType": "Gather", + "RequiredQuestAcceptedJob": [ + "Miner" + ], "ItemsToGather": [ { - "QuestAcceptedAsClass": "Miner", "ItemId": 38293, "ItemCount": 3 - }, + } + ] + }, + { + "TerritoryId": 1073, + "InteractionType": "Gather", + "RequiredQuestAcceptedJob": [ + "Botanist" + ], + "ItemsToGather": [ { - "QuestAcceptedAsClass": "Botanist", "ItemId": 38317, "ItemCount": 3 } diff --git a/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4627_Corporeal Comforts.json b/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4627_Corporeal Comforts.json index f8be57eca..9be8d45fc 100644 --- a/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4627_Corporeal Comforts.json +++ b/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4627_Corporeal Comforts.json @@ -23,14 +23,24 @@ { "TerritoryId": 960, "InteractionType": "Gather", + "RequiredQuestAcceptedJob": [ + "Miner" + ], "ItemsToGather": [ { - "QuestAcceptedAsClass": "Miner", "ItemId": 38294, "ItemCount": 3 - }, + } + ] + }, + { + "TerritoryId": 960, + "InteractionType": "Gather", + "RequiredQuestAcceptedJob": [ + "Botanist" + ], + "ItemsToGather": [ { - "QuestAcceptedAsClass": "Botanist", "ItemId": 38318, "ItemCount": 3 } diff --git a/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4629_A Light in the Dark.json b/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4629_A Light in the Dark.json index 9ba18a23c..a2599e524 100644 --- a/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4629_A Light in the Dark.json +++ b/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4629_A Light in the Dark.json @@ -23,14 +23,24 @@ { "TerritoryId": 960, "InteractionType": "Gather", + "RequiredQuestAcceptedJob": [ + "Miner" + ], "ItemsToGather": [ { - "QuestAcceptedAsClass": "Miner", "ItemId": 38295, "ItemCount": 3 - }, + } + ] + }, + { + "TerritoryId": 960, + "InteractionType": "Gather", + "RequiredQuestAcceptedJob": [ + "Botanist" + ], + "ItemsToGather": [ { - "QuestAcceptedAsClass": "Botanist", "ItemId": 38319, "ItemCount": 3 } diff --git a/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4630_Reclaiming the Taste of Home.json b/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4630_Reclaiming the Taste of Home.json index 6e075fa89..a519f5097 100644 --- a/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4630_Reclaiming the Taste of Home.json +++ b/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4630_Reclaiming the Taste of Home.json @@ -49,14 +49,24 @@ { "TerritoryId": 1073, "InteractionType": "Gather", + "RequiredQuestAcceptedJob": [ + "Miner" + ], "ItemsToGather": [ { - "QuestAcceptedAsClass": "Miner", "ItemId": 38296, "ItemCount": 3 - }, + } + ] + }, + { + "TerritoryId": 1073, + "InteractionType": "Gather", + "RequiredQuestAcceptedJob": [ + "Botanist" + ], + "ItemsToGather": [ { - "QuestAcceptedAsClass": "Botanist", "ItemId": 38320, "ItemCount": 3 } diff --git a/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4631_Not Forgotten.json b/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4631_Not Forgotten.json index f3eca7450..c6fcbdde5 100644 --- a/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4631_Not Forgotten.json +++ b/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4631_Not Forgotten.json @@ -23,14 +23,24 @@ { "TerritoryId": 960, "InteractionType": "Gather", + "RequiredQuestAcceptedJob": [ + "Miner" + ], "ItemsToGather": [ { - "QuestAcceptedAsClass": "Miner", "ItemId": 38297, "ItemCount": 3 - }, + } + ] + }, + { + "TerritoryId": 960, + "InteractionType": "Gather", + "RequiredQuestAcceptedJob": [ + "Botanist" + ], + "ItemsToGather": [ { - "QuestAcceptedAsClass": "Botanist", "ItemId": 38321, "ItemCount": 3 } diff --git a/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4632_Checking for Cavities.json b/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4632_Checking for Cavities.json index bf7202517..2f609cbfa 100644 --- a/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4632_Checking for Cavities.json +++ b/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4632_Checking for Cavities.json @@ -24,14 +24,25 @@ "TerritoryId": 960, "InteractionType": "Gather", "AetheryteShortcut": "Ultima Thule - Reah Tahra", + "RequiredQuestAcceptedJob": [ + "Miner" + ], "ItemsToGather": [ { - "QuestAcceptedAsClass": "Miner", "ItemId": 38299, "ItemCount": 3 - }, + } + ] + }, + { + "TerritoryId": 960, + "InteractionType": "Gather", + "AetheryteShortcut": "Ultima Thule - Reah Tahra", + "RequiredQuestAcceptedJob": [ + "Botanist" + ], + "ItemsToGather": [ { - "QuestAcceptedAsClass": "Botanist", "ItemId": 38323, "ItemCount": 3 } diff --git a/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4634_The Lost World.json b/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4634_The Lost World.json index 89f6b44c1..f74391403 100644 --- a/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4634_The Lost World.json +++ b/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4634_The Lost World.json @@ -34,14 +34,24 @@ { "TerritoryId": 1073, "InteractionType": "Gather", + "RequiredQuestAcceptedJob": [ + "Miner" + ], "ItemsToGather": [ { - "QuestAcceptedAsClass": "Miner", "ItemId": 38298, "ItemCount": 3 - }, + } + ] + }, + { + "TerritoryId": 1073, + "InteractionType": "Gather", + "RequiredQuestAcceptedJob": [ + "Botanist" + ], + "ItemsToGather": [ { - "QuestAcceptedAsClass": "Botanist", "ItemId": 38322, "ItemCount": 3 } diff --git a/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Story/4601_The Café at the End of the Universe.json b/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Story/4601_The Café at the End of the Universe.json index d1eb587c3..ede9e73d6 100644 --- a/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Story/4601_The Café at the End of the Universe.json +++ b/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Story/4601_The Café at the End of the Universe.json @@ -116,14 +116,24 @@ { "TerritoryId": 960, "InteractionType": "Gather", + "RequiredQuestAcceptedJob": [ + "Miner" + ], "ItemsToGather": [ { - "QuestAcceptedAsClass": "Miner", "ItemId": 38276, "ItemCount": 3 - }, + } + ] + }, + { + "TerritoryId": 960, + "InteractionType": "Gather", + "RequiredQuestAcceptedJob": [ + "Botanist" + ], + "ItemsToGather": [ { - "QuestAcceptedAsClass": "Botanist", "ItemId": 38300, "ItemCount": 3 } diff --git a/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Story/4602_Longing So for All the Fish.json b/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Story/4602_Longing So for All the Fish.json index ffafc60f8..281566ab0 100644 --- a/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Story/4602_Longing So for All the Fish.json +++ b/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Story/4602_Longing So for All the Fish.json @@ -172,14 +172,24 @@ { "TerritoryId": 960, "InteractionType": "Gather", + "RequiredQuestAcceptedJob": [ + "Miner" + ], "ItemsToGather": [ { - "QuestAcceptedAsClass": "Miner", "ItemId": 38277, "ItemCount": 3 - }, + } + ] + }, + { + "TerritoryId": 960, + "InteractionType": "Gather", + "RequiredQuestAcceptedJob": [ + "Botanist" + ], + "ItemsToGather": [ { - "QuestAcceptedAsClass": "Botanist", "ItemId": 38301, "ItemCount": 3 } diff --git a/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Story/4603_And Another Question.json b/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Story/4603_And Another Question.json index 9170a9ed5..9b21672ec 100644 --- a/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Story/4603_And Another Question.json +++ b/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Story/4603_And Another Question.json @@ -140,19 +140,28 @@ { "TerritoryId": 960, "InteractionType": "Gather", + "RequiredQuestAcceptedJob": [ + "Miner" + ], "ItemsToGather": [ { - "QuestAcceptedAsClass": "Miner", "ItemId": 38278, "ItemCount": 3 - }, + } + ] + }, + { + "TerritoryId": 960, + "InteractionType": "Gather", + "RequiredQuestAcceptedJob": [ + "Botanist" + ], + "ItemsToGather": [ { - "QuestAcceptedAsClass": "Botanist", "ItemId": 38302, "ItemCount": 3 } - ], - "Fly": true + ] }, { "DataId": 2013072, diff --git a/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Story/4604_The Restaurateur's Guide to the Dragonstar.json b/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Story/4604_The Restaurateur's Guide to the Dragonstar.json index 0cdbce560..a6d019d95 100644 --- a/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Story/4604_The Restaurateur's Guide to the Dragonstar.json +++ b/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Story/4604_The Restaurateur's Guide to the Dragonstar.json @@ -92,14 +92,24 @@ { "TerritoryId": 398, "InteractionType": "Gather", + "RequiredQuestAcceptedJob": [ + "Miner" + ], "ItemsToGather": [ { - "QuestAcceptedAsClass": "Miner", "ItemId": 38279, "ItemCount": 3 - }, + } + ] + }, + { + "TerritoryId": 398, + "InteractionType": "Gather", + "RequiredQuestAcceptedJob": [ + "Botanist" + ], + "ItemsToGather": [ { - "QuestAcceptedAsClass": "Botanist", "ItemId": 38303, "ItemCount": 3 } diff --git a/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Story/4605_Mostly Heartless.json b/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Story/4605_Mostly Heartless.json index 32571b616..b499112bb 100644 --- a/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Story/4605_Mostly Heartless.json +++ b/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Story/4605_Mostly Heartless.json @@ -157,14 +157,24 @@ { "TerritoryId": 1073, "InteractionType": "Gather", + "RequiredQuestAcceptedJob": [ + "Miner" + ], "ItemsToGather": [ { - "QuestAcceptedAsClass": "Miner", "ItemId": 38280, "ItemCount": 3 - }, + } + ] + }, + { + "TerritoryId": 1073, + "InteractionType": "Gather", + "RequiredQuestAcceptedJob": [ + "Botanist" + ], + "ItemsToGather": [ { - "QuestAcceptedAsClass": "Botanist", "ItemId": 38304, "ItemCount": 3 } diff --git a/QuestPaths/quest-v1.json b/QuestPaths/quest-v1.json index a1d9aa33d..5ef7ce77d 100644 --- a/QuestPaths/quest-v1.json +++ b/QuestPaths/quest-v1.json @@ -422,6 +422,20 @@ } } }, + "RequiredCurrentJob": { + "description": "Which class or job you are using whenever this step gets executed", + "type": "array", + "items": { + "$ref": "https://git.carvel.li/liza/Questionable/raw/branch/master/Questionable.Model/common-schema.json#/$defs/ClassJob" + } + }, + "RequiredQuestAcceptedJob": { + "description": "Which class or job you were using when accepting this quest (e.g. for beast tribes)", + "type": "array", + "items": { + "$ref": "https://git.carvel.li/liza/Questionable/raw/branch/master/Questionable.Model/common-schema.json#/$defs/ClassJob" + } + }, "DelaySecondsAtStart": { "description": "Time to wait before starting", "type": [ @@ -1313,13 +1327,6 @@ "type": "number", "minimum": 0, "maximum": 1000 - }, - "QuestAcceptedAsClass": { - "type": "string", - "enum": [ - "Miner", - "Botanist" - ] } }, "required": [ diff --git a/Questionable.Model/Questing/Converter/ClassJobConverter.cs b/Questionable.Model/Questing/Converter/ClassJobConverter.cs deleted file mode 100644 index 4beb8e935..000000000 --- a/Questionable.Model/Questing/Converter/ClassJobConverter.cs +++ /dev/null @@ -1,26 +0,0 @@ -using System; -using System.Text.Json; -using System.Text.Json.Serialization; - -namespace Questionable.Model.Questing.Converter; - -internal sealed class ClassJobConverter : JsonConverter -{ - public override uint Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) - { - if (reader.TokenType != JsonTokenType.String) - throw new JsonException(); - - return reader.GetString() switch - { - "Miner" => 16, - "Botanist" => 17, - _ => throw new JsonException("Unsupported value for classjob"), - }; - } - - public override void Write(Utf8JsonWriter writer, uint value, JsonSerializerOptions options) - { - throw new NotImplementedException(); - } -} diff --git a/Questionable.Model/Questing/Converter/ExtendedClassJobConverter.cs b/Questionable.Model/Questing/Converter/ExtendedClassJobConverter.cs new file mode 100644 index 000000000..c92ca0bc6 --- /dev/null +++ b/Questionable.Model/Questing/Converter/ExtendedClassJobConverter.cs @@ -0,0 +1,57 @@ +using System.Collections.Generic; +using Questionable.Model.Common.Converter; + +namespace Questionable.Model.Questing.Converter; + +internal sealed class ExtendedClassJobConverter() : EnumConverter(Values) +{ + private static readonly Dictionary Values = new() + { + { EExtendedClassJob.Gladiator, "Gladiator" }, + { EExtendedClassJob.Pugilist, "Pugilist" }, + { EExtendedClassJob.Marauder, "Marauder" }, + { EExtendedClassJob.Lancer, "Lancer" }, + { EExtendedClassJob.Archer, "Archer" }, + { EExtendedClassJob.Conjurer, "Conjurer" }, + { EExtendedClassJob.Thaumaturge, "Thaumaturge" }, + { EExtendedClassJob.Carpenter, "Carpenter" }, + { EExtendedClassJob.Blacksmith, "Blacksmith" }, + { EExtendedClassJob.Armorer, "Armorer" }, + { EExtendedClassJob.Goldsmith, "Goldsmith" }, + { EExtendedClassJob.Leatherworker, "Leatherworker" }, + { EExtendedClassJob.Weaver, "Weaver" }, + { EExtendedClassJob.Alchemist, "Alchemist" }, + { EExtendedClassJob.Culinarian, "Culinarian" }, + { EExtendedClassJob.Miner, "Miner" }, + { EExtendedClassJob.Botanist, "Botanist" }, + { EExtendedClassJob.Fisher, "Fisher" }, + { EExtendedClassJob.Paladin, "Paladin" }, + { EExtendedClassJob.Monk, "Monk" }, + { EExtendedClassJob.Warrior, "Warrior" }, + { EExtendedClassJob.Dragoon, "Dragoon" }, + { EExtendedClassJob.Bard, "Bard" }, + { EExtendedClassJob.WhiteMage, "White Mage" }, + { EExtendedClassJob.BlackMage, "Black Mage" }, + { EExtendedClassJob.Arcanist, "Arcanist" }, + { EExtendedClassJob.Summoner, "Summoner" }, + { EExtendedClassJob.Scholar, "Scholar" }, + { EExtendedClassJob.Rogue, "Rogue" }, + { EExtendedClassJob.Ninja, "Ninja" }, + { EExtendedClassJob.Machinist, "Machinist" }, + { EExtendedClassJob.DarkKnight, "Dark Knight" }, + { EExtendedClassJob.Astrologian, "Astrologian" }, + { EExtendedClassJob.Samurai, "Samurai" }, + { EExtendedClassJob.RedMage, "Red Mage" }, + { EExtendedClassJob.BlueMage, "Blue Mage" }, + { EExtendedClassJob.Gunbreaker, "Gunbreaker" }, + { EExtendedClassJob.Dancer, "Dancer" }, + { EExtendedClassJob.Reaper, "Reaper" }, + { EExtendedClassJob.Sage, "Sage" }, + { EExtendedClassJob.Viper, "Viper" }, + { EExtendedClassJob.Pictomancer, "Pictomancer" }, + { EExtendedClassJob.DoW, "DoW" }, + { EExtendedClassJob.DoM, "DoM" }, + { EExtendedClassJob.DoH, "DoH" }, + { EExtendedClassJob.DoL, "DoL" }, + }; +} diff --git a/Questionable.Model/Questing/EExtendedClassJob.cs b/Questionable.Model/Questing/EExtendedClassJob.cs new file mode 100644 index 000000000..79c771d11 --- /dev/null +++ b/Questionable.Model/Questing/EExtendedClassJob.cs @@ -0,0 +1,55 @@ +using System.Text.Json.Serialization; +using Questionable.Model.Questing.Converter; + +namespace Questionable.Model.Questing; + +[JsonConverter(typeof(ExtendedClassJobConverter))] +public enum EExtendedClassJob +{ + Gladiator, + Pugilist, + Marauder, + Lancer, + Archer, + Conjurer, + Thaumaturge, + Carpenter, + Blacksmith, + Armorer, + Goldsmith, + Leatherworker, + Weaver, + Alchemist, + Culinarian, + Miner, + Botanist, + Fisher, + Paladin, + Monk, + Warrior, + Dragoon, + Bard, + WhiteMage, + BlackMage, + Arcanist, + Summoner, + Scholar, + Rogue, + Ninja, + Machinist, + DarkKnight, + Astrologian, + Samurai, + RedMage, + BlueMage, + Gunbreaker, + Dancer, + Reaper, + Sage, + Viper, + Pictomancer, + DoW, + DoM, + DoH, + DoL, +} diff --git a/Questionable.Model/Questing/GatheredItem.cs b/Questionable.Model/Questing/GatheredItem.cs index 8d2239ff2..812471803 100644 --- a/Questionable.Model/Questing/GatheredItem.cs +++ b/Questionable.Model/Questing/GatheredItem.cs @@ -9,10 +9,4 @@ public sealed class GatheredItem public uint AlternativeItemId { get; set; } public int ItemCount { get; set; } public ushort Collectability { get; set; } - - /// - /// Either miner or botanist; null if it is irrelevant (prefers current class/job, then any unlocked ones). - /// - [JsonConverter(typeof(ClassJobConverter))] - public uint? QuestAcceptedAsClass { get; set; } } diff --git a/Questionable.Model/Questing/QuestStep.cs b/Questionable.Model/Questing/QuestStep.cs index 5a6998188..df2b7b128 100644 --- a/Questionable.Model/Questing/QuestStep.cs +++ b/Questionable.Model/Questing/QuestStep.cs @@ -76,6 +76,8 @@ public sealed class QuestStep public SkipConditions? SkipConditions { get; set; } public List?> RequiredQuestVariables { get; set; } = new(); + public List RequiredCurrentJob { get; set; } = []; + public List RequiredQuestAcceptedJob { get; set; } = []; public List ItemsToGather { get; set; } = []; public List CompletionQuestVariablesFlags { get; set; } = []; public List DialogueChoices { get; set; } = []; diff --git a/Questionable.Model/common-schema.json b/Questionable.Model/common-schema.json index d3c974ecf..97d1474ef 100644 --- a/Questionable.Model/common-schema.json +++ b/Questionable.Model/common-schema.json @@ -282,6 +282,57 @@ "[Solution Nine] Scanning Port Nine (Heritage Found)" ] }, + "ClassJob": { + "type": "string", + "enum": [ + "Gladiator", + "Pugilist", + "Marauder", + "Lancer", + "Archer", + "Conjurer", + "Thaumaturge", + "Carpenter", + "Blacksmith", + "Armorer", + "Goldsmith", + "Leatherworker", + "Weaver", + "Alchemist", + "Culinarian", + "Miner", + "Botanist", + "Fisher", + "Paladin", + "Monk", + "Warrior", + "Dragoon", + "Bard", + "White Mage", + "Black Mage", + "Arcanist", + "Summoner", + "Scholar", + "Rogue", + "Ninja", + "Machinist", + "Dark Knight", + "Astrologian", + "Samurai", + "Red Mage", + "Blue Mage", + "Gunbreaker", + "Dancer", + "Reaper", + "Sage", + "Viper", + "Pictomancer", + "DoW", + "DoM", + "DoH", + "DoL" + ] + }, "CompletionFlags": { "type": "array", "description": "Quest Variables that dictate whether or not this step is skipped: null is don't check, positive values need to be set, negative values need to be unset", diff --git a/Questionable/Controller/ContextMenuController.cs b/Questionable/Controller/ContextMenuController.cs index 819d8b257..f35e83432 100644 --- a/Questionable/Controller/ContextMenuController.cs +++ b/Questionable/Controller/ContextMenuController.cs @@ -123,12 +123,12 @@ internal sealed class ContextMenuController : IDisposable Prefix = SeIconChar.Hyadelyn, PrefixColor = 52, Name = name, - OnClicked = _ => StartGathering(npcId, itemId, quantityToGather, collectability, classJob), + OnClicked = _ => StartGathering(npcId, itemId, quantityToGather, collectability), IsEnabled = string.IsNullOrEmpty(lockedReasonn), }); } - private void StartGathering(uint npcId, uint itemId, int quantity, ushort collectability, EClassJob classJob) + private void StartGathering(uint npcId, uint itemId, int quantity, ushort collectability) { var info = (SatisfactionSupplyInfo)_questData.GetAllByIssuerDataId(npcId) .Single(x => x is SatisfactionSupplyInfo); @@ -142,7 +142,6 @@ internal sealed class ContextMenuController : IDisposable ItemId = itemId, ItemCount = quantity, Collectability = collectability, - QuestAcceptedAsClass = (uint)classJob, } ]; _questController.SetGatheringQuest(quest); diff --git a/Questionable/Controller/Steps/Shared/Gather.cs b/Questionable/Controller/Steps/Shared/Gather.cs index ee5c50a00..5724a2092 100644 --- a/Questionable/Controller/Steps/Shared/Gather.cs +++ b/Questionable/Controller/Steps/Shared/Gather.cs @@ -36,26 +36,13 @@ internal static class Gather foreach (var itemToGather in step.ItemsToGather) { EClassJob currentClassJob = (EClassJob)clientState.LocalPlayer!.ClassJob.Id; - EClassJob classJob = currentClassJob; - if (itemToGather.QuestAcceptedAsClass != null) - { - classJob = (EClassJob)itemToGather.QuestAcceptedAsClass.Value; - if (!IsClassJobQuestWasAcceptedWith(quest.Id, classJob)) - continue; - } - - if (!gatheringData.TryGetGatheringPointId(itemToGather.ItemId, classJob, + if (!gatheringData.TryGetGatheringPointId(itemToGather.ItemId, currentClassJob, out GatheringPointId? gatheringPointId)) throw new TaskException($"No gathering point found for item {itemToGather.ItemId}"); if (!gatheringPointRegistry.TryGetGatheringPoint(gatheringPointId, out GatheringRoot? gatheringRoot)) throw new TaskException($"No path found for gathering point {gatheringPointId}"); - if (classJob != currentClassJob) - { - yield return new SwitchClassJob.Task(classJob); - } - if (HasRequiredItems(itemToGather)) continue; @@ -89,18 +76,6 @@ internal static class Gather } } - private unsafe bool IsClassJobQuestWasAcceptedWith(ElementId questId, EClassJob expectedClassJob) - { - if (questId is not QuestId) - return true; - - QuestWork* questWork = QuestManager.Instance()->GetQuestById(questId.Value); - if (questWork->AcceptClassJob != 0) - return (EClassJob)questWork->AcceptClassJob == expectedClassJob; - - return true; - } - private unsafe bool HasRequiredItems(GatheredItem itemToGather) { InventoryManager* inventoryManager = InventoryManager.Instance(); diff --git a/Questionable/Controller/Steps/Shared/SkipCondition.cs b/Questionable/Controller/Steps/Shared/SkipCondition.cs index c1efdbded..2951d8d82 100644 --- a/Questionable/Controller/Steps/Shared/SkipCondition.cs +++ b/Questionable/Controller/Steps/Shared/SkipCondition.cs @@ -1,4 +1,5 @@ using System; +using System.Collections.Generic; using System.Linq; using System.Numerics; using Dalamud.Game.ClientState.Objects.Types; @@ -6,8 +7,10 @@ using Dalamud.Plugin.Services; using FFXIVClientStructs.FFXIV.Client.Game; using FFXIVClientStructs.FFXIV.Client.Game.Object; using FFXIVClientStructs.FFXIV.Client.Game.UI; +using LLib.GameData; using Microsoft.Extensions.Logging; using Questionable.Controller.Utils; +using Questionable.Data; using Questionable.Functions; using Questionable.Model; using Questionable.Model.Common; @@ -29,7 +32,9 @@ internal static class SkipCondition !QuestWorkUtils.HasCompletionFlags(step.CompletionQuestVariablesFlags) && step.RequiredQuestVariables.Count == 0 && step.PickUpQuestId == null && - step.NextQuestId == null) + step.NextQuestId == null && + step.RequiredCurrentJob.Count == 0 && + step.RequiredQuestAcceptedJob.Count == 0) return null; return new SkipTask(step, skipConditions ?? new(), quest.Id); @@ -136,7 +141,8 @@ internal static class SkipCondition GameObject* gameObject = (GameObject*)target.Address; if (!skipConditions.NotNamePlateIconId.Contains(gameObject->NamePlateIconId)) { - logger.LogInformation("Skipping step, object has icon id {IconId}", gameObject->NamePlateIconId); + logger.LogInformation("Skipping step, object has icon id {IconId}", + gameObject->NamePlateIconId); return true; } } @@ -213,6 +219,34 @@ internal static class SkipCondition return true; } } + + if (step is { RequiredQuestAcceptedJob.Count: > 0 }) + { + List expectedJobs = step.RequiredQuestAcceptedJob + .SelectMany(ClassJobUtils.AsIndividualJobs).ToList(); + EClassJob questJob = questWork.ClassJob; + logger.LogInformation("Checking quest job {QuestJob} against {ExpectedJobs}", questJob, + string.Join(",", expectedJobs)); + if (questJob != EClassJob.Adventurer && !expectedJobs.Contains(questJob)) + { + logger.LogInformation("Skipping step, as quest was accepted on a different job"); + return true; + } + } + } + + if (step is { RequiredCurrentJob.Count: > 0 }) + { + List expectedJobs = + step.RequiredCurrentJob.SelectMany(ClassJobUtils.AsIndividualJobs).ToList(); + EClassJob currentJob = (EClassJob)clientState.LocalPlayer!.ClassJob.Id; + logger.LogInformation("Checking current job {CurrentJob} against {ExpectedJobs}", currentJob, + string.Join(",", expectedJobs)); + if (!expectedJobs.Contains(currentJob)) + { + logger.LogInformation("Skipping step, as step requires a different job"); + return true; + } } if (skipConditions.NearPosition is { } nearPosition && @@ -231,7 +265,8 @@ internal static class SkipCondition var position = clientState.LocalPlayer?.Position; if (position != null && clientState.TerritoryType != 0 && - MatchesExtraCondition(skipConditions.ExtraCondition.Value, position.Value, clientState.TerritoryType)) + MatchesExtraCondition(skipConditions.ExtraCondition.Value, position.Value, + clientState.TerritoryType)) { logger.LogInformation("Skipping step, extra condition {} matches", skipConditions.ExtraCondition); return true; diff --git a/Questionable/Data/ClassJobUtils.cs b/Questionable/Data/ClassJobUtils.cs new file mode 100644 index 000000000..8346d9ecc --- /dev/null +++ b/Questionable/Data/ClassJobUtils.cs @@ -0,0 +1,66 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using LLib.GameData; +using Questionable.Model.Questing; + +namespace Questionable.Data; + +public static class ClassJobUtils +{ + public static IEnumerable AsIndividualJobs(EExtendedClassJob classJob) + { + return classJob switch + { + EExtendedClassJob.Gladiator => [EClassJob.Gladiator], + EExtendedClassJob.Pugilist => [EClassJob.Pugilist], + EExtendedClassJob.Marauder => [EClassJob.Marauder], + EExtendedClassJob.Lancer => [EClassJob.Lancer], + EExtendedClassJob.Archer => [EClassJob.Archer], + EExtendedClassJob.Conjurer => [EClassJob.Conjurer], + EExtendedClassJob.Thaumaturge => [EClassJob.Thaumaturge], + EExtendedClassJob.Carpenter => [EClassJob.Carpenter], + EExtendedClassJob.Blacksmith => [EClassJob.Blacksmith], + EExtendedClassJob.Armorer => [EClassJob.Armorer], + EExtendedClassJob.Goldsmith => [EClassJob.Goldsmith], + EExtendedClassJob.Leatherworker => [EClassJob.Leatherworker], + EExtendedClassJob.Weaver => [EClassJob.Weaver], + EExtendedClassJob.Alchemist => [EClassJob.Alchemist], + EExtendedClassJob.Culinarian => [EClassJob.Culinarian], + EExtendedClassJob.Miner => [EClassJob.Miner], + EExtendedClassJob.Botanist => [EClassJob.Botanist], + EExtendedClassJob.Fisher => [EClassJob.Fisher], + EExtendedClassJob.Paladin => [EClassJob.Paladin], + EExtendedClassJob.Monk => [EClassJob.Monk], + EExtendedClassJob.Warrior => [EClassJob.Warrior], + EExtendedClassJob.Dragoon => [EClassJob.Dragoon], + EExtendedClassJob.Bard => [EClassJob.Bard], + EExtendedClassJob.WhiteMage => [EClassJob.WhiteMage], + EExtendedClassJob.BlackMage => [EClassJob.BlackMage], + EExtendedClassJob.Arcanist => [EClassJob.Arcanist], + EExtendedClassJob.Summoner => [EClassJob.Summoner], + EExtendedClassJob.Scholar => [EClassJob.Scholar], + EExtendedClassJob.Rogue => [EClassJob.Rogue], + EExtendedClassJob.Ninja => [EClassJob.Ninja], + EExtendedClassJob.Machinist => [EClassJob.Machinist], + EExtendedClassJob.DarkKnight => [EClassJob.DarkKnight], + EExtendedClassJob.Astrologian => [EClassJob.Astrologian], + EExtendedClassJob.Samurai => [EClassJob.Samurai], + EExtendedClassJob.RedMage => [EClassJob.RedMage], + EExtendedClassJob.BlueMage => [EClassJob.BlueMage], + EExtendedClassJob.Gunbreaker => [EClassJob.Gunbreaker], + EExtendedClassJob.Dancer => [EClassJob.Dancer], + EExtendedClassJob.Reaper => [EClassJob.Reaper], + EExtendedClassJob.Sage => [EClassJob.Sage], + EExtendedClassJob.Viper => [EClassJob.Viper], + EExtendedClassJob.Pictomancer => [EClassJob.Pictomancer], + + EExtendedClassJob.DoW => Enum.GetValues().Where(x => x.DealsPhysicalDamage()), + EExtendedClassJob.DoM => Enum.GetValues().Where(x => x.DealsMagicDamage()), + EExtendedClassJob.DoH => Enum.GetValues().Where(x => x.IsCrafter()), + EExtendedClassJob.DoL => Enum.GetValues().Where(x => x.IsGatherer()), + + _ => throw new ArgumentOutOfRangeException(nameof(classJob), classJob, null) + }; + } +} -- 2.45.2 From 6ef6dbfdb46d7b5c74019252ddaebdbda0e6c948 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Mon, 4 Nov 2024 17:20:42 +0100 Subject: [PATCH 209/448] If you start moving while in combat (because mounting isn't possible), use mount as soon as you're out of combat --- Questionable/Controller/Steps/Common/Mount.cs | 25 +++++--- .../Controller/Steps/Shared/MoveTo.cs | 63 ++++++++++++++++--- Questionable/Controller/Steps/TaskExecutor.cs | 2 +- 3 files changed, 71 insertions(+), 19 deletions(-) diff --git a/Questionable/Controller/Steps/Common/Mount.cs b/Questionable/Controller/Steps/Common/Mount.cs index d9d38ae26..2fb0d2d70 100644 --- a/Questionable/Controller/Steps/Common/Mount.cs +++ b/Questionable/Controller/Steps/Common/Mount.cs @@ -35,21 +35,21 @@ internal static class Mount private bool _mountTriggered; private DateTime _retryAt = DateTime.MinValue; - protected override bool Start() + public MountResult EvaluateMountState() { if (condition[ConditionFlag.Mounted]) - return false; + return MountResult.DontMount; if (!territoryData.CanUseMount(Task.TerritoryId)) { logger.LogInformation("Can't use mount in current territory {Id}", Task.TerritoryId); - return false; + return MountResult.DontMount; } if (gameFunctions.HasStatusPreventingMount()) { logger.LogInformation("Can't mount due to status preventing sprint or mount"); - return false; + return MountResult.DontMount; } if (Task.MountIf == EMountIf.AwayFromPosition) @@ -59,7 +59,7 @@ internal static class Mount if (Task.TerritoryId == clientState.TerritoryType && distance < 30f && !Conditions.IsDiving) { logger.LogInformation("Not using mount, as we're close to the target"); - return false; + return MountResult.DontMount; } logger.LogInformation( @@ -72,12 +72,14 @@ internal static class Mount if (!condition[ConditionFlag.InCombat]) { _retryAt = DateTime.Now.AddSeconds(0.5); - return true; + return MountResult.Mount; } - - return false; + else + return MountResult.WhenOutOfCombat; } + protected override bool Start() => EvaluateMountState() == MountResult.Mount; + public override ETaskResult Update() { if (_mountTriggered && !condition[ConditionFlag.Mounted] && DateTime.Now > _retryAt) @@ -108,6 +110,13 @@ internal static class Mount } } + internal enum MountResult + { + DontMount, + Mount, + WhenOutOfCombat, + } + internal sealed record UnmountTask : ITask { public bool ShouldRedoOnInterrupt() => true; diff --git a/Questionable/Controller/Steps/Shared/MoveTo.cs b/Questionable/Controller/Steps/Shared/MoveTo.cs index 89b7170a0..eaead8ef3 100644 --- a/Questionable/Controller/Steps/Shared/MoveTo.cs +++ b/Questionable/Controller/Steps/Shared/MoveTo.cs @@ -87,19 +87,23 @@ internal static class MoveTo private readonly GameFunctions _gameFunctions; private readonly ILogger _logger; private readonly IClientState _clientState; + private readonly ICondition _condition; private readonly Mount.MountExecutor _mountExecutor; private readonly Mount.UnmountExecutor _unmountExecutor; private Action? _startAction; private Vector3 _destination; private bool _canRestart; - private ITaskExecutor? _nestedExecutor; + + private (ITaskExecutor Executor, ITask Task, bool Triggered)? _nestedExecutor = + (new NoOpTaskExecutor(), new NoOpTask(), true); public MoveExecutor( MovementController movementController, GameFunctions gameFunctions, ILogger logger, IClientState clientState, + ICondition condition, IDataManager dataManager, Mount.MountExecutor mountExecutor, Mount.UnmountExecutor unmountExecutor) @@ -108,6 +112,7 @@ internal static class MoveTo _gameFunctions = gameFunctions; _logger = logger; _clientState = clientState; + _condition = condition; _mountExecutor = mountExecutor; _unmountExecutor = unmountExecutor; _cannotExecuteAtThisTime = dataManager.GetString(579, x => x.Text)!; @@ -161,16 +166,18 @@ internal static class MoveTo var mountTask = new Mount.MountTask(Task.TerritoryId, Mount.EMountIf.Always); if (_mountExecutor.Start(mountTask)) { - _nestedExecutor = _mountExecutor; + _nestedExecutor = (_mountExecutor, mountTask, true); return true; } + else if (_mountExecutor.EvaluateMountState() == Mount.MountResult.WhenOutOfCombat) + _nestedExecutor = (_mountExecutor, mountTask, false); } else if (Task.Mount == false) { var mountTask = new Mount.UnmountTask(); if (_unmountExecutor.Start(mountTask)) { - _nestedExecutor = _unmountExecutor; + _nestedExecutor = (_unmountExecutor, mountTask, true); return true; } } @@ -187,21 +194,43 @@ internal static class MoveTo var mountTask = new Mount.MountTask(Task.TerritoryId, mountIf, _destination); if (_mountExecutor.Start(mountTask)) { - _nestedExecutor = _mountExecutor; + _nestedExecutor = (_mountExecutor, mountTask, true); return true; } + else if (_mountExecutor.EvaluateMountState() == Mount.MountResult.WhenOutOfCombat) + _nestedExecutor = (_mountExecutor, mountTask, false); } } - _nestedExecutor = new NoOpTaskExecutor(); + if (_startAction != null && (_nestedExecutor == null || _nestedExecutor.Value.Triggered == false)) + _startAction(); return true; } public override ETaskResult Update() { - if (_nestedExecutor != null) + if (_nestedExecutor is { } nestedExecutor) { - if (_nestedExecutor.Update() == ETaskResult.TaskComplete) + if (nestedExecutor is { Triggered: false, Executor: Mount.MountExecutor mountExecutor }) + { + if (!_condition[ConditionFlag.InCombat]) + { + if (mountExecutor.EvaluateMountState() == Mount.MountResult.DontMount) + _nestedExecutor = (new NoOpTaskExecutor(), new NoOpTask(), true); + else + { + if (_movementController.IsPathfinding || _movementController.IsPathRunning) + _movementController.Stop(); + + if (nestedExecutor.Executor.Start(nestedExecutor.Task)) + { + _nestedExecutor = nestedExecutor with { Triggered = true }; + return ETaskResult.StillRunning; + } + } + } + } + else if (nestedExecutor.Executor.Update() == ETaskResult.TaskComplete) { _nestedExecutor = null; if (_startAction != null) @@ -213,6 +242,7 @@ internal static class MoveTo else return ETaskResult.TaskComplete; } + return ETaskResult.StillRunning; } @@ -245,6 +275,17 @@ internal static class MoveTo return ETaskResult.TaskComplete; } + public override bool WasInterrupted() + { + if (Task.Fly && _condition[ConditionFlag.InCombat] && !_condition[ConditionFlag.Mounted] && + _nestedExecutor is { Triggered: false, Executor: Mount.MountExecutor mountExecutor } && + mountExecutor.EvaluateMountState() == Mount.MountResult.WhenOutOfCombat) + { + return true; + } + + return base.WasInterrupted(); + } public bool OnErrorToast(SeString message) { @@ -255,7 +296,9 @@ internal static class MoveTo } } - private sealed class NoOpTaskExecutor : TaskExecutor + private sealed record NoOpTask : ITask; + + private sealed class NoOpTaskExecutor : TaskExecutor { protected override bool Start() => true; @@ -306,7 +349,6 @@ internal static class MoveTo GameFunctions gameFunctions, IClientState clientState) : TaskExecutor { - protected override bool Start() => true; public override ETaskResult Update() @@ -328,7 +370,8 @@ internal static class MoveTo public override string ToString() => "Land"; } - internal sealed class LandExecutor(IClientState clientState, ICondition condition, ILogger logger) : TaskExecutor + internal sealed class LandExecutor(IClientState clientState, ICondition condition, ILogger logger) + : TaskExecutor { private bool _landing; private DateTime _continueAt; diff --git a/Questionable/Controller/Steps/TaskExecutor.cs b/Questionable/Controller/Steps/TaskExecutor.cs index e5b2c2e95..9f1873f60 100644 --- a/Questionable/Controller/Steps/TaskExecutor.cs +++ b/Questionable/Controller/Steps/TaskExecutor.cs @@ -23,7 +23,7 @@ internal abstract class TaskExecutor : ITaskExecutor public InteractionProgressContext? ProgressContext { get; set; } ITask ITaskExecutor.CurrentTask => Task; - public bool WasInterrupted() + public virtual bool WasInterrupted() { if (ProgressContext is {} progressContext) { -- 2.45.2 From c11bfe0abe0b378bdf6ae725e9cb82b4cdba7164 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Mon, 4 Nov 2024 17:51:51 +0100 Subject: [PATCH 210/448] Add missing PGL quests --- .../MNK/533_Way of the Pugilist.json | 182 ++++++++++++++++- .../MNK/555_Burning Up the Quarter Malm.json | 190 ++++++++++++++++++ 2 files changed, 364 insertions(+), 8 deletions(-) create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/555_Burning Up the Quarter Malm.json diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/533_Way of the Pugilist.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/533_Way of the Pugilist.json index 8c00e6a22..3cf1f2d1e 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/533_Way of the Pugilist.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/533_Way of the Pugilist.json @@ -1,11 +1,25 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "liza", - "Disabled": true, + "Author": ["liza", "plogon_enjoyer"], "QuestSequence": [ { "Sequence": 0, "Steps": [ + { + "Position": { + "X": -86.589775, + "Y": 2.099846, + "Z": -51.574 + }, + "TerritoryId": 130, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Ul'dah", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + }, { "DataId": 1001286, "Position": { @@ -14,13 +28,165 @@ "Z": -51.163513 }, "TerritoryId": 130, - "InteractionType": "AcceptQuest", - "AetheryteShortcut": "Ul'dah", - "SkipConditions": { - "AetheryteShortcutIf": { - "InSameTerritory": true + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1003817, + "Position": { + "X": -74.57086, + "Y": 1.9999951, + "Z": -42.404846 + }, + "TerritoryId": 130, + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_CLSPGL020_00533_Q1_000_1", + "Yes": true } - } + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": -126.59337, + "Y": 11.159969, + "Z": 276.25775 + }, + "TerritoryId": 141, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "ComplexCombatData": [ + { + "DataId": 351, + "CompletionQuestVariablesFlags": [ + { + "Low": 3 + }, + null, + null, + null, + null, + null + ], + "MinimumKillCount": 3 + } + ], + "CompletionQuestVariablesFlags": [ + { + "Low": 3 + }, + null, + null, + null, + null, + null + ], + "$": "0 0 0 0 0 0 -> 19 0 0 0 0 0", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Gate of Nald (Central Thanalan)" + ] + }, + { + "Position": { + "X": -126.59337, + "Y": 11.159969, + "Z": 276.25775 + }, + "TerritoryId": 141, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "ComplexCombatData": [ + { + "DataId": 385, + "CompletionQuestVariablesFlags": [ + null, + { + "High": 3 + }, + null, + null, + null, + null + ], + "MinimumKillCount": 3 + } + ], + "CompletionQuestVariablesFlags": [ + null, + { + "High": 3 + }, + null, + null, + null, + null + ], + "$": "19 0 0 0 0 0 -> 35 48 0 0 0 0" + }, + { + "Position": { + "X": 32.007893, + "Y": 5.8527403, + "Z": 299.76016 + }, + "TerritoryId": 141, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "ComplexCombatData": [ + { + "DataId": 205, + "CompletionQuestVariablesFlags": [ + null, + { + "Low": 3 + }, + null, + null, + null, + null + ], + "MinimumKillCount": 3 + } + ], + "CompletionQuestVariablesFlags": [ + null, + { + "Low": 3 + }, + null, + null, + null, + null + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1003817, + "Position": { + "X": -74.57086, + "Y": 1.9999951, + "Z": -42.404846 + }, + "TerritoryId": 130, + "AetheryteShortcut": "Ul'dah", + "InteractionType": "CompleteQuest", + "NextQuestId": 554 } ] } diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/555_Burning Up the Quarter Malm.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/555_Burning Up the Quarter Malm.json new file mode 100644 index 000000000..0a6f8942e --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/555_Burning Up the Quarter Malm.json @@ -0,0 +1,190 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": ["liza", "plogon_enjoyer"], + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1003817, + "Position": { + "X": -74.57086, + "Y": 1.9999951, + "Z": -42.404846 + }, + "TerritoryId": 130, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2001718, + "Position": { + "X": -108.2017, + "Y": 4.989685, + "Z": -105.7603 + }, + "TerritoryId": 130, + "InteractionType": "Action", + "Action": "Bootshine", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + 128, + null, + null + ] + }, + { + "DataId": 2001719, + "Position": { + "X": -105.9365, + "Y": 4.9655, + "Z": -107.8618 + }, + "TerritoryId": 130, + "InteractionType": "Action", + "Action": "Bootshine", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + 64, + null, + null + ] + }, + { + "DataId": 2001720, + "Position": { + "X": -77.89734, + "Y": 5.0201416, + "Z": -129.19812 + }, + "TerritoryId": 130, + "InteractionType": "Action", + "Action": "Bootshine", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + 32, + null, + null + ] + }, + { + "DataId": 2001721, + "Position": { + "X": -74.906555, + "Y": 4.8981323, + "Z": -130.99878 + }, + "TerritoryId": 130, + "InteractionType": "Action", + "Action": "Bootshine", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + 16, + null, + null + ] + }, + { + "DataId": 2001722, + "Position": { + "X": -71.732666, + "Y": 5.0201416, + "Z": -132.64673 + }, + "TerritoryId": 130, + "InteractionType": "Action", + "Action": "Bootshine", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + 8, + null, + null + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1003817, + "Position": { + "X": -74.57086, + "Y": 1.9999951, + "Z": -42.404846 + }, + "TerritoryId": 130, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "Position": { + "X": -210.32118, + "Y": 21.582167, + "Z": -94.337494 + }, + "TerritoryId": 141, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "KillEnemyDataIds": [ + 771 + ], + "Fly": true, + "AetheryteShortcut": "Central Thanalan - Black Brush Station", + "CombatDelaySecondsAtStart": 0, + "$": "Will stop once 3 Qiqirn Shellsweppers get hit by Snap Punch since it will move on to the next sequence" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": -118.55462, + "Y": 8.216448, + "Z": -82.81951 + }, + "TerritoryId": 141, + "InteractionType": "WalkTo" + }, + { + "DataId": 1003817, + "Position": { + "X": -74.57086, + "Y": 1.9999951, + "Z": -42.404846 + }, + "TerritoryId": 130, + "AetheryteShortcut": "Ul'dah", + "InteractionType": "CompleteQuest", + "NextQuestId": 558 + } + ] + } + ] +} -- 2.45.2 From 82c3e3c647e82ebf93dcb27ddfccd6dda3733d3c Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Mon, 4 Nov 2024 20:10:35 +0100 Subject: [PATCH 211/448] Move when 'SendNotification' happens so it'll be before the solo duty dialog --- .../Steps/Common/SendNotification.cs | 25 ++++++++++++++++++- .../Controller/Steps/Shared/WaitAtEnd.cs | 24 +++--------------- Questionable/QuestionablePlugin.cs | 3 ++- 3 files changed, 29 insertions(+), 23 deletions(-) diff --git a/Questionable/Controller/Steps/Common/SendNotification.cs b/Questionable/Controller/Steps/Common/SendNotification.cs index 76b8a810b..5edb743cd 100644 --- a/Questionable/Controller/Steps/Common/SendNotification.cs +++ b/Questionable/Controller/Steps/Common/SendNotification.cs @@ -1,13 +1,36 @@ -using Dalamud.Game.Text; +using System.Collections.Generic; +using Dalamud.Game.Text; using Dalamud.Game.Text.SeStringHandling; using Dalamud.Plugin.Services; +using Questionable.Data; using Questionable.External; +using Questionable.Model; using Questionable.Model.Questing; namespace Questionable.Controller.Steps.Common; internal static class SendNotification { + internal sealed class Factory( + Configuration configuration, + TerritoryData territoryData) : SimpleTaskFactory + { + public override ITask? CreateTask(Quest quest, QuestSequence sequence, QuestStep step) + { + return step.InteractionType switch + { + EInteractionType.Snipe when !configuration.General.AutomaticallyCompleteSnipeTasks => + new Task(step.InteractionType, step.Comment), + EInteractionType.Duty => + new Task(step.InteractionType, step.ContentFinderConditionId.HasValue + ? territoryData.GetContentFinderConditionName(step.ContentFinderConditionId.Value) + : step.Comment), + EInteractionType.SinglePlayerDuty => new Task(step.InteractionType, quest.Info.Name), + _ => null, + }; + } + } + internal sealed record Task(EInteractionType InteractionType, string? Comment) : ITask { public override string ToString() => "SendNotification"; diff --git a/Questionable/Controller/Steps/Shared/WaitAtEnd.cs b/Questionable/Controller/Steps/Shared/WaitAtEnd.cs index 84d2e1ca9..d64c009bf 100644 --- a/Questionable/Controller/Steps/Shared/WaitAtEnd.cs +++ b/Questionable/Controller/Steps/Shared/WaitAtEnd.cs @@ -6,7 +6,6 @@ using System.Numerics; using Dalamud.Game.ClientState.Conditions; using Dalamud.Plugin.Services; using Questionable.Controller.Steps.Common; -using Questionable.Controller.Steps.Interactions; using Questionable.Controller.Utils; using Questionable.Data; using Questionable.Functions; @@ -20,8 +19,7 @@ internal static class WaitAtEnd internal sealed class Factory( IClientState clientState, ICondition condition, - TerritoryData territoryData, - Configuration configuration) + TerritoryData territoryData) : ITaskFactory { public IEnumerable CreateAllTasks(Quest quest, QuestSequence sequence, QuestStep step) @@ -49,28 +47,12 @@ internal static class WaitAtEnd case EInteractionType.WaitForManualProgress: case EInteractionType.Instruction: + case EInteractionType.Snipe: return [new WaitNextStepOrSequence()]; - case EInteractionType.Snipe: - if (configuration.General.AutomaticallyCompleteSnipeTasks) - return [new WaitNextStepOrSequence()]; - else - return [ - new SendNotification.Task(step.InteractionType, step.Comment), - new WaitNextStepOrSequence() - ]; - case EInteractionType.Duty: - return [ - new SendNotification.Task(step.InteractionType, step.ContentFinderConditionId.HasValue ? territoryData.GetContentFinderConditionName(step.ContentFinderConditionId.Value) : step.Comment), - new EndAutomation(), - ]; - case EInteractionType.SinglePlayerDuty: - return [ - new SendNotification.Task(step.InteractionType, quest.Info.Name), - new EndAutomation() - ]; + return [new EndAutomation()]; case EInteractionType.WalkTo: case EInteractionType.Jump: diff --git a/Questionable/QuestionablePlugin.cs b/Questionable/QuestionablePlugin.cs index b97158c61..9289b1206 100644 --- a/Questionable/QuestionablePlugin.cs +++ b/Questionable/QuestionablePlugin.cs @@ -163,6 +163,8 @@ public sealed class QuestionablePlugin : IDalamudPlugin serviceCollection.AddTaskFactoryAndExecutor(); serviceCollection.AddTaskExecutor(); serviceCollection.AddTaskExecutor(); + serviceCollection + .AddTaskFactoryAndExecutor(); serviceCollection .AddTaskFactoryAndExecutor(); @@ -206,7 +208,6 @@ public sealed class QuestionablePlugin : IDalamudPlugin serviceCollection.AddTaskExecutor(); serviceCollection.AddTaskExecutor(); - serviceCollection.AddTaskExecutor(); serviceCollection.AddTaskExecutor(); serviceCollection.AddTaskFactory(); serviceCollection.AddTaskExecutor(); -- 2.45.2 From 7941cf10f62740e4244a9328fb4b3580a0e0e542 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Mon, 4 Nov 2024 20:23:17 +0100 Subject: [PATCH 212/448] Add ARR ACN/SMN quests --- .../SMN/1091_Austerities of Flame.json | 105 +++++ .../SMN/1092_Austerities of Earth.json | 93 ++++ .../SMN/1093_Shadowing the Summoner.json | 80 ++++ .../Class Quests/SMN/1094_Allagan Attire.json | 206 ++++++++ .../SMN/1095_Austerities of Wind.json | 87 ++++ .../Class Quests/SMN/1096_Primal Burdens.json | 135 ++++++ .../SMN/1103_Topaz Teachings.json | 69 +++ .../451_So You Want to Be an Arcanist.json | 5 +- .../SMN/452_Way of the Arcanist.json | 12 +- .../SMN/454_My First Grimoire.json | 150 ++++++ .../SMN/455_What's in the Box.json | 199 ++++++++ .../SMN/457_Tactical Planning.json | 179 +++++++ .../Class Quests/SMN/458_Over the Rails.json | 119 +++++ .../Class Quests/SMN/459_Pincer Maneuver.json | 171 +++++++ .../SMN/460_Grimoire Fandango.json | 438 ++++++++++++++++++ .../SMN/461_Sinking Doesmaga.json | 272 +++++++++++ 16 files changed, 2315 insertions(+), 5 deletions(-) create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/SMN/1091_Austerities of Flame.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/SMN/1092_Austerities of Earth.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/SMN/1093_Shadowing the Summoner.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/SMN/1094_Allagan Attire.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/SMN/1095_Austerities of Wind.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/SMN/1096_Primal Burdens.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/SMN/1103_Topaz Teachings.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/SMN/454_My First Grimoire.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/SMN/455_What's in the Box.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/SMN/457_Tactical Planning.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/SMN/458_Over the Rails.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/SMN/459_Pincer Maneuver.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/SMN/460_Grimoire Fandango.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/SMN/461_Sinking Doesmaga.json diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/SMN/1091_Austerities of Flame.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/SMN/1091_Austerities of Flame.json new file mode 100644 index 000000000..41477a2be --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/SMN/1091_Austerities of Flame.json @@ -0,0 +1,105 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1000909, + "Position": { + "X": -326.37524, + "Y": 12.899658, + "Z": 9.994568 + }, + "TerritoryId": 129, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] Arcanists' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1006756, + "Position": { + "X": -16.891846, + "Y": 10.17425, + "Z": -246.87573 + }, + "TerritoryId": 133, + "InteractionType": "Interact", + "AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Mih Khetto's Amphitheatre" + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1006786, + "Position": { + "X": -347.15802, + "Y": 0.9522269, + "Z": 741.3595 + }, + "TerritoryId": 146, + "InteractionType": "SinglePlayerDuty", + "AetheryteShortcut": "Southern Thanalan - Forgotten Springs", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1006786, + "Position": { + "X": -347.15802, + "Y": 0.9522269, + "Z": 741.3595 + }, + "StopDistance": 5, + "TerritoryId": 146, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1006756, + "Position": { + "X": -16.891846, + "Y": 10.17425, + "Z": -246.87573 + }, + "TerritoryId": 133, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Mih Khetto's Amphitheatre" + ], + "NextQuestId": 1092 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/SMN/1092_Austerities of Earth.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/SMN/1092_Austerities of Earth.json new file mode 100644 index 000000000..d51cd8592 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/SMN/1092_Austerities of Earth.json @@ -0,0 +1,93 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "TerritoryId": 133, + "InteractionType": "EquipItem", + "ItemId": 4549, + "AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Mih Khetto's Amphitheatre" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 133 + ] + } + } + }, + { + "DataId": 1006756, + "Position": { + "X": -16.891846, + "Y": 10.17425, + "Z": -246.87573 + }, + "TerritoryId": 133, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1006787, + "Position": { + "X": -268.78766, + "Y": -78.85388, + "Z": 444.8767 + }, + "TerritoryId": 154, + "InteractionType": "SinglePlayerDuty", + "AetheryteShortcut": "North Shroud - Fallgourd Float", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1006787, + "Position": { + "X": -268.78766, + "Y": -78.85388, + "Z": 444.8767 + }, + "StopDistance": 7, + "TerritoryId": 154, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1006756, + "Position": { + "X": -16.891846, + "Y": 10.17425, + "Z": -246.87573 + }, + "TerritoryId": 133, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Mih Khetto's Amphitheatre" + ], + "NextQuestId": 1093 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/SMN/1093_Shadowing the Summoner.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/SMN/1093_Shadowing the Summoner.json new file mode 100644 index 000000000..0f9e3081b --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/SMN/1093_Shadowing the Summoner.json @@ -0,0 +1,80 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1006756, + "Position": { + "X": -16.891846, + "Y": 10.17425, + "Z": -246.87573 + }, + "TerritoryId": 133, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Mih Khetto's Amphitheatre" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 133 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1006788, + "Position": { + "X": -105.79089, + "Y": 27.83778, + "Z": -374.3191 + }, + "TerritoryId": 146, + "InteractionType": "Interact", + "AetheryteShortcut": "Southern Thanalan - Little Ala Mhigo" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": -152.77162, + "Y": 27.317062, + "Z": -400.4738 + }, + "TerritoryId": 146, + "InteractionType": "WalkTo" + }, + { + "DataId": 1006756, + "Position": { + "X": -16.891846, + "Y": 10.17425, + "Z": -246.87573 + }, + "TerritoryId": 133, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Mih Khetto's Amphitheatre" + ], + "NextQuestId": 1094 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/SMN/1094_Allagan Attire.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/SMN/1094_Allagan Attire.json new file mode 100644 index 000000000..1d0ca2c7b --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/SMN/1094_Allagan Attire.json @@ -0,0 +1,206 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1006756, + "Position": { + "X": -16.891846, + "Y": 10.17425, + "Z": -246.87573 + }, + "TerritoryId": 133, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Mih Khetto's Amphitheatre" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 133 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1006725, + "Position": { + "X": 446.82983, + "Y": -5.306207, + "Z": -465.72064 + }, + "TerritoryId": 156, + "InteractionType": "Interact", + "AetheryteShortcut": "Mor Dhona", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1006789, + "Position": { + "X": 503.2882, + "Y": -12.351167, + "Z": -343.19073 + }, + "TerritoryId": 156, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 1948 + ], + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1006789, + "Position": { + "X": 503.2882, + "Y": -12.351167, + "Z": -343.19073 + }, + "TerritoryId": 156, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1006790, + "Position": { + "X": 496.45215, + "Y": -2.546432, + "Z": -472.03784 + }, + "TerritoryId": 156, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 1948 + ], + "Fly": true + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1006790, + "Position": { + "X": 496.45215, + "Y": -2.546432, + "Z": -472.03784 + }, + "TerritoryId": 156, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "Position": { + "X": 372.27008, + "Y": -4.9949923, + "Z": -482.91302 + }, + "TerritoryId": 156, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 1006791, + "Position": { + "X": 373.52563, + "Y": -5.242633, + "Z": -484.70288 + }, + "TerritoryId": 156, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 1948 + ] + } + ] + }, + { + "Sequence": 7, + "Steps": [ + { + "DataId": 1006791, + "Position": { + "X": 373.52563, + "Y": -5.242633, + "Z": -484.70288 + }, + "TerritoryId": 156, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 8, + "Steps": [ + { + "DataId": 1006725, + "Position": { + "X": 446.82983, + "Y": -5.306207, + "Z": -465.72064 + }, + "TerritoryId": 156, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "TerritoryId": 156, + "InteractionType": "EquipRecommended" + }, + { + "DataId": 1006756, + "Position": { + "X": -16.891846, + "Y": 10.17425, + "Z": -246.87573 + }, + "TerritoryId": 133, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Mih Khetto's Amphitheatre" + ], + "NextQuestId": 1095 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/SMN/1095_Austerities of Wind.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/SMN/1095_Austerities of Wind.json new file mode 100644 index 000000000..0161b7680 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/SMN/1095_Austerities of Wind.json @@ -0,0 +1,87 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1006756, + "Position": { + "X": -16.891846, + "Y": 10.17425, + "Z": -246.87573 + }, + "TerritoryId": 133, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Mih Khetto's Amphitheatre" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 133 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1006792, + "Position": { + "X": -378.10333, + "Y": 51.61585, + "Z": -290.11975 + }, + "TerritoryId": 180, + "InteractionType": "SinglePlayerDuty", + "AetheryteShortcut": "Outer La Noscea - Camp Overlook", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1006792, + "Position": { + "X": -378.10333, + "Y": 51.61585, + "Z": -290.11975 + }, + "TerritoryId": 180, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1006756, + "Position": { + "X": -16.891846, + "Y": 10.17425, + "Z": -246.87573 + }, + "TerritoryId": 133, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Mih Khetto's Amphitheatre" + ], + "NextQuestId": 1096 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/SMN/1096_Primal Burdens.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/SMN/1096_Primal Burdens.json new file mode 100644 index 000000000..5f23b8dda --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/SMN/1096_Primal Burdens.json @@ -0,0 +1,135 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1006756, + "Position": { + "X": -16.891846, + "Y": 10.17425, + "Z": -246.87573 + }, + "TerritoryId": 133, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Mih Khetto's Amphitheatre" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 133 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": 494.60034, + "Y": -2.1295002, + "Z": -484.951 + }, + "TerritoryId": 156, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Mor Dhona", + "Fly": true + }, + { + "DataId": 1006793, + "Position": { + "X": 493.09534, + "Y": -2.349111, + "Z": -484.61133 + }, + "TerritoryId": 156, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1006794, + "Position": { + "X": 493.09534, + "Y": -2.4306269, + "Z": -483.6042 + }, + "TerritoryId": 156, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "Position": { + "X": 500.36328, + "Y": -3.814063, + "Z": -770.9911 + }, + "TerritoryId": 156, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "Position": { + "X": 504.98605, + "Y": -2.5969198, + "Z": -780.6112 + }, + "TerritoryId": 156, + "InteractionType": "SinglePlayerDuty", + "Mount": false + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1006795, + "Position": { + "X": 475.0896, + "Y": 5.8291526, + "Z": -842.40485 + }, + "TerritoryId": 156, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1006756, + "Position": { + "X": -16.891846, + "Y": 10.17425, + "Z": -246.87573 + }, + "TerritoryId": 133, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Mih Khetto's Amphitheatre" + ] + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/SMN/1103_Topaz Teachings.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/SMN/1103_Topaz Teachings.json new file mode 100644 index 000000000..f2b0983f0 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/SMN/1103_Topaz Teachings.json @@ -0,0 +1,69 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1000909, + "Position": { + "X": -326.37524, + "Y": 12.899658, + "Z": 9.994568 + }, + "TerritoryId": 129, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] Arcanists' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1005199, + "Position": { + "X": -348.3177, + "Y": -2.3744698, + "Z": 11.917236 + }, + "TerritoryId": 129, + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_CLSACN149_01103_Q1_000_000", + "Answer": "TEXT_CLSACN149_01103_A1_000_000" + } + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1000909, + "Position": { + "X": -326.37524, + "Y": 12.899658, + "Z": 9.994568 + }, + "TerritoryId": 129, + "InteractionType": "CompleteQuest", + "NextQuestId": 458 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/SMN/451_So You Want to Be an Arcanist.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/SMN/451_So You Want to Be an Arcanist.json index 4c4c38fc2..5aade25c6 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/SMN/451_So You Want to Be an Arcanist.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/SMN/451_So You Want to Be an Arcanist.json @@ -21,10 +21,7 @@ ], "SkipConditions": { "AetheryteShortcutIf": { - "InSameTerritory": true, - "InTerritory": [ - 129 - ] + "InSameTerritory": true } }, "DialogueChoices": [ diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/SMN/452_Way of the Arcanist.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/SMN/452_Way of the Arcanist.json index 4faf9f21a..263102e6c 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/SMN/452_Way of the Arcanist.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/SMN/452_Way of the Arcanist.json @@ -13,7 +13,17 @@ "Z": 1.3884888 }, "TerritoryId": 129, - "InteractionType": "AcceptQuest" + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] Arcanists' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } } ] }, diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/SMN/454_My First Grimoire.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/SMN/454_My First Grimoire.json new file mode 100644 index 000000000..360fb37ad --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/SMN/454_My First Grimoire.json @@ -0,0 +1,150 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1000909, + "Position": { + "X": -326.37524, + "Y": 12.899658, + "Z": 9.994568 + }, + "TerritoryId": 129, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] Arcanists' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": -1.5568014, + "Y": 66.12121, + "Z": 102.35001 + }, + "TerritoryId": 135, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "ComplexCombatData": [ + { + "DataId": 347, + "MinimumKillCount": 3, + "CompletionQuestVariablesFlags": [ + null, + { + "Low": 3 + }, + null, + null, + null, + null + ] + }, + { + "DataId": 49, + "MinimumKillCount": 3, + "CompletionQuestVariablesFlags": [ + { + "Low": 3 + }, + null, + null, + null, + null, + null + ] + } + ], + "AethernetShortcut": [ + "[Limsa Lominsa] Arcanists' Guild", + "[Limsa Lominsa] Tempest Gate (Lower La Noscea)" + ], + "CompletionQuestVariablesFlags": [ + { + "Low": 3 + }, + { + "Low": 3 + }, + null, + null, + null, + null + ] + }, + { + "Position": { + "X": 157.63565, + "Y": 38.01287, + "Z": 48.92973 + }, + "TerritoryId": 135, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "ComplexCombatData": [ + { + "DataId": 324, + "MinimumKillCount": 3, + "CompletionQuestVariablesFlags": [ + null, + { + "High": 3 + }, + null, + null, + null, + null + ] + } + ], + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + { + "High": 3 + }, + null, + null, + null, + null + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1000909, + "Position": { + "X": -326.37524, + "Y": 12.899658, + "Z": 9.994568 + }, + "TerritoryId": 129, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] Arcanists' Guild" + ], + "NextQuestId": 455 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/SMN/455_What's in the Box.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/SMN/455_What's in the Box.json new file mode 100644 index 000000000..adfe3dbfa --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/SMN/455_What's in the Box.json @@ -0,0 +1,199 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1000909, + "Position": { + "X": -326.37524, + "Y": 12.899658, + "Z": 9.994568 + }, + "TerritoryId": 129, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] Arcanists' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": 368.87418, + "Y": 61.448803, + "Z": -69.13581 + }, + "TerritoryId": 135, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "ComplexCombatData": [ + { + "DataId": 339, + "MinimumKillCount": 3, + "CompletionQuestVariablesFlags": [ + { + "Low": 3 + }, + null, + null, + null, + null, + null + ] + } + ], + "Fly": true, + "CompletionQuestVariablesFlags": [ + { + "Low": 3 + }, + null, + null, + null, + null, + null + ], + "AethernetShortcut": [ + "[Limsa Lominsa] Arcanists' Guild", + "[Limsa Lominsa] Tempest Gate (Lower La Noscea)" + ] + }, + { + "Position": { + "X": 381.1583, + "Y": 68.00773, + "Z": -114.15414 + }, + "TerritoryId": 135, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "ComplexCombatData": [ + { + "DataId": 118, + "MinimumKillCount": 3, + "CompletionQuestVariablesFlags": [ + null, + { + "High": 3 + }, + null, + null, + null, + null + ] + } + ], + "CompletionQuestVariablesFlags": [ + null, + { + "High": 3 + }, + null, + null, + null, + null + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1000909, + "Position": { + "X": -326.37524, + "Y": 12.899658, + "Z": 9.994568 + }, + "TerritoryId": 129, + "InteractionType": "Interact", + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] Arcanists' Guild" + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2002266, + "Position": { + "X": -0.13739014, + "Y": 26.077637, + "Z": 196.52087 + }, + "TerritoryId": 134, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 39 + ], + "AethernetShortcut": [ + "[Limsa Lominsa] Arcanists' Guild", + "[Limsa Lominsa] Zephyr Gate (Middle La Noscea)" + ] + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 2002476, + "Position": { + "X": -0.10687256, + "Y": 25.955566, + "Z": 196.55139 + }, + "TerritoryId": 134, + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_CLSACN050_00455_Q1_000_000", + "Answer": "TEXT_CLSACN050_00455_A1_000_002" + } + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1000909, + "Position": { + "X": -326.37524, + "Y": 12.899658, + "Z": 9.994568 + }, + "TerritoryId": 129, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] Arcanists' Guild" + ], + "NextQuestId": 457 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/SMN/457_Tactical Planning.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/SMN/457_Tactical Planning.json new file mode 100644 index 000000000..71133d7e9 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/SMN/457_Tactical Planning.json @@ -0,0 +1,179 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1000909, + "Position": { + "X": -326.37524, + "Y": 12.899658, + "Z": 9.994568 + }, + "TerritoryId": 129, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] Arcanists' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": 667.4784, + "Y": 15.36824, + "Z": 443.4379 + }, + "TerritoryId": 138, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "KillEnemyDataIds": [ + 22 + ], + "AetheryteShortcut": "Western La Noscea - Swiftperch", + "CompletionQuestVariablesFlags": [ + { + "Low": 3 + }, + null, + null, + null, + null, + null + ] + }, + { + "Position": { + "X": 686.6034, + "Y": 23.682272, + "Z": 422.78772 + }, + "TerritoryId": 138, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "KillEnemyDataIds": [ + 138 + ], + "CompletionQuestVariablesFlags": [ + null, + { + "High": 3 + }, + null, + null, + null, + null + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1000909, + "Position": { + "X": -326.37524, + "Y": 12.899658, + "Z": 9.994568 + }, + "TerritoryId": 129, + "InteractionType": "Interact", + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] Arcanists' Guild" + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1005199, + "Position": { + "X": -348.3177, + "Y": -2.3744698, + "Z": 11.917236 + }, + "TerritoryId": 129, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1005200, + "Position": { + "X": -106.79791, + "Y": 45.688404, + "Z": -252.33844 + }, + "TerritoryId": 134, + "InteractionType": "SinglePlayerDuty", + "AetheryteShortcut": "Middle La Noscea - Summerford Farms", + "Fly": true + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1005201, + "Position": { + "X": -98.49707, + "Y": 47.27536, + "Z": -262.31793 + }, + "StopDistance": 5, + "TerritoryId": 134, + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_CLSACN101_00457_Q1_000_000", + "Answer": "TEXT_CLSACN101_00457_A1_000_001" + } + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1000909, + "Position": { + "X": -326.37524, + "Y": 12.899658, + "Z": 9.994568 + }, + "TerritoryId": 129, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] Arcanists' Guild" + ], + "NextQuestId": 1103 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/SMN/458_Over the Rails.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/SMN/458_Over the Rails.json new file mode 100644 index 000000000..2e3bb87be --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/SMN/458_Over the Rails.json @@ -0,0 +1,119 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1000909, + "Position": { + "X": -326.37524, + "Y": 12.899658, + "Z": 9.994568 + }, + "TerritoryId": 129, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] Arcanists' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1005208, + "Position": { + "X": 316.02954, + "Y": -24.136772, + "Z": 211.20007 + }, + "TerritoryId": 138, + "InteractionType": "Interact", + "AetheryteShortcut": "Western La Noscea - Aleport" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1005211, + "Position": { + "X": 204.27246, + "Y": -36.402367, + "Z": 306.17224 + }, + "TerritoryId": 138, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 317, + 318 + ], + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1005211, + "Position": { + "X": 204.27246, + "Y": -36.402367, + "Z": 306.17224 + }, + "TerritoryId": 138, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 2002009, + "Position": { + "X": 173.81543, + "Y": -41.36731, + "Z": 280.7201 + }, + "TerritoryId": 138, + "InteractionType": "SinglePlayerDuty" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1000909, + "Position": { + "X": -326.37524, + "Y": 12.899658, + "Z": 9.994568 + }, + "TerritoryId": 129, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] Arcanists' Guild" + ], + "NextQuestId": 459 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/SMN/459_Pincer Maneuver.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/SMN/459_Pincer Maneuver.json new file mode 100644 index 000000000..4f70c71bd --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/SMN/459_Pincer Maneuver.json @@ -0,0 +1,171 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1000909, + "Position": { + "X": -326.37524, + "Y": 12.899658, + "Z": 9.994568 + }, + "TerritoryId": 129, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] Arcanists' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1003505, + "Position": { + "X": -186.20587, + "Y": 16, + "Z": 56.931396 + }, + "TerritoryId": 129, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Limsa Lominsa] Arcanists' Guild", + "[Limsa Lominsa] Hawkers' Alley" + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1000938, + "Position": { + "X": -4.654114, + "Y": 44.999847, + "Z": -241.84027 + }, + "TerritoryId": 128, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Limsa Lominsa] Hawkers' Alley", + "[Limsa Lominsa] Marauders' Guild" + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1000909, + "Position": { + "X": -326.37524, + "Y": 12.899658, + "Z": 9.994568 + }, + "TerritoryId": 129, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Limsa Lominsa] Marauders' Guild", + "[Limsa Lominsa] Arcanists' Guild" + ] + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "Position": { + "X": 177.58797, + "Y": -41.12709, + "Z": 260.26315 + }, + "TerritoryId": 138, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Western La Noscea - Aleport", + "Fly": true + }, + { + "DataId": 1005215, + "Position": { + "X": 178.66785, + "Y": -41.140213, + "Z": 261.61597 + }, + "TerritoryId": 138, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1005217, + "Position": { + "X": 103.74609, + "Y": 68.15523, + "Z": 329.45752 + }, + "TerritoryId": 135, + "InteractionType": "Interact", + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] Tempest Gate (Lower La Noscea)" + ], + "Fly": true + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 2002010, + "Position": { + "X": 108.384766, + "Y": 68.13147, + "Z": 351.61353 + }, + "TerritoryId": 135, + "InteractionType": "SinglePlayerDuty" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1000909, + "Position": { + "X": -326.37524, + "Y": 12.899658, + "Z": 9.994568 + }, + "TerritoryId": 129, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] Arcanists' Guild" + ], + "NextQuestId": 460 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/SMN/460_Grimoire Fandango.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/SMN/460_Grimoire Fandango.json new file mode 100644 index 000000000..3febeabdf --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/SMN/460_Grimoire Fandango.json @@ -0,0 +1,438 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1000909, + "Position": { + "X": -326.37524, + "Y": 12.899658, + "Z": 9.994568 + }, + "TerritoryId": 129, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] Arcanists' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": 410.82263, + "Y": 31.185892, + "Z": -11.729958 + }, + "TerritoryId": 138, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Western La Noscea - Aleport", + "Fly": true + }, + { + "DataId": 1005227, + "Position": { + "X": -311.32983, + "Y": -1.5234554, + "Z": 127.336426 + }, + "TerritoryId": 139, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": -394.91058, + "Y": -3.4000032, + "Z": 148.78712 + }, + "TerritoryId": 139, + "InteractionType": "WalkTo", + "SkipConditions": { + "StepIf": { + "Flying": "Unlocked" + } + } + }, + { + "Position": { + "X": -449.98322, + "Y": 3.358525, + "Z": 88.437485 + }, + "TerritoryId": 139, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 1006195, + "Position": { + "X": -453.36084, + "Y": 4.574484, + "Z": 71.54956 + }, + "TerritoryId": 139, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "Position": { + "X": -449.98322, + "Y": 3.358525, + "Z": 88.437485 + }, + "TerritoryId": 139, + "InteractionType": "WalkTo", + "Mount": true + }, + { + "DataId": 2001892, + "Position": { + "X": -457.7249, + "Y": 29.19043, + "Z": 58.335205 + }, + "TerritoryId": 139, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 2001894, + "Position": { + "X": -393.4234, + "Y": 42.557373, + "Z": -2.975586 + }, + "TerritoryId": 139, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, + { + "Position": { + "X": -373.06784, + "Y": 38.31673, + "Z": 36.456448 + }, + "TerritoryId": 139, + "InteractionType": "WalkTo", + "SkipConditions": { + "StepIf": { + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + } + } + }, + { + "Position": { + "X": -367.3377, + "Y": 27.109692, + "Z": 40.748257 + }, + "TerritoryId": 139, + "InteractionType": "WalkTo", + "Mount": false, + "DisableNavmesh": true, + "SkipConditions": { + "StepIf": { + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + } + } + }, + { + "DataId": 2001893, + "Position": { + "X": -388.72363, + "Y": 27.023682, + "Z": 45.578613 + }, + "TerritoryId": 139, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "Position": { + "X": -419.99802, + "Y": 19.50849, + "Z": 60.498474 + }, + "TerritoryId": 139, + "InteractionType": "WalkTo", + "Mount": true + }, + { + "Position": { + "X": -428.06293, + "Y": -1.8700926, + "Z": 65.585 + }, + "TerritoryId": 139, + "InteractionType": "WalkTo", + "DisableNavmesh": true + }, + { + "Position": { + "X": -449.98322, + "Y": 3.358525, + "Z": 88.437485 + }, + "TerritoryId": 139, + "InteractionType": "WalkTo" + }, + { + "DataId": 1006195, + "Position": { + "X": -453.36084, + "Y": 4.574484, + "Z": 71.54956 + }, + "TerritoryId": 139, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "Position": { + "X": -449.98322, + "Y": 3.358525, + "Z": 88.437485 + }, + "TerritoryId": 139, + "InteractionType": "WalkTo", + "Mount": true + }, + { + "Position": { + "X": -599.5244, + "Y": -3.3999999, + "Z": -51.651997 + }, + "TerritoryId": 139, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 2002478, + "Position": { + "X": -600.61035, + "Y": -3.189148, + "Z": -53.788086 + }, + "TerritoryId": 139, + "InteractionType": "Emote", + "Emote": "dance" + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 2002478, + "Position": { + "X": -600.61035, + "Y": -3.189148, + "Z": -53.788086 + }, + "TerritoryId": 139, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 7, + "Steps": [ + { + "Position": { + "X": -600.61035, + "Y": -3.189148, + "Z": -53.788086 + }, + "TerritoryId": 139, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [ + 39 + ] + }, + { + "DataId": 2002478, + "Position": { + "X": -600.61035, + "Y": -3.189148, + "Z": -53.788086 + }, + "TerritoryId": 139, + "InteractionType": "Interact", + "DelaySecondsAtStart": 5 + } + ] + }, + { + "Sequence": 8, + "Steps": [ + { + "Position": { + "X": -394.91058, + "Y": -3.4000032, + "Z": 148.78712 + }, + "TerritoryId": 139, + "InteractionType": "WalkTo", + "SkipConditions": { + "StepIf": { + "Flying": "Unlocked" + } + } + }, + { + "DataId": 1005249, + "Position": { + "X": -337.30072, + "Y": -2.1811728, + "Z": 141.31372 + }, + "TerritoryId": 139, + "InteractionType": "Emote", + "Emote": "dance", + "Fly": true + } + ] + }, + { + "Sequence": 9, + "Steps": [ + { + "Position": { + "X": -139.68823, + "Y": 39.999985, + "Z": 154.54538 + }, + "TerritoryId": 128, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] The Aftcastle" + ] + }, + { + "DataId": 1005228, + "Position": { + "X": -190.3258, + "Y": 41.24994, + "Z": 176.22644 + }, + "TerritoryId": 128, + "InteractionType": "Emote", + "Emote": "dance", + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_CLSACN250_00460_Q1_000_000", + "Yes": true + } + ] + } + ] + }, + { + "Sequence": 10, + "Steps": [ + { + "DataId": 1005228, + "Position": { + "X": -190.3258, + "Y": 41.24994, + "Z": 176.22644 + }, + "TerritoryId": 128, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1000909, + "Position": { + "X": -326.37524, + "Y": 12.899658, + "Z": 9.994568 + }, + "TerritoryId": 129, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] Arcanists' Guild" + ], + "NextQuestId": 461 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/SMN/461_Sinking Doesmaga.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/SMN/461_Sinking Doesmaga.json new file mode 100644 index 000000000..255732180 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/SMN/461_Sinking Doesmaga.json @@ -0,0 +1,272 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1000909, + "Position": { + "X": -326.37524, + "Y": 12.899658, + "Z": 9.994568 + }, + "TerritoryId": 129, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] Arcanists' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": 540.5525, + "Y": 10.00537, + "Z": 215.53333 + }, + "TerritoryId": 137, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Eastern La Noscea - Costa Del Sol", + "SkipConditions": { + "StepIf": { + "Flying": "Unlocked" + } + } + }, + { + "Position": { + "X": 545.74445, + "Y": 11.959542, + "Z": 214.24825 + }, + "TerritoryId": 137, + "InteractionType": "WalkTo", + "SkipConditions": { + "StepIf": { + "Flying": "Unlocked" + } + } + }, + { + "Position": { + "X": 548.48584, + "Y": 12.640512, + "Z": 220.15768 + }, + "TerritoryId": 137, + "InteractionType": "WalkTo", + "Fly": true, + "SkipConditions": { + "StepIf": { + "Flying": "Locked" + } + } + }, + { + "DataId": 1005251, + "Position": { + "X": 550.46924, + "Y": 12.147732, + "Z": 220.9353 + }, + "StopDistance": 5, + "TerritoryId": 137, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": 542.48083, + "Y": 8.70027, + "Z": 398.26666 + }, + "TerritoryId": 137, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Eastern La Noscea - Costa Del Sol" + }, + { + "Position": { + "X": 585.3419, + "Y": 14.562424, + "Z": 379.80997 + }, + "TerritoryId": 137, + "InteractionType": "WalkTo" + }, + { + "DataId": 1005252, + "Position": { + "X": 586.0226, + "Y": 14.562427, + "Z": 376.21106 + }, + "StopDistance": 5, + "TerritoryId": 137, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1006273, + "Position": { + "X": 619.0126, + "Y": 23.936245, + "Z": 455.10022 + }, + "TerritoryId": 137, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1005253, + "Position": { + "X": 564.35486, + "Y": 20.617891, + "Z": 504.32593 + }, + "TerritoryId": 137, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "Position": { + "X": 515.26044, + "Y": 27.708418, + "Z": 469.322 + }, + "TerritoryId": 137, + "InteractionType": "WalkTo", + "Fly": true, + "SkipConditions": { + "StepIf": { + "Flying": "Locked" + } + } + }, + { + "Position": { + "X": 449.59036, + "Y": 15.174555, + "Z": 377.2856 + }, + "TerritoryId": 137, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 1005254, + "Position": { + "X": 442.00806, + "Y": 15.793267, + "Z": 370.32104 + }, + "TerritoryId": 137, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1005229, + "Position": { + "X": 522.9114, + "Y": 17.448051, + "Z": 456.35156 + }, + "TerritoryId": 137, + "InteractionType": "Interact", + "Fly": true, + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_CLSACN300_00461_Q1_000_001", + "Yes": true + } + ] + } + ] + }, + { + "Sequence": 7, + "Steps": [ + { + "DataId": 1005235, + "Position": { + "X": 684.3823, + "Y": 11.594438, + "Z": 411.94775 + }, + "StopDistance": 1, + "TerritoryId": 137, + "InteractionType": "SinglePlayerDuty", + "Fly": true + } + ] + }, + { + "Sequence": 8, + "Steps": [ + { + "DataId": 1000909, + "Position": { + "X": -326.37524, + "Y": 12.899658, + "Z": 9.994568 + }, + "TerritoryId": 129, + "InteractionType": "Interact", + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] Arcanists' Guild" + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1000909, + "Position": { + "X": -326.37524, + "Y": 12.899658, + "Z": 9.994568 + }, + "TerritoryId": 129, + "InteractionType": "CompleteQuest", + "NextQuestId": 1091 + } + ] + } + ] +} -- 2.45.2 From 9329bb7cd608421885bdcc14cb00d29b12512277 Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Sun, 20 Oct 2024 00:51:34 +0800 Subject: [PATCH 213/448] Added action Fiery Breath --- QuestPaths/quest-v1.json | 1 + Questionable.Model/Questing/Converter/ActionConverter.cs | 1 + Questionable.Model/Questing/EAction.cs | 4 +++- 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/QuestPaths/quest-v1.json b/QuestPaths/quest-v1.json index 5ef7ce77d..58c1d16a4 100644 --- a/QuestPaths/quest-v1.json +++ b/QuestPaths/quest-v1.json @@ -946,6 +946,7 @@ "Physick", "Aspected Benefic", "Form Shift", + "Fiery Breath", "Buffet (Sanuwa)", "Buffet (Griffin)", "Trample", diff --git a/Questionable.Model/Questing/Converter/ActionConverter.cs b/Questionable.Model/Questing/Converter/ActionConverter.cs index d3a905006..86a1800b5 100644 --- a/Questionable.Model/Questing/Converter/ActionConverter.cs +++ b/Questionable.Model/Questing/Converter/ActionConverter.cs @@ -22,6 +22,7 @@ public sealed class ActionConverter() : EnumConverter(Values) { EAction.Physick, "Physick" }, { EAction.AspectedBenefic, "Aspected Benefic" }, { EAction.FormShift, "Form Shift" }, + { EAction.FieryBreath, "Fiery Breath" }, { EAction.BuffetSanuwa, "Buffet (Sanuwa)" }, { EAction.BuffetGriffin, "Buffet (Griffin)" }, { EAction.Trample, "Trample" }, diff --git a/Questionable.Model/Questing/EAction.cs b/Questionable.Model/Questing/EAction.cs index 5fd172585..4f7987978 100644 --- a/Questionable.Model/Questing/EAction.cs +++ b/Questionable.Model/Questing/EAction.cs @@ -21,6 +21,7 @@ public enum EAction Physick = 190, AspectedBenefic = 3595, FormShift = 4262, + FieryBreath = 1764, BuffetSanuwa = 4931, BuffetGriffin = 4583, Trample = 4585, @@ -70,7 +71,8 @@ public static class EActionExtensions public static bool RequiresMount(this EAction action) { return action - is EAction.BuffetSanuwa + is EAction.FieryBreath + or EAction.BuffetSanuwa or EAction.BuffetGriffin or EAction.Trample or EAction.Fumigate -- 2.45.2 From a287d91e2251b8915e931d5c34633fcaf355de32 Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Mon, 4 Nov 2024 18:46:42 +0800 Subject: [PATCH 214/448] Added a few daily quests: - A Sappy Ending - Luring Lacovie - Forged in Flame - Beacon Keepers - This Infernal Heat --- .../Amalj'aa/Dailies/1224_A Sappy Ending.json | 116 ++++++++++++++++++ .../Amalj'aa/Dailies/1225_Luring Lacovie.json | 63 ++++++++++ .../Dailies/1234_Forged in Flame.json | 37 ++++++ .../Amalj'aa/Dailies/1235_Beacon Keepers.json | 37 ++++++ .../Dailies/1241_This Infernal Heat.json | 59 +++++++++ 5 files changed, 312 insertions(+) create mode 100644 QuestPaths/2.x - A Realm Reborn/Allied Societies/Amalj'aa/Dailies/1224_A Sappy Ending.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Allied Societies/Amalj'aa/Dailies/1225_Luring Lacovie.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Allied Societies/Amalj'aa/Dailies/1234_Forged in Flame.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Allied Societies/Amalj'aa/Dailies/1235_Beacon Keepers.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Allied Societies/Amalj'aa/Dailies/1241_This Infernal Heat.json diff --git a/QuestPaths/2.x - A Realm Reborn/Allied Societies/Amalj'aa/Dailies/1224_A Sappy Ending.json b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Amalj'aa/Dailies/1224_A Sappy Ending.json new file mode 100644 index 000000000..2af519388 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Amalj'aa/Dailies/1224_A Sappy Ending.json @@ -0,0 +1,116 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "plogon_enjoyer", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1005550, + "Position": { + "X": 105.27197, + "Y": 15.359643, + "Z": -357.3816 + }, + "TerritoryId": 146, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2002979, + "Position": { + "X": -180.68213, + "Y": 6.301941, + "Z": -136.21735 + }, + "TerritoryId": 146, + "InteractionType": "Interact", + "RequiredQuestVariables": [null, [1, 2], null, null, null, null], + "Fly": true + }, + { + "DataId": 2002981, + "Position": { + "X": -30.655396, + "Y": 8.651855, + "Z": -87.02222 + }, + "TerritoryId": 146, + "InteractionType": "Interact", + "RequiredQuestVariables": [null, [4, 17], null, null, null, null], + "Fly": true + }, + { + "DataId": 2002982, + "Position": { + "X": -116.44165, + "Y": -0.3204956, + "Z": -34.40918 + }, + "TerritoryId": 146, + "InteractionType": "Interact", + "RequiredQuestVariables": [null, [18, 20], null, null, null, null], + "Fly": true + }, + { + "DataId": 2002985, + "Position": { + "X": -41.031555, + "Y": 0.16778564, + "Z": 15.915161 + }, + "TerritoryId": 146, + "InteractionType": "Interact", + "RequiredQuestVariables": [ + null, + [33, 34, 36], + null, + null, + null, + null + ], + "Fly": true + }, + { + "DataId": 2002986, + "Position": { + "X": -78.81293, + "Y": -1.083435, + "Z": 44.052734 + }, + "TerritoryId": 146, + "InteractionType": "Interact", + "RequiredQuestVariables": [ + null, + [49, 50, 52], + null, + null, + null, + null + ], + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1005550, + "Position": { + "X": 105.27197, + "Y": 15.359643, + "Z": -357.3816 + }, + "TerritoryId": 146, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Allied Societies/Amalj'aa/Dailies/1225_Luring Lacovie.json b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Amalj'aa/Dailies/1225_Luring Lacovie.json new file mode 100644 index 000000000..c0378b1df --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Amalj'aa/Dailies/1225_Luring Lacovie.json @@ -0,0 +1,63 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "plogon_enjoyer", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1005550, + "Position": { + "X": 105.27197, + "Y": 15.359643, + "Z": -357.3816 + }, + "TerritoryId": 146, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": -40.402416, + "Y": -1.1266766, + "Z": 0.71999836 + }, + "TerritoryId": 146, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "ComplexCombatData": [ + { + "DataId": 358, + "MinimumKillCount": 3 + }, + { + "DataId": 2451, + "MinimumKillCount": 1 + } + ], + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1005550, + "Position": { + "X": 105.27197, + "Y": 15.359643, + "Z": -357.3816 + }, + "TerritoryId": 146, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Allied Societies/Amalj'aa/Dailies/1234_Forged in Flame.json b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Amalj'aa/Dailies/1234_Forged in Flame.json new file mode 100644 index 000000000..f489f265d --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Amalj'aa/Dailies/1234_Forged in Flame.json @@ -0,0 +1,37 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "plogon_enjoyer", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1005551, + "Position": { + "X": 98.924194, + "Y": 15.29447, + "Z": -349.4469 + }, + "TerritoryId": 146, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1005551, + "Position": { + "X": 98.924194, + "Y": 15.29447, + "Z": -349.4469 + }, + "TerritoryId": 146, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Allied Societies/Amalj'aa/Dailies/1235_Beacon Keepers.json b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Amalj'aa/Dailies/1235_Beacon Keepers.json new file mode 100644 index 000000000..f489f265d --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Amalj'aa/Dailies/1235_Beacon Keepers.json @@ -0,0 +1,37 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "plogon_enjoyer", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1005551, + "Position": { + "X": 98.924194, + "Y": 15.29447, + "Z": -349.4469 + }, + "TerritoryId": 146, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1005551, + "Position": { + "X": 98.924194, + "Y": 15.29447, + "Z": -349.4469 + }, + "TerritoryId": 146, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Allied Societies/Amalj'aa/Dailies/1241_This Infernal Heat.json b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Amalj'aa/Dailies/1241_This Infernal Heat.json new file mode 100644 index 000000000..fa976521e --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Amalj'aa/Dailies/1241_This Infernal Heat.json @@ -0,0 +1,59 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "plogon_enjoyer", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1005551, + "Position": { + "X": 98.924194, + "Y": 15.29447, + "Z": -349.4469 + }, + "TerritoryId": 146, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": -38.375584, + "Y": 8.492833, + "Z": 156.09068 + }, + "TerritoryId": 146, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "ComplexCombatData": [ + { + "DataId": 2452, + "MinimumKillCount": 2 + } + ], + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1005551, + "Position": { + "X": 98.924194, + "Y": 15.29447, + "Z": -349.4469 + }, + "TerritoryId": 146, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} -- 2.45.2 From 939aba4d2652fb25aabfd013f55f193801673e9e Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Mon, 4 Nov 2024 18:47:23 +0800 Subject: [PATCH 215/448] Added new story quest - "Ranger Rescue" --- .../Amalj'aa/Story/1219_Ranger Rescue.json | 221 ++++++++++++++++++ 1 file changed, 221 insertions(+) create mode 100644 QuestPaths/2.x - A Realm Reborn/Allied Societies/Amalj'aa/Story/1219_Ranger Rescue.json diff --git a/QuestPaths/2.x - A Realm Reborn/Allied Societies/Amalj'aa/Story/1219_Ranger Rescue.json b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Amalj'aa/Story/1219_Ranger Rescue.json new file mode 100644 index 000000000..aeb0269d0 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Amalj'aa/Story/1219_Ranger Rescue.json @@ -0,0 +1,221 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "plogon_enjoyer", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1005553, + "Position": { + "X": 122.6062, + "Y": 16.402647, + "Z": -362.11188 + }, + "TerritoryId": 146, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1005581, + "Position": { + "X": -55.985413, + "Y": -1.6554508, + "Z": -47.56244 + }, + "TerritoryId": 146, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2002949, + "Position": { + "X": -70.17627, + "Y": 11.36792, + "Z": 97.0625 + }, + "TerritoryId": 146, + "InteractionType": "Action", + "Action": "Fiery Breath" + }, + { + "DataId": 2002956, + "Position": { + "X": -199.96954, + "Y": 5.661072, + "Z": 101.823364 + }, + "TerritoryId": 146, + "InteractionType": "Action", + "Action": "Fiery Breath" + }, + { + "DataId": 2002950, + "Position": { + "X": -118.0896, + "Y": 27.695068, + "Z": 126.97034 + }, + "TerritoryId": 146, + "InteractionType": "Action", + "Action": "Fiery Breath" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1005585, + "Position": { + "X": -114.64105, + "Y": 7.539109, + "Z": 308.82727 + }, + "TerritoryId": 146, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1005583, + "Position": { + "X": -114.27484, + "Y": 7.6587763, + "Z": 310.01746 + }, + "TerritoryId": 146, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1005584, + "Position": { + "X": -261.55493, + "Y": 7.084492, + "Z": 412.28345 + }, + "TerritoryId": 146, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1008284, + "Position": { + "X": -306.44696, + "Y": 6.321288, + "Z": 392.5078 + }, + "TerritoryId": 146, + "InteractionType": "Interact", + "Fly": true + }, + { + "Position": { + "X": -365.44217, + "Y": 6.691126, + "Z": 395.09555 + }, + "TerritoryId": 146, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 1008287, + "Position": { + "X": -366.10974, + "Y": 6.9095497, + "Z": 394.64404 + }, + "TerritoryId": 146, + "InteractionType": "Interact" + }, + { + "DataId": 1008285, + "Position": { + "X": -319.50867, + "Y": 8.2855835, + "Z": 428.18335 + }, + "TerritoryId": 146, + "InteractionType": "Interact", + "Fly": true + }, + { + "DataId": 1008286, + "Position": { + "X": -330.5562, + "Y": 8.096848, + "Z": 480.0641 + }, + "TerritoryId": 146, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 7, + "Steps": [ + { + "Position": { + "X": -159.56685, + "Y": 23.290625, + "Z": -334.22568 + }, + "TerritoryId": 146, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Southern Thanalan - Little Ala Mhigo" + }, + { + "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", + "Fly": true + } + ] + } + ] +} -- 2.45.2 From 63b9020824cf97b81b1c02a6d87e5c32dc85c7c7 Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Wed, 6 Nov 2024 22:05:27 +0800 Subject: [PATCH 216/448] Added new daily quests: - Singed Fur Their Own Good --- .../1236_Singed Fur Their Own Good.json | 118 ++++++++++++++++++ 1 file changed, 118 insertions(+) create mode 100644 QuestPaths/2.x - A Realm Reborn/Allied Societies/Amalj'aa/Dailies/1236_Singed Fur Their Own Good.json diff --git a/QuestPaths/2.x - A Realm Reborn/Allied Societies/Amalj'aa/Dailies/1236_Singed Fur Their Own Good.json b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Amalj'aa/Dailies/1236_Singed Fur Their Own Good.json new file mode 100644 index 000000000..22c8e69d1 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Amalj'aa/Dailies/1236_Singed Fur Their Own Good.json @@ -0,0 +1,118 @@ +{ + "$schema": "https://git.carvel.li/plogon_enjoyer/Questionable/raw/branch/temp/QuestPaths/quest-v1.json", + "Author": "plogon_enjoyer", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1005551, + "Position": { + "X": 98.924194, + "Y": 15.29447, + "Z": -349.4469 + }, + "TerritoryId": 146, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1005848, + "Position": { + "X": -101.487854, + "Y": 8.097177, + "Z": 403.28064 + }, + "TerritoryId": 146, + "InteractionType": "Interact", + "AetheryteShortcut": "Southern Thanalan - Forgotten Springs", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2003353, + "Position": { + "X": -248.0965, + "Y": 2.8533936, + "Z": 675.95935 + }, + "TerritoryId": 146, + "InteractionType": "Action", + "Action": "Fiery Breath", + "RequiredQuestVariables": [null, null, null, [1], null, null] + }, + { + "DataId": 2003354, + "Position": { + "X": -132.03638, + "Y": -1.449646, + "Z": 778.8052 + }, + "TerritoryId": 146, + "InteractionType": "Action", + "Action": "Fiery Breath", + "RequiredQuestVariables": [null, null, null, [1, 5], null, null] + }, + { + "DataId": 2003356, + "Position": { + "X": 78.446655, + "Y": 14.328186, + "Z": 589.9595 + }, + "TerritoryId": 146, + "InteractionType": "Action", + "Action": "Fiery Breath", + "RequiredQuestVariables": [null, null, null, [1, 5], null, null] + }, + { + "DataId": 2003357, + "Position": { + "X": 179.9801, + "Y": 6.6376343, + "Z": 601.15967 + }, + "TerritoryId": 146, + "InteractionType": "Action", + "Action": "Fiery Breath", + "RequiredQuestVariables": [null, null, null, [5], null, null] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": -56.11375, + "Y": 25.301596, + "Z": -391.2648 + }, + "TerritoryId": 146, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Southern Thanalan - Little Ala Mhigo", + "Mount": true + }, + { + "DataId": 1005551, + "Position": { + "X": 98.924194, + "Y": 15.29447, + "Z": -349.4469 + }, + "TerritoryId": 146, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} -- 2.45.2 From bc66dcb5c2c6b372ff7da3ed9c58903138444190 Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Wed, 6 Nov 2024 22:14:43 +0800 Subject: [PATCH 217/448] Added new story quest: - Misdelivered --- .../Kojin/Story/2976_Misdelivered.json | 105 ++++++++++++++++++ 1 file changed, 105 insertions(+) create mode 100644 QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Story/2976_Misdelivered.json diff --git a/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Story/2976_Misdelivered.json b/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Story/2976_Misdelivered.json new file mode 100644 index 000000000..d530446d3 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Story/2976_Misdelivered.json @@ -0,0 +1,105 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "plogon_enjoyer", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1024215, + "Position": { + "X": 400.07617, + "Y": -119.589325, + "Z": -247.54712 + }, + "TerritoryId": 613, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1024260, + "Position": { + "X": -131.9143, + "Y": -4.999999, + "Z": 181.75012 + }, + "TerritoryId": 628, + "InteractionType": "Interact", + "AetheryteShortcut": "Kugane", + "AethernetShortcut": ["[Kugane] Aetheryte Plaza", "[Kugane] Pier #1"] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": 246.58658, + "Y": 6.193447, + "Z": 651.3461 + }, + "TerritoryId": 613, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [8244, 8246], + "Fly": true, + "AethernetShortcut": ["[Kugane] Pier #1", "[Kugane] The Ruby Price"] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1024264, + "Position": { + "X": 246.90613, + "Y": 6.054259, + "Z": 649.2561 + }, + "TerritoryId": 613, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1024267, + "Position": { + "X": -130.57153, + "Y": -4.999999, + "Z": 183.36768 + }, + "TerritoryId": 628, + "InteractionType": "Interact", + "AetheryteShortcut": "Kugane", + "AethernetShortcut": ["[Kugane] Aetheryte Plaza", "[Kugane] Pier #1"] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1024215, + "Position": { + "X": 400.07617, + "Y": -119.589325, + "Z": -247.54712 + }, + "TerritoryId": 613, + "InteractionType": "CompleteQuest", + "Fly": true, + "AetheryteShortcut": "Ruby Sea - Tamamizu" + } + ] + } + ] +} -- 2.45.2 From 9faea025c1a746d94e6904c040a6536c4304e76e Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Wed, 6 Nov 2024 22:15:42 +0800 Subject: [PATCH 218/448] Added new daily quests: - Forever Blowing Bubbles - No, Not the Boo Box - Pleasure Doing Business - You Blow It Up - Tentacles of Trade - The Hot-blooded Kojin --- .../Dailies/2991_Forever Blowing Bubbles.json | 74 ++++++++ .../Dailies/2992_No, Not the Boo Box.json | 135 ++++++++++++++ .../Dailies/2993_Pleasure Doing Business.json | 129 +++++++++++++ .../Kojin/Dailies/2999_You Blow It Up.json | 93 ++++++++++ .../Dailies/3000_Tentacles of Trade.json | 171 ++++++++++++++++++ .../Dailies/3001_The Hot-blooded Kojin.json | 129 +++++++++++++ 6 files changed, 731 insertions(+) create mode 100644 QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2991_Forever Blowing Bubbles.json create mode 100644 QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2992_No, Not the Boo Box.json create mode 100644 QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2993_Pleasure Doing Business.json create mode 100644 QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2999_You Blow It Up.json create mode 100644 QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/3000_Tentacles of Trade.json create mode 100644 QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/3001_The Hot-blooded Kojin.json diff --git a/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2991_Forever Blowing Bubbles.json b/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2991_Forever Blowing Bubbles.json new file mode 100644 index 000000000..939a5b7a3 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2991_Forever Blowing Bubbles.json @@ -0,0 +1,74 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "plogon_enjoyer", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1024217, + "Position": { + "X": 394.39978, + "Y": -119.58932, + "Z": -232.28815 + }, + "TerritoryId": 613, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": 314.92435, + "Y": -78.61959, + "Z": -226.5322 + }, + "TerritoryId": 613, + "InteractionType": "WalkTo", + "RestartNavigationIfCancelled": false, + "Fly": true + }, + { + "DataId": 1024307, + "Position": { + "X": 29.617676, + "Y": -86.167725, + "Z": -26.962769 + }, + "TerritoryId": 613, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": 392.59683, + "Y": -119.589325, + "Z": -234.30063 + }, + "TerritoryId": 613, + "InteractionType": "WalkTo", + "Fly": true, + "AetheryteShortcut": "Ruby Sea - Tamamizu" + }, + { + "DataId": 1024217, + "Position": { + "X": 394.39978, + "Y": -119.58932, + "Z": -232.28815 + }, + "TerritoryId": 613, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2992_No, Not the Boo Box.json b/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2992_No, Not the Boo Box.json new file mode 100644 index 000000000..117a1f27a --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2992_No, Not the Boo Box.json @@ -0,0 +1,135 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "plogon_enjoyer", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1024217, + "Position": { + "X": 394.39978, + "Y": -119.58932, + "Z": -232.28815 + }, + "TerritoryId": 613, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "TerritoryId": 613, + "InteractionType": "None", + "AetheryteShortcut": "Ruby Sea - Onokoro" + }, + { + "DataId": 2009114, + "Position": { + "X": 558.5259, + "Y": -0.015319824, + "Z": -516.92993 + }, + "TerritoryId": 613, + "InteractionType": "Interact", + "Fly": true, + "RequiredQuestVariables": [null, null, null, null, [1, 2], null] + }, + { + "DataId": 2009116, + "Position": { + "X": 558.5259, + "Y": -0.015319824, + "Z": -516.92993 + }, + "TerritoryId": 613, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [8241], + "Fly": true, + "RequiredQuestVariables": [null, null, null, null, [3, 4, 5], null] + }, + { + "DataId": 2009113, + "Position": { + "X": 633.1731, + "Y": -0.015319824, + "Z": -497.79507 + }, + "TerritoryId": 613, + "InteractionType": "Interact", + "Fly": true, + "RequiredQuestVariables": [null, null, null, null, [18, 20], null] + }, + { + "DataId": 2009111, + "Position": { + "X": 633.1731, + "Y": -0.015319824, + "Z": -497.79507 + }, + "TerritoryId": 613, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [8241], + "Fly": true, + "RequiredQuestVariables": [null, null, null, null, [17, 19, 21], null] + }, + { + "DataId": 2009110, + "Position": { + "X": 694.08704, + "Y": -0.015319824, + "Z": -611.017 + }, + "TerritoryId": 613, + "InteractionType": "Interact", + "Fly": true, + "RequiredQuestVariables": [null, null, null, null, [33, 36, 37], null] + }, + { + "DataId": 2009117, + "Position": { + "X": 694.08704, + "Y": -0.015319824, + "Z": -611.017 + }, + "TerritoryId": 613, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [8241], + "Fly": true, + "RequiredQuestVariables": [null, null, null, null, [34, 35], null] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": 392.59683, + "Y": -119.589325, + "Z": -234.30063 + }, + "TerritoryId": 613, + "InteractionType": "WalkTo", + "Fly": true, + "AetheryteShortcut": "Ruby Sea - Tamamizu" + }, + { + "DataId": 1024217, + "Position": { + "X": 394.39978, + "Y": -119.58932, + "Z": -232.28815 + }, + "TerritoryId": 613, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2993_Pleasure Doing Business.json b/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2993_Pleasure Doing Business.json new file mode 100644 index 000000000..89a2ba9ed --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2993_Pleasure Doing Business.json @@ -0,0 +1,129 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "plogon_enjoyer", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1024217, + "Position": { + "X": 394.39978, + "Y": -119.58932, + "Z": -232.28815 + }, + "TerritoryId": 613, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "TerritoryId": 613, + "InteractionType": "None", + "AetheryteShortcut": "Ruby Sea - Onokoro" + }, + { + "DataId": 1024310, + "Position": { + "X": -795.0103, + "Y": 21.373795, + "Z": -466.20892 + }, + "TerritoryId": 613, + "InteractionType": "Interact", + "Fly": true, + "RequiredQuestVariables": [null, null, null, null, [17], null] + }, + { + "DataId": 1024311, + "Position": { + "X": -750.39294, + "Y": 1.6679686, + "Z": -479.33167 + }, + "TerritoryId": 613, + "InteractionType": "Interact", + "Fly": true, + "RequiredQuestVariables": [null, null, null, null, [18, 33, 34], null] + }, + { + "DataId": 1024312, + "Position": { + "X": -792.08057, + "Y": 8.039127, + "Z": -444.419 + }, + "TerritoryId": 613, + "InteractionType": "Interact", + "Fly": true, + "RequiredQuestVariables": [null, null, null, null, [17, 18], null] + }, + { + "DataId": 1024313, + "Position": { + "X": -764.12604, + "Y": 4.763445, + "Z": -441.51984 + }, + "TerritoryId": 613, + "InteractionType": "Interact", + "Fly": true, + "RequiredQuestVariables": [null, null, null, null, [33, 34], null] + }, + { + "DataId": 1024314, + "Position": { + "X": -784.48157, + "Y": 7.7091823, + "Z": -456.9925 + }, + "TerritoryId": 613, + "InteractionType": "Interact", + "Fly": true, + "RequiredQuestVariables": [null, null, null, null, [17, 33], null] + }, + { + "DataId": 1024315, + "Position": { + "X": -797.4823, + "Y": 8.045045, + "Z": -417.56317 + }, + "TerritoryId": 613, + "InteractionType": "Interact", + "Fly": true, + "RequiredQuestVariables": [null, null, null, null, [18, 34], null] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": 392.59683, + "Y": -119.589325, + "Z": -234.30063 + }, + "TerritoryId": 613, + "InteractionType": "WalkTo", + "Fly": true, + "AetheryteShortcut": "Ruby Sea - Tamamizu" + }, + { + "DataId": 1024217, + "Position": { + "X": 394.39978, + "Y": -119.58932, + "Z": -232.28815 + }, + "TerritoryId": 613, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2999_You Blow It Up.json b/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2999_You Blow It Up.json new file mode 100644 index 000000000..c2a522423 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2999_You Blow It Up.json @@ -0,0 +1,93 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "plogon_enjoyer", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1024217, + "Position": { + "X": 394.39978, + "Y": -119.58932, + "Z": -232.28815 + }, + "TerritoryId": 613, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "TerritoryId": 613, + "InteractionType": "None", + "AetheryteShortcut": "Ruby Sea - Onokoro" + }, + { + "Position": { + "X": -848.8846, + "Y": 36.0507, + "Z": 300.73306 + }, + "TerritoryId": 613, + "InteractionType": "UseItem", + "ItemId": 2002422, + "GroundTarget": true, + "Fly": true + }, + { + "Position": { + "X": -842.2923, + "Y": 36.053864, + "Z": 319.94763 + }, + "TerritoryId": 613, + "InteractionType": "UseItem", + "ItemId": 2002422, + "GroundTarget": true, + "Fly": true + }, + { + "Position": { + "X": -873.57074, + "Y": 36.01944, + "Z": 318.8049 + }, + "TerritoryId": 613, + "InteractionType": "UseItem", + "ItemId": 2002422, + "GroundTarget": true, + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": 391.50903, + "Y": -119.58932, + "Z": -236.18898 + }, + "TerritoryId": 613, + "InteractionType": "WalkTo", + "Fly": true, + "AetheryteShortcut": "Ruby Sea - Tamamizu" + }, + { + "DataId": 1024217, + "Position": { + "X": 394.39978, + "Y": -119.58932, + "Z": -232.28815 + }, + "TerritoryId": 613, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/3000_Tentacles of Trade.json b/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/3000_Tentacles of Trade.json new file mode 100644 index 000000000..d2aab0bbb --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/3000_Tentacles of Trade.json @@ -0,0 +1,171 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "plogon_enjoyer", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1024217, + "Position": { + "X": 394.39978, + "Y": -119.58932, + "Z": -232.28815 + }, + "TerritoryId": 613, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": 317.37, + "Y": -83.39401, + "Z": -227.2903 + }, + "TerritoryId": 613, + "InteractionType": "WalkTo", + "Fly": true, + "RestartNavigationIfCancelled": false + }, + { + "DataId": 2009216, + "Position": { + "X": -154.40613, + "Y": -179.3393, + "Z": 187.97583 + }, + "TerritoryId": 613, + "InteractionType": "Interact", + "RequiredQuestVariables": [null, null, [2], null, null, null], + "Fly": true + }, + { + "DataId": 2009217, + "Position": { + "X": -245.80762, + "Y": -194.50684, + "Z": 219.98926 + }, + "TerritoryId": 613, + "InteractionType": "Interact", + "RequiredQuestVariables": [null, null, [2], null, null, null], + "Fly": true + }, + { + "DataId": 2009218, + "Position": { + "X": -162.8291, + "Y": -192.52313, + "Z": 255.6344 + }, + "TerritoryId": 613, + "InteractionType": "Interact", + "RequiredQuestVariables": [null, null, [3], null, null, null], + "Fly": true + }, + { + "DataId": 2009146, + "Position": { + "X": -154.40613, + "Y": -179.3393, + "Z": 187.97583 + }, + "TerritoryId": 613, + "InteractionType": "Interact", + "RequiredQuestVariables": [null, null, [1], null, null, null], + "Fly": true + }, + { + "DataId": 2009147, + "Position": { + "X": -154.40613, + "Y": -179.3393, + "Z": 187.97583 + }, + "TerritoryId": 613, + "InteractionType": "Interact", + "RequiredQuestVariables": [null, null, [3], null, null, null], + "Fly": true + }, + { + "DataId": 2009148, + "Position": { + "X": -245.80762, + "Y": -194.50684, + "Z": 219.98926 + }, + "TerritoryId": 613, + "InteractionType": "Interact", + "RequiredQuestVariables": [null, null, [3], null, null, null], + "Fly": true + }, + { + "DataId": 2009149, + "Position": { + "X": -245.80762, + "Y": -194.50684, + "Z": 219.98926 + }, + "TerritoryId": 613, + "InteractionType": "Interact", + "RequiredQuestVariables": [null, null, [1], null, null, null], + "Fly": true + }, + { + "DataId": 2009150, + "Position": { + "X": -162.8291, + "Y": -192.52313, + "Z": 255.6344 + }, + "TerritoryId": 613, + "InteractionType": "Interact", + "RequiredQuestVariables": [null, null, [2], null, null, null], + "Fly": true + }, + { + "DataId": 2009151, + "Position": { + "X": -162.8291, + "Y": -192.52313, + "Z": 255.6344 + }, + "TerritoryId": 613, + "InteractionType": "Interact", + "RequiredQuestVariables": [null, null, [1], null, null, null], + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": 392.55026, + "Y": -119.58932, + "Z": -234.19606 + }, + "TerritoryId": 613, + "InteractionType": "WalkTo", + "Fly": true, + "AetheryteShortcut": "Ruby Sea - Tamamizu" + }, + { + "DataId": 1024217, + "Position": { + "X": 394.39978, + "Y": -119.58932, + "Z": -232.28815 + }, + "TerritoryId": 613, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/3001_The Hot-blooded Kojin.json b/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/3001_The Hot-blooded Kojin.json new file mode 100644 index 000000000..569d73bed --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/3001_The Hot-blooded Kojin.json @@ -0,0 +1,129 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "plogon_enjoyer", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1024217, + "Position": { + "X": 394.39978, + "Y": -119.58932, + "Z": -232.28815 + }, + "TerritoryId": 613, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "TerritoryId": 613, + "InteractionType": "None", + "AetheryteShortcut": "Ruby Sea - Onokoro" + }, + { + "Position": { + "X": -727.74854, + "Y": 4.2885633, + "Z": 188.58618 + }, + "TerritoryId": 613, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [8245, 8246], + "RequiredQuestVariables": [null, null, [16], null, null, null], + "Fly": true + }, + { + "DataId": 1024320, + "Position": { + "X": -727.74854, + "Y": 4.2885633, + "Z": 188.58618 + }, + "TerritoryId": 613, + "InteractionType": "Interact", + "RequiredQuestVariables": [null, null, [16], null, null, null] + }, + { + "Position": { + "X": -869.9321, + "Y": 36.052956, + "Z": 280.29297 + }, + "TerritoryId": 613, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [8247, 8248, 8249], + "RequiredQuestVariables": [null, null, [32], null, null, null], + "Fly": true + }, + { + "DataId": 1024322, + "Position": { + "X": -869.9321, + "Y": 36.052956, + "Z": 280.29297 + }, + "TerritoryId": 613, + "InteractionType": "Interact", + "RequiredQuestVariables": [null, null, [32], null, null, null] + }, + { + "Position": { + "X": -607.43207, + "Y": 7.033699, + "Z": 184.71848 + }, + "TerritoryId": 613, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [8244, 8246], + "RequiredQuestVariables": [null, null, [48], null, null, null], + "Fly": true + }, + { + "DataId": 1024318, + "Position": { + "X": -607.7821, + "Y": 7.029549, + "Z": 184.83252 + }, + "TerritoryId": 613, + "InteractionType": "Interact", + "RequiredQuestVariables": [null, null, [48], null, null, null] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": 392.55026, + "Y": -119.58932, + "Z": -234.19606 + }, + "TerritoryId": 613, + "InteractionType": "WalkTo", + "Fly": true, + "AetheryteShortcut": "Ruby Sea - Tamamizu" + }, + { + "DataId": 1024217, + "Position": { + "X": 394.39978, + "Y": -119.58932, + "Z": -232.28815 + }, + "TerritoryId": 613, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} -- 2.45.2 From 56cd32b0febd953125b439d7888221622da5bab9 Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Wed, 6 Nov 2024 23:43:48 +0800 Subject: [PATCH 219/448] Added new daily quests: - Bird Watching - Comb and Get It - Gastornis Groove - The Cat's Meow - Easy as Paissa --- .../Vanu Vanu/Dailies/2179_Bird Watching.json | 104 +++++++++++++++++ .../Dailies/2180_Comb and Get It.json | 102 ++++++++++++++++ .../Dailies/2194_Gastornis Groove.json | 93 +++++++++++++++ .../Dailies/2195_The Cat's Meow.json | 109 ++++++++++++++++++ .../Dailies/2196_Easy as Paissa.json | 86 ++++++++++++++ 5 files changed, 494 insertions(+) create mode 100644 QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2179_Bird Watching.json create mode 100644 QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2180_Comb and Get It.json create mode 100644 QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2194_Gastornis Groove.json create mode 100644 QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2195_The Cat's Meow.json create mode 100644 QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2196_Easy as Paissa.json diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2179_Bird Watching.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2179_Bird Watching.json new file mode 100644 index 000000000..a376c0107 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2179_Bird Watching.json @@ -0,0 +1,104 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "plogon_enjoyer", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1016089, + "Position": { + "X": -799.46594, + "Y": -133.2695, + "Z": -404.1352 + }, + "TerritoryId": 401, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1012057, + "Position": { + "X": -599.0845, + "Y": -122.5, + "Z": 559.50244 + }, + "TerritoryId": 401, + "InteractionType": "Interact", + "Fly": true, + "AetheryteShortcut": "The Sea of Clouds - Camp Cloudtop" + }, + { + "DataId": 1012055, + "Position": { + "X": -656.76355, + "Y": -117.32357, + "Z": 492.78992 + }, + "TerritoryId": 401, + "InteractionType": "Interact", + "Fly": true + }, + { + "DataId": 1016215, + "Position": { + "X": -279.71313, + "Y": -156.87129, + "Z": 766.9946 + }, + "TerritoryId": 401, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2006702, + "Position": { + "X": 270.8933, + "Y": -114.21387, + "Z": 395.2544 + }, + "TerritoryId": 401, + "InteractionType": "Interact", + "Fly": true + }, + { + "DataId": 2006703, + "Position": { + "X": 504.1123, + "Y": -101.335205, + "Z": 360.58594 + }, + "TerritoryId": 401, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1016089, + "Position": { + "X": -799.46594, + "Y": -133.2695, + "Z": -404.1352 + }, + "TerritoryId": 401, + "InteractionType": "CompleteQuest", + "Fly": true, + "AetheryteShortcut": "The Sea of Clouds - Ok' Zundu" + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2180_Comb and Get It.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2180_Comb and Get It.json new file mode 100644 index 000000000..b97fd2b03 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2180_Comb and Get It.json @@ -0,0 +1,102 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "plogon_enjoyer", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1016089, + "Position": { + "X": -799.46594, + "Y": -133.2695, + "Z": -404.1352 + }, + "TerritoryId": 401, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2006667, + "Position": { + "X": -792.59937, + "Y": -58.365784, + "Z": 188.06738 + }, + "TerritoryId": 401, + "InteractionType": "Interact", + "Fly": true, + "RequiredQuestVariables": [null, null, [16], null, null, null] + }, + { + "DataId": 2006761, + "Position": { + "X": -759.4568, + "Y": -61.905884, + "Z": 140.21509 + }, + "TerritoryId": 401, + "InteractionType": "Interact", + "Fly": true, + "RequiredQuestVariables": [null, null, [32], null, null, null] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2006666, + "Position": { + "X": -627.863, + "Y": -59.372925, + "Z": -162.12714 + }, + "TerritoryId": 401, + "InteractionType": "Combat", + "EnemySpawnType": "AfterItemUse", + "ItemId": 2001941, + "KillEnemyDataIds": [5238], + "Fly": true, + "RequiredQuestVariables": [null, [1], null, null, null, null] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1012068, + "Position": { + "X": -597.0398, + "Y": -51.05185, + "Z": -387.0451 + }, + "TerritoryId": 401, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1016089, + "Position": { + "X": -799.46594, + "Y": -133.2695, + "Z": -404.1352 + }, + "TerritoryId": 401, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2194_Gastornis Groove.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2194_Gastornis Groove.json new file mode 100644 index 000000000..b4f3da2d3 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2194_Gastornis Groove.json @@ -0,0 +1,93 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "plogon_enjoyer", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1016089, + "Position": { + "X": -799.46594, + "Y": -133.2695, + "Z": -404.1352 + }, + "TerritoryId": 401, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1016093, + "Position": { + "X": -776.0281, + "Y": -133.35559, + "Z": -414.32825 + }, + "TerritoryId": 401, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2006693, + "Position": { + "X": -420.8286, + "Y": -185.8396, + "Z": 705.745 + }, + "TerritoryId": 401, + "InteractionType": "Interact", + "Fly": true, + "AetheryteShortcut": "The Sea of Clouds - Camp Cloudtop" + }, + { + "DataId": 2006692, + "Position": { + "X": -300.49597, + "Y": -192.37054, + "Z": 638.5442 + }, + "TerritoryId": 401, + "InteractionType": "Interact", + "Fly": true + }, + { + "DataId": 2006691, + "Position": { + "X": -244.73944, + "Y": -184.92413, + "Z": 687.4342 + }, + "TerritoryId": 401, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1016093, + "Position": { + "X": -776.0281, + "Y": -133.35559, + "Z": -414.32825 + }, + "TerritoryId": 401, + "InteractionType": "CompleteQuest", + "Fly": true, + "AetheryteShortcut": "The Sea of Clouds - Ok' Zundu" + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2195_The Cat's Meow.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2195_The Cat's Meow.json new file mode 100644 index 000000000..11808e110 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2195_The Cat's Meow.json @@ -0,0 +1,109 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "plogon_enjoyer", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1016089, + "Position": { + "X": -799.46594, + "Y": -133.2695, + "Z": -404.1352 + }, + "TerritoryId": 401, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1016088, + "Position": { + "X": -818.143, + "Y": -129.93259, + "Z": -414.02307 + }, + "TerritoryId": 401, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1011952, + "Position": { + "X": -277.63788, + "Y": -184.59735, + "Z": 741.60376 + }, + "TerritoryId": 401, + "InteractionType": "Interact", + "Fly": true, + "AetheryteShortcut": "The Sea of Clouds - Camp Cloudtop" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1016385, + "Position": { + "X": -519.646, + "Y": -152.47815, + "Z": 280.38452 + }, + "TerritoryId": 401, + "InteractionType": "Interact", + "Fly": true + }, + { + "DataId": 1016377, + "Position": { + "X": 272.7854, + "Y": -114.24131, + "Z": 387.6859 + }, + "TerritoryId": 401, + "InteractionType": "Interact", + "Fly": true + }, + { + "DataId": 1016376, + "Position": { + "X": 702.90686, + "Y": -126.03205, + "Z": 392.04993 + }, + "TerritoryId": 401, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1016088, + "Position": { + "X": -818.143, + "Y": -129.93259, + "Z": -414.02307 + }, + "TerritoryId": 401, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "The Sea of Clouds - Ok' Zundu", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2196_Easy as Paissa.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2196_Easy as Paissa.json new file mode 100644 index 000000000..5a4d3f28b --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2196_Easy as Paissa.json @@ -0,0 +1,86 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "plogon_enjoyer", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1016089, + "Position": { + "X": -799.46594, + "Y": -133.2695, + "Z": -404.1352 + }, + "TerritoryId": 401, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2006694, + "Position": { + "X": -28.030884, + "Y": -136.98022, + "Z": 454.94763 + }, + "TerritoryId": 401, + "InteractionType": "Interact", + "Fly": true, + "AetheryteShortcut": "The Sea of Clouds - Camp Cloudtop" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2006699, + "Position": { + "X": -15.182739, + "Y": -136.98022, + "Z": 458.33508 + }, + "TerritoryId": 401, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1016237, + "Position": { + "X": -28.000305, + "Y": -137.77374, + "Z": 454.94763 + }, + "TerritoryId": 401, + "InteractionType": "UseItem", + "ItemId": 2001935 + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1016089, + "Position": { + "X": -799.46594, + "Y": -133.2695, + "Z": -404.1352 + }, + "TerritoryId": 401, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "The Sea of Clouds - Ok' Zundu", + "Fly": true + } + ] + } + ] +} -- 2.45.2 From 3858adaad43b6d3d6dde9ecfb8243f1e7364d322 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Thu, 7 Nov 2024 20:56:08 +0100 Subject: [PATCH 220/448] Include quest id in `Quest: ...` line in the UI --- .../Windows/QuestComponents/ActiveQuestComponent.cs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Questionable/Windows/QuestComponents/ActiveQuestComponent.cs b/Questionable/Windows/QuestComponents/ActiveQuestComponent.cs index 34beb0907..59d1eaf2f 100644 --- a/Questionable/Windows/QuestComponents/ActiveQuestComponent.cs +++ b/Questionable/Windows/QuestComponents/ActiveQuestComponent.cs @@ -128,13 +128,13 @@ internal sealed partial class ActiveQuestComponent { using var _ = ImRaii.PushColor(ImGuiCol.Text, ImGuiColors.DalamudRed); ImGui.TextUnformatted( - $"Simulated Quest: {Shorten(currentQuest.Quest.Info.Name)} / {currentQuest.Sequence} / {currentQuest.Step}"); + $"Simulated Quest: {Shorten(currentQuest.Quest.Info.Name)} ({currentQuest.Quest.Id}) / {currentQuest.Sequence} / {currentQuest.Step}"); } else if (currentQuestType == QuestController.ECurrentQuestType.Gathering) { using var _ = ImRaii.PushColor(ImGuiCol.Text, ImGuiColors.ParsedGold); ImGui.TextUnformatted( - $"Gathering: {Shorten(currentQuest.Quest.Info.Name)} / {currentQuest.Sequence} / {currentQuest.Step}"); + $"Gathering: {Shorten(currentQuest.Quest.Info.Name)} ({currentQuest.Quest.Id}) / {currentQuest.Sequence} / {currentQuest.Step}"); } else { @@ -154,7 +154,7 @@ internal sealed partial class ActiveQuestComponent } ImGui.TextUnformatted( - $"Quest: {Shorten(startedQuest.Quest.Info.Name)} / {startedQuest.Sequence} / {startedQuest.Step}"); + $"Quest: {Shorten(startedQuest.Quest.Info.Name)} ({startedQuest.Quest.Id}) / {startedQuest.Sequence} / {startedQuest.Step}"); if (startedQuest.Quest.Root.Disabled) { @@ -177,7 +177,7 @@ internal sealed partial class ActiveQuestComponent { using var _ = ImRaii.PushColor(ImGuiCol.Text, ImGuiColors.DalamudYellow); ImGui.TextUnformatted( - $"Next Quest: {Shorten(nextQuest.Quest.Info.Name)} / {nextQuest.Sequence} / {nextQuest.Step}"); + $"Next Quest: {Shorten(nextQuest.Quest.Info.Name)} ({nextQuest.Quest.Id}) / {nextQuest.Sequence} / {nextQuest.Step}"); } } } -- 2.45.2 From 59506bc9ee404f3406cb3c483171da19e2e7c271 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Thu, 7 Nov 2024 21:48:46 +0100 Subject: [PATCH 221/448] Remove outdated TODO in 'On the Cloud' --- .../MSQ/D-Shaaloani-HeritageFound1/4930_On the Cloud.json | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/QuestPaths/7.x - Dawntrail/MSQ/D-Shaaloani-HeritageFound1/4930_On the Cloud.json b/QuestPaths/7.x - Dawntrail/MSQ/D-Shaaloani-HeritageFound1/4930_On the Cloud.json index b18b19a6c..c5feac874 100644 --- a/QuestPaths/7.x - Dawntrail/MSQ/D-Shaaloani-HeritageFound1/4930_On the Cloud.json +++ b/QuestPaths/7.x - Dawntrail/MSQ/D-Shaaloani-HeritageFound1/4930_On the Cloud.json @@ -147,8 +147,7 @@ "Z": -473.94547 }, "TerritoryId": 1191, - "InteractionType": "WalkTo", - "Comment": "TODO Verify this avoids combat" + "InteractionType": "WalkTo" }, { "DataId": 1047428, -- 2.45.2 From 1bc17832bbabea23fd227f79f708d5e796f9fcf8 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Fri, 8 Nov 2024 00:42:53 +0100 Subject: [PATCH 222/448] Kill enemies if it stops you from teleporting to an aetheryte --- Questionable/Controller/Steps/Shared/AetheryteShortcut.cs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Questionable/Controller/Steps/Shared/AetheryteShortcut.cs b/Questionable/Controller/Steps/Shared/AetheryteShortcut.cs index 7f2a8fd03..af5753334 100644 --- a/Questionable/Controller/Steps/Shared/AetheryteShortcut.cs +++ b/Questionable/Controller/Steps/Shared/AetheryteShortcut.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.IO; using System.Linq; using System.Numerics; +using Dalamud.Game.ClientState.Conditions; using Dalamud.Plugin.Services; using Microsoft.Extensions.Logging; using Questionable.Controller.Steps.Common; @@ -56,6 +57,7 @@ internal static class AetheryteShortcut QuestFunctions questFunctions, IClientState clientState, IChatGui chatGui, + ICondition condition, AetheryteData aetheryteData) : TaskExecutor { private bool _teleported; @@ -217,6 +219,8 @@ internal static class AetheryteShortcut throw new TaskException("Unable to teleport to aetheryte"); } } + + public override bool WasInterrupted() => condition[ConditionFlag.InCombat] || base.WasInterrupted(); } internal sealed record MoveAwayFromAetheryte(EAetheryteLocation TargetAetheryte) : ITask -- 2.45.2 From e3d6e571c72d24b4f3b2967d581ce79663ac916a Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sat, 9 Nov 2024 11:59:53 +0100 Subject: [PATCH 223/448] Fix 'Combat Evolved' --- .../Aether Currents/Ultima Thule/4354_Combat Evolved.json | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/QuestPaths/6.x - Endwalker/Aether Currents/Ultima Thule/4354_Combat Evolved.json b/QuestPaths/6.x - Endwalker/Aether Currents/Ultima Thule/4354_Combat Evolved.json index 5b8449c00..873ec8c12 100644 --- a/QuestPaths/6.x - Endwalker/Aether Currents/Ultima Thule/4354_Combat Evolved.json +++ b/QuestPaths/6.x - Endwalker/Aether Currents/Ultima Thule/4354_Combat Evolved.json @@ -55,7 +55,11 @@ "EnemySpawnType": "AutoOnEnterArea", "KillEnemyDataIds": [ 14044 - ] + ], + "CombatItemUse": { + "ItemId": 2003273, + "Condition": "Incapacitated" + } } ] }, -- 2.45.2 From be2491b0ac7db8ba5626e553fa5de2d13ee29bf8 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sat, 9 Nov 2024 20:15:37 +0100 Subject: [PATCH 224/448] Fix schema URL --- .../Amalj'aa/Dailies/1236_Singed Fur Their Own Good.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/QuestPaths/2.x - A Realm Reborn/Allied Societies/Amalj'aa/Dailies/1236_Singed Fur Their Own Good.json b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Amalj'aa/Dailies/1236_Singed Fur Their Own Good.json index 22c8e69d1..ebeef7cdc 100644 --- a/QuestPaths/2.x - A Realm Reborn/Allied Societies/Amalj'aa/Dailies/1236_Singed Fur Their Own Good.json +++ b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Amalj'aa/Dailies/1236_Singed Fur Their Own Good.json @@ -1,5 +1,5 @@ { - "$schema": "https://git.carvel.li/plogon_enjoyer/Questionable/raw/branch/temp/QuestPaths/quest-v1.json", + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "plogon_enjoyer", "QuestSequence": [ { -- 2.45.2 From fb45e21ebed59be82f6778cb9db7e4cceac96646 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sun, 10 Nov 2024 21:23:56 +0100 Subject: [PATCH 225/448] Add navigation waypoint for (rarely) getting stuck in 'A Knight of Alexandria' --- .../MSQ/F-Living Memory/4952_A Knight of Alexandria.json | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/QuestPaths/7.x - Dawntrail/MSQ/F-Living Memory/4952_A Knight of Alexandria.json b/QuestPaths/7.x - Dawntrail/MSQ/F-Living Memory/4952_A Knight of Alexandria.json index 9fce91709..8b984e7f7 100644 --- a/QuestPaths/7.x - Dawntrail/MSQ/F-Living Memory/4952_A Knight of Alexandria.json +++ b/QuestPaths/7.x - Dawntrail/MSQ/F-Living Memory/4952_A Knight of Alexandria.json @@ -21,6 +21,15 @@ { "Sequence": 1, "Steps": [ + { + "Position": { + "X": 392.8642, + "Y": 10.611866, + "Z": 322.41876 + }, + "TerritoryId": 1192, + "InteractionType": "WalkTo" + }, { "DataId": 1047899, "Position": { -- 2.45.2 From 165760e50ee778581fe19c3c2b378c15e91507a1 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sun, 10 Nov 2024 21:30:35 +0100 Subject: [PATCH 226/448] Add mounting to a step in 'Perplexing Puzzles, Endless Fun' --- .../Living Memory/5176_Perplexing Puzzles, Endless Fun.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/QuestPaths/7.x - Dawntrail/Aether Currents/Living Memory/5176_Perplexing Puzzles, Endless Fun.json b/QuestPaths/7.x - Dawntrail/Aether Currents/Living Memory/5176_Perplexing Puzzles, Endless Fun.json index 287286a6e..65dd80b95 100644 --- a/QuestPaths/7.x - Dawntrail/Aether Currents/Living Memory/5176_Perplexing Puzzles, Endless Fun.json +++ b/QuestPaths/7.x - Dawntrail/Aether Currents/Living Memory/5176_Perplexing Puzzles, Endless Fun.json @@ -42,7 +42,8 @@ "Z": 628.7034 }, "TerritoryId": 1192, - "InteractionType": "WalkTo" + "InteractionType": "WalkTo", + "Mount": true }, { "DataId": 2013905, -- 2.45.2 From 476e4c922faf1f2471ebcb575112c251659948b3 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Mon, 11 Nov 2024 22:05:16 +0100 Subject: [PATCH 227/448] Remove All Saints Wake from active event list --- Questionable/Windows/QuestComponents/EventInfoComponent.cs | 1 - 1 file changed, 1 deletion(-) diff --git a/Questionable/Windows/QuestComponents/EventInfoComponent.cs b/Questionable/Windows/QuestComponents/EventInfoComponent.cs index fedeb0455..d85e1f70c 100644 --- a/Questionable/Windows/QuestComponents/EventInfoComponent.cs +++ b/Questionable/Windows/QuestComponents/EventInfoComponent.cs @@ -22,7 +22,6 @@ internal sealed class EventInfoComponent [SuppressMessage("ReSharper", "CollectionNeverUpdated.Local")] private readonly List _eventQuests = [ - new("All Saints' Wake", [new(5184), new(5185)], AtDailyReset(new(2024, 11, 4))), ]; private readonly QuestData _questData; -- 2.45.2 From 63bf674e4fa4bd96a7b24f3ff8fea54ab13d3a18 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Mon, 11 Nov 2024 22:05:35 +0100 Subject: [PATCH 228/448] Add navigation waypoint to 'An Illuminating Ritual' --- .../Urqopacha/5047_An Illuminating Ritual.json | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/QuestPaths/7.x - Dawntrail/Aether Currents/Urqopacha/5047_An Illuminating Ritual.json b/QuestPaths/7.x - Dawntrail/Aether Currents/Urqopacha/5047_An Illuminating Ritual.json index f3436491a..2b5177e08 100644 --- a/QuestPaths/7.x - Dawntrail/Aether Currents/Urqopacha/5047_An Illuminating Ritual.json +++ b/QuestPaths/7.x - Dawntrail/Aether Currents/Urqopacha/5047_An Illuminating Ritual.json @@ -150,6 +150,15 @@ { "Sequence": 255, "Steps": [ + { + "Position": { + "X": 415.27682, + "Y": 122.535, + "Z": 564.56915 + }, + "TerritoryId": 1187, + "InteractionType": "WalkTo" + }, { "DataId": 1048730, "Position": { -- 2.45.2 From ea42b5b8dffae26fc7d2aea30b2ecd5738c891d5 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Mon, 11 Nov 2024 22:21:19 +0100 Subject: [PATCH 229/448] Add extra sequence + step arguments to /qst sim --- Questionable/Controller/CommandHandler.cs | 21 +++++++++++++++++-- Questionable/Controller/QuestController.cs | 12 +++++------ .../QuestComponents/ActiveQuestComponent.cs | 2 +- 3 files changed, 26 insertions(+), 9 deletions(-) diff --git a/Questionable/Controller/CommandHandler.cs b/Questionable/Controller/CommandHandler.cs index 0bb87429f..42759d998 100644 --- a/Questionable/Controller/CommandHandler.cs +++ b/Questionable/Controller/CommandHandler.cs @@ -205,7 +205,24 @@ internal sealed class CommandHandler : IDisposable { if (_questRegistry.TryGetQuest(questId, out Quest? quest)) { - _questController.SimulateQuest(quest); + byte sequenceId = 0; + int stepId = 0; + if (arguments.Length >= 2 && byte.TryParse(arguments[1], out byte parsedSequence)) + { + QuestSequence? sequence = quest.FindSequence(parsedSequence); + if (sequence != null) + { + sequenceId = (byte)sequence.Sequence; + if (arguments.Length >= 3 && int.TryParse(arguments[2], out int parsedStep)) + { + QuestStep? step = sequence.FindStep(parsedStep); + if (step != null) + stepId = parsedStep; + } + } + } + + _questController.SimulateQuest(quest, sequenceId, stepId); _chatGui.Print($"Simulating quest {questId} ({quest.Info.Name}).", MessageTag, TagColor); } else @@ -213,7 +230,7 @@ internal sealed class CommandHandler : IDisposable } else { - _questController.SimulateQuest(null); + _questController.SimulateQuest(null, 0, 0); _chatGui.Print("Cleared simulated quest.", MessageTag, TagColor); } } diff --git a/Questionable/Controller/QuestController.cs b/Questionable/Controller/QuestController.cs index 594cac80a..0fbd79fe7 100644 --- a/Questionable/Controller/QuestController.cs +++ b/Questionable/Controller/QuestController.cs @@ -509,11 +509,11 @@ internal sealed class QuestController : MiniTaskController, IDi Stop(label); } - public void SimulateQuest(Quest? quest) + public void SimulateQuest(Quest? quest, byte sequence, int step) { _logger.LogInformation("SimulateQuest: {QuestId}", quest?.Id); if (quest != null) - _simulatedQuest = new QuestProgress(quest); + _simulatedQuest = new QuestProgress(quest, sequence, step); else _simulatedQuest = null; } @@ -675,16 +675,16 @@ internal sealed class QuestController : MiniTaskController, IDi public int Step { get; private set; } public StepProgress StepProgress { get; private set; } = new(DateTime.Now); - public QuestProgress(Quest quest, byte sequence = 0) + public QuestProgress(Quest quest, byte sequence = 0, int step = 0) { Quest = quest; - SetSequence(sequence); + SetSequence(sequence, step); } - public void SetSequence(byte sequence) + public void SetSequence(byte sequence, int step = 0) { Sequence = sequence; - SetStep(0); + SetStep(step); } public void SetStep(int step) diff --git a/Questionable/Windows/QuestComponents/ActiveQuestComponent.cs b/Questionable/Windows/QuestComponents/ActiveQuestComponent.cs index 59d1eaf2f..2652685f4 100644 --- a/Questionable/Windows/QuestComponents/ActiveQuestComponent.cs +++ b/Questionable/Windows/QuestComponents/ActiveQuestComponent.cs @@ -400,7 +400,7 @@ internal sealed partial class ActiveQuestComponent ImGui.SameLine(); if (ImGui.Button("Clear sim")) { - _questController.SimulateQuest(null); + _questController.SimulateQuest(null, 0, 0); _movementController.Stop(); _questController.Stop("ClearSim"); -- 2.45.2 From 7382131246067cc2bc7ef4755653ad583380a46b Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Mon, 11 Nov 2024 22:38:20 +0100 Subject: [PATCH 230/448] Fix missing class switches for gathering from context me Should have been in cc8f326d7ea10afefcb0d5a8e7ae5dae99ba9ea1, but kinda forgot. Oops. --- .../RoslynElements/QuestStepExtensions.cs | 3 +++ .../Zhloe/S1_Zhloe Aliapoh.json | 5 +++++ .../Adkiragh/S4_Adkiragh.json | 5 +++++ .../Custom Deliveries/Kurenai/S3_Kurenai.json | 5 +++++ .../Custom Deliveries/M'naago/S2_M'naago.json | 5 +++++ .../Charlemend/S7_Charlemend.json | 5 +++++ .../Ehll Tou/S6_Ehll Tou.json | 5 +++++ .../Kai-Shirr/S5_Kai-Shirr.json | 5 +++++ .../Ameliance/S8_Ameliance.json | 5 +++++ .../Custom Deliveries/Anden/S9_Anden.json | 5 +++++ .../Margrat/S10_Margrat.json | 5 +++++ QuestPaths/quest-v1.json | 20 +++++++++++++++++ .../Converter/ExtendedClassJobConverter.cs | 1 + .../Converter/InteractionTypeConverter.cs | 1 + .../Questing/EExtendedClassJob.cs | 2 ++ .../Questing/EInteractionType.cs | 1 + Questionable.Model/Questing/QuestStep.cs | 1 + .../Controller/ContextMenuController.cs | 22 +++++++++++++------ .../Controller/Steps/Shared/SwitchClassJob.cs | 18 +++++++++++++-- Questionable/QuestionablePlugin.cs | 3 ++- 20 files changed, 112 insertions(+), 10 deletions(-) diff --git a/QuestPathGenerator/RoslynElements/QuestStepExtensions.cs b/QuestPathGenerator/RoslynElements/QuestStepExtensions.cs index ecfea639e..12b27ef4e 100644 --- a/QuestPathGenerator/RoslynElements/QuestStepExtensions.cs +++ b/QuestPathGenerator/RoslynElements/QuestStepExtensions.cs @@ -97,6 +97,9 @@ internal static class QuestStepExtensions .AsSyntaxNodeOrToken(), Assignment(nameof(QuestStep.Status), step.Status, emptyStep.Status) .AsSyntaxNodeOrToken(), + Assignment(nameof(QuestStep.TargetClass), step.TargetClass, + emptyStep.TargetClass) + .AsSyntaxNodeOrToken(), Assignment(nameof(QuestStep.EnemySpawnType), step.EnemySpawnType, emptyStep.EnemySpawnType) .AsSyntaxNodeOrToken(), diff --git a/QuestPaths/3.x - Heavensward/Custom Deliveries/Zhloe/S1_Zhloe Aliapoh.json b/QuestPaths/3.x - Heavensward/Custom Deliveries/Zhloe/S1_Zhloe Aliapoh.json index 1422190e1..87ef448e0 100644 --- a/QuestPaths/3.x - Heavensward/Custom Deliveries/Zhloe/S1_Zhloe Aliapoh.json +++ b/QuestPaths/3.x - Heavensward/Custom Deliveries/Zhloe/S1_Zhloe Aliapoh.json @@ -5,6 +5,11 @@ { "Sequence": 0, "Steps": [ + { + "TerritoryId": 478, + "InteractionType": "SwitchClass", + "TargetClass": "Blue Mage" + }, { "TerritoryId": 478, "InteractionType": "Gather", diff --git a/QuestPaths/4.x - Stormblood/Custom Deliveries/Adkiragh/S4_Adkiragh.json b/QuestPaths/4.x - Stormblood/Custom Deliveries/Adkiragh/S4_Adkiragh.json index 99762b5b2..cf54ae7c1 100644 --- a/QuestPaths/4.x - Stormblood/Custom Deliveries/Adkiragh/S4_Adkiragh.json +++ b/QuestPaths/4.x - Stormblood/Custom Deliveries/Adkiragh/S4_Adkiragh.json @@ -5,6 +5,11 @@ { "Sequence": 0, "Steps": [ + { + "TerritoryId": 478, + "InteractionType": "SwitchClass", + "TargetClass": "Blue Mage" + }, { "TerritoryId": 478, "InteractionType": "Gather", diff --git a/QuestPaths/4.x - Stormblood/Custom Deliveries/Kurenai/S3_Kurenai.json b/QuestPaths/4.x - Stormblood/Custom Deliveries/Kurenai/S3_Kurenai.json index 9b1f82dc3..887dbdd43 100644 --- a/QuestPaths/4.x - Stormblood/Custom Deliveries/Kurenai/S3_Kurenai.json +++ b/QuestPaths/4.x - Stormblood/Custom Deliveries/Kurenai/S3_Kurenai.json @@ -5,6 +5,11 @@ { "Sequence": 0, "Steps": [ + { + "TerritoryId": 613, + "InteractionType": "SwitchClass", + "TargetClass": "Blue Mage" + }, { "TerritoryId": 613, "InteractionType": "Gather", diff --git a/QuestPaths/4.x - Stormblood/Custom Deliveries/M'naago/S2_M'naago.json b/QuestPaths/4.x - Stormblood/Custom Deliveries/M'naago/S2_M'naago.json index ba9858d87..43cd2ebc0 100644 --- a/QuestPaths/4.x - Stormblood/Custom Deliveries/M'naago/S2_M'naago.json +++ b/QuestPaths/4.x - Stormblood/Custom Deliveries/M'naago/S2_M'naago.json @@ -5,6 +5,11 @@ { "Sequence": 0, "Steps": [ + { + "TerritoryId": 635, + "InteractionType": "SwitchClass", + "TargetClass": "Blue Mage" + }, { "TerritoryId": 635, "InteractionType": "Gather", diff --git a/QuestPaths/5.x - Shadowbringers/Custom Deliveries/Charlemend/S7_Charlemend.json b/QuestPaths/5.x - Shadowbringers/Custom Deliveries/Charlemend/S7_Charlemend.json index 18b2d6482..169f78bd3 100644 --- a/QuestPaths/5.x - Shadowbringers/Custom Deliveries/Charlemend/S7_Charlemend.json +++ b/QuestPaths/5.x - Shadowbringers/Custom Deliveries/Charlemend/S7_Charlemend.json @@ -5,6 +5,11 @@ { "Sequence": 0, "Steps": [ + { + "TerritoryId": 886, + "InteractionType": "SwitchClass", + "TargetClass": "Blue Mage" + }, { "TerritoryId": 886, "InteractionType": "Gather", diff --git a/QuestPaths/5.x - Shadowbringers/Custom Deliveries/Ehll Tou/S6_Ehll Tou.json b/QuestPaths/5.x - Shadowbringers/Custom Deliveries/Ehll Tou/S6_Ehll Tou.json index ec41fc8cf..adc20fb69 100644 --- a/QuestPaths/5.x - Shadowbringers/Custom Deliveries/Ehll Tou/S6_Ehll Tou.json +++ b/QuestPaths/5.x - Shadowbringers/Custom Deliveries/Ehll Tou/S6_Ehll Tou.json @@ -5,6 +5,11 @@ { "Sequence": 0, "Steps": [ + { + "TerritoryId": 886, + "InteractionType": "SwitchClass", + "TargetClass": "Blue Mage" + }, { "TerritoryId": 886, "InteractionType": "Gather", diff --git a/QuestPaths/5.x - Shadowbringers/Custom Deliveries/Kai-Shirr/S5_Kai-Shirr.json b/QuestPaths/5.x - Shadowbringers/Custom Deliveries/Kai-Shirr/S5_Kai-Shirr.json index 007020533..7e4b595dd 100644 --- a/QuestPaths/5.x - Shadowbringers/Custom Deliveries/Kai-Shirr/S5_Kai-Shirr.json +++ b/QuestPaths/5.x - Shadowbringers/Custom Deliveries/Kai-Shirr/S5_Kai-Shirr.json @@ -5,6 +5,11 @@ { "Sequence": 0, "Steps": [ + { + "TerritoryId": 820, + "InteractionType": "SwitchClass", + "TargetClass": "Blue Mage" + }, { "TerritoryId": 820, "InteractionType": "Gather", diff --git a/QuestPaths/6.x - Endwalker/Custom Deliveries/Ameliance/S8_Ameliance.json b/QuestPaths/6.x - Endwalker/Custom Deliveries/Ameliance/S8_Ameliance.json index 9cd56890f..56f16b920 100644 --- a/QuestPaths/6.x - Endwalker/Custom Deliveries/Ameliance/S8_Ameliance.json +++ b/QuestPaths/6.x - Endwalker/Custom Deliveries/Ameliance/S8_Ameliance.json @@ -5,6 +5,11 @@ { "Sequence": 0, "Steps": [ + { + "TerritoryId": 962, + "InteractionType": "SwitchClass", + "TargetClass": "Blue Mage" + }, { "TerritoryId": 962, "InteractionType": "Gather", diff --git a/QuestPaths/6.x - Endwalker/Custom Deliveries/Anden/S9_Anden.json b/QuestPaths/6.x - Endwalker/Custom Deliveries/Anden/S9_Anden.json index b36972b05..8f0e18313 100644 --- a/QuestPaths/6.x - Endwalker/Custom Deliveries/Anden/S9_Anden.json +++ b/QuestPaths/6.x - Endwalker/Custom Deliveries/Anden/S9_Anden.json @@ -5,6 +5,11 @@ { "Sequence": 0, "Steps": [ + { + "TerritoryId": 816, + "InteractionType": "SwitchClass", + "TargetClass": "Blue Mage" + }, { "TerritoryId": 816, "InteractionType": "Gather", diff --git a/QuestPaths/6.x - Endwalker/Custom Deliveries/Margrat/S10_Margrat.json b/QuestPaths/6.x - Endwalker/Custom Deliveries/Margrat/S10_Margrat.json index e4d27b17c..6bd9ee4a5 100644 --- a/QuestPaths/6.x - Endwalker/Custom Deliveries/Margrat/S10_Margrat.json +++ b/QuestPaths/6.x - Endwalker/Custom Deliveries/Margrat/S10_Margrat.json @@ -5,6 +5,11 @@ { "Sequence": 0, "Steps": [ + { + "TerritoryId": 956, + "InteractionType": "SwitchClass", + "TargetClass": "Blue Mage" + }, { "TerritoryId": 956, "InteractionType": "Gather", diff --git a/QuestPaths/quest-v1.json b/QuestPaths/quest-v1.json index 58c1d16a4..72ee63183 100644 --- a/QuestPaths/quest-v1.json +++ b/QuestPaths/quest-v1.json @@ -128,6 +128,7 @@ "Craft", "Gather", "Snipe", + "SwitchClass", "Instruction", "AcceptQuest", "CompleteQuest", @@ -1365,6 +1366,25 @@ "Comment" ] } + }, + { + "if": { + "properties": { + "InteractionType": { + "const": "SwitchClass" + } + } + }, + "then": { + "properties": { + "TargetClass": { + "$ref": "https://git.carvel.li/liza/Questionable/raw/branch/master/Questionable.Model/common-schema.json#/$defs/ClassJob" + } + }, + "required": [ + "TargetClass" + ] + } } ] } diff --git a/Questionable.Model/Questing/Converter/ExtendedClassJobConverter.cs b/Questionable.Model/Questing/Converter/ExtendedClassJobConverter.cs index c92ca0bc6..2eaffe5e9 100644 --- a/Questionable.Model/Questing/Converter/ExtendedClassJobConverter.cs +++ b/Questionable.Model/Questing/Converter/ExtendedClassJobConverter.cs @@ -7,6 +7,7 @@ internal sealed class ExtendedClassJobConverter() : EnumConverter Values = new() { + { EExtendedClassJob.None, "None" }, { EExtendedClassJob.Gladiator, "Gladiator" }, { EExtendedClassJob.Pugilist, "Pugilist" }, { EExtendedClassJob.Marauder, "Marauder" }, diff --git a/Questionable.Model/Questing/Converter/InteractionTypeConverter.cs b/Questionable.Model/Questing/Converter/InteractionTypeConverter.cs index b8367ebbb..9de1ad0ef 100644 --- a/Questionable.Model/Questing/Converter/InteractionTypeConverter.cs +++ b/Questionable.Model/Questing/Converter/InteractionTypeConverter.cs @@ -31,6 +31,7 @@ public sealed class InteractionTypeConverter() : EnumConverter { EInteractionType.Craft, "Craft" }, { EInteractionType.Gather, "Gather" }, { EInteractionType.Snipe, "Snipe" }, + { EInteractionType.SwitchClass, "SwitchClass" }, { EInteractionType.Instruction, "Instruction" }, { EInteractionType.AcceptQuest, "AcceptQuest" }, { EInteractionType.CompleteQuest, "CompleteQuest" }, diff --git a/Questionable.Model/Questing/EExtendedClassJob.cs b/Questionable.Model/Questing/EExtendedClassJob.cs index 79c771d11..e0f0d3fe9 100644 --- a/Questionable.Model/Questing/EExtendedClassJob.cs +++ b/Questionable.Model/Questing/EExtendedClassJob.cs @@ -6,6 +6,7 @@ namespace Questionable.Model.Questing; [JsonConverter(typeof(ExtendedClassJobConverter))] public enum EExtendedClassJob { + None, Gladiator, Pugilist, Marauder, @@ -53,3 +54,4 @@ public enum EExtendedClassJob DoH, DoL, } + diff --git a/Questionable.Model/Questing/EInteractionType.cs b/Questionable.Model/Questing/EInteractionType.cs index 137078eba..2b9a75fc3 100644 --- a/Questionable.Model/Questing/EInteractionType.cs +++ b/Questionable.Model/Questing/EInteractionType.cs @@ -30,6 +30,7 @@ public enum EInteractionType Craft, Gather, Snipe, + SwitchClass, /// /// Needs to be manually continued. diff --git a/Questionable.Model/Questing/QuestStep.cs b/Questionable.Model/Questing/QuestStep.cs index df2b7b128..0b4a05a21 100644 --- a/Questionable.Model/Questing/QuestStep.cs +++ b/Questionable.Model/Questing/QuestStep.cs @@ -64,6 +64,7 @@ public sealed class QuestStep public ChatMessage? ChatMessage { get; set; } public EAction? Action { get; set; } public EStatus? Status { get; set; } + public EExtendedClassJob TargetClass { get; set; } = EExtendedClassJob.None; public EEnemySpawnType? EnemySpawnType { get; set; } public List KillEnemyDataIds { get; set; } = []; diff --git a/Questionable/Controller/ContextMenuController.cs b/Questionable/Controller/ContextMenuController.cs index f35e83432..c3d6c4c5d 100644 --- a/Questionable/Controller/ContextMenuController.cs +++ b/Questionable/Controller/ContextMenuController.cs @@ -71,14 +71,16 @@ internal sealed class ContextMenuController : IDisposable if (_gatheringData.TryGetCustomDeliveryNpc(itemId, out uint npcId)) { - AddContextMenuEntry(args, itemId, npcId, EClassJob.Miner, "Mine"); - AddContextMenuEntry(args, itemId, npcId, EClassJob.Botanist, "Harvest"); + AddContextMenuEntry(args, itemId, npcId, EExtendedClassJob.Miner, "Mine"); + AddContextMenuEntry(args, itemId, npcId, EExtendedClassJob.Botanist, "Harvest"); } } - private void AddContextMenuEntry(IMenuOpenedArgs args, uint itemId, uint npcId, EClassJob classJob, string verb) + private void AddContextMenuEntry(IMenuOpenedArgs args, uint itemId, uint npcId, EExtendedClassJob extendedClassJob, + string verb) { EClassJob currentClassJob = (EClassJob)_clientState.LocalPlayer!.ClassJob.Id; + EClassJob classJob = ClassJobUtils.AsIndividualJobs(extendedClassJob).Single(); if (classJob != currentClassJob && currentClassJob is EClassJob.Miner or EClassJob.Botanist) return; @@ -123,19 +125,25 @@ internal sealed class ContextMenuController : IDisposable Prefix = SeIconChar.Hyadelyn, PrefixColor = 52, Name = name, - OnClicked = _ => StartGathering(npcId, itemId, quantityToGather, collectability), + OnClicked = _ => StartGathering(npcId, itemId, quantityToGather, collectability, extendedClassJob), IsEnabled = string.IsNullOrEmpty(lockedReasonn), }); } - private void StartGathering(uint npcId, uint itemId, int quantity, ushort collectability) + private void StartGathering(uint npcId, uint itemId, int quantity, ushort collectability, + EExtendedClassJob extendedClassJob) { var info = (SatisfactionSupplyInfo)_questData.GetAllByIssuerDataId(npcId) .Single(x => x is SatisfactionSupplyInfo); if (_questRegistry.TryGetQuest(info.QuestId, out Quest? quest)) { - var step = quest.FindSequence(0)!.Steps.Single(x => x.InteractionType == EInteractionType.Gather); - step.ItemsToGather = + var sequence = quest.FindSequence(0)!; + + var switchClassStep = sequence.Steps.Single(x => x.InteractionType == EInteractionType.SwitchClass); + switchClassStep.TargetClass = extendedClassJob; + + var gatherStep = sequence.Steps.Single(x => x.InteractionType == EInteractionType.Gather); + gatherStep.ItemsToGather = [ new GatheredItem { diff --git a/Questionable/Controller/Steps/Shared/SwitchClassJob.cs b/Questionable/Controller/Steps/Shared/SwitchClassJob.cs index 37ddf1eeb..48b153c3a 100644 --- a/Questionable/Controller/Steps/Shared/SwitchClassJob.cs +++ b/Questionable/Controller/Steps/Shared/SwitchClassJob.cs @@ -1,13 +1,27 @@ -using Dalamud.Plugin.Services; -using FFXIVClientStructs.FFXIV.Client.Game; +using System.Linq; +using Dalamud.Plugin.Services; using FFXIVClientStructs.FFXIV.Client.UI.Misc; using LLib.GameData; using Questionable.Controller.Steps.Common; +using Questionable.Data; +using Questionable.Model; +using Questionable.Model.Questing; namespace Questionable.Controller.Steps.Shared; internal static class SwitchClassJob { + internal sealed class Factory : SimpleTaskFactory + { + public override ITask? CreateTask(Quest quest, QuestSequence sequence, QuestStep step) + { + if (step.InteractionType != EInteractionType.SwitchClass) + return null; + + EClassJob classJob = ClassJobUtils.AsIndividualJobs(step.TargetClass).Single(); + return new Task(classJob); + } + } internal sealed record Task(EClassJob ClassJob) : ITask { public override string ToString() => $"SwitchJob({ClassJob})"; diff --git a/Questionable/QuestionablePlugin.cs b/Questionable/QuestionablePlugin.cs index 9289b1206..ea0eefca4 100644 --- a/Questionable/QuestionablePlugin.cs +++ b/Questionable/QuestionablePlugin.cs @@ -137,7 +137,8 @@ public sealed class QuestionablePlugin : IDalamudPlugin .AddTaskExecutor(); serviceCollection.AddTaskExecutor(); serviceCollection.AddTaskExecutor(); - serviceCollection.AddTaskExecutor(); + serviceCollection.AddTaskFactoryAndExecutor(); serviceCollection.AddTaskExecutor(); serviceCollection.AddTaskExecutor(); -- 2.45.2 From be1e4ed2e621192653cc76bb3fdfc3574c12cbcd Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sat, 16 Nov 2024 21:53:37 +0100 Subject: [PATCH 231/448] partial API 11 updates --- .../GatheringPathRenderer.csproj | 2 +- LLib | 2 +- .../Controller/CombatModules/ItemUseModule.cs | 2 +- .../RotationSolverRebornModule.cs | 2 +- Questionable/Controller/CommandHandler.cs | 5 +- .../Controller/ContextMenuController.cs | 2 +- .../GameUi/InteractionUiController.cs | 16 ++--- .../Controller/GatheringController.cs | 2 +- Questionable/Controller/MiniTaskController.cs | 2 +- Questionable/Controller/QuestController.cs | 6 -- .../Controller/Steps/Gathering/DoGather.cs | 2 +- .../Steps/Gathering/DoGatherCollectable.cs | 2 +- .../Steps/Interactions/EquipItem.cs | 17 ++--- .../Steps/Interactions/EquipRecommended.cs | 2 +- Questionable/Controller/Steps/Shared/Craft.cs | 38 +++++------ .../Controller/Steps/Shared/Gather.cs | 2 +- .../Controller/Steps/Shared/MoveTo.cs | 3 +- .../Controller/Steps/Shared/SkipCondition.cs | 2 +- .../Controller/Steps/Shared/SwitchClassJob.cs | 2 +- Questionable/Data/AetherCurrentData.cs | 10 +-- Questionable/Data/AetheryteData.cs | 16 ++--- Questionable/Data/GatheringData.cs | 35 +++++----- Questionable/Data/JournalData.cs | 35 ++++++---- Questionable/Data/QuestData.cs | 46 ++++++------- Questionable/Data/Sheets/QuestEx.cs | 45 +++++++++++++ Questionable/Data/TerritoryData.cs | 26 +++---- Questionable/Functions/AetheryteFunctions.cs | 11 ++- Questionable/Functions/ChatFunctions.cs | 14 ++-- Questionable/Functions/ExcelFunctions.cs | 39 +++++------ Questionable/Functions/GameFunctions.cs | 26 +++---- Questionable/Functions/QuestFunctions.cs | 12 ++-- Questionable/Model/LeveInfo.cs | 12 ++-- Questionable/Model/QuestInfo.cs | 37 +++++----- Questionable/Model/QuestInfoUtils.cs | 15 +++-- Questionable/Model/SatisfactionSupplyInfo.cs | 10 +-- Questionable/Questionable.csproj | 2 +- Questionable/Windows/ConfigWindow.cs | 5 +- .../GatheringJournalComponent.cs | 67 ++++++++++--------- .../QuestJournalComponent.cs | 2 +- Questionable/Windows/QuestWindow.cs | 2 +- vendor/ECommons | 2 +- 41 files changed, 314 insertions(+), 266 deletions(-) create mode 100644 Questionable/Data/Sheets/QuestEx.cs diff --git a/GatheringPathRenderer/GatheringPathRenderer.csproj b/GatheringPathRenderer/GatheringPathRenderer.csproj index fc157f207..6009a5183 100644 --- a/GatheringPathRenderer/GatheringPathRenderer.csproj +++ b/GatheringPathRenderer/GatheringPathRenderer.csproj @@ -1,4 +1,4 @@ - + diff --git a/LLib b/LLib index fde09c705..538329a1e 160000 --- a/LLib +++ b/LLib @@ -1 +1 @@ -Subproject commit fde09c705b648f03c287814191a554f0a4b92cc4 +Subproject commit 538329a1e80acbcd09e28bd6dd459c35b5563c0a diff --git a/Questionable/Controller/CombatModules/ItemUseModule.cs b/Questionable/Controller/CombatModules/ItemUseModule.cs index 91b4ca1dd..ec9adfa12 100644 --- a/Questionable/Controller/CombatModules/ItemUseModule.cs +++ b/Questionable/Controller/CombatModules/ItemUseModule.cs @@ -142,7 +142,7 @@ internal sealed class ItemUseModule : ICombatModule { BattleChara* battleChara = (BattleChara*)gameObject.Address; if (_combatData.CombatItemUse.Condition == ECombatItemUseCondition.Incapacitated) - return (battleChara->Flags2 & 128u) != 0; + return (battleChara->CombatTagType & 128u) != 0; // FIXME 7.1 if (_combatData.CombatItemUse.Condition == ECombatItemUseCondition.HealthPercent) return (100f * battleChara->Health / battleChara->MaxHealth) < _combatData.CombatItemUse.Value; diff --git a/Questionable/Controller/CombatModules/RotationSolverRebornModule.cs b/Questionable/Controller/CombatModules/RotationSolverRebornModule.cs index a0b43b2fd..581e07a96 100644 --- a/Questionable/Controller/CombatModules/RotationSolverRebornModule.cs +++ b/Questionable/Controller/CombatModules/RotationSolverRebornModule.cs @@ -82,7 +82,7 @@ internal sealed class RotationSolverRebornModule : ICombatModule, IDisposable float hitboxOffset = player.HitboxRadius + gameObject.HitboxRadius; float actualDistance = Vector3.Distance(player.Position, gameObject.Position); - float maxDistance = player.ClassJob.GameData?.Role is 3 or 4 ? 20f : 2.9f; + float maxDistance = player.ClassJob.ValueNullable?.Role is 3 or 4 ? 20f : 2.9f; if (actualDistance - hitboxOffset >= maxDistance) { if (actualDistance - hitboxOffset <= 5) diff --git a/Questionable/Controller/CommandHandler.cs b/Questionable/Controller/CommandHandler.cs index 42759d998..c6085a18d 100644 --- a/Questionable/Controller/CommandHandler.cs +++ b/Questionable/Controller/CommandHandler.cs @@ -3,11 +3,10 @@ using System.Linq; using Dalamud.Game.ClientState.Objects; using Dalamud.Game.Command; using Dalamud.Plugin.Services; -using Lumina.Excel.GeneratedSheets; +using Lumina.Excel.Sheets; using Questionable.Functions; using Questionable.Model.Questing; using Questionable.Windows; -using Questionable.Windows.QuestComponents; using Quest = Questionable.Model.Quest; namespace Questionable.Controller; @@ -240,7 +239,7 @@ internal sealed class CommandHandler : IDisposable ushort? mountId = _gameFunctions.GetMountId(); if (mountId != null) { - var row = _dataManager.GetExcelSheet()!.GetRow(mountId.Value); + var row = _dataManager.GetExcelSheet().GetRowOrDefault(mountId.Value); _chatGui.Print( $"Mount ID: {mountId}, Name: {row?.Singular}, Obtainable: {(row?.Order == -1 ? "No" : "Yes")}", MessageTag, TagColor); diff --git a/Questionable/Controller/ContextMenuController.cs b/Questionable/Controller/ContextMenuController.cs index c3d6c4c5d..fca77dd8a 100644 --- a/Questionable/Controller/ContextMenuController.cs +++ b/Questionable/Controller/ContextMenuController.cs @@ -79,7 +79,7 @@ internal sealed class ContextMenuController : IDisposable private void AddContextMenuEntry(IMenuOpenedArgs args, uint itemId, uint npcId, EExtendedClassJob extendedClassJob, string verb) { - EClassJob currentClassJob = (EClassJob)_clientState.LocalPlayer!.ClassJob.Id; + EClassJob currentClassJob = (EClassJob)_clientState.LocalPlayer!.ClassJob.RowId; EClassJob classJob = ClassJobUtils.AsIndividualJobs(extendedClassJob).Single(); if (classJob != currentClassJob && currentClassJob is EClassJob.Miner or EClassJob.Botanist) return; diff --git a/Questionable/Controller/GameUi/InteractionUiController.cs b/Questionable/Controller/GameUi/InteractionUiController.cs index 698d24dda..797093dd6 100644 --- a/Questionable/Controller/GameUi/InteractionUiController.cs +++ b/Questionable/Controller/GameUi/InteractionUiController.cs @@ -16,7 +16,7 @@ using FFXIVClientStructs.FFXIV.Component.GUI; using LLib; using LLib.GameData; using LLib.GameUI; -using Lumina.Excel.GeneratedSheets; +using Lumina.Excel.Sheets; using Microsoft.Extensions.Logging; using Questionable.Controller.Steps.Interactions; using Questionable.Data; @@ -90,7 +90,7 @@ internal sealed class InteractionUiController : IDisposable _shopController = shopController; _logger = logger; - _returnRegex = _dataManager.GetExcelSheet()!.GetRow(196)!.GetRegex(addon => addon.Text, pluginLog)!; + _returnRegex = _dataManager.GetExcelSheet().GetRow(196).GetRegex(addon => addon.Text, pluginLog)!; _addonLifecycle.RegisterListener(AddonEvent.PostSetup, "SelectString", SelectStringPostSetup); _addonLifecycle.RegisterListener(AddonEvent.PostSetup, "CutSceneSelectString", CutsceneSelectStringPostSetup); @@ -713,7 +713,7 @@ internal sealed class InteractionUiController : IDisposable step.InteractionType == EInteractionType.Gather) { if (_gatheringData.TryGetGatheringPointId(step.ItemsToGather[0].ItemId, - (EClassJob?)_clientState.LocalPlayer?.ClassJob.Id ?? EClassJob.Adventurer, + (EClassJob?)_clientState.LocalPlayer?.ClassJob.RowId ?? EClassJob.Adventurer, out GatheringPointId? gatheringPointId) && _gatheringPointRegistry.TryGetGatheringPoint(gatheringPointId, out GatheringRoot? root)) { @@ -757,19 +757,19 @@ internal sealed class InteractionUiController : IDisposable [NotNullWhen(true)] out string? warpText) { var warps = _dataManager.GetExcelSheet()! - .Where(x => x.RowId > 0 && x.TerritoryType.Row == targetTerritoryId); + .Where(x => x.RowId > 0 && x.TerritoryType.RowId == targetTerritoryId); foreach (var entry in warps) { - string? excelName = entry.Name?.ToString(); - string? excelQuestion = entry.Question?.ToString(); + string? excelName = entry.Name.ToString(); + string? excelQuestion = entry.Question.ToString(); - if (excelQuestion != null && GameFunctions.GameStringEquals(excelQuestion, actualPrompt)) + if (!string.IsNullOrEmpty(excelQuestion) && GameFunctions.GameStringEquals(excelQuestion, actualPrompt)) { warpId = entry.RowId; warpText = excelQuestion; return true; } - else if (excelName != null && GameFunctions.GameStringEquals(excelName, actualPrompt)) + else if (!string.IsNullOrEmpty(excelName) && GameFunctions.GameStringEquals(excelName, actualPrompt)) { warpId = entry.RowId; warpText = excelName; diff --git a/Questionable/Controller/GatheringController.cs b/Questionable/Controller/GatheringController.cs index 8c7dedd4a..bbe6d2e49 100644 --- a/Questionable/Controller/GatheringController.cs +++ b/Questionable/Controller/GatheringController.cs @@ -12,7 +12,7 @@ using FFXIVClientStructs.FFXIV.Client.Game; using FFXIVClientStructs.FFXIV.Client.Game.Event; using FFXIVClientStructs.FFXIV.Client.Game.UI; using LLib; -using Lumina.Excel.GeneratedSheets; +using Lumina.Excel.Sheets; using Microsoft.Extensions.Logging; using Questionable.Controller.Steps; using Questionable.Controller.Steps.Gathering; diff --git a/Questionable/Controller/MiniTaskController.cs b/Questionable/Controller/MiniTaskController.cs index dfa0bfc9e..068508180 100644 --- a/Questionable/Controller/MiniTaskController.cs +++ b/Questionable/Controller/MiniTaskController.cs @@ -5,7 +5,7 @@ using Dalamud.Game.ClientState.Conditions; using Dalamud.Game.Text.SeStringHandling; using Dalamud.Plugin.Services; using LLib; -using Lumina.Excel.GeneratedSheets; +using Lumina.Excel.Sheets; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; using Questionable.Controller.Steps; diff --git a/Questionable/Controller/QuestController.cs b/Questionable/Controller/QuestController.cs index 0fbd79fe7..d6ae32a8c 100644 --- a/Questionable/Controller/QuestController.cs +++ b/Questionable/Controller/QuestController.cs @@ -8,20 +8,14 @@ using Dalamud.Game.Gui.Toast; using Dalamud.Game.Text.SeStringHandling; using Dalamud.Plugin.Services; using FFXIVClientStructs.FFXIV.Client.Game; -using LLib; -using LLib.GameData; -using Lumina.Excel.GeneratedSheets; using Microsoft.Extensions.Logging; using Questionable.Controller.Steps; -using Questionable.Controller.Steps.Interactions; using Questionable.Controller.Steps.Shared; -using Questionable.Data; using Questionable.External; using Questionable.Functions; using Questionable.Model; using Questionable.Model.Questing; using Quest = Questionable.Model.Quest; -using Mount = Questionable.Controller.Steps.Common.Mount; namespace Questionable.Controller; diff --git a/Questionable/Controller/Steps/Gathering/DoGather.cs b/Questionable/Controller/Steps/Gathering/DoGather.cs index 701f85345..0f4c8c7f2 100644 --- a/Questionable/Controller/Steps/Gathering/DoGather.cs +++ b/Questionable/Controller/Steps/Gathering/DoGather.cs @@ -225,7 +225,7 @@ internal static class DoGather private EAction PickAction(EAction minerAction, EAction botanistAction) { - if ((EClassJob?)clientState.LocalPlayer?.ClassJob.Id == EClassJob.Miner) + if ((EClassJob?)clientState.LocalPlayer?.ClassJob.RowId == EClassJob.Miner) return minerAction; else return botanistAction; diff --git a/Questionable/Controller/Steps/Gathering/DoGatherCollectable.cs b/Questionable/Controller/Steps/Gathering/DoGatherCollectable.cs index 167409434..2b91f3538 100644 --- a/Questionable/Controller/Steps/Gathering/DoGatherCollectable.cs +++ b/Questionable/Controller/Steps/Gathering/DoGatherCollectable.cs @@ -193,7 +193,7 @@ internal static class DoGatherCollectable private EAction PickAction(EAction minerAction, EAction botanistAction) { - if ((EClassJob?)clientState.LocalPlayer?.ClassJob.Id == EClassJob.Miner) + if ((EClassJob?)clientState.LocalPlayer?.ClassJob.RowId == EClassJob.Miner) return minerAction; else return botanistAction; diff --git a/Questionable/Controller/Steps/Interactions/EquipItem.cs b/Questionable/Controller/Steps/Interactions/EquipItem.cs index c8159247f..f5cd4e111 100644 --- a/Questionable/Controller/Steps/Interactions/EquipItem.cs +++ b/Questionable/Controller/Steps/Interactions/EquipItem.cs @@ -5,8 +5,7 @@ using Dalamud.Game.Text.SeStringHandling; using Dalamud.Plugin.Services; using FFXIVClientStructs.FFXIV.Client.Game; using LLib; -using Lumina.Excel.GeneratedSheets; -using Microsoft.Extensions.DependencyInjection; +using Lumina.Excel.Sheets; using Microsoft.Extensions.Logging; using Questionable.Functions; using Questionable.Model.Questing; @@ -63,13 +62,13 @@ internal static class EquipItem ]; private int _attempts; - private Item _item = null!; + private Item? _item; private List _targetSlots = null!; private DateTime _continueAt = DateTime.MaxValue; protected override bool Start() { - _item = dataManager.GetExcelSheet()!.GetRow(Task.ItemId) ?? + _item = dataManager.GetExcelSheet().GetRowOrDefault(Task.ItemId) ?? throw new ArgumentOutOfRangeException(nameof(Task.ItemId)); _targetSlots = GetEquipSlot(_item) ?? throw new InvalidOperationException("Not a piece of equipment"); @@ -118,7 +117,7 @@ internal static class EquipItem var itemSlot = equippedContainer->GetInventorySlot(slot); if (itemSlot != null && itemSlot->ItemId == Task.ItemId) { - logger.LogInformation("Already equipped {Item}, skipping step", _item.Name?.ToString()); + logger.LogInformation("Already equipped {Item}, skipping step", _item?.Name.ToString()); return; } } @@ -162,11 +161,13 @@ internal static class EquipItem throw new TaskException($"Could not equip item {Task.ItemId}."); } - private static List? GetEquipSlot(Item item) + private static List? GetEquipSlot(Item? item) { - return item.EquipSlotCategory.Row switch + if (item == null) + return []; + return item.Value.EquipSlotCategory.RowId switch { - >= 1 and <= 11 => [(ushort)(item.EquipSlotCategory.Row - 1)], + >= 1 and <= 11 => [(ushort)(item.Value.EquipSlotCategory.RowId - 1)], 12 => [11, 12], // rings 13 => [0], 17 => [13], // soul crystal diff --git a/Questionable/Controller/Steps/Interactions/EquipRecommended.cs b/Questionable/Controller/Steps/Interactions/EquipRecommended.cs index cd4f79828..b923c237f 100644 --- a/Questionable/Controller/Steps/Interactions/EquipRecommended.cs +++ b/Questionable/Controller/Steps/Interactions/EquipRecommended.cs @@ -45,7 +45,7 @@ internal static class EquipRecommended protected override bool Start() { - RecommendEquipModule.Instance()->SetupForClassJob((byte)clientState.LocalPlayer!.ClassJob.Id); + RecommendEquipModule.Instance()->SetupForClassJob((byte)clientState.LocalPlayer!.ClassJob.RowId); return true; } diff --git a/Questionable/Controller/Steps/Shared/Craft.cs b/Questionable/Controller/Steps/Shared/Craft.cs index ad474fe2b..26493ca02 100644 --- a/Questionable/Controller/Steps/Shared/Craft.cs +++ b/Questionable/Controller/Steps/Shared/Craft.cs @@ -6,7 +6,7 @@ using FFXIVClientStructs.FFXIV.Client.Game; using FFXIVClientStructs.FFXIV.Client.UI.Agent; using FFXIVClientStructs.FFXIV.Component.GUI; using LLib.GameData; -using Lumina.Excel.GeneratedSheets; +using Lumina.Excel.Sheets; using Microsoft.Extensions.Logging; using Questionable.External; using Questionable.Model.Questing; @@ -55,20 +55,20 @@ internal static class Craft return false; } - RecipeLookup? recipeLookup = dataManager.GetExcelSheet()!.GetRow(Task.ItemId); + RecipeLookup? recipeLookup = dataManager.GetExcelSheet().GetRowOrDefault(Task.ItemId); if (recipeLookup == null) throw new TaskException($"Item {Task.ItemId} is not craftable"); - uint recipeId = (EClassJob)clientState.LocalPlayer!.ClassJob.Id switch + uint recipeId = (EClassJob)clientState.LocalPlayer!.ClassJob.RowId switch { - EClassJob.Carpenter => recipeLookup.CRP.Row, - EClassJob.Blacksmith => recipeLookup.BSM.Row, - EClassJob.Armorer => recipeLookup.ARM.Row, - EClassJob.Goldsmith => recipeLookup.GSM.Row, - EClassJob.Leatherworker => recipeLookup.LTW.Row, - EClassJob.Weaver => recipeLookup.WVR.Row, - EClassJob.Alchemist => recipeLookup.ALC.Row, - EClassJob.Culinarian => recipeLookup.CUL.Row, + EClassJob.Carpenter => recipeLookup.Value.CRP.RowId, + EClassJob.Blacksmith => recipeLookup.Value.BSM.RowId, + EClassJob.Armorer => recipeLookup.Value.ARM.RowId, + EClassJob.Goldsmith => recipeLookup.Value.GSM.RowId, + EClassJob.Leatherworker => recipeLookup.Value.LTW.RowId, + EClassJob.Weaver => recipeLookup.Value.WVR.RowId, + EClassJob.Alchemist => recipeLookup.Value.ALC.RowId, + EClassJob.Culinarian => recipeLookup.Value.CUL.RowId, _ => 0 }; @@ -76,14 +76,14 @@ internal static class Craft { recipeId = new[] { - recipeLookup.CRP.Row, - recipeLookup.BSM.Row, - recipeLookup.ARM.Row, - recipeLookup.GSM.Row, - recipeLookup.LTW.Row, - recipeLookup.WVR.Row, - recipeLookup.ALC.Row, - recipeLookup.WVR.Row + recipeLookup.Value.CRP.RowId, + recipeLookup.Value.BSM.RowId, + recipeLookup.Value.ARM.RowId, + recipeLookup.Value.GSM.RowId, + recipeLookup.Value.LTW.RowId, + recipeLookup.Value.WVR.RowId, + recipeLookup.Value.ALC.RowId, + recipeLookup.Value.WVR.RowId } .FirstOrDefault(x => x != 0); } diff --git a/Questionable/Controller/Steps/Shared/Gather.cs b/Questionable/Controller/Steps/Shared/Gather.cs index 5724a2092..13671d8d9 100644 --- a/Questionable/Controller/Steps/Shared/Gather.cs +++ b/Questionable/Controller/Steps/Shared/Gather.cs @@ -35,7 +35,7 @@ internal static class Gather foreach (var itemToGather in step.ItemsToGather) { - EClassJob currentClassJob = (EClassJob)clientState.LocalPlayer!.ClassJob.Id; + EClassJob currentClassJob = (EClassJob)clientState.LocalPlayer!.ClassJob.RowId; if (!gatheringData.TryGetGatheringPointId(itemToGather.ItemId, currentClassJob, out GatheringPointId? gatheringPointId)) throw new TaskException($"No gathering point found for item {itemToGather.ItemId}"); diff --git a/Questionable/Controller/Steps/Shared/MoveTo.cs b/Questionable/Controller/Steps/Shared/MoveTo.cs index eaead8ef3..4df2870fa 100644 --- a/Questionable/Controller/Steps/Shared/MoveTo.cs +++ b/Questionable/Controller/Steps/Shared/MoveTo.cs @@ -1,6 +1,5 @@ using System; using System.Collections.Generic; -using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Numerics; using Dalamud.Game.ClientState.Conditions; @@ -10,7 +9,7 @@ using Dalamud.Plugin.Services; using FFXIVClientStructs.FFXIV.Client.Game; using FFXIVClientStructs.FFXIV.Client.Game.Character; using LLib; -using Lumina.Excel.GeneratedSheets; +using Lumina.Excel.Sheets; using Microsoft.Extensions.Logging; using Questionable.Controller.Steps.Common; using Questionable.Data; diff --git a/Questionable/Controller/Steps/Shared/SkipCondition.cs b/Questionable/Controller/Steps/Shared/SkipCondition.cs index 2951d8d82..68297c4ed 100644 --- a/Questionable/Controller/Steps/Shared/SkipCondition.cs +++ b/Questionable/Controller/Steps/Shared/SkipCondition.cs @@ -239,7 +239,7 @@ internal static class SkipCondition { List expectedJobs = step.RequiredCurrentJob.SelectMany(ClassJobUtils.AsIndividualJobs).ToList(); - EClassJob currentJob = (EClassJob)clientState.LocalPlayer!.ClassJob.Id; + EClassJob currentJob = (EClassJob)clientState.LocalPlayer!.ClassJob.RowId; logger.LogInformation("Checking current job {CurrentJob} against {ExpectedJobs}", currentJob, string.Join(",", expectedJobs)); if (!expectedJobs.Contains(currentJob)) diff --git a/Questionable/Controller/Steps/Shared/SwitchClassJob.cs b/Questionable/Controller/Steps/Shared/SwitchClassJob.cs index 48b153c3a..59477feca 100644 --- a/Questionable/Controller/Steps/Shared/SwitchClassJob.cs +++ b/Questionable/Controller/Steps/Shared/SwitchClassJob.cs @@ -31,7 +31,7 @@ internal static class SwitchClassJob { protected override unsafe bool StartInternal() { - if (clientState.LocalPlayer!.ClassJob.Id == (uint)Task.ClassJob) + if (clientState.LocalPlayer!.ClassJob.RowId == (uint)Task.ClassJob) return false; var gearsetModule = RaptureGearsetModule.Instance(); diff --git a/Questionable/Data/AetherCurrentData.cs b/Questionable/Data/AetherCurrentData.cs index f83b99c0f..04bb7c377 100644 --- a/Questionable/Data/AetherCurrentData.cs +++ b/Questionable/Data/AetherCurrentData.cs @@ -1,7 +1,7 @@ using System.Collections.Immutable; using System.Linq; using Dalamud.Plugin.Services; -using Lumina.Excel.GeneratedSheets2; +using Lumina.Excel.Sheets; namespace Questionable.Data; @@ -13,12 +13,12 @@ internal sealed class AetherCurrentData { _overworldCurrents = dataManager.GetExcelSheet()! .Where(x => x.RowId > 0) - .Where(x => x.Territory.Value != null) + .Where(x => x.Territory.IsValid) .ToImmutableDictionary( - x => (ushort)x.Territory.Row, + x => (ushort)x.Territory.RowId, x => x.AetherCurrents - .Where(y => y.Row > 0 && y.Value?.Quest.Row == 0) - .Select(y => y.Row) + .Where(y => y.RowId > 0 && y.Value.Quest.RowId == 0) + .Select(y => y.RowId) .ToImmutableList()); } diff --git a/Questionable/Data/AetheryteData.cs b/Questionable/Data/AetheryteData.cs index f921972fd..1e8f34c23 100644 --- a/Questionable/Data/AetheryteData.cs +++ b/Questionable/Data/AetheryteData.cs @@ -4,7 +4,7 @@ using System.Linq; using System.Numerics; using Dalamud.Plugin.Services; using Dalamud.Utility; -using Lumina.Excel.GeneratedSheets; +using Lumina.Excel.Sheets; using Questionable.Model.Common; namespace Questionable.Data; @@ -29,19 +29,19 @@ internal sealed class AetheryteData void ConfigureAetheryteWithPlaceName(EAetheryteLocation aetheryteLocation, uint placeNameId, ushort territoryId) { ConfigureAetheryte(aetheryteLocation, - dataManager.GetExcelSheet()!.GetRow(placeNameId)!.Name.ToDalamudString().TextValue, + dataManager.GetExcelSheet().GetRow(placeNameId).Name.ToDalamudString().TextValue, territoryId, (ushort)((int)aetheryteLocation / 100)); } - foreach (var aetheryte in dataManager.GetExcelSheet()!.Where(x => x.RowId > 0)) + foreach (var aetheryte in dataManager.GetExcelSheet().Where(x => x.RowId > 0)) { - string? aethernetName = aetheryte.AethernetName?.Value?.Name.ToString(); + string? aethernetName = aetheryte.AethernetName.ValueNullable?.Name.ToString(); if (!string.IsNullOrEmpty(aethernetName)) aethernetNames[(EAetheryteLocation)aetheryte.RowId] = aethernetName; - if (aetheryte.Territory != null && aetheryte.Territory.Row > 0) - territoryIds[(EAetheryteLocation)aetheryte.RowId] = (ushort)aetheryte.Territory.Row; + if (aetheryte.Territory.RowId > 0) + territoryIds[(EAetheryteLocation)aetheryte.RowId] = (ushort)aetheryte.Territory.RowId; if (aetheryte.AethernetGroup > 0) aethernetGroups[(EAetheryteLocation)aetheryte.RowId] = aetheryte.AethernetGroup; @@ -62,8 +62,8 @@ internal sealed class AetheryteData TerritoryIds = territoryIds.AsReadOnly(); AethernetGroups = aethernetGroups.AsReadOnly(); - TownTerritoryIds = dataManager.GetExcelSheet()! - .Where(x => x.RowId > 0 && !string.IsNullOrEmpty(x.Name) && x.TerritoryIntendedUse == 0) + TownTerritoryIds = dataManager.GetExcelSheet() + .Where(x => x.RowId > 0 && !string.IsNullOrEmpty(x.Name.ToString()) && x.TerritoryIntendedUse.RowId == 0) .Select(x => (ushort)x.RowId) .ToList(); } diff --git a/Questionable/Data/GatheringData.cs b/Questionable/Data/GatheringData.cs index c231f004a..1d11a1ba3 100644 --- a/Questionable/Data/GatheringData.cs +++ b/Questionable/Data/GatheringData.cs @@ -3,8 +3,7 @@ using System.Diagnostics.CodeAnalysis; using System.Linq; using Dalamud.Plugin.Services; using LLib.GameData; -using Lumina.Excel.GeneratedSheets; -using Microsoft.Extensions.Logging; +using Lumina.Excel.Sheets; using Questionable.Model.Gathering; namespace Questionable.Data; @@ -18,43 +17,45 @@ internal sealed class GatheringData public GatheringData(IDataManager dataManager) { - Dictionary gatheringItemToItem = dataManager.GetExcelSheet()! - .Where(x => x.RowId != 0 && x.Item != 0) - .ToDictionary(x => x.RowId, x => (uint)x.Item); + Dictionary gatheringItemToItem = dataManager.GetExcelSheet() + .Where(x => x.RowId != 0 && x.Item.RowId != 0) + .ToDictionary(x => x.RowId, x => x.Item.RowId); - foreach (var gatheringPointBase in dataManager.GetExcelSheet()!) + foreach (var gatheringPointBase in dataManager.GetExcelSheet()) { - foreach (var gatheringItemId in gatheringPointBase.Item.Where(x => x != 0)) + foreach (var gatheringItem in gatheringPointBase.Item.Where(x => x.RowId != 0)) { - if (gatheringItemToItem.TryGetValue((uint)gatheringItemId, out uint itemId)) + if (gatheringItemToItem.TryGetValue(gatheringItem.RowId, out uint itemId)) { - if (gatheringPointBase.GatheringType.Row is 0 or 1) + if (gatheringPointBase.GatheringType.RowId is 0 or 1) _minerGatheringPoints[itemId] = new GatheringPointId((ushort)gatheringPointBase.RowId); - else if (gatheringPointBase.GatheringType.Row is 2 or 3) + else if (gatheringPointBase.GatheringType.RowId is 2 or 3) _botanistGatheringPoints[itemId] = new GatheringPointId((ushort)gatheringPointBase.RowId); } } } - _itemIdToCollectability = dataManager.GetExcelSheet()! + _itemIdToCollectability = dataManager.GetSubrowExcelSheet() .Where(x => x.RowId > 0) + .SelectMany(x => x) .Where(x => x.Slot is 2) .Select(x => new { - ItemId = x.Item.Row, + ItemId = x.Item.RowId, Collectability = x.CollectabilityHigh, }) .Distinct() .ToDictionary(x => x.ItemId, x => x.Collectability); - _npcForCustomDeliveries = dataManager.GetExcelSheet()! + _npcForCustomDeliveries = dataManager.GetExcelSheet() .Where(x => x.RowId > 0) - .SelectMany(x => dataManager.GetExcelSheet()! - .Where(y => y.RowId == x.SupplyIndex.Last()) + .SelectMany(x => dataManager.GetSubrowExcelSheet() + .Where(y => y.RowId == x.SatisfactionNpcParams.Last().SupplyIndex) + .SelectMany(y => y) .Select(y => new { - ItemId = y.Item.Row, - NpcId = x.Npc.Row + ItemId = y.Item.RowId, + NpcId = x.Npc.RowId })) .Where(x => x.ItemId > 0) .Distinct() diff --git a/Questionable/Data/JournalData.cs b/Questionable/Data/JournalData.cs index fca04e823..f26f452ae 100644 --- a/Questionable/Data/JournalData.cs +++ b/Questionable/Data/JournalData.cs @@ -1,7 +1,8 @@ using System.Collections.Generic; using System.Linq; using Dalamud.Plugin.Services; -using Lumina.Excel.GeneratedSheets; +using Lumina.Excel.Sheets; +using Microsoft.Extensions.Logging; using Questionable.Model; using Questionable.Model.Questing; @@ -9,28 +10,36 @@ namespace Questionable.Data; internal sealed class JournalData { - public JournalData(IDataManager dataManager, QuestData questData) + public JournalData(IDataManager dataManager, QuestData questData, ILogger logger) { - var genres = dataManager.GetExcelSheet()! + var genres = dataManager.GetExcelSheet() .Where(x => x.RowId > 0 && x.Icon > 0) .Select(x => new Genre(x, questData.GetAllByJournalGenre(x.RowId))) .ToList(); + foreach (var genre in genres) + { + logger.LogInformation("Genre {GenreId}: {GenreName} has {QuestCount} quests", + genre.Id, genre.Name, genre.QuestCount); + } + logger.LogInformation("Genre count: {GenreCount}", genres.Count); + var quest = questData.GetQuestInfo(new QuestId(5193)); + logger.LogInformation("Q: {N}, {A}, {B}", quest.Name, quest.JournalGenre, quest.IssuerDataId); - var limsaStart = dataManager.GetExcelSheet()!.GetRow(1)!; - var gridaniaStart = dataManager.GetExcelSheet()!.GetRow(2)!; - var uldahStart = dataManager.GetExcelSheet()!.GetRow(3)!; + var limsaStart = dataManager.GetExcelSheet().GetRow(1); + var gridaniaStart = dataManager.GetExcelSheet().GetRow(2); + var uldahStart = dataManager.GetExcelSheet().GetRow(3); var genreLimsa = new Genre(uint.MaxValue - 3, "Starting in Limsa Lominsa", 1, - new uint[] { 108, 109 }.Concat(limsaStart.Quest.Select(x => x.Row)) + new uint[] { 108, 109 }.Concat(limsaStart.QuestRedoParam.Select(x => x.Quest.RowId)) .Where(x => x != 0) .Select(x => questData.GetQuestInfo(new QuestId((ushort)(x & 0xFFFF)))) .ToList()); var genreGridania = new Genre(uint.MaxValue - 2, "Starting in Gridania", 1, - new uint[] { 85, 123, 124 }.Concat(gridaniaStart.Quest.Select(x => x.Row)) + new uint[] { 85, 123, 124 }.Concat(gridaniaStart.QuestRedoParam.Select(x => x.Quest.RowId)) .Where(x => x != 0) .Select(x => questData.GetQuestInfo(new QuestId((ushort)(x & 0xFFFF)))) .ToList()); var genreUldah = new Genre(uint.MaxValue - 1, "Starting in Ul'dah", 1, - new uint[] { 568, 569, 570 }.Concat(uldahStart.Quest.Select(x => x.Row)) + new uint[] { 568, 569, 570 }.Concat(uldahStart.QuestRedoParam.Select(x => x.Quest.RowId)) .Where(x => x != 0) .Select(x => questData.GetQuestInfo(new QuestId((ushort)(x & 0xFFFF)))) .ToList()); @@ -41,12 +50,12 @@ internal sealed class JournalData genreLimsa.Quests.Contains(x) || genreGridania.Quests.Contains(x) || genreUldah.Quests.Contains(x)); Genres = genres.AsReadOnly(); - Categories = dataManager.GetExcelSheet()! + Categories = dataManager.GetExcelSheet() .Where(x => x.RowId > 0) .Select(x => new Category(x, Genres.Where(y => y.CategoryId == x.RowId).ToList())) .ToList() .AsReadOnly(); - Sections = dataManager.GetExcelSheet()! + Sections = dataManager.GetExcelSheet() .Select(x => new Section(x, Categories.Where(y => y.SectionId == x.RowId).ToList())) .ToList(); } @@ -61,7 +70,7 @@ internal sealed class JournalData { Id = journalGenre.RowId; Name = journalGenre.Name.ToString(); - CategoryId = journalGenre.JournalCategory.Row; + CategoryId = journalGenre.JournalCategory.RowId; Quests = quests; } @@ -84,7 +93,7 @@ internal sealed class JournalData { public uint Id { get; } = journalCategory.RowId; public string Name { get; } = journalCategory.Name.ToString(); - public uint SectionId { get; } = journalCategory.JournalSection.Row; + public uint SectionId { get; } = journalCategory.JournalSection.RowId; public IReadOnlyList Genres { get; } = genres; public int QuestCount => Genres.Sum(x => x.QuestCount); } diff --git a/Questionable/Data/QuestData.cs b/Questionable/Data/QuestData.cs index e74f28e5d..b055a7d73 100644 --- a/Questionable/Data/QuestData.cs +++ b/Questionable/Data/QuestData.cs @@ -5,11 +5,11 @@ using System.Linq; using Dalamud.Plugin.Services; using FFXIVClientStructs.FFXIV.Client.Game.UI; using LLib.GameData; -using Lumina.Excel.GeneratedSheets; +using Lumina.Excel.Sheets; +using Questionable.Data.Sheets; using Questionable.Model; using Questionable.Model.Questing; -using Leve = Lumina.Excel.GeneratedSheets2.Leve; -using Quest = Lumina.Excel.GeneratedSheets2.Quest; +using Quest = Lumina.Excel.Sheets.Quest; namespace Questionable.Data; @@ -18,13 +18,13 @@ internal sealed class QuestData public static readonly IReadOnlyList CrystalTowerQuests = [new(1709), new(1200), new(1201), new(1202), new(1203), new(1474), new(494), new(495)]; - public static readonly IReadOnlyList TankRoleQuests = [136, 154, 178]; - public static readonly IReadOnlyList HealerRoleQuests = [137, 155, 179]; - public static readonly IReadOnlyList MeleeRoleQuests = [138, 156, 180]; - public static readonly IReadOnlyList PhysicalRangedRoleQuests = [138, 157, 181]; - public static readonly IReadOnlyList CasterRoleQuests = [139, 158, 182]; + public static readonly IReadOnlyList TankRoleQuests = [136, 154, 178]; + public static readonly IReadOnlyList HealerRoleQuests = [137, 155, 179]; + public static readonly IReadOnlyList MeleeRoleQuests = [138, 156, 180]; + public static readonly IReadOnlyList PhysicalRangedRoleQuests = [138, 157, 181]; + public static readonly IReadOnlyList CasterRoleQuests = [139, 158, 182]; - public static readonly IReadOnlyList> AllRoleQuestChapters = + public static readonly IReadOnlyList> AllRoleQuestChapters = [ TankRoleQuests, HealerRoleQuests, @@ -40,33 +40,33 @@ internal sealed class QuestData public QuestData(IDataManager dataManager) { - Dictionary questChapters = + Dictionary questChapters = dataManager.GetExcelSheet()! - .Where(x => x.RowId > 0 && x.Quest.Row > 0) - .ToDictionary(x => x.Quest.Row, x => x.Redo); + .Where(x => x.RowId > 0 && x.Quest.RowId > 0) + .ToDictionary(x => x.Quest.RowId, x => x.Redo.RowId); Dictionary startingCities = new(); for (byte redoChapter = 1; redoChapter <= 3; ++redoChapter) { - var questRedo = dataManager.GetExcelSheet()!.GetRow(redoChapter)!; - foreach (var quest in questRedo.Quest.Where(x => x.Row > 0)) - startingCities[quest.Row] = redoChapter; + var questRedo = dataManager.GetExcelSheet().GetRow(redoChapter); + foreach (var quest in questRedo.QuestRedoParam.Where(x => x.Quest.IsValid)) + startingCities[quest.Quest.RowId] = redoChapter; } List quests = [ - ..dataManager.GetExcelSheet()! + ..dataManager.GetExcelSheet() .Where(x => x.RowId > 0) - .Where(x => x.IssuerLocation.Row > 0) + .Where(x => x.IssuerLocation.RowId > 0) .Select(x => new QuestInfo(x, questChapters.GetValueOrDefault(x.RowId), startingCities.GetValueOrDefault(x.RowId))) .Where(x => x.QuestId.Value != 1428), - ..dataManager.GetExcelSheet()! - .Where(x => x.RowId > 0) + ..dataManager.GetExcelSheet() + .Where(x => x is { RowId: > 0, Npc.RowId: > 0 }) .Select(x => new SatisfactionSupplyInfo(x)), - ..dataManager.GetExcelSheet()! + ..dataManager.GetExcelSheet() .Where(x => x.RowId > 0) - .Where(x => x.LevelLevemete.Row != 0) + .Where(x => x.LevelLevemete.RowId != 0) .Select(x => new LeveInfo(x)), ]; _quests = quests.ToDictionary(x => x.QuestId, x => x); @@ -230,7 +230,7 @@ internal sealed class QuestData public List GetClassJobQuests(EClassJob classJob) { - List chapterIds = classJob switch + List chapterIds = classJob switch { EClassJob.Adventurer => throw new ArgumentOutOfRangeException(nameof(classJob)), @@ -308,7 +308,7 @@ internal sealed class QuestData return GetQuestsInNewGamePlusChapters(chapterIds); } - private List GetQuestsInNewGamePlusChapters(List chapterIds) + private List GetQuestsInNewGamePlusChapters(List chapterIds) { return _quests.Values .Where(x => x is QuestInfo) diff --git a/Questionable/Data/Sheets/QuestEx.cs b/Questionable/Data/Sheets/QuestEx.cs new file mode 100644 index 000000000..c4da01784 --- /dev/null +++ b/Questionable/Data/Sheets/QuestEx.cs @@ -0,0 +1,45 @@ +using Lumina.Excel; +using Lumina.Excel.Sheets; +using Lumina.Text.ReadOnly; + +namespace Questionable.Data.Sheets; + +// TODO Remove once fixed in dalamud +[Sheet("Quest", 0x1F8C7430)] +public readonly unsafe struct QuestEx(ExcelPage page, uint offset, uint row) : IExcelRow +{ + public uint RowId => row; + + public Quest Original { get; } = new(page, offset, row); + + public RowRef IssuerStart => RowRef.GetFirstValidRowOrUntyped(page.Module, page.ReadUInt32(offset + 2456), [typeof(EObjName), typeof(ENpcResident)], 882056187, page.Language); + public RowRef IssuerLocation => new(page.Module, page.ReadUInt32(offset + 2460), page.Language); + public RowRef JournalGenre => new(page.Module, page.ReadUInt32(offset + 2468), page.Language); + public ushort SortKey => page.ReadUInt16(offset + 2502); + public readonly RowRef Expansion => new(page.Module, (uint)page.ReadUInt8(offset + 2504), page.Language); + public readonly byte PreviousQuestJoin => page.ReadUInt8(offset + 2508); + public readonly RowRef ClassJobCategory0 => new(page.Module, (uint)page.ReadUInt8(offset + 2505), page.Language); + public readonly RowRef ClassJobCategory1 => new(page.Module, (uint)page.ReadUInt8(offset + 2507), page.Language); + public readonly RowRef Festival => new(page.Module, (uint)page.ReadUInt8(offset + 2517), page.Language); + public readonly byte Unknown7 => page.ReadUInt8(offset + 2509); + public readonly byte QuestLockJoin => page.ReadUInt8(offset + 2510); + public readonly RowRef GrandCompany => new(page.Module, (uint)page.ReadUInt8(offset + 2514), page.Language); + public readonly byte InstanceContentJoin => page.ReadUInt8(offset + 2516); + public readonly RowRef BeastTribe => new(page.Module, (uint)page.ReadUInt8(offset + 2520), page.Language); + public bool IsRepeatable => page.ReadPackedBool(offset + 2535, 1); + + public readonly Collection> PreviousQuest => new(page, offset, offset, &PreviousQuestCtor, 3); + private static RowRef PreviousQuestCtor(ExcelPage page, uint parentOffset, uint offset, uint i) => new(page.Module, page.ReadUInt32(offset + 2424 + i * 4), page.Language); + + public readonly Collection> QuestLock => new(page, offset, offset, &QuestLockCtor, 2); + private static RowRef QuestLockCtor(ExcelPage page, uint parentOffset, uint offset, uint i) => new(page.Module, page.ReadUInt32(offset + 2436 + i * 4), page.Language); + + public readonly Collection ClassJobLevel => new(page, offset, offset, &ClassJobLevelCtor, 2); + private static ushort ClassJobLevelCtor(ExcelPage page, uint parentOffset, uint offset, uint i) => page.ReadUInt16(offset + 2484 + i * 2); + + public Collection> InstanceContent => new(page, offset, offset, &InstanceContentCtor, 3); + private static RowRef InstanceContentCtor(ExcelPage page, uint parentOffset, uint offset, uint i) => new(page.Module, page.ReadUInt32(offset + 2444 + i * 4), page.Language); + + static QuestEx IExcelRow.Create(ExcelPage page, uint offset, uint row) => + new(page, offset, row); +} diff --git a/Questionable/Data/TerritoryData.cs b/Questionable/Data/TerritoryData.cs index e2d471c34..ee91f6b44 100644 --- a/Questionable/Data/TerritoryData.cs +++ b/Questionable/Data/TerritoryData.cs @@ -4,7 +4,7 @@ using System.Globalization; using System.Linq; using Dalamud.Plugin.Services; using FFXIVClientStructs.FFXIV.Client.Game.Character; -using Lumina.Excel.GeneratedSheets; +using Lumina.Excel.Sheets; namespace Questionable.Data; @@ -13,37 +13,37 @@ internal sealed class TerritoryData private readonly ImmutableDictionary _territoryNames; private readonly ImmutableHashSet _territoriesWithMount; private readonly ImmutableDictionary _dutyTerritories; - private readonly ImmutableDictionary _instanceNames; + private readonly ImmutableDictionary _instanceNames; private readonly ImmutableDictionary _contentFinderConditionNames; public TerritoryData(IDataManager dataManager) { - _territoryNames = dataManager.GetExcelSheet()! + _territoryNames = dataManager.GetExcelSheet() .Where(x => x.RowId > 0) .Select(x => new { x.RowId, - Name = x.PlaceName.Value?.Name?.ToString() ?? x.PlaceNameZone?.Value?.Name?.ToString(), + Name = x.PlaceName.ValueNullable?.Name.ToString() ?? x.PlaceNameZone.ValueNullable?.Name.ToString(), }) .Where(x => !string.IsNullOrEmpty(x.Name)) .ToImmutableDictionary(x => x.RowId, x => x.Name!); - _territoriesWithMount = dataManager.GetExcelSheet()! + _territoriesWithMount = dataManager.GetExcelSheet() .Where(x => x.RowId > 0 && x.Mount) .Select(x => (ushort)x.RowId) .ToImmutableHashSet(); - _dutyTerritories = dataManager.GetExcelSheet()! - .Where(x => x.RowId > 0 && x.ContentFinderCondition.Row != 0) - .ToImmutableDictionary(x => (ushort)x.RowId, x => x.ContentFinderCondition.Value!.ContentType.Row); + _dutyTerritories = dataManager.GetExcelSheet() + .Where(x => x.RowId > 0 && x.ContentFinderCondition.RowId != 0) + .ToImmutableDictionary(x => (ushort)x.RowId, x => x.ContentFinderCondition.Value.ContentType.RowId); - _instanceNames = dataManager.GetExcelSheet()! - .Where(x => x.RowId > 0 && x.Content != 0 && x.ContentLinkType == 1 && x.ContentType.Row != 6) - .ToImmutableDictionary(x => x.Content, x => x.Name.ToString()); + _instanceNames = dataManager.GetExcelSheet() + .Where(x => x.RowId > 0 && x.Content.RowId != 0 && x.ContentLinkType == 1 && x.ContentType.RowId != 6) + .ToImmutableDictionary(x => x.Content.RowId, x => x.Name.ToString()); - _contentFinderConditionNames = dataManager.GetExcelSheet()! - .Where(x => x.RowId > 0 && x.Content != 0 && x.ContentLinkType == 1 && x.ContentType.Row != 6) + _contentFinderConditionNames = dataManager.GetExcelSheet() + .Where(x => x.RowId > 0 && x.Content.RowId != 0 && x.ContentLinkType == 1 && x.ContentType.RowId != 6) .ToImmutableDictionary(x => x.RowId, x => x.Name.ToString()); } diff --git a/Questionable/Functions/AetheryteFunctions.cs b/Questionable/Functions/AetheryteFunctions.cs index afdedf4d8..65b075d00 100644 --- a/Questionable/Functions/AetheryteFunctions.cs +++ b/Questionable/Functions/AetheryteFunctions.cs @@ -1,14 +1,12 @@ using System; -using System.Linq; using Dalamud.Plugin.Services; using FFXIVClientStructs.FFXIV.Client.Game; using FFXIVClientStructs.FFXIV.Client.Game.UI; -using Lumina.Excel.GeneratedSheets; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; using Questionable.Model.Common; using Questionable.Model.Questing; -using Action = Lumina.Excel.GeneratedSheets.Action; +using Action = Lumina.Excel.Sheets.Action; namespace Questionable.Functions; @@ -57,9 +55,10 @@ internal sealed unsafe class AetheryteFunctions public bool IsTeleportUnlocked() { - uint unlockLink = _dataManager.GetExcelSheet()! - .GetRow(5)! - .UnlockLink; + uint unlockLink = _dataManager.GetExcelSheet() + .GetRow(5) + .UnlockLink + .RowId; return UIState.Instance()->IsUnlockLinkUnlocked(unlockLink); } diff --git a/Questionable/Functions/ChatFunctions.cs b/Questionable/Functions/ChatFunctions.cs index 5c31e4d82..d53ed9bee 100644 --- a/Questionable/Functions/ChatFunctions.cs +++ b/Questionable/Functions/ChatFunctions.cs @@ -12,7 +12,7 @@ using Dalamud.Plugin.Services; using FFXIVClientStructs.FFXIV.Client.System.Framework; using FFXIVClientStructs.FFXIV.Client.System.Memory; using FFXIVClientStructs.FFXIV.Client.System.String; -using Lumina.Excel.GeneratedSheets; +using Lumina.Excel.Sheets; using Microsoft.Extensions.Logging; using Questionable.Model.Questing; @@ -41,11 +41,11 @@ internal sealed unsafe class ChatFunctions _sanitiseString = (delegate* unmanaged)sigScanner.ScanText(Signatures.SanitiseString); - _emoteCommands = dataManager.GetExcelSheet()! + _emoteCommands = dataManager.GetExcelSheet() .Where(x => x.RowId > 0) - .Where(x => x.TextCommand != null && x.TextCommand.Value != null) - .Select(x => (x.RowId, Command: x.TextCommand.Value!.Command?.ToString())) - .Where(x => x.Command != null && x.Command.StartsWith('/')) + .Where(x => x.TextCommand.IsValid) + .Select(x => (x.RowId, Command: x.TextCommand.Value.Command.ToString())) + .Where(x => !string.IsNullOrEmpty(x.Command) && x.Command.StartsWith('/')) .ToDictionary(x => (EEmote)x.RowId, x => x.Command!) .AsReadOnly(); } @@ -156,8 +156,8 @@ internal sealed unsafe class ChatFunctions private static class Signatures { - internal const string SendChat = "48 89 5C 24 ?? 57 48 83 EC 20 48 8B FA 48 8B D9 45 84 C9"; - internal const string SanitiseString = "E8 ?? ?? ?? ?? 48 8D 4C 24 ?? 0F B6 F0 E8 ?? ?? ?? ?? 48 8D 4D C0"; + internal const string SendChat = "48 89 5C 24 ?? 48 89 74 24 ?? 57 48 83 EC 20 48 8B F2 48 8B F9 45 84 C9"; + internal const string SanitiseString = "E8 ?? ?? ?? ?? EB 0A 48 8D 4C 24 ?? E8 ?? ?? ?? ?? 48 8D AE"; } [StructLayout(LayoutKind.Explicit)] diff --git a/Questionable/Functions/ExcelFunctions.cs b/Questionable/Functions/ExcelFunctions.cs index e1278a593..2043c5a60 100644 --- a/Questionable/Functions/ExcelFunctions.cs +++ b/Questionable/Functions/ExcelFunctions.cs @@ -3,13 +3,13 @@ using System.Linq; using Dalamud.Plugin.Services; using Dalamud.Utility; using LLib; -using Lumina.Excel.CustomSheets; -using Lumina.Excel.GeneratedSheets; +using Lumina.Excel.Sheets; using Lumina.Text; +using Lumina.Text.ReadOnly; using Microsoft.Extensions.Logging; using Questionable.Model; using Quest = Questionable.Model.Quest; -using GimmickYesNo = Lumina.Excel.GeneratedSheets2.GimmickYesNo; +using GimmickYesNo = Lumina.Excel.Sheets.GimmickYesNo; namespace Questionable.Functions; @@ -33,12 +33,12 @@ internal sealed class ExcelFunctions return new StringOrRegex(seString?.ToDalamudString().ToString()); } - public SeString? GetRawDialogueText(Quest? currentQuest, string? excelSheetName, string key) + public ReadOnlySeString? GetRawDialogueText(Quest? currentQuest, string? excelSheetName, string key) { if (currentQuest != null && excelSheetName == null) { var questRow = - _dataManager.GetExcelSheet()!.GetRow((uint)currentQuest.Id.Value + + _dataManager.GetExcelSheet().GetRowOrDefault((uint)currentQuest.Id.Value + 0x10000); if (questRow == null) { @@ -46,18 +46,13 @@ internal sealed class ExcelFunctions return null; } - excelSheetName = $"quest/{(currentQuest.Id.Value / 100):000}/{questRow.Id}"; + excelSheetName = $"quest/{(currentQuest.Id.Value / 100):000}/{questRow.Value.RowId}"; } ArgumentNullException.ThrowIfNull(excelSheetName); - var excelSheet = _dataManager.Excel.GetSheet(excelSheetName); - if (excelSheet == null) - { - _logger.LogError("Unknown excel sheet '{SheetName}'", excelSheetName); - return null; - } - - return excelSheet.FirstOrDefault(x => x.Key == key)?.Value; + var excelSheet = _dataManager.GetExcelSheet(name: excelSheetName); + return excelSheet.Cast() + .FirstOrDefault(x => x!.Value.Key == key)?.Value; } public StringOrRegex GetDialogueTextByRowId(string? excelSheet, uint rowId, bool isRegex) @@ -69,36 +64,36 @@ internal sealed class ExcelFunctions return new StringOrRegex(seString?.ToDalamudString().ToString()); } - public SeString? GetRawDialogueTextByRowId(string? excelSheet, uint rowId) + public ReadOnlySeString? GetRawDialogueTextByRowId(string? excelSheet, uint rowId) { if (excelSheet == "GimmickYesNo") { - var questRow = _dataManager.GetExcelSheet()!.GetRow(rowId); + var questRow = _dataManager.GetExcelSheet().GetRowOrDefault(rowId); return questRow?.Unknown0; } else if (excelSheet == "Warp") { - var questRow = _dataManager.GetExcelSheet()!.GetRow(rowId); + var questRow = _dataManager.GetExcelSheet().GetRowOrDefault(rowId); return questRow?.Name; } else if (excelSheet is "Addon") { - var questRow = _dataManager.GetExcelSheet()!.GetRow(rowId); + var questRow = _dataManager.GetExcelSheet().GetRowOrDefault(rowId); return questRow?.Text; } else if (excelSheet is "EventPathMove") { - var questRow = _dataManager.GetExcelSheet()!.GetRow(rowId); - return questRow?.Unknown10; + var questRow = _dataManager.GetExcelSheet().GetRowOrDefault(rowId); + return questRow?.Unknown0; } else if (excelSheet is "GilShop") { - var questRow = _dataManager.GetExcelSheet()!.GetRow(rowId); + var questRow = _dataManager.GetExcelSheet().GetRowOrDefault(rowId); return questRow?.Name; } else if (excelSheet is "ContentTalk" or null) { - var questRow = _dataManager.GetExcelSheet()!.GetRow(rowId); + var questRow = _dataManager.GetExcelSheet().GetRowOrDefault(rowId); return questRow?.Text; } else diff --git a/Questionable/Functions/GameFunctions.cs b/Questionable/Functions/GameFunctions.cs index bb0313ae5..d4a7e692e 100644 --- a/Questionable/Functions/GameFunctions.cs +++ b/Questionable/Functions/GameFunctions.cs @@ -14,23 +14,22 @@ using FFXIVClientStructs.FFXIV.Client.Game.UI; using FFXIVClientStructs.FFXIV.Client.UI.Agent; using FFXIVClientStructs.FFXIV.Component.GUI; using LLib.GameUI; +using Lumina.Excel.Sheets; using Microsoft.Extensions.Logging; using Questionable.Model; -using Questionable.Model.Common; using Questionable.Model.Questing; -using Action = Lumina.Excel.GeneratedSheets2.Action; +using Action = Lumina.Excel.Sheets.Action; using BattleChara = FFXIVClientStructs.FFXIV.Client.Game.Character.BattleChara; -using ContentFinderCondition = Lumina.Excel.GeneratedSheets.ContentFinderCondition; +using ContentFinderCondition = Lumina.Excel.Sheets.ContentFinderCondition; using ObjectKind = Dalamud.Game.ClientState.Objects.Enums.ObjectKind; using Quest = Questionable.Model.Quest; -using TerritoryType = Lumina.Excel.GeneratedSheets.TerritoryType; namespace Questionable.Functions; internal sealed unsafe class GameFunctions { private readonly ReadOnlyDictionary _territoryToAetherCurrentCompFlgSet; - private readonly ReadOnlyDictionary _contentFinderConditionToContentId; + private readonly ReadOnlyDictionary _contentFinderConditionToContentId; private readonly QuestFunctions _questFunctions; private readonly IDataManager _dataManager; @@ -63,14 +62,15 @@ internal sealed unsafe class GameFunctions _configuration = configuration; _logger = logger; - _territoryToAetherCurrentCompFlgSet = dataManager.GetExcelSheet()! + _territoryToAetherCurrentCompFlgSet = dataManager.GetExcelSheet() .Where(x => x.RowId > 0) - .Where(x => x.Unknown32 > 0) - .ToDictionary(x => (ushort)x.RowId, x => x.Unknown32) + .Where(x => x.Unknown3 > 0) + .ToDictionary(x => (ushort)x.RowId, x => x.Unknown4) .AsReadOnly(); - _contentFinderConditionToContentId = dataManager.GetExcelSheet()! - .Where(x => x.RowId > 0 && x.Content > 0) - .ToDictionary(x => x.RowId, x => x.Content) + _territoryToAetherCurrentCompFlgSet = new Dictionary().AsReadOnly(); + _contentFinderConditionToContentId = dataManager.GetExcelSheet() + .Where(x => x.RowId > 0 && x.Content.RowId > 0) + .ToDictionary(x => x.RowId, x => x.Content.RowId) .AsReadOnly(); } @@ -220,7 +220,7 @@ internal sealed unsafe class GameFunctions public bool UseAction(IGameObject gameObject, EAction action, bool checkCanUse = true) { - var actionRow = _dataManager.GetExcelSheet()!.GetRow((uint)action)!; + var actionRow = _dataManager.GetExcelSheet().GetRow((uint)action); if (checkCanUse && !ActionManager.CanUseActionOnTarget((uint)action, (GameObject*)gameObject.Address)) { _logger.LogWarning("Can not use action {Action} on target {Target}", action, gameObject); @@ -378,7 +378,7 @@ internal sealed unsafe class GameFunctions public void OpenDutyFinder(uint contentFinderConditionId) { - if (_contentFinderConditionToContentId.TryGetValue(contentFinderConditionId, out ushort contentId)) + if (_contentFinderConditionToContentId.TryGetValue(contentFinderConditionId, out uint contentId)) { if (UIState.IsInstanceContentUnlocked(contentId)) AgentContentsFinder.Instance()->OpenRegularDuty(contentFinderConditionId); diff --git a/Questionable/Functions/QuestFunctions.cs b/Questionable/Functions/QuestFunctions.cs index b0a923955..9211514dc 100644 --- a/Questionable/Functions/QuestFunctions.cs +++ b/Questionable/Functions/QuestFunctions.cs @@ -11,7 +11,7 @@ using FFXIVClientStructs.FFXIV.Client.UI.Agent; using FFXIVClientStructs.FFXIV.Component.GUI; using LLib.GameData; using LLib.GameUI; -using Lumina.Excel.GeneratedSheets; +using Lumina.Excel.Sheets; using Questionable.Controller; using Questionable.Controller.Steps.Interactions; using Questionable.Data; @@ -311,8 +311,8 @@ internal sealed unsafe class QuestFunctions ..QuestData.CrystalTowerQuests ]; - EClassJob classJob = (EClassJob?)_clientState.LocalPlayer?.ClassJob.Id ?? EClassJob.Adventurer; - ushort[] shadowbringersRoleQuestChapters = QuestData.AllRoleQuestChapters.Select(x => x[0]).ToArray(); + EClassJob classJob = (EClassJob?)_clientState.LocalPlayer?.ClassJob.RowId ?? EClassJob.Adventurer; + uint[] shadowbringersRoleQuestChapters = QuestData.AllRoleQuestChapters.Select(x => x[0]).ToArray(); if (classJob != EClassJob.Adventurer) { priorityQuests.AddRange(_questRegistry.GetKnownClassJobQuests(classJob) @@ -460,7 +460,7 @@ internal sealed unsafe class QuestFunctions // this only checks for the current class IQuestInfo questInfo = _questData.GetQuestInfo(leveId); - if (!questInfo.ClassJobs.Contains((EClassJob)_clientState.LocalPlayer!.ClassJob.Id) || + if (!questInfo.ClassJobs.Contains((EClassJob)_clientState.LocalPlayer!.ClassJob.RowId) || questInfo.Level > _clientState.LocalPlayer.Level) return true; @@ -597,7 +597,7 @@ internal sealed unsafe class QuestFunctions public bool IsClassJobUnlocked(EClassJob classJob) { var classJobRow = _dataManager.GetExcelSheet()!.GetRow((uint)classJob)!; - var questId = (ushort)classJobRow.UnlockQuest.Row; + var questId = (ushort)classJobRow.UnlockQuest.RowId; if (questId != 0) return IsQuestComplete(new QuestId(questId)); @@ -608,7 +608,7 @@ internal sealed unsafe class QuestFunctions public bool IsJobUnlocked(EClassJob classJob) { var classJobRow = _dataManager.GetExcelSheet()!.GetRow((uint)classJob)!; - return IsClassJobUnlocked((EClassJob)classJobRow.ClassJobParent.Row); + return IsClassJobUnlocked((EClassJob)classJobRow.ClassJobParent.RowId); } public GrandCompany GetGrandCompany() diff --git a/Questionable/Model/LeveInfo.cs b/Questionable/Model/LeveInfo.cs index 14878f71c..21eaf552b 100644 --- a/Questionable/Model/LeveInfo.cs +++ b/Questionable/Model/LeveInfo.cs @@ -1,7 +1,7 @@ using System.Collections.Generic; using System.Collections.Immutable; using LLib.GameData; -using Lumina.Excel.GeneratedSheets2; +using Lumina.Excel.Sheets; using Questionable.Model.Questing; namespace Questionable.Model; @@ -11,13 +11,13 @@ internal sealed class LeveInfo : IQuestInfo public LeveInfo(Leve leve) { QuestId = new LeveId((ushort)leve.RowId); - Name = leve.Name; + Name = leve.Name.ToString(); Level = leve.ClassJobLevel; - JournalGenre = leve.JournalGenre.Row; + JournalGenre = leve.JournalGenre.RowId; SortKey = QuestId.Value; - IssuerDataId = leve.LevelLevemete.Value!.Object.Row; - ClassJobs = QuestInfoUtils.AsList(leve.ClassJobCategory.Value!); - Expansion = (EExpansionVersion)leve.LevelLevemete.Value.Territory.Value!.ExVersion.Row; + IssuerDataId = leve.LevelLevemete.Value.Object.RowId; + ClassJobs = QuestInfoUtils.AsList(leve.ClassJobCategory.Value); + Expansion = (EExpansionVersion)leve.LevelLevemete.Value.Territory.Value.ExVersion.RowId; } public ElementId QuestId { get; } diff --git a/Questionable/Model/QuestInfo.cs b/Questionable/Model/QuestInfo.cs index 6149209a7..cca298902 100644 --- a/Questionable/Model/QuestInfo.cs +++ b/Questionable/Model/QuestInfo.cs @@ -3,16 +3,15 @@ using System.Collections.Generic; using System.Collections.Immutable; using System.Linq; using FFXIVClientStructs.FFXIV.Client.UI.Agent; -using JetBrains.Annotations; using LLib.GameData; +using Questionable.Data.Sheets; using Questionable.Model.Questing; -using ExcelQuest = Lumina.Excel.GeneratedSheets2.Quest; namespace Questionable.Model; internal sealed class QuestInfo : IQuestInfo { - public QuestInfo(ExcelQuest quest, ushort newGamePlusChapter, byte startingCity) + public QuestInfo(QuestEx quest, uint newGamePlusChapter, byte startingCity) { QuestId = new QuestId((ushort)(quest.RowId & 0xFFFF)); @@ -34,38 +33,38 @@ internal sealed class QuestInfo : IQuestInfo _ => "", }; - Name = $"{quest.Name}{suffix}"; + Name = $"{quest.Original.Name}{suffix}"; Level = quest.ClassJobLevel[0]; - IssuerDataId = quest.IssuerStart.Row; + IssuerDataId = quest.IssuerStart.RowId; IsRepeatable = quest.IsRepeatable; PreviousQuests = new List { - new(new QuestId((ushort)(quest.PreviousQuest[0].Row & 0xFFFF)), quest.Unknown7), - new(new QuestId((ushort)(quest.PreviousQuest[1].Row & 0xFFFF))), - new(new QuestId((ushort)(quest.PreviousQuest[2].Row & 0xFFFF))) + new(new QuestId((ushort)(quest.PreviousQuest[0].RowId & 0xFFFF)), quest.Unknown7), + new(new QuestId((ushort)(quest.PreviousQuest[1].RowId & 0xFFFF))), + new(new QuestId((ushort)(quest.PreviousQuest[2].RowId & 0xFFFF))) } .Where(x => x.QuestId.Value != 0) .ToImmutableList(); PreviousQuestJoin = (EQuestJoin)quest.PreviousQuestJoin; QuestLocks = quest.QuestLock - .Select(x => new QuestId((ushort)(x.Row & 0xFFFFF))) + .Select(x => new QuestId((ushort)(x.RowId & 0xFFFFF))) .Where(x => x.Value != 0) .ToImmutableList(); QuestLockJoin = (EQuestJoin)quest.QuestLockJoin; - JournalGenre = quest.JournalGenre?.Row; + JournalGenre = quest.JournalGenre.ValueNullable?.RowId; SortKey = quest.SortKey; - IsMainScenarioQuest = quest.JournalGenre?.Value?.JournalCategory?.Value?.JournalSection?.Row is 0 or 1; - CompletesInstantly = quest.TodoParams[0].ToDoCompleteSeq == 0; - PreviousInstanceContent = quest.InstanceContent.Select(x => (ushort)x.Row).Where(x => x != 0).ToList(); + IsMainScenarioQuest = quest.JournalGenre.ValueNullable?.JournalCategory.ValueNullable?.JournalSection.ValueNullable?.RowId is 0 or 1; + CompletesInstantly = quest.Original.TodoParams[0].ToDoCompleteSeq == 0; + PreviousInstanceContent = quest.InstanceContent.Select(x => (ushort)x.RowId).Where(x => x != 0).ToList(); PreviousInstanceContentJoin = (EQuestJoin)quest.InstanceContentJoin; - GrandCompany = (GrandCompany)quest.GrandCompany.Row; - AlliedSociety = (EAlliedSociety)quest.BeastTribe.Row; - ClassJobs = QuestInfoUtils.AsList(quest.ClassJobCategory0.Value!); - IsSeasonalEvent = quest.Festival.Row != 0; + GrandCompany = (GrandCompany)quest.GrandCompany.RowId; + AlliedSociety = (EAlliedSociety)quest.BeastTribe.RowId; + ClassJobs = QuestInfoUtils.AsList(quest.ClassJobCategory0.ValueNullable!); + IsSeasonalEvent = quest.Festival.RowId != 0; NewGamePlusChapter = newGamePlusChapter; StartingCity = startingCity; - Expansion = (EExpansionVersion)quest.Expansion.Row; + Expansion = (EExpansionVersion)quest.Expansion.RowId; } @@ -88,7 +87,7 @@ internal sealed class QuestInfo : IQuestInfo public EAlliedSociety AlliedSociety { get; } public IReadOnlyList ClassJobs { get; } public bool IsSeasonalEvent { get; } - public ushort NewGamePlusChapter { get; } + public uint NewGamePlusChapter { get; } public byte StartingCity { get; set; } public EExpansionVersion Expansion { get; } diff --git a/Questionable/Model/QuestInfoUtils.cs b/Questionable/Model/QuestInfoUtils.cs index 4f44fd4aa..c22415bf6 100644 --- a/Questionable/Model/QuestInfoUtils.cs +++ b/Questionable/Model/QuestInfoUtils.cs @@ -1,7 +1,8 @@ -using System.Collections.Generic; +using System; +using System.Collections.Generic; using System.Linq; using LLib.GameData; -using Lumina.Excel.GeneratedSheets2; +using Lumina.Excel.Sheets; namespace Questionable.Model; @@ -9,8 +10,12 @@ internal static class QuestInfoUtils { private static readonly Dictionary> CachedClassJobs = new(); - internal static IReadOnlyList AsList(ClassJobCategory classJobCategory) + internal static IReadOnlyList AsList(ClassJobCategory? optionalClassJobCategory) { + if (optionalClassJobCategory == null) + return Enum.GetValues(); + + ClassJobCategory classJobCategory = optionalClassJobCategory.Value; if (CachedClassJobs.TryGetValue(classJobCategory.RowId, out IReadOnlyList? classJobs)) return classJobs; @@ -57,8 +62,8 @@ internal static class QuestInfoUtils { EClassJob.Dancer, classJobCategory.DNC }, { EClassJob.Reaper, classJobCategory.RPR }, { EClassJob.Sage, classJobCategory.SGE }, - { EClassJob.Viper, classJobCategory.Unknown1 }, - { EClassJob.Pictomancer, classJobCategory.Unknown2 } + { EClassJob.Viper, classJobCategory.VPR }, + { EClassJob.Pictomancer, classJobCategory.PCT } } .Where(y => y.Value) .Select(y => y.Key) diff --git a/Questionable/Model/SatisfactionSupplyInfo.cs b/Questionable/Model/SatisfactionSupplyInfo.cs index 41f6d5e25..e2c25ad88 100644 --- a/Questionable/Model/SatisfactionSupplyInfo.cs +++ b/Questionable/Model/SatisfactionSupplyInfo.cs @@ -1,7 +1,7 @@ using System.Collections.Generic; using System.Collections.Immutable; using LLib.GameData; -using Lumina.Excel.GeneratedSheets; +using Lumina.Excel.Sheets; using Questionable.Model.Questing; namespace Questionable.Model; @@ -11,12 +11,12 @@ internal sealed class SatisfactionSupplyInfo : IQuestInfo public SatisfactionSupplyInfo(SatisfactionNpc npc) { QuestId = new SatisfactionSupplyNpcId((ushort)npc.RowId); - Name = npc.Npc.Value!.Singular; - IssuerDataId = npc.Npc.Row; + Name = npc.Npc.Value.Singular.ToString(); + IssuerDataId = npc.Npc.RowId; Level = npc.LevelUnlock; SortKey = QuestId.Value; - Expansion = (EExpansionVersion)npc.QuestRequired.Value!.Expansion.Row; - PreviousQuests = [new PreviousQuestInfo(new QuestId((ushort)(npc.QuestRequired.Row & 0xFFFF)))]; + Expansion = (EExpansionVersion)npc.QuestRequired.Value!.Expansion.RowId; + PreviousQuests = [new PreviousQuestInfo(new QuestId((ushort)(npc.QuestRequired.RowId & 0xFFFF)))]; } public ElementId QuestId { get; } diff --git a/Questionable/Questionable.csproj b/Questionable/Questionable.csproj index 64df5619d..6d44ba067 100644 --- a/Questionable/Questionable.csproj +++ b/Questionable/Questionable.csproj @@ -1,4 +1,4 @@ - + dist $(SolutionDir)=X:\ diff --git a/Questionable/Windows/ConfigWindow.cs b/Questionable/Windows/ConfigWindow.cs index 7bcd76817..97847de52 100644 --- a/Questionable/Windows/ConfigWindow.cs +++ b/Questionable/Windows/ConfigWindow.cs @@ -1,4 +1,5 @@ using System; +using System.Collections.Generic; using System.Diagnostics.CodeAnalysis; using System.Linq; using Dalamud.Game.Text; @@ -10,7 +11,7 @@ using Dalamud.Plugin.Services; using Dalamud.Utility; using ImGuiNET; using LLib.ImGui; -using Lumina.Excel.GeneratedSheets; +using Lumina.Excel.Sheets; using Questionable.External; using GrandCompany = FFXIVClientStructs.FFXIV.Client.UI.Agent.GrandCompany; @@ -36,7 +37,7 @@ internal sealed class ConfigWindow : LWindow, IPersistableWindowConfig _notificationMasterIpc = notificationMasterIpc; _configuration = configuration; - var mounts = dataManager.GetExcelSheet()! + var mounts = dataManager.GetExcelSheet() .Where(x => x is { RowId: > 0, Icon: > 0 }) .Select(x => (MountId: x.RowId, Name: x.Singular.ToString())) .Where(x => !string.IsNullOrEmpty(x.Name)) diff --git a/Questionable/Windows/JournalComponents/GatheringJournalComponent.cs b/Questionable/Windows/JournalComponents/GatheringJournalComponent.cs index 81588465f..53b1576e8 100644 --- a/Questionable/Windows/JournalComponents/GatheringJournalComponent.cs +++ b/Questionable/Windows/JournalComponents/GatheringJournalComponent.cs @@ -10,7 +10,7 @@ using Dalamud.Plugin.Services; using Dalamud.Utility.Signatures; using ImGuiNET; using LLib.GameData; -using Lumina.Excel.GeneratedSheets; +using Lumina.Excel.Sheets; using Questionable.Controller; using Questionable.Model; using Questionable.Model.Gathering; @@ -44,24 +44,24 @@ internal sealed class GatheringJournalComponent _gatheringPointRegistry = gatheringPointRegistry; // TODO some of the logic here would be better suited elsewhere, in particular the [item] → [gathering item] → [location] lookup - var routeToGatheringPoint = dataManager.GetExcelSheet()! - .Where(x => x.UnkData0[0].GatheringPoint != 0) - .SelectMany(x => x.UnkData0 - .Where(y => y.GatheringPoint != 0) + var routeToGatheringPoint = dataManager.GetExcelSheet() + .Where(x => x.GatheringPoint[0].RowId != 0) + .SelectMany(x => x.GatheringPoint + .Where(y => y.RowId != 0) .Select(y => new { RouteId = x.RowId, - GatheringPointId = y.GatheringPoint + GatheringPointId = y.RowId })) .GroupBy(x => x.RouteId) .ToDictionary(x => x.Key, x => x.Select(y => y.GatheringPointId).ToList()); - var gatheringLeveSheet = dataManager.GetExcelSheet()!; - var territoryTypeSheet = dataManager.GetExcelSheet()!; - var gatheringPointToLeve = dataManager.GetExcelSheet()! + var gatheringLeveSheet = dataManager.GetExcelSheet(); + var territoryTypeSheet = dataManager.GetExcelSheet(); + var gatheringPointToLeve = dataManager.GetExcelSheet() .Where(x => x.RowId > 0) .Select(x => { - uint startZonePlaceName = x.PlaceNameStartZone.Row; + uint startZonePlaceName = x.PlaceNameStartZone.RowId; startZonePlaceName = startZonePlaceName switch { 27 => 28, // limsa @@ -71,16 +71,17 @@ internal sealed class GatheringJournalComponent _ => startZonePlaceName }; - var territoryType = territoryTypeSheet.FirstOrDefault(y => startZonePlaceName == y.PlaceName.Row) + var territoryType = territoryTypeSheet.Cast() + .FirstOrDefault(y => startZonePlaceName == y!.Value.PlaceName.RowId) ?? throw new InvalidOperationException($"Unable to use {startZonePlaceName}"); return new { LeveId = x.RowId, LeveName = x.Name.ToString(), TerritoryType = (ushort)territoryType.RowId, - TerritoryName = territoryType.PlaceName.Value?.Name.ToString(), - Expansion = (EExpansionVersion)territoryType.ExVersion.Row, - GatheringLeve = gatheringLeveSheet.GetRow((uint)x.DataId), + TerritoryName = territoryType.PlaceName.ValueNullable?.Name.ToString(), + Expansion = (EExpansionVersion)territoryType.ExVersion.RowId, + GatheringLeve = gatheringLeveSheet.GetRowOrDefault(x.DataId.RowId), }; }) .Where(x => x.GatheringLeve != null) @@ -91,9 +92,9 @@ internal sealed class GatheringJournalComponent x.TerritoryType, x.TerritoryName, x.Expansion, - GatheringPoints = x.GatheringLeve!.Route - .Where(y => y.Row != 0) - .SelectMany(y => routeToGatheringPoint[y.Row]), + GatheringPoints = x.GatheringLeve!.Value.Route + .Where(y => y.RowId != 0) + .SelectMany(y => routeToGatheringPoint[y.RowId]), }) .SelectMany(x => x.GatheringPoints.Select(y => new { @@ -110,40 +111,40 @@ internal sealed class GatheringJournalComponent var itemSheet = dataManager.GetExcelSheet()!; _gatheringItems = dataManager.GetExcelSheet()! - .Where(x => x.RowId != 0 && x.GatheringItemLevel.Row != 0) + .Where(x => x.RowId != 0 && x.GatheringItemLevel.RowId != 0) .Select(x => new { GatheringItemId = (int)x.RowId, - Name = itemSheet.GetRow((uint)x.Item)?.Name.ToString() + Name = itemSheet.GetRowOrDefault(x.Item.RowId)?.Name.ToString() }) .Where(x => !string.IsNullOrEmpty(x.Name)) .ToDictionary(x => x.GatheringItemId, x => x.Name!); _gatheringPointsByExpansion = dataManager.GetExcelSheet()! - .Where(x => x.GatheringPointBase.Row != 0) - .Where(x => x.GatheringPointBase.Row is < 653 or > 680) // exclude ishgard restoration phase 1 - .DistinctBy(x => x.GatheringPointBase.Row) + .Where(x => x.GatheringPointBase.RowId != 0) + .Where(x => x.GatheringPointBase.RowId is < 653 or > 680) // exclude ishgard restoration phase 1 + .DistinctBy(x => x.GatheringPointBase.RowId) .Select(x => new { GatheringPointId = x.RowId, - Point = new DefaultGatheringPoint(new GatheringPointId((ushort)x.GatheringPointBase.Row), - x.GatheringPointBase.Value!.GatheringType.Row switch + Point = new DefaultGatheringPoint(new GatheringPointId((ushort)x.GatheringPointBase.RowId), + x.GatheringPointBase.Value!.GatheringType.RowId switch { 0 or 1 => EClassJob.Miner, 2 or 3 => EClassJob.Botanist, _ => EClassJob.Fisher }, x.GatheringPointBase.Value.GatheringLevel, - x.GatheringPointBase.Value.Item.Where(y => y != 0).Select(y => (ushort)y).ToList(), - (EExpansionVersion?)x.TerritoryType.Value?.ExVersion.Row ?? (EExpansionVersion)byte.MaxValue, - (ushort)x.TerritoryType.Row, - x.TerritoryType.Value?.PlaceName.Value?.Name.ToString(), - $"{x.GatheringPointBase.Row} - {x.PlaceName.Value?.Name}") + x.GatheringPointBase.Value.Item.Where(y => y.RowId != 0).Select(y => (ushort)y.RowId).ToList(), + (EExpansionVersion?)x.TerritoryType.ValueNullable?.ExVersion.RowId ?? (EExpansionVersion)byte.MaxValue, + (ushort)x.TerritoryType.RowId, + x.TerritoryType.ValueNullable?.PlaceName.ValueNullable?.Name.ToString(), + $"{x.GatheringPointBase.RowId} - {x.PlaceName.ValueNullable?.Name}") }) .Where(x => x.Point.ClassJob != EClassJob.Fisher) .Select(x => { - if (gatheringPointToLeve.TryGetValue((int)x.GatheringPointId, out var leve)) + if (gatheringPointToLeve.TryGetValue(x.GatheringPointId, out var leve)) { // it's a leve return x.Point with @@ -161,9 +162,9 @@ internal sealed class GatheringJournalComponent var territoryType = territoryTypeSheet.GetRow(gatheringRoot.Steps.Last().TerritoryId)!; return x.Point with { - Expansion = (EExpansionVersion)territoryType.ExVersion.Row, + Expansion = (EExpansionVersion)territoryType.ExVersion.RowId, TerritoryType = (ushort)territoryType.RowId, - TerritoryName = territoryType.PlaceName.Value?.Name.ToString(), + TerritoryName = territoryType.PlaceName.ValueNullable?.Name.ToString(), }; } else @@ -429,7 +430,7 @@ internal sealed class GatheringJournalComponent } } - public void ClearCounts() + public void ClearCounts(int type, int code) { foreach (var expansion in _gatheringPointsByExpansion) { diff --git a/Questionable/Windows/JournalComponents/QuestJournalComponent.cs b/Questionable/Windows/JournalComponents/QuestJournalComponent.cs index f273b00da..36565fdf8 100644 --- a/Questionable/Windows/JournalComponents/QuestJournalComponent.cs +++ b/Questionable/Windows/JournalComponents/QuestJournalComponent.cs @@ -368,7 +368,7 @@ internal sealed class QuestJournalComponent } } - internal void ClearCounts() + internal void ClearCounts(int type, int code) { foreach (var genreCount in _genreCounts.ToList()) _genreCounts[genreCount.Key] = genreCount.Value with { Completed = 0 }; diff --git a/Questionable/Windows/QuestWindow.cs b/Questionable/Windows/QuestWindow.cs index 1deaf934c..4c100a1ba 100644 --- a/Questionable/Windows/QuestWindow.cs +++ b/Questionable/Windows/QuestWindow.cs @@ -67,7 +67,7 @@ internal sealed class QuestWindow : LWindow, IPersistableWindowConfig #endif SizeConstraints = new WindowSizeConstraints { - MinimumSize = new Vector2(200, 30), + MinimumSize = new Vector2(230, 30), MaximumSize = default }; RespectCloseHotkey = false; diff --git a/vendor/ECommons b/vendor/ECommons index 147e12e95..71ee09f7c 160000 --- a/vendor/ECommons +++ b/vendor/ECommons @@ -1 +1 @@ -Subproject commit 147e12e95f2fb781f2c8ddac31d948700ed9051c +Subproject commit 71ee09f7cc2230a73503b945422760da1368405c -- 2.45.2 From 60ec9e80c6ef0832ef0e84659017fd269f08b5d2 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sat, 16 Nov 2024 22:08:04 +0100 Subject: [PATCH 232/448] Add aetheryte data for Dock Poga --- Questionable.Model/Common/Converter/AetheryteConverter.cs | 1 + Questionable.Model/Common/EAetheryteLocation.cs | 1 + Questionable.Model/common-schema.json | 1 + Questionable/Data/AetheryteData.cs | 1 + 4 files changed, 4 insertions(+) diff --git a/Questionable.Model/Common/Converter/AetheryteConverter.cs b/Questionable.Model/Common/Converter/AetheryteConverter.cs index 36853586a..6d882ec30 100644 --- a/Questionable.Model/Common/Converter/AetheryteConverter.cs +++ b/Questionable.Model/Common/Converter/AetheryteConverter.cs @@ -110,6 +110,7 @@ public sealed class AetheryteConverter() : EnumConverter(Val { EAetheryteLocation.KozamaukaOkHanu, "Kozama'uka - Ok'hanu" }, { EAetheryteLocation.KozamaukaManyFires, "Kozama'uka - Many Fires" }, { EAetheryteLocation.KozamaukaEarthenshire, "Kozama'uka - Earthenshire" }, + { EAetheryteLocation.KozamaukaDockPoga, "Kozama'uka - Dock Poga" }, { EAetheryteLocation.YakTelIqBraax, "Yak T'el - Iq Br'aax" }, { EAetheryteLocation.YakTelMamook, "Yak T'el - Mamook" }, { EAetheryteLocation.ShaaloaniHhusatahwi, "Shaaloani - Hhusatahwi" }, diff --git a/Questionable.Model/Common/EAetheryteLocation.cs b/Questionable.Model/Common/EAetheryteLocation.cs index 117382067..b4b93076b 100644 --- a/Questionable.Model/Common/EAetheryteLocation.cs +++ b/Questionable.Model/Common/EAetheryteLocation.cs @@ -258,6 +258,7 @@ public enum EAetheryteLocation KozamaukaOkHanu = 202, KozamaukaManyFires = 203, KozamaukaEarthenshire = 204, + KozamaukaDockPoga = 238, YakTelIqBraax = 205, YakTelMamook = 206, ShaaloaniHhusatahwi = 207, diff --git a/Questionable.Model/common-schema.json b/Questionable.Model/common-schema.json index 97d1474ef..b0cdeeec1 100644 --- a/Questionable.Model/common-schema.json +++ b/Questionable.Model/common-schema.json @@ -120,6 +120,7 @@ "Kozama'uka - Ok'hanu", "Kozama'uka - Many Fires", "Kozama'uka - Earthenshire", + "Kozama'uka - Dock Poga", "Yak T'el - Iq Br'aax", "Yak T'el - Mamook", "Shaaloani - Hhusatahwi", diff --git a/Questionable/Data/AetheryteData.cs b/Questionable/Data/AetheryteData.cs index 1e8f34c23..818132d93 100644 --- a/Questionable/Data/AetheryteData.cs +++ b/Questionable/Data/AetheryteData.cs @@ -291,6 +291,7 @@ internal sealed class AetheryteData { EAetheryteLocation.KozamaukaOkHanu, new(-169.51251f, 6.576599f, -479.42322f) }, { EAetheryteLocation.KozamaukaManyFires, new(541.16125f, 117.41809f, 203.60107f) }, { EAetheryteLocation.KozamaukaEarthenshire, new(-477.53113f, 124.04053f, 311.32983f) }, + { EAetheryteLocation.KozamaukaDockPoga, new(787.59436f, 14.175598f, -236.22491f) }, { EAetheryteLocation.YakTelIqBraax, new(-397.05505f, 23.5141f, -431.93713f) }, { EAetheryteLocation.YakTelMamook, new(721.40076f, -132.31104f, 526.1769f) }, { EAetheryteLocation.ShaaloaniHhusatahwi, new(386.40417f, -0.19836426f, 467.61267f) }, -- 2.45.2 From db43fec431eb21f141b75d49bf9550356a896841 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sun, 17 Nov 2024 02:12:27 +0100 Subject: [PATCH 233/448] Add 7.1 MSQ --- LLib | 2 +- .../MSQ/G-7.1/5244_A Royal Invitation.json | 126 +++++++++++ .../MSQ/G-7.1/5245_Alexandria Mourns.json | 74 +++++++ .../MSQ/G-7.1/5246_In Search of the Past.json | 146 +++++++++++++ .../MSQ/G-7.1/5247_Among the Abandoned.json | 126 +++++++++++ .../G-7.1/5248_Guidance of the Hhetso.json | 202 ++++++++++++++++++ .../MSQ/G-7.1/5249_The Warmth of Family.json | 94 ++++++++ .../MSQ/G-7.1/5250_Crossroads.json | 126 +++++++++++ .../Misc/5004_How the West Was Sung.json | 21 ++ Questionable/Data/JournalData.cs | 11 +- Questionable/Data/Sheets/QuestEx.cs | 1 + Questionable/Functions/ExcelFunctions.cs | 20 +- Questionable/Functions/GameFunctions.cs | 3 +- 13 files changed, 934 insertions(+), 18 deletions(-) create mode 100644 QuestPaths/7.x - Dawntrail/MSQ/G-7.1/5244_A Royal Invitation.json create mode 100644 QuestPaths/7.x - Dawntrail/MSQ/G-7.1/5245_Alexandria Mourns.json create mode 100644 QuestPaths/7.x - Dawntrail/MSQ/G-7.1/5246_In Search of the Past.json create mode 100644 QuestPaths/7.x - Dawntrail/MSQ/G-7.1/5247_Among the Abandoned.json create mode 100644 QuestPaths/7.x - Dawntrail/MSQ/G-7.1/5248_Guidance of the Hhetso.json create mode 100644 QuestPaths/7.x - Dawntrail/MSQ/G-7.1/5249_The Warmth of Family.json create mode 100644 QuestPaths/7.x - Dawntrail/MSQ/G-7.1/5250_Crossroads.json create mode 100644 QuestPaths/7.x - Dawntrail/Unlocks/Misc/5004_How the West Was Sung.json diff --git a/LLib b/LLib index 538329a1e..70b0bef24 160000 --- a/LLib +++ b/LLib @@ -1 +1 @@ -Subproject commit 538329a1e80acbcd09e28bd6dd459c35b5563c0a +Subproject commit 70b0bef2459898a70f7b34b4d196bbaeb72397b1 diff --git a/QuestPaths/7.x - Dawntrail/MSQ/G-7.1/5244_A Royal Invitation.json b/QuestPaths/7.x - Dawntrail/MSQ/G-7.1/5244_A Royal Invitation.json new file mode 100644 index 000000000..320302f89 --- /dev/null +++ b/QuestPaths/7.x - Dawntrail/MSQ/G-7.1/5244_A Royal Invitation.json @@ -0,0 +1,126 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1047679, + "Position": { + "X": -165.36206, + "Y": -14.999356, + "Z": 203.93677 + }, + "TerritoryId": 1185, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Tuliyollal", + "AethernetShortcut": [ + "[Tuliyollal] Aetheryte Plaza", + "[Tuliyollal] The For'ard Cabins" + ] + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1046521, + "Position": { + "X": -46.616333, + "Y": -17.97287, + "Z": 180.3158 + }, + "StopDistance": 5, + "TerritoryId": 1185, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2014470, + "Position": { + "X": -32.700073, + "Y": -17.47168, + "Z": 184.9851 + }, + "TerritoryId": 1185, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1047501, + "Position": { + "X": -189.80707, + "Y": 120.74999, + "Z": -367.14734 + }, + "TerritoryId": 1185, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Tuliyollal] Bayside Bevy Marketplace", + "[Tuliyollal] Vollok Shoonsa" + ], + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_KINGMG101_05244_SYSTEM_000_301", + "Yes": true + } + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1048083, + "Position": { + "X": 302.05237, + "Y": 51.199978, + "Z": 205.0354 + }, + "TerritoryId": 1186, + "InteractionType": "Interact", + "AetheryteShortcut": "Solution Nine", + "AethernetShortcut": [ + "[Solution Nine] Aetheryte Plaza", + "[Solution Nine] Neon Stein" + ], + "TargetTerritoryId": 1207, + "SkipConditions": { + "AetheryteShortcutIf": { + "InTerritory": [ + 1207 + ] + }, + "StepIf": { + "InTerritory": [ + 1207 + ] + } + } + }, + { + "DataId": 1052185, + "Position": { + "X": -4.837158, + "Y": -3.632158E-08, + "Z": 5.996765 + }, + "TerritoryId": 1207, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/7.x - Dawntrail/MSQ/G-7.1/5245_Alexandria Mourns.json b/QuestPaths/7.x - Dawntrail/MSQ/G-7.1/5245_Alexandria Mourns.json new file mode 100644 index 000000000..6d37db447 --- /dev/null +++ b/QuestPaths/7.x - Dawntrail/MSQ/G-7.1/5245_Alexandria Mourns.json @@ -0,0 +1,74 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1052185, + "Position": { + "X": -4.837158, + "Y": -3.632158E-08, + "Z": 5.996765 + }, + "TerritoryId": 1207, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2014102, + "Position": { + "X": -0.015319824, + "Y": 0.99176025, + "Z": 16.03717 + }, + "TerritoryId": 1207, + "InteractionType": "Interact", + "TargetTerritoryId": 1186, + "SkipConditions": { + "StepIf": { + "InTerritory": [ + 1186 + ] + } + } + }, + { + "DataId": 1052191, + "Position": { + "X": 20.248657, + "Y": 38.0566, + "Z": -388.90674 + }, + "TerritoryId": 1186, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Solution Nine] Neon Stein", + "[Solution Nine] Resolution" + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1052198, + "Position": { + "X": -303.2426, + "Y": 9.519508, + "Z": 51.80432 + }, + "StopDistance": 5, + "TerritoryId": 1186, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/7.x - Dawntrail/MSQ/G-7.1/5246_In Search of the Past.json b/QuestPaths/7.x - Dawntrail/MSQ/G-7.1/5246_In Search of the Past.json new file mode 100644 index 000000000..6d0878d14 --- /dev/null +++ b/QuestPaths/7.x - Dawntrail/MSQ/G-7.1/5246_In Search of the Past.json @@ -0,0 +1,146 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1052202, + "Position": { + "X": -305.83655, + "Y": 9.519508, + "Z": 53.147095 + }, + "StopDistance": 5, + "TerritoryId": 1186, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1052205, + "Position": { + "X": -257.0382, + "Y": 30, + "Z": -569.05475 + }, + "TerritoryId": 1191, + "InteractionType": "Interact", + "AetheryteShortcut": "Heritage Found - The Outskirts" + }, + { + "DataId": 1052204, + "Position": { + "X": -158.25134, + "Y": 25.984516, + "Z": -521.90436 + }, + "TerritoryId": 1191, + "InteractionType": "Interact", + "Fly": true + }, + { + "DataId": 1052206, + "Position": { + "X": -137.86536, + "Y": 35, + "Z": -568.29175 + }, + "TerritoryId": 1191, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1048083, + "Position": { + "X": 302.05237, + "Y": 51.199978, + "Z": 205.0354 + }, + "TerritoryId": 1186, + "InteractionType": "Interact", + "AetheryteShortcut": "Solution Nine", + "AethernetShortcut": [ + "[Solution Nine] Aetheryte Plaza", + "[Solution Nine] Neon Stein" + ], + "TargetTerritoryId": 1207, + "SkipConditions": { + "AetheryteShortcutIf": { + "InTerritory": [ + 1207 + ] + }, + "StepIf": { + "InTerritory": [ + 1207 + ] + } + } + }, + { + "DataId": 1048161, + "Position": { + "X": -5.874817, + "Y": -3.6188258E-08, + "Z": 6.8512573 + }, + "TerritoryId": 1207, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1052207, + "Position": { + "X": -609.3385, + "Y": -3.3580189, + "Z": -504.5701 + }, + "TerritoryId": 1191, + "InteractionType": "Interact", + "AetheryteShortcut": "Heritage Found - The Outskirts", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "TerritoryId": 1191, + "InteractionType": "Duty", + "ContentFinderConditionId": 1008 + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1052213, + "Position": { + "X": 117.02136, + "Y": 12.5, + "Z": -67.826416 + }, + "StopDistance": 6, + "TerritoryId": 1254, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/7.x - Dawntrail/MSQ/G-7.1/5247_Among the Abandoned.json b/QuestPaths/7.x - Dawntrail/MSQ/G-7.1/5247_Among the Abandoned.json new file mode 100644 index 000000000..3ba25e865 --- /dev/null +++ b/QuestPaths/7.x - Dawntrail/MSQ/G-7.1/5247_Among the Abandoned.json @@ -0,0 +1,126 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1052217, + "Position": { + "X": 118.242065, + "Y": 12.5, + "Z": -69.0166 + }, + "StopDistance": 6, + "TerritoryId": 1254, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2014471, + "Position": { + "X": 39.32251, + "Y": 13.260071, + "Z": 51.865356 + }, + "TerritoryId": 1254, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2014472, + "Position": { + "X": 101.8844, + "Y": 12.588623, + "Z": 130.44934 + }, + "TerritoryId": 1254, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2014473, + "Position": { + "X": 39.597046, + "Y": 13.260071, + "Z": 53.45227 + }, + "TerritoryId": 1254, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1052227, + "Position": { + "X": -581.2009, + "Y": -1.7638817, + "Z": -505.45514 + }, + "StopDistance": 5, + "TerritoryId": 1191, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1048083, + "Position": { + "X": 302.05237, + "Y": 51.199978, + "Z": 205.0354 + }, + "TerritoryId": 1186, + "InteractionType": "Interact", + "AetheryteShortcut": "Solution Nine", + "AethernetShortcut": [ + "[Solution Nine] Aetheryte Plaza", + "[Solution Nine] Neon Stein" + ], + "TargetTerritoryId": 1207, + "SkipConditions": { + "AetheryteShortcutIf": { + "InTerritory": [ + 1207 + ] + }, + "StepIf": { + "InTerritory": [ + 1207 + ] + } + } + }, + { + "DataId": 1048161, + "Position": { + "X": -5.874817, + "Y": -3.6188258E-08, + "Z": 6.8512573 + }, + "TerritoryId": 1207, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/7.x - Dawntrail/MSQ/G-7.1/5248_Guidance of the Hhetso.json b/QuestPaths/7.x - Dawntrail/MSQ/G-7.1/5248_Guidance of the Hhetso.json new file mode 100644 index 000000000..42f785b4f --- /dev/null +++ b/QuestPaths/7.x - Dawntrail/MSQ/G-7.1/5248_Guidance of the Hhetso.json @@ -0,0 +1,202 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1052233, + "Position": { + "X": -0.80877686, + "Y": -4.1909516E-08, + "Z": 6.42395 + }, + "StopDistance": 5, + "TerritoryId": 1207, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": -363.22934, + "Y": 20.162338, + "Z": -90.19407 + }, + "TerritoryId": 1190, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Shaaloani - Sheshenewezi Springs" + }, + { + "DataId": 1051495, + "Position": { + "X": -365.28577, + "Y": 20.14268, + "Z": -88.51758 + }, + "StopDistance": 5, + "TerritoryId": 1190, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": 302.1455, + "Y": -15.629961, + "Z": -516.2348 + }, + "TerritoryId": 1190, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Shaaloani - Mehwahhetsoan", + "Fly": true + }, + { + "DataId": 1046988, + "Position": { + "X": 302.96777, + "Y": -15.629961, + "Z": -514.6716 + }, + "TerritoryId": 1190, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1051013, + "Position": { + "X": 303.79175, + "Y": -15.629962, + "Z": -516.25854 + }, + "TerritoryId": 1190, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1052247, + "Position": { + "X": 224.96375, + "Y": -16.329428, + "Z": -527.6417 + }, + "TerritoryId": 1190, + "InteractionType": "Interact", + "Fly": true, + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_KINGMG105_05248_Q2_000_000", + "Answer": "TEXT_KINGMG105_05248_A2_000_002" + } + ], + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 16 + ] + }, + { + "DataId": 1052245, + "Position": { + "X": 276.78333, + "Y": -16.53927, + "Z": -562.7985 + }, + "TerritoryId": 1190, + "InteractionType": "Interact", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, + { + "DataId": 1052243, + "Position": { + "X": 332.26514, + "Y": -14.986355, + "Z": -558.95325 + }, + "TerritoryId": 1190, + "InteractionType": "Interact", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 1052239, + "Position": { + "X": 354.57385, + "Y": -17.082237, + "Z": -452.5063 + }, + "TerritoryId": 1190, + "InteractionType": "Interact", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": 302.1455, + "Y": -15.629961, + "Z": -516.2348 + }, + "TerritoryId": 1190, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 1051013, + "Position": { + "X": 303.79175, + "Y": -15.629962, + "Z": -516.25854 + }, + "TerritoryId": 1190, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/7.x - Dawntrail/MSQ/G-7.1/5249_The Warmth of Family.json b/QuestPaths/7.x - Dawntrail/MSQ/G-7.1/5249_The Warmth of Family.json new file mode 100644 index 000000000..7bbf6b745 --- /dev/null +++ b/QuestPaths/7.x - Dawntrail/MSQ/G-7.1/5249_The Warmth of Family.json @@ -0,0 +1,94 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1052248, + "Position": { + "X": 293.93445, + "Y": -16.71379, + "Z": -528.70984 + }, + "TerritoryId": 1190, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1052248, + "Position": { + "X": 293.93445, + "Y": -16.71379, + "Z": -528.70984 + }, + "TerritoryId": 1190, + "InteractionType": "SinglePlayerDuty" + } + ] + }, + { + "Sequence": 2, + "Steps": [] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1052252, + "Position": { + "X": 299.15308, + "Y": -15.629961, + "Z": -518.4253 + }, + "StopDistance": 5, + "TerritoryId": 1190, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1052255, + "Position": { + "X": -123.91852, + "Y": 16.187744, + "Z": -296.80328 + }, + "TerritoryId": 1190, + "InteractionType": "Interact", + "Fly": true, + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_KINGMG106_05249_SYSTEM_000_402", + "Yes": true + } + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1052259, + "Position": { + "X": -171.03839, + "Y": 15.75679, + "Z": -372.45752 + }, + "TerritoryId": 1190, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/7.x - Dawntrail/MSQ/G-7.1/5250_Crossroads.json b/QuestPaths/7.x - Dawntrail/MSQ/G-7.1/5250_Crossroads.json new file mode 100644 index 000000000..1a853e691 --- /dev/null +++ b/QuestPaths/7.x - Dawntrail/MSQ/G-7.1/5250_Crossroads.json @@ -0,0 +1,126 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1052261, + "Position": { + "X": -172.25916, + "Y": 15.73959, + "Z": -376.1197 + }, + "TerritoryId": 1190, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1048083, + "Position": { + "X": 302.05237, + "Y": 51.199978, + "Z": 205.0354 + }, + "TerritoryId": 1186, + "InteractionType": "Interact", + "AetheryteShortcut": "Solution Nine", + "AethernetShortcut": [ + "[Solution Nine] Aetheryte Plaza", + "[Solution Nine] Neon Stein" + ], + "TargetTerritoryId": 1207, + "SkipConditions": { + "AetheryteShortcutIf": { + "InTerritory": [ + 1207 + ] + }, + "StepIf": { + "InTerritory": [ + 1207 + ] + } + } + }, + { + "DataId": 1052521, + "Position": { + "X": -1.8463745, + "Y": -3.4458935E-08, + "Z": 5.8441772 + }, + "TerritoryId": 1207, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1052269, + "Position": { + "X": -2.456726, + "Y": -7.2107476E-08, + "Z": 8.987488 + }, + "TerritoryId": 1207, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1052271, + "Position": { + "X": -0.41204834, + "Y": -3.9115548E-08, + "Z": 6.240906 + }, + "TerritoryId": 1207, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1052272, + "Position": { + "X": 0.19836426, + "Y": 0.00054359436, + "Z": -94.98743 + }, + "TerritoryId": 1186, + "InteractionType": "Interact", + "AetheryteShortcut": "Solution Nine" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1052267, + "Position": { + "X": -3.7080078, + "Y": -7.4505806E-08, + "Z": 9.170593 + }, + "StopDistance": 7, + "TerritoryId": 1207, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/7.x - Dawntrail/Unlocks/Misc/5004_How the West Was Sung.json b/QuestPaths/7.x - Dawntrail/Unlocks/Misc/5004_How the West Was Sung.json new file mode 100644 index 000000000..bec00ecc7 --- /dev/null +++ b/QuestPaths/7.x - Dawntrail/Unlocks/Misc/5004_How the West Was Sung.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": 1048548, + "Position": { + "X": -109.48352, + "Y": -15, + "Z": 185.04602 + }, + "TerritoryId": 1185, + "InteractionType": "AcceptQuest" + } + ] + } + ] +} diff --git a/Questionable/Data/JournalData.cs b/Questionable/Data/JournalData.cs index f26f452ae..56a12b6b1 100644 --- a/Questionable/Data/JournalData.cs +++ b/Questionable/Data/JournalData.cs @@ -2,7 +2,6 @@ using System.Linq; using Dalamud.Plugin.Services; using Lumina.Excel.Sheets; -using Microsoft.Extensions.Logging; using Questionable.Model; using Questionable.Model.Questing; @@ -10,20 +9,12 @@ namespace Questionable.Data; internal sealed class JournalData { - public JournalData(IDataManager dataManager, QuestData questData, ILogger logger) + public JournalData(IDataManager dataManager, QuestData questData) { var genres = dataManager.GetExcelSheet() .Where(x => x.RowId > 0 && x.Icon > 0) .Select(x => new Genre(x, questData.GetAllByJournalGenre(x.RowId))) .ToList(); - foreach (var genre in genres) - { - logger.LogInformation("Genre {GenreId}: {GenreName} has {QuestCount} quests", - genre.Id, genre.Name, genre.QuestCount); - } - logger.LogInformation("Genre count: {GenreCount}", genres.Count); - var quest = questData.GetQuestInfo(new QuestId(5193)); - logger.LogInformation("Q: {N}, {A}, {B}", quest.Name, quest.JournalGenre, quest.IssuerDataId); var limsaStart = dataManager.GetExcelSheet().GetRow(1); var gridaniaStart = dataManager.GetExcelSheet().GetRow(2); diff --git a/Questionable/Data/Sheets/QuestEx.cs b/Questionable/Data/Sheets/QuestEx.cs index c4da01784..2dc47b8e3 100644 --- a/Questionable/Data/Sheets/QuestEx.cs +++ b/Questionable/Data/Sheets/QuestEx.cs @@ -12,6 +12,7 @@ public readonly unsafe struct QuestEx(ExcelPage page, uint offset, uint row) : I public Quest Original { get; } = new(page, offset, row); + public readonly ReadOnlySeString Id => page.ReadString(offset + 2420, offset); public RowRef IssuerStart => RowRef.GetFirstValidRowOrUntyped(page.Module, page.ReadUInt32(offset + 2456), [typeof(EObjName), typeof(ENpcResident)], 882056187, page.Language); public RowRef IssuerLocation => new(page.Module, page.ReadUInt32(offset + 2460), page.Language); public RowRef JournalGenre => new(page.Module, page.ReadUInt32(offset + 2468), page.Language); diff --git a/Questionable/Functions/ExcelFunctions.cs b/Questionable/Functions/ExcelFunctions.cs index 2043c5a60..3109f942e 100644 --- a/Questionable/Functions/ExcelFunctions.cs +++ b/Questionable/Functions/ExcelFunctions.cs @@ -3,10 +3,13 @@ using System.Linq; using Dalamud.Plugin.Services; using Dalamud.Utility; using LLib; +using Lumina.Excel; +using Lumina.Excel.Exceptions; using Lumina.Excel.Sheets; using Lumina.Text; using Lumina.Text.ReadOnly; using Microsoft.Extensions.Logging; +using Questionable.Data.Sheets; using Questionable.Model; using Quest = Questionable.Model.Quest; using GimmickYesNo = Lumina.Excel.Sheets.GimmickYesNo; @@ -38,7 +41,7 @@ internal sealed class ExcelFunctions if (currentQuest != null && excelSheetName == null) { var questRow = - _dataManager.GetExcelSheet().GetRowOrDefault((uint)currentQuest.Id.Value + + _dataManager.GetExcelSheet().GetRowOrDefault((uint)currentQuest.Id.Value + 0x10000); if (questRow == null) { @@ -46,13 +49,20 @@ internal sealed class ExcelFunctions return null; } - excelSheetName = $"quest/{(currentQuest.Id.Value / 100):000}/{questRow.Value.RowId}"; + excelSheetName = $"quest/{(currentQuest.Id.Value / 100):000}/{questRow.Value.Id}"; } ArgumentNullException.ThrowIfNull(excelSheetName); - var excelSheet = _dataManager.GetExcelSheet(name: excelSheetName); - return excelSheet.Cast() - .FirstOrDefault(x => x!.Value.Key == key)?.Value; + try + { + var excelSheet = _dataManager.GetExcelSheet(name: excelSheetName); + return excelSheet.Cast() + .FirstOrDefault(x => x!.Value.Key == key)?.Value; + } + catch (SheetNotFoundException e) + { + throw new SheetNotFoundException($"Sheet '{excelSheetName}' not found", e); + } } public StringOrRegex GetDialogueTextByRowId(string? excelSheet, uint rowId, bool isRegex) diff --git a/Questionable/Functions/GameFunctions.cs b/Questionable/Functions/GameFunctions.cs index d4a7e692e..c20f3d487 100644 --- a/Questionable/Functions/GameFunctions.cs +++ b/Questionable/Functions/GameFunctions.cs @@ -64,10 +64,9 @@ internal sealed unsafe class GameFunctions _territoryToAetherCurrentCompFlgSet = dataManager.GetExcelSheet() .Where(x => x.RowId > 0) - .Where(x => x.Unknown3 > 0) + .Where(x => x.Unknown4 > 0) .ToDictionary(x => (ushort)x.RowId, x => x.Unknown4) .AsReadOnly(); - _territoryToAetherCurrentCompFlgSet = new Dictionary().AsReadOnly(); _contentFinderConditionToContentId = dataManager.GetExcelSheet() .Where(x => x.RowId > 0 && x.Content.RowId > 0) .ToDictionary(x => x.RowId, x => x.Content.RowId) -- 2.45.2 From 294a33a14308bb98792a2de63b5395deffd1d371 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sun, 17 Nov 2024 03:38:50 +0100 Subject: [PATCH 234/448] Add neutral Pelupelu quests --- .../Dailies/5199_A Notion of Promotion.json | 96 +++++++++ .../Dailies/5200_A Sackful of Memories.json | 73 +++++++ ...1_Ferocious Foliage, Fearful Tourists.json | 137 +++++++++++++ ...5202_Community Outreach in Kozanuakiy.json | 73 +++++++ .../Dailies/5203_Preventative Measures.json | 120 +++++++++++ .../Dailies/5204_Burden of Beasts.json | 104 ++++++++++ .../Dailies/5205_Growing as a Guide.json | 123 +++++++++++ .../5193_An Intrepid New Enterprise.json | 192 ++++++++++++++++++ Questionable/Model/EAlliedSociety.cs | 1 + 9 files changed, 919 insertions(+) create mode 100644 QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5199_A Notion of Promotion.json create mode 100644 QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5200_A Sackful of Memories.json create mode 100644 QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5201_Ferocious Foliage, Fearful Tourists.json create mode 100644 QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5202_Community Outreach in Kozanuakiy.json create mode 100644 QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5203_Preventative Measures.json create mode 100644 QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5204_Burden of Beasts.json create mode 100644 QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5205_Growing as a Guide.json create mode 100644 QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Story/5193_An Intrepid New Enterprise.json diff --git a/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5199_A Notion of Promotion.json b/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5199_A Notion of Promotion.json new file mode 100644 index 000000000..133777c99 --- /dev/null +++ b/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5199_A Notion of Promotion.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": [ + { + "Position": { + "X": 770.70636, + "Y": 12.846572, + "Z": -260.59436 + }, + "TerritoryId": 1188, + "InteractionType": "WalkTo" + }, + { + "DataId": 1051711, + "Position": { + "X": 770.7179, + "Y": 12.84657, + "Z": -263.99634 + }, + "StopDistance": 5, + "TerritoryId": 1188, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1052301, + "Position": { + "X": 219.98926, + "Y": 10.289447, + "Z": -522.9115 + }, + "TerritoryId": 1188, + "InteractionType": "Interact", + "AetheryteShortcut": "Kozama'uka - Ok'hanu", + "Fly": true + }, + { + "DataId": 1052300, + "Position": { + "X": 208.48401, + "Y": 10.257622, + "Z": -588.98303 + }, + "TerritoryId": 1188, + "InteractionType": "Interact", + "Fly": true + }, + { + "DataId": 1052302, + "Position": { + "X": 171.03833, + "Y": 7.17552, + "Z": -602.6246 + }, + "TerritoryId": 1188, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": 770.70636, + "Y": 12.846572, + "Z": -260.59436 + }, + "TerritoryId": 1188, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Kozama'uka - Dock Poga" + }, + { + "DataId": 1051711, + "Position": { + "X": 770.7179, + "Y": 12.84657, + "Z": -263.99634 + }, + "StopDistance": 5, + "TerritoryId": 1188, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5200_A Sackful of Memories.json b/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5200_A Sackful of Memories.json new file mode 100644 index 000000000..b639ea7e8 --- /dev/null +++ b/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5200_A Sackful of Memories.json @@ -0,0 +1,73 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "Position": { + "X": 770.70636, + "Y": 12.846572, + "Z": -260.59436 + }, + "TerritoryId": 1188, + "InteractionType": "WalkTo" + }, + { + "DataId": 1051711, + "Position": { + "X": 770.7179, + "Y": 12.84657, + "Z": -263.99634 + }, + "StopDistance": 5, + "TerritoryId": 1188, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1052303, + "Position": { + "X": -191.66864, + "Y": 6.5458784, + "Z": -498.0392 + }, + "TerritoryId": 1188, + "InteractionType": "Interact", + "AetheryteShortcut": "Kozama'uka - Ok'hanu" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": 770.70636, + "Y": 12.846572, + "Z": -260.59436 + }, + "TerritoryId": 1188, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Kozama'uka - Dock Poga" + }, + { + "DataId": 1051711, + "Position": { + "X": 770.7179, + "Y": 12.84657, + "Z": -263.99634 + }, + "StopDistance": 5, + "TerritoryId": 1188, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5201_Ferocious Foliage, Fearful Tourists.json b/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5201_Ferocious Foliage, Fearful Tourists.json new file mode 100644 index 000000000..056eab0b4 --- /dev/null +++ b/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5201_Ferocious Foliage, Fearful Tourists.json @@ -0,0 +1,137 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "Position": { + "X": 770.70636, + "Y": 12.846572, + "Z": -260.59436 + }, + "TerritoryId": 1188, + "InteractionType": "WalkTo" + }, + { + "DataId": 1051711, + "Position": { + "X": 770.7179, + "Y": 12.84657, + "Z": -263.99634 + }, + "StopDistance": 5, + "TerritoryId": 1188, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2014482, + "Position": { + "X": 718.6847, + "Y": 6.1188354, + "Z": -105.60773 + }, + "TerritoryId": 1188, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 18172 + ], + "Fly": true, + "RequiredQuestVariables": [ + null, + null, + [ + 16 + ], + null, + null, + null + ] + }, + { + "DataId": 2014481, + "Position": { + "X": 581.78064, + "Y": 9.018005, + "Z": -180.49902 + }, + "TerritoryId": 1188, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 18172 + ], + "Fly": true, + "RequiredQuestVariables": [ + null, + null, + [ + 32 + ], + null, + null, + null + ] + }, + { + "DataId": 2014480, + "Position": { + "X": 531.15125, + "Y": 12.527649, + "Z": -99.321045 + }, + "TerritoryId": 1188, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 18172 + ], + "Fly": true, + "RequiredQuestVariables": [ + null, + null, + [ + 48 + ], + null, + null, + null + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": 770.70636, + "Y": 12.846572, + "Z": -260.59436 + }, + "TerritoryId": 1188, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Kozama'uka - Dock Poga" + }, + { + "DataId": 1051711, + "Position": { + "X": 770.7179, + "Y": 12.84657, + "Z": -263.99634 + }, + "StopDistance": 5, + "TerritoryId": 1188, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5202_Community Outreach in Kozanuakiy.json b/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5202_Community Outreach in Kozanuakiy.json new file mode 100644 index 000000000..87cadfa6c --- /dev/null +++ b/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5202_Community Outreach in Kozanuakiy.json @@ -0,0 +1,73 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "Position": { + "X": 770.70636, + "Y": 12.846572, + "Z": -260.59436 + }, + "TerritoryId": 1188, + "InteractionType": "WalkTo" + }, + { + "DataId": 1051711, + "Position": { + "X": 770.7179, + "Y": 12.84657, + "Z": -263.99634 + }, + "StopDistance": 5, + "TerritoryId": 1188, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1052304, + "Position": { + "X": 670.344, + "Y": 26.329378, + "Z": -531.2734 + }, + "TerritoryId": 1188, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": 770.70636, + "Y": 12.846572, + "Z": -260.59436 + }, + "TerritoryId": 1188, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Kozama'uka - Dock Poga" + }, + { + "DataId": 1051711, + "Position": { + "X": 770.7179, + "Y": 12.84657, + "Z": -263.99634 + }, + "StopDistance": 5, + "TerritoryId": 1188, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5203_Preventative Measures.json b/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5203_Preventative Measures.json new file mode 100644 index 000000000..262ce23eb --- /dev/null +++ b/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5203_Preventative Measures.json @@ -0,0 +1,120 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "Position": { + "X": 770.70636, + "Y": 12.846572, + "Z": -260.59436 + }, + "TerritoryId": 1188, + "InteractionType": "WalkTo" + }, + { + "DataId": 1051711, + "Position": { + "X": 770.7179, + "Y": 12.84657, + "Z": -263.99634 + }, + "StopDistance": 5, + "TerritoryId": 1188, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2014484, + "Position": { + "X": 847.34875, + "Y": 15.8845825, + "Z": -192.67572 + }, + "TerritoryId": 1188, + "InteractionType": "UseItem", + "ItemId": 2003717, + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 2014485, + "Position": { + "X": 855.2223, + "Y": 15.945618, + "Z": -208.72821 + }, + "TerritoryId": 1188, + "InteractionType": "UseItem", + "ItemId": 2003717, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, + { + "DataId": 2014483, + "Position": { + "X": 868.1315, + "Y": 15.335266, + "Z": -203.96735 + }, + "TerritoryId": 1188, + "InteractionType": "UseItem", + "ItemId": 2003717, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": 770.70636, + "Y": 12.846572, + "Z": -260.59436 + }, + "TerritoryId": 1188, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 1051711, + "Position": { + "X": 770.7179, + "Y": 12.84657, + "Z": -263.99634 + }, + "StopDistance": 5, + "TerritoryId": 1188, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5204_Burden of Beasts.json b/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5204_Burden of Beasts.json new file mode 100644 index 000000000..549951cf2 --- /dev/null +++ b/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5204_Burden of Beasts.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": [ + { + "Position": { + "X": 770.70636, + "Y": 12.846572, + "Z": -260.59436 + }, + "TerritoryId": 1188, + "InteractionType": "WalkTo" + }, + { + "DataId": 1051711, + "Position": { + "X": 770.7179, + "Y": 12.84657, + "Z": -263.99634 + }, + "StopDistance": 5, + "TerritoryId": 1188, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1052305, + "Position": { + "X": 474.20447, + "Y": 9.739183, + "Z": -207.90424 + }, + "TerritoryId": 1188, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2014486, + "Position": { + "X": 471.88513, + "Y": 9.933594, + "Z": -206.46985 + }, + "StopDistance": 4.5, + "TerritoryId": 1188, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1052306, + "Position": { + "X": 791.37854, + "Y": 14.39521, + "Z": -206.53088 + }, + "TerritoryId": 1188, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": 770.70636, + "Y": 12.846572, + "Z": -260.59436 + }, + "TerritoryId": 1188, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 1051711, + "Position": { + "X": 770.7179, + "Y": 12.84657, + "Z": -263.99634 + }, + "StopDistance": 5, + "TerritoryId": 1188, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5205_Growing as a Guide.json b/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5205_Growing as a Guide.json new file mode 100644 index 000000000..c576165f1 --- /dev/null +++ b/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5205_Growing as a Guide.json @@ -0,0 +1,123 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "Position": { + "X": 770.70636, + "Y": 12.846572, + "Z": -260.59436 + }, + "TerritoryId": 1188, + "InteractionType": "WalkTo" + }, + { + "DataId": 1051711, + "Position": { + "X": 770.7179, + "Y": 12.84657, + "Z": -263.99634 + }, + "StopDistance": 5, + "TerritoryId": 1188, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "TerritoryId": 1188, + "InteractionType": "None", + "AetheryteShortcut": "Kozama'uka - Ok'hanu" + }, + { + "DataId": 1052307, + "Position": { + "X": -111.0094, + "Y": 1.6987718, + "Z": -111.0094 + }, + "TerritoryId": 1188, + "InteractionType": "Interact", + "Fly": true, + "RequiredQuestVariables": [ + null, + [ + 1 + ], + null, + null, + null, + null + ], + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_BANPEL107_05205_Q1_000_000", + "Answer": "TEXT_BANPEL107_05205_A1_000_002" + } + ] + }, + { + "DataId": 1052308, + "Position": { + "X": -152.7276, + "Y": 3.6225784, + "Z": -349.87415 + }, + "TerritoryId": 1188, + "InteractionType": "Interact", + "Fly": true, + "RequiredQuestVariables": [ + null, + [ + 2 + ], + null, + null, + null, + null + ], + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_BANPEL107_05205_Q2_000_000", + "Answer": "TEXT_BANPEL107_05205_A2_000_003" + } + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": 770.70636, + "Y": 12.846572, + "Z": -260.59436 + }, + "TerritoryId": 1188, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Kozama'uka - Dock Poga" + }, + { + "DataId": 1051711, + "Position": { + "X": 770.7179, + "Y": 12.84657, + "Z": -263.99634 + }, + "StopDistance": 5, + "TerritoryId": 1188, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Story/5193_An Intrepid New Enterprise.json b/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Story/5193_An Intrepid New Enterprise.json new file mode 100644 index 000000000..7376bf285 --- /dev/null +++ b/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Story/5193_An Intrepid New Enterprise.json @@ -0,0 +1,192 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1051712, + "Position": { + "X": 12.344482, + "Y": -14, + "Z": 96.17761 + }, + "TerritoryId": 1185, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Tuliyollal", + "AethernetShortcut": [ + "[Tuliyollal] Aetheryte Plaza", + "[Tuliyollal] Bayside Bevy Marketplace" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2014421, + "Position": { + "X": -65.72064, + "Y": 2.39563, + "Z": -400.22894 + }, + "TerritoryId": 1188, + "InteractionType": "Interact", + "AetheryteShortcut": "Kozama'uka - Ok'hanu", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1051713, + "Position": { + "X": -67.88745, + "Y": 2.4000018, + "Z": -399.64905 + }, + "TerritoryId": 1188, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1051713, + "Position": { + "X": -67.88745, + "Y": 2.4000018, + "Z": -399.64905 + }, + "TerritoryId": 1188, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1051718, + "Position": { + "X": 62.210938, + "Y": 0.7218611, + "Z": -333.94366 + }, + "TerritoryId": 1188, + "InteractionType": "Interact", + "Fly": true, + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_BANPEL001_05193_Q5_000_001", + "Answer": "TEXT_BANPEL001_05193_A5_000_002" + } + ] + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1051719, + "Position": { + "X": -42.923706, + "Y": 21.48239, + "Z": -88.76172 + }, + "TerritoryId": 1188, + "InteractionType": "Interact", + "Fly": true, + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_BANPEL001_05193_Q6_000_001", + "Answer": "TEXT_BANPEL001_05193_A6_000_003" + } + ] + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1051720, + "Position": { + "X": -183.45923, + "Y": 0.39999998, + "Z": -73.74689 + }, + "TerritoryId": 1188, + "InteractionType": "Interact", + "Fly": true, + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_BANPEL001_05193_Q7_000_001", + "Answer": "TEXT_BANPEL001_05193_A7_000_001" + } + ] + } + ] + }, + { + "Sequence": 7, + "Steps": [ + { + "DataId": 1051859, + "Position": { + "X": -73.411194, + "Y": 2.4000018, + "Z": -398.61145 + }, + "TerritoryId": 1188, + "InteractionType": "Interact", + "AetheryteShortcut": "Kozama'uka - Ok'hanu", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "TerritoryId": 1188, + "InteractionType": "AttuneAetheryte", + "Aetheryte": "Kozama'uka - Dock Poga", + "Fly": true, + "SkipConditions": { + "StepIf": { + "AetheryteUnlocked": "Kozama'uka - Dock Poga" + } + } + }, + { + "DataId": 1051721, + "Position": { + "X": 737.5753, + "Y": 8.14118, + "Z": -278.0957 + }, + "TerritoryId": 1188, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Kozama'uka - Dock Poga", + "Fly": true + } + ] + } + ] +} diff --git a/Questionable/Model/EAlliedSociety.cs b/Questionable/Model/EAlliedSociety.cs index 2f7281f76..346244e2a 100644 --- a/Questionable/Model/EAlliedSociety.cs +++ b/Questionable/Model/EAlliedSociety.cs @@ -25,4 +25,5 @@ public enum EAlliedSociety : byte Arkasodara = 15, Omicrons = 16, Loporrits = 17, + Pelupelu = 18, } -- 2.45.2 From 4118affff0403f3a96ae74892e765019acfc17c9 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sun, 17 Nov 2024 19:42:52 +0100 Subject: [PATCH 235/448] Add friendly/some respected Pelupelu qeusts + placeholders --- .../Dailies/5203_Preventative Measures.md | 3 + .../Dailies/5206_Bag Your Pardon.json | 129 ++++++++++ .../Dailies/5207_Thrilled to Be Here.json | 90 +++++++ .../5208_Canvassing in Kozama'uka.json | 118 +++++++++ .../Dailies/5209_Reed between the Lines.json | 133 +++++++++++ .../5210_The Rudiments of Fiend Removal.json | 146 +++++++++++ .../Dailies/5211_The Nectar Collector.json | 102 ++++++++ .../Dailies/5212_Starting from Scrap.json | 117 +++++++++ .../Dailies/5213_Advisor vs Predator.json | 58 +++++ .../5214_Let Mobbie Be Your Guide.json | 58 +++++ .../5215_The Popularity of Punutiys.json | 58 +++++ .../Dailies/5216_Breath of Foul Air.json | 145 +++++++++++ .../Dailies/5217_Big Bellies to Fill.json | 74 ++++++ .../Dailies/5218_The Hand That Feeds.json | 98 ++++++++ .../Dailies/5219_Born to Run Away.json | 58 +++++ .../5220_Bird Meat's Back on the Menu.json | 58 +++++ .../Dailies/5221_A Sympathetic Ear.json | 58 +++++ .../Dailies/5222_Worth the Weight.json | 58 +++++ .../Dailies/5223_In Time for Lunch.json | 58 +++++ .../Dailies/5224_His Swarm Enemy.json | 58 +++++ .../Dailies/5225_Seasoned Adventurer.json | 58 +++++ .../Dailies/5226_Animal Friendship.json | 58 +++++ .../Story/5194_A Tentative First Tour.json | 212 ++++++++++++++++ .../Story/5195_Earthenshire Awaits.json | 226 ++++++++++++++++++ 24 files changed, 2231 insertions(+) create mode 100644 QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5203_Preventative Measures.md create mode 100644 QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5206_Bag Your Pardon.json create mode 100644 QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5207_Thrilled to Be Here.json create mode 100644 QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5208_Canvassing in Kozama'uka.json create mode 100644 QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5209_Reed between the Lines.json create mode 100644 QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5210_The Rudiments of Fiend Removal.json create mode 100644 QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5211_The Nectar Collector.json create mode 100644 QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5212_Starting from Scrap.json create mode 100644 QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5213_Advisor vs Predator.json create mode 100644 QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5214_Let Mobbie Be Your Guide.json create mode 100644 QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5215_The Popularity of Punutiys.json create mode 100644 QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5216_Breath of Foul Air.json create mode 100644 QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5217_Big Bellies to Fill.json create mode 100644 QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5218_The Hand That Feeds.json create mode 100644 QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5219_Born to Run Away.json create mode 100644 QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5220_Bird Meat's Back on the Menu.json create mode 100644 QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5221_A Sympathetic Ear.json create mode 100644 QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5222_Worth the Weight.json create mode 100644 QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5223_In Time for Lunch.json create mode 100644 QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5224_His Swarm Enemy.json create mode 100644 QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5225_Seasoned Adventurer.json create mode 100644 QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5226_Animal Friendship.json create mode 100644 QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Story/5194_A Tentative First Tour.json create mode 100644 QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Story/5195_Earthenshire Awaits.json diff --git a/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5203_Preventative Measures.md b/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5203_Preventative Measures.md new file mode 100644 index 000000000..ec7e76046 --- /dev/null +++ b/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5203_Preventative Measures.md @@ -0,0 +1,3 @@ +0 xx 0 0 0 0 | 2014483 2014484 2014485 + 48 | x x x + diff --git a/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5206_Bag Your Pardon.json b/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5206_Bag Your Pardon.json new file mode 100644 index 000000000..42d69f7bd --- /dev/null +++ b/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5206_Bag Your Pardon.json @@ -0,0 +1,129 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "Position": { + "X": 770.70636, + "Y": 12.846572, + "Z": -260.59436 + }, + "TerritoryId": 1188, + "InteractionType": "WalkTo" + }, + { + "DataId": 1051711, + "Position": { + "X": 770.7179, + "Y": 12.84657, + "Z": -263.99634 + }, + "StopDistance": 5, + "TerritoryId": 1188, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2014540, + "Position": { + "X": -24.887512, + "Y": 21.774597, + "Z": -88.76172 + }, + "StopDistance": 1, + "TerritoryId": 1188, + "InteractionType": "Interact", + "Fly": true, + "AetheryteShortcut": "Kozama'uka - Ok'hanu", + "RequiredQuestVariables": [ + null, + [ + 1 + ], + null, + null, + null, + null + ] + }, + { + "DataId": 2014487, + "Position": { + "X": -45.426086, + "Y": 21.469421, + "Z": -80.27777 + }, + "StopDistance": 1, + "TerritoryId": 1188, + "InteractionType": "Interact", + "Fly": true, + "RequiredQuestVariables": [ + null, + [ + 2 + ], + null, + null, + null, + null + ] + }, + { + "DataId": 2014539, + "Position": { + "X": -9.2317505, + "Y": 21.469421, + "Z": -74.418274 + }, + "StopDistance": 1, + "TerritoryId": 1188, + "InteractionType": "Interact", + "Fly": true, + "RequiredQuestVariables": [ + null, + [ + 3 + ], + null, + null, + null, + null + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": 770.70636, + "Y": 12.846572, + "Z": -260.59436 + }, + "TerritoryId": 1188, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Kozama'uka - Dock Poga" + }, + { + "DataId": 1051711, + "Position": { + "X": 770.7179, + "Y": 12.84657, + "Z": -263.99634 + }, + "StopDistance": 5, + "TerritoryId": 1188, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5207_Thrilled to Be Here.json b/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5207_Thrilled to Be Here.json new file mode 100644 index 000000000..3bc177056 --- /dev/null +++ b/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5207_Thrilled to Be Here.json @@ -0,0 +1,90 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "Position": { + "X": 770.70636, + "Y": 12.846572, + "Z": -260.59436 + }, + "TerritoryId": 1188, + "InteractionType": "WalkTo" + }, + { + "DataId": 1051711, + "Position": { + "X": 770.7179, + "Y": 12.84657, + "Z": -263.99634 + }, + "StopDistance": 5, + "TerritoryId": 1188, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1052309, + "Position": { + "X": -100.35864, + "Y": 4.7510896, + "Z": -304.3412 + }, + "TerritoryId": 1188, + "InteractionType": "Interact", + "AetheryteShortcut": "Kozama'uka - Ok'hanu", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1052310, + "Position": { + "X": -103.01367, + "Y": 4.70791, + "Z": -305.40936 + }, + "StopDistance": 5, + "TerritoryId": 1188, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": 770.70636, + "Y": 12.846572, + "Z": -260.59436 + }, + "TerritoryId": 1188, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Kozama'uka - Dock Poga" + }, + { + "DataId": 1051711, + "Position": { + "X": 770.7179, + "Y": 12.84657, + "Z": -263.99634 + }, + "StopDistance": 5, + "TerritoryId": 1188, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5208_Canvassing in Kozama'uka.json b/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5208_Canvassing in Kozama'uka.json new file mode 100644 index 000000000..88afbcf38 --- /dev/null +++ b/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5208_Canvassing in Kozama'uka.json @@ -0,0 +1,118 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "Position": { + "X": 770.70636, + "Y": 12.846572, + "Z": -260.59436 + }, + "TerritoryId": 1188, + "InteractionType": "WalkTo" + }, + { + "DataId": 1051711, + "Position": { + "X": 770.7179, + "Y": 12.84657, + "Z": -263.99634 + }, + "StopDistance": 5, + "TerritoryId": 1188, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1052319, + "Position": { + "X": -185.07672, + "Y": 6.5185943, + "Z": -460.04425 + }, + "TerritoryId": 1188, + "InteractionType": "Interact", + "AetheryteShortcut": "Kozama'uka - Ok'hanu", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 1052318, + "Position": { + "X": -217.12067, + "Y": 6.4016876, + "Z": -474.60138 + }, + "TerritoryId": 1188, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 1052320, + "Position": { + "X": -108.659546, + "Y": 9.773233, + "Z": -530.2052 + }, + "TerritoryId": 1188, + "InteractionType": "Interact", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": 770.70636, + "Y": 12.846572, + "Z": -260.59436 + }, + "TerritoryId": 1188, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Kozama'uka - Dock Poga" + }, + { + "DataId": 1051711, + "Position": { + "X": 770.7179, + "Y": 12.84657, + "Z": -263.99634 + }, + "StopDistance": 5, + "TerritoryId": 1188, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5209_Reed between the Lines.json b/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5209_Reed between the Lines.json new file mode 100644 index 000000000..059ea14d1 --- /dev/null +++ b/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5209_Reed between the Lines.json @@ -0,0 +1,133 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "Position": { + "X": 770.70636, + "Y": 12.846572, + "Z": -260.59436 + }, + "TerritoryId": 1188, + "InteractionType": "WalkTo" + }, + { + "DataId": 1051711, + "Position": { + "X": 770.7179, + "Y": 12.84657, + "Z": -263.99634 + }, + "StopDistance": 5, + "TerritoryId": 1188, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1052321, + "Position": { + "X": 103.227295, + "Y": 0.7218611, + "Z": -334.37097 + }, + "TerritoryId": 1188, + "InteractionType": "Interact", + "AetheryteShortcut": "Kozama'uka - Ok'hanu", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2014488, + "Position": { + "X": 103.74609, + "Y": -0.015319824, + "Z": -339.13184 + }, + "TerritoryId": 1188, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 2014536, + "Position": { + "X": 106.21802, + "Y": -0.015319824, + "Z": -347.097 + }, + "TerritoryId": 1188, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 2014537, + "Position": { + "X": 112.93201, + "Y": -0.015319824, + "Z": -341.5122 + }, + "TerritoryId": 1188, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": 770.70636, + "Y": 12.846572, + "Z": -260.59436 + }, + "TerritoryId": 1188, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Kozama'uka - Dock Poga" + }, + { + "DataId": 1051711, + "Position": { + "X": 770.7179, + "Y": 12.84657, + "Z": -263.99634 + }, + "StopDistance": 5, + "TerritoryId": 1188, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5210_The Rudiments of Fiend Removal.json b/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5210_The Rudiments of Fiend Removal.json new file mode 100644 index 000000000..1203c94c9 --- /dev/null +++ b/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5210_The Rudiments of Fiend Removal.json @@ -0,0 +1,146 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "Comment": "TODO untested how many RNG states this has", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "Position": { + "X": 770.70636, + "Y": 12.846572, + "Z": -260.59436 + }, + "TerritoryId": 1188, + "InteractionType": "WalkTo" + }, + { + "DataId": 1051711, + "Position": { + "X": 770.7179, + "Y": 12.84657, + "Z": -263.99634 + }, + "StopDistance": 5, + "TerritoryId": 1188, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1052323, + "Position": { + "X": 495.75024, + "Y": 10.160157, + "Z": -242.99994 + }, + "TerritoryId": 1188, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2014491, + "Position": { + "X": 504.78357, + "Y": 15.396301, + "Z": -283.83307 + }, + "TerritoryId": 1188, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 18173 + ], + "RequiredQuestVariables": [ + null, + null, + [ + { + "High": 1 + } + ], + null, + null, + null + ] + }, + { + "DataId": 2014489, + "Position": { + "X": 522.301, + "Y": 12.191956, + "Z": -273.97577 + }, + "TerritoryId": 1188, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 18173 + ], + "RequiredQuestVariables": [ + null, + null, + [ + { + "High": 2 + } + ], + null, + null, + null + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1052323, + "Position": { + "X": 495.75024, + "Y": 10.160157, + "Z": -242.99994 + }, + "TerritoryId": 1188, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": 770.70636, + "Y": 12.846572, + "Z": -260.59436 + }, + "TerritoryId": 1188, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Kozama'uka - Dock Poga" + }, + { + "DataId": 1051711, + "Position": { + "X": 770.7179, + "Y": 12.84657, + "Z": -263.99634 + }, + "StopDistance": 5, + "TerritoryId": 1188, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5211_The Nectar Collector.json b/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5211_The Nectar Collector.json new file mode 100644 index 000000000..7d51e3a6f --- /dev/null +++ b/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5211_The Nectar Collector.json @@ -0,0 +1,102 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "Position": { + "X": 770.70636, + "Y": 12.846572, + "Z": -260.59436 + }, + "TerritoryId": 1188, + "InteractionType": "WalkTo" + }, + { + "DataId": 1051711, + "Position": { + "X": 770.7179, + "Y": 12.84657, + "Z": -263.99634 + }, + "StopDistance": 5, + "TerritoryId": 1188, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2014492, + "Position": { + "X": -448.50842, + "Y": 0.9613037, + "Z": -113.69501 + }, + "TerritoryId": 1188, + "InteractionType": "UseItem", + "ItemId": 2003721, + "AetheryteShortcut": "Kozama'uka - Ok'hanu", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 2014493, + "Position": { + "X": -464.0421, + "Y": 0.62561035, + "Z": -119.95117 + }, + "TerritoryId": 1188, + "InteractionType": "UseItem", + "ItemId": 2003721, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": 770.70636, + "Y": 12.846572, + "Z": -260.59436 + }, + "TerritoryId": 1188, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Kozama'uka - Dock Poga" + }, + { + "DataId": 1051711, + "Position": { + "X": 770.7179, + "Y": 12.84657, + "Z": -263.99634 + }, + "StopDistance": 5, + "TerritoryId": 1188, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5212_Starting from Scrap.json b/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5212_Starting from Scrap.json new file mode 100644 index 000000000..f4add8305 --- /dev/null +++ b/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5212_Starting from Scrap.json @@ -0,0 +1,117 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "Position": { + "X": 770.70636, + "Y": 12.846572, + "Z": -260.59436 + }, + "TerritoryId": 1188, + "InteractionType": "WalkTo" + }, + { + "DataId": 1051711, + "Position": { + "X": 770.7179, + "Y": 12.84657, + "Z": -263.99634 + }, + "StopDistance": 5, + "TerritoryId": 1188, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2014494, + "Position": { + "X": 538.38403, + "Y": 15.701477, + "Z": -10.147278 + }, + "TerritoryId": 1188, + "InteractionType": "Interact", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 2014495, + "Position": { + "X": 528.77075, + "Y": 15.6710205, + "Z": -2.456726 + }, + "TerritoryId": 1188, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 2014496, + "Position": { + "X": 511.7417, + "Y": 12.954895, + "Z": -7.522766 + }, + "TerritoryId": 1188, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": 770.70636, + "Y": 12.846572, + "Z": -260.59436 + }, + "TerritoryId": 1188, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Kozama'uka - Dock Poga" + }, + { + "DataId": 1051711, + "Position": { + "X": 770.7179, + "Y": 12.84657, + "Z": -263.99634 + }, + "StopDistance": 5, + "TerritoryId": 1188, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5213_Advisor vs Predator.json b/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5213_Advisor vs Predator.json new file mode 100644 index 000000000..f7b53cd4a --- /dev/null +++ b/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5213_Advisor vs Predator.json @@ -0,0 +1,58 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "Disabled": true, + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "Position": { + "X": 770.70636, + "Y": 12.846572, + "Z": -260.59436 + }, + "TerritoryId": 1188, + "InteractionType": "WalkTo" + }, + { + "DataId": 1051711, + "Position": { + "X": 770.7179, + "Y": 12.84657, + "Z": -263.99634 + }, + "StopDistance": 5, + "TerritoryId": 1188, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": 770.70636, + "Y": 12.846572, + "Z": -260.59436 + }, + "TerritoryId": 1188, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Kozama'uka - Dock Poga" + }, + { + "DataId": 1051711, + "Position": { + "X": 770.7179, + "Y": 12.84657, + "Z": -263.99634 + }, + "StopDistance": 5, + "TerritoryId": 1188, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5214_Let Mobbie Be Your Guide.json b/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5214_Let Mobbie Be Your Guide.json new file mode 100644 index 000000000..f7b53cd4a --- /dev/null +++ b/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5214_Let Mobbie Be Your Guide.json @@ -0,0 +1,58 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "Disabled": true, + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "Position": { + "X": 770.70636, + "Y": 12.846572, + "Z": -260.59436 + }, + "TerritoryId": 1188, + "InteractionType": "WalkTo" + }, + { + "DataId": 1051711, + "Position": { + "X": 770.7179, + "Y": 12.84657, + "Z": -263.99634 + }, + "StopDistance": 5, + "TerritoryId": 1188, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": 770.70636, + "Y": 12.846572, + "Z": -260.59436 + }, + "TerritoryId": 1188, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Kozama'uka - Dock Poga" + }, + { + "DataId": 1051711, + "Position": { + "X": 770.7179, + "Y": 12.84657, + "Z": -263.99634 + }, + "StopDistance": 5, + "TerritoryId": 1188, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5215_The Popularity of Punutiys.json b/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5215_The Popularity of Punutiys.json new file mode 100644 index 000000000..f7b53cd4a --- /dev/null +++ b/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5215_The Popularity of Punutiys.json @@ -0,0 +1,58 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "Disabled": true, + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "Position": { + "X": 770.70636, + "Y": 12.846572, + "Z": -260.59436 + }, + "TerritoryId": 1188, + "InteractionType": "WalkTo" + }, + { + "DataId": 1051711, + "Position": { + "X": 770.7179, + "Y": 12.84657, + "Z": -263.99634 + }, + "StopDistance": 5, + "TerritoryId": 1188, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": 770.70636, + "Y": 12.846572, + "Z": -260.59436 + }, + "TerritoryId": 1188, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Kozama'uka - Dock Poga" + }, + { + "DataId": 1051711, + "Position": { + "X": 770.7179, + "Y": 12.84657, + "Z": -263.99634 + }, + "StopDistance": 5, + "TerritoryId": 1188, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5216_Breath of Foul Air.json b/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5216_Breath of Foul Air.json new file mode 100644 index 000000000..8839e26b8 --- /dev/null +++ b/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5216_Breath of Foul Air.json @@ -0,0 +1,145 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "Position": { + "X": 770.70636, + "Y": 12.846572, + "Z": -260.59436 + }, + "TerritoryId": 1188, + "InteractionType": "WalkTo" + }, + { + "DataId": 1051711, + "Position": { + "X": 770.7179, + "Y": 12.84657, + "Z": -263.99634 + }, + "StopDistance": 5, + "TerritoryId": 1188, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2014500, + "Position": { + "X": -217.15118, + "Y": 109.57495, + "Z": 562.005 + }, + "TerritoryId": 1188, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 18175 + ], + "AetheryteShortcut": "Kozama'uka - Earthenshire", + "Fly": true, + "RequiredQuestVariables": [ + null, + null, + [ + { + "High": 1 + } + ], + null, + null, + null + ] + }, + + { + "DataId": 2014501, + "Position": { + "X": -171.95392, + "Y": 109.57495, + "Z": 652.09424 + }, + "TerritoryId": 1188, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 18175 + ], + "Fly": true, + "RequiredQuestVariables": [ + null, + null, + [ + { + "High": 2 + } + ], + null, + null, + null + ] + }, + { + "DataId": 2014502, + "Position": { + "X": -126.756714, + "Y": 109.57495, + "Z": 765.68225 + }, + "TerritoryId": 1188, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 18175 + ], + "Fly": true, + "RequiredQuestVariables": [ + null, + null, + [ + { + "High": 3 + } + ], + null, + null, + null + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": 770.70636, + "Y": 12.846572, + "Z": -260.59436 + }, + "TerritoryId": 1188, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Kozama'uka - Dock Poga" + }, + { + "DataId": 1051711, + "Position": { + "X": 770.7179, + "Y": 12.84657, + "Z": -263.99634 + }, + "StopDistance": 5, + "TerritoryId": 1188, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5217_Big Bellies to Fill.json b/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5217_Big Bellies to Fill.json new file mode 100644 index 000000000..2da559a4c --- /dev/null +++ b/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5217_Big Bellies to Fill.json @@ -0,0 +1,74 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "Position": { + "X": 770.70636, + "Y": 12.846572, + "Z": -260.59436 + }, + "TerritoryId": 1188, + "InteractionType": "WalkTo" + }, + { + "DataId": 1051711, + "Position": { + "X": 770.7179, + "Y": 12.84657, + "Z": -263.99634 + }, + "StopDistance": 5, + "TerritoryId": 1188, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1048848, + "Position": { + "X": 621.51514, + "Y": 119.49004, + "Z": 175.00574 + }, + "TerritoryId": 1188, + "InteractionType": "Interact", + "AetheryteShortcut": "Kozama'uka - Many Fires", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": 770.70636, + "Y": 12.846572, + "Z": -260.59436 + }, + "TerritoryId": 1188, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Kozama'uka - Dock Poga" + }, + { + "DataId": 1051711, + "Position": { + "X": 770.7179, + "Y": 12.84657, + "Z": -263.99634 + }, + "StopDistance": 5, + "TerritoryId": 1188, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5218_The Hand That Feeds.json b/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5218_The Hand That Feeds.json new file mode 100644 index 000000000..1b751760d --- /dev/null +++ b/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5218_The Hand That Feeds.json @@ -0,0 +1,98 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "Position": { + "X": 770.70636, + "Y": 12.846572, + "Z": -260.59436 + }, + "TerritoryId": 1188, + "InteractionType": "WalkTo" + }, + { + "DataId": 1051711, + "Position": { + "X": 770.7179, + "Y": 12.84657, + "Z": -263.99634 + }, + "StopDistance": 5, + "TerritoryId": 1188, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": 971.48047, + "Y": 7.1923084, + "Z": -254.86214 + }, + "TerritoryId": 1188, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 1052331, + "Position": { + "X": 973.84595, + "Y": 7.192305, + "Z": -254.87152 + }, + "TerritoryId": 1188, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1052332, + "Position": { + "X": 978.027, + "Y": 7.1869507, + "Z": -257.3739 + }, + "StopDistance": 8, + "TerritoryId": 1188, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": 770.70636, + "Y": 12.846572, + "Z": -260.59436 + }, + "TerritoryId": 1188, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Kozama'uka - Dock Poga" + }, + { + "DataId": 1051711, + "Position": { + "X": 770.7179, + "Y": 12.84657, + "Z": -263.99634 + }, + "StopDistance": 5, + "TerritoryId": 1188, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5219_Born to Run Away.json b/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5219_Born to Run Away.json new file mode 100644 index 000000000..f7b53cd4a --- /dev/null +++ b/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5219_Born to Run Away.json @@ -0,0 +1,58 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "Disabled": true, + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "Position": { + "X": 770.70636, + "Y": 12.846572, + "Z": -260.59436 + }, + "TerritoryId": 1188, + "InteractionType": "WalkTo" + }, + { + "DataId": 1051711, + "Position": { + "X": 770.7179, + "Y": 12.84657, + "Z": -263.99634 + }, + "StopDistance": 5, + "TerritoryId": 1188, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": 770.70636, + "Y": 12.846572, + "Z": -260.59436 + }, + "TerritoryId": 1188, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Kozama'uka - Dock Poga" + }, + { + "DataId": 1051711, + "Position": { + "X": 770.7179, + "Y": 12.84657, + "Z": -263.99634 + }, + "StopDistance": 5, + "TerritoryId": 1188, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5220_Bird Meat's Back on the Menu.json b/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5220_Bird Meat's Back on the Menu.json new file mode 100644 index 000000000..f7b53cd4a --- /dev/null +++ b/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5220_Bird Meat's Back on the Menu.json @@ -0,0 +1,58 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "Disabled": true, + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "Position": { + "X": 770.70636, + "Y": 12.846572, + "Z": -260.59436 + }, + "TerritoryId": 1188, + "InteractionType": "WalkTo" + }, + { + "DataId": 1051711, + "Position": { + "X": 770.7179, + "Y": 12.84657, + "Z": -263.99634 + }, + "StopDistance": 5, + "TerritoryId": 1188, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": 770.70636, + "Y": 12.846572, + "Z": -260.59436 + }, + "TerritoryId": 1188, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Kozama'uka - Dock Poga" + }, + { + "DataId": 1051711, + "Position": { + "X": 770.7179, + "Y": 12.84657, + "Z": -263.99634 + }, + "StopDistance": 5, + "TerritoryId": 1188, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5221_A Sympathetic Ear.json b/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5221_A Sympathetic Ear.json new file mode 100644 index 000000000..f7b53cd4a --- /dev/null +++ b/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5221_A Sympathetic Ear.json @@ -0,0 +1,58 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "Disabled": true, + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "Position": { + "X": 770.70636, + "Y": 12.846572, + "Z": -260.59436 + }, + "TerritoryId": 1188, + "InteractionType": "WalkTo" + }, + { + "DataId": 1051711, + "Position": { + "X": 770.7179, + "Y": 12.84657, + "Z": -263.99634 + }, + "StopDistance": 5, + "TerritoryId": 1188, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": 770.70636, + "Y": 12.846572, + "Z": -260.59436 + }, + "TerritoryId": 1188, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Kozama'uka - Dock Poga" + }, + { + "DataId": 1051711, + "Position": { + "X": 770.7179, + "Y": 12.84657, + "Z": -263.99634 + }, + "StopDistance": 5, + "TerritoryId": 1188, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5222_Worth the Weight.json b/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5222_Worth the Weight.json new file mode 100644 index 000000000..f7b53cd4a --- /dev/null +++ b/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5222_Worth the Weight.json @@ -0,0 +1,58 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "Disabled": true, + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "Position": { + "X": 770.70636, + "Y": 12.846572, + "Z": -260.59436 + }, + "TerritoryId": 1188, + "InteractionType": "WalkTo" + }, + { + "DataId": 1051711, + "Position": { + "X": 770.7179, + "Y": 12.84657, + "Z": -263.99634 + }, + "StopDistance": 5, + "TerritoryId": 1188, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": 770.70636, + "Y": 12.846572, + "Z": -260.59436 + }, + "TerritoryId": 1188, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Kozama'uka - Dock Poga" + }, + { + "DataId": 1051711, + "Position": { + "X": 770.7179, + "Y": 12.84657, + "Z": -263.99634 + }, + "StopDistance": 5, + "TerritoryId": 1188, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5223_In Time for Lunch.json b/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5223_In Time for Lunch.json new file mode 100644 index 000000000..f7b53cd4a --- /dev/null +++ b/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5223_In Time for Lunch.json @@ -0,0 +1,58 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "Disabled": true, + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "Position": { + "X": 770.70636, + "Y": 12.846572, + "Z": -260.59436 + }, + "TerritoryId": 1188, + "InteractionType": "WalkTo" + }, + { + "DataId": 1051711, + "Position": { + "X": 770.7179, + "Y": 12.84657, + "Z": -263.99634 + }, + "StopDistance": 5, + "TerritoryId": 1188, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": 770.70636, + "Y": 12.846572, + "Z": -260.59436 + }, + "TerritoryId": 1188, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Kozama'uka - Dock Poga" + }, + { + "DataId": 1051711, + "Position": { + "X": 770.7179, + "Y": 12.84657, + "Z": -263.99634 + }, + "StopDistance": 5, + "TerritoryId": 1188, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5224_His Swarm Enemy.json b/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5224_His Swarm Enemy.json new file mode 100644 index 000000000..f7b53cd4a --- /dev/null +++ b/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5224_His Swarm Enemy.json @@ -0,0 +1,58 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "Disabled": true, + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "Position": { + "X": 770.70636, + "Y": 12.846572, + "Z": -260.59436 + }, + "TerritoryId": 1188, + "InteractionType": "WalkTo" + }, + { + "DataId": 1051711, + "Position": { + "X": 770.7179, + "Y": 12.84657, + "Z": -263.99634 + }, + "StopDistance": 5, + "TerritoryId": 1188, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": 770.70636, + "Y": 12.846572, + "Z": -260.59436 + }, + "TerritoryId": 1188, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Kozama'uka - Dock Poga" + }, + { + "DataId": 1051711, + "Position": { + "X": 770.7179, + "Y": 12.84657, + "Z": -263.99634 + }, + "StopDistance": 5, + "TerritoryId": 1188, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5225_Seasoned Adventurer.json b/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5225_Seasoned Adventurer.json new file mode 100644 index 000000000..f7b53cd4a --- /dev/null +++ b/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5225_Seasoned Adventurer.json @@ -0,0 +1,58 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "Disabled": true, + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "Position": { + "X": 770.70636, + "Y": 12.846572, + "Z": -260.59436 + }, + "TerritoryId": 1188, + "InteractionType": "WalkTo" + }, + { + "DataId": 1051711, + "Position": { + "X": 770.7179, + "Y": 12.84657, + "Z": -263.99634 + }, + "StopDistance": 5, + "TerritoryId": 1188, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": 770.70636, + "Y": 12.846572, + "Z": -260.59436 + }, + "TerritoryId": 1188, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Kozama'uka - Dock Poga" + }, + { + "DataId": 1051711, + "Position": { + "X": 770.7179, + "Y": 12.84657, + "Z": -263.99634 + }, + "StopDistance": 5, + "TerritoryId": 1188, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5226_Animal Friendship.json b/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5226_Animal Friendship.json new file mode 100644 index 000000000..f7b53cd4a --- /dev/null +++ b/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5226_Animal Friendship.json @@ -0,0 +1,58 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "Disabled": true, + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "Position": { + "X": 770.70636, + "Y": 12.846572, + "Z": -260.59436 + }, + "TerritoryId": 1188, + "InteractionType": "WalkTo" + }, + { + "DataId": 1051711, + "Position": { + "X": 770.7179, + "Y": 12.84657, + "Z": -263.99634 + }, + "StopDistance": 5, + "TerritoryId": 1188, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": 770.70636, + "Y": 12.846572, + "Z": -260.59436 + }, + "TerritoryId": 1188, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Kozama'uka - Dock Poga" + }, + { + "DataId": 1051711, + "Position": { + "X": 770.7179, + "Y": 12.84657, + "Z": -263.99634 + }, + "StopDistance": 5, + "TerritoryId": 1188, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Story/5194_A Tentative First Tour.json b/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Story/5194_A Tentative First Tour.json new file mode 100644 index 000000000..61b83af8f --- /dev/null +++ b/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Story/5194_A Tentative First Tour.json @@ -0,0 +1,212 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "Position": { + "X": 809.655, + "Y": 17.004526, + "Z": -257.89868 + }, + "TerritoryId": 1188, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Kozama'uka - Dock Poga", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + }, + { + "DataId": 1051710, + "Position": { + "X": 822.629, + "Y": 17.102613, + "Z": -263.20288 + }, + "TerritoryId": 1188, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": 809.655, + "Y": 17.004526, + "Z": -257.89868 + }, + "TerritoryId": 1188, + "InteractionType": "WalkTo", + "Mount": true + }, + { + "DataId": 2014423, + "Position": { + "X": 727.0161, + "Y": 8.010925, + "Z": -284.3214 + }, + "TerritoryId": 1188, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1051722, + "Position": { + "X": 798.3672, + "Y": 13.076807, + "Z": -246.69269 + }, + "TerritoryId": 1188, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2014424, + "Position": { + "X": -90.62335, + "Y": 9.750427, + "Z": -515.31244 + }, + "StopDistance": 0.5, + "TerritoryId": 1188, + "InteractionType": "Interact", + "AetheryteShortcut": "Kozama'uka - Ok'hanu", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 2014425, + "Position": { + "X": 55.74109, + "Y": 21.896606, + "Z": -75.63898 + }, + "TerritoryId": 1188, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 2014599, + "Position": { + "X": -300.1908, + "Y": 0.38146973, + "Z": -66.78876 + }, + "TerritoryId": 1188, + "InteractionType": "Interact", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 2014600, + "Position": { + "X": -338.4604, + "Y": 0.38146973, + "Z": -88.944885 + }, + "TerritoryId": 1188, + "InteractionType": "Interact", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, + { + "DataId": 2014436, + "Position": { + "X": -370.4433, + "Y": 0.38146973, + "Z": -111.436646 + }, + "TerritoryId": 1188, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 18170, + 18171 + ], + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 2014457, + "Position": { + "X": -332.8451, + "Y": 0.38146973, + "Z": -68.89453 + }, + "TerritoryId": 1188, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1051722, + "Position": { + "X": 798.3672, + "Y": 13.076807, + "Z": -246.69269 + }, + "TerritoryId": 1188, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Kozama'uka - Dock Poga" + } + ] + } + ] +} diff --git a/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Story/5195_Earthenshire Awaits.json b/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Story/5195_Earthenshire Awaits.json new file mode 100644 index 000000000..7ef90800b --- /dev/null +++ b/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Story/5195_Earthenshire Awaits.json @@ -0,0 +1,226 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "Position": { + "X": 809.655, + "Y": 17.004526, + "Z": -257.89868 + }, + "TerritoryId": 1188, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Kozama'uka - Dock Poga", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + }, + { + "DataId": 1051710, + "Position": { + "X": 822.629, + "Y": 17.102613, + "Z": -263.20288 + }, + "TerritoryId": 1188, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1051731, + "Position": { + "X": -125.07825, + "Y": 9.842161, + "Z": -450.73627 + }, + "StopDistance": 2, + "TerritoryId": 1188, + "InteractionType": "Interact", + "AetheryteShortcut": "Kozama'uka - Ok'hanu", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1051731, + "Position": { + "X": -125.07825, + "Y": 9.842161, + "Z": -450.73627 + }, + "TerritoryId": 1188, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "Position": { + "X": 124.89976, + "Y": 3.8414032, + "Z": -279.8074 + }, + "TerritoryId": 1188, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 1048815, + "Position": { + "X": 127.03125, + "Y": 3.8414035, + "Z": -279.92682 + }, + "TerritoryId": 1188, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 2014427, + "Position": { + "X": 183.79492, + "Y": -0.015319824, + "Z": -331.53284 + }, + "TerritoryId": 1188, + "InteractionType": "Interact", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 2014428, + "Position": { + "X": 210.43713, + "Y": -0.015319824, + "Z": -343.77057 + }, + "TerritoryId": 1188, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 2014429, + "Position": { + "X": 213.21423, + "Y": -0.015319824, + "Z": -354.84857 + }, + "TerritoryId": 1188, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, + { + "DataId": 2014430, + "Position": { + "X": 229.93823, + "Y": -0.015319824, + "Z": -342.15308 + }, + "TerritoryId": 1188, + "InteractionType": "Interact", + "Mount": true, + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 16 + ] + }, + { + "DataId": 2014431, + "Position": { + "X": 252.18579, + "Y": -0.015319824, + "Z": -371.20624 + }, + "TerritoryId": 1188, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 8 + ] + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1048826, + "Position": { + "X": 672.4802, + "Y": 41.63828, + "Z": -527.36707 + }, + "TerritoryId": 1188, + "InteractionType": "Interact", + "Fly": true, + "AetheryteShortcut": "Kozama'uka - Dock Poga" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1051710, + "Position": { + "X": 822.629, + "Y": 17.102613, + "Z": -263.20288 + }, + "TerritoryId": 1188, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Kozama'uka - Dock Poga" + } + ] + } + ] +} -- 2.45.2 From 313179e154e288cb5528b2069deb2064f723c051 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sun, 17 Nov 2024 19:49:35 +0100 Subject: [PATCH 236/448] Add Echoes of Vanadiel quests --- .../5233_An Otherworldly Encounter.json | 102 +++++++++ .../5234_It All Began with a Stone.json | 153 ++++++++++++++ .../5235_That World Was Called Vana'diel.json | 111 ++++++++++ .../Alliance Raid Quests/5236_Jeuno.json | 194 ++++++++++++++++++ 4 files changed, 560 insertions(+) create mode 100644 QuestPaths/7.x - Dawntrail/Alliance Raid Quests/5233_An Otherworldly Encounter.json create mode 100644 QuestPaths/7.x - Dawntrail/Alliance Raid Quests/5234_It All Began with a Stone.json create mode 100644 QuestPaths/7.x - Dawntrail/Alliance Raid Quests/5235_That World Was Called Vana'diel.json create mode 100644 QuestPaths/7.x - Dawntrail/Alliance Raid Quests/5236_Jeuno.json diff --git a/QuestPaths/7.x - Dawntrail/Alliance Raid Quests/5233_An Otherworldly Encounter.json b/QuestPaths/7.x - Dawntrail/Alliance Raid Quests/5233_An Otherworldly Encounter.json new file mode 100644 index 000000000..87de30021 --- /dev/null +++ b/QuestPaths/7.x - Dawntrail/Alliance Raid Quests/5233_An Otherworldly Encounter.json @@ -0,0 +1,102 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1051950, + "Position": { + "X": -15.335327, + "Y": -5.9003114E-09, + "Z": 31.3573 + }, + "TerritoryId": 1185, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Tuliyollal", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1052166, + "Position": { + "X": 567.6814, + "Y": -131.41925, + "Z": 610.1013 + }, + "TerritoryId": 1189, + "InteractionType": "Interact", + "AetheryteShortcut": "Yak T'el - Mamook", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2014454, + "Position": { + "X": -525.8412, + "Y": -158.37347, + "Z": 541.46643 + }, + "TerritoryId": 1189, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1051954, + "Position": { + "X": -531.57855, + "Y": -152.53433, + "Z": 645.777 + }, + "TerritoryId": 1189, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "TerritoryId": 1189, + "InteractionType": "Duty", + "ContentFinderConditionId": 1015 + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1051956, + "Position": { + "X": 1.8463135, + "Y": 41.99997, + "Z": -2.456726 + }, + "StopDistance": 7, + "TerritoryId": 1264, + "InteractionType": "CompleteQuest", + "NextQuestId": 5234 + } + ] + } + ] +} diff --git a/QuestPaths/7.x - Dawntrail/Alliance Raid Quests/5234_It All Began with a Stone.json b/QuestPaths/7.x - Dawntrail/Alliance Raid Quests/5234_It All Began with a Stone.json new file mode 100644 index 000000000..5d41c422f --- /dev/null +++ b/QuestPaths/7.x - Dawntrail/Alliance Raid Quests/5234_It All Began with a Stone.json @@ -0,0 +1,153 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1051957, + "Position": { + "X": -1.6327515, + "Y": 41.999977, + "Z": -0.7172241 + }, + "StopDistance": 6, + "TerritoryId": 1264, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1051957, + "Position": { + "X": -1.6327515, + "Y": 41.999977, + "Z": -0.7172241 + }, + "StopDistance": 6, + "TerritoryId": 1264, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1051959, + "Position": { + "X": -15.854187, + "Y": 41.99999, + "Z": -4.6845703 + }, + "TerritoryId": 1264, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 1051961, + "Position": { + "X": -13.931519, + "Y": 41.999992, + "Z": -49.027283 + }, + "TerritoryId": 1264, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 16 + ] + }, + { + "DataId": 1051960, + "Position": { + "X": 15.457336, + "Y": 43.499985, + "Z": -137.25494 + }, + "TerritoryId": 1264, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, + { + "DataId": 2014455, + "Position": { + "X": 71.213745, + "Y": 43.411865, + "Z": -84.00098 + }, + "TerritoryId": 1264, + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_KINGEA102_05234_Q2_000_000", + "Answer": "TEXT_KINGEA102_05234_A2_000_001" + } + ], + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1051958, + "Position": { + "X": 1.8463135, + "Y": 41.99997, + "Z": -2.456726 + }, + "TerritoryId": 1264, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1051965, + "Position": { + "X": 1.8463135, + "Y": 41.99997, + "Z": -2.456726 + }, + "TerritoryId": 1264, + "InteractionType": "CompleteQuest", + "NextQuestId": 5235 + } + ] + } + ] +} diff --git a/QuestPaths/7.x - Dawntrail/Alliance Raid Quests/5235_That World Was Called Vana'diel.json b/QuestPaths/7.x - Dawntrail/Alliance Raid Quests/5235_That World Was Called Vana'diel.json new file mode 100644 index 000000000..856a15aa6 --- /dev/null +++ b/QuestPaths/7.x - Dawntrail/Alliance Raid Quests/5235_That World Was Called Vana'diel.json @@ -0,0 +1,111 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1051964, + "Position": { + "X": 0.56451416, + "Y": 41.999973, + "Z": -5.2339478 + }, + "TerritoryId": 1264, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1051967, + "Position": { + "X": 564.72107, + "Y": -131.41925, + "Z": 609.21643 + }, + "TerritoryId": 1189, + "InteractionType": "Interact", + "AetheryteShortcut": "Yak T'el - Mamook", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2014464, + "Position": { + "X": -412.2835, + "Y": 2.9754639, + "Z": -57.846985 + }, + "TerritoryId": 1185, + "InteractionType": "Interact", + "AetheryteShortcut": "Tuliyollal", + "AethernetShortcut": [ + "[Tuliyollal] Aetheryte Plaza", + "[Tuliyollal] Dirigible Landing" + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1051971, + "Position": { + "X": -414.69446, + "Y": 3, + "Z": -55.10034 + }, + "StopDistance": 5, + "TerritoryId": 1185, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1051971, + "Position": { + "X": 93.53023, + "Y": -14, + "Z": 50.456287 + }, + "StopDistance": 0.25, + "TerritoryId": 1185, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Tuliyollal] Dirigible Landing", + "[Tuliyollal] Aetheryte Plaza" + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1051972, + "Position": { + "X": 123.79639, + "Y": -14, + "Z": 27.115234 + }, + "StopDistance": 5, + "TerritoryId": 1185, + "InteractionType": "CompleteQuest", + "NextQuestId": 5236 + } + ] + } + ] +} diff --git a/QuestPaths/7.x - Dawntrail/Alliance Raid Quests/5236_Jeuno.json b/QuestPaths/7.x - Dawntrail/Alliance Raid Quests/5236_Jeuno.json new file mode 100644 index 000000000..bb46c142f --- /dev/null +++ b/QuestPaths/7.x - Dawntrail/Alliance Raid Quests/5236_Jeuno.json @@ -0,0 +1,194 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1051974, + "Position": { + "X": 121.782104, + "Y": -14, + "Z": 29.587158 + }, + "StopDistance": 7, + "TerritoryId": 1185, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1052148, + "Position": { + "X": -527.245, + "Y": -152.47649, + "Z": 663.6301 + }, + "TerritoryId": 1189, + "InteractionType": "Interact", + "AetheryteShortcut": "Yak T'el - Mamook", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2014450, + "Position": { + "X": -528.37415, + "Y": -152.20874, + "Z": 671.13745 + }, + "TerritoryId": 1189, + "InteractionType": "Interact", + "TargetTerritoryId": 1265, + "SkipConditions": { + "StepIf": { + "InTerritory": [ + 1265 + ] + } + } + }, + { + "DataId": 1052131, + "Position": { + "X": -23.849854, + "Y": 43, + "Z": -25.192688 + }, + "TerritoryId": 1265, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 1052132, + "Position": { + "X": -1.1139526, + "Y": 41.999992, + "Z": -110.15497 + }, + "TerritoryId": 1265, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1052139, + "Position": { + "X": 11.459534, + "Y": 41.99999, + "Z": -50.644714 + }, + "TerritoryId": 1265, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1051948, + "Position": { + "X": 11.36792, + "Y": 41.99999, + "Z": -50.55316 + }, + "StopDistance": 5, + "TerritoryId": 1265, + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_KINGEA104_05236_Q1_000_000", + "Yes": true + }, + { + "Type": "YesNo", + "Prompt": "TEXT_KINGEA104_05236_Q2_000_000", + "Yes": true + }, + { + "Type": "List", + "Prompt": "TEXT_KINGEA104_05236_Q3_000_000", + "Answer": "TEXT_KINGEA104_05236_A3_000_002" + }, + { + "Type": "List", + "Prompt": "TEXT_KINGEA104_05236_Q5_000_000", + "Answer": "TEXT_KINGEA104_05236_A5_000_002" + }, + { + "Type": "List", + "Prompt": "TEXT_KINGEA104_05236_Q7_000_000", + "Answer": "TEXT_KINGEA104_05236_A7_000_001" + } + ], + "PointMenuChoices": [ + 0 + ] + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1052163, + "Position": { + "X": 5.9662476, + "Y": 41.999992, + "Z": -47.226746 + }, + "TerritoryId": 1265, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1052145, + "Position": { + "X": 139.45215, + "Y": 42, + "Z": -354.84857 + }, + "TerritoryId": 1185, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Tuliyollal", + "AethernetShortcut": [ + "[Tuliyollal] Aetheryte Plaza", + "[Tuliyollal] Brightploom Post" + ] + } + ] + } + ] +} -- 2.45.2 From 54baec68bfba04f74edd356a58c668ef961b7c0b Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sun, 17 Nov 2024 19:52:04 +0100 Subject: [PATCH 237/448] Misc 7.1 fixes --- .../Controller/CombatModules/ItemUseModule.cs | 3 +- Questionable/Controller/Steps/Common/Mount.cs | 14 +++++- Questionable/Data/GatheringData.cs | 4 +- Questionable/Data/QuestData.cs | 3 +- Questionable/Data/Sheets/QuestEx.cs | 46 ------------------- Questionable/Functions/ExcelFunctions.cs | 5 +- Questionable/Model/QuestInfo.cs | 8 ++-- 7 files changed, 23 insertions(+), 60 deletions(-) delete mode 100644 Questionable/Data/Sheets/QuestEx.cs diff --git a/Questionable/Controller/CombatModules/ItemUseModule.cs b/Questionable/Controller/CombatModules/ItemUseModule.cs index ec9adfa12..b5b6fd289 100644 --- a/Questionable/Controller/CombatModules/ItemUseModule.cs +++ b/Questionable/Controller/CombatModules/ItemUseModule.cs @@ -142,7 +142,8 @@ internal sealed class ItemUseModule : ICombatModule { BattleChara* battleChara = (BattleChara*)gameObject.Address; if (_combatData.CombatItemUse.Condition == ECombatItemUseCondition.Incapacitated) - return (battleChara->CombatTagType & 128u) != 0; // FIXME 7.1 + //return (byte)(((nint)battleChara + 0x1C68) & 0x40) != 0; // FIXME 7.1 + return false; if (_combatData.CombatItemUse.Condition == ECombatItemUseCondition.HealthPercent) return (100f * battleChara->Health / battleChara->MaxHealth) < _combatData.CombatItemUse.Value; diff --git a/Questionable/Controller/Steps/Common/Mount.cs b/Questionable/Controller/Steps/Common/Mount.cs index 2fb0d2d70..1e03d8e97 100644 --- a/Questionable/Controller/Steps/Common/Mount.cs +++ b/Questionable/Controller/Steps/Common/Mount.cs @@ -1,7 +1,9 @@ using System; using Dalamud.Game.ClientState.Conditions; +using Dalamud.Game.ClientState.Objects.SubKinds; using Dalamud.Plugin.Services; using FFXIVClientStructs.FFXIV.Client.Game; +using FFXIVClientStructs.FFXIV.Client.Game.Character; using FFXIVClientStructs.FFXIV.Common.Math; using Microsoft.Extensions.Logging; using Questionable.Data; @@ -184,7 +186,17 @@ internal static class Mount : ETaskResult.TaskComplete; } - private unsafe bool IsUnmounting() => **(byte**)(clientState.LocalPlayer!.Address + 1432) == 1; + private unsafe bool IsUnmounting() + { + IPlayerCharacter? localPlayer = clientState.LocalPlayer; + if (localPlayer != null) + { + BattleChara* battleChara = (BattleChara*) localPlayer.Address; + return (battleChara->Mount.Flags & 1) == 1; + } + + return false; + } } public enum EMountIf diff --git a/Questionable/Data/GatheringData.cs b/Questionable/Data/GatheringData.cs index 1d11a1ba3..41a6631b3 100644 --- a/Questionable/Data/GatheringData.cs +++ b/Questionable/Data/GatheringData.cs @@ -36,8 +36,8 @@ internal sealed class GatheringData } _itemIdToCollectability = dataManager.GetSubrowExcelSheet() + .Flatten() .Where(x => x.RowId > 0) - .SelectMany(x => x) .Where(x => x.Slot is 2) .Select(x => new { @@ -50,8 +50,8 @@ internal sealed class GatheringData _npcForCustomDeliveries = dataManager.GetExcelSheet() .Where(x => x.RowId > 0) .SelectMany(x => dataManager.GetSubrowExcelSheet() + .Flatten() .Where(y => y.RowId == x.SatisfactionNpcParams.Last().SupplyIndex) - .SelectMany(y => y) .Select(y => new { ItemId = y.Item.RowId, diff --git a/Questionable/Data/QuestData.cs b/Questionable/Data/QuestData.cs index b055a7d73..0bc96b55d 100644 --- a/Questionable/Data/QuestData.cs +++ b/Questionable/Data/QuestData.cs @@ -6,7 +6,6 @@ using Dalamud.Plugin.Services; using FFXIVClientStructs.FFXIV.Client.Game.UI; using LLib.GameData; using Lumina.Excel.Sheets; -using Questionable.Data.Sheets; using Questionable.Model; using Questionable.Model.Questing; using Quest = Lumina.Excel.Sheets.Quest; @@ -55,7 +54,7 @@ internal sealed class QuestData List quests = [ - ..dataManager.GetExcelSheet() + ..dataManager.GetExcelSheet() .Where(x => x.RowId > 0) .Where(x => x.IssuerLocation.RowId > 0) .Select(x => new QuestInfo(x, questChapters.GetValueOrDefault(x.RowId), diff --git a/Questionable/Data/Sheets/QuestEx.cs b/Questionable/Data/Sheets/QuestEx.cs deleted file mode 100644 index 2dc47b8e3..000000000 --- a/Questionable/Data/Sheets/QuestEx.cs +++ /dev/null @@ -1,46 +0,0 @@ -using Lumina.Excel; -using Lumina.Excel.Sheets; -using Lumina.Text.ReadOnly; - -namespace Questionable.Data.Sheets; - -// TODO Remove once fixed in dalamud -[Sheet("Quest", 0x1F8C7430)] -public readonly unsafe struct QuestEx(ExcelPage page, uint offset, uint row) : IExcelRow -{ - public uint RowId => row; - - public Quest Original { get; } = new(page, offset, row); - - public readonly ReadOnlySeString Id => page.ReadString(offset + 2420, offset); - public RowRef IssuerStart => RowRef.GetFirstValidRowOrUntyped(page.Module, page.ReadUInt32(offset + 2456), [typeof(EObjName), typeof(ENpcResident)], 882056187, page.Language); - public RowRef IssuerLocation => new(page.Module, page.ReadUInt32(offset + 2460), page.Language); - public RowRef JournalGenre => new(page.Module, page.ReadUInt32(offset + 2468), page.Language); - public ushort SortKey => page.ReadUInt16(offset + 2502); - public readonly RowRef Expansion => new(page.Module, (uint)page.ReadUInt8(offset + 2504), page.Language); - public readonly byte PreviousQuestJoin => page.ReadUInt8(offset + 2508); - public readonly RowRef ClassJobCategory0 => new(page.Module, (uint)page.ReadUInt8(offset + 2505), page.Language); - public readonly RowRef ClassJobCategory1 => new(page.Module, (uint)page.ReadUInt8(offset + 2507), page.Language); - public readonly RowRef Festival => new(page.Module, (uint)page.ReadUInt8(offset + 2517), page.Language); - public readonly byte Unknown7 => page.ReadUInt8(offset + 2509); - public readonly byte QuestLockJoin => page.ReadUInt8(offset + 2510); - public readonly RowRef GrandCompany => new(page.Module, (uint)page.ReadUInt8(offset + 2514), page.Language); - public readonly byte InstanceContentJoin => page.ReadUInt8(offset + 2516); - public readonly RowRef BeastTribe => new(page.Module, (uint)page.ReadUInt8(offset + 2520), page.Language); - public bool IsRepeatable => page.ReadPackedBool(offset + 2535, 1); - - public readonly Collection> PreviousQuest => new(page, offset, offset, &PreviousQuestCtor, 3); - private static RowRef PreviousQuestCtor(ExcelPage page, uint parentOffset, uint offset, uint i) => new(page.Module, page.ReadUInt32(offset + 2424 + i * 4), page.Language); - - public readonly Collection> QuestLock => new(page, offset, offset, &QuestLockCtor, 2); - private static RowRef QuestLockCtor(ExcelPage page, uint parentOffset, uint offset, uint i) => new(page.Module, page.ReadUInt32(offset + 2436 + i * 4), page.Language); - - public readonly Collection ClassJobLevel => new(page, offset, offset, &ClassJobLevelCtor, 2); - private static ushort ClassJobLevelCtor(ExcelPage page, uint parentOffset, uint offset, uint i) => page.ReadUInt16(offset + 2484 + i * 2); - - public Collection> InstanceContent => new(page, offset, offset, &InstanceContentCtor, 3); - private static RowRef InstanceContentCtor(ExcelPage page, uint parentOffset, uint offset, uint i) => new(page.Module, page.ReadUInt32(offset + 2444 + i * 4), page.Language); - - static QuestEx IExcelRow.Create(ExcelPage page, uint offset, uint row) => - new(page, offset, row); -} diff --git a/Questionable/Functions/ExcelFunctions.cs b/Questionable/Functions/ExcelFunctions.cs index 3109f942e..48a9d1053 100644 --- a/Questionable/Functions/ExcelFunctions.cs +++ b/Questionable/Functions/ExcelFunctions.cs @@ -3,13 +3,10 @@ using System.Linq; using Dalamud.Plugin.Services; using Dalamud.Utility; using LLib; -using Lumina.Excel; using Lumina.Excel.Exceptions; using Lumina.Excel.Sheets; -using Lumina.Text; using Lumina.Text.ReadOnly; using Microsoft.Extensions.Logging; -using Questionable.Data.Sheets; using Questionable.Model; using Quest = Questionable.Model.Quest; using GimmickYesNo = Lumina.Excel.Sheets.GimmickYesNo; @@ -41,7 +38,7 @@ internal sealed class ExcelFunctions if (currentQuest != null && excelSheetName == null) { var questRow = - _dataManager.GetExcelSheet().GetRowOrDefault((uint)currentQuest.Id.Value + + _dataManager.GetExcelSheet().GetRowOrDefault((uint)currentQuest.Id.Value + 0x10000); if (questRow == null) { diff --git a/Questionable/Model/QuestInfo.cs b/Questionable/Model/QuestInfo.cs index cca298902..bc766b671 100644 --- a/Questionable/Model/QuestInfo.cs +++ b/Questionable/Model/QuestInfo.cs @@ -4,14 +4,14 @@ using System.Collections.Immutable; using System.Linq; using FFXIVClientStructs.FFXIV.Client.UI.Agent; using LLib.GameData; -using Questionable.Data.Sheets; using Questionable.Model.Questing; +using ExcelQuest = Lumina.Excel.Sheets.Quest; namespace Questionable.Model; internal sealed class QuestInfo : IQuestInfo { - public QuestInfo(QuestEx quest, uint newGamePlusChapter, byte startingCity) + public QuestInfo(ExcelQuest quest, uint newGamePlusChapter, byte startingCity) { QuestId = new QuestId((ushort)(quest.RowId & 0xFFFF)); @@ -33,7 +33,7 @@ internal sealed class QuestInfo : IQuestInfo _ => "", }; - Name = $"{quest.Original.Name}{suffix}"; + Name = $"{quest.Name}{suffix}"; Level = quest.ClassJobLevel[0]; IssuerDataId = quest.IssuerStart.RowId; IsRepeatable = quest.IsRepeatable; @@ -55,7 +55,7 @@ internal sealed class QuestInfo : IQuestInfo JournalGenre = quest.JournalGenre.ValueNullable?.RowId; SortKey = quest.SortKey; IsMainScenarioQuest = quest.JournalGenre.ValueNullable?.JournalCategory.ValueNullable?.JournalSection.ValueNullable?.RowId is 0 or 1; - CompletesInstantly = quest.Original.TodoParams[0].ToDoCompleteSeq == 0; + CompletesInstantly = quest.TodoParams[0].ToDoCompleteSeq == 0; PreviousInstanceContent = quest.InstanceContent.Select(x => (ushort)x.RowId).Where(x => x != 0).ToList(); PreviousInstanceContentJoin = (EQuestJoin)quest.InstanceContentJoin; GrandCompany = (GrandCompany)quest.GrandCompany.RowId; -- 2.45.2 From bd7025cc39ca2968b24bc44b4afacfd72766a144 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sun, 17 Nov 2024 19:52:24 +0100 Subject: [PATCH 238/448] Version bump --- Directory.Build.targets | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Directory.Build.targets b/Directory.Build.targets index 1d1142802..38a3a911b 100644 --- a/Directory.Build.targets +++ b/Directory.Build.targets @@ -1,5 +1,5 @@ - 3.13 + 4.0 -- 2.45.2 From af545ea29bc99db2635a6e8b3076c61e72673644 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sun, 17 Nov 2024 20:36:32 +0100 Subject: [PATCH 239/448] Rebuild in VS --- GatheringPathRenderer/packages.lock.json | 8 ++++---- Questionable/packages.lock.json | 12 ++++++------ 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/GatheringPathRenderer/packages.lock.json b/GatheringPathRenderer/packages.lock.json index aae9abbad..523f69697 100644 --- a/GatheringPathRenderer/packages.lock.json +++ b/GatheringPathRenderer/packages.lock.json @@ -4,9 +4,9 @@ "net8.0-windows7.0": { "DalamudPackager": { "type": "Direct", - "requested": "[2.1.13, )", - "resolved": "2.1.13", - "contentHash": "rMN1omGe8536f4xLMvx9NwfvpAc9YFFfeXJ1t4P4PE6Gu8WCIoFliR1sh07hM+bfODmesk/dvMbji7vNI+B/pQ==" + "requested": "[11.0.0, )", + "resolved": "11.0.0", + "contentHash": "bjT7XUlhIJSmsE/O76b7weUX+evvGQctbQB8aKXt94o+oPWxHpCepxAGMs7Thow3AzCyqWs7cOpp9/2wcgRRQA==" }, "DotNet.ReproducibleBuilds": { "type": "Direct", @@ -87,7 +87,7 @@ "llib": { "type": "Project", "dependencies": { - "DalamudPackager": "[2.1.13, )" + "DalamudPackager": "[11.0.0, )" } }, "questionable.model": { diff --git a/Questionable/packages.lock.json b/Questionable/packages.lock.json index eb9b1d2ca..b358da6ea 100644 --- a/Questionable/packages.lock.json +++ b/Questionable/packages.lock.json @@ -13,9 +13,9 @@ }, "DalamudPackager": { "type": "Direct", - "requested": "[2.1.13, )", - "resolved": "2.1.13", - "contentHash": "rMN1omGe8536f4xLMvx9NwfvpAc9YFFfeXJ1t4P4PE6Gu8WCIoFliR1sh07hM+bfODmesk/dvMbji7vNI+B/pQ==" + "requested": "[11.0.0, )", + "resolved": "11.0.0", + "contentHash": "bjT7XUlhIJSmsE/O76b7weUX+evvGQctbQB8aKXt94o+oPWxHpCepxAGMs7Thow3AzCyqWs7cOpp9/2wcgRRQA==" }, "DotNet.ReproducibleBuilds": { "type": "Direct", @@ -174,13 +174,13 @@ "gatheringpaths": { "type": "Project", "dependencies": { - "Questionable.Model": "[3.12.0, )" + "Questionable.Model": "[4.0.0, )" } }, "llib": { "type": "Project", "dependencies": { - "DalamudPackager": "[2.1.13, )" + "DalamudPackager": "[11.0.0, )" } }, "notificationmasterapi": { @@ -195,7 +195,7 @@ "questpaths": { "type": "Project", "dependencies": { - "Questionable.Model": "[3.12.0, )" + "Questionable.Model": "[4.0.0, )" } } } -- 2.45.2 From 6342da8348260e45d0ba6fdaa88ee8c6fa98ebc0 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sun, 17 Nov 2024 20:39:37 +0100 Subject: [PATCH 240/448] Version bump --- Directory.Build.targets | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Directory.Build.targets b/Directory.Build.targets index 38a3a911b..ae3c9a423 100644 --- a/Directory.Build.targets +++ b/Directory.Build.targets @@ -1,5 +1,5 @@ - 4.0 + 4.1 -- 2.45.2 From 993d6918eca3dbd08d9f26a675b1a1f31f6b05b5 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Mon, 18 Nov 2024 17:46:31 +0100 Subject: [PATCH 241/448] Add one of the missing weekly NieR quests --- .../4052_How to Catch an Automaton.json | 70 +++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 QuestPaths/6.x - Endwalker/Alliance Raid Quests/4052_How to Catch an Automaton.json diff --git a/QuestPaths/6.x - Endwalker/Alliance Raid Quests/4052_How to Catch an Automaton.json b/QuestPaths/6.x - Endwalker/Alliance Raid Quests/4052_How to Catch an Automaton.json new file mode 100644 index 000000000..580c10a48 --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Alliance Raid Quests/4052_How to Catch an Automaton.json @@ -0,0 +1,70 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1036044, + "Position": { + "X": 652.7046, + "Y": 297.47797, + "Z": -171.03839 + }, + "TerritoryId": 814, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Kholusia - Tomra", + "Fly": true, + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_LUCKTA523_04052_Q1_000_000", + "Answer": "TEXT_LUCKTA523_04052_A1_000_001" + } + ] + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": 552.4747, + "Y": 294.7846, + "Z": -137.54712 + }, + "TerritoryId": 814, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "KillEnemyDataIds": [ + 10391 + ], + "CombatItemUse": { + "ItemId": 2003071, + "Condition": "Health%", + "Value": 30 + }, + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1036044, + "Position": { + "X": 652.7046, + "Y": 297.47797, + "Z": -171.03839 + }, + "TerritoryId": 814, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} -- 2.45.2 From a540fd8b8628a3f3f9b2005dfd2c9293bbbba7e3 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Mon, 18 Nov 2024 17:46:45 +0100 Subject: [PATCH 242/448] Add additional waypoint to 'Growing as a Guide' --- .../Pelupelu/Dailies/5205_Growing as a Guide.json | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5205_Growing as a Guide.json b/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5205_Growing as a Guide.json index c576165f1..6bb3e3038 100644 --- a/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5205_Growing as a Guide.json +++ b/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5205_Growing as a Guide.json @@ -31,9 +31,20 @@ "Sequence": 1, "Steps": [ { + "Position": { + "X": -165.49648, + "Y": 8.736965, + "Z": -401.72836 + }, "TerritoryId": 1188, - "InteractionType": "None", - "AetheryteShortcut": "Kozama'uka - Ok'hanu" + "InteractionType": "WalkTo", + "AetheryteShortcut": "Kozama'uka - Ok'hanu", + "Fly": true, + "SkipConditions": { + "StepIf": { + "Flying": "Locked" + } + } }, { "DataId": 1052307, -- 2.45.2 From 0d7263604b6ce2afa5f2d0a0714d534792e9992e Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Mon, 18 Nov 2024 18:21:36 +0100 Subject: [PATCH 243/448] Updated Pelupelu quests to allow for multiple quests to be turned in at once --- ...1_Ferocious Foliage, Fearful Tourists.json | 16 ++++++- ...5202_Community Outreach in Kozanuakiy.json | 16 ++++++- .../Dailies/5203_Preventative Measures.json | 32 +++++++++++++- .../Dailies/5204_Burden of Beasts.json | 32 +++++++++++++- .../5210_The Rudiments of Fiend Removal.json | 16 ++++++- .../Dailies/5212_Starting from Scrap.json | 16 ++++++- .../Dailies/5218_The Hand That Feeds.json | 16 ++++++- Questionable/Functions/QuestFunctions.cs | 43 ++++++++++++++++--- 8 files changed, 173 insertions(+), 14 deletions(-) diff --git a/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5201_Ferocious Foliage, Fearful Tourists.json b/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5201_Ferocious Foliage, Fearful Tourists.json index 056eab0b4..933c123da 100644 --- a/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5201_Ferocious Foliage, Fearful Tourists.json +++ b/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5201_Ferocious Foliage, Fearful Tourists.json @@ -53,7 +53,21 @@ null, null, null - ] + ], + "AetheryteShortcut": "Kozama'uka - Dock Poga", + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": 770.7179, + "Y": 12.84657, + "Z": -263.99634 + }, + "TerritoryId": 1188, + "MaximumDistance": 300 + } + } + } }, { "DataId": 2014481, diff --git a/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5202_Community Outreach in Kozanuakiy.json b/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5202_Community Outreach in Kozanuakiy.json index 87cadfa6c..eb50d2c34 100644 --- a/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5202_Community Outreach in Kozanuakiy.json +++ b/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5202_Community Outreach in Kozanuakiy.json @@ -39,7 +39,21 @@ }, "TerritoryId": 1188, "InteractionType": "Interact", - "Fly": true + "Fly": true, + "AetheryteShortcut": "Kozama'uka - Dock Poga", + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": 770.7179, + "Y": 12.84657, + "Z": -263.99634 + }, + "TerritoryId": 1188, + "MaximumDistance": 300 + } + } + } } ] }, diff --git a/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5203_Preventative Measures.json b/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5203_Preventative Measures.json index 262ce23eb..cb54fe597 100644 --- a/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5203_Preventative Measures.json +++ b/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5203_Preventative Measures.json @@ -48,7 +48,21 @@ null, null, 64 - ] + ], + "AetheryteShortcut": "Kozama'uka - Dock Poga", + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": 770.7179, + "Y": 12.84657, + "Z": -263.99634 + }, + "TerritoryId": 1188, + "MaximumDistance": 300 + } + } + } }, { "DataId": 2014485, @@ -101,7 +115,21 @@ }, "TerritoryId": 1188, "InteractionType": "WalkTo", - "Fly": true + "Fly": true, + "AetheryteShortcut": "Kozama'uka - Dock Poga", + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": 770.7179, + "Y": 12.84657, + "Z": -263.99634 + }, + "TerritoryId": 1188, + "MaximumDistance": 300 + } + } + } }, { "DataId": 1051711, diff --git a/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5204_Burden of Beasts.json b/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5204_Burden of Beasts.json index 549951cf2..f5bcdb6f2 100644 --- a/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5204_Burden of Beasts.json +++ b/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5204_Burden of Beasts.json @@ -39,7 +39,21 @@ }, "TerritoryId": 1188, "InteractionType": "Interact", - "Fly": true + "Fly": true, + "AetheryteShortcut": "Kozama'uka - Dock Poga", + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": 770.7179, + "Y": 12.84657, + "Z": -263.99634 + }, + "TerritoryId": 1188, + "MaximumDistance": 300 + } + } + } } ] }, @@ -85,7 +99,21 @@ }, "TerritoryId": 1188, "InteractionType": "WalkTo", - "Fly": true + "Fly": true, + "AetheryteShortcut": "Kozama'uka - Dock Poga", + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": 770.7179, + "Y": 12.84657, + "Z": -263.99634 + }, + "TerritoryId": 1188, + "MaximumDistance": 300 + } + } + } }, { "DataId": 1051711, diff --git a/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5210_The Rudiments of Fiend Removal.json b/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5210_The Rudiments of Fiend Removal.json index 1203c94c9..eb5c727ec 100644 --- a/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5210_The Rudiments of Fiend Removal.json +++ b/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5210_The Rudiments of Fiend Removal.json @@ -40,7 +40,21 @@ }, "TerritoryId": 1188, "InteractionType": "Interact", - "Fly": true + "Fly": true, + "AetheryteShortcut": "Kozama'uka - Dock Poga", + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": 770.7179, + "Y": 12.84657, + "Z": -263.99634 + }, + "TerritoryId": 1188, + "MaximumDistance": 300 + } + } + } } ] }, diff --git a/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5212_Starting from Scrap.json b/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5212_Starting from Scrap.json index f4add8305..264ed7569 100644 --- a/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5212_Starting from Scrap.json +++ b/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5212_Starting from Scrap.json @@ -47,7 +47,21 @@ null, null, 128 - ] + ], + "AetheryteShortcut": "Kozama'uka - Dock Poga", + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": 770.7179, + "Y": 12.84657, + "Z": -263.99634 + }, + "TerritoryId": 1188, + "MaximumDistance": 300 + } + } + } }, { "DataId": 2014495, diff --git a/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5218_The Hand That Feeds.json b/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5218_The Hand That Feeds.json index 1b751760d..744e96ea0 100644 --- a/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5218_The Hand That Feeds.json +++ b/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5218_The Hand That Feeds.json @@ -38,7 +38,21 @@ }, "TerritoryId": 1188, "InteractionType": "WalkTo", - "Fly": true + "Fly": true, + "AetheryteShortcut": "Kozama'uka - Dock Poga", + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": 770.7179, + "Y": 12.84657, + "Z": -263.99634 + }, + "TerritoryId": 1188, + "MaximumDistance": 300 + } + } + } }, { "DataId": 1052331, diff --git a/Questionable/Functions/QuestFunctions.cs b/Questionable/Functions/QuestFunctions.cs index 9211514dc..fa837cac8 100644 --- a/Questionable/Functions/QuestFunctions.cs +++ b/Questionable/Functions/QuestFunctions.cs @@ -122,6 +122,7 @@ internal sealed unsafe class QuestFunctions // do the MSQ; if a side quest is the first item do that side quest. // // If no quests are marked as 'priority', accepting a new quest adds it to the top of the list. + List<(ElementId Quest, byte Sequence)> trackedQuests = []; for (int i = questManager->TrackedQuests.Length - 1; i >= 0; --i) { ElementId currentQuest; @@ -129,22 +130,40 @@ internal sealed unsafe class QuestFunctions switch (trackedQuest.QuestType) { default: - continue; + break; case 1: // normal quest currentQuest = new QuestId(questManager->NormalQuests[trackedQuest.Index].QuestId); if (_questRegistry.IsKnownQuest(currentQuest)) - return (currentQuest, QuestManager.GetQuestSequence(currentQuest.Value)); - continue; + trackedQuests.Add((currentQuest, QuestManager.GetQuestSequence(currentQuest.Value))); + break; case 2: // leve currentQuest = new LeveId(questManager->LeveQuests[trackedQuest.Index].LeveId); if (_questRegistry.IsKnownQuest(currentQuest)) - return (currentQuest, questManager->GetLeveQuestById(currentQuest.Value)->Sequence); - continue; + trackedQuests.Add((currentQuest, questManager->GetLeveQuestById(currentQuest.Value)->Sequence)); + break; } } + if (trackedQuests.Count > 0) + { + // if we have multiple quests to turn in for an allied society, try and complete all of them + var (firstTrackedQuest, firstTrackedSequence) = trackedQuests.First(); + EAlliedSociety firstTrackedAlliedSociety = GetCommonAlliedSocietyTurnIn(firstTrackedQuest); + if (firstTrackedAlliedSociety != EAlliedSociety.None && firstTrackedSequence == 255) + { + foreach (var (quest, sequence) in trackedQuests.Skip(1)) + { + // only if the other quest isn't ready to be turned in + if (GetCommonAlliedSocietyTurnIn(quest) == firstTrackedAlliedSociety && sequence != 255) + return (quest, sequence); + } + } + + return (firstTrackedQuest, firstTrackedSequence); + } + ElementId? priorityQuest = GetNextPriorityQuestThatCanBeAccepted(); if (priorityQuest != null) { @@ -221,6 +240,20 @@ internal sealed unsafe class QuestFunctions return (currentQuest, QuestManager.GetQuestSequence(currentQuest.Value)); } + private static EAlliedSociety GetCommonAlliedSocietyTurnIn(ElementId elementId) + { + if (elementId is QuestId questId) + { + return questId.Value switch + { + >= 5199 and <= 5226 => EAlliedSociety.Pelupelu, + _ => EAlliedSociety.None, + }; + } + + return EAlliedSociety.None; + } + public QuestProgressInfo? GetQuestProgressInfo(ElementId elementId) { if (elementId is QuestId questId) -- 2.45.2 From 3b1bfcaadeb7d900a6fd10f40c71dcfb6364f0a1 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Mon, 18 Nov 2024 19:02:01 +0100 Subject: [PATCH 244/448] Add 'Every Anden of the Rainbow' --- .../4716_Every Anden of the Rainbow.json | 83 +++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 QuestPaths/6.x - Endwalker/Custom Deliveries/Anden/4716_Every Anden of the Rainbow.json diff --git a/QuestPaths/6.x - Endwalker/Custom Deliveries/Anden/4716_Every Anden of the Rainbow.json b/QuestPaths/6.x - Endwalker/Custom Deliveries/Anden/4716_Every Anden of the Rainbow.json new file mode 100644 index 000000000..d0744923d --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Custom Deliveries/Anden/4716_Every Anden of the Rainbow.json @@ -0,0 +1,83 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1044547, + "Position": { + "X": -241.68768, + "Y": 51.058994, + "Z": 620.8744 + }, + "TerritoryId": 816, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Il Mheg - Lydha Lran", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + }, + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_SUBCTS681_04716_Q1_000_003", + "Answer": "TEXT_SUBCTS681_04716_A1_000_001" + } + ] + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1044560, + "Position": { + "X": -241.68768, + "Y": 51.058994, + "Z": 620.8744 + }, + "TerritoryId": 816, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2013247, + "Position": { + "X": 428.15283, + "Y": 3.2196045, + "Z": 23.483582 + }, + "TerritoryId": 817, + "InteractionType": "Interact", + "AetheryteShortcut": "Rak'tika - Fanow", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1044560, + "Position": { + "X": -241.68768, + "Y": 51.058994, + "Z": 620.8744 + }, + "TerritoryId": 816, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Il Mheg - Lydha Lran", + "Fly": true + } + ] + } + ] +} -- 2.45.2 From d4c1b4b3aca6a7b6b7039b029cedff4307bea3b6 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Mon, 18 Nov 2024 19:05:12 +0100 Subject: [PATCH 245/448] Add 'A Labor of Leaf' --- .../4716_Every Anden of the Rainbow.json | 3 +- .../Anden/4717_A Labor of Leaf.json | 44 +++++++++++++++++++ 2 files changed, 46 insertions(+), 1 deletion(-) create mode 100644 QuestPaths/6.x - Endwalker/Custom Deliveries/Anden/4717_A Labor of Leaf.json diff --git a/QuestPaths/6.x - Endwalker/Custom Deliveries/Anden/4716_Every Anden of the Rainbow.json b/QuestPaths/6.x - Endwalker/Custom Deliveries/Anden/4716_Every Anden of the Rainbow.json index d0744923d..83810e3c3 100644 --- a/QuestPaths/6.x - Endwalker/Custom Deliveries/Anden/4716_Every Anden of the Rainbow.json +++ b/QuestPaths/6.x - Endwalker/Custom Deliveries/Anden/4716_Every Anden of the Rainbow.json @@ -75,7 +75,8 @@ "TerritoryId": 816, "InteractionType": "CompleteQuest", "AetheryteShortcut": "Il Mheg - Lydha Lran", - "Fly": true + "Fly": true, + "NextQuestId": 4717 } ] } diff --git a/QuestPaths/6.x - Endwalker/Custom Deliveries/Anden/4717_A Labor of Leaf.json b/QuestPaths/6.x - Endwalker/Custom Deliveries/Anden/4717_A Labor of Leaf.json new file mode 100644 index 000000000..d40d2af4b --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Custom Deliveries/Anden/4717_A Labor of Leaf.json @@ -0,0 +1,44 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1044550, + "Position": { + "X": -239.70398, + "Y": 51.05899, + "Z": 622.2477 + }, + "StopDistance": 5, + "TerritoryId": 816, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Il Mheg - Lydha Lran", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1044562, + "Position": { + "X": -294.97223, + "Y": 67.46317, + "Z": 603.6621 + }, + "TerritoryId": 816, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} -- 2.45.2 From ed4d279432373bd234b8893eedeb094a2b49780d Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Mon, 18 Nov 2024 19:05:22 +0100 Subject: [PATCH 246/448] Fix gathering for tribal quests --- Questionable/Controller/MiniTaskController.cs | 4 + Questionable/Controller/Steps/ETaskResult.cs | 5 + .../Controller/Steps/Shared/Gather.cs | 110 ++++++++++-------- Questionable/Controller/Steps/TaskExecutor.cs | 7 ++ Questionable/Controller/Steps/TaskQueue.cs | 5 + Questionable/QuestionablePlugin.cs | 3 +- 6 files changed, 86 insertions(+), 48 deletions(-) diff --git a/Questionable/Controller/MiniTaskController.cs b/Questionable/Controller/MiniTaskController.cs index 068508180..06e5d874d 100644 --- a/Questionable/Controller/MiniTaskController.cs +++ b/Questionable/Controller/MiniTaskController.cs @@ -120,11 +120,15 @@ internal abstract class MiniTaskController return; case ETaskResult.TaskComplete: + case ETaskResult.CreateNewTasks: _logger.LogInformation("{Task} → {Result}, remaining tasks: {RemainingTaskCount}", _taskQueue.CurrentTaskExecutor.CurrentTask, result, _taskQueue.RemainingTasks.Count()); OnTaskComplete(_taskQueue.CurrentTaskExecutor.CurrentTask); + if (result == ETaskResult.CreateNewTasks && _taskQueue.CurrentTaskExecutor is IExtraTaskCreator extraTaskCreator) + _taskQueue.EnqueueAll(extraTaskCreator.CreateExtraTasks()); + _taskQueue.CurrentTaskExecutor = null; // handled in next update diff --git a/Questionable/Controller/Steps/ETaskResult.cs b/Questionable/Controller/Steps/ETaskResult.cs index 647e6ae18..6ecfcba64 100644 --- a/Questionable/Controller/Steps/ETaskResult.cs +++ b/Questionable/Controller/Steps/ETaskResult.cs @@ -11,6 +11,11 @@ internal enum ETaskResult /// SkipRemainingTasksForStep, + /// + /// Assumes the task executor implements . + /// + CreateNewTasks, + NextStep, End, } diff --git a/Questionable/Controller/Steps/Shared/Gather.cs b/Questionable/Controller/Steps/Shared/Gather.cs index 13671d8d9..73dd8d12f 100644 --- a/Questionable/Controller/Steps/Shared/Gather.cs +++ b/Questionable/Controller/Steps/Shared/Gather.cs @@ -4,7 +4,6 @@ using System.Linq; using Dalamud.Game.Text; using Dalamud.Game.Text.SeStringHandling; using Dalamud.Plugin.Services; -using FFXIVClientStructs.FFXIV.Application.Network.WorkDefinitions; using FFXIVClientStructs.FFXIV.Client.Game; using LLib.GameData; using Microsoft.Extensions.DependencyInjection; @@ -19,14 +18,7 @@ namespace Questionable.Controller.Steps.Shared; internal static class Gather { - internal sealed class Factory( - IServiceProvider serviceProvider, - MovementController movementController, - GatheringPointRegistry gatheringPointRegistry, - IClientState clientState, - GatheringData gatheringData, - TerritoryData territoryData, - ILogger logger) : ITaskFactory + internal sealed class Factory : ITaskFactory { public IEnumerable CreateAllTasks(Quest quest, QuestSequence sequence, QuestStep step) { @@ -35,46 +27,70 @@ internal static class Gather foreach (var itemToGather in step.ItemsToGather) { - EClassJob currentClassJob = (EClassJob)clientState.LocalPlayer!.ClassJob.RowId; - if (!gatheringData.TryGetGatheringPointId(itemToGather.ItemId, currentClassJob, - out GatheringPointId? gatheringPointId)) - throw new TaskException($"No gathering point found for item {itemToGather.ItemId}"); - - if (!gatheringPointRegistry.TryGetGatheringPoint(gatheringPointId, out GatheringRoot? gatheringRoot)) - throw new TaskException($"No path found for gathering point {gatheringPointId}"); - - if (HasRequiredItems(itemToGather)) - continue; - - using (var _ = logger.BeginScope("Gathering(inner)")) - { - QuestSequence gatheringSequence = new QuestSequence - { - Sequence = 0, - Steps = gatheringRoot.Steps - }; - foreach (var gatheringStep in gatheringSequence.Steps) - { - foreach (var task in serviceProvider.GetRequiredService() - .CreateTasks(quest, gatheringSequence, gatheringStep)) - if (task is WaitAtEnd.NextStep) - yield return new SkipMarker(); - else - yield return task; - } - } - - ushort territoryId = gatheringRoot.Steps.Last().TerritoryId; - yield return new WaitCondition.Task(() => clientState.TerritoryType == territoryId, - $"Wait(territory: {territoryData.GetNameAndId(territoryId)})"); - - yield return new WaitCondition.Task(() => movementController.IsNavmeshReady, - "Wait(navmesh ready)"); - - yield return new GatheringTask(gatheringPointId, itemToGather); - yield return new WaitAtEnd.WaitDelay(); + yield return new DelayedGatheringTask(itemToGather, quest); } } + } + + internal sealed record DelayedGatheringTask(GatheredItem GatheredItem, Quest Quest) : ITask + { + public override string ToString() => $"Gathering(pending for {GatheredItem.ItemId})"; + } + + internal sealed class DelayedGatheringExecutor( + MovementController movementController, + GatheringData gatheringData, + GatheringPointRegistry gatheringPointRegistry, + TerritoryData territoryData, + IClientState clientState, + IServiceProvider serviceProvider, + ILogger logger) : TaskExecutor, IExtraTaskCreator + { + protected override bool Start() => true; + + public override ETaskResult Update() => ETaskResult.CreateNewTasks; + + public IEnumerable CreateExtraTasks() + { + EClassJob currentClassJob = (EClassJob)clientState.LocalPlayer!.ClassJob.RowId; + if (!gatheringData.TryGetGatheringPointId(Task.GatheredItem.ItemId, currentClassJob, + out GatheringPointId? gatheringPointId)) + throw new TaskException($"No gathering point found for item {Task.GatheredItem.ItemId}"); + + if (!gatheringPointRegistry.TryGetGatheringPoint(gatheringPointId, out GatheringRoot? gatheringRoot)) + throw new TaskException($"No path found for gathering point {gatheringPointId}"); + + if (HasRequiredItems(Task.GatheredItem)) + yield break; + + using (var _ = logger.BeginScope("Gathering(inner)")) + { + QuestSequence gatheringSequence = new QuestSequence + { + Sequence = 0, + Steps = gatheringRoot.Steps + }; + foreach (var gatheringStep in gatheringSequence.Steps) + { + foreach (var task in serviceProvider.GetRequiredService() + .CreateTasks(Task.Quest, gatheringSequence, gatheringStep)) + if (task is WaitAtEnd.NextStep) + yield return new SkipMarker(); + else + yield return task; + } + } + + ushort territoryId = gatheringRoot.Steps.Last().TerritoryId; + yield return new WaitCondition.Task(() => clientState.TerritoryType == territoryId, + $"Wait(territory: {territoryData.GetNameAndId(territoryId)})"); + + yield return new WaitCondition.Task(() => movementController.IsNavmeshReady, + "Wait(navmesh ready)"); + + yield return new GatheringTask(gatheringPointId, Task.GatheredItem); + yield return new WaitAtEnd.WaitDelay(); + } private unsafe bool HasRequiredItems(GatheredItem itemToGather) { diff --git a/Questionable/Controller/Steps/TaskExecutor.cs b/Questionable/Controller/Steps/TaskExecutor.cs index 9f1873f60..d0315dbcd 100644 --- a/Questionable/Controller/Steps/TaskExecutor.cs +++ b/Questionable/Controller/Steps/TaskExecutor.cs @@ -1,4 +1,6 @@ using System; +using System.Collections.Generic; +using Questionable.Model; namespace Questionable.Controller.Steps; @@ -16,6 +18,11 @@ internal interface ITaskExecutor ETaskResult Update(); } +internal interface IExtraTaskCreator : ITaskExecutor +{ + IEnumerable CreateExtraTasks(); +} + internal abstract class TaskExecutor : ITaskExecutor where T : class, ITask { diff --git a/Questionable/Controller/Steps/TaskQueue.cs b/Questionable/Controller/Steps/TaskQueue.cs index 7d30706ac..04cb273cc 100644 --- a/Questionable/Controller/Steps/TaskQueue.cs +++ b/Questionable/Controller/Steps/TaskQueue.cs @@ -18,6 +18,11 @@ internal sealed class TaskQueue _tasks.Add(task); } + public void EnqueueAll(IEnumerable tasks) + { + _tasks.InsertRange(0, tasks); + } + public bool TryDequeue([NotNullWhen(true)] out ITask? task) { task = _tasks.FirstOrDefault(); diff --git a/Questionable/QuestionablePlugin.cs b/Questionable/QuestionablePlugin.cs index ea0eefca4..7e9fb3f53 100644 --- a/Questionable/QuestionablePlugin.cs +++ b/Questionable/QuestionablePlugin.cs @@ -147,7 +147,6 @@ public sealed class QuestionablePlugin : IDalamudPlugin .AddTaskFactoryAndExecutor(); serviceCollection.AddTaskFactory(); - serviceCollection.AddTaskFactoryAndExecutor(); serviceCollection.AddTaskExecutor(); serviceCollection .AddTaskFactoryAndExecutor(); serviceCollection .AddTaskFactoryAndExecutor(); + serviceCollection.AddTaskFactoryAndExecutor(); + serviceCollection.AddTaskExecutor(); serviceCollection .AddTaskFactoryAndExecutor(); -- 2.45.2 From c65da42cd11817083ab550c0165e3825d5c8411e Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Mon, 18 Nov 2024 19:35:53 +0100 Subject: [PATCH 247/448] Add 'A Present from the Present' --- .../Raid Quests/4760_Guided by the Past.json | 16 ++- .../5252_A Present from the Present.json | 126 ++++++++++++++++++ 2 files changed, 139 insertions(+), 3 deletions(-) create mode 100644 QuestPaths/6.x - Endwalker/Raid Quests/5252_A Present from the Present.json diff --git a/QuestPaths/6.x - Endwalker/Raid Quests/4760_Guided by the Past.json b/QuestPaths/6.x - Endwalker/Raid Quests/4760_Guided by the Past.json index 3a34daf74..76d7ed856 100644 --- a/QuestPaths/6.x - Endwalker/Raid Quests/4760_Guided by the Past.json +++ b/QuestPaths/6.x - Endwalker/Raid Quests/4760_Guided by the Past.json @@ -21,6 +21,17 @@ { "Sequence": 1, "Steps": [ + { + "Position": { + "X": 807.9048, + "Y": 152.2857, + "Z": -243.60707 + }, + "TerritoryId": 961, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Elpis - Anagnorisis", + "Fly": true + }, { "DataId": 2012293, "Position": { @@ -30,8 +41,6 @@ }, "TerritoryId": 961, "InteractionType": "Interact", - "AetheryteShortcut": "Elpis - Anagnorisis", - "Fly": true, "TargetTerritoryId": 1025 }, { @@ -120,7 +129,8 @@ "Z": 301.9912 }, "TerritoryId": 956, - "InteractionType": "CompleteQuest" + "InteractionType": "CompleteQuest", + "NextQuestId": 5252 } ] } diff --git a/QuestPaths/6.x - Endwalker/Raid Quests/5252_A Present from the Present.json b/QuestPaths/6.x - Endwalker/Raid Quests/5252_A Present from the Present.json new file mode 100644 index 000000000..ef09a2727 --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Raid Quests/5252_A Present from the Present.json @@ -0,0 +1,126 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1048609, + "Position": { + "X": -10.696594, + "Y": 2.4000525, + "Z": -31.174255 + }, + "TerritoryId": 962, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Old Sharlayan", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1045332, + "Position": { + "X": -639.704, + "Y": -27.177149, + "Z": 301.9912 + }, + "TerritoryId": 956, + "InteractionType": "Interact", + "AetheryteShortcut": "Labyrinthos - Aporia" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": 807.9048, + "Y": 152.2857, + "Z": -243.60707 + }, + "TerritoryId": 961, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Elpis - Anagnorisis", + "Fly": true + }, + { + "DataId": 2012293, + "Position": { + "X": 809.9336, + "Y": 151.81189, + "Z": -243.42719 + }, + "TerritoryId": 961, + "InteractionType": "Interact", + "TargetTerritoryId": 1025 + }, + { + "DataId": 1048610, + "Position": { + "X": 93.94971, + "Y": -1E-11, + "Z": 61.020752 + }, + "TerritoryId": 1025, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2014542, + "Position": { + "X": 104.57007, + "Y": -0.015319824, + "Z": 46.25 + }, + "TerritoryId": 1025, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1048610, + "Position": { + "X": 93.94971, + "Y": -1E-11, + "Z": 61.020752 + }, + "TerritoryId": 1025, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1045332, + "Position": { + "X": -639.704, + "Y": -27.177149, + "Z": 301.9912 + }, + "TerritoryId": 956, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Labyrinthos - Aporia" + } + ] + } + ] +} -- 2.45.2 From f71ddeddfa90f4563fe1ff732cc5ea0f20b238c1 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Mon, 18 Nov 2024 19:59:57 +0100 Subject: [PATCH 248/448] Add extra waypoint to attune to Dock Poga aetheryte during first pelupelu quest --- .../Story/5193_An Intrepid New Enterprise.json | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Story/5193_An Intrepid New Enterprise.json b/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Story/5193_An Intrepid New Enterprise.json index 7376bf285..f662907fe 100644 --- a/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Story/5193_An Intrepid New Enterprise.json +++ b/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Story/5193_An Intrepid New Enterprise.json @@ -163,6 +163,21 @@ { "Sequence": 255, "Steps": [ + { + "Position": { + "X": 780.3438, + "Y": 13.823656, + "Z": -238.32625 + }, + "TerritoryId": 1188, + "InteractionType": "WalkTo", + "Fly": true, + "SkipConditions": { + "StepIf": { + "AetheryteUnlocked": "Kozama'uka - Dock Poga" + } + } + }, { "TerritoryId": 1188, "InteractionType": "AttuneAetheryte", -- 2.45.2 From 3ab1069ab760dc7b97e378536bd105e45843df28 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Mon, 18 Nov 2024 20:51:49 +0100 Subject: [PATCH 249/448] Fix item use in 'Strange Bedfellows' and 'Combat Evolved' --- .../Labyrinthos/4326_Seeing Red.json | 62 +++++++++++++++++++ .../Controller/CombatModules/ItemUseModule.cs | 3 +- 2 files changed, 63 insertions(+), 2 deletions(-) create mode 100644 QuestPaths/6.x - Endwalker/Side Quests/Labyrinthos/4326_Seeing Red.json diff --git a/QuestPaths/6.x - Endwalker/Side Quests/Labyrinthos/4326_Seeing Red.json b/QuestPaths/6.x - Endwalker/Side Quests/Labyrinthos/4326_Seeing Red.json new file mode 100644 index 000000000..d3e3e1ede --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Side Quests/Labyrinthos/4326_Seeing Red.json @@ -0,0 +1,62 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1037575, + "Position": { + "X": 6.454529, + "Y": -31.530432, + "Z": -78.14148 + }, + "TerritoryId": 956, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": 379.89767, + "Y": 68.15723, + "Z": -169.26231 + }, + "TerritoryId": 956, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "KillEnemyDataIds": [ + 13415 + ], + "CombatItemUse": { + "ItemId": 2003316, + "Condition": "Health%", + "Value": 50 + }, + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1037575, + "Position": { + "X": 6.454529, + "Y": -31.530432, + "Z": -78.14148 + }, + "TerritoryId": 956, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Labyrinthos - Sharlayan Hamlet", + "Fly": true + } + ] + } + ] +} diff --git a/Questionable/Controller/CombatModules/ItemUseModule.cs b/Questionable/Controller/CombatModules/ItemUseModule.cs index b5b6fd289..1693edd5c 100644 --- a/Questionable/Controller/CombatModules/ItemUseModule.cs +++ b/Questionable/Controller/CombatModules/ItemUseModule.cs @@ -142,8 +142,7 @@ internal sealed class ItemUseModule : ICombatModule { BattleChara* battleChara = (BattleChara*)gameObject.Address; if (_combatData.CombatItemUse.Condition == ECombatItemUseCondition.Incapacitated) - //return (byte)(((nint)battleChara + 0x1C68) & 0x40) != 0; // FIXME 7.1 - return false; + return (*(byte*)((nint)battleChara + 0x1C68) & 0x40) != 0; if (_combatData.CombatItemUse.Condition == ECombatItemUseCondition.HealthPercent) return (100f * battleChara->Health / battleChara->MaxHealth) < _combatData.CombatItemUse.Value; -- 2.45.2 From 28795e68e47c0c6a3768fd9905a874363fea5d20 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Mon, 18 Nov 2024 20:56:13 +0100 Subject: [PATCH 250/448] Version bump, remove redundant nullability checks, minor cleanup --- Directory.Build.targets | 2 +- LLib | 2 +- .../Controller/GameUi/InteractionUiController.cs | 6 +++--- Questionable/Data/AetherCurrentData.cs | 2 +- Questionable/Data/QuestData.cs | 2 +- Questionable/Functions/ChatFunctions.cs | 2 +- Questionable/Functions/QuestFunctions.cs | 7 ++----- Questionable/Model/SatisfactionSupplyInfo.cs | 2 +- .../JournalComponents/GatheringJournalComponent.cs | 10 +++++----- 9 files changed, 16 insertions(+), 19 deletions(-) diff --git a/Directory.Build.targets b/Directory.Build.targets index ae3c9a423..ca80e97a3 100644 --- a/Directory.Build.targets +++ b/Directory.Build.targets @@ -1,5 +1,5 @@ - 4.1 + 4.2 diff --git a/LLib b/LLib index 70b0bef24..e4bbc05ed 160000 --- a/LLib +++ b/LLib @@ -1 +1 @@ -Subproject commit 70b0bef2459898a70f7b34b4d196bbaeb72397b1 +Subproject commit e4bbc05ede6f6f01e7028b24614ed8cb333e909c diff --git a/Questionable/Controller/GameUi/InteractionUiController.cs b/Questionable/Controller/GameUi/InteractionUiController.cs index 797093dd6..1ea849281 100644 --- a/Questionable/Controller/GameUi/InteractionUiController.cs +++ b/Questionable/Controller/GameUi/InteractionUiController.cs @@ -756,12 +756,12 @@ internal sealed class InteractionUiController : IDisposable private bool TryFindWarp(ushort targetTerritoryId, string actualPrompt, [NotNullWhen(true)] out uint? warpId, [NotNullWhen(true)] out string? warpText) { - var warps = _dataManager.GetExcelSheet()! + var warps = _dataManager.GetExcelSheet() .Where(x => x.RowId > 0 && x.TerritoryType.RowId == targetTerritoryId); foreach (var entry in warps) { - string? excelName = entry.Name.ToString(); - string? excelQuestion = entry.Question.ToString(); + string excelName = entry.Name.ToString(); + string excelQuestion = entry.Question.ToString(); if (!string.IsNullOrEmpty(excelQuestion) && GameFunctions.GameStringEquals(excelQuestion, actualPrompt)) { diff --git a/Questionable/Data/AetherCurrentData.cs b/Questionable/Data/AetherCurrentData.cs index 04bb7c377..ac9bb4141 100644 --- a/Questionable/Data/AetherCurrentData.cs +++ b/Questionable/Data/AetherCurrentData.cs @@ -11,7 +11,7 @@ internal sealed class AetherCurrentData public AetherCurrentData(IDataManager dataManager) { - _overworldCurrents = dataManager.GetExcelSheet()! + _overworldCurrents = dataManager.GetExcelSheet() .Where(x => x.RowId > 0) .Where(x => x.Territory.IsValid) .ToImmutableDictionary( diff --git a/Questionable/Data/QuestData.cs b/Questionable/Data/QuestData.cs index 0bc96b55d..77b20e016 100644 --- a/Questionable/Data/QuestData.cs +++ b/Questionable/Data/QuestData.cs @@ -40,7 +40,7 @@ internal sealed class QuestData public QuestData(IDataManager dataManager) { Dictionary questChapters = - dataManager.GetExcelSheet()! + dataManager.GetExcelSheet() .Where(x => x.RowId > 0 && x.Quest.RowId > 0) .ToDictionary(x => x.Quest.RowId, x => x.Redo.RowId); diff --git a/Questionable/Functions/ChatFunctions.cs b/Questionable/Functions/ChatFunctions.cs index d53ed9bee..a0f935ab2 100644 --- a/Questionable/Functions/ChatFunctions.cs +++ b/Questionable/Functions/ChatFunctions.cs @@ -46,7 +46,7 @@ internal sealed unsafe class ChatFunctions .Where(x => x.TextCommand.IsValid) .Select(x => (x.RowId, Command: x.TextCommand.Value.Command.ToString())) .Where(x => !string.IsNullOrEmpty(x.Command) && x.Command.StartsWith('/')) - .ToDictionary(x => (EEmote)x.RowId, x => x.Command!) + .ToDictionary(x => (EEmote)x.RowId, x => x.Command) .AsReadOnly(); } diff --git a/Questionable/Functions/QuestFunctions.cs b/Questionable/Functions/QuestFunctions.cs index fa837cac8..1ef56c4e4 100644 --- a/Questionable/Functions/QuestFunctions.cs +++ b/Questionable/Functions/QuestFunctions.cs @@ -129,9 +129,6 @@ internal sealed unsafe class QuestFunctions var trackedQuest = questManager->TrackedQuests[i]; switch (trackedQuest.QuestType) { - default: - break; - case 1: // normal quest currentQuest = new QuestId(questManager->NormalQuests[trackedQuest.Index].QuestId); if (_questRegistry.IsKnownQuest(currentQuest)) @@ -629,7 +626,7 @@ internal sealed unsafe class QuestFunctions public bool IsClassJobUnlocked(EClassJob classJob) { - var classJobRow = _dataManager.GetExcelSheet()!.GetRow((uint)classJob)!; + var classJobRow = _dataManager.GetExcelSheet().GetRow((uint)classJob); var questId = (ushort)classJobRow.UnlockQuest.RowId; if (questId != 0) return IsQuestComplete(new QuestId(questId)); @@ -640,7 +637,7 @@ internal sealed unsafe class QuestFunctions public bool IsJobUnlocked(EClassJob classJob) { - var classJobRow = _dataManager.GetExcelSheet()!.GetRow((uint)classJob)!; + var classJobRow = _dataManager.GetExcelSheet().GetRow((uint)classJob); return IsClassJobUnlocked((EClassJob)classJobRow.ClassJobParent.RowId); } diff --git a/Questionable/Model/SatisfactionSupplyInfo.cs b/Questionable/Model/SatisfactionSupplyInfo.cs index e2c25ad88..21c929364 100644 --- a/Questionable/Model/SatisfactionSupplyInfo.cs +++ b/Questionable/Model/SatisfactionSupplyInfo.cs @@ -15,7 +15,7 @@ internal sealed class SatisfactionSupplyInfo : IQuestInfo IssuerDataId = npc.Npc.RowId; Level = npc.LevelUnlock; SortKey = QuestId.Value; - Expansion = (EExpansionVersion)npc.QuestRequired.Value!.Expansion.RowId; + Expansion = (EExpansionVersion)npc.QuestRequired.Value.Expansion.RowId; PreviousQuests = [new PreviousQuestInfo(new QuestId((ushort)(npc.QuestRequired.RowId & 0xFFFF)))]; } diff --git a/Questionable/Windows/JournalComponents/GatheringJournalComponent.cs b/Questionable/Windows/JournalComponents/GatheringJournalComponent.cs index 53b1576e8..daac30a4b 100644 --- a/Questionable/Windows/JournalComponents/GatheringJournalComponent.cs +++ b/Questionable/Windows/JournalComponents/GatheringJournalComponent.cs @@ -108,9 +108,9 @@ internal sealed class GatheringJournalComponent .GroupBy(x => x.GatheringPointId) .ToDictionary(x => x.Key, x => x.First()); - var itemSheet = dataManager.GetExcelSheet()!; + var itemSheet = dataManager.GetExcelSheet(); - _gatheringItems = dataManager.GetExcelSheet()! + _gatheringItems = dataManager.GetExcelSheet() .Where(x => x.RowId != 0 && x.GatheringItemLevel.RowId != 0) .Select(x => new { @@ -120,7 +120,7 @@ internal sealed class GatheringJournalComponent .Where(x => !string.IsNullOrEmpty(x.Name)) .ToDictionary(x => x.GatheringItemId, x => x.Name!); - _gatheringPointsByExpansion = dataManager.GetExcelSheet()! + _gatheringPointsByExpansion = dataManager.GetExcelSheet() .Where(x => x.GatheringPointBase.RowId != 0) .Where(x => x.GatheringPointBase.RowId is < 653 or > 680) // exclude ishgard restoration phase 1 .DistinctBy(x => x.GatheringPointBase.RowId) @@ -128,7 +128,7 @@ internal sealed class GatheringJournalComponent { GatheringPointId = x.RowId, Point = new DefaultGatheringPoint(new GatheringPointId((ushort)x.GatheringPointBase.RowId), - x.GatheringPointBase.Value!.GatheringType.RowId switch + x.GatheringPointBase.Value.GatheringType.RowId switch { 0 or 1 => EClassJob.Miner, 2 or 3 => EClassJob.Botanist, @@ -159,7 +159,7 @@ internal sealed class GatheringJournalComponent _gatheringPointRegistry.TryGetGatheringPoint(x.Point.Id, out GatheringRoot? gatheringRoot)) { // for some reason the game doesn't know where this gathering location is - var territoryType = territoryTypeSheet.GetRow(gatheringRoot.Steps.Last().TerritoryId)!; + var territoryType = territoryTypeSheet.GetRow(gatheringRoot.Steps.Last().TerritoryId); return x.Point with { Expansion = (EExpansionVersion)territoryType.ExVersion.RowId, -- 2.45.2 From 03f4c39ba8fa5e997eb15f964040d496f1118360 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Tue, 19 Nov 2024 15:57:15 +0100 Subject: [PATCH 251/448] Update Renderer utility to API 11 --- GatheringPathRenderer/EditorCommands.cs | 20 ++++++++----------- GatheringPathRenderer/RendererPlugin.cs | 2 +- GatheringPathRenderer/Windows/EditorWindow.cs | 11 +++++----- 3 files changed, 14 insertions(+), 19 deletions(-) diff --git a/GatheringPathRenderer/EditorCommands.cs b/GatheringPathRenderer/EditorCommands.cs index 2e9edad5d..ae0247ae0 100644 --- a/GatheringPathRenderer/EditorCommands.cs +++ b/GatheringPathRenderer/EditorCommands.cs @@ -3,16 +3,12 @@ using System.Collections.Generic; using System.IO; using System.Linq; using System.Numerics; -using System.Text.Json; -using System.Text.Json.Nodes; -using System.Text.Json.Serialization; -using System.Text.Json.Serialization.Metadata; using Dalamud.Game.ClientState.Objects; using Dalamud.Game.ClientState.Objects.Enums; using Dalamud.Game.ClientState.Objects.Types; using Dalamud.Game.Command; using Dalamud.Plugin.Services; -using Lumina.Excel.GeneratedSheets; +using Lumina.Excel.Sheets; using Questionable.Model; using Questionable.Model.Gathering; using Questionable.Model.Questing; @@ -70,14 +66,14 @@ internal sealed class EditorCommands : IDisposable if (target == null || target.ObjectKind != ObjectKind.GatheringPoint) throw new Exception("No valid target"); - var gatheringPoint = _dataManager.GetExcelSheet()!.GetRow(target.DataId); + var gatheringPoint = _dataManager.GetExcelSheet().GetRowOrDefault(target.DataId); if (gatheringPoint == null) throw new Exception("Invalid gathering point"); FileInfo targetFile; GatheringRoot root; var locationsInTerritory = _plugin.GetLocationsInTerritory(_clientState.TerritoryType).ToList(); - var location = locationsInTerritory.SingleOrDefault(x => x.Id == gatheringPoint.GatheringPointBase.Row); + var location = locationsInTerritory.SingleOrDefault(x => x.Id == gatheringPoint.Value.GatheringPointBase.RowId); if (location != null) { targetFile = location.File; @@ -96,7 +92,7 @@ internal sealed class EditorCommands : IDisposable } else { - (targetFile, root) = CreateNewFile(gatheringPoint, target); + (targetFile, root) = CreateNewFile(gatheringPoint.Value, target); _chatGui.Print($"Creating new file under {targetFile.FullName}", "qG"); } @@ -174,16 +170,16 @@ internal sealed class EditorCommands : IDisposable ?.File.Directory; if (targetFolder == null) { - var territoryInfo = _dataManager.GetExcelSheet()!.GetRow(_clientState.TerritoryType)!; + var territoryInfo = _dataManager.GetExcelSheet().GetRow(_clientState.TerritoryType); targetFolder = _plugin.PathsDirectory - .CreateSubdirectory(ExpansionData.ExpansionFolders[(EExpansionVersion)territoryInfo.ExVersion.Row]) - .CreateSubdirectory(territoryInfo.PlaceName.Value!.Name.ToString()); + .CreateSubdirectory(ExpansionData.ExpansionFolders[(EExpansionVersion)territoryInfo.ExVersion.RowId]) + .CreateSubdirectory(territoryInfo.PlaceName.Value.Name.ToString()); } FileInfo targetFile = new FileInfo( Path.Combine(targetFolder.FullName, - $"{gatheringPoint.GatheringPointBase.Row}_{gatheringPoint.PlaceName.Value!.Name}_{(_clientState.LocalPlayer!.ClassJob.Id == 16 ? "MIN" : "BTN")}.json")); + $"{gatheringPoint.GatheringPointBase.RowId}_{gatheringPoint.PlaceName.Value.Name}_{(_clientState.LocalPlayer!.ClassJob.RowId == 16 ? "MIN" : "BTN")}.json")); var root = new GatheringRoot { Author = [_configuration.AuthorName], diff --git a/GatheringPathRenderer/RendererPlugin.cs b/GatheringPathRenderer/RendererPlugin.cs index dbad17157..5ef430eae 100644 --- a/GatheringPathRenderer/RendererPlugin.cs +++ b/GatheringPathRenderer/RendererPlugin.cs @@ -59,7 +59,7 @@ public sealed class RendererPlugin : IDalamudPlugin _editorWindow = new EditorWindow(this, _editorCommands, dataManager, targetManager, clientState, objectTable) { IsOpen = true }; _windowSystem.AddWindow(_editorWindow); - _currentClassJob = (EClassJob?)_clientState.LocalPlayer?.ClassJob.Id ?? EClassJob.Adventurer; + _currentClassJob = (EClassJob?)_clientState.LocalPlayer?.ClassJob.RowId ?? EClassJob.Adventurer; _pluginInterface.GetIpcSubscriber("Questionable.ReloadData") .Subscribe(Reload); diff --git a/GatheringPathRenderer/Windows/EditorWindow.cs b/GatheringPathRenderer/Windows/EditorWindow.cs index 55f9a5c20..1150558fa 100644 --- a/GatheringPathRenderer/Windows/EditorWindow.cs +++ b/GatheringPathRenderer/Windows/EditorWindow.cs @@ -1,7 +1,6 @@ using System; using System.Collections.Generic; using System.Globalization; -using System.IO; using System.Linq; using System.Numerics; using Dalamud.Game.ClientState.Objects; @@ -11,7 +10,7 @@ using Dalamud.Interface.Colors; using Dalamud.Interface.Windowing; using Dalamud.Plugin.Services; using ImGuiNET; -using Lumina.Excel.GeneratedSheets; +using Lumina.Excel.Sheets; using Questionable.Model.Gathering; namespace GatheringPathRenderer.Windows; @@ -205,12 +204,12 @@ internal sealed class EditorWindow : Window } else if (_target != null) { - var gatheringPoint = _dataManager.GetExcelSheet()!.GetRow(_target.DataId); + var gatheringPoint = _dataManager.GetExcelSheet().GetRowOrDefault(_target.DataId); if (gatheringPoint == null) return; var locationsInTerritory = _plugin.GetLocationsInTerritory(_clientState.TerritoryType).ToList(); - var location = locationsInTerritory.SingleOrDefault(x => x.Id == gatheringPoint.GatheringPointBase.Row); + var location = locationsInTerritory.SingleOrDefault(x => x.Id == gatheringPoint.Value.GatheringPointBase.RowId); if (location != null) { var targetFile = location.File; @@ -234,9 +233,9 @@ internal sealed class EditorWindow : Window } else { - if (ImGui.Button($"Create location ({gatheringPoint.GatheringPointBase.Row})")) + if (ImGui.Button($"Create location ({gatheringPoint.Value.GatheringPointBase.RowId})")) { - var (targetFile, root) = _editorCommands.CreateNewFile(gatheringPoint, _target); + var (targetFile, root) = _editorCommands.CreateNewFile(gatheringPoint.Value, _target); _plugin.Save(targetFile, root); } } -- 2.45.2 From 472aeac04a0c5143c3c2d8f2916bd92fdad64e25 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Tue, 19 Nov 2024 17:15:11 +0100 Subject: [PATCH 252/448] Add missing RNG spawn in 'The Rudiments of Fiend Removal' --- .../5210_The Rudiments of Fiend Removal.json | 27 ++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5210_The Rudiments of Fiend Removal.json b/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5210_The Rudiments of Fiend Removal.json index eb5c727ec..342e16cf0 100644 --- a/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5210_The Rudiments of Fiend Removal.json +++ b/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5210_The Rudiments of Fiend Removal.json @@ -1,7 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", - "Comment": "TODO untested how many RNG states this has", "QuestSequence": [ { "Sequence": 0, @@ -112,6 +111,32 @@ null, null ] + }, + { + "DataId": 2014490, + "Position": { + "X": 485.6183, + "Y": 10.8185425, + "Z": -281.7884 + }, + "TerritoryId": 1188, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 18173 + ], + "RequiredQuestVariables": [ + null, + null, + [ + { + "High": 3 + } + ], + null, + null, + null + ] } ] }, -- 2.45.2 From 1d9198eacd56da6025521de7240b6fdf277e5a38 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Tue, 19 Nov 2024 19:01:53 +0100 Subject: [PATCH 253/448] Use Lifestream for firmament teleporting --- .../GameUi/InteractionUiController.cs | 42 ------------------- .../Steps/Shared/AethernetShortcut.cs | 14 ++----- Questionable/External/LifestreamIpc.cs | 33 +++++++++++---- 3 files changed, 29 insertions(+), 60 deletions(-) diff --git a/Questionable/Controller/GameUi/InteractionUiController.cs b/Questionable/Controller/GameUi/InteractionUiController.cs index 1ea849281..201480739 100644 --- a/Questionable/Controller/GameUi/InteractionUiController.cs +++ b/Questionable/Controller/GameUi/InteractionUiController.cs @@ -98,7 +98,6 @@ internal sealed class InteractionUiController : IDisposable _addonLifecycle.RegisterListener(AddonEvent.PostSetup, "SelectYesno", SelectYesnoPostSetup); _addonLifecycle.RegisterListener(AddonEvent.PostSetup, "PointMenu", PointMenuPostSetup); _addonLifecycle.RegisterListener(AddonEvent.PostSetup, "HousingSelectBlock", HousingSelectBlockPostSetup); - _addonLifecycle.RegisterListener(AddonEvent.PostSetup, "TelepotTown", TeleportTownPostSetup); unsafe { @@ -848,46 +847,6 @@ internal sealed class InteractionUiController : IDisposable addon->FireCallbackInt(0); } - private void TeleportTownPostSetup(AddonEvent type, AddonArgs args) - { - if (ShouldHandleUiInteractions && - _questController.HasCurrentTaskMatching(out AethernetShortcut.Task? aethernetShortcut) && - aethernetShortcut.From.IsFirmamentAetheryte()) - { - // this might be better via atkvalues; but this works for now - uint toIndex = aethernetShortcut.To switch - { - EAetheryteLocation.FirmamentMendicantsCourt => 0, - EAetheryteLocation.FirmamentMattock => 1, - EAetheryteLocation.FirmamentNewNest => 2, - EAetheryteLocation.FirmanentSaintRoellesDais => 3, - EAetheryteLocation.FirmamentFeatherfall => 4, - EAetheryteLocation.FirmamentHoarfrostHall => 5, - EAetheryteLocation.FirmamentWesternRisensongQuarter => 6, - EAetheryteLocation.FIrmamentEasternRisensongQuarter => 7, - _ => uint.MaxValue, - }; - - if (toIndex == uint.MaxValue) - return; - - _logger.LogInformation("Teleporting to {ToName} with menu index {ToIndex}", aethernetShortcut.From, - toIndex); - unsafe - { - var teleportToDestination = stackalloc AtkValue[] - { - new() { Type = ValueType.Int, Int = 11 }, - new() { Type = ValueType.UInt, UInt = toIndex } - }; - - var addon = (AtkUnitBase*)args.Addon; - addon->FireCallback(2, teleportToDestination); - addon->FireCallback(2, teleportToDestination, true); - } - } - } - private StringOrRegex? ResolveReference(Quest? quest, string? excelSheet, ExcelRef? excelRef, bool isRegExp) { if (excelRef == null) @@ -905,7 +864,6 @@ internal sealed class InteractionUiController : IDisposable public void Dispose() { - _addonLifecycle.UnregisterListener(AddonEvent.PostSetup, "TelepotTown", TeleportTownPostSetup); _addonLifecycle.UnregisterListener(AddonEvent.PostSetup, "HousingSelectBlock", HousingSelectBlockPostSetup); _addonLifecycle.UnregisterListener(AddonEvent.PostSetup, "PointMenu", PointMenuPostSetup); _addonLifecycle.UnregisterListener(AddonEvent.PostSetup, "SelectYesno", SelectYesnoPostSetup); diff --git a/Questionable/Controller/Steps/Shared/AethernetShortcut.cs b/Questionable/Controller/Steps/Shared/AethernetShortcut.cs index a1a066f08..bfb2cc3ff 100644 --- a/Questionable/Controller/Steps/Shared/AethernetShortcut.cs +++ b/Questionable/Controller/Steps/Shared/AethernetShortcut.cs @@ -205,17 +205,9 @@ internal static class AethernetShortcut private void DoTeleport() { - if (Task.From.IsFirmamentAetheryte()) - { - logger.LogInformation("Using manual teleport interaction"); - _teleported = gameFunctions.InteractWith((uint)Task.From, ObjectKind.EventObj); - } - else - { - logger.LogInformation("Using lifestream to teleport to {Destination}", Task.To); - lifestreamIpc.Teleport(Task.To); - _teleported = true; - } + logger.LogInformation("Using lifestream to teleport to {Destination}", Task.To); + lifestreamIpc.Teleport(Task.To); + _teleported = true; } public override ETaskResult Update() diff --git a/Questionable/External/LifestreamIpc.cs b/Questionable/External/LifestreamIpc.cs index f5bd45448..443d1409d 100644 --- a/Questionable/External/LifestreamIpc.cs +++ b/Questionable/External/LifestreamIpc.cs @@ -1,5 +1,9 @@ -using Dalamud.Plugin; +using System.Collections.Generic; +using Dalamud.Plugin; using Dalamud.Plugin.Ipc; +using Dalamud.Plugin.Services; +using Lumina.Excel.Sheets; +using Microsoft.Extensions.Logging; using Questionable.Data; using Questionable.Model.Common; @@ -8,25 +12,40 @@ namespace Questionable.External; internal sealed class LifestreamIpc { private readonly AetheryteData _aetheryteData; + private readonly IDataManager _dataManager; + private readonly ILogger _logger; private readonly ICallGateSubscriber _aethernetTeleport; - public LifestreamIpc(IDalamudPluginInterface pluginInterface, AetheryteData aetheryteData) + public LifestreamIpc(IDalamudPluginInterface pluginInterface, AetheryteData aetheryteData, IDataManager dataManager, ILogger logger) { _aetheryteData = aetheryteData; + _dataManager = dataManager; + _logger = logger; _aethernetTeleport = pluginInterface.GetIpcSubscriber("Lifestream.AethernetTeleport"); } public bool Teleport(EAetheryteLocation aetheryteLocation) { - if (aetheryteLocation == EAetheryteLocation.IshgardFirmament) + string? name = aetheryteLocation switch { - // TODO does this even work on non-EN clients? - return _aethernetTeleport.InvokeFunc("Firmament"); - } + EAetheryteLocation.IshgardFirmament => "Firmament", + EAetheryteLocation.FirmamentMendicantsCourt => GetPlaceName(3436), + EAetheryteLocation.FirmamentMattock => GetPlaceName(3473), + EAetheryteLocation.FirmamentNewNest => GetPlaceName(3475), + EAetheryteLocation.FirmanentSaintRoellesDais => GetPlaceName(3474), + EAetheryteLocation.FirmamentFeatherfall => GetPlaceName(3525), + EAetheryteLocation.FirmamentHoarfrostHall => GetPlaceName(3528), + EAetheryteLocation.FirmamentWesternRisensongQuarter => GetPlaceName(3646), + EAetheryteLocation.FIrmamentEasternRisensongQuarter => GetPlaceName(3645), + _ => _aetheryteData.AethernetNames.GetValueOrDefault(aetheryteLocation), + }; - if (!_aetheryteData.AethernetNames.TryGetValue(aetheryteLocation, out string? name)) + if (name == null) return false; + _logger.LogInformation("Teleporting to '{Name}'", name); return _aethernetTeleport.InvokeFunc(name); } + + private string GetPlaceName(uint rowId) => _dataManager.GetExcelSheet().GetRow(rowId).Name.ToString(); } -- 2.45.2 From 4d397022b9310c81090b3a4dcd893e8b71633b8e Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Wed, 20 Nov 2024 03:28:13 +0100 Subject: [PATCH 254/448] Add waypoint before Vath turn-in counter to simplify navigation for all daily quests --- .../Vath/Dailies/2261_Getting the Shaft.json | 13 +- .../Dailies/2262_Breath of Fresh Air.json | 26 +- .../Vath/Dailies/2263_Bugging the Bugs.json | 15 +- .../Vath/Dailies/2264_Too Much to Bear.json | 15 +- .../2265_The Foodstuff of Champions.json | 15 +- .../Vath/Dailies/2266_A Long Shot.json | 15 +- .../2267_Where the Silver Dew Grows.json | 15 +- .../2268_The Caelumtree Wine Spree.json | 15 +- .../Vath/Dailies/2269_Ploughing Ahead.json | 219 ++++++------ .../Vath/Dailies/2270_At Full Pelt.json | 338 +++++++++--------- .../2272_Shoo Fly, Don't Bother Me.json | 15 +- .../Vath/Dailies/2273_All about the Eggs.json | 13 +- .../Dailies/2274_Smells Like Trouble.json | 15 +- .../Dailies/2277_Fifty Shades of Yellow.json | 13 +- .../2278_A Romp around the Foothills.json | 13 +- .../Dailies/2279_Neighborhood Squabbles.json | 15 +- .../2280_Not for the Faint of Heart.json | 13 +- 17 files changed, 463 insertions(+), 320 deletions(-) diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2261_Getting the Shaft.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2261_Getting the Shaft.json index a509b5deb..4db1e824e 100644 --- a/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2261_Getting the Shaft.json +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2261_Getting the Shaft.json @@ -62,6 +62,16 @@ { "Sequence": 255, "Steps": [ + { + "Position": { + "X": 58.39701, + "Y": -48.000008, + "Z": -172.36507 + }, + "TerritoryId": 398, + "InteractionType": "WalkTo", + "Fly": true + }, { "DataId": 1016803, "Position": { @@ -70,8 +80,7 @@ "Z": -174.63953 }, "TerritoryId": 398, - "InteractionType": "CompleteQuest", - "Fly": true + "InteractionType": "CompleteQuest" } ] } diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2262_Breath of Fresh Air.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2262_Breath of Fresh Air.json index a1b358a6d..56d4017d9 100644 --- a/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2262_Breath of Fresh Air.json +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2262_Breath of Fresh Air.json @@ -58,6 +58,16 @@ { "Sequence": 2, "Steps": [ + { + "Position": { + "X": 58.39701, + "Y": -48.000008, + "Z": -172.36507 + }, + "TerritoryId": 398, + "InteractionType": "WalkTo", + "Fly": true + }, { "DataId": 1016803, "Position": { @@ -66,8 +76,7 @@ "Z": -174.63953 }, "TerritoryId": 398, - "InteractionType": "Interact", - "Fly": true + "InteractionType": "Interact" } ] }, @@ -102,6 +111,16 @@ { "Sequence": 255, "Steps": [ + { + "Position": { + "X": 58.39701, + "Y": -48.000008, + "Z": -172.36507 + }, + "TerritoryId": 398, + "InteractionType": "WalkTo", + "Fly": true + }, { "DataId": 1016803, "Position": { @@ -110,8 +129,7 @@ "Z": -174.63953 }, "TerritoryId": 398, - "InteractionType": "CompleteQuest", - "Fly": true + "InteractionType": "CompleteQuest" } ] } diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2263_Bugging the Bugs.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2263_Bugging the Bugs.json index 933aa250b..60dec3fba 100644 --- a/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2263_Bugging the Bugs.json +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2263_Bugging the Bugs.json @@ -98,6 +98,17 @@ { "Sequence": 255, "Steps": [ + { + "Position": { + "X": 58.39701, + "Y": -48.000008, + "Z": -172.36507 + }, + "TerritoryId": 398, + "InteractionType": "WalkTo", + "Fly": true, + "AetheryteShortcut": "The Dravanian Forelands - Anyx Trine" + }, { "DataId": 1016803, "Position": { @@ -106,9 +117,7 @@ "Z": -174.63953 }, "TerritoryId": 398, - "InteractionType": "CompleteQuest", - "Fly": true, - "AetheryteShortcut": "The Dravanian Forelands - Anyx Trine" + "InteractionType": "CompleteQuest" } ] } diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2264_Too Much to Bear.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2264_Too Much to Bear.json index 066618650..898f4c5ad 100644 --- a/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2264_Too Much to Bear.json +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2264_Too Much to Bear.json @@ -62,6 +62,17 @@ { "Sequence": 255, "Steps": [ + { + "Position": { + "X": 58.39701, + "Y": -48.000008, + "Z": -172.36507 + }, + "TerritoryId": 398, + "InteractionType": "WalkTo", + "Fly": true, + "AetheryteShortcut": "The Dravanian Forelands - Anyx Trine" + }, { "DataId": 1016803, "Position": { @@ -70,9 +81,7 @@ "Z": -174.63953 }, "TerritoryId": 398, - "InteractionType": "CompleteQuest", - "Fly": true, - "AetheryteShortcut": "The Dravanian Forelands - Anyx Trine" + "InteractionType": "CompleteQuest" } ] } diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2265_The Foodstuff of Champions.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2265_The Foodstuff of Champions.json index 1f84b37b4..effa35f5f 100644 --- a/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2265_The Foodstuff of Champions.json +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2265_The Foodstuff of Champions.json @@ -91,6 +91,17 @@ { "Sequence": 255, "Steps": [ + { + "Position": { + "X": 58.39701, + "Y": -48.000008, + "Z": -172.36507 + }, + "TerritoryId": 398, + "InteractionType": "WalkTo", + "Fly": true, + "AetheryteShortcut": "The Dravanian Forelands - Anyx Trine" + }, { "DataId": 1016803, "Position": { @@ -99,9 +110,7 @@ "Z": -174.63953 }, "TerritoryId": 398, - "InteractionType": "CompleteQuest", - "Fly": true, - "AetheryteShortcut": "The Dravanian Forelands - Anyx Trine" + "InteractionType": "CompleteQuest" } ] } diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2266_A Long Shot.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2266_A Long Shot.json index 4d1ca779e..1922f2a44 100644 --- a/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2266_A Long Shot.json +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2266_A Long Shot.json @@ -91,6 +91,17 @@ { "Sequence": 255, "Steps": [ + { + "Position": { + "X": 58.39701, + "Y": -48.000008, + "Z": -172.36507 + }, + "TerritoryId": 398, + "InteractionType": "WalkTo", + "Fly": true, + "AetheryteShortcut": "The Dravanian Forelands - Anyx Trine" + }, { "DataId": 1016803, "Position": { @@ -99,9 +110,7 @@ "Z": -174.63953 }, "TerritoryId": 398, - "InteractionType": "CompleteQuest", - "Fly": true, - "AetheryteShortcut": "The Dravanian Forelands - Anyx Trine" + "InteractionType": "CompleteQuest" } ] } diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2267_Where the Silver Dew Grows.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2267_Where the Silver Dew Grows.json index 78bfc8355..f45c4d727 100644 --- a/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2267_Where the Silver Dew Grows.json +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2267_Where the Silver Dew Grows.json @@ -73,6 +73,17 @@ { "Sequence": 255, "Steps": [ + { + "Position": { + "X": 58.39701, + "Y": -48.000008, + "Z": -172.36507 + }, + "TerritoryId": 398, + "InteractionType": "WalkTo", + "Fly": true, + "AetheryteShortcut": "The Dravanian Forelands - Anyx Trine" + }, { "DataId": 1016803, "Position": { @@ -81,9 +92,7 @@ "Z": -174.63953 }, "TerritoryId": 398, - "InteractionType": "CompleteQuest", - "Fly": true, - "AetheryteShortcut": "The Dravanian Forelands - Anyx Trine" + "InteractionType": "CompleteQuest" } ] } diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2268_The Caelumtree Wine Spree.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2268_The Caelumtree Wine Spree.json index f2ce7b2ef..14ace44aa 100644 --- a/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2268_The Caelumtree Wine Spree.json +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2268_The Caelumtree Wine Spree.json @@ -58,6 +58,17 @@ { "Sequence": 2, "Steps": [ + { + "Position": { + "X": 58.39701, + "Y": -48.000008, + "Z": -172.36507 + }, + "TerritoryId": 398, + "InteractionType": "WalkTo", + "Fly": true, + "AetheryteShortcut": "The Dravanian Forelands - Anyx Trine" + }, { "DataId": 1016803, "Position": { @@ -66,9 +77,7 @@ "Z": -174.63953 }, "TerritoryId": 398, - "InteractionType": "Interact", - "Fly": true, - "AetheryteShortcut": "The Dravanian Forelands - Anyx Trine" + "InteractionType": "Interact" } ] }, diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2269_Ploughing Ahead.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2269_Ploughing Ahead.json index 90040ebf2..377342541 100644 --- a/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2269_Ploughing Ahead.json +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2269_Ploughing Ahead.json @@ -1,114 +1,113 @@ { - "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "AnimaMachinae", - "QuestSequence": [ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "AnimaMachinae", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ { - "Sequence": 0, - "Steps": [ - { - "DataId": 1016803, - "Position": { - "X": 57.297607, - "Y": -47.842846, - "Z": -174.63953 - }, - "TerritoryId": 398, - "InteractionType": "AcceptQuest" - } - ] - }, - { - "Sequence": 1, - "Steps": [ - { - "DataId": 1017031, - "Position": { - "X": 74.20459, - "Y": -48.533592, - "Z": -171.12994 - }, - "TerritoryId": 398, - "InteractionType": "Interact" - } - ] - }, - { - "Sequence": 2, - "Steps": [ - { - "DataId": 2006915, - "Position": { - "X": 96.45227, - "Y": -66.2395, - "Z": 616.6017 - }, - "TerritoryId": 398, - "InteractionType": "Action", - "Action": "Fumigate", - "Fly": true - } - ] - }, - { - "Sequence": 3, - "Steps": [ - { - "DataId": 2006916, - "Position": { - "X": -149.95044, - "Y": -55.25299, - "Z": 541.37476 - }, - "TerritoryId": 398, - "InteractionType": "Action", - "Action": "Fumigate", - "Fly": true - } - ] - }, - { - "Sequence": 4, - "Steps": [ - { - "DataId": 2006917, - "Position": { - "X": -625.0859, - "Y": -49.94281, - "Z": 491.02002 - }, - "TerritoryId": 398, - "InteractionType": "Action", - "Action": "Fumigate", - "Fly": true - } - ] - }, - { - "Sequence": 255, - "Steps": [ - { - "Position": { - "X": 59.511234, - "Y": -48, - "Z": -171.35385 - }, - "TerritoryId": 398, - "InteractionType": "WalkTo", - "Fly": true, - "Land": true, - "AetheryteShortcut": "The Dravanian Forelands - Anyx Trine" - }, - { - "DataId": 1016803, - "Position": { - "X": 57.297607, - "Y": -47.842846, - "Z": -174.63953 - }, - "TerritoryId": 398, - "InteractionType": "CompleteQuest" - } - ] + "DataId": 1016803, + "Position": { + "X": 57.297607, + "Y": -47.842846, + "Z": -174.63953 + }, + "TerritoryId": 398, + "InteractionType": "AcceptQuest" } - ] + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1017031, + "Position": { + "X": 74.20459, + "Y": -48.533592, + "Z": -171.12994 + }, + "TerritoryId": 398, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2006915, + "Position": { + "X": 96.45227, + "Y": -66.2395, + "Z": 616.6017 + }, + "TerritoryId": 398, + "InteractionType": "Action", + "Action": "Fumigate", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2006916, + "Position": { + "X": -149.95044, + "Y": -55.25299, + "Z": 541.37476 + }, + "TerritoryId": 398, + "InteractionType": "Action", + "Action": "Fumigate", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 2006917, + "Position": { + "X": -625.0859, + "Y": -49.94281, + "Z": 491.02002 + }, + "TerritoryId": 398, + "InteractionType": "Action", + "Action": "Fumigate", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": 58.39701, + "Y": -48.000008, + "Z": -172.36507 + }, + "TerritoryId": 398, + "InteractionType": "WalkTo", + "Fly": true, + "AetheryteShortcut": "The Dravanian Forelands - Anyx Trine" + }, + { + "DataId": 1016803, + "Position": { + "X": 57.297607, + "Y": -47.842846, + "Z": -174.63953 + }, + "TerritoryId": 398, + "InteractionType": "CompleteQuest" + } + ] + } + ] } diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2270_At Full Pelt.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2270_At Full Pelt.json index 799fae826..af0f9f2da 100644 --- a/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2270_At Full Pelt.json +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2270_At Full Pelt.json @@ -1,173 +1,173 @@ { - "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "AnimaMachinae", - "QuestSequence": [ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "AnimaMachinae", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ { - "Sequence": 0, - "Steps": [ - { - "DataId": 1016803, - "Position": { - "X": 57.297607, - "Y": -47.842846, - "Z": -174.63953 - }, - "TerritoryId": 398, - "InteractionType": "AcceptQuest" - } - ] - }, - { - "Sequence": 1, - "Steps": [ - { - "Position": { - "X": 449.65012, - "Y": -51.141403, - "Z": 106.932205 - }, - "TerritoryId": 398, - "InteractionType": "WalkTo", - "Fly": true, - "Land": true, - "AetheryteShortcut": "The Dravanian Forelands - Tailfeather" - }, - { - "DataId": 1011922, - "Position": { - "X": 448.56934, - "Y": -51.141407, - "Z": 108.93408 - }, - "TerritoryId": 398, - "InteractionType": "Interact" - } - ] - }, - { - "Sequence": 2, - "Steps": [ - { - "DataId": 2006918, - "Position": { - "X": 475.69995, - "Y": -44.174927, - "Z": -231.46417 - }, - "TerritoryId": 398, - "InteractionType": "Combat", - "EnemySpawnType": "AfterItemUse", - "ItemId": 2001961, - "KillEnemyDataIds": [ - 71224 - ], - "Fly": true, - "Land": true, - "CompletionQuestVariablesFlags": [ - null, - null, - null, - null, - null, - 128 - ] - }, - { - "DataId": 2006920, - "Position": { - "X": 329.4879, - "Y": -45.487183, - "Z": -262.13477 - }, - "TerritoryId": 398, - "InteractionType": "Combat", - "EnemySpawnType": "AfterItemUse", - "ItemId": 2001961, - "KillEnemyDataIds": [ - 5548 - ], - "Fly": true, - "Land": true, - "CompletionQuestVariablesFlags": [ - null, - null, - null, - null, - null, - 32 - ] - }, - { - "DataId": 2006919, - "Position": { - "X": 535.45435, - "Y": -32.39496, - "Z": -410.60504 - }, - "TerritoryId": 398, - "InteractionType": "Combat", - "EnemySpawnType": "AfterItemUse", - "ItemId": 2001961, - "KillEnemyDataIds": [ - 71224 - ], - "Fly": true, - "Land": true - } - ] - }, - { - "Sequence": 3, - "Steps": [ - { - "Position": { - "X": 449.65012, - "Y": -51.141403, - "Z": 106.932205 - }, - "TerritoryId": 398, - "InteractionType": "WalkTo", - "Fly": true, - "Land": true, - "AetheryteShortcut": "The Dravanian Forelands - Tailfeather" - }, - { - "DataId": 1011922, - "Position": { - "X": 448.56934, - "Y": -51.141407, - "Z": 108.93408 - }, - "TerritoryId": 398, - "InteractionType": "Interact" - } - ] - }, - { - "Sequence": 255, - "Steps": [ - { - "Position": { - "X": 59.511234, - "Y": -48, - "Z": -171.35385 - }, - "TerritoryId": 398, - "InteractionType": "WalkTo", - "Fly": true, - "Land": true - }, - { - "DataId": 1016803, - "Position": { - "X": 57.297607, - "Y": -47.842846, - "Z": -174.63953 - }, - "TerritoryId": 398, - "InteractionType": "CompleteQuest" - } - ] + "DataId": 1016803, + "Position": { + "X": 57.297607, + "Y": -47.842846, + "Z": -174.63953 + }, + "TerritoryId": 398, + "InteractionType": "AcceptQuest" } - ] + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": 449.65012, + "Y": -51.141403, + "Z": 106.932205 + }, + "TerritoryId": 398, + "InteractionType": "WalkTo", + "Fly": true, + "Land": true, + "AetheryteShortcut": "The Dravanian Forelands - Tailfeather" + }, + { + "DataId": 1011922, + "Position": { + "X": 448.56934, + "Y": -51.141407, + "Z": 108.93408 + }, + "TerritoryId": 398, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2006918, + "Position": { + "X": 475.69995, + "Y": -44.174927, + "Z": -231.46417 + }, + "TerritoryId": 398, + "InteractionType": "Combat", + "EnemySpawnType": "AfterItemUse", + "ItemId": 2001961, + "KillEnemyDataIds": [ + 71224 + ], + "Fly": true, + "Land": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 2006920, + "Position": { + "X": 329.4879, + "Y": -45.487183, + "Z": -262.13477 + }, + "TerritoryId": 398, + "InteractionType": "Combat", + "EnemySpawnType": "AfterItemUse", + "ItemId": 2001961, + "KillEnemyDataIds": [ + 5548 + ], + "Fly": true, + "Land": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, + { + "DataId": 2006919, + "Position": { + "X": 535.45435, + "Y": -32.39496, + "Z": -410.60504 + }, + "TerritoryId": 398, + "InteractionType": "Combat", + "EnemySpawnType": "AfterItemUse", + "ItemId": 2001961, + "KillEnemyDataIds": [ + 71224 + ], + "Fly": true, + "Land": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "Position": { + "X": 449.65012, + "Y": -51.141403, + "Z": 106.932205 + }, + "TerritoryId": 398, + "InteractionType": "WalkTo", + "Fly": true, + "Land": true, + "AetheryteShortcut": "The Dravanian Forelands - Tailfeather" + }, + { + "DataId": 1011922, + "Position": { + "X": 448.56934, + "Y": -51.141407, + "Z": 108.93408 + }, + "TerritoryId": 398, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": 58.39701, + "Y": -48.000008, + "Z": -172.36507 + }, + "TerritoryId": 398, + "InteractionType": "WalkTo", + "Fly": true, + "AetheryteShortcut": "The Dravanian Forelands - Anyx Trine" + }, + { + "DataId": 1016803, + "Position": { + "X": 57.297607, + "Y": -47.842846, + "Z": -174.63953 + }, + "TerritoryId": 398, + "InteractionType": "CompleteQuest" + } + ] + } + ] } diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2272_Shoo Fly, Don't Bother Me.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2272_Shoo Fly, Don't Bother Me.json index fc74eb4db..bd5f3cd7c 100644 --- a/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2272_Shoo Fly, Don't Bother Me.json +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2272_Shoo Fly, Don't Bother Me.json @@ -78,6 +78,17 @@ { "Sequence": 255, "Steps": [ + { + "Position": { + "X": 58.39701, + "Y": -48.000008, + "Z": -172.36507 + }, + "TerritoryId": 398, + "InteractionType": "WalkTo", + "Fly": true, + "AetheryteShortcut": "The Dravanian Forelands - Anyx Trine" + }, { "DataId": 1016803, "Position": { @@ -86,9 +97,7 @@ "Z": -174.63953 }, "TerritoryId": 398, - "InteractionType": "CompleteQuest", - "Fly": true, - "AetheryteShortcut": "The Dravanian Forelands - Anyx Trine" + "InteractionType": "CompleteQuest" } ] } diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2273_All about the Eggs.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2273_All about the Eggs.json index 21824e8a8..cc58ed569 100644 --- a/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2273_All about the Eggs.json +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2273_All about the Eggs.json @@ -55,6 +55,16 @@ { "Sequence": 255, "Steps": [ + { + "Position": { + "X": 58.39701, + "Y": -48.000008, + "Z": -172.36507 + }, + "TerritoryId": 398, + "InteractionType": "WalkTo", + "Fly": true + }, { "DataId": 1016803, "Position": { @@ -63,8 +73,7 @@ "Z": -174.63953 }, "TerritoryId": 398, - "InteractionType": "CompleteQuest", - "Fly": true + "InteractionType": "CompleteQuest" } ] } diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2274_Smells Like Trouble.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2274_Smells Like Trouble.json index 095c273cd..53e90158c 100644 --- a/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2274_Smells Like Trouble.json +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2274_Smells Like Trouble.json @@ -91,6 +91,17 @@ { "Sequence": 2, "Steps": [ + { + "Position": { + "X": 58.39701, + "Y": -48.000008, + "Z": -172.36507 + }, + "TerritoryId": 398, + "InteractionType": "WalkTo", + "Fly": true, + "AetheryteShortcut": "The Dravanian Forelands - Anyx Trine" + }, { "DataId": 1016803, "Position": { @@ -99,9 +110,7 @@ "Z": -174.63953 }, "TerritoryId": 398, - "InteractionType": "Interact", - "Fly": true, - "AetheryteShortcut": "The Dravanian Forelands - Anyx Trine" + "InteractionType": "Interact" } ] }, diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2277_Fifty Shades of Yellow.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2277_Fifty Shades of Yellow.json index 1f83afd02..f6de1949c 100644 --- a/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2277_Fifty Shades of Yellow.json +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2277_Fifty Shades of Yellow.json @@ -101,6 +101,16 @@ { "Sequence": 255, "Steps": [ + { + "Position": { + "X": 58.39701, + "Y": -48.000008, + "Z": -172.36507 + }, + "TerritoryId": 398, + "InteractionType": "WalkTo", + "Fly": true + }, { "DataId": 1016803, "Position": { @@ -109,8 +119,7 @@ "Z": -174.63953 }, "TerritoryId": 398, - "InteractionType": "CompleteQuest", - "Fly": true + "InteractionType": "CompleteQuest" } ] } diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2278_A Romp around the Foothills.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2278_A Romp around the Foothills.json index 5c5fa3171..cca544329 100644 --- a/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2278_A Romp around the Foothills.json +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2278_A Romp around the Foothills.json @@ -100,6 +100,16 @@ { "Sequence": 255, "Steps": [ + { + "Position": { + "X": 58.39701, + "Y": -48.000008, + "Z": -172.36507 + }, + "TerritoryId": 398, + "InteractionType": "WalkTo", + "Fly": true + }, { "DataId": 1016803, "Position": { @@ -108,8 +118,7 @@ "Z": -174.63953 }, "TerritoryId": 398, - "InteractionType": "CompleteQuest", - "Fly": true + "InteractionType": "CompleteQuest" } ] } diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2279_Neighborhood Squabbles.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2279_Neighborhood Squabbles.json index e21d83f5f..072e6d39f 100644 --- a/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2279_Neighborhood Squabbles.json +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2279_Neighborhood Squabbles.json @@ -73,6 +73,17 @@ { "Sequence": 255, "Steps": [ + { + "Position": { + "X": 58.39701, + "Y": -48.000008, + "Z": -172.36507 + }, + "TerritoryId": 398, + "InteractionType": "WalkTo", + "Fly": true, + "AetheryteShortcut": "The Dravanian Forelands - Anyx Trine" + }, { "DataId": 1016803, "Position": { @@ -81,9 +92,7 @@ "Z": -174.63953 }, "TerritoryId": 398, - "InteractionType": "CompleteQuest", - "Fly": true, - "AetheryteShortcut": "The Dravanian Forelands - Anyx Trine" + "InteractionType": "CompleteQuest" } ] } diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2280_Not for the Faint of Heart.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2280_Not for the Faint of Heart.json index e1d7ae5d0..507d5e94d 100644 --- a/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2280_Not for the Faint of Heart.json +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2280_Not for the Faint of Heart.json @@ -101,6 +101,16 @@ { "Sequence": 255, "Steps": [ + { + "Position": { + "X": 58.39701, + "Y": -48.000008, + "Z": -172.36507 + }, + "TerritoryId": 398, + "InteractionType": "WalkTo", + "Fly": true + }, { "DataId": 1016803, "Position": { @@ -109,8 +119,7 @@ "Z": -174.63953 }, "TerritoryId": 398, - "InteractionType": "CompleteQuest", - "Fly": true + "InteractionType": "CompleteQuest" } ] } -- 2.45.2 From 6e1ee729dada716e7aa5bb773353e61b23d1356c Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Wed, 20 Nov 2024 03:28:35 +0100 Subject: [PATCH 255/448] Add 'When Hunting Goes Wrong' Vath quest --- .../Dailies/2275_When Hunting Goes Wrong.json | 125 ++++++++++++++++++ 1 file changed, 125 insertions(+) create mode 100644 QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2275_When Hunting Goes Wrong.json diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2275_When Hunting Goes Wrong.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2275_When Hunting Goes Wrong.json new file mode 100644 index 000000000..b98bcdbb9 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2275_When Hunting Goes Wrong.json @@ -0,0 +1,125 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1016803, + "Position": { + "X": 57.297607, + "Y": -47.842846, + "Z": -174.63953 + }, + "TerritoryId": 398, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1016865, + "Position": { + "X": -272.23627, + "Y": -35.408485, + "Z": 219.07373 + }, + "TerritoryId": 398, + "InteractionType": "Interact", + "AetheryteShortcut": "The Dravanian Forelands - Anyx Trine", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 1016864, + "Position": { + "X": -452.32324, + "Y": -35.352047, + "Z": 174.30371 + }, + "TerritoryId": 398, + "InteractionType": "Interact", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1016866, + "Position": { + "X": -397.05505, + "Y": -34.192406, + "Z": 243.12195 + }, + "TerritoryId": 398, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 5551 + ], + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1016866, + "Position": { + "X": -397.05505, + "Y": -34.192406, + "Z": 243.12195 + }, + "TerritoryId": 398, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": 58.39701, + "Y": -48.000008, + "Z": -172.36507 + }, + "TerritoryId": 398, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 1016803, + "Position": { + "X": 57.297607, + "Y": -47.842846, + "Z": -174.63953 + }, + "TerritoryId": 398, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} -- 2.45.2 From c1aadb8c9cd77d4f0db7212a049ad3790a7b2cb5 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Wed, 20 Nov 2024 16:29:57 +0100 Subject: [PATCH 256/448] Add 'Sanuwa Samba' Vanu Vanu quest --- .../Vanu Vanu/Dailies/2178_Sanuwa Samba.json | 118 ++++++++++++++++++ 1 file changed, 118 insertions(+) create mode 100644 QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2178_Sanuwa Samba.json diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2178_Sanuwa Samba.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2178_Sanuwa Samba.json new file mode 100644 index 000000000..bec537bc8 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2178_Sanuwa Samba.json @@ -0,0 +1,118 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1016089, + "Position": { + "X": -799.46594, + "Y": -133.2695, + "Z": -404.1352 + }, + "TerritoryId": 401, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1016093, + "Position": { + "X": -776.0281, + "Y": -133.35559, + "Z": -414.32825 + }, + "TerritoryId": 401, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1016219, + "Position": { + "X": 14.389221, + "Y": -111.05486, + "Z": 413.71777 + }, + "TerritoryId": 401, + "InteractionType": "Action", + "Action": "Buffet (Sanuwa)", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, + { + "DataId": 1016217, + "Position": { + "X": 97.48987, + "Y": -86.45681, + "Z": 466.57495 + }, + "TerritoryId": 401, + "InteractionType": "Action", + "Action": "Buffet (Sanuwa)", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 1016218, + "Position": { + "X": 137.95679, + "Y": -87.380325, + "Z": 434.62268 + }, + "TerritoryId": 401, + "InteractionType": "Action", + "Action": "Buffet (Sanuwa)", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1016089, + "Position": { + "X": -799.46594, + "Y": -133.2695, + "Z": -404.1352 + }, + "TerritoryId": 401, + "InteractionType": "CompleteQuest", + "Fly": true, + "AetheryteShortcut": "The Sea of Clouds - Ok' Zundu" + } + ] + } + ] +} -- 2.45.2 From 07c5faa781f1370cb25917d9a7269d27a07f8dca Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Wed, 20 Nov 2024 18:39:30 +0100 Subject: [PATCH 257/448] Add Respected Pelupelu quests --- Directory.Build.targets | 2 +- .../Dailies/5213_Advisor vs Predator.json | 88 ++++++++++++++++- .../5214_Let Mobbie Be Your Guide.json | 69 +++++++++++++- .../5215_The Popularity of Punutiys.json | 94 ++++++++++++++++++- .../Dailies/5219_Born to Run Away.json | 81 +++++++++++++++- QuestPaths/quest-v1.json | 3 +- .../Questing/Converter/ActionConverter.cs | 1 + Questionable.Model/Questing/EAction.cs | 4 +- Questionable/Functions/QuestFunctions.cs | 1 + 9 files changed, 335 insertions(+), 8 deletions(-) diff --git a/Directory.Build.targets b/Directory.Build.targets index ca80e97a3..ba0f6f9d7 100644 --- a/Directory.Build.targets +++ b/Directory.Build.targets @@ -1,5 +1,5 @@ - 4.2 + 4.3 diff --git a/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5213_Advisor vs Predator.json b/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5213_Advisor vs Predator.json index f7b53cd4a..95e55858f 100644 --- a/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5213_Advisor vs Predator.json +++ b/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5213_Advisor vs Predator.json @@ -1,7 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", - "Disabled": true, "QuestSequence": [ { "Sequence": 0, @@ -28,6 +27,93 @@ } ] }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2014497, + "Position": { + "X": -130.7851, + "Y": 114.39685, + "Z": 240.31421 + }, + "TerritoryId": 1188, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 18174 + ], + "AetheryteShortcut": "Kozama'uka - Earthenshire", + "Fly": true, + "RequiredQuestVariables": [ + null, + null, + [ + { + "High": 1 + } + ], + null, + null, + null + ] + }, + { + "DataId": 2014498, + "Position": { + "X": -56.565247, + "Y": 111.77234, + "Z": 172.62524 + }, + "TerritoryId": 1188, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 18174 + ], + "Fly": true, + "RequiredQuestVariables": [ + null, + null, + [ + { + "High": 2 + } + ], + null, + null, + null + ] + }, + { + "DataId": 2014499, + "Position": { + "X": -84.18408, + "Y": 111.436646, + "Z": 268.05518 + }, + "TerritoryId": 1188, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 18174 + ], + "Fly": true, + "RequiredQuestVariables": [ + null, + null, + [ + { + "High": 3 + } + ], + null, + null, + null + ] + } + ] + }, { "Sequence": 255, "Steps": [ diff --git a/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5214_Let Mobbie Be Your Guide.json b/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5214_Let Mobbie Be Your Guide.json index f7b53cd4a..58a270a11 100644 --- a/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5214_Let Mobbie Be Your Guide.json +++ b/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5214_Let Mobbie Be Your Guide.json @@ -1,7 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", - "Disabled": true, "QuestSequence": [ { "Sequence": 0, @@ -28,6 +27,74 @@ } ] }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1052324, + "Position": { + "X": -248.18805, + "Y": 110.17465, + "Z": 189.01343 + }, + "TerritoryId": 1188, + "InteractionType": "Interact", + "AetheryteShortcut": "Kozama'uka - Earthenshire", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1052326, + "Position": { + "X": -304.61584, + "Y": 110.20639, + "Z": 725.39856 + }, + "TerritoryId": 1188, + "InteractionType": "Interact", + "Fly": true, + "RequiredQuestVariables": [ + null, + [ + { + "High": 2 + } + ], + null, + null, + null, + null + ] + }, + { + "DataId": 1052435, + "Position": { + "X": 505.76025, + "Y": 115.10293, + "Z": 205.7373 + }, + "TerritoryId": 1188, + "InteractionType": "Interact", + "AetheryteShortcut": "Kozama'uka - Many Fires", + "RequiredQuestVariables": [ + null, + [ + { + "High": 1 + } + ], + null, + null, + null, + null + ] + } + ] + }, { "Sequence": 255, "Steps": [ diff --git a/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5215_The Popularity of Punutiys.json b/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5215_The Popularity of Punutiys.json index f7b53cd4a..4bd9620a1 100644 --- a/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5215_The Popularity of Punutiys.json +++ b/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5215_The Popularity of Punutiys.json @@ -1,7 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", - "Disabled": true, "QuestSequence": [ { "Sequence": 0, @@ -28,6 +27,99 @@ } ] }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1051798, + "Position": { + "X": 897.734, + "Y": 6.8223433, + "Z": -285.1759 + }, + "TerritoryId": 1188, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1052328, + "Position": { + "X": 171.6792, + "Y": 16.762953, + "Z": -112.44379 + }, + "TerritoryId": 1188, + "InteractionType": "Action", + "Action": "Bosom Brook", + "Fly": true, + "RequiredQuestVariables": [ + null, + null, + [ + { + "High": 1 + } + ], + null, + null, + null + ] + }, + { + "DataId": 1052329, + "Position": { + "X": 216.7544, + "Y": 16.31888, + "Z": -99.687195 + }, + "TerritoryId": 1188, + "InteractionType": "Action", + "Action": "Bosom Brook", + "Fly": true, + "RequiredQuestVariables": [ + null, + null, + [ + { + "High": 2 + } + ], + null, + null, + null + ] + }, + { + "DataId": 1052327, + "Position": { + "X": 186.38892, + "Y": 21.742897, + "Z": -74.47931 + }, + "TerritoryId": 1188, + "InteractionType": "Action", + "Action": "Bosom Brook", + "Fly": true, + "RequiredQuestVariables": [ + null, + null, + [ + { + "High": 3 + } + ], + null, + null, + null + ] + } + ] + }, { "Sequence": 255, "Steps": [ diff --git a/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5219_Born to Run Away.json b/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5219_Born to Run Away.json index f7b53cd4a..f93bd50d7 100644 --- a/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5219_Born to Run Away.json +++ b/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5219_Born to Run Away.json @@ -1,7 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", - "Disabled": true, "QuestSequence": [ { "Sequence": 0, @@ -28,6 +27,84 @@ } ] }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1052333, + "Position": { + "X": 775.1736, + "Y": 12.871736, + "Z": -196.0022 + }, + "TerritoryId": 1188, + "InteractionType": "Interact", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 1052335, + "Position": { + "X": 867.76526, + "Y": 14.402381, + "Z": -171.31305 + }, + "TerritoryId": 1188, + "InteractionType": "Interact", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, + { + "DataId": 1052334, + "Position": { + "X": 864.5609, + "Y": 15.056413, + "Z": -256.27533 + }, + "TerritoryId": 1188, + "InteractionType": "Interact", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1052336, + "Position": { + "X": 838.4375, + "Y": 14.301746, + "Z": -222.06458 + }, + "TerritoryId": 1188, + "InteractionType": "Interact", + "Fly": true + } + ] + }, { "Sequence": 255, "Steps": [ @@ -39,7 +116,7 @@ }, "TerritoryId": 1188, "InteractionType": "WalkTo", - "AetheryteShortcut": "Kozama'uka - Dock Poga" + "Fly": true }, { "DataId": 1051711, diff --git a/QuestPaths/quest-v1.json b/QuestPaths/quest-v1.json index 72ee63183..0564a3a3d 100644 --- a/QuestPaths/quest-v1.json +++ b/QuestPaths/quest-v1.json @@ -965,7 +965,8 @@ "Katon", "Raiton", "Hide", - "Slug Shot" + "Slug Shot", + "Bosom Brook" ] } }, diff --git a/Questionable.Model/Questing/Converter/ActionConverter.cs b/Questionable.Model/Questing/Converter/ActionConverter.cs index 86a1800b5..2af9cfa84 100644 --- a/Questionable.Model/Questing/Converter/ActionConverter.cs +++ b/Questionable.Model/Questing/Converter/ActionConverter.cs @@ -41,5 +41,6 @@ public sealed class ActionConverter() : EnumConverter(Values) { EAction.Katon, "Katon" }, { EAction.Raiton, "Raiton" }, { EAction.SlugShot, "Slug Shot" }, + { EAction.BosomBrook, "Bosom Brook" }, }; } diff --git a/Questionable.Model/Questing/EAction.cs b/Questionable.Model/Questing/EAction.cs index 4f7987978..0f72ecc6c 100644 --- a/Questionable.Model/Questing/EAction.cs +++ b/Questionable.Model/Questing/EAction.cs @@ -47,6 +47,7 @@ public enum EAction Raiton = 2267, RabbitMedium = 2272, SlugShot = 7412, + BosomBrook = 37173, CollectMiner = 240, ScourMiner = 22182, @@ -84,6 +85,7 @@ public static class EActionExtensions or EAction.YellowGulal or EAction.BlueGulal or EAction.ElectrixFlux - or EAction.HopStep; + or EAction.HopStep + or EAction.BosomBrook; } } diff --git a/Questionable/Functions/QuestFunctions.cs b/Questionable/Functions/QuestFunctions.cs index 1ef56c4e4..dc507a0a3 100644 --- a/Questionable/Functions/QuestFunctions.cs +++ b/Questionable/Functions/QuestFunctions.cs @@ -243,6 +243,7 @@ internal sealed unsafe class QuestFunctions { return questId.Value switch { + 5215 => EAlliedSociety.None, >= 5199 and <= 5226 => EAlliedSociety.Pelupelu, _ => EAlliedSociety.None, }; -- 2.45.2 From 6c1c66971da93296ef8d703caf3720c30e18552a Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Thu, 21 Nov 2024 16:26:42 +0100 Subject: [PATCH 258/448] Add waypoints in 'Burden of Beasts' to (hopefully) avoid combat --- .../Dailies/5204_Burden of Beasts.json | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5204_Burden of Beasts.json b/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5204_Burden of Beasts.json index f5bcdb6f2..3543a9dcc 100644 --- a/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5204_Burden of Beasts.json +++ b/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5204_Burden of Beasts.json @@ -76,6 +76,42 @@ { "Sequence": 3, "Steps": [ + { + "Position": { + "X": 548.1944, + "Y": 6.15866, + "Z": -196.99664 + }, + "TerritoryId": 1188, + "InteractionType": "WalkTo" + }, + { + "Position": { + "X": 610.0975, + "Y": 7.8043165, + "Z": -228.70596 + }, + "TerritoryId": 1188, + "InteractionType": "WalkTo" + }, + { + "Position": { + "X": 680.4834, + "Y": 10.053757, + "Z": -263.73697 + }, + "TerritoryId": 1188, + "InteractionType": "WalkTo" + }, + { + "Position": { + "X": 743.98376, + "Y": 9.793373, + "Z": -263.45914 + }, + "TerritoryId": 1188, + "InteractionType": "WalkTo" + }, { "DataId": 1052306, "Position": { -- 2.45.2 From 145a989a0717ba01109679a30ecfcd101a879455 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Fri, 22 Nov 2024 02:12:56 +0100 Subject: [PATCH 259/448] Use ActorControlFlags to check item use in battles --- Questionable/Controller/CombatModules/ItemUseModule.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Questionable/Controller/CombatModules/ItemUseModule.cs b/Questionable/Controller/CombatModules/ItemUseModule.cs index 1693edd5c..56da033fa 100644 --- a/Questionable/Controller/CombatModules/ItemUseModule.cs +++ b/Questionable/Controller/CombatModules/ItemUseModule.cs @@ -142,7 +142,7 @@ internal sealed class ItemUseModule : ICombatModule { BattleChara* battleChara = (BattleChara*)gameObject.Address; if (_combatData.CombatItemUse.Condition == ECombatItemUseCondition.Incapacitated) - return (*(byte*)((nint)battleChara + 0x1C68) & 0x40) != 0; + return (battleChara->ActorControlFlags & 0x40) != 0; if (_combatData.CombatItemUse.Condition == ECombatItemUseCondition.HealthPercent) return (100f * battleChara->Health / battleChara->MaxHealth) < _combatData.CombatItemUse.Value; -- 2.45.2 From 73e030b620690f7e5cd7a9c8ac3e53828d5fc633 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Fri, 22 Nov 2024 21:04:55 +0100 Subject: [PATCH 260/448] Add 'Recruitment Drive' Pelupelu quest --- .../Story/5196_Recruitment Drive.json | 171 ++++++++++++++++++ 1 file changed, 171 insertions(+) create mode 100644 QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Story/5196_Recruitment Drive.json diff --git a/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Story/5196_Recruitment Drive.json b/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Story/5196_Recruitment Drive.json new file mode 100644 index 000000000..98bdf1d19 --- /dev/null +++ b/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Story/5196_Recruitment Drive.json @@ -0,0 +1,171 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "Position": { + "X": 809.655, + "Y": 17.004526, + "Z": -257.89868 + }, + "TerritoryId": 1188, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Kozama'uka - Dock Poga", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + }, + { + "DataId": 1051710, + "Position": { + "X": 822.629, + "Y": 17.102613, + "Z": -263.20288 + }, + "TerritoryId": 1188, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1051733, + "Position": { + "X": 553.06323, + "Y": 115.84422, + "Z": 173.32715 + }, + "TerritoryId": 1188, + "InteractionType": "Interact", + "AetheryteShortcut": "Kozama'uka - Many Fires" + }, + { + "DataId": 1051734, + "Position": { + "X": 588.7998, + "Y": 116.71518, + "Z": 216.84595 + }, + "TerritoryId": 1188, + "InteractionType": "Interact", + "Fly": true + }, + { + "DataId": 1051735, + "Position": { + "X": 614.9232, + "Y": 119.49004, + "Z": 172.16748 + }, + "TerritoryId": 1188, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1051736, + "Position": { + "X": 573.3883, + "Y": 116, + "Z": 202.62451 + }, + "TerritoryId": 1188, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2014432, + "Position": { + "X": 663.569, + "Y": 117.50964, + "Z": 647.9437 + }, + "TerritoryId": 1188, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1051738, + "Position": { + "X": 661.7991, + "Y": 117.68325, + "Z": 646.6925 + }, + "StopDistance": 5, + "TerritoryId": 1188, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1051739, + "Position": { + "X": 410.39136, + "Y": 122.23778, + "Z": 797.5432 + }, + "TerritoryId": 1188, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1051738, + "Position": { + "X": 661.7991, + "Y": 117.68325, + "Z": 646.6925 + }, + "TerritoryId": 1188, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1051710, + "Position": { + "X": 822.629, + "Y": 17.102613, + "Z": -263.20288 + }, + "TerritoryId": 1188, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Kozama'uka - Dock Poga" + } + ] + } + ] +} -- 2.45.2 From 0265fcc0aeef351925c9efb5d04675adb0a835b1 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Fri, 22 Nov 2024 21:52:35 +0100 Subject: [PATCH 261/448] Remove 'Automatically complete snipe tasks' --- Questionable/Configuration.cs | 3 +- .../Steps/Common/SendNotification.cs | 4 +- .../Controller/Steps/Interactions/Interact.cs | 5 +- .../Controller/Utils/AutoSnipeHandler.cs | 48 ---------- Questionable/External/AutomatonIpc.cs | 40 ++++++++ Questionable/QuestionablePlugin.cs | 4 +- Questionable/Windows/ConfigWindow.cs | 12 --- Questionable/Windows/OneTimeSetupWindow.cs | 93 +++++++++++++------ 8 files changed, 113 insertions(+), 96 deletions(-) delete mode 100644 Questionable/Controller/Utils/AutoSnipeHandler.cs create mode 100644 Questionable/External/AutomatonIpc.cs diff --git a/Questionable/Configuration.cs b/Questionable/Configuration.cs index 238e4a511..29358b34e 100644 --- a/Questionable/Configuration.cs +++ b/Questionable/Configuration.cs @@ -7,7 +7,7 @@ namespace Questionable; internal sealed class Configuration : IPluginConfiguration { - public const int PluginSetupVersion = 1; + public const int PluginSetupVersion = 2; public int Version { get; set; } =1 ; public int PluginSetupCompleteVersion { get; set; } @@ -28,7 +28,6 @@ internal sealed class Configuration : IPluginConfiguration public bool HideInAllInstances { get; set; } = true; public bool UseEscToCancelQuesting { get; set; } = true; public bool ShowIncompleteSeasonalEvents { get; set; } = true; - public bool AutomaticallyCompleteSnipeTasks { get; set; } public bool ConfigureTextAdvance { get; set; } = true; } diff --git a/Questionable/Controller/Steps/Common/SendNotification.cs b/Questionable/Controller/Steps/Common/SendNotification.cs index 5edb743cd..7334ca075 100644 --- a/Questionable/Controller/Steps/Common/SendNotification.cs +++ b/Questionable/Controller/Steps/Common/SendNotification.cs @@ -12,14 +12,14 @@ namespace Questionable.Controller.Steps.Common; internal static class SendNotification { internal sealed class Factory( - Configuration configuration, + AutomatonIpc automatonIpc, TerritoryData territoryData) : SimpleTaskFactory { public override ITask? CreateTask(Quest quest, QuestSequence sequence, QuestStep step) { return step.InteractionType switch { - EInteractionType.Snipe when !configuration.General.AutomaticallyCompleteSnipeTasks => + EInteractionType.Snipe when !automatonIpc.IsAutoSnipeEnabled => new Task(step.InteractionType, step.Comment), EInteractionType.Duty => new Task(step.InteractionType, step.ContentFinderConditionId.HasValue diff --git a/Questionable/Controller/Steps/Interactions/Interact.cs b/Questionable/Controller/Steps/Interactions/Interact.cs index ac8f5109a..0ca70c11f 100644 --- a/Questionable/Controller/Steps/Interactions/Interact.cs +++ b/Questionable/Controller/Steps/Interactions/Interact.cs @@ -8,6 +8,7 @@ using FFXIVClientStructs.FFXIV.Client.Game; using Microsoft.Extensions.Logging; using Questionable.Controller.Steps.Shared; using Questionable.Controller.Utils; +using Questionable.External; using Questionable.Functions; using Questionable.Model; using Questionable.Model.Questing; @@ -16,7 +17,7 @@ namespace Questionable.Controller.Steps.Interactions; internal static class Interact { - internal sealed class Factory(Configuration configuration) : ITaskFactory + internal sealed class Factory(AutomatonIpc automatonIpc) : ITaskFactory { public IEnumerable CreateAllTasks(Quest quest, QuestSequence sequence, QuestStep step) { @@ -43,7 +44,7 @@ internal static class Interact } else if (step.InteractionType == EInteractionType.Snipe) { - if (!configuration.General.AutomaticallyCompleteSnipeTasks) + if (!automatonIpc.IsAutoSnipeEnabled) yield break; } else if (step.InteractionType != EInteractionType.Interact) diff --git a/Questionable/Controller/Utils/AutoSnipeHandler.cs b/Questionable/Controller/Utils/AutoSnipeHandler.cs deleted file mode 100644 index dc48c3aca..000000000 --- a/Questionable/Controller/Utils/AutoSnipeHandler.cs +++ /dev/null @@ -1,48 +0,0 @@ -using System; -using Dalamud.Hooking; -using Dalamud.Plugin.Services; -using FFXIVClientStructs.FFXIV.Client.Game.Event; -using FFXIVClientStructs.FFXIV.Common.Lua; - -namespace Questionable.Controller.Utils; - -internal sealed unsafe class AutoSnipeHandler : IDisposable -{ - private readonly QuestController _questController; - private readonly Configuration _configuration; - private readonly Hook _enqueueSnipeTaskHook; - - private delegate ulong EnqueueSnipeTaskDelegate(EventSceneModuleImplBase* scene, lua_State* state); - - public AutoSnipeHandler(QuestController questController, Configuration configuration, IGameInteropProvider gameInteropProvider) - { - _questController = questController; - _configuration = configuration; - - _enqueueSnipeTaskHook = - gameInteropProvider.HookFromSignature( - "48 89 5C 24 ?? 48 89 6C 24 ?? 48 89 74 24 ?? 57 48 83 EC 50 48 8B F1 48 8D 4C 24 ?? E8 ?? ?? ?? ?? 48 8B 4C 24 ??", - EnqueueSnipeTask); - } - - public void Enable() => _enqueueSnipeTaskHook.Enable(); - - private ulong EnqueueSnipeTask(EventSceneModuleImplBase* scene, lua_State* state) - { - if (_configuration.General.AutomaticallyCompleteSnipeTasks && _questController.IsRunning) - { - var val = state->top; - val->tt = 3; - val->value.n = 1; - state->top += 1; - return 1; - } - else - return _enqueueSnipeTaskHook.Original.Invoke(scene, state); - } - - public void Dispose() - { - _enqueueSnipeTaskHook.Dispose(); - } -} diff --git a/Questionable/External/AutomatonIpc.cs b/Questionable/External/AutomatonIpc.cs new file mode 100644 index 000000000..69e946783 --- /dev/null +++ b/Questionable/External/AutomatonIpc.cs @@ -0,0 +1,40 @@ +using Dalamud.Plugin; +using Dalamud.Plugin.Ipc; +using Dalamud.Plugin.Ipc.Exceptions; +using Microsoft.Extensions.Logging; + +namespace Questionable.External; + +internal sealed class AutomatonIpc +{ + private readonly ILogger _logger; + private readonly ICallGateSubscriber _isTweakEnabled; + private bool _loggedIpcError; + + public AutomatonIpc(IDalamudPluginInterface pluginInterface, ILogger logger) + { + _logger = logger; + _isTweakEnabled = pluginInterface.GetIpcSubscriber("Automaton.IsTweakEnabled"); + logger.LogWarning("Automaton x {IsTweakEnabled}", IsAutoSnipeEnabled); + } + + public bool IsAutoSnipeEnabled + { + get + { + try + { + return _isTweakEnabled.InvokeFunc("AutoSnipeQuests"); + } + catch (IpcError e) + { + if (!_loggedIpcError) + { + _loggedIpcError = true; + _logger.LogWarning(e, "Could not query automaton for tweak status, probably not installed"); + } + return false; + } + } + } +} diff --git a/Questionable/QuestionablePlugin.cs b/Questionable/QuestionablePlugin.cs index 7e9fb3f53..8cc59d16e 100644 --- a/Questionable/QuestionablePlugin.cs +++ b/Questionable/QuestionablePlugin.cs @@ -112,7 +112,6 @@ public sealed class QuestionablePlugin : IDalamudPlugin serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); - serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); @@ -128,6 +127,7 @@ public sealed class QuestionablePlugin : IDalamudPlugin serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); + serviceCollection.AddSingleton(); } private static void AddTaskFactories(ServiceCollection serviceCollection) @@ -300,8 +300,8 @@ public sealed class QuestionablePlugin : IDalamudPlugin serviceProvider.GetRequiredService(); serviceProvider.GetRequiredService(); serviceProvider.GetRequiredService(); - serviceProvider.GetRequiredService().Enable(); serviceProvider.GetRequiredService(); + serviceProvider.GetRequiredService(); } public void Dispose() diff --git a/Questionable/Windows/ConfigWindow.cs b/Questionable/Windows/ConfigWindow.cs index 97847de52..27c968a0f 100644 --- a/Questionable/Windows/ConfigWindow.cs +++ b/Questionable/Windows/ConfigWindow.cs @@ -115,18 +115,6 @@ internal sealed class ConfigWindow : LWindow, IPersistableWindowConfig _configuration.General.ConfigureTextAdvance = configureTextAdvance; Save(); } - - if (ImGui.CollapsingHeader("Cheats")) - { - ImGui.TextColored(ImGuiColors.DalamudRed, - "This setting will be removed in a future version, and will be\navailable through TextAdvance instead."); - bool automaticallyCompleteSnipeTasks = _configuration.General.AutomaticallyCompleteSnipeTasks; - if (ImGui.Checkbox("Automatically complete snipe tasks", ref automaticallyCompleteSnipeTasks)) - { - _configuration.General.AutomaticallyCompleteSnipeTasks = automaticallyCompleteSnipeTasks; - Save(); - } - } } private void DrawNotificationsTab() diff --git a/Questionable/Windows/OneTimeSetupWindow.cs b/Questionable/Windows/OneTimeSetupWindow.cs index 2ec22702b..f1c715520 100644 --- a/Questionable/Windows/OneTimeSetupWindow.cs +++ b/Questionable/Windows/OneTimeSetupWindow.cs @@ -10,10 +10,11 @@ using ImGuiNET; using LLib; using LLib.ImGui; using Microsoft.Extensions.Logging; +using Questionable.External; namespace Questionable.Windows; -internal sealed class OneTimeSetupWindow : LWindow, IDisposable +internal sealed class OneTimeSetupWindow : LWindow { private static readonly IReadOnlyList RequiredPlugins = [ @@ -22,35 +23,24 @@ internal sealed class OneTimeSetupWindow : LWindow, IDisposable vnavmesh handles the navigation within a zone, moving your character to the next quest-related objective. """, - new Uri("https://github.com/awgil/ffxiv_navmesh/")), + new Uri("https://github.com/awgil/ffxiv_navmesh/"), + new Uri("https://puni.sh/api/repository/veyn")), new("Lifestream", """ Used to travel to aethernet shards in cities. """, - new Uri("https://github.com/NightmareXIV/Lifestream")), + new Uri("https://github.com/NightmareXIV/Lifestream"), + new Uri("https://github.com/NightmareXIV/MyDalamudPlugins/raw/main/pluginmaster.json")), new("TextAdvance", """ Automatically accepts and turns in quests, skips cutscenes and dialogue. """, - new Uri("https://github.com/NightmareXIV/TextAdvance")), + new Uri("https://github.com/NightmareXIV/TextAdvance"), + new Uri("https://github.com/NightmareXIV/MyDalamudPlugins/raw/main/pluginmaster.json")), ]; - private static readonly IReadOnlyList RecommendedPlugins = - [ - new("Rotation Solver Reborn", - """ - Automatically handles most combat interactions you encounter - during quests, including being interrupted by mobs. - """, - new Uri("https://github.com/FFXIV-CombatReborn/RotationSolverReborn")), - new("NotificationMaster", - """ - Sends a configurable out-of-game notification if a quest - requires manual actions. - """, - new Uri("https://github.com/NightmareXIV/NotificationMaster")), - ]; + private readonly IReadOnlyList _recommendedPlugins; private readonly Configuration _configuration; private readonly IDalamudPluginInterface _pluginInterface; @@ -59,7 +49,7 @@ internal sealed class OneTimeSetupWindow : LWindow, IDisposable private readonly ILogger _logger; public OneTimeSetupWindow(Configuration configuration, IDalamudPluginInterface pluginInterface, UiUtils uiUtils, - DalamudReflector dalamudReflector, ILogger logger) + DalamudReflector dalamudReflector, ILogger logger, AutomatonIpc automatonIpc) : base("Questionable Setup###QuestionableOneTimeSetup", ImGuiWindowFlags.NoCollapse | ImGuiWindowFlags.AlwaysAutoResize | ImGuiWindowFlags.NoSavedSettings, true) { @@ -69,6 +59,33 @@ internal sealed class OneTimeSetupWindow : LWindow, IDisposable _dalamudReflector = dalamudReflector; _logger = logger; + _recommendedPlugins = + [ + new("Rotation Solver Reborn", + """ + Automatically handles most combat interactions you encounter + during quests, including being interrupted by mobs. + """, + new Uri("https://github.com/FFXIV-CombatReborn/RotationSolverReborn"), + new Uri( + "https://raw.githubusercontent.com/FFXIV-CombatReborn/CombatRebornRepo/main/pluginmaster.json")), + new PluginInfo("Automaton", + """ + Automaton is a collection of automation-related tweaks. + The 'Sniper no sniping' tweak can complete snipe tasks automatically. + """, + new Uri("https://github.com/Jaksuhn/Automaton"), + new Uri("https://puni.sh/api/repository/croizat"), + [new PluginDetailInfo("'Sniper no sniping' enabled", () => automatonIpc.IsAutoSnipeEnabled)]), + new("NotificationMaster", + """ + Sends a configurable out-of-game notification if a quest + requires manual actions. + """, + new Uri("https://github.com/NightmareXIV/NotificationMaster"), + null), + ]; + RespectCloseHotkey = false; ShowCloseButton = false; AllowPinning = false; @@ -101,7 +118,7 @@ internal sealed class OneTimeSetupWindow : LWindow, IDisposable ImGui.Text("The following plugins are recommended, but not required:"); using (ImRaii.PushIndent()) { - foreach (var plugin in RecommendedPlugins) + foreach (var plugin in _recommendedPlugins) DrawPlugin(plugin, checklistPadding); } @@ -149,8 +166,28 @@ internal sealed class OneTimeSetupWindow : LWindow, IDisposable using (ImRaii.PushIndent(checklistPadding)) { ImGui.TextUnformatted(plugin.Details); - if (!isInstalled && ImGui.Button("Open Repository")) - Util.OpenLink(plugin.Uri.ToString()); + if (plugin.DetailsToCheck != null) + { + foreach (var detail in plugin.DetailsToCheck) + _uiUtils.ChecklistItem(detail.DisplayName, isInstalled && detail.Predicate()); + } + + ImGui.Spacing(); + + if (ImGuiComponents.IconButtonWithText(FontAwesomeIcon.Globe, "Open Website")) + Util.OpenLink(plugin.WebsiteUri.ToString()); + + ImGui.SameLine(); + if (plugin.DalamudRepositoryUri != null) + { + if (ImGuiComponents.IconButtonWithText(FontAwesomeIcon.Code, "Open Repository")) + Util.OpenLink(plugin.DalamudRepositoryUri.ToString()); + } + else + { + ImGui.AlignTextToFramePadding(); + ImGuiComponents.HelpMarker("Available on official Dalamud Repository"); + } } } @@ -162,12 +199,12 @@ internal sealed class OneTimeSetupWindow : LWindow, IDisposable return _dalamudReflector.TryGetDalamudPlugin(internalName, out _, suppressErrors: true, ignoreCache: true); } - public void Dispose() - { - } - private sealed record PluginInfo( string DisplayName, string Details, - Uri Uri); + Uri WebsiteUri, + Uri? DalamudRepositoryUri, + List? DetailsToCheck = null); + + private sealed record PluginDetailInfo(string DisplayName, Func Predicate); } -- 2.45.2 From 5da2dc9f8e91175cfd96f7dc25e348506b97b7bd Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Fri, 22 Nov 2024 22:22:53 +0100 Subject: [PATCH 262/448] Add some Honored Pelupelu quests --- Directory.Build.targets | 2 +- .../Dailies/5223_In Time for Lunch.json | 57 +++++++++- .../Dailies/5224_His Swarm Enemy.json | 104 ++++++++++++++++- .../Dailies/5225_Seasoned Adventurer.json | 107 +++++++++++++++++- 4 files changed, 265 insertions(+), 5 deletions(-) diff --git a/Directory.Build.targets b/Directory.Build.targets index ba0f6f9d7..cff821d57 100644 --- a/Directory.Build.targets +++ b/Directory.Build.targets @@ -1,5 +1,5 @@ - 4.3 + 4.4 diff --git a/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5223_In Time for Lunch.json b/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5223_In Time for Lunch.json index f7b53cd4a..52c6f2e7e 100644 --- a/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5223_In Time for Lunch.json +++ b/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5223_In Time for Lunch.json @@ -1,7 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", - "Disabled": true, "QuestSequence": [ { "Sequence": 0, @@ -28,6 +27,62 @@ } ] }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": 746.76465, + "Y": 15.431515, + "Z": -201.92921 + }, + "TerritoryId": 1188, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Kozama'uka - Dock Poga", + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": 770.7179, + "Y": 12.84657, + "Z": -263.99634 + }, + "TerritoryId": 1188, + "MaximumDistance": 300 + } + } + } + }, + { + "DataId": 1051741, + "Position": { + "X": 744.19763, + "Y": 15.431515, + "Z": -199.17603 + }, + "StopDistance": 7, + "TerritoryId": 1188, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1052341, + "Position": { + "X": 239.49023, + "Y": 111.689354, + "Z": 699.3667 + }, + "TerritoryId": 1188, + "InteractionType": "Interact", + "AetheryteShortcut": "Kozama'uka - Many Fires", + "Fly": true + } + ] + }, { "Sequence": 255, "Steps": [ diff --git a/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5224_His Swarm Enemy.json b/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5224_His Swarm Enemy.json index f7b53cd4a..c528538a9 100644 --- a/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5224_His Swarm Enemy.json +++ b/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5224_His Swarm Enemy.json @@ -1,7 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", - "Disabled": true, "QuestSequence": [ { "Sequence": 0, @@ -28,6 +27,109 @@ } ] }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2014508, + "Position": { + "X": 566.1554, + "Y": 123.552246, + "Z": 700.4043 + }, + "TerritoryId": 1188, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 18177 + ], + "AetheryteShortcut": "Kozama'uka - Many Fires", + "Fly": true, + "RequiredQuestVariables": [ + null, + null, + [ + { + "High": 1 + } + ], + null, + null, + null + ] + }, + { + "DataId": 2014509, + "Position": { + "X": 557.94604, + "Y": 124.65088, + "Z": 778.56104 + }, + "TerritoryId": 1188, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 18177 + ], + "Fly": true, + "RequiredQuestVariables": [ + null, + null, + [ + { + "High": 2 + } + ], + null, + null, + null + ] + }, + { + "DataId": 2014507, + "Position": { + "X": 721.8584, + "Y": 123.09448, + "Z": 729.9762 + }, + "TerritoryId": 1188, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 18177 + ], + "Fly": true, + "RequiredQuestVariables": [ + null, + null, + [ + { + "High": 3 + } + ], + null, + null, + null + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1052443, + "Position": { + "X": 641.8097, + "Y": 122.10785, + "Z": 730.70874 + }, + "TerritoryId": 1188, + "InteractionType": "Interact", + "Fly": true + } + ] + }, { "Sequence": 255, "Steps": [ diff --git a/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5225_Seasoned Adventurer.json b/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5225_Seasoned Adventurer.json index f7b53cd4a..a26b0bfd5 100644 --- a/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5225_Seasoned Adventurer.json +++ b/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5225_Seasoned Adventurer.json @@ -1,7 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", - "Disabled": true, "QuestSequence": [ { "Sequence": 0, @@ -28,6 +27,96 @@ } ] }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2014511, + "Position": { + "X": 226.85583, + "Y": 2.9450073, + "Z": -199.6643 + }, + "StopDistance": 1, + "TerritoryId": 1188, + "InteractionType": "Interact", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 2014510, + "Position": { + "X": 218.1582, + "Y": 2.2124634, + "Z": -184.92413 + }, + "StopDistance": 1, + "TerritoryId": 1188, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 2014512, + "Position": { + "X": 61.53955, + "Y": 8.102478, + "Z": -230.79272 + }, + "StopDistance": 1, + "TerritoryId": 1188, + "InteractionType": "Interact", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": 746.76465, + "Y": 15.431515, + "Z": -201.92921 + }, + "TerritoryId": 1188, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Kozama'uka - Dock Poga" + }, + { + "DataId": 1051741, + "Position": { + "X": 744.19763, + "Y": 15.431515, + "Z": -199.17603 + }, + "StopDistance": 7, + "TerritoryId": 1188, + "InteractionType": "Interact" + } + ] + }, { "Sequence": 255, "Steps": [ @@ -39,7 +128,21 @@ }, "TerritoryId": 1188, "InteractionType": "WalkTo", - "AetheryteShortcut": "Kozama'uka - Dock Poga" + "Fly": true, + "AetheryteShortcut": "Kozama'uka - Dock Poga", + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": 770.7179, + "Y": 12.84657, + "Z": -263.99634 + }, + "TerritoryId": 1188, + "MaximumDistance": 300 + } + } + } }, { "DataId": 1051711, -- 2.45.2 From c86f9955f75780cee7d263ba9fd2d2834e7870b8 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Fri, 22 Nov 2024 22:25:06 +0100 Subject: [PATCH 263/448] Update dependencies --- LLib | 2 +- vendor/ECommons | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/LLib b/LLib index e4bbc05ed..783fea977 160000 --- a/LLib +++ b/LLib @@ -1 +1 @@ -Subproject commit e4bbc05ede6f6f01e7028b24614ed8cb333e909c +Subproject commit 783fea977a2524dd63e717367fc026c52efe6c23 diff --git a/vendor/ECommons b/vendor/ECommons index 71ee09f7c..6ea40a9ee 160000 --- a/vendor/ECommons +++ b/vendor/ECommons @@ -1 +1 @@ -Subproject commit 71ee09f7cc2230a73503b945422760da1368405c +Subproject commit 6ea40a9eea2e805f2f566fe0493749c7c0639ea3 -- 2.45.2 From 92b97a7caabcba804260295d47c1414290d1a4f8 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Fri, 22 Nov 2024 22:30:52 +0100 Subject: [PATCH 264/448] Update inspection exclusion paths --- Questionable.sln.DotSettings | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Questionable.sln.DotSettings b/Questionable.sln.DotSettings index 3c6b4ec86..830879e07 100644 --- a/Questionable.sln.DotSettings +++ b/Questionable.sln.DotSettings @@ -1,5 +1,5 @@  - ExplicitlyExcluded + ExplicitlyExcluded True True True -- 2.45.2 From 9dfe110d38b2525a3033de5702600364792a24f0 Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Sat, 23 Nov 2024 18:13:19 +0800 Subject: [PATCH 265/448] Add final story quest - "Glory Be to the Scree" --- .../Story/3799_Glory Be to the Scree.json | 103 ++++++++++++++++++ 1 file changed, 103 insertions(+) create mode 100644 QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Story/3799_Glory Be to the Scree.json diff --git a/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Story/3799_Glory Be to the Scree.json b/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Story/3799_Glory Be to the Scree.json new file mode 100644 index 000000000..5296246ef --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Story/3799_Glory Be to the Scree.json @@ -0,0 +1,103 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "plogon_enjoyer", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1032659, + "Position": { + "X": 802.79236, + "Y": -45.91779, + "Z": -218.58557 + }, + "TerritoryId": 817, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1027716, + "Position": { + "X": 494.9873, + "Y": -6.555339, + "Z": -224.93329 + }, + "TerritoryId": 817, + "InteractionType": "Interact", + "AetheryteShortcut": "Rak'tika - Fanow", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1032732, + "Position": { + "X": -26.93219, + "Y": -24.638563, + "Z": 319.35608 + }, + "TerritoryId": 817, + "InteractionType": "Interact", + "AetheryteShortcut": "Rak'tika - Slitherbough", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1032750, + "Position": { + "X": -523.827, + "Y": 0.143766, + "Z": 227.55774 + }, + "TerritoryId": 817, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1032750, + "Position": { + "X": -523.827, + "Y": 0.143766, + "Z": 227.55774 + }, + "TerritoryId": 817, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1032660, + "Position": { + "X": 804.4098, + "Y": -45.9255, + "Z": -216.41876 + }, + "TerritoryId": 817, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Rak'tika - Fanow", + "Fly": true + } + ] + } + ] +} -- 2.45.2 From ccf077ed6bc37a64aa2c86aa44b8c41b6238ce42 Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Sat, 23 Nov 2024 18:36:49 +0800 Subject: [PATCH 266/448] Updated a few daily quests - A Real Pearler - You Have the Rite --- .../Kojin/Dailies/2980_A Real Pearler.json | 25 ++++++++----------- .../Kojin/Dailies/2981_You Have the Rite.json | 8 +++--- 2 files changed, 15 insertions(+), 18 deletions(-) diff --git a/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2980_A Real Pearler.json b/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2980_A Real Pearler.json index ae49b3168..0d35b0ddf 100644 --- a/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2980_A Real Pearler.json +++ b/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2980_A Real Pearler.json @@ -22,9 +22,9 @@ "Steps": [ { "Position": { - "X": 291.9449, - "Y": -62.62814, - "Z": -214.1033 + "X": 318.06195, + "Y": -83.027016, + "Z": -226.5931 }, "TerritoryId": 613, "InteractionType": "WalkTo", @@ -153,16 +153,6 @@ { "Sequence": 2, "Steps": [ - { - "Position": { - "X": 804.21405, - "Y": 1.4000988, - "Z": 720.92487 - }, - "TerritoryId": 613, - "InteractionType": "WalkTo", - "Fly": true - }, { "DataId": 1024460, "Position": { @@ -172,6 +162,11 @@ }, "TerritoryId": 613, "InteractionType": "Interact", + "AetheryteShortcut": "Kugane", + "AethernetShortcut": [ + "[Kugane] Aetheryte Plaza", + "[Kugane] The Ruby Price" + ], "Fly": true } ] @@ -187,8 +182,8 @@ }, "TerritoryId": 613, "InteractionType": "WalkTo", - "Fly": true, - "AetheryteShortcut": "Ruby Sea - Tamamizu" + "AetheryteShortcut": "Ruby Sea - Tamamizu", + "Fly": true }, { "DataId": 1024217, diff --git a/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2981_You Have the Rite.json b/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2981_You Have the Rite.json index 8cafa32ba..8ad07b432 100644 --- a/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2981_You Have the Rite.json +++ b/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2981_You Have the Rite.json @@ -28,6 +28,7 @@ }, "TerritoryId": 613, "InteractionType": "WalkTo", + "RestartNavigationIfCancelled": false, "Fly": true }, { @@ -38,6 +39,7 @@ }, "TerritoryId": 613, "InteractionType": "WalkTo", + "RestartNavigationIfCancelled": false, "Fly": true }, { @@ -58,9 +60,9 @@ "Steps": [ { "Position": { - "X": 368.39856, - "Y": -116.624695, - "Z": -291.34058 + "X": 367.17773, + "Y": -119.94679, + "Z": -292.3781 }, "TerritoryId": 613, "InteractionType": "UseItem", -- 2.45.2 From 501a2bd06d012990d2de3b7697e6b887097c3000 Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Sat, 23 Nov 2024 19:43:42 +0800 Subject: [PATCH 267/448] Added new daily quest: Hard to Port --- .../Amalj'aa/Dailies/1240_Hard to Port.json | 213 ++++++++++++++++++ 1 file changed, 213 insertions(+) create mode 100644 QuestPaths/2.x - A Realm Reborn/Allied Societies/Amalj'aa/Dailies/1240_Hard to Port.json diff --git a/QuestPaths/2.x - A Realm Reborn/Allied Societies/Amalj'aa/Dailies/1240_Hard to Port.json b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Amalj'aa/Dailies/1240_Hard to Port.json new file mode 100644 index 000000000..ca56da831 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Amalj'aa/Dailies/1240_Hard to Port.json @@ -0,0 +1,213 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "plogon_enjoyer", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1005551, + "Position": { + "X": 98.924194, + "Y": 15.29447, + "Z": -349.4469 + }, + "TerritoryId": 146, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1005745, + "Position": { + "X": 22.720581, + "Y": 4.240738, + "Z": -443.07623 + }, + "TerritoryId": 146, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": -126.48953, + "Y": 27.57419, + "Z": 138.61473 + }, + "TerritoryId": 146, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 2003048, + "Position": { + "X": -136.85822, + "Y": 18.753235, + "Z": 116.50256 + }, + "TerritoryId": 146, + "InteractionType": "Interact", + "RequiredQuestVariables": [null, null, [1, 2], null, null, null], + "Mount": true + }, + { + "DataId": 2003049, + "Position": { + "X": -121.78229, + "Y": 28.732666, + "Z": 140.33716 + }, + "TerritoryId": 146, + "InteractionType": "Interact", + "RequiredQuestVariables": [null, null, [3], null, null, null], + "Mount": true + }, + { + "DataId": 2003050, + "Position": { + "X": -91.96619, + "Y": 43.07617, + "Z": 156.84741 + }, + "TerritoryId": 146, + "InteractionType": "Interact", + "RequiredQuestVariables": [null, null, [4], null, null, null], + "Mount": true + }, + { + "DataId": 2003051, + "Position": { + "X": -55.40558, + "Y": 42.526855, + "Z": 192.18738 + }, + "TerritoryId": 146, + "InteractionType": "Interact", + "RequiredQuestVariables": [null, null, [1, 3, 4], null, null, null], + "Mount": true + }, + { + "DataId": 2003052, + "Position": { + "X": 6.668152, + "Y": 36.9115, + "Z": 207.01917 + }, + "TerritoryId": 146, + "InteractionType": "Interact", + "RequiredQuestVariables": [null, null, [2], null, null, null], + "Mount": true + }, + { + "DataId": 2003053, + "Position": { + "X": 73.31958, + "Y": 31.784546, + "Z": 153.76514 + }, + "TerritoryId": 146, + "InteractionType": "Interact", + "RequiredQuestVariables": [null, null, [1], null, null, null], + "Mount": true + }, + { + "DataId": 2003054, + "Position": { + "X": 79.42322, + "Y": 25.802979, + "Z": 208.66711 + }, + "TerritoryId": 146, + "InteractionType": "Interact", + "RequiredQuestVariables": [null, null, [2, 4], null, null, null], + "Mount": true + }, + { + "DataId": 2003055, + "Position": { + "X": 106.889404, + "Y": 14.602844, + "Z": 147.53943 + }, + "TerritoryId": 146, + "InteractionType": "Interact", + "RequiredQuestVariables": [null, null, [3], null, null, null], + "Mount": true + }, + { + "Position": { + "X": 135.42383, + "Y": 8.102478, + "Z": 178.36267 + }, + "TerritoryId": 146, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [2456], + "Mount": true + }, + { + "DataId": 2003056, + "Position": { + "X": 135.42383, + "Y": 8.102478, + "Z": 178.36267 + }, + "TerritoryId": 146, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "Position": { + "X": -63.849556, + "Y": 26.409807, + "Z": -383.9894 + }, + "TerritoryId": 146, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Southern Thanalan - Little Ala Mhigo", + "Mount": true + }, + { + "DataId": 1005745, + "Position": { + "X": 22.720581, + "Y": 4.240738, + "Z": -443.07623 + }, + "TerritoryId": 146, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1005551, + "Position": { + "X": 98.924194, + "Y": 15.29447, + "Z": -349.4469 + }, + "TerritoryId": 146, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} -- 2.45.2 From 0e71d374240dba1da9ba8922bd51c8111dc521c2 Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Sat, 23 Nov 2024 19:44:44 +0800 Subject: [PATCH 268/448] Disabled incomplete daily quests add and committed by mistake. These are all currently WIP. - Smothering Instinct - Forged in Flame - Beacon Keepers --- .../Dailies/1227_Smothering Instinct.json | 1 + .../Dailies/1234_Forged in Flame.json | 111 ++++++++++++++++++ .../Amalj'aa/Dailies/1235_Beacon Keepers.json | 1 + 3 files changed, 113 insertions(+) diff --git a/QuestPaths/2.x - A Realm Reborn/Allied Societies/Amalj'aa/Dailies/1227_Smothering Instinct.json b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Amalj'aa/Dailies/1227_Smothering Instinct.json index 538e8a4de..2fbacffca 100644 --- a/QuestPaths/2.x - A Realm Reborn/Allied Societies/Amalj'aa/Dailies/1227_Smothering Instinct.json +++ b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Amalj'aa/Dailies/1227_Smothering Instinct.json @@ -1,6 +1,7 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "plogon_enjoyer", + "Disabled": true, "QuestSequence": [ { "Sequence": 0, diff --git a/QuestPaths/2.x - A Realm Reborn/Allied Societies/Amalj'aa/Dailies/1234_Forged in Flame.json b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Amalj'aa/Dailies/1234_Forged in Flame.json index f489f265d..8ef09f160 100644 --- a/QuestPaths/2.x - A Realm Reborn/Allied Societies/Amalj'aa/Dailies/1234_Forged in Flame.json +++ b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Amalj'aa/Dailies/1234_Forged in Flame.json @@ -1,6 +1,8 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "plogon_enjoyer", + "Disabled": true, + "Comment": "WIP too many cases", "QuestSequence": [ { "Sequence": 0, @@ -17,9 +19,118 @@ } ] }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": -175.15483, + "Y": 40, + "Z": 159.05237 + }, + "TerritoryId": 146, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 2003019, + "Position": { + "X": -88.059875, + "Y": 43.503418, + "Z": 149.00427 + }, + "TerritoryId": 146, + "InteractionType": "Interact", + "RequiredQuestVariables": [null, [4], null, null, null, null], + "Mount": true + }, + { + "DataId": 2003022, + "Position": { + "X": -170.85535, + "Y": 39.993896, + "Z": 135.45422 + }, + "TerritoryId": 146, + "InteractionType": "Interact", + "RequiredQuestVariables": [null, [5], null, null, null, null], + "Mount": true + }, + { + "DataId": 2003017, + "Position": { + "X": -97.48993, + "Y": 45.792236, + "Z": 197.28381 + }, + "TerritoryId": 146, + "InteractionType": "Interact", + "RequiredQuestVariables": [null, [20], null, null, null, null], + "Mount": true + }, + { + "DataId": 2003020, + "Position": { + "X": -77.836365, + "Y": 43.4729, + "Z": 155.50464 + }, + "TerritoryId": 146, + "InteractionType": "Interact", + "RequiredQuestVariables": [null, [21], null, null, null, null], + "Mount": true + }, + { + "DataId": 2003015, + "Position": { + "X": 133.62317, + "Y": 13.961914, + "Z": 152.26978 + }, + "TerritoryId": 146, + "InteractionType": "Interact", + "RequiredQuestVariables": [null, [36], null, null, null, null], + "Mount": true + }, + { + "DataId": 2003018, + "Position": { + "X": -100.572266, + "Y": 45.76172, + "Z": 211.04749 + }, + "TerritoryId": 146, + "InteractionType": "Interact", + "RequiredQuestVariables": [null, [37], null, null, null, null], + "Mount": true + }, + { + "DataId": 2003016, + "Position": { + "X": 185.19873, + "Y": 13.992493, + "Z": 231.89136 + }, + "TerritoryId": 146, + "InteractionType": "Interact", + "RequiredQuestVariables": [null, [52, 53], null, null, null, null], + "Mount": true + } + ] + }, { "Sequence": 255, "Steps": [ + { + "Position": { + "X": 30.256956, + "Y": 38.639523, + "Z": 145.03891 + }, + "TerritoryId": 146, + "InteractionType": "WalkTo", + "Mount": true + }, { "DataId": 1005551, "Position": { diff --git a/QuestPaths/2.x - A Realm Reborn/Allied Societies/Amalj'aa/Dailies/1235_Beacon Keepers.json b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Amalj'aa/Dailies/1235_Beacon Keepers.json index f489f265d..1cedb0edd 100644 --- a/QuestPaths/2.x - A Realm Reborn/Allied Societies/Amalj'aa/Dailies/1235_Beacon Keepers.json +++ b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Amalj'aa/Dailies/1235_Beacon Keepers.json @@ -1,6 +1,7 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "plogon_enjoyer", + "Disabled": true, "QuestSequence": [ { "Sequence": 0, -- 2.45.2 From 70a7d22afc0e73db177dd2ac6a5fa7437e5ae47d Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Sat, 23 Nov 2024 22:23:38 +0800 Subject: [PATCH 269/448] Added Crystalline Mean quest for Facet of Nourishing - Where We Belong --- .../3234_Where We Belong.json | 133 ++++++++++++++++++ 1 file changed, 133 insertions(+) create mode 100644 QuestPaths/5.x - Shadowbringers/Crystalline Mean Quests/Facet of Nourishing/3234_Where We Belong.json diff --git a/QuestPaths/5.x - Shadowbringers/Crystalline Mean Quests/Facet of Nourishing/3234_Where We Belong.json b/QuestPaths/5.x - Shadowbringers/Crystalline Mean Quests/Facet of Nourishing/3234_Where We Belong.json new file mode 100644 index 000000000..fca5a4c6b --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Crystalline Mean Quests/Facet of Nourishing/3234_Where We Belong.json @@ -0,0 +1,133 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "plogon_enjoyer", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1027235, + "Position": { + "X": -19.516357, + "Y": 20.186, + "Z": -130.1748 + }, + "TerritoryId": 819, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1028484, + "Position": { + "X": -129.35083, + "Y": 0, + "Z": -62.912964 + }, + "TerritoryId": 819, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Crystarium] The Crystalline Mean", + "[Crystarium] Temenos Rookery" + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1028484, + "Position": { + "X": -129.35083, + "Y": 0, + "Z": -62.912964 + }, + "TerritoryId": 819, + "InteractionType": "Say", + "ChatMessage": { + "Key": "TEXT_LUCKLA302_03234_SAYTODO_000_013" + } + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "TerritoryId": 819, + "InteractionType": "Craft", + "ItemId": 27253, + "ItemCount": 1 + }, + { + "DataId": 1030659, + "Position": { + "X": -131.15137, + "Y": 0, + "Z": -65.53754 + }, + "TerritoryId": 819, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1028485, + "Position": { + "X": -492.3934, + "Y": 69.70277, + "Z": 570.18384 + }, + "TerritoryId": 816, + "InteractionType": "Interact", + "AetheryteShortcut": "Il Mheg - Lydha Lran", + "Fly": true + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1028487, + "Position": { + "X": 337.84998, + "Y": 87.30014, + "Z": -710.65845 + }, + "TerritoryId": 816, + "InteractionType": "Interact", + "AetheryteShortcut": "Il Mheg - Wolekdorf", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1027235, + "Position": { + "X": -19.516357, + "Y": 20.186, + "Z": -130.1748 + }, + "TerritoryId": 819, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Crystarium", + "AethernetShortcut": [ + "[Crystarium] Aetheryte Plaza", + "[Crystarium] The Crystalline Mean" + ] + } + ] + } + ] +} -- 2.45.2 From ba54a1601c161e6adde8a47188d6c387d7047789 Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Sat, 23 Nov 2024 22:52:20 +0800 Subject: [PATCH 270/448] Added new quest "Healing Old Wounds" --- .../3235_Healing Old Wounds.json | 131 ++++++++++++++++++ 1 file changed, 131 insertions(+) create mode 100644 QuestPaths/5.x - Shadowbringers/Crystalline Mean Quests/Facet of Nourishing/3235_Healing Old Wounds.json diff --git a/QuestPaths/5.x - Shadowbringers/Crystalline Mean Quests/Facet of Nourishing/3235_Healing Old Wounds.json b/QuestPaths/5.x - Shadowbringers/Crystalline Mean Quests/Facet of Nourishing/3235_Healing Old Wounds.json new file mode 100644 index 000000000..8339a029c --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Crystalline Mean Quests/Facet of Nourishing/3235_Healing Old Wounds.json @@ -0,0 +1,131 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "plogon_enjoyer", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1027235, + "Position": { + "X": -19.516357, + "Y": 20.186, + "Z": -130.1748 + }, + "TerritoryId": 819, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1030659, + "Position": { + "X": -131.15137, + "Y": 0, + "Z": -65.53754 + }, + "TerritoryId": 819, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Crystarium] The Crystalline Mean", + "[Crystarium] Temenos Rookery" + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "TerritoryId": 819, + "InteractionType": "Craft", + "ItemId": 27255, + "ItemCount": 1 + }, + { + "DataId": 1030659, + "Position": { + "X": -131.15137, + "Y": 0, + "Z": -65.53754 + }, + "TerritoryId": 819, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1028489, + "Position": { + "X": 355.42847, + "Y": 3.8289368, + "Z": 224.17017 + }, + "TerritoryId": 813, + "InteractionType": "Interact", + "AetheryteShortcut": "Lakeland - Fort Jobb", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1028491, + "Position": { + "X": 29.251465, + "Y": 36.20521, + "Z": -207.38544 + }, + "TerritoryId": 819, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1030659, + "Position": { + "X": -131.15137, + "Y": 0, + "Z": -65.53754 + }, + "TerritoryId": 819, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Crystarium] The Amaro Launch", + "[Crystarium] Temenos Rookery" + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1027235, + "Position": { + "X": -19.516357, + "Y": 20.186, + "Z": -130.1748 + }, + "TerritoryId": 819, + "InteractionType": "CompleteQuest", + "AethernetShortcut": [ + "[Crystarium] Temenos Rookery", + "[Crystarium] The Crystalline Mean" + ] + } + ] + } + ] +} -- 2.45.2 From 260a9c1d30cf5028477c164f7f2bc40eb53dd415 Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Sat, 23 Nov 2024 23:13:37 +0800 Subject: [PATCH 271/448] Added the final quest for Facet of Crafting - The Notes of Bond Restoring --- .../3232_The Notes of Bond Restoring.json | 117 ++++++++++++++++++ 1 file changed, 117 insertions(+) create mode 100644 QuestPaths/5.x - Shadowbringers/Crystalline Mean Quests/Facet of Crafting/3232_The Notes of Bond Restoring.json diff --git a/QuestPaths/5.x - Shadowbringers/Crystalline Mean Quests/Facet of Crafting/3232_The Notes of Bond Restoring.json b/QuestPaths/5.x - Shadowbringers/Crystalline Mean Quests/Facet of Crafting/3232_The Notes of Bond Restoring.json new file mode 100644 index 000000000..15b7c2be5 --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Crystalline Mean Quests/Facet of Crafting/3232_The Notes of Bond Restoring.json @@ -0,0 +1,117 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "plogon_enjoyer", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1027234, + "Position": { + "X": 10.2387085, + "Y": 20.185999, + "Z": -138.2315 + }, + "TerritoryId": 819, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1028326, + "Position": { + "X": 10.940674, + "Y": 20.186, + "Z": -142.53455 + }, + "TerritoryId": 819, + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Prompt": "TEXT_LUCKLA203_03232_Q1_000_000", + "Type": "List", + "Answer": "TEXT_LUCKLA203_03232_A1_000_001" + } + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "TerritoryId": 819, + "InteractionType": "Craft", + "ItemId": 27247, + "ItemCount": 1 + }, + { + "DataId": 1027234, + "Position": { + "X": 10.2387085, + "Y": 20.185999, + "Z": -138.2315 + }, + "TerritoryId": 819, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1028438, + "Position": { + "X": -55.832825, + "Y": 3.9998174, + "Z": 198.6571 + }, + "TerritoryId": 819, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Crystarium] The Crystalline Mean", + "[Crystarium] Musica Universalis Markets" + ] + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1028438, + "Position": { + "X": -55.832825, + "Y": 3.9998174, + "Z": 198.6571 + }, + "TerritoryId": 819, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1027234, + "Position": { + "X": 10.2387085, + "Y": 20.185999, + "Z": -138.2315 + }, + "TerritoryId": 819, + "InteractionType": "CompleteQuest", + "AethernetShortcut": [ + "[Crystarium] Musica Universalis Markets", + "[Crystarium] The Crystalline Mean" + ] + } + ] + } + ] +} -- 2.45.2 From 61c160ecfb92edf53c9841a30269c5dc7a3b1ede Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sun, 24 Nov 2024 01:03:00 +0100 Subject: [PATCH 272/448] Add 'Where Worries Melt Away' --- .../4794_Where Worries Melt Away.json | 123 ++++++++++++++++++ 1 file changed, 123 insertions(+) create mode 100644 QuestPaths/6.x - Endwalker/Side Stories/Island Sanctuary/4794_Where Worries Melt Away.json diff --git a/QuestPaths/6.x - Endwalker/Side Stories/Island Sanctuary/4794_Where Worries Melt Away.json b/QuestPaths/6.x - Endwalker/Side Stories/Island Sanctuary/4794_Where Worries Melt Away.json new file mode 100644 index 000000000..a14406681 --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Side Stories/Island Sanctuary/4794_Where Worries Melt Away.json @@ -0,0 +1,123 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1044156, + "Position": { + "X": -276.3562, + "Y": 39.993896, + "Z": 224.26172 + }, + "TerritoryId": 1055, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2013553, + "Position": { + "X": -389.82227, + "Y": 3.250122, + "Z": 238.02539 + }, + "TerritoryId": 1055, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1046221, + "Position": { + "X": -303.12048, + "Y": 39.993896, + "Z": 244.80042 + }, + "TerritoryId": 1055, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1046279, + "Position": { + "X": -147.17328, + "Y": 48.330666, + "Z": 164.38538 + }, + "TerritoryId": 1055, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 1046281, + "Position": { + "X": -118.21167, + "Y": 91.550545, + "Z": 398.79456 + }, + "TerritoryId": 1055, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1046221, + "Position": { + "X": -303.12048, + "Y": 39.993896, + "Z": 244.80042 + }, + "TerritoryId": 1055, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1046284, + "Position": { + "X": -402.2431, + "Y": 1.7196094, + "Z": 226.4591 + }, + "StopDistance": 5, + "TerritoryId": 1055, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} -- 2.45.2 From 71a34e7b2121a3d00a73fa652e6e559a5e9084ac Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sun, 24 Nov 2024 03:18:33 +0100 Subject: [PATCH 273/448] Add 'Like Sire Like Fledgling' --- .../576_Like Sire Like Fledgling.json | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 QuestPaths/2.x - A Realm Reborn/Unlocks/Gold Saucer/576_Like Sire Like Fledgling.json diff --git a/QuestPaths/2.x - A Realm Reborn/Unlocks/Gold Saucer/576_Like Sire Like Fledgling.json b/QuestPaths/2.x - A Realm Reborn/Unlocks/Gold Saucer/576_Like Sire Like Fledgling.json new file mode 100644 index 000000000..10fa32ffd --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Unlocks/Gold Saucer/576_Like Sire Like Fledgling.json @@ -0,0 +1,37 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1011030, + "Position": { + "X": 7.522644, + "Y": -1.7667189E-06, + "Z": -68.589294 + }, + "TerritoryId": 388, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1010472, + "Position": { + "X": -53.26935, + "Y": 0.3093315, + "Z": 69.41321 + }, + "TerritoryId": 148, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Central Shroud - Bentbranch Meadows" + } + ] + } + ] +} -- 2.45.2 From dad21274efdba84e47b76e027d922adaf4da211a Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Sun, 24 Nov 2024 17:44:05 +0800 Subject: [PATCH 274/448] Added the following quests: - Shadow Walk with Me - Safekeeping --- .../Role Quests/3629_Shadow Walk with Me.json | 163 ++++++++++++++++++ .../Role Quests/3985_Safekeeping.json | 67 +++++++ 2 files changed, 230 insertions(+) create mode 100644 QuestPaths/5.x - Shadowbringers/Role Quests/3629_Shadow Walk with Me.json create mode 100644 QuestPaths/5.x - Shadowbringers/Role Quests/3985_Safekeeping.json diff --git a/QuestPaths/5.x - Shadowbringers/Role Quests/3629_Shadow Walk with Me.json b/QuestPaths/5.x - Shadowbringers/Role Quests/3629_Shadow Walk with Me.json new file mode 100644 index 000000000..0f96118a0 --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Role Quests/3629_Shadow Walk with Me.json @@ -0,0 +1,163 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "plogon_enjoyer", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1027322, + "Position": { + "X": -20.126648, + "Y": 3.9998171, + "Z": 204.24194 + }, + "TerritoryId": 819, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1030831, + "Position": { + "X": 26.260742, + "Y": 35.999687, + "Z": -129.2287 + }, + "TerritoryId": 819, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Crystarium] Musica Universalis Markets", + "[Crystarium] The Amaro Launch" + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1030832, + "Position": { + "X": 171.8623, + "Y": 33.4924, + "Z": 185.77856 + }, + "TerritoryId": 814, + "InteractionType": "Interact", + "AetheryteShortcut": "Kholusia - Wright", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1030833, + "Position": { + "X": 340.90173, + "Y": -35.861984, + "Z": 74.23511 + }, + "TerritoryId": 815, + "InteractionType": "Interact", + "AetheryteShortcut": "Amh Araeng - Inn at Journey's Head", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1030834, + "Position": { + "X": -185.13776, + "Y": 11.4709015, + "Z": 608.57544 + }, + "TerritoryId": 817, + "InteractionType": "Interact", + "AetheryteShortcut": "Rak'tika - Slitherbough", + "Fly": true + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1030835, + "Position": { + "X": -67.826416, + "Y": 105.29415, + "Z": -252.94885 + }, + "TerritoryId": 816, + "InteractionType": "Interact", + "AetheryteShortcut": "Il Mheg - Wolekdorf", + "Fly": true + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1030836, + "Position": { + "X": -456.59576, + "Y": 417.12573, + "Z": -597.16187 + }, + "TerritoryId": 814, + "InteractionType": "Interact", + "AetheryteShortcut": "Kholusia - Tomra", + "Fly": true + } + ] + }, + { + "Sequence": 7, + "Steps": [ + { + "DataId": 2010361, + "Position": { + "X": 55.61914, + "Y": 165.42297, + "Z": -302.66272 + }, + "TerritoryId": 813, + "InteractionType": "Interact", + "AetheryteShortcut": "Lakeland - Fort Jobb", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1030837, + "Position": { + "X": -25.92511, + "Y": 3.9998174, + "Z": 205.12695 + }, + "TerritoryId": 819, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Crystarium", + "AethernetShortcut": [ + "[Crystarium] Aetheryte Plaza", + "[Crystarium] Musica Universalis Markets" + ], + "NextQuestId": 3985 + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Role Quests/3985_Safekeeping.json b/QuestPaths/5.x - Shadowbringers/Role Quests/3985_Safekeeping.json new file mode 100644 index 000000000..c6f6c76a5 --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Role Quests/3985_Safekeeping.json @@ -0,0 +1,67 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "plogon_enjoyer", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1030837, + "Position": { + "X": -25.92511, + "Y": 3.9998174, + "Z": 205.12695 + }, + "TerritoryId": 819, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1031533, + "Position": { + "X": -26.657532, + "Y": 3.999815, + "Z": 209.88782 + }, + "TerritoryId": 819, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1030643, + "Position": { + "X": -0.16790771, + "Y": 3.9998174, + "Z": 201.9226 + }, + "TerritoryId": 819, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1030837, + "Position": { + "X": -25.92511, + "Y": 3.9998174, + "Z": 205.12695 + }, + "TerritoryId": 819, + "InteractionType": "CompleteQuest", + "NextQuestId": 3986 + } + ] + } + ] +} -- 2.45.2 From 3c1677b5063b2bc5ef2157cb639360cb9cf30e35 Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Sun, 24 Nov 2024 18:47:22 +0800 Subject: [PATCH 275/448] Added the following quests: - The Hero's Journey - One Step Closer - A Bounty of Hunters --- .../Void Quests/3986_The Hero's Journey.json | 143 ++++++++++++++++++ .../Void Quests/3987_One Step Closer.json | 132 ++++++++++++++++ .../Void Quests/3988_A Bounty of Hunters.json | 103 +++++++++++++ 3 files changed, 378 insertions(+) create mode 100644 QuestPaths/5.x - Shadowbringers/Side Quests/Void Quests/3986_The Hero's Journey.json create mode 100644 QuestPaths/5.x - Shadowbringers/Side Quests/Void Quests/3987_One Step Closer.json create mode 100644 QuestPaths/5.x - Shadowbringers/Side Quests/Void Quests/3988_A Bounty of Hunters.json diff --git a/QuestPaths/5.x - Shadowbringers/Side Quests/Void Quests/3986_The Hero's Journey.json b/QuestPaths/5.x - Shadowbringers/Side Quests/Void Quests/3986_The Hero's Journey.json new file mode 100644 index 000000000..b9cd91354 --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Side Quests/Void Quests/3986_The Hero's Journey.json @@ -0,0 +1,143 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "plogon_enjoyer", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1030837, + "Position": { + "X": -25.92511, + "Y": 3.9998174, + "Z": 205.12695 + }, + "TerritoryId": 819, + "InteractionType": "AcceptQuest", + "DialogueChoices": [ + { + "Prompt": "TEXT_LUCKUN001_03986_Q1_000_000", + "Type": "List", + "Answer": "TEXT_LUCKUN001_03986_A1_000_001" + } + ] + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2002881, + "Position": { + "X": 21.133728, + "Y": 22.323914, + "Z": -631.281 + }, + "TerritoryId": 156, + "InteractionType": "Interact", + "AetheryteShortcut": "Mor Dhona", + "TargetTerritoryId": 351 + }, + { + "DataId": 2002878, + "Position": { + "X": -0.015319824, + "Y": -1.0223389, + "Z": -26.779602 + }, + "TerritoryId": 351, + "InteractionType": "Interact", + "TargetTerritoryId": 351 + }, + { + "DataId": 1014565, + "Position": { + "X": 0.44250488, + "Y": -1.9957249, + "Z": -43.22882 + }, + "TerritoryId": 351, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2011294, + "Position": { + "X": 1.9683228, + "Y": -1.9990234, + "Z": -42.343872 + }, + "TerritoryId": 351, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1033908, + "Position": { + "X": -63.61493, + "Y": -17.722, + "Z": -264.75934 + }, + "TerritoryId": 819, + "InteractionType": "Interact", + "AetheryteShortcut": "Crystarium", + "AethernetShortcut": [ + "[Crystarium] Aetheryte Plaza", + "[Crystarium] The Cabinet of Curiosity" + ], + "DialogueChoices": [ + { + "Prompt": "TEXT_LUCKUN001_03986_Q3_000_000", + "Type": "List", + "Answer": "TEXT_LUCKUN001_03986_A3_000_001" + } + ] + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1030837, + "Position": { + "X": -25.92511, + "Y": 3.9998174, + "Z": 205.12695 + }, + "TerritoryId": 819, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Crystarium] The Cabinet of Curiosity", + "[Crystarium] Musica Universalis Markets" + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1030644, + "Position": { + "X": -0.5036011, + "Y": 3.9998171, + "Z": 200.57983 + }, + "TerritoryId": 819, + "InteractionType": "CompleteQuest", + "NextQuestId": 3987 + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Side Quests/Void Quests/3987_One Step Closer.json b/QuestPaths/5.x - Shadowbringers/Side Quests/Void Quests/3987_One Step Closer.json new file mode 100644 index 000000000..c0cddef38 --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Side Quests/Void Quests/3987_One Step Closer.json @@ -0,0 +1,132 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "plogon_enjoyer", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1035281, + "Position": { + "X": -1.1444702, + "Y": 3.9998174, + "Z": 199.6947 + }, + "TerritoryId": 819, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1035282, + "Position": { + "X": 660.82227, + "Y": 14.620537, + "Z": 216.32703 + }, + "TerritoryId": 813, + "InteractionType": "Interact", + "AetheryteShortcut": "Lakeland - Fort Jobb", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": 652.8607, + "Y": 14.622499, + "Z": 222.77487 + }, + "TerritoryId": 813, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [12662] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1035632, + "Position": { + "X": 659.8153, + "Y": 14.620948, + "Z": 215.77783 + }, + "TerritoryId": 813, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "Position": { + "X": 652.62976, + "Y": 14.622499, + "Z": 223.06616 + }, + "TerritoryId": 813, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [12663] + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1035283, + "Position": { + "X": 659.8153, + "Y": 14.620948, + "Z": 215.77783 + }, + "TerritoryId": 813, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "Position": { + "X": 652.4463, + "Y": 14.6225, + "Z": 222.89134 + }, + "TerritoryId": 813, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [12664] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1035283, + "Position": { + "X": 659.8153, + "Y": 14.620948, + "Z": 215.77783 + }, + "TerritoryId": 813, + "InteractionType": "CompleteQuest", + "NextQuestId": 3988 + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Side Quests/Void Quests/3988_A Bounty of Hunters.json b/QuestPaths/5.x - Shadowbringers/Side Quests/Void Quests/3988_A Bounty of Hunters.json new file mode 100644 index 000000000..1450603dc --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Side Quests/Void Quests/3988_A Bounty of Hunters.json @@ -0,0 +1,103 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "plogon_enjoyer", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1035283, + "Position": { + "X": 659.8153, + "Y": 14.620948, + "Z": 215.77783 + }, + "TerritoryId": 813, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1035287, + "Position": { + "X": 9.231689, + "Y": 195.68256, + "Z": -312.70312 + }, + "TerritoryId": 813, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": 2.5688472, + "Y": 195.76323, + "Z": -300.17883 + }, + "TerritoryId": 813, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [12665] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1035290, + "Position": { + "X": 10.940674, + "Y": 195.68256, + "Z": -313.89337 + }, + "TerritoryId": 813, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 2011298, + "Position": { + "X": 2.5689, + "Y": 195.7632, + "Z": -300.4041 + }, + "TerritoryId": 813, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1030643, + "Position": { + "X": -0.16790771, + "Y": 3.9998174, + "Z": 201.9226 + }, + "TerritoryId": 819, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Crystarium", + "AethernetShortcut": [ + "[Crystarium] Aetheryte Plaza", + "[Crystarium] Musica Universalis Markets" + ] + } + ] + } + ] +} -- 2.45.2 From 745b1c4390a791d924a7f822c09dcffad3d9914c Mon Sep 17 00:00:00 2001 From: pot0to <19513249+pot0to@users.noreply.github.com> Date: Sun, 24 Nov 2024 18:53:19 -0800 Subject: [PATCH 276/448] adding a few random quests --- .../BRD/1086_The Archer's Anthem.json | 21 + .../SCH/1127_A Relic Reborn (Omnilex).json | 453 ++++++++++++++++++ .../Story/4686_Dreams Come True.json | 102 ++++ 3 files changed, 576 insertions(+) create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/SCH/1127_A Relic Reborn (Omnilex).json create mode 100644 QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Story/4686_Dreams Come True.json diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/1086_The Archer's Anthem.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/1086_The Archer's Anthem.json index cced87949..c0141d7ff 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/1086_The Archer's Anthem.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/1086_The Archer's Anthem.json @@ -36,6 +36,27 @@ { "Sequence": 1, "Steps": [ + { + "Position": { + "X": 570.48596, + "Y": 96.46625, + "Z": -526.59546 + }, + "TerritoryId": 135, + "TargetTerritoryId": 137, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Limsa Lominsa", + "Fly": true, + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] Tempest Gate (Lower La Noscea)" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "AetheryteUnlocked": "Eastern La Noscea - Wineport" + } + } + }, { "DataId": 2002366, "Position": { diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/SCH/1127_A Relic Reborn (Omnilex).json b/QuestPaths/2.x - A Realm Reborn/Class Quests/SCH/1127_A Relic Reborn (Omnilex).json new file mode 100644 index 000000000..7432d8d73 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/SCH/1127_A Relic Reborn (Omnilex).json @@ -0,0 +1,453 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "pot0to", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1003075, + "Position": { + "X": 440.7262, + "Y": -0.9374562, + "Z": -62.21112 + }, + "TerritoryId": 154, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "North Shroud - Fallgourd Float", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2002499, + "Position": { + "X": -319.17297, + "Y": -36.636963, + "Z": -278.73657 + }, + "TerritoryId": 138, + "InteractionType": "Interact", + "AetheryteShortcut": "Western La Noscea - Aleport", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1003075, + "Position": { + "X": 440.7262, + "Y": -0.9374562, + "Z": -62.21112 + }, + "TerritoryId": 154, + "InteractionType": "Interact", + "AetheryteShortcut": "North Shroud - Fallgourd Float", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1003075, + "Position": { + "X": 440.7262, + "Y": -0.9374562, + "Z": -62.21112 + }, + "TerritoryId": 154, + "Fly": true, + "InteractionType": "WaitForManualProgress", + "Comment": "Craft/purchase off marketboard an erudite's picatrix of healing and meld 2 grade 3 quicktongue materia to it." + }, + { + "DataId": 1003075, + "Position": { + "X": 440.7262, + "Y": -0.9374562, + "Z": -62.21112 + }, + "InteractionType": "Interact", + "TerritoryId": 154, + "AetheryteShortcut": "North Shroud - Fallgourd Float", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "TerritoryId": 154, + "Fly": true, + "InteractionType": "Duty", + "ContentFinderConditionId": 74, + "Comment": "Queue for A Relic Reborn: The Chimera" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "Position": { + "X": 437.6279, + "Y": -3.1627378, + "Z": -67.35514 + }, + "TerritoryId": 154, + "InteractionType": "WalkTo", + "Fly": true, + "AetheryteShortcut": "North Shroud - Fallgourd Float", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + }, + { + "DataId": 1003075, + "Position": { + "X": 440.7262, + "Y": -0.9374562, + "Z": -62.21112 + }, + "TerritoryId": 154, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1001304, + "Position": { + "X": 25.589355, + "Y": 29, + "Z": -825.37573 + }, + "TerritoryId": 156, + "InteractionType": "Interact", + "Fly": true, + "AetheryteShortcut": "Mor Dhona", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 7, + "Steps": [ + { + "TerritoryId": 154, + "Fly": true, + "InteractionType": "Duty", + "ContentFinderConditionId": 14, + "Comment": "Queue for Amdapor Keep" + } + ] + }, + { + "Sequence": 8, + "Steps": [ + { + "DataId": 1001304, + "Position": { + "X": 25.589355, + "Y": 29, + "Z": -825.37573 + }, + "TerritoryId": 156, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 9, + "Steps": [ + { + "Position": { + "X": 437.6279, + "Y": -3.1627378, + "Z": -67.35514 + }, + "TerritoryId": 154, + "InteractionType": "WalkTo", + "Fly": true, + "AetheryteShortcut": "North Shroud - Fallgourd Float", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + }, + { + "DataId": 1003075, + "Position": { + "X": 440.7262, + "Y": -0.9374562, + "Z": -62.21112 + }, + "TerritoryId": 154, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 10, + "Steps": [ + { + "InteractionType": "EquipItem", + "ItemId": 2192, + "TerritoryId": 138, + "AetheryteShortcut": "Western La Noscea - Aleport", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + }, + { + "DataId": 768, + "Position": { + "X": -317.9305, + "Y": -39.35494, + "Z": -298.3956 + }, + "TerritoryId": 138, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "KillEnemyDataIds": [ + 766, + 767, + 768 + ], + "CompletionQuestVariablesFlags": [ + { + "Low": 8 + }, + { + "High": 8, + "Low": 8 + }, + null, + null, + null, + null + ], + "Fly": true + } + ] + }, + { + "Sequence": 11, + "Steps": [ + { + "Position": { + "X": 437.6279, + "Y": -3.1627378, + "Z": -67.35514 + }, + "TerritoryId": 154, + "InteractionType": "WalkTo", + "Fly": true, + "AetheryteShortcut": "North Shroud - Fallgourd Float", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + }, + { + "DataId": 1003075, + "Position": { + "X": 440.7262, + "Y": -0.9374562, + "Z": -62.21112 + }, + "TerritoryId": 154, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 12, + "Steps": [ + { + "TerritoryId": 154, + "InteractionType": "Duty", + "ContentFinderConditionId": 75, + "Comment": "Queue for A Relic Reborn: The Hydra" + } + ] + }, + { + "Sequence": 13, + "Steps": [ + { + "Position": { + "X": 437.6279, + "Y": -3.1627378, + "Z": -67.35514 + }, + "TerritoryId": 154, + "InteractionType": "WalkTo", + "Fly": true, + "AetheryteShortcut": "North Shroud - Fallgourd Float", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + }, + { + "DataId": 1003075, + "Position": { + "X": 440.7262, + "Y": -0.9374562, + "Z": -62.21112 + }, + "TerritoryId": 154, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 14, + "Steps": [ + { + "TerritoryId": 154, + "InteractionType": "EquipRecommended" + }, + { + "DataId": 1003075, + "Position": { + "X": 440.7262, + "Y": -0.9374562, + "Z": -62.21112 + }, + "TerritoryId": 154, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 15, + "Steps": [ + { + "TerritoryId": 154, + "InteractionType": "Duty", + "ContentFinderConditionId": 59 + } + ] + }, + { + "Sequence": 16, + "Steps": [ + { + "TerritoryId": 154, + "InteractionType": "Duty", + "ContentFinderConditionId": 61 + } + ] + }, + { + "Sequence": 17, + "Steps": [ + { + "TerritoryId": 154, + "InteractionType": "Duty", + "ContentFinderConditionId": 60 + } + ] + }, + { + "Sequence": 18, + "Steps": [ + { + "DataId": 1003075, + "Position": { + "X": 440.7262, + "Y": -0.9374562, + "Z": -62.21112 + }, + "TerritoryId": 154, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1008119, + "Position": { + "X": 62.333008, + "Y": 31.28805, + "Z": -739.98627 + }, + "TerritoryId": 156, + "InteractionType": "PurchaseItem", + "ItemId": 6267, + "ItemCount": 1, + "AetheryteShortcut": "Mor Dhona", + "SkipConditions": { + "StepIf": { + "Item": { + "NotInInventory": false + } + } + } + }, + { + "Position": { + "X": 437.6279, + "Y": -3.1627378, + "Z": -67.35514 + }, + "TerritoryId": 154, + "InteractionType": "WalkTo", + "Fly": true, + "AetheryteShortcut": "North Shroud - Fallgourd Float", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + }, + { + "DataId": 1003075, + "Position": { + "X": 440.7262, + "Y": -0.9374562, + "Z": -62.21112 + }, + "TerritoryId": 154, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} \ No newline at end of file diff --git a/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Story/4686_Dreams Come True.json b/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Story/4686_Dreams Come True.json new file mode 100644 index 000000000..c99658e4a --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Story/4686_Dreams Come True.json @@ -0,0 +1,102 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "pot0to", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1044402, + "Position": { + "X": -193.89642, + "Y": -49.19972, + "Z": -262.13477 + }, + "TerritoryId": 959, + "InteractionType": "AcceptQuest", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1044404, + "Position": { + "X": -203.5401, + "Y": -48.949738, + "Z": -280.232 + }, + "TerritoryId": 959, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1044406, + "Position": { + "X": -174.63953, + "Y": -49.149708, + "Z": -248.67633 + }, + "TerritoryId": 959, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1044407, + "Position": { + "X": -196.49048, + "Y": -48.874695, + "Z": -301.01477 + }, + "TerritoryId": 959, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1044414, + "Position": { + "X": -170.79425, + "Y": -48.89972, + "Z": -282.18512 + }, + "TerritoryId": 959, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1044402, + "Position": { + "X": -193.89642, + "Y": -49.19972, + "Z": -262.13477 + }, + "TerritoryId": 959, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} \ No newline at end of file -- 2.45.2 From 59f3ae6c21709bb254500dd6d697b85a7ee831c2 Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Mon, 25 Nov 2024 20:49:42 +0800 Subject: [PATCH 277/448] Added new daily quest - Tale of Roe --- .../Kojin/Dailies/2998_Tale of Roe.json | 180 ++++++++++++++++++ .../Kojin/Dailies/2998_Tale of Roe.md | 10 + 2 files changed, 190 insertions(+) create mode 100644 QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2998_Tale of Roe.json create mode 100644 QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2998_Tale of Roe.md diff --git a/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2998_Tale of Roe.json b/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2998_Tale of Roe.json new file mode 100644 index 000000000..12ae83681 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2998_Tale of Roe.json @@ -0,0 +1,180 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "plogon_enjoyer", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1024217, + "Position": { + "X": 394.39978, + "Y": -119.58932, + "Z": -232.28815 + }, + "TerritoryId": 613, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "TerritoryId": 613, + "InteractionType": "None", + "AetheryteShortcut": "Kugane", + "AethernetShortcut": [ + "[Kugane] Aetheryte Plaza", + "[Kugane] The Ruby Price" + ] + }, + { + "DataId": 2009100, + "Position": { + "X": 394.7661, + "Y": 16.983276, + "Z": 845.9448 + }, + "TerritoryId": 613, + "InteractionType": "Combat", + "EnemySpawnType": "AfterItemUse", + "ItemId": 2002419, + "KillEnemyDataIds": [8242], + "RequiredQuestVariables": [ + null, + null, + null, + null, + [48, 80, 112, 128], + null + ], + "Fly": true + }, + { + "DataId": 2009101, + "Position": { + "X": 460.99023, + "Y": 0.56451416, + "Z": 889.494 + }, + "TerritoryId": 613, + "InteractionType": "Combat", + "EnemySpawnType": "AfterItemUse", + "ItemId": 2002419, + "KillEnemyDataIds": [8242], + "RequiredQuestVariables": [ + null, + null, + null, + null, + [16, 32, 128], + null + ], + "Fly": true + }, + { + "DataId": 2009142, + "Position": { + "X": 480.4607, + "Y": 3.829956, + "Z": 841.3672 + }, + "TerritoryId": 613, + "InteractionType": "Combat", + "EnemySpawnType": "AfterItemUse", + "ItemId": 2002419, + "KillEnemyDataIds": [8242], + "RequiredQuestVariables": [ + null, + null, + null, + null, + [16, 64, 80, 96], + null + ], + "Fly": true + }, + { + "DataId": 2009140, + "Position": { + "X": 543.1753, + "Y": -0.015319824, + "Z": 685.7251 + }, + "TerritoryId": 613, + "InteractionType": "Combat", + "EnemySpawnType": "AfterItemUse", + "ItemId": 2002419, + "KillEnemyDataIds": [8243, 8243], + "RequiredQuestVariables": [null, null, null, null, [96, 112], null], + "Fly": true + }, + { + "DataId": 2009141, + "Position": { + "X": 352.1018, + "Y": -0.015319824, + "Z": 860.31885 + }, + "TerritoryId": 613, + "InteractionType": "Combat", + "EnemySpawnType": "AfterItemUse", + "ItemId": 2002419, + "KillEnemyDataIds": [8243, 8243], + "RequiredQuestVariables": [ + null, + null, + null, + null, + [32, 48, 64], + null + ], + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1024317, + "Position": { + "X": 823.3004, + "Y": 5.9230013, + "Z": 866.6361 + }, + "TerritoryId": 613, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": 392.59683, + "Y": -119.589325, + "Z": -234.30063 + }, + "TerritoryId": 613, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Ruby Sea - Tamamizu", + "Fly": true + }, + { + "DataId": 1024217, + "Position": { + "X": 394.39978, + "Y": -119.58932, + "Z": -232.28815 + }, + "TerritoryId": 613, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2998_Tale of Roe.md b/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2998_Tale of Roe.md new file mode 100644 index 000000000..3a69c6394 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/2998_Tale of Roe.md @@ -0,0 +1,10 @@ +0 0 0 0 xxx 0 | 2009100 2009101 2009140 2009141 2009142 + 16 x x + 32 x x + 48 x x + 64 x x + 80 x x + 96 x x + 112 x x + 128 x x + -- 2.45.2 From e84b5ad6651ab01014e7921194a6a7187ae086b9 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Mon, 25 Nov 2024 16:53:37 +0100 Subject: [PATCH 278/448] Rework the mount/allied society quest logic --- Questionable/Controller/Steps/QuestCleanUp.cs | 71 +++++++++++++++++++ Questionable/Functions/QuestFunctions.cs | 1 - Questionable/QuestionablePlugin.cs | 1 + 3 files changed, 72 insertions(+), 1 deletion(-) create mode 100644 Questionable/Controller/Steps/QuestCleanUp.cs diff --git a/Questionable/Controller/Steps/QuestCleanUp.cs b/Questionable/Controller/Steps/QuestCleanUp.cs new file mode 100644 index 000000000..b3cd5b503 --- /dev/null +++ b/Questionable/Controller/Steps/QuestCleanUp.cs @@ -0,0 +1,71 @@ +using System.Collections.Generic; +using System.Linq; +using Microsoft.Extensions.Logging; +using Questionable.Controller.Steps.Shared; +using Questionable.Data; +using Questionable.Functions; +using Questionable.Model; +using Questionable.Model.Common; +using Questionable.Model.Questing; + +namespace Questionable.Controller.Steps; + +internal static class QuestCleanUp +{ + private static readonly Dictionary AlliedSocietyMountConfiguration = new() + { + { 369, new(1051798, EAetheryteLocation.KozamaukaDockPoga) } + }; + + internal sealed class CheckAlliedSocietyMount(GameFunctions gameFunctions, AetheryteData aetheryteData, ILogger logger) : SimpleTaskFactory + { + public override ITask? CreateTask(Quest quest, QuestSequence sequence, QuestStep step) + { + if (sequence.Sequence == 0) + return null; + + // if you are on a allied society mount + if (gameFunctions.GetMountId() is { } mountId && + AlliedSocietyMountConfiguration.TryGetValue(mountId, out var mountConfiguration)) + { + logger.LogInformation("We are on a known allied society mount with id = {MountId}", mountId); + + // it doesn't particularly matter if we teleport to the same aetheryte twice in the same quest step, as + // the second (normal) teleport instance should detect that we're within range and not do anything + var targetAetheryte = step.AetheryteShortcut ?? mountConfiguration.ClosestAetheryte; + var teleportTask = new AetheryteShortcut.Task(null, quest.Id, targetAetheryte, aetheryteData.TerritoryIds[targetAetheryte]); + + // turn-in step can never be done while mounted on an allied society mount + if (sequence.Sequence == 255) + { + logger.LogInformation("Mount can't be used to finish quest, teleporting to {Aetheryte}", mountConfiguration.ClosestAetheryte); + return teleportTask; + } + + // if the quest uses no mount actions, that's not a mount quest + if (!quest.AllSteps().Any(x => x.Step.Action is { } action && action.RequiresMount())) + { + logger.LogInformation("Quest doesn't use any mount actions, teleporting to {Aetheryte}", mountConfiguration.ClosestAetheryte); + return teleportTask; + } + + // have any of the previous sequences interacted with the issuer? + var previousSequences = + quest.AllSequences() + .Where(x => x.Sequence > 0 // quest accept doesn't ever put us into a mount + && x.Sequence < sequence.Sequence) + .ToList(); + if (previousSequences.SelectMany(x => x.Steps).All(x => x.DataId != mountConfiguration.IssuerDataId)) + { + // this quest hasn't given us a mount yet + logger.LogInformation("Haven't talked to mount NPC for this allied society quest; {Aetheryte}", mountConfiguration.ClosestAetheryte); + return teleportTask; + } + } + + return null; + } + } + + private sealed record MountConfiguration(uint IssuerDataId, EAetheryteLocation ClosestAetheryte); +} diff --git a/Questionable/Functions/QuestFunctions.cs b/Questionable/Functions/QuestFunctions.cs index dc507a0a3..1ef56c4e4 100644 --- a/Questionable/Functions/QuestFunctions.cs +++ b/Questionable/Functions/QuestFunctions.cs @@ -243,7 +243,6 @@ internal sealed unsafe class QuestFunctions { return questId.Value switch { - 5215 => EAlliedSociety.None, >= 5199 and <= 5226 => EAlliedSociety.Pelupelu, _ => EAlliedSociety.None, }; diff --git a/Questionable/QuestionablePlugin.cs b/Questionable/QuestionablePlugin.cs index 8cc59d16e..7b17db4c0 100644 --- a/Questionable/QuestionablePlugin.cs +++ b/Questionable/QuestionablePlugin.cs @@ -133,6 +133,7 @@ public sealed class QuestionablePlugin : IDalamudPlugin private static void AddTaskFactories(ServiceCollection serviceCollection) { // individual tasks + serviceCollection.AddTaskFactory(); serviceCollection .AddTaskExecutor(); serviceCollection.AddTaskExecutor(); -- 2.45.2 From 422a98cc1ce99e9902a3c994b37d5329d12761f6 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Mon, 25 Nov 2024 18:24:22 +0100 Subject: [PATCH 279/448] Add remaining Honored Pelupelu quests --- .../5220_Bird Meat's Back on the Menu.json | 132 +++++++++++++++++- .../Dailies/5221_A Sympathetic Ear.json | 30 +++- .../Dailies/5222_Worth the Weight.json | 76 +++++++++- .../Dailies/5226_Animal Friendship.json | 48 ++++++- 4 files changed, 280 insertions(+), 6 deletions(-) diff --git a/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5220_Bird Meat's Back on the Menu.json b/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5220_Bird Meat's Back on the Menu.json index f7b53cd4a..2b8dc5b7a 100644 --- a/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5220_Bird Meat's Back on the Menu.json +++ b/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5220_Bird Meat's Back on the Menu.json @@ -1,7 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", - "Disabled": true, "QuestSequence": [ { "Sequence": 0, @@ -28,6 +27,122 @@ } ] }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2014504, + "Position": { + "X": -232.22711, + "Y": 120.25635, + "Z": 26.199707 + }, + "TerritoryId": 1188, + "InteractionType": "Combat", + "EnemySpawnType": "AfterItemUse", + "ItemId": 2003727, + "KillEnemyDataIds": [ + 18176 + ], + "AetheryteShortcut": "Kozama'uka - Earthenshire", + "Fly": true, + "RequiredQuestVariables": [ + null, + null, + null, + [ + { + "High": 1 + } + ], + null, + null + ] + }, + { + "DataId": 2014503, + "Position": { + "X": -134.29468, + "Y": 120.62256, + "Z": 41.000854 + }, + "TerritoryId": 1188, + "InteractionType": "Combat", + "EnemySpawnType": "AfterItemUse", + "ItemId": 2003727, + "KillEnemyDataIds": [ + 18176 + ], + "Fly": true, + "RequiredQuestVariables": [ + null, + null, + null, + [ + { + "High": 2 + } + ], + null, + null + ] + }, + { + "DataId": 2014505, + "Position": { + "X": -292.28656, + "Y": 119.46289, + "Z": 17.959839 + }, + "TerritoryId": 1188, + "InteractionType": "Combat", + "EnemySpawnType": "AfterItemUse", + "ItemId": 2003727, + "KillEnemyDataIds": [ + 18176 + ], + "Fly": true, + "RequiredQuestVariables": [ + null, + null, + null, + [ + { + "High": 3 + } + ], + null, + null + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": 746.76465, + "Y": 15.431515, + "Z": -201.92921 + }, + "TerritoryId": 1188, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Kozama'uka - Dock Poga" + }, + { + "DataId": 1051741, + "Position": { + "X": 744.19763, + "Y": 15.431515, + "Z": -199.17603 + }, + "StopDistance": 7, + "TerritoryId": 1188, + "InteractionType": "Interact" + } + ] + }, { "Sequence": 255, "Steps": [ @@ -39,7 +154,20 @@ }, "TerritoryId": 1188, "InteractionType": "WalkTo", - "AetheryteShortcut": "Kozama'uka - Dock Poga" + "AetheryteShortcut": "Kozama'uka - Dock Poga", + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": 770.7179, + "Y": 12.84657, + "Z": -263.99634 + }, + "TerritoryId": 1188, + "MaximumDistance": 300 + } + } + } }, { "DataId": 1051711, diff --git a/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5221_A Sympathetic Ear.json b/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5221_A Sympathetic Ear.json index f7b53cd4a..9a7239041 100644 --- a/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5221_A Sympathetic Ear.json +++ b/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5221_A Sympathetic Ear.json @@ -1,7 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", - "Disabled": true, "QuestSequence": [ { "Sequence": 0, @@ -28,6 +27,35 @@ } ] }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1052337, + "Position": { + "X": 479.14844, + "Y": 113.54922, + "Z": 175.37183 + }, + "TerritoryId": 1188, + "InteractionType": "Interact", + "AetheryteShortcut": "Kozama'uka - Many Fires", + "Fly": true, + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_BANPEL123_05221_Q1_000_000", + "Answer": "TEXT_BANPEL123_05221_A1_000_003" + }, + { + "Type": "List", + "Prompt": "TEXT_BANPEL123_05221_Q2_000_000", + "Answer": "TEXT_BANPEL123_05221_A2_000_002" + } + ] + } + ] + }, { "Sequence": 255, "Steps": [ diff --git a/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5222_Worth the Weight.json b/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5222_Worth the Weight.json index f7b53cd4a..0adcb9522 100644 --- a/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5222_Worth the Weight.json +++ b/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5222_Worth the Weight.json @@ -1,7 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", - "Disabled": true, "QuestSequence": [ { "Sequence": 0, @@ -28,6 +27,66 @@ } ] }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1052339, + "Position": { + "X": 910.3379, + "Y": 10.1397, + "Z": -381.36877 + }, + "TerritoryId": 1188, + "InteractionType": "Interact", + "Fly": true, + "AetheryteShortcut": "Kozama'uka - Dock Poga", + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": 770.7179, + "Y": 12.84657, + "Z": -263.99634 + }, + "TerritoryId": 1188, + "MaximumDistance": 300 + } + } + } + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2014506, + "Position": { + "X": 910.3379, + "Y": 10.421875, + "Z": -379.01886 + }, + "TerritoryId": 1188, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1052340, + "Position": { + "X": 789.9137, + "Y": 14.354868, + "Z": -215.77783 + }, + "TerritoryId": 1188, + "InteractionType": "Interact" + } + ] + }, { "Sequence": 255, "Steps": [ @@ -39,7 +98,20 @@ }, "TerritoryId": 1188, "InteractionType": "WalkTo", - "AetheryteShortcut": "Kozama'uka - Dock Poga" + "AetheryteShortcut": "Kozama'uka - Dock Poga", + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": 770.7179, + "Y": 12.84657, + "Z": -263.99634 + }, + "TerritoryId": 1188, + "MaximumDistance": 300 + } + } + } }, { "DataId": 1051711, diff --git a/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5226_Animal Friendship.json b/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5226_Animal Friendship.json index f7b53cd4a..767c822b4 100644 --- a/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5226_Animal Friendship.json +++ b/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Dailies/5226_Animal Friendship.json @@ -1,7 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", - "Disabled": true, "QuestSequence": [ { "Sequence": 0, @@ -28,6 +27,53 @@ } ] }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1051798, + "Position": { + "X": 897.734, + "Y": 6.8223433, + "Z": -285.1759 + }, + "TerritoryId": 1188, + "InteractionType": "Interact", + "Fly": true, + "AetheryteShortcut": "Kozama'uka - Dock Poga", + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": 770.7179, + "Y": 12.84657, + "Z": -263.99634 + }, + "TerritoryId": 1188, + "MaximumDistance": 300 + } + } + } + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1052345, + "Position": { + "X": 908.50684, + "Y": 5.7142797, + "Z": -337.85004 + }, + "TerritoryId": 1188, + "InteractionType": "Action", + "Action": "Bosom Brook", + "Fly": true + } + ] + }, { "Sequence": 255, "Steps": [ -- 2.45.2 From f51a51c5476f30a0e51724c8d816f358132d43a0 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Mon, 25 Nov 2024 18:24:46 +0100 Subject: [PATCH 280/448] Fix when context menu appears when right-clicking satisfaction NPC menus --- .../Controller/ContextMenuController.cs | 34 +++++++++++++++++-- 1 file changed, 31 insertions(+), 3 deletions(-) diff --git a/Questionable/Controller/ContextMenuController.cs b/Questionable/Controller/ContextMenuController.cs index fca77dd8a..45230c5f0 100644 --- a/Questionable/Controller/ContextMenuController.cs +++ b/Questionable/Controller/ContextMenuController.cs @@ -4,8 +4,10 @@ using Dalamud.Game.Gui.ContextMenu; using Dalamud.Game.Text; using Dalamud.Plugin.Services; using FFXIVClientStructs.FFXIV.Client.Game; +using FFXIVClientStructs.FFXIV.Client.UI; using FFXIVClientStructs.FFXIV.Client.UI.Agent; using LLib.GameData; +using LLib.GameUI; using Microsoft.Extensions.Logging; using Questionable.Data; using Questionable.Functions; @@ -59,10 +61,17 @@ internal sealed class ContextMenuController : IDisposable private void MenuOpened(IMenuOpenedArgs args) { - uint itemId = (uint)_gameGui.HoveredItem; - if (itemId == 0) + // no clue why this isn't the actual name, but here we are + if (args.AddonName != null) return; + uint itemId = GetHoveredSatisfactionSupplyItemId(); + if (itemId == 0) + { + _logger.LogTrace("Ignoring context menu, no item hovered"); + return; + } + if (itemId > 1_000_000) itemId -= 1_000_000; @@ -74,6 +83,25 @@ internal sealed class ContextMenuController : IDisposable AddContextMenuEntry(args, itemId, npcId, EExtendedClassJob.Miner, "Mine"); AddContextMenuEntry(args, itemId, npcId, EExtendedClassJob.Botanist, "Harvest"); } + else + _logger.LogDebug("No custom delivery NPC found for item {ItemId}.", itemId); + } + + private unsafe uint GetHoveredSatisfactionSupplyItemId() + { + AgentSatisfactionSupply* agent = AgentSatisfactionSupply.Instance(); + if (agent == null || !agent->IsAgentActive()) + return 0; + + + if (_gameGui.TryGetAddonByName("SatisfactionSupply", out AddonSatisfactionSupply* addon) && + LAddon.IsAddonReady(&addon->AtkUnitBase) && + addon->HoveredElementIndex is >= 0 and <= 2) + { + return agent->Items[addon->HoveredElementIndex].Id; + } + + return 0; } private void AddContextMenuEntry(IMenuOpenedArgs args, uint itemId, uint npcId, EExtendedClassJob extendedClassJob, @@ -86,7 +114,7 @@ internal sealed class ContextMenuController : IDisposable if (!_gatheringData.TryGetGatheringPointId(itemId, classJob, out _)) { - _logger.LogInformation("No gathering point found for current job."); + _logger.LogInformation("No gathering point found for {ClassJob}.", classJob); return; } -- 2.45.2 From 50119e9bd18a5ce4c735095b1eadcba0fee31437 Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Tue, 26 Nov 2024 01:40:36 +0800 Subject: [PATCH 281/448] Added final story quest - The Nest of Honor --- .../Story/2225_The Nest of Honor.json | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Story/2225_The Nest of Honor.json diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Story/2225_The Nest of Honor.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Story/2225_The Nest of Honor.json new file mode 100644 index 000000000..0ce7b9f94 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Story/2225_The Nest of Honor.json @@ -0,0 +1,36 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "plogon_enjoyer", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1016087, + "Position": { + "X": -796.7498, + "Y": -133.2695, + "Z": -410.6966 + }, + "TerritoryId": 401, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1016088, + "Position": { + "X": -818.143, + "Y": -129.93259, + "Z": -414.02307 + }, + "TerritoryId": 401, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} -- 2.45.2 From fb43cf05b781ced0e931423c33b4dd68ea7eccf6 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Wed, 27 Nov 2024 00:08:25 +0100 Subject: [PATCH 282/448] Version bump --- Directory.Build.targets | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Directory.Build.targets b/Directory.Build.targets index cff821d57..7ee236734 100644 --- a/Directory.Build.targets +++ b/Directory.Build.targets @@ -1,5 +1,5 @@ - 4.4 + 4.5 -- 2.45.2 From 2def76ce9a94af237603b7feb0a29128733d8cf7 Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Wed, 27 Nov 2024 19:34:11 +0800 Subject: [PATCH 283/448] Added `mogdance` emote --- QuestPaths/quest-v1.json | 3 ++- Questionable.Model/Questing/Converter/EmoteConverter.cs | 1 + Questionable.Model/Questing/EEmote.cs | 1 + 3 files changed, 4 insertions(+), 1 deletion(-) diff --git a/QuestPaths/quest-v1.json b/QuestPaths/quest-v1.json index 0564a3a3d..134b1c60d 100644 --- a/QuestPaths/quest-v1.json +++ b/QuestPaths/quest-v1.json @@ -848,7 +848,8 @@ "cry", "disappointed", "examineself", - "joy" + "joy", + "mogdance" ] } } diff --git a/Questionable.Model/Questing/Converter/EmoteConverter.cs b/Questionable.Model/Questing/Converter/EmoteConverter.cs index 3e7cb2cb2..607f6fdab 100644 --- a/Questionable.Model/Questing/Converter/EmoteConverter.cs +++ b/Questionable.Model/Questing/Converter/EmoteConverter.cs @@ -37,6 +37,7 @@ public sealed class EmoteConverter() : EnumConverter(Values) { EEmote.SundropDance, "sundropdance"}, { EEmote.BattleStance, "battlestance" }, { EEmote.VictoryPose, "victorypose" }, + { EEmote.MogDance, "mogdance" }, { EEmote.Flex, "flex" }, { EEmote.Respect, "respect" }, { EEmote.Box, "box" }, diff --git a/Questionable.Model/Questing/EEmote.cs b/Questionable.Model/Questing/EEmote.cs index 933426660..e70ffd36a 100644 --- a/Questionable.Model/Questing/EEmote.cs +++ b/Questionable.Model/Questing/EEmote.cs @@ -38,6 +38,7 @@ public enum EEmote SundropDance = 120, BattleStance = 121, VictoryPose = 122, + MogDance = 126, Flex = 139, Respect = 140, Box = 166, -- 2.45.2 From 35f1079bc3bb0e0823f2bbdf26f17338e91f8e19 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Wed, 27 Nov 2024 13:28:18 +0100 Subject: [PATCH 284/448] Minor DT waypoint additions --- .../Shaaloani/5144_Bad Case of the Blue Devils.json | 9 +++++++++ .../4923_In Yyasulani's Shadow.json | 9 +++++++++ .../4927_The Land of Levin.json | 9 +++++++++ .../4928_A Royal Welcome.json | 13 ++++++++++++- 4 files changed, 39 insertions(+), 1 deletion(-) diff --git a/QuestPaths/7.x - Dawntrail/Aether Currents/Shaaloani/5144_Bad Case of the Blue Devils.json b/QuestPaths/7.x - Dawntrail/Aether Currents/Shaaloani/5144_Bad Case of the Blue Devils.json index 7891ff73c..1a71babec 100644 --- a/QuestPaths/7.x - Dawntrail/Aether Currents/Shaaloani/5144_Bad Case of the Blue Devils.json +++ b/QuestPaths/7.x - Dawntrail/Aether Currents/Shaaloani/5144_Bad Case of the Blue Devils.json @@ -20,6 +20,15 @@ { "Sequence": 1, "Steps": [ + { + "Position": { + "X": -364.2223, + "Y": 18.75252, + "Z": -115.513306 + }, + "TerritoryId": 1190, + "InteractionType": "WalkTo" + }, { "DataId": 1051300, "Position": { diff --git a/QuestPaths/7.x - Dawntrail/MSQ/D-Shaaloani-HeritageFound1/4923_In Yyasulani's Shadow.json b/QuestPaths/7.x - Dawntrail/MSQ/D-Shaaloani-HeritageFound1/4923_In Yyasulani's Shadow.json index 1bf3b8397..65fe8e852 100644 --- a/QuestPaths/7.x - Dawntrail/MSQ/D-Shaaloani-HeritageFound1/4923_In Yyasulani's Shadow.json +++ b/QuestPaths/7.x - Dawntrail/MSQ/D-Shaaloani-HeritageFound1/4923_In Yyasulani's Shadow.json @@ -105,6 +105,15 @@ 32 ] }, + { + "Position": { + "X": -359.66742, + "Y": 18.137554, + "Z": -137.36826 + }, + "TerritoryId": 1190, + "InteractionType": "WalkTo" + }, { "DataId": 1047080, "Position": { diff --git a/QuestPaths/7.x - Dawntrail/MSQ/D-Shaaloani-HeritageFound1/4927_The Land of Levin.json b/QuestPaths/7.x - Dawntrail/MSQ/D-Shaaloani-HeritageFound1/4927_The Land of Levin.json index c846a700b..662a637a3 100644 --- a/QuestPaths/7.x - Dawntrail/MSQ/D-Shaaloani-HeritageFound1/4927_The Land of Levin.json +++ b/QuestPaths/7.x - Dawntrail/MSQ/D-Shaaloani-HeritageFound1/4927_The Land of Levin.json @@ -165,6 +165,15 @@ { "Sequence": 5, "Steps": [ + { + "Position": { + "X": 473.8908, + "Y": 145.62398, + "Z": 157.92116 + }, + "TerritoryId": 1191, + "InteractionType": "WalkTo" + }, { "DataId": 1047387, "Position": { diff --git a/QuestPaths/7.x - Dawntrail/MSQ/D-Shaaloani-HeritageFound1/4928_A Royal Welcome.json b/QuestPaths/7.x - Dawntrail/MSQ/D-Shaaloani-HeritageFound1/4928_A Royal Welcome.json index 9d9d6c355..13c335e49 100644 --- a/QuestPaths/7.x - Dawntrail/MSQ/D-Shaaloani-HeritageFound1/4928_A Royal Welcome.json +++ b/QuestPaths/7.x - Dawntrail/MSQ/D-Shaaloani-HeritageFound1/4928_A Royal Welcome.json @@ -46,6 +46,16 @@ "InteractionType": "WalkTo", "$": "Outskirts Navmesh workaround" }, + { + "Position": { + "X": -120.99963, + "Y": 28.090134, + "Z": -456.97507 + }, + "TerritoryId": 1191, + "InteractionType": "WalkTo", + "DisableNavmesh": true + }, { "DataId": 1047397, "Position": { @@ -54,7 +64,8 @@ "Z": -500.63324 }, "TerritoryId": 1191, - "InteractionType": "Interact" + "InteractionType": "Interact", + "DisableNavmesh": true } ] }, -- 2.45.2 From c905b3b6be3db8e8ebc22f57a5c91f1a943768ac Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Wed, 27 Nov 2024 22:03:03 +0800 Subject: [PATCH 285/448] Added all Intersocietal Quests - When Good Dragons Go Bad - Who Was That Masked Man - Lift Me to the Moon - Eternity, Loyalty, Honesty --- .../2382_When Good Dragons Go Bad.json | 190 ++++++++++++++++++ .../2383_Who Was That Masked Man.json | 149 ++++++++++++++ .../2384_Lift Me to the Moon.json | 111 ++++++++++ .../2385_Eternity, Loyalty, Honesty.json | 110 ++++++++++ 4 files changed, 560 insertions(+) create mode 100644 QuestPaths/3.x - Heavensward/Allied Societies/Intersocietal Quests/2382_When Good Dragons Go Bad.json create mode 100644 QuestPaths/3.x - Heavensward/Allied Societies/Intersocietal Quests/2383_Who Was That Masked Man.json create mode 100644 QuestPaths/3.x - Heavensward/Allied Societies/Intersocietal Quests/2384_Lift Me to the Moon.json create mode 100644 QuestPaths/3.x - Heavensward/Allied Societies/Intersocietal Quests/2385_Eternity, Loyalty, Honesty.json diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Intersocietal Quests/2382_When Good Dragons Go Bad.json b/QuestPaths/3.x - Heavensward/Allied Societies/Intersocietal Quests/2382_When Good Dragons Go Bad.json new file mode 100644 index 000000000..3b9a24285 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Intersocietal Quests/2382_When Good Dragons Go Bad.json @@ -0,0 +1,190 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "plogon_enjoyer", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1012132, + "Position": { + "X": 43.015137, + "Y": 206.04718, + "Z": 56.50415 + }, + "TerritoryId": 478, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Idyllshire", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1016802, + "Position": { + "X": 53.360718, + "Y": -48.000004, + "Z": -169.97028 + }, + "TerritoryId": 398, + "InteractionType": "Interact", + "AetheryteShortcut": "The Dravanian Forelands - Anyx Trine", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1018232, + "Position": { + "X": 236.01123, + "Y": -42.313934, + "Z": 596.3989 + }, + "TerritoryId": 400, + "InteractionType": "Interact", + "AetheryteShortcut": "The Churning Mists - Moghome", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1017320, + "Position": { + "X": -342.15308, + "Y": 59.03801, + "Z": 315.14453 + }, + "TerritoryId": 400, + "InteractionType": "Interact", + "AetheryteShortcut": "The Churning Mists - Zenith", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1017170, + "Position": { + "X": -344.22827, + "Y": 59.038006, + "Z": 317.1587 + }, + "TerritoryId": 400, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1017173, + "Position": { + "X": -363.82086, + "Y": 60.896187, + "Z": 306.38586 + }, + "TerritoryId": 400, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1017173, + "Position": { + "X": -363.82086, + "Y": 60.896187, + "Z": 306.38586 + }, + "TerritoryId": 400, + "InteractionType": "Emote", + "Emote": "rally" + } + ] + }, + { + "Sequence": 7, + "Steps": [ + { + "DataId": 1017170, + "Position": { + "X": -344.22827, + "Y": 59.038006, + "Z": 317.1587 + }, + "TerritoryId": 400, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 8, + "Steps": [ + { + "DataId": 2007517, + "Position": { + "X": -332.6314, + "Y": 59.067627, + "Z": 298.39014 + }, + "TerritoryId": 400, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 9, + "Steps": [ + { + "DataId": 1018234, + "Position": { + "X": -635.85876, + "Y": 82.249985, + "Z": 142.96167 + }, + "TerritoryId": 400, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1017320, + "Position": { + "X": -342.15308, + "Y": 59.03801, + "Z": 315.14453 + }, + "TerritoryId": 400, + "InteractionType": "CompleteQuest", + "Fly": true, + "NextQuestId": 2383 + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Intersocietal Quests/2383_Who Was That Masked Man.json b/QuestPaths/3.x - Heavensward/Allied Societies/Intersocietal Quests/2383_Who Was That Masked Man.json new file mode 100644 index 000000000..85515d12c --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Intersocietal Quests/2383_Who Was That Masked Man.json @@ -0,0 +1,149 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "plogon_enjoyer", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1017320, + "Position": { + "X": -342.15308, + "Y": 59.03801, + "Z": 315.14453 + }, + "TerritoryId": 400, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "The Churning Mists - Zenith", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + }, + "Fly": true + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1018242, + "Position": { + "X": -365.1942, + "Y": 60.616608, + "Z": 279.89612 + }, + "TerritoryId": 400, + "InteractionType": "Interact", + "Fly": true + }, + { + "DataId": 1018241, + "Position": { + "X": -421.40845, + "Y": 60.89619, + "Z": 272.755 + }, + "TerritoryId": 400, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1018239, + "Position": { + "X": -339.25385, + "Y": 59.038, + "Z": 317.03674 + }, + "TerritoryId": 400, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1011928, + "Position": { + "X": 73.19751, + "Y": -49.19563, + "Z": -139.05548 + }, + "TerritoryId": 398, + "InteractionType": "Interact", + "AetheryteShortcut": "The Dravanian Forelands - Anyx Trine", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1018243, + "Position": { + "X": 35.99597, + "Y": -130.7033, + "Z": 543.3279 + }, + "TerritoryId": 398, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "Position": { + "X": 471.06836, + "Y": -51.141403, + "Z": 35.919243 + }, + "TerritoryId": 398, + "InteractionType": "WalkTo", + "AetheryteShortcut": "The Dravanian Forelands - Tailfeather", + "Fly": true, + "Land": true + }, + { + "DataId": 1011916, + "Position": { + "X": 470.02356, + "Y": -49.89133, + "Z": 20.370789 + }, + "TerritoryId": 398, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1011907, + "Position": { + "X": -288.8686, + "Y": 127.06639, + "Z": 13.199036 + }, + "TerritoryId": 397, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Coerthas Western Highlands - Falcon's Nest", + "Fly": true, + "NextQuestId": 2384 + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Intersocietal Quests/2384_Lift Me to the Moon.json b/QuestPaths/3.x - Heavensward/Allied Societies/Intersocietal Quests/2384_Lift Me to the Moon.json new file mode 100644 index 000000000..7e94fb183 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Intersocietal Quests/2384_Lift Me to the Moon.json @@ -0,0 +1,111 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "plogon_enjoyer", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1018248, + "Position": { + "X": -287.34265, + "Y": 126.77467, + "Z": 3.3721924 + }, + "TerritoryId": 397, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Coerthas Western Highlands - Falcon's Nest", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + }, + "Fly": true + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1018249, + "Position": { + "X": -814.9691, + "Y": -130.31683, + "Z": -415.85413 + }, + "TerritoryId": 401, + "InteractionType": "Interact", + "AetheryteShortcut": "The Sea of Clouds - Ok' Zundu", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1018251, + "Position": { + "X": 285.7556, + "Y": -112.76572, + "Z": 562.1881 + }, + "TerritoryId": 401, + "InteractionType": "Interact", + "AetheryteShortcut": "The Sea of Clouds - Camp Cloudtop", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1018251, + "Position": { + "X": 285.7556, + "Y": -112.76572, + "Z": 562.1881 + }, + "TerritoryId": 401, + "InteractionType": "Emote", + "Emote": "mogdance" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1018254, + "Position": { + "X": 383.93213, + "Y": -125.28945, + "Z": 734.4929 + }, + "TerritoryId": 401, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1018255, + "Position": { + "X": -793.7896, + "Y": -133.26949, + "Z": -412.6803 + }, + "TerritoryId": 401, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "The Sea of Clouds - Ok' Zundu", + "Fly": true, + "NextQuestId": 2385 + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Intersocietal Quests/2385_Eternity, Loyalty, Honesty.json b/QuestPaths/3.x - Heavensward/Allied Societies/Intersocietal Quests/2385_Eternity, Loyalty, Honesty.json new file mode 100644 index 000000000..d67253a82 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Intersocietal Quests/2385_Eternity, Loyalty, Honesty.json @@ -0,0 +1,110 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "plogon_enjoyer", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1018255, + "Position": { + "X": -793.7896, + "Y": -133.26949, + "Z": -412.6803 + }, + "TerritoryId": 401, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "The Sea of Clouds - Ok' Zundu", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + }, + "Fly": true + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1018257, + "Position": { + "X": -664.36255, + "Y": -176.4502, + "Z": -570.3975 + }, + "TerritoryId": 402, + "InteractionType": "Interact", + "AetheryteShortcut": "Azys Lla - Helix", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1018260, + "Position": { + "X": -189.5628, + "Y": -102.63812, + "Z": 449.60706 + }, + "TerritoryId": 402, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2007518, + "Position": { + "X": -697.01685, + "Y": -37.82715, + "Z": 431.2047 + }, + "TerritoryId": 402, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1018261, + "Position": { + "X": 785.3054, + "Y": -24.802603, + "Z": -766.3539 + }, + "TerritoryId": 402, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1016087, + "Position": { + "X": -796.7498, + "Y": -133.2695, + "Z": -410.6966 + }, + "TerritoryId": 401, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "The Sea of Clouds - Ok' Zundu", + "Fly": true + } + ] + } + ] +} -- 2.45.2 From 05effd49f0f0a200cfeb34609c3f383b241cd035 Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Wed, 27 Nov 2024 23:52:03 +0800 Subject: [PATCH 286/448] Added Facet of Forging quests: - To Struggle Nu Mou - The Iron Bellows --- .../3228_To Struggle Nu Mou.json | 137 ++++++++++++++++++ .../3229_The Iron Bellows.json | 123 ++++++++++++++++ 2 files changed, 260 insertions(+) create mode 100644 QuestPaths/5.x - Shadowbringers/Crystalline Mean Quests/Facet of Forging/3228_To Struggle Nu Mou.json create mode 100644 QuestPaths/5.x - Shadowbringers/Crystalline Mean Quests/Facet of Forging/3229_The Iron Bellows.json diff --git a/QuestPaths/5.x - Shadowbringers/Crystalline Mean Quests/Facet of Forging/3228_To Struggle Nu Mou.json b/QuestPaths/5.x - Shadowbringers/Crystalline Mean Quests/Facet of Forging/3228_To Struggle Nu Mou.json new file mode 100644 index 000000000..c1c15f07b --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Crystalline Mean Quests/Facet of Forging/3228_To Struggle Nu Mou.json @@ -0,0 +1,137 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "plogon_enjoyer", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1027233, + "Position": { + "X": 9.292725, + "Y": 20.186, + "Z": -124.55945 + }, + "TerritoryId": 819, + "InteractionType": "AcceptQuest", + "DialogueChoices": [ + { + "Prompt": "TEXT_LUCKLA102_03228_Q1_000_000", + "Type": "List", + "Answer": "TEXT_LUCKLA102_03228_A1_000_001" + }, + { + "Prompt": "TEXT_LUCKLA102_03228_Q2_000_000", + "Type": "List", + "Answer": "TEXT_LUCKLA102_03228_A2_000_001" + } + ], + "AetheryteShortcut": "Crystarium", + "AethernetShortcut": [ + "[Crystarium] Aetheryte Plaza", + "[Crystarium] The Crystalline Mean" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + }, + "AethernetShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1028450, + "Position": { + "X": -311.94025, + "Y": 113.85077, + "Z": -824.4602 + }, + "TerritoryId": 813, + "InteractionType": "Interact", + "AetheryteShortcut": "Lakeland - Ostall Imperative", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1028451, + "Position": { + "X": -138.96393, + "Y": 58.34806, + "Z": -670.6798 + }, + "TerritoryId": 816, + "InteractionType": "Interact", + "AetheryteShortcut": "Il Mheg - Pla Enni", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1028452, + "Position": { + "X": -14.511353, + "Y": 104.487236, + "Z": -861.6312 + }, + "TerritoryId": 816, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1027233, + "Position": { + "X": 9.292725, + "Y": 20.186, + "Z": -124.55945 + }, + "TerritoryId": 819, + "InteractionType": "Interact", + "AetheryteShortcut": "Crystarium", + "AethernetShortcut": [ + "[Crystarium] Aetheryte Plaza", + "[Crystarium] The Crystalline Mean" + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "TerritoryId": 819, + "InteractionType": "Craft", + "ItemId": 27237, + "ItemCount": 1 + }, + { + "DataId": 1027233, + "Position": { + "X": 9.292725, + "Y": 20.186, + "Z": -124.55945 + }, + "TerritoryId": 819, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Crystalline Mean Quests/Facet of Forging/3229_The Iron Bellows.json b/QuestPaths/5.x - Shadowbringers/Crystalline Mean Quests/Facet of Forging/3229_The Iron Bellows.json new file mode 100644 index 000000000..d0459c0d4 --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Crystalline Mean Quests/Facet of Forging/3229_The Iron Bellows.json @@ -0,0 +1,123 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "plogon_enjoyer", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1027233, + "Position": { + "X": 9.292725, + "Y": 20.186, + "Z": -124.55945 + }, + "TerritoryId": 819, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Crystarium", + "AethernetShortcut": [ + "[Crystarium] Aetheryte Plaza", + "[Crystarium] The Crystalline Mean" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + }, + "AethernetShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1028454, + "Position": { + "X": -17.441101, + "Y": 3.9998174, + "Z": 191.94324 + }, + "TerritoryId": 819, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Crystarium] The Crystalline Mean", + "[Crystarium] Musica Universalis Markets" + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "TerritoryId": 819, + "InteractionType": "Craft", + "ItemId": 27239, + "ItemCount": 1 + }, + { + "DataId": 1028454, + "Position": { + "X": -17.441101, + "Y": 3.9998174, + "Z": 191.94324 + }, + "TerritoryId": 819, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1028458, + "Position": { + "X": -96.665955, + "Y": -4.200001, + "Z": 133.1654 + }, + "TerritoryId": 819, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1028454, + "Position": { + "X": -17.441101, + "Y": 3.9998174, + "Z": 191.94324 + }, + "TerritoryId": 819, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1027233, + "Position": { + "X": 9.292725, + "Y": 20.186, + "Z": -124.55945 + }, + "TerritoryId": 819, + "InteractionType": "CompleteQuest", + "AethernetShortcut": [ + "[Crystarium] Musica Universalis Markets", + "[Crystarium] The Crystalline Mean" + ] + } + ] + } + ] +} -- 2.45.2 From f3e418f440c116bbdf35003020c58878358f47df Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Wed, 27 Nov 2024 21:26:54 +0100 Subject: [PATCH 287/448] Minor tweak to flying pathfindng starting location --- Questionable/Controller/MovementController.cs | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Questionable/Controller/MovementController.cs b/Questionable/Controller/MovementController.cs index e41b8f04b..cc8012cf6 100644 --- a/Questionable/Controller/MovementController.cs +++ b/Questionable/Controller/MovementController.cs @@ -317,6 +317,13 @@ internal sealed class MovementController : IDisposable _logger.LogInformation("Using modified start position for flying pathfinding: {StartPosition}", startPosition.ToString("G", CultureInfo.InvariantCulture)); } + else if (fly) + { + // other positions have a (lesser) chance of starting from underground too, in which case pathfinding takes + // >10 seconds and gets stuck trying to go through the ground. + // only for flying; as walking uses a different algorithm + startPosition = startPosition with { Y = startPosition.Y + 0.2f }; + } _pathfindTask = _navmeshIpc.Pathfind(startPosition, to, fly, _cancellationTokenSource.Token); -- 2.45.2 From 8e3dab044daf12b636e0262f55e8dacc57bb85ac Mon Sep 17 00:00:00 2001 From: kaiser Date: Thu, 28 Nov 2024 21:20:10 +1100 Subject: [PATCH 288/448] feat: added a million of malms away story quest. --- .../Story/4685_A Million Malms Away.json | 87 +++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Story/4685_A Million Malms Away.json diff --git a/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Story/4685_A Million Malms Away.json b/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Story/4685_A Million Malms Away.json new file mode 100644 index 000000000..eb37ee27f --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Story/4685_A Million Malms Away.json @@ -0,0 +1,87 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "kaiser", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1044402, + "Position": { + "X": -193.89642, + "Y": -49.19972, + "Z": -262.13477 + }, + "TerritoryId": 959, + "InteractionType": "AcceptQuest", + "StopDistance": 5, + "AetheryteShortcut": "Mare Lamentorum - Bestways Burrow", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 959 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1044953, + "Position": { + "X": -340.53564, + "Y": 104.34723, + "Z": 531.3954 + }, + "TerritoryId": 959, + "InteractionType": "Interact", + "StopDistance": 5, + "Fly": true, + "AetheryteShortcut": "Mare Lamentorum - Sinus Lacrimarum" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1044955, + "Position": { + "X": -161.36414, + "Y": -49.19972, + "Z": -288.4718 + }, + "TerritoryId": 959, + "StopDistance": 5, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "TerritoryId": 959, + "InteractionType": "Craft", + "ItemId": 38851, + "ItemCount": 1 + }, + { + "DataId": 1044955, + "Position": { + "X": -161.36414, + "Y": -49.19972, + "Z": -288.4718 + }, + "TerritoryId": 959, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} -- 2.45.2 From 3d9a1cec7c71a8e77803353d43a8b73993eb2c4e Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Thu, 28 Nov 2024 22:45:23 +0100 Subject: [PATCH 289/448] Minor daily quest updates --- .../2191_Smooth as Silk, Cool as Air.json | 40 +++++- .../2192_Gaelicat's Out of the Bag.json | 50 ++++++- .../Dailies/2193_Rotten to the Korrigan.json | 40 +++++- .../Vath/Dailies/2271_Failure to Deliver.json | 124 ++++++++++++++++++ .../2272_Shoo Fly, Don't Bother Me.json | 20 ++- 5 files changed, 259 insertions(+), 15 deletions(-) create mode 100644 QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2271_Failure to Deliver.json diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2191_Smooth as Silk, Cool as Air.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2191_Smooth as Silk, Cool as Air.json index 4471cd3cf..6e3ae8b54 100644 --- a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2191_Smooth as Silk, Cool as Air.json +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2191_Smooth as Silk, Cool as Air.json @@ -47,7 +47,15 @@ "InteractionType": "Combat", "EnemySpawnType": "AfterInteraction", "KillEnemyDataIds": [5246], - "Fly": true + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 16 + ] }, { "DataId": 2006689, @@ -58,7 +66,15 @@ }, "TerritoryId": 401, "InteractionType": "Interact", - "Fly": true + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] }, { "DataId": 2006687, @@ -69,7 +85,15 @@ }, "TerritoryId": 401, "InteractionType": "Interact", - "Fly": true + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] }, { "DataId": 2006688, @@ -80,7 +104,15 @@ }, "TerritoryId": 401, "InteractionType": "Interact", - "Fly": true + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] } ] }, diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2192_Gaelicat's Out of the Bag.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2192_Gaelicat's Out of the Bag.json index 62988c555..8130733f4 100644 --- a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2192_Gaelicat's Out of the Bag.json +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2192_Gaelicat's Out of the Bag.json @@ -47,7 +47,15 @@ "InteractionType": "UseItem", "ItemId": 2001934, "Fly": true, - "AetheryteShortcut": "The Sea of Clouds - Camp Cloudtop" + "AetheryteShortcut": "The Sea of Clouds - Camp Cloudtop", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 8 + ] }, { "DataId": 1016232, @@ -59,7 +67,15 @@ "TerritoryId": 401, "InteractionType": "UseItem", "ItemId": 2001934, - "Fly": true + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] }, { "DataId": 1016233, @@ -71,7 +87,15 @@ "TerritoryId": 401, "InteractionType": "UseItem", "ItemId": 2001934, - "Fly": true + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] }, { "DataId": 1016374, @@ -83,7 +107,15 @@ "TerritoryId": 401, "InteractionType": "UseItem", "ItemId": 2001934, - "Fly": true + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 16 + ] }, { "DataId": 1016231, @@ -95,7 +127,15 @@ "TerritoryId": 401, "InteractionType": "UseItem", "ItemId": 2001934, - "Fly": true + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] } ] }, diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2193_Rotten to the Korrigan.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2193_Rotten to the Korrigan.json index 0d571b1c7..7ef4cfad7 100644 --- a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2193_Rotten to the Korrigan.json +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2193_Rotten to the Korrigan.json @@ -46,7 +46,15 @@ "TerritoryId": 401, "InteractionType": "Interact", "Fly": true, - "AetheryteShortcut": "The Sea of Clouds - Camp Cloudtop" + "AetheryteShortcut": "The Sea of Clouds - Camp Cloudtop", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 16 + ] }, { "DataId": 1016235, @@ -57,7 +65,15 @@ }, "TerritoryId": 401, "InteractionType": "Interact", - "Fly": true + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] }, { "DataId": 1016236, @@ -68,7 +84,15 @@ }, "TerritoryId": 401, "InteractionType": "Interact", - "Fly": true + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] }, { "DataId": 1016216, @@ -79,7 +103,15 @@ }, "TerritoryId": 401, "InteractionType": "Interact", - "Fly": true + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] } ] }, diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2271_Failure to Deliver.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2271_Failure to Deliver.json new file mode 100644 index 000000000..12263f4d8 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2271_Failure to Deliver.json @@ -0,0 +1,124 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "AnimaMachinae", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1016803, + "Position": { + "X": 57.297607, + "Y": -47.842846, + "Z": -174.63953 + }, + "TerritoryId": 398, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1016859, + "Position": { + "X": -566.6743, + "Y": -97.34781, + "Z": 481.01013 + }, + "TerritoryId": 398, + "InteractionType": "Interact", + "AetheryteShortcut": "The Dravanian Forelands - Anyx Trine", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2006922, + "Position": { + "X": -481.0102, + "Y": -93.18689, + "Z": 474.69275 + }, + "TerritoryId": 398, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1016859, + "Position": { + "X": -566.6743, + "Y": -97.34781, + "Z": 481.01013 + }, + "TerritoryId": 398, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 2006923, + "Position": { + "X": -477.59216, + "Y": -93.003784, + "Z": 475.18103 + }, + "TerritoryId": 398, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1016859, + "Position": { + "X": -566.6743, + "Y": -97.34781, + "Z": 481.01013 + }, + "TerritoryId": 398, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": 58.39701, + "Y": -48.000008, + "Z": -172.36507 + }, + "TerritoryId": 398, + "InteractionType": "WalkTo", + "Fly": true, + "AetheryteShortcut": "The Dravanian Forelands - Anyx Trine" + }, + { + "DataId": 1016803, + "Position": { + "X": 57.297607, + "Y": -47.842846, + "Z": -174.63953 + }, + "TerritoryId": 398, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2272_Shoo Fly, Don't Bother Me.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2272_Shoo Fly, Don't Bother Me.json index bd5f3cd7c..8e65dff2a 100644 --- a/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2272_Shoo Fly, Don't Bother Me.json +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2272_Shoo Fly, Don't Bother Me.json @@ -60,7 +60,15 @@ "TerritoryId": 398, "InteractionType": "Action", "Action": "Fumigate", - "Fly": true + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] }, { "Position": { @@ -71,7 +79,15 @@ "TerritoryId": 398, "InteractionType": "Action", "Action": "Fumigate", - "Fly": true + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] } ] }, -- 2.45.2 From d9d090e9800b5f32f264f09ab654ee38575e1673 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Thu, 28 Nov 2024 23:27:55 +0100 Subject: [PATCH 290/448] Skip equipping recommended gear if already in combat --- .../Controller/Steps/Interactions/EquipRecommended.cs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Questionable/Controller/Steps/Interactions/EquipRecommended.cs b/Questionable/Controller/Steps/Interactions/EquipRecommended.cs index b923c237f..3b2be0f17 100644 --- a/Questionable/Controller/Steps/Interactions/EquipRecommended.cs +++ b/Questionable/Controller/Steps/Interactions/EquipRecommended.cs @@ -1,4 +1,5 @@ using System; +using Dalamud.Game.ClientState.Conditions; using Dalamud.Plugin.Services; using FFXIVClientStructs.FFXIV.Client.Game; using FFXIVClientStructs.FFXIV.Client.UI.Misc; @@ -39,12 +40,15 @@ internal static class EquipRecommended public override string ToString() => "EquipRecommended"; } - internal sealed unsafe class DoEquipRecommended(IClientState clientState, IChatGui chatGui) : TaskExecutor + internal sealed unsafe class DoEquipRecommended(IClientState clientState, IChatGui chatGui, ICondition condition) : TaskExecutor { private bool _equipped; protected override bool Start() { + if (condition[ConditionFlag.InCombat]) + return false; + RecommendEquipModule.Instance()->SetupForClassJob((byte)clientState.LocalPlayer!.ClassJob.RowId); return true; } -- 2.45.2 From d5a77209d4aca61aebcd4bf06eb55ed5e03fe61c Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Thu, 28 Nov 2024 23:28:30 +0100 Subject: [PATCH 291/448] Updates to Gridania/Limsa start --- .../MSQ-1/Gridania/129_Spirithold Broken.json | 17 ----- .../Gridania/175_Surveying the Damage.json | 20 ++++++ .../MSQ-1/Gridania/201_Passing Muster.json | 69 +++++++++++++++++++ .../Gridania/3855_A Soldier's Breakfast.json | 11 +++ .../MSQ-1/Limsa/463_Dressed to Call.json | 69 +++++++++++++++++++ QuestPaths/quest-v1.json | 3 +- .../Converter/EnemySpawnTypeConverter.cs | 1 + .../Questing/EEnemySpawnType.cs | 1 + Questionable/Controller/CombatController.cs | 2 +- .../GameUi/InteractionUiController.cs | 4 +- .../Controller/Steps/Interactions/Combat.cs | 10 +-- Questionable/Controller/Steps/QuestCleanUp.cs | 3 +- Questionable/Functions/QuestFunctions.cs | 2 + 13 files changed, 187 insertions(+), 25 deletions(-) diff --git a/QuestPaths/2.x - A Realm Reborn/MSQ-1/Gridania/129_Spirithold Broken.json b/QuestPaths/2.x - A Realm Reborn/MSQ-1/Gridania/129_Spirithold Broken.json index 8c7b51e10..cdb594ab5 100644 --- a/QuestPaths/2.x - A Realm Reborn/MSQ-1/Gridania/129_Spirithold Broken.json +++ b/QuestPaths/2.x - A Realm Reborn/MSQ-1/Gridania/129_Spirithold Broken.json @@ -35,18 +35,6 @@ { "Sequence": 2, "Steps": [ - { - "DataId": 1000465, - "Position": { - "X": 298.63428, - "Y": 9.999997, - "Z": 119.035645 - }, - "TerritoryId": 148, - "InteractionType": "WaitForManualProgress", - "Comment": "Manual Quest Progress (very combat heavy)", - "$": "TODO Remove later" - }, { "DataId": 1000512, "Position": { @@ -56,7 +44,6 @@ }, "TerritoryId": 148, "InteractionType": "Interact", - "Disabled": true, "CompletionQuestVariablesFlags": [ null, null, @@ -75,7 +62,6 @@ }, "TerritoryId": 148, "InteractionType": "Interact", - "Disabled": true, "CompletionQuestVariablesFlags": [ null, null, @@ -94,7 +80,6 @@ }, "TerritoryId": 148, "InteractionType": "Interact", - "Disabled": true, "CompletionQuestVariablesFlags": [ null, null, @@ -113,7 +98,6 @@ }, "TerritoryId": 148, "InteractionType": "Interact", - "Disabled": true, "CompletionQuestVariablesFlags": [ null, null, @@ -132,7 +116,6 @@ }, "TerritoryId": 148, "InteractionType": "Interact", - "Disabled": true, "CompletionQuestVariablesFlags": [ null, null, diff --git a/QuestPaths/2.x - A Realm Reborn/MSQ-1/Gridania/175_Surveying the Damage.json b/QuestPaths/2.x - A Realm Reborn/MSQ-1/Gridania/175_Surveying the Damage.json index e62a1b0c8..a254f6209 100644 --- a/QuestPaths/2.x - A Realm Reborn/MSQ-1/Gridania/175_Surveying the Damage.json +++ b/QuestPaths/2.x - A Realm Reborn/MSQ-1/Gridania/175_Surveying the Damage.json @@ -21,6 +21,26 @@ "Sequence": 1, "Comment": "Very likely this needs manual combat and/or manual continues", "Steps": [ + { + "Position": { + "X": 192.07129, + "Y": -12.000001, + "Z": 38.204 + }, + "TerritoryId": 148, + "InteractionType": "WalkTo" + }, + { + "Position": { + "X": 190.28528, + "Y": -12, + "Z": 77.53861 + }, + "TerritoryId": 148, + "InteractionType": "Combat", + "EnemySpawnType": "FinishCombatIfAny", + "KillEnemyDataIds": [] + }, { "DataId": 2000141, "Position": { diff --git a/QuestPaths/2.x - A Realm Reborn/MSQ-1/Gridania/201_Passing Muster.json b/QuestPaths/2.x - A Realm Reborn/MSQ-1/Gridania/201_Passing Muster.json index d9a568be2..266df28e5 100644 --- a/QuestPaths/2.x - A Realm Reborn/MSQ-1/Gridania/201_Passing Muster.json +++ b/QuestPaths/2.x - A Realm Reborn/MSQ-1/Gridania/201_Passing Muster.json @@ -24,6 +24,75 @@ "TerritoryId": 148, "InteractionType": "EquipRecommended" }, + { + "DataId": 1000396, + "Position": { + "X": 82.597046, + "Y": -7.893894, + "Z": -103.349365 + }, + "TerritoryId": 148, + "InteractionType": "PurchaseItem", + "PurchaseMenu": { + "ExcelSheet": "GilShop", + "Key": 262186 + }, + "ItemId": 2653, + "ItemCount": 1, + "RequiredCurrentJob": [ + "DoW" + ], + "SkipConditions": { + "StepIf": { + "Item": { + "NotInInventory": false + } + } + } + }, + { + "DataId": 1000396, + "Position": { + "X": 82.597046, + "Y": -7.893894, + "Z": -103.349365 + }, + "TerritoryId": 148, + "InteractionType": "PurchaseItem", + "PurchaseMenu": { + "ExcelSheet": "GilShop", + "Key": 262186 + }, + "ItemId": 2655, + "ItemCount": 1, + "RequiredCurrentJob": [ + "DoM" + ] + }, + { + "TerritoryId": 148, + "InteractionType": "EquipItem", + "ItemId": 2653, + "SkipConditions": { + "StepIf": { + "Item": { + "NotInInventory": true + } + } + } + }, + { + "TerritoryId": 148, + "InteractionType": "EquipItem", + "ItemId": 2655, + "SkipConditions": { + "StepIf": { + "Item": { + "NotInInventory": true + } + } + } + }, { "DataId": 1000421, "Position": { diff --git a/QuestPaths/2.x - A Realm Reborn/MSQ-1/Gridania/3855_A Soldier's Breakfast.json b/QuestPaths/2.x - A Realm Reborn/MSQ-1/Gridania/3855_A Soldier's Breakfast.json index 64af3a348..dd2e59d16 100644 --- a/QuestPaths/2.x - A Realm Reborn/MSQ-1/Gridania/3855_A Soldier's Breakfast.json +++ b/QuestPaths/2.x - A Realm Reborn/MSQ-1/Gridania/3855_A Soldier's Breakfast.json @@ -20,6 +20,17 @@ { "Sequence": 1, "Steps": [ + { + "Position": { + "X": 486.40424, + "Y": 24.968294, + "Z": -88.684456 + }, + "TerritoryId": 148, + "InteractionType": "Combat", + "EnemySpawnType": "FinishCombatIfAny", + "KillEnemyDataIds": [] + }, { "DataId": 2000010, "Position": { diff --git a/QuestPaths/2.x - A Realm Reborn/MSQ-1/Limsa/463_Dressed to Call.json b/QuestPaths/2.x - A Realm Reborn/MSQ-1/Limsa/463_Dressed to Call.json index 2911b4e9a..db9debe78 100644 --- a/QuestPaths/2.x - A Realm Reborn/MSQ-1/Limsa/463_Dressed to Call.json +++ b/QuestPaths/2.x - A Realm Reborn/MSQ-1/Limsa/463_Dressed to Call.json @@ -24,6 +24,75 @@ "TerritoryId": 134, "InteractionType": "EquipRecommended" }, + { + "DataId": 1003257, + "Position": { + "X": 201.70898, + "Y": 98.422874, + "Z": -206.10364 + }, + "TerritoryId": 134, + "InteractionType": "PurchaseItem", + "PurchaseMenu": { + "ExcelSheet": "GilShop", + "Key": 262186 + }, + "ItemId": 2653, + "ItemCount": 1, + "RequiredCurrentJob": [ + "DoW" + ], + "SkipConditions": { + "StepIf": { + "Item": { + "NotInInventory": false + } + } + } + }, + { + "DataId": 1003257, + "Position": { + "X": 201.70898, + "Y": 98.422874, + "Z": -206.10364 + }, + "TerritoryId": 134, + "InteractionType": "PurchaseItem", + "PurchaseMenu": { + "ExcelSheet": "GilShop", + "Key": 262186 + }, + "ItemId": 2655, + "ItemCount": 1, + "RequiredCurrentJob": [ + "DoM" + ] + }, + { + "TerritoryId": 134, + "InteractionType": "EquipItem", + "ItemId": 2653, + "SkipConditions": { + "StepIf": { + "Item": { + "NotInInventory": true + } + } + } + }, + { + "TerritoryId": 134, + "InteractionType": "EquipItem", + "ItemId": 2655, + "SkipConditions": { + "StepIf": { + "Item": { + "NotInInventory": true + } + } + } + }, { "DataId": 1002626, "Position": { diff --git a/QuestPaths/quest-v1.json b/QuestPaths/quest-v1.json index 134b1c60d..7511bc270 100644 --- a/QuestPaths/quest-v1.json +++ b/QuestPaths/quest-v1.json @@ -593,7 +593,8 @@ "AfterAction", "AfterEmote", "OverworldEnemies", - "FateEnemies" + "FateEnemies", + "FinishCombatIfAny" ] }, "KillEnemyDataIds": { diff --git a/Questionable.Model/Questing/Converter/EnemySpawnTypeConverter.cs b/Questionable.Model/Questing/Converter/EnemySpawnTypeConverter.cs index 1b43eaf43..58b292f35 100644 --- a/Questionable.Model/Questing/Converter/EnemySpawnTypeConverter.cs +++ b/Questionable.Model/Questing/Converter/EnemySpawnTypeConverter.cs @@ -14,5 +14,6 @@ public sealed class EnemySpawnTypeConverter() : EnumConverter(V { EEnemySpawnType.AutoOnEnterArea, "AutoOnEnterArea" }, { EEnemySpawnType.OverworldEnemies, "OverworldEnemies" }, { EEnemySpawnType.FateEnemies, "FateEnemies" }, + { EEnemySpawnType.FinishCombatIfAny, "FinishCombatIfAny" } }; } diff --git a/Questionable.Model/Questing/EEnemySpawnType.cs b/Questionable.Model/Questing/EEnemySpawnType.cs index e4f49433f..49f44bf1b 100644 --- a/Questionable.Model/Questing/EEnemySpawnType.cs +++ b/Questionable.Model/Questing/EEnemySpawnType.cs @@ -14,5 +14,6 @@ public enum EEnemySpawnType AutoOnEnterArea, OverworldEnemies, FateEnemies, + FinishCombatIfAny, QuestInterruption, } diff --git a/Questionable/Controller/CombatController.cs b/Questionable/Controller/CombatController.cs index 9cdf3bcf0..91eca6c14 100644 --- a/Questionable/Controller/CombatController.cs +++ b/Questionable/Controller/CombatController.cs @@ -76,7 +76,7 @@ internal sealed class CombatController : IDisposable Module = combatModule, Data = combatData, }; - _wasInCombat = combatData.SpawnType == EEnemySpawnType.QuestInterruption; + _wasInCombat = combatData.SpawnType is EEnemySpawnType.QuestInterruption or EEnemySpawnType.FinishCombatIfAny; return true; } else diff --git a/Questionable/Controller/GameUi/InteractionUiController.cs b/Questionable/Controller/GameUi/InteractionUiController.cs index 201480739..c5aa27c39 100644 --- a/Questionable/Controller/GameUi/InteractionUiController.cs +++ b/Questionable/Controller/GameUi/InteractionUiController.cs @@ -51,6 +51,7 @@ internal sealed class InteractionUiController : IDisposable private readonly ShopController _shopController; private readonly ILogger _logger; private readonly Regex _returnRegex; + private readonly Regex _purchaseItemRegex; private bool _isInitialCheck; @@ -91,6 +92,7 @@ internal sealed class InteractionUiController : IDisposable _logger = logger; _returnRegex = _dataManager.GetExcelSheet().GetRow(196).GetRegex(addon => addon.Text, pluginLog)!; + _purchaseItemRegex = _dataManager.GetRegex(3406, addon => addon.Text, pluginLog)!; _addonLifecycle.RegisterListener(AddonEvent.PostSetup, "SelectString", SelectStringPostSetup); _addonLifecycle.RegisterListener(AddonEvent.PostSetup, "CutSceneSelectString", CutsceneSelectStringPostSetup); @@ -560,7 +562,7 @@ internal sealed class InteractionUiController : IDisposable return; _logger.LogTrace("Prompt: '{Prompt}'", actualPrompt); - if (_shopController.IsAutoBuyEnabled && _shopController.IsAwaitingYesNo) + if (_shopController.IsAwaitingYesNo && _purchaseItemRegex.IsMatch(actualPrompt)) { addonSelectYesno->AtkUnitBase.FireCallbackInt(0); _shopController.IsAwaitingYesNo = false; diff --git a/Questionable/Controller/Steps/Interactions/Combat.cs b/Questionable/Controller/Steps/Interactions/Combat.cs index c670e3bca..f0b7ff15f 100644 --- a/Questionable/Controller/Steps/Interactions/Combat.cs +++ b/Questionable/Controller/Steps/Interactions/Combat.cs @@ -83,6 +83,7 @@ internal static class Combat case EEnemySpawnType.OverworldEnemies: case EEnemySpawnType.FateEnemies: + case EEnemySpawnType.FinishCombatIfAny: yield return CreateTask(quest, sequence, step); break; @@ -122,17 +123,18 @@ internal static class Combat { public override string ToString() { + if (CombatData.SpawnType == EEnemySpawnType.FinishCombatIfAny) + return "HandleCombat(wait: not in combat, optional)"; if (QuestWorkUtils.HasCompletionFlags(CompletionQuestVariableFlags)) - return $"HandleCombat(wait: QW flags)"; + return "HandleCombat(wait: QW flags)"; else if (IsLastStep) - return $"HandleCombat(wait: next sequence)"; + return "HandleCombat(wait: next sequence)"; else - return $"HandleCombat(wait: not in combat)"; + return "HandleCombat(wait: not in combat)"; } } internal sealed class HandleCombat( - CombatController combatController, QuestFunctions questFunctions) : TaskExecutor { diff --git a/Questionable/Controller/Steps/QuestCleanUp.cs b/Questionable/Controller/Steps/QuestCleanUp.cs index b3cd5b503..e5e560559 100644 --- a/Questionable/Controller/Steps/QuestCleanUp.cs +++ b/Questionable/Controller/Steps/QuestCleanUp.cs @@ -14,7 +14,8 @@ internal static class QuestCleanUp { private static readonly Dictionary AlliedSocietyMountConfiguration = new() { - { 369, new(1051798, EAetheryteLocation.KozamaukaDockPoga) } + { 79, new(1017031, EAetheryteLocation.DravanianForelandsAnyxTrine) }, + { 369, new(1051798, EAetheryteLocation.KozamaukaDockPoga) }, }; internal sealed class CheckAlliedSocietyMount(GameFunctions gameFunctions, AetheryteData aetheryteData, ILogger logger) : SimpleTaskFactory diff --git a/Questionable/Functions/QuestFunctions.cs b/Questionable/Functions/QuestFunctions.cs index 1ef56c4e4..067e0e779 100644 --- a/Questionable/Functions/QuestFunctions.cs +++ b/Questionable/Functions/QuestFunctions.cs @@ -243,6 +243,8 @@ internal sealed unsafe class QuestFunctions { return questId.Value switch { + >= 2171 and <= 2200 => EAlliedSociety.VanuVanu, + >= 2261 and <= 2280 => EAlliedSociety.Vath, >= 5199 and <= 5226 => EAlliedSociety.Pelupelu, _ => EAlliedSociety.None, }; -- 2.45.2 From 68a0986e96c9e824f3a157a8baeb99957a414bfe Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Fri, 29 Nov 2024 00:33:24 +0100 Subject: [PATCH 292/448] Add Tales from the Dragonsong War --- .../1619_Mountaintop Diplomacy.json | 10 + .../1623_Moglin's Judgment.json | 20 ++ .../1871_Laying the First Brick.json | 7 +- .../1475_The Paths We Walk.json | 216 ++++++++++++++++++ .../1476_The Oaths We Swear.json | 162 +++++++++++++ .../1477_The Legacies We Leave.json | 150 ++++++++++++ .../1478_The Triumphs We Share.json | 147 ++++++++++++ .../1479_The Burdens We Bear.json | 143 ++++++++++++ 8 files changed, 852 insertions(+), 3 deletions(-) create mode 100644 QuestPaths/3.x - Heavensward/Side Stories/Tales of the Dragonsong War/1475_The Paths We Walk.json create mode 100644 QuestPaths/3.x - Heavensward/Side Stories/Tales of the Dragonsong War/1476_The Oaths We Swear.json create mode 100644 QuestPaths/3.x - Heavensward/Side Stories/Tales of the Dragonsong War/1477_The Legacies We Leave.json create mode 100644 QuestPaths/3.x - Heavensward/Side Stories/Tales of the Dragonsong War/1478_The Triumphs We Share.json create mode 100644 QuestPaths/3.x - Heavensward/Side Stories/Tales of the Dragonsong War/1479_The Burdens We Bear.json diff --git a/QuestPaths/3.x - Heavensward/MSQ/A3.3-The Churning Mists/1619_Mountaintop Diplomacy.json b/QuestPaths/3.x - Heavensward/MSQ/A3.3-The Churning Mists/1619_Mountaintop Diplomacy.json index 2ebd327b6..8e54847f6 100644 --- a/QuestPaths/3.x - Heavensward/MSQ/A3.3-The Churning Mists/1619_Mountaintop Diplomacy.json +++ b/QuestPaths/3.x - Heavensward/MSQ/A3.3-The Churning Mists/1619_Mountaintop Diplomacy.json @@ -93,6 +93,16 @@ { "Sequence": 255, "Steps": [ + { + "Position": { + "X": 379.64865, + "Y": -69.42944, + "Z": 695.1956 + }, + "TerritoryId": 400, + "InteractionType": "WalkTo", + "$": "Moglin" + }, { "DataId": 1012077, "Position": { diff --git a/QuestPaths/3.x - Heavensward/MSQ/A3.3-The Churning Mists/1623_Moglin's Judgment.json b/QuestPaths/3.x - Heavensward/MSQ/A3.3-The Churning Mists/1623_Moglin's Judgment.json index 9f9f298d6..7963abc44 100644 --- a/QuestPaths/3.x - Heavensward/MSQ/A3.3-The Churning Mists/1623_Moglin's Judgment.json +++ b/QuestPaths/3.x - Heavensward/MSQ/A3.3-The Churning Mists/1623_Moglin's Judgment.json @@ -5,6 +5,16 @@ { "Sequence": 0, "Steps": [ + { + "Position": { + "X": 379.64865, + "Y": -69.42944, + "Z": 695.1956 + }, + "TerritoryId": 400, + "InteractionType": "WalkTo", + "$": "Moglin" + }, { "DataId": 1012077, "Position": { @@ -131,6 +141,16 @@ "InteractionType": "WalkTo", "Mount": true }, + { + "Position": { + "X": 379.64865, + "Y": -69.42944, + "Z": 695.1956 + }, + "TerritoryId": 400, + "InteractionType": "WalkTo", + "$": "Moglin" + }, { "DataId": 1012077, "Position": { diff --git a/QuestPaths/3.x - Heavensward/Side Quests/The Churning Mists/1871_Laying the First Brick.json b/QuestPaths/3.x - Heavensward/Side Quests/The Churning Mists/1871_Laying the First Brick.json index 032518dcb..e7f2f4fff 100644 --- a/QuestPaths/3.x - Heavensward/Side Quests/The Churning Mists/1871_Laying the First Brick.json +++ b/QuestPaths/3.x - Heavensward/Side Quests/The Churning Mists/1871_Laying the First Brick.json @@ -75,12 +75,13 @@ "Steps": [ { "Position": { - "X": 380.00024, - "Y": -69.42949, - "Z": 694.65753 + "X": 379.64865, + "Y": -69.42944, + "Z": 695.1956 }, "TerritoryId": 400, "InteractionType": "WalkTo", + "$": "Moglin", "AetheryteShortcut": "The Churning Mists - Moghome" }, { diff --git a/QuestPaths/3.x - Heavensward/Side Stories/Tales of the Dragonsong War/1475_The Paths We Walk.json b/QuestPaths/3.x - Heavensward/Side Stories/Tales of the Dragonsong War/1475_The Paths We Walk.json new file mode 100644 index 000000000..7f07f7b07 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Side Stories/Tales of the Dragonsong War/1475_The Paths We Walk.json @@ -0,0 +1,216 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1011217, + "Position": { + "X": 17.990356, + "Y": 16.009666, + "Z": -9.567444 + }, + "TerritoryId": 419, + "InteractionType": "Interact", + "TargetTerritoryId": 433, + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] The Last Vigil" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 419, + 433 + ] + }, + "StepIf": { + "InTerritory": [433] + } + } + }, + { + "DataId": 1012337, + "Position": { + "X": -5.874817, + "Y": -9.313226E-10, + "Z": -5.783203 + }, + "TerritoryId": 433, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2005334, + "Position": { + "X": -0.015319824, + "Y": 1.1443481, + "Z": 13.199036 + }, + "TerritoryId": 433, + "InteractionType": "Interact", + "TargetTerritoryId": 419, + "SkipConditions": { + "StepIf": { + "InTerritory": [419] + } + } + }, + { + "DataId": 1012180, + "Position": { + "X": -174.18176, + "Y": -12.555469, + "Z": -21.561035 + }, + "TerritoryId": 419, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Ishgard] The Last Vigil", + "[Ishgard] The Jeweled Crozier" + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1011192, + "Position": { + "X": 88.36499, + "Y": 15.094684, + "Z": 31.296265 + }, + "TerritoryId": 418, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Ishgard] The Jeweled Crozier", + "[Ishgard] The Forgotten Knight" + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1011952, + "Position": { + "X": -277.63788, + "Y": -184.59735, + "Z": 741.60376 + }, + "TerritoryId": 401, + "InteractionType": "Interact", + "AetheryteShortcut": "The Sea of Clouds - Camp Cloudtop", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1011231, + "Position": { + "X": 503.1051, + "Y": 217.95148, + "Z": 790.2189 + }, + "TerritoryId": 397, + "InteractionType": "Interact", + "AetheryteShortcut": "Coerthas Western Highlands - Falcon's Nest", + "Fly": true + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 2007017, + "Position": { + "X": 120.62256, + "Y": 14.938599, + "Z": -156.6034 + }, + "TerritoryId": 419, + "InteractionType": "Interact", + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] The Tribunal" + ] + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 2007018, + "Position": { + "X": 23.025818, + "Y": 27.939209, + "Z": -145.73895 + }, + "TerritoryId": 419, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 7, + "Steps": [ + { + "DataId": 1001029, + "Position": { + "X": 9.170593, + "Y": 20.999403, + "Z": -15.213318 + }, + "TerritoryId": 129, + "InteractionType": "Interact", + "AetheryteShortcut": "Limsa Lominsa", + "TargetTerritoryId": 198 + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": 25.714342, + "Y": 50.98988, + "Z": -779.1884 + }, + "TerritoryId": 156, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Mor Dhona", + "Fly": true + }, + { + "DataId": 1016809, + "Position": { + "X": 29.861816, + "Y": 50.99997, + "Z": -818.2651 + }, + "TerritoryId": 156, + "InteractionType": "CompleteQuest", + "NextQuestId": 1476 + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Side Stories/Tales of the Dragonsong War/1476_The Oaths We Swear.json b/QuestPaths/3.x - Heavensward/Side Stories/Tales of the Dragonsong War/1476_The Oaths We Swear.json new file mode 100644 index 000000000..a13f60a51 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Side Stories/Tales of the Dragonsong War/1476_The Oaths We Swear.json @@ -0,0 +1,162 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1016809, + "Position": { + "X": 29.861816, + "Y": 50.99997, + "Z": -818.2651 + }, + "TerritoryId": 156, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Mor Dhona", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": -119.1183, + "Y": 3.7999938, + "Z": -104.33473 + }, + "TerritoryId": 130, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Ul'dah", + "$": "Ul'dah Aetheryte to Immortal Flames" + }, + { + "DataId": 1004576, + "Position": { + "X": -141.64954, + "Y": 4.1, + "Z": -114.67157 + }, + "TerritoryId": 130, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1012345, + "Position": { + "X": 460.16626, + "Y": 162.5073, + "Z": -527.0314 + }, + "TerritoryId": 397, + "InteractionType": "Interact", + "AetheryteShortcut": "Coerthas Western Highlands - Falcon's Nest", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "Position": { + "X": 454.75964, + "Y": 164.27075, + "Z": -535.00354 + }, + "TerritoryId": 397, + "InteractionType": "WalkTo", + "$": "Gorgagne Mills (outside)", + "Mount": true + }, + { + "Position": { + "X": 454.9128, + "Y": 164.30827, + "Z": -542.1735 + }, + "TerritoryId": 397, + "InteractionType": "WalkTo", + "$": "Gorgagne Mills (inside)", + "DisableNavmesh": true + }, + { + "DataId": 1017119, + "Position": { + "X": 450.7362, + "Y": 157.40831, + "Z": -545.0675 + }, + "TerritoryId": 397, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "Position": { + "X": 454.9128, + "Y": 164.30827, + "Z": -542.1735 + }, + "TerritoryId": 397, + "InteractionType": "WalkTo", + "$": "Gorgagne Mills (inside)", + "Mount": true + }, + { + "Position": { + "X": 454.75964, + "Y": 164.27075, + "Z": -535.00354 + }, + "TerritoryId": 397, + "InteractionType": "WalkTo", + "$": "Gorgagne Mills (outside)", + "DisableNavmesh": true + }, + { + "DataId": 1011907, + "Position": { + "X": -288.8686, + "Y": 127.06639, + "Z": 13.199036 + }, + "TerritoryId": 397, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1011916, + "Position": { + "X": 470.02356, + "Y": -49.89133, + "Z": 20.370789 + }, + "TerritoryId": 398, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "The Dravanian Forelands - Tailfeather", + "NextQuestId": 1477 + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Side Stories/Tales of the Dragonsong War/1477_The Legacies We Leave.json b/QuestPaths/3.x - Heavensward/Side Stories/Tales of the Dragonsong War/1477_The Legacies We Leave.json new file mode 100644 index 000000000..17decc91f --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Side Stories/Tales of the Dragonsong War/1477_The Legacies We Leave.json @@ -0,0 +1,150 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1011916, + "Position": { + "X": 470.02356, + "Y": -49.89133, + "Z": 20.370789 + }, + "TerritoryId": 398, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "The Dravanian Forelands - Tailfeather", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": 470.88556, + "Y": -51.141403, + "Z": 36.143986 + }, + "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": 2, + "Steps": [ + { + "DataId": 1011935, + "Position": { + "X": -285.63367, + "Y": 39.04305, + "Z": 53.72693 + }, + "TerritoryId": 398, + "InteractionType": "Interact", + "AetheryteShortcut": "The Dravanian Forelands - Anyx Trine", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "Position": { + "X": 379.64865, + "Y": -69.42944, + "Z": 695.1956 + }, + "TerritoryId": 400, + "InteractionType": "WalkTo", + "Fly": true, + "$": "Moglin" + }, + { + "DataId": 1012077, + "Position": { + "X": 381.70435, + "Y": -66.84979, + "Z": 700.86194 + }, + "StopDistance": 8, + "TerritoryId": 400, + "InteractionType": "Interact", + "IgnoreDistanceToObject": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 2007019, + "Position": { + "X": -261.03613, + "Y": 30.350098, + "Z": 559.0447 + }, + "TerritoryId": 400, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 2007020, + "Position": { + "X": -6.2714844, + "Y": 30.014404, + "Z": 23.453125 + }, + "TerritoryId": 131, + "InteractionType": "Interact", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] The Chamber of Rule" + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1017123, + "Position": { + "X": 12.924377, + "Y": 33.999996, + "Z": -39.32251 + }, + "TerritoryId": 131, + "InteractionType": "CompleteQuest", + "NextQuestId": 1478 + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Side Stories/Tales of the Dragonsong War/1478_The Triumphs We Share.json b/QuestPaths/3.x - Heavensward/Side Stories/Tales of the Dragonsong War/1478_The Triumphs We Share.json new file mode 100644 index 000000000..e5d2c89c7 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Side Stories/Tales of the Dragonsong War/1478_The Triumphs We Share.json @@ -0,0 +1,147 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1017123, + "Position": { + "X": 12.924377, + "Y": 33.999996, + "Z": -39.32251 + }, + "TerritoryId": 131, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1017118, + "Position": { + "X": 34.37854, + "Y": 20.495003, + "Z": -652.1554 + }, + "TerritoryId": 156, + "InteractionType": "Interact", + "AetheryteShortcut": "Mor Dhona" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2007061, + "Position": { + "X": -158.22083, + "Y": 17.04425, + "Z": -55.13086 + }, + "TerritoryId": 418, + "InteractionType": "Interact", + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] Skysteel Manufactory" + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2007062, + "Position": { + "X": 570.1532, + "Y": -1.2055054, + "Z": -369.95502 + }, + "TerritoryId": 400, + "InteractionType": "Interact", + "AetheryteShortcut": "The Churning Mists - Moghome", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1012251, + "Position": { + "X": 12.313965, + "Y": -12.020877, + "Z": 40.268433 + }, + "TerritoryId": 418, + "InteractionType": "Interact", + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] The Brume" + ] + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1012065, + "Position": { + "X": -594.62885, + "Y": -51.05185, + "Z": -389.79175 + }, + "TerritoryId": 401, + "InteractionType": "Interact", + "AetheryteShortcut": "The Sea of Clouds - Ok' Zundu" + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1006756, + "Position": { + "X": -16.891846, + "Y": 10.17425, + "Z": -246.87573 + }, + "TerritoryId": 133, + "InteractionType": "Interact", + "AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Mih Khetto's Amphitheatre" + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1012097, + "Position": { + "X": 73.3501, + "Y": 205.88956, + "Z": 23.483582 + }, + "TerritoryId": 478, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Idyllshire", + "NextQuestId": 1479 + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Side Stories/Tales of the Dragonsong War/1479_The Burdens We Bear.json b/QuestPaths/3.x - Heavensward/Side Stories/Tales of the Dragonsong War/1479_The Burdens We Bear.json new file mode 100644 index 000000000..16d06fcec --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Side Stories/Tales of the Dragonsong War/1479_The Burdens We Bear.json @@ -0,0 +1,143 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1012097, + "Position": { + "X": 73.3501, + "Y": 205.88956, + "Z": 23.483582 + }, + "TerritoryId": 478, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2005336, + "Position": { + "X": -488.79227, + "Y": 138.93335, + "Z": 741.0543 + }, + "TerritoryId": 399, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Idyllshire] Aetheryte Plaza", + "[Idyllshire] Prologue Gate (Western Hinterlands)" + ], + "Fly": true, + "TargetTerritoryId": 463 + }, + { + "DataId": 1012138, + "Position": { + "X": 19.272095, + "Y": 38.43, + "Z": 15.854065 + }, + "TerritoryId": 463, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2007063, + "Position": { + "X": -867.3381, + "Y": -184.31378, + "Z": -661.0056 + }, + "TerritoryId": 402, + "InteractionType": "Interact", + "AetheryteShortcut": "Azys Lla - Helix", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2007068, + "Position": { + "X": -916.7773, + "Y": -184.31378, + "Z": -678.645 + }, + "TerritoryId": 402, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 2007064, + "Position": { + "X": -696.0708, + "Y": -37.094727, + "Z": 432.33386 + }, + "TerritoryId": 402, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 2007065, + "Position": { + "X": -64.2558, + "Y": 271.229, + "Z": -4.2268066 + }, + "TerritoryId": 402, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": 174.36705, + "Y": 393.17496, + "Z": -569.3414 + }, + "TerritoryId": 155, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", + "Fly": true + }, + { + "DataId": 2007066, + "Position": { + "X": 50.339478, + "Y": 374.47156, + "Z": -676.5088 + }, + "TerritoryId": 155, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} -- 2.45.2 From b08110a9c0ab7ff54bd9b42dd87157c9fb7f075e Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Fri, 29 Nov 2024 11:06:30 +0100 Subject: [PATCH 293/448] Minor BLM adjustments --- .../BLM/1077_The Blood Must Flow.json | 30 +++++- .../BLM/1078_Always Bet on Black.json | 92 +++++++++++++++++-- 2 files changed, 112 insertions(+), 10 deletions(-) diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/BLM/1077_The Blood Must Flow.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/BLM/1077_The Blood Must Flow.json index 0e96f2677..cbd49f975 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/BLM/1077_The Blood Must Flow.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/BLM/1077_The Blood Must Flow.json @@ -38,7 +38,15 @@ "InteractionType": "UseItem", "ItemId": 2000812, "AetheryteShortcut": "Southern Thanalan - Forgotten Springs", - "Fly": true + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] }, { "DataId": 2002435, @@ -51,7 +59,15 @@ "InteractionType": "UseItem", "ItemId": 2000955, "AetheryteShortcut": "North Shroud - Fallgourd Float", - "Fly": true + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] }, { "DataId": 2002436, @@ -64,7 +80,15 @@ "InteractionType": "UseItem", "ItemId": 2000956, "AetheryteShortcut": "Outer La Noscea - Camp Overlook", - "Fly": true + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] } ] }, diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/BLM/1078_Always Bet on Black.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/BLM/1078_Always Bet on Black.json index b678a1fcc..a24c97b80 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/BLM/1078_Always Bet on Black.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/BLM/1078_Always Bet on Black.json @@ -56,17 +56,71 @@ { "Sequence": 2, "Steps": [ + { + "Position": { + "X": -173.17781, + "Y": 18.28456, + "Z": -280.36884 + }, + "TerritoryId": 146, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Southern Thanalan - Little Ala Mhigo", + "SkipConditions": { + "StepIf": { + "Flying": "Unlocked" + } + } + }, + { + "Position": { + "X": -180.27478, + "Y": 3.2999475, + "Z": -243.23695 + }, + "TerritoryId": 146, + "InteractionType": "WalkTo", + "DisableNavmesh": true, + "SkipConditions": { + "StepIf": { + "Flying": "Unlocked" + } + } + }, + { + "Position": { + "X": -261.198, + "Y": 18.43726, + "Z": -104.834755 + }, + "TerritoryId": 146, + "InteractionType": "WalkTo", + "Fly": true, + "SkipConditions": { + "StepIf": { + "Flying": "Locked" + } + } + }, + { + "Position": { + "X": -428.2874, + "Y": 5.952176, + "Z": -21.0684 + }, + "TerritoryId": 146, + "InteractionType": "WalkTo", + "Fly": true + }, { "Position": { "X": -431.92166, "Y": 6.5580425, "Z": -17.561014 }, + "StopDistance": 0.5, "TerritoryId": 146, - "InteractionType": "WalkTo", - "AetheryteShortcut": "Southern Thanalan - Forgotten Springs", - "Fly": false, - "$": "Flying in Thanalan is TERRIBLE due to heigh limit." + "InteractionType": "SinglePlayerDuty", + "Mount": false } ] }, @@ -81,7 +135,15 @@ "Z": 59.464355 }, "TerritoryId": 146, - "InteractionType": "Interact" + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] }, { "DataId": 1007871, @@ -91,7 +153,15 @@ "Z": 65.415405 }, "TerritoryId": 146, - "InteractionType": "Interact" + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] }, { "DataId": 1007873, @@ -101,7 +171,15 @@ "Z": 63.370728 }, "TerritoryId": 146, - "InteractionType": "Interact" + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] } ] }, -- 2.45.2 From de07465368165d57240e8274e3ea6e25eeab0497 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Fri, 29 Nov 2024 23:45:08 +0100 Subject: [PATCH 294/448] Add 'A Guest from Across the Salt' --- .../5197_A Guest from Across the Salt.json | 131 ++++++++++++++++++ 1 file changed, 131 insertions(+) create mode 100644 QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Story/5197_A Guest from Across the Salt.json diff --git a/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Story/5197_A Guest from Across the Salt.json b/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Story/5197_A Guest from Across the Salt.json new file mode 100644 index 000000000..9785698b7 --- /dev/null +++ b/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Story/5197_A Guest from Across the Salt.json @@ -0,0 +1,131 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "Position": { + "X": 809.655, + "Y": 17.004526, + "Z": -257.89868 + }, + "TerritoryId": 1188, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Kozama'uka - Dock Poga", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + }, + { + "DataId": 1051710, + "Position": { + "X": 822.629, + "Y": 17.102613, + "Z": -263.20288 + }, + "TerritoryId": 1188, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1051710, + "Position": { + "X": 822.629, + "Y": 17.102613, + "Z": -263.20288 + }, + "TerritoryId": 1188, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": 746.76465, + "Y": 15.431515, + "Z": -201.92921 + }, + "TerritoryId": 1188, + "InteractionType": "WalkTo" + }, + { + "DataId": 1051741, + "Position": { + "X": 744.19763, + "Y": 15.431515, + "Z": -199.17603 + }, + "StopDistance": 7, + "TerritoryId": 1188, + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_BANPEL005_05197_Q1_000_001", + "Answer": "TEXT_BANPEL005_05197_A1_000_001" + } + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2014435, + "Position": { + "X": 753.1699, + "Y": 11.459534, + "Z": -253.55927 + }, + "TerritoryId": 1188, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1051742, + "Position": { + "X": 187.45703, + "Y": 0.7218611, + "Z": -458.18268 + }, + "StopDistance": 5, + "TerritoryId": 1188, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1051744, + "Position": { + "X": 820.6454, + "Y": 13.759646, + "Z": -230.12134 + }, + "TerritoryId": 1188, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Kozama'uka - Dock Poga" + } + ] + } + ] +} -- 2.45.2 From dc4d216fba69b39bd7321f6ffbf6fef26d737e29 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sat, 30 Nov 2024 00:11:47 +0100 Subject: [PATCH 295/448] =?UTF-8?q?Sort=20'A=20Relic=20Reborn'=20quests=20?= =?UTF-8?q?under=20Weapon=20Enhancement=20Quests=20=E2=86=92=20Zodiac=20We?= =?UTF-8?q?apons=20instead=20of=20job=20quests?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Questionable/Data/QuestData.cs | 10 +++++++++- Questionable/Model/QuestInfo.cs | 4 ++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/Questionable/Data/QuestData.cs b/Questionable/Data/QuestData.cs index 77b20e016..b1f26524b 100644 --- a/Questionable/Data/QuestData.cs +++ b/Questionable/Data/QuestData.cs @@ -177,9 +177,17 @@ internal sealed class QuestData foreach (var questId in uldahSideQuests) ((QuestInfo)_quests[new QuestId(questId)]).StartingCity = 3; - // follow-up quests to picking a GC AddGcFollowUpQuests(); + + // update relic quests to be in a different journal category + ushort[] zodiacStartingQuests = [1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1579]; + foreach (var questId in zodiacStartingQuests) + { + var quest = ((QuestInfo)_quests[new QuestId(questId)]); + quest.JournalGenre = 82; + quest.SortKey = 0; + } } private void AddPreviousQuest(QuestId questToUpdate, QuestId requiredQuestId) diff --git a/Questionable/Model/QuestInfo.cs b/Questionable/Model/QuestInfo.cs index bc766b671..bc3d1838c 100644 --- a/Questionable/Model/QuestInfo.cs +++ b/Questionable/Model/QuestInfo.cs @@ -79,8 +79,8 @@ internal sealed class QuestInfo : IQuestInfo public EQuestJoin QuestLockJoin { get; private set; } public List PreviousInstanceContent { get; } public EQuestJoin PreviousInstanceContentJoin { get; } - public uint? JournalGenre { get; } - public ushort SortKey { get; } + public uint? JournalGenre { get; set; } + public ushort SortKey { get; set; } public bool IsMainScenarioQuest { get; } public bool CompletesInstantly { get; } public GrandCompany GrandCompany { get; } -- 2.45.2 From c6a783132e30835593e2b5ee1e849a91456e660d Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sat, 30 Nov 2024 02:45:15 +0100 Subject: [PATCH 296/448] Add SB SAM quests --- .../SAM/2559_The Way of the Samurai.json | 62 +++++ .../Class Quests/SAM/2560_Master Musosai.json | 124 ++++++++++ .../SAM/2561_The Sands of Debt.json | 206 ++++++++++++++++ .../SAM/2562_Blood on the Deck.json | 183 ++++++++++++++ .../SAM/2563_A Fraudster in the Forest.json | 205 ++++++++++++++++ .../SAM/2564_Tears in the Snow.json | 226 ++++++++++++++++++ .../SAM/2565_The Face of True Evil.json | 108 +++++++++ .../SAM/2566_A Dignified Visitor.json | 123 ++++++++++ .../SAM/2567_Trials of the Sekiseigumi.json | 127 ++++++++++ .../Class Quests/SAM/2568_Matsuba Mayhem.json | 149 ++++++++++++ .../SAM/2569_The Hunt for Ugetsu.json | 163 +++++++++++++ .../SAM/2570_The Battle on Bekko.json | 183 ++++++++++++++ 12 files changed, 1859 insertions(+) create mode 100644 QuestPaths/4.x - Stormblood/Class Quests/SAM/2559_The Way of the Samurai.json create mode 100644 QuestPaths/4.x - Stormblood/Class Quests/SAM/2560_Master Musosai.json create mode 100644 QuestPaths/4.x - Stormblood/Class Quests/SAM/2561_The Sands of Debt.json create mode 100644 QuestPaths/4.x - Stormblood/Class Quests/SAM/2562_Blood on the Deck.json create mode 100644 QuestPaths/4.x - Stormblood/Class Quests/SAM/2563_A Fraudster in the Forest.json create mode 100644 QuestPaths/4.x - Stormblood/Class Quests/SAM/2564_Tears in the Snow.json create mode 100644 QuestPaths/4.x - Stormblood/Class Quests/SAM/2565_The Face of True Evil.json create mode 100644 QuestPaths/4.x - Stormblood/Class Quests/SAM/2566_A Dignified Visitor.json create mode 100644 QuestPaths/4.x - Stormblood/Class Quests/SAM/2567_Trials of the Sekiseigumi.json create mode 100644 QuestPaths/4.x - Stormblood/Class Quests/SAM/2568_Matsuba Mayhem.json create mode 100644 QuestPaths/4.x - Stormblood/Class Quests/SAM/2569_The Hunt for Ugetsu.json create mode 100644 QuestPaths/4.x - Stormblood/Class Quests/SAM/2570_The Battle on Bekko.json diff --git a/QuestPaths/4.x - Stormblood/Class Quests/SAM/2559_The Way of the Samurai.json b/QuestPaths/4.x - Stormblood/Class Quests/SAM/2559_The Way of the Samurai.json new file mode 100644 index 000000000..37852dc9e --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/SAM/2559_The Way of the Samurai.json @@ -0,0 +1,62 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1021829, + "Position": { + "X": -98.435974, + "Y": 4, + "Z": -104.997375 + }, + "TerritoryId": 130, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1021830, + "Position": { + "X": -102.06769, + "Y": 6.9845653, + "Z": 12.008789 + }, + "TerritoryId": 131, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Gladiators' Guild" + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1021834, + "Position": { + "X": -89.28058, + "Y": 2.150006, + "Z": 59.739014 + }, + "TerritoryId": 131, + "InteractionType": "CompleteQuest", + "NextQuestId": 2560 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Class Quests/SAM/2560_Master Musosai.json b/QuestPaths/4.x - Stormblood/Class Quests/SAM/2560_Master Musosai.json new file mode 100644 index 000000000..c3c9022e3 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/SAM/2560_Master Musosai.json @@ -0,0 +1,124 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "TerritoryId": 131, + "InteractionType": "EquipItem", + "ItemId": 20388, + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Gladiators' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 131 + ] + }, + "StepIf": { + "Item": { + "NotInInventory": true + } + } + } + }, + { + "Position": { + "X": -89.28058, + "Y": 2.150006, + "Z": 59.739014 + }, + "TerritoryId": 131, + "InteractionType": "UseItem", + "ItemId": 20620, + "SkipConditions": { + "StepIf": { + "Item": { + "NotInInventory": true + } + } + } + }, + { + "TerritoryId": 131, + "InteractionType": "EquipRecommended" + }, + { + "DataId": 1023637, + "Position": { + "X": -89.28058, + "Y": 2.150006, + "Z": 59.739014 + }, + "TerritoryId": 131, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1023637, + "Position": { + "X": -89.28058, + "Y": 2.150006, + "Z": 59.739014 + }, + "TerritoryId": 131, + "InteractionType": "SinglePlayerDuty" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1023637, + "Position": { + "X": -89.28058, + "Y": 2.150006, + "Z": 59.739014 + }, + "StopDistance": 5, + "TerritoryId": 131, + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_JOBSAM501_02560_Q1_000_035", + "Yes": true + } + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1021835, + "Position": { + "X": 35.66028, + "Y": 6.9999986, + "Z": -82.993835 + }, + "TerritoryId": 130, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Adventurers' Guild" + ], + "NextQuestId": 2561 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Class Quests/SAM/2561_The Sands of Debt.json b/QuestPaths/4.x - Stormblood/Class Quests/SAM/2561_The Sands of Debt.json new file mode 100644 index 000000000..a638a1092 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/SAM/2561_The Sands of Debt.json @@ -0,0 +1,206 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1021835, + "Position": { + "X": 35.66028, + "Y": 6.9999986, + "Z": -82.993835 + }, + "TerritoryId": 130, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Adventurers' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": -157.90921, + "Y": 4.650242, + "Z": 238.56398 + }, + "TerritoryId": 141, + "InteractionType": "WalkTo", + "Fly": true, + "AethernetShortcut": [ + "[Ul'dah] Adventurers' Guild", + "[Ul'dah] Gate of Nald (Central Thanalan)" + ] + }, + { + "DataId": 1021843, + "Position": { + "X": -164.3855, + "Y": 4.2354193, + "Z": 234.36328 + }, + "TerritoryId": 141, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 1021844, + "Position": { + "X": -157.27478, + "Y": 4.2354183, + "Z": 205.46265 + }, + "TerritoryId": 141, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 1021845, + "Position": { + "X": -138.59778, + "Y": 4.211028, + "Z": 223.95667 + }, + "TerritoryId": 141, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1021847, + "Position": { + "X": -153.0633, + "Y": 4.2354183, + "Z": 226.55066 + }, + "TerritoryId": 141, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1022092, + "Position": { + "X": -132.31104, + "Y": 3.9113228, + "Z": 221.20996 + }, + "TerritoryId": 141, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1021849, + "Position": { + "X": 91.17261, + "Y": 0.95918494, + "Z": 345.6931 + }, + "TerritoryId": 141, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "Position": { + "X": 101.36345, + "Y": 1.4716027, + "Z": 356.92258 + }, + "StopDistance": 0.5, + "TerritoryId": 141, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [ + 7237 + ] + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1021854, + "Position": { + "X": 106.06543, + "Y": 1.957012, + "Z": 360.15857 + }, + "StopDistance": 7, + "TerritoryId": 141, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1021858, + "Position": { + "X": 9.536865, + "Y": 40.00023, + "Z": -15.213318 + }, + "TerritoryId": 128, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] The Aftcastle" + ], + "NextQuestId": 2562 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Class Quests/SAM/2562_Blood on the Deck.json b/QuestPaths/4.x - Stormblood/Class Quests/SAM/2562_Blood on the Deck.json new file mode 100644 index 000000000..c8f2b2b07 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/SAM/2562_Blood on the Deck.json @@ -0,0 +1,183 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1021858, + "Position": { + "X": 9.536865, + "Y": 40.00023, + "Z": -15.213318 + }, + "TerritoryId": 128, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] The Aftcastle" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 128 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1001217, + "Position": { + "X": -140.85602, + "Y": 18.199999, + "Z": 17.013733 + }, + "TerritoryId": 129, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Limsa Lominsa] The Aftcastle", + "[Limsa Lominsa] Aetheryte Plaza" + ], + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 1001208, + "Position": { + "X": -228.16821, + "Y": 16, + "Z": 50.644653 + }, + "TerritoryId": 129, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, + { + "DataId": 1003272, + "Position": { + "X": -262.92822, + "Y": 16.2, + "Z": 51.407593 + }, + "TerritoryId": 129, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1021860, + "Position": { + "X": -205.70691, + "Y": 16, + "Z": 52.8114 + }, + "TerritoryId": 129, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1021862, + "Position": { + "X": -176.62323, + "Y": 4, + "Z": 181.65857 + }, + "StopDistance": 7, + "TerritoryId": 129, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Limsa Lominsa] Hawkers' Alley", + "[Limsa Lominsa] Fishermens' Guild" + ] + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1006273, + "Position": { + "X": 619.0126, + "Y": 23.936245, + "Z": 455.10022 + }, + "TerritoryId": 137, + "InteractionType": "Interact", + "AetheryteShortcut": "Eastern La Noscea - Costa Del Sol", + "Fly": true + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1021866, + "Position": { + "X": 673.54834, + "Y": 11.594437, + "Z": 390.7378 + }, + "TerritoryId": 137, + "InteractionType": "SinglePlayerDuty", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1021869, + "Position": { + "X": 43.259277, + "Y": -8, + "Z": 99.19885 + }, + "StopDistance": 1.5, + "TerritoryId": 132, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Gridania", + "NextQuestId": 2563 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Class Quests/SAM/2563_A Fraudster in the Forest.json b/QuestPaths/4.x - Stormblood/Class Quests/SAM/2563_A Fraudster in the Forest.json new file mode 100644 index 000000000..5acbf3cfa --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/SAM/2563_A Fraudster in the Forest.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": 1021869, + "Position": { + "X": 43.259277, + "Y": -8, + "Z": 99.19885 + }, + "StopDistance": 1.5, + "TerritoryId": 132, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Gridania", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1000146, + "Position": { + "X": 49.79016, + "Y": -1.4669685, + "Z": 51.743286 + }, + "TerritoryId": 132, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 1000184, + "Position": { + "X": 12.130859, + "Y": -1.4203229, + "Z": 30.44165 + }, + "TerritoryId": 132, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 1001276, + "Position": { + "X": 13.961914, + "Y": 0.1373291, + "Z": 2.090454 + }, + "TerritoryId": 132, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1021871, + "Position": { + "X": -17.929382, + "Y": -3.5175722, + "Z": 8.895996 + }, + "TerritoryId": 132, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1000168, + "Position": { + "X": -75.48645, + "Y": -0.5013741, + "Z": -5.081299 + }, + "TerritoryId": 132, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "Position": { + "X": 16.415976, + "Y": -13.3742895, + "Z": 13.173157 + }, + "StopDistance": 0.5, + "TerritoryId": 154, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [ + 7492, + 7493 + ], + "AetheryteShortcut": "North Shroud - Fallgourd Float", + "Fly": true + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1021873, + "Position": { + "X": 15.6710205, + "Y": -13.159564, + "Z": 14.572327 + }, + "TerritoryId": 154, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1021877, + "Position": { + "X": 72.03784, + "Y": -13.573448, + "Z": -6.790344 + }, + "TerritoryId": 154, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 7, + "Steps": [ + { + "DataId": 1021923, + "Position": { + "X": -16.739136, + "Y": -3.3721945, + "Z": 8.590759 + }, + "TerritoryId": 132, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1021878, + "Position": { + "X": 112.41321, + "Y": 3.6299734, + "Z": 62.302612 + }, + "TerritoryId": 418, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] The Brume" + ], + "NextQuestId": 2564 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Class Quests/SAM/2564_Tears in the Snow.json b/QuestPaths/4.x - Stormblood/Class Quests/SAM/2564_Tears in the Snow.json new file mode 100644 index 000000000..63fe6df09 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/SAM/2564_Tears in the Snow.json @@ -0,0 +1,226 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1021878, + "Position": { + "X": 112.41321, + "Y": 3.6299734, + "Z": 62.302612 + }, + "TerritoryId": 418, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] The Brume" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": 89.911125, + "Y": 0.8319905, + "Z": 69.05516 + }, + "TerritoryId": 418, + "InteractionType": "WalkTo" + }, + { + "Position": { + "X": 79.70269, + "Y": -15.835008, + "Z": 69.00836 + }, + "TerritoryId": 418, + "InteractionType": "WalkTo", + "DisableNavmesh": true + }, + { + "DataId": 1021882, + "Position": { + "X": 104.29541, + "Y": -20.020874, + "Z": 60.624023 + }, + "TerritoryId": 418, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 1021883, + "Position": { + "X": 35.202515, + "Y": -14.000005, + "Z": 34.74475 + }, + "TerritoryId": 418, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 1021884, + "Position": { + "X": 20.645447, + "Y": -12.020878, + "Z": 37.79651 + }, + "TerritoryId": 418, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": 52.22194, + "Y": -12.020878, + "Z": 75.08158 + }, + "TerritoryId": 418, + "InteractionType": "WalkTo" + }, + { + "DataId": 1021885, + "Position": { + "X": 36.63684, + "Y": -6.947115, + "Z": 79.39258 + }, + "TerritoryId": 418, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1022094, + "Position": { + "X": 110.27698, + "Y": -20.000004, + "Z": 69.93213 + }, + "TerritoryId": 418, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1021886, + "Position": { + "X": 0.015197754, + "Y": 13.46524, + "Z": 59.15918 + }, + "StopDistance": 7, + "TerritoryId": 419, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Ishgard] The Brume", + "[Ishgard] The Last Vigil" + ] + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "Position": { + "X": 360.62927, + "Y": 161.10802, + "Z": 27.17857 + }, + "StopDistance": 0.5, + "TerritoryId": 397, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [ + 7237, + 7494 + ], + "AetheryteShortcut": "Coerthas Western Highlands - Falcon's Nest", + "Fly": true + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1021888, + "Position": { + "X": 358.87683, + "Y": 161.108, + "Z": 26.5354 + }, + "TerritoryId": 397, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1021879, + "Position": { + "X": 112.50476, + "Y": 3.6299736, + "Z": 60.837646 + }, + "TerritoryId": 418, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] The Brume" + ], + "NextQuestId": 2565 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Class Quests/SAM/2565_The Face of True Evil.json b/QuestPaths/4.x - Stormblood/Class Quests/SAM/2565_The Face of True Evil.json new file mode 100644 index 000000000..2e453f8f0 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/SAM/2565_The Face of True Evil.json @@ -0,0 +1,108 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1021879, + "Position": { + "X": 112.50476, + "Y": 3.6299736, + "Z": 60.837646 + }, + "TerritoryId": 418, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] The Brume" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2008327, + "Position": { + "X": 59.40332, + "Y": 23.971863, + "Z": -5.6000977 + }, + "TerritoryId": 418, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2008328, + "Position": { + "X": -17.288513, + "Y": 5.4779663, + "Z": 29.709229 + }, + "TerritoryId": 418, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "Position": { + "X": 465.55804, + "Y": 203.43318, + "Z": 680.2831 + }, + "TerritoryId": 397, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Coerthas Western Highlands - Falcon's Nest", + "SkipConditions": { + "StepIf": { + "Flying": "Unlocked" + } + } + }, + { + "DataId": 1021894, + "Position": { + "X": -217.82257, + "Y": 112.33306, + "Z": -243.94604 + }, + "TerritoryId": 397, + "InteractionType": "SinglePlayerDuty", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1021836, + "Position": { + "X": 36.850464, + "Y": 6.999999, + "Z": -83.78735 + }, + "TerritoryId": 130, + "InteractionType": "CompleteQuest", + "NextQuestId": 2566 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Class Quests/SAM/2566_A Dignified Visitor.json b/QuestPaths/4.x - Stormblood/Class Quests/SAM/2566_A Dignified Visitor.json new file mode 100644 index 000000000..b548a3fc4 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/SAM/2566_A Dignified Visitor.json @@ -0,0 +1,123 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1021836, + "Position": { + "X": 36.850464, + "Y": 6.999999, + "Z": -83.78735 + }, + "TerritoryId": 130, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Adventurers' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1022185, + "Position": { + "X": 39.04773, + "Y": 8, + "Z": -119.76807 + }, + "TerritoryId": 130, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": -99.923485, + "Y": 49.52189, + "Z": 322.85992 + }, + "StopDistance": 0.5, + "TerritoryId": 140, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [ + 7495 + ], + "AethernetShortcut": [ + "[Ul'dah] Adventurers' Guild", + "[Ul'dah] Gate of the Sultana (Western Thanalan)" + ], + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1022186, + "Position": { + "X": -98.95477, + "Y": 49.469913, + "Z": 317.83008 + }, + "StopDistance": 7, + "TerritoryId": 140, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1022189, + "Position": { + "X": -312.67267, + "Y": 33.089348, + "Z": 446.5553 + }, + "TerritoryId": 140, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1021836, + "Position": { + "X": 36.850464, + "Y": 6.999999, + "Z": -83.78735 + }, + "TerritoryId": 130, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Adventurers' Guild" + ], + "NextQuestId": 2567 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Class Quests/SAM/2567_Trials of the Sekiseigumi.json b/QuestPaths/4.x - Stormblood/Class Quests/SAM/2567_Trials of the Sekiseigumi.json new file mode 100644 index 000000000..fe9ac0923 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/SAM/2567_Trials of the Sekiseigumi.json @@ -0,0 +1,127 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1021836, + "Position": { + "X": 36.850464, + "Y": 6.999999, + "Z": -83.78735 + }, + "TerritoryId": 130, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Adventurers' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1022190, + "Position": { + "X": 128.61829, + "Y": 15, + "Z": -158.03778 + }, + "TerritoryId": 628, + "InteractionType": "Interact", + "AetheryteShortcut": "Kugane", + "AethernetShortcut": [ + "[Kugane] Aetheryte Plaza", + "[Kugane] Sekiseigumi Barracks" + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1024622, + "Position": { + "X": 102.433716, + "Y": 0.2814351, + "Z": -550.9575 + }, + "TerritoryId": 613, + "InteractionType": "Interact", + "TargetTerritoryId": 613, + "AetheryteShortcut": "Ruby Sea - Onokoro", + "Fly": true + }, + { + "Position": { + "X": 568.7077, + "Y": 0.73303545, + "Z": 754.9407 + }, + "StopDistance": 0.5, + "TerritoryId": 613, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [ + 7496 + ], + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1022191, + "Position": { + "X": 567.8645, + "Y": 0.73303545, + "Z": 755.1842 + }, + "TerritoryId": 613, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1022190, + "Position": { + "X": 128.61829, + "Y": 15, + "Z": -158.03778 + }, + "TerritoryId": 628, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Kugane", + "AethernetShortcut": [ + "[Kugane] Aetheryte Plaza", + "[Kugane] Sekiseigumi Barracks" + ], + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_JOBSAM630_02567_Q1_000_054", + "Yes": true + } + ], + "NextQuestId": 2568 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Class Quests/SAM/2568_Matsuba Mayhem.json b/QuestPaths/4.x - Stormblood/Class Quests/SAM/2568_Matsuba Mayhem.json new file mode 100644 index 000000000..7d8e765f3 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/SAM/2568_Matsuba Mayhem.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": [ + { + "DataId": 1022184, + "Position": { + "X": 129.71692, + "Y": 15, + "Z": -157.61047 + }, + "TerritoryId": 628, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Kugane", + "AethernetShortcut": [ + "[Kugane] Aetheryte Plaza", + "[Kugane] Sekiseigumi Barracks" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2008439, + "Position": { + "X": -100.87744, + "Y": -6.0273438, + "Z": 67.03284 + }, + "TerritoryId": 628, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Kugane] Sekiseigumi Barracks", + "[Kugane] Kogane Dori Markets" + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2008440, + "Position": { + "X": -140.36774, + "Y": -7.0649414, + "Z": 78.3551 + }, + "TerritoryId": 628, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2008441, + "Position": { + "X": -140.33728, + "Y": -7.0039062, + "Z": 72.739746 + }, + "TerritoryId": 628, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1022196, + "Position": { + "X": -22.293457, + "Y": -3, + "Z": 31.814941 + }, + "TerritoryId": 628, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1022197, + "Position": { + "X": 46.219482, + "Y": 8.02, + "Z": 144.79285 + }, + "TerritoryId": 628, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Kugane] Kogane Dori Markets", + "[Kugane] Thavnairian Consulate" + ] + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1022201, + "Position": { + "X": 37.338745, + "Y": 5.951233, + "Z": -133.95898 + }, + "TerritoryId": 628, + "InteractionType": "SinglePlayerDuty", + "AethernetShortcut": [ + "[Kugane] Thavnairian Consulate", + "[Kugane] Rakuza District" + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1022203, + "Position": { + "X": 128.55725, + "Y": 15, + "Z": -158.09875 + }, + "TerritoryId": 628, + "InteractionType": "CompleteQuest", + "NextQuestId": 2569 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Class Quests/SAM/2569_The Hunt for Ugetsu.json b/QuestPaths/4.x - Stormblood/Class Quests/SAM/2569_The Hunt for Ugetsu.json new file mode 100644 index 000000000..9ea469609 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/SAM/2569_The Hunt for Ugetsu.json @@ -0,0 +1,163 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1022184, + "Position": { + "X": 129.71692, + "Y": 15, + "Z": -157.61047 + }, + "StopDistance": 5, + "TerritoryId": 628, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Kugane", + "AethernetShortcut": [ + "[Kugane] Aetheryte Plaza", + "[Kugane] Sekiseigumi Barracks" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1022204, + "Position": { + "X": 537.01074, + "Y": 70.39123, + "Z": 25.375732 + }, + "TerritoryId": 614, + "InteractionType": "Interact", + "AetheryteShortcut": "Yanxia - Namai", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2008443, + "Position": { + "X": 255.02393, + "Y": 7.7667847, + "Z": 458.5182 + }, + "TerritoryId": 614, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 7497 + ], + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2008444, + "Position": { + "X": 152.57495, + "Y": 13.626221, + "Z": 425.55872 + }, + "TerritoryId": 614, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 7498 + ], + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 2008445, + "Position": { + "X": 64.43884, + "Y": 10.788086, + "Z": 444.23596 + }, + "TerritoryId": 614, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 7496 + ], + "Fly": true + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1022205, + "Position": { + "X": 175.2804, + "Y": 5.1901503, + "Z": 522.33154 + }, + "TerritoryId": 614, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1022205, + "Position": { + "X": 175.2804, + "Y": 5.1901503, + "Z": 522.33154 + }, + "TerritoryId": 614, + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_JOBSAM680_02569_Q1_000_041", + "Yes": true + } + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1022184, + "Position": { + "X": 129.71692, + "Y": 15, + "Z": -157.61047 + }, + "TerritoryId": 628, + "InteractionType": "CompleteQuest", + "NextQuestId": 2570 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Class Quests/SAM/2570_The Battle on Bekko.json b/QuestPaths/4.x - Stormblood/Class Quests/SAM/2570_The Battle on Bekko.json new file mode 100644 index 000000000..0363ffbc2 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/SAM/2570_The Battle on Bekko.json @@ -0,0 +1,183 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1022184, + "Position": { + "X": 129.71692, + "Y": 15, + "Z": -157.61047 + }, + "TerritoryId": 628, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Kugane", + "AethernetShortcut": [ + "[Kugane] Aetheryte Plaza", + "[Kugane] Sekiseigumi Barracks" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1022208, + "Position": { + "X": 14.755432, + "Y": -6.558981E-11, + "Z": -66.88031 + }, + "TerritoryId": 628, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Kugane] Sekiseigumi Barracks", + "[Kugane] Aetheryte Plaza" + ], + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 1022207, + "Position": { + "X": -59.861206, + "Y": -2.9000297, + "Z": -64.805115 + }, + "TerritoryId": 628, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 1022209, + "Position": { + "X": 42.648926, + "Y": 4.0000005, + "Z": 54.97815 + }, + "TerritoryId": 628, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Kugane] Shiokaze Hostelry", + "[Kugane] Kogane Dori Markets" + ], + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1022377, + "Position": { + "X": 124.6814, + "Y": 15, + "Z": -154.83331 + }, + "TerritoryId": 628, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Kugane] Kogane Dori Markets", + "[Kugane] Sekiseigumi Barracks" + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "Position": { + "X": 541.33655, + "Y": -61.59003, + "Z": -166.09608 + }, + "TerritoryId": 613, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Ruby Sea - Tamamizu", + "SkipConditions": { + "StepIf": { + "Flying": "Unlocked" + } + } + }, + { + "Position": { + "X": 545.0479, + "Y": -61.943626, + "Z": -147.57167 + }, + "TerritoryId": 613, + "InteractionType": "WalkTo", + "DisableNavmesh": true, + "SkipConditions": { + "StepIf": { + "Flying": "Unlocked" + } + } + }, + { + "DataId": 1022215, + "Position": { + "X": 787.19763, + "Y": 1.5872339, + "Z": 80.03345 + }, + "TerritoryId": 613, + "InteractionType": "SinglePlayerDuty", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1022184, + "Position": { + "X": 129.71692, + "Y": 15, + "Z": -157.61047 + }, + "TerritoryId": 628, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Kugane", + "AethernetShortcut": [ + "[Kugane] Aetheryte Plaza", + "[Kugane] Sekiseigumi Barracks" + ] + } + ] + } + ] +} -- 2.45.2 From c929e29e3933188353318008743bd2d1b94f2302 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sat, 30 Nov 2024 17:27:25 +0100 Subject: [PATCH 297/448] Make flower box overrides in Gridania more precise --- .../NavigationOverrides/MovementOverrideController.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Questionable/Controller/NavigationOverrides/MovementOverrideController.cs b/Questionable/Controller/NavigationOverrides/MovementOverrideController.cs index 182946f67..825908027 100644 --- a/Questionable/Controller/NavigationOverrides/MovementOverrideController.cs +++ b/Questionable/Controller/NavigationOverrides/MovementOverrideController.cs @@ -25,8 +25,8 @@ internal sealed class MovementOverrideController new BlacklistedPoint(205, new(26.75f, 0.5f, 20.75f), new(27.179117f, 0.26728272f, 19.714373f)), // New Gridania Navmesh workaround - planter box outside the Carline Canopy - new BlacklistedPoint(132, new(45.5f, -8f, 101f), new(50.53978f, -8.046954f, 101.06045f), 3), - new BlacklistedPoint(132, new(48.5f, -8f, 98.25f), new(50.53978f, -8.046954f, 101.06045f), 3), + new BlacklistedPoint(132, new(45.5f, -8f, 101f), new(50.53978f, -8.046954f, 101.06045f), 1), + new BlacklistedPoint(132, new(48.5f, -8f, 98.25f), new(50.53978f, -8.046954f, 101.06045f), 3f), // ul'dah lamp near adventurers' guild new BlacklistedPoint(130, new(59.5f, 4.25f, -118f), new(60.551353f, 4f, -119.76446f)), -- 2.45.2 From 6654ebc676e9d4735acb7084af3b41b80bd12f04 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sat, 30 Nov 2024 18:38:41 +0100 Subject: [PATCH 298/448] Add 'Flea Troubles' Vath quest --- .../Vath/Dailies/2276_Flea Troubles.json | 127 ++++++++++++++++++ 1 file changed, 127 insertions(+) create mode 100644 QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2276_Flea Troubles.json diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2276_Flea Troubles.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2276_Flea Troubles.json new file mode 100644 index 000000000..871c9feb5 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2276_Flea Troubles.json @@ -0,0 +1,127 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "plogon_enjoyer", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1016803, + "Position": { + "X": 57.297607, + "Y": -47.842846, + "Z": -174.63953 + }, + "TerritoryId": 398, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1017031, + "Position": { + "X": 74.20459, + "Y": -48.533592, + "Z": -171.12994 + }, + "TerritoryId": 398, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2006938, + "Position": { + "X": -178.88159, + "Y": 179.88855, + "Z": 4.257263 + }, + "TerritoryId": 398, + "InteractionType": "Action", + "Action": "Fumigate", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 2006940, + "Position": { + "X": -311.8181, + "Y": -29.495728, + "Z": 143.63306 + }, + "TerritoryId": 398, + "InteractionType": "Action", + "Action": "Fumigate", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, + { + "DataId": 2006939, + "Position": { + "X": -313.80182, + "Y": -29.495728, + "Z": 102.098145 + }, + "TerritoryId": 398, + "InteractionType": "Action", + "Action": "Fumigate", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": 58.39701, + "Y": -48.000008, + "Z": -172.36507 + }, + "TerritoryId": 398, + "InteractionType": "WalkTo", + "AetheryteShortcut": "The Dravanian Forelands - Anyx Trine", + "Fly": true + }, + { + "DataId": 1016803, + "Position": { + "X": 57.297607, + "Y": -47.842846, + "Z": -174.63953 + }, + "TerritoryId": 398, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} -- 2.45.2 From fadc80eaffd90e72b9304c3ddd2742de602a49be Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sat, 30 Nov 2024 18:48:13 +0100 Subject: [PATCH 299/448] Update data for Vanu Vanu mount --- Questionable/Controller/Steps/QuestCleanUp.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/Questionable/Controller/Steps/QuestCleanUp.cs b/Questionable/Controller/Steps/QuestCleanUp.cs index e5e560559..76f168f50 100644 --- a/Questionable/Controller/Steps/QuestCleanUp.cs +++ b/Questionable/Controller/Steps/QuestCleanUp.cs @@ -14,6 +14,7 @@ internal static class QuestCleanUp { private static readonly Dictionary AlliedSocietyMountConfiguration = new() { + { 66, new(1016093, EAetheryteLocation.SeaOfCloudsOkZundu) }, { 79, new(1017031, EAetheryteLocation.DravanianForelandsAnyxTrine) }, { 369, new(1051798, EAetheryteLocation.KozamaukaDockPoga) }, }; -- 2.45.2 From 286f2c4d77d613414957fdbbf3a385e68b91aa24 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sun, 1 Dec 2024 21:54:23 +0100 Subject: [PATCH 300/448] Add Vanu Vanu quest pooling for talking to npcs on the island --- Questionable/Controller/Steps/QuestCleanUp.cs | 13 +-- Questionable/Data/AlliedSocietyData.cs | 57 ++++++++++++ Questionable/Functions/QuestFunctions.cs | 92 +++++++++++++++---- Questionable/QuestionablePlugin.cs | 1 + 4 files changed, 135 insertions(+), 28 deletions(-) create mode 100644 Questionable/Data/AlliedSocietyData.cs diff --git a/Questionable/Controller/Steps/QuestCleanUp.cs b/Questionable/Controller/Steps/QuestCleanUp.cs index 76f168f50..d5564180b 100644 --- a/Questionable/Controller/Steps/QuestCleanUp.cs +++ b/Questionable/Controller/Steps/QuestCleanUp.cs @@ -12,14 +12,7 @@ namespace Questionable.Controller.Steps; internal static class QuestCleanUp { - private static readonly Dictionary AlliedSocietyMountConfiguration = new() - { - { 66, new(1016093, EAetheryteLocation.SeaOfCloudsOkZundu) }, - { 79, new(1017031, EAetheryteLocation.DravanianForelandsAnyxTrine) }, - { 369, new(1051798, EAetheryteLocation.KozamaukaDockPoga) }, - }; - - internal sealed class CheckAlliedSocietyMount(GameFunctions gameFunctions, AetheryteData aetheryteData, ILogger logger) : SimpleTaskFactory + internal sealed class CheckAlliedSocietyMount(GameFunctions gameFunctions, AetheryteData aetheryteData, AlliedSocietyData alliedSocietyData, ILogger logger) : SimpleTaskFactory { public override ITask? CreateTask(Quest quest, QuestSequence sequence, QuestStep step) { @@ -28,7 +21,7 @@ internal static class QuestCleanUp // if you are on a allied society mount if (gameFunctions.GetMountId() is { } mountId && - AlliedSocietyMountConfiguration.TryGetValue(mountId, out var mountConfiguration)) + alliedSocietyData.Mounts.TryGetValue(mountId, out var mountConfiguration)) { logger.LogInformation("We are on a known allied society mount with id = {MountId}", mountId); @@ -68,6 +61,4 @@ internal static class QuestCleanUp return null; } } - - private sealed record MountConfiguration(uint IssuerDataId, EAetheryteLocation ClosestAetheryte); } diff --git a/Questionable/Data/AlliedSocietyData.cs b/Questionable/Data/AlliedSocietyData.cs new file mode 100644 index 000000000..3c39dfdb6 --- /dev/null +++ b/Questionable/Data/AlliedSocietyData.cs @@ -0,0 +1,57 @@ +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Diagnostics.CodeAnalysis; +using Questionable.Model; +using Questionable.Model.Common; +using Questionable.Model.Questing; + +namespace Questionable.Data; + +[SuppressMessage("Performance", "CA1822")] +internal sealed class AlliedSocietyData +{ + public ReadOnlyDictionary Mounts { get; } = + new Dictionary + { + { 66, new(1016093, EAetheryteLocation.SeaOfCloudsOkZundu) }, + { 79, new(1017031, EAetheryteLocation.DravanianForelandsAnyxTrine) }, + { 369, new(1051798, EAetheryteLocation.KozamaukaDockPoga) }, + }.AsReadOnly(); + + public EAlliedSociety GetCommonAlliedSocietyTurnIn(ElementId elementId) + { + if (elementId is QuestId questId) + { + return questId.Value switch + { + >= 2171 and <= 2200 => EAlliedSociety.VanuVanu, + >= 2261 and <= 2280 => EAlliedSociety.Vath, + >= 5199 and <= 5226 => EAlliedSociety.Pelupelu, + _ => EAlliedSociety.None, + }; + } + + return EAlliedSociety.None; + } + + public void GetCommonAlliedSocietyNpcs(EAlliedSociety alliedSociety, out uint[] normalNpcs, out uint[] mountNpcs) + { + if (alliedSociety == EAlliedSociety.VanuVanu) + { + normalNpcs = [1016088, 1016091, 1016092]; + mountNpcs = [1016093]; + } + else if (alliedSociety == EAlliedSociety.Vath) + { + normalNpcs = []; + mountNpcs = [1017031]; + } + else + { + normalNpcs = []; + mountNpcs = []; + } + } +} + +public sealed record AlliedSocietyMountConfiguration(uint IssuerDataId, EAetheryteLocation ClosestAetheryte); diff --git a/Questionable/Functions/QuestFunctions.cs b/Questionable/Functions/QuestFunctions.cs index 067e0e779..e61997d95 100644 --- a/Questionable/Functions/QuestFunctions.cs +++ b/Questionable/Functions/QuestFunctions.cs @@ -6,6 +6,7 @@ using Dalamud.Memory; using Dalamud.Plugin.Services; using FFXIVClientStructs.FFXIV.Application.Network.WorkDefinitions; using FFXIVClientStructs.FFXIV.Client.Game; +using FFXIVClientStructs.FFXIV.Client.Game.Character; using FFXIVClientStructs.FFXIV.Client.Game.UI; using FFXIVClientStructs.FFXIV.Client.UI.Agent; using FFXIVClientStructs.FFXIV.Component.GUI; @@ -27,6 +28,7 @@ internal sealed unsafe class QuestFunctions private readonly QuestRegistry _questRegistry; private readonly QuestData _questData; private readonly AetheryteFunctions _aetheryteFunctions; + private readonly AlliedSocietyData _alliedSocietyData; private readonly Configuration _configuration; private readonly IDataManager _dataManager; private readonly IClientState _clientState; @@ -36,6 +38,7 @@ internal sealed unsafe class QuestFunctions QuestRegistry questRegistry, QuestData questData, AetheryteFunctions aetheryteFunctions, + AlliedSocietyData alliedSocietyData, Configuration configuration, IDataManager dataManager, IClientState clientState, @@ -44,6 +47,7 @@ internal sealed unsafe class QuestFunctions _questRegistry = questRegistry; _questData = questData; _aetheryteFunctions = aetheryteFunctions; + _alliedSocietyData = alliedSocietyData; _configuration = configuration; _dataManager = dataManager; _clientState = clientState; @@ -138,7 +142,8 @@ internal sealed unsafe class QuestFunctions case 2: // leve currentQuest = new LeveId(questManager->LeveQuests[trackedQuest.Index].LeveId); if (_questRegistry.IsKnownQuest(currentQuest)) - trackedQuests.Add((currentQuest, questManager->GetLeveQuestById(currentQuest.Value)->Sequence)); + trackedQuests.Add((currentQuest, + questManager->GetLeveQuestById(currentQuest.Value)->Sequence)); break; } } @@ -147,14 +152,63 @@ internal sealed unsafe class QuestFunctions { // if we have multiple quests to turn in for an allied society, try and complete all of them var (firstTrackedQuest, firstTrackedSequence) = trackedQuests.First(); - EAlliedSociety firstTrackedAlliedSociety = GetCommonAlliedSocietyTurnIn(firstTrackedQuest); - if (firstTrackedAlliedSociety != EAlliedSociety.None && firstTrackedSequence == 255) + EAlliedSociety firstTrackedAlliedSociety = _alliedSocietyData.GetCommonAlliedSocietyTurnIn(firstTrackedQuest); + if (firstTrackedAlliedSociety != EAlliedSociety.None) { - foreach (var (quest, sequence) in trackedQuests.Skip(1)) + var alliedQuestsForSameSociety = trackedQuests.Skip(1) + .Where(quest => _alliedSocietyData.GetCommonAlliedSocietyTurnIn(quest.Quest) == firstTrackedAlliedSociety) + .ToList(); + if (alliedQuestsForSameSociety.Count > 0) { - // only if the other quest isn't ready to be turned in - if (GetCommonAlliedSocietyTurnIn(quest) == firstTrackedAlliedSociety && sequence != 255) - return (quest, sequence); + if (firstTrackedSequence == 255) + { + foreach (var (quest, sequence) in alliedQuestsForSameSociety) + { + // only if the other quest isn't ready to be turned in + if (sequence != 255) + return (quest, sequence); + } + } + else if (!IsOnAlliedSocietyMount()) + { + // a few of the vanu quests require you to talk to one of the npcs near the issuer, so we + // give priority to those + + // also include the first quest in the list for those + alliedQuestsForSameSociety.Insert(0, (firstTrackedQuest, firstTrackedSequence)); + + _alliedSocietyData.GetCommonAlliedSocietyNpcs(firstTrackedAlliedSociety, out uint[]? normalNpcs, + out uint[]? mountNpcs); + + if (normalNpcs.Length > 0) + { + var talkToNormalNpcs = alliedQuestsForSameSociety + .Where(x => x.Sequence < 255) + .Where(x => IsInteractStep(x.Quest, x.Sequence, normalNpcs)) + .Cast<(ElementId, byte)?>() + .FirstOrDefault(); + if (talkToNormalNpcs != null) + return talkToNormalNpcs.Value; + } + + /* + * TODO: If you have e.g. a mount quest in the middle of 3, it should temporarily make you + * do that quest first, even if it isn't the first in the list. Otherwise, the logic + * here won't make much sense. + * + * TODO: This also won't work if two or three daily quests use a mount. + if (mountNpcs.Length > 0) + { + var talkToMountNpc = alliedQuestsForSameSociety + .Where(x => x.Sequence < 255) + .Where(x => IsInteractStep(x.Quest, x.Sequence, mountNpcs)) + .Cast<(ElementId, byte)?>() + .FirstOrDefault(); + if (talkToMountNpc != null) + return talkToMountNpc.Value; + } + */ + } } } @@ -237,20 +291,24 @@ internal sealed unsafe class QuestFunctions return (currentQuest, QuestManager.GetQuestSequence(currentQuest.Value)); } - private static EAlliedSociety GetCommonAlliedSocietyTurnIn(ElementId elementId) + private bool IsOnAlliedSocietyMount() { - if (elementId is QuestId questId) + BattleChara* battleChara = (BattleChara*)(_clientState.LocalPlayer?.Address ?? 0); + return battleChara != null && + battleChara->Mount.MountId != 0 && + _alliedSocietyData.Mounts.ContainsKey(battleChara->Mount.MountId); + } + + private bool IsInteractStep(ElementId questId, byte sequence, uint[] dataIds) + { + if (_questRegistry.TryGetQuest(questId, out var quest)) { - return questId.Value switch - { - >= 2171 and <= 2200 => EAlliedSociety.VanuVanu, - >= 2261 and <= 2280 => EAlliedSociety.Vath, - >= 5199 and <= 5226 => EAlliedSociety.Pelupelu, - _ => EAlliedSociety.None, - }; + QuestStep? firstStepOfSequence = quest.FindSequence(sequence)?.FindStep(0); + return firstStepOfSequence is { InteractionType: EInteractionType.Interact, DataId: { } dataId } && + dataIds.Contains(dataId); } - return EAlliedSociety.None; + return false; } public QuestProgressInfo? GetQuestProgressInfo(ElementId elementId) diff --git a/Questionable/QuestionablePlugin.cs b/Questionable/QuestionablePlugin.cs index 7b17db4c0..a4eabbaa2 100644 --- a/Questionable/QuestionablePlugin.cs +++ b/Questionable/QuestionablePlugin.cs @@ -115,6 +115,7 @@ public sealed class QuestionablePlugin : IDalamudPlugin serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); + serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); -- 2.45.2 From a9ee678c2b3ccd45bedce499dc7f13a3f1d90bdc Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sun, 1 Dec 2024 22:47:07 +0100 Subject: [PATCH 301/448] Add GNB job quests --- .../GNB/3225_Gunblades of the Patriots.json | 144 ++++++++++ .../GNB/3261_The Makings of a Gunbreaker.json | 103 +++++++ .../GNB/3262_Hired Gunblades.json | 248 ++++++++++++++++ .../GNB/3263_For Better or Worse.json | 158 ++++++++++ ...3264_Confessions of a Flaming Mongrel.json | 272 ++++++++++++++++++ .../GNB/3265_Of Defectors and Defenders.json | 208 ++++++++++++++ .../GNB/3266_Steel against Steel.json | 107 +++++++ 7 files changed, 1240 insertions(+) create mode 100644 QuestPaths/5.x - Shadowbringers/Class Quests/GNB/3225_Gunblades of the Patriots.json create mode 100644 QuestPaths/5.x - Shadowbringers/Class Quests/GNB/3261_The Makings of a Gunbreaker.json create mode 100644 QuestPaths/5.x - Shadowbringers/Class Quests/GNB/3262_Hired Gunblades.json create mode 100644 QuestPaths/5.x - Shadowbringers/Class Quests/GNB/3263_For Better or Worse.json create mode 100644 QuestPaths/5.x - Shadowbringers/Class Quests/GNB/3264_Confessions of a Flaming Mongrel.json create mode 100644 QuestPaths/5.x - Shadowbringers/Class Quests/GNB/3265_Of Defectors and Defenders.json create mode 100644 QuestPaths/5.x - Shadowbringers/Class Quests/GNB/3266_Steel against Steel.json diff --git a/QuestPaths/5.x - Shadowbringers/Class Quests/GNB/3225_Gunblades of the Patriots.json b/QuestPaths/5.x - Shadowbringers/Class Quests/GNB/3225_Gunblades of the Patriots.json new file mode 100644 index 000000000..407fabcd6 --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Class Quests/GNB/3225_Gunblades of the Patriots.json @@ -0,0 +1,144 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1029122, + "Position": { + "X": 17.746216, + "Y": 20.687263, + "Z": -660.12054 + }, + "StopDistance": 5, + "TerritoryId": 156, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Mor Dhona", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + }, + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_LUCKBC016_03225_Q1_000_000", + "Answer": "TEXT_LUCKBC016_03225_A1_000_002" + } + ] + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1000100, + "Position": { + "X": 23.819275, + "Y": -8, + "Z": 115.92273 + }, + "TerritoryId": 132, + "InteractionType": "Interact", + "AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Airship Landing" + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1029127, + "Position": { + "X": 154.68066, + "Y": 4.0999947, + "Z": 31.662354 + }, + "TerritoryId": 131, + "InteractionType": "Interact", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Sapphire Avenue Exchange" + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1029078, + "Position": { + "X": -0.07635498, + "Y": 20.333344, + "Z": -6.3935547 + }, + "TerritoryId": 129, + "InteractionType": "Interact", + "AetheryteShortcut": "Limsa Lominsa" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1029103, + "Position": { + "X": -151.59845, + "Y": 23.14059, + "Z": -75.60846 + }, + "TerritoryId": 418, + "InteractionType": "Interact", + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] Skysteel Manufactory" + ] + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1029128, + "Position": { + "X": 134.844, + "Y": 350.86508, + "Z": -386.1906 + }, + "TerritoryId": 155, + "InteractionType": "Interact", + "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1029122, + "Position": { + "X": 17.746216, + "Y": 20.687263, + "Z": -660.12054 + }, + "TerritoryId": 156, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Mor Dhona" + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Class Quests/GNB/3261_The Makings of a Gunbreaker.json b/QuestPaths/5.x - Shadowbringers/Class Quests/GNB/3261_The Makings of a Gunbreaker.json new file mode 100644 index 000000000..870c7c429 --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Class Quests/GNB/3261_The Makings of a Gunbreaker.json @@ -0,0 +1,103 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1029028, + "Position": { + "X": 15.6710205, + "Y": -1.5911946, + "Z": 37.704956 + }, + "TerritoryId": 132, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Gridania", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2010237, + "Position": { + "X": -244.1596, + "Y": 5.935669, + "Z": 80.03345 + }, + "TerritoryId": 152, + "InteractionType": "Interact", + "AetheryteShortcut": "East Shroud - Hawthorne Hut", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": -218.21523, + "Y": 11.806735, + "Z": 18.429258 + }, + "StopDistance": 0.5, + "TerritoryId": 152, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [ + 11125 + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1029029, + "Position": { + "X": -214.64868, + "Y": 11.980015, + "Z": 25.40625 + }, + "StopDistance": 7, + "TerritoryId": 152, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1029033, + "Position": { + "X": -214.67926, + "Y": 11.971041, + "Z": 25.192627 + }, + "StopDistance": 7, + "TerritoryId": 152, + "InteractionType": "CompleteQuest", + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_LUCKBB101_03261_Q1_000_081", + "Yes": true + } + ], + "NextQuestId": 3262 + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Class Quests/GNB/3262_Hired Gunblades.json b/QuestPaths/5.x - Shadowbringers/Class Quests/GNB/3262_Hired Gunblades.json new file mode 100644 index 000000000..187ee7165 --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Class Quests/GNB/3262_Hired Gunblades.json @@ -0,0 +1,248 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "TerritoryId": 152, + "InteractionType": "EquipItem", + "ItemId": 27357, + "AetheryteShortcut": "East Shroud - Hawthorne Hut", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + }, + "StepIf": { + "Item": { + "NotInInventory": true + } + } + } + }, + { + "Position": { + "X": -214.67926, + "Y": 11.971041, + "Z": 25.192627 + }, + "StopDistance": 7, + "TerritoryId": 152, + "InteractionType": "UseItem", + "ItemId": 27266, + "SkipConditions": { + "StepIf": { + "Item": { + "NotInInventory": true + } + } + }, + "Fly": true + }, + { + "TerritoryId": 152, + "InteractionType": "EquipRecommended" + }, + { + "DataId": 1029033, + "Position": { + "X": -214.67926, + "Y": 11.971041, + "Z": 25.192627 + }, + "StopDistance": 7, + "TerritoryId": 152, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1029035, + "Position": { + "X": 35.50769, + "Y": -8, + "Z": 115.31238 + }, + "TerritoryId": 132, + "InteractionType": "Interact", + "AetheryteShortcut": "Gridania" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1029037, + "Position": { + "X": 73.65515, + "Y": 13.994091, + "Z": -270.83246 + }, + "TerritoryId": 133, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Lancers' Guild" + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1000288, + "Position": { + "X": -62.028015, + "Y": 7.175424, + "Z": -117.60132 + }, + "TerritoryId": 133, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Gridania] Lancers' Guild", + "[Gridania] Mih Khetto's Amphitheatre" + ], + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, + { + "DataId": 1000286, + "Position": { + "X": -53.574463, + "Y": 7.2025366, + "Z": -118.36426 + }, + "TerritoryId": 133, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 1003063, + "Position": { + "X": -37.979797, + "Y": 7.439375, + "Z": -139.60486 + }, + "TerritoryId": 133, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1029041, + "Position": { + "X": -93.98035, + "Y": 7.1111856, + "Z": -131.33447 + }, + "TerritoryId": 133, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1029089, + "Position": { + "X": 73.65515, + "Y": 13.994091, + "Z": -270.83246 + }, + "TerritoryId": 133, + "InteractionType": "SinglePlayerDuty", + "AethernetShortcut": [ + "[Gridania] Mih Khetto's Amphitheatre", + "[Gridania] Lancers' Guild" + ] + } + ] + }, + { + "Sequence": 6, + "Steps": [ + ] + }, + { + "Sequence": 7, + "Steps": [ + { + "Position": { + "X": -232.38095, + "Y": 2.3337264, + "Z": -205.92738 + }, + "TerritoryId": 133, + "InteractionType": "WalkTo", + "AethernetShortcut": [ + "[Gridania] Mih Khetto's Amphitheatre", + "[Gridania] Botanists' Guild" + ] + }, + { + "DataId": 1029043, + "Position": { + "X": -232.25757, + "Y": 2.4186904, + "Z": -210.98651 + }, + "StopDistance": 7, + "TerritoryId": 133, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1029044, + "Position": { + "X": 18.44812, + "Y": 7.9999833, + "Z": -115.31244 + }, + "TerritoryId": 130, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Adventurers' Guild" + ], + "NextQuestId": 3263 + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Class Quests/GNB/3263_For Better or Worse.json b/QuestPaths/5.x - Shadowbringers/Class Quests/GNB/3263_For Better or Worse.json new file mode 100644 index 000000000..da05aab22 --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Class Quests/GNB/3263_For Better or Worse.json @@ -0,0 +1,158 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1029044, + "Position": { + "X": 18.44812, + "Y": 7.9999833, + "Z": -115.31244 + }, + "TerritoryId": 130, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Adventurers' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1029054, + "Position": { + "X": 154.68066, + "Y": 4.0999947, + "Z": 31.662354 + }, + "TerritoryId": 131, + "InteractionType": "Interact", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Sapphire Avenue Exchange" + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": 165.96822, + "Y": 4.0220823, + "Z": 44.280655 + }, + "TerritoryId": 131, + "InteractionType": "WalkTo" + }, + { + "DataId": 1029058, + "Position": { + "X": 17.898804, + "Y": 15.620378, + "Z": 418.66174 + }, + "TerritoryId": 141, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "Position": { + "X": -306.12845, + "Y": -31.54935, + "Z": 173.07193 + }, + "TerritoryId": 145, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Eastern Thanalan - Camp Drybone", + "Fly": true + }, + { + "DataId": 1029062, + "Position": { + "X": -306.11127, + "Y": -31.525063, + "Z": 171.6792 + }, + "TerritoryId": 145, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "Position": { + "X": -292.66827, + "Y": -32.554207, + "Z": 158.0957 + }, + "StopDistance": 0.5, + "TerritoryId": 145, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [ + 11126, + 11127 + ] + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1029070, + "Position": { + "X": -293.2937, + "Y": -32.53709, + "Z": 157.88501 + }, + "TerritoryId": 145, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1029073, + "Position": { + "X": -17.380127, + "Y": 40.000565, + "Z": -0.3204956 + }, + "TerritoryId": 128, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] The Aftcastle" + ], + "NextQuestId": 3264 + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Class Quests/GNB/3264_Confessions of a Flaming Mongrel.json b/QuestPaths/5.x - Shadowbringers/Class Quests/GNB/3264_Confessions of a Flaming Mongrel.json new file mode 100644 index 000000000..b3361fb3c --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Class Quests/GNB/3264_Confessions of a Flaming Mongrel.json @@ -0,0 +1,272 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1029073, + "Position": { + "X": -17.380127, + "Y": 40.000565, + "Z": -0.3204956 + }, + "TerritoryId": 128, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] The Aftcastle" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 128 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1003597, + "Position": { + "X": 8.194031, + "Y": 39.999973, + "Z": 17.746216 + }, + "TerritoryId": 128, + "InteractionType": "Interact", + "TargetTerritoryId": 129 + }, + { + "DataId": 1029078, + "Position": { + "X": -0.07635498, + "Y": 20.333344, + "Z": -6.3935547 + }, + "TerritoryId": 129, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1003355, + "Position": { + "X": -60.868286, + "Y": 18.000334, + "Z": 7.4921875 + }, + "TerritoryId": 129, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 1003604, + "Position": { + "X": -60.44104, + "Y": 18.00033, + "Z": -4.348877 + }, + "TerritoryId": 129, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 1001023, + "Position": { + "X": -78.62976, + "Y": 18.000334, + "Z": -22.62915 + }, + "TerritoryId": 129, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1029081, + "Position": { + "X": -153.8263, + "Y": 18.2, + "Z": 22.842712 + }, + "TerritoryId": 129, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1029085, + "Position": { + "X": 111.10095, + "Y": 22.880848, + "Z": 635.7976 + }, + "TerritoryId": 135, + "InteractionType": "Interact", + "AetheryteShortcut": "Lower La Noscea - Moraby Drydocks", + "Fly": true + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 2010241, + "Position": { + "X": -34.53119, + "Y": 46.92151, + "Z": 541.22217 + }, + "StopDistance": 0.5, + "TerritoryId": 135, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 11128 + ], + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 2010242, + "Position": { + "X": -59.006653, + "Y": 57.297607, + "Z": 492.14917 + }, + "TerritoryId": 135, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 11129, + 11130 + ], + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 2010243, + "Position": { + "X": -15.6710205, + "Y": 66.36145, + "Z": 431.63184 + }, + "TerritoryId": 135, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 7, + "Steps": [ + { + "DataId": 1029092, + "Position": { + "X": 322.37732, + "Y": 75.949196, + "Z": -322.43848 + }, + "TerritoryId": 135, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 8, + "Steps": [ + { + "DataId": 1029094, + "Position": { + "X": -35.81299, + "Y": 71.33129, + "Z": 124.6814 + }, + "TerritoryId": 135, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1029098, + "Position": { + "X": 53.97119, + "Y": 23.979126, + "Z": 8.102478 + }, + "TerritoryId": 418, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] The Forgotten Knight" + ], + "NextQuestId": 3265 + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Class Quests/GNB/3265_Of Defectors and Defenders.json b/QuestPaths/5.x - Shadowbringers/Class Quests/GNB/3265_Of Defectors and Defenders.json new file mode 100644 index 000000000..a5772b8f7 --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Class Quests/GNB/3265_Of Defectors and Defenders.json @@ -0,0 +1,208 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1029098, + "Position": { + "X": 53.97119, + "Y": 23.979126, + "Z": 8.102478 + }, + "TerritoryId": 418, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] The Forgotten Knight" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1029103, + "Position": { + "X": -151.59845, + "Y": 23.14059, + "Z": -75.60846 + }, + "TerritoryId": 418, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Ishgard] The Forgotten Knight", + "[Ishgard] Skysteel Manufactory" + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1029106, + "Position": { + "X": 207.35486, + "Y": 307.86218, + "Z": 424.6432 + }, + "TerritoryId": 155, + "InteractionType": "Interact", + "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1029109, + "Position": { + "X": 213.09216, + "Y": 222.50911, + "Z": 291.73718 + }, + "TerritoryId": 155, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 2010298, + "Position": { + "X": 252.64355, + "Y": 246.96729, + "Z": 189.53223 + }, + "TerritoryId": 155, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 11131 + ], + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 2010299, + "Position": { + "X": 163.25623, + "Y": 274.3114, + "Z": 5.2643433 + }, + "TerritoryId": 155, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 11132, + 11133 + ], + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 2010300, + "Position": { + "X": 285.3894, + "Y": 299.97705, + "Z": -78.66034 + }, + "TerritoryId": 155, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 11134, + 11135, + 11136 + ], + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 2010301, + "Position": { + "X": 240.28369, + "Y": 302.02173, + "Z": -174.88367 + }, + "TerritoryId": 155, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 2010302, + "Position": { + "X": -653.3761, + "Y": 224.26172, + "Z": -40.421204 + }, + "TerritoryId": 155, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1029099, + "Position": { + "X": 54.917114, + "Y": 23.979126, + "Z": 8.926453 + }, + "TerritoryId": 418, + "InteractionType": "CompleteQuest", + "NextQuestId": 3266 + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Class Quests/GNB/3266_Steel against Steel.json b/QuestPaths/5.x - Shadowbringers/Class Quests/GNB/3266_Steel against Steel.json new file mode 100644 index 000000000..443df1975 --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Class Quests/GNB/3266_Steel against Steel.json @@ -0,0 +1,107 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1029099, + "Position": { + "X": 54.917114, + "Y": 23.979126, + "Z": 8.926453 + }, + "TerritoryId": 418, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] The Forgotten Knight" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1029120, + "Position": { + "X": -56.01587, + "Y": 15.140585, + "Z": -35.324707 + }, + "TerritoryId": 418, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Ishgard] The Forgotten Knight", + "[Ishgard] Skysteel Manufactory" + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1029121, + "Position": { + "X": -266.4378, + "Y": 92.16852, + "Z": -501.854 + }, + "TerritoryId": 397, + "InteractionType": "SinglePlayerDuty", + "AetheryteShortcut": "Coerthas Western Highlands - Falcon's Nest", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1029113, + "Position": { + "X": 55.649536, + "Y": 23.979126, + "Z": 9.689453 + }, + "TerritoryId": 418, + "InteractionType": "Interact", + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] The Forgotten Knight" + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1029122, + "Position": { + "X": 17.746216, + "Y": 20.687263, + "Z": -660.12054 + }, + "StopDistance": 5, + "TerritoryId": 156, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} -- 2.45.2 From 5d9a622e16a548e060790593bd23676e1eb70275 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Mon, 2 Dec 2024 01:15:38 +0100 Subject: [PATCH 302/448] Add RPR job quests --- .../RPR/4073_The Killer Instinct.json | 91 ++++++++ .../RPR/4074_The Harvest Begins.json | 149 ++++++++++++ .../Class Quests/RPR/4075_On the Hunt.json | 191 ++++++++++++++++ .../Class Quests/RPR/4076_Dark Days.json | 168 ++++++++++++++ .../RPR/4077_Thicker than Blood.json | 212 ++++++++++++++++++ .../RPR/4078_The Killing Art.json | 83 +++++++ 6 files changed, 894 insertions(+) create mode 100644 QuestPaths/6.x - Endwalker/Class Quests/RPR/4073_The Killer Instinct.json create mode 100644 QuestPaths/6.x - Endwalker/Class Quests/RPR/4074_The Harvest Begins.json create mode 100644 QuestPaths/6.x - Endwalker/Class Quests/RPR/4075_On the Hunt.json create mode 100644 QuestPaths/6.x - Endwalker/Class Quests/RPR/4076_Dark Days.json create mode 100644 QuestPaths/6.x - Endwalker/Class Quests/RPR/4077_Thicker than Blood.json create mode 100644 QuestPaths/6.x - Endwalker/Class Quests/RPR/4078_The Killing Art.json diff --git a/QuestPaths/6.x - Endwalker/Class Quests/RPR/4073_The Killer Instinct.json b/QuestPaths/6.x - Endwalker/Class Quests/RPR/4073_The Killer Instinct.json new file mode 100644 index 000000000..dd7a16be1 --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Class Quests/RPR/4073_The Killer Instinct.json @@ -0,0 +1,91 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1036633, + "Position": { + "X": 82.871704, + "Y": 4.099994, + "Z": -131.30396 + }, + "TerritoryId": 130, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Adventurers' Guild" + ] + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1036634, + "Position": { + "X": 134.05042, + "Y": 4, + "Z": 11.428955 + }, + "TerritoryId": 131, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Ul'dah] Adventurers' Guild", + "[Ul'dah] Sapphire Avenue Exchange" + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1036632, + "Position": { + "X": 115.098755, + "Y": 8, + "Z": 15.396301 + }, + "TerritoryId": 131, + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_AKTKBB201_04073_Q5_000_000", + "Yes": true + } + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1037014, + "Position": { + "X": 0.9002075, + "Y": 0.014807776, + "Z": -4.3793945 + }, + "StopDistance": 5, + "TerritoryId": 971, + "InteractionType": "CompleteQuest", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_AKTKBB201_04073_Q4_000_000", + "Answer": "TEXT_AKTKBB201_04073_A4_000_002" + } + ], + "NextQuestId": 4074 + } + ] + } + ] +} diff --git a/QuestPaths/6.x - Endwalker/Class Quests/RPR/4074_The Harvest Begins.json b/QuestPaths/6.x - Endwalker/Class Quests/RPR/4074_The Harvest Begins.json new file mode 100644 index 000000000..5b9731d76 --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Class Quests/RPR/4074_The Harvest Begins.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": [ + { + "DataId": 1036632, + "Position": { + "X": 115.098755, + "Y": 8, + "Z": 15.396301 + }, + "TerritoryId": 131, + "InteractionType": "Interact", + "TargetTerritoryId": 971, + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 131, + 971 + ] + }, + "StepIf": { + "InTerritory": [ + 971 + ] + } + } + }, + { + "TerritoryId": 971, + "InteractionType": "EquipItem", + "ItemId": 35760, + "SkipConditions": { + "StepIf": { + "Item": { + "NotInInventory": true + } + } + } + }, + { + "Position": { + "X": 0.13146536, + "Y": 0.01480782, + "Z": -0.7022889 + }, + "TerritoryId": 971, + "InteractionType": "UseItem", + "ItemId": 35872, + "SkipConditions": { + "StepIf": { + "Item": { + "NotInInventory": true + } + } + } + }, + { + "TerritoryId": 971, + "InteractionType": "EquipRecommended" + }, + { + "DataId": 1037014, + "Position": { + "X": 0.9002075, + "Y": 0.014807776, + "Z": -4.3793945 + }, + "StopDistance": 5, + "TerritoryId": 971, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1036636, + "Position": { + "X": -264.91187, + "Y": -5.052193, + "Z": -371.38934 + }, + "TerritoryId": 141, + "InteractionType": "Interact", + "AetheryteShortcut": "Central Thanalan - Black Brush Station", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1036637, + "Position": { + "X": -263.84375, + "Y": -4.9409676, + "Z": -371.26727 + }, + "TerritoryId": 141, + "InteractionType": "SinglePlayerDuty" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1036632, + "Position": { + "X": 115.098755, + "Y": 8, + "Z": 15.396301 + }, + "TerritoryId": 131, + "InteractionType": "Interact", + "TargetTerritoryId": 971, + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ] + }, + { + "DataId": 1036629, + "Position": { + "X": 0.77819824, + "Y": 0.014807776, + "Z": -1.9684448 + }, + "TerritoryId": 971, + "InteractionType": "CompleteQuest", + "NextQuestId": 4075 + } + ] + } + ] +} diff --git a/QuestPaths/6.x - Endwalker/Class Quests/RPR/4075_On the Hunt.json b/QuestPaths/6.x - Endwalker/Class Quests/RPR/4075_On the Hunt.json new file mode 100644 index 000000000..a9a70e4dd --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Class Quests/RPR/4075_On the Hunt.json @@ -0,0 +1,191 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1036632, + "Position": { + "X": 115.098755, + "Y": 8, + "Z": 15.396301 + }, + "TerritoryId": 131, + "InteractionType": "Interact", + "TargetTerritoryId": 971, + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 131, + 971 + ] + }, + "StepIf": { + "InTerritory": [ + 971 + ] + } + } + }, + { + "DataId": 1036629, + "Position": { + "X": 0.77819824, + "Y": 0.014807776, + "Z": -1.9684448 + }, + "TerritoryId": 971, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1036638, + "Position": { + "X": -9.384338, + "Y": -3.0020049, + "Z": 58.54883 + }, + "TerritoryId": 148, + "InteractionType": "Interact", + "AetheryteShortcut": "Central Shroud - Bentbranch Meadows" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2011694, + "Position": { + "X": -151.20166, + "Y": 5.6915283, + "Z": -143.69421 + }, + "TerritoryId": 148, + "InteractionType": "UseItem", + "ItemId": 2003077, + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, + { + "DataId": 2011693, + "Position": { + "X": -208.11786, + "Y": 4.0131226, + "Z": -22.110352 + }, + "TerritoryId": 148, + "InteractionType": "UseItem", + "ItemId": 2003077, + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 2011546, + "Position": { + "X": -274.34198, + "Y": 19.821411, + "Z": 66.453 + }, + "TerritoryId": 148, + "InteractionType": "Combat", + "EnemySpawnType": "AfterItemUse", + "KillEnemyDataIds": [ + 14028 + ], + "ItemId": 2003077, + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1036638, + "Position": { + "X": -9.384338, + "Y": -3.0020049, + "Z": 58.54883 + }, + "TerritoryId": 148, + "InteractionType": "Interact", + "AetheryteShortcut": "Central Shroud - Bentbranch Meadows" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1036632, + "Position": { + "X": 115.098755, + "Y": 8, + "Z": 15.396301 + }, + "TerritoryId": 131, + "InteractionType": "Interact", + "TargetTerritoryId": 971, + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ] + }, + { + "DataId": 1036629, + "Position": { + "X": 0.77819824, + "Y": 0.014807776, + "Z": -1.9684448 + }, + "TerritoryId": 971, + "InteractionType": "CompleteQuest", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_AKTKBB211_04075_Q1_000_000", + "Answer": "TEXT_AKTKBB211_04075_A1_000_002" + } + ], + "NextQuestId": 4076 + } + ] + } + ] +} diff --git a/QuestPaths/6.x - Endwalker/Class Quests/RPR/4076_Dark Days.json b/QuestPaths/6.x - Endwalker/Class Quests/RPR/4076_Dark Days.json new file mode 100644 index 000000000..e97328cba --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Class Quests/RPR/4076_Dark Days.json @@ -0,0 +1,168 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1036632, + "Position": { + "X": 115.098755, + "Y": 8, + "Z": 15.396301 + }, + "TerritoryId": 131, + "InteractionType": "Interact", + "TargetTerritoryId": 971, + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 131, + 971 + ] + }, + "StepIf": { + "InTerritory": [ + 971 + ] + } + } + }, + { + "DataId": 1036629, + "Position": { + "X": 0.77819824, + "Y": 0.014807776, + "Z": -1.9684448 + }, + "TerritoryId": 971, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1036641, + "Position": { + "X": -149.95044, + "Y": 14.004999, + "Z": 54.8562 + }, + "TerritoryId": 130, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Ul'dah] Weavers' Guild", + "[Ul'dah] Thaumaturges' Guild" + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1036642, + "Position": { + "X": -151.1712, + "Y": 15.982788, + "Z": 302.2965 + }, + "TerritoryId": 141, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Ul'dah] Thaumaturges' Guild", + "[Ul'dah] Gate of Nald (Central Thanalan)" + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "Position": { + "X": -66.87344, + "Y": -3.6581912, + "Z": 179.7406 + }, + "TerritoryId": 141, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 1036644, + "Position": { + "X": -68.10101, + "Y": -3.6581912, + "Z": 179.61389 + }, + "TerritoryId": 141, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1040918, + "Position": { + "X": -59.891724, + "Y": -3.6582541, + "Z": 147.72253 + }, + "TerritoryId": 141, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1036632, + "Position": { + "X": 115.098755, + "Y": 8, + "Z": 15.396301 + }, + "TerritoryId": 131, + "InteractionType": "Interact", + "TargetTerritoryId": 971, + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ] + }, + { + "DataId": 1036629, + "Position": { + "X": 0.77819824, + "Y": 0.014807776, + "Z": -1.9684448 + }, + "TerritoryId": 971, + "InteractionType": "CompleteQuest", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_AKTKBB221_04076_Q2_000_000", + "Answer": "TEXT_AKTKBB221_04076_A2_000_002" + } + ], + "NextQuestId": 4077 + } + ] + } + ] +} diff --git a/QuestPaths/6.x - Endwalker/Class Quests/RPR/4077_Thicker than Blood.json b/QuestPaths/6.x - Endwalker/Class Quests/RPR/4077_Thicker than Blood.json new file mode 100644 index 000000000..76db8ce35 --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Class Quests/RPR/4077_Thicker than Blood.json @@ -0,0 +1,212 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1036632, + "Position": { + "X": 115.098755, + "Y": 8, + "Z": 15.396301 + }, + "TerritoryId": 131, + "InteractionType": "Interact", + "TargetTerritoryId": 971, + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 131, + 971 + ] + }, + "StepIf": { + "InTerritory": [ + 971 + ] + } + } + }, + { + "DataId": 1036629, + "Position": { + "X": 0.77819824, + "Y": 0.014807776, + "Z": -1.9684448 + }, + "TerritoryId": 971, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1036645, + "Position": { + "X": -65.23236, + "Y": -2.0043268, + "Z": -170.06183 + }, + "TerritoryId": 141, + "InteractionType": "Interact", + "AetheryteShortcut": "Central Thanalan - Black Brush Station" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": 90.102264, + "Y": 0.33612514, + "Z": -274.36813 + }, + "TerritoryId": 141, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 1036646, + "Position": { + "X": 84.33655, + "Y": 0.27463394, + "Z": -279.86572 + }, + "StopDistance": 5, + "TerritoryId": 141, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "Position": { + "X": 156.258, + "Y": 1.9472685, + "Z": -165.4284 + }, + "TerritoryId": 141, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 1036647, + "Position": { + "X": 154.89429, + "Y": 1.9564945, + "Z": -166.67432 + }, + "TerritoryId": 141, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "Position": { + "X": 159.8781, + "Y": -0.6240455, + "Z": -154.44577 + }, + "StopDistance": 0.5, + "TerritoryId": 141, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [ + 14027 + ] + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1036647, + "Position": { + "X": 154.89429, + "Y": 1.9564945, + "Z": -166.67432 + }, + "TerritoryId": 141, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1036654, + "Position": { + "X": -136.61407, + "Y": 3.9261572, + "Z": 212.57336 + }, + "TerritoryId": 141, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 7, + "Steps": [ + { + "DataId": 1036632, + "Position": { + "X": 115.098755, + "Y": 8, + "Z": 15.396301 + }, + "TerritoryId": 131, + "InteractionType": "Interact", + "TargetTerritoryId": 971, + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1036631, + "Position": { + "X": 2.7922974, + "Y": -2.7403547E-07, + "Z": -0.44250488 + }, + "TerritoryId": 971, + "InteractionType": "CompleteQuest", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_AKTKBB231_04077_Q2_000_000", + "Answer": "TEXT_AKTKBB231_04077_A2_000_003" + } + ], + "NextQuestId": 4078 + } + ] + } + ] +} diff --git a/QuestPaths/6.x - Endwalker/Class Quests/RPR/4078_The Killing Art.json b/QuestPaths/6.x - Endwalker/Class Quests/RPR/4078_The Killing Art.json new file mode 100644 index 000000000..f1e7e9105 --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Class Quests/RPR/4078_The Killing Art.json @@ -0,0 +1,83 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1036632, + "Position": { + "X": 115.098755, + "Y": 8, + "Z": 15.396301 + }, + "TerritoryId": 131, + "InteractionType": "Interact", + "TargetTerritoryId": 971, + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 131, + 971 + ] + }, + "StepIf": { + "InTerritory": [ + 971 + ] + } + } + }, + { + "DataId": 1036631, + "Position": { + "X": 2.7922974, + "Y": -2.7403547E-07, + "Z": -0.44250488 + }, + "TerritoryId": 971, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2011548, + "Position": { + "X": -92.57648, + "Y": 87.17468, + "Z": -737.8805 + }, + "TerritoryId": 397, + "InteractionType": "SinglePlayerDuty", + "AetheryteShortcut": "Coerthas Western Highlands - Falcon's Nest", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1036630, + "Position": { + "X": 0.77819824, + "Y": 0.014807776, + "Z": -1.9684448 + }, + "TerritoryId": 971, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} -- 2.45.2 From 5d45f7acb68e7ccb4301b12e5be2f209cde0f8cb Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Mon, 2 Dec 2024 03:07:39 +0100 Subject: [PATCH 303/448] Add RDM job quests --- .../Class Quests/RDM/2576_Taking the Red.json | 157 ++++++++ .../RDM/2577_The Crimson Duelist.json | 134 +++++++ .../RDM/2578_A Rewarding Struggle.json | 235 ++++++++++++ .../RDM/2579_Tracking the Cabal.json | 213 +++++++++++ .../RDM/2580_A Vermilion Vendetta.json | 188 ++++++++++ .../RDM/2581_On Lambard's Trail.json | 145 ++++++++ .../RDM/2582_Stained in Scarlet.json | 190 ++++++++++ .../RDM/2583_The Color of Her Hair.json | 132 +++++++ .../RDM/2584_Traced in Blood.json | 340 ++++++++++++++++++ .../Class Quests/RDM/2585_Nightkin.json | 132 +++++++ .../RDM/2586_Child of Lilith.json | 172 +++++++++ .../RDM/2587_With Heart and Steel.json | 136 +++++++ 12 files changed, 2174 insertions(+) create mode 100644 QuestPaths/4.x - Stormblood/Class Quests/RDM/2576_Taking the Red.json create mode 100644 QuestPaths/4.x - Stormblood/Class Quests/RDM/2577_The Crimson Duelist.json create mode 100644 QuestPaths/4.x - Stormblood/Class Quests/RDM/2578_A Rewarding Struggle.json create mode 100644 QuestPaths/4.x - Stormblood/Class Quests/RDM/2579_Tracking the Cabal.json create mode 100644 QuestPaths/4.x - Stormblood/Class Quests/RDM/2580_A Vermilion Vendetta.json create mode 100644 QuestPaths/4.x - Stormblood/Class Quests/RDM/2581_On Lambard's Trail.json create mode 100644 QuestPaths/4.x - Stormblood/Class Quests/RDM/2582_Stained in Scarlet.json create mode 100644 QuestPaths/4.x - Stormblood/Class Quests/RDM/2583_The Color of Her Hair.json create mode 100644 QuestPaths/4.x - Stormblood/Class Quests/RDM/2584_Traced in Blood.json create mode 100644 QuestPaths/4.x - Stormblood/Class Quests/RDM/2585_Nightkin.json create mode 100644 QuestPaths/4.x - Stormblood/Class Quests/RDM/2586_Child of Lilith.json create mode 100644 QuestPaths/4.x - Stormblood/Class Quests/RDM/2587_With Heart and Steel.json diff --git a/QuestPaths/4.x - Stormblood/Class Quests/RDM/2576_Taking the Red.json b/QuestPaths/4.x - Stormblood/Class Quests/RDM/2576_Taking the Red.json new file mode 100644 index 000000000..2e4539dca --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/RDM/2576_Taking the Red.json @@ -0,0 +1,157 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1021425, + "Position": { + "X": 146.1051, + "Y": 4, + "Z": 25.223145 + }, + "TerritoryId": 131, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Sapphire Avenue Exchange" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 131 + ] + } + }, + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_JOBRDM500_02576_Q1_000_010", + "Answer": "TEXT_JOBRDM500_02576_A1_000_011" + } + ] + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": 166.65004, + "Y": 3.9997904, + "Z": 43.372593 + }, + "TerritoryId": 131, + "InteractionType": "WalkTo" + }, + { + "DataId": 1021426, + "Position": { + "X": 124.04053, + "Y": 5.292755, + "Z": 559.65515 + }, + "TerritoryId": 141, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1021434, + "Position": { + "X": 125.718994, + "Y": 5.2929487, + "Z": 558.9531 + }, + "StopDistance": 7, + "TerritoryId": 141, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "Position": { + "X": 8.849496, + "Y": 18.34012, + "Z": 562.2148 + }, + "TerritoryId": 141, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 1021435, + "Position": { + "X": 145.73889, + "Y": 4, + "Z": 25.223145 + }, + "TerritoryId": 131, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "Position": { + "X": -77.95643, + "Y": -12.787907, + "Z": -45.044247 + }, + "TerritoryId": 141, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Central Thanalan - Black Brush Station", + "Fly": true, + "$": "Coffer & Coffin (outside)" + }, + { + "DataId": 1021438, + "Position": { + "X": -96.84906, + "Y": -11.350002, + "Z": -47.3183 + }, + "TerritoryId": 141, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1021438, + "Position": { + "X": -96.84906, + "Y": -11.350002, + "Z": -47.3183 + }, + "TerritoryId": 141, + "InteractionType": "CompleteQuest", + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_JOBRDM500_02576_Q1_000_310", + "Yes": true + } + ], + "NextQuestId": 2577 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Class Quests/RDM/2577_The Crimson Duelist.json b/QuestPaths/4.x - Stormblood/Class Quests/RDM/2577_The Crimson Duelist.json new file mode 100644 index 000000000..2d1ba305d --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/RDM/2577_The Crimson Duelist.json @@ -0,0 +1,134 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "TerritoryId": 141, + "InteractionType": "EquipItem", + "ItemId": 20389, + "AetheryteShortcut": "Central Thanalan - Black Brush Station", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + }, + "StepIf": { + "Item": { + "NotInInventory": true + } + } + } + }, + { + "DataId": 1021438, + "Position": { + "X": -96.84906, + "Y": -11.350002, + "Z": -47.3183 + }, + "TerritoryId": 141, + "InteractionType": "UseItem", + "ItemId": 20621, + "SkipConditions": { + "StepIf": { + "Item": { + "NotInInventory": true + } + } + } + }, + { + "TerritoryId": 141, + "InteractionType": "EquipRecommended" + }, + { + "DataId": 1021438, + "Position": { + "X": -96.84906, + "Y": -11.350002, + "Z": -47.3183 + }, + "TerritoryId": 141, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": -508.00916, + "Y": -17.453016, + "Z": 16.0174 + }, + "TerritoryId": 145, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Eastern Thanalan - Camp Drybone", + "Fly": true + }, + { + "DataId": 1021439, + "Position": { + "X": -513.7255, + "Y": -16.420002, + "Z": -6.668213 + }, + "TerritoryId": 145, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1021440, + "Position": { + "X": -505.6382, + "Y": -17.810839, + "Z": 28.702148 + }, + "TerritoryId": 145, + "InteractionType": "SinglePlayerDuty" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1021441, + "Position": { + "X": -428.58014, + "Y": -29.27635, + "Z": 24.826416 + }, + "StopDistance": 5, + "TerritoryId": 145, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1021447, + "Position": { + "X": -496.75748, + "Y": -17.41137, + "Z": 28.091797 + }, + "StopDistance": 1, + "TerritoryId": 145, + "InteractionType": "CompleteQuest", + "Fly": true, + "NextQuestId": 2578 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Class Quests/RDM/2578_A Rewarding Struggle.json b/QuestPaths/4.x - Stormblood/Class Quests/RDM/2578_A Rewarding Struggle.json new file mode 100644 index 000000000..478c8e4de --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/RDM/2578_A Rewarding Struggle.json @@ -0,0 +1,235 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1021447, + "Position": { + "X": -496.75748, + "Y": -17.41137, + "Z": 28.091797 + }, + "StopDistance": 1, + "TerritoryId": 145, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Eastern Thanalan - Camp Drybone", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1006355, + "Position": { + "X": -512.47424, + "Y": -16.42, + "Z": -7.522766 + }, + "TerritoryId": 145, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1021448, + "Position": { + "X": -56.717834, + "Y": -1.8104911E-06, + "Z": 102.708374 + }, + "TerritoryId": 144, + "InteractionType": "Interact", + "AetheryteShortcut": "Gold Saucer", + "AethernetShortcut": [ + "[Gold Saucer] Aetheryte Plaza", + "[Gold Saucer] Entrance & Card Squares" + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2008218, + "Position": { + "X": -0.07635498, + "Y": 20.98108, + "Z": 53.60486 + }, + "TerritoryId": 144, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Gold Saucer] Entrance & Card Squares", + "[Gold Saucer] Wonder Square West" + ] + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1021450, + "Position": { + "X": -8.621399, + "Y": 20.99973, + "Z": 43.381348 + }, + "TerritoryId": 144, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "TerritoryId": 144, + "InteractionType": "UseItem", + "ItemId": 30362, + "TargetTerritoryId": 140 + }, + { + "DataId": 1021451, + "Position": { + "X": -429.64832, + "Y": 23.743237, + "Z": -351.06433 + }, + "TerritoryId": 140, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "Position": { + "X": -408.92343, + "Y": 23.167036, + "Z": -351.16223 + }, + "TerritoryId": 140, + "InteractionType": "WalkTo", + "$": "Vesper Bay Gate" + }, + { + "Position": { + "X": -375.8867, + "Y": 23, + "Z": -352.31714 + }, + "TerritoryId": 140, + "InteractionType": "WalkTo", + "DisableNavmesh": true + }, + { + "DataId": 2008219, + "Position": { + "X": -326.1311, + "Y": 22.9953, + "Z": -348.19562 + }, + "TerritoryId": 140, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 7218 + ] + } + ] + }, + { + "Sequence": 7, + "Steps": [ + { + "Position": { + "X": -375.8867, + "Y": 23, + "Z": -352.31714 + }, + "TerritoryId": 140, + "InteractionType": "WalkTo" + }, + { + "Position": { + "X": -408.92343, + "Y": 23.167036, + "Z": -351.16223 + }, + "TerritoryId": 140, + "InteractionType": "WalkTo", + "$": "Vesper Bay Gate", + "DisableNavmesh": true + }, + { + "DataId": 1021453, + "Position": { + "X": -407.98047, + "Y": 23.008799, + "Z": -320.36322 + }, + "TerritoryId": 140, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 8, + "Steps": [ + { + "Position": { + "X": -405.64215, + "Y": 23.167034, + "Z": -350.37634 + }, + "TerritoryId": 140, + "InteractionType": "WalkTo" + }, + { + "DataId": 1021456, + "Position": { + "X": -400.38147, + "Y": 23, + "Z": -348.13464 + }, + "StopDistance": 7, + "TerritoryId": 140, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1021457, + "Position": { + "X": -476.40198, + "Y": 23.228897, + "Z": -430.71643 + }, + "TerritoryId": 140, + "InteractionType": "CompleteQuest", + "Fly": true, + "NextQuestId": 2579 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Class Quests/RDM/2579_Tracking the Cabal.json b/QuestPaths/4.x - Stormblood/Class Quests/RDM/2579_Tracking the Cabal.json new file mode 100644 index 000000000..1fd975713 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/RDM/2579_Tracking the Cabal.json @@ -0,0 +1,213 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1021457, + "Position": { + "X": -476.40198, + "Y": 23.228897, + "Z": -430.71643 + }, + "TerritoryId": 140, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Western Thanalan - Horizon", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1021458, + "Position": { + "X": 282.5818, + "Y": -24.99566, + "Z": 243.7323 + }, + "TerritoryId": 138, + "InteractionType": "Interact", + "AetheryteShortcut": "Western La Noscea - Aleport" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1021464, + "Position": { + "X": 327.77905, + "Y": -31.89878, + "Z": 275.59314 + }, + "TerritoryId": 138, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 1021463, + "Position": { + "X": 311.4823, + "Y": -36.325005, + "Z": 351.33887 + }, + "TerritoryId": 138, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 1021465, + "Position": { + "X": 319.2339, + "Y": -40.425003, + "Z": 382.37573 + }, + "TerritoryId": 138, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1021458, + "Position": { + "X": 282.5818, + "Y": -24.99566, + "Z": 243.7323 + }, + "StopDistance": 1, + "TerritoryId": 138, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 2008221, + "Position": { + "X": 200.09155, + "Y": -36.728516, + "Z": 276.17297 + }, + "TerritoryId": 138, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 7219 + ], + "Fly": true + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1021459, + "Position": { + "X": 207.35486, + "Y": -36.405907, + "Z": 328.11462 + }, + "TerritoryId": 138, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 2008924, + "Position": { + "X": 206.073, + "Y": -35.568848, + "Z": 329.21338 + }, + "TerritoryId": 138, + "InteractionType": "UseItem", + "ItemId": 2002182 + } + ] + }, + { + "Sequence": 7, + "Steps": [ + { + "Position": { + "X": 303.05298, + "Y": -36.405563, + "Z": 307.39264 + }, + "TerritoryId": 138, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 1021460, + "Position": { + "X": 319.44763, + "Y": -35.9496, + "Z": 305.6228 + }, + "TerritoryId": 138, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1021462, + "Position": { + "X": 307.36243, + "Y": -36.402996, + "Z": 309.98706 + }, + "TerritoryId": 138, + "InteractionType": "CompleteQuest", + "NextQuestId": 2580 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Class Quests/RDM/2580_A Vermilion Vendetta.json b/QuestPaths/4.x - Stormblood/Class Quests/RDM/2580_A Vermilion Vendetta.json new file mode 100644 index 000000000..a2ef61353 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/RDM/2580_A Vermilion Vendetta.json @@ -0,0 +1,188 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1021462, + "Position": { + "X": 307.36243, + "Y": -36.402996, + "Z": 309.98706 + }, + "TerritoryId": 138, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Western La Noscea - Aleport", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1021466, + "Position": { + "X": 320.54626, + "Y": -35.949726, + "Z": 306.11108 + }, + "TerritoryId": 138, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": 310.38196, + "Y": -35.96502, + "Z": 314.66306 + }, + "TerritoryId": 138, + "InteractionType": "WalkTo", + "Mount": true + }, + { + "Position": { + "X": 192.09558, + "Y": -17.541195, + "Z": 268.45526 + }, + "TerritoryId": 138, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 1021467, + "Position": { + "X": 190.96667, + "Y": -17.339743, + "Z": 269.27588 + }, + "TerritoryId": 138, + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_JOBRDM560_02580_Q1_000_100", + "Answer": "TEXT_JOBRDM560_02580_A1_000_101" + }, + { + "Type": "List", + "Prompt": "TEXT_JOBRDM560_02580_Q2_000_131", + "Answer": "TEXT_JOBRDM560_02580_A2_000_131" + } + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "Position": { + "X": 303.05298, + "Y": -36.405563, + "Z": 307.39264 + }, + "TerritoryId": 138, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 1021468, + "Position": { + "X": 319.44763, + "Y": -35.949703, + "Z": 306.90466 + }, + "TerritoryId": 138, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1003584, + "Position": { + "X": 317.43335, + "Y": -36.325005, + "Z": 352.86487 + }, + "TerritoryId": 138, + "InteractionType": "Interact", + "TargetTerritoryId": 138 + }, + { + "DataId": 1021469, + "Position": { + "X": -289.14325, + "Y": -40.63008, + "Z": 420.46228 + }, + "StopDistance": 7, + "TerritoryId": 138, + "InteractionType": "SinglePlayerDuty" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1021442, + "Position": { + "X": -304.89056, + "Y": -40.172314, + "Z": 660.1815 + }, + "TerritoryId": 138, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1021471, + "Position": { + "X": 320.88184, + "Y": -40.425003, + "Z": 369.77185 + }, + "TerritoryId": 138, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1021473, + "Position": { + "X": 311.39075, + "Y": -25.002254, + "Z": 230.82312 + }, + "TerritoryId": 138, + "InteractionType": "CompleteQuest", + "Fly": true, + "NextQuestId": 2581 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Class Quests/RDM/2581_On Lambard's Trail.json b/QuestPaths/4.x - Stormblood/Class Quests/RDM/2581_On Lambard's Trail.json new file mode 100644 index 000000000..4c3a15e64 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/RDM/2581_On Lambard's Trail.json @@ -0,0 +1,145 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1021473, + "Position": { + "X": 311.39075, + "Y": -25.002254, + "Z": 230.82312 + }, + "TerritoryId": 138, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Western La Noscea - Aleport", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1021475, + "Position": { + "X": -196.94824, + "Y": 15.542886, + "Z": 37.582886 + }, + "TerritoryId": 129, + "InteractionType": "Interact", + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] Hawkers' Alley" + ], + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_JOBRDM580_02581_Q1_000_100", + "Answer": "TEXT_JOBRDM580_02581_A1_000_101" + } + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1021478, + "Position": { + "X": -17.257996, + "Y": 40.000496, + "Z": -6.4240723 + }, + "TerritoryId": 128, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Limsa Lominsa] Hawkers' Alley", + "[Limsa Lominsa] The Aftcastle" + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1021480, + "Position": { + "X": -304.28015, + "Y": 78.854965, + "Z": -140.82556 + }, + "TerritoryId": 147, + "InteractionType": "Interact", + "AetheryteShortcut": "Northern Thanalan - Ceruleum Processing Plant", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 2008233, + "Position": { + "X": -292.6833, + "Y": 84.4281, + "Z": -359.39575 + }, + "TerritoryId": 147, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 7221, + 7222 + ], + "Fly": true + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1021480, + "Position": { + "X": -304.28015, + "Y": 78.854965, + "Z": -140.82556 + }, + "TerritoryId": 147, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1021482, + "Position": { + "X": -94.92645, + "Y": 48.01958, + "Z": -31.570984 + }, + "TerritoryId": 147, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Northern Thanalan - Ceruleum Processing Plant", + "Fly": true, + "NextQuestId": 2582 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Class Quests/RDM/2582_Stained in Scarlet.json b/QuestPaths/4.x - Stormblood/Class Quests/RDM/2582_Stained in Scarlet.json new file mode 100644 index 000000000..3a7ccbdd8 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/RDM/2582_Stained in Scarlet.json @@ -0,0 +1,190 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1021482, + "Position": { + "X": -94.92645, + "Y": 48.01958, + "Z": -31.570984 + }, + "TerritoryId": 147, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Northern Thanalan - Ceruleum Processing Plant", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1021484, + "Position": { + "X": 3.3721924, + "Y": 50.266228, + "Z": -770.1076 + }, + "TerritoryId": 156, + "InteractionType": "Interact", + "AetheryteShortcut": "Mor Dhona", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1021486, + "Position": { + "X": 54.642456, + "Y": 20.4949, + "Z": -671.3207 + }, + "TerritoryId": 156, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1021487, + "Position": { + "X": 94.56018, + "Y": 20.33949, + "Z": -609.4606 + }, + "TerritoryId": 156, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "Position": { + "X": 175.10304, + "Y": 10.336163, + "Z": -584.578 + }, + "StopDistance": 0.5, + "TerritoryId": 156, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [ + 7223 + ], + "Fly": true, + "CompletionQuestVariablesFlags": [ + { + "Low": 2 + }, + null, + null, + null, + null, + null + ] + }, + { + "DataId": 1021489, + "Position": { + "X": 176.3789, + "Y": 9.963035, + "Z": -583.64233 + }, + "TerritoryId": 156, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "Position": { + "X": 210.32977, + "Y": -17.479898, + "Z": -470.8124 + }, + "StopDistance": 0.5, + "TerritoryId": 156, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [ + 7224 + ], + "Fly": true, + "CompletionQuestVariablesFlags": [ + { + "Low": 3 + }, + null, + null, + null, + null, + null + ] + }, + { + "DataId": 1021490, + "Position": { + "X": 211.56628, + "Y": -17.612108, + "Z": -469.50488 + }, + "TerritoryId": 156, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 2008526, + "Position": { + "X": 376.82153, + "Y": -17.563171, + "Z": -343.67902 + }, + "TerritoryId": 156, + "InteractionType": "SinglePlayerDuty", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1021493, + "Position": { + "X": 55.557983, + "Y": 20.485168, + "Z": -672.5719 + }, + "TerritoryId": 156, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Mor Dhona", + "NextQuestId": 2583 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Class Quests/RDM/2583_The Color of Her Hair.json b/QuestPaths/4.x - Stormblood/Class Quests/RDM/2583_The Color of Her Hair.json new file mode 100644 index 000000000..b36a531b5 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/RDM/2583_The Color of Her Hair.json @@ -0,0 +1,132 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1021493, + "Position": { + "X": 55.557983, + "Y": 20.485168, + "Z": -672.5719 + }, + "TerritoryId": 156, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Mor Dhona", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1021772, + "Position": { + "X": 63.095947, + "Y": 207.82686, + "Z": -14.725037 + }, + "TerritoryId": 478, + "InteractionType": "Interact", + "AetheryteShortcut": "Idyllshire" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2008220, + "Position": { + "X": 385.9464, + "Y": 78.446655, + "Z": -114.488464 + }, + "TerritoryId": 399, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 7225, + 8039 + ], + "AethernetShortcut": [ + "[Idyllshire] Aetheryte Plaza", + "[Idyllshire] Epilogue Gate (Eastern Hinterlands)" + ], + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1021774, + "Position": { + "X": 141.31372, + "Y": 66.09973, + "Z": -238.14758 + }, + "TerritoryId": 399, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1021775, + "Position": { + "X": 266.98706, + "Y": 78.3604, + "Z": -10.788147 + }, + "TerritoryId": 399, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1021778, + "Position": { + "X": -4.135254, + "Y": 211, + "Z": -39.84137 + }, + "TerritoryId": 478, + "InteractionType": "Interact", + "AetheryteShortcut": "Idyllshire" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1021779, + "Position": { + "X": -5.44751, + "Y": 210.99998, + "Z": -39.658203 + }, + "TerritoryId": 478, + "InteractionType": "CompleteQuest", + "NextQuestId": 2584 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Class Quests/RDM/2584_Traced in Blood.json b/QuestPaths/4.x - Stormblood/Class Quests/RDM/2584_Traced in Blood.json new file mode 100644 index 000000000..e01905903 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/RDM/2584_Traced in Blood.json @@ -0,0 +1,340 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1021779, + "Position": { + "X": -5.44751, + "Y": 210.99998, + "Z": -39.658203 + }, + "TerritoryId": 478, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Idyllshire", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + }, + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_JOBRDM630_02584_Q1_000_050", + "Answer": "TEXT_JOBRDM630_02584_A1_000_051" + } + ] + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": -341.33426, + "Y": 94.733665, + "Z": -414.5643 + }, + "TerritoryId": 620, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Peaks - Ala Gannha", + "Fly": true + }, + { + "DataId": 1021780, + "Position": { + "X": -339.04022, + "Y": 94.94087, + "Z": -414.17566 + }, + "TerritoryId": 620, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2008291, + "Position": { + "X": -299.48883, + "Y": 200.7019, + "Z": -240.55853 + }, + "TerritoryId": 620, + "InteractionType": "Interact", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "Position": { + "X": -299.41455, + "Y": 200.71986, + "Z": -238.0671 + }, + "StopDistance": 0.5, + "TerritoryId": 620, + "InteractionType": "Jump", + "JumpDestination": { + "Position": { + "X": -299.78412, + "Y": 202.14117, + "Z": -229.18993 + } + }, + "SkipConditions": { + "StepIf": { + "Flying": "Unlocked", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + } + } + }, + { + "Position": { + "X": -292.9197, + "Y": 203.25142, + "Z": -222.20459 + }, + "TerritoryId": 620, + "InteractionType": "WalkTo", + "DisableNavmesh": true, + "SkipConditions": { + "StepIf": { + "Flying": "Unlocked", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + } + } + }, + { + "Position": { + "X": -262.3789, + "Y": 106.614746, + "Z": -206.86658 + }, + "TerritoryId": 620, + "InteractionType": "WalkTo", + "DisableNavmesh": true, + "Sprint": false, + "SkipConditions": { + "StepIf": { + "Flying": "Unlocked", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + } + } + }, + { + "DataId": 2008292, + "Position": { + "X": -262.3789, + "Y": 106.614746, + "Z": -206.86658 + }, + "TerritoryId": 620, + "InteractionType": "Interact", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "Position": { + "X": -207.53746, + "Y": 108.3858, + "Z": -304.68738 + }, + "StopDistance": 0.5, + "InteractionType": "WalkTo", + "TerritoryId": 620, + "SkipConditions": { + "StepIf": { + "Flying": "Unlocked", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + } + } + }, + { + "Position": { + "X": -207.53746, + "Y": 108.3858, + "Z": -304.68738 + }, + "StopDistance": 0.5, + "TerritoryId": 620, + "InteractionType": "Jump", + "JumpDestination": { + "Position": { + "X": -210.40668, + "Y": 109.666504, + "Z": -299.794 + }, + "StopDistance": 0.5, + "DelaySeconds": 0.2 + }, + "Mount": false, + "SkipConditions": { + "StepIf": { + "Flying": "Unlocked", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + } + } + }, + { + "DataId": 2008293, + "Position": { + "X": -210.40668, + "Y": 109.666504, + "Z": -299.794 + }, + "StopDistance": 1, + "TerritoryId": 620, + "InteractionType": "Interact", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "Position": { + "X": -213.96315, + "Y": 107.1167, + "Z": -305.87753 + }, + "TerritoryId": 620, + "InteractionType": "WalkTo", + "DisableNavmesh": true, + "SkipConditions": { + "StepIf": { + "Flying": "Unlocked" + } + } + }, + { + "DataId": 1021781, + "Position": { + "X": -308.43066, + "Y": 102.62436, + "Z": -372.2744 + }, + "TerritoryId": 620, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 2008294, + "Position": { + "X": 782.6809, + "Y": 256.91602, + "Z": -388.29633 + }, + "TerritoryId": 620, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 7822 + ], + "Fly": true + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1021782, + "Position": { + "X": 120.74463, + "Y": 118.383255, + "Z": -732.57043 + }, + "TerritoryId": 620, + "InteractionType": "Interact", + "AetheryteShortcut": "Peaks - Ala Gannha" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1021778, + "Position": { + "X": -4.135254, + "Y": 211, + "Z": -39.84137 + }, + "TerritoryId": 478, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Idyllshire", + "NextQuestId": 2585 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Class Quests/RDM/2585_Nightkin.json b/QuestPaths/4.x - Stormblood/Class Quests/RDM/2585_Nightkin.json new file mode 100644 index 000000000..c13a4f242 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/RDM/2585_Nightkin.json @@ -0,0 +1,132 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1021779, + "Position": { + "X": -5.44751, + "Y": 210.99998, + "Z": -39.658203 + }, + "StopDistance": 7, + "TerritoryId": 478, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Idyllshire", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": -25.853794, + "Y": 210.99998, + "Z": 3.6528845 + }, + "TerritoryId": 478, + "InteractionType": "WalkTo", + "Mount": true + }, + { + "Position": { + "X": -20.601719, + "Y": 205.82156, + "Z": 23.937931 + }, + "TerritoryId": 478, + "InteractionType": "WalkTo", + "DisableNavmesh": true + }, + { + "DataId": 1012133, + "Position": { + "X": -26.840637, + "Y": 206.49944, + "Z": 28.67163 + }, + "TerritoryId": 478, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1021779, + "Position": { + "X": -5.44751, + "Y": 210.99998, + "Z": -39.658203 + }, + "TerritoryId": 478, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1021783, + "Position": { + "X": 277.11902, + "Y": 232.541, + "Z": 785.5801 + }, + "TerritoryId": 399, + "InteractionType": "SinglePlayerDuty", + "Comment": "TODO Navigation doesn't work if flying is locked", + "AethernetShortcut": [ + "[Idyllshire] Aetheryte Plaza", + "[Idyllshire] Prologue Gate (Western Hinterlands)" + ], + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1021783, + "Position": { + "X": 277.11902, + "Y": 232.54102, + "Z": 785.5801 + }, + "StopDistance": 7, + "TerritoryId": 399, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1021779, + "Position": { + "X": -5.44751, + "Y": 210.99998, + "Z": -39.658203 + }, + "TerritoryId": 478, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Idyllshire", + "NextQuestId": 2586 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Class Quests/RDM/2586_Child of Lilith.json b/QuestPaths/4.x - Stormblood/Class Quests/RDM/2586_Child of Lilith.json new file mode 100644 index 000000000..648f8907b --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/RDM/2586_Child of Lilith.json @@ -0,0 +1,172 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1021779, + "Position": { + "X": -5.44751, + "Y": 210.99998, + "Z": -39.658203 + }, + "StopDistance": 7, + "TerritoryId": 478, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Idyllshire", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1021785, + "Position": { + "X": 115.19031, + "Y": 14.631312, + "Z": -165.11792 + }, + "TerritoryId": 419, + "InteractionType": "Interact", + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] The Tribunal" + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1021788, + "Position": { + "X": 34.042847, + "Y": 11.965077, + "Z": 48.355713 + }, + "TerritoryId": 419, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Ishgard] The Tribunal", + "[Ishgard] The Last Vigil" + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1021789, + "Position": { + "X": 455.5885, + "Y": 300.37985, + "Z": -349.32483 + }, + "TerritoryId": 155, + "InteractionType": "Interact", + "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 2008997, + "Position": { + "X": 299.2141, + "Y": 239.12415, + "Z": -312.76422 + }, + "TerritoryId": 155, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 7226 + ], + "Fly": true + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1021791, + "Position": { + "X": 445.94482, + "Y": 250.97905, + "Z": -309.25464 + }, + "TerritoryId": 155, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1021794, + "Position": { + "X": 295.9486, + "Y": 238.09589, + "Z": -317.34192 + }, + "TerritoryId": 155, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 7, + "Steps": [ + { + "DataId": 1021793, + "Position": { + "X": 295.24683, + "Y": 238.25597, + "Z": -315.78546 + }, + "TerritoryId": 155, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1021795, + "Position": { + "X": -19.638367, + "Y": 15.965051, + "Z": -37.247314 + }, + "TerritoryId": 419, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] The Last Vigil" + ], + "NextQuestId": 2587 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Class Quests/RDM/2587_With Heart and Steel.json b/QuestPaths/4.x - Stormblood/Class Quests/RDM/2587_With Heart and Steel.json new file mode 100644 index 000000000..6a7874626 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/RDM/2587_With Heart and Steel.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": 1021795, + "Position": { + "X": -19.638367, + "Y": 15.965051, + "Z": -37.247314 + }, + "TerritoryId": 419, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] The Last Vigil" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 419 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1021796, + "Position": { + "X": -198.71832, + "Y": 18, + "Z": 61.08191 + }, + "TerritoryId": 130, + "InteractionType": "Interact", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Thaumaturges' Guild" + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1021798, + "Position": { + "X": -198.71832, + "Y": 18, + "Z": 61.08191 + }, + "TerritoryId": 130, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1021799, + "Position": { + "X": 54.520386, + "Y": 20.411621, + "Z": -676.6614 + }, + "TerritoryId": 156, + "InteractionType": "Interact", + "AetheryteShortcut": "Mor Dhona" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1021801, + "Position": { + "X": 367.87964, + "Y": -16.467955, + "Z": -335.86633 + }, + "TerritoryId": 156, + "InteractionType": "SinglePlayerDuty", + "Fly": true + } + ] + }, + { + "Sequence": 5 + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1021804, + "Position": { + "X": 368.1543, + "Y": -16.339586, + "Z": -331.44128 + }, + "StopDistance": 5, + "TerritoryId": 156, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1021800, + "Position": { + "X": 55.557983, + "Y": 20.411068, + "Z": -675.5627 + }, + "TerritoryId": 156, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Mor Dhona" + } + ] + } + ] +} -- 2.45.2 From 9e3a5e5e934cdf9d941b7275b21b8cfc96eabfce Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Mon, 2 Dec 2024 05:34:35 +0100 Subject: [PATCH 304/448] Add DRK job quests --- .../Class Quests/DRK/2053_Our End.json | 69 ++++++ .../DRK/2054_Ishgardian Justice.json | 154 ++++++++++++ .../DRK/2055_The Voice in the Abyss.json | 198 +++++++++++++++ .../Class Quests/DRK/2056_Heroic Reprise.json | 186 +++++++++++++++ .../DRK/2057_Declaration of Blood.json | 144 +++++++++++ .../Class Quests/DRK/2058_Our Answer.json | 138 +++++++++++ .../DRK/2059_The Wages of Mercy.json | 85 +++++++ .../2060_The Knight and the Maiden Fair.json | 177 ++++++++++++++ .../DRK/2061_Kindred Spirits.json | 166 +++++++++++++ .../Class Quests/DRK/2062_Original Sins.json | 160 +++++++++++++ .../DRK/2063_The Flame in the Abyss.json | 216 +++++++++++++++++ .../Class Quests/DRK/2064_Absolution.json | 91 +++++++ .../DRK/2110_A Dark Spectacle.json | 41 ++++ .../DRK/2915_In Memories We Walked.json | 192 +++++++++++++++ .../DRK/2916_The Widow and Her Love.json | 144 +++++++++++ ...2917_The Orphans and the Broken Blade.json | 166 +++++++++++++ .../DRK/2918_We Can Never Go Home.json | 225 ++++++++++++++++++ .../Class Quests/DRK/2919_Our Compromise.json | 209 ++++++++++++++++ QuestPaths/quest-v1.json | 3 +- .../Questing/Converter/ActionConverter.cs | 1 + Questionable.Model/Questing/EAction.cs | 1 + 21 files changed, 2765 insertions(+), 1 deletion(-) create mode 100644 QuestPaths/3.x - Heavensward/Class Quests/DRK/2053_Our End.json create mode 100644 QuestPaths/3.x - Heavensward/Class Quests/DRK/2054_Ishgardian Justice.json create mode 100644 QuestPaths/3.x - Heavensward/Class Quests/DRK/2055_The Voice in the Abyss.json create mode 100644 QuestPaths/3.x - Heavensward/Class Quests/DRK/2056_Heroic Reprise.json create mode 100644 QuestPaths/3.x - Heavensward/Class Quests/DRK/2057_Declaration of Blood.json create mode 100644 QuestPaths/3.x - Heavensward/Class Quests/DRK/2058_Our Answer.json create mode 100644 QuestPaths/3.x - Heavensward/Class Quests/DRK/2059_The Wages of Mercy.json create mode 100644 QuestPaths/3.x - Heavensward/Class Quests/DRK/2060_The Knight and the Maiden Fair.json create mode 100644 QuestPaths/3.x - Heavensward/Class Quests/DRK/2061_Kindred Spirits.json create mode 100644 QuestPaths/3.x - Heavensward/Class Quests/DRK/2062_Original Sins.json create mode 100644 QuestPaths/3.x - Heavensward/Class Quests/DRK/2063_The Flame in the Abyss.json create mode 100644 QuestPaths/3.x - Heavensward/Class Quests/DRK/2064_Absolution.json create mode 100644 QuestPaths/3.x - Heavensward/Class Quests/DRK/2110_A Dark Spectacle.json create mode 100644 QuestPaths/4.x - Stormblood/Class Quests/DRK/2915_In Memories We Walked.json create mode 100644 QuestPaths/4.x - Stormblood/Class Quests/DRK/2916_The Widow and Her Love.json create mode 100644 QuestPaths/4.x - Stormblood/Class Quests/DRK/2917_The Orphans and the Broken Blade.json create mode 100644 QuestPaths/4.x - Stormblood/Class Quests/DRK/2918_We Can Never Go Home.json create mode 100644 QuestPaths/4.x - Stormblood/Class Quests/DRK/2919_Our Compromise.json diff --git a/QuestPaths/3.x - Heavensward/Class Quests/DRK/2053_Our End.json b/QuestPaths/3.x - Heavensward/Class Quests/DRK/2053_Our End.json new file mode 100644 index 000000000..53aa2a6fa --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Class Quests/DRK/2053_Our End.json @@ -0,0 +1,69 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1014873, + "Position": { + "X": 101.57922, + "Y": 12.418198, + "Z": -117.60132 + }, + "TerritoryId": 419, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] The Tribunal" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 419 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1014876, + "Position": { + "X": 5.783081, + "Y": -2.080677, + "Z": 45.395508 + }, + "TerritoryId": 418, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Ishgard] The Tribunal", + "[Ishgard] The Brume" + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1014875, + "Position": { + "X": 6.9122925, + "Y": -1.9210143, + "Z": 47.287598 + }, + "TerritoryId": 418, + "InteractionType": "CompleteQuest", + "NextQuestId": 2054 + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Class Quests/DRK/2054_Ishgardian Justice.json b/QuestPaths/3.x - Heavensward/Class Quests/DRK/2054_Ishgardian Justice.json new file mode 100644 index 000000000..ffe5965b6 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Class Quests/DRK/2054_Ishgardian Justice.json @@ -0,0 +1,154 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "TerritoryId": 418, + "InteractionType": "EquipItem", + "ItemId": 10400, + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] The Brume" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + }, + "StepIf": { + "Item": { + "NotInInventory": true + } + } + } + }, + { + "TerritoryId": 418, + "InteractionType": "EquipRecommended" + }, + { + "DataId": 1014875, + "Position": { + "X": 6.9122925, + "Y": -1.9210143, + "Z": 47.287598 + }, + "TerritoryId": 418, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1014879, + "Position": { + "X": 134.05042, + "Y": -20.020874, + "Z": 73.746826 + }, + "TerritoryId": 418, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1014880, + "Position": { + "X": 136.98022, + "Y": -20.020876, + "Z": 69.840576 + }, + "StopDistance": 7, + "TerritoryId": 418, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "Position": { + "X": 157.94511, + "Y": -19.477406, + "Z": 53.021667 + }, + "TerritoryId": 418, + "InteractionType": "WalkTo", + "TargetTerritoryId": 419 + }, + { + "DataId": 1014882, + "Position": { + "X": 244.09851, + "Y": -13.7349415, + "Z": -95.50629 + }, + "TerritoryId": 419, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1014883, + "Position": { + "X": 151.6289, + "Y": -9.190302, + "Z": -64.9577 + }, + "TerritoryId": 419, + "InteractionType": "SinglePlayerDuty" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1014888, + "Position": { + "X": 40.390625, + "Y": 16.080097, + "Z": -85.9541 + }, + "TerritoryId": 419, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1014889, + "Position": { + "X": 43.381348, + "Y": 16.080097, + "Z": -86.045654 + }, + "TerritoryId": 419, + "InteractionType": "CompleteQuest", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_JOBDRK301_02054_Q1_000_115", + "Answer": "TEXT_JOBDRK301_02054_A1_000_116" + } + ], + "NextQuestId": 2055 + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Class Quests/DRK/2055_The Voice in the Abyss.json b/QuestPaths/3.x - Heavensward/Class Quests/DRK/2055_The Voice in the Abyss.json new file mode 100644 index 000000000..11da9d9cc --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Class Quests/DRK/2055_The Voice in the Abyss.json @@ -0,0 +1,198 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1014890, + "Position": { + "X": 6.9122925, + "Y": -1.9210143, + "Z": 47.287598 + }, + "TerritoryId": 418, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] The Brume" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + }, + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_JOBDRK350_02055_Q1_000_002", + "Answer": "TEXT_JOBDRK350_02055_A1_000_003" + } + ] + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1014891, + "Position": { + "X": -173.17468, + "Y": 27.899424, + "Z": -397.69592 + }, + "TerritoryId": 146, + "InteractionType": "Interact", + "AetheryteShortcut": "Southern Thanalan - Little Ala Mhigo" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1006215, + "Position": { + "X": -227.34424, + "Y": 26.16842, + "Z": -352.98694 + }, + "TerritoryId": 146, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "Position": { + "X": -258.55716, + "Y": 26.612217, + "Z": -320.62222 + }, + "TerritoryId": 146, + "InteractionType": "WalkTo", + "Mount": true + }, + { + "Position": { + "X": -257.8064, + "Y": 14.002786, + "Z": -105.36169 + }, + "TerritoryId": 146, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 1014892, + "Position": { + "X": -415.03015, + "Y": 3.695741, + "Z": -42.343872 + }, + "TerritoryId": 146, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 2006291, + "Position": { + "X": -389.12036, + "Y": 3.4332886, + "Z": -57.572388 + }, + "TerritoryId": 146, + "InteractionType": "UseItem", + "ItemId": 2001812 + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 2006293, + "Position": { + "X": -384.9088, + "Y": 6.088318, + "Z": -45.212524 + }, + "TerritoryId": 146, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 4693 + ] + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1014892, + "Position": { + "X": -415.03015, + "Y": 3.695741, + "Z": -42.343872 + }, + "TerritoryId": 146, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 7, + "Steps": [ + { + "Position": { + "X": -257.8064, + "Y": 14.002786, + "Z": -105.36169 + }, + "TerritoryId": 146, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 1014893, + "Position": { + "X": -215.7168, + "Y": 16.844267, + "Z": -270.6493 + }, + "StopDistance": 1, + "TerritoryId": 146, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1014893, + "Position": { + "X": -215.7168, + "Y": 16.844267, + "Z": -270.6493 + }, + "TerritoryId": 146, + "InteractionType": "CompleteQuest", + "NextQuestId": 2056 + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Class Quests/DRK/2056_Heroic Reprise.json b/QuestPaths/3.x - Heavensward/Class Quests/DRK/2056_Heroic Reprise.json new file mode 100644 index 000000000..c5c14b19f --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Class Quests/DRK/2056_Heroic Reprise.json @@ -0,0 +1,186 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1014890, + "Position": { + "X": 6.9122925, + "Y": -1.9210143, + "Z": 47.287598 + }, + "TerritoryId": 418, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] The Brume" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1014894, + "Position": { + "X": 329.57947, + "Y": -11.1054125, + "Z": 157.64087 + }, + "TerritoryId": 145, + "InteractionType": "Interact", + "AetheryteShortcut": "Eastern Thanalan - Camp Drybone", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2006295, + "Position": { + "X": 298.6648, + "Y": -11.7647705, + "Z": 159.96033 + }, + "TerritoryId": 145, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 4694, + 4695 + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1014894, + "Position": { + "X": 329.57947, + "Y": -11.1054125, + "Z": 157.64087 + }, + "TerritoryId": 145, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1014895, + "Position": { + "X": -367.14734, + "Y": -55.99894, + "Z": 107.10303 + }, + "TerritoryId": 145, + "InteractionType": "Interact", + "AetheryteShortcut": "Eastern Thanalan - Camp Drybone", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_JOBDRK400_02056_Q1_000_056", + "Answer": "TEXT_JOBDRK400_02056_A2_000_058" + } + ] + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1014896, + "Position": { + "X": -200.30524, + "Y": -28.35069, + "Z": 324.75757 + }, + "StopDistance": 2, + "TerritoryId": 145, + "InteractionType": "SinglePlayerDuty", + "Fly": true + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1015329, + "Position": { + "X": -177.05048, + "Y": -31.365185, + "Z": 310.68884 + }, + "StopDistance": 7, + "TerritoryId": 145, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 7, + "Steps": [ + { + "DataId": 1003929, + "Position": { + "X": -378.65265, + "Y": -55.75492, + "Z": 106.79785 + }, + "TerritoryId": 145, + "InteractionType": "Interact", + "AetheryteShortcut": "Eastern Thanalan - Camp Drybone" + } + ] + }, + { + "Sequence": 8, + "Steps": [ + { + "DataId": 1014895, + "Position": { + "X": -367.14734, + "Y": -55.99894, + "Z": 107.10303 + }, + "TerritoryId": 145, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1014895, + "Position": { + "X": -367.14734, + "Y": -55.99894, + "Z": 107.10303 + }, + "TerritoryId": 145, + "InteractionType": "CompleteQuest", + "NextQuestId": 2057 + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Class Quests/DRK/2057_Declaration of Blood.json b/QuestPaths/3.x - Heavensward/Class Quests/DRK/2057_Declaration of Blood.json new file mode 100644 index 000000000..eec8b818b --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Class Quests/DRK/2057_Declaration of Blood.json @@ -0,0 +1,144 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1014890, + "Position": { + "X": 6.9122925, + "Y": -1.9210143, + "Z": 47.287598 + }, + "TerritoryId": 418, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] The Brume" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1014897, + "Position": { + "X": 168.74951, + "Y": 8.973653, + "Z": 583.85596 + }, + "TerritoryId": 135, + "InteractionType": "Interact", + "AetheryteShortcut": "Lower La Noscea - Moraby Drydocks", + "Fly": true, + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_JOBDRK450_02057_Q1_000_025", + "Answer": "TEXT_JOBDRK450_02057_A1_000_027" + } + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1014899, + "Position": { + "X": -97.76465, + "Y": 2.9821281, + "Z": 713.06934 + }, + "TerritoryId": 135, + "InteractionType": "SinglePlayerDuty", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1014900, + "Position": { + "X": -110.88739, + "Y": 9.73618, + "Z": 672.7245 + }, + "StopDistance": 5, + "TerritoryId": 135, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1014898, + "Position": { + "X": 162.005, + "Y": 8.973654, + "Z": 583.82544 + }, + "TerritoryId": 135, + "InteractionType": "Interact", + "AetheryteShortcut": "Lower La Noscea - Moraby Drydocks", + "Fly": true + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1014901, + "Position": { + "X": 235.67554, + "Y": 8, + "Z": 698.20703 + }, + "TerritoryId": 135, + "InteractionType": "Interact", + "Fly": true, + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_JOBDRK450_02057_Q2_000_111", + "Answer": "TEXT_JOBDRK450_02057_A2_000_114" + } + ], + "$": "Position is raised slightly, because Y(7.9999986) < 8 is under the floor" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1014901, + "Position": { + "X": 235.67554, + "Y": 8, + "Z": 698.20703 + }, + "TerritoryId": 135, + "InteractionType": "CompleteQuest", + "NextQuestId": 2058 + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Class Quests/DRK/2058_Our Answer.json b/QuestPaths/3.x - Heavensward/Class Quests/DRK/2058_Our Answer.json new file mode 100644 index 000000000..fd95f8eae --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Class Quests/DRK/2058_Our Answer.json @@ -0,0 +1,138 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1014890, + "Position": { + "X": 6.9122925, + "Y": -1.9210143, + "Z": 47.287598 + }, + "TerritoryId": 418, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] The Brume" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2006305, + "Position": { + "X": -94.95697, + "Y": 298.63428, + "Z": -212.66504 + }, + "TerritoryId": 155, + "InteractionType": "Say", + "ChatMessage": { + "Key": "TEXT_JOBDRK500_02058_SAY_000_000" + }, + "AethernetShortcut": [ + "[Ishgard] The Brume", + "[Ishgard] The Gates of Judgement (Coerthas Central Highlands)" + ], + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1015328, + "Position": { + "X": -313.5271, + "Y": 244.50482, + "Z": 33.310425 + }, + "TerritoryId": 155, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2006306, + "Position": { + "X": -405.53906, + "Y": 274.70813, + "Z": 79.087524 + }, + "TerritoryId": 155, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 4678, + 4679, + 4696 + ], + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1014906, + "Position": { + "X": -313.5271, + "Y": 244.50482, + "Z": 33.310425 + }, + "TerritoryId": 155, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1014907, + "Position": { + "X": -314.6258, + "Y": 244.62024, + "Z": 32.272827 + }, + "TerritoryId": 155, + "InteractionType": "SinglePlayerDuty" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1014908, + "Position": { + "X": -431.26575, + "Y": 210.99998, + "Z": -251.20929 + }, + "TerritoryId": 155, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Class Quests/DRK/2059_The Wages of Mercy.json b/QuestPaths/3.x - Heavensward/Class Quests/DRK/2059_The Wages of Mercy.json new file mode 100644 index 000000000..1c043087f --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Class Quests/DRK/2059_The Wages of Mercy.json @@ -0,0 +1,85 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1014909, + "Position": { + "X": -427.1153, + "Y": 211, + "Z": -267.26184 + }, + "TerritoryId": 155, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1015030, + "Position": { + "X": -824.979, + "Y": 243.96797, + "Z": -215.86938 + }, + "TerritoryId": 155, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 4377, + 4378 + ], + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1015030, + "Position": { + "X": -824.979, + "Y": 243.96797, + "Z": -215.86938 + }, + "TerritoryId": 155, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1013969, + "Position": { + "X": 104.234375, + "Y": 14.999986, + "Z": 40.787354 + }, + "TerritoryId": 418, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] The Forgotten Knight" + ], + "NextQuestId": 2060 + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Class Quests/DRK/2060_The Knight and the Maiden Fair.json b/QuestPaths/3.x - Heavensward/Class Quests/DRK/2060_The Knight and the Maiden Fair.json new file mode 100644 index 000000000..41ff70230 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Class Quests/DRK/2060_The Knight and the Maiden Fair.json @@ -0,0 +1,177 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1013969, + "Position": { + "X": 104.234375, + "Y": 14.999986, + "Z": 40.787354 + }, + "TerritoryId": 418, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] The Forgotten Knight" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1013970, + "Position": { + "X": 103.4104, + "Y": 15.00001, + "Z": 41.306152 + }, + "TerritoryId": 418, + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_JOBDRK520_02060_Q1_000_041", + "Answer": "TEXT_JOBDRK520_02060_A1_000_045" + } + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1015034, + "Position": { + "X": -634.69904, + "Y": -119.471756, + "Z": 476.24915 + }, + "TerritoryId": 401, + "InteractionType": "Interact", + "AetheryteShortcut": "The Sea of Clouds - Camp Cloudtop", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "Position": { + "X": -528.29944, + "Y": -165.42699, + "Z": 578.5855 + }, + "TerritoryId": 401, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "ComplexCombatData": [ + { + "DataId": 4812, + "MinimumKillCount": 3, + "CompletionQuestVariablesFlags": [ + null, + { + "High": 3 + }, + null, + null, + null, + null + ] + } + ], + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1015033, + "Position": { + "X": 571.8928, + "Y": -113.998665, + "Z": 326.74133 + }, + "TerritoryId": 401, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 2006342, + "Position": { + "X": 533.53174, + "Y": -100.14502, + "Z": 367.54407 + }, + "TerritoryId": 401, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 4619, + 5044, + 5045 + ], + "Fly": true + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1015036, + "Position": { + "X": 571.43494, + "Y": -113.94505, + "Z": 331.41064 + }, + "TerritoryId": 401, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1013969, + "Position": { + "X": 104.234375, + "Y": 14.999986, + "Z": 40.787354 + }, + "TerritoryId": 418, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] The Forgotten Knight" + ], + "NextQuestId": 2061 + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Class Quests/DRK/2061_Kindred Spirits.json b/QuestPaths/3.x - Heavensward/Class Quests/DRK/2061_Kindred Spirits.json new file mode 100644 index 000000000..53f0723a8 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Class Quests/DRK/2061_Kindred Spirits.json @@ -0,0 +1,166 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1013969, + "Position": { + "X": 104.234375, + "Y": 14.999986, + "Z": 40.787354 + }, + "TerritoryId": 418, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] The Forgotten Knight" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1015038, + "Position": { + "X": 210.49817, + "Y": 302.2458, + "Z": -166.888 + }, + "TerritoryId": 155, + "InteractionType": "Interact", + "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1015039, + "Position": { + "X": 209.43005, + "Y": 302.2567, + "Z": -166.888 + }, + "TerritoryId": 155, + "InteractionType": "SinglePlayerDuty" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1015040, + "Position": { + "X": 221.94238, + "Y": 222.00142, + "Z": 320.9734 + }, + "TerritoryId": 155, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1000692, + "Position": { + "X": -258.8083, + "Y": -5.7735243, + "Z": -27.267883 + }, + "TerritoryId": 133, + "InteractionType": "Interact", + "AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Conjurers' Guild" + ] + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1015043, + "Position": { + "X": 29.67871, + "Y": -7.8, + "Z": 89.61609 + }, + "TerritoryId": 132, + "InteractionType": "Interact", + "AetheryteShortcut": "Gridania" + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1015432, + "Position": { + "X": 29.67871, + "Y": -7.8, + "Z": 89.61609 + }, + "TerritoryId": 132, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 7, + "Steps": [ + { + "DataId": 1015066, + "Position": { + "X": 47.440186, + "Y": -8.046949, + "Z": 110.73462 + }, + "StopDistance": 6, + "TerritoryId": 132, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1013969, + "Position": { + "X": 104.234375, + "Y": 14.999986, + "Z": 40.787354 + }, + "TerritoryId": 418, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] The Forgotten Knight" + ], + "NextQuestId": 2062 + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Class Quests/DRK/2062_Original Sins.json b/QuestPaths/3.x - Heavensward/Class Quests/DRK/2062_Original Sins.json new file mode 100644 index 000000000..75ed1a1f4 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Class Quests/DRK/2062_Original Sins.json @@ -0,0 +1,160 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1013969, + "Position": { + "X": 104.234375, + "Y": 14.999986, + "Z": 40.787354 + }, + "TerritoryId": 418, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] The Forgotten Knight" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1011935, + "Position": { + "X": -285.63367, + "Y": 39.04305, + "Z": 53.72693 + }, + "TerritoryId": 398, + "InteractionType": "Interact", + "AetheryteShortcut": "The Dravanian Forelands - Anyx Trine", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1015044, + "Position": { + "X": -282.1546, + "Y": 39.043068, + "Z": 46.036377 + }, + "TerritoryId": 398, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2006344, + "Position": { + "X": -557.8241, + "Y": -92.24078, + "Z": 595.1781 + }, + "StopDistance": 1, + "TerritoryId": 398, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [ + 4685 + ], + "Fly": true, + "CompletionQuestVariablesFlags": [ + { + "Low": 3 + }, + null, + null, + null, + null, + null + ] + }, + { + "DataId": 2006344, + "Position": { + "X": -557.8241, + "Y": -92.24078, + "Z": 595.1781 + }, + "TerritoryId": 398, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1011935, + "Position": { + "X": -285.63367, + "Y": 39.04305, + "Z": 53.72693 + }, + "StopDistance": 7, + "TerritoryId": 398, + "InteractionType": "Interact", + "AetheryteShortcut": "The Dravanian Forelands - Anyx Trine", + "Fly": true + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1015046, + "Position": { + "X": -460.01373, + "Y": -9.639711, + "Z": -294.78906 + }, + "StopDistance": 5, + "TerritoryId": 398, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1013969, + "Position": { + "X": 104.234375, + "Y": 14.999986, + "Z": 40.787354 + }, + "TerritoryId": 418, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] The Forgotten Knight" + ], + "NextQuestId": 2063 + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Class Quests/DRK/2063_The Flame in the Abyss.json b/QuestPaths/3.x - Heavensward/Class Quests/DRK/2063_The Flame in the Abyss.json new file mode 100644 index 000000000..c2ffaa670 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Class Quests/DRK/2063_The Flame in the Abyss.json @@ -0,0 +1,216 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1013969, + "Position": { + "X": 104.234375, + "Y": 14.999986, + "Z": 40.787354 + }, + "TerritoryId": 418, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] The Forgotten Knight" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1012076, + "Position": { + "X": 254.13892, + "Y": -43.160442, + "Z": 626.3981 + }, + "TerritoryId": 400, + "InteractionType": "Interact", + "AetheryteShortcut": "The Churning Mists - Moghome" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2006346, + "Position": { + "X": 429.9839, + "Y": -10.11676, + "Z": 708.1864 + }, + "TerritoryId": 400, + "InteractionType": "Interact", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 2006347, + "Position": { + "X": 346.48657, + "Y": 0.25933838, + "Z": 565.6061 + }, + "TerritoryId": 400, + "InteractionType": "Interact", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 2006348, + "Position": { + "X": 312.1842, + "Y": 17.868286, + "Z": 718.8982 + }, + "TerritoryId": 400, + "InteractionType": "Interact", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, + { + "DataId": 2006349, + "Position": { + "X": 204.76074, + "Y": 4.7455444, + "Z": 736.3545 + }, + "TerritoryId": 400, + "InteractionType": "Interact", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 16 + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1012076, + "Position": { + "X": 254.13892, + "Y": -43.160442, + "Z": 626.3981 + }, + "TerritoryId": 400, + "InteractionType": "Interact", + "AetheryteShortcut": "The Churning Mists - Moghome" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 2006350, + "Position": { + "X": 173.84595, + "Y": -22.14087, + "Z": 160.7843 + }, + "TerritoryId": 400, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 4675 + ], + "Fly": true + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1015049, + "Position": { + "X": -158.80066, + "Y": -23.017008, + "Z": 282.12402 + }, + "TerritoryId": 400, + "InteractionType": "SinglePlayerDuty", + "Fly": true + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1015050, + "Position": { + "X": -158.1903, + "Y": -22.967546, + "Z": 275.83728 + }, + "TerritoryId": 400, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1013969, + "Position": { + "X": 104.234375, + "Y": 14.999986, + "Z": 40.787354 + }, + "TerritoryId": 418, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] The Forgotten Knight" + ], + "NextQuestId": 2064 + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Class Quests/DRK/2064_Absolution.json b/QuestPaths/3.x - Heavensward/Class Quests/DRK/2064_Absolution.json new file mode 100644 index 000000000..3144e70a8 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Class Quests/DRK/2064_Absolution.json @@ -0,0 +1,91 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1013969, + "Position": { + "X": 104.234375, + "Y": 14.999986, + "Z": 40.787354 + }, + "TerritoryId": 418, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] The Forgotten Knight" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1013970, + "Position": { + "X": 103.4104, + "Y": 15.00001, + "Z": 41.306152 + }, + "TerritoryId": 418, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1015052, + "Position": { + "X": -347.5243, + "Y": 91.63155, + "Z": -558.8312 + }, + "TerritoryId": 397, + "InteractionType": "SinglePlayerDuty", + "AetheryteShortcut": "Coerthas Western Highlands - Falcon's Nest", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1013969, + "Position": { + "X": 104.234375, + "Y": 14.999986, + "Z": 40.787354 + }, + "TerritoryId": 418, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] The Forgotten Knight" + ], + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_JOBDRK600_02064_Q1_000_153", + "Answer": "TEXT_JOBDRK600_02064_A1_000_154" + } + ], + "NextQuestId": 2915 + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Class Quests/DRK/2110_A Dark Spectacle.json b/QuestPaths/3.x - Heavensward/Class Quests/DRK/2110_A Dark Spectacle.json new file mode 100644 index 000000000..aa4915a4c --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Class Quests/DRK/2110_A Dark Spectacle.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": [ + { + "DataId": 1014873, + "Position": { + "X": 101.57922, + "Y": 12.418198, + "Z": -117.60132 + }, + "TerritoryId": 419, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] The Tribunal" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 419 + ] + } + }, + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_JOBDRK299_02110_Q1_000_005", + "Yes": true + } + ] + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Class Quests/DRK/2915_In Memories We Walked.json b/QuestPaths/4.x - Stormblood/Class Quests/DRK/2915_In Memories We Walked.json new file mode 100644 index 000000000..2ee08f1a6 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/DRK/2915_In Memories We Walked.json @@ -0,0 +1,192 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1013969, + "Position": { + "X": 104.234375, + "Y": 14.999986, + "Z": 40.787354 + }, + "TerritoryId": 418, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] The Forgotten Knight" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + }, + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_JOBDRK601_02915_Q0_000_004", + "Answer": "TEXT_JOBDRK601_02915_A0_000_005" + } + ] + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2008659, + "Position": { + "X": 2.5177002, + "Y": 11.947815, + "Z": 37.00305 + }, + "TerritoryId": 419, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Ishgard] The Forgotten Knight", + "[Ishgard] The Last Vigil" + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1022855, + "Position": { + "X": 75.394775, + "Y": 24.071722, + "Z": -13.595825 + }, + "TerritoryId": 418, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Ishgard] The Last Vigil", + "[Ishgard] The Forgotten Knight" + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1022859, + "Position": { + "X": 3.6774292, + "Y": 5.46805, + "Z": 26.596436 + }, + "TerritoryId": 418, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1022855, + "Position": { + "X": 75.394775, + "Y": 24.071722, + "Z": -13.595825 + }, + "TerritoryId": 418, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 2008660, + "Position": { + "X": 31.906494, + "Y": 15.945618, + "Z": -65.07977 + }, + "TerritoryId": 419, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Ishgard] The Forgotten Knight", + "[Ishgard] The Tribunal" + ] + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1022862, + "Position": { + "X": 482.29187, + "Y": 203.4332, + "Z": 683.25305 + }, + "TerritoryId": 397, + "InteractionType": "Interact", + "AetheryteShortcut": "Coerthas Western Highlands - Falcon's Nest", + "Fly": true + } + ] + }, + { + "Sequence": 7, + "Steps": [ + { + "DataId": 1022863, + "Position": { + "X": 384.2068, + "Y": 170.07738, + "Z": 419.7909 + }, + "TerritoryId": 397, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 8, + "Steps": [ + { + "DataId": 2008661, + "Position": { + "X": 380.02588, + "Y": 169.78711, + "Z": 416.5559 + }, + "TerritoryId": 397, + "InteractionType": "Action", + "Action": "Souleater" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1022866, + "Position": { + "X": 482.07825, + "Y": 203.4332, + "Z": 680.7506 + }, + "TerritoryId": 397, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Coerthas Western Highlands - Falcon's Nest", + "Fly": true, + "NextQuestId": 2916 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Class Quests/DRK/2916_The Widow and Her Love.json b/QuestPaths/4.x - Stormblood/Class Quests/DRK/2916_The Widow and Her Love.json new file mode 100644 index 000000000..3ee4231d3 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/DRK/2916_The Widow and Her Love.json @@ -0,0 +1,144 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1022866, + "Position": { + "X": 482.07825, + "Y": 203.4332, + "Z": 680.7506 + }, + "TerritoryId": 397, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Coerthas Western Highlands - Falcon's Nest", + "Fly": true + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1022870, + "Position": { + "X": 464.53027, + "Y": -51.1414, + "Z": 44.47998 + }, + "TerritoryId": 398, + "InteractionType": "Interact", + "AetheryteShortcut": "The Dravanian Forelands - Tailfeather", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2008662, + "Position": { + "X": 436.94202, + "Y": -51.163513, + "Z": 98.68005 + }, + "StopDistance": 1, + "TerritoryId": 398, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1022879, + "Position": { + "X": 503.4713, + "Y": -45.078712, + "Z": -116.92993 + }, + "StopDistance": 1, + "TerritoryId": 398, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 7489, + 7490 + ], + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1022880, + "Position": { + "X": 612.8175, + "Y": -26.250998, + "Z": -436.45386 + }, + "TerritoryId": 398, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 2008663, + "Position": { + "X": 622.8275, + "Y": -25.467346, + "Z": -446.43323 + }, + "TerritoryId": 398, + "InteractionType": "Action", + "Action": "Souleater" + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1023414, + "Position": { + "X": 617.8529, + "Y": -25.577927, + "Z": -446.61633 + }, + "TerritoryId": 398, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1022885, + "Position": { + "X": 461.41748, + "Y": -51.141403, + "Z": 43.4729 + }, + "TerritoryId": 398, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "The Dravanian Forelands - Tailfeather", + "Fly": true, + "NextQuestId": 2917 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Class Quests/DRK/2917_The Orphans and the Broken Blade.json b/QuestPaths/4.x - Stormblood/Class Quests/DRK/2917_The Orphans and the Broken Blade.json new file mode 100644 index 000000000..7a0f1a91c --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/DRK/2917_The Orphans and the Broken Blade.json @@ -0,0 +1,166 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1022885, + "Position": { + "X": 461.41748, + "Y": -51.141403, + "Z": 43.4729 + }, + "TerritoryId": 398, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "The Dravanian Forelands - Tailfeather", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1022888, + "Position": { + "X": 252.58252, + "Y": -43.12347, + "Z": 627.06946 + }, + "TerritoryId": 400, + "InteractionType": "Interact", + "AetheryteShortcut": "The Churning Mists - Moghome" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1022891, + "Position": { + "X": 154.25342, + "Y": -64.449585, + "Z": 678.06506 + }, + "TerritoryId": 400, + "InteractionType": "Interact", + "Fly": true, + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_JOBDRK650_02917_Q1_000_052", + "Answer": "TEXT_JOBDRK650_02917_A1_000_053" + } + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1022888, + "Position": { + "X": 252.58252, + "Y": -43.12347, + "Z": 627.06946 + }, + "TerritoryId": 400, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1022893, + "Position": { + "X": 418.53967, + "Y": -28.947046, + "Z": 89.25 + }, + "TerritoryId": 400, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1022897, + "Position": { + "X": -166.24707, + "Y": -22.88001, + "Z": 289.38733 + }, + "TerritoryId": 400, + "InteractionType": "SinglePlayerDuty", + "Fly": true + } + ] + }, + { + "Sequence": 6 + }, + { + "Sequence": 7, + "Steps": [ + { + "DataId": 2008665, + "Position": { + "X": -160.02142, + "Y": -22.995422, + "Z": 283.6194 + }, + "TerritoryId": 400, + "InteractionType": "Action", + "Action": "Souleater" + } + ] + }, + { + "Sequence": 8, + "Steps": [ + { + "DataId": 1022900, + "Position": { + "X": -164.5686, + "Y": -22.88756, + "Z": 285.7556 + }, + "StopDistance": 5, + "TerritoryId": 400, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1022953, + "Position": { + "X": 253.0708, + "Y": -43.136364, + "Z": 626.88635 + }, + "TerritoryId": 400, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "The Churning Mists - Moghome" + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Class Quests/DRK/2918_We Can Never Go Home.json b/QuestPaths/4.x - Stormblood/Class Quests/DRK/2918_We Can Never Go Home.json new file mode 100644 index 000000000..896e815ff --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/DRK/2918_We Can Never Go Home.json @@ -0,0 +1,225 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1022892, + "Position": { + "X": 252.64355, + "Y": -43.032913, + "Z": 625.0857 + }, + "TerritoryId": 400, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "The Churning Mists - Moghome", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1022890, + "Position": { + "X": -620.5692, + "Y": 130, + "Z": -527.5807 + }, + "TerritoryId": 612, + "InteractionType": "Interact", + "AetheryteShortcut": "Fringes - Castrum Oriens" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": -284.4574, + "Y": 73.94617, + "Z": -692.77094 + }, + "TerritoryId": 612, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 1022902, + "Position": { + "X": -359.51782, + "Y": 63.3675, + "Z": -727.93164 + }, + "TerritoryId": 612, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1022904, + "Position": { + "X": -276.75293, + "Y": 74.50722, + "Z": -695.8572 + }, + "TerritoryId": 612, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "Position": { + "X": 25.767, + "Y": 54.715424, + "Z": -532.3533 + }, + "StopDistance": 1, + "TerritoryId": 612, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [ + 7491 + ], + "Fly": true, + "CompletionQuestVariablesFlags": [ + { + "Low": 2 + }, + null, + null, + null, + null, + null + ] + }, + { + "DataId": 1022905, + "Position": { + "X": 25.101074, + "Y": 54.83547, + "Z": -533.04346 + }, + "TerritoryId": 612, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1022908, + "Position": { + "X": 182.8794, + "Y": 54.52025, + "Z": -491.56943 + }, + "TerritoryId": 612, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1022910, + "Position": { + "X": 301.31982, + "Y": 56.419365, + "Z": -470.08472 + }, + "TerritoryId": 612, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 7, + "Steps": [ + { + "DataId": 1022911, + "Position": { + "X": 383.65747, + "Y": 65.514336, + "Z": -539.4217 + }, + "TerritoryId": 612, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 8, + "Steps": [ + { + "DataId": 2008667, + "Position": { + "X": 386.95337, + "Y": 65.537476, + "Z": -540.9171 + }, + "TerritoryId": 612, + "InteractionType": "Action", + "Action": "Souleater" + } + ] + }, + { + "Sequence": 9, + "Steps": [ + { + "DataId": 2008668, + "Position": { + "X": -0.045776367, + "Y": 5.3864136, + "Z": -77.592224 + }, + "TerritoryId": 635, + "InteractionType": "Emote", + "Emote": "respect", + "AetheryteShortcut": "Rhalgr's Reach" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1013969, + "Position": { + "X": 104.234375, + "Y": 14.999986, + "Z": 40.787354 + }, + "TerritoryId": 418, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] The Forgotten Knight" + ], + "NextQuestId": 2918 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Class Quests/DRK/2919_Our Compromise.json b/QuestPaths/4.x - Stormblood/Class Quests/DRK/2919_Our Compromise.json new file mode 100644 index 000000000..8589e02ce --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/DRK/2919_Our Compromise.json @@ -0,0 +1,209 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1013969, + "Position": { + "X": 104.234375, + "Y": 14.999986, + "Z": 40.787354 + }, + "TerritoryId": 418, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] The Forgotten Knight" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1022916, + "Position": { + "X": -57.724915, + "Y": -0.071196444, + "Z": -40.146484 + }, + "TerritoryId": 635, + "InteractionType": "Interact", + "AetheryteShortcut": "Rhalgr's Reach", + "AethernetShortcut": [ + "[Rhalgr's Reach] Aetheryte Plaza", + "[Rhalgr's Reach] Western Rhalgr's Reach" + ], + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, + { + "DataId": 1019486, + "Position": { + "X": -116.746826, + "Y": 0.6342248, + "Z": -55.832825 + }, + "TerritoryId": 635, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 1022915, + "Position": { + "X": -38.773254, + "Y": 18.82157, + "Z": 146.807 + }, + "TerritoryId": 635, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1022914, + "Position": { + "X": 112.7489, + "Y": 0.6520417, + "Z": -9.414856 + }, + "TerritoryId": 635, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "Position": { + "X": 132.40436, + "Y": -0.5395956, + "Z": -3.4915996 + }, + "TerritoryId": 635, + "InteractionType": "WalkTo", + "TargetTerritoryId": 620 + }, + { + "DataId": 1022922, + "Position": { + "X": -553.70416, + "Y": 46.755432, + "Z": -669.9474 + }, + "TerritoryId": 620, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 2008669, + "Position": { + "X": -387.9607, + "Y": 51.93484, + "Z": -626.3676 + }, + "TerritoryId": 620, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1023073, + "Position": { + "X": -624.7196, + "Y": 58.3448, + "Z": -484.48926 + }, + "TerritoryId": 620, + "InteractionType": "SinglePlayerDuty" + } + ] + }, + { + "Sequence": 6 + }, + { + "Sequence": 7, + "Steps": [ + { + "DataId": 1013969, + "Position": { + "X": 104.234375, + "Y": 14.999986, + "Z": 40.787354 + }, + "TerritoryId": 418, + "InteractionType": "Interact", + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] The Forgotten Knight" + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 2008885, + "Position": { + "X": 2.670288, + "Y": 11.947815, + "Z": 36.972534 + }, + "TerritoryId": 419, + "InteractionType": "CompleteQuest", + "AethernetShortcut": [ + "[Ishgard] The Forgotten Knight", + "[Ishgard] The Last Vigil" + ] + } + ] + } + ] +} diff --git a/QuestPaths/quest-v1.json b/QuestPaths/quest-v1.json index 7511bc270..a4975e39c 100644 --- a/QuestPaths/quest-v1.json +++ b/QuestPaths/quest-v1.json @@ -968,7 +968,8 @@ "Raiton", "Hide", "Slug Shot", - "Bosom Brook" + "Bosom Brook", + "Souleater" ] } }, diff --git a/Questionable.Model/Questing/Converter/ActionConverter.cs b/Questionable.Model/Questing/Converter/ActionConverter.cs index 2af9cfa84..ed2f8be23 100644 --- a/Questionable.Model/Questing/Converter/ActionConverter.cs +++ b/Questionable.Model/Questing/Converter/ActionConverter.cs @@ -42,5 +42,6 @@ public sealed class ActionConverter() : EnumConverter(Values) { EAction.Raiton, "Raiton" }, { EAction.SlugShot, "Slug Shot" }, { EAction.BosomBrook, "Bosom Brook" }, + { EAction.Souleater, "Souleater" }, }; } diff --git a/Questionable.Model/Questing/EAction.cs b/Questionable.Model/Questing/EAction.cs index 0f72ecc6c..3b328872e 100644 --- a/Questionable.Model/Questing/EAction.cs +++ b/Questionable.Model/Questing/EAction.cs @@ -48,6 +48,7 @@ public enum EAction RabbitMedium = 2272, SlugShot = 7412, BosomBrook = 37173, + Souleater = 3632, CollectMiner = 240, ScourMiner = 22182, -- 2.45.2 From 9de05fee09d62043a29772ac641811c33d8107fd Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Mon, 2 Dec 2024 05:38:43 +0100 Subject: [PATCH 305/448] Fix quest ref --- .../Class Quests/DRK/2918_We Can Never Go Home.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/QuestPaths/4.x - Stormblood/Class Quests/DRK/2918_We Can Never Go Home.json b/QuestPaths/4.x - Stormblood/Class Quests/DRK/2918_We Can Never Go Home.json index 896e815ff..57d5a5155 100644 --- a/QuestPaths/4.x - Stormblood/Class Quests/DRK/2918_We Can Never Go Home.json +++ b/QuestPaths/4.x - Stormblood/Class Quests/DRK/2918_We Can Never Go Home.json @@ -217,7 +217,7 @@ "[Ishgard] Aetheryte Plaza", "[Ishgard] The Forgotten Knight" ], - "NextQuestId": 2918 + "NextQuestId": 2919 } ] } -- 2.45.2 From 98aa8f246916c0332ab73df6324dbad76c0e8a4f Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Mon, 2 Dec 2024 10:33:36 +0100 Subject: [PATCH 306/448] Version bump --- Directory.Build.targets | 2 +- Questionable/Functions/QuestFunctions.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Directory.Build.targets b/Directory.Build.targets index 7ee236734..e37cfa8e2 100644 --- a/Directory.Build.targets +++ b/Directory.Build.targets @@ -1,5 +1,5 @@ - 4.5 + 4.6 diff --git a/Questionable/Functions/QuestFunctions.cs b/Questionable/Functions/QuestFunctions.cs index e61997d95..532ea9840 100644 --- a/Questionable/Functions/QuestFunctions.cs +++ b/Questionable/Functions/QuestFunctions.cs @@ -178,7 +178,7 @@ internal sealed unsafe class QuestFunctions alliedQuestsForSameSociety.Insert(0, (firstTrackedQuest, firstTrackedSequence)); _alliedSocietyData.GetCommonAlliedSocietyNpcs(firstTrackedAlliedSociety, out uint[]? normalNpcs, - out uint[]? mountNpcs); + out _); if (normalNpcs.Length > 0) { -- 2.45.2 From 58ec1259f5c78b21b8e65db11583acba9ccbb33b Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Tue, 3 Dec 2024 14:00:20 +0100 Subject: [PATCH 307/448] Add diving condition to skip.StepIf --- .../RoslynElements/SkipConditionsExtensions.cs | 3 +++ QuestPaths/quest-v1.json | 3 +++ .../Questing/SkipStepConditions.cs | 4 +++- .../Controller/Steps/Shared/SkipCondition.cs | 16 +++++++++++++++- 4 files changed, 24 insertions(+), 2 deletions(-) diff --git a/QuestPathGenerator/RoslynElements/SkipConditionsExtensions.cs b/QuestPathGenerator/RoslynElements/SkipConditionsExtensions.cs index e904e0f78..01106bdab 100644 --- a/QuestPathGenerator/RoslynElements/SkipConditionsExtensions.cs +++ b/QuestPathGenerator/RoslynElements/SkipConditionsExtensions.cs @@ -48,6 +48,9 @@ internal static class SkipConditionsExtensions Assignment(nameof(SkipStepConditions.Flying), skipStepConditions.Flying, emptyStep.Flying) .AsSyntaxNodeOrToken(), + Assignment(nameof(SkipStepConditions.Diving), skipStepConditions.Diving, + emptyStep.Diving) + .AsSyntaxNodeOrToken(), Assignment(nameof(SkipStepConditions.Chocobo), skipStepConditions.Chocobo, emptyStep.Chocobo) .AsSyntaxNodeOrToken(), diff --git a/QuestPaths/quest-v1.json b/QuestPaths/quest-v1.json index a4975e39c..af5811474 100644 --- a/QuestPaths/quest-v1.json +++ b/QuestPaths/quest-v1.json @@ -211,6 +211,9 @@ "Unlocked" ] }, + "Diving": { + "type": ["boolean", "null"] + }, "NotTargetable": { "type": "boolean" }, diff --git a/Questionable.Model/Questing/SkipStepConditions.cs b/Questionable.Model/Questing/SkipStepConditions.cs index 25c1a46b1..08d5c2684 100644 --- a/Questionable.Model/Questing/SkipStepConditions.cs +++ b/Questionable.Model/Questing/SkipStepConditions.cs @@ -12,6 +12,7 @@ public sealed class SkipStepConditions public IList CompletionQuestVariablesFlags { get; set; } = new List(); public ELockedSkipCondition? Flying { get; set; } public ELockedSkipCondition? Chocobo { get; set; } + public bool? Diving { get; set; } public bool NotTargetable { get; set; } public List InTerritory { get; set; } = []; public List NotInTerritory { get; set; } = []; @@ -37,6 +38,7 @@ public sealed class SkipStepConditions return (CompletionQuestVariablesFlags.Count > 0 && CompletionQuestVariablesFlags.Any(x => x != null)) || Flying != null || Chocobo != null || + Diving != null || NotTargetable || InTerritory.Count > 0 || NotInTerritory.Count > 0 || @@ -53,6 +55,6 @@ public sealed class SkipStepConditions public override string ToString() { return - $"{nameof(Never)}: {Never}, {nameof(CompletionQuestVariablesFlags)}: {CompletionQuestVariablesFlags}, {nameof(Flying)}: {Flying}, {nameof(Chocobo)}: {Chocobo}, {nameof(NotTargetable)}: {NotTargetable}, {nameof(InTerritory)}: {string.Join(" ", InTerritory)}, {nameof(NotInTerritory)}: {string.Join(" ", NotInTerritory)}, {nameof(Item)}: {Item}, {nameof(QuestsAccepted)}: {string.Join(" ", QuestsAccepted)}, {nameof(QuestsCompleted)}: {string.Join(" ", QuestsCompleted)}, {nameof(NotNamePlateIconId)}: {string.Join(" ", NotNamePlateIconId)}, {nameof(NearPosition)}: {NearPosition}, {nameof(ExtraCondition)}: {ExtraCondition}"; + $"{nameof(Never)}: {Never}, {nameof(CompletionQuestVariablesFlags)}: {CompletionQuestVariablesFlags}, {nameof(Flying)}: {Flying}, {nameof(Chocobo)}: {Chocobo}, {nameof(Diving)}: {Diving}, {nameof(NotTargetable)}: {NotTargetable}, {nameof(InTerritory)}: {string.Join(" ", InTerritory)}, {nameof(NotInTerritory)}: {string.Join(" ", NotInTerritory)}, {nameof(Item)}: {Item}, {nameof(QuestsAccepted)}: {string.Join(" ", QuestsAccepted)}, {nameof(QuestsCompleted)}: {string.Join(" ", QuestsCompleted)}, {nameof(NotNamePlateIconId)}: {string.Join(" ", NotNamePlateIconId)}, {nameof(NearPosition)}: {NearPosition}, {nameof(ExtraCondition)}: {ExtraCondition}"; } } diff --git a/Questionable/Controller/Steps/Shared/SkipCondition.cs b/Questionable/Controller/Steps/Shared/SkipCondition.cs index 68297c4ed..5abab0594 100644 --- a/Questionable/Controller/Steps/Shared/SkipCondition.cs +++ b/Questionable/Controller/Steps/Shared/SkipCondition.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using System.Linq; using System.Numerics; +using Dalamud.Game.ClientState.Conditions; using Dalamud.Game.ClientState.Objects.Types; using Dalamud.Plugin.Services; using FFXIVClientStructs.FFXIV.Client.Game; @@ -54,7 +55,8 @@ internal static class SkipCondition AetheryteFunctions aetheryteFunctions, GameFunctions gameFunctions, QuestFunctions questFunctions, - IClientState clientState) : TaskExecutor + IClientState clientState, + ICondition condition) : TaskExecutor { protected override unsafe bool Start() { @@ -85,6 +87,18 @@ internal static class SkipCondition return true; } + if (skipConditions.Diving == true && condition[ConditionFlag.Diving]) + { + logger.LogInformation("Skipping step, as you're currently diving underwater"); + return true; + } + + if (skipConditions.Diving == false && !condition[ConditionFlag.Diving]) + { + logger.LogInformation("Skipping step, as you're not currently diving underwater"); + return true; + } + if (skipConditions.InTerritory.Count > 0 && skipConditions.InTerritory.Contains(clientState.TerritoryType)) { -- 2.45.2 From 6548b5206e332b290b35dda88e06cb240108f6e2 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Tue, 3 Dec 2024 16:35:37 +0100 Subject: [PATCH 308/448] Add additional flying steps if too far away from the mount-NPC for Vath + Vanu Vanu dailies --- .../Dailies/2173_Endymion Disco.json | 343 ++++++++++-------- .../Dailies/2175_Chigoe Cha-cha.json | 224 +++++++----- .../Vanu Vanu/Dailies/2178_Sanuwa Samba.json | 24 ++ .../Dailies/2182_Flight of the Midges.json | 42 ++- .../Dailies/2184_Reeling in the Vundu.json | 24 ++ .../Dailies/2200_Vanish, Vile Vundu.json | 24 ++ .../Vath/Dailies/2263_Bugging the Bugs.json | 24 ++ .../Vath/Dailies/2269_Ploughing Ahead.json | 24 ++ .../2272_Shoo Fly, Don't Bother Me.json | 24 ++ .../Vath/Dailies/2276_Flea Troubles.json | 24 ++ Questionable/Functions/QuestFunctions.cs | 22 +- 11 files changed, 540 insertions(+), 259 deletions(-) diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2173_Endymion Disco.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2173_Endymion Disco.json index 26d7324a2..43a8cda21 100644 --- a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2173_Endymion Disco.json +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2173_Endymion Disco.json @@ -1,153 +1,198 @@ { - "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "AnimaMachinae", - "QuestSequence": [ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "AnimaMachinae", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ { - "Sequence": 0, - "Steps": [ - { - "DataId": 1016089, - "Position": { - "X": -799.46594, - "Y": -133.2695, - "Z": -404.1352 - }, - "TerritoryId": 401, - "InteractionType": "AcceptQuest" - } - ] - }, - { - "Sequence": 1, - "Steps": [ - { - "DataId": 1016093, - "Position": { - "X": -776.0281, - "Y": -133.35559, - "Z": -414.32825 - }, - "TerritoryId": 401, - "InteractionType": "Interact" - } - ] - }, - { - "Sequence": 2, - "Steps": [ - { - "Position": { - "X": -544.89056, - "Y": 61.602722, - "Z": -373.9669 - }, - "TerritoryId": 401, - "InteractionType": "WalkTo", - "Fly": true - }, - { - "DataId": 2006649, - "Position": { - "X": -539.0555, - "Y": 64.22522, - "Z": -377.0047 - }, - "TerritoryId": 401, - "InteractionType": "Action", - "Action": "Buffet (Sanuwa)", - "StopDistance": 3, - "$": "0 0 0 0 0 0 --> 1 0 0 0 0 16", - "CompletionQuestVariablesFlags": [null,null,null,null,null,16] - }, - { - "Position": { - "X": -505.35422, - "Y": -28.166508, - "Z": -528.1072 - }, - "TerritoryId": 401, - "InteractionType": "WalkTo", - "Fly": true - }, - { - "DataId": 2006647, - "Position": { - "X": -504.78372, - "Y": -26.68805, - "Z": -530.93774 - }, - "TerritoryId": 401, - "InteractionType": "Action", - "Action": "Buffet (Sanuwa)", - "StopDistance": 3, - "$": "1 0 0 0 0 16 --> 2 0 0 0 0 80", - "CompletionQuestVariablesFlags": [null,null,null,null,null,64] - }, - { - "Position": { - "X": -478.25208, - "Y": -31.101946, - "Z": -663.0455 - }, - "TerritoryId": 401, - "InteractionType": "WalkTo", - "Fly": true - }, - { - "DataId": 2006648, - "Position": { - "X": -477.40906, - "Y": -28.885437, - "Z": -668.32996 - }, - "TerritoryId": 401, - "InteractionType": "Action", - "Action": "Buffet (Sanuwa)", - "StopDistance": 3, - "$": "2 0 0 0 0 80 --> 3 0 0 0 0 112", - "CompletionQuestVariablesFlags": [null,null,null,null,null,32] - }, - { - "Position": { - "X": -102.45963, - "Y": -1.2632592, - "Z": -619.294 - }, - "TerritoryId": 401, - "InteractionType": "WalkTo", - "Fly": true - }, - { - "DataId": 2006646, - "Position": { - "X": -96.20813, - "Y": 0.32037354, - "Z": -620.26404 - }, - "TerritoryId": 401, - "InteractionType": "Action", - "Action": "Buffet (Sanuwa)", - "StopDistance": 3, - "$": "3 0 0 0 0 112 --> 0 0 0 0 0 0" - } - ] - }, - { - "Sequence": 255, - "Steps": [ - { - "DataId": 1016089, - "Position": { - "X": -799.46594, - "Y": -133.2695, - "Z": -404.1352 - }, - "TerritoryId": 401, - "InteractionType": "CompleteQuest", - "AetheryteShortcut": "The Sea of Clouds - Ok' Zundu", - "Fly": true - } - ] + "DataId": 1016089, + "Position": { + "X": -799.46594, + "Y": -133.2695, + "Z": -404.1352 + }, + "TerritoryId": 401, + "InteractionType": "AcceptQuest" } - ] + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": -776.0281, + "Y": -133.35559, + "Z": -414.32825 + }, + "StopDistance": 3, + "TerritoryId": 398, + "InteractionType": "WalkTo", + "Fly": true, + "SkipConditions": { + "StepIf": { + "NearPosition": { + "Position": { + "X": -776.0281, + "Y": -133.35559, + "Z": -414.32825 + }, + "MaximumDistance": 50, + "TerritoryId": 401 + } + } + } + }, + { + "DataId": 1016093, + "Position": { + "X": -776.0281, + "Y": -133.35559, + "Z": -414.32825 + }, + "TerritoryId": 401, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": -544.89056, + "Y": 61.602722, + "Z": -373.9669 + }, + "TerritoryId": 401, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 2006649, + "Position": { + "X": -539.0555, + "Y": 64.22522, + "Z": -377.0047 + }, + "TerritoryId": 401, + "InteractionType": "Action", + "Action": "Buffet (Sanuwa)", + "StopDistance": 3, + "$": "0 0 0 0 0 0 --> 1 0 0 0 0 16", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 16 + ] + }, + { + "Position": { + "X": -505.35422, + "Y": -28.166508, + "Z": -528.1072 + }, + "TerritoryId": 401, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 2006647, + "Position": { + "X": -504.78372, + "Y": -26.68805, + "Z": -530.93774 + }, + "TerritoryId": 401, + "InteractionType": "Action", + "Action": "Buffet (Sanuwa)", + "StopDistance": 3, + "$": "1 0 0 0 0 16 --> 2 0 0 0 0 80", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "Position": { + "X": -478.25208, + "Y": -31.101946, + "Z": -663.0455 + }, + "TerritoryId": 401, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 2006648, + "Position": { + "X": -477.40906, + "Y": -28.885437, + "Z": -668.32996 + }, + "TerritoryId": 401, + "InteractionType": "Action", + "Action": "Buffet (Sanuwa)", + "StopDistance": 3, + "$": "2 0 0 0 0 80 --> 3 0 0 0 0 112", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, + { + "Position": { + "X": -102.45963, + "Y": -1.2632592, + "Z": -619.294 + }, + "TerritoryId": 401, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 2006646, + "Position": { + "X": -96.20813, + "Y": 0.32037354, + "Z": -620.26404 + }, + "TerritoryId": 401, + "InteractionType": "Action", + "Action": "Buffet (Sanuwa)", + "StopDistance": 3, + "$": "3 0 0 0 0 112 --> 0 0 0 0 0 0" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1016089, + "Position": { + "X": -799.46594, + "Y": -133.2695, + "Z": -404.1352 + }, + "TerritoryId": 401, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "The Sea of Clouds - Ok' Zundu", + "Fly": true + } + ] + } + ] } diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2175_Chigoe Cha-cha.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2175_Chigoe Cha-cha.json index 22ed93eed..e5e7a7f5d 100644 --- a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2175_Chigoe Cha-cha.json +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2175_Chigoe Cha-cha.json @@ -1,104 +1,128 @@ { - "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "AnimaMachinae", - "QuestSequence": [ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "AnimaMachinae", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ { - "Sequence": 0, - "Steps": [ - { - "DataId": 1016089, - "Position": { - "X": -799.46594, - "Y": -133.2695, - "Z": -404.1352 - }, - "TerritoryId": 401, - "InteractionType": "AcceptQuest" - } - ] - }, - { - "Sequence": 1, - "Steps": [ - { - "DataId": 1016093, - "Position": { - "X": -776.0281, - "Y": -133.35559, - "Z": -414.32825 - }, - "TerritoryId": 401, - "InteractionType": "Interact" - } - ] - }, - { - "Sequence": 2, - "Steps": [ - { - "DataId": 2006655, - "Position": { - "X": -48.325317, - "Y": 17.990356, - "Z": -852.47577 - }, - "TerritoryId": 401, - "InteractionType": "Action", - "Fly": true, - "Action": "Buffet (Sanuwa)" - } - ] - }, - { - "Sequence": 3, - "Steps": [ - { - "DataId": 2006656, - "Position": { - "X": 95.23157, - "Y": -11.886841, - "Z": -817.6242 - }, - "TerritoryId": 401, - "InteractionType": "Action", - "Fly": true, - "Action": "Buffet (Sanuwa)" - } - ] - }, - { - "Sequence": 4, - "Steps": [ - { - "DataId": 2006657, - "Position": { - "X": 205.8899, - "Y": -6.9123535, - "Z": -785.70233 - }, - "TerritoryId": 401, - "InteractionType": "Action", - "Fly": true, - "Action": "Buffet (Sanuwa)" - } - ] - }, - { - "Sequence": 255, - "Steps": [ - { - "DataId": 1016089, - "Position": { - "X": -799.46594, - "Y": -133.2695, - "Z": -404.1352 - }, - "TerritoryId": 401, - "InteractionType": "CompleteQuest", - "Fly": true, - "AetheryteShortcut": "The Sea of Clouds - Ok' Zundu" - } - ] + "DataId": 1016089, + "Position": { + "X": -799.46594, + "Y": -133.2695, + "Z": -404.1352 + }, + "TerritoryId": 401, + "InteractionType": "AcceptQuest" } - ] + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": -776.0281, + "Y": -133.35559, + "Z": -414.32825 + }, + "StopDistance": 3, + "TerritoryId": 398, + "InteractionType": "WalkTo", + "Fly": true, + "SkipConditions": { + "StepIf": { + "NearPosition": { + "Position": { + "X": -776.0281, + "Y": -133.35559, + "Z": -414.32825 + }, + "MaximumDistance": 50, + "TerritoryId": 401 + } + } + } + }, + { + "DataId": 1016093, + "Position": { + "X": -776.0281, + "Y": -133.35559, + "Z": -414.32825 + }, + "TerritoryId": 401, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2006655, + "Position": { + "X": -48.325317, + "Y": 17.990356, + "Z": -852.47577 + }, + "TerritoryId": 401, + "InteractionType": "Action", + "Fly": true, + "Action": "Buffet (Sanuwa)" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2006656, + "Position": { + "X": 95.23157, + "Y": -11.886841, + "Z": -817.6242 + }, + "TerritoryId": 401, + "InteractionType": "Action", + "Fly": true, + "Action": "Buffet (Sanuwa)" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 2006657, + "Position": { + "X": 205.8899, + "Y": -6.9123535, + "Z": -785.70233 + }, + "TerritoryId": 401, + "InteractionType": "Action", + "Fly": true, + "Action": "Buffet (Sanuwa)" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1016089, + "Position": { + "X": -799.46594, + "Y": -133.2695, + "Z": -404.1352 + }, + "TerritoryId": 401, + "InteractionType": "CompleteQuest", + "Fly": true, + "AetheryteShortcut": "The Sea of Clouds - Ok' Zundu" + } + ] + } + ] } diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2178_Sanuwa Samba.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2178_Sanuwa Samba.json index bec537bc8..0b6ac622b 100644 --- a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2178_Sanuwa Samba.json +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2178_Sanuwa Samba.json @@ -20,6 +20,30 @@ { "Sequence": 1, "Steps": [ + { + "Position": { + "X": -776.0281, + "Y": -133.35559, + "Z": -414.32825 + }, + "StopDistance": 3, + "TerritoryId": 398, + "InteractionType": "WalkTo", + "Fly": true, + "SkipConditions": { + "StepIf": { + "NearPosition": { + "Position": { + "X": -776.0281, + "Y": -133.35559, + "Z": -414.32825 + }, + "MaximumDistance": 50, + "TerritoryId": 401 + } + } + } + }, { "DataId": 1016093, "Position": { diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2182_Flight of the Midges.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2182_Flight of the Midges.json index d2db06a6b..16b151b98 100644 --- a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2182_Flight of the Midges.json +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2182_Flight of the Midges.json @@ -35,6 +35,30 @@ { "Sequence": 2, "Steps": [ + { + "Position": { + "X": -776.0281, + "Y": -133.35559, + "Z": -414.32825 + }, + "StopDistance": 3, + "TerritoryId": 398, + "InteractionType": "WalkTo", + "Fly": true, + "SkipConditions": { + "StepIf": { + "NearPosition": { + "Position": { + "X": -776.0281, + "Y": -133.35559, + "Z": -414.32825 + }, + "MaximumDistance": 50, + "TerritoryId": 401 + } + } + } + }, { "DataId": 1016093, "Position": { @@ -72,7 +96,14 @@ "InteractionType": "Action", "Action": "Buffet (Sanuwa)", "Fly": true, - "CompletionQuestVariablesFlags": [null,null,null,null,null,32] + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] }, { "DataId": 1016221, @@ -85,7 +116,14 @@ "InteractionType": "Action", "Action": "Buffet (Sanuwa)", "Fly": true, - "CompletionQuestVariablesFlags": [null,null,null,null,null,64] + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] }, { "DataId": 1016220, diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2184_Reeling in the Vundu.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2184_Reeling in the Vundu.json index 0ce28316f..ab845eca2 100644 --- a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2184_Reeling in the Vundu.json +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2184_Reeling in the Vundu.json @@ -36,6 +36,30 @@ { "Sequence": 2, "Steps": [ + { + "Position": { + "X": -776.0281, + "Y": -133.35559, + "Z": -414.32825 + }, + "StopDistance": 3, + "TerritoryId": 398, + "InteractionType": "WalkTo", + "Fly": true, + "SkipConditions": { + "StepIf": { + "NearPosition": { + "Position": { + "X": -776.0281, + "Y": -133.35559, + "Z": -414.32825 + }, + "MaximumDistance": 50, + "TerritoryId": 401 + } + } + } + }, { "DataId": 1016093, "Position": { diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2200_Vanish, Vile Vundu.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2200_Vanish, Vile Vundu.json index 8750abea4..84fc0f55e 100644 --- a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2200_Vanish, Vile Vundu.json +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2200_Vanish, Vile Vundu.json @@ -36,6 +36,30 @@ { "Sequence": 2, "Steps": [ + { + "Position": { + "X": -776.0281, + "Y": -133.35559, + "Z": -414.32825 + }, + "StopDistance": 3, + "TerritoryId": 398, + "InteractionType": "WalkTo", + "Fly": true, + "SkipConditions": { + "StepIf": { + "NearPosition": { + "Position": { + "X": -776.0281, + "Y": -133.35559, + "Z": -414.32825 + }, + "MaximumDistance": 50, + "TerritoryId": 401 + } + } + } + }, { "DataId": 1016093, "Position": { diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2263_Bugging the Bugs.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2263_Bugging the Bugs.json index 60dec3fba..8e0c57c7c 100644 --- a/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2263_Bugging the Bugs.json +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2263_Bugging the Bugs.json @@ -20,6 +20,30 @@ { "Sequence": 1, "Steps": [ + { + "Position": { + "X": 74.20459, + "Y": -48.533592, + "Z": -171.12994 + }, + "StopDistance": 3, + "TerritoryId": 398, + "InteractionType": "WalkTo", + "Fly": true, + "SkipConditions": { + "StepIf": { + "NearPosition": { + "Position": { + "X": 74.20459, + "Y": -48.533592, + "Z": -171.12994 + }, + "MaximumDistance": 50, + "TerritoryId": 398 + } + } + } + }, { "DataId": 1017031, "Position": { diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2269_Ploughing Ahead.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2269_Ploughing Ahead.json index 377342541..24d236e6b 100644 --- a/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2269_Ploughing Ahead.json +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2269_Ploughing Ahead.json @@ -20,6 +20,30 @@ { "Sequence": 1, "Steps": [ + { + "Position": { + "X": 74.20459, + "Y": -48.533592, + "Z": -171.12994 + }, + "StopDistance": 3, + "TerritoryId": 398, + "InteractionType": "WalkTo", + "Fly": true, + "SkipConditions": { + "StepIf": { + "NearPosition": { + "Position": { + "X": 74.20459, + "Y": -48.533592, + "Z": -171.12994 + }, + "MaximumDistance": 50, + "TerritoryId": 398 + } + } + } + }, { "DataId": 1017031, "Position": { diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2272_Shoo Fly, Don't Bother Me.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2272_Shoo Fly, Don't Bother Me.json index 8e65dff2a..edda1370a 100644 --- a/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2272_Shoo Fly, Don't Bother Me.json +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2272_Shoo Fly, Don't Bother Me.json @@ -20,6 +20,30 @@ { "Sequence": 1, "Steps": [ + { + "Position": { + "X": 74.20459, + "Y": -48.533592, + "Z": -171.12994 + }, + "StopDistance": 3, + "TerritoryId": 398, + "InteractionType": "WalkTo", + "Fly": true, + "SkipConditions": { + "StepIf": { + "NearPosition": { + "Position": { + "X": 74.20459, + "Y": -48.533592, + "Z": -171.12994 + }, + "MaximumDistance": 50, + "TerritoryId": 398 + } + } + } + }, { "DataId": 1017031, "Position": { diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2276_Flea Troubles.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2276_Flea Troubles.json index 871c9feb5..b0e77227c 100644 --- a/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2276_Flea Troubles.json +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2276_Flea Troubles.json @@ -20,6 +20,30 @@ { "Sequence": 1, "Steps": [ + { + "Position": { + "X": 74.20459, + "Y": -48.533592, + "Z": -171.12994 + }, + "StopDistance": 3, + "TerritoryId": 398, + "InteractionType": "WalkTo", + "Fly": true, + "SkipConditions": { + "StepIf": { + "NearPosition": { + "Position": { + "X": 74.20459, + "Y": -48.533592, + "Z": -171.12994 + }, + "MaximumDistance": 50, + "TerritoryId": 398 + } + } + } + }, { "DataId": 1017031, "Position": { diff --git a/Questionable/Functions/QuestFunctions.cs b/Questionable/Functions/QuestFunctions.cs index 532ea9840..2f752628b 100644 --- a/Questionable/Functions/QuestFunctions.cs +++ b/Questionable/Functions/QuestFunctions.cs @@ -152,11 +152,13 @@ internal sealed unsafe class QuestFunctions { // if we have multiple quests to turn in for an allied society, try and complete all of them var (firstTrackedQuest, firstTrackedSequence) = trackedQuests.First(); - EAlliedSociety firstTrackedAlliedSociety = _alliedSocietyData.GetCommonAlliedSocietyTurnIn(firstTrackedQuest); + EAlliedSociety firstTrackedAlliedSociety = + _alliedSocietyData.GetCommonAlliedSocietyTurnIn(firstTrackedQuest); if (firstTrackedAlliedSociety != EAlliedSociety.None) { var alliedQuestsForSameSociety = trackedQuests.Skip(1) - .Where(quest => _alliedSocietyData.GetCommonAlliedSocietyTurnIn(quest.Quest) == firstTrackedAlliedSociety) + .Where(quest => + _alliedSocietyData.GetCommonAlliedSocietyTurnIn(quest.Quest) == firstTrackedAlliedSociety) .ToList(); if (alliedQuestsForSameSociety.Count > 0) { @@ -177,14 +179,15 @@ internal sealed unsafe class QuestFunctions // also include the first quest in the list for those alliedQuestsForSameSociety.Insert(0, (firstTrackedQuest, firstTrackedSequence)); - _alliedSocietyData.GetCommonAlliedSocietyNpcs(firstTrackedAlliedSociety, out uint[]? normalNpcs, + _alliedSocietyData.GetCommonAlliedSocietyNpcs(firstTrackedAlliedSociety, + out uint[]? normalNpcs, out _); if (normalNpcs.Length > 0) { var talkToNormalNpcs = alliedQuestsForSameSociety .Where(x => x.Sequence < 255) - .Where(x => IsInteractStep(x.Quest, x.Sequence, normalNpcs)) + .Where(x => IsInteractSequence(x.Quest, x.Sequence, normalNpcs)) .Cast<(ElementId, byte)?>() .FirstOrDefault(); if (talkToNormalNpcs != null) @@ -299,13 +302,16 @@ internal sealed unsafe class QuestFunctions _alliedSocietyData.Mounts.ContainsKey(battleChara->Mount.MountId); } - private bool IsInteractStep(ElementId questId, byte sequence, uint[] dataIds) + private bool IsInteractSequence(ElementId questId, byte sequenceNo, uint[] dataIds) { if (_questRegistry.TryGetQuest(questId, out var quest)) { - QuestStep? firstStepOfSequence = quest.FindSequence(sequence)?.FindStep(0); - return firstStepOfSequence is { InteractionType: EInteractionType.Interact, DataId: { } dataId } && - dataIds.Contains(dataId); + QuestSequence? sequence = quest.FindSequence(sequenceNo); + return sequence != null && + sequence.Steps.All(x => + x is { InteractionType: EInteractionType.WalkTo } || + (x is { InteractionType: EInteractionType.Interact, DataId: { } dataId } && + dataIds.Contains(dataId))); } return false; -- 2.45.2 From 6ff89eefb381d617cbb8de93f8979576f239321f Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Tue, 3 Dec 2024 16:51:14 +0100 Subject: [PATCH 309/448] Add additional flying steps if too far away from the mount-NPC for Vath + Vanu Vanu dailies --- .../Dailies/2173_Endymion Disco.json | 2 +- .../2174_Pilfering Pots from the Pantry.json | 240 +++++++++--------- .../Dailies/2175_Chigoe Cha-cha.json | 2 +- .../Vanu Vanu/Dailies/2178_Sanuwa Samba.json | 2 +- .../Dailies/2182_Flight of the Midges.json | 2 +- .../Dailies/2184_Reeling in the Vundu.json | 2 +- .../Dailies/2200_Vanish, Vile Vundu.json | 2 +- 7 files changed, 121 insertions(+), 131 deletions(-) diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2173_Endymion Disco.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2173_Endymion Disco.json index 43a8cda21..7f720206d 100644 --- a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2173_Endymion Disco.json +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2173_Endymion Disco.json @@ -27,7 +27,7 @@ "Z": -414.32825 }, "StopDistance": 3, - "TerritoryId": 398, + "TerritoryId": 401, "InteractionType": "WalkTo", "Fly": true, "SkipConditions": { diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2174_Pilfering Pots from the Pantry.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2174_Pilfering Pots from the Pantry.json index f569b863a..3f77742a7 100644 --- a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2174_Pilfering Pots from the Pantry.json +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2174_Pilfering Pots from the Pantry.json @@ -1,129 +1,119 @@ { - "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "AnimaMachinae", - "QuestSequence": [ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "AnimaMachinae", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ { - "Sequence": 0, - "Steps": [ - { - "DataId": 1016089, - "Position": { - "X": -799.46594, - "Y": -133.2695, - "Z": -404.1352 - }, - "TerritoryId": 401, - "InteractionType": "AcceptQuest" - } - ] - }, - { - "Sequence": 1, - "Steps": [ - { - "Position": { - "X": -797.36957, - "Y": -130.0076, - "Z": -404.2746 - }, - "TerritoryId": 401, - "InteractionType": "WalkTo", - "Fly": true - }, - { - "DataId": 2006651, - "Position": { - "X": 664.3624, - "Y": -30.86908, - "Z": -137.0108 - }, - "TerritoryId": 401, - "InteractionType": "Interact", - "Fly": true, - "CompletionQuestVariablesFlags": [ - null, - null, - null, - null, - null, - 128 - ] - }, - { - "DataId": 2006652, - "Position": { - "X": 847.2876, - "Y": -50.58368, - "Z": 7.2174683 - }, - "TerritoryId": 401, - "InteractionType": "Interact", - "Fly": true, - "CompletionQuestVariablesFlags": [ - null, - null, - null, - null, - null, - 64 - ] - }, - { - "DataId": 2006653, - "Position": { - "X": 860.2273, - "Y": -84.45868, - "Z": 19.272095 - }, - "TerritoryId": 401, - "InteractionType": "Combat", - "Fly": true, - "CompletionQuestVariablesFlags": [ - null, - null, - null, - null, - null, - 32 - ], - "EnemySpawnType": "AfterInteraction", - "KillEnemyDataIds": [ - 5235 - ] - }, - { - "DataId": 2006654, - "Position": { - "X": 642.63354, - "Y": -92.57648, - "Z": 63.035034 - }, - "TerritoryId": 401, - "InteractionType": "Combat", - "Fly": true, - "EnemySpawnType": "AfterInteraction", - "KillEnemyDataIds": [ - 5235 - ] - } - ] - }, - { - "Sequence": 255, - "Steps": [ - { - "DataId": 1016089, - "Position": { - "X": -799.46594, - "Y": -133.2695, - "Z": -404.1352 - }, - "TerritoryId": 401, - "InteractionType": "CompleteQuest", - "Fly": true, - "AetheryteShortcut": "The Sea of Clouds - Ok' Zundu" - } - ] + "DataId": 1016089, + "Position": { + "X": -799.46594, + "Y": -133.2695, + "Z": -404.1352 + }, + "TerritoryId": 401, + "InteractionType": "AcceptQuest" } - ] + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2006651, + "Position": { + "X": 664.3624, + "Y": -30.86908, + "Z": -137.0108 + }, + "TerritoryId": 401, + "InteractionType": "Interact", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 2006652, + "Position": { + "X": 847.2876, + "Y": -50.58368, + "Z": 7.2174683 + }, + "TerritoryId": 401, + "InteractionType": "Interact", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 2006653, + "Position": { + "X": 860.2273, + "Y": -84.45868, + "Z": 19.272095 + }, + "TerritoryId": 401, + "InteractionType": "Combat", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ], + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 5235 + ] + }, + { + "DataId": 2006654, + "Position": { + "X": 642.63354, + "Y": -92.57648, + "Z": 63.035034 + }, + "TerritoryId": 401, + "InteractionType": "Combat", + "Fly": true, + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 5235 + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1016089, + "Position": { + "X": -799.46594, + "Y": -133.2695, + "Z": -404.1352 + }, + "TerritoryId": 401, + "InteractionType": "CompleteQuest", + "Fly": true, + "AetheryteShortcut": "The Sea of Clouds - Ok' Zundu" + } + ] + } + ] } diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2175_Chigoe Cha-cha.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2175_Chigoe Cha-cha.json index e5e7a7f5d..67b9a5251 100644 --- a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2175_Chigoe Cha-cha.json +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2175_Chigoe Cha-cha.json @@ -27,7 +27,7 @@ "Z": -414.32825 }, "StopDistance": 3, - "TerritoryId": 398, + "TerritoryId": 401, "InteractionType": "WalkTo", "Fly": true, "SkipConditions": { diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2178_Sanuwa Samba.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2178_Sanuwa Samba.json index 0b6ac622b..30a77baa3 100644 --- a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2178_Sanuwa Samba.json +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2178_Sanuwa Samba.json @@ -27,7 +27,7 @@ "Z": -414.32825 }, "StopDistance": 3, - "TerritoryId": 398, + "TerritoryId": 401, "InteractionType": "WalkTo", "Fly": true, "SkipConditions": { diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2182_Flight of the Midges.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2182_Flight of the Midges.json index 16b151b98..a16378107 100644 --- a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2182_Flight of the Midges.json +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2182_Flight of the Midges.json @@ -42,7 +42,7 @@ "Z": -414.32825 }, "StopDistance": 3, - "TerritoryId": 398, + "TerritoryId": 401, "InteractionType": "WalkTo", "Fly": true, "SkipConditions": { diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2184_Reeling in the Vundu.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2184_Reeling in the Vundu.json index ab845eca2..519ff60b4 100644 --- a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2184_Reeling in the Vundu.json +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2184_Reeling in the Vundu.json @@ -43,7 +43,7 @@ "Z": -414.32825 }, "StopDistance": 3, - "TerritoryId": 398, + "TerritoryId": 401, "InteractionType": "WalkTo", "Fly": true, "SkipConditions": { diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2200_Vanish, Vile Vundu.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2200_Vanish, Vile Vundu.json index 84fc0f55e..17253c82e 100644 --- a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2200_Vanish, Vile Vundu.json +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2200_Vanish, Vile Vundu.json @@ -43,7 +43,7 @@ "Z": -414.32825 }, "StopDistance": 3, - "TerritoryId": 398, + "TerritoryId": 401, "InteractionType": "WalkTo", "Fly": true, "SkipConditions": { -- 2.45.2 From d77a7fb7197279731bd114b0946ad69ee71fa50d Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Fri, 6 Dec 2024 16:11:49 +0100 Subject: [PATCH 310/448] Add Moogle story quest --- .../Moogles/Story/2322_Trying Times.json | 160 ++++++++++++++++++ 1 file changed, 160 insertions(+) create mode 100644 QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Story/2322_Trying Times.json diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Story/2322_Trying Times.json b/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Story/2322_Trying Times.json new file mode 100644 index 000000000..10e9b36f3 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Story/2322_Trying Times.json @@ -0,0 +1,160 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1017169, + "Position": { + "X": -342.15308, + "Y": 59.03801, + "Z": 315.14453 + }, + "TerritoryId": 400, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1017170, + "Position": { + "X": -344.22827, + "Y": 59.038006, + "Z": 317.1587 + }, + "StopDistance": 7, + "TerritoryId": 400, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2007198, + "Position": { + "X": -339.65057, + "Y": 58.976074, + "Z": 319.50854 + }, + "StopDistance": 4.5, + "TerritoryId": 400, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1017432, + "Position": { + "X": -743.6179, + "Y": 81, + "Z": 372.1521 + }, + "TerritoryId": 400, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1017169, + "Position": { + "X": -342.15308, + "Y": 59.03801, + "Z": 315.14453 + }, + "TerritoryId": 400, + "InteractionType": "Interact", + "Fly": true, + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_BANMOG003_02322_Q1_000_000", + "Answer": "TEXT_BANMOG003_02322_A1_000_001" + } + ] + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1017172, + "Position": { + "X": -329.3355, + "Y": 59.056396, + "Z": 298.23755 + }, + "TerritoryId": 400, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "TerritoryId": 400, + "InteractionType": "Craft", + "ItemId": 15721, + "ItemCount": 1 + }, + { + "DataId": 1017169, + "Position": { + "X": -342.15308, + "Y": 59.03801, + "Z": 315.14453 + }, + "TerritoryId": 400, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 7, + "Steps": [ + { + "DataId": 1017432, + "Position": { + "X": -743.6179, + "Y": 81, + "Z": 372.1521 + }, + "TerritoryId": 400, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1017170, + "Position": { + "X": -344.22827, + "Y": 59.038006, + "Z": 317.1587 + }, + "TerritoryId": 400, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} -- 2.45.2 From ba0cd60daed5945af2ab0949dd712a99e50322fe Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Fri, 6 Dec 2024 16:12:11 +0100 Subject: [PATCH 311/448] Update Vanu quests --- .../Dailies/2176_Water Crystal Waltz.json | 261 +++++++++++------- .../Dailies/2177_Hard-boiled Hustle.json | 100 +++++++ 2 files changed, 257 insertions(+), 104 deletions(-) create mode 100644 QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2177_Hard-boiled Hustle.json diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2176_Water Crystal Waltz.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2176_Water Crystal Waltz.json index 4082a8360..af39207ce 100644 --- a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2176_Water Crystal Waltz.json +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2176_Water Crystal Waltz.json @@ -1,108 +1,161 @@ { - "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "AnimaMachinae", - "QuestSequence": [ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "AnimaMachinae", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ { - "Sequence": 0, - "Steps": [ - { - "DataId": 1016089, - "Position": { - "X": -799.46594, - "Y": -133.2695, - "Z": -404.1352 - }, - "TerritoryId": 401, - "InteractionType": "AcceptQuest" - } - ] - }, - { - "Sequence": 1, - "Steps": [ - { - "DataId": 1011952, - "Position": { - "X": -277.63788, - "Y": -184.59735, - "Z": 741.60376 - }, - "TerritoryId": 401, - "InteractionType": "Interact", - "Fly": true, - "AetheryteShortcut": "The Sea of Clouds - Camp Cloudtop" - } - ] - }, - { - "Sequence": 2, - "Steps": [ - { - "DataId": 2006662, - "Position": { - "X": 150.77429, - "Y": -133.98956, - "Z": 610.00977 - }, - "TerritoryId": 401, - "InteractionType": "Interact", - "Fly": true, - "CompletionQuestVariablesFlags": [ - null, - null, - null, - null, - null, - 8 - ] - }, - { - "DataId": 2006661, - "Position": { - "X": 207.2633, - "Y": -124.101685, - "Z": 631.8303 - }, - "TerritoryId": 401, - "InteractionType": "Interact", - "Fly": true, - "CompletionQuestVariablesFlags": [ - null, - null, - null, - null, - null, - 16 - ] - }, - { - "DataId": 2006658, - "Position": { - "X": 407.187, - "Y": -122.51471, - "Z": 724.0558 - }, - "TerritoryId": 401, - "InteractionType": "Interact" - } - ] - }, - { - "Sequence": 255, - "Steps": [ - { - "DataId": 1016089, - "Position": { - "X": -799.46594, - "Y": -133.2695, - "Z": -404.1352 - }, - "TerritoryId": 401, - "InteractionType": "CompleteQuest", - "Fly": true, - "AetheryteShortcut": "The Sea of Clouds - Ok' Zundu" - } - ] + "DataId": 1016089, + "Position": { + "X": -799.46594, + "Y": -133.2695, + "Z": -404.1352 + }, + "TerritoryId": 401, + "InteractionType": "AcceptQuest" } - ] + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1011952, + "Position": { + "X": -277.63788, + "Y": -184.59735, + "Z": 741.60376 + }, + "TerritoryId": 401, + "InteractionType": "Interact", + "Fly": true, + "AetheryteShortcut": "The Sea of Clouds - Camp Cloudtop" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": 151.96031, + "Y": -135.00737, + "Z": 611.10016 + }, + "TerritoryId": 401, + "InteractionType": "WalkTo", + "Fly": true, + "SkipConditions": { + "StepIf": { + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 8 + ] + } + } + }, + { + "DataId": 2006662, + "Position": { + "X": 150.77429, + "Y": -133.98956, + "Z": 610.00977 + }, + "TerritoryId": 401, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 8 + ] + }, + { + "Position": { + "X": 208.36453, + "Y": -125.28946, + "Z": 630.55835 + }, + "TerritoryId": 401, + "InteractionType": "WalkTo", + "Fly": true, + "SkipConditions": { + "StepIf": { + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 16 + ] + } + } + }, + { + "DataId": 2006661, + "Position": { + "X": 207.2633, + "Y": -124.101685, + "Z": 631.8303 + }, + "TerritoryId": 401, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 16 + ] + }, + { + "Position": { + "X": 402.99722, + "Y": -125.28946, + "Z": 724.59906 + }, + "TerritoryId": 401, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 2006658, + "Position": { + "X": 407.187, + "Y": -122.51471, + "Z": 724.0558 + }, + "TerritoryId": 401, + "InteractionType": "Interact", + "Mount": false + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1016089, + "Position": { + "X": -799.46594, + "Y": -133.2695, + "Z": -404.1352 + }, + "TerritoryId": 401, + "InteractionType": "CompleteQuest", + "Fly": true, + "AetheryteShortcut": "The Sea of Clouds - Ok' Zundu" + } + ] + } + ] } diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2177_Hard-boiled Hustle.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2177_Hard-boiled Hustle.json new file mode 100644 index 000000000..fbf0dbc51 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2177_Hard-boiled Hustle.json @@ -0,0 +1,100 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1016089, + "Position": { + "X": -799.46594, + "Y": -133.2695, + "Z": -404.1352 + }, + "TerritoryId": 401, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2006663, + "Position": { + "X": 665.0034, + "Y": -158.7702, + "Z": 662.2567 + }, + "TerritoryId": 401, + "InteractionType": "Interact", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 2006665, + "Position": { + "X": 728.1146, + "Y": -157.45789, + "Z": 815.5488 + }, + "TerritoryId": 401, + "InteractionType": "Interact", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ], + "Comment": "Enemy despawns when out of range" + }, + { + "DataId": 2006664, + "Position": { + "X": 625.3605, + "Y": -160.29602, + "Z": 835.62976 + }, + "TerritoryId": 401, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1016089, + "Position": { + "X": -799.46594, + "Y": -133.2695, + "Z": -404.1352 + }, + "TerritoryId": 401, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "The Sea of Clouds - Ok' Zundu", + "Fly": true + } + ] + } + ] +} -- 2.45.2 From 70c47e20fbdc7d3d822d428b96a21a7c2ae9e632 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sun, 8 Dec 2024 18:13:22 +0100 Subject: [PATCH 312/448] Show available daily quests in journal --- Questionable/Data/QuestData.cs | 10 ++ .../Functions/AlliedSocietyQuestFunctions.cs | 133 ++++++++++++++++++ Questionable/Functions/QuestFunctions.cs | 28 +++- Questionable/Model/QuestInfo.cs | 4 + Questionable/QuestionablePlugin.cs | 1 + Questionable/Windows/UiUtils.cs | 9 ++ 6 files changed, 183 insertions(+), 2 deletions(-) create mode 100644 Questionable/Functions/AlliedSocietyQuestFunctions.cs diff --git a/Questionable/Data/QuestData.cs b/Questionable/Data/QuestData.cs index b1f26524b..5d7b70229 100644 --- a/Questionable/Data/QuestData.cs +++ b/Questionable/Data/QuestData.cs @@ -235,6 +235,16 @@ internal sealed class QuestData .ToList(); } + public List GetAllByAlliedSociety(EAlliedSociety alliedSociety) + { + return _quests.Values + .Where(x => x is QuestInfo) + .Cast() + .Where(x => x.AlliedSociety == alliedSociety) + .OrderBy(x => x.QuestId) + .ToList(); + } + public List GetClassJobQuests(EClassJob classJob) { List chapterIds = classJob switch diff --git a/Questionable/Functions/AlliedSocietyQuestFunctions.cs b/Questionable/Functions/AlliedSocietyQuestFunctions.cs new file mode 100644 index 000000000..4fd704193 --- /dev/null +++ b/Questionable/Functions/AlliedSocietyQuestFunctions.cs @@ -0,0 +1,133 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using FFXIVClientStructs.FFXIV.Client.Game; +using Microsoft.Extensions.Logging; +using Questionable.Data; +using Questionable.Model; +using Questionable.Model.Questing; + +namespace Questionable.Functions; + +internal sealed class AlliedSocietyQuestFunctions +{ + private readonly ILogger _logger; + private readonly Dictionary> _questsByAlliedSociety = []; + private readonly Dictionary<(uint NpcDataId, byte Seed, bool OutranksAll), List> _dailyQuests = []; + + public AlliedSocietyQuestFunctions(QuestData questData, ILogger logger) + { + _logger = logger; + foreach (var alliedSociety in Enum.GetValues().Where(x => x != EAlliedSociety.None)) + { + var allQuests = questData.GetAllByAlliedSociety(alliedSociety); + var questsByIssuer = allQuests + .Where(x => x.IsRepeatable) + .GroupBy(x => x.IssuerDataId) + .ToDictionary(x => x.Key, + x => x.OrderBy(y => y.AlliedSocietyQuestGroup == 3).ThenBy(y => y.QuestId).ToList()); + foreach ((uint issuerDataId, List quests) in questsByIssuer) + { + var npcData = new NpcData { IssuerDataId = issuerDataId, AllQuests = quests }; + if (_questsByAlliedSociety.TryGetValue(alliedSociety, out List? existingNpcs)) + existingNpcs.Add(npcData); + else + _questsByAlliedSociety[alliedSociety] = [npcData]; + } + } + } + + public unsafe List GetAvailableAlliedSocietyQuests(EAlliedSociety alliedSociety) + { + byte rankData = QuestManager.Instance()->BeastReputation[(int)alliedSociety - 1].Rank; + byte currentRank = (byte)(rankData & 0x7F); + if (currentRank == 0) + return []; + + bool rankedUp = (rankData & 0x80) != 0; + byte seed = 183; + List result = []; + foreach (NpcData npcData in _questsByAlliedSociety[alliedSociety]) + { + bool outranksAll = npcData.AllQuests.All(x => currentRank > x.AlliedSocietyRank); + var key = (NpcDataId: npcData.IssuerDataId, seed, outranksAll); + if (_dailyQuests.TryGetValue(key, out List? questIds)) + result.AddRange(questIds); + else + { + var quests = CalculateAvailableQuests(npcData.AllQuests, seed, outranksAll, currentRank, rankedUp); + _logger.LogInformation("Available for {Tribe} (Issuer: {IssuerId}: {Quests}", alliedSociety, npcData.IssuerDataId, string.Join(", ", quests)); + + _dailyQuests[key] = quests; + result.AddRange(quests); + } + } + + return result; + } + + private static List CalculateAvailableQuests(List allQuests, byte seed, bool outranksAll, + byte currentRank, bool rankedUp) + { + List eligible = [.. allQuests.Where(q => IsEligible(q, currentRank, rankedUp))]; + List available = []; + if (eligible.Count == 0) + return []; + + var rng = new Rng(seed); + if (outranksAll) + { + for (int i = 0, cnt = Math.Min(eligible.Count, 3); i < cnt; ++i) + { + var index = rng.Next(eligible.Count); + while (available.Contains(eligible[index])) + index = (index + 1) % eligible.Count; + available.Add(eligible[index]); + } + } + else + { + var firstExclusive = eligible.FindIndex(q => q.AlliedSocietyQuestGroup == 3); + if (firstExclusive >= 0) + available.Add(eligible[firstExclusive + rng.Next(eligible.Count - firstExclusive)]); + else + firstExclusive = eligible.Count; + for (int i = available.Count, cnt = Math.Min(firstExclusive, 3); i < cnt; ++i) + { + var index = rng.Next(firstExclusive); + while (available.Contains(eligible[index])) + index = (index + 1) % firstExclusive; + available.Add(eligible[index]); + } + } + + return available.Select(x => (QuestId)x.QuestId).ToList(); + } + + private static bool IsEligible(QuestInfo questInfo, byte currentRank, bool rankedUp) + { + return rankedUp ? questInfo.AlliedSocietyRank == currentRank : questInfo.AlliedSocietyRank <= currentRank; + } + + private sealed class NpcData + { + public required uint IssuerDataId { get; init; } + public required List AllQuests { get; init; } = []; + } + + private record struct Rng(uint S0, uint S1 = 0, uint S2 = 0, uint S3 = 0) + { + public int Next(int range) + { + (S0, S1, S2, S3) = (S3, Transform(S0, S1), S1, S2); + return (int)(S1 % range); + } + + // returns new value for s1 + private static uint Transform(uint s0, uint s1) + { + var temp = s0 ^ (s0 << 11); + return s1 ^ temp ^ ((temp ^ (s1 >> 11)) >> 8); + } + } +} diff --git a/Questionable/Functions/QuestFunctions.cs b/Questionable/Functions/QuestFunctions.cs index 2f752628b..2f0cb841d 100644 --- a/Questionable/Functions/QuestFunctions.cs +++ b/Questionable/Functions/QuestFunctions.cs @@ -28,6 +28,7 @@ internal sealed unsafe class QuestFunctions private readonly QuestRegistry _questRegistry; private readonly QuestData _questData; private readonly AetheryteFunctions _aetheryteFunctions; + private readonly AlliedSocietyQuestFunctions _alliedSocietyQuestFunctions; private readonly AlliedSocietyData _alliedSocietyData; private readonly Configuration _configuration; private readonly IDataManager _dataManager; @@ -38,6 +39,7 @@ internal sealed unsafe class QuestFunctions QuestRegistry questRegistry, QuestData questData, AetheryteFunctions aetheryteFunctions, + AlliedSocietyQuestFunctions alliedSocietyQuestFunctions, AlliedSocietyData alliedSocietyData, Configuration configuration, IDataManager dataManager, @@ -47,6 +49,7 @@ internal sealed unsafe class QuestFunctions _questRegistry = questRegistry; _questData = questData; _aetheryteFunctions = aetheryteFunctions; + _alliedSocietyQuestFunctions = alliedSocietyQuestFunctions; _alliedSocietyData = alliedSocietyData; _configuration = configuration; _dataManager = dataManager; @@ -447,8 +450,11 @@ internal sealed unsafe class QuestFunctions if (IsQuestAccepted(questId)) return false; - if (QuestManager.Instance()->IsDailyQuestCompleted(questId.Value)) - return false; + if (quest.Info.AlliedSociety != EAlliedSociety.None) + { + if (QuestManager.Instance()->IsDailyQuestCompleted(questId.Value)) + return false; + } } else { @@ -546,6 +552,9 @@ internal sealed unsafe class QuestFunctions if (questInfo.GrandCompany != GrandCompany.None && questInfo.GrandCompany != GetGrandCompany()) return true; + if (questInfo.AlliedSociety != EAlliedSociety.None) + return !IsDailyAlliedSocietyQuestAndAvailableToday(questId); + return !HasCompletedPreviousQuests(questInfo, extraCompletedQuest) || !HasCompletedPreviousInstances(questInfo); } @@ -569,6 +578,21 @@ internal sealed unsafe class QuestFunctions return !HasCompletedPreviousQuests(questInfo, null); } + public bool IsDailyAlliedSocietyQuest(QuestId questId) + { + var questInfo = (QuestInfo)_questData.GetQuestInfo(questId); + return questInfo.AlliedSociety != EAlliedSociety.None && questInfo.IsRepeatable; + } + + public bool IsDailyAlliedSocietyQuestAndAvailableToday(QuestId questId) + { + if (!IsDailyAlliedSocietyQuest(questId)) + return false; + + var questInfo = (QuestInfo)_questData.GetQuestInfo(questId); + return _alliedSocietyQuestFunctions.GetAvailableAlliedSocietyQuests(questInfo.AlliedSociety).Contains(questId); + } + public bool IsQuestUnobtainable(ElementId elementId, ElementId? extraCompletedQuest = null) { if (elementId is QuestId questId) diff --git a/Questionable/Model/QuestInfo.cs b/Questionable/Model/QuestInfo.cs index bc3d1838c..32f80ff45 100644 --- a/Questionable/Model/QuestInfo.cs +++ b/Questionable/Model/QuestInfo.cs @@ -60,6 +60,8 @@ internal sealed class QuestInfo : IQuestInfo PreviousInstanceContentJoin = (EQuestJoin)quest.InstanceContentJoin; GrandCompany = (GrandCompany)quest.GrandCompany.RowId; AlliedSociety = (EAlliedSociety)quest.BeastTribe.RowId; + AlliedSocietyQuestGroup = quest.Unknown11; + AlliedSocietyRank = (int)quest.BeastReputationRank.RowId; ClassJobs = QuestInfoUtils.AsList(quest.ClassJobCategory0.ValueNullable!); IsSeasonalEvent = quest.Festival.RowId != 0; NewGamePlusChapter = newGamePlusChapter; @@ -85,6 +87,8 @@ internal sealed class QuestInfo : IQuestInfo public bool CompletesInstantly { get; } public GrandCompany GrandCompany { get; } public EAlliedSociety AlliedSociety { get; } + public byte AlliedSocietyQuestGroup { get; } + public int AlliedSocietyRank { get; } public IReadOnlyList ClassJobs { get; } public bool IsSeasonalEvent { get; } public uint NewGamePlusChapter { get; } diff --git a/Questionable/QuestionablePlugin.cs b/Questionable/QuestionablePlugin.cs index a4eabbaa2..2af5c204a 100644 --- a/Questionable/QuestionablePlugin.cs +++ b/Questionable/QuestionablePlugin.cs @@ -111,6 +111,7 @@ public sealed class QuestionablePlugin : IDalamudPlugin serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); + serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); diff --git a/Questionable/Windows/UiUtils.cs b/Questionable/Windows/UiUtils.cs index 270a76d90..9c51f253f 100644 --- a/Questionable/Windows/UiUtils.cs +++ b/Questionable/Windows/UiUtils.cs @@ -24,6 +24,15 @@ internal sealed class UiUtils { if (_questFunctions.IsQuestAccepted(elementId)) return (ImGuiColors.DalamudYellow, FontAwesomeIcon.PersonWalkingArrowRight, "Active"); + else if (elementId is QuestId questId && _questFunctions.IsDailyAlliedSocietyQuestAndAvailableToday(questId)) + { + if (!_questFunctions.IsReadyToAcceptQuest(questId)) + return (ImGuiColors.ParsedGreen, FontAwesomeIcon.Check, "Complete"); + else if (_questFunctions.IsQuestComplete(questId)) + return (ImGuiColors.ParsedBlue, FontAwesomeIcon.Running, "Available (Complete)"); + else + return (ImGuiColors.DalamudYellow, FontAwesomeIcon.Running, "Available"); + } else if (_questFunctions.IsQuestAcceptedOrComplete(elementId)) return (ImGuiColors.ParsedGreen, FontAwesomeIcon.Check, "Complete"); else if (_questFunctions.IsQuestUnobtainable(elementId)) -- 2.45.2 From 8462b86544776feee08419cf7e41033d9dab8954 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sun, 8 Dec 2024 19:03:52 +0100 Subject: [PATCH 313/448] Add tab to view available daily quests only --- Questionable/Functions/QuestFunctions.cs | 2 +- Questionable/QuestionablePlugin.cs | 1 + .../AlliedSocietyJournalComponent.cs | 97 +++++++++++++++++++ Questionable/Windows/JournalProgressWindow.cs | 4 + 4 files changed, 103 insertions(+), 1 deletion(-) create mode 100644 Questionable/Windows/JournalComponents/AlliedSocietyJournalComponent.cs diff --git a/Questionable/Functions/QuestFunctions.cs b/Questionable/Functions/QuestFunctions.cs index 2f0cb841d..fb720e2fa 100644 --- a/Questionable/Functions/QuestFunctions.cs +++ b/Questionable/Functions/QuestFunctions.cs @@ -552,7 +552,7 @@ internal sealed unsafe class QuestFunctions if (questInfo.GrandCompany != GrandCompany.None && questInfo.GrandCompany != GetGrandCompany()) return true; - if (questInfo.AlliedSociety != EAlliedSociety.None) + if (questInfo.AlliedSociety != EAlliedSociety.None && questInfo.IsRepeatable) return !IsDailyAlliedSocietyQuestAndAvailableToday(questId); return !HasCompletedPreviousQuests(questInfo, extraCompletedQuest) || !HasCompletedPreviousInstances(questInfo); diff --git a/Questionable/QuestionablePlugin.cs b/Questionable/QuestionablePlugin.cs index 2af5c204a..db6d7469f 100644 --- a/Questionable/QuestionablePlugin.cs +++ b/Questionable/QuestionablePlugin.cs @@ -264,6 +264,7 @@ public sealed class QuestionablePlugin : IDalamudPlugin serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); + serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); diff --git a/Questionable/Windows/JournalComponents/AlliedSocietyJournalComponent.cs b/Questionable/Windows/JournalComponents/AlliedSocietyJournalComponent.cs new file mode 100644 index 000000000..e5adbc860 --- /dev/null +++ b/Questionable/Windows/JournalComponents/AlliedSocietyJournalComponent.cs @@ -0,0 +1,97 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using Dalamud.Interface.Colors; +using Dalamud.Interface.Utility.Raii; +using ImGuiNET; +using Questionable.Controller; +using Questionable.Data; +using Questionable.Functions; +using Questionable.Model; +using Questionable.Windows.QuestComponents; + +namespace Questionable.Windows.JournalComponents; + +internal sealed class AlliedSocietyJournalComponent +{ + private static readonly string[] RankNames = + ["Neutral", "Recognized", "Friendly", "Trusted", "Respected", "Honored", "Sworn", "Allied"]; + + private readonly QuestFunctions _questFunctions; + private readonly AlliedSocietyQuestFunctions _alliedSocietyQuestFunctions; + private readonly QuestData _questData; + private readonly QuestRegistry _questRegistry; + private readonly QuestTooltipComponent _questTooltipComponent; + private readonly UiUtils _uiUtils; + + public AlliedSocietyJournalComponent( + QuestFunctions questFunctions, + AlliedSocietyQuestFunctions alliedSocietyQuestFunctions, + QuestData questData, + QuestRegistry questRegistry, + QuestTooltipComponent questTooltipComponent, + UiUtils uiUtils) + { + _questFunctions = questFunctions; + _alliedSocietyQuestFunctions = alliedSocietyQuestFunctions; + _questData = questData; + _questRegistry = questRegistry; + _questTooltipComponent = questTooltipComponent; + _uiUtils = uiUtils; + } + + public void DrawAlliedSocietyQuests() + { + using var tab = ImRaii.TabItem("Allied Societies"); + if (!tab) + return; + + foreach (EAlliedSociety alliedSociety in Enum.GetValues().Where(x => x != EAlliedSociety.None)) + { + List quests = _alliedSocietyQuestFunctions.GetAvailableAlliedSocietyQuests(alliedSociety) + .Select(x => (QuestInfo)_questData.GetQuestInfo(x)) + .ToList(); + if (quests.Count == 0) + continue; + + bool containsNewQuests = quests.Any(x => !_questFunctions.IsQuestComplete(x.QuestId)); + if (containsNewQuests) + ImGui.PushStyleColor(ImGuiCol.Text, ImGuiColors.DalamudYellow); + + if (!ImGui.CollapsingHeader($"{alliedSociety}###AlliedSociety{(int)alliedSociety}")) + continue; + + if (containsNewQuests) + ImGui.PopStyleColor(); + + if (alliedSociety <= EAlliedSociety.Ixal) + { + for (byte i = 1; i <= 8; ++i) + { + var questsByRank = quests.Where(x => x.AlliedSocietyRank == i).ToList(); + if (questsByRank.Count == 0) + continue; + + ImGui.Text(RankNames[i - 1]); + foreach (var quest in questsByRank) + DrawQuest(quest); + } + } + else + { + foreach (var quest in quests) + DrawQuest(quest); + } + } + } + + private void DrawQuest(QuestInfo quest) + { + var (color, icon, tooltipText) = _uiUtils.GetQuestStyle(quest.QuestId); + if (!_questRegistry.IsKnownQuest(quest.QuestId)) + color = ImGuiColors.DalamudGrey; + + if (_uiUtils.ChecklistItem($"{quest.Name} ({tooltipText})", color, icon)) + _questTooltipComponent.Draw(quest); + } +} diff --git a/Questionable/Windows/JournalProgressWindow.cs b/Questionable/Windows/JournalProgressWindow.cs index 531828f8b..6a5724a7e 100644 --- a/Questionable/Windows/JournalProgressWindow.cs +++ b/Questionable/Windows/JournalProgressWindow.cs @@ -11,18 +11,21 @@ namespace Questionable.Windows; internal sealed class JournalProgressWindow : LWindow, IDisposable { private readonly QuestJournalComponent _questJournalComponent; + private readonly AlliedSocietyJournalComponent _alliedSocietyJournalComponent; private readonly GatheringJournalComponent _gatheringJournalComponent; private readonly QuestRegistry _questRegistry; private readonly IClientState _clientState; public JournalProgressWindow( QuestJournalComponent questJournalComponent, + AlliedSocietyJournalComponent alliedSocietyJournalComponent, GatheringJournalComponent gatheringJournalComponent, QuestRegistry questRegistry, IClientState clientState) : base("Journal Progress###QuestionableJournalProgress") { _questJournalComponent = questJournalComponent; + _alliedSocietyJournalComponent = alliedSocietyJournalComponent; _gatheringJournalComponent = gatheringJournalComponent; _questRegistry = questRegistry; _clientState = clientState; @@ -60,6 +63,7 @@ internal sealed class JournalProgressWindow : LWindow, IDisposable return; _questJournalComponent.DrawQuests(); + _alliedSocietyJournalComponent.DrawAlliedSocietyQuests(); _gatheringJournalComponent.DrawGatheringItems(); } -- 2.45.2 From 920d2f072444f54a5d51b764ac75e68556842de4 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Mon, 9 Dec 2024 01:11:35 +0100 Subject: [PATCH 314/448] Add missing THM quests --- .../BLM/345_Way of the Thaumaturge.json | 133 +++++++++- .../BLM/348_The Threat of Paucity.json | 231 ++++++++++++++++++ .../BLM/349_The Threat of Paucity.json | 3 +- Questionable/Controller/QuestController.cs | 2 +- Questionable/Functions/QuestFunctions.cs | 11 +- .../QuestComponents/ActiveQuestComponent.cs | 26 +- 6 files changed, 395 insertions(+), 11 deletions(-) create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/BLM/348_The Threat of Paucity.json diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/BLM/345_Way of the Thaumaturge.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/BLM/345_Way of the Thaumaturge.json index e0f046de1..f8891964b 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/BLM/345_Way of the Thaumaturge.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/BLM/345_Way of the Thaumaturge.json @@ -1,7 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", - "Disabled": true, "QuestSequence": [ { "Sequence": 0, @@ -14,7 +13,17 @@ "Z": 59.952637 }, "TerritoryId": 130, - "InteractionType": "AcceptQuest" + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Thaumaturges' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } } ] }, @@ -40,6 +49,126 @@ "NextQuestId": 351 } ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": -71.92632, + "Y": 9.839797, + "Z": 283.98495 + }, + "TerritoryId": 141, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "ComplexCombatData": [ + { + "DataId": 351, + "MinimumKillCount": 3, + "$": "Slay star marmots as a thaumaturge", + "CompletionQuestVariablesFlags": [ + { + "Low": 3 + }, + null, + null, + null, + null, + null + ] + }, + { + "DataId": 385, + "MinimumKillCount": 3, + "$": "Slay huge hornets as a thaumaturge", + "CompletionQuestVariablesFlags": [ + null, + { + "High": 3 + }, + null, + null, + null, + null + ] + } + ], + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Thaumaturges' Guild", + "[Ul'dah] Gate of Nald (Central Thanalan)" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 141 + ] + } + }, + "CompletionQuestVariablesFlags": [ + { + "Low": 3 + }, + { + "High": 3 + }, + null, + null, + null, + null + ] + }, + { + "Position": { + "X": 39.449, + "Y": 3.082914, + "Z": 272.46896 + }, + "TerritoryId": 141, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "ComplexCombatData": [ + { + "DataId": 205, + "MinimumKillCount": 3, + "$": "Slay snapping shrews as a thaumaturge" + } + ], + "CompletionQuestVariablesFlags": [ + null, + { + "Low": 3 + }, + null, + null, + null, + null + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1001708, + "Position": { + "X": -250.3548, + "Y": 18, + "Z": 80.88806 + }, + "TerritoryId": 130, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Thaumaturges' Guild" + ], + "NextQuestId": 351 + } + ] } ] } diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/BLM/348_The Threat of Paucity.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/BLM/348_The Threat of Paucity.json new file mode 100644 index 000000000..196b0fdb0 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/BLM/348_The Threat of Paucity.json @@ -0,0 +1,231 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": ["liza", "pot0to"], + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1001708, + "Position": { + "X": -250.3548, + "Y": 18, + "Z": 80.88806 + }, + "TerritoryId": 130, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Thaumaturges' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1001710, + "Position": { + "X": -240.2533, + "Y": 18.8, + "Z": 86.900024 + }, + "TerritoryId": 130, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "TerritoryId": 130, + "InteractionType": "None", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Thaumaturges' Guild", + "[Ul'dah] Gate of Nald (Central Thanalan)" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 141 + ], + "AetheryteUnlocked": "Central Thanalan - Black Brush Station" + }, + "AethernetShortcutIf": { + "AetheryteUnlocked": "Central Thanalan - Black Brush Station" + } + } + }, + { + "Position": { + "X": -62.183617, + "Y": -3.6582246, + "Z": 145.88391 + }, + "InteractionType": "WalkTo", + "TerritoryId": 141, + "SkipConditions": { + "StepIf": { + "Flying": "Unlocked", + "AetheryteUnlocked": "Central Thanalan - Black Brush Station" + } + } + }, + { + "Position": { + "X": 149.07747, + "Y": -2, + "Z": -225.21188 + }, + "TerritoryId": 141, + "AetheryteShortcut": "Central Thanalan - Black Brush Station", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + }, + "Fly": true, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "ComplexCombatData": [ + { + "DataId": 160, + "MinimumKillCount": 8, + "$": "Slay efts", + "CompletionQuestVariablesFlags": [ + { + "Low": 8 + }, + null, + null, + null, + null, + null + ] + } + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1001710, + "Position": { + "X": -240.2533, + "Y": 18.8, + "Z": 86.900024 + }, + "TerritoryId": 130, + "InteractionType": "Interact", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Thaumaturges' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + }, + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_CLSTHM100_00348_Q_000_1", + "Answer": "TEXT_CLSTHM100_00348_A_000_3" + } + ] + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 2001511, + "Position": { + "X": -366.29285, + "Y": -34.989014, + "Z": 293.56824 + }, + "TerritoryId": 145, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 166, + 1238 + ], + "Fly": true, + "AetheryteShortcut": "Eastern Thanalan - Camp Drybone", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 2001498, + "Position": { + "X": -366.29285, + "Y": -34.989014, + "Z": 293.56824 + }, + "TerritoryId": 145, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1001710, + "Position": { + "X": -240.2533, + "Y": 18.8, + "Z": 86.900024 + }, + "TerritoryId": 130, + "InteractionType": "Interact", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Thaumaturges' Guild" + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1001708, + "Position": { + "X": -250.3548, + "Y": 18, + "Z": 80.88806 + }, + "TerritoryId": 130, + "InteractionType": "CompleteQuest", + "NextQuestId": 350 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/BLM/349_The Threat of Paucity.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/BLM/349_The Threat of Paucity.json index fdcc2b859..a987d067a 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/BLM/349_The Threat of Paucity.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/BLM/349_The Threat of Paucity.json @@ -163,7 +163,8 @@ "InteractionType": "Combat", "EnemySpawnType": "AfterInteraction", "KillEnemyDataIds": [ - 166 + 166, + 1238 ], "Fly": true, "AetheryteShortcut": "Eastern Thanalan - Camp Drybone", diff --git a/Questionable/Controller/QuestController.cs b/Questionable/Controller/QuestController.cs index d6ae32a8c..5554404cf 100644 --- a/Questionable/Controller/QuestController.cs +++ b/Questionable/Controller/QuestController.cs @@ -762,7 +762,7 @@ internal sealed class QuestController : MiniTaskController, IDi if (!IsInterruptible() || _nextQuest != null || _gatheringQuest != null || _simulatedQuest != null) return false; - ElementId? priorityQuestId = _questFunctions.GetNextPriorityQuestThatCanBeAccepted(); + ElementId? priorityQuestId = _questFunctions.GetNextPriorityQuestsThatCanBeAccepted().FirstOrDefault(); if (priorityQuestId == null) return false; diff --git a/Questionable/Functions/QuestFunctions.cs b/Questionable/Functions/QuestFunctions.cs index fb720e2fa..bb206a1b9 100644 --- a/Questionable/Functions/QuestFunctions.cs +++ b/Questionable/Functions/QuestFunctions.cs @@ -221,7 +221,7 @@ internal sealed unsafe class QuestFunctions return (firstTrackedQuest, firstTrackedSequence); } - ElementId? priorityQuest = GetNextPriorityQuestThatCanBeAccepted(); + ElementId? priorityQuest = GetNextPriorityQuestsThatCanBeAccepted().FirstOrDefault(); if (priorityQuest != null) { // if we have an accepted msq quest, and know of no quest of those currently in the to-do list... @@ -336,12 +336,12 @@ internal sealed unsafe class QuestFunctions return null; } - public ElementId? GetNextPriorityQuestThatCanBeAccepted() + public List GetNextPriorityQuestsThatCanBeAccepted() { // all priority quests assume we're able to teleport to the beginning (and for e.g. class quests, the end) // ideally without having to wait 15m for Return. if (!_aetheryteFunctions.IsTeleportUnlocked()) - return null; + return []; // ideally, we'd also be able to afford *some* teleports // this implicitly makes sure we're not starting one of the lv1 class quests if we can't afford to teleport back @@ -363,7 +363,7 @@ internal sealed unsafe class QuestFunctions return firstStep.IsTeleportableForPriorityQuests(); }) - .FirstOrDefault(x => + .Where(x => { if (!_questRegistry.TryGetQuest(x, out Quest? quest)) return false; @@ -390,7 +390,8 @@ internal sealed unsafe class QuestFunctions return true; }); - }); + }) + .ToList(); } private static int EstimateTeleportCosts(Quest quest) diff --git a/Questionable/Windows/QuestComponents/ActiveQuestComponent.cs b/Questionable/Windows/QuestComponents/ActiveQuestComponent.cs index 2652685f4..7ec46f3dd 100644 --- a/Questionable/Windows/QuestComponents/ActiveQuestComponent.cs +++ b/Questionable/Windows/QuestComponents/ActiveQuestComponent.cs @@ -1,4 +1,5 @@ using System; +using System.Collections.Generic; using System.Linq; using System.Numerics; using System.Text.RegularExpressions; @@ -167,8 +168,29 @@ internal sealed partial class ActiveQuestComponent ImGui.SameLine(); ImGui.TextColored(ImGuiColors.DalamudYellow, SeIconChar.Hyadelyn.ToIconString()); if (ImGui.IsItemHovered()) - ImGui.SetTooltip( - "This quest sequence starts with a teleport to an Aetheryte.\nCertain priority quest (e.g. class quests) may be started/completed by the plugin prior to continuing with this quest."); + { + using var tooltip = ImRaii.Tooltip(); + if (tooltip) + { + ImGui.Text("This quest sequence starts with a teleport to an Aetheryte."); + ImGui.Text( + "Certain priority quest (e.g. class quests) may be started/completed by the plugin prior to continuing with this quest."); + ImGui.Separator(); + ImGui.Text("Available priority quests:"); + + List priorityQuests = _questFunctions.GetNextPriorityQuestsThatCanBeAccepted(); + if (priorityQuests.Count > 0) + { + foreach (var questId in priorityQuests) + { + if (_questRegistry.TryGetQuest(questId, out var quest)) + ImGui.BulletText($"{quest.Info.Name} ({questId})"); + } + } + else + ImGui.BulletText("(none)"); + } + } } } -- 2.45.2 From 312a16f85f69cc16a0946d72840350b30e5b4b99 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Mon, 9 Dec 2024 02:09:52 +0100 Subject: [PATCH 315/448] Add missing ACN quests --- .../SMN/452_Way of the Arcanist.json | 17 +- .../SMN/453_Way of the Arcanist.json | 181 ++++++++++++++++++ .../SMN/456_Tactical Planning.json | 179 +++++++++++++++++ 3 files changed, 373 insertions(+), 4 deletions(-) create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/SMN/453_Way of the Arcanist.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/SMN/456_Tactical Planning.json diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/SMN/452_Way of the Arcanist.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/SMN/452_Way of the Arcanist.json index 263102e6c..124544ac9 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/SMN/452_Way of the Arcanist.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/SMN/452_Way of the Arcanist.json @@ -6,14 +6,13 @@ "Sequence": 0, "Steps": [ { - "DataId": 1000895, "Position": { - "X": -335.74432, + "X": -335.8204, "Y": 12.899764, - "Z": 1.3884888 + "Z": 4.017052 }, "TerritoryId": 129, - "InteractionType": "AcceptQuest", + "InteractionType": "WalkTo", "AetheryteShortcut": "Limsa Lominsa", "AethernetShortcut": [ "[Limsa Lominsa] Aetheryte Plaza", @@ -24,6 +23,16 @@ "InSameTerritory": true } } + }, + { + "DataId": 1000895, + "Position": { + "X": -335.74432, + "Y": 12.899764, + "Z": 1.3884888 + }, + "TerritoryId": 129, + "InteractionType": "AcceptQuest" } ] }, diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/SMN/453_Way of the Arcanist.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/SMN/453_Way of the Arcanist.json new file mode 100644 index 000000000..077713309 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/SMN/453_Way of the Arcanist.json @@ -0,0 +1,181 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "Position": { + "X": -335.8204, + "Y": 12.899764, + "Z": 4.017052 + }, + "TerritoryId": 129, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] Arcanists' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + }, + { + "DataId": 1000895, + "Position": { + "X": -335.74432, + "Y": 12.899764, + "Z": 1.3884888 + }, + "TerritoryId": 129, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1000909, + "Position": { + "X": -326.37524, + "Y": 12.899658, + "Z": 9.994568 + }, + "TerritoryId": 129, + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_CLSACN020_00453_Q1_000_000", + "Yes": true + } + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": -1.5568014, + "Y": 66.12121, + "Z": 102.35001 + }, + "TerritoryId": 135, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "ComplexCombatData": [ + { + "DataId": 347, + "MinimumKillCount": 3, + "CompletionQuestVariablesFlags": [ + { + "Low": 3 + }, + null, + null, + null, + null, + null + ] + }, + { + "DataId": 49, + "MinimumKillCount": 3, + "CompletionQuestVariablesFlags": [ + null, + { + "Low": 3 + }, + null, + null, + null, + null + ] + } + ], + "AethernetShortcut": [ + "[Limsa Lominsa] Arcanists' Guild", + "[Limsa Lominsa] Tempest Gate (Lower La Noscea)" + ], + "CompletionQuestVariablesFlags": [ + { + "Low": 3 + }, + { + "Low": 3 + }, + null, + null, + null, + null + ] + }, + { + "Position": { + "X": 157.63565, + "Y": 38.01287, + "Z": 48.92973 + }, + "TerritoryId": 135, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "ComplexCombatData": [ + { + "DataId": 324, + "MinimumKillCount": 3, + "CompletionQuestVariablesFlags": [ + null, + { + "High": 3 + }, + null, + null, + null, + null + ] + } + ], + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + { + "High": 3 + }, + null, + null, + null, + null + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1000909, + "Position": { + "X": -326.37524, + "Y": 12.899658, + "Z": 9.994568 + }, + "TerritoryId": 129, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] Arcanists' Guild" + ], + "NextQuestId": 455 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/SMN/456_Tactical Planning.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/SMN/456_Tactical Planning.json new file mode 100644 index 000000000..a7418525f --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/SMN/456_Tactical Planning.json @@ -0,0 +1,179 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1000909, + "Position": { + "X": -326.37524, + "Y": 12.899658, + "Z": 9.994568 + }, + "TerritoryId": 129, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] Arcanists' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": 667.4784, + "Y": 15.36824, + "Z": 443.4379 + }, + "TerritoryId": 138, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "KillEnemyDataIds": [ + 22 + ], + "AetheryteShortcut": "Western La Noscea - Swiftperch", + "CompletionQuestVariablesFlags": [ + { + "Low": 3 + }, + null, + null, + null, + null, + null + ] + }, + { + "Position": { + "X": 686.6034, + "Y": 23.682272, + "Z": 422.78772 + }, + "TerritoryId": 138, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "KillEnemyDataIds": [ + 138 + ], + "CompletionQuestVariablesFlags": [ + null, + { + "High": 3 + }, + null, + null, + null, + null + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1000909, + "Position": { + "X": -326.37524, + "Y": 12.899658, + "Z": 9.994568 + }, + "TerritoryId": 129, + "InteractionType": "Interact", + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] Arcanists' Guild" + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1005199, + "Position": { + "X": -348.3177, + "Y": -2.3744698, + "Z": 11.917236 + }, + "TerritoryId": 129, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1005200, + "Position": { + "X": -106.79791, + "Y": 45.688404, + "Z": -252.33844 + }, + "TerritoryId": 134, + "InteractionType": "SinglePlayerDuty", + "AetheryteShortcut": "Middle La Noscea - Summerford Farms", + "Fly": true + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1005201, + "Position": { + "X": -98.49707, + "Y": 47.27536, + "Z": -262.31793 + }, + "StopDistance": 5, + "TerritoryId": 134, + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_CLSACN100_00456_Q1_000_000", + "Answer": "TEXT_CLSACN100_00456_A1_000_001" + } + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1000909, + "Position": { + "X": -326.37524, + "Y": 12.899658, + "Z": 9.994568 + }, + "TerritoryId": 129, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] Arcanists' Guild" + ], + "NextQuestId": 1103 + } + ] + } + ] +} -- 2.45.2 From 5bf6cbfcbb6874304d0ceebf4464b8c257d1abf4 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Mon, 9 Dec 2024 15:14:53 +0100 Subject: [PATCH 316/448] Add right click menu to Allied Society journal tab --- Questionable/QuestionablePlugin.cs | 1 + .../AlliedSocietyJournalComponent.cs | 15 ++++--- .../QuestJournalComponent.cs | 26 ++--------- .../JournalComponents/QuestJournalUtils.cs | 44 +++++++++++++++++++ 4 files changed, 59 insertions(+), 27 deletions(-) create mode 100644 Questionable/Windows/JournalComponents/QuestJournalUtils.cs diff --git a/Questionable/QuestionablePlugin.cs b/Questionable/QuestionablePlugin.cs index db6d7469f..8e4ad410f 100644 --- a/Questionable/QuestionablePlugin.cs +++ b/Questionable/QuestionablePlugin.cs @@ -262,6 +262,7 @@ public sealed class QuestionablePlugin : IDalamudPlugin serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); + serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); diff --git a/Questionable/Windows/JournalComponents/AlliedSocietyJournalComponent.cs b/Questionable/Windows/JournalComponents/AlliedSocietyJournalComponent.cs index e5adbc860..92cc96b7d 100644 --- a/Questionable/Windows/JournalComponents/AlliedSocietyJournalComponent.cs +++ b/Questionable/Windows/JournalComponents/AlliedSocietyJournalComponent.cs @@ -21,6 +21,7 @@ internal sealed class AlliedSocietyJournalComponent private readonly AlliedSocietyQuestFunctions _alliedSocietyQuestFunctions; private readonly QuestData _questData; private readonly QuestRegistry _questRegistry; + private readonly QuestJournalUtils _questJournalUtils; private readonly QuestTooltipComponent _questTooltipComponent; private readonly UiUtils _uiUtils; @@ -29,6 +30,7 @@ internal sealed class AlliedSocietyJournalComponent AlliedSocietyQuestFunctions alliedSocietyQuestFunctions, QuestData questData, QuestRegistry questRegistry, + QuestJournalUtils questJournalUtils, QuestTooltipComponent questTooltipComponent, UiUtils uiUtils) { @@ -36,6 +38,7 @@ internal sealed class AlliedSocietyJournalComponent _alliedSocietyQuestFunctions = alliedSocietyQuestFunctions; _questData = questData; _questRegistry = questRegistry; + _questJournalUtils = questJournalUtils; _questTooltipComponent = questTooltipComponent; _uiUtils = uiUtils; } @@ -85,13 +88,15 @@ internal sealed class AlliedSocietyJournalComponent } } - private void DrawQuest(QuestInfo quest) + private void DrawQuest(QuestInfo questInfo) { - var (color, icon, tooltipText) = _uiUtils.GetQuestStyle(quest.QuestId); - if (!_questRegistry.IsKnownQuest(quest.QuestId)) + var (color, icon, tooltipText) = _uiUtils.GetQuestStyle(questInfo.QuestId); + if (!_questRegistry.TryGetQuest(questInfo.QuestId, out var quest)) color = ImGuiColors.DalamudGrey; - if (_uiUtils.ChecklistItem($"{quest.Name} ({tooltipText})", color, icon)) - _questTooltipComponent.Draw(quest); + if (_uiUtils.ChecklistItem($"{questInfo.Name} ({tooltipText})", color, icon)) + _questTooltipComponent.Draw(questInfo); + + _questJournalUtils.ShowContextMenu(questInfo, quest, nameof(AlliedSocietyJournalComponent)); } } diff --git a/Questionable/Windows/JournalComponents/QuestJournalComponent.cs b/Questionable/Windows/JournalComponents/QuestJournalComponent.cs index 36565fdf8..b68f9dd3a 100644 --- a/Questionable/Windows/JournalComponents/QuestJournalComponent.cs +++ b/Questionable/Windows/JournalComponents/QuestJournalComponent.cs @@ -30,8 +30,7 @@ internal sealed class QuestJournalComponent private readonly UiUtils _uiUtils; private readonly QuestTooltipComponent _questTooltipComponent; private readonly IDalamudPluginInterface _pluginInterface; - private readonly QuestController _questController; - private readonly ICommandManager _commandManager; + private readonly QuestJournalUtils _questJournalUtils; private readonly QuestValidator _questValidator; private List _filteredSections = []; @@ -39,7 +38,7 @@ internal sealed class QuestJournalComponent public QuestJournalComponent(JournalData journalData, QuestRegistry questRegistry, QuestFunctions questFunctions, UiUtils uiUtils, QuestTooltipComponent questTooltipComponent, IDalamudPluginInterface pluginInterface, - QuestController questController, ICommandManager commandManager, QuestValidator questValidator) + QuestJournalUtils questJournalUtils, QuestValidator questValidator) { _journalData = journalData; _questRegistry = questRegistry; @@ -47,8 +46,7 @@ internal sealed class QuestJournalComponent _uiUtils = uiUtils; _questTooltipComponent = questTooltipComponent; _pluginInterface = pluginInterface; - _questController = questController; - _commandManager = commandManager; + _questJournalUtils = questJournalUtils; _questValidator = questValidator; } @@ -184,23 +182,7 @@ internal sealed class QuestJournalComponent if (ImGui.IsItemHovered()) _questTooltipComponent.Draw(questInfo); - if (ImGui.BeginPopupContextItem($"##QuestPopup{questInfo.QuestId}", ImGuiPopupFlags.MouseButtonRight)) - { - if (ImGui.MenuItem("Start as next quest", _questFunctions.IsReadyToAcceptQuest(questInfo.QuestId))) - { - _questController.SetNextQuest(quest); - _questController.Start("SeasonalEventSelection"); - } - - bool openInQuestMap = _commandManager.Commands.TryGetValue("/questinfo", out var commandInfo); - if (ImGui.MenuItem("View in Quest Map", questInfo.QuestId is QuestId && openInQuestMap)) - { - _commandManager.DispatchCommand("/questinfo", questInfo.QuestId.ToString() ?? string.Empty, - commandInfo!); - } - - ImGui.EndPopup(); - } + _questJournalUtils.ShowContextMenu(questInfo, quest, nameof(QuestJournalComponent)); ImGui.TableNextColumn(); float spacing; diff --git a/Questionable/Windows/JournalComponents/QuestJournalUtils.cs b/Questionable/Windows/JournalComponents/QuestJournalUtils.cs new file mode 100644 index 000000000..c98dba68c --- /dev/null +++ b/Questionable/Windows/JournalComponents/QuestJournalUtils.cs @@ -0,0 +1,44 @@ +using Dalamud.Interface.Utility.Raii; +using Dalamud.Plugin.Services; +using ImGuiNET; +using Questionable.Controller; +using Questionable.Functions; +using Questionable.Model; +using Questionable.Model.Questing; + +namespace Questionable.Windows.JournalComponents; + +internal sealed class QuestJournalUtils +{ + private readonly QuestController _questController; + private readonly QuestFunctions _questFunctions; + private readonly ICommandManager _commandManager; + + public QuestJournalUtils(QuestController questController, QuestFunctions questFunctions, + ICommandManager commandManager) + { + _questController = questController; + _questFunctions = questFunctions; + _commandManager = commandManager; + } + + public void ShowContextMenu(IQuestInfo questInfo, Quest? quest, string label) + { + using var popup = ImRaii.ContextPopup($"##QuestPopup{questInfo.QuestId}", ImGuiPopupFlags.MouseButtonRight); + if (!popup) + return; + + if (ImGui.MenuItem("Start as next quest", _questFunctions.IsReadyToAcceptQuest(questInfo.QuestId))) + { + _questController.SetNextQuest(quest); + _questController.Start(label); + } + + bool openInQuestMap = _commandManager.Commands.TryGetValue("/questinfo", out var commandInfo); + if (ImGui.MenuItem("View in Quest Map", questInfo.QuestId is QuestId && openInQuestMap)) + { + _commandManager.DispatchCommand("/questinfo", questInfo.QuestId.ToString() ?? string.Empty, + commandInfo!); + } + } +} -- 2.45.2 From 12dc7f22322c2898303dd9e43ed32d20b67f72ea Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Wed, 11 Dec 2024 16:19:34 +0100 Subject: [PATCH 317/448] Use actual seed for allied society quests --- Questionable/Functions/AlliedSocietyQuestFunctions.cs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Questionable/Functions/AlliedSocietyQuestFunctions.cs b/Questionable/Functions/AlliedSocietyQuestFunctions.cs index 4fd704193..af6f5eab3 100644 --- a/Questionable/Functions/AlliedSocietyQuestFunctions.cs +++ b/Questionable/Functions/AlliedSocietyQuestFunctions.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.Linq; +using System.Runtime.InteropServices; using FFXIVClientStructs.FFXIV.Client.Game; using Microsoft.Extensions.Logging; using Questionable.Data; @@ -45,7 +46,7 @@ internal sealed class AlliedSocietyQuestFunctions return []; bool rankedUp = (rankData & 0x80) != 0; - byte seed = 183; + byte seed = Marshal.ReadByte((nint)QuestManager.Instance() + 0x698); // TODO Use clientstructs List result = []; foreach (NpcData npcData in _questsByAlliedSociety[alliedSociety]) { @@ -56,7 +57,7 @@ internal sealed class AlliedSocietyQuestFunctions else { var quests = CalculateAvailableQuests(npcData.AllQuests, seed, outranksAll, currentRank, rankedUp); - _logger.LogInformation("Available for {Tribe} (Issuer: {IssuerId}: {Quests}", alliedSociety, npcData.IssuerDataId, string.Join(", ", quests)); + _logger.LogInformation("Available for {Tribe} (Seed: {Seed}, Issuer: {IssuerId}): {Quests}", alliedSociety, seed, npcData.IssuerDataId, string.Join(", ", quests)); _dailyQuests[key] = quests; result.AddRange(quests); -- 2.45.2 From b6d78b0365e92ce24e420fdab8f9f8e1345df2d1 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Wed, 11 Dec 2024 17:52:08 +0100 Subject: [PATCH 318/448] Add 'Partners in Pel' --- .../Pelupelu/Story/5198_Partners in Pel.json | 67 +++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Story/5198_Partners in Pel.json diff --git a/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Story/5198_Partners in Pel.json b/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Story/5198_Partners in Pel.json new file mode 100644 index 000000000..7ae61b74c --- /dev/null +++ b/QuestPaths/7.x - Dawntrail/Allied Societies/Pelupelu/Story/5198_Partners in Pel.json @@ -0,0 +1,67 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "Position": { + "X": 809.655, + "Y": 17.004526, + "Z": -257.89868 + }, + "TerritoryId": 1188, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Kozama'uka - Dock Poga", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + }, + { + "DataId": 1051710, + "Position": { + "X": 822.629, + "Y": 17.102613, + "Z": -263.20288 + }, + "TerritoryId": 1188, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1051746, + "Position": { + "X": 824.6128, + "Y": 13.979889, + "Z": -227.16113 + }, + "TerritoryId": 1188, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1051710, + "Position": { + "X": 822.629, + "Y": 17.102613, + "Z": -263.20288 + }, + "TerritoryId": 1188, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} -- 2.45.2 From e7c0031a82ce24187952eb5eb8c279e1c7577ba7 Mon Sep 17 00:00:00 2001 From: pot0to <19513249+pot0to@users.noreply.github.com> Date: Wed, 11 Dec 2024 23:07:30 -0800 Subject: [PATCH 319/448] adding one dwarves quest --- .../Dailies/3920_Targets Required.json | 35 +++++++++++++++++-- 1 file changed, 33 insertions(+), 2 deletions(-) diff --git a/QuestPaths/5.x - Shadowbringers/Allied Societies/Dwarves/Dailies/3920_Targets Required.json b/QuestPaths/5.x - Shadowbringers/Allied Societies/Dwarves/Dailies/3920_Targets Required.json index 24aad0b4b..b071d0fae 100644 --- a/QuestPaths/5.x - Shadowbringers/Allied Societies/Dwarves/Dailies/3920_Targets Required.json +++ b/QuestPaths/5.x - Shadowbringers/Allied Societies/Dwarves/Dailies/3920_Targets Required.json @@ -1,7 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "liza", - "Disabled": true, + "Author": "pot0to", "QuestSequence": [ { "Sequence": 0, @@ -30,6 +29,38 @@ { "Sequence": 1, "Steps": [ + { + "DataId": 1033767, + "Position": { + "X": -608.6061, + "Y": 65.60222, + "Z": -431.81506 + }, + "TerritoryId": 813, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "TerritoryId": 813, + "InteractionType": "Craft", + "ItemId": 31173, + "ItemCount": 3 + }, + { + "DataId": 1033703, + "Position": { + "X": -270.77136, + "Y": 93.37625, + "Z": -480.33875 + }, + "TerritoryId": 813, + "InteractionType": "Interact", + "Fly": true + } ] }, { -- 2.45.2 From 824259a0f5ae8fb33506c675422323c5e8142434 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Mon, 16 Dec 2024 15:40:31 +0100 Subject: [PATCH 320/448] Add Starlight (2024) quests by Starr --- .../5227_Reach for the Stalls.json | 128 ++++++++++++ .../5228_Spreading the Warmth and Cheer.json | 182 ++++++++++++++++++ 2 files changed, 310 insertions(+) create mode 100644 QuestPaths/7.x - Dawntrail/Seasonal Events/Starlight Celebration (2024)/5227_Reach for the Stalls.json create mode 100644 QuestPaths/7.x - Dawntrail/Seasonal Events/Starlight Celebration (2024)/5228_Spreading the Warmth and Cheer.json diff --git a/QuestPaths/7.x - Dawntrail/Seasonal Events/Starlight Celebration (2024)/5227_Reach for the Stalls.json b/QuestPaths/7.x - Dawntrail/Seasonal Events/Starlight Celebration (2024)/5227_Reach for the Stalls.json new file mode 100644 index 000000000..892fc9fd4 --- /dev/null +++ b/QuestPaths/7.x - Dawntrail/Seasonal Events/Starlight Celebration (2024)/5227_Reach for the Stalls.json @@ -0,0 +1,128 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Starr", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1051801, + "Position": { + "X": -49.485046, + "Y": 6.499997, + "Z": -90.348694 + }, + "TerritoryId": 133, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Mih Khetto's Amphitheatre" + ] + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1051808, + "Position": { + "X": -53.60504, + "Y": 5.772882, + "Z": -99.931335 + }, + "TerritoryId": 133, + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_FESXMX001_05227_SYSTEM_000_025", + "Yes": true + } + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1051803, + "Position": { + "X": 33.951294, + "Y": -0.36796698, + "Z": 24.185547 + }, + "TerritoryId": 1247, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1051816, + "Position": { + "X": 18.142944, + "Y": 0.0028544795, + "Z": -0.289917 + }, + "TerritoryId": 1247, + "InteractionType": "Interact" + }, + { + "DataId": 1052469, + "Position": { + "X": -15.640564, + "Y": 0.0026466753, + "Z": 18.142944 + }, + "TerritoryId": 1247, + "InteractionType": "Interact" + }, + { + "DataId": 1051813, + "Position": { + "X": -5.1118164, + "Y": 1.21852545E-05, + "Z": -31.99823 + }, + "TerritoryId": 1247, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1051804, + "Position": { + "X": -3.4943848, + "Y": 0.0028544795, + "Z": -18.417664 + }, + "TerritoryId": 1247, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1051819, + "Position": { + "X": -1.6937866, + "Y": 0.0028544795, + "Z": -21.042236 + }, + "TerritoryId": 1247, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/7.x - Dawntrail/Seasonal Events/Starlight Celebration (2024)/5228_Spreading the Warmth and Cheer.json b/QuestPaths/7.x - Dawntrail/Seasonal Events/Starlight Celebration (2024)/5228_Spreading the Warmth and Cheer.json new file mode 100644 index 000000000..5319a7a7a --- /dev/null +++ b/QuestPaths/7.x - Dawntrail/Seasonal Events/Starlight Celebration (2024)/5228_Spreading the Warmth and Cheer.json @@ -0,0 +1,182 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Starr", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1051819, + "Position": { + "X": -1.6937866, + "Y": 0.0028544795, + "Z": -21.042236 + }, + "TerritoryId": 1247, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1051822, + "Position": { + "X": 61.478516, + "Y": -7.7123985, + "Z": 98.98523 + }, + "TerritoryId": 132, + "InteractionType": "Interact", + "AetheryteShortcut": "Gridania" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1051807, + "Position": { + "X": -53.635498, + "Y": 5.793307, + "Z": -99.931335 + }, + "TerritoryId": 133, + "InteractionType": "Interact", + "TargetTerritoryId": 1247, + "AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Mih Khetto's Amphitheatre" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 132 + ] + } + } + }, + { + "DataId": 1051823, + "Position": { + "X": 34.164917, + "Y": -0.37309912, + "Z": 23.605652 + }, + "TerritoryId": 1247, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1051833, + "Position": { + "X": 35.568726, + "Y": -0.24490167, + "Z": 21.560913 + }, + "TerritoryId": 1247, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1051816, + "Position": { + "X": 18.142944, + "Y": 0.0028544795, + "Z": -0.289917 + }, + "TerritoryId": 1247, + "InteractionType": "Interact" + }, + { + "DataId": 1051809, + "Position": { + "X": -15.823608, + "Y": 0.0028544795, + "Z": 9.84198 + }, + "TerritoryId": 1247, + "InteractionType": "Interact" + }, + { + "DataId": 1051813, + "Position": { + "X": -5.1118164, + "Y": 1.21852545E-05, + "Z": -31.99823 + }, + "TerritoryId": 1247, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1051825, + "Position": { + "X": -1.7853394, + "Y": 2.0028546, + "Z": -86.38135 + }, + "TerritoryId": 1247, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 2014535, + "Position": { + "X": 67.88733, + "Y": -0.77819824, + "Z": 51.224487 + }, + "TerritoryId": 1247, + "InteractionType": "Interact", + "TargetTerritoryId": 133 + }, + { + "DataId": 1051802, + "Position": { + "X": -50.06488, + "Y": 6.499999, + "Z": -89.58569 + }, + "TerritoryId": 133, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1051805, + "Position": { + "X": 33.401978, + "Y": -0.31104973, + "Z": 22.079773 + }, + "TerritoryId": 1253, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} -- 2.45.2 From 9cf2ee30f62128e58e1adc186bfd4c806d1429ed Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Mon, 16 Dec 2024 16:13:19 +0100 Subject: [PATCH 321/448] Add Starlight as event --- Directory.Build.targets | 2 +- .../5227_Reach for the Stalls.json | 33 ++++++++++++++++--- .../5228_Spreading the Warmth and Cheer.json | 30 +++++++++++++++-- .../QuestComponents/EventInfoComponent.cs | 1 + 4 files changed, 58 insertions(+), 8 deletions(-) diff --git a/Directory.Build.targets b/Directory.Build.targets index e37cfa8e2..58f58a736 100644 --- a/Directory.Build.targets +++ b/Directory.Build.targets @@ -1,5 +1,5 @@ - 4.6 + 4.7 diff --git a/QuestPaths/7.x - Dawntrail/Seasonal Events/Starlight Celebration (2024)/5227_Reach for the Stalls.json b/QuestPaths/7.x - Dawntrail/Seasonal Events/Starlight Celebration (2024)/5227_Reach for the Stalls.json index 892fc9fd4..2243eb082 100644 --- a/QuestPaths/7.x - Dawntrail/Seasonal Events/Starlight Celebration (2024)/5227_Reach for the Stalls.json +++ b/QuestPaths/7.x - Dawntrail/Seasonal Events/Starlight Celebration (2024)/5227_Reach for the Stalls.json @@ -70,7 +70,15 @@ "Z": -0.289917 }, "TerritoryId": 1247, - "InteractionType": "Interact" + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] }, { "DataId": 1052469, @@ -80,7 +88,15 @@ "Z": 18.142944 }, "TerritoryId": 1247, - "InteractionType": "Interact" + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] }, { "DataId": 1051813, @@ -90,7 +106,15 @@ "Z": -31.99823 }, "TerritoryId": 1247, - "InteractionType": "Interact" + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] } ] }, @@ -120,7 +144,8 @@ "Z": -21.042236 }, "TerritoryId": 1247, - "InteractionType": "CompleteQuest" + "InteractionType": "CompleteQuest", + "NextQuestId": 5228 } ] } diff --git a/QuestPaths/7.x - Dawntrail/Seasonal Events/Starlight Celebration (2024)/5228_Spreading the Warmth and Cheer.json b/QuestPaths/7.x - Dawntrail/Seasonal Events/Starlight Celebration (2024)/5228_Spreading the Warmth and Cheer.json index 5319a7a7a..0b3bed7f9 100644 --- a/QuestPaths/7.x - Dawntrail/Seasonal Events/Starlight Celebration (2024)/5228_Spreading the Warmth and Cheer.json +++ b/QuestPaths/7.x - Dawntrail/Seasonal Events/Starlight Celebration (2024)/5228_Spreading the Warmth and Cheer.json @@ -98,7 +98,15 @@ "Z": -0.289917 }, "TerritoryId": 1247, - "InteractionType": "Interact" + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] }, { "DataId": 1051809, @@ -108,7 +116,15 @@ "Z": 9.84198 }, "TerritoryId": 1247, - "InteractionType": "Interact" + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] }, { "DataId": 1051813, @@ -118,7 +134,15 @@ "Z": -31.99823 }, "TerritoryId": 1247, - "InteractionType": "Interact" + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] } ] }, diff --git a/Questionable/Windows/QuestComponents/EventInfoComponent.cs b/Questionable/Windows/QuestComponents/EventInfoComponent.cs index d85e1f70c..9325efa2f 100644 --- a/Questionable/Windows/QuestComponents/EventInfoComponent.cs +++ b/Questionable/Windows/QuestComponents/EventInfoComponent.cs @@ -22,6 +22,7 @@ internal sealed class EventInfoComponent [SuppressMessage("ReSharper", "CollectionNeverUpdated.Local")] private readonly List _eventQuests = [ + new("Starlight Celebration", [new(5227), new(5228)], AtDailyReset(new(2024, 12, 31))), ]; private readonly QuestData _questData; -- 2.45.2 From 2213ccb033b4d3c376cf8594af500746275bee31 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Mon, 16 Dec 2024 17:37:23 +0100 Subject: [PATCH 322/448] Fix check for Automaton --- Questionable/Windows/OneTimeSetupWindow.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Questionable/Windows/OneTimeSetupWindow.cs b/Questionable/Windows/OneTimeSetupWindow.cs index f1c715520..34da54eae 100644 --- a/Questionable/Windows/OneTimeSetupWindow.cs +++ b/Questionable/Windows/OneTimeSetupWindow.cs @@ -69,7 +69,7 @@ internal sealed class OneTimeSetupWindow : LWindow new Uri("https://github.com/FFXIV-CombatReborn/RotationSolverReborn"), new Uri( "https://raw.githubusercontent.com/FFXIV-CombatReborn/CombatRebornRepo/main/pluginmaster.json")), - new PluginInfo("Automaton", + new PluginInfo("CBT (formerly known as Automaton)", """ Automaton is a collection of automation-related tweaks. The 'Sniper no sniping' tweak can complete snipe tasks automatically. -- 2.45.2 From 1bcc0276391ccb9bdfb00440d7eea3f98051260d Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Mon, 16 Dec 2024 18:26:30 +0100 Subject: [PATCH 323/448] Fix color corruption on Allied Society tab --- Directory.Build.targets | 2 +- .../AlliedSocietyJournalComponent.cs | 26 ++++++++++++++----- 2 files changed, 20 insertions(+), 8 deletions(-) diff --git a/Directory.Build.targets b/Directory.Build.targets index 58f58a736..6759af62c 100644 --- a/Directory.Build.targets +++ b/Directory.Build.targets @@ -1,5 +1,5 @@ - 4.7 + 4.8 diff --git a/Questionable/Windows/JournalComponents/AlliedSocietyJournalComponent.cs b/Questionable/Windows/JournalComponents/AlliedSocietyJournalComponent.cs index 92cc96b7d..c7e506029 100644 --- a/Questionable/Windows/JournalComponents/AlliedSocietyJournalComponent.cs +++ b/Questionable/Windows/JournalComponents/AlliedSocietyJournalComponent.cs @@ -57,16 +57,28 @@ internal sealed class AlliedSocietyJournalComponent if (quests.Count == 0) continue; - bool containsNewQuests = quests.Any(x => !_questFunctions.IsQuestComplete(x.QuestId)); - if (containsNewQuests) - ImGui.PushStyleColor(ImGuiCol.Text, ImGuiColors.DalamudYellow); + string label = $"{alliedSociety}###AlliedSociety{(int)alliedSociety}"; +#if DEBUG + bool isOpen; + if (quests.Any(x => !_questRegistry.IsKnownQuest(x.QuestId))) + { + using (ImRaii.PushColor(ImGuiCol.Text, ImGuiColors.DalamudOrange)) + isOpen = ImGui.CollapsingHeader(label); + } + else if (quests.Any(x => !_questFunctions.IsQuestComplete(x.QuestId))) + { + using (ImRaii.PushColor(ImGuiCol.Text, ImGuiColors.DalamudYellow)) + isOpen = ImGui.CollapsingHeader(label); + } + else + isOpen = ImGui.CollapsingHeader(label); +#else + bool isOpen = ImGui.CollapsingHeader(label); +#endif - if (!ImGui.CollapsingHeader($"{alliedSociety}###AlliedSociety{(int)alliedSociety}")) + if (!isOpen) continue; - if (containsNewQuests) - ImGui.PopStyleColor(); - if (alliedSociety <= EAlliedSociety.Ixal) { for (byte i = 1; i <= 8; ++i) -- 2.45.2 From 267e0367432a5ab156d9ab02b754bc5d29d2dd79 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Mon, 16 Dec 2024 20:28:10 +0100 Subject: [PATCH 324/448] Don't use Reflector to check for installed plugins --- Questionable/Windows/OneTimeSetupWindow.cs | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/Questionable/Windows/OneTimeSetupWindow.cs b/Questionable/Windows/OneTimeSetupWindow.cs index 34da54eae..b94b3fc80 100644 --- a/Questionable/Windows/OneTimeSetupWindow.cs +++ b/Questionable/Windows/OneTimeSetupWindow.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Linq; using Dalamud.Interface; using Dalamud.Interface.Colors; using Dalamud.Interface.Components; @@ -19,6 +20,7 @@ internal sealed class OneTimeSetupWindow : LWindow private static readonly IReadOnlyList RequiredPlugins = [ new("vnavmesh", + "vnavmesh", """ vnavmesh handles the navigation within a zone, moving your character to the next quest-related objective. @@ -26,12 +28,14 @@ internal sealed class OneTimeSetupWindow : LWindow new Uri("https://github.com/awgil/ffxiv_navmesh/"), new Uri("https://puni.sh/api/repository/veyn")), new("Lifestream", + "Lifestream", """ Used to travel to aethernet shards in cities. """, new Uri("https://github.com/NightmareXIV/Lifestream"), new Uri("https://github.com/NightmareXIV/MyDalamudPlugins/raw/main/pluginmaster.json")), new("TextAdvance", + "TextAdvance", """ Automatically accepts and turns in quests, skips cutscenes and dialogue. @@ -45,23 +49,22 @@ internal sealed class OneTimeSetupWindow : LWindow private readonly Configuration _configuration; private readonly IDalamudPluginInterface _pluginInterface; private readonly UiUtils _uiUtils; - private readonly DalamudReflector _dalamudReflector; private readonly ILogger _logger; public OneTimeSetupWindow(Configuration configuration, IDalamudPluginInterface pluginInterface, UiUtils uiUtils, - DalamudReflector dalamudReflector, ILogger logger, AutomatonIpc automatonIpc) + ILogger logger, AutomatonIpc automatonIpc) : base("Questionable Setup###QuestionableOneTimeSetup", ImGuiWindowFlags.NoCollapse | ImGuiWindowFlags.AlwaysAutoResize | ImGuiWindowFlags.NoSavedSettings, true) { _configuration = configuration; _pluginInterface = pluginInterface; _uiUtils = uiUtils; - _dalamudReflector = dalamudReflector; _logger = logger; _recommendedPlugins = [ new("Rotation Solver Reborn", + "RotationSolver", """ Automatically handles most combat interactions you encounter during quests, including being interrupted by mobs. @@ -70,6 +73,7 @@ internal sealed class OneTimeSetupWindow : LWindow new Uri( "https://raw.githubusercontent.com/FFXIV-CombatReborn/CombatRebornRepo/main/pluginmaster.json")), new PluginInfo("CBT (formerly known as Automaton)", + "Automaton", """ Automaton is a collection of automation-related tweaks. The 'Sniper no sniping' tweak can complete snipe tasks automatically. @@ -78,6 +82,7 @@ internal sealed class OneTimeSetupWindow : LWindow new Uri("https://puni.sh/api/repository/croizat"), [new PluginDetailInfo("'Sniper no sniping' enabled", () => automatonIpc.IsAutoSnipeEnabled)]), new("NotificationMaster", + "NotificationMaster", """ Sends a configurable out-of-game notification if a quest requires manual actions. @@ -159,7 +164,7 @@ internal sealed class OneTimeSetupWindow : LWindow private bool DrawPlugin(PluginInfo plugin, float checklistPadding) { - bool isInstalled = IsPluginInstalled(plugin.DisplayName); + bool isInstalled = IsPluginInstalled(plugin); using (ImRaii.PushId("plugin_" + plugin.DisplayName)) { _uiUtils.ChecklistItem(plugin.DisplayName, isInstalled); @@ -194,13 +199,14 @@ internal sealed class OneTimeSetupWindow : LWindow return isInstalled; } - private bool IsPluginInstalled(string internalName) + private bool IsPluginInstalled(PluginInfo pluginInfo) { - return _dalamudReflector.TryGetDalamudPlugin(internalName, out _, suppressErrors: true, ignoreCache: true); + return _pluginInterface.InstalledPlugins.Any(x => x.InternalName == pluginInfo.InternalName && x.IsLoaded); } private sealed record PluginInfo( string DisplayName, + string InternalName, string Details, Uri WebsiteUri, Uri? DalamudRepositoryUri, -- 2.45.2 From 653dd7760e4c6e6198970cfc27af6bcb649c4618 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Mon, 16 Dec 2024 20:32:29 +0100 Subject: [PATCH 325/448] Fix .sln --- Questionable.sln | 40 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/Questionable.sln b/Questionable.sln index df8987891..5046322f0 100644 --- a/Questionable.sln +++ b/Questionable.sln @@ -15,11 +15,11 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Questionable.Model", "Quest EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "QuestPathGenerator.Tests", "QuestPathGenerator.Tests\QuestPathGenerator.Tests.csproj", "{4FD6F346-8961-4BD5-BDA2-E5F426DE4FC7}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GatheringPaths", "GatheringPaths\GatheringPaths.csproj", "{8BF98BEF-6F00-4197-91ED-75F8F1C35FFB}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "GatheringPaths", "GatheringPaths\GatheringPaths.csproj", "{8BF98BEF-6F00-4197-91ED-75F8F1C35FFB}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GatheringPathRenderer", "GatheringPathRenderer\GatheringPathRenderer.csproj", "{F514DA95-9867-4F3F-8062-ACE0C62E8740}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "GatheringPathRenderer", "GatheringPathRenderer\GatheringPathRenderer.csproj", "{F514DA95-9867-4F3F-8062-ACE0C62E8740}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ECommons", "vendor\ECommons\ECommons\ECommons.csproj", "{A12D7B4B-8E6E-4DCF-A41A-12F62E9FF94B}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ECommons", "vendor\ECommons\ECommons\ECommons.csproj", "{A12D7B4B-8E6E-4DCF-A41A-12F62E9FF94B}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{BBFFC6EA-15B1-48FC-B4D3-D9491278C27F}" ProjectSection(SolutionItems) = preProject @@ -28,7 +28,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "vendor", "vendor", "{8F5EC9D5-4CE7-433B-BB3A-782500E84DDB}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NotificationMasterAPI", "vendor\NotificationMasterAPI\NotificationMasterAPI\NotificationMasterAPI.csproj", "{9BD494ED-22F2-487B-BCE1-435399A8720E}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NotificationMasterAPI", "vendor\NotificationMasterAPI\NotificationMasterAPI\NotificationMasterAPI.csproj", "{9BD494ED-22F2-487B-BCE1-435399A8720E}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -36,6 +36,14 @@ Global Release|x64 = Release|x64 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution + {C91EEF13-A1AC-4A40-B695-DD4E378E5989}.Debug|x64.ActiveCfg = Debug|x64 + {C91EEF13-A1AC-4A40-B695-DD4E378E5989}.Debug|x64.Build.0 = Debug|x64 + {C91EEF13-A1AC-4A40-B695-DD4E378E5989}.Release|x64.ActiveCfg = Release|x64 + {C91EEF13-A1AC-4A40-B695-DD4E378E5989}.Release|x64.Build.0 = Release|x64 + {EEDE3BBE-E260-445E-8FB3-1264E0CBBE91}.Debug|x64.ActiveCfg = Debug|x64 + {EEDE3BBE-E260-445E-8FB3-1264E0CBBE91}.Debug|x64.Build.0 = Debug|x64 + {EEDE3BBE-E260-445E-8FB3-1264E0CBBE91}.Release|x64.ActiveCfg = Release|x64 + {EEDE3BBE-E260-445E-8FB3-1264E0CBBE91}.Release|x64.Build.0 = Release|x64 {7A136F28-8D5C-478D-B993-0F39F1451A47}.Debug|x64.ActiveCfg = Debug|x64 {7A136F28-8D5C-478D-B993-0F39F1451A47}.Debug|x64.Build.0 = Debug|x64 {7A136F28-8D5C-478D-B993-0F39F1451A47}.Release|x64.ActiveCfg = Release|x64 @@ -52,22 +60,14 @@ Global {4FD6F346-8961-4BD5-BDA2-E5F426DE4FC7}.Debug|x64.Build.0 = Debug|x64 {4FD6F346-8961-4BD5-BDA2-E5F426DE4FC7}.Release|x64.ActiveCfg = Release|x64 {4FD6F346-8961-4BD5-BDA2-E5F426DE4FC7}.Release|x64.Build.0 = Release|x64 - {EEDE3BBE-E260-445E-8FB3-1264E0CBBE91}.Debug|x64.ActiveCfg = Debug|x64 - {EEDE3BBE-E260-445E-8FB3-1264E0CBBE91}.Debug|x64.Build.0 = Debug|x64 - {EEDE3BBE-E260-445E-8FB3-1264E0CBBE91}.Release|x64.ActiveCfg = Release|x64 - {EEDE3BBE-E260-445E-8FB3-1264E0CBBE91}.Release|x64.Build.0 = Release|x64 - {C91EEF13-A1AC-4A40-B695-DD4E378E5989}.Debug|x64.ActiveCfg = Debug|x64 - {C91EEF13-A1AC-4A40-B695-DD4E378E5989}.Debug|x64.Build.0 = Debug|x64 - {C91EEF13-A1AC-4A40-B695-DD4E378E5989}.Release|x64.ActiveCfg = Release|x64 - {C91EEF13-A1AC-4A40-B695-DD4E378E5989}.Release|x64.Build.0 = Release|x64 - {8BF98BEF-6F00-4197-91ED-75F8F1C35FFB}.Debug|x64.ActiveCfg = Debug|Any CPU - {8BF98BEF-6F00-4197-91ED-75F8F1C35FFB}.Debug|x64.Build.0 = Debug|Any CPU - {8BF98BEF-6F00-4197-91ED-75F8F1C35FFB}.Release|x64.ActiveCfg = Release|Any CPU - {8BF98BEF-6F00-4197-91ED-75F8F1C35FFB}.Release|x64.Build.0 = Release|Any CPU - {F514DA95-9867-4F3F-8062-ACE0C62E8740}.Debug|x64.ActiveCfg = Debug|Any CPU - {F514DA95-9867-4F3F-8062-ACE0C62E8740}.Debug|x64.Build.0 = Debug|Any CPU - {F514DA95-9867-4F3F-8062-ACE0C62E8740}.Release|x64.ActiveCfg = Release|Any CPU - {F514DA95-9867-4F3F-8062-ACE0C62E8740}.Release|x64.Build.0 = Release|Any CPU + {8BF98BEF-6F00-4197-91ED-75F8F1C35FFB}.Debug|x64.ActiveCfg = Debug|x64 + {8BF98BEF-6F00-4197-91ED-75F8F1C35FFB}.Debug|x64.Build.0 = Debug|x64 + {8BF98BEF-6F00-4197-91ED-75F8F1C35FFB}.Release|x64.ActiveCfg = Release|x64 + {8BF98BEF-6F00-4197-91ED-75F8F1C35FFB}.Release|x64.Build.0 = Release|x64 + {F514DA95-9867-4F3F-8062-ACE0C62E8740}.Debug|x64.ActiveCfg = Debug|x64 + {F514DA95-9867-4F3F-8062-ACE0C62E8740}.Debug|x64.Build.0 = Debug|x64 + {F514DA95-9867-4F3F-8062-ACE0C62E8740}.Release|x64.ActiveCfg = Release|x64 + {F514DA95-9867-4F3F-8062-ACE0C62E8740}.Release|x64.Build.0 = Release|x64 {A12D7B4B-8E6E-4DCF-A41A-12F62E9FF94B}.Debug|x64.ActiveCfg = Debug|x64 {A12D7B4B-8E6E-4DCF-A41A-12F62E9FF94B}.Debug|x64.Build.0 = Debug|x64 {A12D7B4B-8E6E-4DCF-A41A-12F62E9FF94B}.Release|x64.ActiveCfg = Release|x64 -- 2.45.2 From 5e3398bf87d04905421e0803a2b31fb63b076b62 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Tue, 17 Dec 2024 18:56:27 +0100 Subject: [PATCH 326/448] Add 7.1 Hildibrand quest --- ...2_The Case of the Displaced Inspector.json | 267 ++++++++++++++++++ 1 file changed, 267 insertions(+) create mode 100644 QuestPaths/7.x - Dawntrail/Side Stories/Hildibrand/5192_The Case of the Displaced Inspector.json diff --git a/QuestPaths/7.x - Dawntrail/Side Stories/Hildibrand/5192_The Case of the Displaced Inspector.json b/QuestPaths/7.x - Dawntrail/Side Stories/Hildibrand/5192_The Case of the Displaced Inspector.json new file mode 100644 index 000000000..722bf74e8 --- /dev/null +++ b/QuestPaths/7.x - Dawntrail/Side Stories/Hildibrand/5192_The Case of the Displaced Inspector.json @@ -0,0 +1,267 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1051694, + "Position": { + "X": 56.595703, + "Y": -14, + "Z": 79.9115 + }, + "TerritoryId": 1185, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Tuliyollal", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1048501, + "Position": { + "X": 121.44653, + "Y": 42, + "Z": -347.34113 + }, + "TerritoryId": 1185, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Tuliyollal] Aetheryte Plaza", + "[Tuliyollal] Brightploom Post" + ], + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 1048485, + "Position": { + "X": 142.62598, + "Y": 41.999996, + "Z": -319.4477 + }, + "TerritoryId": 1185, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1051694, + "Position": { + "X": 56.595703, + "Y": -14, + "Z": 79.9115 + }, + "TerritoryId": 1185, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Tuliyollal] Brightploom Post", + "[Tuliyollal] Aetheryte Plaza" + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1051698, + "Position": { + "X": -122.72839, + "Y": 27.990566, + "Z": -436.42328 + }, + "TerritoryId": 1191, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1051700, + "Position": { + "X": -183.33722, + "Y": 30, + "Z": -627.2526 + }, + "TerritoryId": 1191, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1048037, + "Position": { + "X": -289.66205, + "Y": 45.88422, + "Z": -832.3644 + }, + "TerritoryId": 1191, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1051703, + "Position": { + "X": -9.506409, + "Y": -6.0500045, + "Z": 269.00122 + }, + "TerritoryId": 1186, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 7, + "Steps": [ + { + "DataId": 1051704, + "Position": { + "X": 353.96338, + "Y": 50.75, + "Z": 243.06091 + }, + "TerritoryId": 1186, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Solution Nine] Information Center", + "[Solution Nine] The Arcadion" + ], + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 1048090, + "Position": { + "X": 362.87476, + "Y": 50.75, + "Z": 223.46838 + }, + "StopDistance": 5, + "TerritoryId": 1186, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 1051705, + "Position": { + "X": 344.59448, + "Y": 50.75, + "Z": 195.45276 + }, + "TerritoryId": 1186, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + } + ] + }, + { + "Sequence": 8, + "Steps": [ + { + "DataId": 1051706, + "Position": { + "X": 368.36792, + "Y": 50.75, + "Z": 219.34839 + }, + "TerritoryId": 1186, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 9, + "Steps": [ + { + "DataId": 1051708, + "Position": { + "X": 307.42346, + "Y": 70.0001, + "Z": -25.0401 + }, + "TerritoryId": 1186, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Solution Nine] Neon Stein", + "[Solution Nine] True Vue" + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1051709, + "Position": { + "X": 307.6676, + "Y": 70.00009, + "Z": -26.962769 + }, + "StopDistance": 5, + "TerritoryId": 1186, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} -- 2.45.2 From 2d7f22199c92b28374f9ae6267f90386559c68d6 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Tue, 17 Dec 2024 19:28:06 +0100 Subject: [PATCH 327/448] Add custom deliveries for Nitowikwe --- .../Urqopacha/984_Solace_MIN.json | 163 +++++++++++++++++ .../Yak T'el/977_Xmun Hojaw_MIN.json | 169 ++++++++++++++++++ .../988_The Ja Tiika Heartland_BTN.json | 138 ++++++++++++++ .../Nitowikwe/5239_Laying New Tracks.json | 85 +++++++++ .../Nitowikwe/S11_Nitowikwe.json | 59 ++++++ 5 files changed, 614 insertions(+) create mode 100644 GatheringPaths/7.x - Dawntrail/Urqopacha/984_Solace_MIN.json create mode 100644 GatheringPaths/7.x - Dawntrail/Yak T'el/977_Xmun Hojaw_MIN.json create mode 100644 GatheringPaths/7.x - Dawntrail/Yak T'el/988_The Ja Tiika Heartland_BTN.json create mode 100644 QuestPaths/7.x - Dawntrail/Custom Deliveries/Nitowikwe/5239_Laying New Tracks.json create mode 100644 QuestPaths/7.x - Dawntrail/Custom Deliveries/Nitowikwe/S11_Nitowikwe.json diff --git a/GatheringPaths/7.x - Dawntrail/Urqopacha/984_Solace_MIN.json b/GatheringPaths/7.x - Dawntrail/Urqopacha/984_Solace_MIN.json new file mode 100644 index 000000000..09e3e81d6 --- /dev/null +++ b/GatheringPaths/7.x - Dawntrail/Urqopacha/984_Solace_MIN.json @@ -0,0 +1,163 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/GatheringPaths/gatheringlocation-v1.json", + "Author": "liza", + "Steps": [ + { + "TerritoryId": 1187, + "InteractionType": "None", + "AetheryteShortcut": "Urqopacha - Worlar's Echo" + } + ], + "Groups": [ + { + "Nodes": [ + { + "DataId": 34809, + "Locations": [ + { + "Position": { + "X": 503.1253, + "Y": 113.6339, + "Z": 332.9355 + }, + "MinimumAngle": 35, + "MaximumAngle": 160 + } + ] + }, + { + "DataId": 34810, + "Locations": [ + { + "Position": { + "X": 516.6899, + "Y": 116.4842, + "Z": 326.5524 + }, + "MinimumAngle": 20, + "MaximumAngle": 160 + }, + { + "Position": { + "X": 505.7916, + "Y": 114.2773, + "Z": 342.2974 + }, + "MinimumAngle": 0, + "MaximumAngle": 100 + }, + { + "Position": { + "X": 515.9227, + "Y": 114.58, + "Z": 317.4333 + }, + "MinimumAngle": 0, + "MaximumAngle": 135 + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 34813, + "Locations": [ + { + "Position": { + "X": 370.5957, + "Y": 64.7135, + "Z": 158.4955 + }, + "MinimumAngle": -45, + "MaximumAngle": 70 + } + ] + }, + { + "DataId": 34814, + "Locations": [ + { + "Position": { + "X": 363.6682, + "Y": 64.62195, + "Z": 152.1782 + }, + "MinimumAngle": 20, + "MaximumAngle": 140 + }, + { + "Position": { + "X": 394.519, + "Y": 63.70097, + "Z": 168.7538 + }, + "MinimumAngle": -125, + "MaximumAngle": 15 + }, + { + "Position": { + "X": 386.34, + "Y": 63.7528, + "Z": 166.915 + }, + "MinimumAngle": 15, + "MaximumAngle": 140 + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 34812, + "Locations": [ + { + "Position": { + "X": 328.846, + "Y": 79.13469, + "Z": 434.0204 + }, + "MinimumAngle": 175, + "MaximumAngle": 280 + }, + { + "Position": { + "X": 352.4181, + "Y": 81.39249, + "Z": 446.0517 + }, + "MinimumAngle": 180, + "MaximumAngle": 260 + }, + { + "Position": { + "X": 336.5682, + "Y": 80.73547, + "Z": 443.9305 + }, + "MinimumAngle": 120, + "MaximumAngle": 200 + } + ] + }, + { + "DataId": 34811, + "Locations": [ + { + "Position": { + "X": 341.6647, + "Y": 80.125, + "Z": 436.6368 + }, + "MinimumAngle": 100, + "MaximumAngle": 240 + } + ] + } + ] + } + ] +} diff --git a/GatheringPaths/7.x - Dawntrail/Yak T'el/977_Xmun Hojaw_MIN.json b/GatheringPaths/7.x - Dawntrail/Yak T'el/977_Xmun Hojaw_MIN.json new file mode 100644 index 000000000..58179e4e1 --- /dev/null +++ b/GatheringPaths/7.x - Dawntrail/Yak T'el/977_Xmun Hojaw_MIN.json @@ -0,0 +1,169 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/GatheringPaths/gatheringlocation-v1.json", + "Author": "liza", + "Steps": [ + { + "TerritoryId": 1189, + "InteractionType": "None", + "AetheryteShortcut": "Yak T'el - Iq Br'aax" + } + ], + "Groups": [ + { + "Nodes": [ + { + "DataId": 34768, + "Locations": [ + { + "Position": { + "X": -600.5579, + "Y": 11.24981, + "Z": -171.375 + }, + "MinimumAngle": 235, + "MaximumAngle": 335 + }, + { + "Position": { + "X": -587.7422, + "Y": 14.98462, + "Z": -191.4126 + }, + "MinimumAngle": 30, + "MaximumAngle": 140 + }, + { + "Position": { + "X": -586.5687, + "Y": 11.46508, + "Z": -179.5758 + }, + "MinimumAngle": 15, + "MaximumAngle": 100, + "MinimumDistance": 1.5, + "MaximumDistance": 3 + } + ] + }, + { + "DataId": 34767, + "Locations": [ + { + "Position": { + "X": -598.7657, + "Y": 12.99629, + "Z": -178.7605 + }, + "MinimumAngle": 210, + "MaximumAngle": 325 + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 34772, + "Locations": [ + { + "Position": { + "X": -484.7457, + "Y": -11.7739, + "Z": -35.59686 + }, + "MinimumAngle": 115, + "MaximumAngle": 270 + }, + { + "Position": { + "X": -490.1306, + "Y": -12.35526, + "Z": -37.11329 + }, + "MinimumAngle": 105, + "MaximumAngle": 280 + }, + { + "Position": { + "X": -465.1013, + "Y": -11.11267, + "Z": -37.65248 + }, + "MinimumAngle": 70, + "MaximumAngle": 170, + "MinimumDistance": 1, + "MaximumDistance": 2 + } + ] + }, + { + "DataId": 34771, + "Locations": [ + { + "Position": { + "X": -474.0215, + "Y": -11.19864, + "Z": -33.31685 + }, + "MinimumAngle": 105, + "MaximumAngle": 230, + "MinimumDistance": 1, + "MaximumDistance": 2.4 + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 34769, + "Locations": [ + { + "Position": { + "X": -359.9215, + "Y": 7.800453, + "Z": -75.53547 + }, + "MinimumAngle": -5, + "MaximumAngle": 90 + } + ] + }, + { + "DataId": 34770, + "Locations": [ + { + "Position": { + "X": -357.9739, + "Y": 6.927034, + "Z": -74.45865 + }, + "MinimumAngle": -20, + "MaximumAngle": 80 + }, + { + "Position": { + "X": -362.3269, + "Y": 8.58064, + "Z": -80.35127 + }, + "MinimumAngle": 45, + "MaximumAngle": 105 + }, + { + "Position": { + "X": -362.3572, + "Y": 9.697624, + "Z": -82.81331 + }, + "MinimumAngle": 25, + "MaximumAngle": 110 + } + ] + } + ] + } + ] +} diff --git a/GatheringPaths/7.x - Dawntrail/Yak T'el/988_The Ja Tiika Heartland_BTN.json b/GatheringPaths/7.x - Dawntrail/Yak T'el/988_The Ja Tiika Heartland_BTN.json new file mode 100644 index 000000000..ca1c47518 --- /dev/null +++ b/GatheringPaths/7.x - Dawntrail/Yak T'el/988_The Ja Tiika Heartland_BTN.json @@ -0,0 +1,138 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/GatheringPaths/gatheringlocation-v1.json", + "Author": "liza", + "Steps": [ + { + "TerritoryId": 1189, + "InteractionType": "None", + "AetheryteShortcut": "Yak T'el - Mamook" + } + ], + "Groups": [ + { + "Nodes": [ + { + "DataId": 34836, + "Locations": [ + { + "Position": { + "X": -168.5985, + "Y": -165.1216, + "Z": 237.7831 + }, + "MinimumAngle": 120, + "MaximumAngle": 230 + }, + { + "Position": { + "X": -150.4443, + "Y": -164.436, + "Z": 254.4874 + }, + "MinimumAngle": 185, + "MaximumAngle": 300 + } + ] + }, + { + "DataId": 34835, + "Locations": [ + { + "Position": { + "X": -158.1436, + "Y": -164.3197, + "Z": 241.5584 + }, + "MinimumAngle": 160, + "MaximumAngle": 265 + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 34838, + "Locations": [ + { + "Position": { + "X": 18.85102, + "Y": -161.2884, + "Z": 198.7801 + }, + "MinimumAngle": -25, + "MaximumAngle": 90 + }, + { + "Position": { + "X": 13.92384, + "Y": -157.3435, + "Z": 173.8837 + }, + "MinimumAngle": 80, + "MaximumAngle": 200 + } + ] + }, + { + "DataId": 34837, + "Locations": [ + { + "Position": { + "X": 10.11395, + "Y": -158.4485, + "Z": 184.592 + }, + "MinimumAngle": 35, + "MaximumAngle": 145 + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 34833, + "Locations": [ + { + "Position": { + "X": -57.64437, + "Y": -162.1818, + "Z": 12.93413 + }, + "MinimumAngle": -110, + "MaximumAngle": -5, + "MinimumDistance": 1.3, + "MaximumDistance": 3 + } + ] + }, + { + "DataId": 34834, + "Locations": [ + { + "Position": { + "X": -51.13529, + "Y": -163.5176, + "Z": 1.685887 + }, + "MinimumAngle": -155, + "MaximumAngle": 5 + }, + { + "Position": { + "X": -68.92974, + "Y": -160.1068, + "Z": 17.6384 + }, + "MinimumAngle": -65, + "MaximumAngle": 35 + } + ] + } + ] + } + ] +} diff --git a/QuestPaths/7.x - Dawntrail/Custom Deliveries/Nitowikwe/5239_Laying New Tracks.json b/QuestPaths/7.x - Dawntrail/Custom Deliveries/Nitowikwe/5239_Laying New Tracks.json new file mode 100644 index 000000000..50df1649b --- /dev/null +++ b/QuestPaths/7.x - Dawntrail/Custom Deliveries/Nitowikwe/5239_Laying New Tracks.json @@ -0,0 +1,85 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1048604, + "Position": { + "X": 36.75891, + "Y": -14.000003, + "Z": 57.694214 + }, + "TerritoryId": 1185, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Tuliyollal", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1051496, + "Position": { + "X": -84.42822, + "Y": 15.678356, + "Z": -242.17596 + }, + "TerritoryId": 1190, + "InteractionType": "Interact", + "AetheryteShortcut": "Shaaloani - Sheshenewezi Springs", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": -363.22934, + "Y": 20.162338, + "Z": -90.19407 + }, + "TerritoryId": 1190, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Shaaloani - Sheshenewezi Springs" + }, + { + "DataId": 1051495, + "Position": { + "X": -365.28577, + "Y": 20.14268, + "Z": -88.51758 + }, + "StopDistance": 5, + "TerritoryId": 1190, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1048605, + "Position": { + "X": -358.38867, + "Y": 19.728025, + "Z": -105.02789 + }, + "TerritoryId": 1190, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/7.x - Dawntrail/Custom Deliveries/Nitowikwe/S11_Nitowikwe.json b/QuestPaths/7.x - Dawntrail/Custom Deliveries/Nitowikwe/S11_Nitowikwe.json new file mode 100644 index 000000000..380eb1a00 --- /dev/null +++ b/QuestPaths/7.x - Dawntrail/Custom Deliveries/Nitowikwe/S11_Nitowikwe.json @@ -0,0 +1,59 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "TerritoryId": 962, + "InteractionType": "SwitchClass", + "TargetClass": "Blue Mage" + }, + { + "TerritoryId": 962, + "InteractionType": "Gather", + "ItemsToGather": [] + }, + { + "DataId": 1048605, + "Position": { + "X": -358.38867, + "Y": 19.728025, + "Z": -105.02789 + }, + "TerritoryId": 1190, + "InteractionType": "Interact", + "AetheryteShortcut": "Shaaloani - Sheshenewezi Springs", + "Fly": true, + "DialogueChoices": [ + { + "Type": "List", + "ExcelSheet": "custom/009/CtsSfsCharacter11_00909", + "Prompt": "TEXT_CTSSFSCHARACTER11_00909_TOPMENU_000_000", + "Answer": "TEXT_CTSSFSCHARACTER11_00909_TOPMENU_000_001", + "AnswerIsRegularExpression": true + } + ] + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "TerritoryId": 635, + "InteractionType": "None", + "DialogueChoices": [ + { + "Type": "List", + "ExcelSheet": "custom/007/CtsSfsCharacter8_00773", + "Prompt": "TEXT_CTSSFSCHARACTER8_00773_TOPMENU_000_000", + "Answer": "TEXT_CTSSFSCHARACTER8_00773_TOPMENU_000_004" + } + ] + } + ] + } + ] +} -- 2.45.2 From e3964cd6328f007502111cfe5b797e7bbaa12bcb Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Tue, 17 Dec 2024 19:41:11 +0100 Subject: [PATCH 328/448] Merge pull request 'friendly-patch-2' (#115) from Friendly/Questionable:friendly-patch-2 into master --- .../FSH/1107_Way of the Fisher.json | 135 ++++++++++-------- .../FSH/1108_My First Fishing Rod.json | 38 ++++- 2 files changed, 104 insertions(+), 69 deletions(-) diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/FSH/1107_Way of the Fisher.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/FSH/1107_Way of the Fisher.json index 5a771ddd7..e469fe0c9 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/FSH/1107_Way of the Fisher.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/FSH/1107_Way of the Fisher.json @@ -1,63 +1,72 @@ -{ - "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "Cacahuetes", - "QuestSequence": [ - { - "Sequence": 0, - "Steps": [ - { - "DataId": 1000859, - "Position": { - "X": -166.76587, - "Y": 4.5496645, - "Z": 150.04187 - }, - "TerritoryId": 129, - "InteractionType": "AcceptQuest", - "AetheryteShortcut": "Limsa Lominsa", - "AethernetShortcut": [ - "[Limsa Lominsa] Aetheryte Plaza", - "[Limsa Lominsa] Fishermens' Guild" - ], - "SkipConditions": { - "AetheryteShortcutIf": { - "InSameTerritory": true - } - } - } - ] - }, - { - "Sequence": 255, - "Steps": [ - { - "Position": { - "X": -167.60791, - "Y": 4.550005, - "Z": 165.35986 - }, - "TerritoryId": 129, - "InteractionType": "WalkTo" - }, - { - "DataId": 1000857, - "Position": { - "X": -165.27051, - "Y": 5.2500057, - "Z": 164.29382 - }, - "TerritoryId": 129, - "DialogueChoices": [ - { - "Type": "YesNo", - "Prompt": "TEXT_CLSFSH011_01107_Q1_000_001", - "Yes": true - } - ], - "InteractionType": "CompleteQuest", - "NextQuestId": 1108 - } - ] - } - ] -} +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Cacahuetes", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1000859, + "Position": { + "X": -166.76587, + "Y": 4.5496645, + "Z": 150.04187 + }, + "TerritoryId": 129, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] Fishermens' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": -168.20791, + "Y": 4.550005, + "Z": 167.85986 + }, + "TerritoryId": 129, + "InteractionType": "WalkTo" + }, + { + "Position": { + "X": -167.60791, + "Y": 4.550005, + "Z": 165.35986 + }, + "TerritoryId": 129, + "InteractionType": "WalkTo" + }, + { + "DataId": 1000857, + "Position": { + "X": -165.27051, + "Y": 5.2500057, + "Z": 164.29382 + }, + "TerritoryId": 129, + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_CLSFSH011_01107_Q1_000_001", + "Yes": true + } + ], + "InteractionType": "CompleteQuest", + "NextQuestId": 1108 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/FSH/1108_My First Fishing Rod.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/FSH/1108_My First Fishing Rod.json index c994aadd7..857262b53 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/FSH/1108_My First Fishing Rod.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/FSH/1108_My First Fishing Rod.json @@ -1,6 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "Cacahuetes", + "Author": ["Cacahuetes", "Friendly"], "QuestSequence": [ { "Sequence": 0, @@ -13,9 +13,9 @@ "StepIf": { "Item": { "NotInInventory": true - } - } - } + } + } + } }, { "TerritoryId": 129, @@ -36,6 +36,33 @@ { "Sequence": 255, "Steps": [ + { + "DataId": 1001016, + "Position": { + "X": -42.679565, + "Y": 39.999947, + "Z": 119.920654 + }, + "TerritoryId": 128, + "InteractionType": "PurchaseItem", + "AethernetShortcut": [ + "[Limsa Lominsa] Fishermens' Guild", + "[Limsa Lominsa] The Aftcastle" + ], + "PurchaseMenu": { + "ExcelSheet": "GilShop", + "Key": 262186 + }, + "ItemId": 4870, + "ItemCount": 5, + "SkipConditions": { + "StepIf": { + "Item": { + "NotInInventory": false + } + } + } + }, { "DataId": 1000857, "Position": { @@ -50,8 +77,7 @@ "[Limsa Lominsa] Fishermens' Guild" ], "NextQuestId": 3843, - "Disabled": true, - "Comment": "Catch/turn in fish manually" + "Comment": "Complete quest" } ] } -- 2.45.2 From 403b3ff8a4e2db03623c7e7882c1004dc22f0545 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Tue, 17 Dec 2024 19:52:05 +0100 Subject: [PATCH 329/448] Version bump --- Directory.Build.targets | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Directory.Build.targets b/Directory.Build.targets index 6759af62c..5b421e209 100644 --- a/Directory.Build.targets +++ b/Directory.Build.targets @@ -1,5 +1,5 @@ - 4.8 + 4.9 -- 2.45.2 From 967100f323fbdb084d3831e3c20727ee8033b42f Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Wed, 18 Dec 2024 01:14:14 +0100 Subject: [PATCH 330/448] Add skip teleport condition to the final step of Vanu Vanu dailies --- .../Dailies/2171_Veni, Vundu, Vici.json | 15 +- .../Dailies/2172_Pussyfooting About.json | 15 +- .../2174_Pilfering Pots from the Pantry.json | 15 +- .../Dailies/2176_Water Crystal Waltz.json | 15 +- .../Dailies/2177_Hard-boiled Hustle.json | 15 +- .../Vanu Vanu/Dailies/2179_Bird Watching.json | 15 +- .../Dailies/2180_Comb and Get It.json | 37 +- .../Dailies/2181_The Binding Soil.json | 343 +++++++++--------- .../Dailies/2182_Flight of the Midges.json | 3 +- .../2183_Fishing in Troubled Waters.json | 17 +- .../Dailies/2184_Reeling in the Vundu.json | 3 +- .../Vanu Vanu/Dailies/2185_Nailed Down.json | 41 ++- .../2186_The House That Ginu Built.json | 23 +- .../Dailies/2187_A Bone to Pick.json | 23 +- .../Dailies/2188_A Hut to Dye For.json | 15 +- .../Dailies/2189_Shady Premonitions.json | 15 +- .../Dailies/2190_Pestered Ancestors.json | 15 +- .../2192_Gaelicat's Out of the Bag.json | 15 +- .../Dailies/2193_Rotten to the Korrigan.json | 15 +- .../Dailies/2194_Gastornis Groove.json | 15 +- .../Dailies/2195_The Cat's Meow.json | 15 +- .../Dailies/2196_Easy as Paissa.json | 15 +- .../Dailies/2197_Dance Commander.json | 15 +- .../Dailies/2198_Electric Gunduloo.json | 15 +- .../Dailies/2199_Wildwort and Sundrop.json | 15 +- 25 files changed, 543 insertions(+), 202 deletions(-) diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2171_Veni, Vundu, Vici.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2171_Veni, Vundu, Vici.json index f29907ea0..a9e5bdf47 100644 --- a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2171_Veni, Vundu, Vici.json +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2171_Veni, Vundu, Vici.json @@ -83,7 +83,20 @@ "TerritoryId": 401, "InteractionType": "CompleteQuest", "AetheryteShortcut": "The Sea of Clouds - Ok' Zundu", - "Fly": true + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": -799.46594, + "Y": -133.2695, + "Z": -404.1352 + }, + "TerritoryId": 401, + "MaximumDistance": 50 + } + } + } } ] } diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2172_Pussyfooting About.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2172_Pussyfooting About.json index 7fd649f63..fab39d1f3 100644 --- a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2172_Pussyfooting About.json +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2172_Pussyfooting About.json @@ -102,7 +102,20 @@ "TerritoryId": 401, "InteractionType": "CompleteQuest", "AetheryteShortcut": "The Sea of Clouds - Ok' Zundu", - "Fly": true + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": -799.46594, + "Y": -133.2695, + "Z": -404.1352 + }, + "TerritoryId": 401, + "MaximumDistance": 50 + } + } + } } ] } diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2174_Pilfering Pots from the Pantry.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2174_Pilfering Pots from the Pantry.json index 3f77742a7..e0e53c3ea 100644 --- a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2174_Pilfering Pots from the Pantry.json +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2174_Pilfering Pots from the Pantry.json @@ -111,7 +111,20 @@ "TerritoryId": 401, "InteractionType": "CompleteQuest", "Fly": true, - "AetheryteShortcut": "The Sea of Clouds - Ok' Zundu" + "AetheryteShortcut": "The Sea of Clouds - Ok' Zundu", + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": -799.46594, + "Y": -133.2695, + "Z": -404.1352 + }, + "TerritoryId": 401, + "MaximumDistance": 50 + } + } + } } ] } diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2176_Water Crystal Waltz.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2176_Water Crystal Waltz.json index af39207ce..1dec596e0 100644 --- a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2176_Water Crystal Waltz.json +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2176_Water Crystal Waltz.json @@ -153,7 +153,20 @@ "TerritoryId": 401, "InteractionType": "CompleteQuest", "Fly": true, - "AetheryteShortcut": "The Sea of Clouds - Ok' Zundu" + "AetheryteShortcut": "The Sea of Clouds - Ok' Zundu", + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": -799.46594, + "Y": -133.2695, + "Z": -404.1352 + }, + "TerritoryId": 401, + "MaximumDistance": 50 + } + } + } } ] } diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2177_Hard-boiled Hustle.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2177_Hard-boiled Hustle.json index fbf0dbc51..6f3feb4ea 100644 --- a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2177_Hard-boiled Hustle.json +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2177_Hard-boiled Hustle.json @@ -92,7 +92,20 @@ "TerritoryId": 401, "InteractionType": "CompleteQuest", "AetheryteShortcut": "The Sea of Clouds - Ok' Zundu", - "Fly": true + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": -799.46594, + "Y": -133.2695, + "Z": -404.1352 + }, + "TerritoryId": 401, + "MaximumDistance": 50 + } + } + } } ] } diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2179_Bird Watching.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2179_Bird Watching.json index a376c0107..4a67d5475 100644 --- a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2179_Bird Watching.json +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2179_Bird Watching.json @@ -96,7 +96,20 @@ "TerritoryId": 401, "InteractionType": "CompleteQuest", "Fly": true, - "AetheryteShortcut": "The Sea of Clouds - Ok' Zundu" + "AetheryteShortcut": "The Sea of Clouds - Ok' Zundu", + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": -799.46594, + "Y": -133.2695, + "Z": -404.1352 + }, + "TerritoryId": 401, + "MaximumDistance": 50 + } + } + } } ] } diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2180_Comb and Get It.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2180_Comb and Get It.json index b97fd2b03..7d939a2e6 100644 --- a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2180_Comb and Get It.json +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2180_Comb and Get It.json @@ -30,7 +30,16 @@ "TerritoryId": 401, "InteractionType": "Interact", "Fly": true, - "RequiredQuestVariables": [null, null, [16], null, null, null] + "RequiredQuestVariables": [ + null, + null, + [ + 16 + ], + null, + null, + null + ] }, { "DataId": 2006761, @@ -42,7 +51,16 @@ "TerritoryId": 401, "InteractionType": "Interact", "Fly": true, - "RequiredQuestVariables": [null, null, [32], null, null, null] + "RequiredQuestVariables": [ + null, + null, + [ + 32 + ], + null, + null, + null + ] } ] }, @@ -60,9 +78,20 @@ "InteractionType": "Combat", "EnemySpawnType": "AfterItemUse", "ItemId": 2001941, - "KillEnemyDataIds": [5238], + "KillEnemyDataIds": [ + 5238 + ], "Fly": true, - "RequiredQuestVariables": [null, [1], null, null, null, null] + "RequiredQuestVariables": [ + null, + [ + 1 + ], + null, + null, + null, + null + ] } ] }, diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2181_The Binding Soil.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2181_The Binding Soil.json index 455b2b116..052e28acd 100644 --- a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2181_The Binding Soil.json +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2181_The Binding Soil.json @@ -1,169 +1,182 @@ { - "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "AnimaMachinae", - "QuestSequence": [ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "AnimaMachinae", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ { - "Sequence": 0, - "Steps": [ - { - "DataId": 1016089, - "Position": { - "X": -799.46594, - "Y": -133.2695, - "Z": -404.1352 - }, - "TerritoryId": 401, - "InteractionType": "AcceptQuest" - } - ] - }, - { - "Sequence": 1, - "Steps": [ - { - "DataId": 1016091, - "Position": { - "X": -804.25726, - "Y": -133.2695, - "Z": -390.89038 - }, - "TerritoryId": 401, - "InteractionType": "Interact" - } - ] - }, - { - "Sequence": 2, - "Steps": [ - { - "DataId": 2006705, - "Position": { - "X": -356.1914, - "Y": -153.21588, - "Z": 246.23486 - }, - "TerritoryId": 401, - "InteractionType": "Interact", - "AetheryteShortcut": "The Sea of Clouds - Camp Cloudtop", - "Fly": true, - "$": "QW: 1 0 16 0 0 2", - "CompletionQuestVariablesFlags": [ - null, - null, - null, - null, - null, - 2 - ] - }, - { - "DataId": 2006706, - "Position": { - "X": -292.34766, - "Y": -142.2904, - "Z": 325.91736 - }, - "TerritoryId": 401, - "InteractionType": "Interact", - "Fly": true, - "$": "QW: 2 0 32 0 0 3", - "CompletionQuestVariablesFlags": [ - null, - null, - null, - null, - null, - 1 - ] - }, - { - "DataId": 2006704, - "Position": { - "X": -281.11694, - "Y": -133.13501, - "Z": 345.2964 - }, - "TerritoryId": 401, - "InteractionType": "Interact", - "$": "QW: 19 0 48 0 0 7", - "CompletionQuestVariablesFlags": [ - null, - null, - null, - null, - null, - 4 - ] - }, - { - "DataId": 2006670, - "Position": { - "X": 165.85034, - "Y": -86.13721, - "Z": 415.94556 - }, - "TerritoryId": 401, - "InteractionType": "Interact", - "Fly": true, - "$": "QW: 19 17 48 0 0 39", - "CompletionQuestVariablesFlags": [ - null, - null, - null, - null, - null, - 32 - ] - }, - { - "DataId": 2006669, - "Position": { - "X": 282.88696, - "Y": -82.26141, - "Z": 366.07922 - }, - "TerritoryId": 401, - "InteractionType": "Interact", - "Fly": true, - "$": "QW: 19 34 48 0 0 103", - "CompletionQuestVariablesFlags": [ - null, - null, - null, - null, - null, - 64 - ] - }, - { - "DataId": 2006671, - "Position": { - "X": 129.8695, - "Y": -92.17981, - "Z": 293.11047 - }, - "TerritoryId": 401, - "InteractionType": "Interact", - "Fly": true - } - ] - }, - { - "Sequence": 255, - "Steps": [ - { - "DataId": 1016091, - "Position": { - "X": -804.25726, - "Y": -133.2695, - "Z": -390.89038 - }, - "TerritoryId": 401, - "InteractionType": "CompleteQuest", - "Fly": true, - "AetheryteShortcut": "The Sea of Clouds - Ok' Zundu" - } - ] + "DataId": 1016089, + "Position": { + "X": -799.46594, + "Y": -133.2695, + "Z": -404.1352 + }, + "TerritoryId": 401, + "InteractionType": "AcceptQuest" } - ] + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1016091, + "Position": { + "X": -804.25726, + "Y": -133.2695, + "Z": -390.89038 + }, + "TerritoryId": 401, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2006705, + "Position": { + "X": -356.1914, + "Y": -153.21588, + "Z": 246.23486 + }, + "TerritoryId": 401, + "InteractionType": "Interact", + "AetheryteShortcut": "The Sea of Clouds - Camp Cloudtop", + "Fly": true, + "$": "QW: 1 0 16 0 0 2", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 2 + ] + }, + { + "DataId": 2006706, + "Position": { + "X": -292.34766, + "Y": -142.2904, + "Z": 325.91736 + }, + "TerritoryId": 401, + "InteractionType": "Interact", + "Fly": true, + "$": "QW: 2 0 32 0 0 3", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 1 + ] + }, + { + "DataId": 2006704, + "Position": { + "X": -281.11694, + "Y": -133.13501, + "Z": 345.2964 + }, + "TerritoryId": 401, + "InteractionType": "Interact", + "$": "QW: 19 0 48 0 0 7", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 4 + ] + }, + { + "DataId": 2006670, + "Position": { + "X": 165.85034, + "Y": -86.13721, + "Z": 415.94556 + }, + "TerritoryId": 401, + "InteractionType": "Interact", + "Fly": true, + "$": "QW: 19 17 48 0 0 39", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, + { + "DataId": 2006669, + "Position": { + "X": 282.88696, + "Y": -82.26141, + "Z": 366.07922 + }, + "TerritoryId": 401, + "InteractionType": "Interact", + "Fly": true, + "$": "QW: 19 34 48 0 0 103", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 2006671, + "Position": { + "X": 129.8695, + "Y": -92.17981, + "Z": 293.11047 + }, + "TerritoryId": 401, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1016091, + "Position": { + "X": -804.25726, + "Y": -133.2695, + "Z": -390.89038 + }, + "TerritoryId": 401, + "InteractionType": "CompleteQuest", + "Fly": true, + "AetheryteShortcut": "The Sea of Clouds - Ok' Zundu", + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": -799.46594, + "Y": -133.2695, + "Z": -404.1352 + }, + "TerritoryId": 401, + "MaximumDistance": 50 + } + } + } + } + ] + } + ] } diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2182_Flight of the Midges.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2182_Flight of the Midges.json index a16378107..d187b9229 100644 --- a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2182_Flight of the Midges.json +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2182_Flight of the Midges.json @@ -151,8 +151,7 @@ }, "TerritoryId": 401, "InteractionType": "CompleteQuest", - "AetheryteShortcut": "The Sea of Clouds - Ok' Zundu", - "Fly": true + "AetheryteShortcut": "The Sea of Clouds - Ok' Zundu" } ] } diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2183_Fishing in Troubled Waters.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2183_Fishing in Troubled Waters.json index 427d674dc..be60dbded 100644 --- a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2183_Fishing in Troubled Waters.json +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2183_Fishing in Troubled Waters.json @@ -98,9 +98,22 @@ "TerritoryId": 401, "InteractionType": "CompleteQuest", "AetheryteShortcut": "The Sea of Clouds - Ok' Zundu", - "Fly": true + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": -799.46594, + "Y": -133.2695, + "Z": -404.1352 + }, + "TerritoryId": 401, + "MaximumDistance": 50 + } + } + } } ] } ] -} \ No newline at end of file +} diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2184_Reeling in the Vundu.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2184_Reeling in the Vundu.json index 519ff60b4..e8451c176 100644 --- a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2184_Reeling in the Vundu.json +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2184_Reeling in the Vundu.json @@ -114,8 +114,7 @@ }, "TerritoryId": 401, "InteractionType": "CompleteQuest", - "AetheryteShortcut": "The Sea of Clouds - Ok' Zundu", - "Fly": true + "AetheryteShortcut": "The Sea of Clouds - Ok' Zundu" } ] } diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2185_Nailed Down.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2185_Nailed Down.json index 0cb06ebf9..35bdfcb10 100644 --- a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2185_Nailed Down.json +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2185_Nailed Down.json @@ -46,7 +46,16 @@ "TerritoryId": 401, "InteractionType": "Interact", "Fly": true, - "RequiredQuestVariables": [null, null, [16], null, null, null] + "RequiredQuestVariables": [ + null, + null, + [ + 16 + ], + null, + null, + null + ] }, { "DataId": 2006762, @@ -58,7 +67,16 @@ "TerritoryId": 401, "InteractionType": "Interact", "Fly": true, - "RequiredQuestVariables": [null, null, [32], null, null, null] + "RequiredQuestVariables": [ + null, + null, + [ + 32 + ], + null, + null, + null + ] } ] }, @@ -76,7 +94,9 @@ "InteractionType": "Combat", "EnemySpawnType": "AfterItemUse", "ItemId": 2001912, - "KillEnemyDataIds": [5240], + "KillEnemyDataIds": [ + 5240 + ], "Fly": true } ] @@ -111,7 +131,20 @@ "TerritoryId": 401, "InteractionType": "CompleteQuest", "AetheryteShortcut": "The Sea of Clouds - Ok' Zundu", - "Fly": true + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": -799.46594, + "Y": -133.2695, + "Z": -404.1352 + }, + "TerritoryId": 401, + "MaximumDistance": 50 + } + } + } } ] } diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2186_The House That Ginu Built.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2186_The House That Ginu Built.json index 61adcd396..5ddb49c81 100644 --- a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2186_The House That Ginu Built.json +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2186_The House That Ginu Built.json @@ -46,7 +46,9 @@ "TerritoryId": 401, "InteractionType": "Combat", "EnemySpawnType": "AfterInteraction", - "KillEnemyDataIds": [5241], + "KillEnemyDataIds": [ + 5241 + ], "Fly": true }, { @@ -59,7 +61,9 @@ "TerritoryId": 401, "InteractionType": "Combat", "EnemySpawnType": "AfterInteraction", - "KillEnemyDataIds": [5241], + "KillEnemyDataIds": [ + 5241 + ], "Fly": true } ] @@ -77,7 +81,20 @@ "TerritoryId": 401, "InteractionType": "CompleteQuest", "AetheryteShortcut": "The Sea of Clouds - Ok' Zundu", - "Fly": true + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": -799.46594, + "Y": -133.2695, + "Z": -404.1352 + }, + "TerritoryId": 401, + "MaximumDistance": 50 + } + } + } } ] } diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2187_A Bone to Pick.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2187_A Bone to Pick.json index d21382b9c..ec9e71f34 100644 --- a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2187_A Bone to Pick.json +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2187_A Bone to Pick.json @@ -46,7 +46,9 @@ "TerritoryId": 401, "InteractionType": "Combat", "EnemySpawnType": "AfterInteraction", - "KillEnemyDataIds": [5242], + "KillEnemyDataIds": [ + 5242 + ], "AetheryteShortcut": "The Sea of Clouds - Camp Cloudtop", "Fly": true } @@ -65,7 +67,9 @@ "TerritoryId": 401, "InteractionType": "Combat", "EnemySpawnType": "AfterInteraction", - "KillEnemyDataIds": [5242], + "KillEnemyDataIds": [ + 5242 + ], "Fly": true } ] @@ -83,7 +87,20 @@ "TerritoryId": 401, "InteractionType": "CompleteQuest", "AetheryteShortcut": "The Sea of Clouds - Ok' Zundu", - "Fly": true + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": -799.46594, + "Y": -133.2695, + "Z": -404.1352 + }, + "TerritoryId": 401, + "MaximumDistance": 50 + } + } + } } ] } diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2188_A Hut to Dye For.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2188_A Hut to Dye For.json index 935cc0a3d..df5c14080 100644 --- a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2188_A Hut to Dye For.json +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2188_A Hut to Dye For.json @@ -104,7 +104,20 @@ "TerritoryId": 401, "InteractionType": "CompleteQuest", "AetheryteShortcut": "The Sea of Clouds - Ok' Zundu", - "Fly": true + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": -799.46594, + "Y": -133.2695, + "Z": -404.1352 + }, + "TerritoryId": 401, + "MaximumDistance": 50 + } + } + } } ] } diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2189_Shady Premonitions.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2189_Shady Premonitions.json index 3f662fcbb..9a8a261b3 100644 --- a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2189_Shady Premonitions.json +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2189_Shady Premonitions.json @@ -130,7 +130,20 @@ "TerritoryId": 401, "InteractionType": "CompleteQuest", "Fly": true, - "AetheryteShortcut": "The Sea of Clouds - Ok' Zundu" + "AetheryteShortcut": "The Sea of Clouds - Ok' Zundu", + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": -799.46594, + "Y": -133.2695, + "Z": -404.1352 + }, + "TerritoryId": 401, + "MaximumDistance": 50 + } + } + } } ] } diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2190_Pestered Ancestors.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2190_Pestered Ancestors.json index b41fc640d..8ca2d27b0 100644 --- a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2190_Pestered Ancestors.json +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2190_Pestered Ancestors.json @@ -78,7 +78,20 @@ "TerritoryId": 401, "InteractionType": "CompleteQuest", "Fly": true, - "AetheryteShortcut": "The Sea of Clouds - Ok' Zundu" + "AetheryteShortcut": "The Sea of Clouds - Ok' Zundu", + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": -799.46594, + "Y": -133.2695, + "Z": -404.1352 + }, + "TerritoryId": 401, + "MaximumDistance": 50 + } + } + } } ] } diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2192_Gaelicat's Out of the Bag.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2192_Gaelicat's Out of the Bag.json index 8130733f4..dbac11cf4 100644 --- a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2192_Gaelicat's Out of the Bag.json +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2192_Gaelicat's Out of the Bag.json @@ -152,7 +152,20 @@ "TerritoryId": 401, "InteractionType": "CompleteQuest", "AetheryteShortcut": "The Sea of Clouds - Ok' Zundu", - "Fly": true + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": -799.46594, + "Y": -133.2695, + "Z": -404.1352 + }, + "TerritoryId": 401, + "MaximumDistance": 50 + } + } + } } ] } diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2193_Rotten to the Korrigan.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2193_Rotten to the Korrigan.json index 7ef4cfad7..baee5a47c 100644 --- a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2193_Rotten to the Korrigan.json +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2193_Rotten to the Korrigan.json @@ -128,7 +128,20 @@ "TerritoryId": 401, "InteractionType": "CompleteQuest", "Fly": true, - "AetheryteShortcut": "The Sea of Clouds - Ok' Zundu" + "AetheryteShortcut": "The Sea of Clouds - Ok' Zundu", + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": -799.46594, + "Y": -133.2695, + "Z": -404.1352 + }, + "TerritoryId": 401, + "MaximumDistance": 50 + } + } + } } ] } diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2194_Gastornis Groove.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2194_Gastornis Groove.json index b4f3da2d3..abdb363c6 100644 --- a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2194_Gastornis Groove.json +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2194_Gastornis Groove.json @@ -85,7 +85,20 @@ "TerritoryId": 401, "InteractionType": "CompleteQuest", "Fly": true, - "AetheryteShortcut": "The Sea of Clouds - Ok' Zundu" + "AetheryteShortcut": "The Sea of Clouds - Ok' Zundu", + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": -799.46594, + "Y": -133.2695, + "Z": -404.1352 + }, + "TerritoryId": 401, + "MaximumDistance": 50 + } + } + } } ] } diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2195_The Cat's Meow.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2195_The Cat's Meow.json index 11808e110..2c6666b61 100644 --- a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2195_The Cat's Meow.json +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2195_The Cat's Meow.json @@ -101,7 +101,20 @@ "TerritoryId": 401, "InteractionType": "CompleteQuest", "AetheryteShortcut": "The Sea of Clouds - Ok' Zundu", - "Fly": true + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": -799.46594, + "Y": -133.2695, + "Z": -404.1352 + }, + "TerritoryId": 401, + "MaximumDistance": 50 + } + } + } } ] } diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2196_Easy as Paissa.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2196_Easy as Paissa.json index 5a4d3f28b..895fe62ee 100644 --- a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2196_Easy as Paissa.json +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2196_Easy as Paissa.json @@ -78,7 +78,20 @@ "TerritoryId": 401, "InteractionType": "CompleteQuest", "AetheryteShortcut": "The Sea of Clouds - Ok' Zundu", - "Fly": true + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": -799.46594, + "Y": -133.2695, + "Z": -404.1352 + }, + "TerritoryId": 401, + "MaximumDistance": 50 + } + } + } } ] } diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2197_Dance Commander.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2197_Dance Commander.json index fbbafa26a..78718d952 100644 --- a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2197_Dance Commander.json +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2197_Dance Commander.json @@ -108,7 +108,20 @@ "TerritoryId": 401, "InteractionType": "CompleteQuest", "AetheryteShortcut": "The Sea of Clouds - Ok' Zundu", - "Fly": true + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": -799.46594, + "Y": -133.2695, + "Z": -404.1352 + }, + "TerritoryId": 401, + "MaximumDistance": 50 + } + } + } } ] } diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2198_Electric Gunduloo.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2198_Electric Gunduloo.json index e6d8e71b5..7d6d05eea 100644 --- a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2198_Electric Gunduloo.json +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2198_Electric Gunduloo.json @@ -99,7 +99,20 @@ "TerritoryId": 401, "InteractionType": "CompleteQuest", "AetheryteShortcut": "The Sea of Clouds - Ok' Zundu", - "Fly": true + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": -799.46594, + "Y": -133.2695, + "Z": -404.1352 + }, + "TerritoryId": 401, + "MaximumDistance": 50 + } + } + } } ] } diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2199_Wildwort and Sundrop.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2199_Wildwort and Sundrop.json index 31fe70057..a97ec9b51 100644 --- a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2199_Wildwort and Sundrop.json +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2199_Wildwort and Sundrop.json @@ -95,7 +95,20 @@ "TerritoryId": 401, "InteractionType": "CompleteQuest", "AetheryteShortcut": "The Sea of Clouds - Ok' Zundu", - "Fly": true + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": -799.46594, + "Y": -133.2695, + "Z": -404.1352 + }, + "TerritoryId": 401, + "MaximumDistance": 50 + } + } + } } ] } -- 2.45.2 From 752a8256c6e22783d5f7b9a73f88258fed0f8ac2 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Wed, 18 Dec 2024 01:27:37 +0100 Subject: [PATCH 331/448] Add skip teleport condition to the final step of Vath dailies --- .../Vath/Dailies/2264_Too Much to Bear.json | 15 ++++++++++++++- .../Dailies/2265_The Foodstuff of Champions.json | 15 ++++++++++++++- .../Vath/Dailies/2266_A Long Shot.json | 15 ++++++++++++++- .../Dailies/2267_Where the Silver Dew Grows.json | 15 ++++++++++++++- .../Vath/Dailies/2270_At Full Pelt.json | 15 ++++++++++++++- .../Vath/Dailies/2271_Failure to Deliver.json | 15 ++++++++++++++- .../Vath/Dailies/2279_Neighborhood Squabbles.json | 15 ++++++++++++++- 7 files changed, 98 insertions(+), 7 deletions(-) diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2264_Too Much to Bear.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2264_Too Much to Bear.json index 898f4c5ad..babc3c57a 100644 --- a/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2264_Too Much to Bear.json +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2264_Too Much to Bear.json @@ -71,7 +71,20 @@ "TerritoryId": 398, "InteractionType": "WalkTo", "Fly": true, - "AetheryteShortcut": "The Dravanian Forelands - Anyx Trine" + "AetheryteShortcut": "The Dravanian Forelands - Anyx Trine", + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": 66.20886, + "Y": -49.2817, + "Z": -159.44159 + }, + "TerritoryId": 398, + "MaximumDistance": 30 + } + } + } }, { "DataId": 1016803, diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2265_The Foodstuff of Champions.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2265_The Foodstuff of Champions.json index effa35f5f..3bb187093 100644 --- a/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2265_The Foodstuff of Champions.json +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2265_The Foodstuff of Champions.json @@ -100,7 +100,20 @@ "TerritoryId": 398, "InteractionType": "WalkTo", "Fly": true, - "AetheryteShortcut": "The Dravanian Forelands - Anyx Trine" + "AetheryteShortcut": "The Dravanian Forelands - Anyx Trine", + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": 66.20886, + "Y": -49.2817, + "Z": -159.44159 + }, + "TerritoryId": 398, + "MaximumDistance": 30 + } + } + } }, { "DataId": 1016803, diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2266_A Long Shot.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2266_A Long Shot.json index 1922f2a44..712e657d8 100644 --- a/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2266_A Long Shot.json +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2266_A Long Shot.json @@ -100,7 +100,20 @@ "TerritoryId": 398, "InteractionType": "WalkTo", "Fly": true, - "AetheryteShortcut": "The Dravanian Forelands - Anyx Trine" + "AetheryteShortcut": "The Dravanian Forelands - Anyx Trine", + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": 66.20886, + "Y": -49.2817, + "Z": -159.44159 + }, + "TerritoryId": 398, + "MaximumDistance": 30 + } + } + } }, { "DataId": 1016803, diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2267_Where the Silver Dew Grows.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2267_Where the Silver Dew Grows.json index f45c4d727..906390072 100644 --- a/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2267_Where the Silver Dew Grows.json +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2267_Where the Silver Dew Grows.json @@ -82,7 +82,20 @@ "TerritoryId": 398, "InteractionType": "WalkTo", "Fly": true, - "AetheryteShortcut": "The Dravanian Forelands - Anyx Trine" + "AetheryteShortcut": "The Dravanian Forelands - Anyx Trine", + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": 66.20886, + "Y": -49.2817, + "Z": -159.44159 + }, + "TerritoryId": 398, + "MaximumDistance": 30 + } + } + } }, { "DataId": 1016803, diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2270_At Full Pelt.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2270_At Full Pelt.json index af0f9f2da..17b794330 100644 --- a/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2270_At Full Pelt.json +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2270_At Full Pelt.json @@ -155,7 +155,20 @@ "TerritoryId": 398, "InteractionType": "WalkTo", "Fly": true, - "AetheryteShortcut": "The Dravanian Forelands - Anyx Trine" + "AetheryteShortcut": "The Dravanian Forelands - Anyx Trine", + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": 66.20886, + "Y": -49.2817, + "Z": -159.44159 + }, + "TerritoryId": 398, + "MaximumDistance": 30 + } + } + } }, { "DataId": 1016803, diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2271_Failure to Deliver.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2271_Failure to Deliver.json index 12263f4d8..21c2a6019 100644 --- a/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2271_Failure to Deliver.json +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2271_Failure to Deliver.json @@ -106,7 +106,20 @@ "TerritoryId": 398, "InteractionType": "WalkTo", "Fly": true, - "AetheryteShortcut": "The Dravanian Forelands - Anyx Trine" + "AetheryteShortcut": "The Dravanian Forelands - Anyx Trine", + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": 66.20886, + "Y": -49.2817, + "Z": -159.44159 + }, + "TerritoryId": 398, + "MaximumDistance": 30 + } + } + } }, { "DataId": 1016803, diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2279_Neighborhood Squabbles.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2279_Neighborhood Squabbles.json index 072e6d39f..db7788aec 100644 --- a/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2279_Neighborhood Squabbles.json +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2279_Neighborhood Squabbles.json @@ -82,7 +82,20 @@ "TerritoryId": 398, "InteractionType": "WalkTo", "Fly": true, - "AetheryteShortcut": "The Dravanian Forelands - Anyx Trine" + "AetheryteShortcut": "The Dravanian Forelands - Anyx Trine", + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": 66.20886, + "Y": -49.2817, + "Z": -159.44159 + }, + "TerritoryId": 398, + "MaximumDistance": 30 + } + } + } }, { "DataId": 1016803, -- 2.45.2 From 5b681dabfa0e5bf10f117cc2846630333a169716 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Wed, 18 Dec 2024 01:59:45 +0100 Subject: [PATCH 332/448] Add moogle quest templates --- .../Dailies/2290_With a Little Help.json | 52 +++++++ .../Dailies/2291_Hasty Conclusions.json | 52 +++++++ .../2292_A Fundamentally Important Task.json | 52 +++++++ .../Dailies/2293_Deep into the Weeds.json | 52 +++++++ .../Dailies/2294_Moogle on the Wall.json | 52 +++++++ .../Dailies/2295_Kupo for Kupo Nuts.json | 52 +++++++ .../Dailies/2296_Work That Mallow.json | 52 +++++++ .../Dailies/2297_A Little Pick-me-up.json | 52 +++++++ .../Moogles/Dailies/2298_A Fine Finish.json | 52 +++++++ .../Dailies/2299_The Mining Mishap.json | 52 +++++++ .../Dailies/2300_Stumbling Blocks.json | 52 +++++++ .../Dailies/2301_Tricks without Treats.json | 52 +++++++ .../Dailies/2302_For Moogles in Peril.json | 52 +++++++ .../Moogles/Dailies/2303_The Negotiator.json | 52 +++++++ .../2304_Back to the Drawing Board.json | 52 +++++++ .../Moogles/Dailies/2305_Built to Last.json | 52 +++++++ .../Dailies/2306_Let There Be Light.json | 52 +++++++ .../Dailies/2307_Rare Refreshments.json | 52 +++++++ .../Dailies/2308_A Stone's Throw Away.json | 52 +++++++ .../Dailies/2309_A Revivifying Roar.json | 52 +++++++ .../2310_Journey of a Thousand Hews.json | 52 +++++++ .../Moogles/Dailies/2311_Ship of Dreams.json | 52 +++++++ .../2312_Stirring by Sternutation.json | 104 +++++++++++++ .../2313_Dragon Draff for Their Behalf.json | 127 ++++++++++++++++ .../Dailies/2314_A Fish for His Favors.json | 141 ++++++++++++++++++ .../Moogles/Dailies/2315_From Lax to Max.json | 52 +++++++ .../Dailies/2316_An Ishgardian Treat.json | 52 +++++++ .../Moogles/Dailies/2317_Mine and Craft.json | 52 +++++++ .../Dailies/2318_The Moogle Motivator.json | 52 +++++++ .../Dailies/2319_Tremble Finishing.json | 52 +++++++ QuestPaths/quest-v1.json | 1 + .../Questing/Converter/ActionConverter.cs | 1 + Questionable.Model/Questing/EAction.cs | 2 + Questionable/Data/AlliedSocietyData.cs | 7 + 34 files changed, 1787 insertions(+) create mode 100644 QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2290_With a Little Help.json create mode 100644 QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2291_Hasty Conclusions.json create mode 100644 QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2292_A Fundamentally Important Task.json create mode 100644 QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2293_Deep into the Weeds.json create mode 100644 QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2294_Moogle on the Wall.json create mode 100644 QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2295_Kupo for Kupo Nuts.json create mode 100644 QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2296_Work That Mallow.json create mode 100644 QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2297_A Little Pick-me-up.json create mode 100644 QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2298_A Fine Finish.json create mode 100644 QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2299_The Mining Mishap.json create mode 100644 QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2300_Stumbling Blocks.json create mode 100644 QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2301_Tricks without Treats.json create mode 100644 QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2302_For Moogles in Peril.json create mode 100644 QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2303_The Negotiator.json create mode 100644 QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2304_Back to the Drawing Board.json create mode 100644 QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2305_Built to Last.json create mode 100644 QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2306_Let There Be Light.json create mode 100644 QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2307_Rare Refreshments.json create mode 100644 QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2308_A Stone's Throw Away.json create mode 100644 QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2309_A Revivifying Roar.json create mode 100644 QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2310_Journey of a Thousand Hews.json create mode 100644 QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2311_Ship of Dreams.json create mode 100644 QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2312_Stirring by Sternutation.json create mode 100644 QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2313_Dragon Draff for Their Behalf.json create mode 100644 QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2314_A Fish for His Favors.json create mode 100644 QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2315_From Lax to Max.json create mode 100644 QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2316_An Ishgardian Treat.json create mode 100644 QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2317_Mine and Craft.json create mode 100644 QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2318_The Moogle Motivator.json create mode 100644 QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2319_Tremble Finishing.json diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2290_With a Little Help.json b/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2290_With a Little Help.json new file mode 100644 index 000000000..1a867f707 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2290_With a Little Help.json @@ -0,0 +1,52 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "Disabled": true, + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1017171, + "Position": { + "X": -335.56116, + "Y": 59.003433, + "Z": 313.98486 + }, + "TerritoryId": 400, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1017171, + "Position": { + "X": -335.56116, + "Y": 59.003433, + "Z": 313.98486 + }, + "TerritoryId": 400, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "The Churning Mists - Zenith", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": -335.56116, + "Y": 59.003433, + "Z": 313.98486 + }, + "TerritoryId": 400, + "MaximumDistance": 50 + } + } + } + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2291_Hasty Conclusions.json b/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2291_Hasty Conclusions.json new file mode 100644 index 000000000..1a867f707 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2291_Hasty Conclusions.json @@ -0,0 +1,52 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "Disabled": true, + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1017171, + "Position": { + "X": -335.56116, + "Y": 59.003433, + "Z": 313.98486 + }, + "TerritoryId": 400, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1017171, + "Position": { + "X": -335.56116, + "Y": 59.003433, + "Z": 313.98486 + }, + "TerritoryId": 400, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "The Churning Mists - Zenith", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": -335.56116, + "Y": 59.003433, + "Z": 313.98486 + }, + "TerritoryId": 400, + "MaximumDistance": 50 + } + } + } + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2292_A Fundamentally Important Task.json b/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2292_A Fundamentally Important Task.json new file mode 100644 index 000000000..1a867f707 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2292_A Fundamentally Important Task.json @@ -0,0 +1,52 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "Disabled": true, + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1017171, + "Position": { + "X": -335.56116, + "Y": 59.003433, + "Z": 313.98486 + }, + "TerritoryId": 400, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1017171, + "Position": { + "X": -335.56116, + "Y": 59.003433, + "Z": 313.98486 + }, + "TerritoryId": 400, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "The Churning Mists - Zenith", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": -335.56116, + "Y": 59.003433, + "Z": 313.98486 + }, + "TerritoryId": 400, + "MaximumDistance": 50 + } + } + } + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2293_Deep into the Weeds.json b/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2293_Deep into the Weeds.json new file mode 100644 index 000000000..1a867f707 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2293_Deep into the Weeds.json @@ -0,0 +1,52 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "Disabled": true, + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1017171, + "Position": { + "X": -335.56116, + "Y": 59.003433, + "Z": 313.98486 + }, + "TerritoryId": 400, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1017171, + "Position": { + "X": -335.56116, + "Y": 59.003433, + "Z": 313.98486 + }, + "TerritoryId": 400, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "The Churning Mists - Zenith", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": -335.56116, + "Y": 59.003433, + "Z": 313.98486 + }, + "TerritoryId": 400, + "MaximumDistance": 50 + } + } + } + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2294_Moogle on the Wall.json b/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2294_Moogle on the Wall.json new file mode 100644 index 000000000..1a867f707 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2294_Moogle on the Wall.json @@ -0,0 +1,52 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "Disabled": true, + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1017171, + "Position": { + "X": -335.56116, + "Y": 59.003433, + "Z": 313.98486 + }, + "TerritoryId": 400, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1017171, + "Position": { + "X": -335.56116, + "Y": 59.003433, + "Z": 313.98486 + }, + "TerritoryId": 400, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "The Churning Mists - Zenith", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": -335.56116, + "Y": 59.003433, + "Z": 313.98486 + }, + "TerritoryId": 400, + "MaximumDistance": 50 + } + } + } + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2295_Kupo for Kupo Nuts.json b/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2295_Kupo for Kupo Nuts.json new file mode 100644 index 000000000..1a867f707 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2295_Kupo for Kupo Nuts.json @@ -0,0 +1,52 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "Disabled": true, + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1017171, + "Position": { + "X": -335.56116, + "Y": 59.003433, + "Z": 313.98486 + }, + "TerritoryId": 400, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1017171, + "Position": { + "X": -335.56116, + "Y": 59.003433, + "Z": 313.98486 + }, + "TerritoryId": 400, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "The Churning Mists - Zenith", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": -335.56116, + "Y": 59.003433, + "Z": 313.98486 + }, + "TerritoryId": 400, + "MaximumDistance": 50 + } + } + } + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2296_Work That Mallow.json b/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2296_Work That Mallow.json new file mode 100644 index 000000000..1a867f707 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2296_Work That Mallow.json @@ -0,0 +1,52 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "Disabled": true, + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1017171, + "Position": { + "X": -335.56116, + "Y": 59.003433, + "Z": 313.98486 + }, + "TerritoryId": 400, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1017171, + "Position": { + "X": -335.56116, + "Y": 59.003433, + "Z": 313.98486 + }, + "TerritoryId": 400, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "The Churning Mists - Zenith", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": -335.56116, + "Y": 59.003433, + "Z": 313.98486 + }, + "TerritoryId": 400, + "MaximumDistance": 50 + } + } + } + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2297_A Little Pick-me-up.json b/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2297_A Little Pick-me-up.json new file mode 100644 index 000000000..1a867f707 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2297_A Little Pick-me-up.json @@ -0,0 +1,52 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "Disabled": true, + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1017171, + "Position": { + "X": -335.56116, + "Y": 59.003433, + "Z": 313.98486 + }, + "TerritoryId": 400, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1017171, + "Position": { + "X": -335.56116, + "Y": 59.003433, + "Z": 313.98486 + }, + "TerritoryId": 400, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "The Churning Mists - Zenith", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": -335.56116, + "Y": 59.003433, + "Z": 313.98486 + }, + "TerritoryId": 400, + "MaximumDistance": 50 + } + } + } + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2298_A Fine Finish.json b/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2298_A Fine Finish.json new file mode 100644 index 000000000..1a867f707 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2298_A Fine Finish.json @@ -0,0 +1,52 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "Disabled": true, + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1017171, + "Position": { + "X": -335.56116, + "Y": 59.003433, + "Z": 313.98486 + }, + "TerritoryId": 400, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1017171, + "Position": { + "X": -335.56116, + "Y": 59.003433, + "Z": 313.98486 + }, + "TerritoryId": 400, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "The Churning Mists - Zenith", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": -335.56116, + "Y": 59.003433, + "Z": 313.98486 + }, + "TerritoryId": 400, + "MaximumDistance": 50 + } + } + } + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2299_The Mining Mishap.json b/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2299_The Mining Mishap.json new file mode 100644 index 000000000..1a867f707 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2299_The Mining Mishap.json @@ -0,0 +1,52 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "Disabled": true, + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1017171, + "Position": { + "X": -335.56116, + "Y": 59.003433, + "Z": 313.98486 + }, + "TerritoryId": 400, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1017171, + "Position": { + "X": -335.56116, + "Y": 59.003433, + "Z": 313.98486 + }, + "TerritoryId": 400, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "The Churning Mists - Zenith", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": -335.56116, + "Y": 59.003433, + "Z": 313.98486 + }, + "TerritoryId": 400, + "MaximumDistance": 50 + } + } + } + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2300_Stumbling Blocks.json b/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2300_Stumbling Blocks.json new file mode 100644 index 000000000..1a867f707 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2300_Stumbling Blocks.json @@ -0,0 +1,52 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "Disabled": true, + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1017171, + "Position": { + "X": -335.56116, + "Y": 59.003433, + "Z": 313.98486 + }, + "TerritoryId": 400, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1017171, + "Position": { + "X": -335.56116, + "Y": 59.003433, + "Z": 313.98486 + }, + "TerritoryId": 400, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "The Churning Mists - Zenith", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": -335.56116, + "Y": 59.003433, + "Z": 313.98486 + }, + "TerritoryId": 400, + "MaximumDistance": 50 + } + } + } + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2301_Tricks without Treats.json b/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2301_Tricks without Treats.json new file mode 100644 index 000000000..1a867f707 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2301_Tricks without Treats.json @@ -0,0 +1,52 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "Disabled": true, + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1017171, + "Position": { + "X": -335.56116, + "Y": 59.003433, + "Z": 313.98486 + }, + "TerritoryId": 400, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1017171, + "Position": { + "X": -335.56116, + "Y": 59.003433, + "Z": 313.98486 + }, + "TerritoryId": 400, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "The Churning Mists - Zenith", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": -335.56116, + "Y": 59.003433, + "Z": 313.98486 + }, + "TerritoryId": 400, + "MaximumDistance": 50 + } + } + } + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2302_For Moogles in Peril.json b/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2302_For Moogles in Peril.json new file mode 100644 index 000000000..1a867f707 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2302_For Moogles in Peril.json @@ -0,0 +1,52 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "Disabled": true, + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1017171, + "Position": { + "X": -335.56116, + "Y": 59.003433, + "Z": 313.98486 + }, + "TerritoryId": 400, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1017171, + "Position": { + "X": -335.56116, + "Y": 59.003433, + "Z": 313.98486 + }, + "TerritoryId": 400, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "The Churning Mists - Zenith", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": -335.56116, + "Y": 59.003433, + "Z": 313.98486 + }, + "TerritoryId": 400, + "MaximumDistance": 50 + } + } + } + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2303_The Negotiator.json b/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2303_The Negotiator.json new file mode 100644 index 000000000..1a867f707 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2303_The Negotiator.json @@ -0,0 +1,52 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "Disabled": true, + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1017171, + "Position": { + "X": -335.56116, + "Y": 59.003433, + "Z": 313.98486 + }, + "TerritoryId": 400, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1017171, + "Position": { + "X": -335.56116, + "Y": 59.003433, + "Z": 313.98486 + }, + "TerritoryId": 400, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "The Churning Mists - Zenith", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": -335.56116, + "Y": 59.003433, + "Z": 313.98486 + }, + "TerritoryId": 400, + "MaximumDistance": 50 + } + } + } + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2304_Back to the Drawing Board.json b/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2304_Back to the Drawing Board.json new file mode 100644 index 000000000..1a867f707 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2304_Back to the Drawing Board.json @@ -0,0 +1,52 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "Disabled": true, + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1017171, + "Position": { + "X": -335.56116, + "Y": 59.003433, + "Z": 313.98486 + }, + "TerritoryId": 400, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1017171, + "Position": { + "X": -335.56116, + "Y": 59.003433, + "Z": 313.98486 + }, + "TerritoryId": 400, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "The Churning Mists - Zenith", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": -335.56116, + "Y": 59.003433, + "Z": 313.98486 + }, + "TerritoryId": 400, + "MaximumDistance": 50 + } + } + } + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2305_Built to Last.json b/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2305_Built to Last.json new file mode 100644 index 000000000..1a867f707 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2305_Built to Last.json @@ -0,0 +1,52 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "Disabled": true, + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1017171, + "Position": { + "X": -335.56116, + "Y": 59.003433, + "Z": 313.98486 + }, + "TerritoryId": 400, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1017171, + "Position": { + "X": -335.56116, + "Y": 59.003433, + "Z": 313.98486 + }, + "TerritoryId": 400, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "The Churning Mists - Zenith", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": -335.56116, + "Y": 59.003433, + "Z": 313.98486 + }, + "TerritoryId": 400, + "MaximumDistance": 50 + } + } + } + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2306_Let There Be Light.json b/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2306_Let There Be Light.json new file mode 100644 index 000000000..1a867f707 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2306_Let There Be Light.json @@ -0,0 +1,52 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "Disabled": true, + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1017171, + "Position": { + "X": -335.56116, + "Y": 59.003433, + "Z": 313.98486 + }, + "TerritoryId": 400, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1017171, + "Position": { + "X": -335.56116, + "Y": 59.003433, + "Z": 313.98486 + }, + "TerritoryId": 400, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "The Churning Mists - Zenith", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": -335.56116, + "Y": 59.003433, + "Z": 313.98486 + }, + "TerritoryId": 400, + "MaximumDistance": 50 + } + } + } + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2307_Rare Refreshments.json b/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2307_Rare Refreshments.json new file mode 100644 index 000000000..1a867f707 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2307_Rare Refreshments.json @@ -0,0 +1,52 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "Disabled": true, + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1017171, + "Position": { + "X": -335.56116, + "Y": 59.003433, + "Z": 313.98486 + }, + "TerritoryId": 400, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1017171, + "Position": { + "X": -335.56116, + "Y": 59.003433, + "Z": 313.98486 + }, + "TerritoryId": 400, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "The Churning Mists - Zenith", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": -335.56116, + "Y": 59.003433, + "Z": 313.98486 + }, + "TerritoryId": 400, + "MaximumDistance": 50 + } + } + } + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2308_A Stone's Throw Away.json b/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2308_A Stone's Throw Away.json new file mode 100644 index 000000000..1a867f707 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2308_A Stone's Throw Away.json @@ -0,0 +1,52 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "Disabled": true, + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1017171, + "Position": { + "X": -335.56116, + "Y": 59.003433, + "Z": 313.98486 + }, + "TerritoryId": 400, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1017171, + "Position": { + "X": -335.56116, + "Y": 59.003433, + "Z": 313.98486 + }, + "TerritoryId": 400, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "The Churning Mists - Zenith", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": -335.56116, + "Y": 59.003433, + "Z": 313.98486 + }, + "TerritoryId": 400, + "MaximumDistance": 50 + } + } + } + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2309_A Revivifying Roar.json b/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2309_A Revivifying Roar.json new file mode 100644 index 000000000..1a867f707 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2309_A Revivifying Roar.json @@ -0,0 +1,52 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "Disabled": true, + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1017171, + "Position": { + "X": -335.56116, + "Y": 59.003433, + "Z": 313.98486 + }, + "TerritoryId": 400, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1017171, + "Position": { + "X": -335.56116, + "Y": 59.003433, + "Z": 313.98486 + }, + "TerritoryId": 400, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "The Churning Mists - Zenith", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": -335.56116, + "Y": 59.003433, + "Z": 313.98486 + }, + "TerritoryId": 400, + "MaximumDistance": 50 + } + } + } + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2310_Journey of a Thousand Hews.json b/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2310_Journey of a Thousand Hews.json new file mode 100644 index 000000000..1a867f707 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2310_Journey of a Thousand Hews.json @@ -0,0 +1,52 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "Disabled": true, + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1017171, + "Position": { + "X": -335.56116, + "Y": 59.003433, + "Z": 313.98486 + }, + "TerritoryId": 400, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1017171, + "Position": { + "X": -335.56116, + "Y": 59.003433, + "Z": 313.98486 + }, + "TerritoryId": 400, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "The Churning Mists - Zenith", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": -335.56116, + "Y": 59.003433, + "Z": 313.98486 + }, + "TerritoryId": 400, + "MaximumDistance": 50 + } + } + } + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2311_Ship of Dreams.json b/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2311_Ship of Dreams.json new file mode 100644 index 000000000..1a867f707 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2311_Ship of Dreams.json @@ -0,0 +1,52 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "Disabled": true, + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1017171, + "Position": { + "X": -335.56116, + "Y": 59.003433, + "Z": 313.98486 + }, + "TerritoryId": 400, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1017171, + "Position": { + "X": -335.56116, + "Y": 59.003433, + "Z": 313.98486 + }, + "TerritoryId": 400, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "The Churning Mists - Zenith", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": -335.56116, + "Y": 59.003433, + "Z": 313.98486 + }, + "TerritoryId": 400, + "MaximumDistance": 50 + } + } + } + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2312_Stirring by Sternutation.json b/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2312_Stirring by Sternutation.json new file mode 100644 index 000000000..4578eab11 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2312_Stirring by Sternutation.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": 1017171, + "Position": { + "X": -335.56116, + "Y": 59.003433, + "Z": 313.98486 + }, + "TerritoryId": 400, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1017322, + "Position": { + "X": -331.5633, + "Y": 58.823204, + "Z": 323.17078 + }, + "TerritoryId": 400, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2007279, + "Position": { + "X": -491.63043, + "Y": 37.369263, + "Z": 158.95312 + }, + "TerritoryId": 400, + "InteractionType": "Action", + "Action": "Seed", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2007280, + "Position": { + "X": -380.2091, + "Y": 39.871826, + "Z": -23.819397 + }, + "TerritoryId": 400, + "InteractionType": "Action", + "Action": "Seed", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 2007281, + "Position": { + "X": -52.323242, + "Y": 81.80359, + "Z": -116.258545 + }, + "TerritoryId": 400, + "InteractionType": "Action", + "Action": "Seed", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1017171, + "Position": { + "X": -335.56116, + "Y": 59.003433, + "Z": 313.98486 + }, + "TerritoryId": 400, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "The Churning Mists - Zenith", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2313_Dragon Draff for Their Behalf.json b/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2313_Dragon Draff for Their Behalf.json new file mode 100644 index 000000000..764cfac7c --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2313_Dragon Draff for Their Behalf.json @@ -0,0 +1,127 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1017171, + "Position": { + "X": -335.56116, + "Y": 59.003433, + "Z": 313.98486 + }, + "TerritoryId": 400, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": -841.98883, + "Y": 32.499996, + "Z": 479.86572 + }, + "TerritoryId": 400, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 1017453, + "Position": { + "X": -840.8484, + "Y": 32.5, + "Z": 481.43726 + }, + "TerritoryId": 400, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2007256, + "Position": { + "X": -846.79944, + "Y": 34.01233, + "Z": 476.92053 + }, + "TerritoryId": 400, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1017453, + "Position": { + "X": -840.8484, + "Y": 32.5, + "Z": 481.43726 + }, + "TerritoryId": 400, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "TerritoryId": 400, + "InteractionType": "Craft", + "ItemId": 15741, + "ItemCount": 3 + }, + { + "DataId": 1017549, + "Position": { + "X": -836.9116, + "Y": 35.219498, + "Z": 457.6637 + }, + "TerritoryId": 400, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1017171, + "Position": { + "X": -335.56116, + "Y": 59.003433, + "Z": 313.98486 + }, + "TerritoryId": 400, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "The Churning Mists - Zenith", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": -335.56116, + "Y": 59.003433, + "Z": 313.98486 + }, + "TerritoryId": 400, + "MaximumDistance": 50 + } + } + } + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2314_A Fish for His Favors.json b/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2314_A Fish for His Favors.json new file mode 100644 index 000000000..348ecba42 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2314_A Fish for His Favors.json @@ -0,0 +1,141 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1017171, + "Position": { + "X": -335.56116, + "Y": 59.003433, + "Z": 313.98486 + }, + "TerritoryId": 400, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": -0.5671045, + "Y": -23.618042, + "Z": 144.09882 + }, + "TerritoryId": 400, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 1017455, + "Position": { + "X": -1.7548828, + "Y": -23.618038, + "Z": 144.64026 + }, + "TerritoryId": 400, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1017351, + "Position": { + "X": -74.87604, + "Y": -8.172172, + "Z": 158.70898 + }, + "TerritoryId": 400, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "TerritoryId": 400, + "InteractionType": "Craft", + "ItemId": 15742, + "ItemCount": 1 + }, + { + "Position": { + "X": -0.5671045, + "Y": -23.618042, + "Z": 144.09882 + }, + "TerritoryId": 400, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 1017455, + "Position": { + "X": -1.7548828, + "Y": -23.618038, + "Z": 144.64026 + }, + "TerritoryId": 400, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1017456, + "Position": { + "X": -152.02563, + "Y": 160.94061, + "Z": -770.50433 + }, + "TerritoryId": 400, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1017470, + "Position": { + "X": -353.53632, + "Y": 60.896175, + "Z": 299.61084 + }, + "TerritoryId": 400, + "InteractionType": "Interact", + "AetheryteShortcut": "The Churning Mists - Zenith", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1017171, + "Position": { + "X": -335.56116, + "Y": 59.003433, + "Z": 313.98486 + }, + "TerritoryId": 400, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2315_From Lax to Max.json b/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2315_From Lax to Max.json new file mode 100644 index 000000000..1a867f707 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2315_From Lax to Max.json @@ -0,0 +1,52 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "Disabled": true, + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1017171, + "Position": { + "X": -335.56116, + "Y": 59.003433, + "Z": 313.98486 + }, + "TerritoryId": 400, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1017171, + "Position": { + "X": -335.56116, + "Y": 59.003433, + "Z": 313.98486 + }, + "TerritoryId": 400, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "The Churning Mists - Zenith", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": -335.56116, + "Y": 59.003433, + "Z": 313.98486 + }, + "TerritoryId": 400, + "MaximumDistance": 50 + } + } + } + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2316_An Ishgardian Treat.json b/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2316_An Ishgardian Treat.json new file mode 100644 index 000000000..1a867f707 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2316_An Ishgardian Treat.json @@ -0,0 +1,52 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "Disabled": true, + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1017171, + "Position": { + "X": -335.56116, + "Y": 59.003433, + "Z": 313.98486 + }, + "TerritoryId": 400, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1017171, + "Position": { + "X": -335.56116, + "Y": 59.003433, + "Z": 313.98486 + }, + "TerritoryId": 400, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "The Churning Mists - Zenith", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": -335.56116, + "Y": 59.003433, + "Z": 313.98486 + }, + "TerritoryId": 400, + "MaximumDistance": 50 + } + } + } + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2317_Mine and Craft.json b/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2317_Mine and Craft.json new file mode 100644 index 000000000..1a867f707 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2317_Mine and Craft.json @@ -0,0 +1,52 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "Disabled": true, + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1017171, + "Position": { + "X": -335.56116, + "Y": 59.003433, + "Z": 313.98486 + }, + "TerritoryId": 400, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1017171, + "Position": { + "X": -335.56116, + "Y": 59.003433, + "Z": 313.98486 + }, + "TerritoryId": 400, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "The Churning Mists - Zenith", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": -335.56116, + "Y": 59.003433, + "Z": 313.98486 + }, + "TerritoryId": 400, + "MaximumDistance": 50 + } + } + } + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2318_The Moogle Motivator.json b/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2318_The Moogle Motivator.json new file mode 100644 index 000000000..1a867f707 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2318_The Moogle Motivator.json @@ -0,0 +1,52 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "Disabled": true, + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1017171, + "Position": { + "X": -335.56116, + "Y": 59.003433, + "Z": 313.98486 + }, + "TerritoryId": 400, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1017171, + "Position": { + "X": -335.56116, + "Y": 59.003433, + "Z": 313.98486 + }, + "TerritoryId": 400, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "The Churning Mists - Zenith", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": -335.56116, + "Y": 59.003433, + "Z": 313.98486 + }, + "TerritoryId": 400, + "MaximumDistance": 50 + } + } + } + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2319_Tremble Finishing.json b/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2319_Tremble Finishing.json new file mode 100644 index 000000000..1a867f707 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2319_Tremble Finishing.json @@ -0,0 +1,52 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "Disabled": true, + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1017171, + "Position": { + "X": -335.56116, + "Y": 59.003433, + "Z": 313.98486 + }, + "TerritoryId": 400, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1017171, + "Position": { + "X": -335.56116, + "Y": 59.003433, + "Z": 313.98486 + }, + "TerritoryId": 400, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "The Churning Mists - Zenith", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": -335.56116, + "Y": 59.003433, + "Z": 313.98486 + }, + "TerritoryId": 400, + "MaximumDistance": 50 + } + } + } + } + ] + } + ] +} diff --git a/QuestPaths/quest-v1.json b/QuestPaths/quest-v1.json index af5811474..6922167e7 100644 --- a/QuestPaths/quest-v1.json +++ b/QuestPaths/quest-v1.json @@ -957,6 +957,7 @@ "Buffet (Griffin)", "Trample", "Fumigate", + "Seed", "Inhale", "Siphon Snout", "Peculiar Light", diff --git a/Questionable.Model/Questing/Converter/ActionConverter.cs b/Questionable.Model/Questing/Converter/ActionConverter.cs index ed2f8be23..141e4f2ef 100644 --- a/Questionable.Model/Questing/Converter/ActionConverter.cs +++ b/Questionable.Model/Questing/Converter/ActionConverter.cs @@ -27,6 +27,7 @@ public sealed class ActionConverter() : EnumConverter(Values) { EAction.BuffetGriffin, "Buffet (Griffin)" }, { EAction.Trample, "Trample" }, { EAction.Fumigate, "Fumigate" }, + { EAction.Seed, "Seed" }, { EAction.Inhale, "Inhale" }, { EAction.SiphonSnout, "Siphon Snout" }, { EAction.PeculiarLight, "Peculiar Light" }, diff --git a/Questionable.Model/Questing/EAction.cs b/Questionable.Model/Questing/EAction.cs index 3b328872e..1b23da040 100644 --- a/Questionable.Model/Questing/EAction.cs +++ b/Questionable.Model/Questing/EAction.cs @@ -26,6 +26,7 @@ public enum EAction BuffetGriffin = 4583, Trample = 4585, Fumigate = 5872, + Seed = 6294, MagitekPulse = 8624, MagitekThunder = 8625, Inhale = 10013, @@ -78,6 +79,7 @@ public static class EActionExtensions or EAction.BuffetGriffin or EAction.Trample or EAction.Fumigate + or EAction.Seed or EAction.Inhale or EAction.SiphonSnout or EAction.PeculiarLight diff --git a/Questionable/Data/AlliedSocietyData.cs b/Questionable/Data/AlliedSocietyData.cs index 3c39dfdb6..0ac4db072 100644 --- a/Questionable/Data/AlliedSocietyData.cs +++ b/Questionable/Data/AlliedSocietyData.cs @@ -15,6 +15,7 @@ internal sealed class AlliedSocietyData { { 66, new(1016093, EAetheryteLocation.SeaOfCloudsOkZundu) }, { 79, new(1017031, EAetheryteLocation.DravanianForelandsAnyxTrine) }, + { 89, new(1017322, EAetheryteLocation.ChurningMistsZenith) }, { 369, new(1051798, EAetheryteLocation.KozamaukaDockPoga) }, }.AsReadOnly(); @@ -26,6 +27,7 @@ internal sealed class AlliedSocietyData { >= 2171 and <= 2200 => EAlliedSociety.VanuVanu, >= 2261 and <= 2280 => EAlliedSociety.Vath, + >= 2290 and <= 2319 => EAlliedSociety.Moogles, >= 5199 and <= 5226 => EAlliedSociety.Pelupelu, _ => EAlliedSociety.None, }; @@ -46,6 +48,11 @@ internal sealed class AlliedSocietyData normalNpcs = []; mountNpcs = [1017031]; } + else if (alliedSociety == EAlliedSociety.Moogles) + { + normalNpcs = []; + mountNpcs = [1017322]; + } else { normalNpcs = []; -- 2.45.2 From 98b538f0ab3360153242154ce4b623fb8ce72c73 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Wed, 18 Dec 2024 02:05:05 +0100 Subject: [PATCH 333/448] Use DailyQuestSeed from clientstructs --- Questionable/Functions/AlliedSocietyQuestFunctions.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Questionable/Functions/AlliedSocietyQuestFunctions.cs b/Questionable/Functions/AlliedSocietyQuestFunctions.cs index af6f5eab3..db21ea742 100644 --- a/Questionable/Functions/AlliedSocietyQuestFunctions.cs +++ b/Questionable/Functions/AlliedSocietyQuestFunctions.cs @@ -46,7 +46,7 @@ internal sealed class AlliedSocietyQuestFunctions return []; bool rankedUp = (rankData & 0x80) != 0; - byte seed = Marshal.ReadByte((nint)QuestManager.Instance() + 0x698); // TODO Use clientstructs + byte seed = QuestManager.Instance()->DailyQuestSeed; List result = []; foreach (NpcData npcData in _questsByAlliedSociety[alliedSociety]) { -- 2.45.2 From eef6c620a78ce10145cda7e02717921e5c8bbf53 Mon Sep 17 00:00:00 2001 From: pot0to <19513249+pot0to@users.noreply.github.com> Date: Tue, 17 Dec 2024 18:36:17 -0800 Subject: [PATCH 334/448] added missing kojin quest --- .../Dailies/3002_Disciplinary Action.json | 175 ++++++++++++++++++ 1 file changed, 175 insertions(+) create mode 100644 QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/3002_Disciplinary Action.json diff --git a/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/3002_Disciplinary Action.json b/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/3002_Disciplinary Action.json new file mode 100644 index 000000000..26da42f41 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Allied Societies/Kojin/Dailies/3002_Disciplinary Action.json @@ -0,0 +1,175 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "pot0to", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1024217, + "Position": { + "X": 394.39978, + "Y": -119.58932, + "Z": -232.28815 + }, + "TerritoryId": 613, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 8250, + "Position": { + "X": 429.41656, + "Y": -0.5, + "Z": 506.90598 + }, + "TerritoryId": 613, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [ 8250 ], + "Fly": true, + "CombatItemUse": { + "Condition": "Incapacitated", + "ItemId": 2002424 + }, + "RequiredQuestVariables": [ + null, + null, + null, + [ 17, 18, 21, 23, 24, 26, 33, 34, 37, 39, 40, 42, 49, 50, 53, 55, 56, 58 ], + null, + null + ] + }, + { + "DataId": 8250, + "Position": { + "X": 253.2539, + "Y": -0.5, + "Z": 479.6062 + }, + "TerritoryId": 613, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [ 8250 ], + "Fly": true, + "CombatItemUse": { + "Condition": "Incapacitated", + "ItemId": 2002424 + }, + "RequiredQuestVariables": [ + null, + null, + null, + [ 17, 19, 22, 24, 25, 26, 33, 35, 38, 40, 41, 42, 49, 51, 54, 56, 57, 58 ], + null, + null + ] + }, + { + "DataId": 8250, + "Position": { + "X": 94.01074, + "Y": -0.5, + "Z": 491.844 + }, + "TerritoryId": 613, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [ 8250 ], + "Fly": true, + "CombatItemUse": { + "Condition": "Incapacitated", + "ItemId": 2002424 + }, + "RequiredQuestVariables": [ + null, + null, + null, + [ 18, 19, 20, 21, 22, 24, 34, 35, 36, 37, 38, 40, 50, 51, 52, 53, 54, 56 ], + null, + null + ] + }, + { + "Position": { + "X": -192.0653, + "Y": -0.5, + "Z": 628.25964 + }, + "TerritoryId": 613, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [ 8250 ], + "Fly": true, + "CombatItemUse": { + "Condition": "Incapacitated", + "ItemId": 2002424 + }, + "RequiredQuestVariables": [ + null, + null, + null, + [ 17, 20, 21, 22, 23, 25, 33, 36, 37, 38, 39, 41, 49, 52, 53, 54, 55, 57 ], + null, + null + ] + }, + { + "Position": { + "X": -370.41278, + "Y": -0.5, + "Z": 863.64526 + }, + "TerritoryId": 613, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [ 8250 ], + "Fly": true, + "CombatItemUse": { + "Condition": "Incapacitated", + "ItemId": 2002424 + }, + "RequiredQuestVariables": [ + null, + null, + null, + [ 18, 19, 20, 23, 25, 26, 34, 35, 36, 39, 41, 42, 50, 51, 52, 55, 57, 58 ], + null, + null + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": 392.55026, + "Y": -119.58932, + "Z": -234.19606 + }, + "TerritoryId": 613, + "InteractionType": "WalkTo", + "Fly": true, + "AetheryteShortcut": "Ruby Sea - Tamamizu" + }, + { + "DataId": 1024217, + "Position": { + "X": 394.39978, + "Y": -119.58932, + "Z": -232.28815 + }, + "TerritoryId": 613, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} -- 2.45.2 From 8cfaf9a9c9c1e271d1b8871a7e3e45dee7bd5257 Mon Sep 17 00:00:00 2001 From: pot0to <19513249+pot0to@users.noreply.github.com> Date: Tue, 17 Dec 2024 18:36:45 -0800 Subject: [PATCH 335/448] enabling one of liza's quests --- .../Dwarves/Dailies/3906_The Telltale Axles.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/QuestPaths/5.x - Shadowbringers/Allied Societies/Dwarves/Dailies/3906_The Telltale Axles.json b/QuestPaths/5.x - Shadowbringers/Allied Societies/Dwarves/Dailies/3906_The Telltale Axles.json index 1e279138a..50594af7b 100644 --- a/QuestPaths/5.x - Shadowbringers/Allied Societies/Dwarves/Dailies/3906_The Telltale Axles.json +++ b/QuestPaths/5.x - Shadowbringers/Allied Societies/Dwarves/Dailies/3906_The Telltale Axles.json @@ -1,7 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", - "Disabled": true, "QuestSequence": [ { "Sequence": 0, @@ -59,7 +58,8 @@ "Z": -551.7815 }, "TerritoryId": 813, - "InteractionType": "Interact" + "InteractionType": "Interact", + "Fly": true } ] }, -- 2.45.2 From d2dbd4a522b4c8b1430ed64569ea62843e96b31d Mon Sep 17 00:00:00 2001 From: pot0to <19513249+pot0to@users.noreply.github.com> Date: Tue, 17 Dec 2024 18:41:26 -0800 Subject: [PATCH 336/448] another dwarves quest --- .../Dailies/3907_A Blueprint a Day.json | 26 +++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/QuestPaths/5.x - Shadowbringers/Allied Societies/Dwarves/Dailies/3907_A Blueprint a Day.json b/QuestPaths/5.x - Shadowbringers/Allied Societies/Dwarves/Dailies/3907_A Blueprint a Day.json index 24aad0b4b..794b7bb08 100644 --- a/QuestPaths/5.x - Shadowbringers/Allied Societies/Dwarves/Dailies/3907_A Blueprint a Day.json +++ b/QuestPaths/5.x - Shadowbringers/Allied Societies/Dwarves/Dailies/3907_A Blueprint a Day.json @@ -1,7 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "liza", - "Disabled": true, + "Author": "pot0to", "QuestSequence": [ { "Sequence": 0, @@ -30,11 +29,34 @@ { "Sequence": 1, "Steps": [ + { + "DataId": 1034115, + "Position": { + "X": 732.3567, + "Y": 21.798542, + "Z": -77.62268 + }, + "TerritoryId": 813, + "InteractionType": "Interact", + "Fly": true, + "AetheryteShortcut": "Lakeland - Fort Jobb", + "SkipConditions": { + "AetheryteShortcutIf": { + "AetheryteLocked": "Lakeland - Fort Jobb" + } + } + } ] }, { "Sequence": 255, "Steps": [ + { + "TerritoryId": 813, + "InteractionType": "Craft", + "ItemId": 31155, + "ItemCount": 2 + }, { "Position": { "X": -615.73865, -- 2.45.2 From 8a92048e64b54c45c41cb0c8f115458e5c80a2bd Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Wed, 18 Dec 2024 21:13:04 +0100 Subject: [PATCH 337/448] Add HW BRD quests --- .../BRD/1713_On the Road Again.json | 3 +- .../BRD/1714_The Stiff and the Spent.json | 113 +++++++++ .../Class Quests/BRD/1715_Requiem on Ice.json | 160 ++++++++++++ .../BRD/1716_When Gnaths Cry.json | 84 +++++++ .../BRD/1717_A Saint of Song.json | 234 ++++++++++++++++++ .../BRD/1718_The Ballad of Oblivion.json | 152 ++++++++++++ QuestPaths/quest-v1.json | 3 +- .../Questing/Converter/EmoteConverter.cs | 1 + Questionable.Model/Questing/EEmote.cs | 1 + 9 files changed, 749 insertions(+), 2 deletions(-) create mode 100644 QuestPaths/3.x - Heavensward/Class Quests/BRD/1714_The Stiff and the Spent.json create mode 100644 QuestPaths/3.x - Heavensward/Class Quests/BRD/1715_Requiem on Ice.json create mode 100644 QuestPaths/3.x - Heavensward/Class Quests/BRD/1716_When Gnaths Cry.json create mode 100644 QuestPaths/3.x - Heavensward/Class Quests/BRD/1717_A Saint of Song.json create mode 100644 QuestPaths/3.x - Heavensward/Class Quests/BRD/1718_The Ballad of Oblivion.json diff --git a/QuestPaths/3.x - Heavensward/Class Quests/BRD/1713_On the Road Again.json b/QuestPaths/3.x - Heavensward/Class Quests/BRD/1713_On the Road Again.json index e09b86132..284e7a3c7 100644 --- a/QuestPaths/3.x - Heavensward/Class Quests/BRD/1713_On the Road Again.json +++ b/QuestPaths/3.x - Heavensward/Class Quests/BRD/1713_On the Road Again.json @@ -191,7 +191,8 @@ "AetheryteShortcutIf": { "InSameTerritory": true } - } + }, + "NextQuestId": 1714 } ] } diff --git a/QuestPaths/3.x - Heavensward/Class Quests/BRD/1714_The Stiff and the Spent.json b/QuestPaths/3.x - Heavensward/Class Quests/BRD/1714_The Stiff and the Spent.json new file mode 100644 index 000000000..985d6e2da --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Class Quests/BRD/1714_The Stiff and the Spent.json @@ -0,0 +1,113 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1014208, + "Position": { + "X": -52.536804, + "Y": 8.059147, + "Z": 31.72351 + }, + "StopDistance": 7, + "TerritoryId": 418, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ishgard", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1014215, + "Position": { + "X": 446.4026, + "Y": 212.53983, + "Z": 697.444 + }, + "TerritoryId": 397, + "InteractionType": "Interact", + "AetheryteShortcut": "Coerthas Western Highlands - Falcon's Nest" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1014217, + "Position": { + "X": 59.128662, + "Y": 101.451355, + "Z": -50.797363 + }, + "TerritoryId": 397, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2006300, + "Position": { + "X": 66.11731, + "Y": 103.86804, + "Z": -127.03143 + }, + "TerritoryId": 397, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 4680 + ], + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1014218, + "Position": { + "X": 58.76245, + "Y": 101.43757, + "Z": -51.682373 + }, + "TerritoryId": 397, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1014216, + "Position": { + "X": 445.365, + "Y": 212.53983, + "Z": 699.7938 + }, + "TerritoryId": 397, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Coerthas Western Highlands - Falcon's Nest", + "NextQuestId": 1715 + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Class Quests/BRD/1715_Requiem on Ice.json b/QuestPaths/3.x - Heavensward/Class Quests/BRD/1715_Requiem on Ice.json new file mode 100644 index 000000000..c2b652b8d --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Class Quests/BRD/1715_Requiem on Ice.json @@ -0,0 +1,160 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1014216, + "Position": { + "X": 445.365, + "Y": 212.53983, + "Z": 699.7938 + }, + "TerritoryId": 397, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Coerthas Western Highlands - Falcon's Nest", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1014227, + "Position": { + "X": -294.27026, + "Y": 125.76025, + "Z": -15.152283 + }, + "TerritoryId": 397, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1014233, + "Position": { + "X": -299.12268, + "Y": 126.35769, + "Z": -8.682434 + }, + "StopDistance": 7, + "TerritoryId": 397, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1014246, + "Position": { + "X": -429.8009, + "Y": 92.59371, + "Z": -509.4225 + }, + "TerritoryId": 397, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 2006301, + "Position": { + "X": -778.0118, + "Y": 112.01648, + "Z": -580.52954 + }, + "TerritoryId": 397, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 4487 + ], + "Fly": true + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1014230, + "Position": { + "X": -753.93304, + "Y": 103.917046, + "Z": -467.1855 + }, + "TerritoryId": 397, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1014242, + "Position": { + "X": -750.9728, + "Y": 103.93008, + "Z": -465.4765 + }, + "StopDistance": 4.5, + "TerritoryId": 397, + "InteractionType": "Emote", + "Emote": "salute" + } + ] + }, + { + "Sequence": 7, + "Steps": [ + { + "DataId": 1014230, + "Position": { + "X": -753.93304, + "Y": 103.917046, + "Z": -467.1855 + }, + "TerritoryId": 397, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1014232, + "Position": { + "X": 544.97595, + "Y": -51.27571, + "Z": 65.384766 + }, + "TerritoryId": 398, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "The Dravanian Forelands - Tailfeather", + "NextQuestId": 1716 + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Class Quests/BRD/1716_When Gnaths Cry.json b/QuestPaths/3.x - Heavensward/Class Quests/BRD/1716_When Gnaths Cry.json new file mode 100644 index 000000000..a3501e9bc --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Class Quests/BRD/1716_When Gnaths Cry.json @@ -0,0 +1,84 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1014232, + "Position": { + "X": 544.97595, + "Y": -51.27571, + "Z": 65.384766 + }, + "StopDistance": 7, + "TerritoryId": 398, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "The Dravanian Forelands - Tailfeather", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + }, + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_JOBBRD560_01716_Q1_000_000", + "Answer": "TEXT_JOBBRD560_01716_A1_000_000" + } + ] + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1014248, + "Position": { + "X": 218.43286, + "Y": -104.75025, + "Z": 592.00415 + }, + "TerritoryId": 398, + "InteractionType": "SinglePlayerDuty", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1014249, + "Position": { + "X": 186.08374, + "Y": -119.0711, + "Z": 480.4912 + }, + "StopDistance": 5, + "TerritoryId": 398, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1014231, + "Position": { + "X": 544.4877, + "Y": -51.27571, + "Z": 64.62195 + }, + "TerritoryId": 398, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "The Dravanian Forelands - Tailfeather" + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Class Quests/BRD/1717_A Saint of Song.json b/QuestPaths/3.x - Heavensward/Class Quests/BRD/1717_A Saint of Song.json new file mode 100644 index 000000000..afecb2dc0 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Class Quests/BRD/1717_A Saint of Song.json @@ -0,0 +1,234 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1014232, + "Position": { + "X": 544.97595, + "Y": -51.27571, + "Z": 65.384766 + }, + "StopDistance": 7, + "TerritoryId": 398, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "The Dravanian Forelands - Tailfeather", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1014270, + "Position": { + "X": 457.1145, + "Y": -51.15781, + "Z": 101.48767 + }, + "TerritoryId": 398, + "InteractionType": "Interact", + "Fly": true, + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_JOBBRD580_01717_Q1_000_000", + "Answer": "TEXT_JOBBRD580_01717_A1_000_000" + } + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1014262, + "Position": { + "X": -223.65149, + "Y": -30.093239, + "Z": 78.72119 + }, + "TerritoryId": 398, + "InteractionType": "Interact", + "AetheryteShortcut": "The Dravanian Forelands - Anyx Trine", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1014264, + "Position": { + "X": 159.74658, + "Y": -62.55156, + "Z": 685.84717 + }, + "TerritoryId": 400, + "InteractionType": "Interact", + "AetheryteShortcut": "The Churning Mists - Moghome", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "Position": { + "X": 379.64865, + "Y": -69.42944, + "Z": 695.1956 + }, + "TerritoryId": 400, + "InteractionType": "WalkTo", + "$": "Moglin", + "Fly": true + }, + { + "DataId": 1012077, + "Position": { + "X": 381.70435, + "Y": -66.84979, + "Z": 700.86194 + }, + "StopDistance": 8, + "TerritoryId": 400, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1014266, + "Position": { + "X": 273.4568, + "Y": -38.082943, + "Z": 524.95605 + }, + "TerritoryId": 400, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 2006302, + "Position": { + "X": 269.94727, + "Y": -40.299072, + "Z": 398.61133 + }, + "TerritoryId": 400, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 4681 + ], + "Fly": true + } + ] + }, + { + "Sequence": 7, + "Steps": [ + { + "DataId": 2006303, + "Position": { + "X": 342.15295, + "Y": -40.024475, + "Z": 288.56335 + }, + "TerritoryId": 400, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 4682 + ], + "Fly": true + } + ] + }, + { + "Sequence": 8, + "Steps": [ + { + "DataId": 2006304, + "Position": { + "X": 417.07483, + "Y": -34.561768, + "Z": 222.9801 + }, + "TerritoryId": 400, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 4483 + ], + "Fly": true + } + ] + }, + { + "Sequence": 9, + "Steps": [ + { + "DataId": 2006381, + "Position": { + "X": 421.16418, + "Y": -29.404175, + "Z": 97.18469 + }, + "TerritoryId": 400, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": 379.64865, + "Y": -69.42944, + "Z": 695.1956 + }, + "TerritoryId": 400, + "InteractionType": "WalkTo", + "AetheryteShortcut": "The Churning Mists - Moghome", + "$": "Moglin", + "Fly": true + }, + { + "DataId": 1012077, + "Position": { + "X": 381.70435, + "Y": -66.84979, + "Z": 700.86194 + }, + "StopDistance": 8, + "TerritoryId": 400, + "InteractionType": "CompleteQuest", + "NextQuestId": 1718 + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Class Quests/BRD/1718_The Ballad of Oblivion.json b/QuestPaths/3.x - Heavensward/Class Quests/BRD/1718_The Ballad of Oblivion.json new file mode 100644 index 000000000..90e46bed1 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Class Quests/BRD/1718_The Ballad of Oblivion.json @@ -0,0 +1,152 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1014265, + "Position": { + "X": 377.37073, + "Y": -69.42938, + "Z": 695.6129 + }, + "StopDistance": 7, + "TerritoryId": 400, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "The Churning Mists - Moghome", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + }, + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_JOBBRD600_01718_Q1_000_000", + "Answer": "TEXT_JOBBRD600_01718_A1_000_000" + } + ] + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1014277, + "Position": { + "X": 485.00793, + "Y": -9.204832, + "Z": 742.6719 + }, + "TerritoryId": 400, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1014273, + "Position": { + "X": 28.976807, + "Y": -18.800003, + "Z": 96.69641 + }, + "StopDistance": 5, + "TerritoryId": 132, + "InteractionType": "Interact", + "AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Airship Landing" + ], + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_JOBBRD600_01718_Q2_000_000", + "Yes": true + } + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1014274, + "Position": { + "X": -449.9428, + "Y": -4.031367, + "Z": -716.4264 + }, + "StopDistance": 5, + "TerritoryId": 401, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1014275, + "Position": { + "X": -179.46143, + "Y": 19.473629, + "Z": -855.98535 + }, + "TerritoryId": 401, + "InteractionType": "SinglePlayerDuty", + "Fly": true + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1014276, + "Position": { + "X": -451.89594, + "Y": -4.8975077, + "Z": -713.80176 + }, + "TerritoryId": 401, + "InteractionType": "Interact", + "Fly": true, + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_JOBBRD600_01718_Q3_000_000", + "Yes": true + } + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1006750, + "Position": { + "X": 16.464417, + "Y": 6.750492, + "Z": -7.3396606 + }, + "TerritoryId": 153, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "South Shroud - Quarrymill", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/quest-v1.json b/QuestPaths/quest-v1.json index 6922167e7..359694074 100644 --- a/QuestPaths/quest-v1.json +++ b/QuestPaths/quest-v1.json @@ -853,7 +853,8 @@ "disappointed", "examineself", "joy", - "mogdance" + "mogdance", + "salute" ] } } diff --git a/Questionable.Model/Questing/Converter/EmoteConverter.cs b/Questionable.Model/Questing/Converter/EmoteConverter.cs index 607f6fdab..9290a50c5 100644 --- a/Questionable.Model/Questing/Converter/EmoteConverter.cs +++ b/Questionable.Model/Questing/Converter/EmoteConverter.cs @@ -23,6 +23,7 @@ public sealed class EmoteConverter() : EnumConverter(Values) { EEmote.Deny, "deny" }, { EEmote.Poke, "poke" }, { EEmote.Psych, "psych" }, + { EEmote.Salute, "salute" }, { EEmote.Rally, "rally" }, { EEmote.Soothe, "soothe" }, { EEmote.Stretch, "stretch" }, diff --git a/Questionable.Model/Questing/EEmote.cs b/Questionable.Model/Questing/EEmote.cs index e70ffd36a..4292d1ac4 100644 --- a/Questionable.Model/Questing/EEmote.cs +++ b/Questionable.Model/Questing/EEmote.cs @@ -24,6 +24,7 @@ public enum EEmote Deny = 25, Poke = 28, Psych = 30, + Salute = 31, Rally = 34, Soothe = 35, Stretch = 37, -- 2.45.2 From af9bd6502429a037f3f2f989415b00148d241b50 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Wed, 18 Dec 2024 22:08:17 +0100 Subject: [PATCH 338/448] Add SB BRD quests --- .../BRD/1718_The Ballad of Oblivion.json | 3 +- .../BRD/2890_Three's a Company.json | 101 ++++++++++ .../Class Quests/BRD/2891_Masked Motives.json | 97 +++++++++ .../BRD/2892_One Autumn's Secret.json | 102 ++++++++++ .../BRD/2893_Sleeping Truths Lie.json | 127 ++++++++++++ .../2894_Sweet Dreams Are Made of Peace.json | 184 ++++++++++++++++++ 6 files changed, 613 insertions(+), 1 deletion(-) create mode 100644 QuestPaths/4.x - Stormblood/Class Quests/BRD/2890_Three's a Company.json create mode 100644 QuestPaths/4.x - Stormblood/Class Quests/BRD/2891_Masked Motives.json create mode 100644 QuestPaths/4.x - Stormblood/Class Quests/BRD/2892_One Autumn's Secret.json create mode 100644 QuestPaths/4.x - Stormblood/Class Quests/BRD/2893_Sleeping Truths Lie.json create mode 100644 QuestPaths/4.x - Stormblood/Class Quests/BRD/2894_Sweet Dreams Are Made of Peace.json diff --git a/QuestPaths/3.x - Heavensward/Class Quests/BRD/1718_The Ballad of Oblivion.json b/QuestPaths/3.x - Heavensward/Class Quests/BRD/1718_The Ballad of Oblivion.json index 90e46bed1..92e28a745 100644 --- a/QuestPaths/3.x - Heavensward/Class Quests/BRD/1718_The Ballad of Oblivion.json +++ b/QuestPaths/3.x - Heavensward/Class Quests/BRD/1718_The Ballad of Oblivion.json @@ -144,7 +144,8 @@ "TerritoryId": 153, "InteractionType": "CompleteQuest", "AetheryteShortcut": "South Shroud - Quarrymill", - "Fly": true + "Fly": true, + "NextQuestId": 2890 } ] } diff --git a/QuestPaths/4.x - Stormblood/Class Quests/BRD/2890_Three's a Company.json b/QuestPaths/4.x - Stormblood/Class Quests/BRD/2890_Three's a Company.json new file mode 100644 index 000000000..7e14c2d7d --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/BRD/2890_Three's a Company.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": 1006750, + "Position": { + "X": 16.464417, + "Y": 6.750492, + "Z": -7.3396606 + }, + "TerritoryId": 153, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "South Shroud - Quarrymill", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1022505, + "Position": { + "X": 192.46204, + "Y": -2.5453281, + "Z": 73.746826 + }, + "TerritoryId": 132, + "InteractionType": "Interact", + "AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Archers' Guild" + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1000168, + "Position": { + "X": -75.48645, + "Y": -0.5013741, + "Z": -5.081299 + }, + "TerritoryId": 132, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Gridania] Archers' Guild", + "[Gridania] Aetheryte Plaza" + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1022508, + "Position": { + "X": -71.33594, + "Y": -7.877128, + "Z": 240.34485 + }, + "TerritoryId": 152, + "InteractionType": "Interact", + "AetheryteShortcut": "East Shroud - Hawthorne Hut", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1022511, + "Position": { + "X": -653.13196, + "Y": 130, + "Z": -523.827 + }, + "TerritoryId": 612, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Fringes - Castrum Oriens", + "NextQuestId": 2891 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Class Quests/BRD/2891_Masked Motives.json b/QuestPaths/4.x - Stormblood/Class Quests/BRD/2891_Masked Motives.json new file mode 100644 index 000000000..e8c4e3959 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/BRD/2891_Masked Motives.json @@ -0,0 +1,97 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1022512, + "Position": { + "X": -653.04034, + "Y": 130, + "Z": -522.1485 + }, + "StopDistance": 5, + "TerritoryId": 612, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Fringes - Castrum Oriens", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1022514, + "Position": { + "X": -586.0533, + "Y": 130.0406, + "Z": -534.59985 + }, + "TerritoryId": 612, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": -247.82184, + "Y": 61.395123, + "Z": -484.64178 + }, + "TerritoryId": 612, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [ + 7494, + 7499 + ], + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1022515, + "Position": { + "X": -247.82184, + "Y": 61.395123, + "Z": -484.64178 + }, + "StopDistance": 5, + "TerritoryId": 612, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1022513, + "Position": { + "X": -650.9041, + "Y": 130, + "Z": -520.8667 + }, + "TerritoryId": 612, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Fringes - Castrum Oriens", + "NextQuestId": 2892 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Class Quests/BRD/2892_One Autumn's Secret.json b/QuestPaths/4.x - Stormblood/Class Quests/BRD/2892_One Autumn's Secret.json new file mode 100644 index 000000000..27c7ffef0 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/BRD/2892_One Autumn's Secret.json @@ -0,0 +1,102 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1022512, + "Position": { + "X": -653.04034, + "Y": 130, + "Z": -522.1485 + }, + "StopDistance": 7, + "TerritoryId": 612, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Fringes - Castrum Oriens", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1022519, + "Position": { + "X": -616.8155, + "Y": 130.14346, + "Z": -469.41333 + }, + "TerritoryId": 612, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1022520, + "Position": { + "X": -610.956, + "Y": 125.92732, + "Z": -424.58234 + }, + "TerritoryId": 612, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "Position": { + "X": 215.37027, + "Y": 45.90861, + "Z": -362.9656 + }, + "TerritoryId": 612, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 1022522, + "Position": { + "X": 214.86218, + "Y": 45.93671, + "Z": -360.61652 + }, + "TerritoryId": 612, + "InteractionType": "SinglePlayerDuty" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1022523, + "Position": { + "X": -653.04034, + "Y": 130, + "Z": -522.17896 + }, + "StopDistance": 5, + "TerritoryId": 612, + "InteractionType": "CompleteQuest", + "NextQuestId": 2893 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Class Quests/BRD/2893_Sleeping Truths Lie.json b/QuestPaths/4.x - Stormblood/Class Quests/BRD/2893_Sleeping Truths Lie.json new file mode 100644 index 000000000..2f5a19bc3 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/BRD/2893_Sleeping Truths Lie.json @@ -0,0 +1,127 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1022523, + "Position": { + "X": -653.04034, + "Y": 130, + "Z": -522.17896 + }, + "StopDistance": 5, + "TerritoryId": 612, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Fringes - Castrum Oriens", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + }, + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_JOBBRD680_02893_Q1_000_000", + "Answer": "TEXT_JOBBRD680_02893_A1_000_003" + } + ] + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1022514, + "Position": { + "X": -586.0533, + "Y": 130.0406, + "Z": -534.59985 + }, + "TerritoryId": 612, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2008682, + "Position": { + "X": -610.2846, + "Y": 42.801514, + "Z": 290.79114 + }, + "TerritoryId": 612, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 7494, + 7499 + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1022514, + "Position": { + "X": -586.0533, + "Y": 130.0406, + "Z": -534.59985 + }, + "TerritoryId": 612, + "InteractionType": "Interact", + "AetheryteShortcut": "Fringes - Castrum Oriens", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1022527, + "Position": { + "X": -555.871, + "Y": 91.035034, + "Z": -185.8396 + }, + "TerritoryId": 612, + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_JOBBRD680_02893_Q2_000_000", + "Answer": "TEXT_JOBBRD680_02893_A2_000_001" + } + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1022528, + "Position": { + "X": -52.35376, + "Y": -3.326972, + "Z": 20.58435 + }, + "TerritoryId": 132, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Gridania", + "NextQuestId": 2894 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Class Quests/BRD/2894_Sweet Dreams Are Made of Peace.json b/QuestPaths/4.x - Stormblood/Class Quests/BRD/2894_Sweet Dreams Are Made of Peace.json new file mode 100644 index 000000000..ef8174bb6 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/BRD/2894_Sweet Dreams Are Made of Peace.json @@ -0,0 +1,184 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1022528, + "Position": { + "X": -52.35376, + "Y": -3.326972, + "Z": 20.58435 + }, + "TerritoryId": 132, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Gridania", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1000254, + "Position": { + "X": 157.7019, + "Y": 15.900381, + "Z": -270.34418 + }, + "TerritoryId": 133, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Lancers' Guild" + ], + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 1000200, + "Position": { + "X": 209.55212, + "Y": 0.9999819, + "Z": 35.01941 + }, + "StopDistance": 5, + "TerritoryId": 132, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Gridania] Lancers' Guild", + "[Gridania] Archers' Guild" + ], + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1000168, + "Position": { + "X": -75.48645, + "Y": -0.5013741, + "Z": -5.081299 + }, + "TerritoryId": 132, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Gridania] Archers' Guild", + "[Gridania] Aetheryte Plaza" + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "Position": { + "X": -183.93188, + "Y": -53.111656, + "Z": 330.18417 + }, + "TerritoryId": 154, + "InteractionType": "WalkTo", + "AetheryteShortcut": "North Shroud - Fallgourd Float", + "Fly": true + }, + { + "Position": { + "X": -248.3785, + "Y": -74.95606, + "Z": 424.39832 + }, + "TerritoryId": 154, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 1022529, + "Position": { + "X": -248.52368, + "Y": -75.63651, + "Z": 426.9015 + }, + "TerritoryId": 154, + "InteractionType": "SinglePlayerDuty" + } + ] + }, + { + "Sequence": 4 + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1022530, + "Position": { + "X": -246.93683, + "Y": -75.542496, + "Z": 426.5354 + }, + "StopDistance": 5, + "TerritoryId": 154, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1000168, + "Position": { + "X": -75.48645, + "Y": -0.5013741, + "Z": -5.081299 + }, + "TerritoryId": 132, + "InteractionType": "Interact", + "AetheryteShortcut": "Gridania" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1006750, + "Position": { + "X": 16.464417, + "Y": 6.750492, + "Z": -7.3396606 + }, + "TerritoryId": 153, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "South Shroud - Quarrymill", + "Fly": true + } + ] + } + ] +} -- 2.45.2 From ad610d6ddca40a7d5242ca3bbcf8662578ad90ca Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Thu, 19 Dec 2024 15:13:08 +0100 Subject: [PATCH 339/448] Rename debug PackagePlugin target --- Questionable/DalamudPackager.targets | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Questionable/DalamudPackager.targets b/Questionable/DalamudPackager.targets index 2509a41ba..b067e0576 100644 --- a/Questionable/DalamudPackager.targets +++ b/Questionable/DalamudPackager.targets @@ -1,6 +1,6 @@  - + Date: Thu, 19 Dec 2024 16:41:17 +0100 Subject: [PATCH 340/448] add vbm as a combatmodule --- .../Controller/CombatModules/BossModModule.cs | 117 ++++++ .../CombatModules/BossModPreset.json | 377 ++++++++++++++++++ Questionable/Questionable.csproj | 7 + Questionable/QuestionablePlugin.cs | 1 + 4 files changed, 502 insertions(+) create mode 100644 Questionable/Controller/CombatModules/BossModModule.cs create mode 100644 Questionable/Controller/CombatModules/BossModPreset.json diff --git a/Questionable/Controller/CombatModules/BossModModule.cs b/Questionable/Controller/CombatModules/BossModModule.cs new file mode 100644 index 000000000..0d04cce18 --- /dev/null +++ b/Questionable/Controller/CombatModules/BossModModule.cs @@ -0,0 +1,117 @@ +using Dalamud.Game.ClientState.Objects.Types; +using Dalamud.Plugin; +using Dalamud.Plugin.Ipc; +using Dalamud.Plugin.Ipc.Exceptions; +using Dalamud.Plugin.Services; +using Microsoft.Extensions.Logging; +using Questionable.Model; +using System; +using System.IO; +using System.Numerics; + +namespace Questionable.Controller.CombatModules; + +internal sealed class BossModModule(ILogger logger, MovementController movementController, IClientState clientState, IDalamudPluginInterface pluginInterface) : ICombatModule, IDisposable +{ + private const string Name = "BossMod"; + private readonly ILogger _logger = logger; + private readonly MovementController _movementController = movementController; + private readonly IClientState _clientState = clientState; + private readonly ICallGateSubscriber _getPreset = pluginInterface.GetIpcSubscriber($"{Name}.Presets.Get"); + private readonly ICallGateSubscriber _createPreset = pluginInterface.GetIpcSubscriber($"{Name}.Presets.Create"); + private readonly ICallGateSubscriber _setPreset = pluginInterface.GetIpcSubscriber($"{Name}.Presets.SetActive"); + private readonly ICallGateSubscriber _clearPreset = pluginInterface.GetIpcSubscriber($"{Name}.Presets.ClearActive"); + + private DateTime _lastDistanceCheck = DateTime.MinValue; + + public bool CanHandleFight(CombatController.CombatData combatData) + { + try + { + return _getPreset.HasFunction; + } + catch (IpcError) + { + return false; + } + } + + public bool Start(CombatController.CombatData combatData) + { + try + { + _logger.LogInformation("Starting {Name}", Name); + var path = Path.Combine(pluginInterface.AssemblyLocation.DirectoryName!, @"Controller\CombatModules\BossModPreset.json"); + if (_getPreset.InvokeFunc("Questionable") == null) + _logger.LogInformation("Loading Questionable BossMod Preset: {LoadedState}", _createPreset.InvokeFunc(File.ReadAllText(path), true)); + _setPreset.InvokeFunc("Questionable"); + _lastDistanceCheck = DateTime.Now; + return true; + } + catch (IpcError e) + { + _logger.LogWarning(e, "Could not start combat"); + return false; + } + } + + public bool Stop() + { + try + { + _clearPreset.InvokeFunc(); + return true; + } + catch (IpcError e) + { + _logger.LogWarning(e, "Could not turn off combat"); + return false; + } + } + + public void MoveToTarget(IGameObject gameObject) + { + var player = _clientState.LocalPlayer; + if (player == null) + return; // uh oh + + float hitboxOffset = player.HitboxRadius + gameObject.HitboxRadius; + float actualDistance = Vector3.Distance(player.Position, gameObject.Position); + float maxDistance = player.ClassJob.ValueNullable?.Role is 3 or 4 ? 20f : 2.9f; + if (actualDistance - hitboxOffset >= maxDistance) + { + if (actualDistance - hitboxOffset <= 5) + { + _logger.LogInformation("Moving to {TargetName} ({DataId}) to attack", gameObject.Name, + gameObject.DataId); + _movementController.NavigateTo(EMovementType.Combat, null, [gameObject.Position], false, false, + maxDistance + hitboxOffset - 0.25f, true); + } + else + { + _logger.LogInformation("Moving to {TargetName} ({DataId}) to attack (with navmesh)", gameObject.Name, + gameObject.DataId); + _movementController.NavigateTo(EMovementType.Combat, null, gameObject.Position, false, false, + maxDistance + hitboxOffset - 0.25f, true); + } + } + + _lastDistanceCheck = DateTime.Now; + } + + public void Update(IGameObject gameObject) + { + if (_movementController.IsPathfinding || _movementController.IsPathRunning) + return; + + if (DateTime.Now > _lastDistanceCheck.AddSeconds(10)) + { + MoveToTarget(gameObject); + _lastDistanceCheck = DateTime.Now; + } + } + + public bool CanAttack(IBattleNpc target) => true; + + public void Dispose() => Stop(); +} diff --git a/Questionable/Controller/CombatModules/BossModPreset.json b/Questionable/Controller/CombatModules/BossModPreset.json new file mode 100644 index 000000000..b6c6a28ae --- /dev/null +++ b/Questionable/Controller/CombatModules/BossModPreset.json @@ -0,0 +1,377 @@ +{ + "Name": "Questionable", + "Modules": { + "BossMod.Autorotation.xan.DNC": [ + { + "Track": "Buffs", + "Option": "Auto" + }, + { + "Track": "Buffs", + "Option": "Delay", + "Mod": "Shift, Ctrl" + }, + { + "Track": "AOE", + "Option": "AOE" + }, + { + "Track": "Targeting", + "Option": "Manual" + } + ], + "BossMod.Autorotation.xan.MCH": [ + { + "Track": "Buffs", + "Option": "Auto" + }, + { + "Track": "Buffs", + "Option": "Delay", + "Mod": "Shift, Ctrl" + }, + { + "Track": "AOE", + "Option": "AOE" + }, + { + "Track": "Targeting", + "Option": "Manual" + } + ], + "BossMod.Autorotation.xan.MNK": [ + { + "Track": "AOE", + "Option": "AOE" + }, + { + "Track": "Targeting", + "Option": "Manual" + } + ], + "BossMod.Autorotation.xan.PCT": [ + { + "Track": "Buffs", + "Option": "Auto" + }, + { + "Track": "Buffs", + "Option": "Delay", + "Mod": "Shift, Ctrl" + }, + { + "Track": "AOE", + "Option": "AOE" + }, + { + "Track": "Targeting", + "Option": "Manual" + }, + { + "Track": "Motifs", + "Option": "Downtime" + } + ], + "BossMod.Autorotation.xan.PLD": [ + { + "Track": "Buffs", + "Option": "Auto" + }, + { + "Track": "Buffs", + "Option": "Delay", + "Mod": "Shift, Ctrl" + }, + { + "Track": "AOE", + "Option": "AOE" + }, + { + "Track": "Targeting", + "Option": "Manual" + } + ], + "BossMod.Autorotation.xan.SAM": [ + { + "Track": "Buffs", + "Option": "Auto" + }, + { + "Track": "Buffs", + "Option": "Delay", + "Mod": "Shift, Ctrl" + }, + { + "Track": "AOE", + "Option": "AOE" + }, + { + "Track": "Targeting", + "Option": "Manual" + } + ], + "BossMod.Autorotation.xan.SGE": [ + { + "Track": "AOE", + "Option": "AOE" + }, + { + "Track": "Targeting", + "Option": "Manual" + } + ], + "BossMod.Autorotation.xan.VPR": [ + { + "Track": "Buffs", + "Option": "Auto" + }, + { + "Track": "Buffs", + "Option": "Delay", + "Mod": "Shift, Ctrl" + }, + { + "Track": "AOE", + "Option": "AOE" + }, + { + "Track": "Targeting", + "Option": "Manual" + } + ], + "BossMod.Autorotation.xan.NIN": [ + { + "Track": "Buffs", + "Option": "Auto" + }, + { + "Track": "Buffs", + "Option": "Delay", + "Mod": "Shift, Ctrl" + }, + { + "Track": "AOE", + "Option": "AOE" + }, + { + "Track": "Targeting", + "Option": "Manual" + } + ], + "BossMod.Autorotation.xan.GNB": [ + { + "Track": "Buffs", + "Option": "Auto" + }, + { + "Track": "Buffs", + "Option": "Delay", + "Mod": "Shift, Ctrl" + }, + { + "Track": "AOE", + "Option": "AOE" + }, + { + "Track": "Targeting", + "Option": "Manual" + } + ], + "BossMod.Autorotation.xan.SMN": [ + { + "Track": "Buffs", + "Option": "Auto" + }, + { + "Track": "Buffs", + "Option": "Delay", + "Mod": "Shift, Ctrl" + }, + { + "Track": "AOE", + "Option": "AOE" + }, + { + "Track": "Targeting", + "Option": "Manual" + } + ], + "BossMod.Autorotation.xan.DRK": [ + { + "Track": "Buffs", + "Option": "Auto" + }, + { + "Track": "Buffs", + "Option": "Delay", + "Mod": "Shift, Ctrl" + }, + { + "Track": "AOE", + "Option": "AOE" + }, + { + "Track": "Targeting", + "Option": "Manual" + } + ], + "BossMod.Autorotation.xan.RPR": [ + { + "Track": "Buffs", + "Option": "Auto" + }, + { + "Track": "Buffs", + "Option": "Delay", + "Mod": "Shift, Ctrl" + }, + { + "Track": "AOE", + "Option": "AOE" + }, + { + "Track": "Targeting", + "Option": "Manual" + } + ], + "BossMod.Autorotation.xan.WHM": [ + { + "Track": "Buffs", + "Option": "Auto" + }, + { + "Track": "Buffs", + "Option": "Delay", + "Mod": "Shift, Ctrl" + }, + { + "Track": "AOE", + "Option": "AOE" + }, + { + "Track": "Targeting", + "Option": "Manual" + } + ], + "BossMod.Autorotation.xan.AST": [ + { + "Track": "Buffs", + "Option": "Auto" + }, + { + "Track": "Buffs", + "Option": "Delay", + "Mod": "Shift, Ctrl" + }, + { + "Track": "AOE", + "Option": "AOE" + }, + { + "Track": "Targeting", + "Option": "Manual" + } + ], + "BossMod.Autorotation.xan.BRD": [ + { + "Track": "Buffs", + "Option": "Auto" + }, + { + "Track": "Buffs", + "Option": "Delay", + "Mod": "Shift, Ctrl" + }, + { + "Track": "AOE", + "Option": "AOE" + }, + { + "Track": "Targeting", + "Option": "Manual" + } + ], + "BossMod.Autorotation.xan.SCH": [ + { + "Track": "Buffs", + "Option": "Auto" + }, + { + "Track": "Buffs", + "Option": "Delay", + "Mod": "Shift, Ctrl" + }, + { + "Track": "AOE", + "Option": "AOE" + }, + { + "Track": "Targeting", + "Option": "Manual" + } + ], + "BossMod.Autorotation.xan.BLM": [ + { + "Track": "Buffs", + "Option": "Auto" + }, + { + "Track": "Buffs", + "Option": "Delay", + "Mod": "Shift, Ctrl" + }, + { + "Track": "AOE", + "Option": "AOE" + }, + { + "Track": "Targeting", + "Option": "Manual" + } + ], + "BossMod.Autorotation.StandardWAR": [ + { + "Track": "AOE", + "Option": "AutoFinishCombo" + } + ], + "BossMod.Autorotation.xan.RDM": [ + { + "Track": "Buffs", + "Option": "Auto" + }, + { + "Track": "Buffs", + "Option": "Delay", + "Mod": "Shift, Ctrl" + }, + { + "Track": "AOE", + "Option": "AOE" + }, + { + "Track": "Targeting", + "Option": "Manual" + } + ], + "BossMod.Autorotation.xan.DRG": [ + { + "Track": "Buffs", + "Option": "Auto" + }, + { + "Track": "Buffs", + "Option": "Delay", + "Mod": "Shift, Ctrl" + }, + { + "Track": "AOE", + "Option": "AOE" + }, + { + "Track": "Targeting", + "Option": "Manual" + } + ] + } +} \ No newline at end of file diff --git a/Questionable/Questionable.csproj b/Questionable/Questionable.csproj index 6d44ba067..eb91f928b 100644 --- a/Questionable/Questionable.csproj +++ b/Questionable/Questionable.csproj @@ -23,4 +23,11 @@ + + + + + PreserveNewest + + diff --git a/Questionable/QuestionablePlugin.cs b/Questionable/QuestionablePlugin.cs index 8e4ad410f..73af794f6 100644 --- a/Questionable/QuestionablePlugin.cs +++ b/Questionable/QuestionablePlugin.cs @@ -247,6 +247,7 @@ public sealed class QuestionablePlugin : IDalamudPlugin serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); + serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); } -- 2.45.2 From 1dc1cef6370c5a2dac67fa3b13de35e0e6cf3427 Mon Sep 17 00:00:00 2001 From: Jackson <9527380+Jaksuhn@users.noreply.github.com> Date: Thu, 19 Dec 2024 17:40:09 +0100 Subject: [PATCH 341/448] swap to embeddedresource --- Questionable/Controller/CombatModules/BossModModule.cs | 9 ++++++--- Questionable/Questionable.csproj | 6 +++--- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/Questionable/Controller/CombatModules/BossModModule.cs b/Questionable/Controller/CombatModules/BossModModule.cs index 0d04cce18..a26d1c745 100644 --- a/Questionable/Controller/CombatModules/BossModModule.cs +++ b/Questionable/Controller/CombatModules/BossModModule.cs @@ -3,6 +3,7 @@ using Dalamud.Plugin; using Dalamud.Plugin.Ipc; using Dalamud.Plugin.Ipc.Exceptions; using Dalamud.Plugin.Services; +using Json.Schema; using Microsoft.Extensions.Logging; using Questionable.Model; using System; @@ -22,6 +23,7 @@ internal sealed class BossModModule(ILogger logger, MovementContr private readonly ICallGateSubscriber _setPreset = pluginInterface.GetIpcSubscriber($"{Name}.Presets.SetActive"); private readonly ICallGateSubscriber _clearPreset = pluginInterface.GetIpcSubscriber($"{Name}.Presets.ClearActive"); + private static Stream Preset => typeof(BossModModule).Assembly.GetManifestResourceStream("Questionable.Controller.CombatModules.BossModPreset")!; private DateTime _lastDistanceCheck = DateTime.MinValue; public bool CanHandleFight(CombatController.CombatData combatData) @@ -40,10 +42,11 @@ internal sealed class BossModModule(ILogger logger, MovementContr { try { - _logger.LogInformation("Starting {Name}", Name); - var path = Path.Combine(pluginInterface.AssemblyLocation.DirectoryName!, @"Controller\CombatModules\BossModPreset.json"); if (_getPreset.InvokeFunc("Questionable") == null) - _logger.LogInformation("Loading Questionable BossMod Preset: {LoadedState}", _createPreset.InvokeFunc(File.ReadAllText(path), true)); + { + using var reader = new StreamReader(Preset); + _logger.LogInformation("Loading Questionable BossMod Preset: {LoadedState}", _createPreset.InvokeFunc(reader.ReadToEnd(), true)); + } _setPreset.InvokeFunc("Questionable"); _lastDistanceCheck = DateTime.Now; return true; diff --git a/Questionable/Questionable.csproj b/Questionable/Questionable.csproj index eb91f928b..544ba74e8 100644 --- a/Questionable/Questionable.csproj +++ b/Questionable/Questionable.csproj @@ -26,8 +26,8 @@ - - PreserveNewest - + + Questionable.Controller.CombatModules.BossModPreset + -- 2.45.2 From 6b38e37271abf49bbe6740636738e1858389c9fe Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sat, 21 Dec 2024 15:04:31 +0100 Subject: [PATCH 342/448] Allied Society daily 'quest', part 1 --- .../Vanu Vanu/A6_Vanu Vanu (all).json | 29 +++++++++ .../Dailies/2172_Pussyfooting About.json | 14 ++++- .../Allied Societies/Vath/A7_Vath.json | 27 +++++++++ Questionable.Model/Questing/ElementId.cs | 27 ++++++++- Questionable/Controller/CommandHandler.cs | 1 + Questionable/Data/QuestData.cs | 23 +++++++ Questionable/Functions/QuestFunctions.cs | 14 ++++- Questionable/Model/AlliedSocietyDailyInfo.cs | 60 +++++++++++++++++++ Questionable/Windows/PriorityWindow.cs | 2 +- 9 files changed, 192 insertions(+), 5 deletions(-) create mode 100644 QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/A6_Vanu Vanu (all).json create mode 100644 QuestPaths/3.x - Heavensward/Allied Societies/Vath/A7_Vath.json create mode 100644 Questionable/Model/AlliedSocietyDailyInfo.cs diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/A6_Vanu Vanu (all).json b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/A6_Vanu Vanu (all).json new file mode 100644 index 000000000..036c29822 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/A6_Vanu Vanu (all).json @@ -0,0 +1,29 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1016089, + "Position": { + "X": -799.46594, + "Y": -133.2695, + "Z": -404.1352 + }, + "StopDistance": 3, + "TerritoryId": 401, + "InteractionType": "WalkTo", + "AetheryteShortcut": "The Sea of Clouds - Ok' Zundu", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2172_Pussyfooting About.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2172_Pussyfooting About.json index fab39d1f3..e12ff08c8 100644 --- a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2172_Pussyfooting About.json +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2172_Pussyfooting About.json @@ -58,6 +58,17 @@ { "Sequence": 2, "Steps": [ + { + "Position": { + "X": -799.46594, + "Y": -133.2695, + "Z": -404.1352 + }, + "TerritoryId": 401, + "InteractionType": "WalkTo", + "AetheryteShortcut": "The Sea of Clouds - Ok' Zundu", + "Fly": true + }, { "DataId": 1016089, "Position": { @@ -67,8 +78,7 @@ }, "TerritoryId": 401, "InteractionType": "Interact", - "AetheryteShortcut": "The Sea of Clouds - Ok' Zundu", - "Fly": true + "Mount": false } ] }, diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vath/A7_Vath.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vath/A7_Vath.json new file mode 100644 index 000000000..6ffe879dd --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vath/A7_Vath.json @@ -0,0 +1,27 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "Position": { + "X": 58.39701, + "Y": -48.000008, + "Z": -172.36507 + }, + "TerritoryId": 398, + "InteractionType": "WalkTo", + "AetheryteShortcut": "The Dravanian Forelands - Anyx Trine", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + } + ] +} diff --git a/Questionable.Model/Questing/ElementId.cs b/Questionable.Model/Questing/ElementId.cs index 396c3524b..a553ff0d3 100644 --- a/Questionable.Model/Questing/ElementId.cs +++ b/Questionable.Model/Questing/ElementId.cs @@ -56,6 +56,19 @@ public abstract class ElementId : IComparable, IEquatable return new LeveId(ushort.Parse(value.Substring(1), CultureInfo.InvariantCulture)); else if (value.StartsWith("S")) return new SatisfactionSupplyNpcId(ushort.Parse(value.Substring(1), CultureInfo.InvariantCulture)); + else if (value.StartsWith("A")) + { + value = value.Substring(1); + string[] parts = value.Split('x'); + if (parts.Length == 2) + { + return new AlliedSocietyDailyId( + byte.Parse(parts[0], CultureInfo.InvariantCulture), + byte.Parse(parts[1], CultureInfo.InvariantCulture)); + } + else + return new AlliedSocietyDailyId(byte.Parse(value, CultureInfo.InvariantCulture)); + } else return new QuestId(ushort.Parse(value, CultureInfo.InvariantCulture)); } @@ -70,7 +83,8 @@ public abstract class ElementId : IComparable, IEquatable catch (Exception) { elementId = null; - return false; + //return false; + throw; } } } @@ -98,3 +112,14 @@ public sealed class SatisfactionSupplyNpcId(ushort value) : ElementId(value) return "S" + Value.ToString(CultureInfo.InvariantCulture); } } + +public sealed class AlliedSocietyDailyId(byte alliedSociety, byte rank = 0) : ElementId((ushort)(alliedSociety * 10 + rank)) +{ + public byte AlliedSociety { get; } = alliedSociety; + public byte Rank { get; } = rank; + + public override string ToString() + { + return "A" + AlliedSociety + "x" + Rank; + } +} diff --git a/Questionable/Controller/CommandHandler.cs b/Questionable/Controller/CommandHandler.cs index c6085a18d..1c2bed2bd 100644 --- a/Questionable/Controller/CommandHandler.cs +++ b/Questionable/Controller/CommandHandler.cs @@ -4,6 +4,7 @@ using Dalamud.Game.ClientState.Objects; using Dalamud.Game.Command; using Dalamud.Plugin.Services; using Lumina.Excel.Sheets; +using Microsoft.Extensions.Logging; using Questionable.Functions; using Questionable.Model.Questing; using Questionable.Windows; diff --git a/Questionable/Data/QuestData.cs b/Questionable/Data/QuestData.cs index 5d7b70229..3cb2f295a 100644 --- a/Questionable/Data/QuestData.cs +++ b/Questionable/Data/QuestData.cs @@ -68,6 +68,29 @@ internal sealed class QuestData .Where(x => x.LevelLevemete.RowId != 0) .Select(x => new LeveInfo(x)), ]; + + quests.AddRange( + dataManager.GetExcelSheet() + .Where(x => x.RowId > 0 && !x.Name.IsEmpty) + .SelectMany(x => + { + if (x.RowId < 5) + { + return ((IEnumerable) + [ + 0, + ..quests.Where(y => y.AlliedSociety == (EAlliedSociety)x.RowId && y.IsRepeatable) + .Cast() + .Select(y => (byte)y.AlliedSocietyRank).Distinct() + ]) + .Select(rank => new AlliedSocietyDailyInfo(x, rank)); + } + else + { + return [new AlliedSocietyDailyInfo(x, 0)]; + } + })); + _quests = quests.ToDictionary(x => x.QuestId, x => x); // workaround because the game doesn't require completion of the CT questline through normal means diff --git a/Questionable/Functions/QuestFunctions.cs b/Questionable/Functions/QuestFunctions.cs index bb206a1b9..fc5d7935c 100644 --- a/Questionable/Functions/QuestFunctions.cs +++ b/Questionable/Functions/QuestFunctions.cs @@ -14,7 +14,6 @@ using LLib.GameData; using LLib.GameUI; using Lumina.Excel.Sheets; using Questionable.Controller; -using Questionable.Controller.Steps.Interactions; using Questionable.Data; using Questionable.Model; using Questionable.Model.Questing; @@ -487,6 +486,8 @@ internal sealed unsafe class QuestFunctions return IsQuestAccepted(leveId); else if (elementId is SatisfactionSupplyNpcId) return false; + else if (elementId is AlliedSocietyDailyId) + return false; else throw new ArgumentOutOfRangeException(nameof(elementId)); } @@ -517,6 +518,8 @@ internal sealed unsafe class QuestFunctions return IsQuestComplete(leveId); else if (elementId is SatisfactionSupplyNpcId) return false; + else if (elementId is AlliedSocietyDailyId) + return false; else throw new ArgumentOutOfRangeException(nameof(elementId)); } @@ -540,6 +543,8 @@ internal sealed unsafe class QuestFunctions return IsQuestLocked(leveId); else if (elementId is SatisfactionSupplyNpcId satisfactionSupplyNpcId) return IsQuestLocked(satisfactionSupplyNpcId); + else if (elementId is AlliedSocietyDailyId alliedSocietyDailyId) + return IsQuestLocked(alliedSocietyDailyId); else throw new ArgumentOutOfRangeException(nameof(elementId)); } @@ -579,6 +584,13 @@ internal sealed unsafe class QuestFunctions return !HasCompletedPreviousQuests(questInfo, null); } + private bool IsQuestLocked(AlliedSocietyDailyId alliedSocietyDailyId) + { + PlayerState* playerState = PlayerState.Instance(); + byte currentRank = playerState->GetBeastTribeRank(alliedSocietyDailyId.AlliedSociety); + return currentRank == 0 || currentRank < alliedSocietyDailyId.Rank; + } + public bool IsDailyAlliedSocietyQuest(QuestId questId) { var questInfo = (QuestInfo)_questData.GetQuestInfo(questId); diff --git a/Questionable/Model/AlliedSocietyDailyInfo.cs b/Questionable/Model/AlliedSocietyDailyInfo.cs new file mode 100644 index 000000000..0f203609c --- /dev/null +++ b/Questionable/Model/AlliedSocietyDailyInfo.cs @@ -0,0 +1,60 @@ +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Linq; +using LLib.GameData; +using Lumina.Excel.Sheets; +using Questionable.Data; +using Questionable.Model.Questing; + +namespace Questionable.Model; + +internal sealed class AlliedSocietyDailyInfo : IQuestInfo +{ + public AlliedSocietyDailyInfo(BeastTribe beastTribe, byte rank) + { + QuestId = new AlliedSocietyDailyId((byte)beastTribe.RowId, rank); + Name = beastTribe.Name.ToString(); + ClassJobs = (EAlliedSociety)beastTribe.RowId switch + { + EAlliedSociety.Amaljaa or EAlliedSociety.Sylphs or EAlliedSociety.Kobolds or EAlliedSociety.Sahagin or + EAlliedSociety.VanuVanu or EAlliedSociety.Vath or + EAlliedSociety.Kojin or EAlliedSociety.Ananta or + EAlliedSociety.Pixies or + EAlliedSociety.Arkasodara or + EAlliedSociety.Pelupelu => + [ + ..ClassJobUtils.AsIndividualJobs(EExtendedClassJob.DoW), + ..ClassJobUtils.AsIndividualJobs(EExtendedClassJob.DoM) + ], + EAlliedSociety.Ixal or EAlliedSociety.Moogles or EAlliedSociety.Dwarves or EAlliedSociety.Loporrits => + ClassJobUtils.AsIndividualJobs(EExtendedClassJob.DoH).ToList(), + + EAlliedSociety.Qitari or EAlliedSociety.Omicrons => + ClassJobUtils.AsIndividualJobs(EExtendedClassJob.DoL).ToList(), + + EAlliedSociety.Namazu => + [ + ..ClassJobUtils.AsIndividualJobs(EExtendedClassJob.DoH), + ..ClassJobUtils.AsIndividualJobs(EExtendedClassJob.DoL) + ], + + _ => throw new ArgumentOutOfRangeException(nameof(beastTribe)) + }; + Expansion = (EExpansionVersion)beastTribe.Expansion.RowId; + } + + public ElementId QuestId { get; } + public string Name { get; } + public uint IssuerDataId => 0; + public ImmutableList PreviousQuests { get; } = []; + public EQuestJoin PreviousQuestJoin => EQuestJoin.All; + public bool IsRepeatable => true; + public ushort Level => 1; + public EAlliedSociety AlliedSociety => EAlliedSociety.None; + public uint? JournalGenre => null; + public ushort SortKey => 0; + public bool IsMainScenarioQuest => false; + public IReadOnlyList ClassJobs { get; } + public EExpansionVersion Expansion { get; } +} diff --git a/Questionable/Windows/PriorityWindow.cs b/Questionable/Windows/PriorityWindow.cs index 08bd35e59..8b4d5202a 100644 --- a/Questionable/Windows/PriorityWindow.cs +++ b/Questionable/Windows/PriorityWindow.cs @@ -106,7 +106,7 @@ internal sealed class PriorityWindow : LWindow if (!string.IsNullOrEmpty(_searchString)) { foundQuests = _questRegistry.AllQuests - .Where(x => x.Id is not SatisfactionSupplyNpcId) + .Where(x => x.Id is not SatisfactionSupplyNpcId and not AlliedSocietyDailyId) .Where(x => x.Info.Name.Contains(_searchString, StringComparison.CurrentCultureIgnoreCase)) .Where(x => !_questFunctions.IsQuestUnobtainable(x.Id)); } -- 2.45.2 From d59476f7f88b0d5c497da4aeba91572fbd0be982 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sun, 22 Dec 2024 00:43:58 +0100 Subject: [PATCH 343/448] Change how removed quests are shown in journal --- .../AlliedSocietyDailyIdExtensions.cs | 26 ++++++++++ QuestPathGenerator/RoslynShortcuts.cs | 1 + Questionable/Data/JournalData.cs | 3 -- Questionable/Data/QuestData.cs | 7 ++- Questionable/Functions/QuestFunctions.cs | 17 +++++++ .../QuestJournalComponent.cs | 48 ++++++++++++------- 6 files changed, 77 insertions(+), 25 deletions(-) create mode 100644 QuestPathGenerator/RoslynElements/AlliedSocietyDailyIdExtensions.cs diff --git a/QuestPathGenerator/RoslynElements/AlliedSocietyDailyIdExtensions.cs b/QuestPathGenerator/RoslynElements/AlliedSocietyDailyIdExtensions.cs new file mode 100644 index 000000000..535b66b33 --- /dev/null +++ b/QuestPathGenerator/RoslynElements/AlliedSocietyDailyIdExtensions.cs @@ -0,0 +1,26 @@ +using Microsoft.CodeAnalysis; +using Microsoft.CodeAnalysis.CSharp; +using Microsoft.CodeAnalysis.CSharp.Syntax; +using Questionable.Model.Questing; +using static Microsoft.CodeAnalysis.CSharp.SyntaxFactory; +using static Questionable.QuestPathGenerator.RoslynShortcuts; + +namespace Questionable.QuestPathGenerator.RoslynElements; + +internal static class AlliedSocietyDailyIdExtensions +{ + public static ExpressionSyntax ToExpressionSyntax(this AlliedSocietyDailyId alliedSocietyDailyId) + { + return ObjectCreationExpression( + IdentifierName(nameof(AlliedSocietyDailyId))) + .WithArgumentList( + ArgumentList( + SeparatedList( + new SyntaxNodeOrToken[] + { + Argument(LiteralValue(alliedSocietyDailyId.AlliedSociety)), + Token(SyntaxKind.CommaToken), + Argument(LiteralValue(alliedSocietyDailyId.Rank)), + }))); + } +} diff --git a/QuestPathGenerator/RoslynShortcuts.cs b/QuestPathGenerator/RoslynShortcuts.cs index 4147e47ba..c5fb47f5b 100644 --- a/QuestPathGenerator/RoslynShortcuts.cs +++ b/QuestPathGenerator/RoslynShortcuts.cs @@ -51,6 +51,7 @@ public static class RoslynShortcuts QuestId questId => questId.ToExpressionSyntax(), LeveId leveId => leveId.ToExpressionSyntax(), SatisfactionSupplyNpcId satisfactionSupplyNpcId => satisfactionSupplyNpcId.ToExpressionSyntax(), + AlliedSocietyDailyId alliedSocietyDailyId => alliedSocietyDailyId.ToExpressionSyntax(), Vector3 vector => vector.ToExpressionSyntax(), AethernetShortcut aethernetShortcut => aethernetShortcut.ToExpressionSyntax(), ChatMessage chatMessage => chatMessage.ToExpressionSyntax(), diff --git a/Questionable/Data/JournalData.cs b/Questionable/Data/JournalData.cs index 56a12b6b1..115d806e2 100644 --- a/Questionable/Data/JournalData.cs +++ b/Questionable/Data/JournalData.cs @@ -77,7 +77,6 @@ internal sealed class JournalData public string Name { get; } public uint CategoryId { get; } public List Quests { get; } - public int QuestCount => Quests.Count; } internal sealed class Category(JournalCategory journalCategory, IReadOnlyList genres) @@ -86,7 +85,6 @@ internal sealed class JournalData public string Name { get; } = journalCategory.Name.ToString(); public uint SectionId { get; } = journalCategory.JournalSection.RowId; public IReadOnlyList Genres { get; } = genres; - public int QuestCount => Genres.Sum(x => x.QuestCount); } internal sealed class Section(JournalSection journalSection, IReadOnlyList categories) @@ -94,6 +92,5 @@ internal sealed class JournalData public uint Id { get; } = journalSection.RowId; public string Name { get; } = journalSection.Name.ToString(); public IReadOnlyList Categories { get; } = categories; - public int QuestCount => Categories.Sum(x => x.QuestCount); } } diff --git a/Questionable/Data/QuestData.cs b/Questionable/Data/QuestData.cs index 3cb2f295a..b875d700d 100644 --- a/Questionable/Data/QuestData.cs +++ b/Questionable/Data/QuestData.cs @@ -58,8 +58,7 @@ internal sealed class QuestData .Where(x => x.RowId > 0) .Where(x => x.IssuerLocation.RowId > 0) .Select(x => new QuestInfo(x, questChapters.GetValueOrDefault(x.RowId), - startingCities.GetValueOrDefault(x.RowId))) - .Where(x => x.QuestId.Value != 1428), + startingCities.GetValueOrDefault(x.RowId))), ..dataManager.GetExcelSheet() .Where(x => x is { RowId: > 0, Npc.RowId: > 0 }) .Select(x => new SatisfactionSupplyInfo(x)), @@ -186,7 +185,7 @@ internal sealed class QuestData // initial city quests are side quests // unclear if 470 can be started as the required quest isn't available anymore ushort[] limsaSideQuests = - [107, 111, 112, 122, 663, 475, 472, 476, 470, 473, 474, 477, 486, 478, 479, 487, 59, 400, 401, 693, 405]; + [107, 111, 112, 122, 663, 475, 472, 476, 470, 473, 474, 477, 486, 478, 479, 59, 400, 401, 693, 405]; foreach (var questId in limsaSideQuests) ((QuestInfo)_quests[new QuestId(questId)]).StartingCity = 1; @@ -196,7 +195,7 @@ internal sealed class QuestData ((QuestInfo)_quests[new QuestId(questId)]).StartingCity = 2; ushort[] uldahSideQuests = - [594, 389, 390, 321, 304, 322, 388, 308, 326, 1429, 58, 687, 341, 504, 531, 506, 530, 573, 342, 505]; + [594, 389, 390, 321, 304, 322, 388, 308, 326, 58, 687, 341, 504, 531, 506, 530, 573, 342, 505]; foreach (var questId in uldahSideQuests) ((QuestInfo)_quests[new QuestId(questId)]).StartingCity = 3; diff --git a/Questionable/Functions/QuestFunctions.cs b/Questionable/Functions/QuestFunctions.cs index fc5d7935c..8c937bcc9 100644 --- a/Questionable/Functions/QuestFunctions.cs +++ b/Questionable/Functions/QuestFunctions.cs @@ -670,6 +670,9 @@ internal sealed unsafe class QuestFunctions return true; } + if (IsQuestRemoved(questId)) + return true; + return false; } @@ -682,6 +685,20 @@ internal sealed unsafe class QuestFunctions return false; } + public bool IsQuestRemoved(ElementId elementId) + { + if (elementId is QuestId questId) + return IsQuestRemoved(questId); + else + return false; + } + + [SuppressMessage("Performance", "CA1822")] + private bool IsQuestRemoved(QuestId questId) + { + return questId.Value is 487 or 1428 or 1429; + } + private bool HasCompletedPreviousQuests(IQuestInfo questInfo, ElementId? extraCompletedQuest) { if (questInfo.PreviousQuests.Count == 0) diff --git a/Questionable/Windows/JournalComponents/QuestJournalComponent.cs b/Questionable/Windows/JournalComponents/QuestJournalComponent.cs index b68f9dd3a..04dc9bca8 100644 --- a/Questionable/Windows/JournalComponents/QuestJournalComponent.cs +++ b/Questionable/Windows/JournalComponents/QuestJournalComponent.cs @@ -93,18 +93,18 @@ internal sealed class QuestJournalComponent private void DrawSection(FilteredSection filter) { - if (filter.Section.QuestCount == 0) + (int available, int total, int obtainable, int completed) = + _sectionCounts.GetValueOrDefault(filter.Section, new()); + if (total == 0) return; - (int available, int obtainable, int completed) = _sectionCounts.GetValueOrDefault(filter.Section, new()); - ImGui.TableNextRow(); ImGui.TableNextColumn(); bool open = ImGui.TreeNodeEx(filter.Section.Name, ImGuiTreeNodeFlags.SpanFullWidth); ImGui.TableNextColumn(); - DrawCount(available, filter.Section.QuestCount); + DrawCount(available, total); ImGui.TableNextColumn(); DrawCount(completed, obtainable); @@ -119,18 +119,18 @@ internal sealed class QuestJournalComponent private void DrawCategory(FilteredCategory filter) { - if (filter.Category.QuestCount == 0) + (int available, int total, int obtainable, int completed) = + _categoryCounts.GetValueOrDefault(filter.Category, new()); + if (total == 0) return; - (int available, int obtainable, int completed) = _categoryCounts.GetValueOrDefault(filter.Category, new()); - ImGui.TableNextRow(); ImGui.TableNextColumn(); bool open = ImGui.TreeNodeEx(filter.Category.Name, ImGuiTreeNodeFlags.SpanFullWidth); ImGui.TableNextColumn(); - DrawCount(available, filter.Category.QuestCount); + DrawCount(available, total); ImGui.TableNextColumn(); DrawCount(completed, obtainable); @@ -145,18 +145,17 @@ internal sealed class QuestJournalComponent private void DrawGenre(FilteredGenre filter) { - if (filter.Genre.QuestCount == 0) + (int supported, int total, int obtainable, int completed) = _genreCounts.GetValueOrDefault(filter.Genre, new()); + if (total == 0) return; - (int supported, int obtainable, int completed) = _genreCounts.GetValueOrDefault(filter.Genre, new()); - ImGui.TableNextRow(); ImGui.TableNextColumn(); bool open = ImGui.TreeNodeEx(filter.Genre.Name, ImGuiTreeNodeFlags.SpanFullWidth); ImGui.TableNextColumn(); - DrawCount(supported, filter.Genre.QuestCount); + DrawCount(supported, total); ImGui.TableNextColumn(); DrawCount(completed, obtainable); @@ -194,7 +193,9 @@ internal sealed class QuestJournalComponent ImGui.SetCursorPosX(ImGui.GetCursorPosX() + spacing); - if (quest is { Root.Disabled: false }) + if (_questFunctions.IsQuestRemoved(questInfo.QuestId)) + _uiUtils.ChecklistItem(string.Empty, ImGuiColors.DalamudGrey, FontAwesomeIcon.Minus); + else if (quest is { Root.Disabled: false }) { List issues = _questValidator.GetIssues(quest.Id); if (issues.Any(x => x.Severity == EIssueSeverity.Error)) @@ -319,10 +320,13 @@ internal sealed class QuestJournalComponent foreach (var genre in _journalData.Genres) { int available = genre.Quests.Count(x => - _questRegistry.TryGetQuest(x.QuestId, out var quest) && !quest.Root.Disabled); + _questRegistry.TryGetQuest(x.QuestId, out var quest) && + !quest.Root.Disabled && + !_questFunctions.IsQuestRemoved(x.QuestId)); + int total = genre.Quests.Count(x => !_questFunctions.IsQuestRemoved(x.QuestId)); int obtainable = genre.Quests.Count(x => !_questFunctions.IsQuestUnobtainable(x.QuestId)); int completed = genre.Quests.Count(x => _questFunctions.IsQuestComplete(x.QuestId)); - _genreCounts[genre] = new(available, obtainable, completed); + _genreCounts[genre] = new(available, total, obtainable, completed); } foreach (var category in _journalData.Categories) @@ -332,9 +336,10 @@ internal sealed class QuestJournalComponent .Select(x => x.Value) .ToList(); int available = counts.Sum(x => x.Available); + int total = counts.Sum(x => x.Total); int obtainable = counts.Sum(x => x.Obtainable); int completed = counts.Sum(x => x.Completed); - _categoryCounts[category] = new(available, obtainable, completed); + _categoryCounts[category] = new(available, total, obtainable, completed); } foreach (var section in _journalData.Sections) @@ -344,9 +349,10 @@ internal sealed class QuestJournalComponent .Select(x => x.Value) .ToList(); int available = counts.Sum(x => x.Available); + int total = counts.Sum(x => x.Total); int obtainable = counts.Sum(x => x.Obtainable); int completed = counts.Sum(x => x.Completed); - _sectionCounts[section] = new(available, obtainable, completed); + _sectionCounts[section] = new(available, total, obtainable, completed); } } @@ -368,5 +374,11 @@ internal sealed class QuestJournalComponent private sealed record FilteredGenre(JournalData.Genre Genre, List Quests); - private sealed record JournalCounts(int Available = 0, int Obtainable = 0, int Completed = 0); + private sealed record JournalCounts(int Available, int Total, int Obtainable, int Completed) + { + public JournalCounts() + : this(0, 0, 0, 0) + { + } + } } -- 2.45.2 From 3cf0492990c0729e96ec5a16f7b4753bc6089751 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sun, 22 Dec 2024 18:04:23 +0100 Subject: [PATCH 344/448] Add ARR PLD quests --- .../ComplexCombatDataExtensions.cs | 3 + .../Class Quests/PLD/1056_Honor Lost.json | 114 ++++++++ .../PLD/1057_Power Struggles.json | 75 +++++ .../PLD/1058_Poisoned Hearts.json | 259 ++++++++++++++++++ .../PLD/1059_Parley in the Sagolii.json | 72 +++++ .../PLD/1060_Keeping the Oath.json | 100 +++++++ QuestPaths/quest-v1.json | 4 + .../Questing/ComplexCombatData.cs | 1 + Questionable/Controller/CombatController.cs | 7 +- .../Controller/CombatModules/ItemUseModule.cs | 3 +- .../QuestComponents/CreationUtilsComponent.cs | 7 +- 11 files changed, 641 insertions(+), 4 deletions(-) create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/PLD/1056_Honor Lost.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/PLD/1057_Power Struggles.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/PLD/1058_Poisoned Hearts.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/PLD/1059_Parley in the Sagolii.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/PLD/1060_Keeping the Oath.json diff --git a/QuestPathGenerator/RoslynElements/ComplexCombatDataExtensions.cs b/QuestPathGenerator/RoslynElements/ComplexCombatDataExtensions.cs index f683890f8..05afb26cc 100644 --- a/QuestPathGenerator/RoslynElements/ComplexCombatDataExtensions.cs +++ b/QuestPathGenerator/RoslynElements/ComplexCombatDataExtensions.cs @@ -21,6 +21,9 @@ internal static class ComplexCombatDataExtensions Assignment(nameof(ComplexCombatData.DataId), complexCombatData.DataId, emptyData.DataId) .AsSyntaxNodeOrToken(), + Assignment(nameof(ComplexCombatData.NameId), complexCombatData.NameId, + emptyData.NameId) + .AsSyntaxNodeOrToken(), Assignment(nameof(ComplexCombatData.MinimumKillCount), complexCombatData.MinimumKillCount, emptyData.MinimumKillCount) .AsSyntaxNodeOrToken(), diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/PLD/1056_Honor Lost.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/PLD/1056_Honor Lost.json new file mode 100644 index 000000000..b51fe2cc9 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/PLD/1056_Honor Lost.json @@ -0,0 +1,114 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "TerritoryId": 137, + "InteractionType": "EquipItem", + "ItemId": 4542, + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] The Chamber of Rule" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 131 + ] + } + } + }, + { + "DataId": 1006747, + "Position": { + "X": -20.828613, + "Y": 29.999964, + "Z": -2.4262085 + }, + "TerritoryId": 131, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": -259.72705, + "Y": 67.23717, + "Z": -293.5509 + }, + "TerritoryId": 180, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Outer La Noscea - Camp Overlook", + "Fly": true, + "SkipConditions": { + "StepIf": { + "Flying": "Locked" + } + } + }, + { + "Position": { + "X": -355.4327, + "Y": 63.813503, + "Z": -382.56308 + }, + "TerritoryId": 180, + "InteractionType": "WalkTo", + "Fly": true, + "SkipConditions": { + "StepIf": { + "Flying": "Locked" + } + } + }, + { + "DataId": 2002346, + "Position": { + "X": -312.27594, + "Y": 32.547485, + "Z": -444.9989 + }, + "TerritoryId": 180, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "ComplexCombatData": [ + { + "DataId": 6, + "NameId": 2020 + } + ], + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1006747, + "Position": { + "X": -20.828613, + "Y": 29.999964, + "Z": -2.4262085 + }, + "TerritoryId": 131, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] The Chamber of Rule" + ], + "NextQuestId": 1057 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/PLD/1057_Power Struggles.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/PLD/1057_Power Struggles.json new file mode 100644 index 000000000..2ac204b83 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/PLD/1057_Power Struggles.json @@ -0,0 +1,75 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1006747, + "Position": { + "X": -20.828613, + "Y": 29.999964, + "Z": -2.4262085 + }, + "TerritoryId": 131, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] The Chamber of Rule" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 131 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2002347, + "Position": { + "X": 175.82971, + "Y": -10.452454, + "Z": 84.91638 + }, + "TerritoryId": 145, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 383 + ], + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1006747, + "Position": { + "X": -20.828613, + "Y": 29.999964, + "Z": -2.4262085 + }, + "TerritoryId": 131, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] The Chamber of Rule" + ], + "NextQuestId": 1058 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/PLD/1058_Poisoned Hearts.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/PLD/1058_Poisoned Hearts.json new file mode 100644 index 000000000..c8861e537 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/PLD/1058_Poisoned Hearts.json @@ -0,0 +1,259 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1006747, + "Position": { + "X": -20.828613, + "Y": 29.999964, + "Z": -2.4262085 + }, + "TerritoryId": 131, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] The Chamber of Rule" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 131 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": -97.65164, + "Y": 14.866778, + "Z": -189.99821 + }, + "StopDistance": 0.5, + "TerritoryId": 146, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [ + 1923, + 1924 + ], + "AetheryteShortcut": "Southern Thanalan - Little Ala Mhigo", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + }, + "StepIf": { + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + } + } + }, + { + "DataId": 2002349, + "Position": { + "X": -97.39838, + "Y": 14.846985, + "Z": -188.2201 + }, + "TerritoryId": 146, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "Position": { + "X": -97.35628, + "Y": -14.397484, + "Z": -176.70825 + }, + "StopDistance": 0.5, + "TerritoryId": 146, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [ + 1923, + 1924 + ], + "Fly": true, + "SkipConditions": { + "StepIf": { + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + } + } + }, + { + "DataId": 2002348, + "Position": { + "X": -99.4126, + "Y": -14.4198, + "Z": -179.46143 + }, + "TerritoryId": 146, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "Position": { + "X": 137.78966, + "Y": 10.371678, + "Z": -427.8172 + }, + "StopDistance": 0.5, + "TerritoryId": 146, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [ + 1923, + 1924 + ], + "SkipConditions": { + "StepIf": { + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 16 + ] + } + } + }, + { + "Position": { + "X": 137.78966, + "Y": 10.371678, + "Z": -427.8172 + }, + "StopDistance": 0.5, + "TerritoryId": 146, + "InteractionType": "WalkTo", + "SkipConditions": { + "StepIf": { + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 16 + ] + } + } + }, + { + "DataId": 2002351, + "Position": { + "X": 137.74304, + "Y": 10.60498, + "Z": -420.5539 + }, + "TerritoryId": 146, + "InteractionType": "Interact", + "DisableNavmesh": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 16 + ] + }, + { + "Position": { + "X": 137.70113, + "Y": 10.371678, + "Z": -427.45047 + }, + "TerritoryId": 146, + "InteractionType": "WalkTo", + "DisableNavmesh": true + }, + { + "Position": { + "X": 116.208305, + "Y": 11.091853, + "Z": -475.35126 + }, + "StopDistance": 0.5, + "TerritoryId": 146, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [ + 1923, + 1924 + ] + }, + { + "DataId": 2002350, + "Position": { + "X": 115.983765, + "Y": 11.184814, + "Z": -482.7802 + }, + "TerritoryId": 146, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1006747, + "Position": { + "X": -20.828613, + "Y": 29.999964, + "Z": -2.4262085 + }, + "TerritoryId": 131, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] The Chamber of Rule" + ], + "NextQuestId": 1059 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/PLD/1059_Parley in the Sagolii.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/PLD/1059_Parley in the Sagolii.json new file mode 100644 index 000000000..2f013d5a9 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/PLD/1059_Parley in the Sagolii.json @@ -0,0 +1,72 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1006747, + "Position": { + "X": -20.828613, + "Y": 29.999964, + "Z": -2.4262085 + }, + "TerritoryId": 131, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] The Chamber of Rule" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 131 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2002356, + "Position": { + "X": -407.4312, + "Y": 7.156433, + "Z": 525.6886 + }, + "TerritoryId": 146, + "InteractionType": "SinglePlayerDuty", + "AetheryteShortcut": "Southern Thanalan - Forgotten Springs", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1006747, + "Position": { + "X": -20.828613, + "Y": 29.999964, + "Z": -2.4262085 + }, + "TerritoryId": 131, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] The Chamber of Rule" + ], + "NextQuestId": 1060 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/PLD/1060_Keeping the Oath.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/PLD/1060_Keeping the Oath.json new file mode 100644 index 000000000..e9f2519f4 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/PLD/1060_Keeping the Oath.json @@ -0,0 +1,100 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1006747, + "Position": { + "X": -20.828613, + "Y": 29.999964, + "Z": -2.4262085 + }, + "TerritoryId": 131, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] The Chamber of Rule" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 131 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1007829, + "Position": { + "X": 26.932129, + "Y": 13, + "Z": 44.418945 + }, + "TerritoryId": 141, + "InteractionType": "Interact", + "AetheryteShortcut": "Central Thanalan - Black Brush Station", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": -775.4471, + "Y": 224.95006, + "Z": 29.04266 + }, + "StopDistance": 0.5, + "TerritoryId": 155, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", + "Fly": true + }, + { + "Position": { + "X": -775.4471, + "Y": 224.95006, + "Z": 29.04266 + }, + "StopDistance": 0.5, + "TerritoryId": 155, + "InteractionType": "SinglePlayerDuty", + "Mount": false + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1006747, + "Position": { + "X": -20.828613, + "Y": 29.999964, + "Z": -2.4262085 + }, + "TerritoryId": 131, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] The Chamber of Rule" + ], + "NextQuestId": 2032 + } + ] + } + ] +} diff --git a/QuestPaths/quest-v1.json b/QuestPaths/quest-v1.json index 359694074..7013ea2dc 100644 --- a/QuestPaths/quest-v1.json +++ b/QuestPaths/quest-v1.json @@ -617,6 +617,10 @@ "description": "The enemy data id which is supposed to be killed", "type": "integer" }, + "NameId": { + "description": "Name id of the enemy which is supposed to be killed, helpful if multiple nearby enemies share the same DataId", + "type": "integer" + }, "MinimumKillCount": { "description": "Overworld mobs: If this number of mobs has been killed, will wait a bit before attempting to pull another mob to see if the quest progresses", "type": "integer" diff --git a/Questionable.Model/Questing/ComplexCombatData.cs b/Questionable.Model/Questing/ComplexCombatData.cs index 5f85c2433..adc80f4a9 100644 --- a/Questionable.Model/Questing/ComplexCombatData.cs +++ b/Questionable.Model/Questing/ComplexCombatData.cs @@ -5,6 +5,7 @@ namespace Questionable.Model.Questing; public sealed class ComplexCombatData { public uint DataId { get; set; } + public uint? NameId { get; set; } // TODO Use this public uint? MinimumKillCount { get; set; } diff --git a/Questionable/Controller/CombatController.cs b/Questionable/Controller/CombatController.cs index 91eca6c14..d7ca7fde7 100644 --- a/Questionable/Controller/CombatController.cs +++ b/Questionable/Controller/CombatController.cs @@ -242,7 +242,8 @@ internal sealed class CombatController : IDisposable if (_currentFight.Data.CompletedComplexDatas.Contains(i)) continue; - if (complexCombatData[i].DataId == battleNpc.DataId) + if (complexCombatData[i].DataId == battleNpc.DataId && + (complexCombatData[i].NameId == null || complexCombatData[i].NameId == battleNpc.NameId)) return 100; } } @@ -261,7 +262,9 @@ internal sealed class CombatController : IDisposable if (gameObjectStruct->NamePlateIconId is 60093 or 60732) return 0; - var enemyData = _currentFight.Data.ComplexCombatDatas.FirstOrDefault(x => x.DataId == battleNpc.DataId); + var enemyData = _currentFight.Data.ComplexCombatDatas + .FirstOrDefault(x => x.DataId == battleNpc.DataId && + (x.NameId == null || x.NameId == battleNpc.NameId)); if (enemyData is { IgnoreQuestMarker: true }) { if (battleNpc.StatusFlags.HasFlag(StatusFlags.InCombat)) diff --git a/Questionable/Controller/CombatModules/ItemUseModule.cs b/Questionable/Controller/CombatModules/ItemUseModule.cs index 56da033fa..65f829a17 100644 --- a/Questionable/Controller/CombatModules/ItemUseModule.cs +++ b/Questionable/Controller/CombatModules/ItemUseModule.cs @@ -86,7 +86,8 @@ internal sealed class ItemUseModule : ICombatModule } if (_combatData.KillEnemyDataIds.Contains(nextTarget.DataId) || - _combatData.ComplexCombatDatas.Any(x => x.DataId == nextTarget.DataId)) + _combatData.ComplexCombatDatas.Any(x => x.DataId == nextTarget.DataId && + (x.NameId == null || (nextTarget is ICharacter character && x.NameId == character.NameId)))) { if (_isDoingRotation) { diff --git a/Questionable/Windows/QuestComponents/CreationUtilsComponent.cs b/Questionable/Windows/QuestComponents/CreationUtilsComponent.cs index 8fc03bb42..be6f31c19 100644 --- a/Questionable/Windows/QuestComponents/CreationUtilsComponent.cs +++ b/Questionable/Windows/QuestComponents/CreationUtilsComponent.cs @@ -11,6 +11,7 @@ using Dalamud.Interface.Colors; using Dalamud.Interface.Components; using Dalamud.Plugin.Services; using FFXIVClientStructs.FFXIV.Client.Game; +using FFXIVClientStructs.FFXIV.Client.Game.Character; using FFXIVClientStructs.FFXIV.Client.Game.Control; using FFXIVClientStructs.FFXIV.Client.Game.Event; using FFXIVClientStructs.FFXIV.Client.Game.Object; @@ -199,9 +200,13 @@ internal sealed class CreationUtilsComponent private unsafe void DrawTargetDetails(IGameObject target) { + string nameId = string.Empty; + if (target is ICharacter character) + nameId = $"; n={character.NameId}"; + ImGui.Separator(); ImGui.Text(string.Create(CultureInfo.InvariantCulture, - $"Target: {target.Name} ({target.ObjectKind}; {target.DataId})")); + $"Target: {target.Name} ({target.ObjectKind}; {target.DataId}{nameId})")); if (_clientState.LocalPlayer != null) { -- 2.45.2 From d9b054e950a1c2e67b31f61f0fb07ed258fb213f Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sun, 22 Dec 2024 18:34:36 +0100 Subject: [PATCH 345/448] Add SB PLD quests --- .../PLD/2571_Tournament of the Century.json | 171 +++++++++++++ .../Class Quests/PLD/2572_In Thal's Name.json | 99 +++++++ .../Class Quests/PLD/2573_In Nald's Name.json | 151 +++++++++++ .../PLD/2574_Fade to Black Lotus.json | 241 ++++++++++++++++++ .../PLD/2575_Raising the Sword.json | 73 ++++++ 5 files changed, 735 insertions(+) create mode 100644 QuestPaths/4.x - Stormblood/Class Quests/PLD/2571_Tournament of the Century.json create mode 100644 QuestPaths/4.x - Stormblood/Class Quests/PLD/2572_In Thal's Name.json create mode 100644 QuestPaths/4.x - Stormblood/Class Quests/PLD/2573_In Nald's Name.json create mode 100644 QuestPaths/4.x - Stormblood/Class Quests/PLD/2574_Fade to Black Lotus.json create mode 100644 QuestPaths/4.x - Stormblood/Class Quests/PLD/2575_Raising the Sword.json diff --git a/QuestPaths/4.x - Stormblood/Class Quests/PLD/2571_Tournament of the Century.json b/QuestPaths/4.x - Stormblood/Class Quests/PLD/2571_Tournament of the Century.json new file mode 100644 index 000000000..ad10e1a63 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/PLD/2571_Tournament of the Century.json @@ -0,0 +1,171 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1006747, + "Position": { + "X": -20.828613, + "Y": 29.999964, + "Z": -2.4262085 + }, + "TerritoryId": 131, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] The Chamber of Rule" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 131 + ] + } + }, + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_JOBPLD601_02571_Q1_000_000", + "Answer": "TEXT_JOBPLD601_02571_A1_000_001" + } + ] + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1021342, + "Position": { + "X": -25.558899, + "Y": 38.010006, + "Z": 82.6886 + }, + "TerritoryId": 131, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1021343, + "Position": { + "X": -75.60846, + "Y": 6.9845715, + "Z": 6.210388 + }, + "TerritoryId": 131, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Ul'dah] The Chamber of Rule", + "[Ul'dah] Gladiators' Guild" + ], + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 1021345, + "Position": { + "X": -69.96271, + "Y": 7.0740614, + "Z": -10.696594 + }, + "TerritoryId": 131, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, + { + "DataId": 1021346, + "Position": { + "X": -96.69641, + "Y": 6.9845695, + "Z": -9.506409 + }, + "TerritoryId": 131, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 16 + ] + }, + { + "DataId": 1021347, + "Position": { + "X": -105.638245, + "Y": 6.9839897, + "Z": 3.0059814 + }, + "TerritoryId": 131, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 8 + ] + }, + { + "DataId": 1021344, + "Position": { + "X": -96.910095, + "Y": 6.984566, + "Z": 15.0911255 + }, + "TerritoryId": 131, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1001739, + "Position": { + "X": -94.529724, + "Y": 6.5000024, + "Z": 39.81079 + }, + "TerritoryId": 131, + "InteractionType": "CompleteQuest", + "NextQuestId": 2572 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Class Quests/PLD/2572_In Thal's Name.json b/QuestPaths/4.x - Stormblood/Class Quests/PLD/2572_In Thal's Name.json new file mode 100644 index 000000000..da7e7c3cb --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/PLD/2572_In Thal's Name.json @@ -0,0 +1,99 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1001739, + "Position": { + "X": -94.529724, + "Y": 6.5000024, + "Z": 39.81079 + }, + "TerritoryId": 131, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Gladiators' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 131 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2008101, + "Position": { + "X": -82.44458, + "Y": 1.9378662, + "Z": 60.77661 + }, + "TerritoryId": 131, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1021271, + "Position": { + "X": -87.174866, + "Y": 1.9499679, + "Z": 57.358643 + }, + "TerritoryId": 131, + "InteractionType": "SinglePlayerDuty" + } + ] + }, + { + "Sequence": 3 + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1021275, + "Position": { + "X": -84.67236, + "Y": 1.9500066, + "Z": 60.868164 + }, + "StopDistance": 5, + "TerritoryId": 131, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1001739, + "Position": { + "X": -94.529724, + "Y": 6.5000024, + "Z": 39.81079 + }, + "TerritoryId": 131, + "InteractionType": "CompleteQuest", + "NextQuestId": 2573 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Class Quests/PLD/2573_In Nald's Name.json b/QuestPaths/4.x - Stormblood/Class Quests/PLD/2573_In Nald's Name.json new file mode 100644 index 000000000..a89052e1c --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/PLD/2573_In Nald's Name.json @@ -0,0 +1,151 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1001739, + "Position": { + "X": -94.529724, + "Y": 6.5000024, + "Z": 39.81079 + }, + "TerritoryId": 131, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Gladiators' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 131 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1021364, + "Position": { + "X": -84.36719, + "Y": 6.9845676, + "Z": 11.276367 + }, + "TerritoryId": 131, + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_JOBPLD650_02573_Q1_000_011", + "Yes": true + } + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1021365, + "Position": { + "X": -94.010864, + "Y": 6.9845667, + "Z": 15.548889 + }, + "TerritoryId": 131, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 1021366, + "Position": { + "X": -99.83978, + "Y": 6.9845657, + "Z": 14.297607 + }, + "TerritoryId": 131, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1001739, + "Position": { + "X": -94.529724, + "Y": 6.5000024, + "Z": 39.81079 + }, + "TerritoryId": 131, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 2008187, + "Position": { + "X": 22.2323, + "Y": 7.1869507, + "Z": -101.24359 + }, + "TerritoryId": 130, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Ul'dah] Gladiators' Guild", + "[Ul'dah] Adventurers' Guild" + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1001739, + "Position": { + "X": -94.529724, + "Y": 6.5000024, + "Z": 39.81079 + }, + "TerritoryId": 131, + "InteractionType": "CompleteQuest", + "AethernetShortcut": [ + "[Ul'dah] Adventurers' Guild", + "[Ul'dah] Gladiators' Guild" + ], + "NextQuestId": 2574 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Class Quests/PLD/2574_Fade to Black Lotus.json b/QuestPaths/4.x - Stormblood/Class Quests/PLD/2574_Fade to Black Lotus.json new file mode 100644 index 000000000..05b93b70d --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/PLD/2574_Fade to Black Lotus.json @@ -0,0 +1,241 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1001739, + "Position": { + "X": -94.529724, + "Y": 6.5000024, + "Z": 39.81079 + }, + "TerritoryId": 131, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Gladiators' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 131 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1001739, + "Position": { + "X": -94.529724, + "Y": 6.5000024, + "Z": 39.81079 + }, + "TerritoryId": 131, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1021271, + "Position": { + "X": -87.174866, + "Y": 1.9499679, + "Z": 57.358643 + }, + "TerritoryId": 131, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "Position": { + "X": 64.84746, + "Y": 7.9209166, + "Z": -37.27604 + }, + "TerritoryId": 131, + "InteractionType": "WalkTo", + "RestartNavigationIfCancelled": false, + "AethernetShortcut": [ + "[Ul'dah] Gladiators' Guild", + "[Ul'dah] Sapphire Avenue Exchange" + ] + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1021379, + "Position": { + "X": 81.01013, + "Y": 8, + "Z": -73.624756 + }, + "TerritoryId": 131, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 1021378, + "Position": { + "X": 97.45935, + "Y": 7.9999995, + "Z": -11.947815 + }, + "TerritoryId": 131, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 1021380, + "Position": { + "X": 105.6687, + "Y": 8, + "Z": 4.714966 + }, + "TerritoryId": 131, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1021381, + "Position": { + "X": 138.53662, + "Y": 4, + "Z": 51.377075 + }, + "TerritoryId": 131, + "InteractionType": "Say", + "ChatMessage": { + "Key": "TEXT_JOBPLD680_02574_SYSTEM_000_084" + } + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "Position": { + "X": 165.3437, + "Y": 4.014847, + "Z": 46.210514 + }, + "TerritoryId": 131, + "InteractionType": "WalkTo", + "SkipConditions": { + "StepIf": { + "InTerritory": [ + 141 + ] + } + } + }, + { + "DataId": 1021382, + "Position": { + "X": 282.39868, + "Y": 15.414177, + "Z": 513.1456 + }, + "TerritoryId": 141, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 7237, + 7238 + ], + "Fly": true, + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_JOBPLD680_02574_Q1_000_000", + "Answer": "TEXT_JOBPLD680_02574_A1_000_002" + } + ] + } + ] + }, + { + "Sequence": 7, + "Steps": [ + { + "DataId": 1021383, + "Position": { + "X": 284.71802, + "Y": 15.770843, + "Z": 512.5658 + }, + "StopDistance": 7, + "TerritoryId": 141, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1001739, + "Position": { + "X": -94.529724, + "Y": 6.5000024, + "Z": 39.81079 + }, + "TerritoryId": 131, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Gladiators' Guild" + ], + "NextQuestId": 2575 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Class Quests/PLD/2575_Raising the Sword.json b/QuestPaths/4.x - Stormblood/Class Quests/PLD/2575_Raising the Sword.json new file mode 100644 index 000000000..545573076 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/PLD/2575_Raising the Sword.json @@ -0,0 +1,73 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1001739, + "Position": { + "X": -94.529724, + "Y": 6.5000024, + "Z": 39.81079 + }, + "TerritoryId": 131, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Gladiators' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 131 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1021271, + "Position": { + "X": -87.174866, + "Y": 1.9499679, + "Z": 57.358643 + }, + "TerritoryId": 131, + "InteractionType": "SinglePlayerDuty" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": -95.62987, + "Y": 6.500003, + "Z": 41.749443 + }, + "TerritoryId": 131, + "InteractionType": "WalkTo" + }, + { + "DataId": 1001739, + "Position": { + "X": -94.529724, + "Y": 6.5000024, + "Z": 39.81079 + }, + "TerritoryId": 131, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} -- 2.45.2 From 1d6e9423bce8167d33ab15931c90a4c059f74fb2 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sun, 22 Dec 2024 19:27:15 +0100 Subject: [PATCH 346/448] Add SB DRG quests --- .../DRG/2910_Friends through Eternity.json | 83 ++++++++ .../Class Quests/DRG/2911_Drowsy Dragons.json | 138 +++++++++++++ .../2912_Serpent and the Sea of Rubies.json | 180 ++++++++++++++++ .../DRG/2913_Dark as the Night Sky.json | 193 ++++++++++++++++++ .../Class Quests/DRG/2914_Dragon Sound.json | 59 ++++++ 5 files changed, 653 insertions(+) create mode 100644 QuestPaths/4.x - Stormblood/Class Quests/DRG/2910_Friends through Eternity.json create mode 100644 QuestPaths/4.x - Stormblood/Class Quests/DRG/2911_Drowsy Dragons.json create mode 100644 QuestPaths/4.x - Stormblood/Class Quests/DRG/2912_Serpent and the Sea of Rubies.json create mode 100644 QuestPaths/4.x - Stormblood/Class Quests/DRG/2913_Dark as the Night Sky.json create mode 100644 QuestPaths/4.x - Stormblood/Class Quests/DRG/2914_Dragon Sound.json diff --git a/QuestPaths/4.x - Stormblood/Class Quests/DRG/2910_Friends through Eternity.json b/QuestPaths/4.x - Stormblood/Class Quests/DRG/2910_Friends through Eternity.json new file mode 100644 index 000000000..dcd43d992 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/DRG/2910_Friends through Eternity.json @@ -0,0 +1,83 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "Position": { + "X": 215.65454, + "Y": 222.1, + "Z": 345.1806 + }, + "TerritoryId": 155, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + }, + "$": "Alberic" + }, + { + "DataId": 1006748, + "Position": { + "X": 217.88354, + "Y": 222, + "Z": 345.3269 + }, + "TerritoryId": 155, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2008547, + "Position": { + "X": 47.592896, + "Y": -37.003174, + "Z": -297.71887 + }, + "TerritoryId": 398, + "InteractionType": "Interact", + "AetheryteShortcut": "The Dravanian Forelands - Tailfeather", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": 215.65454, + "Y": 222.1, + "Z": 345.1806 + }, + "TerritoryId": 155, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", + "Fly": true, + "$": "Alberic" + }, + { + "DataId": 1006748, + "Position": { + "X": 217.88354, + "Y": 222, + "Z": 345.3269 + }, + "TerritoryId": 155, + "InteractionType": "CompleteQuest", + "NextQuestId": 2911 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Class Quests/DRG/2911_Drowsy Dragons.json b/QuestPaths/4.x - Stormblood/Class Quests/DRG/2911_Drowsy Dragons.json new file mode 100644 index 000000000..a6e1303be --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/DRG/2911_Drowsy Dragons.json @@ -0,0 +1,138 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "Position": { + "X": 215.65454, + "Y": 222.1, + "Z": 345.1806 + }, + "TerritoryId": 155, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + }, + "$": "Alberic" + }, + { + "DataId": 1006748, + "Position": { + "X": 217.88354, + "Y": 222, + "Z": 345.3269 + }, + "TerritoryId": 155, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1022543, + "Position": { + "X": 46.951904, + "Y": -37.000004, + "Z": -298.48175 + }, + "TerritoryId": 398, + "InteractionType": "Interact", + "AetheryteShortcut": "The Dravanian Forelands - Tailfeather", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2008548, + "Position": { + "X": 80.91858, + "Y": 68.16199, + "Z": -696.00977 + }, + "TerritoryId": 612, + "InteractionType": "Interact", + "AetheryteShortcut": "Rhalgr's Reach", + "AethernetShortcut": [ + "[Rhalgr's Reach] Aetheryte Plaza", + "[Rhalgr's Reach] Fringes Gate" + ], + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "Position": { + "X": 91.50208, + "Y": 68.1708, + "Z": -722.4152 + }, + "StopDistance": 0.5, + "TerritoryId": 612, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [ + 8046 + ] + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1022547, + "Position": { + "X": 92.39331, + "Y": 68.1708, + "Z": -712.8557 + }, + "TerritoryId": 612, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": 215.65454, + "Y": 222.1, + "Z": 345.1806 + }, + "TerritoryId": 155, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", + "Fly": true, + "$": "Alberic" + }, + { + "DataId": 1006748, + "Position": { + "X": 217.88354, + "Y": 222, + "Z": 345.3269 + }, + "TerritoryId": 155, + "InteractionType": "CompleteQuest", + "NextQuestId": 2912 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Class Quests/DRG/2912_Serpent and the Sea of Rubies.json b/QuestPaths/4.x - Stormblood/Class Quests/DRG/2912_Serpent and the Sea of Rubies.json new file mode 100644 index 000000000..879162c1f --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/DRG/2912_Serpent and the Sea of Rubies.json @@ -0,0 +1,180 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "Position": { + "X": 215.65454, + "Y": 222.1, + "Z": 345.1806 + }, + "TerritoryId": 155, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + }, + "$": "Alberic" + }, + { + "DataId": 1006748, + "Position": { + "X": 217.88354, + "Y": 222, + "Z": 345.3269 + }, + "TerritoryId": 155, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1018982, + "Position": { + "X": -83.08539, + "Y": 18.05, + "Z": -191.14978 + }, + "TerritoryId": 628, + "InteractionType": "Interact", + "AetheryteShortcut": "Kugane", + "AethernetShortcut": [ + "[Kugane] Aetheryte Plaza", + "[Kugane] Bokairo Inn" + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1022550, + "Position": { + "X": -728.9082, + "Y": 0.34026724, + "Z": -427.9698 + }, + "TerritoryId": 613, + "InteractionType": "Interact", + "AetheryteShortcut": "Ruby Sea - Onokoro", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1022551, + "Position": { + "X": -772.549, + "Y": 4.7634416, + "Z": -504.29544 + }, + "TerritoryId": 613, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 2008550, + "Position": { + "X": -711.20776, + "Y": 0.44250488, + "Z": -545.4337 + }, + "TerritoryId": 613, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "Position": { + "X": 657.20935, + "Y": 1.1933115, + "Z": -799.82635 + }, + "TerritoryId": 613, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Ruby Sea - Onokoro", + "Fly": true + }, + { + "DataId": 1022552, + "Position": { + "X": 657.7401, + "Y": 1.0385457, + "Z": -797.8485 + }, + "TerritoryId": 613, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 7488 + ] + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1022552, + "Position": { + "X": 657.7401, + "Y": 1.0385457, + "Z": -797.8485 + }, + "TerritoryId": 613, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1022553, + "Position": { + "X": -92.607056, + "Y": 18.9999, + "Z": -194.41522 + }, + "TerritoryId": 628, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Kugane", + "AethernetShortcut": [ + "[Kugane] Aetheryte Plaza", + "[Kugane] Bokairo Inn" + ], + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_JOBDRG650_02912_Q1_000_000", + "Answer": "TEXT_JOBDRG650_02912_A1_000_001" + } + ], + "NextQuestId": 2913 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Class Quests/DRG/2913_Dark as the Night Sky.json b/QuestPaths/4.x - Stormblood/Class Quests/DRG/2913_Dark as the Night Sky.json new file mode 100644 index 000000000..30db4f697 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/DRG/2913_Dark as the Night Sky.json @@ -0,0 +1,193 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1022553, + "Position": { + "X": -92.607056, + "Y": 18.9999, + "Z": -194.41522 + }, + "TerritoryId": 628, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Kugane", + "AethernetShortcut": [ + "[Kugane] Aetheryte Plaza", + "[Kugane] Bokairo Inn" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1022748, + "Position": { + "X": 13.046387, + "Y": -7.961876, + "Z": -99.77875 + }, + "TerritoryId": 628, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Kugane] Bokairo Inn", + "[Kugane] Rakuza District" + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1022560, + "Position": { + "X": 528.4656, + "Y": -19.450546, + "Z": 273.33484 + }, + "TerritoryId": 622, + "InteractionType": "Interact", + "AetheryteShortcut": "Azim Steppe - Reunion", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1022554, + "Position": { + "X": 554.9553, + "Y": -19.411264, + "Z": 274.92175 + }, + "TerritoryId": 622, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 1022555, + "Position": { + "X": 545.4337, + "Y": -19.505648, + "Z": 309.68176 + }, + "TerritoryId": 622, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 1022556, + "Position": { + "X": 570.3364, + "Y": -19.50564, + "Z": 319.11182 + }, + "TerritoryId": 622, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1022560, + "Position": { + "X": 528.4656, + "Y": -19.450546, + "Z": 273.33484 + }, + "TerritoryId": 622, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1022561, + "Position": { + "X": -288.4718, + "Y": 60.053967, + "Z": -328.1148 + }, + "TerritoryId": 622, + "InteractionType": "SinglePlayerDuty", + "Fly": true + } + ] + }, + { + "Sequence": 6 + }, + { + "Sequence": 7, + "Steps": [ + { + "DataId": 1022569, + "Position": { + "X": -309.5293, + "Y": 61.288292, + "Z": -319.50867 + }, + "TerritoryId": 622, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1022560, + "Position": { + "X": 528.4656, + "Y": -19.450546, + "Z": 273.33484 + }, + "TerritoryId": 622, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Azim Steppe - Reunion", + "Fly": true, + "NextQuestId": 2914 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Class Quests/DRG/2914_Dragon Sound.json b/QuestPaths/4.x - Stormblood/Class Quests/DRG/2914_Dragon Sound.json new file mode 100644 index 000000000..3561d3c05 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/DRG/2914_Dragon Sound.json @@ -0,0 +1,59 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1022560, + "Position": { + "X": 528.4656, + "Y": -19.450546, + "Z": 273.33484 + }, + "TerritoryId": 622, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Azim Steppe - Reunion", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1022562, + "Position": { + "X": -494.3466, + "Y": 71.278076, + "Z": -509.51404 + }, + "TerritoryId": 622, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1022562, + "Position": { + "X": -494.3466, + "Y": 71.278076, + "Z": -509.51404 + }, + "StopDistance": 7, + "TerritoryId": 622, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} -- 2.45.2 From 3d16879980f12eec77a7e7487c5294f13e61f5b7 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sun, 22 Dec 2024 19:28:14 +0100 Subject: [PATCH 347/448] Add unlock conditions to 'A Hero's Journey' --- Questionable/Data/QuestData.cs | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/Questionable/Data/QuestData.cs b/Questionable/Data/QuestData.cs index b875d700d..7e07f2f92 100644 --- a/Questionable/Data/QuestData.cs +++ b/Questionable/Data/QuestData.cs @@ -182,6 +182,14 @@ internal sealed class QuestData AddPreviousQuest(new QuestId(3833), new QuestId(spearfishing)); */ + // The Hero's Journey + AddPreviousQuest(new QuestId(3986), new QuestId(2115)); + AddPreviousQuest(new QuestId(3986), new QuestId(2116)); + AddPreviousQuest(new QuestId(3986), new QuestId(2281)); + AddPreviousQuest(new QuestId(3986), new QuestId(2333)); + AddPreviousQuest(new QuestId(3986), new QuestId(2395)); + AddPreviousQuest(new QuestId(3986), new QuestId(3985)); + // initial city quests are side quests // unclear if 470 can be started as the required quest isn't available anymore ushort[] limsaSideQuests = -- 2.45.2 From 55b62be3b8defbb7a3afffe0f12a8e7022566615 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sun, 22 Dec 2024 20:36:52 +0100 Subject: [PATCH 348/448] Add HW BLM quests --- .../BLM/1078_Always Bet on Black.json | 3 +- .../Class Quests/BLM/1678_Black Books.json | 100 +++++++++ .../BLM/1679_An Unexpected Journey.json | 111 ++++++++++ .../Class Quests/BLM/1680_A Cunning Plan.json | 122 +++++++++++ .../BLM/1681_Black Squawk Down.json | 98 +++++++++ ...82_Destruction in the Name of Justice.json | 194 ++++++++++++++++++ .../BLM/1683_The Defiant Ones.json | 160 +++++++++++++++ 7 files changed, 787 insertions(+), 1 deletion(-) create mode 100644 QuestPaths/3.x - Heavensward/Class Quests/BLM/1678_Black Books.json create mode 100644 QuestPaths/3.x - Heavensward/Class Quests/BLM/1679_An Unexpected Journey.json create mode 100644 QuestPaths/3.x - Heavensward/Class Quests/BLM/1680_A Cunning Plan.json create mode 100644 QuestPaths/3.x - Heavensward/Class Quests/BLM/1681_Black Squawk Down.json create mode 100644 QuestPaths/3.x - Heavensward/Class Quests/BLM/1682_Destruction in the Name of Justice.json create mode 100644 QuestPaths/3.x - Heavensward/Class Quests/BLM/1683_The Defiant Ones.json diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/BLM/1078_Always Bet on Black.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/BLM/1078_Always Bet on Black.json index a24c97b80..b8a3faba7 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/BLM/1078_Always Bet on Black.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/BLM/1078_Always Bet on Black.json @@ -201,7 +201,8 @@ "AetheryteShortcutIf": { "InSameTerritory": true } - } + }, + "NextQuestId": 1678 } ] } diff --git a/QuestPaths/3.x - Heavensward/Class Quests/BLM/1678_Black Books.json b/QuestPaths/3.x - Heavensward/Class Quests/BLM/1678_Black Books.json new file mode 100644 index 000000000..d66e1c0dd --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Class Quests/BLM/1678_Black Books.json @@ -0,0 +1,100 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1006752, + "Position": { + "X": 87.5105, + "Y": 18, + "Z": 113.725464 + }, + "TerritoryId": 131, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 131 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1004597, + "Position": { + "X": -292.10345, + "Y": -2.910112, + "Z": 245.59387 + }, + "TerritoryId": 146, + "InteractionType": "Interact", + "AetheryteShortcut": "Southern Thanalan - Forgotten Springs", + "Fly": true, + "TargetTerritoryId": 146 + }, + { + "DataId": 1013042, + "Position": { + "X": -465.93427, + "Y": -3.164927, + "Z": 66.666626 + }, + "TerritoryId": 146, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1013043, + "Position": { + "X": 184.6189, + "Y": 3.1809216, + "Z": -334.27942 + }, + "TerritoryId": 145, + "InteractionType": "Interact", + "AetheryteShortcut": "Eastern Thanalan - Camp Drybone", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1006752, + "Position": { + "X": 87.5105, + "Y": 18, + "Z": 113.725464 + }, + "TerritoryId": 131, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ], + "NextQuestId": 1679 + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Class Quests/BLM/1679_An Unexpected Journey.json b/QuestPaths/3.x - Heavensward/Class Quests/BLM/1679_An Unexpected Journey.json new file mode 100644 index 000000000..e0fcaf33c --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Class Quests/BLM/1679_An Unexpected Journey.json @@ -0,0 +1,111 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1006752, + "Position": { + "X": 87.5105, + "Y": 18, + "Z": 113.725464 + }, + "TerritoryId": 131, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 131 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1006753, + "Position": { + "X": 325.063, + "Y": 11.236564, + "Z": -6.2105103 + }, + "TerritoryId": 145, + "InteractionType": "Interact", + "AetheryteShortcut": "Eastern Thanalan - Camp Drybone", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1013044, + "Position": { + "X": 191.72961, + "Y": -1.9153122, + "Z": 32.944214 + }, + "TerritoryId": 145, + "InteractionType": "Interact", + "Fly": true, + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_JOBBLM520_01679_Q1_000_000", + "Answer": "TEXT_JOBBLM520_01679_A1_000_002" + } + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1006753, + "Position": { + "X": 325.063, + "Y": 11.236564, + "Z": -6.2105103 + }, + "TerritoryId": 145, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1006752, + "Position": { + "X": 87.5105, + "Y": 18, + "Z": 113.725464 + }, + "TerritoryId": 131, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ], + "NextQuestId": 1680 + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Class Quests/BLM/1680_A Cunning Plan.json b/QuestPaths/3.x - Heavensward/Class Quests/BLM/1680_A Cunning Plan.json new file mode 100644 index 000000000..0f39034c5 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Class Quests/BLM/1680_A Cunning Plan.json @@ -0,0 +1,122 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1006752, + "Position": { + "X": 87.5105, + "Y": 18, + "Z": 113.725464 + }, + "TerritoryId": 131, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 131 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1013047, + "Position": { + "X": 409.4757, + "Y": -3.3999999, + "Z": 198.99292 + }, + "TerritoryId": 139, + "InteractionType": "Interact", + "AetheryteShortcut": "Upper La Noscea - Camp Bronze Lake", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2005469, + "Position": { + "X": 377.6454, + "Y": 0.77819824, + "Z": -3.616455 + }, + "TerritoryId": 139, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "Position": { + "X": 397.41708, + "Y": -3.3999999, + "Z": 10.57353 + }, + "StopDistance": 0.5, + "TerritoryId": 139, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [ + 5049 + ] + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1013048, + "Position": { + "X": 399.0996, + "Y": -3.3999999, + "Z": 11.215393 + }, + "TerritoryId": 139, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1006752, + "Position": { + "X": 87.5105, + "Y": 18, + "Z": 113.725464 + }, + "TerritoryId": 131, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ], + "NextQuestId": 1681 + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Class Quests/BLM/1681_Black Squawk Down.json b/QuestPaths/3.x - Heavensward/Class Quests/BLM/1681_Black Squawk Down.json new file mode 100644 index 000000000..8aeb33501 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Class Quests/BLM/1681_Black Squawk Down.json @@ -0,0 +1,98 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1006752, + "Position": { + "X": 87.5105, + "Y": 18, + "Z": 113.725464 + }, + "TerritoryId": 131, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 131 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": -173.73607, + "Y": -61.73199, + "Z": 370.57892 + }, + "StopDistance": 0.5, + "TerritoryId": 154, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [ + 4360 + ], + "AetheryteShortcut": "North Shroud - Fallgourd Float", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1013055, + "Position": { + "X": -175.1278, + "Y": -61.86741, + "Z": 371.99963 + }, + "TerritoryId": 154, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1006752, + "Position": { + "X": 87.5105, + "Y": 18, + "Z": 113.725464 + }, + "TerritoryId": 131, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ], + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_JOBBLM560_01681_Q1_000_000", + "Answer": "TEXT_JOBBLM560_01681_A1_000_001" + } + ], + "NextQuestId": 1682 + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Class Quests/BLM/1682_Destruction in the Name of Justice.json b/QuestPaths/3.x - Heavensward/Class Quests/BLM/1682_Destruction in the Name of Justice.json new file mode 100644 index 000000000..94a7616e8 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Class Quests/BLM/1682_Destruction in the Name of Justice.json @@ -0,0 +1,194 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1006752, + "Position": { + "X": 87.5105, + "Y": 18, + "Z": 113.725464 + }, + "TerritoryId": 131, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 131 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1013059, + "Position": { + "X": 30.411133, + "Y": 7.1999984, + "Z": -103.07471 + }, + "TerritoryId": 130, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Ul'dah] Weavers' Guild", + "[Ul'dah] Adventurers' Guild" + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1013060, + "Position": { + "X": 26.04712, + "Y": 1.2752796, + "Z": 92.851074 + }, + "TerritoryId": 418, + "InteractionType": "Interact", + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] The Brume" + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1013061, + "Position": { + "X": -277.69897, + "Y": 124.9653, + "Z": -19.394226 + }, + "StopDistance": 1.5, + "TerritoryId": 397, + "InteractionType": "Interact", + "AetheryteShortcut": "Coerthas Western Highlands - Falcon's Nest", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1013064, + "Position": { + "X": -308.33905, + "Y": 126.09976, + "Z": -14.847046 + }, + "TerritoryId": 397, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, + { + "DataId": 1013062, + "Position": { + "X": -301.99133, + "Y": 126.85933, + "Z": 4.8981323 + }, + "TerritoryId": 397, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 1013063, + "Position": { + "X": -284.44348, + "Y": 127.18384, + "Z": 11.825684 + }, + "TerritoryId": 397, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1013065, + "Position": { + "X": -67.00244, + "Y": 98.04463, + "Z": 189.99011 + }, + "TerritoryId": 397, + "InteractionType": "SinglePlayerDuty", + "Fly": true, + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_JOBBLM580_01682_Q1_000_000", + "Answer": "TEXT_JOBBLM580_01682_A1_000_001" + } + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1006752, + "Position": { + "X": 87.5105, + "Y": 18, + "Z": 113.725464 + }, + "TerritoryId": 131, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ], + "NextQuestId": 1683 + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Class Quests/BLM/1683_The Defiant Ones.json b/QuestPaths/3.x - Heavensward/Class Quests/BLM/1683_The Defiant Ones.json new file mode 100644 index 000000000..b8ca65676 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Class Quests/BLM/1683_The Defiant Ones.json @@ -0,0 +1,160 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1006752, + "Position": { + "X": 87.5105, + "Y": 18, + "Z": 113.725464 + }, + "TerritoryId": 131, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 131 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1013066, + "Position": { + "X": 385.27502, + "Y": -18.74231, + "Z": 273.0907 + }, + "TerritoryId": 145, + "InteractionType": "SinglePlayerDuty", + "AetheryteShortcut": "Eastern Thanalan - Camp Drybone", + "Fly": true + } + ] + }, + { + "Sequence": 2 + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1013187, + "Position": { + "X": 476.73767, + "Y": -64.30186, + "Z": 234.2107 + }, + "StopDistance": 5, + "TerritoryId": 145, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "Position": { + "X": 341.93842, + "Y": 28.63408, + "Z": 66.419495 + }, + "TerritoryId": 145, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 1013189, + "Position": { + "X": 322.89612, + "Y": 10.818874, + "Z": -8.46875 + }, + "TerritoryId": 145, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 1006753, + "Position": { + "X": 325.063, + "Y": 11.236564, + "Z": -6.2105103 + }, + "TerritoryId": 145, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 1013188, + "Position": { + "X": 327.96216, + "Y": 11.425721, + "Z": -6.7597656 + }, + "TerritoryId": 145, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1006752, + "Position": { + "X": 87.5105, + "Y": 18, + "Z": 113.725464 + }, + "TerritoryId": 131, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ], + "NextQuestId": 2588 + } + ] + } + ] +} -- 2.45.2 From 118a5948a522b926ed74cc09c7748260ad7dc066 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sun, 22 Dec 2024 21:26:29 +0100 Subject: [PATCH 349/448] Add config option to switch between VBM/RSR --- Questionable/Configuration.cs | 12 +- .../Controller/CombatModules/BossModModule.cs | 38 +++-- .../RotationSolverRebornModule.cs | 7 +- Questionable/Windows/ConfigWindow.cs | 9 ++ Questionable/Windows/OneTimeSetupWindow.cs | 132 +++++++++++++----- Questionable/Windows/QuestWindow.cs | 19 ++- Questionable/Windows/UiUtils.cs | 3 +- 7 files changed, 172 insertions(+), 48 deletions(-) diff --git a/Questionable/Configuration.cs b/Questionable/Configuration.cs index 29358b34e..ce4c96165 100644 --- a/Questionable/Configuration.cs +++ b/Questionable/Configuration.cs @@ -7,9 +7,9 @@ namespace Questionable; internal sealed class Configuration : IPluginConfiguration { - public const int PluginSetupVersion = 2; + public const int PluginSetupVersion = 3; - public int Version { get; set; } =1 ; + public int Version { get; set; } = 1; public int PluginSetupCompleteVersion { get; set; } public GeneralConfiguration General { get; } = new(); public NotificationConfiguration Notifications { get; } = new(); @@ -23,6 +23,7 @@ internal sealed class Configuration : IPluginConfiguration internal sealed class GeneralConfiguration { + public ECombatModule CombatModule { get; set; } = ECombatModule.BossMod; public uint MountId { get; set; } = 71; public GrandCompany GrandCompany { get; set; } = GrandCompany.None; public bool HideInAllInstances { get; set; } = true; @@ -45,4 +46,11 @@ internal sealed class Configuration : IPluginConfiguration public bool NeverFly { get; set; } public bool AdditionalStatusInformation { get; set; } } + + internal enum ECombatModule + { + None, + BossMod, + RotationSolverReborn, + } } diff --git a/Questionable/Controller/CombatModules/BossModModule.cs b/Questionable/Controller/CombatModules/BossModModule.cs index a26d1c745..f27a6f810 100644 --- a/Questionable/Controller/CombatModules/BossModModule.cs +++ b/Questionable/Controller/CombatModules/BossModModule.cs @@ -12,22 +12,44 @@ using System.Numerics; namespace Questionable.Controller.CombatModules; -internal sealed class BossModModule(ILogger logger, MovementController movementController, IClientState clientState, IDalamudPluginInterface pluginInterface) : ICombatModule, IDisposable +internal sealed class BossModModule : ICombatModule, IDisposable { private const string Name = "BossMod"; - private readonly ILogger _logger = logger; - private readonly MovementController _movementController = movementController; - private readonly IClientState _clientState = clientState; - private readonly ICallGateSubscriber _getPreset = pluginInterface.GetIpcSubscriber($"{Name}.Presets.Get"); - private readonly ICallGateSubscriber _createPreset = pluginInterface.GetIpcSubscriber($"{Name}.Presets.Create"); - private readonly ICallGateSubscriber _setPreset = pluginInterface.GetIpcSubscriber($"{Name}.Presets.SetActive"); - private readonly ICallGateSubscriber _clearPreset = pluginInterface.GetIpcSubscriber($"{Name}.Presets.ClearActive"); + private readonly ILogger _logger; + private readonly MovementController _movementController; + private readonly IClientState _clientState; + private readonly Configuration _configuration; + private readonly ICallGateSubscriber _getPreset; + private readonly ICallGateSubscriber _createPreset; + private readonly ICallGateSubscriber _setPreset; + private readonly ICallGateSubscriber _clearPreset; private static Stream Preset => typeof(BossModModule).Assembly.GetManifestResourceStream("Questionable.Controller.CombatModules.BossModPreset")!; private DateTime _lastDistanceCheck = DateTime.MinValue; + public BossModModule( + ILogger logger, + MovementController movementController, + IClientState clientState, + IDalamudPluginInterface pluginInterface, + Configuration configuration) + { + _logger = logger; + _movementController = movementController; + _clientState = clientState; + _configuration = configuration; + + _getPreset = pluginInterface.GetIpcSubscriber($"{Name}.Presets.Get"); + _createPreset = pluginInterface.GetIpcSubscriber($"{Name}.Presets.Create"); + _setPreset = pluginInterface.GetIpcSubscriber($"{Name}.Presets.SetActive"); + _clearPreset = pluginInterface.GetIpcSubscriber($"{Name}.Presets.ClearActive"); + } + public bool CanHandleFight(CombatController.CombatData combatData) { + if (_configuration.General.CombatModule != Configuration.ECombatModule.BossMod) + return false; + try { return _getPreset.HasFunction; diff --git a/Questionable/Controller/CombatModules/RotationSolverRebornModule.cs b/Questionable/Controller/CombatModules/RotationSolverRebornModule.cs index 581e07a96..d5f13f4ef 100644 --- a/Questionable/Controller/CombatModules/RotationSolverRebornModule.cs +++ b/Questionable/Controller/CombatModules/RotationSolverRebornModule.cs @@ -16,17 +16,19 @@ internal sealed class RotationSolverRebornModule : ICombatModule, IDisposable private readonly ILogger _logger; private readonly MovementController _movementController; private readonly IClientState _clientState; + private readonly Configuration _configuration; private readonly ICallGateSubscriber _test; private readonly ICallGateSubscriber _changeOperationMode; private DateTime _lastDistanceCheck = DateTime.MinValue; public RotationSolverRebornModule(ILogger logger, MovementController movementController, - IClientState clientState, IDalamudPluginInterface pluginInterface) + IClientState clientState, IDalamudPluginInterface pluginInterface, Configuration configuration) { _logger = logger; _movementController = movementController; _clientState = clientState; + _configuration = configuration; _test = pluginInterface.GetIpcSubscriber("RotationSolverReborn.Test"); _changeOperationMode = pluginInterface.GetIpcSubscriber("RotationSolverReborn.ChangeOperatingMode"); @@ -34,6 +36,9 @@ internal sealed class RotationSolverRebornModule : ICombatModule, IDisposable public bool CanHandleFight(CombatController.CombatData combatData) { + if (_configuration.General.CombatModule != Configuration.ECombatModule.RotationSolverReborn) + return false; + try { _test.InvokeAction("Validate RSR is callable from Questionable"); diff --git a/Questionable/Windows/ConfigWindow.cs b/Questionable/Windows/ConfigWindow.cs index 27c968a0f..7cd19627f 100644 --- a/Questionable/Windows/ConfigWindow.cs +++ b/Questionable/Windows/ConfigWindow.cs @@ -26,6 +26,7 @@ internal sealed class ConfigWindow : LWindow, IPersistableWindowConfig private readonly uint[] _mountIds; private readonly string[] _mountNames; + private readonly string[] _combatModuleNames = ["None", "Boss Mod (VBM)", "Rotation Solver Reborn"]; private readonly string[] _grandCompanyNames = ["None (manually pick quest)", "Maelstrom", "Twin Adder", "Immortal Flames"]; @@ -65,6 +66,14 @@ internal sealed class ConfigWindow : LWindow, IPersistableWindowConfig using var tab = ImRaii.TabItem("General"); if (!tab) return; + + int selectedCombatModule = (int)_configuration.General.CombatModule; + if (ImGui.Combo("Preferred Combat Module", ref selectedCombatModule, _combatModuleNames, _combatModuleNames.Length)) + { + _configuration.General.CombatModule = (Configuration.ECombatModule)selectedCombatModule; + Save(); + } + int selectedMount = Array.FindIndex(_mountIds, x => x == _configuration.General.MountId); if (selectedMount == -1) { diff --git a/Questionable/Windows/OneTimeSetupWindow.cs b/Questionable/Windows/OneTimeSetupWindow.cs index b94b3fc80..3ba35a096 100644 --- a/Questionable/Windows/OneTimeSetupWindow.cs +++ b/Questionable/Windows/OneTimeSetupWindow.cs @@ -44,6 +44,27 @@ internal sealed class OneTimeSetupWindow : LWindow new Uri("https://github.com/NightmareXIV/MyDalamudPlugins/raw/main/pluginmaster.json")), ]; + private static readonly IReadOnlyDictionary CombatPlugins = new Dictionary + { + { + Configuration.ECombatModule.BossMod, + new("Boss Mod (VBM)", + "BossMod", + string.Empty, + new Uri("https://github.com/awgil/ffxiv_bossmod"), + new Uri("https://puni.sh/api/repository/veyn")) + }, + { + Configuration.ECombatModule.RotationSolverReborn, + new("Rotation Solver Reborn", + "RotationSolver", + string.Empty, + new Uri("https://github.com/FFXIV-CombatReborn/RotationSolverReborn"), + new Uri( + "https://raw.githubusercontent.com/FFXIV-CombatReborn/CombatRebornRepo/main/pluginmaster.json")) + }, + }.AsReadOnly(); + private readonly IReadOnlyList _recommendedPlugins; private readonly Configuration _configuration; @@ -60,18 +81,8 @@ internal sealed class OneTimeSetupWindow : LWindow _pluginInterface = pluginInterface; _uiUtils = uiUtils; _logger = logger; - _recommendedPlugins = [ - new("Rotation Solver Reborn", - "RotationSolver", - """ - Automatically handles most combat interactions you encounter - during quests, including being interrupted by mobs. - """, - new Uri("https://github.com/FFXIV-CombatReborn/RotationSolverReborn"), - new Uri( - "https://raw.githubusercontent.com/FFXIV-CombatReborn/CombatRebornRepo/main/pluginmaster.json")), new PluginInfo("CBT (formerly known as Automaton)", "Automaton", """ @@ -120,6 +131,25 @@ internal sealed class OneTimeSetupWindow : LWindow ImGui.Separator(); ImGui.Spacing(); + ImGui.Text("Questionable supports multiple rotation/combat plugins, please pick the one\nyou want to use:"); + + using (ImRaii.PushIndent()) + { + if (ImGui.RadioButton("No rotation/combat plugin (combat must be done manually)", + _configuration.General.CombatModule == Configuration.ECombatModule.None)) + { + _configuration.General.CombatModule = Configuration.ECombatModule.None; + _pluginInterface.SavePluginConfig(_configuration); + } + + DrawCombatPlugin(Configuration.ECombatModule.BossMod, checklistPadding); + DrawCombatPlugin(Configuration.ECombatModule.RotationSolverReborn, checklistPadding); + } + + ImGui.Spacing(); + ImGui.Separator(); + ImGui.Spacing(); + ImGui.Text("The following plugins are recommended, but not required:"); using (ImRaii.PushIndent()) { @@ -164,39 +194,75 @@ internal sealed class OneTimeSetupWindow : LWindow private bool DrawPlugin(PluginInfo plugin, float checklistPadding) { - bool isInstalled = IsPluginInstalled(plugin); using (ImRaii.PushId("plugin_" + plugin.DisplayName)) { + bool isInstalled = IsPluginInstalled(plugin); _uiUtils.ChecklistItem(plugin.DisplayName, isInstalled); - using (ImRaii.PushIndent(checklistPadding)) + + DrawPluginDetails(plugin, checklistPadding, isInstalled); + return isInstalled; + } + } + + private void DrawCombatPlugin(Configuration.ECombatModule combatModule, float checklistPadding) + { + ImGui.Spacing(); + + PluginInfo plugin = CombatPlugins[combatModule]; + using (ImRaii.PushId("plugin_" + plugin.DisplayName)) + { + bool isInstalled = IsPluginInstalled(plugin); + if (ImGui.RadioButton(plugin.DisplayName, _configuration.General.CombatModule == combatModule)) { + _configuration.General.CombatModule = combatModule; + _pluginInterface.SavePluginConfig(_configuration); + } + + ImGui.SameLine(0); + using (_pluginInterface.UiBuilder.IconFontFixedWidthHandle.Push()) + { + var iconColor = isInstalled ? ImGuiColors.ParsedGreen : ImGuiColors.DalamudRed; + var icon = isInstalled ? FontAwesomeIcon.Check : FontAwesomeIcon.Times; + + ImGui.AlignTextToFramePadding(); + ImGui.TextColored(iconColor, icon.ToIconString()); + } + + + DrawPluginDetails(plugin, checklistPadding, isInstalled); + } + } + + private void DrawPluginDetails(PluginInfo plugin, float checklistPadding, bool isInstalled) + { + using (ImRaii.PushIndent(checklistPadding)) + { + if (!string.IsNullOrEmpty(plugin.Details)) ImGui.TextUnformatted(plugin.Details); - if (plugin.DetailsToCheck != null) - { - foreach (var detail in plugin.DetailsToCheck) - _uiUtils.ChecklistItem(detail.DisplayName, isInstalled && detail.Predicate()); - } - ImGui.Spacing(); + if (plugin.DetailsToCheck != null) + { + foreach (var detail in plugin.DetailsToCheck) + _uiUtils.ChecklistItem(detail.DisplayName, isInstalled && detail.Predicate()); + } - if (ImGuiComponents.IconButtonWithText(FontAwesomeIcon.Globe, "Open Website")) - Util.OpenLink(plugin.WebsiteUri.ToString()); + ImGui.Spacing(); - ImGui.SameLine(); - if (plugin.DalamudRepositoryUri != null) - { - if (ImGuiComponents.IconButtonWithText(FontAwesomeIcon.Code, "Open Repository")) - Util.OpenLink(plugin.DalamudRepositoryUri.ToString()); - } - else - { - ImGui.AlignTextToFramePadding(); - ImGuiComponents.HelpMarker("Available on official Dalamud Repository"); - } + if (ImGuiComponents.IconButtonWithText(FontAwesomeIcon.Globe, "Open Website")) + Util.OpenLink(plugin.WebsiteUri.ToString()); + + ImGui.SameLine(); + if (plugin.DalamudRepositoryUri != null) + { + if (ImGuiComponents.IconButtonWithText(FontAwesomeIcon.Code, "Open Repository")) + Util.OpenLink(plugin.DalamudRepositoryUri.ToString()); + } + else + { + ImGui.AlignTextToFramePadding(); + ImGuiComponents.HelpMarker("Available on official Dalamud Repository"); } } - - return isInstalled; } private bool IsPluginInstalled(PluginInfo pluginInfo) diff --git a/Questionable/Windows/QuestWindow.cs b/Questionable/Windows/QuestWindow.cs index 4c100a1ba..2bcdbf9d2 100644 --- a/Questionable/Windows/QuestWindow.cs +++ b/Questionable/Windows/QuestWindow.cs @@ -44,7 +44,8 @@ internal sealed class QuestWindow : LWindow, IPersistableWindowConfig QuickAccessButtonsComponent quickAccessButtonsComponent, RemainingTasksComponent remainingTasksComponent, IFramework framework, - InteractionUiController interactionUiController) + InteractionUiController interactionUiController, + ConfigWindow configWindow) : base($"Questionable v{PluginVersion.ToString(2)}###Questionable", ImGuiWindowFlags.AlwaysAutoResize) { @@ -67,7 +68,7 @@ internal sealed class QuestWindow : LWindow, IPersistableWindowConfig #endif SizeConstraints = new WindowSizeConstraints { - MinimumSize = new Vector2(230, 30), + MinimumSize = new Vector2(240, 30), MaximumSize = default }; RespectCloseHotkey = false; @@ -87,6 +88,20 @@ internal sealed class QuestWindow : LWindow, IPersistableWindowConfig }; TitleBarButtons.Insert(0, _minimizeButton); + TitleBarButtons.Add(new TitleBarButton + { + Icon = FontAwesomeIcon.Cog, + IconOffset = new Vector2(1.5f, 1), + Click = _ => configWindow.IsOpen = true, + Priority = int.MinValue, + ShowTooltip = () => + { + ImGui.BeginTooltip(); + ImGui.Text("Open Configuration"); + ImGui.EndTooltip(); + } + }); + _activeQuestComponent.Reload += OnReload; _quickAccessButtonsComponent.Reload += OnReload; } diff --git a/Questionable/Windows/UiUtils.cs b/Questionable/Windows/UiUtils.cs index 9c51f253f..b03fabfe0 100644 --- a/Questionable/Windows/UiUtils.cs +++ b/Questionable/Windows/UiUtils.cs @@ -55,8 +55,7 @@ internal sealed class UiUtils public bool ChecklistItem(string text, Vector4 color, FontAwesomeIcon icon, float extraPadding = 0) { - // ReSharper disable once UnusedVariable - using (var font = _pluginInterface.UiBuilder.IconFontFixedWidthHandle.Push()) + using (_pluginInterface.UiBuilder.IconFontFixedWidthHandle.Push()) { ImGui.TextColored(color, icon.ToIconString()); } -- 2.45.2 From f7306166def704c202dd110b6509b7623799192d Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Wed, 25 Dec 2024 01:26:45 +0100 Subject: [PATCH 350/448] Add SB BLM quests --- .../BLM/2588_Shades of Shatotto.json | 83 +++++++++ .../BLM/2589_Golems Gone Wild.json | 163 ++++++++++++++++++ .../BLM/2590_When the Golems Get Tough.json | 155 +++++++++++++++++ .../BLM/2591_Unnatural Selection.json | 143 +++++++++++++++ .../BLM/2592_One Golem to Rule Them All.json | 118 +++++++++++++ QuestPaths/quest-v1.json | 3 +- .../Questing/Converter/ActionConverter.cs | 1 + Questionable.Model/Questing/EAction.cs | 1 + 8 files changed, 666 insertions(+), 1 deletion(-) create mode 100644 QuestPaths/4.x - Stormblood/Class Quests/BLM/2588_Shades of Shatotto.json create mode 100644 QuestPaths/4.x - Stormblood/Class Quests/BLM/2589_Golems Gone Wild.json create mode 100644 QuestPaths/4.x - Stormblood/Class Quests/BLM/2590_When the Golems Get Tough.json create mode 100644 QuestPaths/4.x - Stormblood/Class Quests/BLM/2591_Unnatural Selection.json create mode 100644 QuestPaths/4.x - Stormblood/Class Quests/BLM/2592_One Golem to Rule Them All.json diff --git a/QuestPaths/4.x - Stormblood/Class Quests/BLM/2588_Shades of Shatotto.json b/QuestPaths/4.x - Stormblood/Class Quests/BLM/2588_Shades of Shatotto.json new file mode 100644 index 000000000..fe3c501f7 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/BLM/2588_Shades of Shatotto.json @@ -0,0 +1,83 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1006752, + "Position": { + "X": 87.5105, + "Y": 18, + "Z": 113.725464 + }, + "TerritoryId": 131, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 131 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1004597, + "Position": { + "X": -292.10345, + "Y": -2.910112, + "Z": 245.59387 + }, + "TerritoryId": 146, + "InteractionType": "Interact", + "AetheryteShortcut": "Southern Thanalan - Forgotten Springs", + "Fly": true, + "TargetTerritoryId": 146 + }, + { + "DataId": 1020959, + "Position": { + "X": -463.1571, + "Y": -3.164927, + "Z": 61.264893 + }, + "TerritoryId": 146, + "InteractionType": "SinglePlayerDuty" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1006752, + "Position": { + "X": 87.5105, + "Y": 18, + "Z": 113.725464 + }, + "TerritoryId": 131, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ], + "NextQuestId": 2589 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Class Quests/BLM/2589_Golems Gone Wild.json b/QuestPaths/4.x - Stormblood/Class Quests/BLM/2589_Golems Gone Wild.json new file mode 100644 index 000000000..28892d1c5 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/BLM/2589_Golems Gone Wild.json @@ -0,0 +1,163 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1006752, + "Position": { + "X": 87.5105, + "Y": 18, + "Z": 113.725464 + }, + "TerritoryId": 131, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 131 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1008543, + "Position": { + "X": -360.00616, + "Y": 1.2644191, + "Z": 459.83057 + }, + "TerritoryId": 153, + "InteractionType": "Interact", + "AetheryteShortcut": "South Shroud - Camp Tranquil", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2007872, + "Position": { + "X": -275.62378, + "Y": 4.8675537, + "Z": 523.76587 + }, + "TerritoryId": 153, + "InteractionType": "Combat", + "EnemySpawnType": "AfterAction", + "Action": "Fire III", + "KillEnemyDataIds": [ + 7232 + ], + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 2007873, + "Position": { + "X": -298.909, + "Y": 11.825684, + "Z": 567.46765 + }, + "TerritoryId": 153, + "InteractionType": "Combat", + "EnemySpawnType": "AfterAction", + "Action": "Fire III", + "KillEnemyDataIds": [ + 7232 + ], + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 2007874, + "Position": { + "X": -310.5974, + "Y": 12.344482, + "Z": 645.777 + }, + "TerritoryId": 153, + "InteractionType": "Combat", + "EnemySpawnType": "AfterAction", + "Action": "Fire III", + "KillEnemyDataIds": [ + 7232 + ], + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1020964, + "Position": { + "X": -348.50085, + "Y": 0.22347936, + "Z": 454.45935 + }, + "TerritoryId": 153, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1020966, + "Position": { + "X": 87.47986, + "Y": 18, + "Z": 113.69495 + }, + "TerritoryId": 131, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ], + "NextQuestId": 2590 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Class Quests/BLM/2590_When the Golems Get Tough.json b/QuestPaths/4.x - Stormblood/Class Quests/BLM/2590_When the Golems Get Tough.json new file mode 100644 index 000000000..a090c4fef --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/BLM/2590_When the Golems Get Tough.json @@ -0,0 +1,155 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1006752, + "Position": { + "X": 87.5105, + "Y": 18, + "Z": 113.725464 + }, + "TerritoryId": 131, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 131 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1021051, + "Position": { + "X": -36.91156, + "Y": 20.090933, + "Z": -679.07227 + }, + "TerritoryId": 156, + "InteractionType": "Interact", + "AetheryteShortcut": "Mor Dhona" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": -335.20407, + "Y": -15.94506, + "Z": -491.67297 + }, + "TerritoryId": 156, + "InteractionType": "WalkTo", + "Fly": true, + "$": "Pathfinding workaround" + }, + { + "DataId": 1021052, + "Position": { + "X": -334.00476, + "Y": -16.18119, + "Z": -490.1961 + }, + "TerritoryId": 156, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2007907, + "Position": { + "X": -321.21765, + "Y": -16.922302, + "Z": -361.6236 + }, + "TerritoryId": 156, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "Position": { + "X": -412.69736, + "Y": -17.148405, + "Z": -361.9313 + }, + "StopDistance": 0.5, + "TerritoryId": 156, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [ + 7233 + ], + "Fly": true + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1021059, + "Position": { + "X": -413.80945, + "Y": -17.148407, + "Z": -362.23395 + }, + "TerritoryId": 156, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1006752, + "Position": { + "X": 87.5105, + "Y": 18, + "Z": 113.725464 + }, + "TerritoryId": 131, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ], + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_JOBBLM650_02590_Q2_000_000", + "Answer": "TEXT_JOBBLM650_02590_A2_000_001" + } + ], + "NextQuestId": 2591 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Class Quests/BLM/2591_Unnatural Selection.json b/QuestPaths/4.x - Stormblood/Class Quests/BLM/2591_Unnatural Selection.json new file mode 100644 index 000000000..f60a18597 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/BLM/2591_Unnatural Selection.json @@ -0,0 +1,143 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1006752, + "Position": { + "X": 87.5105, + "Y": 18, + "Z": 113.725464 + }, + "TerritoryId": 131, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 131 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1021086, + "Position": { + "X": 326.10046, + "Y": 11.181234, + "Z": -8.743469 + }, + "TerritoryId": 145, + "InteractionType": "Interact", + "AetheryteShortcut": "Eastern Thanalan - Camp Drybone", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1021090, + "Position": { + "X": 7.2174683, + "Y": 115.514336, + "Z": -720.7599 + }, + "StopDistance": 0.5, + "TerritoryId": 620, + "InteractionType": "Interact", + "AetheryteShortcut": "Peaks - Ala Gannha", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2007936, + "Position": { + "X": -284.93176, + "Y": 66.20886, + "Z": -679.07227 + }, + "TerritoryId": 620, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 7234 + ], + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1021092, + "Position": { + "X": -266.4073, + "Y": 76.297005, + "Z": -623.1022 + }, + "TerritoryId": 620, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1006753, + "Position": { + "X": 325.063, + "Y": 11.236564, + "Z": -6.2105103 + }, + "TerritoryId": 145, + "InteractionType": "Interact", + "AetheryteShortcut": "Eastern Thanalan - Camp Drybone", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1006752, + "Position": { + "X": 87.5105, + "Y": 18, + "Z": 113.725464 + }, + "TerritoryId": 131, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ], + "NextQuestId": 2592 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Class Quests/BLM/2592_One Golem to Rule Them All.json b/QuestPaths/4.x - Stormblood/Class Quests/BLM/2592_One Golem to Rule Them All.json new file mode 100644 index 000000000..a5b89ff5e --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/BLM/2592_One Golem to Rule Them All.json @@ -0,0 +1,118 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1006752, + "Position": { + "X": 87.5105, + "Y": 18, + "Z": 113.725464 + }, + "TerritoryId": 131, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 131 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1021097, + "Position": { + "X": -270.37463, + "Y": -29.998833, + "Z": 111.92493 + }, + "TerritoryId": 398, + "InteractionType": "Interact", + "AetheryteShortcut": "The Dravanian Forelands - Anyx Trine", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1011935, + "Position": { + "X": -285.63367, + "Y": 39.04305, + "Z": 53.72693 + }, + "TerritoryId": 398, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1021102, + "Position": { + "X": -287.19012, + "Y": 39.04307, + "Z": 44.47998 + }, + "TerritoryId": 398, + "InteractionType": "SinglePlayerDuty" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1021104, + "Position": { + "X": -267.17023, + "Y": -30.09441, + "Z": 117.54016 + }, + "TerritoryId": 398, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1006752, + "Position": { + "X": 87.5105, + "Y": 18, + "Z": 113.725464 + }, + "TerritoryId": 131, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ] + } + ] + } + ] +} diff --git a/QuestPaths/quest-v1.json b/QuestPaths/quest-v1.json index 7013ea2dc..718b36caf 100644 --- a/QuestPaths/quest-v1.json +++ b/QuestPaths/quest-v1.json @@ -978,7 +978,8 @@ "Hide", "Slug Shot", "Bosom Brook", - "Souleater" + "Souleater", + "Fire III" ] } }, diff --git a/Questionable.Model/Questing/Converter/ActionConverter.cs b/Questionable.Model/Questing/Converter/ActionConverter.cs index 141e4f2ef..8d211442f 100644 --- a/Questionable.Model/Questing/Converter/ActionConverter.cs +++ b/Questionable.Model/Questing/Converter/ActionConverter.cs @@ -44,5 +44,6 @@ public sealed class ActionConverter() : EnumConverter(Values) { EAction.SlugShot, "Slug Shot" }, { EAction.BosomBrook, "Bosom Brook" }, { EAction.Souleater, "Souleater" }, + { EAction.Fire3, "Fire III" }, }; } diff --git a/Questionable.Model/Questing/EAction.cs b/Questionable.Model/Questing/EAction.cs index 1b23da040..ed4d6e83e 100644 --- a/Questionable.Model/Questing/EAction.cs +++ b/Questionable.Model/Questing/EAction.cs @@ -50,6 +50,7 @@ public enum EAction SlugShot = 7412, BosomBrook = 37173, Souleater = 3632, + Fire3 = 152, CollectMiner = 240, ScourMiner = 22182, -- 2.45.2 From 7503aa92804174e2ef984c0cd26b59fcf1533809 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Wed, 25 Dec 2024 01:32:27 +0100 Subject: [PATCH 351/448] Don't allow changing combat module while in combat --- .../BLM/2592_One Golem to Rule Them All.json | 3 ++ Questionable/Windows/ConfigWindow.cs | 30 +++++++++++++------ 2 files changed, 24 insertions(+), 9 deletions(-) diff --git a/QuestPaths/4.x - Stormblood/Class Quests/BLM/2592_One Golem to Rule Them All.json b/QuestPaths/4.x - Stormblood/Class Quests/BLM/2592_One Golem to Rule Them All.json index a5b89ff5e..c2ba041e9 100644 --- a/QuestPaths/4.x - Stormblood/Class Quests/BLM/2592_One Golem to Rule Them All.json +++ b/QuestPaths/4.x - Stormblood/Class Quests/BLM/2592_One Golem to Rule Them All.json @@ -78,6 +78,9 @@ } ] }, + { + "Sequence": 4 + }, { "Sequence": 5, "Steps": [ diff --git a/Questionable/Windows/ConfigWindow.cs b/Questionable/Windows/ConfigWindow.cs index 7cd19627f..5184761c5 100644 --- a/Questionable/Windows/ConfigWindow.cs +++ b/Questionable/Windows/ConfigWindow.cs @@ -1,6 +1,5 @@ using System; using System.Collections.Generic; -using System.Diagnostics.CodeAnalysis; using System.Linq; using Dalamud.Game.Text; using Dalamud.Interface.Colors; @@ -12,6 +11,7 @@ using Dalamud.Utility; using ImGuiNET; using LLib.ImGui; using Lumina.Excel.Sheets; +using Questionable.Controller; using Questionable.External; using GrandCompany = FFXIVClientStructs.FFXIV.Client.UI.Agent.GrandCompany; @@ -19,24 +19,32 @@ namespace Questionable.Windows; internal sealed class ConfigWindow : LWindow, IPersistableWindowConfig { + private static readonly List<(uint Id, string Name)> DefaultMounts = [(0, "Mount Roulette")]; + private readonly IDalamudPluginInterface _pluginInterface; private readonly NotificationMasterIpc _notificationMasterIpc; private readonly Configuration _configuration; + private readonly CombatController _combatController; private readonly uint[] _mountIds; private readonly string[] _mountNames; private readonly string[] _combatModuleNames = ["None", "Boss Mod (VBM)", "Rotation Solver Reborn"]; + private readonly string[] _grandCompanyNames = ["None (manually pick quest)", "Maelstrom", "Twin Adder", "Immortal Flames"]; - [SuppressMessage("Performance", "CA1861", Justification = "One time initialization")] - public ConfigWindow(IDalamudPluginInterface pluginInterface, NotificationMasterIpc notificationMasterIpc, Configuration configuration, IDataManager dataManager) + public ConfigWindow(IDalamudPluginInterface pluginInterface, + NotificationMasterIpc notificationMasterIpc, + Configuration configuration, + IDataManager dataManager, + CombatController combatController) : base("Config - Questionable###QuestionableConfig", ImGuiWindowFlags.AlwaysAutoResize) { _pluginInterface = pluginInterface; _notificationMasterIpc = notificationMasterIpc; _configuration = configuration; + _combatController = combatController; var mounts = dataManager.GetExcelSheet() .Where(x => x is { RowId: > 0, Icon: > 0 }) @@ -44,8 +52,8 @@ internal sealed class ConfigWindow : LWindow, IPersistableWindowConfig .Where(x => !string.IsNullOrEmpty(x.Name)) .OrderBy(x => x.Name) .ToList(); - _mountIds = new uint[] { 0 }.Concat(mounts.Select(x => x.MountId)).ToArray(); - _mountNames = new[] { "Mount Roulette" }.Concat(mounts.Select(x => x.Name)).ToArray(); + _mountIds = DefaultMounts.Select(x => x.Id).Concat(mounts.Select(x => x.MountId)).ToArray(); + _mountNames = DefaultMounts.Select(x => x.Name).Concat(mounts.Select(x => x.Name)).ToArray(); } public WindowConfig WindowConfig => _configuration.ConfigWindowConfig; @@ -67,11 +75,15 @@ internal sealed class ConfigWindow : LWindow, IPersistableWindowConfig if (!tab) return; - int selectedCombatModule = (int)_configuration.General.CombatModule; - if (ImGui.Combo("Preferred Combat Module", ref selectedCombatModule, _combatModuleNames, _combatModuleNames.Length)) + using (ImRaii.Disabled(_combatController.IsRunning)) { - _configuration.General.CombatModule = (Configuration.ECombatModule)selectedCombatModule; - Save(); + int selectedCombatModule = (int)_configuration.General.CombatModule; + if (ImGui.Combo("Preferred Combat Module", ref selectedCombatModule, _combatModuleNames, + _combatModuleNames.Length)) + { + _configuration.General.CombatModule = (Configuration.ECombatModule)selectedCombatModule; + Save(); + } } int selectedMount = Array.FindIndex(_mountIds, x => x == _configuration.General.MountId); -- 2.45.2 From c767fa7679973a30e0236e1793d4fa2ca8069858 Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Thu, 26 Dec 2024 02:46:01 +0800 Subject: [PATCH 352/448] Added final Wachumeqimeqi quest - Appreciated Value --- .../Wachumeqimeqi/4967_Appreciated Value.json | 253 ++++++++++++++++++ 1 file changed, 253 insertions(+) create mode 100644 QuestPaths/7.x - Dawntrail/Custom Deliveries/Wachumeqimeqi/4967_Appreciated Value.json diff --git a/QuestPaths/7.x - Dawntrail/Custom Deliveries/Wachumeqimeqi/4967_Appreciated Value.json b/QuestPaths/7.x - Dawntrail/Custom Deliveries/Wachumeqimeqi/4967_Appreciated Value.json new file mode 100644 index 000000000..69b00b509 --- /dev/null +++ b/QuestPaths/7.x - Dawntrail/Custom Deliveries/Wachumeqimeqi/4967_Appreciated Value.json @@ -0,0 +1,253 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "plogon_enjoyer", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1047095, + "Position": { + "X": 139.5437, + "Y": -13.99, + "Z": 10.60498 + }, + "TerritoryId": 1185, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2014440, + "Position": { + "X": -100.23657, + "Y": -19.882507, + "Z": 211.13904 + }, + "TerritoryId": 1185, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Tuliyollal] Wachumeqimeqi", + "[Tuliyollal] The For'ard Cabins" + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1052476, + "Position": { + "X": -100.175476, + "Y": -19.798239, + "Z": 209.73523 + }, + "TerritoryId": 1185, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1047183, + "Position": { + "X": -194.93408, + "Y": 28, + "Z": -553.1548 + }, + "TerritoryId": 1191, + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Prompt": "TEXT_KINGLZ001_04967_Q2_000_000", + "Type": "List", + "Answer": "TEXT_KINGLZ001_04967_A2_000_001" + } + ] + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1047173, + "Position": { + "X": -283.0396, + "Y": 37.000023, + "Z": -573.7545 + }, + "TerritoryId": 1191, + "InteractionType": "Interact", + "Fly": true + }, + { + "DataId": 1047174, + "Position": { + "X": -138.35364, + "Y": 42.999657, + "Z": -663.2639 + }, + "TerritoryId": 1191, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1047095, + "Position": { + "X": 139.5437, + "Y": -13.99, + "Z": 10.60498 + }, + "TerritoryId": 1185, + "InteractionType": "Interact", + "AetheryteShortcut": "Tuliyollal", + "AethernetShortcut": [ + "[Tuliyollal] Aetheryte Plaza", + "[Tuliyollal] Wachumeqimeqi" + ] + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1047177, + "Position": { + "X": -272.54144, + "Y": -9.063631e-6, + "Z": 143.57214 + }, + "TerritoryId": 1185, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Tuliyollal] Wachumeqimeqi", + "[Tuliyollal] The For'ard Cabins" + ] + } + ] + }, + { + "Sequence": 7, + "Steps": [ + { + "DataId": 1047179, + "Position": { + "X": 109.147705, + "Y": 42, + "Z": -353.29218 + }, + "TerritoryId": 1185, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Tuliyollal] The For'ard Cabins", + "[Tuliyollal] Brightploom Post" + ] + } + ] + }, + { + "Sequence": 8, + "Steps": [ + { + "DataId": 1047133, + "Position": { + "X": 180.37683, + "Y": -13.99, + "Z": 1.9073486 + }, + "TerritoryId": 1185, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Tuliyollal] Brightploom Post", + "[Tuliyollal] Wachumeqimeqi" + ] + } + ] + }, + { + "Sequence": 9, + "Steps": [ + { + "DataId": 2014437, + "Position": { + "X": 166.8269, + "Y": -14.023071, + "Z": 3.2807007 + }, + "TerritoryId": 1185, + "InteractionType": "Interact" + }, + { + "DataId": 2014438, + "Position": { + "X": 203.05176, + "Y": -14.023071, + "Z": 11.642578 + }, + "TerritoryId": 1185, + "InteractionType": "Interact" + }, + { + "DataId": 2014439, + "Position": { + "X": 232.95947, + "Y": -14.023071, + "Z": -9.99469 + }, + "TerritoryId": 1185, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 10, + "Steps": [ + { + "DataId": 1047095, + "Position": { + "X": 139.5437, + "Y": -13.99, + "Z": 10.60498 + }, + "TerritoryId": 1185, + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Prompt": "TEXT_KINGLZ001_04967_Q3_000_302", + "Type": "YesNo", + "Yes": true + } + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1047095, + "Position": { + "X": 139.5437, + "Y": -13.99, + "Z": 10.60498 + }, + "TerritoryId": 1185, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} -- 2.45.2 From 011c616748170a144cadbfd897b8cbeb43bb67ca Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Thu, 26 Dec 2024 00:22:00 +0100 Subject: [PATCH 353/448] Add HW SCH quests --- .../SCH/1102_The Beast Within.json | 3 +- .../SCH/1671_The Green Death.json | 124 ++++++++++++ .../Class Quests/SCH/1672_Quarantine.json | 104 ++++++++++ .../Class Quests/SCH/1673_False Friends.json | 176 ++++++++++++++++ .../Class Quests/SCH/1674_Ooh Rah.json | 128 ++++++++++++ .../Class Quests/SCH/1675_Unseen.json | 163 +++++++++++++++ .../SCH/1676_Forward, the Royal Marines.json | 189 ++++++++++++++++++ QuestPaths/quest-v1.json | 3 +- .../Questing/Converter/EmoteConverter.cs | 1 + Questionable.Model/Questing/EEmote.cs | 1 + 10 files changed, 890 insertions(+), 2 deletions(-) create mode 100644 QuestPaths/3.x - Heavensward/Class Quests/SCH/1671_The Green Death.json create mode 100644 QuestPaths/3.x - Heavensward/Class Quests/SCH/1672_Quarantine.json create mode 100644 QuestPaths/3.x - Heavensward/Class Quests/SCH/1673_False Friends.json create mode 100644 QuestPaths/3.x - Heavensward/Class Quests/SCH/1674_Ooh Rah.json create mode 100644 QuestPaths/3.x - Heavensward/Class Quests/SCH/1675_Unseen.json create mode 100644 QuestPaths/3.x - Heavensward/Class Quests/SCH/1676_Forward, the Royal Marines.json diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/SCH/1102_The Beast Within.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/SCH/1102_The Beast Within.json index 06d12fb34..002ac1806 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/SCH/1102_The Beast Within.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/SCH/1102_The Beast Within.json @@ -119,7 +119,8 @@ "Z": 61.142822 }, "TerritoryId": 139, - "InteractionType": "CompleteQuest" + "InteractionType": "CompleteQuest", + "NextQuestId": 1671 } ] } diff --git a/QuestPaths/3.x - Heavensward/Class Quests/SCH/1671_The Green Death.json b/QuestPaths/3.x - Heavensward/Class Quests/SCH/1671_The Green Death.json new file mode 100644 index 000000000..7f0ebacec --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Class Quests/SCH/1671_The Green Death.json @@ -0,0 +1,124 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1006757, + "Position": { + "X": -4.4709473, + "Y": 44.999886, + "Z": -250.56848 + }, + "TerritoryId": 128, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] Marauders' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 128 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": 207.68561, + "Y": -3.1246834, + "Z": 42.986313 + }, + "TerritoryId": 139, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Upper La Noscea - Camp Bronze Lake", + "Fly": true + }, + { + "DataId": 1013135, + "Position": { + "X": 206.0426, + "Y": -3.111818, + "Z": 41.94702 + }, + "TerritoryId": 139, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2005518, + "Position": { + "X": -275.16595, + "Y": 64.25574, + "Z": -197.34491 + }, + "StopDistance": 0.5, + "TerritoryId": 180, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 4399 + ], + "AetheryteShortcut": "Outer La Noscea - Camp Overlook", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2005519, + "Position": { + "X": -275.16595, + "Y": 64.25574, + "Z": -197.34491 + }, + "TerritoryId": 180, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": 207.68561, + "Y": -3.1246834, + "Z": 42.986313 + }, + "TerritoryId": 139, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Upper La Noscea - Camp Bronze Lake", + "Fly": true + }, + { + "DataId": 1013135, + "Position": { + "X": 206.0426, + "Y": -3.111818, + "Z": 41.94702 + }, + "TerritoryId": 139, + "InteractionType": "CompleteQuest", + "NextQuestId": 1672 + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Class Quests/SCH/1672_Quarantine.json b/QuestPaths/3.x - Heavensward/Class Quests/SCH/1672_Quarantine.json new file mode 100644 index 000000000..44ddb4552 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Class Quests/SCH/1672_Quarantine.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": [ + { + "Position": { + "X": 207.68561, + "Y": -3.1246834, + "Z": 42.986313 + }, + "TerritoryId": 139, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Upper La Noscea - Camp Bronze Lake", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + }, + { + "DataId": 1013135, + "Position": { + "X": 206.0426, + "Y": -3.111818, + "Z": 41.94702 + }, + "TerritoryId": 139, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": 620.5845, + "Y": -3.0527442, + "Z": 169.40678 + }, + "TerritoryId": 139, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 1013137, + "Position": { + "X": 620.9657, + "Y": -3.002753, + "Z": 171.06885 + }, + "TerritoryId": 139, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2005520, + "Position": { + "X": 622.91907, + "Y": -3.0671387, + "Z": 171.6792 + }, + "StopDistance": 4.5, + "TerritoryId": 139, + "InteractionType": "SinglePlayerDuty" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": 207.68561, + "Y": -3.1246834, + "Z": 42.986313 + }, + "TerritoryId": 139, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 1013135, + "Position": { + "X": 206.0426, + "Y": -3.111818, + "Z": 41.94702 + }, + "TerritoryId": 139, + "InteractionType": "CompleteQuest", + "NextQuestId": 1673 + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Class Quests/SCH/1673_False Friends.json b/QuestPaths/3.x - Heavensward/Class Quests/SCH/1673_False Friends.json new file mode 100644 index 000000000..192a828a9 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Class Quests/SCH/1673_False Friends.json @@ -0,0 +1,176 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "Position": { + "X": 207.68561, + "Y": -3.1246834, + "Z": 42.986313 + }, + "TerritoryId": 139, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Upper La Noscea - Camp Bronze Lake", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + }, + { + "DataId": 1013135, + "Position": { + "X": 206.0426, + "Y": -3.111818, + "Z": 41.94702 + }, + "TerritoryId": 139, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": -289.83594, + "Y": 70.47664, + "Z": -272.06448 + }, + "TerritoryId": 180, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Outer La Noscea - Camp Overlook", + "Fly": true + }, + { + "DataId": 2005521, + "Position": { + "X": -292.83594, + "Y": 72.15991, + "Z": -275.4101 + }, + "StopDistance": 0.5, + "TerritoryId": 180, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "ComplexCombatData": [ + { + "DataId": 30, + "NameId": 4108 + } + ], + "Mount": false + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2005522, + "Position": { + "X": -302.05237, + "Y": 70.81714, + "Z": -292.28656 + }, + "StopDistance": 0.5, + "TerritoryId": 180, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "ComplexCombatData": [ + { + "DataId": 30, + "NameId": 4108 + } + ], + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2005523, + "Position": { + "X": -370.04657, + "Y": 65.69006, + "Z": -307.75922 + }, + "StopDistance": 0.5, + "TerritoryId": 180, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 2005530, + "Position": { + "X": -381.55188, + "Y": 52.475708, + "Z": -298.93958 + }, + "StopDistance": 2, + "TerritoryId": 180, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 4371 + ], + "DisableNavmesh": true + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 2005531, + "Position": { + "X": -381.55188, + "Y": 52.8114, + "Z": -298.909 + }, + "TerritoryId": 180, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": 207.68561, + "Y": -3.1246834, + "Z": 42.986313 + }, + "TerritoryId": 139, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Upper La Noscea - Camp Bronze Lake", + "Fly": true + }, + { + "DataId": 1013135, + "Position": { + "X": 206.0426, + "Y": -3.111818, + "Z": 41.94702 + }, + "TerritoryId": 139, + "InteractionType": "CompleteQuest", + "NextQuestId": 1674 + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Class Quests/SCH/1674_Ooh Rah.json b/QuestPaths/3.x - Heavensward/Class Quests/SCH/1674_Ooh Rah.json new file mode 100644 index 000000000..8cbb45184 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Class Quests/SCH/1674_Ooh Rah.json @@ -0,0 +1,128 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "Position": { + "X": 207.68561, + "Y": -3.1246834, + "Z": 42.986313 + }, + "TerritoryId": 139, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Upper La Noscea - Camp Bronze Lake", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + }, + { + "DataId": 1013135, + "Position": { + "X": 206.0426, + "Y": -3.111818, + "Z": 41.94702 + }, + "TerritoryId": 139, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1013138, + "Position": { + "X": 404.19617, + "Y": -2.6082127, + "Z": 212.1156 + }, + "TerritoryId": 139, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1013138, + "Position": { + "X": 404.19617, + "Y": -2.6082127, + "Z": 212.1156 + }, + "TerritoryId": 139, + "InteractionType": "Say", + "ChatMessage": { + "Key": "TEXT_JOBSCH560_01674_SYSTEM_100_023" + } + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1013138, + "Position": { + "X": 404.19617, + "Y": -2.6082127, + "Z": 212.1156 + }, + "TerritoryId": 139, + "InteractionType": "Say", + "ChatMessage": { + "Key": "TEXT_JOBSCH560_01674_SYSTEM_100_023" + } + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1013139, + "Position": { + "X": 700.9536, + "Y": -0.50953937, + "Z": 133.28748 + }, + "TerritoryId": 139, + "InteractionType": "Combat", + "EnemySpawnType": "AfterEmote", + "KillEnemyDataIds": [ + 4400, + 4401 + ], + "Emote": "laugh", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1013138, + "Position": { + "X": 404.19617, + "Y": -2.6082127, + "Z": 212.1156 + }, + "TerritoryId": 139, + "InteractionType": "CompleteQuest", + "Fly": true, + "NextQuestId": 1675 + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Class Quests/SCH/1675_Unseen.json b/QuestPaths/3.x - Heavensward/Class Quests/SCH/1675_Unseen.json new file mode 100644 index 000000000..ea1a40067 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Class Quests/SCH/1675_Unseen.json @@ -0,0 +1,163 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "Position": { + "X": 207.68561, + "Y": -3.1246834, + "Z": 42.986313 + }, + "TerritoryId": 139, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Upper La Noscea - Camp Bronze Lake", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + }, + { + "DataId": 1013135, + "Position": { + "X": 206.0426, + "Y": -3.111818, + "Z": 41.94702 + }, + "TerritoryId": 139, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1002279, + "Position": { + "X": -196.8872, + "Y": 18.459997, + "Z": 59.952637 + }, + "TerritoryId": 130, + "InteractionType": "Interact", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Thaumaturges' Guild" + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1011231, + "Position": { + "X": 503.1051, + "Y": 217.95148, + "Z": 790.2189 + }, + "TerritoryId": 397, + "InteractionType": "Interact", + "AetheryteShortcut": "Coerthas Western Highlands - Falcon's Nest", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1011234, + "Position": { + "X": 546.1356, + "Y": 217.90826, + "Z": 768.06274 + }, + "TerritoryId": 397, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "Position": { + "X": 528.09424, + "Y": 217.9514, + "Z": 773.35565 + }, + "TerritoryId": 397, + "InteractionType": "WalkTo" + }, + { + "DataId": 2005525, + "Position": { + "X": 446.00586, + "Y": 140.82544, + "Z": -749.87415 + }, + "TerritoryId": 397, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [ + 4374 + ], + "Fly": true, + "CompletionQuestVariablesFlags": [ + 1, + null, + null, + null, + null, + null + ] + }, + { + "DataId": 2005525, + "Position": { + "X": 446.00586, + "Y": 140.82544, + "Z": -749.87415 + }, + "TerritoryId": 397, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": 207.68561, + "Y": -3.1246834, + "Z": 42.986313 + }, + "TerritoryId": 139, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Upper La Noscea - Camp Bronze Lake", + "Fly": true + }, + { + "DataId": 1013135, + "Position": { + "X": 206.0426, + "Y": -3.111818, + "Z": 41.94702 + }, + "TerritoryId": 139, + "InteractionType": "CompleteQuest", + "NextQuestId": 1676 + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Class Quests/SCH/1676_Forward, the Royal Marines.json b/QuestPaths/3.x - Heavensward/Class Quests/SCH/1676_Forward, the Royal Marines.json new file mode 100644 index 000000000..8b2a22019 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Class Quests/SCH/1676_Forward, the Royal Marines.json @@ -0,0 +1,189 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "Position": { + "X": 207.68561, + "Y": -3.1246834, + "Z": 42.986313 + }, + "TerritoryId": 139, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Upper La Noscea - Camp Bronze Lake", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + }, + { + "DataId": 1013135, + "Position": { + "X": 206.0426, + "Y": -3.111818, + "Z": 41.94702 + }, + "TerritoryId": 139, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2005528, + "Position": { + "X": -381.5824, + "Y": 52.475708, + "Z": -298.81744 + }, + "TerritoryId": 180, + "InteractionType": "Interact", + "AetheryteShortcut": "Outer La Noscea - Camp Overlook", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2005529, + "Position": { + "X": 290.15015, + "Y": 41.275635, + "Z": -193.83539 + }, + "TerritoryId": 139, + "InteractionType": "Interact", + "AetheryteShortcut": "Upper La Noscea - Camp Bronze Lake", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1013143, + "Position": { + "X": 405.1117, + "Y": 4.109556, + "Z": 81.04065 + }, + "TerritoryId": 139, + "InteractionType": "SinglePlayerDuty", + "AetheryteShortcut": "Upper La Noscea - Camp Bronze Lake" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "Position": { + "X": 489.20578, + "Y": 16.495434, + "Z": 69.11804 + }, + "TerritoryId": 139, + "InteractionType": "WalkTo" + }, + { + "DataId": 1013146, + "Position": { + "X": 489.73828, + "Y": 16.495436, + "Z": 67.33801 + }, + "TerritoryId": 139, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 1013147, + "Position": { + "X": 487.84607, + "Y": 16.495436, + "Z": 68.0094 + }, + "TerritoryId": 139, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 1013148, + "Position": { + "X": 489.64673, + "Y": 16.495436, + "Z": 70.573 + }, + "TerritoryId": 139, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, + { + "DataId": 1013198, + "Position": { + "X": 487.47998, + "Y": 16.495436, + "Z": 70.35925 + }, + "TerritoryId": 139, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 16 + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1013199, + "Position": { + "X": 491.47778, + "Y": 16.495434, + "Z": 69.16907 + }, + "TerritoryId": 139, + "InteractionType": "CompleteQuest", + "NextQuestId": 2923 + } + ] + } + ] +} diff --git a/QuestPaths/quest-v1.json b/QuestPaths/quest-v1.json index 718b36caf..4984fb243 100644 --- a/QuestPaths/quest-v1.json +++ b/QuestPaths/quest-v1.json @@ -858,7 +858,8 @@ "examineself", "joy", "mogdance", - "salute" + "salute", + "laugh" ] } } diff --git a/Questionable.Model/Questing/Converter/EmoteConverter.cs b/Questionable.Model/Questing/Converter/EmoteConverter.cs index 9290a50c5..714282e46 100644 --- a/Questionable.Model/Questing/Converter/EmoteConverter.cs +++ b/Questionable.Model/Questing/Converter/EmoteConverter.cs @@ -18,6 +18,7 @@ public sealed class EmoteConverter() : EnumConverter(Values) { EEmote.Wave, "wave" }, { EEmote.Joy, "joy" }, { EEmote.Kneel, "kneel" }, + { EEmote.Laugh, "laugh" }, { EEmote.Lookout, "lookout" }, { EEmote.Me, "me" }, { EEmote.Deny, "deny" }, diff --git a/Questionable.Model/Questing/EEmote.cs b/Questionable.Model/Questing/EEmote.cs index 4292d1ac4..dc4363aee 100644 --- a/Questionable.Model/Questing/EEmote.cs +++ b/Questionable.Model/Questing/EEmote.cs @@ -19,6 +19,7 @@ public enum EEmote Wave = 16, Joy = 18, Kneel = 19, + Laugh = 21, Lookout = 22, Me = 23, Deny = 25, -- 2.45.2 From cfe8962174186411f1ed375ea07f484791121f4f Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Thu, 26 Dec 2024 00:28:09 +0100 Subject: [PATCH 354/448] Update some UI color coding --- .../JournalComponents/AlliedSocietyJournalComponent.cs | 4 ++-- .../Windows/QuestComponents/QuestTooltipComponent.cs | 8 +++++++- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/Questionable/Windows/JournalComponents/AlliedSocietyJournalComponent.cs b/Questionable/Windows/JournalComponents/AlliedSocietyJournalComponent.cs index c7e506029..a5ae13b3e 100644 --- a/Questionable/Windows/JournalComponents/AlliedSocietyJournalComponent.cs +++ b/Questionable/Windows/JournalComponents/AlliedSocietyJournalComponent.cs @@ -60,7 +60,7 @@ internal sealed class AlliedSocietyJournalComponent string label = $"{alliedSociety}###AlliedSociety{(int)alliedSociety}"; #if DEBUG bool isOpen; - if (quests.Any(x => !_questRegistry.IsKnownQuest(x.QuestId))) + if (quests.Any(x => !_questRegistry.TryGetQuest(x.QuestId, out var quest) || quest.Root.Disabled)) { using (ImRaii.PushColor(ImGuiCol.Text, ImGuiColors.DalamudOrange)) isOpen = ImGui.CollapsingHeader(label); @@ -103,7 +103,7 @@ internal sealed class AlliedSocietyJournalComponent private void DrawQuest(QuestInfo questInfo) { var (color, icon, tooltipText) = _uiUtils.GetQuestStyle(questInfo.QuestId); - if (!_questRegistry.TryGetQuest(questInfo.QuestId, out var quest)) + if (!_questRegistry.TryGetQuest(questInfo.QuestId, out var quest) || quest.Root.Disabled) color = ImGuiColors.DalamudGrey; if (_uiUtils.ChecklistItem($"{questInfo.Name} ({tooltipText})", color, icon)) diff --git a/Questionable/Windows/QuestComponents/QuestTooltipComponent.cs b/Questionable/Windows/QuestComponents/QuestTooltipComponent.cs index 3f426f6c8..4d4f1d2c3 100644 --- a/Questionable/Windows/QuestComponents/QuestTooltipComponent.cs +++ b/Questionable/Windows/QuestComponents/QuestTooltipComponent.cs @@ -60,6 +60,12 @@ internal sealed class QuestTooltipComponent if (_questRegistry.TryGetQuest(questInfo.QuestId, out Quest? quest)) { + if (quest.Root.Disabled) + { + ImGui.SameLine(); + ImGui.TextColored(ImGuiColors.DalamudRed, "Disabled"); + } + if (quest.Root.Author.Count == 1) ImGui.Text($"Author: {quest.Root.Author[0]}"); else @@ -68,7 +74,7 @@ internal sealed class QuestTooltipComponent else { ImGui.SameLine(); - ImGui.TextUnformatted("NoQuestPath"); + ImGui.TextColored(ImGuiColors.DalamudRed, "NoQuestPath"); } DrawQuestUnlocks(questInfo, 0); -- 2.45.2 From 4438d6fea23dff982783d0b6dcb0b5a0a724f1ef Mon Sep 17 00:00:00 2001 From: Taurenkey Date: Thu, 26 Dec 2024 11:35:26 +0000 Subject: [PATCH 355/448] Fix context popups --- Questionable/Windows/JournalComponents/QuestJournalUtils.cs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Questionable/Windows/JournalComponents/QuestJournalUtils.cs b/Questionable/Windows/JournalComponents/QuestJournalUtils.cs index c98dba68c..40f59278a 100644 --- a/Questionable/Windows/JournalComponents/QuestJournalUtils.cs +++ b/Questionable/Windows/JournalComponents/QuestJournalUtils.cs @@ -24,7 +24,10 @@ internal sealed class QuestJournalUtils public void ShowContextMenu(IQuestInfo questInfo, Quest? quest, string label) { - using var popup = ImRaii.ContextPopup($"##QuestPopup{questInfo.QuestId}", ImGuiPopupFlags.MouseButtonRight); + if (ImGui.IsItemClicked(ImGuiMouseButton.Right)) + ImGui.OpenPopup($"##QuestPopup{questInfo.QuestId}"); + + using var popup = ImRaii.Popup($"##QuestPopup{questInfo.QuestId}"); if (!popup) return; -- 2.45.2 From e5d1bcedcdade108273406d329a0fca251cbe528 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Thu, 26 Dec 2024 14:15:43 +0100 Subject: [PATCH 356/448] Add SB SCH quests --- .../SCH/2923_The Vanishing Act.json | 128 +++++++++++++ .../SCH/2924_A Safe Place to Hide.json | 174 ++++++++++++++++++ .../SCH/2925_In Loving Memory.json | 60 ++++++ .../Class Quests/SCH/2926_The Chase.json | 139 ++++++++++++++ .../SCH/2927_Our Unsung Heroes.json | 143 ++++++++++++++ QuestPaths/quest-v1.json | 3 +- .../Questing/Converter/ActionConverter.cs | 1 + Questionable.Model/Questing/EAction.cs | 1 + 8 files changed, 648 insertions(+), 1 deletion(-) create mode 100644 QuestPaths/4.x - Stormblood/Class Quests/SCH/2923_The Vanishing Act.json create mode 100644 QuestPaths/4.x - Stormblood/Class Quests/SCH/2924_A Safe Place to Hide.json create mode 100644 QuestPaths/4.x - Stormblood/Class Quests/SCH/2925_In Loving Memory.json create mode 100644 QuestPaths/4.x - Stormblood/Class Quests/SCH/2926_The Chase.json create mode 100644 QuestPaths/4.x - Stormblood/Class Quests/SCH/2927_Our Unsung Heroes.json diff --git a/QuestPaths/4.x - Stormblood/Class Quests/SCH/2923_The Vanishing Act.json b/QuestPaths/4.x - Stormblood/Class Quests/SCH/2923_The Vanishing Act.json new file mode 100644 index 000000000..b51500385 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/SCH/2923_The Vanishing Act.json @@ -0,0 +1,128 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1006757, + "Position": { + "X": -4.4709473, + "Y": 44.999886, + "Z": -250.56848 + }, + "TerritoryId": 128, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] Marauders' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 128 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": 207.68561, + "Y": -3.1246834, + "Z": 42.986313 + }, + "TerritoryId": 139, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Upper La Noscea - Camp Bronze Lake", + "Fly": true + }, + { + "DataId": 1013135, + "Position": { + "X": 206.0426, + "Y": -3.111818, + "Z": 41.94702 + }, + "TerritoryId": 139, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1009552, + "Position": { + "X": 96.025024, + "Y": 40.247147, + "Z": 60.68506 + }, + "TerritoryId": 128, + "InteractionType": "Interact", + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] The Aftcastle" + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "TerritoryId": 145, + "InteractionType": "UseItem", + "ItemId": 30362, + "TargetTerritoryId": 140 + }, + { + "DataId": 1021904, + "Position": { + "X": -480.5829, + "Y": 23.11398, + "Z": -315.81604 + }, + "TerritoryId": 140, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": 207.68561, + "Y": -3.1246834, + "Z": 42.986313 + }, + "TerritoryId": 139, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Upper La Noscea - Camp Bronze Lake", + "Fly": true + }, + { + "DataId": 1013135, + "Position": { + "X": 206.0426, + "Y": -3.111818, + "Z": 41.94702 + }, + "TerritoryId": 139, + "InteractionType": "CompleteQuest", + "NextQuestId": 2924 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Class Quests/SCH/2924_A Safe Place to Hide.json b/QuestPaths/4.x - Stormblood/Class Quests/SCH/2924_A Safe Place to Hide.json new file mode 100644 index 000000000..e5c3bb853 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/SCH/2924_A Safe Place to Hide.json @@ -0,0 +1,174 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "Position": { + "X": 207.68561, + "Y": -3.1246834, + "Z": 42.986313 + }, + "TerritoryId": 139, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Upper La Noscea - Camp Bronze Lake", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + }, + { + "DataId": 1013135, + "Position": { + "X": 206.0426, + "Y": -3.111818, + "Z": 41.94702 + }, + "TerritoryId": 139, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1006757, + "Position": { + "X": -4.4709473, + "Y": 44.999886, + "Z": -250.56848 + }, + "TerritoryId": 128, + "InteractionType": "Interact", + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] Marauders' Guild" + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1021905, + "Position": { + "X": -220.17242, + "Y": 20.83071, + "Z": 353.16992 + }, + "TerritoryId": 153, + "InteractionType": "Interact", + "AetheryteShortcut": "South Shroud - Camp Tranquil" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2008554, + "Position": { + "X": -230.18237, + "Y": 1.3274536, + "Z": 406.3629 + }, + "TerritoryId": 153, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 2008555, + "Position": { + "X": -182.8794, + "Y": 0.3508911, + "Z": 463.76733 + }, + "TerritoryId": 153, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 2008556, + "Position": { + "X": -81.71216, + "Y": 1.2054443, + "Z": 395.71216 + }, + "TerritoryId": 153, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "Position": { + "X": -69.98173, + "Y": 0.9259782, + "Z": 361.20602 + }, + "TerritoryId": 153, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [ + 7237, + 7494, + 7499 + ] + } + ] + }, + { + "Sequence": 7, + "Steps": [ + { + "DataId": 1021910, + "Position": { + "X": -70.115234, + "Y": 0.94099265, + "Z": 360.3723 + }, + "TerritoryId": 153, + "InteractionType": "Action", + "Action": "Adloquium" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1021911, + "Position": { + "X": -220.84387, + "Y": 21.261763, + "Z": 363.39355 + }, + "TerritoryId": 153, + "InteractionType": "CompleteQuest", + "Fly": true, + "NextQuestId": 2925 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Class Quests/SCH/2925_In Loving Memory.json b/QuestPaths/4.x - Stormblood/Class Quests/SCH/2925_In Loving Memory.json new file mode 100644 index 000000000..69e065cec --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/SCH/2925_In Loving Memory.json @@ -0,0 +1,60 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1021911, + "Position": { + "X": -220.84387, + "Y": 21.261763, + "Z": 363.39355 + }, + "TerritoryId": 153, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "South Shroud - Camp Tranquil", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1021913, + "Position": { + "X": 161.39453, + "Y": 37.625904, + "Z": 169.17664 + }, + "TerritoryId": 153, + "InteractionType": "SinglePlayerDuty", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1021911, + "Position": { + "X": -220.84387, + "Y": 21.261763, + "Z": 363.39355 + }, + "StopDistance": 5, + "TerritoryId": 153, + "InteractionType": "CompleteQuest", + "NextQuestId": 2926 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Class Quests/SCH/2926_The Chase.json b/QuestPaths/4.x - Stormblood/Class Quests/SCH/2926_The Chase.json new file mode 100644 index 000000000..9aa571e57 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/SCH/2926_The Chase.json @@ -0,0 +1,139 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1021911, + "Position": { + "X": -220.84387, + "Y": 21.261763, + "Z": 363.39355 + }, + "StopDistance": 5, + "TerritoryId": 153, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "South Shroud - Camp Tranquil", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": 207.68561, + "Y": -3.1246834, + "Z": 42.986313 + }, + "TerritoryId": 139, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Upper La Noscea - Camp Bronze Lake", + "Fly": true + }, + { + "DataId": 1013135, + "Position": { + "X": 206.0426, + "Y": -3.111818, + "Z": 41.94702 + }, + "TerritoryId": 139, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1021911, + "Position": { + "X": -220.84387, + "Y": 21.261763, + "Z": 363.39355 + }, + "TerritoryId": 153, + "InteractionType": "Interact", + "AetheryteShortcut": "South Shroud - Camp Tranquil" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2008557, + "Position": { + "X": -160.08246, + "Y": 1.9683228, + "Z": 175.52454 + }, + "TerritoryId": 153, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 2008558, + "Position": { + "X": -150.19464, + "Y": 4.714966, + "Z": 52.109497 + }, + "TerritoryId": 153, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 2008559, + "Position": { + "X": -250.5379, + "Y": 16.830688, + "Z": 19.21106 + }, + "TerritoryId": 153, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 6621 + ], + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1021911, + "Position": { + "X": -220.84387, + "Y": 21.261763, + "Z": 363.39355 + }, + "TerritoryId": 153, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "South Shroud - Camp Tranquil", + "NextQuestId": 2927 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Class Quests/SCH/2927_Our Unsung Heroes.json b/QuestPaths/4.x - Stormblood/Class Quests/SCH/2927_Our Unsung Heroes.json new file mode 100644 index 000000000..1d490ba68 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/SCH/2927_Our Unsung Heroes.json @@ -0,0 +1,143 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1021911, + "Position": { + "X": -220.84387, + "Y": 21.261763, + "Z": 363.39355 + }, + "TerritoryId": 153, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "South Shroud - Camp Tranquil", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1021917, + "Position": { + "X": -343.80103, + "Y": -0.3600377, + "Z": 448.1117 + }, + "TerritoryId": 153, + "InteractionType": "SinglePlayerDuty", + "Fly": true + } + ] + }, + { + "Sequence": 2 + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1021911, + "Position": { + "X": -220.84387, + "Y": 21.261763, + "Z": 363.39355 + }, + "TerritoryId": 153, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "Position": { + "X": 207.68561, + "Y": -3.1246834, + "Z": 42.986313 + }, + "TerritoryId": 139, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Upper La Noscea - Camp Bronze Lake", + "Fly": true + }, + { + "DataId": 1013135, + "Position": { + "X": 206.0426, + "Y": -3.111818, + "Z": 41.94702 + }, + "TerritoryId": 139, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1013135, + "Position": { + "X": 206.0426, + "Y": -3.111818, + "Z": 41.94702 + }, + "TerritoryId": 139, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 1021919, + "Position": { + "X": 207.53784, + "Y": -3.049824, + "Z": 43.22876 + }, + "TerritoryId": 139, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1021918, + "Position": { + "X": 206.80542, + "Y": -3.065022, + "Z": 43.83911 + }, + "TerritoryId": 139, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/quest-v1.json b/QuestPaths/quest-v1.json index 4984fb243..3b7eeb318 100644 --- a/QuestPaths/quest-v1.json +++ b/QuestPaths/quest-v1.json @@ -980,7 +980,8 @@ "Slug Shot", "Bosom Brook", "Souleater", - "Fire III" + "Fire III", + "Adloquium" ] } }, diff --git a/Questionable.Model/Questing/Converter/ActionConverter.cs b/Questionable.Model/Questing/Converter/ActionConverter.cs index 8d211442f..d5b1128f2 100644 --- a/Questionable.Model/Questing/Converter/ActionConverter.cs +++ b/Questionable.Model/Questing/Converter/ActionConverter.cs @@ -45,5 +45,6 @@ public sealed class ActionConverter() : EnumConverter(Values) { EAction.BosomBrook, "Bosom Brook" }, { EAction.Souleater, "Souleater" }, { EAction.Fire3, "Fire III" }, + { EAction.Adloquium, "Adloquium" }, }; } diff --git a/Questionable.Model/Questing/EAction.cs b/Questionable.Model/Questing/EAction.cs index ed4d6e83e..b4bd7c2be 100644 --- a/Questionable.Model/Questing/EAction.cs +++ b/Questionable.Model/Questing/EAction.cs @@ -51,6 +51,7 @@ public enum EAction BosomBrook = 37173, Souleater = 3632, Fire3 = 152, + Adloquium = 185, CollectMiner = 240, ScourMiner = 22182, -- 2.45.2 From cc18f39ff6ad0684dde958c4f65ed2f41c4357a6 Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Thu, 26 Dec 2024 21:39:09 +0800 Subject: [PATCH 357/448] Updated and enabled quest 'Foundations of Steel' --- .../Dailies/3908_Foundations of Steel.json | 20 +++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/QuestPaths/5.x - Shadowbringers/Allied Societies/Dwarves/Dailies/3908_Foundations of Steel.json b/QuestPaths/5.x - Shadowbringers/Allied Societies/Dwarves/Dailies/3908_Foundations of Steel.json index 24aad0b4b..3406aac8c 100644 --- a/QuestPaths/5.x - Shadowbringers/Allied Societies/Dwarves/Dailies/3908_Foundations of Steel.json +++ b/QuestPaths/5.x - Shadowbringers/Allied Societies/Dwarves/Dailies/3908_Foundations of Steel.json @@ -1,7 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "liza", - "Disabled": true, + "Author": "plogon_enjoyer", "QuestSequence": [ { "Sequence": 0, @@ -30,11 +29,28 @@ { "Sequence": 1, "Steps": [ + { + "DataId": 1034118, + "Position": { + "X": -55.49713, + "Y": 98.10251, + "Z": -624.7501 + }, + "TerritoryId": 813, + "InteractionType": "Interact", + "Fly": true + } ] }, { "Sequence": 255, "Steps": [ + { + "TerritoryId": 813, + "InteractionType": "Craft", + "ItemId": 31157, + "ItemCount": 3 + }, { "Position": { "X": -615.73865, -- 2.45.2 From e25e64e9cf26627de58c6ee31cf7dd68d715acf7 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Thu, 26 Dec 2024 14:58:10 +0100 Subject: [PATCH 358/448] Add HW SMN quests --- .../SMN/2100_A Fitting Tomestone.json | 88 +++++++++ .../SMN/2101_A Matter of Fact.json | 182 ++++++++++++++++++ .../SMN/2102_A Miner Negotiation.json | 151 +++++++++++++++ .../SMN/2103_Mad, Bad, and Ebon-clad.json | 113 +++++++++++ .../2104_I Could Have Tranced All Night.json | 99 ++++++++++ .../SMN/2105_A Flare for the Dramatic.json | 79 ++++++++ 6 files changed, 712 insertions(+) create mode 100644 QuestPaths/3.x - Heavensward/Class Quests/SMN/2100_A Fitting Tomestone.json create mode 100644 QuestPaths/3.x - Heavensward/Class Quests/SMN/2101_A Matter of Fact.json create mode 100644 QuestPaths/3.x - Heavensward/Class Quests/SMN/2102_A Miner Negotiation.json create mode 100644 QuestPaths/3.x - Heavensward/Class Quests/SMN/2103_Mad, Bad, and Ebon-clad.json create mode 100644 QuestPaths/3.x - Heavensward/Class Quests/SMN/2104_I Could Have Tranced All Night.json create mode 100644 QuestPaths/3.x - Heavensward/Class Quests/SMN/2105_A Flare for the Dramatic.json diff --git a/QuestPaths/3.x - Heavensward/Class Quests/SMN/2100_A Fitting Tomestone.json b/QuestPaths/3.x - Heavensward/Class Quests/SMN/2100_A Fitting Tomestone.json new file mode 100644 index 000000000..dbe21b54a --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Class Quests/SMN/2100_A Fitting Tomestone.json @@ -0,0 +1,88 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1006756, + "Position": { + "X": -16.891846, + "Y": 10.17425, + "Z": -246.87573 + }, + "TerritoryId": 133, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Mih Khetto's Amphitheatre" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 133 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1006725, + "Position": { + "X": 446.82983, + "Y": -5.306207, + "Z": -465.72064 + }, + "TerritoryId": 156, + "InteractionType": "Interact", + "AetheryteShortcut": "Mor Dhona", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1014018, + "Position": { + "X": 481.9867, + "Y": 5.4917006, + "Z": -838.52905 + }, + "TerritoryId": 156, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1006756, + "Position": { + "X": -16.891846, + "Y": 10.17425, + "Z": -246.87573 + }, + "TerritoryId": 133, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Mih Khetto's Amphitheatre" + ], + "NextQuestId": 2101 + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Class Quests/SMN/2101_A Matter of Fact.json b/QuestPaths/3.x - Heavensward/Class Quests/SMN/2101_A Matter of Fact.json new file mode 100644 index 000000000..5d1cfbf9f --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Class Quests/SMN/2101_A Matter of Fact.json @@ -0,0 +1,182 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1006756, + "Position": { + "X": -16.891846, + "Y": 10.17425, + "Z": -246.87573 + }, + "TerritoryId": 133, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Mih Khetto's Amphitheatre" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 133 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1014020, + "Position": { + "X": -416.70862, + "Y": -55.58494, + "Z": 112.38269 + }, + "TerritoryId": 145, + "InteractionType": "Interact", + "AetheryteShortcut": "Eastern Thanalan - Camp Drybone" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1004506, + "Position": { + "X": -416.64764, + "Y": -54.15, + "Z": 96.42175 + }, + "TerritoryId": 145, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, + { + "DataId": 1003931, + "Position": { + "X": -379.6292, + "Y": -55.85506, + "Z": 95.04846 + }, + "TerritoryId": 145, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 1004556, + "Position": { + "X": -394.85773, + "Y": -57.30005, + "Z": 173.32715 + }, + "TerritoryId": 145, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1014020, + "Position": { + "X": -416.70862, + "Y": -55.58494, + "Z": 112.38269 + }, + "TerritoryId": 145, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "Position": { + "X": -194.28932, + "Y": -36.84067, + "Z": 26.942286 + }, + "StopDistance": 0.5, + "TerritoryId": 145, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [ + 4777, + 4778 + ], + "Fly": true, + "CompletionQuestVariablesFlags": [ + { + "Low": 3 + }, + null, + null, + null, + null, + null + ] + }, + { + "DataId": 1014025, + "Position": { + "X": -193.59125, + "Y": -36.83681, + "Z": 25.894531 + }, + "TerritoryId": 145, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1014028, + "Position": { + "X": -126.57361, + "Y": 4.0999947, + "Z": -96.23871 + }, + "TerritoryId": 130, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ul'dah", + "NextQuestId": 2102 + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Class Quests/SMN/2102_A Miner Negotiation.json b/QuestPaths/3.x - Heavensward/Class Quests/SMN/2102_A Miner Negotiation.json new file mode 100644 index 000000000..911fbc1c5 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Class Quests/SMN/2102_A Miner Negotiation.json @@ -0,0 +1,151 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1014028, + "Position": { + "X": -126.57361, + "Y": 4.0999947, + "Z": -96.23871 + }, + "TerritoryId": 130, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1014029, + "Position": { + "X": 45.24292, + "Y": 18, + "Z": -414.87756 + }, + "TerritoryId": 141, + "InteractionType": "Interact", + "AetheryteShortcut": "Central Thanalan - Black Brush Station", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2005969, + "Position": { + "X": -4.5319824, + "Y": 27.695068, + "Z": -422.2019 + }, + "TerritoryId": 141, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 4781 + ], + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 2005970, + "Position": { + "X": -29.160034, + "Y": 27.42041, + "Z": -417.99042 + }, + "TerritoryId": 141, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 4781 + ], + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 2005971, + "Position": { + "X": -11.6427, + "Y": 34.01233, + "Z": -458.60992 + }, + "TerritoryId": 141, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 4781, + 4786 + ], + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1014029, + "Position": { + "X": 45.24292, + "Y": 18, + "Z": -414.87756 + }, + "TerritoryId": 141, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1014028, + "Position": { + "X": -126.57361, + "Y": 4.0999947, + "Z": -96.23871 + }, + "TerritoryId": 130, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ul'dah", + "NextQuestId": 2103 + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Class Quests/SMN/2103_Mad, Bad, and Ebon-clad.json b/QuestPaths/3.x - Heavensward/Class Quests/SMN/2103_Mad, Bad, and Ebon-clad.json new file mode 100644 index 000000000..3cb898118 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Class Quests/SMN/2103_Mad, Bad, and Ebon-clad.json @@ -0,0 +1,113 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1014028, + "Position": { + "X": -126.57361, + "Y": 4.0999947, + "Z": -96.23871 + }, + "TerritoryId": 130, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1014033, + "Position": { + "X": 47.16565, + "Y": 4, + "Z": 466.14783 + }, + "TerritoryId": 147, + "InteractionType": "Interact", + "AetheryteShortcut": "Northern Thanalan - Camp Bluefog" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2005972, + "Position": { + "X": -6.8513794, + "Y": 5.722107, + "Z": 290.8827 + }, + "StopDistance": 1, + "TerritoryId": 147, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "Position": { + "X": 13.795937, + "Y": 5.0408907, + "Z": 280.2135 + }, + "StopDistance": 0.5, + "TerritoryId": 147, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [ + 4787, + 4788 + ] + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1014034, + "Position": { + "X": 13.687317, + "Y": 4.983316, + "Z": 284.38232 + }, + "StopDistance": 7, + "TerritoryId": 147, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1014028, + "Position": { + "X": -126.57361, + "Y": 4.0999947, + "Z": -96.23871 + }, + "TerritoryId": 130, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ul'dah", + "NextQuestId": 2104 + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Class Quests/SMN/2104_I Could Have Tranced All Night.json b/QuestPaths/3.x - Heavensward/Class Quests/SMN/2104_I Could Have Tranced All Night.json new file mode 100644 index 000000000..a568b7b49 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Class Quests/SMN/2104_I Could Have Tranced All Night.json @@ -0,0 +1,99 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1014028, + "Position": { + "X": -126.57361, + "Y": 4.0999947, + "Z": -96.23871 + }, + "TerritoryId": 130, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1006756, + "Position": { + "X": -16.891846, + "Y": 10.17425, + "Z": -246.87573 + }, + "TerritoryId": 133, + "InteractionType": "Interact", + "AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Mih Khetto's Amphitheatre" + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1014028, + "Position": { + "X": -126.57361, + "Y": 4.0999947, + "Z": -96.23871 + }, + "TerritoryId": 130, + "InteractionType": "Interact", + "AetheryteShortcut": "Ul'dah" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1014038, + "Position": { + "X": -20.24878, + "Y": 83.19998, + "Z": -1.4801636 + }, + "TerritoryId": 130, + "InteractionType": "SinglePlayerDuty", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Airship Landing" + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1014028, + "Position": { + "X": -126.57361, + "Y": 4.0999947, + "Z": -96.23871 + }, + "TerritoryId": 130, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ul'dah", + "NextQuestId": 2105 + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Class Quests/SMN/2105_A Flare for the Dramatic.json b/QuestPaths/3.x - Heavensward/Class Quests/SMN/2105_A Flare for the Dramatic.json new file mode 100644 index 000000000..46e628c89 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Class Quests/SMN/2105_A Flare for the Dramatic.json @@ -0,0 +1,79 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1014028, + "Position": { + "X": -126.57361, + "Y": 4.0999947, + "Z": -96.23871 + }, + "TerritoryId": 130, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1014042, + "Position": { + "X": 277.11902, + "Y": 232.54102, + "Z": 760.1892 + }, + "TerritoryId": 399, + "InteractionType": "SinglePlayerDuty", + "AetheryteShortcut": "Idyllshire", + "AethernetShortcut": [ + "[Idyllshire] Aetheryte Plaza", + "[Idyllshire] Prologue Gate (Western Hinterlands)" + ], + "$": "Unsure if this works without flying unlocked" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1014045, + "Position": { + "X": 260.5172, + "Y": 232.54103, + "Z": 728.9081 + }, + "TerritoryId": 399, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1014044, + "Position": { + "X": 264.515, + "Y": 232.54102, + "Z": 728.84717 + }, + "StopDistance": 7, + "TerritoryId": 399, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} -- 2.45.2 From 8ab584d55ee4b4d236d0629b367ff02ae0603bff Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Thu, 26 Dec 2024 14:58:33 +0100 Subject: [PATCH 359/448] Only show NameId if it isn't 0 --- Questionable/Windows/QuestComponents/CreationUtilsComponent.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Questionable/Windows/QuestComponents/CreationUtilsComponent.cs b/Questionable/Windows/QuestComponents/CreationUtilsComponent.cs index be6f31c19..f18c2fcc8 100644 --- a/Questionable/Windows/QuestComponents/CreationUtilsComponent.cs +++ b/Questionable/Windows/QuestComponents/CreationUtilsComponent.cs @@ -201,7 +201,7 @@ internal sealed class CreationUtilsComponent private unsafe void DrawTargetDetails(IGameObject target) { string nameId = string.Empty; - if (target is ICharacter character) + if (target is ICharacter { NameId: > 0 } character) nameId = $"; n={character.NameId}"; ImGui.Separator(); -- 2.45.2 From 2be0ab85d308df31412ec3035a87a7c59fc4e970 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Thu, 26 Dec 2024 15:04:47 +0100 Subject: [PATCH 360/448] Add 'Unbreakable Plate' dwarves quest --- .../Dailies/3921_Unbreakable Plate.json | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/QuestPaths/5.x - Shadowbringers/Allied Societies/Dwarves/Dailies/3921_Unbreakable Plate.json b/QuestPaths/5.x - Shadowbringers/Allied Societies/Dwarves/Dailies/3921_Unbreakable Plate.json index 24aad0b4b..b15979521 100644 --- a/QuestPaths/5.x - Shadowbringers/Allied Societies/Dwarves/Dailies/3921_Unbreakable Plate.json +++ b/QuestPaths/5.x - Shadowbringers/Allied Societies/Dwarves/Dailies/3921_Unbreakable Plate.json @@ -1,7 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", - "Disabled": true, "QuestSequence": [ { "Sequence": 0, @@ -30,11 +29,28 @@ { "Sequence": 1, "Steps": [ + { + "DataId": 1033704, + "Position": { + "X": -33.341064, + "Y": 21.204435, + "Z": -198.41309 + }, + "TerritoryId": 813, + "InteractionType": "Interact", + "Fly": true + } ] }, { "Sequence": 255, "Steps": [ + { + "TerritoryId": 813, + "InteractionType": "Craft", + "ItemId": 31175, + "ItemCount": 1 + }, { "Position": { "X": -615.73865, -- 2.45.2 From b97600bd6fb1d8e691e9a05cbc13163113502a4a Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Thu, 26 Dec 2024 15:26:41 +0100 Subject: [PATCH 361/448] Add 'Ants in the Pants' Ananta quest --- .../Dailies/3061_Ants in the Pants.json | 32 +++++++++++- .../CombatModules/Mount147Module.cs | 51 +++++++++++++++++++ .../Controller/Steps/Interactions/Combat.cs | 3 +- Questionable/Controller/Steps/QuestCleanUp.cs | 2 +- Questionable/Data/AlliedSocietyData.cs | 1 + Questionable/QuestionablePlugin.cs | 1 + 6 files changed, 87 insertions(+), 3 deletions(-) create mode 100644 Questionable/Controller/CombatModules/Mount147Module.cs diff --git a/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Dailies/3061_Ants in the Pants.json b/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Dailies/3061_Ants in the Pants.json index 48f32de4b..6592441bf 100644 --- a/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Dailies/3061_Ants in the Pants.json +++ b/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Dailies/3061_Ants in the Pants.json @@ -1,7 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", - "Disabled": true, "QuestSequence": [ { "Sequence": 0, @@ -22,6 +21,37 @@ { "Sequence": 1, "Steps": [ + { + "DataId": 1024777, + "Position": { + "X": -41.641907, + "Y": 55.97816, + "Z": 211.38318 + }, + "TerritoryId": 612, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": 482.93036, + "Y": 42.43753, + "Z": 350.85095 + }, + "StopDistance": 0.5, + "TerritoryId": 612, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [ + 8593 + ], + "Fly": true, + "Land": true + } ] }, { diff --git a/Questionable/Controller/CombatModules/Mount147Module.cs b/Questionable/Controller/CombatModules/Mount147Module.cs new file mode 100644 index 000000000..f0c43176d --- /dev/null +++ b/Questionable/Controller/CombatModules/Mount147Module.cs @@ -0,0 +1,51 @@ +using System; +using System.Numerics; +using Dalamud.Game.ClientState.Objects.Types; +using Questionable.Functions; +using Questionable.Model; +using Questionable.Model.Questing; + +namespace Questionable.Controller.CombatModules; + +/// +/// Commandeered Magitek Armor; used in 'Magiteknical Failure' quest. +/// +internal sealed class Mount147Module : ICombatModule +{ + public const ushort MountId = 147; + private readonly EAction[] _actions = [EAction.Trample]; + + private readonly MovementController _movementController; + private readonly GameFunctions _gameFunctions; + + + public Mount147Module(MovementController movementController, GameFunctions gameFunctions) + { + _movementController = movementController; + _gameFunctions = gameFunctions; + } + + public bool CanHandleFight(CombatController.CombatData combatData) => _gameFunctions.GetMountId() == MountId; + + public bool Start(CombatController.CombatData combatData) => true; + + public bool Stop() => true; + + public void Update(IGameObject gameObject) + { + if (_movementController.IsPathfinding || _movementController.IsPathRunning) + return; + + foreach (EAction action in _actions) + { + if (_gameFunctions.UseAction(gameObject, action, checkCanUse: false)) + return; + } + } + + public void MoveToTarget(IGameObject gameObject) + { + } + + public bool CanAttack(IBattleNpc target) => target.DataId is 8593; +} diff --git a/Questionable/Controller/Steps/Interactions/Combat.cs b/Questionable/Controller/Steps/Interactions/Combat.cs index f0b7ff15f..c0a09a3af 100644 --- a/Questionable/Controller/Steps/Interactions/Combat.cs +++ b/Questionable/Controller/Steps/Interactions/Combat.cs @@ -22,7 +22,8 @@ internal static class Combat ArgumentNullException.ThrowIfNull(step.EnemySpawnType); - if (gameFunctions.GetMountId() != Mount128Module.MountId) + if (gameFunctions.GetMountId() != Mount128Module.MountId && + gameFunctions.GetMountId() != Mount147Module.MountId) yield return new Mount.UnmountTask(); if (step.CombatDelaySecondsAtStart != null) diff --git a/Questionable/Controller/Steps/QuestCleanUp.cs b/Questionable/Controller/Steps/QuestCleanUp.cs index d5564180b..d9c7701f5 100644 --- a/Questionable/Controller/Steps/QuestCleanUp.cs +++ b/Questionable/Controller/Steps/QuestCleanUp.cs @@ -38,7 +38,7 @@ internal static class QuestCleanUp } // if the quest uses no mount actions, that's not a mount quest - if (!quest.AllSteps().Any(x => x.Step.Action is { } action && action.RequiresMount())) + if (!quest.AllSteps().Any(x => (x.Step.Action is { } action && action.RequiresMount()) || (x.Step.InteractionType == EInteractionType.Combat && x.Step.KillEnemyDataIds.Contains(8593)))) { logger.LogInformation("Quest doesn't use any mount actions, teleporting to {Aetheryte}", mountConfiguration.ClosestAetheryte); return teleportTask; diff --git a/Questionable/Data/AlliedSocietyData.cs b/Questionable/Data/AlliedSocietyData.cs index 0ac4db072..4d3885395 100644 --- a/Questionable/Data/AlliedSocietyData.cs +++ b/Questionable/Data/AlliedSocietyData.cs @@ -16,6 +16,7 @@ internal sealed class AlliedSocietyData { 66, new(1016093, EAetheryteLocation.SeaOfCloudsOkZundu) }, { 79, new(1017031, EAetheryteLocation.DravanianForelandsAnyxTrine) }, { 89, new(1017322, EAetheryteLocation.ChurningMistsZenith) }, + { 147, new(1024777, EAetheryteLocation.FringesPeeringStones) }, { 369, new(1051798, EAetheryteLocation.KozamaukaDockPoga) }, }.AsReadOnly(); diff --git a/Questionable/QuestionablePlugin.cs b/Questionable/QuestionablePlugin.cs index 73af794f6..6c89d5ad5 100644 --- a/Questionable/QuestionablePlugin.cs +++ b/Questionable/QuestionablePlugin.cs @@ -246,6 +246,7 @@ public sealed class QuestionablePlugin : IDalamudPlugin serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); + serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); -- 2.45.2 From 31e7b610e136054545808e4b75cb37d42b81b0e4 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Thu, 26 Dec 2024 15:37:51 +0100 Subject: [PATCH 362/448] Add Kobold quest templates --- .../Dailies/1325_Rubbish for Refuse.json | 38 +++++++++++++++++++ .../1326_No Such Thing as a Free Lunch.json | 38 +++++++++++++++++++ .../Dailies/1327_Finger Licking Good.json | 38 +++++++++++++++++++ .../1328_Battle of the Bottom-feeders.json | 38 +++++++++++++++++++ .../Dailies/1329_Mothers of All Bombs.json | 38 +++++++++++++++++++ .../Kobolds/Dailies/1330_Know Your Place.json | 38 +++++++++++++++++++ .../Dailies/1331_Misery Loves Company.json | 38 +++++++++++++++++++ .../Dailies/1332_Ill-gotten Gains.json | 38 +++++++++++++++++++ .../Dailies/1333_Hells Have No Fury.json | 38 +++++++++++++++++++ .../Dailies/1334_Bo Zu's Blown Cover.json | 38 +++++++++++++++++++ .../Dailies/1335_Ambushing the Assessors.json | 38 +++++++++++++++++++ .../Dailies/1336_The Lode Warrior.json | 38 +++++++++++++++++++ .../Dailies/1337_Armed and Dangerous.json | 38 +++++++++++++++++++ .../Dailies/1338_Too Hot to Handle.json | 38 +++++++++++++++++++ .../Dailies/1339_Operation Riffraff.json | 38 +++++++++++++++++++ .../Dailies/1340_The Sly Salvages.json | 38 +++++++++++++++++++ .../Dailies/1341_Belles of the Ball.json | 38 +++++++++++++++++++ .../Dailies/1342_Contents Unknown.json | 38 +++++++++++++++++++ .../Kobolds/Dailies/1343_Brain Buster.json | 38 +++++++++++++++++++ .../Dailies/1344_A Dangerous Delivery.json | 38 +++++++++++++++++++ .../Dailies/1364_A Coblyn Catastrophe.json | 38 +++++++++++++++++++ .../Dailies/1365_Friends in Low Places.json | 38 +++++++++++++++++++ .../Dailies/1366_Glutton for Punishment.json | 38 +++++++++++++++++++ .../Kobolds/Dailies/1367_Genius at Work.json | 38 +++++++++++++++++++ .../Dailies/1368_Fulminating Furnaces.json | 38 +++++++++++++++++++ .../1369_A Meal Fit for a Fugleman.json | 38 +++++++++++++++++++ .../Dailies/1370_Spread the Wealth.json | 38 +++++++++++++++++++ .../Kobolds/Dailies/1371_Ba Go's Behest.json | 38 +++++++++++++++++++ .../Dailies/1372_Wrath of the Roundsman.json | 38 +++++++++++++++++++ .../Dailies/1373_Angry Angry Acolyte.json | 38 +++++++++++++++++++ 30 files changed, 1140 insertions(+) create mode 100644 QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1325_Rubbish for Refuse.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1326_No Such Thing as a Free Lunch.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1327_Finger Licking Good.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1328_Battle of the Bottom-feeders.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1329_Mothers of All Bombs.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1330_Know Your Place.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1331_Misery Loves Company.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1332_Ill-gotten Gains.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1333_Hells Have No Fury.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1334_Bo Zu's Blown Cover.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1335_Ambushing the Assessors.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1336_The Lode Warrior.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1337_Armed and Dangerous.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1338_Too Hot to Handle.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1339_Operation Riffraff.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1340_The Sly Salvages.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1341_Belles of the Ball.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1342_Contents Unknown.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1343_Brain Buster.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1344_A Dangerous Delivery.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1364_A Coblyn Catastrophe.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1365_Friends in Low Places.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1366_Glutton for Punishment.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1367_Genius at Work.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1368_Fulminating Furnaces.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1369_A Meal Fit for a Fugleman.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1370_Spread the Wealth.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1371_Ba Go's Behest.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1372_Wrath of the Roundsman.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1373_Angry Angry Acolyte.json diff --git a/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1325_Rubbish for Refuse.json b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1325_Rubbish for Refuse.json new file mode 100644 index 000000000..e84dfd387 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1325_Rubbish for Refuse.json @@ -0,0 +1,38 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "Disabled": true, + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1005928, + "Position": { + "X": 7.095398, + "Y": 16.167778, + "Z": -188.67786 + }, + "TerritoryId": 180, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1005928, + "Position": { + "X": 7.095398, + "Y": 16.167778, + "Z": -188.67786 + }, + "TerritoryId": 180, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1326_No Such Thing as a Free Lunch.json b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1326_No Such Thing as a Free Lunch.json new file mode 100644 index 000000000..e84dfd387 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1326_No Such Thing as a Free Lunch.json @@ -0,0 +1,38 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "Disabled": true, + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1005928, + "Position": { + "X": 7.095398, + "Y": 16.167778, + "Z": -188.67786 + }, + "TerritoryId": 180, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1005928, + "Position": { + "X": 7.095398, + "Y": 16.167778, + "Z": -188.67786 + }, + "TerritoryId": 180, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1327_Finger Licking Good.json b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1327_Finger Licking Good.json new file mode 100644 index 000000000..e84dfd387 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1327_Finger Licking Good.json @@ -0,0 +1,38 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "Disabled": true, + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1005928, + "Position": { + "X": 7.095398, + "Y": 16.167778, + "Z": -188.67786 + }, + "TerritoryId": 180, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1005928, + "Position": { + "X": 7.095398, + "Y": 16.167778, + "Z": -188.67786 + }, + "TerritoryId": 180, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1328_Battle of the Bottom-feeders.json b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1328_Battle of the Bottom-feeders.json new file mode 100644 index 000000000..e84dfd387 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1328_Battle of the Bottom-feeders.json @@ -0,0 +1,38 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "Disabled": true, + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1005928, + "Position": { + "X": 7.095398, + "Y": 16.167778, + "Z": -188.67786 + }, + "TerritoryId": 180, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1005928, + "Position": { + "X": 7.095398, + "Y": 16.167778, + "Z": -188.67786 + }, + "TerritoryId": 180, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1329_Mothers of All Bombs.json b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1329_Mothers of All Bombs.json new file mode 100644 index 000000000..e84dfd387 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1329_Mothers of All Bombs.json @@ -0,0 +1,38 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "Disabled": true, + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1005928, + "Position": { + "X": 7.095398, + "Y": 16.167778, + "Z": -188.67786 + }, + "TerritoryId": 180, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1005928, + "Position": { + "X": 7.095398, + "Y": 16.167778, + "Z": -188.67786 + }, + "TerritoryId": 180, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1330_Know Your Place.json b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1330_Know Your Place.json new file mode 100644 index 000000000..e84dfd387 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1330_Know Your Place.json @@ -0,0 +1,38 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "Disabled": true, + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1005928, + "Position": { + "X": 7.095398, + "Y": 16.167778, + "Z": -188.67786 + }, + "TerritoryId": 180, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1005928, + "Position": { + "X": 7.095398, + "Y": 16.167778, + "Z": -188.67786 + }, + "TerritoryId": 180, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1331_Misery Loves Company.json b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1331_Misery Loves Company.json new file mode 100644 index 000000000..e84dfd387 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1331_Misery Loves Company.json @@ -0,0 +1,38 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "Disabled": true, + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1005928, + "Position": { + "X": 7.095398, + "Y": 16.167778, + "Z": -188.67786 + }, + "TerritoryId": 180, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1005928, + "Position": { + "X": 7.095398, + "Y": 16.167778, + "Z": -188.67786 + }, + "TerritoryId": 180, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1332_Ill-gotten Gains.json b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1332_Ill-gotten Gains.json new file mode 100644 index 000000000..e84dfd387 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1332_Ill-gotten Gains.json @@ -0,0 +1,38 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "Disabled": true, + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1005928, + "Position": { + "X": 7.095398, + "Y": 16.167778, + "Z": -188.67786 + }, + "TerritoryId": 180, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1005928, + "Position": { + "X": 7.095398, + "Y": 16.167778, + "Z": -188.67786 + }, + "TerritoryId": 180, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1333_Hells Have No Fury.json b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1333_Hells Have No Fury.json new file mode 100644 index 000000000..e84dfd387 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1333_Hells Have No Fury.json @@ -0,0 +1,38 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "Disabled": true, + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1005928, + "Position": { + "X": 7.095398, + "Y": 16.167778, + "Z": -188.67786 + }, + "TerritoryId": 180, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1005928, + "Position": { + "X": 7.095398, + "Y": 16.167778, + "Z": -188.67786 + }, + "TerritoryId": 180, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1334_Bo Zu's Blown Cover.json b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1334_Bo Zu's Blown Cover.json new file mode 100644 index 000000000..e84dfd387 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1334_Bo Zu's Blown Cover.json @@ -0,0 +1,38 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "Disabled": true, + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1005928, + "Position": { + "X": 7.095398, + "Y": 16.167778, + "Z": -188.67786 + }, + "TerritoryId": 180, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1005928, + "Position": { + "X": 7.095398, + "Y": 16.167778, + "Z": -188.67786 + }, + "TerritoryId": 180, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1335_Ambushing the Assessors.json b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1335_Ambushing the Assessors.json new file mode 100644 index 000000000..e1d2e1859 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1335_Ambushing the Assessors.json @@ -0,0 +1,38 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "Disabled": true, + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1005929, + "Position": { + "X": 21.560913, + "Y": 16.342407, + "Z": -183.76447 + }, + "TerritoryId": 180, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1005929, + "Position": { + "X": 21.560913, + "Y": 16.342407, + "Z": -183.76447 + }, + "TerritoryId": 180, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1336_The Lode Warrior.json b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1336_The Lode Warrior.json new file mode 100644 index 000000000..e1d2e1859 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1336_The Lode Warrior.json @@ -0,0 +1,38 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "Disabled": true, + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1005929, + "Position": { + "X": 21.560913, + "Y": 16.342407, + "Z": -183.76447 + }, + "TerritoryId": 180, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1005929, + "Position": { + "X": 21.560913, + "Y": 16.342407, + "Z": -183.76447 + }, + "TerritoryId": 180, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1337_Armed and Dangerous.json b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1337_Armed and Dangerous.json new file mode 100644 index 000000000..e1d2e1859 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1337_Armed and Dangerous.json @@ -0,0 +1,38 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "Disabled": true, + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1005929, + "Position": { + "X": 21.560913, + "Y": 16.342407, + "Z": -183.76447 + }, + "TerritoryId": 180, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1005929, + "Position": { + "X": 21.560913, + "Y": 16.342407, + "Z": -183.76447 + }, + "TerritoryId": 180, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1338_Too Hot to Handle.json b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1338_Too Hot to Handle.json new file mode 100644 index 000000000..e1d2e1859 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1338_Too Hot to Handle.json @@ -0,0 +1,38 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "Disabled": true, + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1005929, + "Position": { + "X": 21.560913, + "Y": 16.342407, + "Z": -183.76447 + }, + "TerritoryId": 180, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1005929, + "Position": { + "X": 21.560913, + "Y": 16.342407, + "Z": -183.76447 + }, + "TerritoryId": 180, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1339_Operation Riffraff.json b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1339_Operation Riffraff.json new file mode 100644 index 000000000..e1d2e1859 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1339_Operation Riffraff.json @@ -0,0 +1,38 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "Disabled": true, + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1005929, + "Position": { + "X": 21.560913, + "Y": 16.342407, + "Z": -183.76447 + }, + "TerritoryId": 180, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1005929, + "Position": { + "X": 21.560913, + "Y": 16.342407, + "Z": -183.76447 + }, + "TerritoryId": 180, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1340_The Sly Salvages.json b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1340_The Sly Salvages.json new file mode 100644 index 000000000..e1d2e1859 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1340_The Sly Salvages.json @@ -0,0 +1,38 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "Disabled": true, + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1005929, + "Position": { + "X": 21.560913, + "Y": 16.342407, + "Z": -183.76447 + }, + "TerritoryId": 180, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1005929, + "Position": { + "X": 21.560913, + "Y": 16.342407, + "Z": -183.76447 + }, + "TerritoryId": 180, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1341_Belles of the Ball.json b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1341_Belles of the Ball.json new file mode 100644 index 000000000..e1d2e1859 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1341_Belles of the Ball.json @@ -0,0 +1,38 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "Disabled": true, + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1005929, + "Position": { + "X": 21.560913, + "Y": 16.342407, + "Z": -183.76447 + }, + "TerritoryId": 180, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1005929, + "Position": { + "X": 21.560913, + "Y": 16.342407, + "Z": -183.76447 + }, + "TerritoryId": 180, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1342_Contents Unknown.json b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1342_Contents Unknown.json new file mode 100644 index 000000000..e1d2e1859 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1342_Contents Unknown.json @@ -0,0 +1,38 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "Disabled": true, + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1005929, + "Position": { + "X": 21.560913, + "Y": 16.342407, + "Z": -183.76447 + }, + "TerritoryId": 180, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1005929, + "Position": { + "X": 21.560913, + "Y": 16.342407, + "Z": -183.76447 + }, + "TerritoryId": 180, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1343_Brain Buster.json b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1343_Brain Buster.json new file mode 100644 index 000000000..e1d2e1859 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1343_Brain Buster.json @@ -0,0 +1,38 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "Disabled": true, + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1005929, + "Position": { + "X": 21.560913, + "Y": 16.342407, + "Z": -183.76447 + }, + "TerritoryId": 180, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1005929, + "Position": { + "X": 21.560913, + "Y": 16.342407, + "Z": -183.76447 + }, + "TerritoryId": 180, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1344_A Dangerous Delivery.json b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1344_A Dangerous Delivery.json new file mode 100644 index 000000000..e1d2e1859 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1344_A Dangerous Delivery.json @@ -0,0 +1,38 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "Disabled": true, + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1005929, + "Position": { + "X": 21.560913, + "Y": 16.342407, + "Z": -183.76447 + }, + "TerritoryId": 180, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1005929, + "Position": { + "X": 21.560913, + "Y": 16.342407, + "Z": -183.76447 + }, + "TerritoryId": 180, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1364_A Coblyn Catastrophe.json b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1364_A Coblyn Catastrophe.json new file mode 100644 index 000000000..b100ce645 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1364_A Coblyn Catastrophe.json @@ -0,0 +1,38 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "Disabled": true, + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1005930, + "Position": { + "X": 12.558105, + "Y": 16.159302, + "Z": -176.5622 + }, + "TerritoryId": 180, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1005930, + "Position": { + "X": 12.558105, + "Y": 16.159302, + "Z": -176.5622 + }, + "TerritoryId": 180, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1365_Friends in Low Places.json b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1365_Friends in Low Places.json new file mode 100644 index 000000000..b100ce645 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1365_Friends in Low Places.json @@ -0,0 +1,38 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "Disabled": true, + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1005930, + "Position": { + "X": 12.558105, + "Y": 16.159302, + "Z": -176.5622 + }, + "TerritoryId": 180, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1005930, + "Position": { + "X": 12.558105, + "Y": 16.159302, + "Z": -176.5622 + }, + "TerritoryId": 180, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1366_Glutton for Punishment.json b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1366_Glutton for Punishment.json new file mode 100644 index 000000000..b100ce645 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1366_Glutton for Punishment.json @@ -0,0 +1,38 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "Disabled": true, + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1005930, + "Position": { + "X": 12.558105, + "Y": 16.159302, + "Z": -176.5622 + }, + "TerritoryId": 180, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1005930, + "Position": { + "X": 12.558105, + "Y": 16.159302, + "Z": -176.5622 + }, + "TerritoryId": 180, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1367_Genius at Work.json b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1367_Genius at Work.json new file mode 100644 index 000000000..b100ce645 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1367_Genius at Work.json @@ -0,0 +1,38 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "Disabled": true, + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1005930, + "Position": { + "X": 12.558105, + "Y": 16.159302, + "Z": -176.5622 + }, + "TerritoryId": 180, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1005930, + "Position": { + "X": 12.558105, + "Y": 16.159302, + "Z": -176.5622 + }, + "TerritoryId": 180, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1368_Fulminating Furnaces.json b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1368_Fulminating Furnaces.json new file mode 100644 index 000000000..b100ce645 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1368_Fulminating Furnaces.json @@ -0,0 +1,38 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "Disabled": true, + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1005930, + "Position": { + "X": 12.558105, + "Y": 16.159302, + "Z": -176.5622 + }, + "TerritoryId": 180, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1005930, + "Position": { + "X": 12.558105, + "Y": 16.159302, + "Z": -176.5622 + }, + "TerritoryId": 180, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1369_A Meal Fit for a Fugleman.json b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1369_A Meal Fit for a Fugleman.json new file mode 100644 index 000000000..b100ce645 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1369_A Meal Fit for a Fugleman.json @@ -0,0 +1,38 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "Disabled": true, + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1005930, + "Position": { + "X": 12.558105, + "Y": 16.159302, + "Z": -176.5622 + }, + "TerritoryId": 180, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1005930, + "Position": { + "X": 12.558105, + "Y": 16.159302, + "Z": -176.5622 + }, + "TerritoryId": 180, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1370_Spread the Wealth.json b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1370_Spread the Wealth.json new file mode 100644 index 000000000..b100ce645 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1370_Spread the Wealth.json @@ -0,0 +1,38 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "Disabled": true, + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1005930, + "Position": { + "X": 12.558105, + "Y": 16.159302, + "Z": -176.5622 + }, + "TerritoryId": 180, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1005930, + "Position": { + "X": 12.558105, + "Y": 16.159302, + "Z": -176.5622 + }, + "TerritoryId": 180, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1371_Ba Go's Behest.json b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1371_Ba Go's Behest.json new file mode 100644 index 000000000..b100ce645 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1371_Ba Go's Behest.json @@ -0,0 +1,38 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "Disabled": true, + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1005930, + "Position": { + "X": 12.558105, + "Y": 16.159302, + "Z": -176.5622 + }, + "TerritoryId": 180, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1005930, + "Position": { + "X": 12.558105, + "Y": 16.159302, + "Z": -176.5622 + }, + "TerritoryId": 180, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1372_Wrath of the Roundsman.json b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1372_Wrath of the Roundsman.json new file mode 100644 index 000000000..b100ce645 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1372_Wrath of the Roundsman.json @@ -0,0 +1,38 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "Disabled": true, + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1005930, + "Position": { + "X": 12.558105, + "Y": 16.159302, + "Z": -176.5622 + }, + "TerritoryId": 180, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1005930, + "Position": { + "X": 12.558105, + "Y": 16.159302, + "Z": -176.5622 + }, + "TerritoryId": 180, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1373_Angry Angry Acolyte.json b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1373_Angry Angry Acolyte.json new file mode 100644 index 000000000..b100ce645 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1373_Angry Angry Acolyte.json @@ -0,0 +1,38 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "Disabled": true, + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1005930, + "Position": { + "X": 12.558105, + "Y": 16.159302, + "Z": -176.5622 + }, + "TerritoryId": 180, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1005930, + "Position": { + "X": 12.558105, + "Y": 16.159302, + "Z": -176.5622 + }, + "TerritoryId": 180, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} -- 2.45.2 From d0f6db2fb826f03159a083c6445c90e43f3cf776 Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Thu, 26 Dec 2024 22:53:16 +0800 Subject: [PATCH 363/448] Added new moogle mount and mount NPC --- Questionable/Data/AlliedSocietyData.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Questionable/Data/AlliedSocietyData.cs b/Questionable/Data/AlliedSocietyData.cs index 4d3885395..11ea03a12 100644 --- a/Questionable/Data/AlliedSocietyData.cs +++ b/Questionable/Data/AlliedSocietyData.cs @@ -15,6 +15,7 @@ internal sealed class AlliedSocietyData { { 66, new(1016093, EAetheryteLocation.SeaOfCloudsOkZundu) }, { 79, new(1017031, EAetheryteLocation.DravanianForelandsAnyxTrine) }, + { 88, new(1017470, EAetheryteLocation.ChurningMistsZenith) }, { 89, new(1017322, EAetheryteLocation.ChurningMistsZenith) }, { 147, new(1024777, EAetheryteLocation.FringesPeeringStones) }, { 369, new(1051798, EAetheryteLocation.KozamaukaDockPoga) }, @@ -52,7 +53,7 @@ internal sealed class AlliedSocietyData else if (alliedSociety == EAlliedSociety.Moogles) { normalNpcs = []; - mountNpcs = [1017322]; + mountNpcs = [1017322, 1017470]; } else { -- 2.45.2 From 71922b76b79d893382f7436a1a3538389fc7ba7d Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Thu, 26 Dec 2024 22:53:42 +0800 Subject: [PATCH 364/448] Added new action 'Roar' --- QuestPaths/quest-v1.json | 1 + Questionable.Model/Questing/Converter/ActionConverter.cs | 1 + Questionable.Model/Questing/EAction.cs | 2 ++ 3 files changed, 4 insertions(+) diff --git a/QuestPaths/quest-v1.json b/QuestPaths/quest-v1.json index 3b7eeb318..247628f85 100644 --- a/QuestPaths/quest-v1.json +++ b/QuestPaths/quest-v1.json @@ -963,6 +963,7 @@ "Buffet (Griffin)", "Trample", "Fumigate", + "Roar", "Seed", "Inhale", "Siphon Snout", diff --git a/Questionable.Model/Questing/Converter/ActionConverter.cs b/Questionable.Model/Questing/Converter/ActionConverter.cs index d5b1128f2..0f72c7317 100644 --- a/Questionable.Model/Questing/Converter/ActionConverter.cs +++ b/Questionable.Model/Questing/Converter/ActionConverter.cs @@ -27,6 +27,7 @@ public sealed class ActionConverter() : EnumConverter(Values) { EAction.BuffetGriffin, "Buffet (Griffin)" }, { EAction.Trample, "Trample" }, { EAction.Fumigate, "Fumigate" }, + { EAction.Roar, "Roar" }, { EAction.Seed, "Seed" }, { EAction.Inhale, "Inhale" }, { EAction.SiphonSnout, "Siphon Snout" }, diff --git a/Questionable.Model/Questing/EAction.cs b/Questionable.Model/Questing/EAction.cs index b4bd7c2be..3a4981af6 100644 --- a/Questionable.Model/Questing/EAction.cs +++ b/Questionable.Model/Questing/EAction.cs @@ -26,6 +26,7 @@ public enum EAction BuffetGriffin = 4583, Trample = 4585, Fumigate = 5872, + Roar = 6293, Seed = 6294, MagitekPulse = 8624, MagitekThunder = 8625, @@ -81,6 +82,7 @@ public static class EActionExtensions or EAction.BuffetGriffin or EAction.Trample or EAction.Fumigate + or EAction.Roar or EAction.Seed or EAction.Inhale or EAction.SiphonSnout -- 2.45.2 From e2757a8bd72a65b7906a7b3a8df286c49bfe9a9a Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Thu, 26 Dec 2024 22:55:25 +0800 Subject: [PATCH 365/448] Added new Moogle daily quests: - Stumbling Blocks - Tricks without Treats - For Moogles in Peril --- .../Dailies/2300_Stumbling Blocks.json | 63 +++++++++++++++- .../Dailies/2301_Tricks without Treats.json | 73 ++++++++++++++++++- .../Dailies/2302_For Moogles in Peril.json | 70 +++++++++++++++++- 3 files changed, 200 insertions(+), 6 deletions(-) diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2300_Stumbling Blocks.json b/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2300_Stumbling Blocks.json index 1a867f707..9dce2e4eb 100644 --- a/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2300_Stumbling Blocks.json +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2300_Stumbling Blocks.json @@ -1,7 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "liza", - "Disabled": true, + "Author": "plogon_enjoyer", "QuestSequence": [ { "Sequence": 0, @@ -18,6 +17,66 @@ } ] }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1017383, + "Position": { + "X": -657.46545, + "Y": 73.76131, + "Z": 219.28735 + }, + "TerritoryId": 400, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "TerritoryId": 400, + "InteractionType": "Craft", + "ItemId": 15733, + "ItemCount": 1 + }, + { + "DataId": 1017384, + "Position": { + "X": -651.51447, + "Y": 73, + "Z": 217.2732 + }, + "TerritoryId": 400, + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Prompt": "TEXT_BANMOG303_02300_Q1_000_000", + "Type": "List", + "Answer": "TEXT_BANMOG303_02300_A1_000_001" + } + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1017387, + "Position": { + "X": -59.55603, + "Y": -8.685017, + "Z": 186.84668 + }, + "TerritoryId": 400, + "InteractionType": "Interact", + "Fly": true + } + ] + }, { "Sequence": 255, "Steps": [ diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2301_Tricks without Treats.json b/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2301_Tricks without Treats.json index 1a867f707..eb345812f 100644 --- a/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2301_Tricks without Treats.json +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2301_Tricks without Treats.json @@ -1,7 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "liza", - "Disabled": true, + "Author": "plogon_enjoyer", "QuestSequence": [ { "Sequence": 0, @@ -18,6 +17,76 @@ } ] }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1017321, + "Position": { + "X": -376.4859, + "Y": 60.89619, + "Z": 319.7832 + }, + "TerritoryId": 400, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "TerritoryId": 400, + "InteractionType": "Craft", + "ItemId": 15734, + "ItemCount": 1 + }, + { + "DataId": 1017392, + "Position": { + "X": 112.687744, + "Y": -24.088774, + "Z": 167.74243 + }, + "TerritoryId": 400, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2007234, + "Position": { + "X": 111.86377, + "Y": -21.988281, + "Z": 192.43152 + }, + "TerritoryId": 400, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1017392, + "Position": { + "X": 112.687744, + "Y": -24.088774, + "Z": 167.74243 + }, + "TerritoryId": 400, + "InteractionType": "Interact", + "Fly": true + } + ] + }, { "Sequence": 255, "Steps": [ diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2302_For Moogles in Peril.json b/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2302_For Moogles in Peril.json index 1a867f707..75497f355 100644 --- a/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2302_For Moogles in Peril.json +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2302_For Moogles in Peril.json @@ -1,7 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "liza", - "Disabled": true, + "Author": "plogon_enjoyer", "QuestSequence": [ { "Sequence": 0, @@ -18,6 +17,73 @@ } ] }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1017470, + "Position": { + "X": -353.53632, + "Y": 60.896175, + "Z": 299.61084 + }, + "TerritoryId": 400, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2007272, + "Position": { + "X": 306.53845, + "Y": -38.254395, + "Z": 111.0094 + }, + "TerritoryId": 400, + "InteractionType": "Action", + "Action": "Roar", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2007273, + "Position": { + "X": 431.99805, + "Y": -28.152893, + "Z": 112.321655 + }, + "TerritoryId": 400, + "InteractionType": "Action", + "Action": "Roar", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 2007274, + "Position": { + "X": 390.70715, + "Y": -35.599304, + "Z": 252.58252 + }, + "TerritoryId": 400, + "InteractionType": "Action", + "Action": "Roar", + "Fly": true + } + ] + }, { "Sequence": 255, "Steps": [ -- 2.45.2 From ebd73bb6fcdee11484b093365fa2feefca745863 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Thu, 26 Dec 2024 15:59:30 +0100 Subject: [PATCH 366/448] Add some kobold dailies --- .../1326_No Such Thing as a Free Lunch.json | 74 +++++++++++++++- .../Dailies/1327_Finger Licking Good.json | 40 ++++++++- .../1328_Battle of the Bottom-feeders.json | 21 ++++- .../Dailies/1337_Armed and Dangerous.json | 56 +++++++++++- .../Dailies/1338_Too Hot to Handle.json | 23 ++++- .../Dailies/1366_Glutton for Punishment.json | 88 ++++++++++++++++++- 6 files changed, 296 insertions(+), 6 deletions(-) diff --git a/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1326_No Such Thing as a Free Lunch.json b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1326_No Such Thing as a Free Lunch.json index e84dfd387..95440de5a 100644 --- a/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1326_No Such Thing as a Free Lunch.json +++ b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1326_No Such Thing as a Free Lunch.json @@ -1,7 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", - "Disabled": true, "QuestSequence": [ { "Sequence": 0, @@ -18,6 +17,79 @@ } ] }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": 11.243606, + "Y": 49.8394, + "Z": -374.39398 + }, + "TerritoryId": 180, + "InteractionType": "WalkTo", + "Fly": true, + "SkipConditions": { + "StepIf": { + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + } + } + }, + { + "DataId": 2003774, + "Position": { + "X": 10.269287, + "Y": 49.82068, + "Z": -375.5398 + }, + "TerritoryId": 180, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 2004022, + "Position": { + "X": 39.139404, + "Y": 48.2948, + "Z": -342.33618 + }, + "TerritoryId": 180, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 8 + ] + }, + { + "DataId": 2004020, + "Position": { + "X": 51.102417, + "Y": 48.2948, + "Z": -349.50793 + }, + "TerritoryId": 180, + "InteractionType": "Interact" + } + ] + }, { "Sequence": 255, "Steps": [ diff --git a/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1327_Finger Licking Good.json b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1327_Finger Licking Good.json index e84dfd387..5354bb26e 100644 --- a/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1327_Finger Licking Good.json +++ b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1327_Finger Licking Good.json @@ -1,7 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", - "Disabled": true, "QuestSequence": [ { "Sequence": 0, @@ -18,6 +17,45 @@ } ] }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": -1.668298, + "Y": 48.422268, + "Z": -312.28842 + }, + "TerritoryId": 180, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "ComplexCombatData": [ + { + "DataId": 327, + "MinimumKillCount": 3, + "RewardItemId": 2001266, + "RewardItemCount": 3 + } + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1005932, + "Position": { + "X": -1.236023, + "Y": 33.38838, + "Z": -244.19019 + }, + "TerritoryId": 180, + "InteractionType": "Interact", + "Fly": true + } + ] + }, { "Sequence": 255, "Steps": [ diff --git a/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1328_Battle of the Bottom-feeders.json b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1328_Battle of the Bottom-feeders.json index e84dfd387..aea657e90 100644 --- a/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1328_Battle of the Bottom-feeders.json +++ b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1328_Battle of the Bottom-feeders.json @@ -1,7 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", - "Disabled": true, "QuestSequence": [ { "Sequence": 0, @@ -18,6 +17,26 @@ } ] }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": 65.98078, + "Y": 57.753456, + "Z": -310.697 + }, + "TerritoryId": 180, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "KillEnemyDataIds": [ + 755, + 2881 + ], + "Fly": true + } + ] + }, { "Sequence": 255, "Steps": [ diff --git a/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1337_Armed and Dangerous.json b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1337_Armed and Dangerous.json index e1d2e1859..e6436230c 100644 --- a/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1337_Armed and Dangerous.json +++ b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1337_Armed and Dangerous.json @@ -1,7 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", - "Disabled": true, "QuestSequence": [ { "Sequence": 0, @@ -18,6 +17,61 @@ } ] }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1005932, + "Position": { + "X": -1.236023, + "Y": 33.38838, + "Z": -244.19019 + }, + "TerritoryId": 180, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2003686, + "Position": { + "X": 57.602783, + "Y": 48.111572, + "Z": -388.29633 + }, + "TerritoryId": 180, + "InteractionType": "Combat", + "EnemySpawnType": "AfterItemUse", + "KillEnemyDataIds": [ + 2899, + 2900, + 2901 + ], + "ItemId": 2001226, + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1005932, + "Position": { + "X": -1.236023, + "Y": 33.38838, + "Z": -244.19019 + }, + "TerritoryId": 180, + "InteractionType": "Interact", + "Fly": true + } + ] + }, { "Sequence": 255, "Steps": [ diff --git a/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1338_Too Hot to Handle.json b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1338_Too Hot to Handle.json index e1d2e1859..4294e085f 100644 --- a/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1338_Too Hot to Handle.json +++ b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1338_Too Hot to Handle.json @@ -1,7 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", - "Disabled": true, "QuestSequence": [ { "Sequence": 0, @@ -18,6 +17,28 @@ } ] }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": 51.48164, + "Y": 55.599014, + "Z": -491.209 + }, + "TerritoryId": 180, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "ComplexCombatData": [ + { + "DataId": 1833, + "MinimumKillCount": 2 + } + ], + "Fly": true + } + ] + }, { "Sequence": 255, "Steps": [ diff --git a/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1366_Glutton for Punishment.json b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1366_Glutton for Punishment.json index b100ce645..45fa6cebb 100644 --- a/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1366_Glutton for Punishment.json +++ b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1366_Glutton for Punishment.json @@ -1,7 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", - "Disabled": true, "QuestSequence": [ { "Sequence": 0, @@ -18,6 +17,92 @@ } ] }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": 112.19494, + "Y": 23.602901, + "Z": -611.7208 + }, + "TerritoryId": 180, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "Position": { + "X": 13.632976, + "Y": 21.54334, + "Z": -769.12134 + }, + "TerritoryId": 180, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 2003699, + "Position": { + "X": 7.94989, + "Y": 21.713562, + "Z": -769.06995 + }, + "TerritoryId": 180, + "InteractionType": "Combat", + "EnemySpawnType": "AfterItemUse", + "KillEnemyDataIds": [ + 2841 + ], + "ItemId": 2001230, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, + { + "DataId": 2003701, + "Position": { + "X": 5.142273, + "Y": 23.75824, + "Z": -803.9216 + }, + "TerritoryId": 180, + "InteractionType": "Combat", + "EnemySpawnType": "AfterItemUse", + "KillEnemyDataIds": [ + 2841 + ], + "ItemId": 2001230, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 8 + ] + }, + { + "DataId": 2003702, + "Position": { + "X": 0.47296143, + "Y": 24.551636, + "Z": -795.74274 + }, + "TerritoryId": 180, + "InteractionType": "Combat", + "EnemySpawnType": "AfterItemUse", + "KillEnemyDataIds": [ + 2841 + ], + "ItemId": 2001230 + } + ] + }, { "Sequence": 255, "Steps": [ @@ -30,6 +115,7 @@ }, "TerritoryId": 180, "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Outer La Noscea - Camp Overlook", "Fly": true } ] -- 2.45.2 From 0eca81e4749b5df762ee8d16bd5e1ab977ec7763 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Thu, 26 Dec 2024 16:19:44 +0100 Subject: [PATCH 367/448] Add some moogle dailies --- .../Moogles/Dailies/2311_Ship of Dreams.json | 83 +++++++++++++- .../Moogles/Dailies/2317_Mine and Craft.json | 38 +++++- .../Dailies/2318_The Moogle Motivator.json | 108 +++++++++++++++++- .../Dailies/2319_Tremble Finishing.json | 50 +++++++- 4 files changed, 275 insertions(+), 4 deletions(-) diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2311_Ship of Dreams.json b/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2311_Ship of Dreams.json index 1a867f707..2e9078a67 100644 --- a/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2311_Ship of Dreams.json +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2311_Ship of Dreams.json @@ -1,7 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", - "Disabled": true, "QuestSequence": [ { "Sequence": 0, @@ -18,6 +17,88 @@ } ] }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1017422, + "Position": { + "X": -8.804504, + "Y": 81.8406, + "Z": -312.00128 + }, + "TerritoryId": 400, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1017424, + "Position": { + "X": 7.4310913, + "Y": 81.84059, + "Z": -321.1872 + }, + "TerritoryId": 400, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1017422, + "Position": { + "X": -8.804504, + "Y": 81.8406, + "Z": -312.00128 + }, + "TerritoryId": 400, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "TerritoryId": 400, + "InteractionType": "Craft", + "ItemId": 15740, + "ItemCount": 3 + }, + { + "DataId": 1017424, + "Position": { + "X": 7.4310913, + "Y": 81.84059, + "Z": -321.1872 + }, + "TerritoryId": 400, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1017422, + "Position": { + "X": -8.804504, + "Y": 81.8406, + "Z": -312.00128 + }, + "TerritoryId": 400, + "InteractionType": "Interact" + } + ] + }, { "Sequence": 255, "Steps": [ diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2317_Mine and Craft.json b/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2317_Mine and Craft.json index 1a867f707..4d2f05e6d 100644 --- a/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2317_Mine and Craft.json +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2317_Mine and Craft.json @@ -1,7 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", - "Disabled": true, "QuestSequence": [ { "Sequence": 0, @@ -18,6 +17,43 @@ } ] }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1017465, + "Position": { + "X": 202.28882, + "Y": 42.309406, + "Z": -577.3861 + }, + "TerritoryId": 400, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "TerritoryId": 400, + "InteractionType": "Craft", + "ItemId": 15744, + "ItemCount": 2 + }, + { + "DataId": 1017466, + "Position": { + "X": 176.71472, + "Y": 42.308628, + "Z": -571.37415 + }, + "TerritoryId": 400, + "InteractionType": "Interact" + } + ] + }, { "Sequence": 255, "Steps": [ diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2318_The Moogle Motivator.json b/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2318_The Moogle Motivator.json index 1a867f707..5217e3e48 100644 --- a/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2318_The Moogle Motivator.json +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2318_The Moogle Motivator.json @@ -1,7 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", - "Disabled": true, "QuestSequence": [ { "Sequence": 0, @@ -18,6 +17,113 @@ } ] }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1017351, + "Position": { + "X": -74.87604, + "Y": -8.172172, + "Z": 158.70898 + }, + "TerritoryId": 400, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1017467, + "Position": { + "X": -40.20758, + "Y": -8.6555605, + "Z": 202.83813 + }, + "StopDistance": 0.5, + "TerritoryId": 400, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1017624, + "Position": { + "X": -76.0968, + "Y": -8.655561, + "Z": 216.17456 + }, + "TerritoryId": 400, + "InteractionType": "Emote", + "Emote": "psych", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1017625, + "Position": { + "X": -46.76892, + "Y": 10.765197, + "Z": 243.12195 + }, + "StopDistance": 0.5, + "TerritoryId": 400, + "InteractionType": "Emote", + "Emote": "slap", + "Fly": true + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1017351, + "Position": { + "X": -74.87604, + "Y": -8.172172, + "Z": 158.70898 + }, + "TerritoryId": 400, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "TerritoryId": 400, + "InteractionType": "Craft", + "ItemId": 15745, + "ItemCount": 1 + }, + { + "DataId": 1017625, + "Position": { + "X": -46.76892, + "Y": 10.765197, + "Z": 243.12195 + }, + "StopDistance": 0.5, + "TerritoryId": 400, + "InteractionType": "Interact", + "Fly": true + } + ] + }, { "Sequence": 255, "Steps": [ diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2319_Tremble Finishing.json b/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2319_Tremble Finishing.json index 1a867f707..f951ed6ea 100644 --- a/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2319_Tremble Finishing.json +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2319_Tremble Finishing.json @@ -1,7 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", - "Disabled": true, "QuestSequence": [ { "Sequence": 0, @@ -18,6 +17,55 @@ } ] }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1017470, + "Position": { + "X": -353.53632, + "Y": 60.896175, + "Z": 299.61084 + }, + "TerritoryId": 400, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2007283, + "Position": { + "X": -177.87445, + "Y": 53.055542, + "Z": 53.665894 + }, + "TerritoryId": 400, + "InteractionType": "Action", + "Action": "Roar", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2007284, + "Position": { + "X": -320.60736, + "Y": 220.38599, + "Z": -708.00336 + }, + "TerritoryId": 400, + "InteractionType": "Action", + "Action": "Roar", + "Fly": true + } + ] + }, { "Sequence": 255, "Steps": [ -- 2.45.2 From 3b7032bff6cf29192cfecb12c842c0baea72f77b Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Thu, 26 Dec 2024 16:54:47 +0100 Subject: [PATCH 368/448] Add SB SMN quests --- .../SMN/2625_A Book with Bite.json | 123 +++++++++++++++ .../SMN/2626_Performing for Prin.json | 144 +++++++++++++++++ .../SMN/2627_An Egi-stential Crisis.json | 110 +++++++++++++ .../Class Quests/SMN/2628_Off the Record.json | 149 ++++++++++++++++++ .../SMN/2629_An Art for the Living.json | 138 ++++++++++++++++ 5 files changed, 664 insertions(+) create mode 100644 QuestPaths/4.x - Stormblood/Class Quests/SMN/2625_A Book with Bite.json create mode 100644 QuestPaths/4.x - Stormblood/Class Quests/SMN/2626_Performing for Prin.json create mode 100644 QuestPaths/4.x - Stormblood/Class Quests/SMN/2627_An Egi-stential Crisis.json create mode 100644 QuestPaths/4.x - Stormblood/Class Quests/SMN/2628_Off the Record.json create mode 100644 QuestPaths/4.x - Stormblood/Class Quests/SMN/2629_An Art for the Living.json diff --git a/QuestPaths/4.x - Stormblood/Class Quests/SMN/2625_A Book with Bite.json b/QuestPaths/4.x - Stormblood/Class Quests/SMN/2625_A Book with Bite.json new file mode 100644 index 000000000..c5ad956da --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/SMN/2625_A Book with Bite.json @@ -0,0 +1,123 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1006756, + "Position": { + "X": -16.891846, + "Y": 10.17425, + "Z": -246.87573 + }, + "TerritoryId": 133, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Mih Khetto's Amphitheatre" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 133 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1006725, + "Position": { + "X": 446.82983, + "Y": -5.306207, + "Z": -465.72064 + }, + "TerritoryId": 156, + "InteractionType": "Interact", + "AetheryteShortcut": "Mor Dhona", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1022761, + "Position": { + "X": 5.996765, + "Y": 20.712559, + "Z": -659.26605 + }, + "TerritoryId": 156, + "InteractionType": "Interact", + "AetheryteShortcut": "Mor Dhona" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1022762, + "Position": { + "X": 385.39697, + "Y": 23.711746, + "Z": -712.7031 + }, + "TerritoryId": 156, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 7227 + ], + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1022763, + "Position": { + "X": 384.0542, + "Y": 23.602556, + "Z": -711.20776 + }, + "TerritoryId": 156, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1006756, + "Position": { + "X": -16.891846, + "Y": 10.17425, + "Z": -246.87573 + }, + "TerritoryId": 133, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Mih Khetto's Amphitheatre" + ], + "NextQuestId": 2626 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Class Quests/SMN/2626_Performing for Prin.json b/QuestPaths/4.x - Stormblood/Class Quests/SMN/2626_Performing for Prin.json new file mode 100644 index 000000000..b72821524 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/SMN/2626_Performing for Prin.json @@ -0,0 +1,144 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1006756, + "Position": { + "X": -16.891846, + "Y": 10.17425, + "Z": -246.87573 + }, + "TerritoryId": 133, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Mih Khetto's Amphitheatre" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 133 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1022765, + "Position": { + "X": 49.66809, + "Y": 3.9999626, + "Z": 429.22095 + }, + "TerritoryId": 147, + "InteractionType": "Interact", + "AetheryteShortcut": "Northern Thanalan - Camp Bluefog" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1022770, + "Position": { + "X": 82.38342, + "Y": 14.362329, + "Z": 221.20996 + }, + "TerritoryId": 147, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 7228 + ], + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1022772, + "Position": { + "X": 87.907104, + "Y": 14.713098, + "Z": 222.03394 + }, + "TerritoryId": 147, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 7229 + ] + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1022772, + "Position": { + "X": 87.907104, + "Y": 14.713098, + "Z": 222.03394 + }, + "TerritoryId": 147, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 7230 + ] + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1022773, + "Position": { + "X": 74.66235, + "Y": 14.033362, + "Z": 228.5343 + }, + "TerritoryId": 147, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1006756, + "Position": { + "X": -16.891846, + "Y": 10.17425, + "Z": -246.87573 + }, + "TerritoryId": 133, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Mih Khetto's Amphitheatre" + ], + "NextQuestId": 2627 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Class Quests/SMN/2627_An Egi-stential Crisis.json b/QuestPaths/4.x - Stormblood/Class Quests/SMN/2627_An Egi-stential Crisis.json new file mode 100644 index 000000000..6cc694794 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/SMN/2627_An Egi-stential Crisis.json @@ -0,0 +1,110 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1006756, + "Position": { + "X": -16.891846, + "Y": 10.17425, + "Z": -246.87573 + }, + "TerritoryId": 133, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Mih Khetto's Amphitheatre" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 133 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1014039, + "Position": { + "X": -17.990417, + "Y": 83.19999, + "Z": 0.6560669 + }, + "TerritoryId": 130, + "InteractionType": "Interact", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Airship Landing" + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1014038, + "Position": { + "X": -20.24878, + "Y": 83.19998, + "Z": -1.4801636 + }, + "StopDistance": 7, + "TerritoryId": 130, + "InteractionType": "SinglePlayerDuty" + } + ] + }, + { + "Sequence": 3 + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1014040, + "Position": { + "X": -19.028076, + "Y": 83.19999, + "Z": 0.10675049 + }, + "StopDistance": 7, + "TerritoryId": 130, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1006756, + "Position": { + "X": -16.891846, + "Y": 10.17425, + "Z": -246.87573 + }, + "TerritoryId": 133, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Mih Khetto's Amphitheatre" + ], + "NextQuestId": 2628 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Class Quests/SMN/2628_Off the Record.json b/QuestPaths/4.x - Stormblood/Class Quests/SMN/2628_Off the Record.json new file mode 100644 index 000000000..9d5313fb4 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/SMN/2628_Off the Record.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": [ + { + "DataId": 1006756, + "Position": { + "X": -16.891846, + "Y": 10.17425, + "Z": -246.87573 + }, + "TerritoryId": 133, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Mih Khetto's Amphitheatre" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 133 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1006725, + "Position": { + "X": 446.82983, + "Y": -5.306207, + "Z": -465.72064 + }, + "TerritoryId": 156, + "InteractionType": "Interact", + "AetheryteShortcut": "Mor Dhona", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": 26.405773, + "Y": 29.49983, + "Z": -767.3998 + }, + "TerritoryId": 156, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Mor Dhona", + "Fly": true + }, + { + "Position": { + "X": 25.629164, + "Y": 28.999998, + "Z": -823.2204 + }, + "TerritoryId": 156, + "InteractionType": "WalkTo" + }, + { + "DataId": 1001304, + "Position": { + "X": 25.589355, + "Y": 29, + "Z": -825.37573 + }, + "TerritoryId": 156, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "Position": { + "X": 26.405773, + "Y": 29.49983, + "Z": -767.3998 + }, + "TerritoryId": 156, + "InteractionType": "WalkTo" + }, + { + "DataId": 1023894, + "Position": { + "X": 8.346619, + "Y": 20.717896, + "Z": -657.49603 + }, + "TerritoryId": 156, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1022780, + "Position": { + "X": 412.5581, + "Y": -5.7435417, + "Z": -436.39276 + }, + "TerritoryId": 156, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1006756, + "Position": { + "X": -16.891846, + "Y": 10.17425, + "Z": -246.87573 + }, + "TerritoryId": 133, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Mih Khetto's Amphitheatre" + ], + "NextQuestId": 2629 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Class Quests/SMN/2629_An Art for the Living.json b/QuestPaths/4.x - Stormblood/Class Quests/SMN/2629_An Art for the Living.json new file mode 100644 index 000000000..0cf770887 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/SMN/2629_An Art for the Living.json @@ -0,0 +1,138 @@ + +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1006756, + "Position": { + "X": -16.891846, + "Y": 10.17425, + "Z": -246.87573 + }, + "TerritoryId": 133, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Mih Khetto's Amphitheatre" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 133 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1022785, + "Position": { + "X": -624.6891, + "Y": -176.4502, + "Z": -565.0874 + }, + "TerritoryId": 402, + "InteractionType": "Interact", + "AetheryteShortcut": "Azys Lla - Helix", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": 20.176798, + "Y": 293.97687, + "Z": -0.15623161 + }, + "StopDistance": 0.5, + "TerritoryId": 402, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [ + 7231 + ], + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2008640, + "Position": { + "X": 16.617004, + "Y": 293.8734, + "Z": 0.07623291 + }, + "TerritoryId": 402, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1023595, + "Position": { + "X": 21.98816, + "Y": 293.97577, + "Z": 0.41192627 + }, + "TerritoryId": 402, + "InteractionType": "SinglePlayerDuty" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1022790, + "Position": { + "X": 21.957703, + "Y": 293.9787, + "Z": -1.0529175 + }, + "StopDistance": 5, + "TerritoryId": 402, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1006756, + "Position": { + "X": -16.891846, + "Y": 10.17425, + "Z": -246.87573 + }, + "TerritoryId": 133, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Mih Khetto's Amphitheatre" + ] + } + ] + } + ] +} -- 2.45.2 From 7bcbceb51e3ea190e49c345d414de3bb97b2edff Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Thu, 26 Dec 2024 17:34:28 +0100 Subject: [PATCH 369/448] Add 1-50 BLU quests --- .../BLU/3192_Out of the Blue.json | 111 +++++++++++++++ .../BLU/3193_Blue Leading the Blue.json | 99 +++++++++++++ .../BLU/3194_Blue Collar Work.json | 113 +++++++++++++++ .../BLU/3195_Why They Call It the Blues.json | 110 +++++++++++++++ .../BLU/3196_Scream Blue Murder.json | 130 ++++++++++++++++++ .../Class Quests/BLU/3197_Blue Gold.json | 98 +++++++++++++ .../BLU/3198_The Real Folk Blues.json | 87 ++++++++++++ .../BLU/3199_Turning Over a Blue Leaf.json | 52 +++++++ QuestPaths/quest-v1.json | 3 +- .../Questing/Converter/ActionConverter.cs | 1 + Questionable.Model/Questing/EAction.cs | 1 + Questionable/Data/QuestData.cs | 2 +- 12 files changed, 805 insertions(+), 2 deletions(-) create mode 100644 QuestPaths/4.x - Stormblood/Class Quests/BLU/3192_Out of the Blue.json create mode 100644 QuestPaths/4.x - Stormblood/Class Quests/BLU/3193_Blue Leading the Blue.json create mode 100644 QuestPaths/4.x - Stormblood/Class Quests/BLU/3194_Blue Collar Work.json create mode 100644 QuestPaths/4.x - Stormblood/Class Quests/BLU/3195_Why They Call It the Blues.json create mode 100644 QuestPaths/4.x - Stormblood/Class Quests/BLU/3196_Scream Blue Murder.json create mode 100644 QuestPaths/4.x - Stormblood/Class Quests/BLU/3197_Blue Gold.json create mode 100644 QuestPaths/4.x - Stormblood/Class Quests/BLU/3198_The Real Folk Blues.json create mode 100644 QuestPaths/4.x - Stormblood/Class Quests/BLU/3199_Turning Over a Blue Leaf.json diff --git a/QuestPaths/4.x - Stormblood/Class Quests/BLU/3192_Out of the Blue.json b/QuestPaths/4.x - Stormblood/Class Quests/BLU/3192_Out of the Blue.json new file mode 100644 index 000000000..d39707cee --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/BLU/3192_Out of the Blue.json @@ -0,0 +1,111 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1026928, + "Position": { + "X": -64.34735, + "Y": 18.000334, + "Z": -11.032288 + }, + "TerritoryId": 129, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Limsa Lominsa", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1026929, + "Position": { + "X": -69.87109, + "Y": 43.83883, + "Z": -5.661133 + }, + "TerritoryId": 134, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] Zephyr Gate (Middle La Noscea)" + ], + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1026936, + "Position": { + "X": 170.85522, + "Y": 62.765503, + "Z": 275.25745 + }, + "TerritoryId": 134, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1028430, + "Position": { + "X": 156.63379, + "Y": 12.126303, + "Z": 649.37805 + }, + "TerritoryId": 135, + "InteractionType": "Interact", + "AetheryteShortcut": "Lower La Noscea - Moraby Drydocks" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1026930, + "Position": { + "X": -85.404785, + "Y": 2.5427969, + "Z": 728.542 + }, + "TerritoryId": 135, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1026932, + "Position": { + "X": -105.9129, + "Y": 1.5723714, + "Z": 750.0571 + }, + "StopDistance": 7, + "TerritoryId": 135, + "InteractionType": "CompleteQuest", + "NextQuestId": 3193 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Class Quests/BLU/3193_Blue Leading the Blue.json b/QuestPaths/4.x - Stormblood/Class Quests/BLU/3193_Blue Leading the Blue.json new file mode 100644 index 000000000..fdf1434c5 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/BLU/3193_Blue Leading the Blue.json @@ -0,0 +1,99 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "TerritoryId": 135, + "InteractionType": "EquipItem", + "ItemId": 22746, + "AetheryteShortcut": "Lower La Noscea - Moraby Drydocks", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + }, + "StepIf": { + "Item": { + "NotInInventory": true + } + } + } + }, + { + "TerritoryId": 135, + "InteractionType": "EquipItem", + "ItemId": 24587, + "SkipConditions": { + "StepIf": { + "Item": { + "NotInInventory": true + } + } + } + }, + { + "TerritoryId": 135, + "InteractionType": "EquipRecommended" + }, + { + "DataId": 1026932, + "Position": { + "X": -105.9129, + "Y": 1.5723714, + "Z": 750.0571 + }, + "StopDistance": 7, + "TerritoryId": 135, + "InteractionType": "AcceptQuest", + "Fly": true + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1026934, + "Position": { + "X": -108.04913, + "Y": 1.5026048, + "Z": 749.1415 + }, + "TerritoryId": 135, + "InteractionType": "Action", + "Action": "Water Cannon" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1026937, + "Position": { + "X": 65.7511, + "Y": 14.005002, + "Z": 90.440186 + }, + "TerritoryId": 131, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ], + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_JOBAOZ010_03193_Q1_100_002", + "Yes": true + } + ], + "NextQuestId": 3194 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Class Quests/BLU/3194_Blue Collar Work.json b/QuestPaths/4.x - Stormblood/Class Quests/BLU/3194_Blue Collar Work.json new file mode 100644 index 000000000..27d9a9f8b --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/BLU/3194_Blue Collar Work.json @@ -0,0 +1,113 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1026852, + "Position": { + "X": 63.126587, + "Y": 14.005002, + "Z": 89.86035 + }, + "StopDistance": 5, + "TerritoryId": 131, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 131 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1026938, + "Position": { + "X": 101.27405, + "Y": 7.3536396, + "Z": 600.2135 + }, + "TerritoryId": 141, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Ul'dah] Weavers' Guild", + "[Ul'dah] Gate of Thal (Central Thanalan)" + ], + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2009670, + "Position": { + "X": 163.59192, + "Y": 3.7078857, + "Z": 657.0991 + }, + "StopDistance": 0.5, + "TerritoryId": 141, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 9836 + ], + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1026938, + "Position": { + "X": 101.27405, + "Y": 7.3536396, + "Z": 600.2135 + }, + "TerritoryId": 141, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1026852, + "Position": { + "X": 63.126587, + "Y": 14.005002, + "Z": 89.86035 + }, + "TerritoryId": 131, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ], + "NextQuestId": 3195 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Class Quests/BLU/3195_Why They Call It the Blues.json b/QuestPaths/4.x - Stormblood/Class Quests/BLU/3195_Why They Call It the Blues.json new file mode 100644 index 000000000..525e908ee --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/BLU/3195_Why They Call It the Blues.json @@ -0,0 +1,110 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1026852, + "Position": { + "X": 63.126587, + "Y": 14.005002, + "Z": 89.86035 + }, + "TerritoryId": 131, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 131 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1026941, + "Position": { + "X": 105.02783, + "Y": 4.0333576, + "Z": 451.0719 + }, + "TerritoryId": 141, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Ul'dah] Weavers' Guild", + "[Ul'dah] Gate of Thal (Central Thanalan)" + ], + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2009671, + "Position": { + "X": 145.52527, + "Y": 9.567322, + "Z": 391.10388 + }, + "TerritoryId": 141, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 9837 + ], + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1026941, + "Position": { + "X": 105.02783, + "Y": 4.0333576, + "Z": 451.0719 + }, + "TerritoryId": 141, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1026852, + "Position": { + "X": 63.126587, + "Y": 14.005002, + "Z": 89.86035 + }, + "TerritoryId": 131, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ], + "NextQuestId": 3196 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Class Quests/BLU/3196_Scream Blue Murder.json b/QuestPaths/4.x - Stormblood/Class Quests/BLU/3196_Scream Blue Murder.json new file mode 100644 index 000000000..62fad7d66 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/BLU/3196_Scream Blue Murder.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": 1026852, + "Position": { + "X": 63.126587, + "Y": 14.005002, + "Z": 89.86035 + }, + "TerritoryId": 131, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 131 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1026945, + "Position": { + "X": -108.415405, + "Y": 41, + "Z": 76.06616 + }, + "TerritoryId": 131, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Ul'dah] Weavers' Guild", + "[Ul'dah] Alchemists' Guild" + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1026946, + "Position": { + "X": 392.69092, + "Y": 87.19347, + "Z": 98.10022 + }, + "TerritoryId": 140, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Ul'dah] Alchemists' Guild", + "[Ul'dah] Gate of the Sultana (Western Thanalan)" + ], + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "Position": { + "X": 363.6008, + "Y": 83.40785, + "Z": 92.904495 + }, + "StopDistance": 0.5, + "TerritoryId": 140, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [ + 9838, + 9839 + ] + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1026948, + "Position": { + "X": 359.63977, + "Y": 83.013695, + "Z": 92.24072 + }, + "StopDistance": 5, + "TerritoryId": 140, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1026852, + "Position": { + "X": 63.126587, + "Y": 14.005002, + "Z": 89.86035 + }, + "TerritoryId": 131, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ], + "NextQuestId": 3197 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Class Quests/BLU/3197_Blue Gold.json b/QuestPaths/4.x - Stormblood/Class Quests/BLU/3197_Blue Gold.json new file mode 100644 index 000000000..ab9cd8ae2 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/BLU/3197_Blue Gold.json @@ -0,0 +1,98 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1026924, + "Position": { + "X": 64.46936, + "Y": 14.005002, + "Z": 88.70068 + }, + "TerritoryId": 131, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 131 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1026951, + "Position": { + "X": 196.67346, + "Y": 52.774567, + "Z": -38.895264 + }, + "TerritoryId": 140, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 9840 + ], + "AetheryteShortcut": "Western Thanalan - Horizon", + "Fly": true, + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_JOBAOZ400_03197_Q1_000_013", + "Yes": true + } + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1026951, + "Position": { + "X": 196.67346, + "Y": 52.774567, + "Z": -38.895264 + }, + "TerritoryId": 140, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1026953, + "Position": { + "X": 65.59851, + "Y": 14.005001, + "Z": 91.75244 + }, + "TerritoryId": 131, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ], + "NextQuestId": 3198 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Class Quests/BLU/3198_The Real Folk Blues.json b/QuestPaths/4.x - Stormblood/Class Quests/BLU/3198_The Real Folk Blues.json new file mode 100644 index 000000000..be76c4697 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/BLU/3198_The Real Folk Blues.json @@ -0,0 +1,87 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1026924, + "Position": { + "X": 64.46936, + "Y": 14.005002, + "Z": 88.70068 + }, + "StopDistance": 5, + "TerritoryId": 131, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 131 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1026955, + "Position": { + "X": -10.055725, + "Y": 47, + "Z": -29.800903 + }, + "TerritoryId": 147, + "InteractionType": "Interact", + "AetheryteShortcut": "Northern Thanalan - Ceruleum Processing Plant" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1026937, + "Position": { + "X": 65.7511, + "Y": 14.005002, + "Z": 90.440186 + }, + "TerritoryId": 131, + "InteractionType": "Interact", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1026937, + "Position": { + "X": 65.7511, + "Y": 14.005002, + "Z": 90.440186 + }, + "TerritoryId": 131, + "InteractionType": "CompleteQuest", + "NextQuestId": 3199 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Class Quests/BLU/3199_Turning Over a Blue Leaf.json b/QuestPaths/4.x - Stormblood/Class Quests/BLU/3199_Turning Over a Blue Leaf.json new file mode 100644 index 000000000..85121f2db --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/BLU/3199_Turning Over a Blue Leaf.json @@ -0,0 +1,52 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1026924, + "Position": { + "X": 64.46936, + "Y": 14.005002, + "Z": 88.70068 + }, + "StopDistance": 5, + "TerritoryId": 131, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 131 + ] + } + } + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1026852, + "Position": { + "X": 63.126587, + "Y": 14.005002, + "Z": 89.86035 + }, + "StopDistance": 5, + "TerritoryId": 131, + "InteractionType": "CompleteQuest", + "NextQuestId": 3732 + } + ] + } + ] +} diff --git a/QuestPaths/quest-v1.json b/QuestPaths/quest-v1.json index 247628f85..cb035ef71 100644 --- a/QuestPaths/quest-v1.json +++ b/QuestPaths/quest-v1.json @@ -982,7 +982,8 @@ "Bosom Brook", "Souleater", "Fire III", - "Adloquium" + "Adloquium", + "Water Cannon" ] } }, diff --git a/Questionable.Model/Questing/Converter/ActionConverter.cs b/Questionable.Model/Questing/Converter/ActionConverter.cs index 0f72c7317..27436b935 100644 --- a/Questionable.Model/Questing/Converter/ActionConverter.cs +++ b/Questionable.Model/Questing/Converter/ActionConverter.cs @@ -47,5 +47,6 @@ public sealed class ActionConverter() : EnumConverter(Values) { EAction.Souleater, "Souleater" }, { EAction.Fire3, "Fire III" }, { EAction.Adloquium, "Adloquium" }, + { EAction.WaterCannon, "Water Cannon" }, }; } diff --git a/Questionable.Model/Questing/EAction.cs b/Questionable.Model/Questing/EAction.cs index 3a4981af6..159c2f7e9 100644 --- a/Questionable.Model/Questing/EAction.cs +++ b/Questionable.Model/Questing/EAction.cs @@ -53,6 +53,7 @@ public enum EAction Souleater = 3632, Fire3 = 152, Adloquium = 185, + WaterCannon = 11385, CollectMiner = 240, ScourMiner = 22182, diff --git a/Questionable/Data/QuestData.cs b/Questionable/Data/QuestData.cs index 7e07f2f92..8f51c4991 100644 --- a/Questionable/Data/QuestData.cs +++ b/Questionable/Data/QuestData.cs @@ -310,7 +310,7 @@ internal sealed class QuestData // SB EClassJob.Samurai => [110, 111], EClassJob.RedMage => [131, 132], - EClassJob.BlueMage => [134, 135, 146], + EClassJob.BlueMage => [134, 135, 146, 170], // ShB EClassJob.Gunbreaker => [84], -- 2.45.2 From 2d11a9b7d1af61c8cc23c35941fd014ac9942c57 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Thu, 26 Dec 2024 17:51:02 +0100 Subject: [PATCH 370/448] Add 50-60 BLU quests --- .../BLU/3732_Into the Blue Again.json | 82 +++++++++++ ...33_Something Borrowed, Something Blue.json | 109 +++++++++++++++ .../BLU/3734_Bolt from the Blue.json | 126 +++++++++++++++++ .../BLU/3735_Blue in the Face.json | 123 +++++++++++++++++ .../BLU/3736_Blue Scream of Death.json | 129 ++++++++++++++++++ .../Class Quests/BLU/3737_Blue Cheese.json | 52 +++++++ 6 files changed, 621 insertions(+) create mode 100644 QuestPaths/5.x - Shadowbringers/Class Quests/BLU/3732_Into the Blue Again.json create mode 100644 QuestPaths/5.x - Shadowbringers/Class Quests/BLU/3733_Something Borrowed, Something Blue.json create mode 100644 QuestPaths/5.x - Shadowbringers/Class Quests/BLU/3734_Bolt from the Blue.json create mode 100644 QuestPaths/5.x - Shadowbringers/Class Quests/BLU/3735_Blue in the Face.json create mode 100644 QuestPaths/5.x - Shadowbringers/Class Quests/BLU/3736_Blue Scream of Death.json create mode 100644 QuestPaths/5.x - Shadowbringers/Class Quests/BLU/3737_Blue Cheese.json diff --git a/QuestPaths/5.x - Shadowbringers/Class Quests/BLU/3732_Into the Blue Again.json b/QuestPaths/5.x - Shadowbringers/Class Quests/BLU/3732_Into the Blue Again.json new file mode 100644 index 000000000..f8d585a13 --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Class Quests/BLU/3732_Into the Blue Again.json @@ -0,0 +1,82 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1026852, + "Position": { + "X": 63.126587, + "Y": 14.005002, + "Z": 89.86035 + }, + "StopDistance": 5, + "TerritoryId": 131, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 131 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1026852, + "Position": { + "X": 63.126587, + "Y": 14.005002, + "Z": 89.86035 + }, + "StopDistance": 5, + "TerritoryId": 131, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1031957, + "Position": { + "X": 16.433899, + "Y": 10, + "Z": 152.97156 + }, + "TerritoryId": 131, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1026852, + "Position": { + "X": 63.126587, + "Y": 14.005002, + "Z": 89.86035 + }, + "TerritoryId": 131, + "InteractionType": "CompleteQuest", + "NextQuestId": 3733 + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Class Quests/BLU/3733_Something Borrowed, Something Blue.json b/QuestPaths/5.x - Shadowbringers/Class Quests/BLU/3733_Something Borrowed, Something Blue.json new file mode 100644 index 000000000..332b67fd2 --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Class Quests/BLU/3733_Something Borrowed, Something Blue.json @@ -0,0 +1,109 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1026852, + "Position": { + "X": 63.126587, + "Y": 14.005002, + "Z": 89.86035 + }, + "TerritoryId": 131, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 131 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1031958, + "Position": { + "X": 178.0575, + "Y": 51.459526, + "Z": 104.69214 + }, + "TerritoryId": 140, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Ul'dah] Weavers' Guild", + "[Ul'dah] Gate of the Sultana (Western Thanalan)" + ], + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1031958, + "Position": { + "X": 178.0575, + "Y": 51.459526, + "Z": 104.69214 + }, + "TerritoryId": 140, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 11441 + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1031958, + "Position": { + "X": 178.0575, + "Y": 51.459526, + "Z": 104.69214 + }, + "TerritoryId": 140, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1026852, + "Position": { + "X": 63.126587, + "Y": 14.005002, + "Z": 89.86035 + }, + "TerritoryId": 131, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ], + "NextQuestId": 3734 + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Class Quests/BLU/3734_Bolt from the Blue.json b/QuestPaths/5.x - Shadowbringers/Class Quests/BLU/3734_Bolt from the Blue.json new file mode 100644 index 000000000..8aeb0b0cb --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Class Quests/BLU/3734_Bolt from the Blue.json @@ -0,0 +1,126 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1026852, + "Position": { + "X": 63.126587, + "Y": 14.005002, + "Z": 89.86035 + }, + "TerritoryId": 131, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 131 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1031962, + "Position": { + "X": -25.558899, + "Y": 14, + "Z": 84.51965 + }, + "TerritoryId": 131, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Ul'dah] Weavers' Guild", + "[Ul'dah] Goldsmiths' Guild" + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1031965, + "Position": { + "X": -193.3471, + "Y": 18, + "Z": 88.181885 + }, + "TerritoryId": 130, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Ul'dah] Goldsmiths' Guild", + "[Ul'dah] Thaumaturges' Guild" + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1031968, + "Position": { + "X": 34.286987, + "Y": 7.9999285, + "Z": -113.78656 + }, + "TerritoryId": 130, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Ul'dah] Thaumaturges' Guild", + "[Ul'dah] Adventurers' Guild" + ] + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1026852, + "Position": { + "X": 63.126587, + "Y": 14.005002, + "Z": 89.86035 + }, + "TerritoryId": 131, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Ul'dah] Adventurers' Guild", + "[Ul'dah] Weavers' Guild" + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1026852, + "Position": { + "X": 63.126587, + "Y": 14.005002, + "Z": 89.86035 + }, + "TerritoryId": 131, + "InteractionType": "CompleteQuest", + "NextQuestId": 3735 + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Class Quests/BLU/3735_Blue in the Face.json b/QuestPaths/5.x - Shadowbringers/Class Quests/BLU/3735_Blue in the Face.json new file mode 100644 index 000000000..e28cdb77c --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Class Quests/BLU/3735_Blue in the Face.json @@ -0,0 +1,123 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1026852, + "Position": { + "X": 63.126587, + "Y": 14.005002, + "Z": 89.86035 + }, + "TerritoryId": 131, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 131 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1032158, + "Position": { + "X": 74.23511, + "Y": 45, + "Z": -204.27258 + }, + "TerritoryId": 140, + "InteractionType": "Interact", + "AetheryteShortcut": "Western Thanalan - Horizon" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1031971, + "Position": { + "X": 298.146, + "Y": 62.280518, + "Z": -209.0639 + }, + "TerritoryId": 140, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2010849, + "Position": { + "X": 192.55359, + "Y": 55.039307, + "Z": -190.81409 + }, + "TerritoryId": 140, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 11442 + ], + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1031971, + "Position": { + "X": 298.146, + "Y": 62.280518, + "Z": -209.0639 + }, + "TerritoryId": 140, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1026852, + "Position": { + "X": 63.126587, + "Y": 14.005002, + "Z": 89.86035 + }, + "TerritoryId": 131, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ], + "NextQuestId": 3736 + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Class Quests/BLU/3736_Blue Scream of Death.json b/QuestPaths/5.x - Shadowbringers/Class Quests/BLU/3736_Blue Scream of Death.json new file mode 100644 index 000000000..4c408e8ad --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Class Quests/BLU/3736_Blue Scream of Death.json @@ -0,0 +1,129 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1026852, + "Position": { + "X": 63.126587, + "Y": 14.005002, + "Z": 89.86035 + }, + "TerritoryId": 131, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 131 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1031980, + "Position": { + "X": -85.00806, + "Y": 6.9845695, + "Z": -11.001831 + }, + "TerritoryId": 131, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Ul'dah] Weavers' Guild", + "[Ul'dah] Gladiators' Guild" + ], + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, + { + "DataId": 1031979, + "Position": { + "X": -92.5155, + "Y": 6.9845695, + "Z": -17.07489 + }, + "TerritoryId": 131, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 1001675, + "Position": { + "X": -89.49426, + "Y": 7.008118, + "Z": 10.849121 + }, + "TerritoryId": 131, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1031978, + "Position": { + "X": -75.05914, + "Y": 6.9845705, + "Z": 10.971252 + }, + "TerritoryId": 131, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1026852, + "Position": { + "X": 63.126587, + "Y": 14.005002, + "Z": 89.86035 + }, + "StopDistance": 5, + "TerritoryId": 131, + "InteractionType": "CompleteQuest", + "NextQuestId": 3737 + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Class Quests/BLU/3737_Blue Cheese.json b/QuestPaths/5.x - Shadowbringers/Class Quests/BLU/3737_Blue Cheese.json new file mode 100644 index 000000000..316a67926 --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Class Quests/BLU/3737_Blue Cheese.json @@ -0,0 +1,52 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1026852, + "Position": { + "X": 63.126587, + "Y": 14.005002, + "Z": 89.86035 + }, + "StopDistance": 5, + "TerritoryId": 131, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 131 + ] + } + } + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1026852, + "Position": { + "X": 63.126587, + "Y": 14.005002, + "Z": 89.86035 + }, + "StopDistance": 5, + "TerritoryId": 131, + "InteractionType": "CompleteQuest", + "NextQuestId": 3989 + } + ] + } + ] +} -- 2.45.2 From 782d6b82af8d9fab6e84e343a005cddd1da77b53 Mon Sep 17 00:00:00 2001 From: Taurenkey Date: Thu, 26 Dec 2024 17:04:08 +0000 Subject: [PATCH 371/448] Hide quest filters added --- Questionable/Data/JournalData.cs | 48 ++++++++++------- Questionable/Functions/QuestFunctions.cs | 3 ++ .../QuestJournalComponent.cs | 52 ++++++++++++++----- .../JournalComponents/QuestJournalUtils.cs | 23 +++++++- 4 files changed, 94 insertions(+), 32 deletions(-) diff --git a/Questionable/Data/JournalData.cs b/Questionable/Data/JournalData.cs index 115d806e2..52f37e22e 100644 --- a/Questionable/Data/JournalData.cs +++ b/Questionable/Data/JournalData.cs @@ -1,6 +1,7 @@ using System.Collections.Generic; using System.Linq; using Dalamud.Plugin.Services; +using FFXIVClientStructs.FFXIV.Client.Game.Fate; using Lumina.Excel.Sheets; using Questionable.Model; using Questionable.Model.Questing; @@ -9,30 +10,44 @@ namespace Questionable.Data; internal sealed class JournalData { + private readonly IDataManager _dataManager; + private readonly QuestData _questData; public JournalData(IDataManager dataManager, QuestData questData) { - var genres = dataManager.GetExcelSheet() - .Where(x => x.RowId > 0 && x.Icon > 0) - .Select(x => new Genre(x, questData.GetAllByJournalGenre(x.RowId))) - .ToList(); + _dataManager = dataManager; + _questData = questData; - var limsaStart = dataManager.GetExcelSheet().GetRow(1); - var gridaniaStart = dataManager.GetExcelSheet().GetRow(2); - var uldahStart = dataManager.GetExcelSheet().GetRow(3); + Reload(); + } + + public List Genres { get; set; } + public List Categories { get; set; } + public List
Sections { get; set; } + + public void Reload() + { + var genres = _dataManager.GetExcelSheet() + .Where(x => x.RowId > 0 && x.Icon > 0) + .Select(x => new Genre(x, _questData.GetAllByJournalGenre(x.RowId))) + .ToList(); + + var limsaStart = _dataManager.GetExcelSheet().GetRow(1); + var gridaniaStart = _dataManager.GetExcelSheet().GetRow(2); + var uldahStart = _dataManager.GetExcelSheet().GetRow(3); var genreLimsa = new Genre(uint.MaxValue - 3, "Starting in Limsa Lominsa", 1, new uint[] { 108, 109 }.Concat(limsaStart.QuestRedoParam.Select(x => x.Quest.RowId)) .Where(x => x != 0) - .Select(x => questData.GetQuestInfo(new QuestId((ushort)(x & 0xFFFF)))) + .Select(x => _questData.GetQuestInfo(new QuestId((ushort)(x & 0xFFFF)))) .ToList()); var genreGridania = new Genre(uint.MaxValue - 2, "Starting in Gridania", 1, new uint[] { 85, 123, 124 }.Concat(gridaniaStart.QuestRedoParam.Select(x => x.Quest.RowId)) .Where(x => x != 0) - .Select(x => questData.GetQuestInfo(new QuestId((ushort)(x & 0xFFFF)))) + .Select(x => _questData.GetQuestInfo(new QuestId((ushort)(x & 0xFFFF)))) .ToList()); var genreUldah = new Genre(uint.MaxValue - 1, "Starting in Ul'dah", 1, new uint[] { 568, 569, 570 }.Concat(uldahStart.QuestRedoParam.Select(x => x.Quest.RowId)) .Where(x => x != 0) - .Select(x => questData.GetQuestInfo(new QuestId((ushort)(x & 0xFFFF)))) + .Select(x => _questData.GetQuestInfo(new QuestId((ushort)(x & 0xFFFF)))) .ToList()); genres.InsertRange(0, [genreLimsa, genreGridania, genreUldah]); genres.Single(x => x.Id == 1) @@ -40,21 +55,16 @@ internal sealed class JournalData .RemoveAll(x => genreLimsa.Quests.Contains(x) || genreGridania.Quests.Contains(x) || genreUldah.Quests.Contains(x)); - Genres = genres.AsReadOnly(); - Categories = dataManager.GetExcelSheet() + Genres = genres.ToList(); + Categories = _dataManager.GetExcelSheet() .Where(x => x.RowId > 0) .Select(x => new Category(x, Genres.Where(y => y.CategoryId == x.RowId).ToList())) - .ToList() - .AsReadOnly(); - Sections = dataManager.GetExcelSheet() + .ToList(); + Sections = _dataManager.GetExcelSheet() .Select(x => new Section(x, Categories.Where(y => y.SectionId == x.RowId).ToList())) .ToList(); } - public IReadOnlyList Genres { get; } - public IReadOnlyList Categories { get; } - public List
Sections { get; set; } - internal sealed class Genre { public Genre(JournalGenre journalGenre, List quests) diff --git a/Questionable/Functions/QuestFunctions.cs b/Questionable/Functions/QuestFunctions.cs index 8c937bcc9..cc38e8745 100644 --- a/Questionable/Functions/QuestFunctions.cs +++ b/Questionable/Functions/QuestFunctions.cs @@ -455,6 +455,9 @@ internal sealed unsafe class QuestFunctions if (QuestManager.Instance()->IsDailyQuestCompleted(questId.Value)) return false; } + + if (IsQuestComplete(questId)) + return false; } else { diff --git a/Questionable/Windows/JournalComponents/QuestJournalComponent.cs b/Questionable/Windows/JournalComponents/QuestJournalComponent.cs index 04dc9bca8..de5a7bb88 100644 --- a/Questionable/Windows/JournalComponents/QuestJournalComponent.cs +++ b/Questionable/Windows/JournalComponents/QuestJournalComponent.cs @@ -1,8 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Globalization; -using System.Linq; -using Dalamud.Interface; +using Dalamud.Interface; using Dalamud.Interface.Colors; using Dalamud.Interface.Utility.Raii; using Dalamud.Plugin; @@ -12,9 +8,12 @@ using Questionable.Controller; using Questionable.Data; using Questionable.Functions; using Questionable.Model; -using Questionable.Model.Questing; using Questionable.Validation; using Questionable.Windows.QuestComponents; +using System; +using System.Collections.Generic; +using System.Globalization; +using System.Linq; namespace Questionable.Windows.JournalComponents; @@ -32,13 +31,14 @@ internal sealed class QuestJournalComponent private readonly IDalamudPluginInterface _pluginInterface; private readonly QuestJournalUtils _questJournalUtils; private readonly QuestValidator _questValidator; + private readonly IPluginLog _log; private List _filteredSections = []; private string _searchText = string.Empty; public QuestJournalComponent(JournalData journalData, QuestRegistry questRegistry, QuestFunctions questFunctions, UiUtils uiUtils, QuestTooltipComponent questTooltipComponent, IDalamudPluginInterface pluginInterface, - QuestJournalUtils questJournalUtils, QuestValidator questValidator) + QuestJournalUtils questJournalUtils, QuestValidator questValidator, IPluginLog log) { _journalData = journalData; _questRegistry = questRegistry; @@ -48,6 +48,7 @@ internal sealed class QuestJournalComponent _pluginInterface = pluginInterface; _questJournalUtils = questJournalUtils; _questValidator = questValidator; + _log = log; } public void DrawQuests() @@ -69,6 +70,9 @@ internal sealed class QuestJournalComponent ImGui.Spacing(); } + QuestJournalUtils.ShowFilterContextMenu(this); + + ImGui.SameLine(); ImGui.SetNextItemWidth(ImGui.GetContentRegionAvail().X); if (ImGui.InputTextWithHint(string.Empty, "Search quests and categories", ref _searchText, 256)) UpdateFilter(); @@ -235,17 +239,41 @@ internal sealed class QuestJournalComponent public void UpdateFilter() { - Predicate match; - if (string.IsNullOrWhiteSpace(_searchText)) - match = _ => true; - else - match = x => x.Contains(_searchText, StringComparison.CurrentCultureIgnoreCase); + _journalData.Reload(); + Predicate match = string.IsNullOrWhiteSpace(_searchText) ? x => true : x => x.Contains(_searchText, StringComparison.CurrentCultureIgnoreCase); _filteredSections = _journalData.Sections .Select(section => FilterSection(section, match)) .Where(x => x != null) .Cast() .ToList(); + + for (int i = 0; i < _filteredSections.Count; i++) + { + var section = _filteredSections[i]; + for (int s = 0; s < section.Categories.Count; s++) + { + var category = section.Categories[s]; + for (int c = 0; c < category.Genres.Count; c++) + { + var genre = category.Genres[c]; + for (int g = 0; g < genre.Quests.Count; g++) + { + var quest = genre.Quests[g]; + + //All Quest Filter conditions checked here, cause we just love IEnumerable + if (QuestJournalUtils.AvailableOnly && !_questFunctions.IsReadyToAcceptQuest(quest.QuestId) || + QuestJournalUtils.HideNoPaths && !_questRegistry.TryGetQuest(quest.QuestId, out _)) + { + genre.Quests.Remove(quest); + g--; + } + } + } + } + } + + RefreshCounts(); } private static FilteredSection? FilterSection(JournalData.Section section, Predicate match) diff --git a/Questionable/Windows/JournalComponents/QuestJournalUtils.cs b/Questionable/Windows/JournalComponents/QuestJournalUtils.cs index 40f59278a..8d43d7f75 100644 --- a/Questionable/Windows/JournalComponents/QuestJournalUtils.cs +++ b/Questionable/Windows/JournalComponents/QuestJournalUtils.cs @@ -1,10 +1,12 @@ -using Dalamud.Interface.Utility.Raii; +using Dalamud.Interface.Components; +using Dalamud.Interface.Utility.Raii; using Dalamud.Plugin.Services; using ImGuiNET; using Questionable.Controller; using Questionable.Functions; using Questionable.Model; using Questionable.Model.Questing; +using System; namespace Questionable.Windows.JournalComponents; @@ -14,6 +16,9 @@ internal sealed class QuestJournalUtils private readonly QuestFunctions _questFunctions; private readonly ICommandManager _commandManager; + public static bool AvailableOnly; + public static bool HideNoPaths; + public QuestJournalUtils(QuestController questController, QuestFunctions questFunctions, ICommandManager commandManager) { @@ -44,4 +49,20 @@ internal sealed class QuestJournalUtils commandInfo!); } } + + internal static void ShowFilterContextMenu(QuestJournalComponent journalUI) + { + if (ImGuiComponents.IconButton(Dalamud.Interface.FontAwesomeIcon.Filter)) + ImGui.OpenPopup($"##QuestFilters"); + + using var popup = ImRaii.Popup($"##QuestFilters"); + if (!popup) + return; + + if (ImGui.Checkbox("Show only Available Quests", ref AvailableOnly) || + ImGui.Checkbox("Hide Quests Without Path", ref HideNoPaths)) + journalUI.UpdateFilter(); + + + } } -- 2.45.2 From 0b6e2626aac64e38d14d9c8659ed3839526bd345 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Thu, 26 Dec 2024 21:49:11 +0100 Subject: [PATCH 372/448] Add 60-70 BLU quests --- .../BLU/3989_Second-rate Entertainment.json | 77 ++++++ .../3990_Everybody Was Fukumen Fighting.json | 219 ++++++++++++++++++ .../BLU/3991_Azuro and Goliath.json | 163 +++++++++++++ .../BLU/3992_Where the Gold Goes.json | 184 +++++++++++++++ .../BLU/3993_Master of Mimicry.json | 82 +++++++ .../BLU/3994_A Future in Blue.json | 52 +++++ 6 files changed, 777 insertions(+) create mode 100644 QuestPaths/5.x - Shadowbringers/Class Quests/BLU/3989_Second-rate Entertainment.json create mode 100644 QuestPaths/5.x - Shadowbringers/Class Quests/BLU/3990_Everybody Was Fukumen Fighting.json create mode 100644 QuestPaths/5.x - Shadowbringers/Class Quests/BLU/3991_Azuro and Goliath.json create mode 100644 QuestPaths/5.x - Shadowbringers/Class Quests/BLU/3992_Where the Gold Goes.json create mode 100644 QuestPaths/5.x - Shadowbringers/Class Quests/BLU/3993_Master of Mimicry.json create mode 100644 QuestPaths/5.x - Shadowbringers/Class Quests/BLU/3994_A Future in Blue.json diff --git a/QuestPaths/5.x - Shadowbringers/Class Quests/BLU/3989_Second-rate Entertainment.json b/QuestPaths/5.x - Shadowbringers/Class Quests/BLU/3989_Second-rate Entertainment.json new file mode 100644 index 000000000..7303bf91f --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Class Quests/BLU/3989_Second-rate Entertainment.json @@ -0,0 +1,77 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1026852, + "Position": { + "X": 63.126587, + "Y": 14.005002, + "Z": 89.86035 + }, + "StopDistance": 5, + "TerritoryId": 131, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 131 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1035094, + "Position": { + "X": 101.21301, + "Y": 9.738088, + "Z": 630.88416 + }, + "TerritoryId": 141, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Ul'dah] Weavers' Guild", + "[Ul'dah] Gate of Thal (Central Thanalan)" + ], + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1026852, + "Position": { + "X": 63.126587, + "Y": 14.005002, + "Z": 89.86035 + }, + "StopDistance": 5, + "TerritoryId": 131, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ], + "NextQuestId": 3990 + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Class Quests/BLU/3990_Everybody Was Fukumen Fighting.json b/QuestPaths/5.x - Shadowbringers/Class Quests/BLU/3990_Everybody Was Fukumen Fighting.json new file mode 100644 index 000000000..d248e1ffc --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Class Quests/BLU/3990_Everybody Was Fukumen Fighting.json @@ -0,0 +1,219 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1035095, + "Position": { + "X": 63.004395, + "Y": 14.005002, + "Z": 89.829834 + }, + "StopDistance": 7, + "TerritoryId": 131, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 131 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1035096, + "Position": { + "X": 130.84607, + "Y": 11.999016, + "Z": -82.108826 + }, + "TerritoryId": 628, + "InteractionType": "Interact", + "AetheryteShortcut": "Kugane", + "AethernetShortcut": [ + "[Kugane] Aetheryte Plaza", + "[Kugane] Sekiseigumi Barracks" + ], + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_JOBAOZ630_03990_Q1_000_000", + "Answer": "TEXT_JOBAOZ630_03990_A1_000_002" + } + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1019038, + "Position": { + "X": -55.222473, + "Y": -2.9000003, + "Z": -65.65961 + }, + "TerritoryId": 628, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Kugane] Sekiseigumi Barracks", + "[Kugane] Shiokaze Hostelry" + ], + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 1019069, + "Position": { + "X": -62.119568, + "Y": 8, + "Z": -56.62628 + }, + "TerritoryId": 628, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 1035099, + "Position": { + "X": -36.728516, + "Y": 14.000002, + "Z": -52.170654 + }, + "TerritoryId": 628, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1035096, + "Position": { + "X": 130.84607, + "Y": 11.999016, + "Z": -82.108826 + }, + "TerritoryId": 628, + "InteractionType": "Interact", + "AetheryteShortcut": "Kugane", + "AethernetShortcut": [ + "[Kugane] Aetheryte Plaza", + "[Kugane] Sekiseigumi Barracks" + ] + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1035103, + "Position": { + "X": 56.77881, + "Y": 4.05, + "Z": 92.36279 + }, + "TerritoryId": 628, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Kugane] Sekiseigumi Barracks", + "[Kugane] Kogane Dori Markets" + ] + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1035104, + "Position": { + "X": 153.42944, + "Y": 18.1, + "Z": 50.70569 + }, + "TerritoryId": 628, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Kugane] Kogane Dori Markets", + "[Kugane] The Ruby Bazaar" + ] + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1035097, + "Position": { + "X": 151.87305, + "Y": 18.1, + "Z": 49.484985 + }, + "StopDistance": 5, + "TerritoryId": 628, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1035096, + "Position": { + "X": 130.84607, + "Y": 11.999016, + "Z": -82.108826 + }, + "TerritoryId": 628, + "InteractionType": "CompleteQuest", + "AethernetShortcut": [ + "[Kugane] The Ruby Bazaar", + "[Kugane] Sekiseigumi Barracks" + ], + "NextQuestId": 3991 + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Class Quests/BLU/3991_Azuro and Goliath.json b/QuestPaths/5.x - Shadowbringers/Class Quests/BLU/3991_Azuro and Goliath.json new file mode 100644 index 000000000..18b13d554 --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Class Quests/BLU/3991_Azuro and Goliath.json @@ -0,0 +1,163 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1035096, + "Position": { + "X": 130.84607, + "Y": 11.999016, + "Z": -82.108826 + }, + "TerritoryId": 628, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Kugane", + "AethernetShortcut": [ + "[Kugane] Aetheryte Plaza", + "[Kugane] Sekiseigumi Barracks" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + }, + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_JOBAOZ650_03991_Q1_000_000", + "Answer": "TEXT_JOBAOZ650_03991_A1_000_001" + } + ] + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1035103, + "Position": { + "X": 56.77881, + "Y": 4.05, + "Z": 92.36279 + }, + "TerritoryId": 628, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Kugane] Sekiseigumi Barracks", + "[Kugane] Kogane Dori Markets" + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1018989, + "Position": { + "X": 35.171997, + "Y": 4.8365545, + "Z": 49.240845 + }, + "TerritoryId": 628, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 1018990, + "Position": { + "X": 40.024292, + "Y": 4.83654, + "Z": 49.05774 + }, + "TerritoryId": 628, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1035106, + "Position": { + "X": 83.08533, + "Y": 4.0000014, + "Z": 51.621216 + }, + "TerritoryId": 628, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1035107, + "Position": { + "X": 139.0249, + "Y": 18, + "Z": 48.508423 + }, + "TerritoryId": 628, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1035105, + "Position": { + "X": 139.0249, + "Y": 18, + "Z": 48.508423 + }, + "TerritoryId": 628, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1035096, + "Position": { + "X": 130.84607, + "Y": 11.999016, + "Z": -82.108826 + }, + "TerritoryId": 628, + "InteractionType": "CompleteQuest", + "AethernetShortcut": [ + "[Kugane] The Ruby Bazaar", + "[Kugane] Sekiseigumi Barracks" + ], + "NextQuestId": 3992 + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Class Quests/BLU/3992_Where the Gold Goes.json b/QuestPaths/5.x - Shadowbringers/Class Quests/BLU/3992_Where the Gold Goes.json new file mode 100644 index 000000000..ff15582ae --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Class Quests/BLU/3992_Where the Gold Goes.json @@ -0,0 +1,184 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1035096, + "Position": { + "X": 130.84607, + "Y": 11.999016, + "Z": -82.108826 + }, + "TerritoryId": 628, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Kugane", + "AethernetShortcut": [ + "[Kugane] Aetheryte Plaza", + "[Kugane] Sekiseigumi Barracks" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1035107, + "Position": { + "X": 139.0249, + "Y": 18, + "Z": 48.508423 + }, + "TerritoryId": 628, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Kugane] Sekiseigumi Barracks", + "[Kugane] The Ruby Bazaar" + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1035108, + "Position": { + "X": -106.401184, + "Y": -7, + "Z": -63.553833 + }, + "TerritoryId": 628, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Kugane] The Ruby Bazaar", + "[Kugane] Shiokaze Hostelry" + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1035109, + "Position": { + "X": 449.27136, + "Y": 58.40733, + "Z": -149.82837 + }, + "TerritoryId": 614, + "InteractionType": "Interact", + "AetheryteShortcut": "Yanxia - Namai", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1035112, + "Position": { + "X": 457.32812, + "Y": 67.99535, + "Z": -108.20172 + }, + "TerritoryId": 614, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 1019257, + "Position": { + "X": 468.55872, + "Y": 68.02771, + "Z": -93.21747 + }, + "TerritoryId": 614, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 1035113, + "Position": { + "X": 404.77612, + "Y": 72.81784, + "Z": -80.338745 + }, + "StopDistance": 1, + "TerritoryId": 614, + "InteractionType": "Interact", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1035114, + "Position": { + "X": 382.62, + "Y": 85.20213, + "Z": -184.0086 + }, + "TerritoryId": 614, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1035096, + "Position": { + "X": 130.84607, + "Y": 11.999016, + "Z": -82.108826 + }, + "TerritoryId": 628, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Kugane", + "AethernetShortcut": [ + "[Kugane] Aetheryte Plaza", + "[Kugane] Sekiseigumi Barracks" + ], + "NextQuestId": 3993 + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Class Quests/BLU/3993_Master of Mimicry.json b/QuestPaths/5.x - Shadowbringers/Class Quests/BLU/3993_Master of Mimicry.json new file mode 100644 index 000000000..be9d4e0c2 --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Class Quests/BLU/3993_Master of Mimicry.json @@ -0,0 +1,82 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1035096, + "Position": { + "X": 130.84607, + "Y": 11.999016, + "Z": -82.108826 + }, + "TerritoryId": 628, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Kugane", + "AethernetShortcut": [ + "[Kugane] Aetheryte Plaza", + "[Kugane] Sekiseigumi Barracks" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1035116, + "Position": { + "X": 153.39893, + "Y": 18.1, + "Z": 50.70569 + }, + "TerritoryId": 628, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Kugane] Sekiseigumi Barracks", + "[Kugane] The Ruby Bazaar" + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1026937, + "Position": { + "X": 65.7511, + "Y": 14.005002, + "Z": 90.440186 + }, + "StopDistance": 5, + "TerritoryId": 131, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1026937, + "Position": { + "X": 65.7511, + "Y": 14.005002, + "Z": 90.440186 + }, + "StopDistance": 5, + "TerritoryId": 131, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Class Quests/BLU/3994_A Future in Blue.json b/QuestPaths/5.x - Shadowbringers/Class Quests/BLU/3994_A Future in Blue.json new file mode 100644 index 000000000..b7068d41e --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Class Quests/BLU/3994_A Future in Blue.json @@ -0,0 +1,52 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1026852, + "Position": { + "X": 63.126587, + "Y": 14.005002, + "Z": 89.86035 + }, + "StopDistance": 5, + "TerritoryId": 131, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 131 + ] + } + } + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1026852, + "Position": { + "X": 63.126587, + "Y": 14.005002, + "Z": 89.86035 + }, + "StopDistance": 5, + "TerritoryId": 131, + "InteractionType": "CompleteQuest", + "NextQuestId": 4773 + } + ] + } + ] +} -- 2.45.2 From 03681b8253e4227adc50a71eb365ff4c2ea0adc3 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Thu, 26 Dec 2024 22:19:54 +0100 Subject: [PATCH 373/448] Add 73-80 BLU quests --- .../6.x - Endwalker/Class Quests/BLU/4773.txt | 1 + .../4774_The Beard, the Myth, the Legend.json | 209 ++++++++++++++++++ .../BLU/4775_Gridania's Most Wanted.json | 119 ++++++++++ .../BLU/4776_No Butts About It.json | 202 +++++++++++++++++ .../BLU/4777_A New Gold Standard.json | 70 ++++++ .../BLU/4778_The Brave and the Blue.json | 50 +++++ 6 files changed, 651 insertions(+) create mode 100644 QuestPaths/6.x - Endwalker/Class Quests/BLU/4773.txt create mode 100644 QuestPaths/6.x - Endwalker/Class Quests/BLU/4774_The Beard, the Myth, the Legend.json create mode 100644 QuestPaths/6.x - Endwalker/Class Quests/BLU/4775_Gridania's Most Wanted.json create mode 100644 QuestPaths/6.x - Endwalker/Class Quests/BLU/4776_No Butts About It.json create mode 100644 QuestPaths/6.x - Endwalker/Class Quests/BLU/4777_A New Gold Standard.json create mode 100644 QuestPaths/6.x - Endwalker/Class Quests/BLU/4778_The Brave and the Blue.json diff --git a/QuestPaths/6.x - Endwalker/Class Quests/BLU/4773.txt b/QuestPaths/6.x - Endwalker/Class Quests/BLU/4773.txt new file mode 100644 index 000000000..1e9793d1b --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Class Quests/BLU/4773.txt @@ -0,0 +1 @@ +stopdistance: 5 diff --git a/QuestPaths/6.x - Endwalker/Class Quests/BLU/4774_The Beard, the Myth, the Legend.json b/QuestPaths/6.x - Endwalker/Class Quests/BLU/4774_The Beard, the Myth, the Legend.json new file mode 100644 index 000000000..6a469a21b --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Class Quests/BLU/4774_The Beard, the Myth, the Legend.json @@ -0,0 +1,209 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1035095, + "Position": { + "X": 63.004395, + "Y": 14.005002, + "Z": 89.829834 + }, + "TerritoryId": 131, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 131 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1045582, + "Position": { + "X": -344.53345, + "Y": -2.3744698, + "Z": 16.494995 + }, + "TerritoryId": 129, + "InteractionType": "Interact", + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] Arcanists' Guild" + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1045584, + "Position": { + "X": -233.17316, + "Y": 5.999995, + "Z": 167.86438 + }, + "TerritoryId": 129, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Limsa Lominsa] Arcanists' Guild", + "[Limsa Lominsa] Fishermens' Guild" + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1045585, + "Position": { + "X": -269.3675, + "Y": 7.352252, + "Z": 201.43433 + }, + "TerritoryId": 129, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "Position": { + "X": -275.1194, + "Y": 11.32725, + "Z": 188.80133 + }, + "TerritoryId": 129, + "InteractionType": "WalkTo" + }, + { + "Position": { + "X": -267.55106, + "Y": 11.852168, + "Z": 189.20018 + }, + "TerritoryId": 129, + "InteractionType": "WalkTo", + "DisableNavmesh": true + }, + { + "DataId": 1045586, + "Position": { + "X": -246.50952, + "Y": 16.347235, + "Z": 192.12634 + }, + "TerritoryId": 129, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1000837, + "Position": { + "X": -289.7536, + "Y": 16.347252, + "Z": 194.53723 + }, + "TerritoryId": 129, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1045587, + "Position": { + "X": -3.7995605, + "Y": 39.999966, + "Z": 36.697876 + }, + "TerritoryId": 128, + "InteractionType": "Interact", + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] The Aftcastle" + ] + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1045601, + "Position": { + "X": -26.962769, + "Y": 45.95137, + "Z": -27.054321 + }, + "TerritoryId": 134, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Limsa Lominsa] The Aftcastle", + "[Limsa Lominsa] Zephyr Gate (Middle La Noscea)" + ], + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1035095, + "Position": { + "X": 63.004395, + "Y": 14.005002, + "Z": 89.829834 + }, + "TerritoryId": 131, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ], + "NextQuestId": 4775 + } + ] + } + ] +} diff --git a/QuestPaths/6.x - Endwalker/Class Quests/BLU/4775_Gridania's Most Wanted.json b/QuestPaths/6.x - Endwalker/Class Quests/BLU/4775_Gridania's Most Wanted.json new file mode 100644 index 000000000..dd26b96bf --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Class Quests/BLU/4775_Gridania's Most Wanted.json @@ -0,0 +1,119 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1035095, + "Position": { + "X": 63.004395, + "Y": 14.005002, + "Z": 89.829834 + }, + "TerritoryId": 131, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 131 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1045603, + "Position": { + "X": 56.198975, + "Y": -8.45414, + "Z": 99.22937 + }, + "TerritoryId": 132, + "InteractionType": "Interact", + "AetheryteShortcut": "Gridania" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1045604, + "Position": { + "X": 76.89014, + "Y": -6, + "Z": 55.283447 + }, + "TerritoryId": 148, + "InteractionType": "Interact", + "AetheryteShortcut": "Central Shroud - Bentbranch Meadows" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2013282, + "Position": { + "X": 190.1731, + "Y": -8.529846, + "Z": -44.35797 + }, + "TerritoryId": 148, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 2013255, + "Position": { + "X": 341.48157, + "Y": -4.501404, + "Z": -145.8916 + }, + "TerritoryId": 148, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1035095, + "Position": { + "X": 63.004395, + "Y": 14.005002, + "Z": 89.829834 + }, + "TerritoryId": 131, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ], + "NextQuestId": 4776 + } + ] + } + ] +} diff --git a/QuestPaths/6.x - Endwalker/Class Quests/BLU/4776_No Butts About It.json b/QuestPaths/6.x - Endwalker/Class Quests/BLU/4776_No Butts About It.json new file mode 100644 index 000000000..38f690bd0 --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Class Quests/BLU/4776_No Butts About It.json @@ -0,0 +1,202 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1035095, + "Position": { + "X": 63.004395, + "Y": 14.005002, + "Z": 89.829834 + }, + "TerritoryId": 131, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 131 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1045605, + "Position": { + "X": -166.09448, + "Y": 2.0333128, + "Z": -17.288513 + }, + "TerritoryId": 418, + "InteractionType": "Interact", + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] Skysteel Manufactory" + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1045608, + "Position": { + "X": -14.145203, + "Y": 11.965044, + "Z": 27.756104 + }, + "TerritoryId": 419, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Ishgard] Skysteel Manufactory", + "[Ishgard] The Last Vigil" + ], + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 1045609, + "Position": { + "X": -10.8797, + "Y": 11.96515, + "Z": 53.543823 + }, + "TerritoryId": 419, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, + { + "DataId": 1045607, + "Position": { + "X": -55.89386, + "Y": 11.965071, + "Z": 39.78015 + }, + "TerritoryId": 419, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1045610, + "Position": { + "X": 30.929932, + "Y": 11.965028, + "Z": 33.6156 + }, + "TerritoryId": 419, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1045713, + "Position": { + "X": 92.454346, + "Y": 24.06099, + "Z": -40.177063 + }, + "TerritoryId": 418, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Ishgard] The Last Vigil", + "[Ishgard] The Forgotten Knight" + ] + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1045714, + "Position": { + "X": 65.171265, + "Y": 24.071722, + "Z": -37.521973 + }, + "TerritoryId": 418, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1045714, + "Position": { + "X": 65.171265, + "Y": 24.071722, + "Z": -37.521973 + }, + "TerritoryId": 418, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1026852, + "Position": { + "X": 63.126587, + "Y": 14.005002, + "Z": 89.86035 + }, + "TerritoryId": 131, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ], + "NextQuestId": 4777 + } + ] + } + ] +} diff --git a/QuestPaths/6.x - Endwalker/Class Quests/BLU/4777_A New Gold Standard.json b/QuestPaths/6.x - Endwalker/Class Quests/BLU/4777_A New Gold Standard.json new file mode 100644 index 000000000..5cc082c67 --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Class Quests/BLU/4777_A New Gold Standard.json @@ -0,0 +1,70 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1026852, + "Position": { + "X": 63.126587, + "Y": 14.005002, + "Z": 89.86035 + }, + "TerritoryId": 131, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 131 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1045715, + "Position": { + "X": 21.042175, + "Y": 29.999996, + "Z": -16.342468 + }, + "TerritoryId": 131, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Ul'dah] Weavers' Guild", + "[Ul'dah] The Chamber of Rule" + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1026852, + "Position": { + "X": 63.126587, + "Y": 14.005002, + "Z": 89.86035 + }, + "StopDistance": 5, + "TerritoryId": 131, + "InteractionType": "CompleteQuest", + "NextQuestId": 4778 + } + ] + } + ] +} diff --git a/QuestPaths/6.x - Endwalker/Class Quests/BLU/4778_The Brave and the Blue.json b/QuestPaths/6.x - Endwalker/Class Quests/BLU/4778_The Brave and the Blue.json new file mode 100644 index 000000000..8f5301294 --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Class Quests/BLU/4778_The Brave and the Blue.json @@ -0,0 +1,50 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1026852, + "Position": { + "X": 63.126587, + "Y": 14.005002, + "Z": 89.86035 + }, + "StopDistance": 5, + "TerritoryId": 131, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 131 + ] + } + } + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1026852, + "Position": { + "X": 63.126587, + "Y": 14.005002, + "Z": 89.86035 + }, + "TerritoryId": 131, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} -- 2.45.2 From caf0034f26324553389d45b08005dc07ecd8516d Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Thu, 26 Dec 2024 22:20:35 +0100 Subject: [PATCH 374/448] Minor BLU adjustment --- .../Class Quests/BLU/4778_The Brave and the Blue.json | 1 + 1 file changed, 1 insertion(+) diff --git a/QuestPaths/6.x - Endwalker/Class Quests/BLU/4778_The Brave and the Blue.json b/QuestPaths/6.x - Endwalker/Class Quests/BLU/4778_The Brave and the Blue.json index 8f5301294..ec5804ce9 100644 --- a/QuestPaths/6.x - Endwalker/Class Quests/BLU/4778_The Brave and the Blue.json +++ b/QuestPaths/6.x - Endwalker/Class Quests/BLU/4778_The Brave and the Blue.json @@ -41,6 +41,7 @@ "Y": 14.005002, "Z": 89.86035 }, + "StopDistance": 5, "TerritoryId": 131, "InteractionType": "CompleteQuest" } -- 2.45.2 From 1e72aac22b1c4525a63a5c9205afaffc6474afcb Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Thu, 26 Dec 2024 22:28:50 +0100 Subject: [PATCH 375/448] Handle some particular quest preconditions --- Questionable/Model/QuestInfo.cs | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/Questionable/Model/QuestInfo.cs b/Questionable/Model/QuestInfo.cs index 32f80ff45..6e60ac714 100644 --- a/Questionable/Model/QuestInfo.cs +++ b/Questionable/Model/QuestInfo.cs @@ -40,9 +40,9 @@ internal sealed class QuestInfo : IQuestInfo PreviousQuests = new List { - new(new QuestId((ushort)(quest.PreviousQuest[0].RowId & 0xFFFF)), quest.Unknown7), - new(new QuestId((ushort)(quest.PreviousQuest[1].RowId & 0xFFFF))), - new(new QuestId((ushort)(quest.PreviousQuest[2].RowId & 0xFFFF))) + new(ReplaceOldQuestIds((ushort)(quest.PreviousQuest[0].RowId & 0xFFFF)), quest.Unknown7), + new(ReplaceOldQuestIds((ushort)(quest.PreviousQuest[1].RowId & 0xFFFF))), + new(ReplaceOldQuestIds((ushort)(quest.PreviousQuest[2].RowId & 0xFFFF))) } .Where(x => x.QuestId.Value != 0) .ToImmutableList(); @@ -69,6 +69,15 @@ internal sealed class QuestInfo : IQuestInfo Expansion = (EExpansionVersion)quest.Expansion.RowId; } + private static QuestId ReplaceOldQuestIds(ushort questId) + { + return new QuestId(questId switch + { + 524 => 4522, + _ => questId, + }); + } + public ElementId QuestId { get; } public string Name { get; } -- 2.45.2 From 60f94092ab30e01839eb7ad626ba4c519287032e Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Fri, 27 Dec 2024 00:56:36 +0100 Subject: [PATCH 376/448] Add first batch of Postmoogle quests --- .../1481_Of Errant Epistles.json | 53 ++++ .../1482_Carline Memories.json | 193 +++++++++++++ .../1483_A Debt Unpaid.json | 233 ++++++++++++++++ .../Delivery Moogle Quests/1484_Dream On.json | 113 ++++++++ .../1531_Spirits Most Foul.json | 170 ++++++++++++ .../1532_Dubious Dancing.json | 187 +++++++++++++ .../1533_Stroking the Haft.json | 145 ++++++++++ .../1571_The Captain of Her Heart.json | 180 ++++++++++++ .../1573_Of Siblings and Side-whiskers.json | 113 ++++++++ .../33_Sweet Words, Shadowy Dealings.json | 231 ++++++++++++++++ .../36_Sudul Eht Nioj.json | 261 ++++++++++++++++++ Questionable/Functions/QuestFunctions.cs | 4 + Questionable/Model/QuestInfo.cs | 2 + .../QuestComponents/QuestTooltipComponent.cs | 4 + 14 files changed, 1889 insertions(+) create mode 100644 QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/1481_Of Errant Epistles.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/1482_Carline Memories.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/1483_A Debt Unpaid.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/1484_Dream On.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/1531_Spirits Most Foul.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/1532_Dubious Dancing.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/1533_Stroking the Haft.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/1571_The Captain of Her Heart.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/1573_Of Siblings and Side-whiskers.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/33_Sweet Words, Shadowy Dealings.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/36_Sudul Eht Nioj.json diff --git a/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/1481_Of Errant Epistles.json b/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/1481_Of Errant Epistles.json new file mode 100644 index 000000000..3fee548c3 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/1481_Of Errant Epistles.json @@ -0,0 +1,53 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1006550, + "Position": { + "X": 449.33228, + "Y": -12.436822, + "Z": -387.5639 + }, + "TerritoryId": 156, + "InteractionType": "AcceptQuest", + "Fly": true, + "AetheryteShortcut": "Mor Dhona", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1003596, + "Position": { + "X": -41.428284, + "Y": 20, + "Z": -5.661133 + }, + "TerritoryId": 129, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Limsa Lominsa", + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_SUBPST000_01481_Q1_000_000", + "Yes": true, + "PromptIsRegularExpression": true + } + ], + "NextQuestId": 1483 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/1482_Carline Memories.json b/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/1482_Carline Memories.json new file mode 100644 index 000000000..1202675a1 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/1482_Carline Memories.json @@ -0,0 +1,193 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1009153, + "Position": { + "X": -39.108948, + "Y": 20, + "Z": 5.416931 + }, + "TerritoryId": 129, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Limsa Lominsa", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1000100, + "Position": { + "X": 23.819275, + "Y": -8, + "Z": 115.92273 + }, + "TerritoryId": 132, + "InteractionType": "Interact", + "AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Airship Landing" + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2004266, + "Position": { + "X": 103.715576, + "Y": 1.2664795, + "Z": 46.92151 + }, + "TerritoryId": 132, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, + { + "DataId": 2004267, + "Position": { + "X": -67.216064, + "Y": -3.4332886, + "Z": 35.26355 + }, + "TerritoryId": 132, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 16 + ] + }, + { + "DataId": 2004269, + "Position": { + "X": -141.2528, + "Y": 7.827881, + "Z": -190.53949 + }, + "TerritoryId": 133, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Mih Khetto's Amphitheatre" + ], + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 2004268, + "Position": { + "X": 123.91846, + "Y": 14.145081, + "Z": -275.83734 + }, + "TerritoryId": 133, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Gridania] Mih Khetto's Amphitheatre", + "[Gridania] Lancers' Guild" + ], + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1000100, + "Position": { + "X": 23.819275, + "Y": -8, + "Z": 115.92273 + }, + "TerritoryId": 132, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Gridania] Lancers' Guild", + "[Gridania] Airship Landing" + ] + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 2004270, + "Position": { + "X": 7.1869507, + "Y": 4.7455444, + "Z": -262.98932 + }, + "StopDistance": 1, + "TerritoryId": 148, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Blue Badger Gate (Central Shroud)" + ], + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1000100, + "Position": { + "X": 23.819275, + "Y": -8, + "Z": 115.92273 + }, + "TerritoryId": 132, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Airship Landing" + ], + "NextQuestId": 1484 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/1483_A Debt Unpaid.json b/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/1483_A Debt Unpaid.json new file mode 100644 index 000000000..099f03546 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/1483_A Debt Unpaid.json @@ -0,0 +1,233 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1009153, + "Position": { + "X": -39.108948, + "Y": 20, + "Z": 5.416931 + }, + "TerritoryId": 129, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Limsa Lominsa", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1003611, + "Position": { + "X": 9.781006, + "Y": 20.999247, + "Z": 15.0911255 + }, + "TerritoryId": 129, + "InteractionType": "Interact", + "TargetTerritoryId": 128, + "DialogueChoices": [ + { + "Type": "List", + "ExcelSheet": "Warp", + "Prompt": null, + "Answer": 131093 + } + ] + }, + { + "DataId": 1000972, + "Position": { + "X": 20.279175, + "Y": 40.19993, + "Z": -6.1189575 + }, + "TerritoryId": 128, + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_SUBPST002_01483_Q1_000_000", + "Yes": true + } + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1003601, + "Position": { + "X": -3.2807007, + "Y": 39.51757, + "Z": -9.414856 + }, + "TerritoryId": 128, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1009183, + "Position": { + "X": -63.21814, + "Y": 43.589653, + "Z": 48.447266 + }, + "TerritoryId": 134, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Limsa Lominsa] The Aftcastle", + "[Limsa Lominsa] Zephyr Gate (Middle La Noscea)" + ], + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1009183, + "Position": { + "X": -63.21814, + "Y": 43.589653, + "Z": 48.447266 + }, + "TerritoryId": 134, + "InteractionType": "UseItem", + "ItemId": 2001324 + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1009666, + "Position": { + "X": -22.171448, + "Y": 42.442753, + "Z": 128.67932 + }, + "TerritoryId": 134, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1002626, + "Position": { + "X": 207.2633, + "Y": 112.86037, + "Z": -222.43079 + }, + "TerritoryId": 134, + "InteractionType": "Interact", + "AetheryteShortcut": "Middle La Noscea - Summerford Farms" + } + ] + }, + { + "Sequence": 7, + "Steps": [ + { + "DataId": 2004272, + "Position": { + "X": 224.2008, + "Y": 114.3053, + "Z": -223.40735 + }, + "TerritoryId": 134, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 8, + "Steps": [ + { + "DataId": 1009184, + "Position": { + "X": -22.171448, + "Y": 42.442753, + "Z": 128.67932 + }, + "TerritoryId": 134, + "InteractionType": "Interact", + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] Zephyr Gate (Middle La Noscea)" + ] + } + ] + }, + { + "Sequence": 9, + "Steps": [ + { + "DataId": 1000972, + "Position": { + "X": 20.279175, + "Y": 40.19993, + "Z": -6.1189575 + }, + "TerritoryId": 128, + "InteractionType": "Interact", + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] The Aftcastle" + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1003597, + "Position": { + "X": 8.194031, + "Y": 39.999973, + "Z": 17.746216 + }, + "TerritoryId": 128, + "InteractionType": "Interact", + "TargetTerritoryId": 129 + }, + { + "DataId": 1009153, + "Position": { + "X": -39.108948, + "Y": 20, + "Z": 5.416931 + }, + "TerritoryId": 129, + "InteractionType": "CompleteQuest", + "NextQuestId": 1482 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/1484_Dream On.json b/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/1484_Dream On.json new file mode 100644 index 000000000..e832f2acb --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/1484_Dream On.json @@ -0,0 +1,113 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1009153, + "Position": { + "X": -39.108948, + "Y": 20, + "Z": 5.416931 + }, + "TerritoryId": 129, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Limsa Lominsa", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1001353, + "Position": { + "X": 21.072632, + "Y": 7.45, + "Z": -78.78235 + }, + "TerritoryId": 130, + "InteractionType": "Interact", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Adventurers' Guild" + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1006357, + "Position": { + "X": -28.854858, + "Y": 13.799997, + "Z": 118.66931 + }, + "TerritoryId": 131, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Ul'dah] Adventurers' Guild", + "[Ul'dah] Goldsmiths' Guild" + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "Position": { + "X": -282.37943, + "Y": 13.480675, + "Z": -155.46162 + }, + "TerritoryId": 140, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Western Thanalan - Horizon", + "Fly": true + }, + { + "DataId": 1009186, + "Position": { + "X": -281.94098, + "Y": 13.480675, + "Z": -156.4508 + }, + "TerritoryId": 140, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1001353, + "Position": { + "X": 21.072632, + "Y": 7.45, + "Z": -78.78235 + }, + "TerritoryId": 130, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Adventurers' Guild" + ], + "NextQuestId": 1531 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/1531_Spirits Most Foul.json b/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/1531_Spirits Most Foul.json new file mode 100644 index 000000000..27dc2af1e --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/1531_Spirits Most Foul.json @@ -0,0 +1,170 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1009153, + "Position": { + "X": -39.108948, + "Y": 20, + "Z": 5.416931 + }, + "TerritoryId": 129, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Limsa Lominsa", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1000705, + "Position": { + "X": -243.15253, + "Y": -4.000101, + "Z": -7.950012 + }, + "TerritoryId": 133, + "InteractionType": "Interact", + "AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Conjurers' Guild" + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1006238, + "Position": { + "X": 197.77222, + "Y": 7.8551226, + "Z": -22.14087 + }, + "TerritoryId": 153, + "InteractionType": "Interact", + "AetheryteShortcut": "South Shroud - Quarrymill", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1000312, + "Position": { + "X": 269.6421, + "Y": 7.877909, + "Z": -206.34778 + }, + "TerritoryId": 153, + "InteractionType": "Interact", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, + { + "DataId": 1000338, + "Position": { + "X": 268.20776, + "Y": 10.393627, + "Z": -250.11066 + }, + "TerritoryId": 153, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 1000340, + "Position": { + "X": 277.51575, + "Y": 11.186312, + "Z": -255.60394 + }, + "TerritoryId": 153, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "Position": { + "X": 265.58423, + "Y": 9.040689, + "Z": -227.60555 + }, + "TerritoryId": 153, + "InteractionType": "WalkTo" + }, + { + "DataId": 2004282, + "Position": { + "X": 261.5548, + "Y": 15.42688, + "Z": -125.90222 + }, + "TerritoryId": 153, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1000705, + "Position": { + "X": -243.15253, + "Y": -4.000101, + "Z": -7.950012 + }, + "TerritoryId": 133, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Conjurers' Guild" + ], + "NextQuestId": 1532 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/1532_Dubious Dancing.json b/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/1532_Dubious Dancing.json new file mode 100644 index 000000000..f99c589b8 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/1532_Dubious Dancing.json @@ -0,0 +1,187 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1009153, + "Position": { + "X": -39.108948, + "Y": 20, + "Z": 5.416931 + }, + "TerritoryId": 129, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Limsa Lominsa", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1006273, + "Position": { + "X": 619.0126, + "Y": 23.936245, + "Z": 455.10022 + }, + "TerritoryId": 137, + "InteractionType": "Interact", + "AetheryteShortcut": "Eastern La Noscea - Costa Del Sol", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1009267, + "Position": { + "X": 194.20154, + "Y": 59.531815, + "Z": -144.54877 + }, + "TerritoryId": 180, + "InteractionType": "Interact", + "AetheryteShortcut": "Outer La Noscea - Camp Overlook", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "Position": { + "X": -348.54996, + "Y": 67.72218, + "Z": -344.0944 + }, + "TerritoryId": 180, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Outer La Noscea - Camp Overlook", + "Fly": true + }, + { + "DataId": 1009268, + "Position": { + "X": -319.9054, + "Y": 4.416262, + "Z": -571.40466 + }, + "TerritoryId": 180, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1009268, + "Position": { + "X": -319.9054, + "Y": 4.416262, + "Z": -571.40466 + }, + "TerritoryId": 180, + "InteractionType": "UseItem", + "ItemId": 2001334 + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1009268, + "Position": { + "X": -319.9054, + "Y": 4.416262, + "Z": -571.40466 + }, + "TerritoryId": 180, + "InteractionType": "UseItem", + "ItemId": 2001334 + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1009268, + "Position": { + "X": -319.9054, + "Y": 4.416262, + "Z": -571.40466 + }, + "TerritoryId": 180, + "InteractionType": "UseItem", + "ItemId": 2001334 + } + ] + }, + { + "Sequence": 7, + "Steps": [ + { + "DataId": 1006273, + "Position": { + "X": 619.0126, + "Y": 23.936245, + "Z": 455.10022 + }, + "TerritoryId": 137, + "InteractionType": "Interact", + "AetheryteShortcut": "Eastern La Noscea - Costa Del Sol", + "Fly": true + } + ] + }, + { + "Sequence": 8, + "Steps": [ + { + "DataId": 2004284, + "Position": { + "X": 517.32654, + "Y": 12.558105, + "Z": 78.93494 + }, + "TerritoryId": 137, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1006273, + "Position": { + "X": 619.0126, + "Y": 23.936245, + "Z": 455.10022 + }, + "TerritoryId": 137, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Eastern La Noscea - Costa Del Sol", + "Fly": true, + "NextQuestId": 1533 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/1533_Stroking the Haft.json b/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/1533_Stroking the Haft.json new file mode 100644 index 000000000..aa0347b6c --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/1533_Stroking the Haft.json @@ -0,0 +1,145 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1009153, + "Position": { + "X": -39.108948, + "Y": 20, + "Z": 5.416931 + }, + "TerritoryId": 129, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Limsa Lominsa", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1009271, + "Position": { + "X": 149.9198, + "Y": 7.492006, + "Z": 109.391846 + }, + "TerritoryId": 131, + "InteractionType": "Interact", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1009272, + "Position": { + "X": -39.16992, + "Y": 13.499999, + "Z": 104.99719 + }, + "TerritoryId": 131, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Ul'dah] Weavers' Guild", + "[Ul'dah] Goldsmiths' Guild" + ], + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_SUBPST007_01533_Q1_000_000", + "Answer": "TEXT_SUBPST007_01533_A1_000_002" + } + ], + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 1009273, + "Position": { + "X": -120.74469, + "Y": 41.50016, + "Z": 134.5083 + }, + "TerritoryId": 131, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Ul'dah] Goldsmiths' Guild", + "[Ul'dah] Alchemists' Guild" + ], + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_SUBPST007_01533_Q2_000_000", + "Answer": "TEXT_SUBPST007_01533_A2_000_001" + } + ], + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "Position": { + "X": 112.655914, + "Y": 8.361085, + "Z": 73.20917 + }, + "TerritoryId": 131, + "InteractionType": "WalkTo", + "AethernetShortcut": [ + "[Ul'dah] Alchemists' Guild", + "[Ul'dah] Weavers' Guild" + ], + "RestartNavigationIfCancelled": false + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1009369, + "Position": { + "X": 151.26257, + "Y": 7.492006, + "Z": 109.84961 + }, + "TerritoryId": 131, + "InteractionType": "CompleteQuest", + "NextQuestId": 1571 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/1571_The Captain of Her Heart.json b/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/1571_The Captain of Her Heart.json new file mode 100644 index 000000000..91679b7e7 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/1571_The Captain of Her Heart.json @@ -0,0 +1,180 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1009153, + "Position": { + "X": -39.108948, + "Y": 20, + "Z": 5.416931 + }, + "TerritoryId": 129, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Limsa Lominsa", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1006331, + "Position": { + "X": -144.15204, + "Y": 64.989944, + "Z": -209.88788 + }, + "TerritoryId": 180, + "InteractionType": "Interact", + "AetheryteShortcut": "Outer La Noscea - Camp Overlook" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1009726, + "Position": { + "X": -280.8728, + "Y": 62.620903, + "Z": -201.9837 + }, + "StopDistance": 0.5, + "TerritoryId": 180, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [ + 2864, + 2865, + 2866 + ], + "Fly": true, + "CompletionQuestVariablesFlags": [ + { + "Low": 3 + }, + null, + null, + null, + null, + null + ] + }, + { + "DataId": 1009726, + "Position": { + "X": -280.8728, + "Y": 62.620903, + "Z": -201.9837 + }, + "TerritoryId": 180, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1006331, + "Position": { + "X": -144.15204, + "Y": 64.989944, + "Z": -209.88788 + }, + "TerritoryId": 180, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1009729, + "Position": { + "X": -108.72058, + "Y": 64.30314, + "Z": -220.38611 + }, + "TerritoryId": 180, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1009730, + "Position": { + "X": -145.8305, + "Y": 64.83713, + "Z": -209.24695 + }, + "TerritoryId": 180, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1009732, + "Position": { + "X": -439.59723, + "Y": 50.90922, + "Z": -319.69183 + }, + "TerritoryId": 180, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 7, + "Steps": [ + { + "DataId": 1009753, + "Position": { + "X": -107.408325, + "Y": 64.38365, + "Z": -223.62103 + }, + "TerritoryId": 180, + "InteractionType": "Interact", + "AetheryteShortcut": "Outer La Noscea - Camp Overlook" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1006331, + "Position": { + "X": -144.15204, + "Y": 64.989944, + "Z": -209.88788 + }, + "TerritoryId": 180, + "InteractionType": "CompleteQuest", + "NextQuestId": 33 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/1573_Of Siblings and Side-whiskers.json b/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/1573_Of Siblings and Side-whiskers.json new file mode 100644 index 000000000..c5dc058e9 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/1573_Of Siblings and Side-whiskers.json @@ -0,0 +1,113 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1009153, + "Position": { + "X": -39.108948, + "Y": 20, + "Z": 5.416931 + }, + "TerritoryId": 129, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Limsa Lominsa", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1009739, + "Position": { + "X": -103.83765, + "Y": 40, + "Z": 113.206665 + }, + "TerritoryId": 128, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] The Aftcastle" + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1000153, + "Position": { + "X": -44.87683, + "Y": -1.2500024, + "Z": 56.839844 + }, + "TerritoryId": 132, + "InteractionType": "Interact", + "AetheryteShortcut": "Gridania" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "Position": { + "X": -103.88594, + "Y": 41.50016, + "Z": 119.898315 + }, + "TerritoryId": 131, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Alchemists' Guild" + ] + }, + { + "DataId": 1002299, + "Position": { + "X": -98.8938, + "Y": 40.200146, + "Z": 120.83618 + }, + "StopDistance": 7, + "TerritoryId": 131, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1009744, + "Position": { + "X": -47.470886, + "Y": 40, + "Z": 60.68506 + }, + "TerritoryId": 128, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] The Aftcastle" + ], + "NextQuestId": 1485 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/33_Sweet Words, Shadowy Dealings.json b/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/33_Sweet Words, Shadowy Dealings.json new file mode 100644 index 000000000..22693e403 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/33_Sweet Words, Shadowy Dealings.json @@ -0,0 +1,231 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1009153, + "Position": { + "X": -39.108948, + "Y": 20, + "Z": 5.416931 + }, + "TerritoryId": 129, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Limsa Lominsa", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1009949, + "Position": { + "X": -325.70386, + "Y": 7.228748, + "Z": -215.16754 + }, + "TerritoryId": 133, + "InteractionType": "Interact", + "AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Botanists' Guild" + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1009952, + "Position": { + "X": 41.61133, + "Y": 1.8386029, + "Z": -117.265625 + }, + "TerritoryId": 133, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Gridania] Botanists' Guild", + "[Gridania] Leatherworkers' Guild & Shaded Bower" + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1000768, + "Position": { + "X": 172.35059, + "Y": 15.5, + "Z": -89.951965 + }, + "TerritoryId": 133, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 1000227, + "Position": { + "X": 168.62744, + "Y": 15.699999, + "Z": -65.690125 + }, + "TerritoryId": 133, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, + { + "DataId": 1000228, + "Position": { + "X": 168.20007, + "Y": 15.69998, + "Z": -64.83563 + }, + "StopDistance": 5, + "TerritoryId": 133, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1009952, + "Position": { + "X": 41.61133, + "Y": 1.8386029, + "Z": -117.265625 + }, + "TerritoryId": 133, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1000243, + "Position": { + "X": 170.03125, + "Y": 15.699999, + "Z": -127.03143 + }, + "TerritoryId": 133, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1009952, + "Position": { + "X": 41.61133, + "Y": 1.8386029, + "Z": -117.265625 + }, + "TerritoryId": 133, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 7, + "Steps": [ + { + "Position": { + "X": -374.96555, + "Y": 63.686344, + "Z": -206.74146 + }, + "StopDistance": 0.5, + "TerritoryId": 148, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [ + 2863 + ], + "AethernetShortcut": [ + "[Gridania] Leatherworkers' Guild & Shaded Bower", + "[Gridania] White Wolf Gate (Central Shroud)" + ], + "Fly": true + } + ] + }, + { + "Sequence": 8, + "Steps": [ + { + "DataId": 1001276, + "Position": { + "X": 13.961914, + "Y": 0.1373291, + "Z": 2.090454 + }, + "TerritoryId": 132, + "InteractionType": "Interact", + "AetheryteShortcut": "Gridania" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1009953, + "Position": { + "X": 31.5708, + "Y": -19.000002, + "Z": 100.48059 + }, + "TerritoryId": 132, + "InteractionType": "CompleteQuest", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Airship Landing" + ], + "NextQuestId": 36 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/36_Sudul Eht Nioj.json b/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/36_Sudul Eht Nioj.json new file mode 100644 index 000000000..90e75dbd1 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/36_Sudul Eht Nioj.json @@ -0,0 +1,261 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1009153, + "Position": { + "X": -39.108948, + "Y": 20, + "Z": 5.416931 + }, + "TerritoryId": 129, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Limsa Lominsa", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1009781, + "Position": { + "X": -89.829956, + "Y": 5.2000036, + "Z": 45.426025 + }, + "TerritoryId": 131, + "InteractionType": "Interact", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Gladiators' Guild" + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2004614, + "Position": { + "X": -80.76605, + "Y": 8.895996, + "Z": -16.739136 + }, + "TerritoryId": 131, + "InteractionType": "UseItem", + "ItemId": 2001459, + "IgnoreDistanceToObject": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, + { + "DataId": 2004616, + "Position": { + "X": -98.1308, + "Y": 8.987488, + "Z": -16.617126 + }, + "TerritoryId": 131, + "InteractionType": "UseItem", + "ItemId": 2001459, + "IgnoreDistanceToObject": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 16 + ] + }, + { + "Position": { + "X": -113.42244, + "Y": 7.9935846, + "Z": -8.936225 + }, + "TerritoryId": 131, + "InteractionType": "WalkTo" + }, + { + "DataId": 1001859, + "Position": { + "X": -142.71765, + "Y": 11.999999, + "Z": -15.610046 + }, + "TerritoryId": 130, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 1009789, + "Position": { + "X": -159.68573, + "Y": 12.596368, + "Z": 0.869751 + }, + "TerritoryId": 130, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "Position": { + "X": -117.18245, + "Y": 9.232903, + "Z": 9.133285 + }, + "TerritoryId": 130, + "InteractionType": "WalkTo" + }, + { + "DataId": 1009785, + "Position": { + "X": -88.15143, + "Y": 5.200004, + "Z": 45.303955 + }, + "TerritoryId": 131, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1001675, + "Position": { + "X": -89.49426, + "Y": 7.008118, + "Z": 10.849121 + }, + "TerritoryId": 131, + "InteractionType": "Emote", + "Emote": "welcome" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "Position": { + "X": -112.38632, + "Y": 7.6503563, + "Z": 9.034383 + }, + "TerritoryId": 131, + "InteractionType": "WalkTo" + }, + { + "DataId": 1009792, + "Position": { + "X": -135.36285, + "Y": 10.9999895, + "Z": 0.015197754 + }, + "TerritoryId": 130, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1009791, + "Position": { + "X": -13.778931, + "Y": 3.9999998, + "Z": -151.4458 + }, + "TerritoryId": 130, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 7, + "Steps": [ + { + "Position": { + "X": 44.151344, + "Y": 4.0195827, + "Z": -165.77715 + }, + "TerritoryId": 130, + "InteractionType": "WalkTo" + }, + { + "Position": { + "X": -172.42809, + "Y": 16.059729, + "Z": 276.30084 + }, + "StopDistance": 0.5, + "TerritoryId": 141, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [ + 2853, + 3120 + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1009794, + "Position": { + "X": -174.45642, + "Y": 16.149345, + "Z": 275.6847 + }, + "TerritoryId": 141, + "InteractionType": "CompleteQuest", + "NextQuestId": 1573 + } + ] + } + ] +} diff --git a/Questionable/Functions/QuestFunctions.cs b/Questionable/Functions/QuestFunctions.cs index 8c937bcc9..d44f1e52b 100644 --- a/Questionable/Functions/QuestFunctions.cs +++ b/Questionable/Functions/QuestFunctions.cs @@ -561,6 +561,10 @@ internal sealed unsafe class QuestFunctions if (questInfo.AlliedSociety != EAlliedSociety.None && questInfo.IsRepeatable) return !IsDailyAlliedSocietyQuestAndAvailableToday(questId); + if (questInfo.MoogleDeliveryLevel > 0 && + questInfo.MoogleDeliveryLevel > PlayerState.Instance()->DeliveryLevel) + return true; + return !HasCompletedPreviousQuests(questInfo, extraCompletedQuest) || !HasCompletedPreviousInstances(questInfo); } diff --git a/Questionable/Model/QuestInfo.cs b/Questionable/Model/QuestInfo.cs index 6e60ac714..03d1088c2 100644 --- a/Questionable/Model/QuestInfo.cs +++ b/Questionable/Model/QuestInfo.cs @@ -66,6 +66,7 @@ internal sealed class QuestInfo : IQuestInfo IsSeasonalEvent = quest.Festival.RowId != 0; NewGamePlusChapter = newGamePlusChapter; StartingCity = startingCity; + MoogleDeliveryLevel = (byte)quest.DeliveryQuest.RowId; Expansion = (EExpansionVersion)quest.Expansion.RowId; } @@ -102,6 +103,7 @@ internal sealed class QuestInfo : IQuestInfo public bool IsSeasonalEvent { get; } public uint NewGamePlusChapter { get; } public byte StartingCity { get; set; } + public byte MoogleDeliveryLevel { get; } public EExpansionVersion Expansion { get; } public void AddPreviousQuest(PreviousQuestInfo questId) diff --git a/Questionable/Windows/QuestComponents/QuestTooltipComponent.cs b/Questionable/Windows/QuestComponents/QuestTooltipComponent.cs index 4d4f1d2c3..bcf823ae6 100644 --- a/Questionable/Windows/QuestComponents/QuestTooltipComponent.cs +++ b/Questionable/Windows/QuestComponents/QuestTooltipComponent.cs @@ -130,6 +130,10 @@ internal sealed class QuestTooltipComponent if (questInfo is QuestInfo actualQuestInfo) { + if (actualQuestInfo.MoogleDeliveryLevel > 0) + ImGui.Text($"Requires Carrier Level {actualQuestInfo.MoogleDeliveryLevel}"); + + if (counter == 0 && actualQuestInfo.QuestLocks.Count > 0) { ImGui.Separator(); -- 2.45.2 From 98197b668745f5b5738772d6a92f75c35b119a7c Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Fri, 27 Dec 2024 01:34:15 +0100 Subject: [PATCH 377/448] Add 'Beauty Is Only Scalp Deep' --- .../Misc/1210_Beauty Is Only Scalp Deep.json | 172 ++++++++++++++++++ 1 file changed, 172 insertions(+) create mode 100644 QuestPaths/2.x - A Realm Reborn/Unlocks/Misc/1210_Beauty Is Only Scalp Deep.json diff --git a/QuestPaths/2.x - A Realm Reborn/Unlocks/Misc/1210_Beauty Is Only Scalp Deep.json b/QuestPaths/2.x - A Realm Reborn/Unlocks/Misc/1210_Beauty Is Only Scalp Deep.json new file mode 100644 index 000000000..bf89524c8 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Unlocks/Misc/1210_Beauty Is Only Scalp Deep.json @@ -0,0 +1,172 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1003601, + "Position": { + "X": -3.2807007, + "Y": 39.51757, + "Z": -9.414856 + }, + "TerritoryId": 128, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] The Aftcastle" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 128 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1005516, + "Position": { + "X": -46.0365, + "Y": 40, + "Z": 63.767456 + }, + "TerritoryId": 128, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1005515, + "Position": { + "X": -44.449524, + "Y": 39.999996, + "Z": 61.81433 + }, + "TerritoryId": 128, + "InteractionType": "Emote", + "Emote": "doubt" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1001000, + "Position": { + "X": -32.028687, + "Y": 41.499985, + "Z": 208.39233 + }, + "TerritoryId": 128, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 1000153, + "Position": { + "X": -44.87683, + "Y": -1.2500024, + "Z": 56.839844 + }, + "TerritoryId": 132, + "InteractionType": "Interact", + "AetheryteShortcut": "Gridania", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "Position": { + "X": -103.88594, + "Y": 41.50016, + "Z": 119.898315 + }, + "TerritoryId": 131, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Alchemists' Guild" + ], + "SkipConditions": { + "StepIf": { + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + } + } + }, + { + "DataId": 1002299, + "Position": { + "X": -98.8938, + "Y": 40.200146, + "Z": 120.83618 + }, + "StopDistance": 7, + "TerritoryId": 131, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1005515, + "Position": { + "X": -44.449524, + "Y": 39.999996, + "Z": 61.81433 + }, + "TerritoryId": 128, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] The Aftcastle" + ] + } + ] + } + ] +} -- 2.45.2 From aa70f4c55a7ec1bc000a7e313ed5df201724e3b3 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Fri, 27 Dec 2024 17:45:30 +0100 Subject: [PATCH 378/448] Add second batch of postmoogle quests --- .../Central Shroud/804_Fungal Frolic.json | 104 +++++++ .../805_Shocking Discoveries.json | 88 ++++++ .../807_Doing the Dirty Work.json | 89 ++++++ .../1485_Thwack-a-Mole.json | 166 +++++++++++ .../1570_Death of a Mailman.json | 136 +++++++++ .../1572_Thanks for Your Support.json | 146 +++++++++ ...574_The Past Is a Story We Never Tell.json | 266 +++++++++++++++++ .../1575_Hostages to Fortune.json | 248 +++++++++++++++ .../1576_All in the Family.json | 217 ++++++++++++++ .../1577_Duel Personalities.json | 197 ++++++++++++ .../240_Blues on Emerald Avenue.json | 238 +++++++++++++++ .../241_Lone Survivor.json | 190 ++++++++++++ .../242_Guildmaster, Prelate, and Plot.json | 282 ++++++++++++++++++ .../243_A Qiqirn Always Pays His Debts.json | 194 ++++++++++++ .../244_The Hazy Professor.json | 230 ++++++++++++++ .../362_The Little Postmoogle That Could.json | 217 ++++++++++++++ .../496_Better Left Unfound.json | 116 +++++++ Questionable/Functions/QuestFunctions.cs | 14 +- Questionable/Model/QuestInfo.cs | 1 + 19 files changed, 3136 insertions(+), 3 deletions(-) create mode 100644 QuestPaths/2.x - A Realm Reborn/Side Quests/Black Shroud/Central Shroud/804_Fungal Frolic.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Side Quests/Black Shroud/Central Shroud/805_Shocking Discoveries.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Side Quests/Black Shroud/Central Shroud/807_Doing the Dirty Work.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/1485_Thwack-a-Mole.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/1570_Death of a Mailman.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/1572_Thanks for Your Support.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/1574_The Past Is a Story We Never Tell.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/1575_Hostages to Fortune.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/1576_All in the Family.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/1577_Duel Personalities.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/240_Blues on Emerald Avenue.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/241_Lone Survivor.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/242_Guildmaster, Prelate, and Plot.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/243_A Qiqirn Always Pays His Debts.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/244_The Hazy Professor.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/362_The Little Postmoogle That Could.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/496_Better Left Unfound.json diff --git a/QuestPaths/2.x - A Realm Reborn/Side Quests/Black Shroud/Central Shroud/804_Fungal Frolic.json b/QuestPaths/2.x - A Realm Reborn/Side Quests/Black Shroud/Central Shroud/804_Fungal Frolic.json new file mode 100644 index 000000000..f2e9316a0 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Side Quests/Black Shroud/Central Shroud/804_Fungal Frolic.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": [ + { + "Position": { + "X": -243.19783, + "Y": 58.69102, + "Z": -140.41818 + }, + "TerritoryId": 148, + "InteractionType": "WalkTo", + "Fly": true, + "AetheryteShortcut": "Central Shroud - Bentbranch Meadows", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + }, + { + "DataId": 1006261, + "Position": { + "X": -244.73944, + "Y": 58.69352, + "Z": -140.06262 + }, + "TerritoryId": 148, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": -294.20667, + "Y": 61.58862, + "Z": -192.54443 + }, + "TerritoryId": 148, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "ComplexCombatData": [ + { + "DataId": 48, + "CompletionQuestVariablesFlags": [ + null, + { + "High": 5 + }, + null, + null, + null, + null + ] + } + ], + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + { + "High": 5 + }, + null, + null, + null, + null + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": -243.19783, + "Y": 58.69102, + "Z": -140.41818 + }, + "TerritoryId": 148, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 1006261, + "Position": { + "X": -244.73944, + "Y": 58.69352, + "Z": -140.06262 + }, + "TerritoryId": 148, + "InteractionType": "CompleteQuest", + "NextQuestId": 805 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Side Quests/Black Shroud/Central Shroud/805_Shocking Discoveries.json b/QuestPaths/2.x - A Realm Reborn/Side Quests/Black Shroud/Central Shroud/805_Shocking Discoveries.json new file mode 100644 index 000000000..b0f7b06a4 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Side Quests/Black Shroud/Central Shroud/805_Shocking Discoveries.json @@ -0,0 +1,88 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "Position": { + "X": -243.19783, + "Y": 58.69102, + "Z": -140.41818 + }, + "TerritoryId": 148, + "InteractionType": "WalkTo", + "Fly": true, + "AetheryteShortcut": "Central Shroud - Bentbranch Meadows", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + }, + { + "DataId": 1006261, + "Position": { + "X": -244.73944, + "Y": 58.69352, + "Z": -140.06262 + }, + "TerritoryId": 148, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": -291.6655, + "Y": 60.450222, + "Z": -163.48296 + }, + "TerritoryId": 148, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "ComplexCombatData": [ + { + "DataId": 2267 + } + ], + "CombatItemUse": { + "ItemId": 2000632, + "Condition": "Health%", + "Value": 50 + } + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": -243.19783, + "Y": 58.69102, + "Z": -140.41818 + }, + "TerritoryId": 148, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 1006261, + "Position": { + "X": -244.73944, + "Y": 58.69352, + "Z": -140.06262 + }, + "TerritoryId": 148, + "InteractionType": "CompleteQuest", + "NextQuestId": 807 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Side Quests/Black Shroud/Central Shroud/807_Doing the Dirty Work.json b/QuestPaths/2.x - A Realm Reborn/Side Quests/Black Shroud/Central Shroud/807_Doing the Dirty Work.json new file mode 100644 index 000000000..26dee00db --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Side Quests/Black Shroud/Central Shroud/807_Doing the Dirty Work.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": [ + { + "Position": { + "X": -243.19783, + "Y": 58.69102, + "Z": -140.41818 + }, + "TerritoryId": 148, + "InteractionType": "WalkTo", + "Fly": true, + "AetheryteShortcut": "Central Shroud - Bentbranch Meadows", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + }, + { + "DataId": 1006261, + "Position": { + "X": -244.73944, + "Y": 58.69352, + "Z": -140.06262 + }, + "TerritoryId": 148, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": -327.70383, + "Y": 57.159073, + "Z": -13.640016 + }, + "TerritoryId": 148, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "ComplexCombatData": [ + { + "DataId": 2193, + "NameId": 2057 + } + ], + "CombatItemUse": { + "ItemId": 2000958, + "Condition": "Health%", + "Value": 100 + } + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": -243.19783, + "Y": 58.69102, + "Z": -140.41818 + }, + "TerritoryId": 148, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 1006261, + "Position": { + "X": -244.73944, + "Y": 58.69352, + "Z": -140.06262 + }, + "TerritoryId": 148, + "InteractionType": "CompleteQuest", + "NextQuestId": 1485 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/1485_Thwack-a-Mole.json b/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/1485_Thwack-a-Mole.json new file mode 100644 index 000000000..d55472661 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/1485_Thwack-a-Mole.json @@ -0,0 +1,166 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1009153, + "Position": { + "X": -39.108948, + "Y": 20, + "Z": 5.416931 + }, + "TerritoryId": 129, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Limsa Lominsa", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": -243.19783, + "Y": 58.69102, + "Z": -140.41818 + }, + "TerritoryId": 148, + "InteractionType": "WalkTo", + "Fly": true, + "AetheryteShortcut": "Central Shroud - Bentbranch Meadows", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + }, + { + "DataId": 1006261, + "Position": { + "X": -244.73944, + "Y": 58.69352, + "Z": -140.06262 + }, + "TerritoryId": 148, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1001455, + "Position": { + "X": 59.952637, + "Y": 0.99176025, + "Z": 255.8479 + }, + "TerritoryId": 141, + "InteractionType": "Interact", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Gate of Nald (Central Thanalan)" + ], + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2004276, + "Position": { + "X": 70.2677, + "Y": 1.2054443, + "Z": 250.53784 + }, + "TerritoryId": 141, + "InteractionType": "UseItem", + "ItemId": 2001329 + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 2004277, + "Position": { + "X": 70.2677, + "Y": 1.2054443, + "Z": 250.53784 + }, + "TerritoryId": 141, + "InteractionType": "UseItem", + "ItemId": 2001328, + "DelaySecondsAtStart": 3 + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 2004277, + "Position": { + "X": 70.2677, + "Y": 1.2054443, + "Z": 250.53784 + }, + "TerritoryId": 141, + "InteractionType": "Combat", + "EnemySpawnType": "FinishCombatIfAny", + "KillEnemyDataIds": [] + }, + { + "DataId": 1009187, + "Position": { + "X": 70.573, + "Y": 1.5015054, + "Z": 251.39233 + }, + "TerritoryId": 141, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": -243.19783, + "Y": 58.69102, + "Z": -140.41818 + }, + "TerritoryId": 148, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Central Shroud - Bentbranch Meadows", + "Fly": true + }, + { + "DataId": 1006261, + "Position": { + "X": -244.73944, + "Y": 58.69352, + "Z": -140.06262 + }, + "TerritoryId": 148, + "InteractionType": "CompleteQuest", + "NextQuestId": 1570 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/1570_Death of a Mailman.json b/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/1570_Death of a Mailman.json new file mode 100644 index 000000000..2af9652dd --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/1570_Death of a Mailman.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": 1009153, + "Position": { + "X": -39.108948, + "Y": 20, + "Z": 5.416931 + }, + "TerritoryId": 129, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Limsa Lominsa", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": -139.04318, + "Y": 8.522301, + "Z": 280.0128 + }, + "TerritoryId": 153, + "InteractionType": "WalkTo", + "AetheryteShortcut": "South Shroud - Camp Tranquil", + "Fly": true, + "SkipConditions": { + "StepIf": { + "Flying": "Locked" + } + }, + "$": "Post-ARR, flying always unlocked" + }, + { + "DataId": 1006751, + "Position": { + "X": -139.45221, + "Y": 8.712891, + "Z": 281.69678 + }, + "TerritoryId": 153, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1009153, + "Position": { + "X": -39.108948, + "Y": 20, + "Z": 5.416931 + }, + "TerritoryId": 129, + "InteractionType": "Interact", + "AetheryteShortcut": "Limsa Lominsa" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2004573, + "Position": { + "X": 36.545288, + "Y": -3.7080078, + "Z": 225.7572 + }, + "TerritoryId": 152, + "InteractionType": "Interact", + "AetheryteShortcut": "East Shroud - Hawthorne Hut", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "Position": { + "X": -83.15885, + "Y": -5.7812023, + "Z": 321.49606 + }, + "StopDistance": 0.5, + "TerritoryId": 152, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [ + 3552, + 3553 + ], + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1009721, + "Position": { + "X": -83.36011, + "Y": -5.6851597, + "Z": 322.43823 + }, + "TerritoryId": 152, + "InteractionType": "CompleteQuest", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_SUBPST010_01570_Q1_000_000", + "Answer": "TEXT_SUBPST010_01570_A1_000_002" + } + ], + "NextQuestId": 1576 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/1572_Thanks for Your Support.json b/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/1572_Thanks for Your Support.json new file mode 100644 index 000000000..aea6ec8cd --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/1572_Thanks for Your Support.json @@ -0,0 +1,146 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1009153, + "Position": { + "X": -39.108948, + "Y": 20, + "Z": 5.416931 + }, + "TerritoryId": 129, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Limsa Lominsa", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1000856, + "Position": { + "X": -155.10797, + "Y": 4.070978, + "Z": 202.71606 + }, + "TerritoryId": 129, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] Fishermens' Guild" + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1009733, + "Position": { + "X": -356.31348, + "Y": 8.000001, + "Z": 49.54602 + }, + "TerritoryId": 129, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Limsa Lominsa] Fishermens' Guild", + "[Limsa Lominsa] Arcanists' Guild" + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2004568, + "Position": { + "X": -356.31348, + "Y": 7.9804688, + "Z": 48.90515 + }, + "TerritoryId": 129, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 2004570, + "Position": { + "X": -83.634705, + "Y": 1.9378662, + "Z": 826.10803 + }, + "TerritoryId": 135, + "InteractionType": "UseItem", + "ItemId": 2001446, + "AetheryteShortcut": "Lower La Noscea - Moraby Drydocks", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1001016, + "Position": { + "X": -42.679565, + "Y": 39.999947, + "Z": 119.920654 + }, + "TerritoryId": 128, + "InteractionType": "PurchaseItem", + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] The Aftcastle" + ], + "PurchaseMenu": { + "ExcelSheet": "GilShop", + "Key": 262186 + }, + "ItemId": 4870, + "ItemCount": 1 + }, + { + "Position": { + "X": -82.249344, + "Y": 2.1958525, + "Z": 826.0164 + }, + "TerritoryId": 135, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Lower La Noscea - Moraby Drydocks", + "Fly": true + }, + { + "DataId": 1009735, + "Position": { + "X": -84.21454, + "Y": 1.802455, + "Z": 826.5963 + }, + "TerritoryId": 135, + "InteractionType": "CompleteQuest", + "NextQuestId": 1575 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/1574_The Past Is a Story We Never Tell.json b/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/1574_The Past Is a Story We Never Tell.json new file mode 100644 index 000000000..7cfa810b6 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/1574_The Past Is a Story We Never Tell.json @@ -0,0 +1,266 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1009153, + "Position": { + "X": -39.108948, + "Y": 20, + "Z": 5.416931 + }, + "TerritoryId": 129, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Fishermens' Guild", + "[Limsa Lominsa] Aetheryte Plaza" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1001263, + "Position": { + "X": 181.41443, + "Y": -2.3519497, + "Z": -240.40594 + }, + "TerritoryId": 133, + "InteractionType": "Interact", + "AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Lancers' Guild" + ], + "TargetTerritoryId": 152 + }, + { + "DataId": 1009754, + "Position": { + "X": -571.4351, + "Y": 10.28263, + "Z": 61.020752 + }, + "TerritoryId": 152, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2004581, + "Position": { + "X": 354.72632, + "Y": 5.5999756, + "Z": -30.167114 + }, + "TerritoryId": 153, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 2843 + ], + "AetheryteShortcut": "South Shroud - Quarrymill", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 2004582, + "Position": { + "X": 343.2821, + "Y": 2.4261475, + "Z": 8.895996 + }, + "TerritoryId": 153, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 2843 + ], + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2004845, + "Position": { + "X": 362.50854, + "Y": 1.663208, + "Z": -18.478699 + }, + "TerritoryId": 153, + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_SUBPST014_01574_Q1_000_000", + "Answer": "TEXT_SUBPST014_01574_A1_000_001" + } + ] + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1009755, + "Position": { + "X": 361.19617, + "Y": 1.6090399, + "Z": -18.448242 + }, + "TerritoryId": 153, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1009756, + "Position": { + "X": 377.40137, + "Y": 0.37321654, + "Z": 119.920654 + }, + "TerritoryId": 153, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1001263, + "Position": { + "X": 181.41443, + "Y": -2.3519497, + "Z": -240.40594 + }, + "TerritoryId": 133, + "InteractionType": "Interact", + "AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Lancers' Guild" + ], + "TargetTerritoryId": 152 + }, + { + "DataId": 1009754, + "Position": { + "X": -571.4351, + "Y": 10.28263, + "Z": 61.020752 + }, + "TerritoryId": 152, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 7, + "Steps": [ + { + "DataId": 1009758, + "Position": { + "X": -161.24213, + "Y": 7.554849, + "Z": 107.10303 + }, + "TerritoryId": 153, + "InteractionType": "Interact", + "AetheryteShortcut": "South Shroud - Camp Tranquil", + "Fly": true + } + ] + }, + { + "Sequence": 8, + "Steps": [ + { + "DataId": 2004846, + "Position": { + "X": -181.44507, + "Y": 8.0720215, + "Z": 101.27405 + }, + "TerritoryId": 153, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 2863, + 3558 + ] + } + ] + }, + { + "Sequence": 9, + "Steps": [ + { + "DataId": 1009760, + "Position": { + "X": -235.21783, + "Y": 6.619436, + "Z": 609.39954 + }, + "TerritoryId": 153, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1009760, + "Position": { + "X": -235.21783, + "Y": 6.619436, + "Z": 609.39954 + }, + "TerritoryId": 153, + "InteractionType": "CompleteQuest", + "NextQuestId": 1572 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/1575_Hostages to Fortune.json b/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/1575_Hostages to Fortune.json new file mode 100644 index 000000000..280ee6517 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/1575_Hostages to Fortune.json @@ -0,0 +1,248 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1009153, + "Position": { + "X": -39.108948, + "Y": 20, + "Z": 5.416931 + }, + "TerritoryId": 129, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Limsa Lominsa", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1006406, + "Position": { + "X": 63.156982, + "Y": -13.3626, + "Z": 140.91699 + }, + "TerritoryId": 154, + "InteractionType": "Interact", + "AetheryteShortcut": "North Shroud - Fallgourd Float" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": 328.4609, + "Y": -5.423937, + "Z": 266.34305 + }, + "StopDistance": 0.5, + "TerritoryId": 154, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [ + 3556, + 3557 + ], + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1010405, + "Position": { + "X": 334.73718, + "Y": -6.0854516, + "Z": 270.74072 + }, + "TerritoryId": 154, + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_SUBPST015_01575_Q1_000_070", + "Answer": "TEXT_SUBPST015_01575_A1_001_070" + } + ] + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1010407, + "Position": { + "X": 225.54358, + "Y": -25.225279, + "Z": 233.56982 + }, + "TerritoryId": 154, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1010408, + "Position": { + "X": 47.837036, + "Y": -34.920486, + "Z": 275.89832 + }, + "TerritoryId": 154, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1006406, + "Position": { + "X": 63.156982, + "Y": -13.3626, + "Z": 140.91699 + }, + "TerritoryId": 154, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 7, + "Steps": [ + { + "Position": { + "X": -31.059683, + "Y": -40.708477, + "Z": 195.24632 + }, + "TerritoryId": 154, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 1010409, + "Position": { + "X": -20.279297, + "Y": -34.656372, + "Z": 172.13696 + }, + "TerritoryId": 154, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 8, + "Steps": [ + { + "DataId": 1006406, + "Position": { + "X": 63.156982, + "Y": -13.3626, + "Z": 140.91699 + }, + "TerritoryId": 154, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 9, + "Steps": [ + { + "DataId": 1010410, + "Position": { + "X": 9.567322, + "Y": -10.024739, + "Z": 22.934265 + }, + "TerritoryId": 154, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 10, + "Steps": [ + { + "DataId": 1010509, + "Position": { + "X": 63.370728, + "Y": -13.485855, + "Z": 141.86316 + }, + "TerritoryId": 154, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 11, + "Steps": [ + { + "Position": { + "X": -31.059683, + "Y": -40.708477, + "Z": 195.24632 + }, + "TerritoryId": 154, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 1010409, + "Position": { + "X": -20.279297, + "Y": -34.656372, + "Z": 172.13696 + }, + "TerritoryId": 154, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1006406, + "Position": { + "X": 63.156982, + "Y": -13.3626, + "Z": 140.91699 + }, + "TerritoryId": 154, + "InteractionType": "CompleteQuest", + "Fly": true, + "NextQuestId": 243 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/1576_All in the Family.json b/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/1576_All in the Family.json new file mode 100644 index 000000000..e98e25de2 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/1576_All in the Family.json @@ -0,0 +1,217 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1009153, + "Position": { + "X": -39.108948, + "Y": 20, + "Z": 5.416931 + }, + "TerritoryId": 129, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Limsa Lominsa", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1006211, + "Position": { + "X": -217.48688, + "Y": 26.258211, + "Z": -361.2574 + }, + "TerritoryId": 146, + "InteractionType": "Interact", + "AetheryteShortcut": "Southern Thanalan - Little Ala Mhigo" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": -255.1732, + "Y": 27.485052, + "Z": -324.7051 + }, + "TerritoryId": 146, + "InteractionType": "WalkTo", + "Mount": true + }, + { + "DataId": 2004884, + "Position": { + "X": -64.86609, + "Y": -1.5411987, + "Z": -69.50488 + }, + "TerritoryId": 146, + "InteractionType": "Interact", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 4 + ] + }, + { + "DataId": 2004883, + "Position": { + "X": -53.635498, + "Y": -1.3886108, + "Z": -53.391357 + }, + "TerritoryId": 146, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 8 + ] + }, + { + "DataId": 2004882, + "Position": { + "X": -69.077576, + "Y": -2.1820679, + "Z": -32.913757 + }, + "TerritoryId": 146, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1006211, + "Position": { + "X": -217.48688, + "Y": 26.258211, + "Z": -361.2574 + }, + "TerritoryId": 146, + "InteractionType": "Interact", + "AetheryteShortcut": "Southern Thanalan - Little Ala Mhigo" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1006196, + "Position": { + "X": -63.98114, + "Y": -20.296238, + "Z": -5.142395 + }, + "TerritoryId": 145, + "InteractionType": "Interact", + "AetheryteShortcut": "Eastern Thanalan - Camp Drybone", + "Fly": true + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "Position": { + "X": -155.2711, + "Y": -32.952675, + "Z": 242.00226 + }, + "TerritoryId": 145, + "InteractionType": "WalkTo", + "Fly": true + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "Position": { + "X": -155.2711, + "Y": -32.952675, + "Z": 242.00226 + }, + "TerritoryId": 145, + "InteractionType": "Combat", + "EnemySpawnType": "FinishCombatIfAny", + "KillEnemyDataIds": [ + 3554, + 3555 + ] + }, + { + "DataId": 1010417, + "Position": { + "X": -154.37555, + "Y": -31.787657, + "Z": 244.7699 + }, + "StopDistance": 5, + "TerritoryId": 145, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 7, + "Steps": [ + { + "DataId": 1006196, + "Position": { + "X": -63.98114, + "Y": -20.296238, + "Z": -5.142395 + }, + "TerritoryId": 145, + "InteractionType": "Interact", + "AetheryteShortcut": "Eastern Thanalan - Camp Drybone", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1006211, + "Position": { + "X": -217.48688, + "Y": 26.258211, + "Z": -361.2574 + }, + "TerritoryId": 146, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Southern Thanalan - Little Ala Mhigo", + "NextQuestId": 1577 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/1577_Duel Personalities.json b/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/1577_Duel Personalities.json new file mode 100644 index 000000000..c13c0cf91 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/1577_Duel Personalities.json @@ -0,0 +1,197 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1009153, + "Position": { + "X": -39.108948, + "Y": 20, + "Z": 5.416931 + }, + "TerritoryId": 129, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Limsa Lominsa", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": -99.05126, + "Y": 19.82, + "Z": 88.622086 + }, + "TerritoryId": 129, + "InteractionType": "WalkTo" + }, + { + "DataId": 1010419, + "Position": { + "X": -117.84546, + "Y": 21.38377, + "Z": 83.604126 + }, + "TerritoryId": 129, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": -90.47176, + "Y": 22.179348, + "Z": 116.58494 + }, + "TerritoryId": 129, + "InteractionType": "WalkTo" + }, + { + "DataId": 1010420, + "Position": { + "X": -10.208313, + "Y": 39.51757, + "Z": -1.8463745 + }, + "TerritoryId": 128, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1003597, + "Position": { + "X": 8.194031, + "Y": 39.999973, + "Z": 17.746216 + }, + "TerritoryId": 128, + "InteractionType": "Interact", + "TargetTerritoryId": 129 + }, + { + "DataId": 1010423, + "Position": { + "X": -20.73706, + "Y": 19.999937, + "Z": 4.257263 + }, + "TerritoryId": 129, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1002433, + "Position": { + "X": -6.729248, + "Y": 20.333345, + "Z": -0.7477417 + }, + "TerritoryId": 129, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1010423, + "Position": { + "X": -20.73706, + "Y": 19.999937, + "Z": 4.257263 + }, + "TerritoryId": 129, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1010424, + "Position": { + "X": -172.59485, + "Y": 4.284276, + "Z": 168.07812 + }, + "TerritoryId": 129, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] Fishermens' Guild" + ] + } + ] + }, + { + "Sequence": 7, + "Steps": [ + { + "DataId": 1000857, + "Position": { + "X": -165.27051, + "Y": 5.2500057, + "Z": 164.29382 + }, + "StopDistance": 7, + "TerritoryId": 129, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 8, + "Steps": [ + { + "DataId": 1010424, + "Position": { + "X": -172.59485, + "Y": 4.284276, + "Z": 168.07812 + }, + "TerritoryId": 129, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1010521, + "Position": { + "X": -184.64948, + "Y": 1.9999955, + "Z": 201.28174 + }, + "TerritoryId": 129, + "InteractionType": "CompleteQuest", + "NextQuestId": 241 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/240_Blues on Emerald Avenue.json b/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/240_Blues on Emerald Avenue.json new file mode 100644 index 000000000..52319d99b --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/240_Blues on Emerald Avenue.json @@ -0,0 +1,238 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1009153, + "Position": { + "X": -39.108948, + "Y": 20, + "Z": 5.416931 + }, + "TerritoryId": 129, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Limsa Lominsa", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1001285, + "Position": { + "X": -68.77246, + "Y": 4.0411124, + "Z": -126.51257 + }, + "TerritoryId": 130, + "InteractionType": "Interact", + "AetheryteShortcut": "Ul'dah" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": 326.4774, + "Y": 62.89536, + "Z": -207.31602 + }, + "TerritoryId": 140, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Western Thanalan - Horizon", + "Fly": true + }, + { + "DataId": 2004847, + "Position": { + "X": 323.62854, + "Y": 62.974, + "Z": -207.90424 + }, + "TerritoryId": 140, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1001285, + "Position": { + "X": -68.77246, + "Y": 4.0411124, + "Z": -126.51257 + }, + "TerritoryId": 130, + "InteractionType": "Interact", + "AetheryteShortcut": "Ul'dah" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1003908, + "Position": { + "X": 137.95679, + "Y": 4.041112, + "Z": -41.09259 + }, + "TerritoryId": 131, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Sapphire Avenue Exchange" + ] + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1001679, + "Position": { + "X": 140.48975, + "Y": 4.0099983, + "Z": -59.80017 + }, + "TerritoryId": 131, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1001285, + "Position": { + "X": -68.77246, + "Y": 4.0411124, + "Z": -126.51257 + }, + "TerritoryId": 130, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Ul'dah] Sapphire Avenue Exchange", + "[Ul'dah] Aetheryte Plaza" + ] + } + ] + }, + { + "Sequence": 7, + "Steps": [ + { + "Position": { + "X": -77.95643, + "Y": -12.787907, + "Z": -45.044247 + }, + "TerritoryId": 141, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Central Thanalan - Black Brush Station", + "Fly": true, + "$": "Coffer & Coffin (outside)" + }, + { + "DataId": 1010341, + "Position": { + "X": -89.40265, + "Y": -11.35, + "Z": -40.146484 + }, + "TerritoryId": 141, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 8, + "Steps": [ + { + "DataId": 1001285, + "Position": { + "X": -68.77246, + "Y": 4.0411124, + "Z": -126.51257 + }, + "TerritoryId": 130, + "InteractionType": "Interact", + "AetheryteShortcut": "Ul'dah" + } + ] + }, + { + "Sequence": 9, + "Steps": [ + { + "DataId": 1010342, + "Position": { + "X": -189.50183, + "Y": 16.85818, + "Z": -418.8449 + }, + "TerritoryId": 141, + "InteractionType": "Interact", + "AetheryteShortcut": "Central Thanalan - Black Brush Station", + "Fly": true + } + ] + }, + { + "Sequence": 10, + "Steps": [ + { + "DataId": 1010346, + "Position": { + "X": -207.44641, + "Y": 18.499998, + "Z": 73.899414 + }, + "TerritoryId": 130, + "InteractionType": "Interact", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Thaumaturges' Guild" + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1001285, + "Position": { + "X": -68.77246, + "Y": 4.0411124, + "Z": -126.51257 + }, + "TerritoryId": 130, + "InteractionType": "CompleteQuest", + "AethernetShortcut": [ + "[Ul'dah] Thaumaturges' Guild", + "[Ul'dah] Aetheryte Plaza" + ], + "NextQuestId": 496 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/241_Lone Survivor.json b/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/241_Lone Survivor.json new file mode 100644 index 000000000..1a48a0b66 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/241_Lone Survivor.json @@ -0,0 +1,190 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1009153, + "Position": { + "X": -39.108948, + "Y": 20, + "Z": 5.416931 + }, + "TerritoryId": 129, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Fishermens' Guild", + "[Limsa Lominsa] Aetheryte Plaza" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": -371.6037, + "Y": 54.310753, + "Z": 428.55798 + }, + "TerritoryId": 137, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Eastern La Noscea - Wineport", + "Fly": true + }, + { + "DataId": 1006312, + "Position": { + "X": -369.0395, + "Y": 54.28071, + "Z": 441.24512 + }, + "TerritoryId": 137, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": -371.6037, + "Y": 54.310753, + "Z": 428.55798 + }, + "TerritoryId": 137, + "InteractionType": "WalkTo", + "Mount": true + }, + { + "Position": { + "X": -250.51706, + "Y": 48.854584, + "Z": 462.12476 + }, + "TerritoryId": 137, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 2004858, + "Position": { + "X": -252.76575, + "Y": 49.66809, + "Z": 460.71558 + }, + "TerritoryId": 137, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "Position": { + "X": -371.6037, + "Y": 54.310753, + "Z": 428.55798 + }, + "TerritoryId": 137, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 1006312, + "Position": { + "X": -369.0395, + "Y": 54.28071, + "Z": 441.24512 + }, + "TerritoryId": 137, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "Position": { + "X": -371.6037, + "Y": 54.310753, + "Z": 428.55798 + }, + "TerritoryId": 137, + "InteractionType": "WalkTo", + "Mount": true + }, + { + "Position": { + "X": -133.36604, + "Y": 70.192245, + "Z": 746.02716 + }, + "TerritoryId": 137, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "Position": { + "X": 570.5895, + "Y": 95.61268, + "Z": -497.8778 + }, + "TerritoryId": 135, + "InteractionType": "WalkTo", + "RestartNavigationIfCancelled": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": 569.87854, + "Y": 95.62417, + "Z": -498.10028 + }, + "TerritoryId": 135, + "InteractionType": "Combat", + "EnemySpawnType": "FinishCombatIfAny", + "KillEnemyDataIds": [ + 2861, + 3563, + 3562 + ] + }, + { + "DataId": 1010370, + "Position": { + "X": 569.87854, + "Y": 95.62417, + "Z": -498.10028 + }, + "TerritoryId": 135, + "InteractionType": "CompleteQuest", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_SUBPST021_00241_Q1_000_000", + "Answer": "TEXT_SUBPST021_00241_A1_000_001" + } + ], + "NextQuestId": 242 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/242_Guildmaster, Prelate, and Plot.json b/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/242_Guildmaster, Prelate, and Plot.json new file mode 100644 index 000000000..9e3f79df2 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/242_Guildmaster, Prelate, and Plot.json @@ -0,0 +1,282 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1009153, + "Position": { + "X": -39.108948, + "Y": 20, + "Z": 5.416931 + }, + "TerritoryId": 129, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Fishermens' Guild", + "[Limsa Lominsa] Aetheryte Plaza" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1001708, + "Position": { + "X": -250.3548, + "Y": 18, + "Z": 80.88806 + }, + "TerritoryId": 130, + "InteractionType": "Interact", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Thaumaturges' Guild" + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1002279, + "Position": { + "X": -196.8872, + "Y": 18.459997, + "Z": 59.952637 + }, + "TerritoryId": 130, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1001708, + "Position": { + "X": -250.3548, + "Y": 18, + "Z": 80.88806 + }, + "TerritoryId": 130, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1001711, + "Position": { + "X": -241.62665, + "Y": 18.8, + "Z": 83.32947 + }, + "TerritoryId": 130, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 1001294, + "Position": { + "X": -214.22144, + "Y": 18.5, + "Z": 72.129395 + }, + "TerritoryId": 130, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, + { + "DataId": 1001289, + "Position": { + "X": -207.90424, + "Y": 18.5, + "Z": 70.7865 + }, + "TerritoryId": 130, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 1001288, + "Position": { + "X": -151.59845, + "Y": 12, + "Z": 16.220276 + }, + "TerritoryId": 130, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 16 + ] + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1001708, + "Position": { + "X": -250.3548, + "Y": 18, + "Z": 80.88806 + }, + "TerritoryId": 130, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 2004886, + "Position": { + "X": -245.19727, + "Y": 19.150085, + "Z": 63.67578 + }, + "TerritoryId": 130, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 2004885, + "Position": { + "X": -206.50043, + "Y": 19.180542, + "Z": 49.94275 + }, + "TerritoryId": 130, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 2004887, + "Position": { + "X": -194.11005, + "Y": 19.150085, + "Z": 91.325195 + }, + "TerritoryId": 130, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, + { + "DataId": 2004888, + "Position": { + "X": -243.64087, + "Y": 20.065613, + "Z": 104.41736 + }, + "TerritoryId": 130, + "InteractionType": "Interact", + "IgnoreDistanceToObject": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 16 + ] + } + ] + }, + { + "Sequence": 7, + "Steps": [ + { + "DataId": 1001708, + "Position": { + "X": -250.3548, + "Y": 18, + "Z": 80.88806 + }, + "TerritoryId": 130, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 2004889, + "Position": { + "X": -136.55304, + "Y": 11.9782715, + "Z": 23.5141 + }, + "TerritoryId": 130, + "InteractionType": "CompleteQuest", + "NextQuestId": 1574 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/243_A Qiqirn Always Pays His Debts.json b/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/243_A Qiqirn Always Pays His Debts.json new file mode 100644 index 000000000..d7d94ea48 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/243_A Qiqirn Always Pays His Debts.json @@ -0,0 +1,194 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1009153, + "Position": { + "X": -39.108948, + "Y": 20, + "Z": 5.416931 + }, + "TerritoryId": 129, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Limsa Lominsa", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1001787, + "Position": { + "X": -62.119568, + "Y": 18.000334, + "Z": 9.414734 + }, + "TerritoryId": 129, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": -339.63614, + "Y": -2.097362, + "Z": 142.24135 + }, + "TerritoryId": 139, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Upper La Noscea - Camp Bronze Lake", + "Fly": true + }, + { + "DataId": 1005249, + "Position": { + "X": -337.30072, + "Y": -2.1811728, + "Z": 141.31372 + }, + "TerritoryId": 139, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1003586, + "Position": { + "X": -342.12262, + "Y": -1.0249884, + "Z": 111.46704 + }, + "TerritoryId": 139, + "InteractionType": "Interact", + "TargetTerritoryId": 139 + }, + { + "DataId": 1010434, + "Position": { + "X": 241.74866, + "Y": -0.96623325, + "Z": 257.12976 + }, + "TerritoryId": 139, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1010435, + "Position": { + "X": 340.04736, + "Y": -2.5074248, + "Z": 104.600464 + }, + "TerritoryId": 139, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1010435, + "Position": { + "X": 340.04736, + "Y": -2.5074248, + "Z": 104.600464 + }, + "TerritoryId": 139, + "InteractionType": "Combat", + "EnemySpawnType": "FinishCombatIfAny", + "KillEnemyDataIds": [ + 3559, + 3560 + ] + }, + { + "DataId": 1010437, + "Position": { + "X": 271.59534, + "Y": 25.732939, + "Z": -100.35864 + }, + "TerritoryId": 139, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "Position": { + "X": -339.63614, + "Y": -2.097362, + "Z": 142.24135 + }, + "TerritoryId": 139, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 1005249, + "Position": { + "X": -337.30072, + "Y": -2.1811728, + "Z": 141.31372 + }, + "TerritoryId": 139, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1003586, + "Position": { + "X": -342.12262, + "Y": -1.0249884, + "Z": 111.46704 + }, + "TerritoryId": 139, + "InteractionType": "Interact", + "TargetTerritoryId": 139 + }, + { + "DataId": 1010438, + "Position": { + "X": 275.28796, + "Y": -0.93098116, + "Z": 231.61658 + }, + "TerritoryId": 139, + "InteractionType": "CompleteQuest", + "Fly": true, + "NextQuestId": 244 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/244_The Hazy Professor.json b/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/244_The Hazy Professor.json new file mode 100644 index 000000000..2f8cf96e7 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/244_The Hazy Professor.json @@ -0,0 +1,230 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1009153, + "Position": { + "X": -39.108948, + "Y": 20, + "Z": 5.416931 + }, + "TerritoryId": 129, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Limsa Lominsa", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1006493, + "Position": { + "X": -437.67456, + "Y": -55.694504, + "Z": 100.87732 + }, + "TerritoryId": 145, + "InteractionType": "Interact", + "AetheryteShortcut": "Eastern Thanalan - Camp Drybone" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2004864, + "Position": { + "X": -381.70447, + "Y": -58.42682, + "Z": 167.74243 + }, + "TerritoryId": 145, + "InteractionType": "UseItem", + "ItemId": 2001487 + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "Position": { + "X": -393.1081, + "Y": -57.326912, + "Z": 155.15263 + }, + "TerritoryId": 145, + "InteractionType": "WalkTo", + "Mount": true + }, + { + "DataId": 2004877, + "Position": { + "X": -299.48883, + "Y": -40.665344, + "Z": 7.095398 + }, + "TerritoryId": 145, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "Position": { + "X": -422.0606, + "Y": -55.802967, + "Z": 107.502235 + }, + "TerritoryId": 145, + "InteractionType": "WalkTo", + "Fly": true + }, + { + + "DataId": 1006493, + "Position": { + "X": -437.67456, + "Y": -55.694504, + "Z": 100.87732 + }, + "TerritoryId": 145, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 2004866, + "Position": { + "X": -382.22327, + "Y": -58.42682, + "Z": 168.65796 + }, + "TerritoryId": 145, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "Position": { + "X": -393.1081, + "Y": -57.326912, + "Z": 155.15263 + }, + "TerritoryId": 145, + "InteractionType": "WalkTo", + "Mount": true + }, + { + "Position": { + "X": -1.83288, + "Y": -17.544205, + "Z": 23.35826 + }, + "TerritoryId": 145, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 1006495, + "Position": { + "X": -2.2736206, + "Y": -17.544205, + "Z": 24.734863 + }, + "TerritoryId": 145, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 7, + "Steps": [ + { + "Position": { + "X": -1.4535733, + "Y": -8.0592985, + "Z": 1.7329537 + }, + "TerritoryId": 145, + "InteractionType": "WalkTo", + "Mount": true + }, + { + "Position": { + "X": 435.9292, + "Y": 9.87471, + "Z": 143.03693 + }, + "TerritoryId": 145, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 2004868, + "Position": { + "X": 438.6206, + "Y": 12.436096, + "Z": 137.6211 + }, + "TerritoryId": 145, + "InteractionType": "UseItem", + "ItemId": 2001489 + } + ] + }, + { + "Sequence": 8, + "Steps": [ + { + "DataId": 2004869, + "Position": { + "X": 438.6206, + "Y": 12.436096, + "Z": 137.6211 + }, + "TerritoryId": 145, + "InteractionType": "UseItem", + "ItemId": 2001488 + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1010377, + "Position": { + "X": -382.83362, + "Y": -59.300003, + "Z": 169.75659 + }, + "TerritoryId": 145, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Eastern Thanalan - Camp Drybone", + "NextQuestId": 240 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/362_The Little Postmoogle That Could.json b/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/362_The Little Postmoogle That Could.json new file mode 100644 index 000000000..22a26f689 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/362_The Little Postmoogle That Could.json @@ -0,0 +1,217 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1009153, + "Position": { + "X": -39.108948, + "Y": 20, + "Z": 5.416931 + }, + "TerritoryId": 129, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Limsa Lominsa", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": -139.04318, + "Y": 8.522301, + "Z": 280.0128 + }, + "TerritoryId": 153, + "InteractionType": "WalkTo", + "AetheryteShortcut": "South Shroud - Camp Tranquil", + "Fly": true + }, + { + "DataId": 1006751, + "Position": { + "X": -139.45221, + "Y": 8.712891, + "Z": 281.69678 + }, + "TerritoryId": 153, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1010813, + "Position": { + "X": 218.92114, + "Y": 10.293846, + "Z": -75.12018 + }, + "TerritoryId": 153, + "InteractionType": "Emote", + "Emote": "rally", + "AetheryteShortcut": "South Shroud - Quarrymill" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1010814, + "Position": { + "X": -47.837036, + "Y": 3.0947418, + "Z": -44.663208 + }, + "TerritoryId": 153, + "InteractionType": "Emote", + "Emote": "cheer", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "Position": { + "X": -166.19086, + "Y": 8.399985, + "Z": -64.10584 + }, + "TerritoryId": 153, + "InteractionType": "WalkTo", + "Fly": true, + "$": "Buscarron SE steps" + }, + { + "DataId": 1010815, + "Position": { + "X": -168.26129, + "Y": 9.869229, + "Z": -79.54535 + }, + "TerritoryId": 153, + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_SUBPST030_00362_Q1_000_000", + "Answer": "TEXT_SUBPST030_00362_A1_000_001" + } + ] + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1010816, + "Position": { + "X": 22.079773, + "Y": -19.000006, + "Z": 106.1875 + }, + "TerritoryId": 132, + "InteractionType": "Interact", + "AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Airship Landing" + ] + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1000106, + "Position": { + "X": 29.007324, + "Y": -19.000002, + "Z": 105.485596 + }, + "TerritoryId": 132, + "InteractionType": "Interact", + "TargetTerritoryId": 128 + }, + { + "DataId": 1010818, + "Position": { + "X": -13.01593, + "Y": 91.5, + "Z": -18.234558 + }, + "TerritoryId": 128, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 7, + "Steps": [ + { + "DataId": 1003583, + "Position": { + "X": -7.248047, + "Y": 91.49999, + "Z": -16.128845 + }, + "StopDistance": 7, + "TerritoryId": 128, + "InteractionType": "Interact", + "TargetTerritoryId": 128 + }, + { + "DataId": 1010819, + "Position": { + "X": 17.013733, + "Y": 40.216007, + "Z": -3.8605957 + }, + "TerritoryId": 128, + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_SUBPST030_00362_Q2_000_000", + "Answer": "TEXT_SUBPST030_00362_A2_000_001" + } + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1010822, + "Position": { + "X": -209.88788, + "Y": 54.829185, + "Z": -196.03265 + }, + "TerritoryId": 152, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "East Shroud - Hawthorne Hut", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/496_Better Left Unfound.json b/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/496_Better Left Unfound.json new file mode 100644 index 000000000..4cca30c37 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Side Stories/Delivery Moogle Quests/496_Better Left Unfound.json @@ -0,0 +1,116 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1009153, + "Position": { + "X": -39.108948, + "Y": 20, + "Z": 5.416931 + }, + "TerritoryId": 129, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Limsa Lominsa", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1006279, + "Position": { + "X": -231.4336, + "Y": 21.512743, + "Z": 339.49792 + }, + "TerritoryId": 153, + "InteractionType": "Interact", + "AetheryteShortcut": "South Shroud - Camp Tranquil" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1011650, + "Position": { + "X": 557.6714, + "Y": 20.721313, + "Z": 454.24573 + }, + "TerritoryId": 137, + "InteractionType": "Interact", + "AetheryteShortcut": "Eastern La Noscea - Costa Del Sol" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1011650, + "Position": { + "X": 557.6714, + "Y": 20.721313, + "Z": 454.24573 + }, + "TerritoryId": 137, + "InteractionType": "Emote", + "Emote": "soothe" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1011651, + "Position": { + "X": 8.804443, + "Y": 71.18964, + "Z": -15.182739 + }, + "TerritoryId": 137, + "InteractionType": "Interact", + "AetheryteShortcut": "Eastern La Noscea - Wineport", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_SUBPST026_00496_Q1_000_000", + "Answer": "TEXT_SUBPST026_00496_A1_000_001" + } + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1011652, + "Position": { + "X": 532.9823, + "Y": 44.02837, + "Z": 540.3982 + }, + "TerritoryId": 137, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Eastern La Noscea - Costa Del Sol", + "Fly": true, + "NextQuestId": 362 + } + ] + } + ] +} diff --git a/Questionable/Functions/QuestFunctions.cs b/Questionable/Functions/QuestFunctions.cs index d44f1e52b..ace8ed3cf 100644 --- a/Questionable/Functions/QuestFunctions.cs +++ b/Questionable/Functions/QuestFunctions.cs @@ -561,9 +561,17 @@ internal sealed unsafe class QuestFunctions if (questInfo.AlliedSociety != EAlliedSociety.None && questInfo.IsRepeatable) return !IsDailyAlliedSocietyQuestAndAvailableToday(questId); - if (questInfo.MoogleDeliveryLevel > 0 && - questInfo.MoogleDeliveryLevel > PlayerState.Instance()->DeliveryLevel) - return true; + if (questInfo.IsMoogleDeliveryQuest) + { + byte currentDeliveryLevel = PlayerState.Instance()->DeliveryLevel; + if (extraCompletedQuest != null && + _questData.TryGetQuestInfo(extraCompletedQuest, out IQuestInfo? extraQuestInfo) && + extraQuestInfo is QuestInfo { IsMoogleDeliveryQuest: true }) + currentDeliveryLevel++; + + if (questInfo.MoogleDeliveryLevel > currentDeliveryLevel) + return true; + } return !HasCompletedPreviousQuests(questInfo, extraCompletedQuest) || !HasCompletedPreviousInstances(questInfo); } diff --git a/Questionable/Model/QuestInfo.cs b/Questionable/Model/QuestInfo.cs index 03d1088c2..e34c16d7a 100644 --- a/Questionable/Model/QuestInfo.cs +++ b/Questionable/Model/QuestInfo.cs @@ -104,6 +104,7 @@ internal sealed class QuestInfo : IQuestInfo public uint NewGamePlusChapter { get; } public byte StartingCity { get; set; } public byte MoogleDeliveryLevel { get; } + public bool IsMoogleDeliveryQuest => JournalGenre == 87; public EExpansionVersion Expansion { get; } public void AddPreviousQuest(PreviousQuestInfo questId) -- 2.45.2 From 1578c5d197c9fd0a86815e4d45aa8f0b4a107c73 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Fri, 27 Dec 2024 17:48:14 +0100 Subject: [PATCH 379/448] Add Wrath Combo as combat module --- Questionable/Configuration.cs | 5 +- Questionable/Controller/CombatController.cs | 64 ++++++++- .../Controller/CombatModules/BossModModule.cs | 46 ------- .../Controller/CombatModules/ICombatModule.cs | 2 - .../Controller/CombatModules/ItemUseModule.cs | 2 - .../CombatModules/Mount128Module.cs | 12 +- .../CombatModules/Mount147Module.cs | 11 +- .../RotationSolverRebornModule.cs | 46 +------ .../CombatModules/WrathComboModule.cs | 123 ++++++++++++++++++ Questionable/QuestionablePlugin.cs | 2 +- Questionable/Windows/ConfigWindow.cs | 2 +- Questionable/Windows/OneTimeSetupWindow.cs | 9 ++ 12 files changed, 203 insertions(+), 121 deletions(-) create mode 100644 Questionable/Controller/CombatModules/WrathComboModule.cs diff --git a/Questionable/Configuration.cs b/Questionable/Configuration.cs index ce4c96165..b4eb5a5b8 100644 --- a/Questionable/Configuration.cs +++ b/Questionable/Configuration.cs @@ -7,7 +7,7 @@ namespace Questionable; internal sealed class Configuration : IPluginConfiguration { - public const int PluginSetupVersion = 3; + public const int PluginSetupVersion = 4; public int Version { get; set; } = 1; public int PluginSetupCompleteVersion { get; set; } @@ -23,7 +23,7 @@ internal sealed class Configuration : IPluginConfiguration internal sealed class GeneralConfiguration { - public ECombatModule CombatModule { get; set; } = ECombatModule.BossMod; + public ECombatModule CombatModule { get; set; } = ECombatModule.None; public uint MountId { get; set; } = 71; public GrandCompany GrandCompany { get; set; } = GrandCompany.None; public bool HideInAllInstances { get; set; } = true; @@ -51,6 +51,7 @@ internal sealed class Configuration : IPluginConfiguration { None, BossMod, + WrathCombo, RotationSolverReborn, } } diff --git a/Questionable/Controller/CombatController.cs b/Questionable/Controller/CombatController.cs index d7ca7fde7..f44c4934d 100644 --- a/Questionable/Controller/CombatController.cs +++ b/Questionable/Controller/CombatController.cs @@ -13,8 +13,10 @@ using FFXIVClientStructs.FFXIV.Client.Game.UI; using FFXIVClientStructs.FFXIV.Common.Math; using Microsoft.Extensions.Logging; using Questionable.Controller.CombatModules; +using Questionable.Controller.Steps; using Questionable.Controller.Utils; using Questionable.Functions; +using Questionable.Model; using Questionable.Model.Questing; namespace Questionable.Controller; @@ -75,6 +77,7 @@ internal sealed class CombatController : IDisposable { Module = combatModule, Data = combatData, + LastDistanceCheck = DateTime.Now, }; _wasInCombat = combatData.SpawnType is EEnemySpawnType.QuestInterruption or EEnemySpawnType.FinishCombatIfAny; return true; @@ -129,7 +132,18 @@ internal sealed class CombatController : IDisposable if (nextTarget != null && nextTarget.Equals(target)) { - _currentFight.Module.Update(target); + if (!IsMovingOrShouldMove(target)) + { + try + { + _currentFight.Module.Update(target); + } + catch (TaskException e) + { + _logger.LogWarning(e, "Combat was interrupted, stopping: {Exception}", e.Message); + SetTarget(null); + } + } } else if (nextTarget != null) { @@ -323,14 +337,57 @@ internal sealed class CombatController : IDisposable { _logger.LogInformation("Moving to target, distance: {Distance:N2}", Vector3.Distance(_clientState.LocalPlayer!.Position, target.Position)); - _currentFight!.Module.MoveToTarget(target); + MoveToTarget(target); } else { _logger.LogInformation("Setting target to {TargetName} ({TargetId:X8})", target.Name.ToString(), target.GameObjectId); _targetManager.Target = target; - _currentFight!.Module.MoveToTarget(target); + MoveToTarget(target); + } + } + + private bool IsMovingOrShouldMove(IGameObject gameObject) + { + if (_movementController.IsPathfinding || _movementController.IsPathRunning) + return true; + + if (DateTime.Now > _currentFight!.LastDistanceCheck.AddSeconds(10)) + { + MoveToTarget(gameObject); + _currentFight!.LastDistanceCheck = DateTime.Now; + return true; + } + + return false; + } + + private void MoveToTarget(IGameObject gameObject) + { + var player = _clientState.LocalPlayer; + if (player == null) + return; // uh oh + + float hitboxOffset = player.HitboxRadius + gameObject.HitboxRadius; + float actualDistance = Vector3.Distance(player.Position, gameObject.Position); + float maxDistance = player.ClassJob.ValueNullable?.Role is 3 or 4 ? 20f : 2.9f; + if (actualDistance - hitboxOffset >= maxDistance) + { + if (actualDistance - hitboxOffset <= 5) + { + _logger.LogInformation("Moving to {TargetName} ({DataId}) to attack", gameObject.Name, + gameObject.DataId); + _movementController.NavigateTo(EMovementType.Combat, null, [gameObject.Position], false, false, + maxDistance + hitboxOffset - 0.25f, true); + } + else + { + _logger.LogInformation("Moving to {TargetName} ({DataId}) to attack (with navmesh)", gameObject.Name, + gameObject.DataId); + _movementController.NavigateTo(EMovementType.Combat, null, gameObject.Position, false, false, + maxDistance + hitboxOffset - 0.25f, true); + } } } @@ -359,6 +416,7 @@ internal sealed class CombatController : IDisposable { public required ICombatModule Module { get; init; } public required CombatData Data { get; init; } + public required DateTime LastDistanceCheck { get; set; } } public sealed class CombatData diff --git a/Questionable/Controller/CombatModules/BossModModule.cs b/Questionable/Controller/CombatModules/BossModModule.cs index f27a6f810..ee25967f4 100644 --- a/Questionable/Controller/CombatModules/BossModModule.cs +++ b/Questionable/Controller/CombatModules/BossModModule.cs @@ -16,8 +16,6 @@ internal sealed class BossModModule : ICombatModule, IDisposable { private const string Name = "BossMod"; private readonly ILogger _logger; - private readonly MovementController _movementController; - private readonly IClientState _clientState; private readonly Configuration _configuration; private readonly ICallGateSubscriber _getPreset; private readonly ICallGateSubscriber _createPreset; @@ -25,18 +23,13 @@ internal sealed class BossModModule : ICombatModule, IDisposable private readonly ICallGateSubscriber _clearPreset; private static Stream Preset => typeof(BossModModule).Assembly.GetManifestResourceStream("Questionable.Controller.CombatModules.BossModPreset")!; - private DateTime _lastDistanceCheck = DateTime.MinValue; public BossModModule( ILogger logger, - MovementController movementController, - IClientState clientState, IDalamudPluginInterface pluginInterface, Configuration configuration) { _logger = logger; - _movementController = movementController; - _clientState = clientState; _configuration = configuration; _getPreset = pluginInterface.GetIpcSubscriber($"{Name}.Presets.Get"); @@ -70,7 +63,6 @@ internal sealed class BossModModule : ICombatModule, IDisposable _logger.LogInformation("Loading Questionable BossMod Preset: {LoadedState}", _createPreset.InvokeFunc(reader.ReadToEnd(), true)); } _setPreset.InvokeFunc("Questionable"); - _lastDistanceCheck = DateTime.Now; return true; } catch (IpcError e) @@ -94,46 +86,8 @@ internal sealed class BossModModule : ICombatModule, IDisposable } } - public void MoveToTarget(IGameObject gameObject) - { - var player = _clientState.LocalPlayer; - if (player == null) - return; // uh oh - - float hitboxOffset = player.HitboxRadius + gameObject.HitboxRadius; - float actualDistance = Vector3.Distance(player.Position, gameObject.Position); - float maxDistance = player.ClassJob.ValueNullable?.Role is 3 or 4 ? 20f : 2.9f; - if (actualDistance - hitboxOffset >= maxDistance) - { - if (actualDistance - hitboxOffset <= 5) - { - _logger.LogInformation("Moving to {TargetName} ({DataId}) to attack", gameObject.Name, - gameObject.DataId); - _movementController.NavigateTo(EMovementType.Combat, null, [gameObject.Position], false, false, - maxDistance + hitboxOffset - 0.25f, true); - } - else - { - _logger.LogInformation("Moving to {TargetName} ({DataId}) to attack (with navmesh)", gameObject.Name, - gameObject.DataId); - _movementController.NavigateTo(EMovementType.Combat, null, gameObject.Position, false, false, - maxDistance + hitboxOffset - 0.25f, true); - } - } - - _lastDistanceCheck = DateTime.Now; - } - public void Update(IGameObject gameObject) { - if (_movementController.IsPathfinding || _movementController.IsPathRunning) - return; - - if (DateTime.Now > _lastDistanceCheck.AddSeconds(10)) - { - MoveToTarget(gameObject); - _lastDistanceCheck = DateTime.Now; - } } public bool CanAttack(IBattleNpc target) => true; diff --git a/Questionable/Controller/CombatModules/ICombatModule.cs b/Questionable/Controller/CombatModules/ICombatModule.cs index 06fe4ae68..2a295ae03 100644 --- a/Questionable/Controller/CombatModules/ICombatModule.cs +++ b/Questionable/Controller/CombatModules/ICombatModule.cs @@ -12,7 +12,5 @@ internal interface ICombatModule void Update(IGameObject nextTarget); - void MoveToTarget(IGameObject nextTarget); - bool CanAttack(IBattleNpc target); } diff --git a/Questionable/Controller/CombatModules/ItemUseModule.cs b/Questionable/Controller/CombatModules/ItemUseModule.cs index 65f829a17..26a92ff32 100644 --- a/Questionable/Controller/CombatModules/ItemUseModule.cs +++ b/Questionable/Controller/CombatModules/ItemUseModule.cs @@ -152,7 +152,5 @@ internal sealed class ItemUseModule : ICombatModule return false; } - public void MoveToTarget(IGameObject nextTarget) => _delegate!.MoveToTarget(nextTarget); - public bool CanAttack(IBattleNpc target) => _delegate!.CanAttack(target); } diff --git a/Questionable/Controller/CombatModules/Mount128Module.cs b/Questionable/Controller/CombatModules/Mount128Module.cs index e665163a0..9f8859639 100644 --- a/Questionable/Controller/CombatModules/Mount128Module.cs +++ b/Questionable/Controller/CombatModules/Mount128Module.cs @@ -15,13 +15,10 @@ internal sealed class Mount128Module : ICombatModule public const ushort MountId = 128; private readonly EAction[] _actions = [EAction.MagitekThunder, EAction.MagitekPulse]; - private readonly MovementController _movementController; private readonly GameFunctions _gameFunctions; - - public Mount128Module(MovementController movementController, GameFunctions gameFunctions) + public Mount128Module(GameFunctions gameFunctions) { - _movementController = movementController; _gameFunctions = gameFunctions; } @@ -33,9 +30,6 @@ internal sealed class Mount128Module : ICombatModule public void Update(IGameObject gameObject) { - if (_movementController.IsPathfinding || _movementController.IsPathRunning) - return; - foreach (EAction action in _actions) { if (_gameFunctions.UseAction(gameObject, action, checkCanUse: false)) @@ -43,9 +37,5 @@ internal sealed class Mount128Module : ICombatModule } } - public void MoveToTarget(IGameObject gameObject) - { - } - public bool CanAttack(IBattleNpc target) => target.DataId is 7504 or 7505 or 14107; } diff --git a/Questionable/Controller/CombatModules/Mount147Module.cs b/Questionable/Controller/CombatModules/Mount147Module.cs index f0c43176d..4d8202fcc 100644 --- a/Questionable/Controller/CombatModules/Mount147Module.cs +++ b/Questionable/Controller/CombatModules/Mount147Module.cs @@ -15,13 +15,11 @@ internal sealed class Mount147Module : ICombatModule public const ushort MountId = 147; private readonly EAction[] _actions = [EAction.Trample]; - private readonly MovementController _movementController; private readonly GameFunctions _gameFunctions; - public Mount147Module(MovementController movementController, GameFunctions gameFunctions) + public Mount147Module(GameFunctions gameFunctions) { - _movementController = movementController; _gameFunctions = gameFunctions; } @@ -33,9 +31,6 @@ internal sealed class Mount147Module : ICombatModule public void Update(IGameObject gameObject) { - if (_movementController.IsPathfinding || _movementController.IsPathRunning) - return; - foreach (EAction action in _actions) { if (_gameFunctions.UseAction(gameObject, action, checkCanUse: false)) @@ -43,9 +38,5 @@ internal sealed class Mount147Module : ICombatModule } } - public void MoveToTarget(IGameObject gameObject) - { - } - public bool CanAttack(IBattleNpc target) => target.DataId is 8593; } diff --git a/Questionable/Controller/CombatModules/RotationSolverRebornModule.cs b/Questionable/Controller/CombatModules/RotationSolverRebornModule.cs index d5f13f4ef..f89ad334d 100644 --- a/Questionable/Controller/CombatModules/RotationSolverRebornModule.cs +++ b/Questionable/Controller/CombatModules/RotationSolverRebornModule.cs @@ -14,19 +14,15 @@ namespace Questionable.Controller.CombatModules; internal sealed class RotationSolverRebornModule : ICombatModule, IDisposable { private readonly ILogger _logger; - private readonly MovementController _movementController; private readonly IClientState _clientState; private readonly Configuration _configuration; private readonly ICallGateSubscriber _test; private readonly ICallGateSubscriber _changeOperationMode; - private DateTime _lastDistanceCheck = DateTime.MinValue; - public RotationSolverRebornModule(ILogger logger, MovementController movementController, IClientState clientState, IDalamudPluginInterface pluginInterface, Configuration configuration) { _logger = logger; - _movementController = movementController; _clientState = clientState; _configuration = configuration; _test = pluginInterface.GetIpcSubscriber("RotationSolverReborn.Test"); @@ -55,7 +51,6 @@ internal sealed class RotationSolverRebornModule : ICombatModule, IDisposable try { _changeOperationMode.InvokeAction(StateCommandType.Manual); - _lastDistanceCheck = DateTime.Now; return true; } catch (IpcError e) @@ -67,6 +62,9 @@ internal sealed class RotationSolverRebornModule : ICombatModule, IDisposable public bool Stop() { + if (!_changeOperationMode.HasAction) + return true; + try { _changeOperationMode.InvokeAction(StateCommandType.Off); @@ -79,46 +77,8 @@ internal sealed class RotationSolverRebornModule : ICombatModule, IDisposable } } - public void MoveToTarget(IGameObject gameObject) - { - var player = _clientState.LocalPlayer; - if (player == null) - return; // uh oh - - float hitboxOffset = player.HitboxRadius + gameObject.HitboxRadius; - float actualDistance = Vector3.Distance(player.Position, gameObject.Position); - float maxDistance = player.ClassJob.ValueNullable?.Role is 3 or 4 ? 20f : 2.9f; - if (actualDistance - hitboxOffset >= maxDistance) - { - if (actualDistance - hitboxOffset <= 5) - { - _logger.LogInformation("Moving to {TargetName} ({DataId}) to attack", gameObject.Name, - gameObject.DataId); - _movementController.NavigateTo(EMovementType.Combat, null, [gameObject.Position], false, false, - maxDistance + hitboxOffset - 0.25f, true); - } - else - { - _logger.LogInformation("Moving to {TargetName} ({DataId}) to attack (with navmesh)", gameObject.Name, - gameObject.DataId); - _movementController.NavigateTo(EMovementType.Combat, null, gameObject.Position, false, false, - maxDistance + hitboxOffset - 0.25f, true); - } - } - - _lastDistanceCheck = DateTime.Now; - } - public void Update(IGameObject gameObject) { - if (_movementController.IsPathfinding || _movementController.IsPathRunning) - return; - - if (DateTime.Now > _lastDistanceCheck.AddSeconds(10)) - { - MoveToTarget(gameObject); - _lastDistanceCheck = DateTime.Now; - } } public bool CanAttack(IBattleNpc target) => true; diff --git a/Questionable/Controller/CombatModules/WrathComboModule.cs b/Questionable/Controller/CombatModules/WrathComboModule.cs new file mode 100644 index 000000000..d9563683a --- /dev/null +++ b/Questionable/Controller/CombatModules/WrathComboModule.cs @@ -0,0 +1,123 @@ +using System; +using Dalamud.Game.ClientState.Objects.Types; +using Dalamud.Plugin; +using Dalamud.Plugin.Ipc; +using Dalamud.Plugin.Ipc.Exceptions; +using Microsoft.Extensions.Logging; +using Questionable.Controller.Steps; + +namespace Questionable.Controller.CombatModules; + +internal sealed class WrathComboModule : ICombatModule, IDisposable +{ + private const string CallbackPrefix = "Questionable$Wrath"; + + private readonly ILogger _logger; + private readonly Configuration _configuration; + private readonly ICallGateSubscriber _test; + private readonly ICallGateSubscriber _registerForLeaseWithCallback; + private readonly ICallGateSubscriber _releaseControl; + private readonly ICallGateSubscriber _setAutoRotationState; + private readonly ICallGateSubscriber _setCurrentJobAutoRotationReady; + private readonly ICallGateProvider _callback; + + private Guid? _lease; + + public WrathComboModule(ILogger logger, Configuration configuration, + IDalamudPluginInterface pluginInterface) + { + _logger = logger; + _configuration = configuration; + _test = pluginInterface.GetIpcSubscriber("WrathCombo.Test"); + _registerForLeaseWithCallback = + pluginInterface.GetIpcSubscriber("WrathCombo.RegisterForLeaseWithCallback"); + _releaseControl = pluginInterface.GetIpcSubscriber("WrathCombo.ReleaseControl"); + _setAutoRotationState = pluginInterface.GetIpcSubscriber("WrathCombo.SetAutoRotationState"); + _setCurrentJobAutoRotationReady = + pluginInterface.GetIpcSubscriber("WrathCombo.SetCurrentJobAutoRotationReady"); + + _callback = pluginInterface.GetIpcProvider($"{CallbackPrefix}.WrathComboCallback"); + _callback.RegisterAction(Callback); + } + + public bool CanHandleFight(CombatController.CombatData combatData) + { + if (_configuration.General.CombatModule != Configuration.ECombatModule.WrathCombo) + return false; + + try + { + _test.InvokeAction(); + return true; + } + catch (IpcError) + { + return false; + } + } + + public bool Start(CombatController.CombatData combatData) + { + try + { + _lease = _registerForLeaseWithCallback.InvokeFunc("Questionable", "Questionable", CallbackPrefix); + if (_lease != null) + { + _logger.LogDebug("Wrath combo lease: {Lease}", _lease.Value); + + _setAutoRotationState.InvokeAction(_lease.Value, true); + _setCurrentJobAutoRotationReady.InvokeAction(_lease.Value); + return true; + } + else + { + _logger.LogError("Wrath combo did not return a lease"); + return false; + } + } + catch (IpcError e) + { + _logger.LogError(e, "Unable to use wrath combo for combat"); + return false; + } + } + + public bool Stop() + { + try + { + if (_lease != null) + { + _releaseControl.InvokeAction(_lease.Value); + _lease = null; + } + + return true; + } + catch (IpcError e) + { + _logger.LogWarning(e, "Could not turn off wrath combo"); + return false; + } + } + + public void Update(IGameObject nextTarget) + { + if (_lease == null) + throw new TaskException("Wrath Combo Lease is cancelled"); + } + + public bool CanAttack(IBattleNpc target) => true; + + private void Callback(int reason, string additionalInfo) + { + _logger.LogWarning("WrathCombo callback: {Reason} ({Info})", reason, additionalInfo); + _lease = null; + } + + public void Dispose() + { + Stop(); + _callback.UnregisterAction(); + } +} diff --git a/Questionable/QuestionablePlugin.cs b/Questionable/QuestionablePlugin.cs index 6c89d5ad5..5964eb45a 100644 --- a/Questionable/QuestionablePlugin.cs +++ b/Questionable/QuestionablePlugin.cs @@ -19,7 +19,6 @@ using Questionable.Controller.Steps.Common; using Questionable.Controller.Steps.Gathering; using Questionable.Controller.Steps.Interactions; using Questionable.Controller.Steps.Leves; -using Questionable.Controller.Utils; using Questionable.Data; using Questionable.External; using Questionable.Functions; @@ -249,6 +248,7 @@ public sealed class QuestionablePlugin : IDalamudPlugin serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); + serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); } diff --git a/Questionable/Windows/ConfigWindow.cs b/Questionable/Windows/ConfigWindow.cs index 5184761c5..f44140846 100644 --- a/Questionable/Windows/ConfigWindow.cs +++ b/Questionable/Windows/ConfigWindow.cs @@ -29,7 +29,7 @@ internal sealed class ConfigWindow : LWindow, IPersistableWindowConfig private readonly uint[] _mountIds; private readonly string[] _mountNames; - private readonly string[] _combatModuleNames = ["None", "Boss Mod (VBM)", "Rotation Solver Reborn"]; + private readonly string[] _combatModuleNames = ["None", "Boss Mod (VBM)", "Wrath Combo", "Rotation Solver Reborn"]; private readonly string[] _grandCompanyNames = ["None (manually pick quest)", "Maelstrom", "Twin Adder", "Immortal Flames"]; diff --git a/Questionable/Windows/OneTimeSetupWindow.cs b/Questionable/Windows/OneTimeSetupWindow.cs index 3ba35a096..3db85089d 100644 --- a/Questionable/Windows/OneTimeSetupWindow.cs +++ b/Questionable/Windows/OneTimeSetupWindow.cs @@ -54,6 +54,14 @@ internal sealed class OneTimeSetupWindow : LWindow new Uri("https://github.com/awgil/ffxiv_bossmod"), new Uri("https://puni.sh/api/repository/veyn")) }, + { + Configuration.ECombatModule.WrathCombo, + new PluginInfo("Wrath Combo", + "WrathCombo", + string.Empty, + new Uri("https://github.com/PunishXIV/WrathCombo"), + new Uri("https://puni.sh/api/plugins")) + }, { Configuration.ECombatModule.RotationSolverReborn, new("Rotation Solver Reborn", @@ -143,6 +151,7 @@ internal sealed class OneTimeSetupWindow : LWindow } DrawCombatPlugin(Configuration.ECombatModule.BossMod, checklistPadding); + DrawCombatPlugin(Configuration.ECombatModule.WrathCombo, checklistPadding); DrawCombatPlugin(Configuration.ECombatModule.RotationSolverReborn, checklistPadding); } -- 2.45.2 From cd2d85269baabb9ab609b631f66610c427828984 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Fri, 27 Dec 2024 17:48:26 +0100 Subject: [PATCH 380/448] Change log level for automaton IPC --- Questionable/External/AutomatonIpc.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Questionable/External/AutomatonIpc.cs b/Questionable/External/AutomatonIpc.cs index 69e946783..04bbfac79 100644 --- a/Questionable/External/AutomatonIpc.cs +++ b/Questionable/External/AutomatonIpc.cs @@ -15,7 +15,7 @@ internal sealed class AutomatonIpc { _logger = logger; _isTweakEnabled = pluginInterface.GetIpcSubscriber("Automaton.IsTweakEnabled"); - logger.LogWarning("Automaton x {IsTweakEnabled}", IsAutoSnipeEnabled); + logger.LogInformation("Automaton auto-snipe enabled: {IsTweakEnabled}", IsAutoSnipeEnabled); } public bool IsAutoSnipeEnabled -- 2.45.2 From 5f8c16563e2ad214587b0d2b9872d996d03c4249 Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Sat, 28 Dec 2024 01:22:32 +0800 Subject: [PATCH 381/448] Added new daily quests: - A Stable's Condition - Beat of the Drum - Cannot Say Neigh Also added new gathering points. --- .../The Azim Steppe/544_Onsal Hakair_MIN.json | 61 ++++++++ .../The Azim Steppe/548_Onsal Hakair_BTN.json | 61 ++++++++ .../Dailies/3116_A Stable's Condition.json | 134 ++++++++++++++++++ .../Namazu/Dailies/3117_Beat of the Drum.json | 134 ++++++++++++++++++ .../Namazu/Dailies/3118_Cannot Say Neigh.json | 109 ++++++++++++++ 5 files changed, 499 insertions(+) create mode 100644 GatheringPaths/4.x - Stormblood/The Azim Steppe/544_Onsal Hakair_MIN.json create mode 100644 GatheringPaths/4.x - Stormblood/The Azim Steppe/548_Onsal Hakair_BTN.json create mode 100644 QuestPaths/4.x - Stormblood/Allied Societies/Namazu/Dailies/3116_A Stable's Condition.json create mode 100644 QuestPaths/4.x - Stormblood/Allied Societies/Namazu/Dailies/3117_Beat of the Drum.json create mode 100644 QuestPaths/4.x - Stormblood/Allied Societies/Namazu/Dailies/3118_Cannot Say Neigh.json diff --git a/GatheringPaths/4.x - Stormblood/The Azim Steppe/544_Onsal Hakair_MIN.json b/GatheringPaths/4.x - Stormblood/The Azim Steppe/544_Onsal Hakair_MIN.json new file mode 100644 index 000000000..d726e1310 --- /dev/null +++ b/GatheringPaths/4.x - Stormblood/The Azim Steppe/544_Onsal Hakair_MIN.json @@ -0,0 +1,61 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/GatheringPaths/gatheringlocation-v1.json", + "Author": "plogon_enjoyer", + "Steps": [ + { + "TerritoryId": 622, + "InteractionType": "None", + "AetheryteShortcut": "Azim Steppe - Dawn Throne" + } + ], + "Groups": [ + { + "Nodes": [ + { + "DataId": 32323, + "Locations": [ + { + "Position": { + "X": -54.36381, + "Y": 55.83623, + "Z": -357.2043 + } + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 32325, + "Locations": [ + { + "Position": { + "X": -56.99122, + "Y": 59.4855, + "Z": -368.9053 + } + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 32324, + "Locations": [ + { + "Position": { + "X": -83.84797, + "Y": 60.70433, + "Z": -366.7615 + } + } + ] + } + ] + } + ] +} diff --git a/GatheringPaths/4.x - Stormblood/The Azim Steppe/548_Onsal Hakair_BTN.json b/GatheringPaths/4.x - Stormblood/The Azim Steppe/548_Onsal Hakair_BTN.json new file mode 100644 index 000000000..ede6b9c62 --- /dev/null +++ b/GatheringPaths/4.x - Stormblood/The Azim Steppe/548_Onsal Hakair_BTN.json @@ -0,0 +1,61 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/GatheringPaths/gatheringlocation-v1.json", + "Author": "plogon_enjoyer", + "Steps": [ + { + "TerritoryId": 622, + "InteractionType": "None", + "AetheryteShortcut": "Azim Steppe - Dawn Throne" + } + ], + "Groups": [ + { + "Nodes": [ + { + "DataId": 32335, + "Locations": [ + { + "Position": { + "X": -80.14488, + "Y": 58.18221, + "Z": -358.3333 + } + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 32336, + "Locations": [ + { + "Position": { + "X": -58.9046, + "Y": 52.59887, + "Z": -350.7942 + } + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 32337, + "Locations": [ + { + "Position": { + "X": -81.5958, + "Y": 51.05495, + "Z": -334.9854 + } + } + ] + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Allied Societies/Namazu/Dailies/3116_A Stable's Condition.json b/QuestPaths/4.x - Stormblood/Allied Societies/Namazu/Dailies/3116_A Stable's Condition.json new file mode 100644 index 000000000..ea6dcd9b1 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Allied Societies/Namazu/Dailies/3116_A Stable's Condition.json @@ -0,0 +1,134 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "plogon_enjoyer", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1025602, + "Position": { + "X": -780.148, + "Y": 128.25195, + "Z": 97.154175 + }, + "TerritoryId": 622, + "InteractionType": "AcceptQuest", + "Mount": true, + "AetheryteShortcut": "Azim Steppe - Dhoro Iloh", + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": -780.148, + "Y": 128.25195, + "Z": 97.154175 + }, + "TerritoryId": 622, + "MaximumDistance": 50 + } + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1025925, + "Position": { + "X": -702.17444, + "Y": 127.5686, + "Z": 112.291016 + }, + "TerritoryId": 622, + "InteractionType": "Interact", + "TargetTerritoryId": 622, + "Mount": true + }, + { + "DataId": 1025797, + "Position": { + "X": -364.7975, + "Y": 76.98169, + "Z": -579.2172 + }, + "TerritoryId": 622, + "InteractionType": "Interact", + "Mount": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1025798, + "Position": { + "X": -366.2318, + "Y": 76.98169, + "Z": -580.31586 + }, + "TerritoryId": 622, + "InteractionType": "Interact", + "RequiredQuestAcceptedJob": ["DoH"] + }, + { + "TerritoryId": 622, + "InteractionType": "Craft", + "ItemId": 22736, + "ItemCount": 2, + "RequiredQuestAcceptedJob": ["DoH"] + }, + { + "TerritoryId": 622, + "InteractionType": "Gather", + "ItemsToGather": [ + { + "ItemId": 22632, + "ItemCount": 1 + } + ], + "RequiredQuestAcceptedJob": ["Miner"] + }, + { + "TerritoryId": 622, + "InteractionType": "Gather", + "ItemsToGather": [ + { + "ItemId": 22658, + "ItemCount": 1 + } + ], + "RequiredQuestAcceptedJob": ["Botanist"] + }, + { + "DataId": 1025602, + "Position": { + "X": -780.148, + "Y": 128.25195, + "Z": 97.154175 + }, + "TerritoryId": 622, + "InteractionType": "CompleteQuest", + "Mount": true, + "AetheryteShortcut": "Azim Steppe - Dhoro Iloh", + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": -780.148, + "Y": 128.25195, + "Z": 97.154175 + }, + "TerritoryId": 622, + "MaximumDistance": 50 + } + } + } + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Allied Societies/Namazu/Dailies/3117_Beat of the Drum.json b/QuestPaths/4.x - Stormblood/Allied Societies/Namazu/Dailies/3117_Beat of the Drum.json new file mode 100644 index 000000000..4e6927c0c --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Allied Societies/Namazu/Dailies/3117_Beat of the Drum.json @@ -0,0 +1,134 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "plogon_enjoyer", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1025602, + "Position": { + "X": -780.148, + "Y": 128.25195, + "Z": 97.154175 + }, + "TerritoryId": 622, + "InteractionType": "AcceptQuest", + "Mount": true, + "AetheryteShortcut": "Azim Steppe - Dhoro Iloh", + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": -780.148, + "Y": 128.25195, + "Z": 97.154175 + }, + "TerritoryId": 622, + "MaximumDistance": 50 + } + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1025925, + "Position": { + "X": -702.17444, + "Y": 127.5686, + "Z": 112.291016 + }, + "TerritoryId": 622, + "InteractionType": "Interact", + "TargetTerritoryId": 622, + "Mount": true + }, + { + "DataId": 1025799, + "Position": { + "X": -175.03625, + "Y": 66.81902, + "Z": -437.43042 + }, + "TerritoryId": 622, + "InteractionType": "Interact", + "Mount": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1025800, + "Position": { + "X": -172.74744, + "Y": 67.39905, + "Z": -436.60645 + }, + "TerritoryId": 622, + "InteractionType": "Interact", + "RequiredCurrentJob": ["DoH"] + }, + { + "TerritoryId": 622, + "InteractionType": "Craft", + "ItemId": 22737, + "ItemCount": 1, + "RequiredCurrentJob": ["DoH"] + }, + { + "TerritoryId": 622, + "InteractionType": "Gather", + "ItemsToGather": [ + { + "ItemId": 22633, + "ItemCount": 2 + } + ], + "RequiredQuestAcceptedJob": ["Miner"] + }, + { + "TerritoryId": 622, + "InteractionType": "Gather", + "ItemsToGather": [ + { + "ItemId": 22659, + "ItemCount": 2 + } + ], + "RequiredQuestAcceptedJob": ["Botanist"] + }, + { + "DataId": 1025602, + "Position": { + "X": -780.148, + "Y": 128.25195, + "Z": 97.154175 + }, + "TerritoryId": 622, + "InteractionType": "CompleteQuest", + "Mount": true, + "AetheryteShortcut": "Azim Steppe - Dhoro Iloh", + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": -780.148, + "Y": 128.25195, + "Z": 97.154175 + }, + "TerritoryId": 622, + "MaximumDistance": 50 + } + } + } + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Allied Societies/Namazu/Dailies/3118_Cannot Say Neigh.json b/QuestPaths/4.x - Stormblood/Allied Societies/Namazu/Dailies/3118_Cannot Say Neigh.json new file mode 100644 index 000000000..d3c03fa3f --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Allied Societies/Namazu/Dailies/3118_Cannot Say Neigh.json @@ -0,0 +1,109 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "plogon_enjoyer", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1025602, + "Position": { + "X": -780.148, + "Y": 128.25195, + "Z": 97.154175 + }, + "TerritoryId": 622, + "InteractionType": "AcceptQuest", + "Mount": true, + "AetheryteShortcut": "Azim Steppe - Dhoro Iloh", + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": -780.148, + "Y": 128.25195, + "Z": 97.154175 + }, + "TerritoryId": 622, + "MaximumDistance": 50 + } + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1025925, + "Position": { + "X": -702.17444, + "Y": 127.5686, + "Z": 112.291016 + }, + "TerritoryId": 622, + "InteractionType": "Interact", + "TargetTerritoryId": 622, + "Mount": true + }, + { + "DataId": 1025801, + "Position": { + "X": -609.49115, + "Y": 41.834953, + "Z": 139.75732 + }, + "TerritoryId": 622, + "InteractionType": "Interact", + "Mount": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1025802, + "Position": { + "X": -232.89844, + "Y": 55.466682, + "Z": -329.15234 + }, + "TerritoryId": 622, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1025602, + "Position": { + "X": -780.148, + "Y": 128.25195, + "Z": 97.154175 + }, + "TerritoryId": 622, + "InteractionType": "CompleteQuest", + "Mount": true, + "AetheryteShortcut": "Azim Steppe - Dhoro Iloh", + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": -780.148, + "Y": 128.25195, + "Z": 97.154175 + }, + "TerritoryId": 622, + "MaximumDistance": 50 + } + } + } + } + ] + } + ] +} -- 2.45.2 From 95d19455de435359a8b6d856893811c732ff5657 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Fri, 27 Dec 2024 18:25:59 +0100 Subject: [PATCH 382/448] Adjust filter logic --- Questionable/Data/JournalData.cs | 38 ++--- .../QuestJournalComponent.cs | 149 +++++++++--------- .../JournalComponents/QuestJournalUtils.cs | 20 +-- 3 files changed, 94 insertions(+), 113 deletions(-) diff --git a/Questionable/Data/JournalData.cs b/Questionable/Data/JournalData.cs index 52f37e22e..c2983fe56 100644 --- a/Questionable/Data/JournalData.cs +++ b/Questionable/Data/JournalData.cs @@ -10,44 +10,30 @@ namespace Questionable.Data; internal sealed class JournalData { - private readonly IDataManager _dataManager; - private readonly QuestData _questData; public JournalData(IDataManager dataManager, QuestData questData) { - _dataManager = dataManager; - _questData = questData; - - Reload(); - } - - public List Genres { get; set; } - public List Categories { get; set; } - public List
Sections { get; set; } - - public void Reload() - { - var genres = _dataManager.GetExcelSheet() + var genres = dataManager.GetExcelSheet() .Where(x => x.RowId > 0 && x.Icon > 0) - .Select(x => new Genre(x, _questData.GetAllByJournalGenre(x.RowId))) + .Select(x => new Genre(x, questData.GetAllByJournalGenre(x.RowId))) .ToList(); - var limsaStart = _dataManager.GetExcelSheet().GetRow(1); - var gridaniaStart = _dataManager.GetExcelSheet().GetRow(2); - var uldahStart = _dataManager.GetExcelSheet().GetRow(3); + var limsaStart = dataManager.GetExcelSheet().GetRow(1); + var gridaniaStart = dataManager.GetExcelSheet().GetRow(2); + var uldahStart = dataManager.GetExcelSheet().GetRow(3); var genreLimsa = new Genre(uint.MaxValue - 3, "Starting in Limsa Lominsa", 1, new uint[] { 108, 109 }.Concat(limsaStart.QuestRedoParam.Select(x => x.Quest.RowId)) .Where(x => x != 0) - .Select(x => _questData.GetQuestInfo(new QuestId((ushort)(x & 0xFFFF)))) + .Select(x => questData.GetQuestInfo(new QuestId((ushort)(x & 0xFFFF)))) .ToList()); var genreGridania = new Genre(uint.MaxValue - 2, "Starting in Gridania", 1, new uint[] { 85, 123, 124 }.Concat(gridaniaStart.QuestRedoParam.Select(x => x.Quest.RowId)) .Where(x => x != 0) - .Select(x => _questData.GetQuestInfo(new QuestId((ushort)(x & 0xFFFF)))) + .Select(x => questData.GetQuestInfo(new QuestId((ushort)(x & 0xFFFF)))) .ToList()); var genreUldah = new Genre(uint.MaxValue - 1, "Starting in Ul'dah", 1, new uint[] { 568, 569, 570 }.Concat(uldahStart.QuestRedoParam.Select(x => x.Quest.RowId)) .Where(x => x != 0) - .Select(x => _questData.GetQuestInfo(new QuestId((ushort)(x & 0xFFFF)))) + .Select(x => questData.GetQuestInfo(new QuestId((ushort)(x & 0xFFFF)))) .ToList()); genres.InsertRange(0, [genreLimsa, genreGridania, genreUldah]); genres.Single(x => x.Id == 1) @@ -56,15 +42,19 @@ internal sealed class JournalData genreLimsa.Quests.Contains(x) || genreGridania.Quests.Contains(x) || genreUldah.Quests.Contains(x)); Genres = genres.ToList(); - Categories = _dataManager.GetExcelSheet() + Categories = dataManager.GetExcelSheet() .Where(x => x.RowId > 0) .Select(x => new Category(x, Genres.Where(y => y.CategoryId == x.RowId).ToList())) .ToList(); - Sections = _dataManager.GetExcelSheet() + Sections = dataManager.GetExcelSheet() .Select(x => new Section(x, Categories.Where(y => y.SectionId == x.RowId).ToList())) .ToList(); } + public List Genres { get; } + public List Categories { get; } + public List
Sections { get; } + internal sealed class Genre { public Genre(JournalGenre journalGenre, List quests) diff --git a/Questionable/Windows/JournalComponents/QuestJournalComponent.cs b/Questionable/Windows/JournalComponents/QuestJournalComponent.cs index de5a7bb88..437591ff8 100644 --- a/Questionable/Windows/JournalComponents/QuestJournalComponent.cs +++ b/Questionable/Windows/JournalComponents/QuestJournalComponent.cs @@ -31,14 +31,12 @@ internal sealed class QuestJournalComponent private readonly IDalamudPluginInterface _pluginInterface; private readonly QuestJournalUtils _questJournalUtils; private readonly QuestValidator _questValidator; - private readonly IPluginLog _log; private List _filteredSections = []; - private string _searchText = string.Empty; public QuestJournalComponent(JournalData journalData, QuestRegistry questRegistry, QuestFunctions questFunctions, UiUtils uiUtils, QuestTooltipComponent questTooltipComponent, IDalamudPluginInterface pluginInterface, - QuestJournalUtils questJournalUtils, QuestValidator questValidator, IPluginLog log) + QuestJournalUtils questJournalUtils, QuestValidator questValidator) { _journalData = journalData; _questRegistry = questRegistry; @@ -48,9 +46,10 @@ internal sealed class QuestJournalComponent _pluginInterface = pluginInterface; _questJournalUtils = questJournalUtils; _questValidator = questValidator; - _log = log; } + internal FilterConfiguration Filter { get; } = new(); + public void DrawQuests() { using var tab = ImRaii.TabItem("Quests"); @@ -74,7 +73,7 @@ internal sealed class QuestJournalComponent ImGui.SameLine(); ImGui.SetNextItemWidth(ImGui.GetContentRegionAvail().X); - if (ImGui.InputTextWithHint(string.Empty, "Search quests and categories", ref _searchText, 256)) + if (ImGui.InputTextWithHint(string.Empty, "Search quests and categories", ref Filter.SearchText, 256)) UpdateFilter(); if (_filteredSections.Count > 0) @@ -92,7 +91,7 @@ internal sealed class QuestJournalComponent DrawSection(section); } else - ImGui.Text("No quest or category matches your search text."); + ImGui.Text("No quest or category matches your search."); } private void DrawSection(FilteredSection filter) @@ -239,104 +238,63 @@ internal sealed class QuestJournalComponent public void UpdateFilter() { - _journalData.Reload(); - Predicate match = string.IsNullOrWhiteSpace(_searchText) ? x => true : x => x.Contains(_searchText, StringComparison.CurrentCultureIgnoreCase); - _filteredSections = _journalData.Sections - .Select(section => FilterSection(section, match)) - .Where(x => x != null) - .Cast() + .Select(x => FilterSection(x, Filter)) + .Where(x => x.Categories.Count > 0) .ToList(); - for (int i = 0; i < _filteredSections.Count; i++) - { - var section = _filteredSections[i]; - for (int s = 0; s < section.Categories.Count; s++) - { - var category = section.Categories[s]; - for (int c = 0; c < category.Genres.Count; c++) - { - var genre = category.Genres[c]; - for (int g = 0; g < genre.Quests.Count; g++) - { - var quest = genre.Quests[g]; - - //All Quest Filter conditions checked here, cause we just love IEnumerable - if (QuestJournalUtils.AvailableOnly && !_questFunctions.IsReadyToAcceptQuest(quest.QuestId) || - QuestJournalUtils.HideNoPaths && !_questRegistry.TryGetQuest(quest.QuestId, out _)) - { - genre.Quests.Remove(quest); - g--; - } - } - } - } - } - RefreshCounts(); } - private static FilteredSection? FilterSection(JournalData.Section section, Predicate match) + private FilteredSection FilterSection(JournalData.Section section, FilterConfiguration filter) { - if (match(section.Name)) + IEnumerable filteredCategories; + if (IsCategorySectionGenreMatch(filter, section.Name)) { - return new FilteredSection(section, - section.Categories - .Select(x => FilterCategory(x, _ => true)) - .Cast() - .ToList()); + filteredCategories = section.Categories + .Select(x => FilterCategory(x, filter.WithoutName())); } else { - List filteredCategories = section.Categories - .Select(category => FilterCategory(category, match)) - .Where(x => x != null) - .Cast() - .ToList(); - if (filteredCategories.Count > 0) - return new FilteredSection(section, filteredCategories); - - return null; + filteredCategories = section.Categories + .Select(category => FilterCategory(category, filter)); } + + return new FilteredSection(section, filteredCategories.Where(x => x.Genres.Count > 0).ToList()); } - private static FilteredCategory? FilterCategory(JournalData.Category category, Predicate match) + private FilteredCategory FilterCategory(JournalData.Category category, FilterConfiguration filter) { - if (match(category.Name)) + IEnumerable filteredGenres; + if (IsCategorySectionGenreMatch(filter, category.Name)) { - return new FilteredCategory(category, - category.Genres - .Select(x => FilterGenre(x, _ => true)!) - .ToList()); + filteredGenres = category.Genres + .Select(x => FilterGenre(x, filter.WithoutName())); } else { - List filteredGenres = category.Genres - .Select(genre => FilterGenre(genre, match)) - .Where(x => x != null) - .Cast() - .ToList(); - if (filteredGenres.Count > 0) - return new FilteredCategory(category, filteredGenres); - - return null; + filteredGenres = category.Genres + .Select(genre => FilterGenre(genre, filter)); } + + return new FilteredCategory(category, filteredGenres.Where(x => x.Quests.Count > 0).ToList()); } - private static FilteredGenre? FilterGenre(JournalData.Genre genre, Predicate match) + private FilteredGenre FilterGenre(JournalData.Genre genre, FilterConfiguration filter) { - if (match(genre.Name)) - return new FilteredGenre(genre, genre.Quests); + IEnumerable filteredQuests; + if (IsCategorySectionGenreMatch(filter, genre.Name)) + { + filteredQuests = genre.Quests + .Where(x => IsQuestMatch(filter.WithoutName(), x)); + } else { - List filteredQuests = genre.Quests - .Where(x => match(x.Name)) - .ToList(); - if (filteredQuests.Count > 0) - return new FilteredGenre(genre, filteredQuests); + filteredQuests = genre.Quests + .Where(x => IsQuestMatch(filter, x)); } - return null; + return new FilteredGenre(genre, filteredQuests.ToList()); } internal void RefreshCounts() @@ -396,6 +354,28 @@ internal sealed class QuestJournalComponent _sectionCounts[sectionCount.Key] = sectionCount.Value with { Completed = 0 }; } + private static bool IsCategorySectionGenreMatch(FilterConfiguration filter, string name) + { + return string.IsNullOrEmpty(filter.SearchText) || + name.Contains(filter.SearchText, StringComparison.CurrentCultureIgnoreCase); + } + + private bool IsQuestMatch(FilterConfiguration filter, IQuestInfo questInfo) + { + if (!string.IsNullOrEmpty(filter.SearchText) && + !questInfo.Name.Contains(filter.SearchText, StringComparison.CurrentCultureIgnoreCase)) + return false; + + if (filter.AvailableOnly && !_questFunctions.IsReadyToAcceptQuest(questInfo.QuestId)) + return false; + + if (filter.HideNoPaths && + (!_questRegistry.TryGetQuest(questInfo.QuestId, out var quest) || quest.Root.Disabled)) + return false; + + return true; + } + private sealed record FilteredSection(JournalData.Section Section, List Categories); private sealed record FilteredCategory(JournalData.Category Category, List Genres); @@ -409,4 +389,19 @@ internal sealed class QuestJournalComponent { } } + + internal sealed class FilterConfiguration + { + public string SearchText = string.Empty; + public bool AvailableOnly; + public bool HideNoPaths; + + public bool AdvancedFiltersActive => AvailableOnly || HideNoPaths; + + public FilterConfiguration WithoutName() => new() + { + AvailableOnly = AvailableOnly, + HideNoPaths = HideNoPaths + }; + } } diff --git a/Questionable/Windows/JournalComponents/QuestJournalUtils.cs b/Questionable/Windows/JournalComponents/QuestJournalUtils.cs index 8d43d7f75..906dd9d22 100644 --- a/Questionable/Windows/JournalComponents/QuestJournalUtils.cs +++ b/Questionable/Windows/JournalComponents/QuestJournalUtils.cs @@ -7,6 +7,7 @@ using Questionable.Functions; using Questionable.Model; using Questionable.Model.Questing; using System; +using Dalamud.Interface.Colors; namespace Questionable.Windows.JournalComponents; @@ -16,9 +17,6 @@ internal sealed class QuestJournalUtils private readonly QuestFunctions _questFunctions; private readonly ICommandManager _commandManager; - public static bool AvailableOnly; - public static bool HideNoPaths; - public QuestJournalUtils(QuestController questController, QuestFunctions questFunctions, ICommandManager commandManager) { @@ -50,19 +48,17 @@ internal sealed class QuestJournalUtils } } - internal static void ShowFilterContextMenu(QuestJournalComponent journalUI) + internal static void ShowFilterContextMenu(QuestJournalComponent journalUi) { - if (ImGuiComponents.IconButton(Dalamud.Interface.FontAwesomeIcon.Filter)) - ImGui.OpenPopup($"##QuestFilters"); + if (ImGuiComponents.IconButtonWithText(Dalamud.Interface.FontAwesomeIcon.Filter, "Filter")) + ImGui.OpenPopup("##QuestFilters"); - using var popup = ImRaii.Popup($"##QuestFilters"); + using var popup = ImRaii.Popup("##QuestFilters"); if (!popup) return; - if (ImGui.Checkbox("Show only Available Quests", ref AvailableOnly) || - ImGui.Checkbox("Hide Quests Without Path", ref HideNoPaths)) - journalUI.UpdateFilter(); - - + if (ImGui.Checkbox("Show only Available Quests", ref journalUi.Filter.AvailableOnly) || + ImGui.Checkbox("Hide Quests Without Path", ref journalUi.Filter.HideNoPaths)) + journalUi.UpdateFilter(); } } -- 2.45.2 From 464865d57296d91c4ebce11022978669358c1b4d Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Fri, 27 Dec 2024 18:28:10 +0100 Subject: [PATCH 383/448] Version bump --- Directory.Build.targets | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Directory.Build.targets b/Directory.Build.targets index 5b421e209..e42241fe6 100644 --- a/Directory.Build.targets +++ b/Directory.Build.targets @@ -1,5 +1,5 @@ - 4.9 + 4.10 -- 2.45.2 From 59d6bd9d825ffa65fdd6a74bd2c9091902a01c42 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sat, 28 Dec 2024 14:26:22 +0100 Subject: [PATCH 384/448] Fix 'Danger at the Docks' --- .../Side Quests/Kozama'uka/5062_Danger at the Dock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/QuestPaths/7.x - Dawntrail/Side Quests/Kozama'uka/5062_Danger at the Dock.json b/QuestPaths/7.x - Dawntrail/Side Quests/Kozama'uka/5062_Danger at the Dock.json index bb1114f34..43596202f 100644 --- a/QuestPaths/7.x - Dawntrail/Side Quests/Kozama'uka/5062_Danger at the Dock.json +++ b/QuestPaths/7.x - Dawntrail/Side Quests/Kozama'uka/5062_Danger at the Dock.json @@ -23,9 +23,9 @@ { "DataId": 2014196, "Position": { - "X": 728.7556, - "Y": 8.010925, - "Z": -287.95306 + "X": 819.6382, + "Y": 14.084045, + "Z": -312.21484 }, "TerritoryId": 1188, "InteractionType": "Combat", -- 2.45.2 From 37661434a73dc12b69690e5bee5161aa27e7b9a8 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sat, 28 Dec 2024 15:08:12 +0100 Subject: [PATCH 385/448] Unlock Dock Poga during DT MSQ --- .../Kozama'uka/5064_Ripe for the Offering.json | 15 +++++++++++++-- .../4869_The Lifting of Wings.json | 5 +++++ 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/QuestPaths/7.x - Dawntrail/Aether Currents/Kozama'uka/5064_Ripe for the Offering.json b/QuestPaths/7.x - Dawntrail/Aether Currents/Kozama'uka/5064_Ripe for the Offering.json index e832b2717..a16039f32 100644 --- a/QuestPaths/7.x - Dawntrail/Aether Currents/Kozama'uka/5064_Ripe for the Offering.json +++ b/QuestPaths/7.x - Dawntrail/Aether Currents/Kozama'uka/5064_Ripe for the Offering.json @@ -87,7 +87,12 @@ }, "TerritoryId": 1188, "InteractionType": "WalkTo", - "Comment": "Waypoint after swimming through the river" + "Comment": "Waypoint after swimming through the river", + "SkipConditions": { + "StepIf": { + "AetheryteUnlocked": "Kozama'uka - Dock Poga" + } + } }, { "DataId": 2013938, @@ -98,7 +103,13 @@ }, "TerritoryId": 1188, "InteractionType": "AttuneAetherCurrent", - "AetherCurrentId": 2818425 + "AetherCurrentId": 2818425, + "AetheryteShortcut": "Kozama'uka - Dock Poga", + "SkipConditions": { + "AetheryteShortcutIf": { + "AetheryteLocked": "Kozama'uka - Dock Poga" + } + } }, { "DataId": 1048826, diff --git a/QuestPaths/7.x - Dawntrail/MSQ/A-Kozama'uka1-Urqopacha1/4869_The Lifting of Wings.json b/QuestPaths/7.x - Dawntrail/MSQ/A-Kozama'uka1-Urqopacha1/4869_The Lifting of Wings.json index 2c3e7a840..7ac485400 100644 --- a/QuestPaths/7.x - Dawntrail/MSQ/A-Kozama'uka1-Urqopacha1/4869_The Lifting of Wings.json +++ b/QuestPaths/7.x - Dawntrail/MSQ/A-Kozama'uka1-Urqopacha1/4869_The Lifting of Wings.json @@ -103,6 +103,11 @@ { "Sequence": 5, "Steps": [ + { + "TerritoryId": 1188, + "InteractionType": "AttuneAetheryte", + "Aetheryte": "Kozama'uka - Dock Poga" + }, { "DataId": 2013937, "Position": { -- 2.45.2 From 187427045b0b147670470d774696e46f0a6ef776 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sat, 28 Dec 2024 19:52:45 +0100 Subject: [PATCH 386/448] Fix 'Law of the Land' --- .../D-Shaaloani-HeritageFound1/4916_Law of the Land.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/QuestPaths/7.x - Dawntrail/MSQ/D-Shaaloani-HeritageFound1/4916_Law of the Land.json b/QuestPaths/7.x - Dawntrail/MSQ/D-Shaaloani-HeritageFound1/4916_Law of the Land.json index 564a66cc6..ccc5fe354 100644 --- a/QuestPaths/7.x - Dawntrail/MSQ/D-Shaaloani-HeritageFound1/4916_Law of the Land.json +++ b/QuestPaths/7.x - Dawntrail/MSQ/D-Shaaloani-HeritageFound1/4916_Law of the Land.json @@ -126,9 +126,9 @@ { "DataId": 2013807, "Position": { - "X": 34.927856, - "Y": 4.776001, - "Z": 297.68823 + "X": 37.15564, + "Y": 4.2266846, + "Z": 290.66907 }, "StopDistance": 1, "TerritoryId": 1190, -- 2.45.2 From f20b5e08a764c42f3dba1323a36338b52115ab55 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sat, 28 Dec 2024 22:26:51 +0100 Subject: [PATCH 387/448] Add non-flying waypoints to 'Gwok Away' --- .../Heritage Found/5149_Gwok Away.json | 138 ++++++++++++++++++ .../Validators/CompletionFlagsValidator.cs | 4 + 2 files changed, 142 insertions(+) diff --git a/QuestPaths/7.x - Dawntrail/Side Quests/Heritage Found/5149_Gwok Away.json b/QuestPaths/7.x - Dawntrail/Side Quests/Heritage Found/5149_Gwok Away.json index 53995c76b..3ccf74eaf 100644 --- a/QuestPaths/7.x - Dawntrail/Side Quests/Heritage Found/5149_Gwok Away.json +++ b/QuestPaths/7.x - Dawntrail/Side Quests/Heritage Found/5149_Gwok Away.json @@ -20,6 +20,52 @@ { "Sequence": 1, "Steps": [ + { + "Position": { + "X": -212.22218, + "Y": 30, + "Z": -620.3656 + }, + "TerritoryId": 1191, + "InteractionType": "WalkTo", + "SkipConditions": { + "StepIf": { + "Flying": "Unlocked", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + } + } + }, + { + "DataId": 2014079, + "Position": { + "X": -213.24487, + "Y": 30.838379, + "Z": -618.0362 + }, + "TerritoryId": 1191, + "InteractionType": "UseItem", + "ItemId": 2003594, + "SkipConditions": { + "StepIf": { + "Flying": "Unlocked" + } + }, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, { "DataId": 2014079, "Position": { @@ -41,6 +87,52 @@ 64 ] }, + { + "Position": { + "X": -274.73184, + "Y": 36.99997, + "Z": -506.5031 + }, + "TerritoryId": 1191, + "InteractionType": "WalkTo", + "SkipConditions": { + "StepIf": { + "Flying": "Unlocked", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + } + } + }, + { + "DataId": 2014078, + "Position": { + "X": -272.8161, + "Y": 37.857544, + "Z": -504.9058 + }, + "TerritoryId": 1191, + "InteractionType": "UseItem", + "ItemId": 2003594, + "SkipConditions": { + "StepIf": { + "Flying": "Unlocked" + } + }, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, { "DataId": 2014078, "Position": { @@ -62,6 +154,52 @@ 128 ] }, + { + "Position": { + "X": -346.93515, + "Y": 37.00001, + "Z": -611.26953 + }, + "TerritoryId": 1191, + "InteractionType": "WalkTo", + "SkipConditions": { + "StepIf": { + "Flying": "Unlocked", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + } + } + }, + { + "DataId": 2014080, + "Position": { + "X": -349.1112, + "Y": 37.857544, + "Z": -610.5898 + }, + "TerritoryId": 1191, + "InteractionType": "UseItem", + "ItemId": 2003594, + "SkipConditions": { + "StepIf": { + "Flying": "Unlocked" + } + }, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, { "DataId": 2014080, "Position": { diff --git a/Questionable/Validation/Validators/CompletionFlagsValidator.cs b/Questionable/Validation/Validators/CompletionFlagsValidator.cs index e5c9fdc12..dc36bcc14 100644 --- a/Questionable/Validation/Validators/CompletionFlagsValidator.cs +++ b/Questionable/Validation/Validators/CompletionFlagsValidator.cs @@ -11,6 +11,10 @@ internal sealed class CompletionFlagsValidator : IQuestValidator { public IEnumerable Validate(Quest quest) { + // this maybe should check for skipconditions, but this applies to one quest only atm + if (quest.Id.Value == 5149) + yield break; + foreach (var sequence in quest.AllSequences()) { var mappedCompletionFlags = sequence.Steps -- 2.45.2 From 8d85a0f896ac09e449717aa790ba939d482a8fc3 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Mon, 30 Dec 2024 02:50:18 +0100 Subject: [PATCH 388/448] Add AutoDuty integration --- .../RoslynElements/QuestStepExtensions.cs | 3 + .../Shared/245_It's Probably Pirates.json | 3 +- .../MSQ-1/Shared/343_Lord of the Inferno.json | 3 +- .../MSQ-1/Shared/660_Into a Copper Hell.json | 3 +- .../MSQ-1/Shared/677_Fire in the Gloom.json | 3 +- .../514_Into the Beast's Maw.json | 3 +- .../801_Skeletons in Her Closet.json | 3 +- .../832_The Things We Do for Cheese.json | 3 +- .../MSQ-2/B4-Titan/857_Lord of Crags.json | 3 +- .../952_In Pursuit of the Past.json | 3 +- .../C3-Garuda/519_Lady of the Vortex.json | 3 +- .../3873_Rock the Castrum.json | 3 +- .../4522_The Ultimate Weapon.json | 6 +- .../E4-2.4/75_The Path of the Righteous.json | 3 +- .../MSQ-2/E5-2.5/366_The Rising Chorus.json | 3 +- .../1131_Gilding the Bilious (Maelstrom).json | 3 +- ...1132_Gilding the Bilious (Twin Adder).json | 3 +- ...Gilding the Bilious (Immortal Flames).json | 3 +- .../2111_For All the Nights to Come.json | 3 +- .../1617_Mourn in Passing.json | 3 +- .../1634_Into the Aery.json | 3 +- .../A4-Ishgard/1640_A Knight's Calling.json | 3 +- .../1660_Forbidden Knowledge.json | 3 +- .../MSQ/A7-Azys Lla/1669_Heavensward.json | 3 +- .../C-3.2/2232_The Word of the Mother.json | 3 +- .../MSQ/E-3.4/2342_Shadows of the First.json | 3 +- .../2354_Griffin, Griffin on the Wall.json | 3 +- .../2469_Not without Incident.json | 3 +- .../MSQ/A5-Yanxia 2/2524_The Die Is Cast.json | 3 +- .../2544_The Price of Freedom.json | 3 +- .../MSQ/B-4.1/2964_The Mad King's Trove.json | 3 +- .../MSQ/E-4.4/3144_Feel the Burn.json | 3 +- .../MSQ/F-4.5/3183_The Face of War.json | 3 +- .../3300_The Lightwardens.json | 3 +- .../B-Il Mheg/3312_The Key to the Castle.json | 3 +- .../3340_The Burden of Knowledge.json | 3 +- .../3643_Extinguishing the Last Light.json | 3 +- .../MSQ/H-5.2/3769_Beneath the Surface.json | 3 +- .../4377_In the Dark of the Tower.json | 3 +- .../MSQ/D-Thavnair2/4409_Skies Aflame.json | 3 +- .../E-Elpis/4437_Caging the Messenger.json | 3 +- .../4449_Her Children One and All.json | 6 +- .../MSQ/H-6.1/4529_Alzadaals Legacy.json | 3 +- .../MSQ/I-6.2/4592_In Search of Azdaja.json | 3 +- .../MSQ/J-6.3/4674_King of the Mountain.json | 3 +- .../MSQ/K-6.4/4736_Going Haam.json | 3 +- .../MSQ/L-6.5/4748_Down in the Dark.json | 3 +- .../4879_For All Turali.json | 3 +- .../4891_The High Luminary.json | 3 +- .../4909_Road to the Golden City.json | 3 +- .../4926_All Aboard.json | 3 +- .../4945_The Resilient Son.json | 3 +- .../MSQ/F-Living Memory/4959_Dawntrail.json | 3 +- .../MSQ/G-7.1/5246_In Search of the Past.json | 3 +- QuestPaths/quest-v1.json | 3 + Questionable.Model/Questing/QuestStep.cs | 1 + Questionable/Configuration.cs | 11 +- Questionable/Controller/QuestRegistry.cs | 29 +- .../Steps/Common/SendNotification.cs | 3 +- .../Controller/Steps/Interactions/Duty.cs | 78 +++++- .../Controller/Steps/Shared/WaitAtEnd.cs | 6 +- Questionable/Data/TerritoryData.cs | 24 +- Questionable/External/AutoDutyIpc.cs | 89 ++++++ Questionable/QuestionablePlugin.cs | 5 +- Questionable/Windows/ConfigWindow.cs | 254 +++++++++++++++++- 65 files changed, 599 insertions(+), 72 deletions(-) create mode 100644 Questionable/External/AutoDutyIpc.cs diff --git a/QuestPathGenerator/RoslynElements/QuestStepExtensions.cs b/QuestPathGenerator/RoslynElements/QuestStepExtensions.cs index 12b27ef4e..6b76bb95e 100644 --- a/QuestPathGenerator/RoslynElements/QuestStepExtensions.cs +++ b/QuestPathGenerator/RoslynElements/QuestStepExtensions.cs @@ -117,6 +117,9 @@ internal static class QuestStepExtensions Assignment(nameof(QuestStep.ContentFinderConditionId), step.ContentFinderConditionId, emptyStep.ContentFinderConditionId) .AsSyntaxNodeOrToken(), + Assignment(nameof(QuestStep.AutoDutyEnabled), + step.AutoDutyEnabled, emptyStep.AutoDutyEnabled) + .AsSyntaxNodeOrToken(), Assignment(nameof(QuestStep.SkipConditions), step.SkipConditions, emptyStep.SkipConditions) .AsSyntaxNodeOrToken(), diff --git a/QuestPaths/2.x - A Realm Reborn/MSQ-1/Shared/245_It's Probably Pirates.json b/QuestPaths/2.x - A Realm Reborn/MSQ-1/Shared/245_It's Probably Pirates.json index 8a3522540..0d3aada90 100644 --- a/QuestPaths/2.x - A Realm Reborn/MSQ-1/Shared/245_It's Probably Pirates.json +++ b/QuestPaths/2.x - A Realm Reborn/MSQ-1/Shared/245_It's Probably Pirates.json @@ -112,7 +112,8 @@ { "TerritoryId": 138, "InteractionType": "Duty", - "ContentFinderConditionId": 4 + "ContentFinderConditionId": 4, + "AutoDutyEnabled": true } ] }, diff --git a/QuestPaths/2.x - A Realm Reborn/MSQ-1/Shared/343_Lord of the Inferno.json b/QuestPaths/2.x - A Realm Reborn/MSQ-1/Shared/343_Lord of the Inferno.json index ff980ffa8..cab6933d0 100644 --- a/QuestPaths/2.x - A Realm Reborn/MSQ-1/Shared/343_Lord of the Inferno.json +++ b/QuestPaths/2.x - A Realm Reborn/MSQ-1/Shared/343_Lord of the Inferno.json @@ -71,7 +71,8 @@ { "TerritoryId": 146, "InteractionType": "Duty", - "ContentFinderConditionId": 56 + "ContentFinderConditionId": 56, + "AutoDutyEnabled": true } ] }, diff --git a/QuestPaths/2.x - A Realm Reborn/MSQ-1/Shared/660_Into a Copper Hell.json b/QuestPaths/2.x - A Realm Reborn/MSQ-1/Shared/660_Into a Copper Hell.json index b6f45f31c..e5c21738f 100644 --- a/QuestPaths/2.x - A Realm Reborn/MSQ-1/Shared/660_Into a Copper Hell.json +++ b/QuestPaths/2.x - A Realm Reborn/MSQ-1/Shared/660_Into a Copper Hell.json @@ -62,7 +62,8 @@ { "TerritoryId": 140, "InteractionType": "Duty", - "ContentFinderConditionId": 3 + "ContentFinderConditionId": 3, + "AutoDutyEnabled": true } ] }, diff --git a/QuestPaths/2.x - A Realm Reborn/MSQ-1/Shared/677_Fire in the Gloom.json b/QuestPaths/2.x - A Realm Reborn/MSQ-1/Shared/677_Fire in the Gloom.json index 7340e66a7..726eae291 100644 --- a/QuestPaths/2.x - A Realm Reborn/MSQ-1/Shared/677_Fire in the Gloom.json +++ b/QuestPaths/2.x - A Realm Reborn/MSQ-1/Shared/677_Fire in the Gloom.json @@ -57,7 +57,8 @@ { "TerritoryId": 148, "InteractionType": "Duty", - "ContentFinderConditionId": 2 + "ContentFinderConditionId": 2, + "AutoDutyEnabled": true } ] }, diff --git a/QuestPaths/2.x - A Realm Reborn/MSQ-2/A3-South Shroud, Buscarron’s Druthers/514_Into the Beast's Maw.json b/QuestPaths/2.x - A Realm Reborn/MSQ-2/A3-South Shroud, Buscarron’s Druthers/514_Into the Beast's Maw.json index cf0acff26..45b28b3fd 100644 --- a/QuestPaths/2.x - A Realm Reborn/MSQ-2/A3-South Shroud, Buscarron’s Druthers/514_Into the Beast's Maw.json +++ b/QuestPaths/2.x - A Realm Reborn/MSQ-2/A3-South Shroud, Buscarron’s Druthers/514_Into the Beast's Maw.json @@ -44,7 +44,8 @@ { "TerritoryId": 153, "InteractionType": "Duty", - "ContentFinderConditionId": 1 + "ContentFinderConditionId": 1, + "AutoDutyEnabled": true } ] }, diff --git a/QuestPaths/2.x - A Realm Reborn/MSQ-2/A9-Haukke Manor/801_Skeletons in Her Closet.json b/QuestPaths/2.x - A Realm Reborn/MSQ-2/A9-Haukke Manor/801_Skeletons in Her Closet.json index c3a02a0ca..9269a84bd 100644 --- a/QuestPaths/2.x - A Realm Reborn/MSQ-2/A9-Haukke Manor/801_Skeletons in Her Closet.json +++ b/QuestPaths/2.x - A Realm Reborn/MSQ-2/A9-Haukke Manor/801_Skeletons in Her Closet.json @@ -66,7 +66,8 @@ { "TerritoryId": 148, "InteractionType": "Duty", - "ContentFinderConditionId": 6 + "ContentFinderConditionId": 6, + "AutoDutyEnabled": true } ] }, diff --git a/QuestPaths/2.x - A Realm Reborn/MSQ-2/B2-Eastern La Noscea, Brayflox, Cheese and Wine/832_The Things We Do for Cheese.json b/QuestPaths/2.x - A Realm Reborn/MSQ-2/B2-Eastern La Noscea, Brayflox, Cheese and Wine/832_The Things We Do for Cheese.json index bcb40f054..06402bacb 100644 --- a/QuestPaths/2.x - A Realm Reborn/MSQ-2/B2-Eastern La Noscea, Brayflox, Cheese and Wine/832_The Things We Do for Cheese.json +++ b/QuestPaths/2.x - A Realm Reborn/MSQ-2/B2-Eastern La Noscea, Brayflox, Cheese and Wine/832_The Things We Do for Cheese.json @@ -85,7 +85,8 @@ { "TerritoryId": 137, "InteractionType": "Duty", - "ContentFinderConditionId": 8 + "ContentFinderConditionId": 8, + "AutoDutyEnabled": true } ] }, diff --git a/QuestPaths/2.x - A Realm Reborn/MSQ-2/B4-Titan/857_Lord of Crags.json b/QuestPaths/2.x - A Realm Reborn/MSQ-2/B4-Titan/857_Lord of Crags.json index e08981891..4cc4c5768 100644 --- a/QuestPaths/2.x - A Realm Reborn/MSQ-2/B4-Titan/857_Lord of Crags.json +++ b/QuestPaths/2.x - A Realm Reborn/MSQ-2/B4-Titan/857_Lord of Crags.json @@ -45,7 +45,8 @@ { "TerritoryId": 139, "InteractionType": "Duty", - "ContentFinderConditionId": 57 + "ContentFinderConditionId": 57, + "AutoDutyEnabled": true } ] }, diff --git a/QuestPaths/2.x - A Realm Reborn/MSQ-2/C1-Coerthas Central Highlands, The Enterprise/952_In Pursuit of the Past.json b/QuestPaths/2.x - A Realm Reborn/MSQ-2/C1-Coerthas Central Highlands, The Enterprise/952_In Pursuit of the Past.json index ad446eeb1..57ef1fa99 100644 --- a/QuestPaths/2.x - A Realm Reborn/MSQ-2/C1-Coerthas Central Highlands, The Enterprise/952_In Pursuit of the Past.json +++ b/QuestPaths/2.x - A Realm Reborn/MSQ-2/C1-Coerthas Central Highlands, The Enterprise/952_In Pursuit of the Past.json @@ -59,7 +59,8 @@ { "TerritoryId": 155, "InteractionType": "Duty", - "ContentFinderConditionId": 11 + "ContentFinderConditionId": 11, + "AutoDutyEnabled": true } ] }, diff --git a/QuestPaths/2.x - A Realm Reborn/MSQ-2/C3-Garuda/519_Lady of the Vortex.json b/QuestPaths/2.x - A Realm Reborn/MSQ-2/C3-Garuda/519_Lady of the Vortex.json index ff50fed79..d9315eca2 100644 --- a/QuestPaths/2.x - A Realm Reborn/MSQ-2/C3-Garuda/519_Lady of the Vortex.json +++ b/QuestPaths/2.x - A Realm Reborn/MSQ-2/C3-Garuda/519_Lady of the Vortex.json @@ -38,7 +38,8 @@ { "TerritoryId": 331, "InteractionType": "Duty", - "ContentFinderConditionId": 58 + "ContentFinderConditionId": 58, + "AutoDutyEnabled": true } ] }, diff --git a/QuestPaths/2.x - A Realm Reborn/MSQ-2/C9-Ultimate Weapon/3873_Rock the Castrum.json b/QuestPaths/2.x - A Realm Reborn/MSQ-2/C9-Ultimate Weapon/3873_Rock the Castrum.json index f7d746fe6..7eec220ae 100644 --- a/QuestPaths/2.x - A Realm Reborn/MSQ-2/C9-Ultimate Weapon/3873_Rock the Castrum.json +++ b/QuestPaths/2.x - A Realm Reborn/MSQ-2/C9-Ultimate Weapon/3873_Rock the Castrum.json @@ -45,7 +45,8 @@ { "TerritoryId": 147, "InteractionType": "Duty", - "ContentFinderConditionId": 15 + "ContentFinderConditionId": 15, + "AutoDutyEnabled": true } ] }, diff --git a/QuestPaths/2.x - A Realm Reborn/MSQ-2/C9-Ultimate Weapon/4522_The Ultimate Weapon.json b/QuestPaths/2.x - A Realm Reborn/MSQ-2/C9-Ultimate Weapon/4522_The Ultimate Weapon.json index c878f58b6..1a788c09f 100644 --- a/QuestPaths/2.x - A Realm Reborn/MSQ-2/C9-Ultimate Weapon/4522_The Ultimate Weapon.json +++ b/QuestPaths/2.x - A Realm Reborn/MSQ-2/C9-Ultimate Weapon/4522_The Ultimate Weapon.json @@ -46,7 +46,8 @@ { "TerritoryId": 147, "InteractionType": "Duty", - "ContentFinderConditionId": 16 + "ContentFinderConditionId": 16, + "AutoDutyEnabled": true } ] }, @@ -71,7 +72,8 @@ { "TerritoryId": 1053, "InteractionType": "Duty", - "ContentFinderConditionId": 830 + "ContentFinderConditionId": 830, + "AutoDutyEnabled": true } ] }, diff --git a/QuestPaths/2.x - A Realm Reborn/MSQ-2/E4-2.4/75_The Path of the Righteous.json b/QuestPaths/2.x - A Realm Reborn/MSQ-2/E4-2.4/75_The Path of the Righteous.json index 34e9b723c..b6581b9a8 100644 --- a/QuestPaths/2.x - A Realm Reborn/MSQ-2/E4-2.4/75_The Path of the Righteous.json +++ b/QuestPaths/2.x - A Realm Reborn/MSQ-2/E4-2.4/75_The Path of the Righteous.json @@ -88,7 +88,8 @@ { "TerritoryId": 155, "InteractionType": "Duty", - "ContentFinderConditionId": 27 + "ContentFinderConditionId": 27, + "AutoDutyEnabled": true } ] }, diff --git a/QuestPaths/2.x - A Realm Reborn/MSQ-2/E5-2.5/366_The Rising Chorus.json b/QuestPaths/2.x - A Realm Reborn/MSQ-2/E5-2.5/366_The Rising Chorus.json index fc1d72204..24d72b214 100644 --- a/QuestPaths/2.x - A Realm Reborn/MSQ-2/E5-2.5/366_The Rising Chorus.json +++ b/QuestPaths/2.x - A Realm Reborn/MSQ-2/E5-2.5/366_The Rising Chorus.json @@ -107,7 +107,8 @@ { "TerritoryId": 156, "InteractionType": "Duty", - "ContentFinderConditionId": 32 + "ContentFinderConditionId": 32, + "AutoDutyEnabled": true } ] }, diff --git a/QuestPaths/2.x - A Realm Reborn/Unlocks/Dungeons/1131_Gilding the Bilious (Maelstrom).json b/QuestPaths/2.x - A Realm Reborn/Unlocks/Dungeons/1131_Gilding the Bilious (Maelstrom).json index e0157efee..165a1839c 100644 --- a/QuestPaths/2.x - A Realm Reborn/Unlocks/Dungeons/1131_Gilding the Bilious (Maelstrom).json +++ b/QuestPaths/2.x - A Realm Reborn/Unlocks/Dungeons/1131_Gilding the Bilious (Maelstrom).json @@ -71,7 +71,8 @@ { "TerritoryId": 155, "InteractionType": "Duty", - "ContentFinderConditionId": 5 + "ContentFinderConditionId": 5, + "AutoDutyEnabled": true } ] }, diff --git a/QuestPaths/2.x - A Realm Reborn/Unlocks/Dungeons/1132_Gilding the Bilious (Twin Adder).json b/QuestPaths/2.x - A Realm Reborn/Unlocks/Dungeons/1132_Gilding the Bilious (Twin Adder).json index 178a0b5a4..4defc6a91 100644 --- a/QuestPaths/2.x - A Realm Reborn/Unlocks/Dungeons/1132_Gilding the Bilious (Twin Adder).json +++ b/QuestPaths/2.x - A Realm Reborn/Unlocks/Dungeons/1132_Gilding the Bilious (Twin Adder).json @@ -71,7 +71,8 @@ { "TerritoryId": 155, "InteractionType": "Duty", - "ContentFinderConditionId": 5 + "ContentFinderConditionId": 5, + "AutoDutyEnabled": true } ] }, diff --git a/QuestPaths/2.x - A Realm Reborn/Unlocks/Dungeons/1133_Gilding the Bilious (Immortal Flames).json b/QuestPaths/2.x - A Realm Reborn/Unlocks/Dungeons/1133_Gilding the Bilious (Immortal Flames).json index 8915d6714..cf83d8a4c 100644 --- a/QuestPaths/2.x - A Realm Reborn/Unlocks/Dungeons/1133_Gilding the Bilious (Immortal Flames).json +++ b/QuestPaths/2.x - A Realm Reborn/Unlocks/Dungeons/1133_Gilding the Bilious (Immortal Flames).json @@ -71,7 +71,8 @@ { "TerritoryId": 155, "InteractionType": "Duty", - "ContentFinderConditionId": 5 + "ContentFinderConditionId": 5, + "AutoDutyEnabled": true } ] }, diff --git a/QuestPaths/3.x - Heavensward/Aether Currents/Coerthas Western Highlands/2111_For All the Nights to Come.json b/QuestPaths/3.x - Heavensward/Aether Currents/Coerthas Western Highlands/2111_For All the Nights to Come.json index 5c9fa391d..5961d3e18 100644 --- a/QuestPaths/3.x - Heavensward/Aether Currents/Coerthas Western Highlands/2111_For All the Nights to Come.json +++ b/QuestPaths/3.x - Heavensward/Aether Currents/Coerthas Western Highlands/2111_For All the Nights to Come.json @@ -38,7 +38,8 @@ { "TerritoryId": 397, "InteractionType": "Duty", - "ContentFinderConditionId": 36 + "ContentFinderConditionId": 36, + "AutoDutyEnabled": true } ] }, diff --git a/QuestPaths/3.x - Heavensward/MSQ/A3.2-The Dravanian Forelands/1617_Mourn in Passing.json b/QuestPaths/3.x - Heavensward/MSQ/A3.2-The Dravanian Forelands/1617_Mourn in Passing.json index 78abed7d6..a321c7415 100644 --- a/QuestPaths/3.x - Heavensward/MSQ/A3.2-The Dravanian Forelands/1617_Mourn in Passing.json +++ b/QuestPaths/3.x - Heavensward/MSQ/A3.2-The Dravanian Forelands/1617_Mourn in Passing.json @@ -78,7 +78,8 @@ { "TerritoryId": 398, "InteractionType": "Duty", - "ContentFinderConditionId": 37 + "ContentFinderConditionId": 37, + "AutoDutyEnabled": true } ] }, diff --git a/QuestPaths/3.x - Heavensward/MSQ/A3.3-The Churning Mists/1634_Into the Aery.json b/QuestPaths/3.x - Heavensward/MSQ/A3.3-The Churning Mists/1634_Into the Aery.json index 471a16662..02098cab9 100644 --- a/QuestPaths/3.x - Heavensward/MSQ/A3.3-The Churning Mists/1634_Into the Aery.json +++ b/QuestPaths/3.x - Heavensward/MSQ/A3.3-The Churning Mists/1634_Into the Aery.json @@ -42,7 +42,8 @@ { "TerritoryId": 418, "InteractionType": "Duty", - "ContentFinderConditionId": 39 + "ContentFinderConditionId": 39, + "AutoDutyEnabled": true } ] }, diff --git a/QuestPaths/3.x - Heavensward/MSQ/A4-Ishgard/1640_A Knight's Calling.json b/QuestPaths/3.x - Heavensward/MSQ/A4-Ishgard/1640_A Knight's Calling.json index 492a0d582..9165e2a02 100644 --- a/QuestPaths/3.x - Heavensward/MSQ/A4-Ishgard/1640_A Knight's Calling.json +++ b/QuestPaths/3.x - Heavensward/MSQ/A4-Ishgard/1640_A Knight's Calling.json @@ -59,7 +59,8 @@ { "TerritoryId": 419, "InteractionType": "Duty", - "ContentFinderConditionId": 34 + "ContentFinderConditionId": 34, + "AutoDutyEnabled": true } ] }, diff --git a/QuestPaths/3.x - Heavensward/MSQ/A6-The Dravanian Hinterlands/1660_Forbidden Knowledge.json b/QuestPaths/3.x - Heavensward/MSQ/A6-The Dravanian Hinterlands/1660_Forbidden Knowledge.json index cf7fe15e4..dab4f3da3 100644 --- a/QuestPaths/3.x - Heavensward/MSQ/A6-The Dravanian Hinterlands/1660_Forbidden Knowledge.json +++ b/QuestPaths/3.x - Heavensward/MSQ/A6-The Dravanian Hinterlands/1660_Forbidden Knowledge.json @@ -110,7 +110,8 @@ { "TerritoryId": 399, "InteractionType": "Duty", - "ContentFinderConditionId": 31 + "ContentFinderConditionId": 31, + "AutoDutyEnabled": true } ] }, diff --git a/QuestPaths/3.x - Heavensward/MSQ/A7-Azys Lla/1669_Heavensward.json b/QuestPaths/3.x - Heavensward/MSQ/A7-Azys Lla/1669_Heavensward.json index 6b6bd71cd..7bef51cc7 100644 --- a/QuestPaths/3.x - Heavensward/MSQ/A7-Azys Lla/1669_Heavensward.json +++ b/QuestPaths/3.x - Heavensward/MSQ/A7-Azys Lla/1669_Heavensward.json @@ -62,7 +62,8 @@ { "TerritoryId": 402, "InteractionType": "Duty", - "ContentFinderConditionId": 38 + "ContentFinderConditionId": 38, + "AutoDutyEnabled": true } ] }, diff --git a/QuestPaths/3.x - Heavensward/MSQ/C-3.2/2232_The Word of the Mother.json b/QuestPaths/3.x - Heavensward/MSQ/C-3.2/2232_The Word of the Mother.json index 8cb385f48..fe2c33676 100644 --- a/QuestPaths/3.x - Heavensward/MSQ/C-3.2/2232_The Word of the Mother.json +++ b/QuestPaths/3.x - Heavensward/MSQ/C-3.2/2232_The Word of the Mother.json @@ -77,7 +77,8 @@ { "TerritoryId": 463, "InteractionType": "Duty", - "ContentFinderConditionId": 141 + "ContentFinderConditionId": 141, + "AutoDutyEnabled": true } ] }, diff --git a/QuestPaths/3.x - Heavensward/MSQ/E-3.4/2342_Shadows of the First.json b/QuestPaths/3.x - Heavensward/MSQ/E-3.4/2342_Shadows of the First.json index a2bb1f45e..c3d9d0847 100644 --- a/QuestPaths/3.x - Heavensward/MSQ/E-3.4/2342_Shadows of the First.json +++ b/QuestPaths/3.x - Heavensward/MSQ/E-3.4/2342_Shadows of the First.json @@ -57,7 +57,8 @@ { "TerritoryId": 155, "InteractionType": "Duty", - "ContentFinderConditionId": 182 + "ContentFinderConditionId": 182, + "AutoDutyEnabled": true } ] }, diff --git a/QuestPaths/3.x - Heavensward/MSQ/F-3.5/2354_Griffin, Griffin on the Wall.json b/QuestPaths/3.x - Heavensward/MSQ/F-3.5/2354_Griffin, Griffin on the Wall.json index feba4bf06..42aef1f00 100644 --- a/QuestPaths/3.x - Heavensward/MSQ/F-3.5/2354_Griffin, Griffin on the Wall.json +++ b/QuestPaths/3.x - Heavensward/MSQ/F-3.5/2354_Griffin, Griffin on the Wall.json @@ -109,7 +109,8 @@ { "TerritoryId": 152, "InteractionType": "Duty", - "ContentFinderConditionId": 219 + "ContentFinderConditionId": 219, + "AutoDutyEnabled": true } ] }, diff --git a/QuestPaths/4.x - Stormblood/MSQ/A1.3-Rhalgr's Reach 2/2469_Not without Incident.json b/QuestPaths/4.x - Stormblood/MSQ/A1.3-Rhalgr's Reach 2/2469_Not without Incident.json index 214a764af..6477857e4 100644 --- a/QuestPaths/4.x - Stormblood/MSQ/A1.3-Rhalgr's Reach 2/2469_Not without Incident.json +++ b/QuestPaths/4.x - Stormblood/MSQ/A1.3-Rhalgr's Reach 2/2469_Not without Incident.json @@ -87,7 +87,8 @@ { "TerritoryId": 680, "InteractionType": "Duty", - "ContentFinderConditionId": 238 + "ContentFinderConditionId": 238, + "AutoDutyEnabled": true } ] }, diff --git a/QuestPaths/4.x - Stormblood/MSQ/A5-Yanxia 2/2524_The Die Is Cast.json b/QuestPaths/4.x - Stormblood/MSQ/A5-Yanxia 2/2524_The Die Is Cast.json index 2811433e5..702737b31 100644 --- a/QuestPaths/4.x - Stormblood/MSQ/A5-Yanxia 2/2524_The Die Is Cast.json +++ b/QuestPaths/4.x - Stormblood/MSQ/A5-Yanxia 2/2524_The Die Is Cast.json @@ -114,7 +114,8 @@ { "TerritoryId": 614, "InteractionType": "Duty", - "ContentFinderConditionId": 241 + "ContentFinderConditionId": 241, + "AutoDutyEnabled": true } ] }, diff --git a/QuestPaths/4.x - Stormblood/MSQ/A6.2-Peaks 2/2544_The Price of Freedom.json b/QuestPaths/4.x - Stormblood/MSQ/A6.2-Peaks 2/2544_The Price of Freedom.json index 3cdd92981..a0b37e350 100644 --- a/QuestPaths/4.x - Stormblood/MSQ/A6.2-Peaks 2/2544_The Price of Freedom.json +++ b/QuestPaths/4.x - Stormblood/MSQ/A6.2-Peaks 2/2544_The Price of Freedom.json @@ -114,7 +114,8 @@ { "TerritoryId": 620, "InteractionType": "Duty", - "ContentFinderConditionId": 242 + "ContentFinderConditionId": 242, + "AutoDutyEnabled": true } ] }, diff --git a/QuestPaths/4.x - Stormblood/MSQ/B-4.1/2964_The Mad King's Trove.json b/QuestPaths/4.x - Stormblood/MSQ/B-4.1/2964_The Mad King's Trove.json index d23fe19c2..0856bbe6f 100644 --- a/QuestPaths/4.x - Stormblood/MSQ/B-4.1/2964_The Mad King's Trove.json +++ b/QuestPaths/4.x - Stormblood/MSQ/B-4.1/2964_The Mad King's Trove.json @@ -98,7 +98,8 @@ { "TerritoryId": 621, "InteractionType": "Duty", - "ContentFinderConditionId": 279 + "ContentFinderConditionId": 279, + "AutoDutyEnabled": true } ] }, diff --git a/QuestPaths/4.x - Stormblood/MSQ/E-4.4/3144_Feel the Burn.json b/QuestPaths/4.x - Stormblood/MSQ/E-4.4/3144_Feel the Burn.json index 25ec97183..fba0763d8 100644 --- a/QuestPaths/4.x - Stormblood/MSQ/E-4.4/3144_Feel the Burn.json +++ b/QuestPaths/4.x - Stormblood/MSQ/E-4.4/3144_Feel the Burn.json @@ -40,7 +40,8 @@ { "TerritoryId": 614, "InteractionType": "Duty", - "ContentFinderConditionId": 585 + "ContentFinderConditionId": 585, + "AutoDutyEnabled": true } ] }, diff --git a/QuestPaths/4.x - Stormblood/MSQ/F-4.5/3183_The Face of War.json b/QuestPaths/4.x - Stormblood/MSQ/F-4.5/3183_The Face of War.json index c32f5c02c..fb9960de0 100644 --- a/QuestPaths/4.x - Stormblood/MSQ/F-4.5/3183_The Face of War.json +++ b/QuestPaths/4.x - Stormblood/MSQ/F-4.5/3183_The Face of War.json @@ -27,7 +27,8 @@ { "TerritoryId": 829, "InteractionType": "Duty", - "ContentFinderConditionId": 611 + "ContentFinderConditionId": 611, + "AutoDutyEnabled": true } ] }, diff --git a/QuestPaths/5.x - Shadowbringers/MSQ/A4-Crystarium 2/3300_The Lightwardens.json b/QuestPaths/5.x - Shadowbringers/MSQ/A4-Crystarium 2/3300_The Lightwardens.json index d4eef79d6..7f9a5a948 100644 --- a/QuestPaths/5.x - Shadowbringers/MSQ/A4-Crystarium 2/3300_The Lightwardens.json +++ b/QuestPaths/5.x - Shadowbringers/MSQ/A4-Crystarium 2/3300_The Lightwardens.json @@ -120,7 +120,8 @@ { "TerritoryId": 813, "InteractionType": "Duty", - "ContentFinderConditionId": 676 + "ContentFinderConditionId": 676, + "AutoDutyEnabled": true } ] }, diff --git a/QuestPaths/5.x - Shadowbringers/MSQ/B-Il Mheg/3312_The Key to the Castle.json b/QuestPaths/5.x - Shadowbringers/MSQ/B-Il Mheg/3312_The Key to the Castle.json index 8f5193b0b..d1dfe7dcf 100644 --- a/QuestPaths/5.x - Shadowbringers/MSQ/B-Il Mheg/3312_The Key to the Castle.json +++ b/QuestPaths/5.x - Shadowbringers/MSQ/B-Il Mheg/3312_The Key to the Castle.json @@ -49,7 +49,8 @@ { "TerritoryId": 816, "InteractionType": "Duty", - "ContentFinderConditionId": 649 + "ContentFinderConditionId": 649, + "AutoDutyEnabled": true } ] }, diff --git a/QuestPaths/5.x - Shadowbringers/MSQ/C-Rak'tika/3340_The Burden of Knowledge.json b/QuestPaths/5.x - Shadowbringers/MSQ/C-Rak'tika/3340_The Burden of Knowledge.json index 075dff0cc..39284d2f7 100644 --- a/QuestPaths/5.x - Shadowbringers/MSQ/C-Rak'tika/3340_The Burden of Knowledge.json +++ b/QuestPaths/5.x - Shadowbringers/MSQ/C-Rak'tika/3340_The Burden of Knowledge.json @@ -61,7 +61,8 @@ { "TerritoryId": 817, "InteractionType": "Duty", - "ContentFinderConditionId": 651 + "ContentFinderConditionId": 651, + "AutoDutyEnabled": true } ] }, diff --git a/QuestPaths/5.x - Shadowbringers/MSQ/E-Kholusia 2/3643_Extinguishing the Last Light.json b/QuestPaths/5.x - Shadowbringers/MSQ/E-Kholusia 2/3643_Extinguishing the Last Light.json index 9ee12fd73..80cbd172f 100644 --- a/QuestPaths/5.x - Shadowbringers/MSQ/E-Kholusia 2/3643_Extinguishing the Last Light.json +++ b/QuestPaths/5.x - Shadowbringers/MSQ/E-Kholusia 2/3643_Extinguishing the Last Light.json @@ -62,7 +62,8 @@ { "TerritoryId": 814, "InteractionType": "Duty", - "ContentFinderConditionId": 659 + "ContentFinderConditionId": 659, + "AutoDutyEnabled": true } ] }, diff --git a/QuestPaths/5.x - Shadowbringers/MSQ/H-5.2/3769_Beneath the Surface.json b/QuestPaths/5.x - Shadowbringers/MSQ/H-5.2/3769_Beneath the Surface.json index c947dc964..41dd83152 100644 --- a/QuestPaths/5.x - Shadowbringers/MSQ/H-5.2/3769_Beneath the Surface.json +++ b/QuestPaths/5.x - Shadowbringers/MSQ/H-5.2/3769_Beneath the Surface.json @@ -40,7 +40,8 @@ { "TerritoryId": 814, "InteractionType": "Duty", - "ContentFinderConditionId": 714 + "ContentFinderConditionId": 714, + "AutoDutyEnabled": true } ] }, diff --git a/QuestPaths/6.x - Endwalker/MSQ/A-Thavnair1-Labyrinthos1/4377_In the Dark of the Tower.json b/QuestPaths/6.x - Endwalker/MSQ/A-Thavnair1-Labyrinthos1/4377_In the Dark of the Tower.json index 22f2d97ab..c4336959c 100644 --- a/QuestPaths/6.x - Endwalker/MSQ/A-Thavnair1-Labyrinthos1/4377_In the Dark of the Tower.json +++ b/QuestPaths/6.x - Endwalker/MSQ/A-Thavnair1-Labyrinthos1/4377_In the Dark of the Tower.json @@ -55,7 +55,8 @@ { "TerritoryId": 957, "InteractionType": "Duty", - "ContentFinderConditionId": 783 + "ContentFinderConditionId": 783, + "AutoDutyEnabled": true } ] }, diff --git a/QuestPaths/6.x - Endwalker/MSQ/D-Thavnair2/4409_Skies Aflame.json b/QuestPaths/6.x - Endwalker/MSQ/D-Thavnair2/4409_Skies Aflame.json index 37285324e..9c0d3a487 100644 --- a/QuestPaths/6.x - Endwalker/MSQ/D-Thavnair2/4409_Skies Aflame.json +++ b/QuestPaths/6.x - Endwalker/MSQ/D-Thavnair2/4409_Skies Aflame.json @@ -71,7 +71,8 @@ { "TerritoryId": 957, "InteractionType": "Duty", - "ContentFinderConditionId": 789 + "ContentFinderConditionId": 789, + "AutoDutyEnabled": true } ] }, diff --git a/QuestPaths/6.x - Endwalker/MSQ/E-Elpis/4437_Caging the Messenger.json b/QuestPaths/6.x - Endwalker/MSQ/E-Elpis/4437_Caging the Messenger.json index 0a7e8e555..9dd680ebd 100644 --- a/QuestPaths/6.x - Endwalker/MSQ/E-Elpis/4437_Caging the Messenger.json +++ b/QuestPaths/6.x - Endwalker/MSQ/E-Elpis/4437_Caging the Messenger.json @@ -39,7 +39,8 @@ { "TerritoryId": 961, "InteractionType": "Duty", - "ContentFinderConditionId": 787 + "ContentFinderConditionId": 787, + "AutoDutyEnabled": true } ] }, diff --git a/QuestPaths/6.x - Endwalker/MSQ/F-Labyrinthos2/4449_Her Children One and All.json b/QuestPaths/6.x - Endwalker/MSQ/F-Labyrinthos2/4449_Her Children One and All.json index 5294bab43..f41bf9552 100644 --- a/QuestPaths/6.x - Endwalker/MSQ/F-Labyrinthos2/4449_Her Children One and All.json +++ b/QuestPaths/6.x - Endwalker/MSQ/F-Labyrinthos2/4449_Her Children One and All.json @@ -38,7 +38,8 @@ { "TerritoryId": 956, "InteractionType": "Duty", - "ContentFinderConditionId": 786 + "ContentFinderConditionId": 786, + "AutoDutyEnabled": true } ] }, @@ -63,7 +64,8 @@ { "TerritoryId": 1030, "InteractionType": "Duty", - "ContentFinderConditionId": 790 + "ContentFinderConditionId": 790, + "AutoDutyEnabled": true } ] }, diff --git a/QuestPaths/6.x - Endwalker/MSQ/H-6.1/4529_Alzadaals Legacy.json b/QuestPaths/6.x - Endwalker/MSQ/H-6.1/4529_Alzadaals Legacy.json index c79468bb3..dc9324d1d 100644 --- a/QuestPaths/6.x - Endwalker/MSQ/H-6.1/4529_Alzadaals Legacy.json +++ b/QuestPaths/6.x - Endwalker/MSQ/H-6.1/4529_Alzadaals Legacy.json @@ -23,7 +23,8 @@ { "TerritoryId": 957, "InteractionType": "Duty", - "ContentFinderConditionId": 844 + "ContentFinderConditionId": 844, + "AutoDutyEnabled": false } ] }, diff --git a/QuestPaths/6.x - Endwalker/MSQ/I-6.2/4592_In Search of Azdaja.json b/QuestPaths/6.x - Endwalker/MSQ/I-6.2/4592_In Search of Azdaja.json index cc6ea1fad..c91af5976 100644 --- a/QuestPaths/6.x - Endwalker/MSQ/I-6.2/4592_In Search of Azdaja.json +++ b/QuestPaths/6.x - Endwalker/MSQ/I-6.2/4592_In Search of Azdaja.json @@ -71,7 +71,8 @@ { "TerritoryId": 1056, "InteractionType": "Duty", - "ContentFinderConditionId": 869 + "ContentFinderConditionId": 869, + "AutoDutyEnabled": false } ] }, diff --git a/QuestPaths/6.x - Endwalker/MSQ/J-6.3/4674_King of the Mountain.json b/QuestPaths/6.x - Endwalker/MSQ/J-6.3/4674_King of the Mountain.json index 130cb389e..df1bd69f0 100644 --- a/QuestPaths/6.x - Endwalker/MSQ/J-6.3/4674_King of the Mountain.json +++ b/QuestPaths/6.x - Endwalker/MSQ/J-6.3/4674_King of the Mountain.json @@ -57,7 +57,8 @@ "TerritoryId": 958, "InteractionType": "Duty", "Comment": "Lapis Manalis", - "ContentFinderConditionId": 896 + "ContentFinderConditionId": 896, + "AutoDutyEnabled": true } ] }, diff --git a/QuestPaths/6.x - Endwalker/MSQ/K-6.4/4736_Going Haam.json b/QuestPaths/6.x - Endwalker/MSQ/K-6.4/4736_Going Haam.json index 9f738bc8f..8af360800 100644 --- a/QuestPaths/6.x - Endwalker/MSQ/K-6.4/4736_Going Haam.json +++ b/QuestPaths/6.x - Endwalker/MSQ/K-6.4/4736_Going Haam.json @@ -160,7 +160,8 @@ { "TerritoryId": 962, "InteractionType": "Duty", - "ContentFinderConditionId": 822 + "ContentFinderConditionId": 822, + "AutoDutyEnabled": true } ] }, diff --git a/QuestPaths/6.x - Endwalker/MSQ/L-6.5/4748_Down in the Dark.json b/QuestPaths/6.x - Endwalker/MSQ/L-6.5/4748_Down in the Dark.json index 3930a8dde..96953ea27 100644 --- a/QuestPaths/6.x - Endwalker/MSQ/L-6.5/4748_Down in the Dark.json +++ b/QuestPaths/6.x - Endwalker/MSQ/L-6.5/4748_Down in the Dark.json @@ -24,7 +24,8 @@ { "TerritoryId": 1162, "InteractionType": "Duty", - "ContentFinderConditionId": 823 + "ContentFinderConditionId": 823, + "AutoDutyEnabled": true } ] }, diff --git a/QuestPaths/7.x - Dawntrail/MSQ/A-Kozama'uka1-Urqopacha1/4879_For All Turali.json b/QuestPaths/7.x - Dawntrail/MSQ/A-Kozama'uka1-Urqopacha1/4879_For All Turali.json index 28e35590e..28a6850cd 100644 --- a/QuestPaths/7.x - Dawntrail/MSQ/A-Kozama'uka1-Urqopacha1/4879_For All Turali.json +++ b/QuestPaths/7.x - Dawntrail/MSQ/A-Kozama'uka1-Urqopacha1/4879_For All Turali.json @@ -58,7 +58,8 @@ { "TerritoryId": 1185, "InteractionType": "Duty", - "ContentFinderConditionId": 826 + "ContentFinderConditionId": 826, + "AutoDutyEnabled": true } ] }, diff --git a/QuestPaths/7.x - Dawntrail/MSQ/B-Kozama'uka2-Urqopacha2/4891_The High Luminary.json b/QuestPaths/7.x - Dawntrail/MSQ/B-Kozama'uka2-Urqopacha2/4891_The High Luminary.json index 8b1a2021b..2ef3a8e69 100644 --- a/QuestPaths/7.x - Dawntrail/MSQ/B-Kozama'uka2-Urqopacha2/4891_The High Luminary.json +++ b/QuestPaths/7.x - Dawntrail/MSQ/B-Kozama'uka2-Urqopacha2/4891_The High Luminary.json @@ -23,7 +23,8 @@ { "TerritoryId": 1187, "InteractionType": "Duty", - "ContentFinderConditionId": 824 + "ContentFinderConditionId": 824, + "AutoDutyEnabled": true } ] }, diff --git a/QuestPaths/7.x - Dawntrail/MSQ/C-Yak T'el/4909_Road to the Golden City.json b/QuestPaths/7.x - Dawntrail/MSQ/C-Yak T'el/4909_Road to the Golden City.json index 384623cef..528fde3f8 100644 --- a/QuestPaths/7.x - Dawntrail/MSQ/C-Yak T'el/4909_Road to the Golden City.json +++ b/QuestPaths/7.x - Dawntrail/MSQ/C-Yak T'el/4909_Road to the Golden City.json @@ -115,7 +115,8 @@ { "TerritoryId": 1189, "InteractionType": "Duty", - "ContentFinderConditionId": 829 + "ContentFinderConditionId": 829, + "AutoDutyEnabled": true } ] }, diff --git a/QuestPaths/7.x - Dawntrail/MSQ/D-Shaaloani-HeritageFound1/4926_All Aboard.json b/QuestPaths/7.x - Dawntrail/MSQ/D-Shaaloani-HeritageFound1/4926_All Aboard.json index 51a119877..682576cb3 100644 --- a/QuestPaths/7.x - Dawntrail/MSQ/D-Shaaloani-HeritageFound1/4926_All Aboard.json +++ b/QuestPaths/7.x - Dawntrail/MSQ/D-Shaaloani-HeritageFound1/4926_All Aboard.json @@ -60,7 +60,8 @@ { "TerritoryId": 1219, "InteractionType": "Duty", - "ContentFinderConditionId": 831 + "ContentFinderConditionId": 831, + "AutoDutyEnabled": true } ] }, diff --git a/QuestPaths/7.x - Dawntrail/MSQ/E-SolutionNine-HeritageFound2/4945_The Resilient Son.json b/QuestPaths/7.x - Dawntrail/MSQ/E-SolutionNine-HeritageFound2/4945_The Resilient Son.json index 8e9677088..15817e8d1 100644 --- a/QuestPaths/7.x - Dawntrail/MSQ/E-SolutionNine-HeritageFound2/4945_The Resilient Son.json +++ b/QuestPaths/7.x - Dawntrail/MSQ/E-SolutionNine-HeritageFound2/4945_The Resilient Son.json @@ -39,7 +39,8 @@ { "TerritoryId": 1191, "InteractionType": "Duty", - "ContentFinderConditionId": 825 + "ContentFinderConditionId": 825, + "AutoDutyEnabled": true } ] }, diff --git a/QuestPaths/7.x - Dawntrail/MSQ/F-Living Memory/4959_Dawntrail.json b/QuestPaths/7.x - Dawntrail/MSQ/F-Living Memory/4959_Dawntrail.json index 778f11db5..cafc8975c 100644 --- a/QuestPaths/7.x - Dawntrail/MSQ/F-Living Memory/4959_Dawntrail.json +++ b/QuestPaths/7.x - Dawntrail/MSQ/F-Living Memory/4959_Dawntrail.json @@ -56,7 +56,8 @@ { "TerritoryId": 1192, "InteractionType": "Duty", - "ContentFinderConditionId": 827 + "ContentFinderConditionId": 827, + "AutoDutyEnabled": true } ] }, diff --git a/QuestPaths/7.x - Dawntrail/MSQ/G-7.1/5246_In Search of the Past.json b/QuestPaths/7.x - Dawntrail/MSQ/G-7.1/5246_In Search of the Past.json index 6d0878d14..40f6d44d7 100644 --- a/QuestPaths/7.x - Dawntrail/MSQ/G-7.1/5246_In Search of the Past.json +++ b/QuestPaths/7.x - Dawntrail/MSQ/G-7.1/5246_In Search of the Past.json @@ -122,7 +122,8 @@ { "TerritoryId": 1191, "InteractionType": "Duty", - "ContentFinderConditionId": 1008 + "ContentFinderConditionId": 1008, + "AutoDutyEnabled": true } ] }, diff --git a/QuestPaths/quest-v1.json b/QuestPaths/quest-v1.json index cb035ef71..eab9789a6 100644 --- a/QuestPaths/quest-v1.json +++ b/QuestPaths/quest-v1.json @@ -1217,6 +1217,9 @@ "exclusiveMinimum": 0, "exclusiveMaximum": 3000 }, + "AutoDutyEnabled": { + "type": "boolean" + }, "DataId": { "type": "null" }, diff --git a/Questionable.Model/Questing/QuestStep.cs b/Questionable.Model/Questing/QuestStep.cs index 0b4a05a21..bd1ce3040 100644 --- a/Questionable.Model/Questing/QuestStep.cs +++ b/Questionable.Model/Questing/QuestStep.cs @@ -74,6 +74,7 @@ public sealed class QuestStep public JumpDestination? JumpDestination { get; set; } public uint? ContentFinderConditionId { get; set; } + public bool AutoDutyEnabled { get; set; } public SkipConditions? SkipConditions { get; set; } public List?> RequiredQuestVariables { get; set; } = new(); diff --git a/Questionable/Configuration.cs b/Questionable/Configuration.cs index b4eb5a5b8..90c42bb50 100644 --- a/Questionable/Configuration.cs +++ b/Questionable/Configuration.cs @@ -1,4 +1,5 @@ -using Dalamud.Configuration; +using System.Collections.Generic; +using Dalamud.Configuration; using Dalamud.Game.Text; using FFXIVClientStructs.FFXIV.Client.UI.Agent; using LLib.ImGui; @@ -12,6 +13,7 @@ internal sealed class Configuration : IPluginConfiguration public int Version { get; set; } = 1; public int PluginSetupCompleteVersion { get; set; } public GeneralConfiguration General { get; } = new(); + public DutyConfiguration Duties { get; } = new(); public NotificationConfiguration Notifications { get; } = new(); public AdvancedConfiguration Advanced { get; } = new(); public WindowConfig DebugWindowConfig { get; } = new(); @@ -32,6 +34,13 @@ internal sealed class Configuration : IPluginConfiguration public bool ConfigureTextAdvance { get; set; } = true; } + internal sealed class DutyConfiguration + { + public bool RunInstancedContentWithAutoDuty { get; set; } + public HashSet WhitelistedDutyCfcIds { get; set; } = []; + public HashSet BlacklistedDutyCfcIds { get; set; } = []; + } + internal sealed class NotificationConfiguration { public bool Enabled { get; set; } = true; diff --git a/Questionable/Controller/QuestRegistry.cs b/Questionable/Controller/QuestRegistry.cs index c948abe23..d6641073c 100644 --- a/Questionable/Controller/QuestRegistry.cs +++ b/Questionable/Controller/QuestRegistry.cs @@ -29,7 +29,8 @@ internal sealed class QuestRegistry private readonly LeveData _leveData; private readonly ICallGateProvider _reloadDataIpc; - private readonly Dictionary _quests = new(); + private readonly Dictionary _quests = []; + private readonly Dictionary _contentFinderConditionIds = []; public QuestRegistry(IDalamudPluginInterface pluginInterface, QuestData questData, QuestValidator questValidator, JsonSchemaValidator jsonSchemaValidator, @@ -55,6 +56,7 @@ internal sealed class QuestRegistry { _questValidator.Reset(); _quests.Clear(); + _contentFinderConditionIds.Clear(); LoadQuestsFromAssembly(); LoadQuestsFromProjectDirectory(); @@ -70,6 +72,7 @@ internal sealed class QuestRegistry "Failed to load all quests from user directory (some may have been successfully loaded)"); } + LoadCfcIds(); ValidateQuests(); Reloaded?.Invoke(this, EventArgs.Empty); try @@ -142,6 +145,18 @@ internal sealed class QuestRegistry } } + private void LoadCfcIds() + { + foreach (var quest in _quests.Values) + { + foreach (var dutyStep in quest.AllSteps().Where(x => + x.Step.InteractionType == EInteractionType.Duty && x.Step.ContentFinderConditionId != null)) + { + _contentFinderConditionIds[dutyStep.Step.ContentFinderConditionId!.Value] = (quest.Id, dutyStep.Step); + } + } + } + private void ValidateQuests() { _questValidator.Validate(_quests.Values.Where(x => x.Source != Quest.ESource.Assembly).ToList()); @@ -223,4 +238,16 @@ internal sealed class QuestRegistry .Where(x => IsKnownQuest(x.QuestId)) .ToList(); } + + public bool TryGetDutyByContentFinderConditionId(uint cfcId, out bool autoDutyEnabledByDefault) + { + if (_contentFinderConditionIds.TryGetValue(cfcId, out var value)) + { + autoDutyEnabledByDefault = value.Step.AutoDutyEnabled; + return true; + } + + autoDutyEnabledByDefault = false; + return false; + } } diff --git a/Questionable/Controller/Steps/Common/SendNotification.cs b/Questionable/Controller/Steps/Common/SendNotification.cs index 7334ca075..e83a1186c 100644 --- a/Questionable/Controller/Steps/Common/SendNotification.cs +++ b/Questionable/Controller/Steps/Common/SendNotification.cs @@ -13,6 +13,7 @@ internal static class SendNotification { internal sealed class Factory( AutomatonIpc automatonIpc, + AutoDutyIpc autoDutyIpc, TerritoryData territoryData) : SimpleTaskFactory { public override ITask? CreateTask(Quest quest, QuestSequence sequence, QuestStep step) @@ -21,7 +22,7 @@ internal static class SendNotification { EInteractionType.Snipe when !automatonIpc.IsAutoSnipeEnabled => new Task(step.InteractionType, step.Comment), - EInteractionType.Duty => + EInteractionType.Duty when !autoDutyIpc.IsConfiguredToRunContent(step.ContentFinderConditionId, step.AutoDutyEnabled) => new Task(step.InteractionType, step.ContentFinderConditionId.HasValue ? territoryData.GetContentFinderConditionName(step.ContentFinderConditionId.Value) : step.Comment), diff --git a/Questionable/Controller/Steps/Interactions/Duty.cs b/Questionable/Controller/Steps/Interactions/Duty.cs index 42c94d87b..fab5c6ed3 100644 --- a/Questionable/Controller/Steps/Interactions/Duty.cs +++ b/Questionable/Controller/Steps/Interactions/Duty.cs @@ -1,6 +1,10 @@ using System; +using System.Collections.Generic; using Dalamud.Game.ClientState.Conditions; using Dalamud.Plugin.Services; +using Questionable.Controller.Steps.Shared; +using Questionable.Data; +using Questionable.External; using Questionable.Functions; using Questionable.Model; using Questionable.Model.Questing; @@ -9,26 +13,86 @@ namespace Questionable.Controller.Steps.Interactions; internal static class Duty { - internal sealed class Factory : SimpleTaskFactory + internal sealed class Factory(AutoDutyIpc autoDutyIpc) : ITaskFactory { - public override ITask? CreateTask(Quest quest, QuestSequence sequence, QuestStep step) + public IEnumerable CreateAllTasks(Quest quest, QuestSequence sequence, QuestStep step) { if (step.InteractionType != EInteractionType.Duty) - return null; + yield break; ArgumentNullException.ThrowIfNull(step.ContentFinderConditionId); - return new Task(step.ContentFinderConditionId.Value); + + if (autoDutyIpc.IsConfiguredToRunContent(step.ContentFinderConditionId, step.AutoDutyEnabled)) + { + yield return new StartAutoDutyTask(step.ContentFinderConditionId.Value); + yield return new WaitAutoDutyTask(step.ContentFinderConditionId.Value); + yield return new WaitAtEnd.WaitNextStepOrSequence(); + } + else + { + yield return new OpenDutyFinderTask(step.ContentFinderConditionId.Value); + } } } - internal sealed record Task(uint ContentFinderConditionId) : ITask + internal sealed record StartAutoDutyTask(uint ContentFinderConditionId) : ITask + { + public override string ToString() => $"StartAutoDuty({ContentFinderConditionId})"; + } + + internal sealed class StartAutoDutyExecutor( + AutoDutyIpc autoDutyIpc, + TerritoryData territoryData, + IClientState clientState) : TaskExecutor + { + protected override bool Start() + { + autoDutyIpc.StartInstance(Task.ContentFinderConditionId); + return true; + } + + public override ETaskResult Update() + { + if (!territoryData.TryGetTerritoryIdForContentFinderCondition(Task.ContentFinderConditionId, + out uint territoryId)) + throw new TaskException("Failed to get territory ID for content finder condition"); + + return clientState.TerritoryType == territoryId ? ETaskResult.TaskComplete : ETaskResult.StillRunning; + } + } + + internal sealed record WaitAutoDutyTask(uint ContentFinderConditionId) : ITask + { + public override string ToString() => $"Wait(AutoDuty, left instance {ContentFinderConditionId})"; + } + + internal sealed class WaitAutoDutyExecutor( + AutoDutyIpc autoDutyIpc, + TerritoryData territoryData, + IClientState clientState) : TaskExecutor + { + protected override bool Start() => true; + + public override ETaskResult Update() + { + if (!territoryData.TryGetTerritoryIdForContentFinderCondition(Task.ContentFinderConditionId, + out uint territoryId)) + throw new TaskException("Failed to get territory ID for content finder condition"); + + return clientState.TerritoryType != territoryId && autoDutyIpc.IsStopped() + ? ETaskResult.TaskComplete + : ETaskResult.StillRunning; + } + } + + internal sealed record OpenDutyFinderTask(uint ContentFinderConditionId) : ITask { public override string ToString() => $"OpenDutyFinder({ContentFinderConditionId})"; } - internal sealed class OpenDutyWindowExecutor( + internal sealed class OpenDutyFinderExecutor( GameFunctions gameFunctions, - ICondition condition) : TaskExecutor + ICondition condition) : TaskExecutor { protected override bool Start() { diff --git a/Questionable/Controller/Steps/Shared/WaitAtEnd.cs b/Questionable/Controller/Steps/Shared/WaitAtEnd.cs index d64c009bf..0b3a02ba9 100644 --- a/Questionable/Controller/Steps/Shared/WaitAtEnd.cs +++ b/Questionable/Controller/Steps/Shared/WaitAtEnd.cs @@ -8,6 +8,7 @@ using Dalamud.Plugin.Services; using Questionable.Controller.Steps.Common; using Questionable.Controller.Utils; using Questionable.Data; +using Questionable.External; using Questionable.Functions; using Questionable.Model; using Questionable.Model.Questing; @@ -19,7 +20,8 @@ internal static class WaitAtEnd internal sealed class Factory( IClientState clientState, ICondition condition, - TerritoryData territoryData) + TerritoryData territoryData, + AutoDutyIpc autoDutyIpc) : ITaskFactory { public IEnumerable CreateAllTasks(Quest quest, QuestSequence sequence, QuestStep step) @@ -50,7 +52,7 @@ internal static class WaitAtEnd case EInteractionType.Snipe: return [new WaitNextStepOrSequence()]; - case EInteractionType.Duty: + case EInteractionType.Duty when !autoDutyIpc.IsConfiguredToRunContent(step.ContentFinderConditionId, step.AutoDutyEnabled): case EInteractionType.SinglePlayerDuty: return [new EndAutomation()]; diff --git a/Questionable/Data/TerritoryData.cs b/Questionable/Data/TerritoryData.cs index ee91f6b44..970718b2f 100644 --- a/Questionable/Data/TerritoryData.cs +++ b/Questionable/Data/TerritoryData.cs @@ -1,8 +1,11 @@ -using System.Collections.Generic; +using System; +using System.Collections.Generic; using System.Collections.Immutable; using System.Globalization; using System.Linq; +using Dalamud.Game; using Dalamud.Plugin.Services; +using Dalamud.Utility; using FFXIVClientStructs.FFXIV.Client.Game.Character; using Lumina.Excel.Sheets; @@ -15,6 +18,7 @@ internal sealed class TerritoryData private readonly ImmutableDictionary _dutyTerritories; private readonly ImmutableDictionary _instanceNames; private readonly ImmutableDictionary _contentFinderConditionNames; + private readonly ImmutableDictionary _contentFinderConditionIds; public TerritoryData(IDataManager dataManager) { @@ -40,11 +44,14 @@ internal sealed class TerritoryData _instanceNames = dataManager.GetExcelSheet() .Where(x => x.RowId > 0 && x.Content.RowId != 0 && x.ContentLinkType == 1 && x.ContentType.RowId != 6) - .ToImmutableDictionary(x => x.Content.RowId, x => x.Name.ToString()); + .ToImmutableDictionary(x => x.Content.RowId, x => x.Name.ToDalamudString().ToString()); _contentFinderConditionNames = dataManager.GetExcelSheet() .Where(x => x.RowId > 0 && x.Content.RowId != 0 && x.ContentLinkType == 1 && x.ContentType.RowId != 6) - .ToImmutableDictionary(x => x.RowId, x => x.Name.ToString()); + .ToImmutableDictionary(x => x.RowId, x => FixName(x.Name.ToDalamudString().ToString(), dataManager.Language)); + _contentFinderConditionIds = dataManager.GetExcelSheet() + .Where(x => x.RowId > 0 && x.Content.RowId != 0 && x.ContentLinkType == 1 && x.ContentType.RowId != 6) + .ToImmutableDictionary(x => x.RowId, x => x.TerritoryType.RowId); } public string? GetName(ushort territoryId) => _territoryNames.GetValueOrDefault(territoryId); @@ -68,4 +75,15 @@ internal sealed class TerritoryData public string? GetInstanceName(ushort instanceId) => _instanceNames.GetValueOrDefault(instanceId); public string? GetContentFinderConditionName(uint cfcId) => _contentFinderConditionNames.GetValueOrDefault(cfcId); + + public bool TryGetTerritoryIdForContentFinderCondition(uint cfcId, out uint territoryId) => + _contentFinderConditionIds.TryGetValue(cfcId, out territoryId); + + private static string FixName(string name, ClientLanguage language) + { + if (string.IsNullOrEmpty(name) || language != ClientLanguage.English) + return name; + + return string.Concat(name[0].ToString().ToUpper(CultureInfo.InvariantCulture), name.AsSpan(1)); + } } diff --git a/Questionable/External/AutoDutyIpc.cs b/Questionable/External/AutoDutyIpc.cs new file mode 100644 index 000000000..1089efcc3 --- /dev/null +++ b/Questionable/External/AutoDutyIpc.cs @@ -0,0 +1,89 @@ +using Dalamud.Plugin; +using Dalamud.Plugin.Ipc; +using Dalamud.Plugin.Ipc.Exceptions; +using Microsoft.Extensions.Logging; +using Questionable.Controller.Steps; +using Questionable.Data; + +namespace Questionable.External; + +internal sealed class AutoDutyIpc +{ + private readonly Configuration _configuration; + private readonly TerritoryData _territoryData; + private readonly ILogger _logger; + private readonly ICallGateSubscriber _contentHasPath; + private readonly ICallGateSubscriber _run; + private readonly ICallGateSubscriber _isStopped; + + public AutoDutyIpc(IDalamudPluginInterface pluginInterface, Configuration configuration, TerritoryData territoryData, ILogger logger) + { + _configuration = configuration; + _territoryData = territoryData; + _logger = logger; + _contentHasPath = pluginInterface.GetIpcSubscriber("AutoDuty.ContentHasPath"); + _run = pluginInterface.GetIpcSubscriber("AutoDuty.Run"); + _isStopped = pluginInterface.GetIpcSubscriber("AutoDuty.IsStopped"); + } + + public bool IsConfiguredToRunContent(uint? cfcId, bool autoDutyEnabled) + { + if (cfcId == null) + return false; + + if (!_configuration.Duties.RunInstancedContentWithAutoDuty) + return false; + + if (_configuration.Duties.BlacklistedDutyCfcIds.Contains(cfcId.Value)) + return false; + + if (_configuration.Duties.WhitelistedDutyCfcIds.Contains(cfcId.Value) && + _territoryData.TryGetTerritoryIdForContentFinderCondition(cfcId.Value, out _)) + return true; + + return autoDutyEnabled && HasPath(cfcId.Value); + } + + public bool HasPath(uint cfcId) + { + if (!_territoryData.TryGetTerritoryIdForContentFinderCondition(cfcId, out uint territoryType)) + return false; + + try + { + return _contentHasPath.InvokeFunc(territoryType); + } + catch (IpcError e) + { + _logger.LogWarning("Unable to query AutoDuty for path in territory {TerritoryType}: {Message}", territoryType, e.Message); + return false; + } + } + + public void StartInstance(uint cfcId) + { + if (!_territoryData.TryGetTerritoryIdForContentFinderCondition(cfcId, out uint territoryType)) + throw new TaskException($"Unknown ContentFinderConditionId {cfcId}"); + + try + { + _run.InvokeAction(territoryType, 0, true); + } + catch (IpcError e) + { + throw new TaskException($"Unable to run content with AutoDuty: {e.Message}", e); + } + } + + public bool IsStopped() + { + try + { + return _isStopped.InvokeFunc(); + } + catch (IpcError) + { + return true; + } + } +} diff --git a/Questionable/QuestionablePlugin.cs b/Questionable/QuestionablePlugin.cs index 5964eb45a..1072a54f2 100644 --- a/Questionable/QuestionablePlugin.cs +++ b/Questionable/QuestionablePlugin.cs @@ -129,6 +129,7 @@ public sealed class QuestionablePlugin : IDalamudPlugin serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); + serviceCollection.AddSingleton(); } private static void AddTaskFactories(ServiceCollection serviceCollection) @@ -178,7 +179,9 @@ public sealed class QuestionablePlugin : IDalamudPlugin .AddTaskFactoryAndExecutor(); serviceCollection.AddTaskFactoryAndExecutor(); serviceCollection.AddTaskFactoryAndExecutor(); - serviceCollection.AddTaskFactoryAndExecutor(); + serviceCollection.AddTaskFactoryAndExecutor(); + serviceCollection.AddTaskExecutor(); + serviceCollection.AddTaskExecutor(); serviceCollection.AddTaskFactory(); serviceCollection.AddTaskExecutor(); serviceCollection.AddTaskExecutor(); diff --git a/Questionable/Windows/ConfigWindow.cs b/Questionable/Windows/ConfigWindow.cs index f44140846..eaf8f6226 100644 --- a/Questionable/Windows/ConfigWindow.cs +++ b/Questionable/Windows/ConfigWindow.cs @@ -1,7 +1,11 @@ using System; using System.Collections.Generic; +using System.Globalization; using System.Linq; +using System.Numerics; +using System.Text; using Dalamud.Game.Text; +using Dalamud.Interface; using Dalamud.Interface.Colors; using Dalamud.Interface.Components; using Dalamud.Interface.Utility.Raii; @@ -12,19 +16,28 @@ using ImGuiNET; using LLib.ImGui; using Lumina.Excel.Sheets; using Questionable.Controller; +using Questionable.Data; using Questionable.External; +using Questionable.Model; using GrandCompany = FFXIVClientStructs.FFXIV.Client.UI.Agent.GrandCompany; namespace Questionable.Windows; internal sealed class ConfigWindow : LWindow, IPersistableWindowConfig { + private const string DutyClipboardPrefix = "qst:duty:"; + private const string DutyClipboardSeparator = ";"; + private const string DutyWhitelistPrefix = "+"; + private const string DutyBlacklistPrefix = "-"; + private static readonly List<(uint Id, string Name)> DefaultMounts = [(0, "Mount Roulette")]; private readonly IDalamudPluginInterface _pluginInterface; private readonly NotificationMasterIpc _notificationMasterIpc; private readonly Configuration _configuration; private readonly CombatController _combatController; + private readonly QuestRegistry _questRegistry; + private readonly AutoDutyIpc _autoDutyIpc; private readonly uint[] _mountIds; private readonly string[] _mountNames; @@ -34,17 +47,38 @@ internal sealed class ConfigWindow : LWindow, IPersistableWindowConfig private readonly string[] _grandCompanyNames = ["None (manually pick quest)", "Maelstrom", "Twin Adder", "Immortal Flames"]; + private readonly string[] _supportedCfcOptions = + [ + $"{SeIconChar.Circle.ToIconChar()} Enabled (Default)", + $"{SeIconChar.Circle.ToIconChar()} Enabled", + $"{SeIconChar.Cross.ToIconChar()} Disabled" + ]; + + private readonly string[] _unsupportedCfcOptions = + [ + $"{SeIconChar.Cross.ToIconChar()} Disabled (Default)", + $"{SeIconChar.Circle.ToIconChar()} Enabled", + $"{SeIconChar.Cross.ToIconChar()} Disabled" + ]; + + private readonly Dictionary> _contentFinderConditionNames; + public ConfigWindow(IDalamudPluginInterface pluginInterface, NotificationMasterIpc notificationMasterIpc, Configuration configuration, IDataManager dataManager, - CombatController combatController) + CombatController combatController, + TerritoryData territoryData, + QuestRegistry questRegistry, + AutoDutyIpc autoDutyIpc) : base("Config - Questionable###QuestionableConfig", ImGuiWindowFlags.AlwaysAutoResize) { _pluginInterface = pluginInterface; _notificationMasterIpc = notificationMasterIpc; _configuration = configuration; _combatController = combatController; + _questRegistry = questRegistry; + _autoDutyIpc = autoDutyIpc; var mounts = dataManager.GetExcelSheet() .Where(x => x is { RowId: > 0, Icon: > 0 }) @@ -54,10 +88,41 @@ internal sealed class ConfigWindow : LWindow, IPersistableWindowConfig .ToList(); _mountIds = DefaultMounts.Select(x => x.Id).Concat(mounts.Select(x => x.MountId)).ToArray(); _mountNames = DefaultMounts.Select(x => x.Name).Concat(mounts.Select(x => x.Name)).ToArray(); + + _contentFinderConditionNames = dataManager.GetExcelSheet() + .Where(x => x.RowId > 0) + .Select(x => x.Content.ValueNullable) + .Where(x => x != null) + .Select(x => x!.Value) + .Select(x => new + { + Expansion = (EExpansionVersion)x.TerritoryType.Value.ExVersion.RowId, + CfcId = x.RowId, + Name = territoryData.GetContentFinderConditionName(x.RowId) ?? "?", + TerritoryId = x.TerritoryType.RowId, + ContentType = x.ContentType.RowId, + Level = x.ClassJobLevelRequired, + x.SortKey + }) + .GroupBy(x => x.Expansion) + .ToDictionary(x => x.Key, + x => x.OrderBy(y => y.Level) + .ThenBy(y => y.ContentType) + .ThenBy(y => y.SortKey) + .Select(y => new DutyInfo(y.CfcId, y.TerritoryId, $"{SeIconChar.LevelEn.ToIconChar()}{FormatLevel(y.Level)} {y.Name}")) + .ToList()); } public WindowConfig WindowConfig => _configuration.ConfigWindowConfig; + private static string FormatLevel(int level) + { + if (level == 0) + return string.Empty; + + return $"{FormatLevel(level / 10)}{(SeIconChar.Number0 + level % 10).ToIconChar()}"; + } + public override void Draw() { using var tabBar = ImRaii.TabBar("QuestionableConfigTabs"); @@ -65,6 +130,7 @@ internal sealed class ConfigWindow : LWindow, IPersistableWindowConfig return; DrawGeneralTab(); + DrawDutiesTab(); DrawNotificationsTab(); DrawAdvancedTab(); } @@ -138,6 +204,175 @@ internal sealed class ConfigWindow : LWindow, IPersistableWindowConfig } } + private void DrawDutiesTab() + { + using var tab = ImRaii.TabItem("Duties"); + if (!tab) + return; + + bool runInstancedContentWithAutoDuty = _configuration.Duties.RunInstancedContentWithAutoDuty; + if (ImGui.Checkbox("Run instanced content with AutoDuty and BossMod", ref runInstancedContentWithAutoDuty)) + { + _configuration.Duties.RunInstancedContentWithAutoDuty = runInstancedContentWithAutoDuty; + Save(); + } + + ImGui.SameLine(); + ImGuiComponents.HelpMarker( + "The combat module used for this is configured by AutoDuty, ignoring whichever selection you've made in Questionable's \"General\" configuration."); + + ImGui.Separator(); + + using (ImRaii.Disabled(!runInstancedContentWithAutoDuty)) + { + ImGui.Text( + "Questionable includes a default list of duties that work if AutoDuty and BossMod are installed."); + + ImGui.Text("The included list of duties can change with each update, and is based on the following spreadsheet:"); + if (ImGuiComponents.IconButtonWithText(FontAwesomeIcon.GlobeEurope, "Open AutoDuty spreadsheet")) + Util.OpenLink( + "https://docs.google.com/spreadsheets/d/151RlpqRcCpiD_VbQn6Duf-u-S71EP7d0mx3j1PDNoNA/edit?pli=1#gid=0"); + + ImGui.Separator(); + ImGui.Text("You can override the dungeon settings for each individual dungeon/trial:"); + + using (var child = ImRaii.Child("DutyConfiguration", new Vector2(-1, 400), true)) + { + if (child) + { + foreach (EExpansionVersion expansion in Enum.GetValues()) + { + if (ImGui.CollapsingHeader(expansion.ToString())) + { + using var table = ImRaii.Table($"Duties{expansion}", 2, ImGuiTableFlags.SizingFixedFit); + if (table) + { + ImGui.TableSetupColumn("Name", ImGuiTableColumnFlags.WidthStretch); + ImGui.TableSetupColumn("Options", ImGuiTableColumnFlags.WidthFixed, 200f); + + if (_contentFinderConditionNames.TryGetValue(expansion, out var cfcNames)) + { + foreach (var (cfcId, territoryId, name) in cfcNames) + { + if (_questRegistry.TryGetDutyByContentFinderConditionId(cfcId, + out bool autoDutyEnabledByDefault)) + { + ImGui.TableNextRow(); + + string[] labels = autoDutyEnabledByDefault + ? _supportedCfcOptions + : _unsupportedCfcOptions; + int value = 0; + if (_configuration.Duties.WhitelistedDutyCfcIds.Contains(cfcId)) + value = 1; + if (_configuration.Duties.BlacklistedDutyCfcIds.Contains(cfcId)) + value = 2; + + if (ImGui.TableNextColumn()) + { + ImGui.AlignTextToFramePadding(); + ImGui.TextUnformatted(name); + if (ImGui.IsItemHovered() && _configuration.Advanced.AdditionalStatusInformation) + { + using var tooltip = ImRaii.Tooltip(); + if (tooltip) + { + ImGui.TextUnformatted(name); + ImGui.Separator(); + ImGui.BulletText($"TerritoryId: {territoryId}"); + ImGui.BulletText($"ContentFinderConditionId: {cfcId}"); + } + } + + if (runInstancedContentWithAutoDuty && !_autoDutyIpc.HasPath(cfcId)) + ImGuiComponents.HelpMarker("This duty is not supported by AutoDuty", FontAwesomeIcon.Times, ImGuiColors.DalamudRed); + } + + if (ImGui.TableNextColumn()) + { + using var _ = ImRaii.PushId($"##Dungeon{cfcId}"); + ImGui.SetNextItemWidth(200); + if (ImGui.Combo(string.Empty, ref value, labels, labels.Length)) + { + _configuration.Duties.WhitelistedDutyCfcIds.Remove(cfcId); + _configuration.Duties.BlacklistedDutyCfcIds.Remove(cfcId); + + if (value == 1) + _configuration.Duties.WhitelistedDutyCfcIds.Add(cfcId); + else if (value == 2) + _configuration.Duties.BlacklistedDutyCfcIds.Add(cfcId); + + Save(); + } + } + } + } + } + } + } + } + } + } + + using (ImRaii.Disabled(_configuration.Duties.WhitelistedDutyCfcIds.Count + + _configuration.Duties.BlacklistedDutyCfcIds.Count == 0)) + { + if (ImGuiComponents.IconButtonWithText(FontAwesomeIcon.Copy, "Export to clipboard")) + { + var whitelisted = + _configuration.Duties.WhitelistedDutyCfcIds.Select(x => $"{DutyWhitelistPrefix}{x}"); + var blacklisted = + _configuration.Duties.BlacklistedDutyCfcIds.Select(x => $"{DutyBlacklistPrefix}{x}"); + string text = DutyClipboardPrefix + Convert.ToBase64String(Encoding.UTF8.GetBytes( + string.Join(DutyClipboardSeparator, whitelisted.Concat(blacklisted)))); + ImGui.SetClipboardText(text); + } + } + + ImGui.SameLine(); + + string? clipboardText = GetClipboardText(); + using (ImRaii.Disabled(clipboardText == null || !clipboardText.StartsWith(DutyClipboardPrefix, StringComparison.InvariantCulture))) + { + if (ImGuiComponents.IconButtonWithText(FontAwesomeIcon.Paste, "Import from Clipboard")) + { + clipboardText = clipboardText!.Substring(DutyClipboardPrefix.Length); + string text = Encoding.UTF8.GetString(Convert.FromBase64String(clipboardText)); + + _configuration.Duties.WhitelistedDutyCfcIds.Clear(); + _configuration.Duties.BlacklistedDutyCfcIds.Clear(); + foreach (string part in text.Split(DutyClipboardSeparator)) + { + if (part.StartsWith(DutyWhitelistPrefix, StringComparison.InvariantCulture) && + uint.TryParse(part.AsSpan(DutyWhitelistPrefix.Length), CultureInfo.InvariantCulture, + out uint whitelistedCfcId)) + _configuration.Duties.WhitelistedDutyCfcIds.Add(whitelistedCfcId); + + if (part.StartsWith(DutyBlacklistPrefix, StringComparison.InvariantCulture) && + uint.TryParse(part.AsSpan(DutyBlacklistPrefix.Length), CultureInfo.InvariantCulture, + out uint blacklistedCfcId)) + _configuration.Duties.WhitelistedDutyCfcIds.Add(blacklistedCfcId); + } + } + } + + ImGui.SameLine(); + + using (var unused = ImRaii.Disabled(!ImGui.IsKeyDown(ImGuiKey.ModCtrl))) + { + if (ImGui.Button("Reset to default")) + { + _configuration.Duties.WhitelistedDutyCfcIds.Clear(); + _configuration.Duties.BlacklistedDutyCfcIds.Clear(); + Save(); + } + } + + if (ImGui.IsItemHovered(ImGuiHoveredFlags.AllowWhenDisabled)) + ImGui.SetTooltip("Hold CTRL to enable this button."); + } + } + private void DrawNotificationsTab() { using var tab = ImRaii.TabItem("Notifications"); @@ -231,4 +466,21 @@ internal sealed class ConfigWindow : LWindow, IPersistableWindowConfig private void Save() => _pluginInterface.SavePluginConfig(_configuration); public void SaveWindowConfig() => Save(); + + /// + /// The default implementation for throws an NullReferenceException if the clipboard is empty, maybe also if it doesn't contain text. + /// + private unsafe string? GetClipboardText() + { + byte* ptr = ImGuiNative.igGetClipboardText(); + if (ptr == null) + return null; + + int byteCount = 0; + while (ptr[byteCount] != 0) + ++byteCount; + return Encoding.UTF8.GetString(ptr, byteCount); + } + + private sealed record DutyInfo(uint CfcId, uint TerritoryId, string Name); } -- 2.45.2 From 8d3f37e6d4dca9f9d4358175216ef4eddc1fe84c Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Mon, 30 Dec 2024 02:50:39 +0100 Subject: [PATCH 389/448] Add Shaaloani gathering path --- .../Shaaloani/985_Eshceyaani Wilds_MIN.json | 156 ++++++++++++++++++ 1 file changed, 156 insertions(+) create mode 100644 GatheringPaths/7.x - Dawntrail/Shaaloani/985_Eshceyaani Wilds_MIN.json diff --git a/GatheringPaths/7.x - Dawntrail/Shaaloani/985_Eshceyaani Wilds_MIN.json b/GatheringPaths/7.x - Dawntrail/Shaaloani/985_Eshceyaani Wilds_MIN.json new file mode 100644 index 000000000..238b65684 --- /dev/null +++ b/GatheringPaths/7.x - Dawntrail/Shaaloani/985_Eshceyaani Wilds_MIN.json @@ -0,0 +1,156 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/GatheringPaths/gatheringlocation-v1.json", + "Author": "liza", + "Steps": [ + { + "TerritoryId": 1190, + "InteractionType": "None" + } + ], + "Groups": [ + { + "Nodes": [ + { + "DataId": 34819, + "Locations": [ + { + "Position": { + "X": -86.69859, + "Y": -8.177663, + "Z": 572.7712 + }, + "MinimumAngle": 45, + "MaximumAngle": 175 + } + ] + }, + { + "DataId": 34820, + "Locations": [ + { + "Position": { + "X": -83.81214, + "Y": -8.291362, + "Z": 581.595 + }, + "MinimumAngle": 80, + "MaximumAngle": 175 + }, + { + "Position": { + "X": -88.70462, + "Y": -8.511888, + "Z": 578.6565 + }, + "MinimumAngle": 35, + "MaximumAngle": 150 + }, + { + "Position": { + "X": -81.00482, + "Y": -7.330131, + "Z": 574.7444 + }, + "MinimumAngle": 150, + "MaximumAngle": 245 + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 34817, + "Locations": [ + { + "Position": { + "X": -264.2871, + "Y": -21.57944, + "Z": 593.6306 + }, + "MinimumAngle": 130, + "MaximumAngle": 255, + "MinimumDistance": 1.5, + "MaximumDistance": 3 + } + ] + }, + { + "DataId": 34818, + "Locations": [ + { + "Position": { + "X": -266.9412, + "Y": -21.20901, + "Z": 593.9532 + }, + "MinimumAngle": 70, + "MaximumAngle": 225 + }, + { + "Position": { + "X": -268.0496, + "Y": -21.79604, + "Z": 598.2532 + }, + "MinimumAngle": -45, + "MaximumAngle": 160 + }, + { + "Position": { + "X": -260.2841, + "Y": -22.10003, + "Z": 595.726 + }, + "MinimumAngle": 160, + "MaximumAngle": 330 + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 34815, + "Locations": [ + { + "Position": { + "X": -276.2859, + "Y": -3.218076, + "Z": 437.6798 + } + } + ] + }, + { + "DataId": 34816, + "Locations": [ + { + "Position": { + "X": -277.8067, + "Y": -2.664376, + "Z": 433.8469 + } + }, + { + "Position": { + "X": -273.7089, + "Y": -2.972111, + "Z": 434.3939 + } + }, + { + "Position": { + "X": -281.1727, + "Y": -2.682134, + "Z": 433.9476 + } + } + ] + } + ] + } + ] +} \ No newline at end of file -- 2.45.2 From cd6ef3c5f1a7adc71bf186bb3df4722e3f6e5bff Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Mon, 30 Dec 2024 15:57:55 +0100 Subject: [PATCH 390/448] Update sorting order for duties; exclude unsupported duties --- .../Dungeons/1131_Gilding the Bilious (Maelstrom).json | 3 +-- .../Dungeons/1132_Gilding the Bilious (Twin Adder).json | 3 +-- .../1133_Gilding the Bilious (Immortal Flames).json | 3 +-- .../2111_For All the Nights to Come.json | 3 +-- Questionable/Windows/ConfigWindow.cs | 7 +++---- 5 files changed, 7 insertions(+), 12 deletions(-) diff --git a/QuestPaths/2.x - A Realm Reborn/Unlocks/Dungeons/1131_Gilding the Bilious (Maelstrom).json b/QuestPaths/2.x - A Realm Reborn/Unlocks/Dungeons/1131_Gilding the Bilious (Maelstrom).json index 165a1839c..e0157efee 100644 --- a/QuestPaths/2.x - A Realm Reborn/Unlocks/Dungeons/1131_Gilding the Bilious (Maelstrom).json +++ b/QuestPaths/2.x - A Realm Reborn/Unlocks/Dungeons/1131_Gilding the Bilious (Maelstrom).json @@ -71,8 +71,7 @@ { "TerritoryId": 155, "InteractionType": "Duty", - "ContentFinderConditionId": 5, - "AutoDutyEnabled": true + "ContentFinderConditionId": 5 } ] }, diff --git a/QuestPaths/2.x - A Realm Reborn/Unlocks/Dungeons/1132_Gilding the Bilious (Twin Adder).json b/QuestPaths/2.x - A Realm Reborn/Unlocks/Dungeons/1132_Gilding the Bilious (Twin Adder).json index 4defc6a91..178a0b5a4 100644 --- a/QuestPaths/2.x - A Realm Reborn/Unlocks/Dungeons/1132_Gilding the Bilious (Twin Adder).json +++ b/QuestPaths/2.x - A Realm Reborn/Unlocks/Dungeons/1132_Gilding the Bilious (Twin Adder).json @@ -71,8 +71,7 @@ { "TerritoryId": 155, "InteractionType": "Duty", - "ContentFinderConditionId": 5, - "AutoDutyEnabled": true + "ContentFinderConditionId": 5 } ] }, diff --git a/QuestPaths/2.x - A Realm Reborn/Unlocks/Dungeons/1133_Gilding the Bilious (Immortal Flames).json b/QuestPaths/2.x - A Realm Reborn/Unlocks/Dungeons/1133_Gilding the Bilious (Immortal Flames).json index cf83d8a4c..8915d6714 100644 --- a/QuestPaths/2.x - A Realm Reborn/Unlocks/Dungeons/1133_Gilding the Bilious (Immortal Flames).json +++ b/QuestPaths/2.x - A Realm Reborn/Unlocks/Dungeons/1133_Gilding the Bilious (Immortal Flames).json @@ -71,8 +71,7 @@ { "TerritoryId": 155, "InteractionType": "Duty", - "ContentFinderConditionId": 5, - "AutoDutyEnabled": true + "ContentFinderConditionId": 5 } ] }, diff --git a/QuestPaths/3.x - Heavensward/Aether Currents/Coerthas Western Highlands/2111_For All the Nights to Come.json b/QuestPaths/3.x - Heavensward/Aether Currents/Coerthas Western Highlands/2111_For All the Nights to Come.json index 5961d3e18..5c9fa391d 100644 --- a/QuestPaths/3.x - Heavensward/Aether Currents/Coerthas Western Highlands/2111_For All the Nights to Come.json +++ b/QuestPaths/3.x - Heavensward/Aether Currents/Coerthas Western Highlands/2111_For All the Nights to Come.json @@ -38,8 +38,7 @@ { "TerritoryId": 397, "InteractionType": "Duty", - "ContentFinderConditionId": 36, - "AutoDutyEnabled": true + "ContentFinderConditionId": 36 } ] }, diff --git a/Questionable/Windows/ConfigWindow.cs b/Questionable/Windows/ConfigWindow.cs index eaf8f6226..397faeba4 100644 --- a/Questionable/Windows/ConfigWindow.cs +++ b/Questionable/Windows/ConfigWindow.cs @@ -90,7 +90,8 @@ internal sealed class ConfigWindow : LWindow, IPersistableWindowConfig _mountNames = DefaultMounts.Select(x => x.Name).Concat(mounts.Select(x => x.Name)).ToArray(); _contentFinderConditionNames = dataManager.GetExcelSheet() - .Where(x => x.RowId > 0) + .Where(x => x is { RowId: > 0, Unknown16: false }) + .OrderBy(x => x.Unknown15) // SortKey for the support UI .Select(x => x.Content.ValueNullable) .Where(x => x != null) .Select(x => x!.Value) @@ -106,9 +107,7 @@ internal sealed class ConfigWindow : LWindow, IPersistableWindowConfig }) .GroupBy(x => x.Expansion) .ToDictionary(x => x.Key, - x => x.OrderBy(y => y.Level) - .ThenBy(y => y.ContentType) - .ThenBy(y => y.SortKey) + x => x .Select(y => new DutyInfo(y.CfcId, y.TerritoryId, $"{SeIconChar.LevelEn.ToIconChar()}{FormatLevel(y.Level)} {y.Name}")) .ToList()); } -- 2.45.2 From b67a3abb6d6ec1f072c87138ce31d154df8beac3 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Mon, 30 Dec 2024 15:58:29 +0100 Subject: [PATCH 391/448] Version bump --- Directory.Build.targets | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Directory.Build.targets b/Directory.Build.targets index e42241fe6..3ceabdbaf 100644 --- a/Directory.Build.targets +++ b/Directory.Build.targets @@ -1,5 +1,5 @@ - 4.10 + 4.11 -- 2.45.2 From b91a34fdb0d00bfa545036e10e0cc0fc533fb491 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Tue, 31 Dec 2024 18:29:41 +0100 Subject: [PATCH 392/448] Add waypoint to 'The Resilient Son' --- .../4945_The Resilient Son.json | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/QuestPaths/7.x - Dawntrail/MSQ/E-SolutionNine-HeritageFound2/4945_The Resilient Son.json b/QuestPaths/7.x - Dawntrail/MSQ/E-SolutionNine-HeritageFound2/4945_The Resilient Son.json index 15817e8d1..738c87821 100644 --- a/QuestPaths/7.x - Dawntrail/MSQ/E-SolutionNine-HeritageFound2/4945_The Resilient Son.json +++ b/QuestPaths/7.x - Dawntrail/MSQ/E-SolutionNine-HeritageFound2/4945_The Resilient Son.json @@ -20,6 +20,16 @@ { "Sequence": 1, "Steps": [ + { + "Position": { + "X": -294.07196, + "Y": 44.504536, + "Z": -800.55725 + }, + "TerritoryId": 1191, + "InteractionType": "WalkTo", + "$": "IndexOutOfRangeException when trying to fly from the position you stand at for accepting the quest?" + }, { "DataId": 1048140, "Position": { -- 2.45.2 From 070d7a2407607446c8663ef2d0f229bf8383b88e Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Tue, 31 Dec 2024 23:30:49 +0100 Subject: [PATCH 393/448] Add some Sylph quests --- ...In the Sylphlands, Treasure Hunts You.json | 132 ++++++++++++++++++ .../Dailies/1275_Perilous Pumpkins.json | 79 +++++++++++ .../Sylphs/Dailies/1276_Fungal Foulness.json | 57 ++++++++ .../Controller/Steps/Interactions/Combat.cs | 8 +- .../Controller/Steps/Interactions/UseItem.cs | 4 +- 5 files changed, 276 insertions(+), 4 deletions(-) create mode 100644 QuestPaths/2.x - A Realm Reborn/Allied Societies/Sylphs/Dailies/1274_In the Sylphlands, Treasure Hunts You.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Allied Societies/Sylphs/Dailies/1275_Perilous Pumpkins.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Allied Societies/Sylphs/Dailies/1276_Fungal Foulness.json diff --git a/QuestPaths/2.x - A Realm Reborn/Allied Societies/Sylphs/Dailies/1274_In the Sylphlands, Treasure Hunts You.json b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Sylphs/Dailies/1274_In the Sylphlands, Treasure Hunts You.json new file mode 100644 index 000000000..0f61707f3 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Sylphs/Dailies/1274_In the Sylphlands, Treasure Hunts You.json @@ -0,0 +1,132 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1005562, + "Position": { + "X": 36.850464, + "Y": -4.8778634, + "Z": 249.19507 + }, + "TerritoryId": 152, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": 321.08926, + "Y": -17.347095, + "Z": -201.61072 + }, + "TerritoryId": 152, + "InteractionType": "WalkTo", + "Fly": true, + "SkipConditions": { + "StepIf": { + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 16 + ] + } + } + }, + { + "DataId": 2003494, + "Position": { + "X": 319.44763, + "Y": -17.227417, + "Z": -200.88507 + }, + "TerritoryId": 152, + "InteractionType": "Combat", + "EnemySpawnType": "AfterItemUse", + "ItemId": 2001154, + "GroundTarget": true, + "KillEnemyDataIds": [ + 764 + ], + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 16 + ] + }, + { + "DataId": 2003041, + "Position": { + "X": 386.099, + "Y": -20.187744, + "Z": -200.763 + }, + "TerritoryId": 152, + "InteractionType": "Combat", + "EnemySpawnType": "AfterItemUse", + "ItemId": 2001154, + "GroundTarget": true, + "KillEnemyDataIds": [ + 764 + ], + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 4 + ] + }, + { + "DataId": 2003040, + "Position": { + "X": 326.77185, + "Y": -18.112549, + "Z": -235.95032 + }, + "TerritoryId": 152, + "InteractionType": "Combat", + "EnemySpawnType": "AfterItemUse", + "ItemId": 2001154, + "GroundTarget": true, + "KillEnemyDataIds": [ + 764 + ], + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1005562, + "Position": { + "X": 36.850464, + "Y": -4.8778634, + "Z": 249.19507 + }, + "TerritoryId": 152, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "East Shroud - Hawthorne Hut", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Allied Societies/Sylphs/Dailies/1275_Perilous Pumpkins.json b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Sylphs/Dailies/1275_Perilous Pumpkins.json new file mode 100644 index 000000000..bc3713342 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Sylphs/Dailies/1275_Perilous Pumpkins.json @@ -0,0 +1,79 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1005562, + "Position": { + "X": 36.850464, + "Y": -4.8778634, + "Z": 249.19507 + }, + "TerritoryId": 152, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2003307, + "Position": { + "X": 261.82947, + "Y": -9.323303, + "Z": -72.80078 + }, + "TerritoryId": 152, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2003487, + "Position": { + "X": 429.89233, + "Y": -14.2977295, + "Z": -257.61804 + }, + "TerritoryId": 152, + "InteractionType": "Interact" + }, + { + "DataId": 2003310, + "Position": { + "X": 551.812, + "Y": -22.537598, + "Z": -352.13245 + }, + "TerritoryId": 152, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1005562, + "Position": { + "X": 36.850464, + "Y": -4.8778634, + "Z": 249.19507 + }, + "TerritoryId": 152, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "East Shroud - Hawthorne Hut", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Allied Societies/Sylphs/Dailies/1276_Fungal Foulness.json b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Sylphs/Dailies/1276_Fungal Foulness.json new file mode 100644 index 000000000..d03b0a2c0 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Sylphs/Dailies/1276_Fungal Foulness.json @@ -0,0 +1,57 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1005562, + "Position": { + "X": 36.850464, + "Y": -4.8778634, + "Z": 249.19507 + }, + "TerritoryId": 152, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": 336.78577, + "Y": -17.169508, + "Z": -252.20335 + }, + "TerritoryId": 152, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "KillEnemyDataIds": [ + 2464 + ], + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1005562, + "Position": { + "X": 36.850464, + "Y": -4.8778634, + "Z": 249.19507 + }, + "TerritoryId": 152, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "East Shroud - Hawthorne Hut", + "Fly": true + } + ] + } + ] +} diff --git a/Questionable/Controller/Steps/Interactions/Combat.cs b/Questionable/Controller/Steps/Interactions/Combat.cs index c0a09a3af..a4d9594d0 100644 --- a/Questionable/Controller/Steps/Interactions/Combat.cs +++ b/Questionable/Controller/Steps/Interactions/Combat.cs @@ -45,8 +45,12 @@ internal static class Combat ArgumentNullException.ThrowIfNull(step.DataId); ArgumentNullException.ThrowIfNull(step.ItemId); - yield return new UseItem.UseOnObject(quest.Id, step.DataId.Value, step.ItemId.Value, - step.CompletionQuestVariablesFlags, true); + if (step.GroundTarget == true) + yield return new UseItem.UseOnGround(quest.Id, step.DataId.Value, step.ItemId.Value, + step.CompletionQuestVariablesFlags, true); + else + yield return new UseItem.UseOnObject(quest.Id, step.DataId.Value, step.ItemId.Value, + step.CompletionQuestVariablesFlags, true); yield return new WaitAtEnd.WaitDelay(TimeSpan.FromSeconds(1)); yield return CreateTask(quest, sequence, step); break; diff --git a/Questionable/Controller/Steps/Interactions/UseItem.cs b/Questionable/Controller/Steps/Interactions/UseItem.cs index e0753758e..118c204aa 100644 --- a/Questionable/Controller/Steps/Interactions/UseItem.cs +++ b/Questionable/Controller/Steps/Interactions/UseItem.cs @@ -211,9 +211,9 @@ internal static class UseItem ElementId? QuestId, uint DataId, uint ItemId, - IList CompletionQuestVariablesFlags) : IUseItemBase + IList CompletionQuestVariablesFlags, + bool StartingCombat = false) : IUseItemBase { - public bool StartingCombat => false; public override string ToString() => $"UseItem({ItemId} on ground at {DataId})"; } -- 2.45.2 From 313677ac3fda346f528fb6fe82d16f65f2755a0a Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Wed, 1 Jan 2025 19:22:39 +0100 Subject: [PATCH 394/448] Add some Kobold quests --- .../Dailies/1339_Operation Riffraff.json | 212 +++++++++++++++++- .../Dailies/1344_A Dangerous Delivery.json | 40 +++- .../Dailies/1370_Spread the Wealth.json | 139 +++++++++++- 3 files changed, 387 insertions(+), 4 deletions(-) diff --git a/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1339_Operation Riffraff.json b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1339_Operation Riffraff.json index e1d2e1859..68ec49150 100644 --- a/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1339_Operation Riffraff.json +++ b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1339_Operation Riffraff.json @@ -1,7 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", - "Disabled": true, "QuestSequence": [ { "Sequence": 0, @@ -18,6 +17,217 @@ } ] }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": 96.21657, + "Y": 55.28576, + "Z": -500.41245 + }, + "TerritoryId": 180, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 1005960, + "Position": { + "X": 97.3678, + "Y": 56.809326, + "Z": -502.06763 + }, + "TerritoryId": 180, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1005960, + "Position": { + "X": 97.3678, + "Y": 56.809326, + "Z": -502.06763 + }, + "TerritoryId": 180, + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_BANKOB205_01339_SCENE00008_EVENTAREA_WARP_YESNO_TITLE", + "Yes": true + } + ] + }, + { + "DataId": 2003743, + "Position": { + "X": 227.00842, + "Y": 22.75116, + "Z": -582.81836 + }, + "TerritoryId": 180, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2003744, + "Position": { + "X": 224.78064, + "Y": 23.941406, + "Z": -580.9568 + }, + "TerritoryId": 180, + "InteractionType": "UseItem", + "ItemId": 2001244, + "IgnoreDistanceToObject": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 2003746, + "Position": { + "X": 239.30713, + "Y": 22.323914, + "Z": -577.29456 + }, + "TerritoryId": 180, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 2880 + ], + "CompletionQuestVariablesFlags": [ + { + "Low": 1 + }, + null, + null, + null, + null, + null + ] + }, + { + "DataId": 2003745, + "Position": { + "X": 242.8778, + "Y": 22.507019, + "Z": -584.37476 + }, + "TerritoryId": 180, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 2880 + ], + "CompletionQuestVariablesFlags": [ + { + "Low": 2 + }, + null, + null, + null, + null, + null + ] + }, + { + "DataId": 2003746, + "Position": { + "X": 239.30713, + "Y": 22.323914, + "Z": -577.29456 + }, + "TerritoryId": 180, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 2880 + ], + "CompletionQuestVariablesFlags": [ + { + "Low": 3 + }, + null, + null, + null, + null, + null + ] + }, + { + "DataId": 2003745, + "Position": { + "X": 242.8778, + "Y": 22.507019, + "Z": -584.37476 + }, + "TerritoryId": 180, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 2880 + ], + "CompletionQuestVariablesFlags": [ + { + "Low": 4 + }, + null, + null, + null, + null, + null + ] + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 2003746, + "Position": { + "X": 239.30713, + "Y": 22.323914, + "Z": -577.29456 + }, + "TerritoryId": 180, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 2883 + ] + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1005932, + "Position": { + "X": -1.236023, + "Y": 33.38838, + "Z": -244.19019 + }, + "TerritoryId": 180, + "InteractionType": "Interact", + "AetheryteShortcut": "Outer La Noscea - Camp Overlook", + "Fly": true + } + ] + }, { "Sequence": 255, "Steps": [ diff --git a/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1344_A Dangerous Delivery.json b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1344_A Dangerous Delivery.json index e1d2e1859..0394515bb 100644 --- a/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1344_A Dangerous Delivery.json +++ b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1344_A Dangerous Delivery.json @@ -1,7 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", - "Disabled": true, "QuestSequence": [ { "Sequence": 0, @@ -18,6 +17,45 @@ } ] }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1005932, + "Position": { + "X": -1.236023, + "Y": 33.38838, + "Z": -244.19019 + }, + "TerritoryId": 180, + "InteractionType": "Interact", + "Fly": true, + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_BANKOB210_01344_Q1_000_000", + "Answer": "TEXT_BANKOB210_01344_A1_000_001" + } + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2003963, + "Position": { + "X": 91.203125, + "Y": 55.74109, + "Z": -483.299 + }, + "TerritoryId": 180, + "InteractionType": "Interact", + "Comment": "Spawns enemy that we ignore" + } + ] + }, { "Sequence": 255, "Steps": [ diff --git a/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1370_Spread the Wealth.json b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1370_Spread the Wealth.json index b100ce645..ff87aaecc 100644 --- a/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1370_Spread the Wealth.json +++ b/QuestPaths/2.x - A Realm Reborn/Allied Societies/Kobolds/Dailies/1370_Spread the Wealth.json @@ -1,7 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", - "Disabled": true, "QuestSequence": [ { "Sequence": 0, @@ -18,6 +17,140 @@ } ] }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1005932, + "Position": { + "X": -1.236023, + "Y": 33.38838, + "Z": -244.19019 + }, + "TerritoryId": 180, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2003911, + "Position": { + "X": 296.5896, + "Y": 21.499878, + "Z": -722.13324 + }, + "TerritoryId": 180, + "InteractionType": "UseItem", + "ItemId": 2001278, + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, + { + "Position": { + "X": 296.5896, + "Y": 21.499878, + "Z": -722.13324 + }, + "TerritoryId": 180, + "InteractionType": "Combat", + "EnemySpawnType": "FinishCombatIfAny", + "KillEnemyDataIds": [ + 755 + ] + }, + { + "DataId": 2003910, + "Position": { + "X": 293.41565, + "Y": 21.499878, + "Z": -721.91956 + }, + "TerritoryId": 180, + "InteractionType": "UseItem", + "ItemId": 2001278, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "Position": { + "X": 293.41565, + "Y": 21.499878, + "Z": -721.91956 + }, + "TerritoryId": 180, + "InteractionType": "Combat", + "EnemySpawnType": "FinishCombatIfAny", + "KillEnemyDataIds": [ + 755 + ] + }, + { + "DataId": 2003909, + "Position": { + "X": 290.0282, + "Y": 21.530457, + "Z": -721.3397 + }, + "TerritoryId": 180, + "InteractionType": "UseItem", + "ItemId": 2001278, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "Position": { + "X": 290.0282, + "Y": 21.530457, + "Z": -721.3397 + }, + "TerritoryId": 180, + "InteractionType": "Combat", + "EnemySpawnType": "FinishCombatIfAny", + "KillEnemyDataIds": [ + 755 + ] + }, + { + "DataId": 2003912, + "Position": { + "X": 295.76562, + "Y": 21.469421, + "Z": -711.9402 + }, + "TerritoryId": 180, + "InteractionType": "UseItem", + "ItemId": 2001279 + } + ] + }, { "Sequence": 255, "Steps": [ @@ -30,7 +163,9 @@ }, "TerritoryId": 180, "InteractionType": "CompleteQuest", - "Fly": true + "AetheryteShortcut": "Outer La Noscea - Camp Overlook", + "Fly": true, + "DelaySecondsAtStart": 3 } ] } -- 2.45.2 From 40a25075736219b329614c7ad5377eb434d6f2a8 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Wed, 1 Jan 2025 19:23:12 +0100 Subject: [PATCH 395/448] Remove Aitiascope from list of default AD dungeons --- .../MSQ/F-Labyrinthos2/4449_Her Children One and All.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/QuestPaths/6.x - Endwalker/MSQ/F-Labyrinthos2/4449_Her Children One and All.json b/QuestPaths/6.x - Endwalker/MSQ/F-Labyrinthos2/4449_Her Children One and All.json index f41bf9552..749437457 100644 --- a/QuestPaths/6.x - Endwalker/MSQ/F-Labyrinthos2/4449_Her Children One and All.json +++ b/QuestPaths/6.x - Endwalker/MSQ/F-Labyrinthos2/4449_Her Children One and All.json @@ -39,7 +39,7 @@ "TerritoryId": 956, "InteractionType": "Duty", "ContentFinderConditionId": 786, - "AutoDutyEnabled": true + "AutoDutyEnabled": false } ] }, -- 2.45.2 From 13d1aff8f6948ccd6183221ca05dbea380c8d3bf Mon Sep 17 00:00:00 2001 From: Gwen Date: Thu, 2 Jan 2025 09:08:52 +0100 Subject: [PATCH 396/448] Add some side quests to unlock Triple Triad NPCs --- .../1021_What's It to U.json | 81 +++++++++ .../1022_Zombies Are People Too.json | 169 ++++++++++++++++++ .../1791_Feat of Clay.json | 73 ++++++++ .../1793_Yellow Stones.json | 115 ++++++++++++ .../1947_A Bum Rap.json | 62 +++++++ .../1964_What the Boat Brought In.json | 104 +++++++++++ .../1965_Over My Dead Gobbie.json | 112 ++++++++++++ .../Unlocks/Misc/3142_Secret of the Ooze.json | 85 +++++++++ 8 files changed, 801 insertions(+) create mode 100644 QuestPaths/2.x - A Realm Reborn/Side Quests/Thanalan/Southern Thanalan/1021_What's It to U.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Side Quests/Thanalan/Southern Thanalan/1022_Zombies Are People Too.json create mode 100644 QuestPaths/3.x - Heavensward/Side Quests/The Dravanian Forelands/1791_Feat of Clay.json create mode 100644 QuestPaths/3.x - Heavensward/Side Quests/The Dravanian Forelands/1793_Yellow Stones.json create mode 100644 QuestPaths/3.x - Heavensward/Side Quests/The Dravanian Hinterlands/1947_A Bum Rap.json create mode 100644 QuestPaths/3.x - Heavensward/Side Quests/The Dravanian Hinterlands/1964_What the Boat Brought In.json create mode 100644 QuestPaths/3.x - Heavensward/Side Quests/The Dravanian Hinterlands/1965_Over My Dead Gobbie.json create mode 100644 QuestPaths/4.x - Stormblood/Unlocks/Misc/3142_Secret of the Ooze.json diff --git a/QuestPaths/2.x - A Realm Reborn/Side Quests/Thanalan/Southern Thanalan/1021_What's It to U.json b/QuestPaths/2.x - A Realm Reborn/Side Quests/Thanalan/Southern Thanalan/1021_What's It to U.json new file mode 100644 index 000000000..0c3628310 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Side Quests/Thanalan/Southern Thanalan/1021_What's It to U.json @@ -0,0 +1,81 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Thaksin", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1004917, + "Position": { + "X": -358.6328, + "Y": 8.469424, + "Z": 422.4154 + }, + "TerritoryId": 146, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1006602, + "Position": { + "X": -321.06506, + "Y": 8.830055, + "Z": 436.94202 + }, + "TerritoryId": 146, + "InteractionType": "Interact" + }, + { + "DataId": 1006600, + "Position": { + "X": -283.5279, + "Y": 7.652629, + "Z": 423.14795 + }, + "TerritoryId": 146, + "InteractionType": "Interact" + }, + { + "DataId": 1006599, + "Position": { + "X": -279.98785, + "Y": 15.013981, + "Z": 373.37292 + }, + "TerritoryId": 146, + "InteractionType": "Interact" + }, + { + "DataId": 1006601, + "Position": { + "X": -293.53784, + "Y": 13.137939, + "Z": 354.63477 + }, + "TerritoryId": 146, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1004917, + "Position": { + "X": -358.6328, + "Y": 8.469424, + "Z": 422.4154 + }, + "TerritoryId": 146, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} \ No newline at end of file diff --git a/QuestPaths/2.x - A Realm Reborn/Side Quests/Thanalan/Southern Thanalan/1022_Zombies Are People Too.json b/QuestPaths/2.x - A Realm Reborn/Side Quests/Thanalan/Southern Thanalan/1022_Zombies Are People Too.json new file mode 100644 index 000000000..60c6be259 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Side Quests/Thanalan/Southern Thanalan/1022_Zombies Are People Too.json @@ -0,0 +1,169 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Thaksin", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1004914, + "Position": { + "X": 167.89502, + "Y": 3.1102452, + "Z": 972.5642 + }, + "TerritoryId": 146, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1006603, + "Position": { + "X": -196.79565, + "Y": 78.11096, + "Z": 49.851196 + }, + "TerritoryId": 148, + "InteractionType": "Interact", + "AetheryteShortcut": "Central Shroud - Bentbranch Meadows", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1004914, + "Position": { + "X": 167.89502, + "Y": 3.1102452, + "Z": 972.5642 + }, + "TerritoryId": 146, + "InteractionType": "Interact", + "AetheryteShortcut": "Southern Thanalan - Forgotten Springs", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "Position": { + "X": -207.9934, + "Y": 66.78476, + "Z": -258.7822 + }, + "TerritoryId": 180, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Outer La Noscea - Camp Overlook", + "Fly": true + },{ + "Position": { + "X": -234.89017, + "Y": 63.51318, + "Z": -255.7134 + }, + "TerritoryId": 180, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "Position": { + "X": -356.22986, + "Y": 57.972702, + "Z": -381.27402 + }, + "TerritoryId": 180, + "InteractionType": "WalkTo", + "Fly": true + }, + + { + "DataId": 1006604, + "Position": { + "X": -278.73657, + "Y": 4.1657104, + "Z": -580.04126 + }, + "TerritoryId": 180, + "InteractionType": "Interact", + "Fly": true + } + + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1004914, + "Position": { + "X": 167.89502, + "Y": 3.1102452, + "Z": 972.5642 + }, + "TerritoryId": 146, + "InteractionType": "Interact", + "AetheryteShortcut": "Southern Thanalan - Forgotten Springs", + "Fly": true + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "InteractionType": "UseItem", + "ItemId": 2000779, + "GroundTarget": true, + "Position": { + "X": -192.67111, + "Y": 35.175262, + "Z": 129.13567 + }, + "TerritoryId": 146, + "Fly": true + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1006605, + "Position": { + "X": -192.49261, + "Y": 35.210636, + "Z": 129.13708 + }, + "TerritoryId": 146, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1004914, + "Position": { + "X": 167.89502, + "Y": 3.1102452, + "Z": 972.5642 + }, + "TerritoryId": 146, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} \ No newline at end of file diff --git a/QuestPaths/3.x - Heavensward/Side Quests/The Dravanian Forelands/1791_Feat of Clay.json b/QuestPaths/3.x - Heavensward/Side Quests/The Dravanian Forelands/1791_Feat of Clay.json new file mode 100644 index 000000000..22b566e0f --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Side Quests/The Dravanian Forelands/1791_Feat of Clay.json @@ -0,0 +1,73 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Thaksin", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1011931, + "Position": { + "X": 56.839844, + "Y": -49.92323, + "Z": -135.91211 + }, + "TerritoryId": 398, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2005617, + "Position": { + "X": 197.22278, + "Y": -99.931335, + "Z": 644.4646 + }, + "TerritoryId": 398, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, null, + null, null, + null, 128 + ], + "Fly": true + }, + { + "DataId": 2005618, + "Position": { + "X": 287.64783, + "Y": -94.10242, + "Z": 597.9553 + }, + "TerritoryId": 398, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, null, + null, null, + null, 64 + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1011931, + "Position": { + "X": 56.839844, + "Y": -49.92323, + "Z": -135.91211 + }, + "TerritoryId": 398, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} \ No newline at end of file diff --git a/QuestPaths/3.x - Heavensward/Side Quests/The Dravanian Forelands/1793_Yellow Stones.json b/QuestPaths/3.x - Heavensward/Side Quests/The Dravanian Forelands/1793_Yellow Stones.json new file mode 100644 index 000000000..7f58bbe58 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Side Quests/The Dravanian Forelands/1793_Yellow Stones.json @@ -0,0 +1,115 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Thaksin", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1011931, + "Position": { + "X": 56.839844, + "Y": -49.92323, + "Z": -135.91211 + }, + "TerritoryId": 398, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2005636, + "Position": { + "X": -247.21143, + "Y": -77.62268, + "Z": 819.4857 + }, + "TerritoryId": 398, + "InteractionType": "Interact", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 16 + ] + }, + { + "DataId": 2005635, + "Position": { + "X": -187.24353, + "Y": -84.85547, + "Z": 733.51636 + }, + "TerritoryId": 398, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + + }, + { + "DataId": 2005633, + "Position": { + "X": -273.518, + "Y": -82.47504, + "Z": 644.6478 + }, + "TerritoryId": 398, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 2005634, + "Position": { + "X": -307.3015, + "Y": -80.1557, + "Z": 665.6748 + }, + "TerritoryId": 398, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + } + ] + },{ + "Sequence": 255, + "Steps": [ + { + "DataId": 1011931, + "Position": { + "X": 56.839844, + "Y": -49.92323, + "Z": -135.91211 + }, + "TerritoryId": 398, + "Fly": true, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} \ No newline at end of file diff --git a/QuestPaths/3.x - Heavensward/Side Quests/The Dravanian Hinterlands/1947_A Bum Rap.json b/QuestPaths/3.x - Heavensward/Side Quests/The Dravanian Hinterlands/1947_A Bum Rap.json new file mode 100644 index 000000000..b00954c43 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Side Quests/The Dravanian Hinterlands/1947_A Bum Rap.json @@ -0,0 +1,62 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Thaksin", + "QuestSequence": [ + { + + "Sequence": 0, + "Steps": [ + { + "DataId": 1012287, + "Position": { + "X": -28.397034, + "Y": 100.969696, + "Z": -186.4195 + }, + "TerritoryId": 399, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": 301.43185, + "Y": 76.142914, + "Z": 171.03389 + }, + "TerritoryId": 399, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "ComplexCombatData": [ + { + "DataId": 4020, + "MinimumKillCount": 3 + } + ], + "Fly": true + } + + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1012287, + "Position": { + "X": -28.397034, + "Y": 100.969696, + "Z": -186.4195 + }, + "TerritoryId": 399, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + + ] +} \ No newline at end of file diff --git a/QuestPaths/3.x - Heavensward/Side Quests/The Dravanian Hinterlands/1964_What the Boat Brought In.json b/QuestPaths/3.x - Heavensward/Side Quests/The Dravanian Hinterlands/1964_What the Boat Brought In.json new file mode 100644 index 000000000..43c1f337d --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Side Quests/The Dravanian Hinterlands/1964_What the Boat Brought In.json @@ -0,0 +1,104 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Thaksin", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1013651, + "Position": { + "X": -475.76105, + "Y": 155.8605, + "Z": -209.76581 + }, + "TerritoryId": 399, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": -654.5463, + "Y": 148.56897, + "Z": 187.12466 + }, + "TerritoryId": 399, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 1013655, + "Position": { + "X": -669.9169, + "Y": 154.30952, + "Z": 191.08862 + }, + "Land": true, + "TerritoryId": 399, + "InteractionType": "Interact" + } + ] + }, + { + + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": -894.6883, + "Y": 215.50499, + "Z": 157.66754 + }, + "TerritoryId": 399, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 5047, + "Position": { + "X": -894.9264, + "Y": 215.16266, + "Z": 155.29102 + }, + "TerritoryId": 399, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [ + 5047, + 5048 + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": -654.5463, + "Y": 148.56897, + "Z": 187.12466 + }, + "TerritoryId": 399, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 1013655, + "Position": { + "X": -669.9169, + "Y": 154.30952, + "Z": 191.08862 + }, + "Land": true, + "TerritoryId": 399, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} \ No newline at end of file diff --git a/QuestPaths/3.x - Heavensward/Side Quests/The Dravanian Hinterlands/1965_Over My Dead Gobbie.json b/QuestPaths/3.x - Heavensward/Side Quests/The Dravanian Hinterlands/1965_Over My Dead Gobbie.json new file mode 100644 index 000000000..10c60394c --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Side Quests/The Dravanian Hinterlands/1965_Over My Dead Gobbie.json @@ -0,0 +1,112 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Thaksin", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1013655, + "Position": { + "X": -669.9169, + "Y": 154.30952, + "Z": 191.08862 + }, + "TerritoryId": 399, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1013656, + "Position": { + "X": -617.8836, + "Y": 150.38008, + "Z": 327.19922 + }, + "TerritoryId": 399, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1013659, + "Position": { + "X": -617.76154, + "Y": 153.8528, + "Z": 349.35522 + }, + "TerritoryId": 399, + "InteractionType": "Interact" + }, + { + "DataId": 5049, + "Position": { + "X": -617.76154, + "Y": 153.8528, + "Z": 349.35522 + }, + "TerritoryId": 399, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 5046, + 5049 + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1013659, + "Position": { + "X": -617.76154, + "Y": 153.8528, + "Z": 349.35522 + }, + "TerritoryId": 399, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1013656, + "Position": { + "X": -617.8836, + "Y": 150.38008, + "Z": 327.19922 + }, + "TerritoryId": 399, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1012133, + "Position": { + "X": -26.840637, + "Y": 206.49944, + "Z": 28.67163 + }, + "TerritoryId": 478, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Idyllshire" + } + ] + } + ] +} \ No newline at end of file diff --git a/QuestPaths/4.x - Stormblood/Unlocks/Misc/3142_Secret of the Ooze.json b/QuestPaths/4.x - Stormblood/Unlocks/Misc/3142_Secret of the Ooze.json new file mode 100644 index 000000000..b57c78525 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Unlocks/Misc/3142_Secret of the Ooze.json @@ -0,0 +1,85 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Thaksin", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1026200, + "Position": { + "X": 26.901611, + "Y": 0, + "Z": 36.362183 + }, + "TerritoryId": 635, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": -516.5388, + "Y": 146.04834, + "Z": -357.0811 + }, + + "TerritoryId": 399, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Idyllshire", + "AethernetShortcut": [ + "[Idyllshire] Aetheryte Plaza", + "[Idyllshire] Prologue Gate (Western Hinterlands)" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InTerritory": [ + 399 + ] + } + } + }, + { + "DataId": 1026201, + "Position": { + "X": -617.2427, + "Y": 146.86842, + "Z": 62.150024 + }, + "TerritoryId": 399, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "TerritoryId": 399, + "InteractionType": "Duty", + "AutoDutyEnabled": true, + "ContentFinderConditionId": 62 + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1026202, + "Position": { + "X": -611.6274, + "Y": 146.86842, + "Z": 57.87744 + }, + "TerritoryId": 399, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} \ No newline at end of file -- 2.45.2 From c722abb6dfd479e8d38e9dda10d71571d1b3d3cb Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Thu, 2 Jan 2025 22:50:50 +0100 Subject: [PATCH 397/448] Automatically redeem untradeable mounts/minions/orchestrion rolls/TT cards/fashion accessories from quest rewards --- Questionable.sln.DotSettings | 1 + .../Steps/Shared/RedeemRewardItems.cs | 71 ++++++++++++ Questionable/Data/QuestData.cs | 8 ++ Questionable/Model/ItemReward.cs | 99 +++++++++++++++++ Questionable/Model/QuestInfo.cs | 17 ++- Questionable/QuestionablePlugin.cs | 9 +- .../JournalComponents/QuestRewardComponent.cs | 65 +++++++++++ Questionable/Windows/JournalProgressWindow.cs | 4 + .../QuestComponents/QuestTooltipComponent.cs | 105 +++++++++++------- 9 files changed, 332 insertions(+), 47 deletions(-) create mode 100644 Questionable/Controller/Steps/Shared/RedeemRewardItems.cs create mode 100644 Questionable/Model/ItemReward.cs create mode 100644 Questionable/Windows/JournalComponents/QuestRewardComponent.cs diff --git a/Questionable.sln.DotSettings b/Questionable.sln.DotSettings index 830879e07..ef6a1abd7 100644 --- a/Questionable.sln.DotSettings +++ b/Questionable.sln.DotSettings @@ -25,6 +25,7 @@ True True True + True True True True diff --git a/Questionable/Controller/Steps/Shared/RedeemRewardItems.cs b/Questionable/Controller/Steps/Shared/RedeemRewardItems.cs new file mode 100644 index 000000000..4d11e72bb --- /dev/null +++ b/Questionable/Controller/Steps/Shared/RedeemRewardItems.cs @@ -0,0 +1,71 @@ +using System; +using System.Collections.Generic; +using Dalamud.Game.ClientState.Conditions; +using Dalamud.Plugin.Services; +using FFXIVClientStructs.FFXIV.Client.Game; +using Questionable.Data; +using Questionable.Functions; +using Questionable.Model; +using Questionable.Model.Questing; + +namespace Questionable.Controller.Steps.Shared; + +internal static class RedeemRewardItems +{ + internal sealed class Factory(QuestData questData) : ITaskFactory + { + public IEnumerable CreateAllTasks(Quest quest, QuestSequence sequence, QuestStep step) + { + if (step.InteractionType != EInteractionType.AcceptQuest) + return []; + + List tasks = []; + unsafe + { + InventoryManager* inventoryManager = InventoryManager.Instance(); + if (inventoryManager == null) + return tasks; + + foreach (var itemReward in questData.RedeemableItems) + { + if (inventoryManager->GetInventoryItemCount(itemReward.ItemId) > 0 && + !itemReward.IsUnlocked()) + { + tasks.Add(new Task(itemReward)); + } + } + } + + return tasks; + } + } + + internal sealed record Task(ItemReward ItemReward) : ITask + { + public override string ToString() => $"TryRedeem({ItemReward.Name})"; + } + + internal sealed class Executor( + GameFunctions gameFunctions, + ICondition condition) : TaskExecutor + { + private DateTime _continueAt; + + protected override bool Start() + { + if (condition[ConditionFlag.Mounted]) + return false; + + _continueAt = DateTime.Now.Add(Task.ItemReward.CastTime).AddSeconds(1); + return gameFunctions.UseItem(Task.ItemReward.ItemId); + } + + public override ETaskResult Update() + { + if (condition[ConditionFlag.Casting]) + return ETaskResult.StillRunning; + + return DateTime.Now <= _continueAt ? ETaskResult.StillRunning : ETaskResult.TaskComplete; + } + } +} diff --git a/Questionable/Data/QuestData.cs b/Questionable/Data/QuestData.cs index 8f51c4991..7a3229a76 100644 --- a/Questionable/Data/QuestData.cs +++ b/Questionable/Data/QuestData.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Collections.Immutable; using System.Diagnostics.CodeAnalysis; using System.Linq; using Dalamud.Plugin.Services; @@ -218,8 +219,15 @@ internal sealed class QuestData quest.JournalGenre = 82; quest.SortKey = 0; } + + RedeemableItems = quests.Where(x => x is QuestInfo) + .Cast() + .SelectMany(x => x.ItemRewards) + .ToImmutableHashSet(); } + public ImmutableHashSet RedeemableItems { get; } + private void AddPreviousQuest(QuestId questToUpdate, QuestId requiredQuestId) { QuestInfo quest = (QuestInfo)_quests[questToUpdate]; diff --git a/Questionable/Model/ItemReward.cs b/Questionable/Model/ItemReward.cs new file mode 100644 index 000000000..03044744e --- /dev/null +++ b/Questionable/Model/ItemReward.cs @@ -0,0 +1,99 @@ +using System; +using Dalamud.Utility; +using FFXIVClientStructs.FFXIV.Client.Game.UI; +using Lumina.Excel.Sheets; +using Questionable.Model.Questing; + +namespace Questionable.Model; + +public enum EItemRewardType +{ + Mount, + Minion, + OrchestrionRoll, + TripleTriadCard, + FashionAccessory, +} + +public sealed class ItemRewardDetails(Item item, ElementId elementId) +{ + public uint ItemId { get; } = item.RowId; + public string Name { get; } = item.Name.ToDalamudString().ToString(); + public TimeSpan CastTime { get; } = TimeSpan.FromSeconds(item.CastTimeSeconds); + public ElementId ElementId { get; } = elementId; +} + +public abstract record ItemReward(ItemRewardDetails Item) +{ + internal static ItemReward? CreateFromItem(Item item, ElementId elementId) + { + if (item.ItemAction.ValueNullable?.Type is 1322) + return new MountReward(new ItemRewardDetails(item, elementId), item.ItemAction.Value.Data[0]); + + if (item.ItemAction.ValueNullable?.Type is 853) + return new MinionReward(new ItemRewardDetails(item, elementId), item.ItemAction.Value.Data[0]); + + if (item.AdditionalData.GetValueOrDefault() is { } orchestrionRoll) + return new OrchestrionRollReward(new ItemRewardDetails(item, elementId), orchestrionRoll.RowId); + + if (item.AdditionalData.GetValueOrDefault() is { } tripleTriadCard) + return new TripleTriadCardReward(new ItemRewardDetails(item, elementId), (ushort)tripleTriadCard.RowId); + + if (item.ItemAction.ValueNullable?.Type is 20086) + return new FashionAccessoryReward(new ItemRewardDetails(item, elementId), item.ItemAction.Value.Data[0]); + + return null; + } + + public uint ItemId => Item.ItemId; + public string Name => Item.Name; + public ElementId ElementId => Item.ElementId; + public TimeSpan CastTime => Item.CastTime; + public abstract EItemRewardType Type { get; } + public abstract bool IsUnlocked(); +} + +public sealed record MountReward(ItemRewardDetails Item, uint MountId) + : ItemReward(Item) +{ + public override EItemRewardType Type => EItemRewardType.Mount; + + public override unsafe bool IsUnlocked() + => PlayerState.Instance()->IsMountUnlocked(MountId); +} + +public sealed record MinionReward(ItemRewardDetails Item, uint MinionId) + : ItemReward(Item) +{ + public override EItemRewardType Type => EItemRewardType.Minion; + + public override unsafe bool IsUnlocked() + => UIState.Instance()->IsCompanionUnlocked(MinionId); +} + +public sealed record OrchestrionRollReward(ItemRewardDetails Item, uint OrchestrionRollId) + : ItemReward(Item) +{ + public override EItemRewardType Type => EItemRewardType.OrchestrionRoll; + + public override unsafe bool IsUnlocked() => + PlayerState.Instance()->IsOrchestrionRollUnlocked(OrchestrionRollId); +} + +public sealed record TripleTriadCardReward(ItemRewardDetails Item, ushort TripleTriadCardId) + : ItemReward(Item) +{ + public override EItemRewardType Type => EItemRewardType.TripleTriadCard; + + public override unsafe bool IsUnlocked() => + UIState.Instance()->IsTripleTriadCardUnlocked(TripleTriadCardId); +} + +public sealed record FashionAccessoryReward(ItemRewardDetails Item, uint AccessoryId) + : ItemReward(Item) +{ + public override EItemRewardType Type => EItemRewardType.FashionAccessory; + + public override unsafe bool IsUnlocked() => + PlayerState.Instance()->IsOrnamentUnlocked(AccessoryId); +} diff --git a/Questionable/Model/QuestInfo.cs b/Questionable/Model/QuestInfo.cs index e34c16d7a..06c6dc34b 100644 --- a/Questionable/Model/QuestInfo.cs +++ b/Questionable/Model/QuestInfo.cs @@ -2,10 +2,11 @@ using System.Collections.Generic; using System.Collections.Immutable; using System.Linq; -using FFXIVClientStructs.FFXIV.Client.UI.Agent; using LLib.GameData; +using Lumina.Excel.Sheets; using Questionable.Model.Questing; using ExcelQuest = Lumina.Excel.Sheets.Quest; +using GrandCompany = FFXIVClientStructs.FFXIV.Client.UI.Agent.GrandCompany; namespace Questionable.Model; @@ -54,7 +55,8 @@ internal sealed class QuestInfo : IQuestInfo QuestLockJoin = (EQuestJoin)quest.QuestLockJoin; JournalGenre = quest.JournalGenre.ValueNullable?.RowId; SortKey = quest.SortKey; - IsMainScenarioQuest = quest.JournalGenre.ValueNullable?.JournalCategory.ValueNullable?.JournalSection.ValueNullable?.RowId is 0 or 1; + IsMainScenarioQuest = quest.JournalGenre.ValueNullable?.JournalCategory.ValueNullable?.JournalSection + .ValueNullable?.RowId is 0 or 1; CompletesInstantly = quest.TodoParams[0].ToDoCompleteSeq == 0; PreviousInstanceContent = quest.InstanceContent.Select(x => (ushort)x.RowId).Where(x => x != 0).ToList(); PreviousInstanceContentJoin = (EQuestJoin)quest.InstanceContentJoin; @@ -67,6 +69,15 @@ internal sealed class QuestInfo : IQuestInfo NewGamePlusChapter = newGamePlusChapter; StartingCity = startingCity; MoogleDeliveryLevel = (byte)quest.DeliveryQuest.RowId; + ItemRewards = quest.Reward.Where(x => x.RowId > 0 && x.Is()) + .Select(x => x.GetValueOrDefault()) + .Where(x => x != null) + .Cast() + .Where(x => x.IsUntradable) + .Select(x => ItemReward.CreateFromItem(x, QuestId)) + .Where(x => x != null) + .Cast() + .ToList(); Expansion = (EExpansionVersion)quest.Expansion.RowId; } @@ -79,7 +90,6 @@ internal sealed class QuestInfo : IQuestInfo }); } - public ElementId QuestId { get; } public string Name { get; } public ushort Level { get; } @@ -105,6 +115,7 @@ internal sealed class QuestInfo : IQuestInfo public byte StartingCity { get; set; } public byte MoogleDeliveryLevel { get; } public bool IsMoogleDeliveryQuest => JournalGenre == 87; + public IReadOnlyList ItemRewards { get; } public EExpansionVersion Expansion { get; } public void AddPreviousQuest(PreviousQuestInfo questId) diff --git a/Questionable/QuestionablePlugin.cs b/Questionable/QuestionablePlugin.cs index 1072a54f2..f5fa51ee1 100644 --- a/Questionable/QuestionablePlugin.cs +++ b/Questionable/QuestionablePlugin.cs @@ -138,6 +138,8 @@ public sealed class QuestionablePlugin : IDalamudPlugin serviceCollection.AddTaskFactory(); serviceCollection .AddTaskExecutor(); + serviceCollection + .AddTaskFactoryAndExecutor(); serviceCollection.AddTaskExecutor(); serviceCollection.AddTaskExecutor(); serviceCollection.AddTaskFactoryAndExecutor(); serviceCollection - .AddTaskExecutor(); + .AddTaskExecutor(); serviceCollection .AddTaskFactoryAndExecutor(); serviceCollection.AddTaskFactoryAndExecutor(); @@ -179,7 +182,8 @@ public sealed class QuestionablePlugin : IDalamudPlugin .AddTaskFactoryAndExecutor(); serviceCollection.AddTaskFactoryAndExecutor(); serviceCollection.AddTaskFactoryAndExecutor(); - serviceCollection.AddTaskFactoryAndExecutor(); + serviceCollection + .AddTaskFactoryAndExecutor(); serviceCollection.AddTaskExecutor(); serviceCollection.AddTaskExecutor(); serviceCollection.AddTaskFactory(); @@ -269,6 +273,7 @@ public sealed class QuestionablePlugin : IDalamudPlugin serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); + serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); diff --git a/Questionable/Windows/JournalComponents/QuestRewardComponent.cs b/Questionable/Windows/JournalComponents/QuestRewardComponent.cs new file mode 100644 index 000000000..2fab3109e --- /dev/null +++ b/Questionable/Windows/JournalComponents/QuestRewardComponent.cs @@ -0,0 +1,65 @@ +using System; +using System.Linq; +using Dalamud.Interface.Utility.Raii; +using ImGuiNET; +using Questionable.Data; +using Questionable.Model; +using Questionable.Windows.QuestComponents; + +namespace Questionable.Windows.JournalComponents; + +internal sealed class QuestRewardComponent +{ + private readonly QuestData _questData; + private readonly QuestTooltipComponent _questTooltipComponent; + private readonly UiUtils _uiUtils; + + public QuestRewardComponent( + QuestData questData, + QuestTooltipComponent questTooltipComponent, + UiUtils uiUtils) + { + _questData = questData; + _questTooltipComponent = questTooltipComponent; + _uiUtils = uiUtils; + } + + public void DrawItemRewards() + { + using var tab = ImRaii.TabItem("Item Rewards"); + if (!tab) + return; + + ImGui.BulletText("Only untradeable items are listed (you can e.g. sell your Wind-up Airship from the enovy quest)."); + + DrawGroup("Mounts", EItemRewardType.Mount); + DrawGroup("Minions", EItemRewardType.Minion); + DrawGroup("Orchestrion Rolls", EItemRewardType.OrchestrionRoll); + DrawGroup("Triple Triad Cards", EItemRewardType.TripleTriadCard); + DrawGroup("Fashion Accessories", EItemRewardType.FashionAccessory); + } + + private void DrawGroup(string label, EItemRewardType type) + { + if (!ImGui.CollapsingHeader($"{label}###Reward{type}")) + return; + + foreach (var item in _questData.RedeemableItems.Where(x => x.Type == type) + .OrderBy(x => x.Name, StringComparer.CurrentCultureIgnoreCase)) + { + if (_uiUtils.ChecklistItem(item.Name, item.IsUnlocked())) + { + if (_questData.TryGetQuestInfo(item.ElementId, out var questInfo)) + { + using var tooltip = ImRaii.Tooltip(); + if (!tooltip) + continue; + + ImGui.Text($"Obtained from: {questInfo.Name}"); + using (ImRaii.PushIndent()) + _questTooltipComponent.DrawInner(questInfo, false); + } + } + } + } +} diff --git a/Questionable/Windows/JournalProgressWindow.cs b/Questionable/Windows/JournalProgressWindow.cs index 6a5724a7e..e6d2a16d5 100644 --- a/Questionable/Windows/JournalProgressWindow.cs +++ b/Questionable/Windows/JournalProgressWindow.cs @@ -12,12 +12,14 @@ internal sealed class JournalProgressWindow : LWindow, IDisposable { private readonly QuestJournalComponent _questJournalComponent; private readonly AlliedSocietyJournalComponent _alliedSocietyJournalComponent; + private readonly QuestRewardComponent _questRewardComponent; private readonly GatheringJournalComponent _gatheringJournalComponent; private readonly QuestRegistry _questRegistry; private readonly IClientState _clientState; public JournalProgressWindow( QuestJournalComponent questJournalComponent, + QuestRewardComponent questRewardComponent, AlliedSocietyJournalComponent alliedSocietyJournalComponent, GatheringJournalComponent gatheringJournalComponent, QuestRegistry questRegistry, @@ -26,6 +28,7 @@ internal sealed class JournalProgressWindow : LWindow, IDisposable { _questJournalComponent = questJournalComponent; _alliedSocietyJournalComponent = alliedSocietyJournalComponent; + _questRewardComponent = questRewardComponent; _gatheringJournalComponent = gatheringJournalComponent; _questRegistry = questRegistry; _clientState = clientState; @@ -64,6 +67,7 @@ internal sealed class JournalProgressWindow : LWindow, IDisposable _questJournalComponent.DrawQuests(); _alliedSocietyJournalComponent.DrawAlliedSocietyQuests(); + _questRewardComponent.DrawItemRewards(); _gatheringJournalComponent.DrawGatheringItems(); } diff --git a/Questionable/Windows/QuestComponents/QuestTooltipComponent.cs b/Questionable/Windows/QuestComponents/QuestTooltipComponent.cs index bcf823ae6..e74beb2a1 100644 --- a/Questionable/Windows/QuestComponents/QuestTooltipComponent.cs +++ b/Questionable/Windows/QuestComponents/QuestTooltipComponent.cs @@ -40,48 +40,58 @@ internal sealed class QuestTooltipComponent { using var tooltip = ImRaii.Tooltip(); if (tooltip) - { - ImGui.Text($"{SeIconChar.LevelEn.ToIconString()}{questInfo.Level}"); - ImGui.SameLine(); - - var (color, _, tooltipText) = _uiUtils.GetQuestStyle(questInfo.QuestId); - ImGui.TextColored(color, tooltipText); - if (questInfo.IsRepeatable) - { - ImGui.SameLine(); - ImGui.TextUnformatted("Repeatable"); - } - - if (questInfo is QuestInfo { CompletesInstantly: true }) - { - ImGui.SameLine(); - ImGui.TextUnformatted("Instant"); - } - - if (_questRegistry.TryGetQuest(questInfo.QuestId, out Quest? quest)) - { - if (quest.Root.Disabled) - { - ImGui.SameLine(); - ImGui.TextColored(ImGuiColors.DalamudRed, "Disabled"); - } - - if (quest.Root.Author.Count == 1) - ImGui.Text($"Author: {quest.Root.Author[0]}"); - else - ImGui.Text($"Authors: {string.Join(", ", quest.Root.Author)}"); - } - else - { - ImGui.SameLine(); - ImGui.TextColored(ImGuiColors.DalamudRed, "NoQuestPath"); - } - - DrawQuestUnlocks(questInfo, 0); - } + DrawInner(questInfo, true); } - private void DrawQuestUnlocks(IQuestInfo questInfo, int counter) + public void DrawInner(IQuestInfo questInfo, bool showItemRewards) + { + ImGui.Text($"{SeIconChar.LevelEn.ToIconString()}{questInfo.Level}"); + ImGui.SameLine(); + + var (color, _, tooltipText) = _uiUtils.GetQuestStyle(questInfo.QuestId); + ImGui.TextColored(color, tooltipText); + + if (questInfo is QuestInfo { IsSeasonalEvent: true }) + { + ImGui.SameLine(); + ImGui.TextUnformatted("Event"); + } + + if (questInfo.IsRepeatable) + { + ImGui.SameLine(); + ImGui.TextUnformatted("Repeatable"); + } + + if (questInfo is QuestInfo { CompletesInstantly: true }) + { + ImGui.SameLine(); + ImGui.TextUnformatted("Instant"); + } + + if (_questRegistry.TryGetQuest(questInfo.QuestId, out Quest? quest)) + { + if (quest.Root.Disabled) + { + ImGui.SameLine(); + ImGui.TextColored(ImGuiColors.DalamudRed, "Disabled"); + } + + if (quest.Root.Author.Count == 1) + ImGui.Text($"Author: {quest.Root.Author[0]}"); + else + ImGui.Text($"Authors: {string.Join(", ", quest.Root.Author)}"); + } + else + { + ImGui.SameLine(); + ImGui.TextColored(ImGuiColors.DalamudRed, "NoQuestPath"); + } + + DrawQuestUnlocks(questInfo, 0, showItemRewards); + } + + private void DrawQuestUnlocks(IQuestInfo questInfo, int counter, bool showItemRewards) { if (counter >= 10) return; @@ -118,12 +128,13 @@ internal sealed class QuestTooltipComponent _questFunctions.IsQuestComplete(q.QuestId) ? byte.MinValue : q.Sequence), iconColor, icon); if (qInfo is QuestInfo qstInfo && (counter <= 2 || icon != FontAwesomeIcon.Check)) - DrawQuestUnlocks(qstInfo, counter + 1); + DrawQuestUnlocks(qstInfo, counter + 1, false); } else { using var _ = ImRaii.Disabled(); - _uiUtils.ChecklistItem($"Unknown Quest ({q.QuestId})", ImGuiColors.DalamudGrey, FontAwesomeIcon.Question); + _uiUtils.ChecklistItem($"Unknown Quest ({q.QuestId})", ImGuiColors.DalamudGrey, + FontAwesomeIcon.Question); } } } @@ -193,6 +204,16 @@ internal sealed class QuestTooltipComponent GrandCompany currentGrandCompany = _questFunctions.GetGrandCompany(); _uiUtils.ChecklistItem($"Grand Company: {gcName}", actualQuestInfo.GrandCompany == currentGrandCompany); } + + if (showItemRewards && actualQuestInfo.ItemRewards.Count > 0) + { + ImGui.Separator(); + ImGui.Text("Item Rewards:"); + foreach (var reward in actualQuestInfo.ItemRewards) + { + ImGui.BulletText(reward.Name); + } + } } if (counter > 0) -- 2.45.2 From 86964dd6f94e43c8b4f0ae44eee9a98deed35ebe Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Thu, 2 Jan 2025 22:51:16 +0100 Subject: [PATCH 398/448] Update aether current sequence in Kozama'uka --- .../5064_Ripe for the Offering.json | 25 ++++++------------- .../4869_The Lifting of Wings.json | 11 ++++++++ 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/QuestPaths/7.x - Dawntrail/Aether Currents/Kozama'uka/5064_Ripe for the Offering.json b/QuestPaths/7.x - Dawntrail/Aether Currents/Kozama'uka/5064_Ripe for the Offering.json index a16039f32..585f5ba04 100644 --- a/QuestPaths/7.x - Dawntrail/Aether Currents/Kozama'uka/5064_Ripe for the Offering.json +++ b/QuestPaths/7.x - Dawntrail/Aether Currents/Kozama'uka/5064_Ripe for the Offering.json @@ -94,23 +94,6 @@ } } }, - { - "DataId": 2013938, - "Position": { - "X": 516.80774, - "Y": 17.959839, - "Z": -348.0431 - }, - "TerritoryId": 1188, - "InteractionType": "AttuneAetherCurrent", - "AetherCurrentId": 2818425, - "AetheryteShortcut": "Kozama'uka - Dock Poga", - "SkipConditions": { - "AetheryteShortcutIf": { - "AetheryteLocked": "Kozama'uka - Dock Poga" - } - } - }, { "DataId": 1048826, "Position": { @@ -119,7 +102,13 @@ "Z": -527.36707 }, "TerritoryId": 1188, - "InteractionType": "Interact" + "InteractionType": "Interact", + "AetheryteShortcut": "Kozama'uka - Dock Poga", + "SkipConditions": { + "AetheryteShortcutIf": { + "AetheryteLocked": "Kozama'uka - Dock Poga" + } + } } ] }, diff --git a/QuestPaths/7.x - Dawntrail/MSQ/A-Kozama'uka1-Urqopacha1/4869_The Lifting of Wings.json b/QuestPaths/7.x - Dawntrail/MSQ/A-Kozama'uka1-Urqopacha1/4869_The Lifting of Wings.json index 7ac485400..afb87e815 100644 --- a/QuestPaths/7.x - Dawntrail/MSQ/A-Kozama'uka1-Urqopacha1/4869_The Lifting of Wings.json +++ b/QuestPaths/7.x - Dawntrail/MSQ/A-Kozama'uka1-Urqopacha1/4869_The Lifting of Wings.json @@ -84,6 +84,17 @@ "DisableNavmesh": true, "Mount": true }, + { + "DataId": 2013938, + "Position": { + "X": 516.80774, + "Y": 17.959839, + "Z": -348.0431 + }, + "TerritoryId": 1188, + "InteractionType": "AttuneAetherCurrent", + "AetherCurrentId": 2818425 + }, { "DataId": 2013632, "Position": { -- 2.45.2 From c0c2e324bbba2df5f87923e85fdf81620b757ce9 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Thu, 2 Jan 2025 23:25:40 +0100 Subject: [PATCH 399/448] Skip most of the framework update logic if no quest is running and quest window isn't visible --- Questionable/Controller/QuestController.cs | 5 +++++ Questionable/Windows/QuestWindow.cs | 1 + 2 files changed, 6 insertions(+) diff --git a/Questionable/Controller/QuestController.cs b/Questionable/Controller/QuestController.cs index 5554404cf..9d17fed1d 100644 --- a/Questionable/Controller/QuestController.cs +++ b/Questionable/Controller/QuestController.cs @@ -146,6 +146,8 @@ internal sealed class QuestController : MiniTaskController, IDi public string? DebugState { get; private set; } + public Func IsQuestWindowOpen { private get; set; } = () => true; + public void Reload() { lock (_progressLock) @@ -181,6 +183,9 @@ internal sealed class QuestController : MiniTaskController, IDi } } + if (AutomationType == EAutomationType.Manual && !IsRunning && !IsQuestWindowOpen()) + return; + UpdateCurrentQuest(); if (!_clientState.IsLoggedIn || _condition[ConditionFlag.Unconscious]) diff --git a/Questionable/Windows/QuestWindow.cs b/Questionable/Windows/QuestWindow.cs index 2bcdbf9d2..1463895a5 100644 --- a/Questionable/Windows/QuestWindow.cs +++ b/Questionable/Windows/QuestWindow.cs @@ -104,6 +104,7 @@ internal sealed class QuestWindow : LWindow, IPersistableWindowConfig _activeQuestComponent.Reload += OnReload; _quickAccessButtonsComponent.Reload += OnReload; + _questController.IsQuestWindowOpen = () => IsOpen; } public WindowConfig WindowConfig => _configuration.DebugWindowConfig; -- 2.45.2 From 7023a1ac5f7fe51053fb09422e39b05bd52778d2 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Fri, 3 Jan 2025 00:14:51 +0100 Subject: [PATCH 400/448] Add Heavensturn (2025) quest by Starr --- .../5186_Heavensssturn Trivia.json | 118 ++++++++++++++++++ .../QuestComponents/EventInfoComponent.cs | 2 +- 2 files changed, 119 insertions(+), 1 deletion(-) create mode 100644 QuestPaths/7.x - Dawntrail/Seasonal Events/Heavensturn (2025)/5186_Heavensssturn Trivia.json diff --git a/QuestPaths/7.x - Dawntrail/Seasonal Events/Heavensturn (2025)/5186_Heavensssturn Trivia.json b/QuestPaths/7.x - Dawntrail/Seasonal Events/Heavensturn (2025)/5186_Heavensssturn Trivia.json new file mode 100644 index 000000000..d6623a1b5 --- /dev/null +++ b/QuestPaths/7.x - Dawntrail/Seasonal Events/Heavensturn (2025)/5186_Heavensssturn Trivia.json @@ -0,0 +1,118 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Starr", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1050356, + "Position": { + "X": 17.288391, + "Y": 45.656, + "Z": 133.95886 + }, + "TerritoryId": 128, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] The Aftcastle" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InTerritory": [ + 128 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1050357, + "Position": { + "X": -4.6845703, + "Y": 40.000004, + "Z": 73.3501 + }, + "TerritoryId": 128, + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Prompt": "TEXT_FESNYX101_05186_Q1_000_000", + "Answer": "TEXT_FESNYX101_05186_A1_000_000", + "Type": "List" + } + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1050358, + "Position": { + "X": -18.143005, + "Y": 44, + "Z": -33.49359 + }, + "TerritoryId": 128, + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Prompt": "TEXT_FESNYX101_05186_Q2_000_000", + "Answer": "TEXT_FESNYX101_05186_A2_000_001", + "Type": "List" + } + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1050359, + "Position": { + "X": -44.235962, + "Y": 39.473606, + "Z": -163.77509 + }, + "TerritoryId": 128, + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Prompt": "TEXT_FESNYX101_05186_Q3_000_000", + "Answer": "TEXT_FESNYX101_05186_A3_000_000", + "Type": "List" + } + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1050356, + "Position": { + "X": 17.288391, + "Y": 45.656, + "Z": 133.95886 + }, + "TerritoryId": 128, + "InteractionType": "CompleteQuest", + "AethernetShortcut": [ + "[Limsa Lominsa] Culinarians' Guild", + "[Limsa Lominsa] The Aftcastle" + ] + } + ] + } + ] +} diff --git a/Questionable/Windows/QuestComponents/EventInfoComponent.cs b/Questionable/Windows/QuestComponents/EventInfoComponent.cs index 9325efa2f..698d98d4c 100644 --- a/Questionable/Windows/QuestComponents/EventInfoComponent.cs +++ b/Questionable/Windows/QuestComponents/EventInfoComponent.cs @@ -22,7 +22,7 @@ internal sealed class EventInfoComponent [SuppressMessage("ReSharper", "CollectionNeverUpdated.Local")] private readonly List _eventQuests = [ - new("Starlight Celebration", [new(5227), new(5228)], AtDailyReset(new(2024, 12, 31))), + new("Heavensturn", [new(5186)], AtDailyReset(new(2025, 1, 16))), ]; private readonly QuestData _questData; -- 2.45.2 From 58185d418c9e5c621b0c515911701988d52c14a6 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Fri, 3 Jan 2025 00:40:06 +0100 Subject: [PATCH 401/448] Add a few Gold Saucer unlock quests by Starr --- .../Gold Saucer/3081_Passion for Fashion.json | 42 ++++++++++++++ ...very Little Thing She Does Is Mahjong.json | 46 +++++++++++++++ .../436_So You Want to Be a Jockey.json | 57 +++++++++++++++++++ .../Gold Saucer/437_Triple Triad Trial.json | 34 +++++++++++ ...o You Think You Can Ride This Chocobo.json | 55 ++++++++++++++++++ 5 files changed, 234 insertions(+) create mode 100644 QuestPaths/2.x - A Realm Reborn/Unlocks/Gold Saucer/3081_Passion for Fashion.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Unlocks/Gold Saucer/3201_Every Little Thing She Does Is Mahjong.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Unlocks/Gold Saucer/436_So You Want to Be a Jockey.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Unlocks/Gold Saucer/437_Triple Triad Trial.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Unlocks/Gold Saucer/565_So You Think You Can Ride This Chocobo.json diff --git a/QuestPaths/2.x - A Realm Reborn/Unlocks/Gold Saucer/3081_Passion for Fashion.json b/QuestPaths/2.x - A Realm Reborn/Unlocks/Gold Saucer/3081_Passion for Fashion.json new file mode 100644 index 000000000..04db319da --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Unlocks/Gold Saucer/3081_Passion for Fashion.json @@ -0,0 +1,42 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Starr", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1011145, + "Position": { + "X": -65.38495, + "Y": 0.06979119, + "Z": 0.8086548 + }, + "TerritoryId": 144, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Gold Saucer", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1025176, + "Position": { + "X": 57.99951, + "Y": 3.9997258, + "Z": 64.774536 + }, + "TerritoryId": 144, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Unlocks/Gold Saucer/3201_Every Little Thing She Does Is Mahjong.json b/QuestPaths/2.x - A Realm Reborn/Unlocks/Gold Saucer/3201_Every Little Thing She Does Is Mahjong.json new file mode 100644 index 000000000..1c0e99050 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Unlocks/Gold Saucer/3201_Every Little Thing She Does Is Mahjong.json @@ -0,0 +1,46 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Starr", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1011145, + "Position": { + "X": -65.38495, + "Y": 0.06979119, + "Z": 0.8086548 + }, + "TerritoryId": 144, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Gold Saucer", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1016307, + "Position": { + "X": 57.14502, + "Y": 20.99973, + "Z": 83.57361 + }, + "TerritoryId": 144, + "InteractionType": "CompleteQuest", + "AethernetShortcut": [ + "[Gold Saucer] Aetheryte Plaza", + "[Gold Saucer] Wonder Square East" + ] + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Unlocks/Gold Saucer/436_So You Want to Be a Jockey.json b/QuestPaths/2.x - A Realm Reborn/Unlocks/Gold Saucer/436_So You Want to Be a Jockey.json new file mode 100644 index 000000000..0cd04e865 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Unlocks/Gold Saucer/436_So You Want to Be a Jockey.json @@ -0,0 +1,57 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Starr", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1010464, + "Position": { + "X": -0.015319824, + "Y": -1.8903663E-06, + "Z": -65.61273 + }, + "TerritoryId": 388, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Gold Saucer", + "AethernetShortcut": [ + "[Gold Saucer] Aetheryte Plaza", + "[Gold Saucer] Chocobo Square" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 144 + ] + } + } + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1010472, + "Position": { + "X": -53.26935, + "Y": 0.3093315, + "Z": 69.41321 + }, + "TerritoryId": 148, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Central Shroud - Bentbranch Meadows", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + }, + "Fly": true, + "NextQuestId": 565 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Unlocks/Gold Saucer/437_Triple Triad Trial.json b/QuestPaths/2.x - A Realm Reborn/Unlocks/Gold Saucer/437_Triple Triad Trial.json new file mode 100644 index 000000000..de58efed8 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Unlocks/Gold Saucer/437_Triple Triad Trial.json @@ -0,0 +1,34 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Starr", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1011060, + "Position": { + "X": -96.87958, + "Y": -0.86297023, + "Z": 67.826294 + }, + "TerritoryId": 144, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Gold Saucer", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + }, + "DialogueChoices": [ + { + "Type": "YesNo", + "Yes": true, + "Prompt": "TEXT_SUBGSC102_00437_Q1_000_000" + } + ] + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Unlocks/Gold Saucer/565_So You Think You Can Ride This Chocobo.json b/QuestPaths/2.x - A Realm Reborn/Unlocks/Gold Saucer/565_So You Think You Can Ride This Chocobo.json new file mode 100644 index 000000000..af58abfac --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Unlocks/Gold Saucer/565_So You Think You Can Ride This Chocobo.json @@ -0,0 +1,55 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Starr", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1010472, + "Position": { + "X": -53.26935, + "Y": 0.3093315, + "Z": 69.41321 + }, + "TerritoryId": 148, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Central Shroud - Bentbranch Meadows", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1010464, + "Position": { + "X": -0.015319824, + "Y": -1.8903663E-06, + "Z": -65.61273 + }, + "TerritoryId": 388, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Gold Saucer", + "AethernetShortcut": [ + "[Gold Saucer] Aetheryte Plaza", + "[Gold Saucer] Chocobo Square" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InTerritory": [ + 388, + 144 + ] + } + } + } + ] + } + ] +} -- 2.45.2 From 0a35ea3eaa5b0066e3ebae2e99122e990f58476d Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Fri, 3 Jan 2025 01:11:25 +0100 Subject: [PATCH 402/448] Add filter to exclude event rewards --- .../JournalComponents/QuestRewardComponent.cs | 20 ++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/Questionable/Windows/JournalComponents/QuestRewardComponent.cs b/Questionable/Windows/JournalComponents/QuestRewardComponent.cs index 2fab3109e..cbb3af7d8 100644 --- a/Questionable/Windows/JournalComponents/QuestRewardComponent.cs +++ b/Questionable/Windows/JournalComponents/QuestRewardComponent.cs @@ -1,5 +1,6 @@ using System; using System.Linq; +using Dalamud.Game.Text; using Dalamud.Interface.Utility.Raii; using ImGuiNET; using Questionable.Data; @@ -14,6 +15,8 @@ internal sealed class QuestRewardComponent private readonly QuestTooltipComponent _questTooltipComponent; private readonly UiUtils _uiUtils; + private bool _showEventRewards; + public QuestRewardComponent( QuestData questData, QuestTooltipComponent questTooltipComponent, @@ -30,7 +33,10 @@ internal sealed class QuestRewardComponent if (!tab) return; - ImGui.BulletText("Only untradeable items are listed (you can e.g. sell your Wind-up Airship from the enovy quest)."); + ImGui.Checkbox("Show rewards from seasonal event quests", ref _showEventRewards); + ImGui.Spacing(); + + ImGui.BulletText("Only untradeable items are listed (e.g. the Wind-up Airship can be sold on the market board)."); DrawGroup("Mounts", EItemRewardType.Mount); DrawGroup("Minions", EItemRewardType.Minion); @@ -47,9 +53,17 @@ internal sealed class QuestRewardComponent foreach (var item in _questData.RedeemableItems.Where(x => x.Type == type) .OrderBy(x => x.Name, StringComparer.CurrentCultureIgnoreCase)) { - if (_uiUtils.ChecklistItem(item.Name, item.IsUnlocked())) + if (_questData.TryGetQuestInfo(item.ElementId, out var questInfo)) { - if (_questData.TryGetQuestInfo(item.ElementId, out var questInfo)) + bool isEventQuest = questInfo is QuestInfo { IsSeasonalEvent: true }; + if (!_showEventRewards && isEventQuest) + continue; + + string name = item.Name; + if (isEventQuest) + name += $" {SeIconChar.Clock.ToIconString()}"; + + if (_uiUtils.ChecklistItem(name, item.IsUnlocked())) { using var tooltip = ImRaii.Tooltip(); if (!tooltip) -- 2.45.2 From 6a29273c793cc2daa292e4d49bb44223efb755d1 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Fri, 3 Jan 2025 01:24:51 +0100 Subject: [PATCH 403/448] Update LLib --- LLib | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/LLib b/LLib index 783fea977..b10598711 160000 --- a/LLib +++ b/LLib @@ -1 +1 @@ -Subproject commit 783fea977a2524dd63e717367fc026c52efe6c23 +Subproject commit b1059871154b84401020c0072fd089fcc022fb77 -- 2.45.2 From 9aa07afff89c05e434b58e09562ae777907623da Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Fri, 3 Jan 2025 01:46:31 +0100 Subject: [PATCH 404/448] Don't try queueing for duties when ilvl is too low --- .../Steps/Common/SendNotification.cs | 2 +- .../Controller/Steps/Interactions/Duty.cs | 48 ++++++++++++++++--- Questionable/Data/TerritoryData.cs | 35 +++++++++----- Questionable/External/AutoDutyIpc.cs | 12 ++--- Questionable/QuestionablePlugin.cs | 3 ++ Questionable/Windows/ConfigWindow.cs | 2 +- 6 files changed, 75 insertions(+), 27 deletions(-) diff --git a/Questionable/Controller/Steps/Common/SendNotification.cs b/Questionable/Controller/Steps/Common/SendNotification.cs index e83a1186c..cf116028e 100644 --- a/Questionable/Controller/Steps/Common/SendNotification.cs +++ b/Questionable/Controller/Steps/Common/SendNotification.cs @@ -24,7 +24,7 @@ internal static class SendNotification new Task(step.InteractionType, step.Comment), EInteractionType.Duty when !autoDutyIpc.IsConfiguredToRunContent(step.ContentFinderConditionId, step.AutoDutyEnabled) => new Task(step.InteractionType, step.ContentFinderConditionId.HasValue - ? territoryData.GetContentFinderConditionName(step.ContentFinderConditionId.Value) + ? territoryData.GetContentFinderCondition(step.ContentFinderConditionId.Value)?.Name : step.Comment), EInteractionType.SinglePlayerDuty => new Task(step.InteractionType, quest.Info.Name), _ => null, diff --git a/Questionable/Controller/Steps/Interactions/Duty.cs b/Questionable/Controller/Steps/Interactions/Duty.cs index fab5c6ed3..5e20accf0 100644 --- a/Questionable/Controller/Steps/Interactions/Duty.cs +++ b/Questionable/Controller/Steps/Interactions/Duty.cs @@ -2,6 +2,9 @@ using System.Collections.Generic; using Dalamud.Game.ClientState.Conditions; using Dalamud.Plugin.Services; +using FFXIVClientStructs.FFXIV.Client.Game; +using LLib.Gear; +using Questionable.Controller.Steps.Common; using Questionable.Controller.Steps.Shared; using Questionable.Data; using Questionable.External; @@ -41,23 +44,54 @@ internal static class Duty } internal sealed class StartAutoDutyExecutor( + GearStatsCalculator gearStatsCalculator, AutoDutyIpc autoDutyIpc, TerritoryData territoryData, - IClientState clientState) : TaskExecutor + IClientState clientState, + IChatGui chatGui, + SendNotification.Executor sendNotificationExecutor) : TaskExecutor { protected override bool Start() { + if (!territoryData.TryGetContentFinderCondition(Task.ContentFinderConditionId, + out var cfcData)) + throw new TaskException("Failed to get territory ID for content finder condition"); + + unsafe + { + InventoryManager* inventoryManager = InventoryManager.Instance(); + if (inventoryManager == null) + throw new TaskException("Inventory unavailable"); + + var equippedItems = inventoryManager->GetInventoryContainer(InventoryType.EquippedItems); + if (equippedItems == null) + throw new TaskException("Equipped items unavailable"); + + var currentItemLevel = gearStatsCalculator.CalculateAverageItemLevel(equippedItems); + if (cfcData.RequiredItemLevel > currentItemLevel) + { + string errorText = + $"Could not use AutoDuty to queue for {cfcData.Name}, required item level: {cfcData.RequiredItemLevel}, current item level: {currentItemLevel}."; + if (!sendNotificationExecutor.Start(new SendNotification.Task(EInteractionType.Duty, errorText))) + chatGui.PrintError(errorText, CommandHandler.MessageTag, CommandHandler.TagColor); + + return false; + } + } + autoDutyIpc.StartInstance(Task.ContentFinderConditionId); return true; } public override ETaskResult Update() { - if (!territoryData.TryGetTerritoryIdForContentFinderCondition(Task.ContentFinderConditionId, - out uint territoryId)) + if (!territoryData.TryGetContentFinderCondition(Task.ContentFinderConditionId, + out var cfcData)) throw new TaskException("Failed to get territory ID for content finder condition"); - return clientState.TerritoryType == territoryId ? ETaskResult.TaskComplete : ETaskResult.StillRunning; + return clientState.TerritoryType == cfcData.TerritoryId + ? ETaskResult.TaskComplete + : ETaskResult.StillRunning; } } @@ -75,11 +109,11 @@ internal static class Duty public override ETaskResult Update() { - if (!territoryData.TryGetTerritoryIdForContentFinderCondition(Task.ContentFinderConditionId, - out uint territoryId)) + if (!territoryData.TryGetContentFinderCondition(Task.ContentFinderConditionId, + out var cfcData)) throw new TaskException("Failed to get territory ID for content finder condition"); - return clientState.TerritoryType != territoryId && autoDutyIpc.IsStopped() + return clientState.TerritoryType != cfcData.TerritoryId && autoDutyIpc.IsStopped() ? ETaskResult.TaskComplete : ETaskResult.StillRunning; } diff --git a/Questionable/Data/TerritoryData.cs b/Questionable/Data/TerritoryData.cs index 970718b2f..f269b138a 100644 --- a/Questionable/Data/TerritoryData.cs +++ b/Questionable/Data/TerritoryData.cs @@ -1,12 +1,11 @@ using System; -using System.Collections.Generic; using System.Collections.Immutable; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using Dalamud.Game; using Dalamud.Plugin.Services; using Dalamud.Utility; -using FFXIVClientStructs.FFXIV.Client.Game.Character; using Lumina.Excel.Sheets; namespace Questionable.Data; @@ -17,8 +16,7 @@ internal sealed class TerritoryData private readonly ImmutableHashSet _territoriesWithMount; private readonly ImmutableDictionary _dutyTerritories; private readonly ImmutableDictionary _instanceNames; - private readonly ImmutableDictionary _contentFinderConditionNames; - private readonly ImmutableDictionary _contentFinderConditionIds; + private readonly ImmutableDictionary _contentFinderConditions; public TerritoryData(IDataManager dataManager) { @@ -46,12 +44,10 @@ internal sealed class TerritoryData .Where(x => x.RowId > 0 && x.Content.RowId != 0 && x.ContentLinkType == 1 && x.ContentType.RowId != 6) .ToImmutableDictionary(x => x.Content.RowId, x => x.Name.ToDalamudString().ToString()); - _contentFinderConditionNames = dataManager.GetExcelSheet() + _contentFinderConditions = dataManager.GetExcelSheet() .Where(x => x.RowId > 0 && x.Content.RowId != 0 && x.ContentLinkType == 1 && x.ContentType.RowId != 6) - .ToImmutableDictionary(x => x.RowId, x => FixName(x.Name.ToDalamudString().ToString(), dataManager.Language)); - _contentFinderConditionIds = dataManager.GetExcelSheet() - .Where(x => x.RowId > 0 && x.Content.RowId != 0 && x.ContentLinkType == 1 && x.ContentType.RowId != 6) - .ToImmutableDictionary(x => x.RowId, x => x.TerritoryType.RowId); + .Select(x => new ContentFinderConditionData(x, dataManager.Language)) + .ToImmutableDictionary(x => x.ContentFinderConditionId, x => x); } public string? GetName(ushort territoryId) => _territoryNames.GetValueOrDefault(territoryId); @@ -74,10 +70,12 @@ internal sealed class TerritoryData public string? GetInstanceName(ushort instanceId) => _instanceNames.GetValueOrDefault(instanceId); - public string? GetContentFinderConditionName(uint cfcId) => _contentFinderConditionNames.GetValueOrDefault(cfcId); + public ContentFinderConditionData? GetContentFinderCondition(uint cfcId) => + _contentFinderConditions.GetValueOrDefault(cfcId); - public bool TryGetTerritoryIdForContentFinderCondition(uint cfcId, out uint territoryId) => - _contentFinderConditionIds.TryGetValue(cfcId, out territoryId); + public bool TryGetContentFinderCondition(uint cfcId, + [NotNullWhen(true)] out ContentFinderConditionData? contentFinderConditionData) => + _contentFinderConditions.TryGetValue(cfcId, out contentFinderConditionData); private static string FixName(string name, ClientLanguage language) { @@ -86,4 +84,17 @@ internal sealed class TerritoryData return string.Concat(name[0].ToString().ToUpper(CultureInfo.InvariantCulture), name.AsSpan(1)); } + + public sealed record ContentFinderConditionData( + uint ContentFinderConditionId, + string Name, + uint TerritoryId, + ushort RequiredItemLevel) + { + public ContentFinderConditionData(ContentFinderCondition condition, ClientLanguage clientLanguage) + : this(condition.RowId, FixName(condition.Name.ToDalamudString().ToString(), clientLanguage), + condition.TerritoryType.RowId, condition.ItemLevelRequired) + { + } + } } diff --git a/Questionable/External/AutoDutyIpc.cs b/Questionable/External/AutoDutyIpc.cs index 1089efcc3..71bae7fd1 100644 --- a/Questionable/External/AutoDutyIpc.cs +++ b/Questionable/External/AutoDutyIpc.cs @@ -38,7 +38,7 @@ internal sealed class AutoDutyIpc return false; if (_configuration.Duties.WhitelistedDutyCfcIds.Contains(cfcId.Value) && - _territoryData.TryGetTerritoryIdForContentFinderCondition(cfcId.Value, out _)) + _territoryData.TryGetContentFinderCondition(cfcId.Value, out _)) return true; return autoDutyEnabled && HasPath(cfcId.Value); @@ -46,28 +46,28 @@ internal sealed class AutoDutyIpc public bool HasPath(uint cfcId) { - if (!_territoryData.TryGetTerritoryIdForContentFinderCondition(cfcId, out uint territoryType)) + if (!_territoryData.TryGetContentFinderCondition(cfcId, out var cfcData)) return false; try { - return _contentHasPath.InvokeFunc(territoryType); + return _contentHasPath.InvokeFunc(cfcData.TerritoryId); } catch (IpcError e) { - _logger.LogWarning("Unable to query AutoDuty for path in territory {TerritoryType}: {Message}", territoryType, e.Message); + _logger.LogWarning("Unable to query AutoDuty for path in territory {TerritoryType}: {Message}", cfcData.TerritoryId, e.Message); return false; } } public void StartInstance(uint cfcId) { - if (!_territoryData.TryGetTerritoryIdForContentFinderCondition(cfcId, out uint territoryType)) + if (!_territoryData.TryGetContentFinderCondition(cfcId, out var cfcData)) throw new TaskException($"Unknown ContentFinderConditionId {cfcId}"); try { - _run.InvokeAction(territoryType, 0, true); + _run.InvokeAction(cfcData.TerritoryId, 0, true); } catch (IpcError e) { diff --git a/Questionable/QuestionablePlugin.cs b/Questionable/QuestionablePlugin.cs index f5fa51ee1..a4b5bae9e 100644 --- a/Questionable/QuestionablePlugin.cs +++ b/Questionable/QuestionablePlugin.cs @@ -7,6 +7,7 @@ using Dalamud.Interface.Windowing; using Dalamud.Plugin; using Dalamud.Plugin.Services; using LLib; +using LLib.Gear; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; using Questionable.Controller; @@ -130,6 +131,8 @@ public sealed class QuestionablePlugin : IDalamudPlugin serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); + + serviceCollection.AddSingleton(); } private static void AddTaskFactories(ServiceCollection serviceCollection) diff --git a/Questionable/Windows/ConfigWindow.cs b/Questionable/Windows/ConfigWindow.cs index 397faeba4..131f3726d 100644 --- a/Questionable/Windows/ConfigWindow.cs +++ b/Questionable/Windows/ConfigWindow.cs @@ -99,7 +99,7 @@ internal sealed class ConfigWindow : LWindow, IPersistableWindowConfig { Expansion = (EExpansionVersion)x.TerritoryType.Value.ExVersion.RowId, CfcId = x.RowId, - Name = territoryData.GetContentFinderConditionName(x.RowId) ?? "?", + Name = territoryData.GetContentFinderCondition(x.RowId)?.Name ?? "?", TerritoryId = x.TerritoryType.RowId, ContentType = x.ContentType.RowId, Level = x.ClassJobLevelRequired, -- 2.45.2 From 341c751f0c5fc4384b2b8a613264fc957936373b Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Fri, 3 Jan 2025 02:22:06 +0100 Subject: [PATCH 405/448] Minor quest adjustments --- .../1021_What's It to U.json | 42 +++++++-- .../1022_Zombies Are People Too.json | 5 +- .../1553_Can't Do It without U.json | 87 +++++++++++++++++++ .../1791_Feat of Clay.json | 31 ++++--- .../1793_Yellow Stones.json | 15 ++-- .../1947_A Bum Rap.json | 5 +- .../3142_Secret of the Ooze.json | 5 +- 7 files changed, 162 insertions(+), 28 deletions(-) create mode 100644 QuestPaths/2.x - A Realm Reborn/Side Quests/Thanalan/The Waking Sands/1553_Can't Do It without U.json rename QuestPaths/4.x - Stormblood/Unlocks/{Misc => Dungeons}/3142_Secret of the Ooze.json (95%) diff --git a/QuestPaths/2.x - A Realm Reborn/Side Quests/Thanalan/Southern Thanalan/1021_What's It to U.json b/QuestPaths/2.x - A Realm Reborn/Side Quests/Thanalan/Southern Thanalan/1021_What's It to U.json index 0c3628310..259f27ceb 100644 --- a/QuestPaths/2.x - A Realm Reborn/Side Quests/Thanalan/Southern Thanalan/1021_What's It to U.json +++ b/QuestPaths/2.x - A Realm Reborn/Side Quests/Thanalan/Southern Thanalan/1021_What's It to U.json @@ -28,7 +28,15 @@ "Z": 436.94202 }, "TerritoryId": 146, - "InteractionType": "Interact" + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 16 + ] }, { "DataId": 1006600, @@ -38,7 +46,15 @@ "Z": 423.14795 }, "TerritoryId": 146, - "InteractionType": "Interact" + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] }, { "DataId": 1006599, @@ -48,7 +64,15 @@ "Z": 373.37292 }, "TerritoryId": 146, - "InteractionType": "Interact" + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] }, { "DataId": 1006601, @@ -58,7 +82,15 @@ "Z": 354.63477 }, "TerritoryId": 146, - "InteractionType": "Interact" + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] } ] }, @@ -78,4 +110,4 @@ ] } ] -} \ No newline at end of file +} diff --git a/QuestPaths/2.x - A Realm Reborn/Side Quests/Thanalan/Southern Thanalan/1022_Zombies Are People Too.json b/QuestPaths/2.x - A Realm Reborn/Side Quests/Thanalan/Southern Thanalan/1022_Zombies Are People Too.json index 60c6be259..01f2002da 100644 --- a/QuestPaths/2.x - A Realm Reborn/Side Quests/Thanalan/Southern Thanalan/1022_Zombies Are People Too.json +++ b/QuestPaths/2.x - A Realm Reborn/Side Quests/Thanalan/Southern Thanalan/1022_Zombies Are People Too.json @@ -13,7 +13,8 @@ "Z": 972.5642 }, "TerritoryId": 146, - "InteractionType": "AcceptQuest" + "InteractionType": "AcceptQuest", + "Fly": true } ] }, @@ -166,4 +167,4 @@ ] } ] -} \ No newline at end of file +} diff --git a/QuestPaths/2.x - A Realm Reborn/Side Quests/Thanalan/The Waking Sands/1553_Can't Do It without U.json b/QuestPaths/2.x - A Realm Reborn/Side Quests/Thanalan/The Waking Sands/1553_Can't Do It without U.json new file mode 100644 index 000000000..caf53c576 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Side Quests/Thanalan/The Waking Sands/1553_Can't Do It without U.json @@ -0,0 +1,87 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "TerritoryId": 132, + "InteractionType": "UseItem", + "ItemId": 30362, + "TargetTerritoryId": 140, + "SkipConditions": { + "StepIf": { + "InTerritory": [ + 140, + 212 + ] + } + } + }, + { + "Position": { + "X": -492.96475, + "Y": 20.999884, + "Z": -380.82272 + }, + "TerritoryId": 140, + "InteractionType": "WalkTo", + "$": "Avoid walking around Waking Sands table", + "SkipConditions": { + "StepIf": { + "InTerritory": [ + 212 + ] + } + } + }, + { + "DataId": 2001711, + "Position": { + "X": -480.9181, + "Y": 18.00103, + "Z": -386.862 + }, + "TerritoryId": 140, + "InteractionType": "Interact", + "TargetTerritoryId": 212, + "SkipConditions": { + "StepIf": { + "InTerritory": [ + 212 + ] + } + } + }, + { + "DataId": 1011618, + "Position": { + "X": 10.330261, + "Y": -3.0000017, + "Z": -54.8562 + }, + "TerritoryId": 212, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1004917, + "Position": { + "X": -358.6328, + "Y": 8.469424, + "Z": 422.4154 + }, + "TerritoryId": 146, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Southern Thanalan - Forgotten Springs", + "NextQuestId": 1021 + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Side Quests/The Dravanian Forelands/1791_Feat of Clay.json b/QuestPaths/3.x - Heavensward/Side Quests/The Dravanian Forelands/1791_Feat of Clay.json index 22b566e0f..e8ceb18b0 100644 --- a/QuestPaths/3.x - Heavensward/Side Quests/The Dravanian Forelands/1791_Feat of Clay.json +++ b/QuestPaths/3.x - Heavensward/Side Quests/The Dravanian Forelands/1791_Feat of Clay.json @@ -13,7 +13,8 @@ "Z": -135.91211 }, "TerritoryId": 398, - "InteractionType": "AcceptQuest" + "InteractionType": "AcceptQuest", + "Fly": true } ] }, @@ -27,12 +28,16 @@ "Y": -99.931335, "Z": 644.4646 }, + "StopDistance": 0.5, "TerritoryId": 398, "InteractionType": "Interact", "CompletionQuestVariablesFlags": [ - null, null, - null, null, - null, 128 + null, + null, + null, + null, + null, + 128 ], "Fly": true }, @@ -43,13 +48,18 @@ "Y": -94.10242, "Z": 597.9553 }, + "StopDistance": 0.5, "TerritoryId": 398, "InteractionType": "Interact", "CompletionQuestVariablesFlags": [ - null, null, - null, null, - null, 64 - ] + null, + null, + null, + null, + null, + 64 + ], + "Fly": true } ] }, @@ -65,9 +75,10 @@ }, "TerritoryId": 398, "InteractionType": "CompleteQuest", - "Fly": true + "Fly": true, + "NextQuestId": 1793 } ] } ] -} \ No newline at end of file +} diff --git a/QuestPaths/3.x - Heavensward/Side Quests/The Dravanian Forelands/1793_Yellow Stones.json b/QuestPaths/3.x - Heavensward/Side Quests/The Dravanian Forelands/1793_Yellow Stones.json index 7f58bbe58..4a20e28b7 100644 --- a/QuestPaths/3.x - Heavensward/Side Quests/The Dravanian Forelands/1793_Yellow Stones.json +++ b/QuestPaths/3.x - Heavensward/Side Quests/The Dravanian Forelands/1793_Yellow Stones.json @@ -13,7 +13,8 @@ "Z": -135.91211 }, "TerritoryId": 398, - "InteractionType": "AcceptQuest" + "InteractionType": "AcceptQuest", + "Fly": true } ] }, @@ -55,8 +56,8 @@ null, null, 32 - ] - + ], + "Fly": true }, { "DataId": 2005633, @@ -74,7 +75,8 @@ null, null, 128 - ] + ], + "Fly": true }, { "DataId": 2005634, @@ -92,7 +94,8 @@ null, null, 64 - ] + ], + "Fly": true } ] },{ @@ -112,4 +115,4 @@ ] } ] -} \ No newline at end of file +} diff --git a/QuestPaths/3.x - Heavensward/Side Quests/The Dravanian Hinterlands/1947_A Bum Rap.json b/QuestPaths/3.x - Heavensward/Side Quests/The Dravanian Hinterlands/1947_A Bum Rap.json index b00954c43..c9275d045 100644 --- a/QuestPaths/3.x - Heavensward/Side Quests/The Dravanian Hinterlands/1947_A Bum Rap.json +++ b/QuestPaths/3.x - Heavensward/Side Quests/The Dravanian Hinterlands/1947_A Bum Rap.json @@ -14,7 +14,8 @@ "Z": -186.4195 }, "TerritoryId": 399, - "InteractionType": "AcceptQuest" + "InteractionType": "AcceptQuest", + "Fly": true } ] }, @@ -59,4 +60,4 @@ } ] -} \ No newline at end of file +} diff --git a/QuestPaths/4.x - Stormblood/Unlocks/Misc/3142_Secret of the Ooze.json b/QuestPaths/4.x - Stormblood/Unlocks/Dungeons/3142_Secret of the Ooze.json similarity index 95% rename from QuestPaths/4.x - Stormblood/Unlocks/Misc/3142_Secret of the Ooze.json rename to QuestPaths/4.x - Stormblood/Unlocks/Dungeons/3142_Secret of the Ooze.json index b57c78525..4920cf5d1 100644 --- a/QuestPaths/4.x - Stormblood/Unlocks/Misc/3142_Secret of the Ooze.json +++ b/QuestPaths/4.x - Stormblood/Unlocks/Dungeons/3142_Secret of the Ooze.json @@ -61,8 +61,7 @@ { "TerritoryId": 399, "InteractionType": "Duty", - "AutoDutyEnabled": true, - "ContentFinderConditionId": 62 + "ContentFinderConditionId": 584 } ] }, @@ -82,4 +81,4 @@ ] } ] -} \ No newline at end of file +} -- 2.45.2 From da425f551ed7b1e26eb90ac1e95290a8e66cc9a3 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Fri, 3 Jan 2025 02:26:18 +0100 Subject: [PATCH 406/448] Use gray icons for item rewards if no quest path is available --- .../JournalComponents/QuestRewardComponent.cs | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/Questionable/Windows/JournalComponents/QuestRewardComponent.cs b/Questionable/Windows/JournalComponents/QuestRewardComponent.cs index cbb3af7d8..9efa50297 100644 --- a/Questionable/Windows/JournalComponents/QuestRewardComponent.cs +++ b/Questionable/Windows/JournalComponents/QuestRewardComponent.cs @@ -1,8 +1,11 @@ using System; using System.Linq; using Dalamud.Game.Text; +using Dalamud.Interface; +using Dalamud.Interface.Colors; using Dalamud.Interface.Utility.Raii; using ImGuiNET; +using Questionable.Controller; using Questionable.Data; using Questionable.Model; using Questionable.Windows.QuestComponents; @@ -11,6 +14,7 @@ namespace Questionable.Windows.JournalComponents; internal sealed class QuestRewardComponent { + private readonly QuestRegistry _questRegistry; private readonly QuestData _questData; private readonly QuestTooltipComponent _questTooltipComponent; private readonly UiUtils _uiUtils; @@ -18,10 +22,12 @@ internal sealed class QuestRewardComponent private bool _showEventRewards; public QuestRewardComponent( + QuestRegistry questRegistry, QuestData questData, QuestTooltipComponent questTooltipComponent, UiUtils uiUtils) { + _questRegistry = questRegistry; _questData = questData; _questTooltipComponent = questTooltipComponent; _uiUtils = uiUtils; @@ -36,7 +42,8 @@ internal sealed class QuestRewardComponent ImGui.Checkbox("Show rewards from seasonal event quests", ref _showEventRewards); ImGui.Spacing(); - ImGui.BulletText("Only untradeable items are listed (e.g. the Wind-up Airship can be sold on the market board)."); + ImGui.BulletText( + "Only untradeable items are listed (e.g. the Wind-up Airship can be sold on the market board)."); DrawGroup("Mounts", EItemRewardType.Mount); DrawGroup("Minions", EItemRewardType.Minion); @@ -63,7 +70,14 @@ internal sealed class QuestRewardComponent if (isEventQuest) name += $" {SeIconChar.Clock.ToIconString()}"; - if (_uiUtils.ChecklistItem(name, item.IsUnlocked())) + bool complete = item.IsUnlocked(); + var color = !_questRegistry.IsKnownQuest(item.ElementId) + ? ImGuiColors.DalamudGrey + : complete + ? ImGuiColors.ParsedGreen + : ImGuiColors.DalamudRed; + var icon = complete ? FontAwesomeIcon.Check : FontAwesomeIcon.Times; + if (_uiUtils.ChecklistItem(name, color, icon)) { using var tooltip = ImRaii.Tooltip(); if (!tooltip) -- 2.45.2 From dbc31f429fe45398e55a69cbd55d64738a530195 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Fri, 3 Jan 2025 02:26:36 +0100 Subject: [PATCH 407/448] Version bump --- Directory.Build.targets | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Directory.Build.targets b/Directory.Build.targets index 3ceabdbaf..c81f1e908 100644 --- a/Directory.Build.targets +++ b/Directory.Build.targets @@ -1,5 +1,5 @@ - 4.11 + 4.12 -- 2.45.2 From e73d04ce2d1a253c1b422203664cb3516f403d68 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Fri, 3 Jan 2025 11:18:45 +0100 Subject: [PATCH 408/448] Add a minimum delay to redeeming item rewards --- .../Controller/Steps/Shared/RedeemRewardItems.cs | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/Questionable/Controller/Steps/Shared/RedeemRewardItems.cs b/Questionable/Controller/Steps/Shared/RedeemRewardItems.cs index 4d11e72bb..e03d989da 100644 --- a/Questionable/Controller/Steps/Shared/RedeemRewardItems.cs +++ b/Questionable/Controller/Steps/Shared/RedeemRewardItems.cs @@ -49,6 +49,7 @@ internal static class RedeemRewardItems GameFunctions gameFunctions, ICondition condition) : TaskExecutor { + private static readonly TimeSpan MinimumCastTime = TimeSpan.FromSeconds(4); private DateTime _continueAt; protected override bool Start() @@ -56,7 +57,13 @@ internal static class RedeemRewardItems if (condition[ConditionFlag.Mounted]) return false; - _continueAt = DateTime.Now.Add(Task.ItemReward.CastTime).AddSeconds(1); + TimeSpan castTime = Task.ItemReward.CastTime; + if (castTime < MinimumCastTime) + castTime = MinimumCastTime; + + _continueAt = DateTime.Now + .Add(castTime) + .AddSeconds(1); return gameFunctions.UseItem(Task.ItemReward.ItemId); } -- 2.45.2 From be3f22230b35eec2d87d5c0ee61cc0947995cfa5 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Fri, 3 Jan 2025 11:19:04 +0100 Subject: [PATCH 409/448] Code clean up --- .../CombatModules/RotationSolverRebornModule.cs | 8 ++++---- .../JournalComponents/AlliedSocietyJournalComponent.cs | 3 --- 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/Questionable/Controller/CombatModules/RotationSolverRebornModule.cs b/Questionable/Controller/CombatModules/RotationSolverRebornModule.cs index f89ad334d..422ae7c9d 100644 --- a/Questionable/Controller/CombatModules/RotationSolverRebornModule.cs +++ b/Questionable/Controller/CombatModules/RotationSolverRebornModule.cs @@ -14,16 +14,16 @@ namespace Questionable.Controller.CombatModules; internal sealed class RotationSolverRebornModule : ICombatModule, IDisposable { private readonly ILogger _logger; - private readonly IClientState _clientState; private readonly Configuration _configuration; private readonly ICallGateSubscriber _test; private readonly ICallGateSubscriber _changeOperationMode; - public RotationSolverRebornModule(ILogger logger, MovementController movementController, - IClientState clientState, IDalamudPluginInterface pluginInterface, Configuration configuration) + public RotationSolverRebornModule( + ILogger logger, + IDalamudPluginInterface pluginInterface, + Configuration configuration) { _logger = logger; - _clientState = clientState; _configuration = configuration; _test = pluginInterface.GetIpcSubscriber("RotationSolverReborn.Test"); _changeOperationMode = diff --git a/Questionable/Windows/JournalComponents/AlliedSocietyJournalComponent.cs b/Questionable/Windows/JournalComponents/AlliedSocietyJournalComponent.cs index a5ae13b3e..c4886f588 100644 --- a/Questionable/Windows/JournalComponents/AlliedSocietyJournalComponent.cs +++ b/Questionable/Windows/JournalComponents/AlliedSocietyJournalComponent.cs @@ -17,7 +17,6 @@ internal sealed class AlliedSocietyJournalComponent private static readonly string[] RankNames = ["Neutral", "Recognized", "Friendly", "Trusted", "Respected", "Honored", "Sworn", "Allied"]; - private readonly QuestFunctions _questFunctions; private readonly AlliedSocietyQuestFunctions _alliedSocietyQuestFunctions; private readonly QuestData _questData; private readonly QuestRegistry _questRegistry; @@ -26,7 +25,6 @@ internal sealed class AlliedSocietyJournalComponent private readonly UiUtils _uiUtils; public AlliedSocietyJournalComponent( - QuestFunctions questFunctions, AlliedSocietyQuestFunctions alliedSocietyQuestFunctions, QuestData questData, QuestRegistry questRegistry, @@ -34,7 +32,6 @@ internal sealed class AlliedSocietyJournalComponent QuestTooltipComponent questTooltipComponent, UiUtils uiUtils) { - _questFunctions = questFunctions; _alliedSocietyQuestFunctions = alliedSocietyQuestFunctions; _questData = questData; _questRegistry = questRegistry; -- 2.45.2 From c03afdefe71252a60a52bc54bad30ff669663a02 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Fri, 3 Jan 2025 11:30:51 +0100 Subject: [PATCH 410/448] Code clean up --- Directory.Build.targets | 2 +- .../JournalComponents/AlliedSocietyJournalComponent.cs | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/Directory.Build.targets b/Directory.Build.targets index c81f1e908..9c7a8c24a 100644 --- a/Directory.Build.targets +++ b/Directory.Build.targets @@ -1,5 +1,5 @@ - 4.12 + 4.13 diff --git a/Questionable/Windows/JournalComponents/AlliedSocietyJournalComponent.cs b/Questionable/Windows/JournalComponents/AlliedSocietyJournalComponent.cs index c4886f588..99582c24f 100644 --- a/Questionable/Windows/JournalComponents/AlliedSocietyJournalComponent.cs +++ b/Questionable/Windows/JournalComponents/AlliedSocietyJournalComponent.cs @@ -17,6 +17,9 @@ internal sealed class AlliedSocietyJournalComponent private static readonly string[] RankNames = ["Neutral", "Recognized", "Friendly", "Trusted", "Respected", "Honored", "Sworn", "Allied"]; +#if DEBUG + private readonly QuestFunctions _questFunctions; +#endif private readonly AlliedSocietyQuestFunctions _alliedSocietyQuestFunctions; private readonly QuestData _questData; private readonly QuestRegistry _questRegistry; @@ -25,6 +28,9 @@ internal sealed class AlliedSocietyJournalComponent private readonly UiUtils _uiUtils; public AlliedSocietyJournalComponent( +#if DEBUG + QuestFunctions questFunctions, +#endif AlliedSocietyQuestFunctions alliedSocietyQuestFunctions, QuestData questData, QuestRegistry questRegistry, @@ -32,6 +38,9 @@ internal sealed class AlliedSocietyJournalComponent QuestTooltipComponent questTooltipComponent, UiUtils uiUtils) { +#if DEBUG + _questFunctions = questFunctions; +#endif _alliedSocietyQuestFunctions = alliedSocietyQuestFunctions; _questData = questData; _questRegistry = questRegistry; -- 2.45.2 From 715ec340e0b1c539dc69c73e4d1eec390196de77 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Fri, 3 Jan 2025 11:32:14 +0100 Subject: [PATCH 411/448] Add a minimum delay to redeeming item rewards --- Questionable/Controller/Steps/Shared/RedeemRewardItems.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Questionable/Controller/Steps/Shared/RedeemRewardItems.cs b/Questionable/Controller/Steps/Shared/RedeemRewardItems.cs index e03d989da..408b92f7e 100644 --- a/Questionable/Controller/Steps/Shared/RedeemRewardItems.cs +++ b/Questionable/Controller/Steps/Shared/RedeemRewardItems.cs @@ -63,7 +63,7 @@ internal static class RedeemRewardItems _continueAt = DateTime.Now .Add(castTime) - .AddSeconds(1); + .AddSeconds(3); return gameFunctions.UseItem(Task.ItemReward.ItemId); } -- 2.45.2 From 35649e8663f44b0ef1d50f6aac11c64c53e6ece0 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Fri, 3 Jan 2025 19:32:47 +0100 Subject: [PATCH 412/448] Add a slight delay in 'The Queen's Tour' for a waypoint where NPCs move weirdly --- .../4934_The Queen's Tour.json | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/QuestPaths/7.x - Dawntrail/MSQ/E-SolutionNine-HeritageFound2/4934_The Queen's Tour.json b/QuestPaths/7.x - Dawntrail/MSQ/E-SolutionNine-HeritageFound2/4934_The Queen's Tour.json index 313eaf38c..18f9d1e99 100644 --- a/QuestPaths/7.x - Dawntrail/MSQ/E-SolutionNine-HeritageFound2/4934_The Queen's Tour.json +++ b/QuestPaths/7.x - Dawntrail/MSQ/E-SolutionNine-HeritageFound2/4934_The Queen's Tour.json @@ -88,6 +88,15 @@ "InteractionType": "AttuneAethernetShard", "AethernetShard": "[Solution Nine] Nexus Arcade" }, + { + "Position": { + "X": -320.34818, + "Y": 9.519508, + "Z": -6.9244547 + }, + "TerritoryId": 1186, + "InteractionType": "WalkTo" + }, { "DataId": 1048065, "Position": { @@ -97,7 +106,8 @@ }, "StopDistance": 0.25, "TerritoryId": 1186, - "InteractionType": "Interact" + "InteractionType": "Interact", + "DelaySecondsAtStart": 3 } ] }, -- 2.45.2 From ee1d6ce15b44335b490506b0b14076c3be534e54 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sat, 4 Jan 2025 15:13:08 +0100 Subject: [PATCH 413/448] Fix Slug Shot action id + use adjusted action ids for actually executing actions --- Questionable.Model/Questing/EAction.cs | 2 +- Questionable/Functions/GameFunctions.cs | 38 ++++++++++++++----------- 2 files changed, 23 insertions(+), 17 deletions(-) diff --git a/Questionable.Model/Questing/EAction.cs b/Questionable.Model/Questing/EAction.cs index 159c2f7e9..b8b97f32f 100644 --- a/Questionable.Model/Questing/EAction.cs +++ b/Questionable.Model/Questing/EAction.cs @@ -48,7 +48,7 @@ public enum EAction Katon = 2266, Raiton = 2267, RabbitMedium = 2272, - SlugShot = 7412, + SlugShot = 2868, BosomBrook = 37173, Souleater = 3632, Fire3 = 152, diff --git a/Questionable/Functions/GameFunctions.cs b/Questionable/Functions/GameFunctions.cs index c20f3d487..09a9be25c 100644 --- a/Questionable/Functions/GameFunctions.cs +++ b/Questionable/Functions/GameFunctions.cs @@ -206,10 +206,12 @@ internal sealed unsafe class GameFunctions public bool UseAction(EAction action) { - if (ActionManager.Instance()->GetActionStatus(ActionType.Action, (uint)action) == 0) + uint actionId = ActionManager.Instance()->GetAdjustedActionId((uint)action); + if (ActionManager.Instance()->GetActionStatus(ActionType.Action, actionId) == 0) { - bool result = ActionManager.Instance()->UseAction(ActionType.Action, (uint)action); - _logger.LogInformation("UseAction {Action} result: {Result}", action, result); + bool result = ActionManager.Instance()->UseAction(ActionType.Action, actionId); + _logger.LogInformation("UseAction {Action} (adjusted: {AdjustedActionId}) result: {Result}", action, + actionId, result); return result; } @@ -219,31 +221,34 @@ internal sealed unsafe class GameFunctions public bool UseAction(IGameObject gameObject, EAction action, bool checkCanUse = true) { - var actionRow = _dataManager.GetExcelSheet().GetRow((uint)action); - if (checkCanUse && !ActionManager.CanUseActionOnTarget((uint)action, (GameObject*)gameObject.Address)) + uint actionId = ActionManager.Instance()->GetAdjustedActionId((uint)action); + var actionRow = _dataManager.GetExcelSheet().GetRow(actionId); + if (checkCanUse && !ActionManager.CanUseActionOnTarget(actionId, (GameObject*)gameObject.Address)) { - _logger.LogWarning("Can not use action {Action} on target {Target}", action, gameObject); + _logger.LogWarning("Can not use action {Action} (adjusted: {AdjustedActionId}) on target {Target}", action, + actionId, gameObject); return false; } _targetManager.Target = gameObject; - if (ActionManager.Instance()->GetActionStatus(ActionType.Action, (uint)action, gameObject.GameObjectId) == 0) + if (ActionManager.Instance()->GetActionStatus(ActionType.Action, actionId, gameObject.GameObjectId) == 0) { bool result; if (actionRow.TargetArea) { Vector3 position = gameObject.Position; - result = ActionManager.Instance()->UseActionLocation(ActionType.Action, (uint)action, + result = ActionManager.Instance()->UseActionLocation(ActionType.Action, actionId, location: &position); - _logger.LogInformation("UseAction {Action} on target area {Target} result: {Result}", action, - gameObject, - result); + _logger.LogInformation( + "UseAction {Action} (adjusted: {AdjustedActionId}) on target area {Target} result: {Result}", + action, actionId, 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); + result = ActionManager.Instance()->UseAction(ActionType.Action, actionId, gameObject.GameObjectId); + _logger.LogInformation( + "UseAction {Action} (adjusted: {AdjustedActionId}) on target {Target} result: {Result}", action, + actionId, gameObject, result); } return result; @@ -307,7 +312,7 @@ internal sealed unsafe class GameFunctions StatusManager* statusManager = battleChara->GetStatusManager(); return statusManager->HasStatus((uint)statusId); } - + public static bool RemoveStatus(EStatus statusId) { return StatusManager.ExecuteStatusOff((uint)statusId); @@ -452,7 +457,8 @@ internal sealed unsafe class GameFunctions public bool IsLoadingScreenVisible() { - if (_gameGui.TryGetAddonByName("FadeMiddle", out AtkUnitBase* fade) && LAddon.IsAddonReady(fade) && fade->IsVisible) + if (_gameGui.TryGetAddonByName("FadeMiddle", out AtkUnitBase* fade) && LAddon.IsAddonReady(fade) && + fade->IsVisible) return true; if (_gameGui.TryGetAddonByName("FadeBack", out fade) && LAddon.IsAddonReady(fade) && fade->IsVisible) -- 2.45.2 From 25130dcb7c8c38889c1d9218bae044b1b54f18aa Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sat, 4 Jan 2025 16:10:01 +0100 Subject: [PATCH 414/448] Add some Moogle quests --- .../Dailies/2290_With a Little Help.json | 136 ++++++++++++-- .../2304_Back to the Drawing Board.json | 54 +++++- .../Moogles/Dailies/2305_Built to Last.json | 172 +++++++++++++++++- .../Dailies/2306_Let There Be Light.json | 67 ++++++- Questionable/Data/AlliedSocietyData.cs | 2 +- 5 files changed, 411 insertions(+), 20 deletions(-) diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2290_With a Little Help.json b/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2290_With a Little Help.json index 1a867f707..727189ae2 100644 --- a/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2290_With a Little Help.json +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2290_With a Little Help.json @@ -1,7 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", - "Disabled": true, "QuestSequence": [ { "Sequence": 0, @@ -18,6 +17,125 @@ } ] }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1017351, + "Position": { + "X": -74.87604, + "Y": -8.172172, + "Z": 158.70898 + }, + "TerritoryId": 400, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "TerritoryId": 400, + "InteractionType": "Craft", + "ItemId": 15725, + "ItemCount": 3 + }, + { + "DataId": 1017352, + "Position": { + "X": -56.809387, + "Y": -8.866012, + "Z": 161.8219 + }, + "TerritoryId": 400, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1017353, + "Position": { + "X": -33.554626, + "Y": -8.866012, + "Z": 163.43933 + }, + "TerritoryId": 400, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "Position": { + "X": -104.788086, + "Y": -8.655561, + "Z": 194.60593 + }, + "TerritoryId": 400, + "InteractionType": "WalkTo", + "Fly": true, + "SkipConditions": { + "StepIf": { + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + } + } + }, + { + "DataId": 1017354, + "Position": { + "X": -104.41754, + "Y": -8.6555605, + "Z": 193.16394 + }, + "TerritoryId": 400, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 1017355, + "Position": { + "X": -110.97894, + "Y": -8.866015, + "Z": 247.94385 + }, + "TerritoryId": 400, + "InteractionType": "Interact", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + } + ] + }, { "Sequence": 255, "Steps": [ @@ -30,21 +148,7 @@ }, "TerritoryId": 400, "InteractionType": "CompleteQuest", - "AetheryteShortcut": "The Churning Mists - Zenith", - "Fly": true, - "SkipConditions": { - "AetheryteShortcutIf": { - "NearPosition": { - "Position": { - "X": -335.56116, - "Y": 59.003433, - "Z": 313.98486 - }, - "TerritoryId": 400, - "MaximumDistance": 50 - } - } - } + "Fly": true } ] } diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2304_Back to the Drawing Board.json b/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2304_Back to the Drawing Board.json index 1a867f707..9baed817c 100644 --- a/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2304_Back to the Drawing Board.json +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2304_Back to the Drawing Board.json @@ -1,7 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", - "Disabled": true, "QuestSequence": [ { "Sequence": 0, @@ -18,6 +17,59 @@ } ] }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1017406, + "Position": { + "X": -95.04846, + "Y": 79.8345, + "Z": -301.80823 + }, + "TerritoryId": 400, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1017407, + "Position": { + "X": -128.34369, + "Y": 125.92322, + "Z": -314.6258 + }, + "TerritoryId": 400, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "TerritoryId": 400, + "InteractionType": "Craft", + "ItemId": 15736, + "ItemCount": 3 + }, + { + "DataId": 1017408, + "Position": { + "X": -108.59851, + "Y": 122.442116, + "Z": -318.31848 + }, + "TerritoryId": 400, + "InteractionType": "Interact" + } + ] + }, { "Sequence": 255, "Steps": [ diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2305_Built to Last.json b/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2305_Built to Last.json index 1a867f707..8ba39c756 100644 --- a/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2305_Built to Last.json +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2305_Built to Last.json @@ -1,7 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", - "Disabled": true, "QuestSequence": [ { "Sequence": 0, @@ -18,6 +17,177 @@ } ] }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1017471, + "Position": { + "X": -391.0735, + "Y": 59.9946, + "Z": 303.1814 + }, + "TerritoryId": 400, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": -255.2606, + "Y": -24.29513, + "Z": 737.67456 + }, + "TerritoryId": 400, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 1017409, + "Position": { + "X": -254.71893, + "Y": -24.295156, + "Z": 738.5519 + }, + "TerritoryId": 400, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2007244, + "Position": { + "X": -658.9609, + "Y": 94.25488, + "Z": -417.07483 + }, + "TerritoryId": 400, + "InteractionType": "Interact", + "AetheryteShortcut": "The Churning Mists - Zenith", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "Position": { + "X": -673.58887, + "Y": 93.64293, + "Z": -506.5746 + }, + "TerritoryId": 400, + "InteractionType": "WalkTo", + "Fly": true, + "SkipConditions": { + "StepIf": { + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + } + } + }, + { + "DataId": 2007245, + "Position": { + "X": -671.1376, + "Y": 93.91919, + "Z": -507.49982 + }, + "TerritoryId": 400, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 2007246, + "Position": { + "X": -813.1685, + "Y": 94.865234, + "Z": -457.3282 + }, + "TerritoryId": 400, + "InteractionType": "Interact", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "Position": { + "X": -255.2606, + "Y": -24.29513, + "Z": 737.67456 + }, + "TerritoryId": 400, + "InteractionType": "WalkTo", + "AetheryteShortcut": "The Churning Mists - Zenith", + "Fly": true + }, + { + "DataId": 1017409, + "Position": { + "X": -254.71893, + "Y": -24.295156, + "Z": 738.5519 + }, + "TerritoryId": 400, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "TerritoryId": 400, + "InteractionType": "Craft", + "ItemId": 15737, + "ItemCount": 1 + }, + { + "DataId": 1017410, + "Position": { + "X": -246.2044, + "Y": -24.295149, + "Z": 760.7384 + }, + "TerritoryId": 400, + "InteractionType": "Interact" + } + ] + }, { "Sequence": 255, "Steps": [ diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2306_Let There Be Light.json b/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2306_Let There Be Light.json index 1a867f707..9b09643b5 100644 --- a/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2306_Let There Be Light.json +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Moogles/Dailies/2306_Let There Be Light.json @@ -1,7 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", - "Disabled": true, "QuestSequence": [ { "Sequence": 0, @@ -18,6 +17,72 @@ } ] }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1017470, + "Position": { + "X": -353.53632, + "Y": 60.896175, + "Z": 299.61084 + }, + "TerritoryId": 400, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2007264, + "Position": { + "X": 508.32373, + "Y": -0.77819824, + "Z": -360.49445 + }, + "TerritoryId": 400, + "InteractionType": "Action", + "Action": "Roar", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2007265, + "Position": { + "X": 613.39734, + "Y": -11.917358, + "Z": -335.6222 + }, + "TerritoryId": 400, + "InteractionType": "Action", + "Action": "Roar", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 2007266, + "Position": { + "X": 554.0398, + "Y": 50.644653, + "Z": -393.72858 + }, + "TerritoryId": 400, + "InteractionType": "Action", + "Action": "Roar", + "Fly": true + } + ] + }, { "Sequence": 255, "Steps": [ diff --git a/Questionable/Data/AlliedSocietyData.cs b/Questionable/Data/AlliedSocietyData.cs index 11ea03a12..d76003d83 100644 --- a/Questionable/Data/AlliedSocietyData.cs +++ b/Questionable/Data/AlliedSocietyData.cs @@ -53,7 +53,7 @@ internal sealed class AlliedSocietyData else if (alliedSociety == EAlliedSociety.Moogles) { normalNpcs = []; - mountNpcs = [1017322, 1017470]; + mountNpcs = [1017322, 1017470, 1017471]; } else { -- 2.45.2 From 459b832ef2ce21b615ab368a8366f34adae43b5e Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sat, 4 Jan 2025 16:48:13 +0100 Subject: [PATCH 415/448] Update logic for which allied society quests can be accepted --- Questionable/Functions/QuestFunctions.cs | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/Questionable/Functions/QuestFunctions.cs b/Questionable/Functions/QuestFunctions.cs index 2078ca9e0..f0e6d1591 100644 --- a/Questionable/Functions/QuestFunctions.cs +++ b/Questionable/Functions/QuestFunctions.cs @@ -450,14 +450,19 @@ internal sealed unsafe class QuestFunctions if (IsQuestAccepted(questId)) return false; - if (quest.Info.AlliedSociety != EAlliedSociety.None) + if (questId is QuestId qId && IsDailyAlliedSocietyQuest(qId)) { if (QuestManager.Instance()->IsDailyQuestCompleted(questId.Value)) return false; - } - if (IsQuestComplete(questId)) - return false; + if (!IsDailyAlliedSocietyQuestAndAvailableToday(qId)) + return false; + } + else + { + if (IsQuestComplete(questId)) + return false; + } } else { -- 2.45.2 From 2503d1897fee61536a7ad1d23b25d586329c90dd Mon Sep 17 00:00:00 2001 From: Gwen Date: Sat, 4 Jan 2025 17:22:24 +0100 Subject: [PATCH 416/448] New set of sidequests for Triple Triad NPCs --- .../1762_The Secret to Success.json | 125 ++++++++++ .../1764_Introductory Dragonslaying.json | 98 ++++++++ .../1765_Intermediate Dragonslaying.json | 97 ++++++++ .../1766_Advanced Dragonslaying.json | 103 ++++++++ .../1769_Expert Dragonslaying.json | 185 ++++++++++++++ .../1889_Unknown Ultimatum.json | 121 +++++++++ .../1890_Personal Effects.json | 75 ++++++ .../1891_Ayleth Absconds.json | 98 ++++++++ .../1892_A Missing Tooth.json | 83 +++++++ .../1893_A Noble Purpose.json | 112 +++++++++ .../1898_A War without End.json | 229 ++++++++++++++++++ .../1730_Cold Days, Colder Nights.json | 140 +++++++++++ .../Ishgard/1870_Caught in the Act.json | 149 ++++++++++++ .../Side Quests/Ishgard/1873_Enlisted.json | 53 ++++ .../1840_A Secret from Everyone.json | 134 ++++++++++ 15 files changed, 1802 insertions(+) create mode 100644 QuestPaths/3.x - Heavensward/Side Quests/Coerthas Western Highlands/1762_The Secret to Success.json create mode 100644 QuestPaths/3.x - Heavensward/Side Quests/Coerthas Western Highlands/1764_Introductory Dragonslaying.json create mode 100644 QuestPaths/3.x - Heavensward/Side Quests/Coerthas Western Highlands/1765_Intermediate Dragonslaying.json create mode 100644 QuestPaths/3.x - Heavensward/Side Quests/Coerthas Western Highlands/1766_Advanced Dragonslaying.json create mode 100644 QuestPaths/3.x - Heavensward/Side Quests/Coerthas Western Highlands/1769_Expert Dragonslaying.json create mode 100644 QuestPaths/3.x - Heavensward/Side Quests/Coerthas Western Highlands/1889_Unknown Ultimatum.json create mode 100644 QuestPaths/3.x - Heavensward/Side Quests/Coerthas Western Highlands/1890_Personal Effects.json create mode 100644 QuestPaths/3.x - Heavensward/Side Quests/Coerthas Western Highlands/1891_Ayleth Absconds.json create mode 100644 QuestPaths/3.x - Heavensward/Side Quests/Coerthas Western Highlands/1892_A Missing Tooth.json create mode 100644 QuestPaths/3.x - Heavensward/Side Quests/Coerthas Western Highlands/1893_A Noble Purpose.json create mode 100644 QuestPaths/3.x - Heavensward/Side Quests/Coerthas Western Highlands/1898_A War without End.json create mode 100644 QuestPaths/3.x - Heavensward/Side Quests/Ishgard/1730_Cold Days, Colder Nights.json create mode 100644 QuestPaths/3.x - Heavensward/Side Quests/Ishgard/1870_Caught in the Act.json create mode 100644 QuestPaths/3.x - Heavensward/Side Quests/Ishgard/1873_Enlisted.json create mode 100644 QuestPaths/3.x - Heavensward/Side Quests/The Churning Mists/1840_A Secret from Everyone.json diff --git a/QuestPaths/3.x - Heavensward/Side Quests/Coerthas Western Highlands/1762_The Secret to Success.json b/QuestPaths/3.x - Heavensward/Side Quests/Coerthas Western Highlands/1762_The Secret to Success.json new file mode 100644 index 000000000..1c16e3f1b --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Side Quests/Coerthas Western Highlands/1762_The Secret to Success.json @@ -0,0 +1,125 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Thaksin", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1013710, + "Position": { + "X": -294.6975, + "Y": 126.84874, + "Z": 4.5318604 + }, + "TerritoryId": 397, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1014133, + "Position": { + "X": -259.84595, + "Y": 126.44779, + "Z": 1.9073486 + }, + "TerritoryId": 397, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2006005, + "Position": { + "X": -157.70203, + "Y": 110.73462, + "Z": -52.414795 + }, + "TerritoryId": 397, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 2006006, + "Position": { + "X": -228.25977, + "Y": 112.47424, + "Z": -127.55017 + }, + "TerritoryId": 397, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 2006007, + "Position": { + "X": -348.10413, + "Y": 116.50256, + "Z": -91.93567 + }, + "TerritoryId": 397, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1014133, + "Position": { + "X": -259.84595, + "Y": 126.44779, + "Z": 1.9073486 + }, + "TerritoryId": 397, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1013710, + "Position": { + "X": -294.6975, + "Y": 126.84874, + "Z": 4.5318604 + }, + "TerritoryId": 397, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} \ No newline at end of file diff --git a/QuestPaths/3.x - Heavensward/Side Quests/Coerthas Western Highlands/1764_Introductory Dragonslaying.json b/QuestPaths/3.x - Heavensward/Side Quests/Coerthas Western Highlands/1764_Introductory Dragonslaying.json new file mode 100644 index 000000000..c526f6737 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Side Quests/Coerthas Western Highlands/1764_Introductory Dragonslaying.json @@ -0,0 +1,98 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Thaksin", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1013710, + "Position": { + "X": -294.6975, + "Y": 126.84874, + "Z": 4.5318604 + }, + "TerritoryId": 397, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1014134, + "Position": { + "X": -293.23267, + "Y": 126.85495, + "Z": 5.2643433 + }, + "TerritoryId": 397, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Fly": true, + "DataId": 1014136, + "Position": { + "X": 292.74426, + "Y": 132.44626, + "Z": -244.73944 + }, + "TerritoryId": 397, + "InteractionType": "Interact" + }, + { + "Position": { + "X": 289.0053, + "Y": 132.30807, + "Z": -233.57523 + }, + "DataId": 4041, + "TerritoryId": 397, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 4041 + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1014136, + "Position": { + "X": 292.74426, + "Y": 132.44626, + "Z": -244.73944 + }, + "TerritoryId": 397, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Fly": true, + "DataId": 1013710, + "Position": { + "X": -294.6975, + "Y": 126.84874, + "Z": 4.5318604 + }, + "TerritoryId": 397, + "InteractionType": "CompleteQuest", + "NextQuestId": 1765 + } + ] + } + ] +} \ No newline at end of file diff --git a/QuestPaths/3.x - Heavensward/Side Quests/Coerthas Western Highlands/1765_Intermediate Dragonslaying.json b/QuestPaths/3.x - Heavensward/Side Quests/Coerthas Western Highlands/1765_Intermediate Dragonslaying.json new file mode 100644 index 000000000..ae7e2afef --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Side Quests/Coerthas Western Highlands/1765_Intermediate Dragonslaying.json @@ -0,0 +1,97 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Thaksin", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1013710, + "Position": { + "X": -294.6975, + "Y": 126.84874, + "Z": 4.5318604 + }, + "TerritoryId": 397, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1014138, + "Position": { + "X": -219.19586, + "Y": 112.21238, + "Z": -244.1596 + }, + "TerritoryId": 397, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Fly": true, + "DataId": 4470, + "Position": { + "X": -468.44992, + "Y": 93.85853, + "Z": -506.40417 + }, + "TerritoryId": 397, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [ + 4470 + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "Position": { + "X": -219.1624, + "Y": 112.29031, + "Z": -239.88861 + }, + "TerritoryId": 397, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 1014138, + "Position": { + "X": -219.19586, + "Y": 112.21238, + "Z": -244.1596 + }, + "TerritoryId": 397, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1013710, + "Position": { + "X": -294.6975, + "Y": 126.84874, + "Z": 4.5318604 + }, + "TerritoryId": 397, + "InteractionType": "CompleteQuest", + "NextQuestId": 1766 + } + ] + } + ] +} \ No newline at end of file diff --git a/QuestPaths/3.x - Heavensward/Side Quests/Coerthas Western Highlands/1766_Advanced Dragonslaying.json b/QuestPaths/3.x - Heavensward/Side Quests/Coerthas Western Highlands/1766_Advanced Dragonslaying.json new file mode 100644 index 000000000..4f9d54e23 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Side Quests/Coerthas Western Highlands/1766_Advanced Dragonslaying.json @@ -0,0 +1,103 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Thaksin", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1013710, + "Position": { + "X": -294.6975, + "Y": 126.84874, + "Z": 4.5318604 + }, + "TerritoryId": 397, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1014138, + "Position": { + "X": -219.19586, + "Y": 112.21238, + "Z": -244.1596 + }, + "TerritoryId": 397, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Fly": true, + "DataId": 1014140, + "Position": { + "X": -472.19043, + "Y": 93.87282, + "Z": -503.7156 + }, + "TerritoryId": 397, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 4468, + "Position": { + "X": -696.8278, + "Y": 100.08534, + "Z": -603.926 + }, + "TerritoryId": 397, + "InteractionType": "Combat", + "KillEnemyDataIds": [ + 4468 + ], + "EnemySpawnType": "AutoOnEnterArea" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1014140, + "Position": { + "X": -472.19043, + "Y": 93.87282, + "Z": -503.7156 + }, + "TerritoryId": 397, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Fly": true, + "DataId": 1013710, + "Position": { + "X": -294.6975, + "Y": 126.84874, + "Z": 4.5318604 + }, + "TerritoryId": 397, + "InteractionType": "CompleteQuest", + "NextQuestId": 1769 + } + ] + } + ] +} \ No newline at end of file diff --git a/QuestPaths/3.x - Heavensward/Side Quests/Coerthas Western Highlands/1769_Expert Dragonslaying.json b/QuestPaths/3.x - Heavensward/Side Quests/Coerthas Western Highlands/1769_Expert Dragonslaying.json new file mode 100644 index 000000000..41a0e1d5c --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Side Quests/Coerthas Western Highlands/1769_Expert Dragonslaying.json @@ -0,0 +1,185 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Thaksin", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1013710, + "Position": { + "X": -294.6975, + "Y": 126.84874, + "Z": 4.5318604 + }, + "TerritoryId": 397, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Fly": true, + "DataId": 1014142, + "Position": { + "X": -290.33344, + "Y": 76.98337, + "Z": -259.93744 + }, + "TerritoryId": 397, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2006013, + "Position": { + "X": -287.76996, + "Y": 77.74463, + "Z": -278.00415 + }, + "TerritoryId": 397, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1014142, + "Position": { + "X": -290.33344, + "Y": 76.98337, + "Z": -259.93744 + }, + "TerritoryId": 397, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 2006014, + "Position": { + "X": -291.8593, + "Y": 76.98169, + "Z": -261.0056 + }, + "TerritoryId": 397, + "InteractionType": "Interact" + }, + { + "DataId": 4037, + "Position": { + "X": -285.1214, + "Y": 76.98337, + "Z": -275.5287 + }, + "TerritoryId": 397, + "InteractionType": "Combat", + "KillEnemyDataIds": [4037], + "EnemySpawnType": "AfterInteraction" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1014142, + "Position": { + "X": -290.33344, + "Y": 76.98337, + "Z": -259.93744 + }, + "TerritoryId": 397, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "Fly": true, + "DataId": 1013710, + "Position": { + "X": -294.6975, + "Y": 126.84874, + "Z": 4.5318604 + }, + "TerritoryId": 397, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 7, + "Steps": [ + { + "DataId": 1014144, + "Position": { + "X": -258.16742, + "Y": 126.98671, + "Z": 12.77179 + }, + "TerritoryId": 397, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 8, + "Steps": [ + { + "DataId": 2006015, + "Position": { + "X": -252.33844, + "Y": 127.00073, + "Z": 11.093262 + }, + "TerritoryId": 397, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 9, + "Steps": [ + { + "DataId": 1014144, + "Position": { + "X": -258.16742, + "Y": 126.98671, + "Z": 12.77179 + }, + "TerritoryId": 397, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1013710, + "Position": { + "X": -294.6975, + "Y": 126.84874, + "Z": 4.5318604 + }, + "TerritoryId": 397, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} \ No newline at end of file diff --git a/QuestPaths/3.x - Heavensward/Side Quests/Coerthas Western Highlands/1889_Unknown Ultimatum.json b/QuestPaths/3.x - Heavensward/Side Quests/Coerthas Western Highlands/1889_Unknown Ultimatum.json new file mode 100644 index 000000000..2072032e2 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Side Quests/Coerthas Western Highlands/1889_Unknown Ultimatum.json @@ -0,0 +1,121 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Thaksin", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1014146, + "Position": { + "X": -258.74725, + "Y": 126.98546, + "Z": 12.649658 + }, + "TerritoryId": 397, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1014147, + "Position": { + "X": -256.97723, + "Y": 126.99508, + "Z": 13.168518 + }, + "TerritoryId": 397, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Fly": true, + "Position": { + "X": -298.8484, + "Y": 221.68138, + "Z": 548.0529 + }, + "TerritoryId": 397, + "InteractionType": "WalkTo" + }, + { + "Land": true, + "DataId": 1014149, + "Position": { + "X": -294.5144, + "Y": 221.58685, + "Z": 545.922 + }, + "TerritoryId": 397, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2006017, + "Position": { + "X": -253.34558, + "Y": 221.36255, + "Z": 528.92346 + }, + "TerritoryId": 397, + "InteractionType": "Interact" + }, + { + "DataId": 4076, + "Position": { + "X": -257.5558, + "Y": 221.35532, + "Z": 520.9053 + }, + "TerritoryId": 397, + "InteractionType": "Combat", + "KillEnemyDataIds": [4076], + "EnemySpawnType": "AfterInteraction" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1014149, + "Position": { + "X": -294.5144, + "Y": 221.58685, + "Z": 545.922 + }, + "TerritoryId": 397, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Fly": true, + "DataId": 1014146, + "Position": { + "X": -258.74725, + "Y": 126.98546, + "Z": 12.649658 + }, + "TerritoryId": 397, + "InteractionType": "CompleteQuest", + "NextQuestId": 1890 + } + ] + } + ] +} \ No newline at end of file diff --git a/QuestPaths/3.x - Heavensward/Side Quests/Coerthas Western Highlands/1890_Personal Effects.json b/QuestPaths/3.x - Heavensward/Side Quests/Coerthas Western Highlands/1890_Personal Effects.json new file mode 100644 index 000000000..bddb06053 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Side Quests/Coerthas Western Highlands/1890_Personal Effects.json @@ -0,0 +1,75 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Thaksin", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1014146, + "Position": { + "X": -258.74725, + "Y": 126.98546, + "Z": 12.649658 + }, + "TerritoryId": 397, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": -297.49585, + "Y": 219.87524, + "Z": 281.65045 + }, + "TerritoryId": 397, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "ComplexCombatData": [ + { + "DataId": 3992, + "MinimumKillCount": 5 + } + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Fly": true, + "DataId": 1014150, + "Position": { + "X": 507.13354, + "Y": 217.95148, + "Z": 791.37854 + }, + "TerritoryId": 397, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Fly": true, + "DataId": 1014146, + "Position": { + "X": -258.74725, + "Y": 126.98546, + "Z": 12.649658 + }, + "TerritoryId": 397, + "InteractionType": "CompleteQuest", + "NextQuestId": 1891 + } + ] + } + ] +} \ No newline at end of file diff --git a/QuestPaths/3.x - Heavensward/Side Quests/Coerthas Western Highlands/1891_Ayleth Absconds.json b/QuestPaths/3.x - Heavensward/Side Quests/Coerthas Western Highlands/1891_Ayleth Absconds.json new file mode 100644 index 000000000..03490c145 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Side Quests/Coerthas Western Highlands/1891_Ayleth Absconds.json @@ -0,0 +1,98 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Thaksin", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1014146, + "Position": { + "X": -258.74725, + "Y": 126.98546, + "Z": 12.649658 + }, + "TerritoryId": 397, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Fly": true, + "DataId": 1014151, + "Position": { + "X": -156.08453, + "Y": 219.14235, + "Z": 669.7031 + }, + "TerritoryId": 397, + "InteractionType": "Interact" + }, + { + "DataId": 732, + "Position": { + "X": -151.29321, + "Y": 218.95082, + "Z": 669.4895 + }, + "TerritoryId": 397, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 732 + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1014151, + "Position": { + "X": -156.08453, + "Y": 219.14235, + "Z": 669.7031 + }, + "TerritoryId": 397, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1014151, + "Position": { + "X": -156.08453, + "Y": 219.14235, + "Z": 669.7031 + }, + "TerritoryId": 397, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Fly": true, + "DataId": 1014146, + "Position": { + "X": -258.74725, + "Y": 126.98546, + "Z": 12.649658 + }, + "TerritoryId": 397, + "InteractionType": "CompleteQuest", + "NextQuestId": 1892 + } + ] + } + ] +} \ No newline at end of file diff --git a/QuestPaths/3.x - Heavensward/Side Quests/Coerthas Western Highlands/1892_A Missing Tooth.json b/QuestPaths/3.x - Heavensward/Side Quests/Coerthas Western Highlands/1892_A Missing Tooth.json new file mode 100644 index 000000000..657fd96f8 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Side Quests/Coerthas Western Highlands/1892_A Missing Tooth.json @@ -0,0 +1,83 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Thaksin", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1014146, + "Position": { + "X": -258.74725, + "Y": 126.98546, + "Z": 12.649658 + }, + "TerritoryId": 397, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Fly": true, + "DataId": 2006019, + "Position": { + "X": -152.42242, + "Y": 219.62305, + "Z": 669.94727 + }, + "TerritoryId": 397, + "InteractionType": "Interact" + }, + { + "DataId": 4782, + "Position": { + "X": -158.97404, + "Y": 219.45131, + "Z": 672.79553 + }, + "TerritoryId": 397, + "KillEnemyDataIds": [ + 4782 + ], + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2006181, + "Position": { + "X": -152.42242, + "Y": 219.62305, + "Z": 669.94727 + }, + "TerritoryId": 397, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Fly": true, + "DataId": 1014146, + "Position": { + "X": -258.74725, + "Y": 126.98546, + "Z": 12.649658 + }, + "TerritoryId": 397, + "InteractionType": "CompleteQuest", + "NextQuestId": 1983 + } + ] + } + ] +} \ No newline at end of file diff --git a/QuestPaths/3.x - Heavensward/Side Quests/Coerthas Western Highlands/1893_A Noble Purpose.json b/QuestPaths/3.x - Heavensward/Side Quests/Coerthas Western Highlands/1893_A Noble Purpose.json new file mode 100644 index 000000000..7a5a5c64e --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Side Quests/Coerthas Western Highlands/1893_A Noble Purpose.json @@ -0,0 +1,112 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Thaksin", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1014146, + "Position": { + "X": -258.74725, + "Y": 126.98546, + "Z": 12.649658 + }, + "TerritoryId": 397, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1011907, + "Position": { + "X": -288.8686, + "Y": 127.06639, + "Z": 13.199036 + }, + "TerritoryId": 397, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 1011910, + "Position": { + "X": -298.26813, + "Y": 126.67049, + "Z": -1.4191895 + }, + "TerritoryId": 397, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 1014133, + "Position": { + "X": -259.84595, + "Y": 126.44779, + "Z": 1.9073486 + }, + "TerritoryId": 397, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Fly": true, + "DataId": 1014152, + "Position": { + "X": 496.1776, + "Y": 133.93082, + "Z": -862.2416 + }, + "TerritoryId": 397, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Fly": true, + "DataId": 1014153, + "Position": { + "X": -295.82666, + "Y": 126.83744, + "Z": 3.829956 + }, + "TerritoryId": 397, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} \ No newline at end of file diff --git a/QuestPaths/3.x - Heavensward/Side Quests/Coerthas Western Highlands/1898_A War without End.json b/QuestPaths/3.x - Heavensward/Side Quests/Coerthas Western Highlands/1898_A War without End.json new file mode 100644 index 000000000..fb9687275 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Side Quests/Coerthas Western Highlands/1898_A War without End.json @@ -0,0 +1,229 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Thaksin", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1013710, + "Position": { + "X": -294.6975, + "Y": 126.84874, + "Z": 4.5318604 + }, + "TerritoryId": 397, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1014153, + "Position": { + "X": -295.82666, + "Y": 126.83744, + "Z": 3.829956 + }, + "TerritoryId": 397, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1013710, + "Position": { + "X": -294.6975, + "Y": 126.84874, + "Z": 4.5318604 + }, + "TerritoryId": 397, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "Fly": true, + "DataId": 1014154, + "Position": { + "X": -519.1577, + "Y": 119.39417, + "Z": -161.24213 + }, + "TerritoryId": 397, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1014155, + "Position": { + "X": -527.245, + "Y": 118.94699, + "Z": -163.13422 + }, + "TerritoryId": 397, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 2006026, + "Position": { + "X": -525.7191, + "Y": 119.06604, + "Z": -165.72827 + }, + "TerritoryId": 397, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "Fly": true, + "DataId": 1013710, + "Position": { + "X": -294.6975, + "Y": 126.84874, + "Z": 4.5318604 + }, + "TerritoryId": 397, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 7, + "Steps": [ + { + "Fly": true, + "Position": { + "X": -92.57648, + "Y": 96.33008, + "Z": -645.1057 + }, + "TerritoryId": 397, + "InteractionType": "WalkTo" + }, + { + "DataId": 2006027, + "Position": { + "X": -92.57648, + "Y": 96.33008, + "Z": -645.1057 + }, + "TerritoryId": 397, + "InteractionType": "UseItem", + "ItemId": 2001751 + } + ] + }, + { + "Sequence": 8, + "Steps": [ + { + "DataId": 2006028, + "Position": { + "X": -92.5155, + "Y": 93.52246, + "Z": -623.621 + }, + "TerritoryId": 397, + "InteractionType": "Interact" + }, + { + "DataId": 4621, + "Position": { + "X": -92.37683, + "Y": 95.76039, + "Z": -640.7043 + }, + "TerritoryId": 397, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 4621 + ] + } + ] + }, + { + "Sequence": 9, + "Steps": [ + { + "DataId": 2006460, + "Position": { + "X": -92.57648, + "Y": 96.33008, + "Z": -645.1057 + }, + "TerritoryId": 397, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 10, + "Steps": [ + { + "Fly": true, + "DataId": 1013710, + "Position": { + "X": -294.6975, + "Y": 126.84874, + "Z": 4.5318604 + }, + "TerritoryId": 397, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 11, + "Steps": [ + { + "DataId": 1014147, + "Position": { + "X": -256.97723, + "Y": 126.99508, + "Z": 13.168518 + }, + "TerritoryId": 397, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1013710, + "Position": { + "X": -294.6975, + "Y": 126.84874, + "Z": 4.5318604 + }, + "TerritoryId": 397, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} \ No newline at end of file diff --git a/QuestPaths/3.x - Heavensward/Side Quests/Ishgard/1730_Cold Days, Colder Nights.json b/QuestPaths/3.x - Heavensward/Side Quests/Ishgard/1730_Cold Days, Colder Nights.json new file mode 100644 index 000000000..0be23e3f5 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Side Quests/Ishgard/1730_Cold Days, Colder Nights.json @@ -0,0 +1,140 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Thaksin", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1012170, + "Position": { + "X": 102.92212, + "Y": 3.6299734, + "Z": 65.56799 + }, + "TerritoryId": 418, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1012162, + "Position": { + "X": 135.97314, + "Y": 24.376427, + "Z": 12.619202 + }, + "TerritoryId": 418, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1012170, + "Position": { + "X": 102.92212, + "Y": 3.6299734, + "Z": 65.56799 + }, + "TerritoryId": 418, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1014711, + "Position": { + "X": 58.03003, + "Y": -7.146736, + "Z": 82.41394 + }, + "TerritoryId": 418, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 1014712, + "Position": { + "X": 93.91919, + "Y": -19.941168, + "Z": 78.20239 + }, + "TerritoryId": 418, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 1014713, + "Position": { + "X": 131.9447, + "Y": -20.000105, + "Z": 62.027832 + }, + "TerritoryId": 418, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1014714, + "Position": { + "X": 23.178406, + "Y": -12.020877, + "Z": 35.294067 + }, + "TerritoryId": 418, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1012170, + "Position": { + "X": 102.92212, + "Y": 3.6299734, + "Z": 65.56799 + }, + "TerritoryId": 418, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} \ No newline at end of file diff --git a/QuestPaths/3.x - Heavensward/Side Quests/Ishgard/1870_Caught in the Act.json b/QuestPaths/3.x - Heavensward/Side Quests/Ishgard/1870_Caught in the Act.json new file mode 100644 index 000000000..2016dfb6d --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Side Quests/Ishgard/1870_Caught in the Act.json @@ -0,0 +1,149 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Thaksin", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1012180, + "Position": { + "X": -174.18176, + "Y": -12.555469, + "Z": -21.561035 + }, + "TerritoryId": 419, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2006246, + "Position": { + "X": -218.40247, + "Y": -16.037292, + "Z": -34.683777 + }, + "TerritoryId": 419, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 2006247, + "Position": { + "X": -229.23633, + "Y": -20.035156, + "Z": -83.05487 + }, + "TerritoryId": 419, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 2006248, + "Position": { + "X": -252.1554, + "Y": -20.035156, + "Z": -57.66388 + }, + "TerritoryId": 419, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1012180, + "Position": { + "X": -174.18176, + "Y": -12.555469, + "Z": -21.561035 + }, + "TerritoryId": 419, + "InteractionType": "Interact" + } + ] + + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1014721, + "Position": { + "X": 119.31018, + "Y": -12.634913, + "Z": -13.626343 + }, + "TerritoryId": 419, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Ishgard] The Jeweled Crozier", + "[Ishgard] Athenaeum Astrologicum" + ] + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 2006330, + "Position": { + "X": 118.791504, + "Y": -11.6427, + "Z": -13.351685 + }, + "TerritoryId": 419, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1012180, + "Position": { + "X": -174.18176, + "Y": -12.555469, + "Z": -21.561035 + }, + "TerritoryId": 419, + "InteractionType": "CompleteQuest", + "AethernetShortcut": [ + "[Ishgard] Athenaeum Astrologicum", + "[Ishgard] The Jeweled Crozier" + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/QuestPaths/3.x - Heavensward/Side Quests/Ishgard/1873_Enlisted.json b/QuestPaths/3.x - Heavensward/Side Quests/Ishgard/1873_Enlisted.json new file mode 100644 index 000000000..ef0a9cbde --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Side Quests/Ishgard/1873_Enlisted.json @@ -0,0 +1,53 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Thaksin", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1014718, + "Position": { + "X": -29.526245, + "Y": 11.965078, + "Z": 48.355713 + }, + "TerritoryId": 419, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1011231, + "Position": { + "X": 503.1051, + "Y": 217.95148, + "Z": 790.2189 + }, + "TerritoryId": 397, + "InteractionType": "Interact", + "AetheryteShortcut": "Coerthas Western Highlands - Falcon's Nest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1014719, + "Position": { + "X": -293.6294, + "Y": 125.4389, + "Z": -19.058533 + }, + "TerritoryId": 397, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} \ No newline at end of file diff --git a/QuestPaths/3.x - Heavensward/Side Quests/The Churning Mists/1840_A Secret from Everyone.json b/QuestPaths/3.x - Heavensward/Side Quests/The Churning Mists/1840_A Secret from Everyone.json new file mode 100644 index 000000000..e53516035 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Side Quests/The Churning Mists/1840_A Secret from Everyone.json @@ -0,0 +1,134 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Thaksin", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1012085, + "Position": { + "X": 286.88477, + "Y": 14.36517, + "Z": 645.1666 + }, + "TerritoryId": 400, + "InteractionType": "AcceptQuest" + } + ] + }, + + { + "Sequence": 1, + "Steps": [ + { + "Fly": true, + "DataId": 2005720, + "Position": { + "X": 565.9419, + "Y": -9.445435, + "Z": -14.328308 + }, + "TerritoryId": 400, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 16 + ], + "InteractionType": "Interact" + }, + { + "DataId": 2005718, + "Position": { + "X": 664.39294, + "Y": -0.4730835, + "Z": -3.2807007 + }, + "Fly": true, + "TerritoryId": 400, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 2005721, + "Position": { + "X": 653.83374, + "Y": -0.7172241, + "Z": -70.02368 + }, + "TerritoryId": 400, + "Fly": true, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, null, + null, null, + null, 8 + ] + }, + { + "DataId": 2005717, + "Position": { + "X": 639.00195, + "Y": 46.463623, + "Z": -113.05414 + }, + "TerritoryId": 400, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 2005719, + "Position": { + "X": 527.0923, + "Y": -4.287842, + "Z": -84.916504 + }, + "Fly": true, + "TerritoryId": 400, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Fly": true, + "DataId": 1012085, + "Position": { + "X": 286.88477, + "Y": 14.36517, + "Z": 645.1666 + }, + "TerritoryId": 400, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} \ No newline at end of file -- 2.45.2 From 563a11d47d14fcb47d63ec21ed57b2f1af14cb50 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sun, 5 Jan 2025 14:23:38 +0100 Subject: [PATCH 417/448] Override journal genre for some Radz-at-Han/Thavnair side quests --- Questionable/Data/QuestData.cs | 8 +++++++- Questionable/Model/JournalGenreOverrides.cs | 7 +++++++ Questionable/Model/QuestInfo.cs | 9 +++++++-- 3 files changed, 21 insertions(+), 3 deletions(-) create mode 100644 Questionable/Model/JournalGenreOverrides.cs diff --git a/Questionable/Data/QuestData.cs b/Questionable/Data/QuestData.cs index 7a3229a76..652258633 100644 --- a/Questionable/Data/QuestData.cs +++ b/Questionable/Data/QuestData.cs @@ -40,6 +40,12 @@ internal sealed class QuestData public QuestData(IDataManager dataManager) { + JournalGenreOverrides journalGenreOverrides = new() + { + RadzAtHanSideQuests = dataManager.GetExcelSheet().GetRow(69805).JournalGenre.RowId, + ThavnairSideQuests = dataManager.GetExcelSheet().GetRow(70025).JournalGenre.RowId, + }; + Dictionary questChapters = dataManager.GetExcelSheet() .Where(x => x.RowId > 0 && x.Quest.RowId > 0) @@ -59,7 +65,7 @@ internal sealed class QuestData .Where(x => x.RowId > 0) .Where(x => x.IssuerLocation.RowId > 0) .Select(x => new QuestInfo(x, questChapters.GetValueOrDefault(x.RowId), - startingCities.GetValueOrDefault(x.RowId))), + startingCities.GetValueOrDefault(x.RowId), journalGenreOverrides)), ..dataManager.GetExcelSheet() .Where(x => x is { RowId: > 0, Npc.RowId: > 0 }) .Select(x => new SatisfactionSupplyInfo(x)), diff --git a/Questionable/Model/JournalGenreOverrides.cs b/Questionable/Model/JournalGenreOverrides.cs new file mode 100644 index 000000000..bafd72821 --- /dev/null +++ b/Questionable/Model/JournalGenreOverrides.cs @@ -0,0 +1,7 @@ +namespace Questionable.Model; + +internal sealed class JournalGenreOverrides +{ + public required uint ThavnairSideQuests { get; init; } + public required uint RadzAtHanSideQuests { get; init; } +} diff --git a/Questionable/Model/QuestInfo.cs b/Questionable/Model/QuestInfo.cs index 06c6dc34b..751470b55 100644 --- a/Questionable/Model/QuestInfo.cs +++ b/Questionable/Model/QuestInfo.cs @@ -12,7 +12,7 @@ namespace Questionable.Model; internal sealed class QuestInfo : IQuestInfo { - public QuestInfo(ExcelQuest quest, uint newGamePlusChapter, byte startingCity) + public QuestInfo(ExcelQuest quest, uint newGamePlusChapter, byte startingCity, JournalGenreOverrides journalGenreOverrides) { QuestId = new QuestId((ushort)(quest.RowId & 0xFFFF)); @@ -53,7 +53,12 @@ internal sealed class QuestInfo : IQuestInfo .Where(x => x.Value != 0) .ToImmutableList(); QuestLockJoin = (EQuestJoin)quest.QuestLockJoin; - JournalGenre = quest.JournalGenre.ValueNullable?.RowId; + JournalGenre = QuestId.Value switch + { + >= 4196 and <= 4209 => journalGenreOverrides.ThavnairSideQuests, + 4173 => journalGenreOverrides.RadzAtHanSideQuests, + _ => quest.JournalGenre.ValueNullable?.RowId, + }; SortKey = quest.SortKey; IsMainScenarioQuest = quest.JournalGenre.ValueNullable?.JournalCategory.ValueNullable?.JournalSection .ValueNullable?.RowId is 0 or 1; -- 2.45.2 From 69e05722c8c371164e9a720a08777989ec7b9500 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sun, 5 Jan 2025 14:26:51 +0100 Subject: [PATCH 418/448] Rework `IsMainScenarioQuest` to be less reliant on actual journal ids --- Questionable/Model/QuestInfo.cs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Questionable/Model/QuestInfo.cs b/Questionable/Model/QuestInfo.cs index 751470b55..5f261275d 100644 --- a/Questionable/Model/QuestInfo.cs +++ b/Questionable/Model/QuestInfo.cs @@ -60,8 +60,7 @@ internal sealed class QuestInfo : IQuestInfo _ => quest.JournalGenre.ValueNullable?.RowId, }; SortKey = quest.SortKey; - IsMainScenarioQuest = quest.JournalGenre.ValueNullable?.JournalCategory.ValueNullable?.JournalSection - .ValueNullable?.RowId is 0 or 1; + IsMainScenarioQuest = quest.JournalGenre.ValueNullable?.Icon == 61412; CompletesInstantly = quest.TodoParams[0].ToDoCompleteSeq == 0; PreviousInstanceContent = quest.InstanceContent.Select(x => (ushort)x.RowId).Where(x => x != 0).ToList(); PreviousInstanceContentJoin = (EQuestJoin)quest.InstanceContentJoin; -- 2.45.2 From 90f92b9aa9db626c08361d4b4779321e91da2645 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sun, 5 Jan 2025 15:51:20 +0100 Subject: [PATCH 419/448] Add some Thavnair side quests --- .../Thavnair/4196_Fruit Savior.json | 72 +++++ .../Thavnair/4197_Shelling Out.json | 59 +++++ .../Thavnair/4199_The Great Heist.json | 74 ++++++ .../Thavnair/4200_Wish Upon a Crystal.json | 65 +++++ .../4201_High Importance, Low Urgency.json | 104 ++++++++ .../4202_Paint, Perfume, and Pecs.json | 110 ++++++++ .../Thavnair/4204_A Nose for Trouble.json | 149 +++++++++++ .../Thavnair/4205_Missing Alchemist.json | 185 +++++++++++++ .../Thavnair/4206_Hamsa Retrieval.json | 74 ++++++ .../4207_High Hopes for the Hatchery.json | 246 ++++++++++++++++++ .../Thavnair/4208_Cutting Edge Solutions.json | 98 +++++++ .../Thavnair/4209_Rushing up That Hill.json | 64 +++++ QuestPaths/quest-v1.json | 3 +- .../Questing/Converter/EmoteConverter.cs | 3 +- Questionable.Model/Questing/EEmote.cs | 1 + 15 files changed, 1305 insertions(+), 2 deletions(-) create mode 100644 QuestPaths/6.x - Endwalker/Side Quests/Thavnair/4196_Fruit Savior.json create mode 100644 QuestPaths/6.x - Endwalker/Side Quests/Thavnair/4197_Shelling Out.json create mode 100644 QuestPaths/6.x - Endwalker/Side Quests/Thavnair/4199_The Great Heist.json create mode 100644 QuestPaths/6.x - Endwalker/Side Quests/Thavnair/4200_Wish Upon a Crystal.json create mode 100644 QuestPaths/6.x - Endwalker/Side Quests/Thavnair/4201_High Importance, Low Urgency.json create mode 100644 QuestPaths/6.x - Endwalker/Side Quests/Thavnair/4202_Paint, Perfume, and Pecs.json create mode 100644 QuestPaths/6.x - Endwalker/Side Quests/Thavnair/4204_A Nose for Trouble.json create mode 100644 QuestPaths/6.x - Endwalker/Side Quests/Thavnair/4205_Missing Alchemist.json create mode 100644 QuestPaths/6.x - Endwalker/Side Quests/Thavnair/4206_Hamsa Retrieval.json create mode 100644 QuestPaths/6.x - Endwalker/Side Quests/Thavnair/4207_High Hopes for the Hatchery.json create mode 100644 QuestPaths/6.x - Endwalker/Side Quests/Thavnair/4208_Cutting Edge Solutions.json create mode 100644 QuestPaths/6.x - Endwalker/Side Quests/Thavnair/4209_Rushing up That Hill.json diff --git a/QuestPaths/6.x - Endwalker/Side Quests/Thavnair/4196_Fruit Savior.json b/QuestPaths/6.x - Endwalker/Side Quests/Thavnair/4196_Fruit Savior.json new file mode 100644 index 000000000..3aefd4d16 --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Side Quests/Thavnair/4196_Fruit Savior.json @@ -0,0 +1,72 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "Position": { + "X": 193.6185, + "Y": 1.9123514, + "Z": 713.436 + }, + "TerritoryId": 957, + "InteractionType": "WalkTo" + }, + { + "DataId": 1037622, + "Position": { + "X": 189.94562, + "Y": 0.8560083, + "Z": 702.7896 + }, + "StopDistance": 0.25, + "TerritoryId": 957, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2011979, + "Position": { + "X": 236.1333, + "Y": 10.666016, + "Z": 613.27527 + }, + "TerritoryId": 957, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": 193.6185, + "Y": 1.9123514, + "Z": 713.436 + }, + "TerritoryId": 957, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 1037622, + "Position": { + "X": 189.94562, + "Y": 0.8560083, + "Z": 702.7896 + }, + "StopDistance": 0.25, + "TerritoryId": 957, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/6.x - Endwalker/Side Quests/Thavnair/4197_Shelling Out.json b/QuestPaths/6.x - Endwalker/Side Quests/Thavnair/4197_Shelling Out.json new file mode 100644 index 000000000..1f89df9a4 --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Side Quests/Thavnair/4197_Shelling Out.json @@ -0,0 +1,59 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1037625, + "Position": { + "X": 176.47058, + "Y": 1.8742183, + "Z": 799.2217 + }, + "StopDistance": 1, + "TerritoryId": 957, + "InteractionType": "AcceptQuest", + "Fly": true + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": 13.657948, + "Y": 1.6567476, + "Z": 631.81714 + }, + "TerritoryId": 957, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "KillEnemyDataIds": [ + 13527 + ], + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1037625, + "Position": { + "X": 176.47058, + "Y": 1.8742183, + "Z": 799.2217 + }, + "StopDistance": 1, + "TerritoryId": 957, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/6.x - Endwalker/Side Quests/Thavnair/4199_The Great Heist.json b/QuestPaths/6.x - Endwalker/Side Quests/Thavnair/4199_The Great Heist.json new file mode 100644 index 000000000..a4707e230 --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Side Quests/Thavnair/4199_The Great Heist.json @@ -0,0 +1,74 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1037682, + "Position": { + "X": -564.1108, + "Y": 11.802608, + "Z": 124.28467 + }, + "TerritoryId": 957, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1039378, + "Position": { + "X": -103.25781, + "Y": 2.5712337, + "Z": 597.589 + }, + "TerritoryId": 957, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 14119, + 14120 + ], + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2011933, + "Position": { + "X": -102.61694, + "Y": 3.0059814, + "Z": 598.9319 + }, + "TerritoryId": 957, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1037682, + "Position": { + "X": -564.1108, + "Y": 11.802608, + "Z": 124.28467 + }, + "TerritoryId": 957, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Thavnair - Great Work", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/6.x - Endwalker/Side Quests/Thavnair/4200_Wish Upon a Crystal.json b/QuestPaths/6.x - Endwalker/Side Quests/Thavnair/4200_Wish Upon a Crystal.json new file mode 100644 index 000000000..638d84bc3 --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Side Quests/Thavnair/4200_Wish Upon a Crystal.json @@ -0,0 +1,65 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1037671, + "Position": { + "X": -554.37555, + "Y": 1.120665, + "Z": 22.690125 + }, + "StopDistance": 0.5, + "TerritoryId": 957, + "InteractionType": "AcceptQuest", + "Fly": true + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1039384, + "Position": { + "X": 223.22424, + "Y": 10.211119, + "Z": 562.4321 + }, + "TerritoryId": 957, + "InteractionType": "Interact", + "AetheryteShortcut": "Thavnair - Yedlihmad", + "Fly": true, + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_AKTKZA021_04200_Q1_000_000", + "Answer": "TEXT_AKTKZA021_04200_A1_000_002" + } + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1037671, + "Position": { + "X": -554.37555, + "Y": 1.120665, + "Z": 22.690125 + }, + "StopDistance": 0.5, + "TerritoryId": 957, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Thavnair - Great Work", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/6.x - Endwalker/Side Quests/Thavnair/4201_High Importance, Low Urgency.json b/QuestPaths/6.x - Endwalker/Side Quests/Thavnair/4201_High Importance, Low Urgency.json new file mode 100644 index 000000000..4c220c664 --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Side Quests/Thavnair/4201_High Importance, Low Urgency.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": 1039516, + "Position": { + "X": -554.89435, + "Y": 11.402609, + "Z": 125.10864 + }, + "TerritoryId": 957, + "InteractionType": "AcceptQuest", + "Fly": true + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1037680, + "Position": { + "X": -550.1946, + "Y": 1.6023201, + "Z": 50.766724 + }, + "StopDistance": 1, + "TerritoryId": 957, + "InteractionType": "Emote", + "Emote": "greeting", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, + { + "DataId": 1037670, + "Position": { + "X": -508.84262, + "Y": -3.7109916E-05, + "Z": -20.767578 + }, + "TerritoryId": 957, + "InteractionType": "Emote", + "Emote": "greeting", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 1037676, + "Position": { + "X": -502.95264, + "Y": 12.375282, + "Z": 116.31946 + }, + "TerritoryId": 957, + "InteractionType": "Emote", + "Emote": "greeting", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1039516, + "Position": { + "X": -554.89435, + "Y": 11.402609, + "Z": 125.10864 + }, + "TerritoryId": 957, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/6.x - Endwalker/Side Quests/Thavnair/4202_Paint, Perfume, and Pecs.json b/QuestPaths/6.x - Endwalker/Side Quests/Thavnair/4202_Paint, Perfume, and Pecs.json new file mode 100644 index 000000000..194e951a0 --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Side Quests/Thavnair/4202_Paint, Perfume, and Pecs.json @@ -0,0 +1,110 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1039379, + "Position": { + "X": -478.3246, + "Y": 39.636753, + "Z": 95.47571 + }, + "TerritoryId": 957, + "InteractionType": "AcceptQuest", + "Fly": true, + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_AKTKZA023_04202_Q1_000_000", + "Answer": "TEXT_AKTKZA023_04202_A1_000_001" + } + ] + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1039380, + "Position": { + "X": -386.862, + "Y": 21.832859, + "Z": 206.77502 + }, + "TerritoryId": 957, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1039380, + "Position": { + "X": -386.862, + "Y": 21.832859, + "Z": 206.77502 + }, + "TerritoryId": 957, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2011911, + "Position": { + "X": -387.28925, + "Y": 21.744019, + "Z": 208.88062 + }, + "TerritoryId": 957, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 14118 + ] + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1039380, + "Position": { + "X": -386.862, + "Y": 21.832859, + "Z": 206.77502 + }, + "TerritoryId": 957, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1039379, + "Position": { + "X": -478.3246, + "Y": 39.636753, + "Z": 95.47571 + }, + "TerritoryId": 957, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/6.x - Endwalker/Side Quests/Thavnair/4204_A Nose for Trouble.json b/QuestPaths/6.x - Endwalker/Side Quests/Thavnair/4204_A Nose for Trouble.json new file mode 100644 index 000000000..0607e6d99 --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Side Quests/Thavnair/4204_A Nose for Trouble.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": [ + { + "DataId": 1039365, + "Position": { + "X": -490.37924, + "Y": 5.667216, + "Z": 63.553833 + }, + "TerritoryId": 957, + "InteractionType": "AcceptQuest", + "Fly": true + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1039366, + "Position": { + "X": -385.24457, + "Y": 15.095761, + "Z": 62.974 + }, + "TerritoryId": 957, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1039367, + "Position": { + "X": -161.85254, + "Y": 32.732735, + "Z": 210.74231 + }, + "TerritoryId": 957, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2011903, + "Position": { + "X": -161.5473, + "Y": 32.211792, + "Z": 225.36047 + }, + "TerritoryId": 957, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 2011904, + "Position": { + "X": -148.57715, + "Y": 34.10388, + "Z": 207.84314 + }, + "TerritoryId": 957, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, + { + "DataId": 2011902, + "Position": { + "X": -170.21442, + "Y": 31.814941, + "Z": 193.1029 + }, + "TerritoryId": 957, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 14117 + ], + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1039367, + "Position": { + "X": -161.85254, + "Y": 32.732735, + "Z": 210.74231 + }, + "TerritoryId": 957, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1039365, + "Position": { + "X": -490.37924, + "Y": 5.667216, + "Z": 63.553833 + }, + "TerritoryId": 957, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Thavnair - Great Work", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/6.x - Endwalker/Side Quests/Thavnair/4205_Missing Alchemist.json b/QuestPaths/6.x - Endwalker/Side Quests/Thavnair/4205_Missing Alchemist.json new file mode 100644 index 000000000..6da549427 --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Side Quests/Thavnair/4205_Missing Alchemist.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": 1039371, + "Position": { + "X": -409.93365, + "Y": 10.751212, + "Z": 33.035767 + }, + "TerritoryId": 957, + "InteractionType": "AcceptQuest", + "Fly": true + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1039372, + "Position": { + "X": 195.91052, + "Y": 4.763736, + "Z": 658.2893 + }, + "TerritoryId": 957, + "InteractionType": "Interact", + "AetheryteShortcut": "Thavnair - Yedlihmad" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1039373, + "Position": { + "X": -314.6258, + "Y": 0.70631444, + "Z": 561.12 + }, + "TerritoryId": 957, + "InteractionType": "Interact", + "Fly": true, + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_AKTKZA026_04205_Q1_000_000", + "Answer": "TEXT_AKTKZA026_04205_A1_000_001" + } + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2011905, + "Position": { + "X": -443.04572, + "Y": -0.22894287, + "Z": 800.7781 + }, + "TerritoryId": 957, + "InteractionType": "Interact", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 2011906, + "Position": { + "X": -458.42682, + "Y": -0.19836426, + "Z": 830.8689 + }, + "TerritoryId": 957, + "InteractionType": "Interact", + "Mount": false, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "Position": { + "X": -458.42682, + "Y": -0.19836426, + "Z": 830.8689 + }, + "StopDistance": 5, + "TerritoryId": 957, + "InteractionType": "Dive" + }, + { + "DataId": 2011908, + "Position": { + "X": -484.85547, + "Y": -72.22095, + "Z": 814.35876 + }, + "TerritoryId": 957, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 16 + ] + }, + { + "DataId": 2011907, + "Position": { + "X": -452.90308, + "Y": -67.00244, + "Z": 776.2417 + }, + "TerritoryId": 957, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, + { + "DataId": 2011909, + "Position": { + "X": -513.51184, + "Y": -52.689453, + "Z": 773.73914 + }, + "TerritoryId": 957, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 8 + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1039371, + "Position": { + "X": -409.93365, + "Y": 10.751212, + "Z": 33.035767 + }, + "TerritoryId": 957, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Thavnair - Great Work", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/6.x - Endwalker/Side Quests/Thavnair/4206_Hamsa Retrieval.json b/QuestPaths/6.x - Endwalker/Side Quests/Thavnair/4206_Hamsa Retrieval.json new file mode 100644 index 000000000..fd168aeba --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Side Quests/Thavnair/4206_Hamsa Retrieval.json @@ -0,0 +1,74 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1037685, + "Position": { + "X": -468.864, + "Y": 6.2912574, + "Z": 3.463745 + }, + "TerritoryId": 957, + "InteractionType": "AcceptQuest", + "Fly": true + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": -568.1513, + "Y": 40.91181, + "Z": -451.32486 + }, + "StopDistance": 0.5, + "TerritoryId": 957, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [ + 14116 + ], + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1039383, + "Position": { + "X": -567.6509, + "Y": 41.313267, + "Z": -448.41687 + }, + "TerritoryId": 957, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1037685, + "Position": { + "X": -468.864, + "Y": 6.2912574, + "Z": 3.463745 + }, + "TerritoryId": 957, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Thavnair - Great Work", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/6.x - Endwalker/Side Quests/Thavnair/4207_High Hopes for the Hatchery.json b/QuestPaths/6.x - Endwalker/Side Quests/Thavnair/4207_High Hopes for the Hatchery.json new file mode 100644 index 000000000..fae8cdf68 --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Side Quests/Thavnair/4207_High Hopes for the Hatchery.json @@ -0,0 +1,246 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1039385, + "Position": { + "X": -480.12518, + "Y": 5.362214, + "Z": 37.582886 + }, + "StopDistance": 0.5, + "TerritoryId": 957, + "InteractionType": "AcceptQuest", + "Fly": true + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1039386, + "Position": { + "X": -431.7846, + "Y": 72.61802, + "Z": -555.3826 + }, + "TerritoryId": 957, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": -477.78827, + "Y": 73.67918, + "Z": -542.7145 + }, + "TerritoryId": 957, + "InteractionType": "WalkTo", + "SkipConditions": { + "StepIf": { + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + } + } + }, + { + "DataId": 2011962, + "Position": { + "X": -477.16492, + "Y": 74.75391, + "Z": -544.5792 + }, + "TerritoryId": 957, + "InteractionType": "UseItem", + "ItemId": 2003199, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 2011963, + "Position": { + "X": -479.2401, + "Y": 74.784424, + "Z": -541.619 + }, + "TerritoryId": 957, + "InteractionType": "UseItem", + "ItemId": 2003199, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ], + "DelaySecondsAtStart": 3 + }, + { + "Position": { + "X": -482.98328, + "Y": 73.32367, + "Z": -521.75024 + }, + "TerritoryId": 957, + "InteractionType": "WalkTo", + "SkipConditions": { + "StepIf": { + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 16 + ] + } + } + }, + { + "DataId": 2011964, + "Position": { + "X": -484.67236, + "Y": 74.021484, + "Z": -523.15564 + }, + "TerritoryId": 957, + "InteractionType": "UseItem", + "ItemId": 2003199, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, + { + "DataId": 2011965, + "Position": { + "X": -483.6042, + "Y": 74.35718, + "Z": -519.7986 + }, + "TerritoryId": 957, + "InteractionType": "UseItem", + "ItemId": 2003199, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 16 + ], + "DelaySecondsAtStart": 3 + }, + { + "Position": { + "X": -475.0877, + "Y": 73.24273, + "Z": -512.62787 + }, + "TerritoryId": 957, + "InteractionType": "WalkTo" + }, + { + "DataId": 2011967, + "Position": { + "X": -476.92078, + "Y": 74.08252, + "Z": -511.43665 + }, + "TerritoryId": 957, + "InteractionType": "UseItem", + "ItemId": 2003199, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 4 + ] + }, + { + "DataId": 2011966, + "Position": { + "X": -473.0144, + "Y": 74.32666, + "Z": -512.3827 + }, + "TerritoryId": 957, + "InteractionType": "UseItem", + "ItemId": 2003199, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 8 + ], + "DelaySecondsAtStart": 3 + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1039386, + "Position": { + "X": -431.7846, + "Y": 72.61802, + "Z": -555.3826 + }, + "TerritoryId": 957, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1039385, + "Position": { + "X": -480.12518, + "Y": 5.362214, + "Z": 37.582886 + }, + "StopDistance": 0.5, + "TerritoryId": 957, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Thavnair - Great Work", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/6.x - Endwalker/Side Quests/Thavnair/4208_Cutting Edge Solutions.json b/QuestPaths/6.x - Endwalker/Side Quests/Thavnair/4208_Cutting Edge Solutions.json new file mode 100644 index 000000000..b7d4c1ec8 --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Side Quests/Thavnair/4208_Cutting Edge Solutions.json @@ -0,0 +1,98 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1037673, + "Position": { + "X": -517.0215, + "Y": 11.975277, + "Z": 100.541626 + }, + "TerritoryId": 957, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1039370, + "Position": { + "X": -106.21808, + "Y": 95.53504, + "Z": -700.4959 + }, + "TerritoryId": 957, + "InteractionType": "Interact", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, + { + "DataId": 1039368, + "Position": { + "X": -65.07977, + "Y": 89.860886, + "Z": -659.8764 + }, + "TerritoryId": 957, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 1039369, + "Position": { + "X": -66.14789, + "Y": 89.4264, + "Z": -635.8892 + }, + "TerritoryId": 957, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1037673, + "Position": { + "X": -517.0215, + "Y": 11.975277, + "Z": 100.541626 + }, + "TerritoryId": 957, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Thavnair - Great Work", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/6.x - Endwalker/Side Quests/Thavnair/4209_Rushing up That Hill.json b/QuestPaths/6.x - Endwalker/Side Quests/Thavnair/4209_Rushing up That Hill.json new file mode 100644 index 000000000..cc5d7b014 --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Side Quests/Thavnair/4209_Rushing up That Hill.json @@ -0,0 +1,64 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1037681, + "Position": { + "X": -554.74176, + "Y": 11.402611, + "Z": 137.31592 + }, + "TerritoryId": 957, + "InteractionType": "AcceptQuest", + "Fly": true + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": -281.16296, + "Y": 94.31451, + "Z": -289.12802 + }, + "TerritoryId": 957, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 2011910, + "Position": { + "X": -280.99493, + "Y": 95.87244, + "Z": -287.64783 + }, + "TerritoryId": 957, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1037681, + "Position": { + "X": -554.74176, + "Y": 11.402611, + "Z": 137.31592 + }, + "TerritoryId": 957, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Thavnair - Great Work", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/quest-v1.json b/QuestPaths/quest-v1.json index eab9789a6..d04fd82c5 100644 --- a/QuestPaths/quest-v1.json +++ b/QuestPaths/quest-v1.json @@ -859,7 +859,8 @@ "joy", "mogdance", "salute", - "laugh" + "laugh", + "greeting" ] } } diff --git a/Questionable.Model/Questing/Converter/EmoteConverter.cs b/Questionable.Model/Questing/Converter/EmoteConverter.cs index 714282e46..bdfe5581f 100644 --- a/Questionable.Model/Questing/Converter/EmoteConverter.cs +++ b/Questionable.Model/Questing/Converter/EmoteConverter.cs @@ -43,6 +43,7 @@ public sealed class EmoteConverter() : EnumConverter(Values) { EEmote.Flex, "flex" }, { EEmote.Respect, "respect" }, { EEmote.Box, "box" }, - { EEmote.Uchiwasshoi, "uchiwasshoi" } + { EEmote.Greeting, "greeting" }, + { EEmote.Uchiwasshoi, "uchiwasshoi" }, }; } diff --git a/Questionable.Model/Questing/EEmote.cs b/Questionable.Model/Questing/EEmote.cs index dc4363aee..78e7b6500 100644 --- a/Questionable.Model/Questing/EEmote.cs +++ b/Questionable.Model/Questing/EEmote.cs @@ -44,6 +44,7 @@ public enum EEmote Flex = 139, Respect = 140, Box = 166, + Greeting = 172, Uchiwasshoi = 278 } -- 2.45.2 From 65df686329e03e920bcd6859879b7cc0904200b5 Mon Sep 17 00:00:00 2001 From: Stefan Belmont Date: Wed, 8 Jan 2025 14:02:05 +0000 Subject: [PATCH 420/448] +1979 --- .../Azys Lla/1979_Basic Training.json | 57 +++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 QuestPaths/3.x - Heavensward/Side Quests/Azys Lla/1979_Basic Training.json diff --git a/QuestPaths/3.x - Heavensward/Side Quests/Azys Lla/1979_Basic Training.json b/QuestPaths/3.x - Heavensward/Side Quests/Azys Lla/1979_Basic Training.json new file mode 100644 index 000000000..2403b49bb --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Side Quests/Azys Lla/1979_Basic Training.json @@ -0,0 +1,57 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "goatzone", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1012145, + "Position": { + "X": -607.7516, + "Y": -176.4502, + "Z": -527.5502 + }, + "TerritoryId": 402, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": -441.42657, + "Y": -167.25401, + "Z": -432.4462 + }, + "TerritoryId": 402, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "KillEnemyDataIds": [4093], + "MinimumKillCount": "5", + "Fly": true, + "$": "5 in close range here, so if any dead it might be a little slower.", + "$.1": "this is the area the quest suggests; there /are/ spinner-rooks sooner, and walking there at level w/o flying might cause interruption, but they're more spread out everywhere else - YMMV." + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1012145, + "Position": { + "X": -607.7516, + "Y": -176.4502, + "Z": -527.5502 + }, + "TerritoryId": 402, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} -- 2.45.2 From 2cfc5256b9156d958234f6f54641859804fd9567 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Wed, 8 Jan 2025 21:38:34 +0100 Subject: [PATCH 421/448] Add second Nitowikwe quest --- .../Nitowikwe/5240_The Weight of a Train.json | 75 +++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 QuestPaths/7.x - Dawntrail/Custom Deliveries/Nitowikwe/5240_The Weight of a Train.json diff --git a/QuestPaths/7.x - Dawntrail/Custom Deliveries/Nitowikwe/5240_The Weight of a Train.json b/QuestPaths/7.x - Dawntrail/Custom Deliveries/Nitowikwe/5240_The Weight of a Train.json new file mode 100644 index 000000000..e2cc56a78 --- /dev/null +++ b/QuestPaths/7.x - Dawntrail/Custom Deliveries/Nitowikwe/5240_The Weight of a Train.json @@ -0,0 +1,75 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1048605, + "Position": { + "X": -358.38867, + "Y": 19.728025, + "Z": -105.02789 + }, + "TerritoryId": 1190, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Shaaloani - Sheshenewezi Springs", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2014456, + "Position": { + "X": -128.64886, + "Y": 16.311829, + "Z": -290.69965 + }, + "TerritoryId": 1190, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1048608, + "Position": { + "X": -126.57361, + "Y": 15.67948, + "Z": -369.46674 + }, + "TerritoryId": 1190, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1048605, + "Position": { + "X": -358.38867, + "Y": 19.728025, + "Z": -105.02789 + }, + "TerritoryId": 1190, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} -- 2.45.2 From 1f4dc134ef0249a805625e3d3b125d7daecff099 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Wed, 8 Jan 2025 21:49:03 +0100 Subject: [PATCH 422/448] Add third Nitowikwe quest --- .../Nitowikwe/5240_The Weight of a Train.json | 3 +- .../Nitowikwe/5241_His Heart Blazes On.json | 65 +++++++++++++++++++ 2 files changed, 67 insertions(+), 1 deletion(-) create mode 100644 QuestPaths/7.x - Dawntrail/Custom Deliveries/Nitowikwe/5241_His Heart Blazes On.json diff --git a/QuestPaths/7.x - Dawntrail/Custom Deliveries/Nitowikwe/5240_The Weight of a Train.json b/QuestPaths/7.x - Dawntrail/Custom Deliveries/Nitowikwe/5240_The Weight of a Train.json index e2cc56a78..e9ea6e574 100644 --- a/QuestPaths/7.x - Dawntrail/Custom Deliveries/Nitowikwe/5240_The Weight of a Train.json +++ b/QuestPaths/7.x - Dawntrail/Custom Deliveries/Nitowikwe/5240_The Weight of a Train.json @@ -67,7 +67,8 @@ }, "TerritoryId": 1190, "InteractionType": "CompleteQuest", - "Fly": true + "Fly": true, + "NextQuestId": 5241 } ] } diff --git a/QuestPaths/7.x - Dawntrail/Custom Deliveries/Nitowikwe/5241_His Heart Blazes On.json b/QuestPaths/7.x - Dawntrail/Custom Deliveries/Nitowikwe/5241_His Heart Blazes On.json new file mode 100644 index 000000000..1fd468d1c --- /dev/null +++ b/QuestPaths/7.x - Dawntrail/Custom Deliveries/Nitowikwe/5241_His Heart Blazes On.json @@ -0,0 +1,65 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "Position": { + "X": -363.2864, + "Y": 20.16234, + "Z": -90.06508 + }, + "TerritoryId": 1190, + "InteractionType": "WalkTo" + }, + { + "DataId": 1051495, + "Position": { + "X": -365.28577, + "Y": 20.14268, + "Z": -88.51758 + }, + "TerritoryId": 1190, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": -354.53677, + "Y": 19.32763, + "Z": -99.326805 + }, + "TerritoryId": 1190, + "InteractionType": "WalkTo", + "Mount": true + }, + { + "Position": { + "X": -91.25145, + "Y": 17.80576, + "Z": -267.2748 + }, + "TerritoryId": 1190, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 1051497, + "Position": { + "X": -91.5694, + "Y": 17.7503, + "Z": -268.54352 + }, + "TerritoryId": 1190, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} -- 2.45.2 From 3889fbfb696a147eb06ebaa08a621890b365b6a8 Mon Sep 17 00:00:00 2001 From: Stefan Belmont Date: Thu, 9 Jan 2025 05:51:09 +0000 Subject: [PATCH 423/448] +1980, de-rust 1979 --- .../Azys Lla/1979_Basic Training.json | 114 +++++++++--------- .../Azys Lla/1980_Good Clean Fun.json | 60 +++++++++ 2 files changed, 119 insertions(+), 55 deletions(-) create mode 100644 QuestPaths/3.x - Heavensward/Side Quests/Azys Lla/1980_Good Clean Fun.json diff --git a/QuestPaths/3.x - Heavensward/Side Quests/Azys Lla/1979_Basic Training.json b/QuestPaths/3.x - Heavensward/Side Quests/Azys Lla/1979_Basic Training.json index 2403b49bb..2955b31fb 100644 --- a/QuestPaths/3.x - Heavensward/Side Quests/Azys Lla/1979_Basic Training.json +++ b/QuestPaths/3.x - Heavensward/Side Quests/Azys Lla/1979_Basic Training.json @@ -1,57 +1,61 @@ { - "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "goatzone", - "QuestSequence": [ - { - "Sequence": 0, - "Steps": [ - { - "DataId": 1012145, - "Position": { - "X": -607.7516, - "Y": -176.4502, - "Z": -527.5502 - }, - "TerritoryId": 402, - "InteractionType": "AcceptQuest" - } - ] - }, - { - "Sequence": 1, - "Steps": [ - { - "Position": { - "X": -441.42657, - "Y": -167.25401, - "Z": -432.4462 - }, - "TerritoryId": 402, - "InteractionType": "Combat", - "EnemySpawnType": "OverworldEnemies", - "KillEnemyDataIds": [4093], - "MinimumKillCount": "5", - "Fly": true, - "$": "5 in close range here, so if any dead it might be a little slower.", - "$.1": "this is the area the quest suggests; there /are/ spinner-rooks sooner, and walking there at level w/o flying might cause interruption, but they're more spread out everywhere else - YMMV." - } - ] - }, - { - "Sequence": 255, - "Steps": [ - { - "DataId": 1012145, - "Position": { - "X": -607.7516, - "Y": -176.4502, - "Z": -527.5502 - }, - "TerritoryId": 402, - "InteractionType": "CompleteQuest", - "Fly": true - } - ] - } - ] + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "goatzone", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1012145, + "Position": { + "X": -607.7516, + "Y": -176.4502, + "Z": -527.5502 + }, + "TerritoryId": 402, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": -441.42657, + "Y": -167.25401, + "Z": -432.4462 + }, + "TerritoryId": 402, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "ComplexCombatData": [ + { + "DataId": 4093, + "MinimumKillCount": 5 + } + ], + "Fly": true, + "$": "5 in close range here, so if any dead it might be a little slower.", + "$.1": "this is the area the quest suggests; there /are/ spinner-rooks sooner, and walking there at level w/o flying might cause interruption, but they're more spread out everywhere else - YMMV." + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1012145, + "Position": { + "X": -607.7516, + "Y": -176.4502, + "Z": -527.5502 + }, + "TerritoryId": 402, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] } diff --git a/QuestPaths/3.x - Heavensward/Side Quests/Azys Lla/1980_Good Clean Fun.json b/QuestPaths/3.x - Heavensward/Side Quests/Azys Lla/1980_Good Clean Fun.json new file mode 100644 index 000000000..be941a7ed --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Side Quests/Azys Lla/1980_Good Clean Fun.json @@ -0,0 +1,60 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "goatzone", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1012146, + "Position": { + "X": -643.76294, + "Y": -176.4502, + "Z": -527.3976 + }, + "TerritoryId": 402, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": -439.6144, + "Y": -186.3405, + "Z": -617.2911 + }, + "TerritoryId": 402, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "ComplexCombatData": [ + { + "DataId": 4092, + "MinimumKillCount": 5 + } + ], + "Fly": true, + "$": "by starting here we can guarantee a more sane straightline progression instead of starting in the middle, going all the way to one side, then running all the way to the other side." + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1012146, + "Position": { + "X": -643.76294, + "Y": -176.4502, + "Z": -527.3976 + }, + "TerritoryId": 402, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Azys Lla - Helix" + } + ] + } + ] +} -- 2.45.2 From b917cd4e9096a7cd7b075d1f4f0c7ae0e981ddc0 Mon Sep 17 00:00:00 2001 From: Stefan Belmont Date: Thu, 9 Jan 2025 06:03:06 +0000 Subject: [PATCH 424/448] +1981 --- .../1981_General Protection Fault.json | 55 +++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 QuestPaths/3.x - Heavensward/Side Quests/Azys Lla/1981_General Protection Fault.json diff --git a/QuestPaths/3.x - Heavensward/Side Quests/Azys Lla/1981_General Protection Fault.json b/QuestPaths/3.x - Heavensward/Side Quests/Azys Lla/1981_General Protection Fault.json new file mode 100644 index 000000000..8d59d5441 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Side Quests/Azys Lla/1981_General Protection Fault.json @@ -0,0 +1,55 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "goatzone", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1012147, + "Position": { + "X": -426.627, + "Y": -162.1281, + "Z": -328.6031 + }, + "TerritoryId": 402, + "InteractionType": "AcceptQuest", + "Fly": true + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": -528.74396, + "Y": -143.65883, + "Z": -580.686 + }, + "TerritoryId": 402, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [4503], + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1012147, + "Position": { + "X": -426.627, + "Y": -162.1281, + "Z": -328.6031 + }, + "TerritoryId": 402, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} -- 2.45.2 From ba5975e6ffc2e2e912fd4b119399db34b99d74c3 Mon Sep 17 00:00:00 2001 From: Stefan Belmont Date: Thu, 9 Jan 2025 06:15:46 +0000 Subject: [PATCH 425/448] +1982 --- .../Azys Lla/1982_Excessive Force.json | 65 +++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 QuestPaths/3.x - Heavensward/Side Quests/Azys Lla/1982_Excessive Force.json diff --git a/QuestPaths/3.x - Heavensward/Side Quests/Azys Lla/1982_Excessive Force.json b/QuestPaths/3.x - Heavensward/Side Quests/Azys Lla/1982_Excessive Force.json new file mode 100644 index 000000000..c3906c89e --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Side Quests/Azys Lla/1982_Excessive Force.json @@ -0,0 +1,65 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "goatzone", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1012148, + "Position": { + "X": -173.2663, + "Y": -162.03395, + "Z": -510.39905 + }, + "TerritoryId": 402, + "InteractionType": "AcceptQuest", + "Fly": true + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": -189.43037, + "Y": -160.1837, + "Z": -499.3027 + }, + "TerritoryId": 402, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "ComplexCombatData": [ + { + "DataId": 4091, + "MinimumKillCount": 3, + "$": "Slay clockwork paladins." + }, + { + "DataId": 4090, + "MinimumKillCount": 3, + "$": "Slay clockwork engineers." + } + ], + "$": "they're all around so we can just start here. possible issue with a FATE spawning here, YMMV." + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1012148, + "Position": { + "X": -173.2663, + "Y": -162.03395, + "Z": -510.39905 + }, + "TerritoryId": 402, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} -- 2.45.2 From 8d64475f0af6c6533d1e18e3030423c19bb0ce59 Mon Sep 17 00:00:00 2001 From: Stefan Belmont Date: Thu, 9 Jan 2025 06:34:20 +0000 Subject: [PATCH 426/448] +1983 --- .../1983_Chimerical Abominations.json | 61 +++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 QuestPaths/3.x - Heavensward/Side Quests/Azys Lla/1983_Chimerical Abominations.json diff --git a/QuestPaths/3.x - Heavensward/Side Quests/Azys Lla/1983_Chimerical Abominations.json b/QuestPaths/3.x - Heavensward/Side Quests/Azys Lla/1983_Chimerical Abominations.json new file mode 100644 index 000000000..e84881f97 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Side Quests/Azys Lla/1983_Chimerical Abominations.json @@ -0,0 +1,61 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "goatzone", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1012289, + "Position": { + "X": 231.18933, + "Y": -72.92926, + "Z": -603.1434 + }, + "TerritoryId": 402, + "InteractionType": "AcceptQuest", + "Fly": true + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": 517.51276, + "Y": -40.378292, + "Z": -785.99677 + }, + "TerritoryId": 402, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "ComplexCombatData": [ + { + "DataId": 4141, + "MinimumKillCount": 2 + } + ], + "Fly": true, + "$": "FATE spawns on top of the suggested area, so we move a bit east." + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1012289, + "Position": { + "X": 231.18933, + "Y": -72.92926, + "Z": -603.1434 + }, + "TerritoryId": 402, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} -- 2.45.2 From 6e19630e605f998d7f5548ec4baf7776b7f9c942 Mon Sep 17 00:00:00 2001 From: Stefan Belmont Date: Thu, 9 Jan 2025 11:39:45 +0000 Subject: [PATCH 427/448] +1984 --- .../Azys Lla/1984_Pollution Solution.json | 60 +++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 QuestPaths/3.x - Heavensward/Side Quests/Azys Lla/1984_Pollution Solution.json diff --git a/QuestPaths/3.x - Heavensward/Side Quests/Azys Lla/1984_Pollution Solution.json b/QuestPaths/3.x - Heavensward/Side Quests/Azys Lla/1984_Pollution Solution.json new file mode 100644 index 000000000..ef384a78e --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Side Quests/Azys Lla/1984_Pollution Solution.json @@ -0,0 +1,60 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "goatzone", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1012290, + "Position": { + "X": 760.5248, + "Y": -30.307041, + "Z": -579.67505 + }, + "TerritoryId": 402, + "InteractionType": "AcceptQuest", + "Fly": true + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": 668.9029, + "Y": -86.006, + "Z": -775.5664 + }, + "TerritoryId": 402, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "ComplexCombatData": [ + { + "DataId": 4046, + "MinimumKillCount": 4 + } + ], + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1012290, + "Position": { + "X": 760.5248, + "Y": -30.307041, + "Z": -579.67505 + }, + "TerritoryId": 402, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} -- 2.45.2 From 8d18b243527177dea9735da84d997d100be5bf97 Mon Sep 17 00:00:00 2001 From: Stefan Belmont Date: Thu, 9 Jan 2025 16:52:15 +0000 Subject: [PATCH 428/448] +1985 --- .../Azys Lla/1985_Good Hunting.json | 60 +++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 QuestPaths/3.x - Heavensward/Side Quests/Azys Lla/1985_Good Hunting.json diff --git a/QuestPaths/3.x - Heavensward/Side Quests/Azys Lla/1985_Good Hunting.json b/QuestPaths/3.x - Heavensward/Side Quests/Azys Lla/1985_Good Hunting.json new file mode 100644 index 000000000..689b47bbd --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Side Quests/Azys Lla/1985_Good Hunting.json @@ -0,0 +1,60 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "goatzone", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1012291, + "Position": { + "X": 804.074, + "Y": -26.326342, + "Z": -527.48914 + }, + "TerritoryId": 402, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": 355.31863, + "Y": -46.22946, + "Z": -507.70428 + }, + "TerritoryId": 402, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "ComplexCombatData": [ + { + "DataId": 4072, + "MinimumKillCount": 4 + } + ], + "Fly": true, + "$": "we go to the west of the marked area to avoid idling in the FATE that spawns on the east of it; we'll still path through it when we expend all the westward mobs, but that's just how they spawn, shrugging emoji." + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1012291, + "Position": { + "X": 804.074, + "Y": -26.326342, + "Z": -527.48914 + }, + "TerritoryId": 402, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} -- 2.45.2 From 1773afea46e09f56ab6da65035985a429c4ee535 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Thu, 9 Jan 2025 19:34:16 +0100 Subject: [PATCH 429/448] GatheringPathRenderer: minor updates --- Directory.Build.targets | 2 +- GatheringPathRenderer/.gitignore | 1 + GatheringPathRenderer/DalamudPackager.targets | 21 +++ .../GatheringPathRenderer.csproj | 8 + .../GatheringPathRenderer.json | 5 +- GatheringPathRenderer/RendererPlugin.cs | 22 ++- GatheringPathRenderer/Windows/ConfigWindow.cs | 33 +++++ GatheringPathRenderer/Windows/EditorWindow.cs | 19 ++- .../1002_Yawtanane Grasslands_BTN.json | 138 ++++++++++++++++++ 9 files changed, 241 insertions(+), 8 deletions(-) create mode 100644 GatheringPathRenderer/.gitignore create mode 100644 GatheringPathRenderer/DalamudPackager.targets create mode 100644 GatheringPathRenderer/Windows/ConfigWindow.cs create mode 100644 GatheringPaths/7.x - Dawntrail/Shaaloani/1002_Yawtanane Grasslands_BTN.json diff --git a/Directory.Build.targets b/Directory.Build.targets index 9c7a8c24a..58a5fad2f 100644 --- a/Directory.Build.targets +++ b/Directory.Build.targets @@ -1,5 +1,5 @@ - + 4.13 diff --git a/GatheringPathRenderer/.gitignore b/GatheringPathRenderer/.gitignore new file mode 100644 index 000000000..a60a458a9 --- /dev/null +++ b/GatheringPathRenderer/.gitignore @@ -0,0 +1 @@ +/dist diff --git a/GatheringPathRenderer/DalamudPackager.targets b/GatheringPathRenderer/DalamudPackager.targets new file mode 100644 index 000000000..7f129a87a --- /dev/null +++ b/GatheringPathRenderer/DalamudPackager.targets @@ -0,0 +1,21 @@ + + + + + + + + + + diff --git a/GatheringPathRenderer/GatheringPathRenderer.csproj b/GatheringPathRenderer/GatheringPathRenderer.csproj index 6009a5183..73d05cbeb 100644 --- a/GatheringPathRenderer/GatheringPathRenderer.csproj +++ b/GatheringPathRenderer/GatheringPathRenderer.csproj @@ -1,4 +1,11 @@ + + 0.1 + dist + $(SolutionDir)=X:\ + x64 + + @@ -6,4 +13,5 @@ + diff --git a/GatheringPathRenderer/GatheringPathRenderer.json b/GatheringPathRenderer/GatheringPathRenderer.json index 8d68d1d89..56f917099 100644 --- a/GatheringPathRenderer/GatheringPathRenderer.json +++ b/GatheringPathRenderer/GatheringPathRenderer.json @@ -1,6 +1,7 @@ { "Name": "GatheringPathRenderer", "Author": "Liza Carvelli", - "Punchline": "dev only plugin: Renders gathering location.", - "Description": "dev only plugin: Renders gathering location (without ECommons polluting the entire normal project)." + "Punchline": "[Questionable dev plugin]: Renders gathering location.", + "Description": "[Questionable dev plugin]: Renders gathering location using Splatoon.", + "RepoUrl": "https://git.carvel.li/liza/Questionable/src/branch/master/GatheringPathRenderer" } diff --git a/GatheringPathRenderer/RendererPlugin.cs b/GatheringPathRenderer/RendererPlugin.cs index 5ef430eae..02e01bb70 100644 --- a/GatheringPathRenderer/RendererPlugin.cs +++ b/GatheringPathRenderer/RendererPlugin.cs @@ -1,6 +1,7 @@ using System; using System.Collections; using System.Collections.Generic; +using System.Diagnostics.CodeAnalysis; using System.IO; using System.Linq; using System.Text.Encodings.Web; @@ -17,11 +18,11 @@ using ECommons.Schedulers; using ECommons.SplatoonAPI; using GatheringPathRenderer.Windows; using LLib.GameData; -using Questionable.Model; using Questionable.Model.Gathering; namespace GatheringPathRenderer; +[SuppressMessage("ReSharper", "ClassNeverInstantiated.Global")] public sealed class RendererPlugin : IDalamudPlugin { private const long OnTerritoryChange = -2; @@ -56,8 +57,10 @@ public sealed class RendererPlugin : IDalamudPlugin _editorCommands = new EditorCommands(this, dataManager, commandManager, targetManager, clientState, chatGui, configuration); - _editorWindow = new EditorWindow(this, _editorCommands, dataManager, targetManager, clientState, objectTable) + var configWindow = new ConfigWindow(pluginInterface, configuration); + _editorWindow = new EditorWindow(this, _editorCommands, dataManager, targetManager, clientState, objectTable, configWindow) { IsOpen = true }; + _windowSystem.AddWindow(configWindow); _windowSystem.AddWindow(_editorWindow); _currentClassJob = (EClassJob?)_clientState.LocalPlayer?.ClassJob.RowId ?? EClassJob.Adventurer; @@ -78,6 +81,7 @@ public sealed class RendererPlugin : IDalamudPlugin { get { +#if DEBUG DirectoryInfo? solutionDirectory = _pluginInterface.AssemblyLocation.Directory?.Parent?.Parent?.Parent; if (solutionDirectory != null) { @@ -88,6 +92,12 @@ public sealed class RendererPlugin : IDalamudPlugin } throw new Exception("Unable to resolve project path"); +#else + var allPluginsDirectory = _pluginInterface.ConfigFile.Directory ?? throw new Exception("Unknown directory for plugin configs"); + return allPluginsDirectory + .CreateSubdirectory("Questionable") + .CreateSubdirectory("GatheringPaths"); +#endif } } @@ -103,12 +113,18 @@ public sealed class RendererPlugin : IDalamudPlugin try { +#if DEBUG foreach (var expansionFolder in ExpansionData.ExpansionFolders.Values) LoadFromDirectory( new DirectoryInfo(Path.Combine(PathsDirectory.FullName, expansionFolder))); - _pluginLog.Information( $"Loaded {_gatheringLocations.Count} gathering root locations from project directory"); +#else + LoadFromDirectory(PathsDirectory); + _pluginLog.Information( + $"Loaded {_gatheringLocations.Count} gathering root locations from {PathsDirectory.FullName} directory"); +#endif + } catch (Exception e) { diff --git a/GatheringPathRenderer/Windows/ConfigWindow.cs b/GatheringPathRenderer/Windows/ConfigWindow.cs new file mode 100644 index 000000000..0e9ba04cf --- /dev/null +++ b/GatheringPathRenderer/Windows/ConfigWindow.cs @@ -0,0 +1,33 @@ +using Dalamud.Interface.Windowing; +using Dalamud.Plugin; +using ImGuiNET; + +namespace GatheringPathRenderer.Windows; + +internal sealed class ConfigWindow : Window +{ + private readonly IDalamudPluginInterface _pluginInterface; + private readonly Configuration _configuration; + + public ConfigWindow(IDalamudPluginInterface pluginInterface, Configuration configuration) + : base("Gathering Path Config", ImGuiWindowFlags.AlwaysAutoResize) + { + _pluginInterface = pluginInterface; + _configuration = configuration; + + AllowPinning = false; + AllowClickthrough = false; + } + + public override void Draw() + { + string authorName = _configuration.AuthorName; + if (ImGui.InputText("Author name for new files", ref authorName, 256)) + { + _configuration.AuthorName = authorName; + Save(); + } + } + + private void Save() => _pluginInterface.SavePluginConfig(_configuration); +} diff --git a/GatheringPathRenderer/Windows/EditorWindow.cs b/GatheringPathRenderer/Windows/EditorWindow.cs index 1150558fa..c117f4a9b 100644 --- a/GatheringPathRenderer/Windows/EditorWindow.cs +++ b/GatheringPathRenderer/Windows/EditorWindow.cs @@ -6,6 +6,7 @@ using System.Numerics; using Dalamud.Game.ClientState.Objects; using Dalamud.Game.ClientState.Objects.Enums; using Dalamud.Game.ClientState.Objects.Types; +using Dalamud.Interface; using Dalamud.Interface.Colors; using Dalamud.Interface.Windowing; using Dalamud.Plugin.Services; @@ -32,8 +33,8 @@ internal sealed class EditorWindow : Window _targetLocation; public EditorWindow(RendererPlugin plugin, EditorCommands editorCommands, IDataManager dataManager, - ITargetManager targetManager, IClientState clientState, IObjectTable objectTable) - : base("Gathering Path Editor###QuestionableGatheringPathEditor", + ITargetManager targetManager, IClientState clientState, IObjectTable objectTable, ConfigWindow configWindow) + : base($"Gathering Path Editor {typeof(EditorWindow).Assembly.GetName().Version!.ToString(2)}###QuestionableGatheringPathEditor", ImGuiWindowFlags.NoFocusOnAppearing | ImGuiWindowFlags.NoNavFocus | ImGuiWindowFlags.AlwaysAutoResize) { _plugin = plugin; @@ -48,6 +49,20 @@ internal sealed class EditorWindow : Window MinimumSize = new Vector2(300, 100), }; + TitleBarButtons.Add(new TitleBarButton + { + Icon = FontAwesomeIcon.Cog, + IconOffset = new Vector2(1.5f, 1), + Click = _ => configWindow.IsOpen = true, + Priority = int.MinValue, + ShowTooltip = () => + { + ImGui.BeginTooltip(); + ImGui.Text("Open Configuration"); + ImGui.EndTooltip(); + } + }); + RespectCloseHotkey = false; ShowCloseButton = false; AllowPinning = false; diff --git a/GatheringPaths/7.x - Dawntrail/Shaaloani/1002_Yawtanane Grasslands_BTN.json b/GatheringPaths/7.x - Dawntrail/Shaaloani/1002_Yawtanane Grasslands_BTN.json new file mode 100644 index 000000000..44d84892c --- /dev/null +++ b/GatheringPaths/7.x - Dawntrail/Shaaloani/1002_Yawtanane Grasslands_BTN.json @@ -0,0 +1,138 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/GatheringPaths/gatheringlocation-v1.json", + "Author": "liza", + "Steps": [ + { + "TerritoryId": 1190, + "InteractionType": "None" + } + ], + "Groups": [ + { + "Nodes": [ + { + "DataId": 34920, + "Locations": [ + { + "Position": { + "X": 192.6021, + "Y": 12.31054, + "Z": 631.2545 + } + }, + { + "Position": { + "X": 194.8373, + "Y": 12.50387, + "Z": 646.5401 + } + }, + { + "Position": { + "X": 180.8447, + "Y": 12.43262, + "Z": 610.7131 + } + } + ] + }, + { + "DataId": 34919, + "Locations": [ + { + "Position": { + "X": 186.171, + "Y": 12.54104, + "Z": 634.9042 + } + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 34917, + "Locations": [ + { + "Position": { + "X": 39.45634, + "Y": -0.06042051, + "Z": 502.3853 + } + } + ] + }, + { + "DataId": 34918, + "Locations": [ + { + "Position": { + "X": 46.03248, + "Y": -0.7049216, + "Z": 491.6059 + } + }, + { + "Position": { + "X": 36.15481, + "Y": -0.0501074, + "Z": 505.9388 + } + }, + { + "Position": { + "X": 24.72226, + "Y": 0.5922582, + "Z": 528.0809 + } + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 34922, + "Locations": [ + { + "Position": { + "X": 2.302937, + "Y": -4.586716, + "Z": 687.4797 + } + }, + { + "Position": { + "X": 30.02284, + "Y": -2.447479, + "Z": 704.4326 + } + }, + { + "Position": { + "X": 41.59287, + "Y": -0.8454803, + "Z": 692.0099 + } + } + ] + }, + { + "DataId": 34921, + "Locations": [ + { + "Position": { + "X": 18.47237, + "Y": -2.987581, + "Z": 690.8011 + } + } + ] + } + ] + } + ] +} \ No newline at end of file -- 2.45.2 From 4dc89d8ed34fb98bdc058a1cc3301fb1b70f9fc4 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Thu, 9 Jan 2025 19:48:27 +0100 Subject: [PATCH 430/448] GatheringPathRenderer: minor updates --- GatheringPathRenderer/RendererPlugin.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/GatheringPathRenderer/RendererPlugin.cs b/GatheringPathRenderer/RendererPlugin.cs index 02e01bb70..93c666a8c 100644 --- a/GatheringPathRenderer/RendererPlugin.cs +++ b/GatheringPathRenderer/RendererPlugin.cs @@ -114,7 +114,7 @@ public sealed class RendererPlugin : IDalamudPlugin try { #if DEBUG - foreach (var expansionFolder in ExpansionData.ExpansionFolders.Values) + foreach (var expansionFolder in Questionable.Model.ExpansionData.ExpansionFolders.Values) LoadFromDirectory( new DirectoryInfo(Path.Combine(PathsDirectory.FullName, expansionFolder))); _pluginLog.Information( -- 2.45.2 From 9c5fd2d3feb739e0acc2ce9c545c83ab12750367 Mon Sep 17 00:00:00 2001 From: Stefan Belmont Date: Thu, 9 Jan 2025 20:50:18 +0000 Subject: [PATCH 431/448] +1986 --- .../Azys Lla/1986_Defense Protocols.json | 55 +++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 QuestPaths/3.x - Heavensward/Side Quests/Azys Lla/1986_Defense Protocols.json diff --git a/QuestPaths/3.x - Heavensward/Side Quests/Azys Lla/1986_Defense Protocols.json b/QuestPaths/3.x - Heavensward/Side Quests/Azys Lla/1986_Defense Protocols.json new file mode 100644 index 000000000..ce12a0943 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Side Quests/Azys Lla/1986_Defense Protocols.json @@ -0,0 +1,55 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "goatzone", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1012292, + "Position": { + "X": 583.9779, + "Y": 10.93506, + "Z": 100.02283 + }, + "TerritoryId": 402, + "InteractionType": "AcceptQuest", + "Fly": true + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": 773.4017, + "Y": -0.06258035, + "Z": 147.04689 + }, + "TerritoryId": 402, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "KillEnemyDataIds": [4669, 4970, 4671, 4672, 4673], + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1012292, + "Position": { + "X": 583.9779, + "Y": 10.93506, + "Z": 100.02283 + }, + "TerritoryId": 402, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} -- 2.45.2 From 880082da0e464665173eb8f4c0addb9866580891 Mon Sep 17 00:00:00 2001 From: Stefan Belmont Date: Fri, 10 Jan 2025 13:35:19 +0000 Subject: [PATCH 432/448] +1987 --- .../Side Quests/Azys Lla/1987_Snikt.json | 60 +++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 QuestPaths/3.x - Heavensward/Side Quests/Azys Lla/1987_Snikt.json diff --git a/QuestPaths/3.x - Heavensward/Side Quests/Azys Lla/1987_Snikt.json b/QuestPaths/3.x - Heavensward/Side Quests/Azys Lla/1987_Snikt.json new file mode 100644 index 000000000..42a0325a2 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Side Quests/Azys Lla/1987_Snikt.json @@ -0,0 +1,60 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "goatzone", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1012293, + "Position": { + "X": 573.4187, + "Y": 13.072888, + "Z": 329.2439 + }, + "TerritoryId": 402, + "InteractionType": "AcceptQuest", + "Fly": true + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": 495.16974, + "Y": 31.67624, + "Z": 517.37463 + }, + "TerritoryId": 402, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "ComplexCombatData": [ + { + "DataId": 4083, + "MinimumKillCount": 4 + } + ], + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1012293, + "Position": { + "X": 573.4187, + "Y": 13.072888, + "Z": 329.2439 + }, + "TerritoryId": 402, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} -- 2.45.2 From 8d4b2320fb5b3bd18c7bed6ea5c6097b82de8c12 Mon Sep 17 00:00:00 2001 From: Stefan Belmont Date: Fri, 10 Jan 2025 13:58:21 +0000 Subject: [PATCH 433/448] +1988 --- .../Azys Lla/1988_A Crude Facsimile.json | 104 ++++++++++++++++++ 1 file changed, 104 insertions(+) create mode 100644 QuestPaths/3.x - Heavensward/Side Quests/Azys Lla/1988_A Crude Facsimile.json diff --git a/QuestPaths/3.x - Heavensward/Side Quests/Azys Lla/1988_A Crude Facsimile.json b/QuestPaths/3.x - Heavensward/Side Quests/Azys Lla/1988_A Crude Facsimile.json new file mode 100644 index 000000000..0b4183996 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Side Quests/Azys Lla/1988_A Crude Facsimile.json @@ -0,0 +1,104 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "goatzone", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1012294, + "Position": { + "X": 366.4148, + "Y": 20.214104, + "Z": 756.7101 + }, + "TerritoryId": 402, + "InteractionType": "AcceptQuest", + "Fly": true + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": 502.06363, + "Y": 16.87959, + "Z": 742.68134 + }, + "TerritoryId": 402, + "InteractionType": "WalkTo", + "Fly": true, + "$": "can get stuck on the spire structure when trying to land" + }, + { + "DataId": 2005900, + "Position": { + "X": 506.76733, + "Y": 16.861145, + "Z": 750.24023 + }, + "TerritoryId": 402, + "InteractionType": "Interact" + }, + { + "DataId": 2005903, + "Position": { + "X": 544.64014, + "Y": 15.945618, + "Z": 760.61633 + }, + "TerritoryId": 402, + "InteractionType": "Interact" + }, + { + "DataId": 2005899, + "Position": { + "X": 545.4031, + "Y": 20.2182, + "Z": 802.8534 + }, + "TerritoryId": 402, + "InteractionType": "Interact" + }, + { + "DataId": 2005902, + "Position": { + "X": 614.6791, + "Y": 20.2182, + "Z": 758.938 + }, + "TerritoryId": 402, + "InteractionType": "Interact" + }, + { + "DataId": 2005901, + "Position": { + "X": 605.3406, + "Y": 15.945618, + "Z": 708.06433 + }, + "TerritoryId": 402, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1012294, + "Position": { + "X": 366.4148, + "Y": 20.214104, + "Z": 756.7101 + }, + "TerritoryId": 402, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} -- 2.45.2 From 250cb44f484af417e61ce43430726a802e9b4d33 Mon Sep 17 00:00:00 2001 From: Stefan Belmont Date: Fri, 10 Jan 2025 14:30:20 +0000 Subject: [PATCH 434/448] +1989 --- .../Azys Lla/1988_A Crude Facsimile.json | 2 +- .../Side Quests/Azys Lla/1989_Recycling.json | 60 +++++++++++++++++++ 2 files changed, 61 insertions(+), 1 deletion(-) create mode 100644 QuestPaths/3.x - Heavensward/Side Quests/Azys Lla/1989_Recycling.json diff --git a/QuestPaths/3.x - Heavensward/Side Quests/Azys Lla/1988_A Crude Facsimile.json b/QuestPaths/3.x - Heavensward/Side Quests/Azys Lla/1988_A Crude Facsimile.json index 0b4183996..969da2d85 100644 --- a/QuestPaths/3.x - Heavensward/Side Quests/Azys Lla/1988_A Crude Facsimile.json +++ b/QuestPaths/3.x - Heavensward/Side Quests/Azys Lla/1988_A Crude Facsimile.json @@ -30,7 +30,7 @@ "TerritoryId": 402, "InteractionType": "WalkTo", "Fly": true, - "$": "can get stuck on the spire structure when trying to land" + "$": "can get stuck on the spire structure when trying to land. could land elsewhere but we want to start with this one because it's the first on foot, so if done before flying unlocked that would necessitate walking directly past it." }, { "DataId": 2005900, diff --git a/QuestPaths/3.x - Heavensward/Side Quests/Azys Lla/1989_Recycling.json b/QuestPaths/3.x - Heavensward/Side Quests/Azys Lla/1989_Recycling.json new file mode 100644 index 000000000..1541b26df --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Side Quests/Azys Lla/1989_Recycling.json @@ -0,0 +1,60 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "goatzone", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1012295, + "Position": { + "X": 214.64856, + "Y": 13.75853, + "Z": 536.9801 + }, + "TerritoryId": 402, + "InteractionType": "AcceptQuest", + "Fly": true + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": 144.31177, + "Y": 5.9740877, + "Z": 387.8086 + }, + "TerritoryId": 402, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "ComplexCombatData": [ + { + "DataId": 4630, + "MinimumKillCount": 3 + } + ], + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1012295, + "Position": { + "X": 214.64856, + "Y": 13.75853, + "Z": 536.9801 + }, + "TerritoryId": 402, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} -- 2.45.2 From 7fe5acbaca396c0a4a8763b5a3e616d0b822e42a Mon Sep 17 00:00:00 2001 From: Stefan Belmont Date: Fri, 10 Jan 2025 15:07:11 +0000 Subject: [PATCH 435/448] +1990 --- .../1990_Inadequate Safety Measures.json | 85 +++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 QuestPaths/3.x - Heavensward/Side Quests/Azys Lla/1990_Inadequate Safety Measures.json diff --git a/QuestPaths/3.x - Heavensward/Side Quests/Azys Lla/1990_Inadequate Safety Measures.json b/QuestPaths/3.x - Heavensward/Side Quests/Azys Lla/1990_Inadequate Safety Measures.json new file mode 100644 index 000000000..e9a8aff84 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Side Quests/Azys Lla/1990_Inadequate Safety Measures.json @@ -0,0 +1,85 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "goatzone", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1012296, + "Position": { + "X": -658.32, + "Y": -75.48534, + "Z": 699.1531 + }, + "TerritoryId": 402, + "InteractionType": "AcceptQuest", + "Fly": true + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": -345.30673, + "Y": -89.61499, + "Z": 353.53 + }, + "TerritoryId": 402, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "ComplexCombatData": [ + { + "DataId": 4075, + "MinimumKillCount": 3 + } + ], + "CompletionQuestVariablesFlags": [ + { "Low": 3 }, + null, + null, + null, + null, + null + ], + "Fly": true + }, + { + "Position": { + "X": -553.4664, + "Y": -104.895905, + "Z": 175.68343 + }, + "TerritoryId": 402, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "ComplexCombatData": [ + { + "DataId": 4668, + "MinimumKillCount": 3 + } + ], + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1012296, + "Position": { + "X": -658.32, + "Y": -75.48534, + "Z": 699.1531 + }, + "TerritoryId": 402, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} -- 2.45.2 From ec813ce9f4ece949500d866e19d359864f2ed559 Mon Sep 17 00:00:00 2001 From: Stefan Belmont Date: Fri, 10 Jan 2025 15:20:27 +0000 Subject: [PATCH 436/448] +1991 --- .../1991_Environmental Unbalance.json | 60 +++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 QuestPaths/3.x - Heavensward/Side Quests/Azys Lla/1991_Environmental Unbalance.json diff --git a/QuestPaths/3.x - Heavensward/Side Quests/Azys Lla/1991_Environmental Unbalance.json b/QuestPaths/3.x - Heavensward/Side Quests/Azys Lla/1991_Environmental Unbalance.json new file mode 100644 index 000000000..701a787c8 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Side Quests/Azys Lla/1991_Environmental Unbalance.json @@ -0,0 +1,60 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "goatzone", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1012297, + "Position": { + "X": -554.95544, + "Y": -89.69182, + "Z": 771.87756 + }, + "TerritoryId": 402, + "InteractionType": "AcceptQuest", + "Fly": true + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": -679.16223, + "Y": -48.151093, + "Z": 542.7097 + }, + "TerritoryId": 402, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "ComplexCombatData": [ + { + "DataId": 4095, + "MinimumKillCount": 4 + } + ], + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1012297, + "Position": { + "X": -554.95544, + "Y": -89.69182, + "Z": 771.87756 + }, + "TerritoryId": 402, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} -- 2.45.2 From 93e6b6ec02dff2bcd26c4aa2b18c73d6b0bcaff2 Mon Sep 17 00:00:00 2001 From: Stefan Belmont Date: Fri, 10 Jan 2025 15:42:38 +0000 Subject: [PATCH 437/448] +1992 --- .../1992_Elevated Aggression Levels.json | 94 +++++++++++++++++++ 1 file changed, 94 insertions(+) create mode 100644 QuestPaths/3.x - Heavensward/Side Quests/Azys Lla/1992_Elevated Aggression Levels.json diff --git a/QuestPaths/3.x - Heavensward/Side Quests/Azys Lla/1992_Elevated Aggression Levels.json b/QuestPaths/3.x - Heavensward/Side Quests/Azys Lla/1992_Elevated Aggression Levels.json new file mode 100644 index 000000000..e3a7106c5 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Side Quests/Azys Lla/1992_Elevated Aggression Levels.json @@ -0,0 +1,94 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "goatzone", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1012298, + "Position": { + "X": -192.67572, + "Y": -102.749916, + "Z": 476.9817 + }, + "TerritoryId": 402, + "InteractionType": "AcceptQuest", + "Fly": true + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": -375.98807, + "Y": -106.10026, + "Z": 710.48956 + }, + "TerritoryId": 402, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "ComplexCombatData": [ + { + "DataId": 4493, + "MinimumKillCount": 1 + } + ], + "CompletionQuestVariablesFlags": [null, null, null, null, null, 128], + "Fly": true + }, + { + "Position": { + "X": -372.88766, + "Y": -105.78837, + "Z": 746.95245 + }, + "TerritoryId": 402, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "ComplexCombatData": [ + { + "DataId": 4493, + "MinimumKillCount": 1 + } + ], + "CompletionQuestVariablesFlags": [null, null, null, null, null, 64] + }, + { + "Position": { + "X": -321.94852, + "Y": -106.57244, + "Z": 716.5662 + }, + "TerritoryId": 402, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "ComplexCombatData": [ + { + "DataId": 4493, + "MinimumKillCount": 1 + } + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1012298, + "Position": { + "X": -192.67572, + "Y": -102.749916, + "Z": 476.9817 + }, + "TerritoryId": 402, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} -- 2.45.2 From 8200342f2fcfde6022090595acd2d2b23cda8ae6 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Fri, 10 Jan 2025 17:01:37 +0100 Subject: [PATCH 438/448] Update icon for journal --- .../Windows/QuestComponents/QuickAccessButtonsComponent.cs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Questionable/Windows/QuestComponents/QuickAccessButtonsComponent.cs b/Questionable/Windows/QuestComponents/QuickAccessButtonsComponent.cs index 6093686a8..0239d09b1 100644 --- a/Questionable/Windows/QuestComponents/QuickAccessButtonsComponent.cs +++ b/Questionable/Windows/QuestComponents/QuickAccessButtonsComponent.cs @@ -91,8 +91,10 @@ internal sealed class QuickAccessButtonsComponent Reload?.Invoke(this, EventArgs.Empty); ImGui.SameLine(); - if (ImGuiComponents.IconButton(FontAwesomeIcon.ChartColumn)) + if (ImGuiComponents.IconButton(FontAwesomeIcon.BookBookmark)) _journalProgressWindow.IsOpen = true; + if (ImGui.IsItemHovered()) + ImGui.SetTooltip("Journal Progress"); if (_questRegistry.ValidationIssueCount > 0) -- 2.45.2 From 108d103fd872805dd81f2526716a45d5c7cd78a2 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sat, 11 Jan 2025 16:54:55 +0100 Subject: [PATCH 439/448] Add some extra flight steps to avoid vnav issues; fix bad NextQuestId --- .../1762_The Secret to Success.json | 5 ++-- .../1765_Intermediate Dragonslaying.json | 8 ++++--- .../1766_Advanced Dragonslaying.json | 12 ++++++---- .../1890_Personal Effects.json | 23 ++++++++++++++++--- .../1892_A Missing Tooth.json | 4 ++-- .../1893_A Noble Purpose.json | 5 ++-- .../Side Quests/Ishgard/1873_Enlisted.json | 17 +++++++++++++- 7 files changed, 57 insertions(+), 17 deletions(-) diff --git a/QuestPaths/3.x - Heavensward/Side Quests/Coerthas Western Highlands/1762_The Secret to Success.json b/QuestPaths/3.x - Heavensward/Side Quests/Coerthas Western Highlands/1762_The Secret to Success.json index 1c16e3f1b..449db054c 100644 --- a/QuestPaths/3.x - Heavensward/Side Quests/Coerthas Western Highlands/1762_The Secret to Success.json +++ b/QuestPaths/3.x - Heavensward/Side Quests/Coerthas Western Highlands/1762_The Secret to Success.json @@ -117,9 +117,10 @@ "Z": 4.5318604 }, "TerritoryId": 397, - "InteractionType": "CompleteQuest" + "InteractionType": "CompleteQuest", + "NextQuestId": 1764 } ] } ] -} \ No newline at end of file +} diff --git a/QuestPaths/3.x - Heavensward/Side Quests/Coerthas Western Highlands/1765_Intermediate Dragonslaying.json b/QuestPaths/3.x - Heavensward/Side Quests/Coerthas Western Highlands/1765_Intermediate Dragonslaying.json index ae7e2afef..4bea24395 100644 --- a/QuestPaths/3.x - Heavensward/Side Quests/Coerthas Western Highlands/1765_Intermediate Dragonslaying.json +++ b/QuestPaths/3.x - Heavensward/Side Quests/Coerthas Western Highlands/1765_Intermediate Dragonslaying.json @@ -28,7 +28,8 @@ "Z": -244.1596 }, "TerritoryId": 397, - "InteractionType": "Interact" + "InteractionType": "Interact", + "Fly": true } ] }, @@ -89,9 +90,10 @@ }, "TerritoryId": 397, "InteractionType": "CompleteQuest", - "NextQuestId": 1766 + "NextQuestId": 1766, + "Fly": true } ] } ] -} \ No newline at end of file +} diff --git a/QuestPaths/3.x - Heavensward/Side Quests/Coerthas Western Highlands/1766_Advanced Dragonslaying.json b/QuestPaths/3.x - Heavensward/Side Quests/Coerthas Western Highlands/1766_Advanced Dragonslaying.json index 4f9d54e23..aadaebf07 100644 --- a/QuestPaths/3.x - Heavensward/Side Quests/Coerthas Western Highlands/1766_Advanced Dragonslaying.json +++ b/QuestPaths/3.x - Heavensward/Side Quests/Coerthas Western Highlands/1766_Advanced Dragonslaying.json @@ -28,7 +28,8 @@ "Z": -244.1596 }, "TerritoryId": 397, - "InteractionType": "Interact" + "InteractionType": "Interact", + "Fly": true } ] }, @@ -58,12 +59,14 @@ "Y": 100.08534, "Z": -603.926 }, + "StopDistance": 0.5, "TerritoryId": 397, "InteractionType": "Combat", "KillEnemyDataIds": [ 4468 ], - "EnemySpawnType": "AutoOnEnterArea" + "EnemySpawnType": "AutoOnEnterArea", + "Fly": true } ] }, @@ -78,7 +81,8 @@ "Z": -503.7156 }, "TerritoryId": 397, - "InteractionType": "Interact" + "InteractionType": "Interact", + "Fly": true } ] }, @@ -100,4 +104,4 @@ ] } ] -} \ No newline at end of file +} diff --git a/QuestPaths/3.x - Heavensward/Side Quests/Coerthas Western Highlands/1890_Personal Effects.json b/QuestPaths/3.x - Heavensward/Side Quests/Coerthas Western Highlands/1890_Personal Effects.json index bddb06053..683419858 100644 --- a/QuestPaths/3.x - Heavensward/Side Quests/Coerthas Western Highlands/1890_Personal Effects.json +++ b/QuestPaths/3.x - Heavensward/Side Quests/Coerthas Western Highlands/1890_Personal Effects.json @@ -34,7 +34,8 @@ "DataId": 3992, "MinimumKillCount": 5 } - ] + ], + "Fly": true } ] }, @@ -50,13 +51,29 @@ "Z": 791.37854 }, "TerritoryId": 397, - "InteractionType": "Interact" + "InteractionType": "Interact", + "AetheryteShortcut": "Coerthas Western Highlands - Falcon's Nest" } ] }, { "Sequence": 255, "Steps": [ + { + "Position": { + "X": -110.26132, + "Y": 153.61101, + "Z": 10.394781 + }, + "TerritoryId": 397, + "InteractionType": "WalkTo", + "Fly": true, + "SkipConditions": { + "StepIf": { + "Flying": "Locked" + } + } + }, { "Fly": true, "DataId": 1014146, @@ -72,4 +89,4 @@ ] } ] -} \ No newline at end of file +} diff --git a/QuestPaths/3.x - Heavensward/Side Quests/Coerthas Western Highlands/1892_A Missing Tooth.json b/QuestPaths/3.x - Heavensward/Side Quests/Coerthas Western Highlands/1892_A Missing Tooth.json index 657fd96f8..d0ee8c1ca 100644 --- a/QuestPaths/3.x - Heavensward/Side Quests/Coerthas Western Highlands/1892_A Missing Tooth.json +++ b/QuestPaths/3.x - Heavensward/Side Quests/Coerthas Western Highlands/1892_A Missing Tooth.json @@ -75,9 +75,9 @@ }, "TerritoryId": 397, "InteractionType": "CompleteQuest", - "NextQuestId": 1983 + "NextQuestId": 1893 } ] } ] -} \ No newline at end of file +} diff --git a/QuestPaths/3.x - Heavensward/Side Quests/Coerthas Western Highlands/1893_A Noble Purpose.json b/QuestPaths/3.x - Heavensward/Side Quests/Coerthas Western Highlands/1893_A Noble Purpose.json index 7a5a5c64e..c5a003fc7 100644 --- a/QuestPaths/3.x - Heavensward/Side Quests/Coerthas Western Highlands/1893_A Noble Purpose.json +++ b/QuestPaths/3.x - Heavensward/Side Quests/Coerthas Western Highlands/1893_A Noble Purpose.json @@ -104,9 +104,10 @@ "Z": 3.829956 }, "TerritoryId": 397, - "InteractionType": "CompleteQuest" + "InteractionType": "CompleteQuest", + "NextQuestId": 1898 } ] } ] -} \ No newline at end of file +} diff --git a/QuestPaths/3.x - Heavensward/Side Quests/Ishgard/1873_Enlisted.json b/QuestPaths/3.x - Heavensward/Side Quests/Ishgard/1873_Enlisted.json index ef0a9cbde..c603466de 100644 --- a/QuestPaths/3.x - Heavensward/Side Quests/Ishgard/1873_Enlisted.json +++ b/QuestPaths/3.x - Heavensward/Side Quests/Ishgard/1873_Enlisted.json @@ -36,6 +36,21 @@ { "Sequence": 255, "Steps": [ + { + "Position": { + "X": -110.26132, + "Y": 153.61101, + "Z": 10.394781 + }, + "TerritoryId": 397, + "InteractionType": "WalkTo", + "Fly": true, + "SkipConditions": { + "StepIf": { + "Flying": "Locked" + } + } + }, { "DataId": 1014719, "Position": { @@ -50,4 +65,4 @@ ] } ] -} \ No newline at end of file +} -- 2.45.2 From ad76ccf05798cb6d6a3771e42aeb34103b23d614 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sat, 11 Jan 2025 17:00:04 +0100 Subject: [PATCH 440/448] =?UTF-8?q?Make=20'CompleteQuest'=20work=20with=20?= =?UTF-8?q?ItemId=20=E2=86=92=20UseItem?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Questionable/Controller/Steps/Interactions/UseItem.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Questionable/Controller/Steps/Interactions/UseItem.cs b/Questionable/Controller/Steps/Interactions/UseItem.cs index 118c204aa..bf779a024 100644 --- a/Questionable/Controller/Steps/Interactions/UseItem.cs +++ b/Questionable/Controller/Steps/Interactions/UseItem.cs @@ -29,7 +29,7 @@ internal static class UseItem { public IEnumerable CreateAllTasks(Quest quest, QuestSequence sequence, QuestStep step) { - if (step.InteractionType is EInteractionType.SinglePlayerDuty) + if (step.InteractionType is EInteractionType.SinglePlayerDuty or EInteractionType.CompleteQuest) { if (step.ItemId == null) return []; -- 2.45.2 From 97cbeada2a45e76b59fd4b7e770ffedc2c39b366 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sun, 12 Jan 2025 02:13:23 +0100 Subject: [PATCH 441/448] Minor Azys Lla adjustments --- .../Azys Lla/1988_A Crude Facsimile.json | 256 +++++++++++------- .../1992_Elevated Aggression Levels.json | 206 +++++++------- 2 files changed, 268 insertions(+), 194 deletions(-) diff --git a/QuestPaths/3.x - Heavensward/Side Quests/Azys Lla/1988_A Crude Facsimile.json b/QuestPaths/3.x - Heavensward/Side Quests/Azys Lla/1988_A Crude Facsimile.json index 969da2d85..18eef643f 100644 --- a/QuestPaths/3.x - Heavensward/Side Quests/Azys Lla/1988_A Crude Facsimile.json +++ b/QuestPaths/3.x - Heavensward/Side Quests/Azys Lla/1988_A Crude Facsimile.json @@ -1,104 +1,156 @@ { - "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "goatzone", - "QuestSequence": [ - { - "Sequence": 0, - "Steps": [ - { - "DataId": 1012294, - "Position": { - "X": 366.4148, - "Y": 20.214104, - "Z": 756.7101 - }, - "TerritoryId": 402, - "InteractionType": "AcceptQuest", - "Fly": true - } - ] - }, - { - "Sequence": 1, - "Steps": [ - { - "Position": { - "X": 502.06363, - "Y": 16.87959, - "Z": 742.68134 - }, - "TerritoryId": 402, - "InteractionType": "WalkTo", - "Fly": true, - "$": "can get stuck on the spire structure when trying to land. could land elsewhere but we want to start with this one because it's the first on foot, so if done before flying unlocked that would necessitate walking directly past it." - }, - { - "DataId": 2005900, - "Position": { - "X": 506.76733, - "Y": 16.861145, - "Z": 750.24023 - }, - "TerritoryId": 402, - "InteractionType": "Interact" - }, - { - "DataId": 2005903, - "Position": { - "X": 544.64014, - "Y": 15.945618, - "Z": 760.61633 - }, - "TerritoryId": 402, - "InteractionType": "Interact" - }, - { - "DataId": 2005899, - "Position": { - "X": 545.4031, - "Y": 20.2182, - "Z": 802.8534 - }, - "TerritoryId": 402, - "InteractionType": "Interact" - }, - { - "DataId": 2005902, - "Position": { - "X": 614.6791, - "Y": 20.2182, - "Z": 758.938 - }, - "TerritoryId": 402, - "InteractionType": "Interact" - }, - { - "DataId": 2005901, - "Position": { - "X": 605.3406, - "Y": 15.945618, - "Z": 708.06433 - }, - "TerritoryId": 402, - "InteractionType": "Interact" - } - ] - }, - { - "Sequence": 255, - "Steps": [ - { - "DataId": 1012294, - "Position": { - "X": 366.4148, - "Y": 20.214104, - "Z": 756.7101 - }, - "TerritoryId": 402, - "InteractionType": "CompleteQuest", - "Fly": true - } - ] - } - ] + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "goatzone", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1012294, + "Position": { + "X": 366.4148, + "Y": 20.214104, + "Z": 756.7101 + }, + "TerritoryId": 402, + "InteractionType": "AcceptQuest", + "Fly": true + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": 505.4667, + "Y": 16.87959, + "Z": 751.14856 + }, + "TerritoryId": 402, + "InteractionType": "WalkTo", + "Fly": true, + "$": "can get stuck on the spire structure when trying to land. could land elsewhere but we want to start with this one because it's the first on foot, so if done before flying unlocked that would necessitate walking directly past it.", + "SkipConditions": { + "StepIf": { + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + } + } + }, + { + "DataId": 2005900, + "Position": { + "X": 506.76733, + "Y": 16.861145, + "Z": 750.24023 + }, + "TerritoryId": 402, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 2005903, + "Position": { + "X": 544.64014, + "Y": 15.945618, + "Z": 760.61633 + }, + "TerritoryId": 402, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 8 + ] + }, + { + "DataId": 2005899, + "Position": { + "X": 545.4031, + "Y": 20.2182, + "Z": 802.8534 + }, + "TerritoryId": 402, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 2005902, + "Position": { + "X": 614.6791, + "Y": 20.2182, + "Z": 758.938 + }, + "TerritoryId": 402, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 16 + ] + }, + { + "DataId": 2005901, + "Position": { + "X": 605.3406, + "Y": 15.945618, + "Z": 708.06433 + }, + "TerritoryId": 402, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1012294, + "Position": { + "X": 366.4148, + "Y": 20.214104, + "Z": 756.7101 + }, + "TerritoryId": 402, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] } diff --git a/QuestPaths/3.x - Heavensward/Side Quests/Azys Lla/1992_Elevated Aggression Levels.json b/QuestPaths/3.x - Heavensward/Side Quests/Azys Lla/1992_Elevated Aggression Levels.json index e3a7106c5..b41f31b3e 100644 --- a/QuestPaths/3.x - Heavensward/Side Quests/Azys Lla/1992_Elevated Aggression Levels.json +++ b/QuestPaths/3.x - Heavensward/Side Quests/Azys Lla/1992_Elevated Aggression Levels.json @@ -1,94 +1,116 @@ { - "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "goatzone", - "QuestSequence": [ - { - "Sequence": 0, - "Steps": [ - { - "DataId": 1012298, - "Position": { - "X": -192.67572, - "Y": -102.749916, - "Z": 476.9817 - }, - "TerritoryId": 402, - "InteractionType": "AcceptQuest", - "Fly": true - } - ] - }, - { - "Sequence": 1, - "Steps": [ - { - "Position": { - "X": -375.98807, - "Y": -106.10026, - "Z": 710.48956 - }, - "TerritoryId": 402, - "InteractionType": "Combat", - "EnemySpawnType": "AutoOnEnterArea", - "ComplexCombatData": [ - { - "DataId": 4493, - "MinimumKillCount": 1 - } - ], - "CompletionQuestVariablesFlags": [null, null, null, null, null, 128], - "Fly": true - }, - { - "Position": { - "X": -372.88766, - "Y": -105.78837, - "Z": 746.95245 - }, - "TerritoryId": 402, - "InteractionType": "Combat", - "EnemySpawnType": "AutoOnEnterArea", - "ComplexCombatData": [ - { - "DataId": 4493, - "MinimumKillCount": 1 - } - ], - "CompletionQuestVariablesFlags": [null, null, null, null, null, 64] - }, - { - "Position": { - "X": -321.94852, - "Y": -106.57244, - "Z": 716.5662 - }, - "TerritoryId": 402, - "InteractionType": "Combat", - "EnemySpawnType": "AutoOnEnterArea", - "ComplexCombatData": [ - { - "DataId": 4493, - "MinimumKillCount": 1 - } - ] - } - ] - }, - { - "Sequence": 255, - "Steps": [ - { - "DataId": 1012298, - "Position": { - "X": -192.67572, - "Y": -102.749916, - "Z": 476.9817 - }, - "TerritoryId": 402, - "InteractionType": "CompleteQuest", - "Fly": true - } - ] - } - ] + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "goatzone", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1012298, + "Position": { + "X": -192.67572, + "Y": -102.749916, + "Z": 476.9817 + }, + "TerritoryId": 402, + "InteractionType": "AcceptQuest", + "Fly": true + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": -375.98807, + "Y": -106.10026, + "Z": 710.48956 + }, + "TerritoryId": 402, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "ComplexCombatData": [ + { + "DataId": 4493, + "MinimumKillCount": 1 + } + ], + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ], + "Fly": true + }, + { + "Position": { + "X": -372.88766, + "Y": -105.78837, + "Z": 746.95245 + }, + "TerritoryId": 402, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "ComplexCombatData": [ + { + "DataId": 4493, + "MinimumKillCount": 1 + } + ], + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "Position": { + "X": -321.94852, + "Y": -106.57244, + "Z": 716.5662 + }, + "TerritoryId": 402, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "ComplexCombatData": [ + { + "DataId": 4493, + "MinimumKillCount": 1 + } + ], + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1012298, + "Position": { + "X": -192.67572, + "Y": -102.749916, + "Z": 476.9817 + }, + "TerritoryId": 402, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] } -- 2.45.2 From a111a4f75b8a8bf6687da465dba5763e00a895e0 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sun, 12 Jan 2025 02:28:31 +0100 Subject: [PATCH 442/448] Optimize combat for overworld enemies --- Questionable/Controller/CombatController.cs | 88 +++++++++++++++++-- Questionable/Controller/MiniTaskController.cs | 2 +- .../Controller/Steps/Interactions/Combat.cs | 23 +++-- 3 files changed, 102 insertions(+), 11 deletions(-) diff --git a/Questionable/Controller/CombatController.cs b/Questionable/Controller/CombatController.cs index f44c4934d..73fe17dfc 100644 --- a/Questionable/Controller/CombatController.cs +++ b/Questionable/Controller/CombatController.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using System.Diagnostics.CodeAnalysis; using System.Linq; +using System.Numerics; using Dalamud.Game.ClientState.Conditions; using Dalamud.Game.ClientState.Objects; using Dalamud.Game.ClientState.Objects.Enums; @@ -10,7 +11,8 @@ using Dalamud.Plugin.Services; using FFXIVClientStructs.FFXIV.Client.Game; using FFXIVClientStructs.FFXIV.Client.Game.Object; using FFXIVClientStructs.FFXIV.Client.Game.UI; -using FFXIVClientStructs.FFXIV.Common.Math; +using FFXIVClientStructs.FFXIV.Client.System.Framework; +using FFXIVClientStructs.FFXIV.Common.Component.BGCollision; using Microsoft.Extensions.Logging; using Questionable.Controller.CombatModules; using Questionable.Controller.Steps; @@ -38,6 +40,7 @@ internal sealed class CombatController : IDisposable private CurrentFight? _currentFight; private bool _wasInCombat; private ulong? _lastTargetId; + private List? _previousQuestVariables; public CombatController( IEnumerable combatModules, @@ -79,7 +82,9 @@ internal sealed class CombatController : IDisposable Data = combatData, LastDistanceCheck = DateTime.Now, }; - _wasInCombat = combatData.SpawnType is EEnemySpawnType.QuestInterruption or EEnemySpawnType.FinishCombatIfAny; + _wasInCombat = + combatData.SpawnType is EEnemySpawnType.QuestInterruption or EEnemySpawnType.FinishCombatIfAny; + UpdateLastTargetAndQuestVariables(null); return true; } else @@ -115,7 +120,31 @@ internal sealed class CombatController : IDisposable { // wait until the game cleans up the target if (lastTarget.IsDead) - return EStatus.InCombat; + { + ElementId? elementId = _currentFight.Data.ElementId; + QuestProgressInfo? questProgressInfo = elementId != null + ? _questFunctions.GetQuestProgressInfo(elementId) + : null; + + if (questProgressInfo != null && + questProgressInfo.Sequence == _currentFight.Data.Sequence && + QuestWorkUtils.HasCompletionFlags(_currentFight.Data.CompletionQuestVariablesFlags) && + QuestWorkUtils.MatchesQuestWork(_currentFight.Data.CompletionQuestVariablesFlags, + questProgressInfo)) + { + // would be the final enemy of the bunch + return EStatus.InCombat; + } + else if (questProgressInfo != null && + questProgressInfo.Sequence == _currentFight.Data.Sequence && + _previousQuestVariables != null && + !questProgressInfo.Variables.SequenceEqual(_previousQuestVariables)) + { + UpdateLastTargetAndQuestVariables(null); + } + else + return EStatus.InCombat; + } } else _lastTargetId = null; @@ -372,9 +401,18 @@ internal sealed class CombatController : IDisposable float hitboxOffset = player.HitboxRadius + gameObject.HitboxRadius; float actualDistance = Vector3.Distance(player.Position, gameObject.Position); float maxDistance = player.ClassJob.ValueNullable?.Role is 3 or 4 ? 20f : 2.9f; - if (actualDistance - hitboxOffset >= maxDistance) + bool outOfRange = actualDistance - hitboxOffset >= maxDistance; + bool isInLineOfSight = IsInLineOfSight(gameObject); + if (outOfRange || !isInLineOfSight) { - if (actualDistance - hitboxOffset <= 5) + bool useNavmesh = actualDistance - hitboxOffset > 5f; + if (!outOfRange && !isInLineOfSight) + { + maxDistance = Math.Min(maxDistance, actualDistance) / 2; + useNavmesh = true; + } + + if (!useNavmesh) { _logger.LogInformation("Moving to {TargetName} ({DataId}) to attack", gameObject.Name, gameObject.DataId); @@ -391,6 +429,44 @@ internal sealed class CombatController : IDisposable } } + internal unsafe bool IsInLineOfSight(IGameObject target) + { + Vector3 sourcePos = _clientState.LocalPlayer!.Position; + sourcePos.Y += 2; + + Vector3 targetPos = target.Position; + targetPos.Y += 2; + + Vector3 direction = targetPos - sourcePos; + float distance = direction.Length(); + + direction = Vector3.Normalize(direction); + + Vector3 originVect = new Vector3(sourcePos.X, sourcePos.Y, sourcePos.Z); + Vector3 directionVect = new Vector3(direction.X, direction.Y, direction.Z); + + RaycastHit hit; + var flags = stackalloc int[] { 0x4000, 0, 0x4000, 0 }; + var isLoSBlocked = + Framework.Instance()->BGCollisionModule->RaycastMaterialFilter(&hit, &originVect, &directionVect, distance, + 1, flags); + + return isLoSBlocked == false; + } + + private void UpdateLastTargetAndQuestVariables(IGameObject? target) + { + _lastTargetId = target?.GameObjectId; + _previousQuestVariables = _currentFight!.Data.ElementId != null + ? _questFunctions.GetQuestProgressInfo(_currentFight.Data.ElementId)?.Variables + : null; + /* + _logger.LogTrace("UpdateTargetData: {TargetId}; {QuestVariables}", + target?.GameObjectId.ToString("X8", CultureInfo.InvariantCulture) ?? "null", + _previousQuestVariables != null ? string.Join(", ", _previousQuestVariables) : "null"); + */ + } + public void Stop(string label) { using var scope = _logger.BeginScope(label); @@ -422,6 +498,8 @@ internal sealed class CombatController : IDisposable public sealed class CombatData { public required ElementId? ElementId { get; init; } + public required int Sequence { get; init; } + public required IList CompletionQuestVariablesFlags { get; init; } public required EEnemySpawnType SpawnType { get; init; } public required List KillEnemyDataIds { get; init; } public required List ComplexCombatDatas { get; init; } diff --git a/Questionable/Controller/MiniTaskController.cs b/Questionable/Controller/MiniTaskController.cs index 06e5d874d..6055a68c6 100644 --- a/Questionable/Controller/MiniTaskController.cs +++ b/Questionable/Controller/MiniTaskController.cs @@ -173,7 +173,7 @@ internal abstract class MiniTaskController if (_condition[ConditionFlag.Mounted]) tasks.Add(new Mount.UnmountTask()); - tasks.Add(Combat.Factory.CreateTask(null, false, EEnemySpawnType.QuestInterruption, [], [], [], null)); + tasks.Add(Combat.Factory.CreateTask(null, -1, false, EEnemySpawnType.QuestInterruption, [], [], [], null)); tasks.Add(new WaitAtEnd.WaitDelay()); _taskQueue.InterruptWith(tasks); } diff --git a/Questionable/Controller/Steps/Interactions/Combat.cs b/Questionable/Controller/Steps/Interactions/Combat.cs index a4d9594d0..463c32cec 100644 --- a/Questionable/Controller/Steps/Interactions/Combat.cs +++ b/Questionable/Controller/Steps/Interactions/Combat.cs @@ -102,17 +102,30 @@ internal static class Combat ArgumentNullException.ThrowIfNull(step.EnemySpawnType); bool isLastStep = sequence.Steps.Last() == step; - return CreateTask(quest.Id, isLastStep, step.EnemySpawnType.Value, step.KillEnemyDataIds, - step.CompletionQuestVariablesFlags, step.ComplexCombatData, step.CombatItemUse); + return CreateTask(quest.Id, + sequence.Sequence, + isLastStep, + step.EnemySpawnType.Value, + step.KillEnemyDataIds, + step.CompletionQuestVariablesFlags, + step.ComplexCombatData, + step.CombatItemUse); } - internal static Task CreateTask(ElementId? elementId, bool isLastStep, EEnemySpawnType enemySpawnType, - IList killEnemyDataIds, IList completionQuestVariablesFlags, - IList complexCombatData, CombatItemUse? combatItemUse) + internal static Task CreateTask(ElementId? elementId, + int sequence, + bool isLastStep, + EEnemySpawnType enemySpawnType, + IList killEnemyDataIds, + IList completionQuestVariablesFlags, + IList complexCombatData, + CombatItemUse? combatItemUse) { return new Task(new CombatController.CombatData { ElementId = elementId, + Sequence = sequence, + CompletionQuestVariablesFlags = completionQuestVariablesFlags, SpawnType = enemySpawnType, KillEnemyDataIds = killEnemyDataIds.ToList(), ComplexCombatDatas = complexCombatData.ToList(), -- 2.45.2 From 2ffedfa72c8802421f32eae23d72944ce34abd5a Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sun, 12 Jan 2025 02:36:17 +0100 Subject: [PATCH 443/448] Specify loop count for AD --- Questionable/External/AutoDutyIpc.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Questionable/External/AutoDutyIpc.cs b/Questionable/External/AutoDutyIpc.cs index 71bae7fd1..9d0490629 100644 --- a/Questionable/External/AutoDutyIpc.cs +++ b/Questionable/External/AutoDutyIpc.cs @@ -67,7 +67,7 @@ internal sealed class AutoDutyIpc try { - _run.InvokeAction(cfcData.TerritoryId, 0, true); + _run.InvokeAction(cfcData.TerritoryId, 1, true); } catch (IpcError e) { -- 2.45.2 From 76e8ac499573dc733f30e1d7a3d339d1bacb4565 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sun, 12 Jan 2025 02:40:09 +0100 Subject: [PATCH 444/448] Set minimum StopDistance to navmesh step size (0.25) --- .../Black Shroud/Gridania/970_Some Seedy Business.json | 2 +- QuestPaths/quest-v1.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/QuestPaths/2.x - A Realm Reborn/Side Quests/Black Shroud/Gridania/970_Some Seedy Business.json b/QuestPaths/2.x - A Realm Reborn/Side Quests/Black Shroud/Gridania/970_Some Seedy Business.json index 845367804..b5038e3b0 100644 --- a/QuestPaths/2.x - A Realm Reborn/Side Quests/Black Shroud/Gridania/970_Some Seedy Business.json +++ b/QuestPaths/2.x - A Realm Reborn/Side Quests/Black Shroud/Gridania/970_Some Seedy Business.json @@ -57,7 +57,7 @@ }, "TerritoryId": 152, "InteractionType": "Interact", - "StopDistance": 0.1, + "StopDistance": 0.25, "AetheryteShortcut": "East Shroud - Hawthorne Hut", "Fly": true, "SkipConditions": { diff --git a/QuestPaths/quest-v1.json b/QuestPaths/quest-v1.json index d04fd82c5..99105c93c 100644 --- a/QuestPaths/quest-v1.json +++ b/QuestPaths/quest-v1.json @@ -80,7 +80,7 @@ "null" ], "description": "Set if pathfinding should stop closer or further away from the default stop distance", - "exclusiveMinimum": 0 + "minimum": 0.25 }, "IgnoreDistanceToObject": { "type": "boolean", -- 2.45.2 From 10b8c1ddc2c4b5ace2efd6e27bd7099dcd43d96e Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sun, 12 Jan 2025 11:35:46 +0100 Subject: [PATCH 445/448] Set minimum StopDistance to navmesh step size (0.25) --- .../Black Shroud/Gridania/970_Some Seedy Business.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/QuestPaths/2.x - A Realm Reborn/Side Quests/Black Shroud/Gridania/970_Some Seedy Business.json b/QuestPaths/2.x - A Realm Reborn/Side Quests/Black Shroud/Gridania/970_Some Seedy Business.json index b5038e3b0..03953144b 100644 --- a/QuestPaths/2.x - A Realm Reborn/Side Quests/Black Shroud/Gridania/970_Some Seedy Business.json +++ b/QuestPaths/2.x - A Realm Reborn/Side Quests/Black Shroud/Gridania/970_Some Seedy Business.json @@ -83,7 +83,7 @@ }, "TerritoryId": 152, "InteractionType": "Interact", - "StopDistance": 0.1, + "StopDistance": 0.25, "AetheryteShortcut": "East Shroud - Hawthorne Hut", "Fly": true, "SkipConditions": { @@ -109,7 +109,7 @@ }, "TerritoryId": 152, "InteractionType": "Interact", - "StopDistance": 0.1, + "StopDistance": 0.25, "AetheryteShortcut": "East Shroud - Hawthorne Hut", "Fly": true, "SkipConditions": { -- 2.45.2 From a2a36c51564120c58fe299c1a1fcebd2acb23079 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sun, 12 Jan 2025 17:59:10 +0100 Subject: [PATCH 446/448] Version bump --- Directory.Build.targets | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Directory.Build.targets b/Directory.Build.targets index 58a5fad2f..c0b49f3b3 100644 --- a/Directory.Build.targets +++ b/Directory.Build.targets @@ -1,5 +1,5 @@ - 4.13 + 4.14 -- 2.45.2 From 16b62316c59ceea19d22444a46a89fe1bac760df Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Mon, 13 Jan 2025 18:38:53 +0100 Subject: [PATCH 447/448] Leave TextAdvance active if waiting for a new quest sequence from the server --- Questionable/External/TextAdvanceIpc.cs | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/Questionable/External/TextAdvanceIpc.cs b/Questionable/External/TextAdvanceIpc.cs index dd4fa3959..f840cc18f 100644 --- a/Questionable/External/TextAdvanceIpc.cs +++ b/Questionable/External/TextAdvanceIpc.cs @@ -22,13 +22,16 @@ internal sealed class TextAdvanceIpc : IDisposable private readonly string _pluginName; private readonly ExternalTerritoryConfig _externalTerritoryConfig = new(); - public TextAdvanceIpc(IDalamudPluginInterface pluginInterface, IFramework framework, QuestController questController, Configuration configuration) + public TextAdvanceIpc(IDalamudPluginInterface pluginInterface, IFramework framework, + QuestController questController, Configuration configuration) { _framework = framework; _questController = questController; _configuration = configuration; _isInExternalControl = pluginInterface.GetIpcSubscriber("TextAdvance.IsInExternalControl"); - _enableExternalControl = pluginInterface.GetIpcSubscriber("TextAdvance.EnableExternalControl"); + _enableExternalControl = + pluginInterface.GetIpcSubscriber( + "TextAdvance.EnableExternalControl"); _disableExternalControl = pluginInterface.GetIpcSubscriber("TextAdvance.DisableExternalControl"); _pluginName = pluginInterface.InternalName; _framework.Update += OnUpdate; @@ -37,7 +40,7 @@ internal sealed class TextAdvanceIpc : IDisposable public void Dispose() { _framework.Update -= OnUpdate; - if(_isExternalControlActivated) + if (_isExternalControlActivated) { _disableExternalControl.InvokeFunc(_pluginName); } @@ -45,11 +48,13 @@ internal sealed class TextAdvanceIpc : IDisposable private void OnUpdate(IFramework framework) { - if(_configuration.General.ConfigureTextAdvance && _questController.IsRunning) + bool hasActiveQuest = _questController.IsRunning || + _questController.AutomationType != QuestController.EAutomationType.Manual; + if (_configuration.General.ConfigureTextAdvance && hasActiveQuest) { - if(!_isInExternalControl.InvokeFunc()) + if (!_isInExternalControl.InvokeFunc()) { - if(_enableExternalControl.InvokeFunc(_pluginName, _externalTerritoryConfig)) + if (_enableExternalControl.InvokeFunc(_pluginName, _externalTerritoryConfig)) { _isExternalControlActivated = true; } @@ -57,9 +62,9 @@ internal sealed class TextAdvanceIpc : IDisposable } else { - if(_isExternalControlActivated) + if (_isExternalControlActivated) { - if(_disableExternalControl.InvokeFunc(_pluginName) || !_isInExternalControl.InvokeFunc()) + if (_disableExternalControl.InvokeFunc(_pluginName) || !_isInExternalControl.InvokeFunc()) { _isExternalControlActivated = false; } -- 2.45.2 From 7734692b0fbe61f32a5ca5ec1d0b4abf5a8441c2 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Thu, 16 Jan 2025 22:55:22 +0100 Subject: [PATCH 448/448] Throw an exception if using aethernet doesn't work and the destination is in another territory --- Questionable/Controller/Steps/Shared/AethernetShortcut.cs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Questionable/Controller/Steps/Shared/AethernetShortcut.cs b/Questionable/Controller/Steps/Shared/AethernetShortcut.cs index bfb2cc3ff..e63b69c0a 100644 --- a/Questionable/Controller/Steps/Shared/AethernetShortcut.cs +++ b/Questionable/Controller/Steps/Shared/AethernetShortcut.cs @@ -179,10 +179,12 @@ internal static class AethernetShortcut } } } - else + else if (clientState.TerritoryType == aetheryteData.TerritoryIds[Task.To]) logger.LogWarning( - "Aethernet shortcut not unlocked (from: {FromAetheryte}, to: {ToAetheryte}), walking manually", + "Aethernet shortcut not unlocked (from: {FromAetheryte}, to: {ToAetheryte}), skipping as we are already in the destination territory", Task.From, Task.To); + else + throw new TaskException($"Aethernet shortcut not unlocked (from: {Task.From}, to: {Task.To})"); return false; } -- 2.45.2