From: Liza Carvelli Date: Sat, 28 Jun 2025 13:18:20 +0000 (+0200) Subject: Add Botanist 1-20 quests X-Git-Tag: v5.19~1 X-Git-Url: https://git.jacobcasper.com/?a=commitdiff_plain;h=df566456780b1e637580dd2227cb4e294927ad05;p=Questionable.git Add Botanist 1-20 quests --- diff --git a/GatheringPaths/2.x - A Realm Reborn/Central Shroud/16_Greentear_BTN.json b/GatheringPaths/2.x - A Realm Reborn/Central Shroud/16_Greentear_BTN.json new file mode 100644 index 00000000..1f37b704 --- /dev/null +++ b/GatheringPaths/2.x - A Realm Reborn/Central Shroud/16_Greentear_BTN.json @@ -0,0 +1,168 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/GatheringPaths/gatheringlocation-v1.json", + "Author": "liza", + "Steps": [ + { + "TerritoryId": 148, + "InteractionType": "None", + "AetheryteShortcut": "Central Shroud - Bentbranch Meadows", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ], + "Groups": [ + { + "Nodes": [ + { + "DataId": 30028, + "Locations": [ + { + "Position": { + "X": 225.8048, + "Y": -5.26357, + "Z": -71.51706 + }, + "MinimumAngle": -60, + "MaximumAngle": 105 + }, + { + "Position": { + "X": 229.0866, + "Y": -7.037199, + "Z": -62.40871 + }, + "MinimumAngle": 0, + "MaximumAngle": 175 + }, + { + "Position": { + "X": 210.4522, + "Y": -5.798344, + "Z": -69.99769 + }, + "MinimumAngle": 180, + "MaximumAngle": 360 + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 30030, + "Locations": [ + { + "Position": { + "X": 205.3417, + "Y": -7.402449, + "Z": -46.44062 + }, + "MinimumAngle": 70, + "MaximumAngle": 320 + }, + { + "Position": { + "X": 204.9178, + "Y": -8.416177, + "Z": -24.97287 + }, + "MinimumAngle": 50, + "MaximumAngle": 260 + }, + { + "Position": { + "X": 196.8121, + "Y": -7.515049, + "Z": -31.74415 + }, + "MinimumAngle": 115, + "MaximumAngle": 305 + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 30027, + "Locations": [ + { + "Position": { + "X": 263.5084, + "Y": -7.83625, + "Z": -28.76189 + }, + "MinimumAngle": 220, + "MaximumAngle": 360 + }, + { + "Position": { + "X": 275.0262, + "Y": -6.339698, + "Z": -42.46669 + }, + "MinimumAngle": 30, + "MaximumAngle": 150, + "MinimumDistance": 1.9, + "MaximumDistance": 3 + }, + { + "Position": { + "X": 248.5661, + "Y": -8.912354, + "Z": -5.168106 + }, + "MinimumAngle": 0, + "MaximumAngle": 235 + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 30029, + "Locations": [ + { + "Position": { + "X": 278.9887, + "Y": -6.181031, + "Z": -100.3401 + }, + "MinimumAngle": 0, + "MaximumAngle": 135, + "MinimumDistance": 1.8, + "MaximumDistance": 3 + }, + { + "Position": { + "X": 281.2963, + "Y": -6.572734, + "Z": -72.80408 + }, + "MinimumAngle": -5, + "MaximumAngle": 165 + }, + { + "Position": { + "X": 282.8807, + "Y": -5.350755, + "Z": -91.96065 + }, + "MinimumAngle": -30, + "MaximumAngle": 115, + "MinimumDistance": 1.8, + "MaximumDistance": 3 + } + ] + } + ] + } + ] +} diff --git a/GatheringPaths/2.x - A Realm Reborn/Central Shroud/19_Bentbranch_BTN.json b/GatheringPaths/2.x - A Realm Reborn/Central Shroud/19_Bentbranch_BTN.json new file mode 100644 index 00000000..557df704 --- /dev/null +++ b/GatheringPaths/2.x - A Realm Reborn/Central Shroud/19_Bentbranch_BTN.json @@ -0,0 +1,156 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/GatheringPaths/gatheringlocation-v1.json", + "Author": "liza", + "Steps": [ + { + "TerritoryId": 148, + "InteractionType": "None", + "AetheryteShortcut": "Central Shroud - Bentbranch Meadows", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ], + "Groups": [ + { + "Nodes": [ + { + "DataId": 30034, + "Locations": [ + { + "Position": { + "X": -105.3941, + "Y": 2.85339, + "Z": -121.8738 + }, + "MinimumAngle": -20, + "MaximumAngle": 165 + }, + { + "Position": { + "X": -97.9409, + "Y": 3.064394, + "Z": -126.5676 + }, + "MinimumAngle": 115, + "MaximumAngle": 340 + }, + { + "Position": { + "X": -125.5794, + "Y": 5.63143, + "Z": -133.3981 + } + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 30035, + "Locations": [ + { + "Position": { + "X": -154.1009, + "Y": 4.5624, + "Z": -131.7312 + }, + "MinimumAngle": -270, + "MaximumAngle": 40 + }, + { + "Position": { + "X": -128.832, + "Y": 9.71995, + "Z": -145.739 + } + }, + { + "Position": { + "X": -117.9702, + "Y": 9.59642, + "Z": -173.7937 + }, + "MinimumAngle": -155, + "MaximumAngle": 155 + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 30036, + "Locations": [ + { + "Position": { + "X": -182.3201, + "Y": 3.129771, + "Z": -91.56992 + }, + "MinimumAngle": -190, + "MaximumAngle": 65 + }, + { + "Position": { + "X": -177.8435, + "Y": 2.23569, + "Z": -67.93159 + }, + "MinimumAngle": -160, + "MaximumAngle": 30 + }, + { + "Position": { + "X": -163.9663, + "Y": 1.91069, + "Z": -52.19678 + }, + "MinimumAngle": 135, + "MaximumAngle": 300 + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 30320, + "Locations": [ + { + "Position": { + "X": -131.0494, + "Y": 0.2034574, + "Z": -82.93172 + }, + "MinimumAngle": -155, + "MaximumAngle": 45 + }, + { + "Position": { + "X": -121.5437, + "Y": -1.821766, + "Z": -74.98891 + } + }, + { + "Position": { + "X": -114.8504, + "Y": -1.186134, + "Z": -88.04849 + }, + "MinimumAngle": -210, + "MaximumAngle": 90 + } + ] + } + ] + } + ] +} diff --git a/GatheringPaths/2.x - A Realm Reborn/North Shroud/12_Treespeak_BTN.json b/GatheringPaths/2.x - A Realm Reborn/North Shroud/12_Treespeak_BTN.json new file mode 100644 index 00000000..e860a52c --- /dev/null +++ b/GatheringPaths/2.x - A Realm Reborn/North Shroud/12_Treespeak_BTN.json @@ -0,0 +1,162 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/GatheringPaths/gatheringlocation-v1.json", + "Author": "liza", + "Steps": [ + { + "TerritoryId": 154, + "InteractionType": "None", + "AetheryteShortcut": "North Shroud - Fallgourd Float", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ], + "Groups": [ + { + "Nodes": [ + { + "DataId": 30016, + "Locations": [ + { + "Position": { + "X": 395.0683, + "Y": -4.213107, + "Z": 235.0844 + }, + "MinimumAngle": -200, + "MaximumAngle": 15 + }, + { + "Position": { + "X": 404.3488, + "Y": -2.116929, + "Z": 216.968 + }, + "MinimumAngle": -125, + "MaximumAngle": 10 + }, + { + "Position": { + "X": 388.5088, + "Y": -1.260179, + "Z": 222.3745 + }, + "MinimumAngle": -145, + "MaximumAngle": 0 + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 30018, + "Locations": [ + { + "Position": { + "X": 361.0402, + "Y": -6.135924, + "Z": 266.7503 + }, + "MinimumAngle": -155, + "MaximumAngle": 10 + }, + { + "Position": { + "X": 368.0511, + "Y": -6.085522, + "Z": 262.3561 + }, + "MinimumAngle": -135, + "MaximumAngle": 10 + }, + { + "Position": { + "X": 352.1197, + "Y": -2.546567, + "Z": 262.7847 + }, + "MinimumAngle": 250, + "MaximumAngle": 355 + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 30081, + "Locations": [ + { + "Position": { + "X": 404.6927, + "Y": -3.737513, + "Z": 283.6237 + }, + "MinimumAngle": 55, + "MaximumAngle": 255 + }, + { + "Position": { + "X": 406.1155, + "Y": -4.338434, + "Z": 271.2292 + }, + "MinimumAngle": 0, + "MaximumAngle": 190 + }, + { + "Position": { + "X": 394.464, + "Y": -3.775356, + "Z": 286.3456 + }, + "MinimumAngle": 105, + "MaximumAngle": 290 + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 30017, + "Locations": [ + { + "Position": { + "X": 443.0036, + "Y": -1.818904, + "Z": 251.6805 + }, + "MinimumAngle": 0, + "MaximumAngle": 145 + }, + { + "Position": { + "X": 459.7153, + "Y": -1.026285, + "Z": 263.6502 + }, + "MinimumAngle": 50, + "MaximumAngle": 235 + }, + { + "Position": { + "X": 468.4217, + "Y": -1.290563, + "Z": 262.4874 + }, + "MinimumAngle": 15, + "MaximumAngle": 220 + } + ] + } + ] + } + ] +} diff --git a/GatheringPaths/2.x - A Realm Reborn/North Shroud/13_Treespeak_BTN.json b/GatheringPaths/2.x - A Realm Reborn/North Shroud/13_Treespeak_BTN.json new file mode 100644 index 00000000..b2db7129 --- /dev/null +++ b/GatheringPaths/2.x - A Realm Reborn/North Shroud/13_Treespeak_BTN.json @@ -0,0 +1,164 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/GatheringPaths/gatheringlocation-v1.json", + "Author": "liza", + "Steps": [ + { + "TerritoryId": 154, + "InteractionType": "None", + "AetheryteShortcut": "North Shroud - Fallgourd Float", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ], + "Groups": [ + { + "Nodes": [ + { + "DataId": 30020, + "Locations": [ + { + "Position": { + "X": 279.9662, + "Y": -9.225774, + "Z": 318.6275 + }, + "MinimumAngle": 50, + "MaximumAngle": 240 + }, + { + "Position": { + "X": 295.7656, + "Y": -8.987611, + "Z": 311.5129 + }, + "MinimumAngle": 0, + "MaximumAngle": 190 + }, + { + "Position": { + "X": 283.9807, + "Y": -11.68445, + "Z": 310.4038 + }, + "MinimumAngle": 0, + "MaximumAngle": 250 + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 30019, + "Locations": [ + { + "Position": { + "X": 238.5998, + "Y": -22.81126, + "Z": 254.0548 + }, + "MinimumAngle": -85, + "MaximumAngle": 55 + }, + { + "Position": { + "X": 234.2172, + "Y": -22.83841, + "Z": 265.2955 + }, + "MinimumAngle": -160, + "MaximumAngle": 0 + }, + { + "Position": { + "X": 257.4443, + "Y": -20.59358, + "Z": 246.4006 + }, + "MinimumAngle": -115, + "MaximumAngle": 70 + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 30082, + "Locations": [ + { + "Position": { + "X": 221.3946, + "Y": -27.69197, + "Z": 317.5874 + }, + "MinimumAngle": 0, + "MaximumAngle": 125 + }, + { + "Position": { + "X": 209.7868, + "Y": -29.03308, + "Z": 317.4061 + }, + "MinimumAngle": 130, + "MaximumAngle": 295 + }, + { + "Position": { + "X": 216.8077, + "Y": -28.68546, + "Z": 320.5408 + }, + "MinimumAngle": 45, + "MaximumAngle": 230 + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 30021, + "Locations": [ + { + "Position": { + "X": 250.3709, + "Y": -20.9966, + "Z": 296.2364 + }, + "MinimumAngle": 105, + "MaximumAngle": 265 + }, + { + "Position": { + "X": 247.4017, + "Y": -21.53168, + "Z": 284.9166 + }, + "MinimumAngle": -40, + "MaximumAngle": 100, + "MinimumDistance": 1.3, + "MaximumDistance": 3 + }, + { + "Position": { + "X": 255.3057, + "Y": -17.90455, + "Z": 302.6251 + }, + "MinimumAngle": 145, + "MaximumAngle": 305 + } + ] + } + ] + } + ] +} diff --git a/GatheringPaths/2.x - A Realm Reborn/Western La Noscea/35_Skull Valley_BTN.json b/GatheringPaths/2.x - A Realm Reborn/Western La Noscea/35_Skull Valley_BTN.json new file mode 100644 index 00000000..71fa86e6 --- /dev/null +++ b/GatheringPaths/2.x - A Realm Reborn/Western La Noscea/35_Skull Valley_BTN.json @@ -0,0 +1,162 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/GatheringPaths/gatheringlocation-v1.json", + "Author": "liza", + "Steps": [ + { + "TerritoryId": 138, + "InteractionType": "None", + "AetheryteShortcut": "Western La Noscea - Aleport", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ], + "Groups": [ + { + "Nodes": [ + { + "DataId": 30098, + "Locations": [ + { + "Position": { + "X": 300.7484, + "Y": -15.4861, + "Z": 153.9048 + }, + "MinimumAngle": 175, + "MaximumAngle": 360 + }, + { + "Position": { + "X": 297.8418, + "Y": -20.09089, + "Z": 166.8599 + }, + "MinimumAngle": 95, + "MaximumAngle": 265 + }, + { + "Position": { + "X": 312.9494, + "Y": -14.81517, + "Z": 145.3793 + }, + "MinimumAngle": 110, + "MaximumAngle": 270 + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 30099, + "Locations": [ + { + "Position": { + "X": 317.6309, + "Y": 0.3300658, + "Z": 98.40825 + }, + "MinimumAngle": 15, + "MaximumAngle": 190 + }, + { + "Position": { + "X": 300.7116, + "Y": -9.200176, + "Z": 128.1148 + }, + "MinimumAngle": 20, + "MaximumAngle": 205 + }, + { + "Position": { + "X": 313.6669, + "Y": -5.031699, + "Z": 119.2471 + }, + "MinimumAngle": 0, + "MaximumAngle": 185 + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 30100, + "Locations": [ + { + "Position": { + "X": 222.8638, + "Y": -1.971927, + "Z": 82.03091 + }, + "MinimumAngle": -115, + "MaximumAngle": 25 + }, + { + "Position": { + "X": 274.0746, + "Y": 6.008316, + "Z": 65.73824 + }, + "MinimumAngle": -115, + "MaximumAngle": 75 + }, + { + "Position": { + "X": 252.9545, + "Y": 5.45654, + "Z": 50.69089 + }, + "MinimumAngle": 225, + "MaximumAngle": 360 + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 30101, + "Locations": [ + { + "Position": { + "X": 254.374, + "Y": -17.77545, + "Z": 174.2901 + }, + "MinimumAngle": 115, + "MaximumAngle": 265 + }, + { + "Position": { + "X": 240.5732, + "Y": -17.28173, + "Z": 176.6604 + }, + "MinimumAngle": 80, + "MaximumAngle": 255 + }, + { + "Position": { + "X": 256.3937, + "Y": -16.40165, + "Z": 164.8165 + }, + "MinimumAngle": 90, + "MaximumAngle": 295 + } + ] + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/BTN/208_My First Hatchet.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/BTN/208_My First Hatchet.json new file mode 100644 index 00000000..a7e5c740 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/BTN/208_My First Hatchet.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": [ + { + "TerritoryId": 133, + "InteractionType": "EquipItem", + "ItemId": 2545, + "AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Botanists' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 133 + ] + }, + "StepIf": { + "Item": { + "NotInInventory": true + } + } + } + }, + { + "TerritoryId": 133, + "InteractionType": "EquipRecommended" + }, + { + "DataId": 1000815, + "Position": { + "X": -233.9361, + "Y": 6.668152, + "Z": -171.03839 + }, + "TerritoryId": 133, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "TerritoryId": 154, + "InteractionType": "Gather", + "ItemsToGather": [ + { + "ItemId": 5509, + "ItemCount": 10 + } + ] + }, + { + "DataId": 1000815, + "Position": { + "X": -233.9361, + "Y": 6.668152, + "Z": -171.03839 + }, + "TerritoryId": 133, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Botanists' Guild" + ], + "NextQuestId": 4 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/BTN/3_Way of the Botanist.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/BTN/3_Way of the Botanist.json index 1a5f96dc..2f6fc39b 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/BTN/3_Way of the Botanist.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/BTN/3_Way of the Botanist.json @@ -48,7 +48,8 @@ "Prompt": "TEXT_CLSHRV001_00003_Q1_000_1", "Yes": true } - ] + ], + "NextQuestId": 208 } ] } diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/BTN/4_Sap for Smiles.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/BTN/4_Sap for Smiles.json new file mode 100644 index 00000000..f1286d06 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/BTN/4_Sap for Smiles.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": 1000815, + "Position": { + "X": -233.9361, + "Y": 6.668152, + "Z": -171.03839 + }, + "TerritoryId": 133, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Botanists' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 133 + ] + } + } + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "TerritoryId": 154, + "InteractionType": "EquipRecommended" + }, + { + "TerritoryId": 154, + "InteractionType": "Gather", + "ItemsToGather": [ + { + "ItemId": 5498, + "ItemCount": 10 + } + ] + }, + { + "DataId": 1000295, + "Position": { + "X": -234.24127, + "Y": 8.000092, + "Z": -155.169 + }, + "TerritoryId": 133, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Botanists' Guild" + ], + "NextQuestId": 6 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/BTN/5_Weapons of a Feather.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/BTN/5_Weapons of a Feather.json new file mode 100644 index 00000000..280d34a7 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/BTN/5_Weapons of a Feather.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": 1000815, + "Position": { + "X": -233.9361, + "Y": 6.668152, + "Z": -171.03839 + }, + "TerritoryId": 133, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Botanists' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 133 + ] + } + } + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "TerritoryId": 148, + "InteractionType": "EquipRecommended" + }, + { + "TerritoryId": 148, + "InteractionType": "Gather", + "ItemsToGather": [ + { + "ItemId": 5352, + "ItemCount": 10 + } + ] + }, + { + "DataId": 1000295, + "Position": { + "X": -234.24127, + "Y": 8.000092, + "Z": -155.169 + }, + "TerritoryId": 133, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Botanists' Guild" + ], + "NextQuestId": 6 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/BTN/6_Haste Makes Waste.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/BTN/6_Haste Makes Waste.json new file mode 100644 index 00000000..7253d68a --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/BTN/6_Haste Makes Waste.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": 1000815, + "Position": { + "X": -233.9361, + "Y": 6.668152, + "Z": -171.03839 + }, + "TerritoryId": 133, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Botanists' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 133 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1000239, + "Position": { + "X": 170.30591, + "Y": 15.699951, + "Z": -118.638916 + }, + "TerritoryId": 133, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Gridania] Botanists' Guild", + "[Gridania] Leatherworkers' Guild & Shaded Bower" + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "TerritoryId": 148, + "InteractionType": "EquipRecommended" + }, + { + "TerritoryId": 148, + "InteractionType": "Gather", + "ItemsToGather": [ + { + "ItemId": 4832, + "ItemCount": 10 + } + ] + }, + { + "DataId": 1000239, + "Position": { + "X": 170.30591, + "Y": 15.699951, + "Z": -118.638916 + }, + "TerritoryId": 133, + "InteractionType": "Interact", + "AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Leatherworkers' Guild & Shaded Bower" + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1000815, + "Position": { + "X": -233.9361, + "Y": 6.668152, + "Z": -171.03839 + }, + "TerritoryId": 133, + "InteractionType": "CompleteQuest", + "AethernetShortcut": [ + "[Gridania] Leatherworkers' Guild & Shaded Bower", + "[Gridania] Botanists' Guild" + ], + "NextQuestId": 7 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/BTN/7_Dressed to Harvest.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/BTN/7_Dressed to Harvest.json new file mode 100644 index 00000000..96736bdf --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/BTN/7_Dressed to Harvest.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": 1000815, + "Position": { + "X": -233.9361, + "Y": 6.668152, + "Z": -171.03839 + }, + "TerritoryId": 133, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Botanists' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 133 + ] + } + } + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "TerritoryId": 138, + "InteractionType": "EquipRecommended" + }, + { + "TerritoryId": 138, + "InteractionType": "Gather", + "ItemsToGather": [ + { + "ItemId": 5599, + "ItemCount": 15 + } + ] + }, + { + "DataId": 1000292, + "Position": { + "X": -233.99713, + "Y": 8, + "Z": -146.86816 + }, + "TerritoryId": 133, + "AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Botanists' Guild" + ], + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/Questionable.Model/Questing/EAction.cs b/Questionable.Model/Questing/EAction.cs index bc606f02..06c5e316 100644 --- a/Questionable.Model/Questing/EAction.cs +++ b/Questionable.Model/Questing/EAction.cs @@ -58,12 +58,14 @@ public enum EAction ShroudedLuminescence = 39505, BigSneeze = 1765, + Prospect = 227, CollectMiner = 240, LuckOfTheMountaineer = 4081, ScourMiner = 22182, MeticulousMiner = 22184, ScrutinyMiner = 22185, + Triangulate = 210, CollectBotanist = 815, LuckOfThePioneer = 4095, ScourBotanist = 22186, diff --git a/Questionable.Model/Questing/EStatus.cs b/Questionable.Model/Questing/EStatus.cs index 00919e18..92f40ff6 100644 --- a/Questionable.Model/Questing/EStatus.cs +++ b/Questionable.Model/Questing/EStatus.cs @@ -6,7 +6,9 @@ namespace Questionable.Model.Questing; [JsonConverter(typeof(StatusConverter))] public enum EStatus : uint { + Triangulate = 217, GatheringRateUp = 218, + Prospect = 225, Hidden = 614, Eukrasia = 2606, Jog = 4209, diff --git a/Questionable/Controller/Steps/Interactions/Action.cs b/Questionable/Controller/Steps/Interactions/Action.cs index f7f97502..6211b67a 100644 --- a/Questionable/Controller/Steps/Interactions/Action.cs +++ b/Questionable/Controller/Steps/Interactions/Action.cs @@ -192,4 +192,29 @@ internal static class Action public override bool ShouldInterruptOnDamage() => false; } + + internal sealed record TriggerStatusIfMissing(EStatus Status, EAction Action) : ITask + { + public override string ToString() => $"TriggerStatus({Status})"; + } + + internal sealed class TriggerStatusIfMissingExecutor(GameFunctions gameFunctions) + : TaskExecutor + { + protected override bool Start() + { + if (gameFunctions.HasStatus(Task.Status)) + return false; + + gameFunctions.UseAction(Task.Action); + return true; + } + + public override ETaskResult Update() + { + return gameFunctions.HasStatus(Task.Status) ? ETaskResult.TaskComplete : ETaskResult.StillRunning; + } + + public override bool ShouldInterruptOnDamage() => false; + } } diff --git a/Questionable/Controller/Steps/Shared/Gather.cs b/Questionable/Controller/Steps/Shared/Gather.cs index bc546559..0874c717 100644 --- a/Questionable/Controller/Steps/Shared/Gather.cs +++ b/Questionable/Controller/Steps/Shared/Gather.cs @@ -13,6 +13,7 @@ using Questionable.Data; using Questionable.Model; using Questionable.Model.Gathering; using Questionable.Model.Questing; +using Action = Questionable.Controller.Steps.Interactions.Action; namespace Questionable.Controller.Steps.Shared; @@ -61,6 +62,11 @@ internal static class Gather if (HasRequiredItems(Task.GatheredItem)) yield break; + if (currentClassJob == EClassJob.Miner) + yield return new Action.TriggerStatusIfMissing(EStatus.Triangulate, EAction.Prospect); + else if (currentClassJob == EClassJob.Botanist) + yield return new Action.TriggerStatusIfMissing(EStatus.Triangulate, EAction.Triangulate); + using (var _ = logger.BeginScope("Gathering(inner)")) { QuestSequence gatheringSequence = new QuestSequence diff --git a/Questionable/QuestionablePlugin.cs b/Questionable/QuestionablePlugin.cs index e54a500f..24294cd9 100644 --- a/Questionable/QuestionablePlugin.cs +++ b/Questionable/QuestionablePlugin.cs @@ -198,6 +198,7 @@ public sealed class QuestionablePlugin : IDalamudPlugin serviceCollection.AddTaskExecutor(); serviceCollection.AddTaskFactoryAndExecutor(); serviceCollection.AddTaskExecutor(); + serviceCollection.AddTaskExecutor(); serviceCollection.AddTaskFactoryAndExecutor(); serviceCollection.AddTaskFactoryAndExecutor(); serviceCollection.AddTaskFactory();