From 35537564f1179b37bc5f3c3afaed91bcfb4d96d0 Mon Sep 17 00:00:00 2001 From: cacahuetes Date: Wed, 21 Aug 2024 15:53:26 +0000 Subject: [PATCH 001/450] Making it easier to travel to east shroud without aetheryte --- .../Class Quests/WHM/91_Trial by Wind.json | 298 ++++++++++-------- 1 file changed, 158 insertions(+), 140 deletions(-) diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/WHM/91_Trial by Wind.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/WHM/91_Trial by Wind.json index 4415c7f5..cdcebb9f 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/WHM/91_Trial by Wind.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/WHM/91_Trial by Wind.json @@ -1,140 +1,158 @@ -{ - "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "Cacahuetes", - "QuestSequence": [ - { - "Sequence": 0, - "Steps": [ - { - "DataId": 1000692, - "Position": { - "X": -258.8083, - "Y": -5.7735243, - "Z": -27.267883 - }, - "TerritoryId": 133, - "AetheryteShortcut": "Gridania", - "AethernetShortcut": [ - "[Gridania] Aetheryte Plaza", - "[Gridania] Conjurers' Guild" - ], - "InteractionType": "AcceptQuest", - "SkipConditions": { - "AetheryteShortcutIf": { - "InSameTerritory": true, - "InTerritory": [ - 133 - ] - } - } - } - ] - }, - { - "Sequence": 1, - "Steps": [ - { - "DataId": 1000767, - "Position": { - "X": -483.42108, - "Y": 10.130882, - "Z": 209.46057 - }, - "TerritoryId": 152, - "InteractionType": "Interact", - "AetheryteShortcut": "East Shroud - Hawthorne Hut", - "SkipConditions": { - "AetheryteShortcutIf": { - "InSameTerritory": true - } - } - } - ] - }, - { - "Sequence": 2, - "Steps": [ - { - "DataId": 2000885, - "Position": { - "X": -510.6655, - "Y": 5.8422394, - "Z": 35.87895 - }, - "TerritoryId": 152, - "InteractionType": "Combat", - "EnemySpawnType": "AfterInteraction", - "KillEnemyDataIds": [ - 295 - ] - } - ] - }, - { - "Sequence": 3, - "Steps": [ - { - "DataId": 1000767, - "Position": { - "X": -483.42108, - "Y": 10.130882, - "Z": 209.46057 - }, - "TerritoryId": 152, - "InteractionType": "Interact" - } - ] - }, - { - "Sequence": 4, - "Steps": [ - { - "DataId": 2000887, - "Position": { - "X": -510.76526, - "Y": 6.1798096, - "Z": 35.568726 - }, - "TerritoryId": 152, - "InteractionType": "SinglePlayerDuty" - } - ] - }, - { - "Sequence": 5, - "Steps": [ - { - "DataId": 1000767, - "Position": { - "X": -483.42108, - "Y": 10.130882, - "Z": 209.46057 - }, - "TerritoryId": 152, - "InteractionType": "Interact" - } - ] - }, - { - "Sequence": 255, - "Steps": [ - { - "DataId": 1000692, - "Position": { - "X": -258.8083, - "Y": -5.7735243, - "Z": -27.267883 - }, - "TerritoryId": 133, - "InteractionType": "CompleteQuest", - "AetheryteShortcut": "Gridania", - "AethernetShortcut": [ - "[Gridania] Aetheryte Plaza", - "[Gridania] Conjurers' Guild" - ], - "NextQuestId": 92 - } - ] - } - ] -} +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Cacahuetes", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1000692, + "Position": { + "X": -258.8083, + "Y": -5.7735243, + "Z": -27.267883 + }, + "TerritoryId": 133, + "AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Conjurers' Guild" + ], + "InteractionType": "AcceptQuest", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 133 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1001263, + "Position": { + "X": 181.41443, + "Y": -2.3519497, + "Z": -240.40594 + }, + "TerritoryId": 133, + "InteractionType": "Interact", + "TargetTerritoryId": 152, + "AethernetShortcut": [ + "[Gridania] Conjurers' Guild", + "[Gridania] Lancers' Guild" + ], + "SkipConditions": { + "StepIf": {"AetheryteUnlocked": "East Shroud - Hawthorne Hut"} + } + }, + { + "DataId": 1000767, + "Position": { + "X": -483.42108, + "Y": 10.130882, + "Z": 209.46057 + }, + "TerritoryId": 152, + "InteractionType": "Interact", + "AetheryteShortcut": "East Shroud - Hawthorne Hut", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2000885, + "Position": { + "X": -510.6655, + "Y": 5.8422394, + "Z": 35.87895 + }, + "TerritoryId": 152, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 295 + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1000767, + "Position": { + "X": -483.42108, + "Y": 10.130882, + "Z": 209.46057 + }, + "TerritoryId": 152, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 2000887, + "Position": { + "X": -510.76526, + "Y": 6.1798096, + "Z": 35.568726 + }, + "TerritoryId": 152, + "InteractionType": "SinglePlayerDuty" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1000767, + "Position": { + "X": -483.42108, + "Y": 10.130882, + "Z": 209.46057 + }, + "TerritoryId": 152, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1000692, + "Position": { + "X": -258.8083, + "Y": -5.7735243, + "Z": -27.267883 + }, + "TerritoryId": 133, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Conjurers' Guild" + ], + "NextQuestId": 92 + } + ] + } + ] +} \ No newline at end of file From b49c2e898d941a74c94cd5f72d18199492746c5b Mon Sep 17 00:00:00 2001 From: cacahuetes Date: Wed, 21 Aug 2024 15:58:12 +0000 Subject: [PATCH 002/450] GLA/PLD Quests validated and updated prompts There is one quest where a prompt is immediately after the single duty instance. I couldn't validate that one because there was no way to go back to it after it happened. Quest 264_On Holy Ground --- .../PLD/261_Ul'dah's Most Wanted.json | 158 ++++++++++++++++ .../PLD/262_That Old Familiar Feeling.json | 132 +++++++++++++ .../PLD/263_The Face of Thal.json | 174 ++++++++++++++++++ .../Class Quests/PLD/264_On Holy Ground.json | 143 ++++++++++++++ .../Class Quests/PLD/265_The Rematch.json | 169 +++++++++++++++++ 5 files changed, 776 insertions(+) create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/PLD/261_Ul'dah's Most Wanted.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/PLD/262_That Old Familiar Feeling.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/PLD/263_The Face of Thal.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/PLD/264_On Holy Ground.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/PLD/265_The Rematch.json diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/PLD/261_Ul'dah's Most Wanted.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/PLD/261_Ul'dah's Most Wanted.json new file mode 100644 index 00000000..1c0293f7 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/PLD/261_Ul'dah's Most Wanted.json @@ -0,0 +1,158 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Cacahuetes", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1001739, + "Position": { + "X": -94.529724, + "Y": 6.4999976, + "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": 1002296, +"Position": { + "X": -139.42175, + "Y": 4.019726, + "Z": 205.0354 +}, +"TerritoryId": 141, +"InteractionType": "Combat", +"EnemySpawnType": "AfterInteraction", +"AethernetShortcut": [ + "[Ul'dah] Gladiators' Guild", + "[Ul'dah] Gate of Nald (Central Thanalan)" + ], + "KillEnemyDataIds": [1245] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1002296, +"Position": { + "X": -139.42175, + "Y": 4.019726, + "Z": 205.0354 +}, +"TerritoryId": 141, +"InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1001739, + "Position": { + "X": -94.529724, + "Y": 6.4999976, + "Z": 39.81079 + }, + "TerritoryId": 131, +"InteractionType": "Interact", +"AetheryteShortcut": "Ul'dah", +"AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Gladiators' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 131 + ] + } + } + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 2001426, +"Position": { + "X": 27.206787, + "Y": 12.985352, + "Z": 51.83484 +}, +"TerritoryId": 141, +"InteractionType": "SinglePlayerDuty", + "AethernetShortcut": [ + "[Ul'dah] Gladiators' Guild", + "[Ul'dah] Gate of Nald (Central Thanalan)" + ] + } + ] + }, + + { "Sequence": 5, + "Steps": [ + { + "DataId": 1003945, +"Position": { + "X": 24.917969, + "Y": 13, + "Z": 50.156372 +}, +"TerritoryId": 141, +"InteractionType": "Interact" + } + ]}, + + { "Sequence": 255, + "Steps": [ + { + "DataId": 1001739, + "Position": { + "X": -94.529724, + "Y": 6.4999976, + "Z": 39.81079 + }, + "TerritoryId": 131, +"InteractionType": "CompleteQuest", +"AetheryteShortcut": "Ul'dah", +"DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_CLSGLA100_00261_Q1_000_160", + "Answer": "TEXT_CLSGLA100_00261_A1_000_161" + } + ], +"AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Gladiators' Guild" + ], + "NextQuestId": 262 + } + ]} + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/PLD/262_That Old Familiar Feeling.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/PLD/262_That Old Familiar Feeling.json new file mode 100644 index 00000000..6a32e975 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/PLD/262_That Old Familiar Feeling.json @@ -0,0 +1,132 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Cacahuetes", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1001739, + "Position": { + "X": -94.529724, + "Y": 6.4999976, + "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": 1004224, +"Position": { + "X": -220.93542, + "Y": -38.407475, + "Z": 63.91992 +}, +"TerritoryId": 145, +"InteractionType": "Combat", +"AetheryteShortcut": "Eastern Thanalan - Camp Drybone", +"EnemySpawnType":"AfterInteraction", +"KillEnemyDataIds":[1244] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1004224, +"Position": { + "X": -220.93542, + "Y": -38.407475, + "Z": 63.91992 +}, +"TerritoryId": 145, +"InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1001739, + "Position": { + "X": -94.529724, + "Y": 6.4999976, + "Z": 39.81079 + }, + "TerritoryId": 131, +"InteractionType": "Interact", +"AetheryteShortcut": "Ul'dah", +"AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Gladiators' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 131 + ] + } + } + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1004091, +"Position": { + "X": 24.12439, + "Y": 7.1999984, + "Z": -102.76953 +}, +"TerritoryId": 130, +"InteractionType": "SinglePlayerDuty", + "AethernetShortcut": [ + "[Ul'dah] Gladiators' Guild", + "[Ul'dah] Adventurers' Guild" + ] + } + ] + }, + { "Sequence": 255, + "Steps": [ + { + "DataId": 1001739, + "Position": { + "X": -94.529724, + "Y": 6.4999976, + "Z": 39.81079 + }, + "TerritoryId": 131, +"InteractionType": "CompleteQuest", +"AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Gladiators' Guild" + ], + "NextQuestId": 263 + } + ]} + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/PLD/263_The Face of Thal.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/PLD/263_The Face of Thal.json new file mode 100644 index 00000000..46473b39 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/PLD/263_The Face of Thal.json @@ -0,0 +1,174 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Cacahuetes", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1001739, + "Position": { + "X": -94.529724, + "Y": 6.4999976, + "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": 1004140, +"Position": { + "X": -72.34308, + "Y": -12.372956, + "Z": -69.13867 +}, +"TerritoryId": 141, +"InteractionType": "Interact", +"AetheryteShortcut": "Central Thanalan - Black Brush Station" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1001462, +"Position": { + "X": -93.33948, + "Y": -11.367981, + "Z": -41.397766 +}, +"TerritoryId": 141, +"InteractionType": "Interact" + }, + { + "DataId": 1001438, +"Position": { + "X": -30.838562, + "Y": -1.0332576, + "Z": -145.67792 +}, +"TerritoryId": 141, +"InteractionType": "Interact" + }, + {"DataId": 2001434, +"Position": { + "X": -115.77026, + "Y": 0.015197754, + "Z": -149.24854 +}, +"TerritoryId": 141, +"InteractionType": "Interact" +} + ] + }, + { + "Sequence": 3, + "Steps": [ + {"DataId": 1004140, +"Position": { + "X": -72.34308, + "Y": -12.372956, + "Z": -69.13867 +}, +"TerritoryId": 141, +"InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1001285, +"Position": { + "X": -68.77246, + "Y": 4.0411124, + "Z": -126.51257 +}, +"TerritoryId": 130, +"InteractionType": "Interact", + "AetheryteShortcut": "Ul'dah" + } + ] + }, + { "Sequence": 5, + "Steps": [ + { + "DataId": 1001739, + "Position": { + "X": -94.529724, + "Y": 6.4999976, + "Z": 39.81079 + }, + "TerritoryId": 131, +"InteractionType": "Interact", +"AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Gladiators' Guild" + ], + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_CLSGLA200_00263_Q1_000_124", + "Answer": "TEXT_CLSGLA200_00263_A1_000_125" + } + ] + } + ]}, + { "Sequence": 6, + "Steps": [ + { + "DataId": 1004092, +"Position": { + "X": -241.16882, + "Y": 32.47634, + "Z": 398.9165 +}, +"TerritoryId": 140, +"InteractionType": "SinglePlayerDuty", +"AethernetShortcut": [ + "[Ul'dah] Gladiators' Guild", + "[Ul'dah] Gate of the Sultana (Western Thanalan)" + ] + } + ]}, + { "Sequence": 255, + "Steps": [ + { + "DataId": 1001739, + "Position": { + "X": -94.529724, + "Y": 6.4999976, + "Z": 39.81079 + }, + "TerritoryId": 131, +"InteractionType": "CompleteQuest", +"AetheryteShortcut": "Ul'dah", +"AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Gladiators' Guild" + ], + "NextQuestId": 264 + } + ]} + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/PLD/264_On Holy Ground.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/PLD/264_On Holy Ground.json new file mode 100644 index 00000000..8756d67b --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/PLD/264_On Holy Ground.json @@ -0,0 +1,143 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Cacahuetes", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1001739, + "Position": { + "X": -94.529724, + "Y": 6.4999976, + "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": 1004225, +"Position": { + "X": 62.974, + "Y": 54.60642, + "Z": 284.90112 +}, +"TerritoryId": 140, +"InteractionType": "Combat", +"EnemySpawnType": "AfterInteraction", +"KillEnemyDataIds": [1243], +"AethernetShortcut": [ + "[Ul'dah] Gladiators' Guild", + "[Ul'dah] Gate of the Sultana (Western Thanalan)" + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1004225, +"Position": { + "X": 62.974, + "Y": 54.60642, + "Z": 284.90112 +}, +"TerritoryId": 140, +"InteractionType": "Interact" + } + ] + }, + { "Sequence": 3, + "Steps": [ + { + "DataId": 1001739, + "Position": { + "X": -94.529724, + "Y": 6.4999976, + "Z": 39.81079 + }, + "TerritoryId": 131, +"InteractionType": "Interact", +"AetheryteShortcut": "Ul'dah", +"AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Gladiators' Guild" + ] + } + ]}, + { "Sequence": 4, + "Steps": [ + { + "DataId": 1002277, +"Position": { + "X": -97.550964, + "Y": 7.05, + "Z": 23.605652 +}, +"TerritoryId": 131, +"InteractionType": "Interact" + } + ]} + , + { "Sequence": 5, + "Steps": [ + { + "DataId": 1004141, +"Position": { + "X": -520.5005, + "Y": -21.460285, + "Z": 123.46069 +}, +"TerritoryId": 145, +"InteractionType": "SinglePlayerDuty", +"AetheryteShortcut": "Eastern Thanalan - Camp Drybone", +"DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_CLSGLA250_00264_Q1_000_170", + "Answer": "TEXT_CLSGLA250_00264_A1_000_180" + } + ] + } + ]} + , + { "Sequence": 255, + "Steps": [ + { + "DataId": 1001739, + "Position": { + "X": -94.529724, + "Y": 6.4999976, + "Z": 39.81079 + }, + "TerritoryId": 131, +"InteractionType": "CompleteQuest", +"AetheryteShortcut": "Ul'dah", +"AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Gladiators' Guild" + ], + "NextQuestId": 265 + } + ]} + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/PLD/265_The Rematch.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/PLD/265_The Rematch.json new file mode 100644 index 00000000..e644803c --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/PLD/265_The Rematch.json @@ -0,0 +1,169 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Cacahuetes", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1001739, + "Position": { + "X": -94.529724, + "Y": 6.4999976, + "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": 1001285, +"Position": { + "X": -68.77246, + "Y": 4.0411124, + "Z": -126.51257 +}, +"TerritoryId": 130, +"InteractionType": "Interact", +"AethernetShortcut": [ + "[Ul'dah] Gladiators' Guild", + "[Ul'dah] Aetheryte Plaza" + ], + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_CLSGLA300_00265_Q1_000_40", + "Answer": "TEXT_CLSGLA300_00265_A1_000_50" + } + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": 235.23369, + "Y": 2.747214, + "Z": 673.64215 +}, +"TerritoryId": 141, +"InteractionType": "WalkTo", +"AethernetShortcut": ["[Ul'dah] Aetheryte Plaza", "[Ul'dah] Gate of Thal (Central Thanalan)"] + }, +{ +"TerritoryId": 146, +"Aetheryte": "Southern Thanalan - Little Ala Mhigo", +"InteractionType": "AttuneAetheryte" +}, +{"Position": { + "X": 140.30618, + "Y": 4.2185926, + "Z": -585.2695 +}, +"TerritoryId": 146, +"InteractionType": "WalkTo"}, + { + "DataId": 2001455, +"Position": { + "X": 28.091797, + "Y": 6.9733276, + "Z": -611.2917 +}, +"TerritoryId": 146, +"InteractionType": "Interact" + }, + { + "DataId": 2001435, +"Position": { + "X": 101.823364, + "Y": 7.248047, + "Z": -534.56934 +}, +"TerritoryId": 146, +"InteractionType": "Interact" + }, + { +"Position": { + "X": 164.75665, + "Y": 3.3963587, + "Z": -585.49005 +}, +"TerritoryId": 146, +"InteractionType": "WalkTo" + + } + ] + }, + { "Sequence": 3, + "Steps": [ + { + "DataId": 1001739, + "Position": { + "X": -94.529724, + "Y": 6.4999976, + "Z": 39.81079 + }, + "TerritoryId": 131, +"InteractionType": "Interact", +"AetheryteShortcut": "Ul'dah", +"AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Gladiators' Guild" + ] + } + ]}, + { "Sequence": 4, + "Steps": [ + { + "DataId": 1004142, +"Position": { + "X": -19.97406, + "Y": -30.999985, + "Z": -33.951355 +}, +"TerritoryId": 145, +"InteractionType": "SinglePlayerDuty", +"AetheryteShortcut": "Eastern Thanalan - Camp Drybone" + } + ]} + , + { "Sequence": 255, + "Steps": [ + { + "DataId": 1001739, + "Position": { + "X": -94.529724, + "Y": 6.4999976, + "Z": 39.81079 + }, + "TerritoryId": 131, +"InteractionType": "CompleteQuest", +"AetheryteShortcut": "Ul'dah", +"AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Gladiators' Guild" + ], + "NextQuestId": 1055 + } + ]} + ] +} From 7865ee6fe8d1bccef2a2334001c77bcf49c16180 Mon Sep 17 00:00:00 2001 From: cacahuetes Date: Wed, 21 Aug 2024 15:58:26 +0000 Subject: [PATCH 003/450] Upload files to "QuestPaths/2.x - A Realm Reborn/Class Quests/PLD" --- .../PLD/1055_Paladin's Pledge.json | 117 ++++++++++++++++++ 1 file changed, 117 insertions(+) create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/PLD/1055_Paladin's Pledge.json diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/PLD/1055_Paladin's Pledge.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/PLD/1055_Paladin's Pledge.json new file mode 100644 index 00000000..ee440d59 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/PLD/1055_Paladin's Pledge.json @@ -0,0 +1,117 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Cacahuetes", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1002277, +"Position": { + "X": -97.550964, + "Y": 7.05, + "Z": 23.605652 +}, +"TerritoryId": 131, +"InteractionType": "AcceptQuest", +"AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Gladiators' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 131 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1006747, +"Position": { + "X": -20.828613, + "Y": 29.999964, + "Z": -2.4262085 +}, +"TerritoryId": 131, +"InteractionType": "Interact", +"AethernetShortcut": [ + "[Ul'dah] Gladiators' Guild", + "[Ul'dah] The Chamber of Rule" + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2002344, +"Position": { + "X": -97.39838, + "Y": 14.846985, + "Z": -188.2201 +}, +"TerritoryId": 146, +"AetheryteShortcut": "Southern Thanalan - Little Ala Mhigo", +"InteractionType": "Combat", +"EnemySpawnType": "AfterInteraction", +"KillEnemyDataIds": [18,19] + } + ] + }, + { "Sequence": 3, + "Steps": [ + { + "DataId": 2002345, +"Position": { + "X": -97.39838, + "Y": 16.433899, + "Z": -188.2201 +}, +"TerritoryId": 146, +"InteractionType": "UseItem", +"ItemId": 2000821 + } + ]}, + { "Sequence": 4, + "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" + ] + } + ]} + , + { "Sequence": 255, + "Steps": [ + { + "DataId": 1006747, +"Position": { + "X": -20.828613, + "Y": 29.999964, + "Z": -2.4262085 +}, +"TerritoryId": 131, +"InteractionType": "CompleteQuest", + "NextQuestId": 1056 + } + ]} + ] +} From 2765247f928849cd7bc87993d2449c1b784ffc12 Mon Sep 17 00:00:00 2001 From: cacahuetes Date: Wed, 21 Aug 2024 16:00:01 +0000 Subject: [PATCH 004/450] Upload files to "QuestPaths/2.x - A Realm Reborn/Class Quests/BLM" --- .../183_So You Want to Be a Thaumaturge.json | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/BLM/183_So You Want to Be a Thaumaturge.json diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/BLM/183_So You Want to Be a Thaumaturge.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/BLM/183_So You Want to Be a Thaumaturge.json new file mode 100644 index 00000000..f4678d54 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/BLM/183_So You Want to Be a Thaumaturge.json @@ -0,0 +1,38 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Cacahuetes", + "QuestSequence": [ + { + "Sequence": 0, + "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"], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 130 + ] + } + }, + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_CLSTHM001_00183_Q1_000_1", + "Yes": true + } + ]} + ] + } + ] + } + \ No newline at end of file From c5ea5563ffe719305e0ecdc0f629b9bf2761ec01 Mon Sep 17 00:00:00 2001 From: cacahuetes Date: Wed, 21 Aug 2024 16:00:29 +0000 Subject: [PATCH 005/450] Upload files to "QuestPaths/2.x - A Realm Reborn/Class Quests/CRP" --- .../184_So You Want to Be a Carpenter.json | 65 +++++++++++-------- 1 file changed, 37 insertions(+), 28 deletions(-) diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/CRP/184_So You Want to Be a Carpenter.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/CRP/184_So You Want to Be a Carpenter.json index 3226ac80..a157b467 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/CRP/184_So You Want to Be a Carpenter.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/CRP/184_So You Want to Be a Carpenter.json @@ -1,28 +1,37 @@ -{ - "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "liza", - "QuestSequence": [ - { - "Sequence": 0, - "Steps": [ - { - "DataId": 1000148, - "Position": { - "X": -20.279297, - "Y": -3.25, - "Z": 45.97534 - }, - "TerritoryId": 132, - "InteractionType": "AcceptQuest", - "DialogueChoices": [ - { - "Type": "YesNo", - "Prompt": "TEXT_CLSWDK999_00184_Q1_000_1", - "Yes": true - } - ] - } - ] - } - ] -} +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Cacahuetes", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { "DataId": 1000148, +"Position": { + "X": -20.279297, + "Y": -3.25, + "Z": 45.97534 +}, +"TerritoryId": 132, + "AetheryteShortcut": "Gridania", + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_CLSWDK999_00184_Q1_000_1", + "Yes": true + } + ], + "InteractionType": "AcceptQuest", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 132 + ] + } + } + } + ] + } + ] + } + \ No newline at end of file From 6fde4de9dc85f8cf98ea051c0ce4c958e16c5def Mon Sep 17 00:00:00 2001 From: cacahuetes Date: Wed, 21 Aug 2024 16:01:42 +0000 Subject: [PATCH 006/450] Upload files to "QuestPaths/2.x - A Realm Reborn/Class Quests/DRG" --- .../DRG/180_So You Want to Be a Lancer.json | 73 ++++++++----------- 1 file changed, 32 insertions(+), 41 deletions(-) diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/DRG/180_So You Want to Be a Lancer.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/DRG/180_So You Want to Be a Lancer.json index eaa4aec0..f2cb05de 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/DRG/180_So You Want to Be a Lancer.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/DRG/180_So You Want to Be a Lancer.json @@ -1,41 +1,32 @@ -{ - "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "liza", - "QuestSequence": [ - { - "Sequence": 0, - "Steps": [ - { - "DataId": 1000251, - "Position": { - "X": 147.08167, - "Y": 15.5, - "Z": -267.99426 - }, - "TerritoryId": 133, - "InteractionType": "AcceptQuest", - "DialogueChoices": [ - { - "Type": "YesNo", - "Prompt": "TEXT_CLSLNC999_00180_Q1_000_1", - "Yes": true - } - ], - "AetheryteShortcut": "Gridania", - "AethernetShortcut": [ - "[Gridania] Aetheryte Plaza", - "[Gridania] Lancers' Guild" - ], - "SkipConditions": { - "AetheryteShortcutIf": { - "InSameTerritory": true, - "InTerritory": [ - 133 - ] - } - } - } - ] - } - ] -} +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Cacahuetes", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { "DataId": 1000251, + "Position": { + "X": 147.08167, + "Y": 15.5, + "Z": -267.99426 + }, + "TerritoryId": 133, + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Lancers' Guild" + ], + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_CLSLNC999_00180_Q1_000_1", + "Yes": true + } + ], + "InteractionType": "Interact" + } + ] + } + ] + } + \ No newline at end of file From 79751474de0b797054fb5b85e29545afae6f45b3 Mon Sep 17 00:00:00 2001 From: cacahuetes Date: Wed, 21 Aug 2024 16:02:31 +0000 Subject: [PATCH 007/450] Upload files to "QuestPaths/2.x - A Realm Reborn/Class Quests/FSH" --- .../FSH/1107_Way of the Fisher.json | 57 ++++++++++++++ .../FSH/1108_My First Fishing Rod.json | 76 +++++++++++++++++++ .../FSH/1134_So You Want to Be a Fisher.json | 67 ++++++++++++++++ .../FSH/3843_All the Fish in the Sea.json | 40 ++++++++++ 4 files changed, 240 insertions(+) create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/FSH/1107_Way of the Fisher.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/FSH/1108_My First Fishing Rod.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/FSH/1134_So You Want to Be a Fisher.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/FSH/3843_All the Fish in the Sea.json 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 new file mode 100644 index 00000000..d28fa0e0 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/FSH/1107_Way of the Fisher.json @@ -0,0 +1,57 @@ +{ + "$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": "Interact", +"AetheryteShortcut": "Limsa Lominsa", +"AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] Fishermens' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 129 + ] + } + } + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "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 + } + ] + } + ] +} \ No newline at end of file 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 new file mode 100644 index 00000000..67bd9254 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/FSH/1108_My First Fishing Rod.json @@ -0,0 +1,76 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Cacahuetes", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "TerritoryId": 129, + "InteractionType": "EquipItem", + "ItemId": 2571, + "SkipConditions": { + "StepIf": { + "Item": { + "NotInInventory": true + } + } + } + }, + { + "TerritoryId": 129, + "InteractionType": "EquipRecommended" + }, + + { + "DataId": 1000857, +"Position": { + "X": -165.27051, + "Y": 5.2500057, + "Z": 164.29382 +}, +"TerritoryId": 129, +"InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { +"Position": { + "X": -42.679565, + "Y": 39.999966, + "Z": 119.920654 +}, +"TerritoryId": 128, +"InteractionType": "WaitForManualProgress", + "AethernetShortcut": [ + "[Limsa Lominsa] Fishermens' Guild", + "[Limsa Lominsa] The Aftcastle" + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1000857, +"Position": { + "X": -165.27051, + "Y": 5.2500057, + "Z": 164.29382 +}, +"TerritoryId": 129, +"InteractionType": "CompleteQuest", +"AethernetShortcut": [ + "[Limsa Lominsa] The Aftcastle", + "[Limsa Lominsa] Fishermens' Guild" + ], + "NextQuestId": 3843 + } + ] + } + ] +} \ No newline at end of file diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/FSH/1134_So You Want to Be a Fisher.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/FSH/1134_So You Want to Be a Fisher.json new file mode 100644 index 00000000..037f2dad --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/FSH/1134_So You Want to Be a Fisher.json @@ -0,0 +1,67 @@ +{ + "$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, +"AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] Fishermens' Guild" + ], +"DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_CLSFSH001_01134_Q1_000_1", + "Yes": true, + "$": "Need to find real prompt in godbert" + } + ], +"InteractionType": "Interact" + }, + { + "DataId": 1000859, +"Position": { + "X": -166.76587, + "Y": 4.5496645, + "Z": 150.04187 +}, +"TerritoryId": 129, +"InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1000857, +"Position": { + "X": -165.27051, + "Y": 5.2500057, + "Z": 164.29382 +}, +"TerritoryId": 129, +"DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_CLSGLA020_00253_Q1_000_1", + "Yes": true, + "$": "Need to find real prompt in godbert" + } + ], +"InteractionType": "CompleteQuest", +"NextQuestId": 1108 + } + ] + } + ] +} \ No newline at end of file diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/FSH/3843_All the Fish in the Sea.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/FSH/3843_All the Fish in the Sea.json new file mode 100644 index 00000000..985f50b6 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/FSH/3843_All the Fish in the Sea.json @@ -0,0 +1,40 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Cacahuetes", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1000858, +"Position": { + "X": -168.47485, + "Y": 4.5500045, + "Z": 163.65295 +}, +"TerritoryId": 129, +"InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1005424, +"Position": { + "X": -412.80237, + "Y": 4, + "Z": 75.05908 +}, +"TerritoryId": 129, +"InteractionType": "CompleteQuest", + "AethernetShortcut": [ + "[Limsa Lominsa] Fishermens' Guild", + "[Limsa Lominsa] Arcanists' Guild" + ] + } + ] + } + ] +} \ No newline at end of file From 45137b231cd37fdd63dea091dd1db8bf71b72266 Mon Sep 17 00:00:00 2001 From: cacahuetes Date: Wed, 21 Aug 2024 16:02:55 +0000 Subject: [PATCH 008/450] Upload files to "QuestPaths/2.x - A Realm Reborn/Class Quests/MNK" --- .../MNK/178_So You Want to Be a Pugilist.json | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/178_So You Want to Be a Pugilist.json diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/178_So You Want to Be a Pugilist.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/178_So You Want to Be a Pugilist.json new file mode 100644 index 00000000..5a950afb --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/178_So You Want to Be a Pugilist.json @@ -0,0 +1,36 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Cacahuetes", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { "DataId": 1001286, +"Position": { + "X": -88.9754, + "Y": 2.55, + "Z": -51.163513 +}, +"TerritoryId": 130, +"InteractionType": "Interact", + "AetheryteShortcut": "Ul'dah", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 130 + ] + } + }, + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_CLSPGL001_00178_Q1_000_1", + "Yes": true + } + ]} + ] + } + ] + } + \ No newline at end of file From 9413b2ccdb0a96fcd5e134b6ed03b3a3722e4ad7 Mon Sep 17 00:00:00 2001 From: cacahuetes Date: Wed, 21 Aug 2024 16:03:24 +0000 Subject: [PATCH 009/450] Upload files to "QuestPaths/2.x - A Realm Reborn/Class Quests/MNK" --- .../MNK/532_Way of the Pugilist.json | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/532_Way of the Pugilist.json diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/532_Way of the Pugilist.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/532_Way of the Pugilist.json new file mode 100644 index 00000000..fd3e9fcb --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/532_Way of the Pugilist.json @@ -0,0 +1,42 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Cacahuetes", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { "DataId": 1001286, +"Position": { + "X": -88.9754, + "Y": 2.55, + "Z": -51.163513 +}, +"TerritoryId": 130, +"InteractionType": "AcceptQuest"} + ] + }, + { + "Sequence": 255, + "Steps": [ + { "DataId": 1003817, +"Position": { + "X": -74.57086, + "Y": 1.9999951, + "Z": -42.404846 +}, +"TerritoryId": 130, +"InteractionType": "CompleteQuest", + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_CLSPGL011_00532_Q1_000_1", + "Yes": true + } + ], + "NextQuestId": 553 + } + ] + } + ] + } + \ No newline at end of file From 80f9b02b3729f76cb7b02a95e2e009cbafd43b78 Mon Sep 17 00:00:00 2001 From: cacahuetes Date: Wed, 21 Aug 2024 16:05:00 +0000 Subject: [PATCH 010/450] Upload files to "QuestPaths/2.x - A Realm Reborn/Class Quests/WAR" --- .../WAR/179_So You Want to Be a Marauder.json | 40 ++++++++++++++++++ .../WAR/310_Way of the Marauder.json | 42 +++++++++++++++++++ 2 files changed, 82 insertions(+) create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/WAR/179_So You Want to Be a Marauder.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/WAR/310_Way of the Marauder.json diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/WAR/179_So You Want to Be a Marauder.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/WAR/179_So You Want to Be a Marauder.json new file mode 100644 index 00000000..b989176b --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/WAR/179_So You Want to Be a Marauder.json @@ -0,0 +1,40 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Cacahuetes", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { "DataId": 1000926, +"Position": { + "X": -10.055725, + "Y": 44.999794, + "Z": -245.80762 +}, +"TerritoryId": 128, +"InteractionType": "Interact", + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] Marauders' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 129, 128 + ] + } + }, + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_CLSEXC001_00179_Q1_000_1", + "Yes": true + } + ]} + ] + } + ] + } + \ No newline at end of file diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/WAR/310_Way of the Marauder.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/WAR/310_Way of the Marauder.json new file mode 100644 index 00000000..16829c6d --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/WAR/310_Way of the Marauder.json @@ -0,0 +1,42 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Cacahuetes", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { "DataId": 1000926, +"Position": { + "X": -10.055725, + "Y": 44.999794, + "Z": -245.80762 +}, +"TerritoryId": 128, +"InteractionType": "AcceptQuest"} + ] + }, + { + "Sequence": 255, + "Steps": [ + { "DataId": 1000927, +"Position": { + "X": -1.2055054, + "Y": 44.999886, + "Z": -255.8786 +}, +"TerritoryId": 128, +"InteractionType": "AcceptQuest", + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_CLSEXC011_00310_Q2_000_1", + "Yes": true + } + ], + "NextQuestId": 312 + } + ] + } + ] + } + \ No newline at end of file From ea483d1cd538209f65a26ab5a4d1bb443dc85363 Mon Sep 17 00:00:00 2001 From: cacahuetes Date: Wed, 21 Aug 2024 16:05:53 +0000 Subject: [PATCH 011/450] Upload files to "QuestPaths/2.x - A Realm Reborn/Class Quests/ACN" --- .../451_So You Want to Be an Arcanist.json | 42 +++++++++++++++++++ .../ACN/452_Way of the Arcanist.json | 42 +++++++++++++++++++ 2 files changed, 84 insertions(+) create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/ACN/451_So You Want to Be an Arcanist.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/ACN/452_Way of the Arcanist.json diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/ACN/451_So You Want to Be an Arcanist.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/ACN/451_So You Want to Be an Arcanist.json new file mode 100644 index 00000000..020ff0d5 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/ACN/451_So You Want to Be an Arcanist.json @@ -0,0 +1,42 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Cacahuetes", + "QuestSequence": [ + { + "Sequence": 255, + "Steps": [ + { "DataId": 1000895, +"Position": { + "X": -335.74432, + "Y": 12.899764, + "Z": 1.3884888 +}, +"TerritoryId": 129, +"InteractionType": "AcceptQuest", + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] Arcanists' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 129 + ] + } + }, + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_CLSACN001_00451_Q1_000_000", + "Yes": true + } + ], + "NextQuestId": 452 + } + ] + } + ] + } + \ No newline at end of file diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/ACN/452_Way of the Arcanist.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/ACN/452_Way of the Arcanist.json new file mode 100644 index 00000000..dad2a928 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/ACN/452_Way of the Arcanist.json @@ -0,0 +1,42 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Cacahuetes", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { "DataId": 1000895, +"Position": { + "X": -335.74432, + "Y": 12.899764, + "Z": 1.3884888 +}, +"TerritoryId": 129, +"InteractionType": "AcceptQuest"} + ] + }, + { + "Sequence": 255, + "Steps": [ + { "DataId": 1000909, +"Position": { + "X": -326.37524, + "Y": 12.899658, + "Z": 9.994568 +}, +"TerritoryId": 129, +"InteractionType": "CompleteQuest", + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_CLSACN011_00452_Q1_000_000", + "Yes": true + } + ], + "NextQuestId": 454 + } + ] + } + ] + } + \ No newline at end of file From 0635f4e6398ec8fb3e3ab1caaafbc4b2bb35defd Mon Sep 17 00:00:00 2001 From: cacahuetes Date: Wed, 21 Aug 2024 16:07:33 +0000 Subject: [PATCH 012/450] Upload files to "QuestPaths/2.x - A Realm Reborn/Class Quests/ARC" --- .../ARC/131_Way of the Archer.json | 42 +++++++++++++++++++ .../ARC/181_So You Want to Be an Archer.json | 42 +++++++++++++++++++ 2 files changed, 84 insertions(+) create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/ARC/131_Way of the Archer.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/ARC/181_So You Want to Be an Archer.json diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/ARC/131_Way of the Archer.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/ARC/131_Way of the Archer.json new file mode 100644 index 00000000..08c556d1 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/ARC/131_Way of the Archer.json @@ -0,0 +1,42 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Cacahuetes", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { "DataId": 1000197, +"Position": { + "X": 201.31226, + "Y": -3.1634123E-15, + "Z": 43.900146 +}, +"TerritoryId": 132, + "InteractionType": "AcceptQuest"} + ] + }, + { + "Sequence": 255, + "Steps": [ + { "DataId": 1000200, +"Position": { + "X": 209.55212, + "Y": 0.9999819, + "Z": 35.01941 +}, +"TerritoryId": 132, +"InteractionType": "CompleteQuest", + + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_CLSARC998_00131_Q1_000_1", + "Yes": true + } + ] + } + ] + } + ] + } + \ No newline at end of file diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/ARC/181_So You Want to Be an Archer.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/ARC/181_So You Want to Be an Archer.json new file mode 100644 index 00000000..b4a8b5fe --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/ARC/181_So You Want to Be an Archer.json @@ -0,0 +1,42 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Cacahuetes", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { "DataId": 1000197, +"Position": { + "X": 201.31226, + "Y": -3.1634123E-15, + "Z": 43.900146 +}, +"TerritoryId": 132, +"AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Archers' Guild" + ], + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_CLSARC999_00181_Q1_000_1", + "Yes": true, + "$": "No Godbert prompt" + } + ], + "InteractionType": "AcceptQuest", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 132 + ] + } + } + } + ] + } + ] + } + \ No newline at end of file From 1f4089ce49080f6a097c82a53c9654d103609336 Mon Sep 17 00:00:00 2001 From: cacahuetes Date: Wed, 21 Aug 2024 16:08:17 +0000 Subject: [PATCH 013/450] Upload files to "QuestPaths/2.x - A Realm Reborn/Class Quests/BSM" --- .../185_So You Want to Be a Blacksmith.json | 42 +++++++++++++ .../BSM/291_Way of the Blacksmith.json | 62 +++++++++++++++++++ 2 files changed, 104 insertions(+) create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/BSM/185_So You Want to Be a Blacksmith.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/BSM/291_Way of the Blacksmith.json diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/BSM/185_So You Want to Be a Blacksmith.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/BSM/185_So You Want to Be a Blacksmith.json new file mode 100644 index 00000000..ff547934 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/BSM/185_So You Want to Be a Blacksmith.json @@ -0,0 +1,42 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Cacahuetes", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { "DataId": 1000995, +"Position": { + "X": -52.018066, + "Y": 42.799637, + "Z": 192.2179 +}, +"TerritoryId": 128, +"InteractionType": "AcceptQuest", + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] The Aftcastle" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 129 + ] + } + }, + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_CLSBSM001_00185_Q1_000_1", + "Yes": true + } + ], + "NextQuestId": 291 + } + ] + } + ] + } + \ No newline at end of file diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/BSM/291_Way of the Blacksmith.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/BSM/291_Way of the Blacksmith.json new file mode 100644 index 00000000..d175b90d --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/BSM/291_Way of the Blacksmith.json @@ -0,0 +1,62 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Cacahuetes", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { "DataId": 1000995, +"Position": { + "X": -52.018066, + "Y": 42.799637, + "Z": 192.2179 +}, +"TerritoryId": 128, +"InteractionType": "AcceptQuest", + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] The Aftcastle" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 129 + ] + } + }, + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_CLSBSM001_00185_Q1_000_1", + "Yes": true + } + ]} + ] + }, + { + "Sequence": 255, + "Steps": [ + { "DataId": 1000997, +"Position": { + "X": -31.265808, + "Y": 44.49997, + "Z": 185.53442 +}, +"TerritoryId": 128, +"InteractionType": "CompleteQuest", + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_CLSBSM011_00291_Q1_000_1", + "Yes": true + } + ], + "NextQuestId": 292 + } + ] + } + ] + } + \ No newline at end of file From 387ef9f69b48251b5c4287c1302217b6c19eda42 Mon Sep 17 00:00:00 2001 From: cacahuetes Date: Wed, 21 Aug 2024 16:08:49 +0000 Subject: [PATCH 014/450] Upload files to "QuestPaths/2.x - A Realm Reborn/Class Quests/ARM" --- .../ARM/186_So You Want to Be an Armorer.json | 40 ++++++++++++++++++ .../ARM/273_Way of the Armorer.json | 42 +++++++++++++++++++ 2 files changed, 82 insertions(+) create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/ARM/186_So You Want to Be an Armorer.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/ARM/273_Way of the Armorer.json diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/ARM/186_So You Want to Be an Armorer.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/ARM/186_So You Want to Be an Armorer.json new file mode 100644 index 00000000..f365f339 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/ARM/186_So You Want to Be an Armorer.json @@ -0,0 +1,40 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Cacahuetes", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { "DataId": 1000998, +"Position": { + "X": -51.651794, + "Y": 42.79979, + "Z": 190.41736 +}, +"TerritoryId": 128, +"InteractionType": "Interact", + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] The Aftcastle" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 129 + ] + } + }, + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_CLSARM001_00186_Q1_000_1", + "Yes": true + } + ]} + ] + } + ] + } + \ No newline at end of file diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/ARM/273_Way of the Armorer.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/ARM/273_Way of the Armorer.json new file mode 100644 index 00000000..91ca9538 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/ARM/273_Way of the Armorer.json @@ -0,0 +1,42 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Cacahuetes", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { "DataId": 1000998, + "Position": { + "X": -51.651794, + "Y": 42.79979, + "Z": 190.41736 + }, + "TerritoryId": 128, + "InteractionType": "AcceptQuest"} + ] + }, + { + "Sequence": 255, + "Steps": [ + { "DataId": 1001000, + "Position": { + "X": -32.028687, + "Y": 41.499985, + "Z": 208.39233 + }, + "TerritoryId": 128, + "InteractionType": "CompleteQuest", + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_CLSARM011_00273_Q1_000_1", + "Yes": true + } + ], + "NextQuestId": 273 + } + ] + } + ] + } + \ No newline at end of file From 905074513ab2c4a3a7b597a871fe1e8e79dab04a Mon Sep 17 00:00:00 2001 From: cacahuetes Date: Wed, 21 Aug 2024 16:09:36 +0000 Subject: [PATCH 015/450] Upload files to "QuestPaths/2.x - A Realm Reborn/Class Quests/GSM" --- .../187_So You Want to Be a Goldsmith.json | 38 +++++++++++++++++ .../GSM/608_Way of the Goldsmith.json | 41 +++++++++++++++++++ 2 files changed, 79 insertions(+) create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/GSM/187_So You Want to Be a Goldsmith.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/GSM/608_Way of the Goldsmith.json diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/GSM/187_So You Want to Be a Goldsmith.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/GSM/187_So You Want to Be a Goldsmith.json new file mode 100644 index 00000000..0151fc85 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/GSM/187_So You Want to Be a Goldsmith.json @@ -0,0 +1,38 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Cacahuetes", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { "DataId": 1002280, +"Position": { + "X": -35.385742, + "Y": 13.599962, + "Z": 97.24573 +}, +"TerritoryId": 131, +"InteractionType": "Interact", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": ["[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Goldsmiths' Guild"], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 131 + ] + } + }, + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_CLSGLD001_00187_Q1_000_1", + "Yes": true + } + ]} + ] + } + ] + } + \ No newline at end of file diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/GSM/608_Way of the Goldsmith.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/GSM/608_Way of the Goldsmith.json new file mode 100644 index 00000000..eab3d228 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/GSM/608_Way of the Goldsmith.json @@ -0,0 +1,41 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Cacahuetes", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { "DataId": 1002280, +"Position": { + "X": -35.385742, + "Y": 13.599962, + "Z": 97.24573 +}, +"TerritoryId": 131, +"InteractionType": "AcceptQuest"} + ] + }, + { + "Sequence": 255, + "Steps": [ + { "DataId": 1004093, +"Position": { + "X": -25.162231, + "Y": 12.200003, + "Z": 110.795654 +}, +"TerritoryId": 131, +"InteractionType": "CompleteQuest", +"DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_CLSGLD011_00608_A1_000_1", + "Yes": true + } + ], +"NextQuestId": 608 +} + ] + } + ] +} From 0da8c8acb5c5a0af6eca4e019ca82a1aa7263e8f Mon Sep 17 00:00:00 2001 From: cacahuetes Date: Wed, 21 Aug 2024 16:10:11 +0000 Subject: [PATCH 016/450] Upload files to "QuestPaths/2.x - A Realm Reborn/Class Quests/CUL" --- .../191_So You Want to Be a Culinarian.json | 40 ++++++++++++++++++ .../CUL/271_Way of the Culinarian.json | 42 +++++++++++++++++++ 2 files changed, 82 insertions(+) create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/CUL/191_So You Want to Be a Culinarian.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/CUL/271_Way of the Culinarian.json diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/CUL/191_So You Want to Be a Culinarian.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/CUL/191_So You Want to Be a Culinarian.json new file mode 100644 index 00000000..762b5f79 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/CUL/191_So You Want to Be a Culinarian.json @@ -0,0 +1,40 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Cacahuetes", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { "DataId": 1000946, +"Position": { + "X": -61.142883, + "Y": 42.299698, + "Z": -164.0498 +}, +"TerritoryId": 128, +"InteractionType": "Interact", + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] Culinarians' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 129 + ] + } + }, + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_CLSCUL001_00191_Q1_000_1", + "Yes": true + } + ]} + ] + } + ] + } + \ No newline at end of file diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/CUL/271_Way of the Culinarian.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/CUL/271_Way of the Culinarian.json new file mode 100644 index 00000000..cbc91453 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/CUL/271_Way of the Culinarian.json @@ -0,0 +1,42 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Cacahuetes", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { "DataId": 1000946, +"Position": { + "X": -61.142883, + "Y": 42.299698, + "Z": -164.0498 +}, +"TerritoryId": 128, +"InteractionType": "AcceptQuest"} + ] + }, + { + "Sequence": 255, + "Steps": [ + { "DataId": 1000947, +"Position": { + "X": -54.64258, + "Y": 44, + "Z": -151.23218 +}, +"TerritoryId": 128, +"InteractionType": "CompleteQuest", + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_CLSCUL011_00271_Q1_000_1", + "Yes": true + } + ], + "NextQuestId": 271 + } + ] + } + ] + } + \ No newline at end of file From bd3f01390baa138c04e5b6eb07a0353ac34fa44b Mon Sep 17 00:00:00 2001 From: cacahuetes Date: Wed, 21 Aug 2024 16:10:55 +0000 Subject: [PATCH 017/450] Upload files to "QuestPaths/2.x - A Realm Reborn/Class Quests/ALC" --- .../190_So You Want to Be an Alchemist.json | 38 +++++++++++++++++ .../ALC/575_Way of the Alchemist.json | 42 +++++++++++++++++++ 2 files changed, 80 insertions(+) create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/ALC/190_So You Want to Be an Alchemist.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/ALC/575_Way of the Alchemist.json diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/ALC/190_So You Want to Be an Alchemist.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/ALC/190_So You Want to Be an Alchemist.json new file mode 100644 index 00000000..4b16c6d0 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/ALC/190_So You Want to Be an Alchemist.json @@ -0,0 +1,38 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Cacahuetes", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { "DataId": 1002281, +"Position": { + "X": -115.739685, + "Y": 41.600117, + "Z": 118.88306 +}, +"TerritoryId": 131, +"InteractionType": "Interact", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": ["[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Alchemists' Guild"], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 131 + ] + } + }, + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_CLSALC001_00190_Q1_1", + "Yes": true + } + ]} + ] + } + ] + } + \ No newline at end of file diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/ALC/575_Way of the Alchemist.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/ALC/575_Way of the Alchemist.json new file mode 100644 index 00000000..35f1bc7d --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/ALC/575_Way of the Alchemist.json @@ -0,0 +1,42 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Cacahuetes", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { "DataId": 1002281, +"Position": { + "X": -115.739685, + "Y": 41.600117, + "Z": 118.88306 +}, +"TerritoryId": 131, +"InteractionType": "AcceptQuest"} + ] + }, + { + "Sequence": 255, + "Steps": [ + { "DataId": 1002299, +"Position": { + "X": -98.8938, + "Y": 40.200146, + "Z": 120.83618 +}, +"TerritoryId": 131, +"InteractionType": "CompleteQuest", + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_CLSALC011_00575_Q1_1", + "Yes": true + } + ], + "NextQuestId": 575 + } + ] + } + ] + } + \ No newline at end of file From 110eece2d741804d109d63a5831691e24a2b3f11 Mon Sep 17 00:00:00 2001 From: cacahuetes Date: Wed, 21 Aug 2024 16:11:36 +0000 Subject: [PATCH 018/450] Upload files to "QuestPaths/2.x - A Realm Reborn/Class Quests/BTN" --- .../BTN/193_So You Want to Be a Botanist.json | 39 +++++++++++++++++ .../BTN/3_Way of the Botanist.json | 42 +++++++++++++++++++ 2 files changed, 81 insertions(+) create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/BTN/193_So You Want to Be a Botanist.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/BTN/3_Way of the Botanist.json diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/BTN/193_So You Want to Be a Botanist.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/BTN/193_So You Want to Be a Botanist.json new file mode 100644 index 00000000..048b8ad3 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/BTN/193_So You Want to Be a Botanist.json @@ -0,0 +1,39 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Cacahuetes", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { "DataId": 1000294, +"Position": { + "X": -238.05603, + "Y": 8, + "Z": -142.93127 +}, +"TerritoryId": 133, +"AetheryteShortcut": "Gridania", +"AethernetShortcut": ["[Gridania] Aetheryte Plaza", "[Gridania] Botanists' Guild"], + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_CLSHRV999_00193_Q1_000_1", + "Yes": true + } + ], + "InteractionType": "AcceptQuest", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 132,133 + ] + } + } + +} + ] + } + ] + } + \ No newline at end of file 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 new file mode 100644 index 00000000..02440c89 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/BTN/3_Way of the Botanist.json @@ -0,0 +1,42 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Cacahuetes", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { "DataId": 1000294, +"Position": { + "X": -238.05603, + "Y": 8, + "Z": -142.93127 +}, +"TerritoryId": 133, +"InteractionType": "AcceptQuest"} + ] + }, + { + "Sequence": 255, + "Steps": [ + { "DataId": 1000815, +"Position": { + "X": -233.9361, + "Y": 6.668152, + "Z": -171.03839 +}, +"TerritoryId": 133, +"InteractionType": "CompleteQuest", + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_CLSHRV001_00003_Q1_000_1", + "Yes": true + } + ], + "NextQuestId": 3 + } + ] + } + ] + } + \ No newline at end of file From 7b0faf9a37ae8d4051c1dfb172d90c1ee7b97554 Mon Sep 17 00:00:00 2001 From: cacahuetes Date: Wed, 21 Aug 2024 16:11:59 +0000 Subject: [PATCH 019/450] Upload files to "QuestPaths/2.x - A Realm Reborn/Class Quests/BLM" --- .../BLM/344_Way of the Thaumaturge.json | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/BLM/344_Way of the Thaumaturge.json 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 new file mode 100644 index 00000000..9dc1536a --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/BLM/344_Way of the Thaumaturge.json @@ -0,0 +1,42 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Cacahuetes", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { "DataId": 1002279, +"Position": { + "X": -196.8872, + "Y": 18.459997, + "Z": 59.952637 +}, +"TerritoryId": 130, +"InteractionType": "AcceptQuest"} + ] + }, + { + "Sequence": 255, + "Steps": [ + { "DataId": 1001709, +"Position": { + "X": -240.4975, + "Y": 18.7, + "Z": 85.58777 +}, +"TerritoryId": 130, +"InteractionType": "CompleteQuest", + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_CLSTHM011_00344_Q1_001_1", + "Yes": true + } + ], + "NextQuestId": 553 + } + ] + } + ] + } + \ No newline at end of file From ea0c30198deeb5227c15671491ca87383f8c88a5 Mon Sep 17 00:00:00 2001 From: cacahuetes Date: Wed, 21 Aug 2024 16:12:45 +0000 Subject: [PATCH 020/450] Upload files to "QuestPaths/2.x - A Realm Reborn/Class Quests/ROG" --- .../ROG/101_So You Want to Be a Rogue.json | 41 +++++++++++++++ .../ROG/102_Way of the Rogue.json | 50 +++++++++++++++++++ 2 files changed, 91 insertions(+) create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/ROG/101_So You Want to Be a Rogue.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/ROG/102_Way of the Rogue.json diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/ROG/101_So You Want to Be a Rogue.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/ROG/101_So You Want to Be a Rogue.json new file mode 100644 index 00000000..fc8bdb08 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/ROG/101_So You Want to Be a Rogue.json @@ -0,0 +1,41 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Cacahuetes", + "QuestSequence": [ + { + "Sequence": 255, + "Steps": [ + { "DataId": 1009944, +"Position": { + "X": -152.66656, + "Y": 2.8562405, + "Z": 243.18298 +}, +"TerritoryId": 129, +"InteractionType": "AcceptQuest", + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza","[Limsa Lominsa] Fishermens' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 129 + ] + } + }, + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_CLSROG001_00101_Q1_000_040", + "Yes": true + } + ], + "NextQuestID": 102 + } + ] + } + ] + } + \ No newline at end of file diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/ROG/102_Way of the Rogue.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/ROG/102_Way of the Rogue.json new file mode 100644 index 00000000..5c6f9486 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/ROG/102_Way of the Rogue.json @@ -0,0 +1,50 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Cacahuetes", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { "DataId": 1009944, +"Position": { + "X": -152.66656, + "Y": 2.8562405, + "Z": 243.18298 +}, +"TerritoryId": 129, +"InteractionType": "AcceptQuest"} + ] + }, + { + "Sequence": 255, + "Steps": [ + { "DataId": 1009944, +"Position": { + "X": -152.66656, + "Y": 2.8562405, + "Z": 243.18298 +}, +"TerritoryId": 129, +"InteractionType": "Interact" +}, + { "DataId": 1009943, +"Position": { + "X": -153.36847, + "Y": -129.4397, + "Z": 265.88843 +}, +"TerritoryId": 129, +"InteractionType": "CompleteQuest", + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_CLSROG011_00102_Q1_000_030", + "Yes": true + } + ] + } + ] + } + ] + } + \ No newline at end of file From 99ab970747ecdb73b97f6044dc4e374fb9678f41 Mon Sep 17 00:00:00 2001 From: cacahuetes Date: Wed, 21 Aug 2024 16:13:18 +0000 Subject: [PATCH 021/450] Upload files to "QuestPaths/2.x - A Realm Reborn/Class Quests/LTW" --- .../LTW/105_Way of the Leatherworker.json | 42 +++++++++++++++++++ ...188_So You Want to Be a Leatherworker.json | 40 ++++++++++++++++++ 2 files changed, 82 insertions(+) create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/LTW/105_Way of the Leatherworker.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/LTW/188_So You Want to Be a Leatherworker.json diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/LTW/105_Way of the Leatherworker.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/LTW/105_Way of the Leatherworker.json new file mode 100644 index 00000000..8c8f840a --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/LTW/105_Way of the Leatherworker.json @@ -0,0 +1,42 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Cacahuetes", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { "DataId": 1000352, +"Position": { + "X": 65.69006, + "Y": 8, + "Z": -147.41742 +}, +"TerritoryId": 133, +"InteractionType": "AcceptQuest"} + ] + }, + { + "Sequence": 255, + "Steps": [ + { "DataId": 1000691, +"Position": { + "X": 71.97681, + "Y": 8, + "Z": -166.52173 +}, +"TerritoryId": 133, +"InteractionType": "CompleteQuest", + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_CLSTAN000_00105_Q1_000_1", + "Yes": true + } + ], + "NextQuestId": 105 + } + ] + } + ] + } + \ No newline at end of file diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/LTW/188_So You Want to Be a Leatherworker.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/LTW/188_So You Want to Be a Leatherworker.json new file mode 100644 index 00000000..1114efb1 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/LTW/188_So You Want to Be a Leatherworker.json @@ -0,0 +1,40 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Cacahuetes", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { "DataId": 1000352, +"Position": { + "X": 65.69006, + "Y": 8, + "Z": -147.41742 +}, +"TerritoryId": 133, +"InteractionType": "Interact", + "AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Leatherworkers' Guild & Shaded Bower" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 133 + ] + } + }, + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_CLSTAN999_00188_Q1_000_1", + "Yes": true + } + ]} + ] + } + ] + } + \ No newline at end of file From 6967cfc8f77d31bd2ba4abf42c979ff6ef82abf1 Mon Sep 17 00:00:00 2001 From: cacahuetes Date: Wed, 21 Aug 2024 16:13:52 +0000 Subject: [PATCH 022/450] Upload files to "QuestPaths/2.x - A Realm Reborn/Class Quests/WVR" --- .../WVR/189_So You Want to Be a Weaver.json | 38 +++++++++++++++++ .../WVR/534_Way of the Weaver.json | 42 +++++++++++++++++++ 2 files changed, 80 insertions(+) create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/WVR/189_So You Want to Be a Weaver.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/WVR/534_Way of the Weaver.json diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/WVR/189_So You Want to Be a Weaver.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/WVR/189_So You Want to Be a Weaver.json new file mode 100644 index 00000000..9428fff9 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/WVR/189_So You Want to Be a Weaver.json @@ -0,0 +1,38 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Cacahuetes", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { "DataId": 1002283, +"Position": { + "X": 134.90503, + "Y": 7.5919275, + "Z": 98.039185 +}, +"TerritoryId": 131, +"InteractionType": "Interact", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": ["[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild"], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 131 + ] + } + }, + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_CLSWVR001_00189_Q1_000_1", + "Yes": true + } + ]} + ] + } + ] + } + \ No newline at end of file diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/WVR/534_Way of the Weaver.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/WVR/534_Way of the Weaver.json new file mode 100644 index 00000000..6196aadd --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/WVR/534_Way of the Weaver.json @@ -0,0 +1,42 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Cacahuetes", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { "DataId": 1002283, +"Position": { + "X": 134.90503, + "Y": 7.5919275, + "Z": 98.039185 +}, +"TerritoryId": 131, +"InteractionType": "AcceptQuest"} + ] + }, + { + "Sequence": 255, + "Steps": [ + { "DataId": 1003818, +"Position": { + "X": 157.36621, + "Y": 7.7920074, + "Z": 98.924194 +}, +"TerritoryId": 131, +"InteractionType": "CompleteQuest", + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_CLSWVR011_00534_SYSTEM_Q0", + "Yes": true + } + ], + "NextQuestId": 534 + } + ] + } + ] + } + \ No newline at end of file From 5e16c154c4b4a6a580d522ad0a9070646267511b Mon Sep 17 00:00:00 2001 From: cacahuetes Date: Wed, 21 Aug 2024 16:21:20 +0000 Subject: [PATCH 023/450] Venture unlock! Required: Active Reatiners --- .../Misc/1433_An Ill-conceived Venture.json | 74 +++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 QuestPaths/2.x - A Realm Reborn/Unlocks/Misc/1433_An Ill-conceived Venture.json diff --git a/QuestPaths/2.x - A Realm Reborn/Unlocks/Misc/1433_An Ill-conceived Venture.json b/QuestPaths/2.x - A Realm Reborn/Unlocks/Misc/1433_An Ill-conceived Venture.json new file mode 100644 index 00000000..605677c4 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Unlocks/Misc/1433_An Ill-conceived Venture.json @@ -0,0 +1,74 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Cacahuetes", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1005412, +"Position": { + "X": -108.14075, + "Y": 18.000334, + "Z": -0.22894287 +}, +"TerritoryId": 129, + "AetheryteShortcut": "Limsa Lominsa", + "InteractionType": "AcceptQuest", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 129 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": 248.49304, + "Y": -11.838913, + "Z": 97.45935 + }, + "TerritoryId": 138, + "InteractionType": "Combat", + "AetheryteShortcut": "Western La Noscea - Aleport", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [ + 397 + ] + }, + {"DataId": 1005413, +"Position": { + "X": 248.49304, + "Y": -11.838913, + "Z": 97.45935 +}, +"TerritoryId": 138, +"InteractionType": "Interact"} + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1003275, +"Position": { + "X": -147.1123, + "Y": 18.2, + "Z": 14.358704 +}, +"TerritoryId": 129, +"InteractionType": "CompleteQuest", + "AetheryteShortcut": "Limsa Lominsa" + } + ] + } + ] + } + \ No newline at end of file From e7fa50db2016a2328841dce2ca2bf31c9a8cb473 Mon Sep 17 00:00:00 2001 From: cacahuetes Date: Thu, 22 Aug 2024 13:42:59 +0000 Subject: [PATCH 024/450] Update QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/131_Way of the Archer.json --- .../{ARC => BRD}/131_Way of the Archer.json | 82 +++++++++---------- 1 file changed, 41 insertions(+), 41 deletions(-) rename QuestPaths/2.x - A Realm Reborn/Class Quests/{ARC => BRD}/131_Way of the Archer.json (95%) diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/ARC/131_Way of the Archer.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/131_Way of the Archer.json similarity index 95% rename from QuestPaths/2.x - A Realm Reborn/Class Quests/ARC/131_Way of the Archer.json rename to QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/131_Way of the Archer.json index 08c556d1..69146963 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/ARC/131_Way of the Archer.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/131_Way of the Archer.json @@ -1,42 +1,42 @@ -{ - "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "Cacahuetes", - "QuestSequence": [ - { - "Sequence": 0, - "Steps": [ - { "DataId": 1000197, -"Position": { - "X": 201.31226, - "Y": -3.1634123E-15, - "Z": 43.900146 -}, -"TerritoryId": 132, - "InteractionType": "AcceptQuest"} - ] - }, - { - "Sequence": 255, - "Steps": [ - { "DataId": 1000200, -"Position": { - "X": 209.55212, - "Y": 0.9999819, - "Z": 35.01941 -}, -"TerritoryId": 132, -"InteractionType": "CompleteQuest", - - "DialogueChoices": [ - { - "Type": "YesNo", - "Prompt": "TEXT_CLSARC998_00131_Q1_000_1", - "Yes": true - } - ] - } - ] - } - ] - } +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Cacahuetes", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { "DataId": 1000197, +"Position": { + "X": 201.31226, + "Y": -3.1634123E-15, + "Z": 43.900146 +}, +"TerritoryId": 132, + "InteractionType": "AcceptQuest"} + ] + }, + { + "Sequence": 255, + "Steps": [ + { "DataId": 1000200, +"Position": { + "X": 209.55212, + "Y": 0.9999819, + "Z": 35.01941 +}, +"TerritoryId": 132, +"InteractionType": "CompleteQuest", + + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_CLSARC998_00131_Q1_000_1", + "Yes": true + } + ] + } + ] + } + ] + } \ No newline at end of file From 53d34888715d05119b8bdffcd2a6224af6f45dbc Mon Sep 17 00:00:00 2001 From: cacahuetes Date: Thu, 22 Aug 2024 13:43:21 +0000 Subject: [PATCH 025/450] Update QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/181_So You Want to Be an Archer.json --- .../181_So You Want to Be an Archer.json | 82 +++++++++---------- 1 file changed, 41 insertions(+), 41 deletions(-) rename QuestPaths/2.x - A Realm Reborn/Class Quests/{ARC => BRD}/181_So You Want to Be an Archer.json (96%) diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/ARC/181_So You Want to Be an Archer.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/181_So You Want to Be an Archer.json similarity index 96% rename from QuestPaths/2.x - A Realm Reborn/Class Quests/ARC/181_So You Want to Be an Archer.json rename to QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/181_So You Want to Be an Archer.json index b4a8b5fe..7ea66e41 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/ARC/181_So You Want to Be an Archer.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/181_So You Want to Be an Archer.json @@ -1,42 +1,42 @@ -{ - "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "Cacahuetes", - "QuestSequence": [ - { - "Sequence": 0, - "Steps": [ - { "DataId": 1000197, -"Position": { - "X": 201.31226, - "Y": -3.1634123E-15, - "Z": 43.900146 -}, -"TerritoryId": 132, -"AetheryteShortcut": "Gridania", - "AethernetShortcut": [ - "[Gridania] Aetheryte Plaza", - "[Gridania] Archers' Guild" - ], - "DialogueChoices": [ - { - "Type": "YesNo", - "Prompt": "TEXT_CLSARC999_00181_Q1_000_1", - "Yes": true, - "$": "No Godbert prompt" - } - ], - "InteractionType": "AcceptQuest", - "SkipConditions": { - "AetheryteShortcutIf": { - "InSameTerritory": true, - "InTerritory": [ - 132 - ] - } - } - } - ] - } - ] - } +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Cacahuetes", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { "DataId": 1000197, +"Position": { + "X": 201.31226, + "Y": -3.1634123E-15, + "Z": 43.900146 +}, +"TerritoryId": 132, +"AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Archers' Guild" + ], + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_CLSARC999_00181_Q1_000_1", + "Yes": true, + "$": "No Godbert prompt" + } + ], + "InteractionType": "AcceptQuest", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 132 + ] + } + } + } + ] + } + ] + } \ No newline at end of file From 0029711b9f89a8fcabd6624b539ae21d0c08cf26 Mon Sep 17 00:00:00 2001 From: cacahuetes Date: Thu, 22 Aug 2024 13:44:03 +0000 Subject: [PATCH 026/450] Update QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/101_So You Want to Be a Rogue.json --- .../101_So You Want to Be a Rogue.json | 80 +++++++++---------- 1 file changed, 40 insertions(+), 40 deletions(-) rename QuestPaths/2.x - A Realm Reborn/Class Quests/{ROG => NIN}/101_So You Want to Be a Rogue.json (95%) diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/ROG/101_So You Want to Be a Rogue.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/101_So You Want to Be a Rogue.json similarity index 95% rename from QuestPaths/2.x - A Realm Reborn/Class Quests/ROG/101_So You Want to Be a Rogue.json rename to QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/101_So You Want to Be a Rogue.json index fc8bdb08..6d6923c9 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/ROG/101_So You Want to Be a Rogue.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/101_So You Want to Be a Rogue.json @@ -1,41 +1,41 @@ -{ - "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "Cacahuetes", - "QuestSequence": [ - { - "Sequence": 255, - "Steps": [ - { "DataId": 1009944, -"Position": { - "X": -152.66656, - "Y": 2.8562405, - "Z": 243.18298 -}, -"TerritoryId": 129, -"InteractionType": "AcceptQuest", - "AetheryteShortcut": "Limsa Lominsa", - "AethernetShortcut": [ - "[Limsa Lominsa] Aetheryte Plaza","[Limsa Lominsa] Fishermens' Guild" - ], - "SkipConditions": { - "AetheryteShortcutIf": { - "InSameTerritory": true, - "InTerritory": [ - 129 - ] - } - }, - "DialogueChoices": [ - { - "Type": "YesNo", - "Prompt": "TEXT_CLSROG001_00101_Q1_000_040", - "Yes": true - } - ], - "NextQuestID": 102 - } - ] - } - ] - } +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Cacahuetes", + "QuestSequence": [ + { + "Sequence": 255, + "Steps": [ + { "DataId": 1009944, +"Position": { + "X": -152.66656, + "Y": 2.8562405, + "Z": 243.18298 +}, +"TerritoryId": 129, +"InteractionType": "AcceptQuest", + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza","[Limsa Lominsa] Fishermens' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 129 + ] + } + }, + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_CLSROG001_00101_Q1_000_040", + "Yes": true + } + ], + "NextQuestID": 102 + } + ] + } + ] + } \ No newline at end of file From abbc82cfbdc5d124fee6252ecc0e5390a641f60c Mon Sep 17 00:00:00 2001 From: cacahuetes Date: Thu, 22 Aug 2024 13:44:34 +0000 Subject: [PATCH 027/450] Update QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/102_Way of the Rogue.json --- .../{ROG => NIN}/102_Way of the Rogue.json | 98 +++++++++---------- 1 file changed, 49 insertions(+), 49 deletions(-) rename QuestPaths/2.x - A Realm Reborn/Class Quests/{ROG => NIN}/102_Way of the Rogue.json (95%) diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/ROG/102_Way of the Rogue.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/102_Way of the Rogue.json similarity index 95% rename from QuestPaths/2.x - A Realm Reborn/Class Quests/ROG/102_Way of the Rogue.json rename to QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/102_Way of the Rogue.json index 5c6f9486..5006b09f 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/ROG/102_Way of the Rogue.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/102_Way of the Rogue.json @@ -1,50 +1,50 @@ -{ - "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "Cacahuetes", - "QuestSequence": [ - { - "Sequence": 0, - "Steps": [ - { "DataId": 1009944, -"Position": { - "X": -152.66656, - "Y": 2.8562405, - "Z": 243.18298 -}, -"TerritoryId": 129, -"InteractionType": "AcceptQuest"} - ] - }, - { - "Sequence": 255, - "Steps": [ - { "DataId": 1009944, -"Position": { - "X": -152.66656, - "Y": 2.8562405, - "Z": 243.18298 -}, -"TerritoryId": 129, -"InteractionType": "Interact" -}, - { "DataId": 1009943, -"Position": { - "X": -153.36847, - "Y": -129.4397, - "Z": 265.88843 -}, -"TerritoryId": 129, -"InteractionType": "CompleteQuest", - "DialogueChoices": [ - { - "Type": "YesNo", - "Prompt": "TEXT_CLSROG011_00102_Q1_000_030", - "Yes": true - } - ] - } - ] - } - ] - } +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Cacahuetes", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { "DataId": 1009944, +"Position": { + "X": -152.66656, + "Y": 2.8562405, + "Z": 243.18298 +}, +"TerritoryId": 129, +"InteractionType": "AcceptQuest"} + ] + }, + { + "Sequence": 255, + "Steps": [ + { "DataId": 1009944, +"Position": { + "X": -152.66656, + "Y": 2.8562405, + "Z": 243.18298 +}, +"TerritoryId": 129, +"InteractionType": "Interact" +}, + { "DataId": 1009943, +"Position": { + "X": -153.36847, + "Y": -129.4397, + "Z": 265.88843 +}, +"TerritoryId": 129, +"InteractionType": "CompleteQuest", + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_CLSROG011_00102_Q1_000_030", + "Yes": true + } + ] + } + ] + } + ] + } \ No newline at end of file From 772300f44b1a853c1403b086ee5d191269cd1f8d Mon Sep 17 00:00:00 2001 From: cacahuetes Date: Thu, 22 Aug 2024 18:19:14 +0000 Subject: [PATCH 028/450] Update QuestPaths/2.x - A Realm Reborn/Class Quests/WHM/48_Trial by Earth.json --- .../Class Quests/WHM/48_Trial by Earth.json | 269 +++++++++--------- 1 file changed, 130 insertions(+), 139 deletions(-) diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/WHM/48_Trial by Earth.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/WHM/48_Trial by Earth.json index 1cc917cf..58ff4f0d 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/WHM/48_Trial by Earth.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/WHM/48_Trial by Earth.json @@ -1,139 +1,130 @@ -{ - "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "Cacahuetes", - "QuestSequence": [ - { - "Sequence": 0, - "Steps": [ - { - "DataId": 1000692, - "Position": { - "X": -258.8083, - "Y": -5.7735243, - "Z": -27.267883 - }, - "TerritoryId": 133, - "AetheryteShortcut": "Gridania", - "AethernetShortcut": [ - "[Gridania] Aetheryte Plaza", - "[Gridania] Conjurers' Guild" - ], - "InteractionType": "AcceptQuest", - "SkipConditions": { - "AetheryteShortcutIf": { - "InSameTerritory": true, - "InTerritory": [ - 133 - ] - } - } - } - ] - }, - { - "Sequence": 1, - "Steps": [ - { - "Position": { - "X": 220.82336, - "Y": -28.335487, - "Z": 336.9016 - }, - "AethernetShortcut": [ - "[Gridania] Conjurers' Guild", - "[Gridania] Yellow Serpent Gate (North Shroud)" - ], - "TerritoryId": 154, - "InteractionType": "WalkTo", - "Fly": true, - "SkipConditions": { - "StepIf": { - "Flying": "Locked" - } - } - }, - { - "DataId": 1000764, - "Position": { - "X": 218.89062, - "Y": -28.252495, - "Z": 338.39917 - }, - "TerritoryId": 154, - "InteractionType": "Interact" - } - ] - }, - { - "Sequence": 2, - "Steps": [ - { - "DataId": 2000883, - "Position": { - "X": 325.1848, - "Y": -5.217115, - "Z": 390.488 - }, - "TerritoryId": 154, - "InteractionType": "Combat", - "EnemySpawnType": "AfterInteraction", - "KillEnemyDataIds": [ - 294 - ], - "Fly": true - } - ] - }, - { - "Sequence": 3, - "Steps": [ - { - "Position": { - "X": 220.82336, - "Y": -28.335487, - "Z": 336.9016 - }, - "TerritoryId": 154, - "InteractionType": "WalkTo", - "Fly": true, - "SkipConditions": { - "StepIf": { - "Flying": "Locked" - } - } - }, - { - "DataId": 1000764, - "Position": { - "X": 218.89062, - "Y": -28.252495, - "Z": 338.39917 - }, - "TerritoryId": 154, - "InteractionType": "Interact" - } - ] - }, - { - "Sequence": 255, - "Steps": [ - { - "DataId": 1000692, - "Position": { - "X": -258.8083, - "Y": -5.7735243, - "Z": -27.267883 - }, - "TerritoryId": 133, - "InteractionType": "CompleteQuest", - "AetheryteShortcut": "Gridania", - "AethernetShortcut": [ - "[Gridania] Aetheryte Plaza", - "[Gridania] Conjurers' Guild" - ], - "NextQuestId": 91 - } - ] - } - ] -} +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Cacahuetes", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1000692, + "Position": { + "X": -258.8083, + "Y": -5.7735243, + "Z": -27.267883 + }, + "TerritoryId": 133, + "AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Conjurers' Guild" + ], + "InteractionType": "AcceptQuest", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [133] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": 220.82336, + "Y": -28.335487, + "Z": 336.9016 + }, + "AethernetShortcut": [ + "[Gridania] Conjurers' Guild", + "[Gridania] Yellow Serpent Gate (North Shroud)" + ], + "TerritoryId": 154, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 1000764, + "Position": { + "X": 218.89062, + "Y": -28.252495, + "Z": 338.39917 + }, + "TerritoryId": 154, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2000883, + "Position": { + "X": 325.1848, + "Y": -5.217115, + "Z": 390.488 + }, + "TerritoryId": 154, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [294], + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "Position": { + "X": 220.82336, + "Y": -28.335487, + "Z": 336.9016 + }, + "TerritoryId": 154, + "InteractionType": "WalkTo", + "Fly": true, + "SkipConditions": { + "StepIf": { + "Flying": "Locked" + } + } + }, + { + "DataId": 1000764, + "Position": { + "X": 218.89062, + "Y": -28.252495, + "Z": 338.39917 + }, + "TerritoryId": 154, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1000692, + "Position": { + "X": -258.8083, + "Y": -5.7735243, + "Z": -27.267883 + }, + "TerritoryId": 133, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Conjurers' Guild" + ], + "NextQuestId": 91 + } + ] + } + ] +} From 25e36fddc80080019b604ebf48fbb9f5b6eebd47 Mon Sep 17 00:00:00 2001 From: pot0to Date: Wed, 21 Aug 2024 14:18:33 -0700 Subject: [PATCH 029/450] adding new brd paths and 1 thm --- .../BLM/351_The Threat of Perplexity.json | 217 ++++++++++++++++++ .../BRD/1085_A Song of Bards and Bowmen.json | 133 +++++++++++ .../BRD/1086_The Archer's Anthem.json | 85 +++++++ .../BRD/1087_Bard's-eye View.json | 85 +++++++ .../BRD/1088_Doing It the Bard Way.json | 85 +++++++ .../BRD/1089_Pieces of the Past.json | 124 ++++++++++ .../BRD/1090_Requiem for the Fallen.json | 65 ++++++ .../BRD/1713_On the Road Again.json | 209 +++++++++++++++++ 8 files changed, 1003 insertions(+) create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/BLM/351_The Threat of Perplexity.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/1085_A Song of Bards and Bowmen.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/1086_The Archer's Anthem.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/1087_Bard's-eye View.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/1088_Doing It the Bard Way.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/1089_Pieces of the Past.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/1090_Requiem for the Fallen.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/1713_On the Road Again.json 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 new file mode 100644 index 00000000..75d2bceb --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/BLM/351_The Threat of Perplexity.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": 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, + "InTerritory": [ + 130 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1001712, + "Position": { + "X": -241.50458, + "Y": 19.57727, + "Z": 84.64172 + }, + "TerritoryId": 130, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1002305, + "Position": { + "X": 14.419739, + "Y": 22.157166, + "Z": 72.3125 + }, + "TerritoryId": 140, + "Fly": true, + "InteractionType": "Interact", + "AetheryteShortcut": "Western Thanalan - Horizon", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 140 + ] + } + } + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1002324, + "Position": { + "X": 112.80994, + "Y": 17.536886, + "Z": 31.296265 + }, + "TerritoryId": 140, + "Fly": true, + "InteractionType": "Interact" + }, + { + "DataId": 1002322, + "Position": { + "X": 116.89929, + "Y": 17.536886, + "Z": 12.954895 + }, + "TerritoryId": 140, + "InteractionType": "Interact" + }, + { + "DataId": 1002323, + "Position": { + "X": 132.43298, + "Y": 21.104982, + "Z": 9.018005 + }, + "TerritoryId": 140, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1002305, + "Position": { + "X": 14.419739, + "Y": 22.157166, + "Z": 72.3125 + }, + "TerritoryId": 140, + "Fly": true, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 2001472, + "Position": { + "X": 150.71338, + "Y": 18.783813, + "Z": -5.7526855 + }, + "TerritoryId": 140, + "Fly": true, + "InteractionType": "SinglePlayerDuty" + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1002305, + "Position": { + "X": 14.419739, + "Y": 22.157166, + "Z": 72.3125 + }, + "TerritoryId": 140, + "Fly": true, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 7, + "Steps": [ + { + "DataId": 2001474, + "Position": { + "X": 96.238525, + "Y": 16.952698, + "Z": 188.83032 + }, + "TerritoryId": 140, + "Fly": true, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 8, + "Steps": [ + { + "DataId": 1001712, + "Position": { + "X": -241.50458, + "Y": 19.57727, + "Z": 84.64172 + }, + "TerritoryId": 130, + "InteractionType": "Interact", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Thaumaturges' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 130 + ] + } + } + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1001708, + "Position": { + "X": -250.3548, + "Y": 18, + "Z": 80.88806 + }, + "TerritoryId": 130, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/1085_A Song of Bards and Bowmen.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/1085_A Song of Bards and Bowmen.json new file mode 100644 index 00000000..0e34595f --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/1085_A Song of Bards and Bowmen.json @@ -0,0 +1,133 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "pot0to", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1000200, + "Position": { + "X": 209.55212, + "Y": 0.9999819, + "Z": 35.01941 + }, + "TerritoryId": 132, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Archers' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 132 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1006750, + "Position": { + "X": 16.464417, + "Y": 6.750492, + "Z": -7.3396606 + }, + "TerritoryId": 153, + "InteractionType": "Interact", + "AetheryteShortcut": "South Shroud - Quarrymill", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 153 + ] + } + } + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1007834, + "Position": { + "X": 447.2876, + "Y": 2.147105, + "Z": 21.86615 + }, + "TerritoryId": 153, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2002364, + "Position": { + "X": 457.9995, + "Y": 0.44250488, + "Z": -106.73688 + }, + "TerritoryId": 153, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "Position": { + "X": 440.87814, + "Y": 2.8651512, + "Z": 25.295788 + }, + "InteractionType": "", + "TerritoryId": 153, + "Fly": true + }, + { + "DataId": 1007834, + "Position": { + "X": 447.2876, + "Y": 2.147105, + "Z": 21.86615 + }, + "TerritoryId": 153, + "InteractionType": "Interact", + "Fly": false + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1006750, + "Position": { + "X": 16.464417, + "Y": 6.750492, + "Z": -7.3396606 + }, + "TerritoryId": 153, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} 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 new file mode 100644 index 00000000..dab7c28a --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/1086_The Archer's Anthem.json @@ -0,0 +1,85 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "pot0to", + "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, + "InTerritory": [ + 153 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2002366, + "Position": { + "X": -143.0534, + "Y": 68.192505, + "Z": 586.1448 + }, + "TerritoryId": 137, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 1945 + ], + "AetheryteShortcut": "Eastern La Noscea - Wineport", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 137 + ] + } + } + } + ] + }, + { + "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, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 153 + ] + } + } + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/1087_Bard's-eye View.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/1087_Bard's-eye View.json new file mode 100644 index 00000000..7332dbc9 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/1087_Bard's-eye View.json @@ -0,0 +1,85 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "pot0to", + "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, + "InTerritory": [ + 153 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2002365, + "Position": { + "X": 272.05298, + "Y": 18.875366, + "Z": -164.53809 + }, + "TerritoryId": 145, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 58 + ], + "AetheryteShortcut": "Eastern Thanalan - Camp Drybone", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 145 + ] + } + } + } + ] + }, + { + "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, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 153 + ] + } + } + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/1088_Doing It the Bard Way.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/1088_Doing It the Bard Way.json new file mode 100644 index 00000000..e357eb15 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/1088_Doing It the Bard Way.json @@ -0,0 +1,85 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "pot0to", + "Comment": "Need to enable some way of doing single player duty first?", + "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, + "InTerritory": [ + 153 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2002367, + "Position": { + "X": 104.32593, + "Y": -21.774658, + "Z": 171.00781 + }, + "TerritoryId": 154, + "InteractionType": "UseItem", + "ItemId": 2000952, + "EnemySpawnType": "AutoOnEnterArea", + "AetheryteShortcut": "North Shroud - Fallgourd Float", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 137 + ] + } + } + } + ] + }, + { + "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, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 153 + ] + } + }, + "NextQuestId": 1089 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/1089_Pieces of the Past.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/1089_Pieces of the Past.json new file mode 100644 index 00000000..a04de873 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/1089_Pieces of the Past.json @@ -0,0 +1,124 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "pot0to", + "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, + "InTerritory": [ + 153 + ] + } + }, + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_JOBBRD451_01089_Q1_000_000", + "Yes": true + } + ] + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2002528, + "Position": { + "X": 512.291, + "Y": 10.482849, + "Z": 148.30237 + }, + "TerritoryId": 153, + "InteractionType": "Interact", + "Fly": true + }, + { + "DataId": 2002530, + "Position": { + "X": 576.2263, + "Y": -24.002502, + "Z": -423.75836 + }, + "TerritoryId": 152, + "InteractionType": "Interact", + "Fly": true, + "AetheryteShortcut": "East Shroud - Hawthorne Hut" + }, + { + "Position": { + "X": -143.16391, + "Y": -25.75711, + "Z": 34.669674 + }, + "TerritoryId": 138, + "Fly": true, + "AetheryteShortcut": "Western La Noscea - Aleport" + }, + { + "DataId": 2002527, + "Position": { + "X": -168.29181, + "Y": -21.5, + "Z": 44.144287 + }, + "TerritoryId": 138, + "InteractionType": "Interact", + "Fly": false + }, + { + "DataId": 2002529, + "Position": { + "X": -324.7273, + "Y": 87.96814, + "Z": -133.50122 + }, + "TerritoryId": 147, + "InteractionType": "Interact", + "Fly": true, + "AetheryteShortcut": "Northern Thanalan - Ceruleum Processing Plant" + } + ] + }, + { + "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, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 153 + ] + } + } + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/1090_Requiem for the Fallen.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/1090_Requiem for the Fallen.json new file mode 100644 index 00000000..d9232422 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/1090_Requiem for the Fallen.json @@ -0,0 +1,65 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "pot0to", + "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, + "InTerritory": [ + 153 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2002373, + "Position": { + "X": 72.098755, + "Y": 227.19153, + "Z": 380.84985 + }, + "TerritoryId": 155, + "InteractionType": "UseItem", + "ItemId": 2000953, + "EnemySpawnType": "AutoOnEnterArea", + "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1007891, + "Position": { + "X": 70.17627, + "Y": 226.72212, + "Z": 381.30762 + }, + "TerritoryId": 155, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/1713_On the Road Again.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/1713_On the Road Again.json new file mode 100644 index 00000000..03dfae4b --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/1713_On the Road Again.json @@ -0,0 +1,209 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "pot0to", + "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, + "InTerritory": [ + 153 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1014202, + "Position": { + "X": 190.14258, + "Y": -2.5202732, + "Z": 73.136475 + }, + "TerritoryId": 132, + "InteractionType": "Interact", + "AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Archers' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 132 + ] + } + } + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1000423, + "Position": { + "X": 232.04382, + "Y": 1.999974, + "Z": 45.578613 + }, + "TerritoryId": 132, + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_JOBBRD501_01713_Q1_000_000", + "Yes": true + } + ] + }, + { + "DataId": 1014203, + "Position": { + "X": 1.2359009, + "Y": 0.5000253, + "Z": -1.083435 + }, + "TerritoryId": 204, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1014203, + "Position": { + "X": 1.2359009, + "Y": 0.5000253, + "Z": -1.083435 + }, + "TerritoryId": 204, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1014207, + "Position": { + "X": 28.854736, + "Y": 6.655561, + "Z": 421.46936 + }, + "TerritoryId": 152, + "InteractionType": "Combat", + "AetheryteShortcut": "East Shroud - Hawthorne Hut", + "Fly": true, + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 4684 + ] + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1014207, + "Position": { + "X": 28.854736, + "Y": 6.655561, + "Z": 421.46936 + }, + "TerritoryId": 152, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1014204, + "Position": { + "X": 24.673828, + "Y": 6.386869, + "Z": 414.9386 + }, + "TerritoryId": 152, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 7, + "Steps": [ + { + "DataId": 1014205, + "Position": { + "X": 190.72253, + "Y": -2.5872245, + "Z": 74.75391 + }, + "TerritoryId": 132, + "InteractionType": "Interact", + "AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Archers' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 132 + ] + } + } + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1014208, + "Position": { + "X": -52.536804, + "Y": 8.059147, + "Z": 31.72351 + }, + "TerritoryId": 418, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ishgard", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 418 + ] + } + } + } + ] + } + ] +} From d010dec9f6d1f9fc235a97997848232b527a9c75 Mon Sep 17 00:00:00 2001 From: pot0to Date: Wed, 21 Aug 2024 15:01:48 -0700 Subject: [PATCH 030/450] fixing interaction type --- .../Class Quests/BRD/1085_A Song of Bards and Bowmen.json | 2 +- .../Class Quests/BRD/1089_Pieces of the Past.json | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/1085_A Song of Bards and Bowmen.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/1085_A Song of Bards and Bowmen.json index 0e34595f..9fae75ae 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/1085_A Song of Bards and Bowmen.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/1085_A Song of Bards and Bowmen.json @@ -96,7 +96,7 @@ "Y": 2.8651512, "Z": 25.295788 }, - "InteractionType": "", + "InteractionType": "WalkTo", "TerritoryId": 153, "Fly": true }, diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/1089_Pieces of the Past.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/1089_Pieces of the Past.json index a04de873..dbde6fc2 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/1089_Pieces of the Past.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/1089_Pieces of the Past.json @@ -68,6 +68,7 @@ }, "TerritoryId": 138, "Fly": true, + "InteractionType": "WalkTo", "AetheryteShortcut": "Western La Noscea - Aleport" }, { From 6e7ade5ee74ac2044a3d5dd47de1e1f47e1ff7e2 Mon Sep 17 00:00:00 2001 From: pot0to Date: Thu, 22 Aug 2024 15:33:18 -0700 Subject: [PATCH 031/450] resolved merge conflicts --- QuestPaths/quest-v1.json | 1 + Questionable.Model/Questing/Converter/ActionConverter.cs | 1 + Questionable.Model/Questing/EAction.cs | 1 + 3 files changed, 3 insertions(+) diff --git a/QuestPaths/quest-v1.json b/QuestPaths/quest-v1.json index 0a3be732..ff535a8f 100644 --- a/QuestPaths/quest-v1.json +++ b/QuestPaths/quest-v1.json @@ -838,6 +838,7 @@ "description": "The action to use", "enum": [ "Heavy Swing", + "Heavy Shot", "Cure", "Esuna", "Physick", diff --git a/Questionable.Model/Questing/Converter/ActionConverter.cs b/Questionable.Model/Questing/Converter/ActionConverter.cs index 5410e44b..42e6e384 100644 --- a/Questionable.Model/Questing/Converter/ActionConverter.cs +++ b/Questionable.Model/Questing/Converter/ActionConverter.cs @@ -8,6 +8,7 @@ public sealed class ActionConverter() : EnumConverter(Values) private static readonly Dictionary Values = new() { { EAction.HeavySwing, "Heavy Swing" }, + { EAction.HeavyShot, "Heavy Shot" }, { EAction.Cure, "Cure" }, { EAction.Esuna, "Esuna" }, { EAction.Physick, "Physick" }, diff --git a/Questionable.Model/Questing/EAction.cs b/Questionable.Model/Questing/EAction.cs index 08f71d5a..15e7f842 100644 --- a/Questionable.Model/Questing/EAction.cs +++ b/Questionable.Model/Questing/EAction.cs @@ -7,6 +7,7 @@ namespace Questionable.Model.Questing; public enum EAction { HeavySwing = 31, + HeavyShot = 97, Cure = 120, Esuna = 7568, Physick = 190, From e21ae1c6cd8e9afa9632fa39b7166e393895f3ce Mon Sep 17 00:00:00 2001 From: pot0to Date: Thu, 22 Aug 2024 02:26:37 -0700 Subject: [PATCH 032/450] added quest path jsons --- .../BRD/134_Training with Leih.json | 344 ++++++++++++++++++ .../Class Quests/BRD/219_My First Bow.json | 179 +++++++++ .../BRD/46_A Matter of Perspective.json | 326 +++++++++++++++++ .../BRD/68_Violators Will Be Shot.json | 261 +++++++++++++ .../BRD/70_To Catch a Poacher.json | 162 +++++++++ .../Class Quests/BRD/71_Homecoming.json | 123 +++++++ .../BRD/76_The One That Got Away.json | 85 +++++ 7 files changed, 1480 insertions(+) create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/134_Training with Leih.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/219_My First Bow.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/46_A Matter of Perspective.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/68_Violators Will Be Shot.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/70_To Catch a Poacher.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/71_Homecoming.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/76_The One That Got Away.json diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/134_Training with Leih.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/134_Training with Leih.json new file mode 100644 index 00000000..a42df442 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/134_Training with Leih.json @@ -0,0 +1,344 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Cacahuetes", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1000200, + "Position": { + "X": 209.55212, + "Y": 0.9999819, + "Z": 35.01941 + }, + "TerritoryId": 132, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Archers' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 132 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1000199, + "Position": { + "X": 211.13904, + "Y": 1.5032018E-05, + "Z": 28.580078 + }, + "TerritoryId": 132, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": -87.448326, + "Y": -3.8114734, + "Z": -77.68485 + }, + "TerritoryId": 148, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Central Shroud - Bentbranch Meadows" + }, + { + "DataId": 2001177, + "Position": { + "X": -88.24298, + "Y": 3.768982, + "Z": -88.24298 + }, + "TerritoryId": 148, + "StopDistance": 15, + "InteractionType": "Action", + "Action": "Heavy Shot" + }, + { + "Position": { + "X": -113.806755, + "Y": -3.824695, + "Z": -61.20561 + }, + "TerritoryId": 148, + "InteractionType": "WalkTo" + }, + { + "DataId": 2001175, + "Position": { + "X": -115.58716, + "Y": -3.402832, + "Z": -51.07196 + }, + "TerritoryId": 148, + "StopDistance": 15, + "InteractionType": "Action", + "Action": "Heavy Shot" + }, + { + "Position": { + "X": -142.90863, + "Y": -1.355497, + "Z": -69.45994 + }, + "TerritoryId": 148, + "InteractionType": "WalkTo" + }, + { + "DataId": 2000959, + "Position": { + "X": -143.32806, + "Y": -0.41204834, + "Z": -58.884644 + }, + "TerritoryId": 148, + "StopDistance": 15, + "InteractionType": "Action", + "Action": "Heavy Shot" + }, + { + "Position": { + "X": -154.95493, + "Y": 4.0352364, + "Z": -132.85217 + }, + "TerritoryId": 148, + "InteractionType": "WalkTo" + }, + { + "DataId": 2000958, + "Position": { + "X": -166.97955, + "Y": 10.2387085, + "Z": -138.41461 + }, + "TerritoryId": 148, + "StopDistance": 15, + "InteractionType": "Action", + "Action": "Heavy Shot" + }, + { + "Position": { + "X": -114.08684, + "Y": 7.6589117, + "Z": -173.19547 + }, + "TerritoryId": 148, + "InteractionType": "WalkTo" + }, + { + "DataId": 2000957, + "Position": { + "X": -120.68359, + "Y": 12.49707, + "Z": -182.39111 + }, + "TerritoryId": 148, + "StopDistance": 15, + "InteractionType": "Action", + "Action": "Heavy Shot" + }, + { + "Position": { + "X": -74.71171, + "Y": -4, + "Z": -190.44055 + }, + "TerritoryId": 148, + "InteractionType": "WalkTo" + }, + { + "DataId": 2000956, + "Position": { + "X": -80.76605, + "Y": -2.3651733, + "Z": -196.49048 + }, + "TerritoryId": 148, + "StopDistance": 15, + "InteractionType": "Action", + "Action": "Heavy Shot" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1000199, + "Position": { + "X": 211.13904, + "Y": 1.5032018E-05, + "Z": 28.580078 + }, + "TerritoryId": 132, + "InteractionType": "Interact", + "AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Archers' Guild" + ] + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "Position": { + "X": -353.36465, + "Y": 4.1194496, + "Z": 288.19882 + }, + "TerritoryId": 152, + "AetheryteShortcut": "East Shroud - Hawthorne Hut", + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "ComplexCombatData": [ + { + "DataId": 5, + "MinimumKillCount": 8, + "$": "Slay northern vultures." + }, + { + "DataId": 39, + "MinimumKillCount": 8, + "$": "Slay tree slugs." + } + ] + }, + { + "Position": { + "X": -424.11658, + "Y": 7.2559156, + "Z": 277.93048 + }, + "TerritoryId": 152, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "ComplexCombatData": [ + { + "DataId": 5, + "MinimumKillCount": 8, + "$": "Slay northern vultures." + }, + { + "DataId": 39, + "MinimumKillCount": 8, + "$": "Slay tree slugs." + } + ] + }, + { + "Position": { + "X": -431.09494, + "Y": 2.9039853, + "Z": 239.26413 + }, + "TerritoryId": 152, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "ComplexCombatData": [ + { + "DataId": 5, + "MinimumKillCount": 8, + "$": "Slay northern vultures." + }, + { + "DataId": 39, + "MinimumKillCount": 8, + "$": "Slay tree slugs." + } + ] + }, + { + "Position": { + "X": -380.5414, + "Y": 1.1250772, + "Z": 236.78247 + }, + "TerritoryId": 152, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "ComplexCombatData": [ + { + "DataId": 5, + "MinimumKillCount": 8, + "$": "Slay northern vultures." + } + ], + "CompletionQuestVariablesFlags": [ + { + "Low": 8 + }, + { + "High": 8 + }, + null, + null, + null, + null + ] + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1000199, + "Position": { + "X": 211.13904, + "Y": 1.5032018E-05, + "Z": 28.580078 + }, + "TerritoryId": 132, + "InteractionType": "Interact", + "AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Archers' Guild" + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1000200, + "Position": { + "X": 209.55212, + "Y": 0.9999819, + "Z": 35.01941 + }, + "TerritoryId": 132, + "InteractionType": "CompleteQuest", + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_CLSARC997_00134_Q1_000_1", + "Yes": true + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/219_My First Bow.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/219_My First Bow.json new file mode 100644 index 00000000..fdb606fc --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/219_My First Bow.json @@ -0,0 +1,179 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Cacahuetes", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1000200, + "Position": { + "X": 209.55212, + "Y": 0.9999819, + "Z": 35.01941 + }, + "TerritoryId": 132, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Archers' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 132 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": 117.47766, + "Y": 17.661993, + "Z": -247.24017 + }, + "TerritoryId": 148, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "ComplexCombatData": [ + { + "DataId": 37, + "MinimumKillCount": 3, + "$": "Slay ground squirrels as an archer" + }, + { + "DataId": 49, + "MinimumKillCount": 3, + "$": "Slay little ladybugs as an archer" + } + ], + "AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Archers' Guild", + "[Gridania] Blue Badger Gate (Central Shroud)" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 132, + 148 + ] + } + } + }, + { + "Position": { + "X": 72.74856, + "Y": 14.679733, + "Z": -257.5843 + }, + "TerritoryId": 148, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "ComplexCombatData": [ + { + "DataId": 37, + "MinimumKillCount": 3, + "$": "Slay ground squirrels as an archer" + }, + { + "DataId": 49, + "MinimumKillCount": 3, + "$": "Slay little ladybugs as an archer" + } + ], + "CompletionQuestVariablesFlags": [ + { + "Low": 3 + }, + 32, + null, + null, + null, + null + ] + }, + { + "Position": { + "X": 92.364235, + "Y": 3.463302, + "Z": -193.49184 + }, + "TerritoryId": 148, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "ComplexCombatData": [ + { + "DataId": 47, + "MinimumKillCount": 3, + "$": "Slay forest funguars as an archer" + } + ] + }, + { + "Position": { + "X": 126.943115, + "Y": 2.910592, + "Z": -180.54787 + }, + "TerritoryId": 148, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "ComplexCombatData": [ + { + "DataId": 47, + "MinimumKillCount": 3, + "$": "Slay forest funguars as an archer" + } + ], + "CompletionQuestVariablesFlags": [ + 16, + { + "Low": 3 + }, + null, + null, + null, + null + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1000200, + "Position": { + "X": 209.55212, + "Y": 0.9999819, + "Z": 35.01941 + }, + "TerritoryId": 132, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Archers' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 132 + ] + } + } + } + ] + } + ] +} \ No newline at end of file diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/46_A Matter of Perspective.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/46_A Matter of Perspective.json new file mode 100644 index 00000000..3201ff5c --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/46_A Matter of Perspective.json @@ -0,0 +1,326 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Cacahuetes", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1000200, + "Position": { + "X": 209.55212, + "Y": 0.9999819, + "Z": 35.01941 + }, + "TerritoryId": 132, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Archers' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 132 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2000925, + "Position": { + "X": 187.18237, + "Y": -2.7314453, + "Z": 79.087524 + }, + "TerritoryId": 132, + "StopDistance": 15, + "InteractionType": "Action", + "Action": "Heavy Shot" + }, + { + "Position": { + "X": 106.01592, + "Y": 0.14552212, + "Z": 57.230045 + }, + "TerritoryId": 132, + "InteractionType": "WalkTo" + }, + { + "DataId": 2000926, + "Position": { + "X": 113.42029, + "Y": 4.6539917, + "Z": 54.306763 + }, + "TerritoryId": 132, + "StopDistance": 20, + "InteractionType": "Action", + "Action": "Heavy Shot" + }, + { + "Position": { + "X": 40.66375, + "Y": 2.5499606, + "Z": 15.033528 + }, + "TerritoryId": 132, + "InteractionType": "WalkTo" + }, + { + "DataId": 2000931, + "Position": { + "X": 36.453735, + "Y": 7.248047, + "Z": 10.879639 + }, + "TerritoryId": 132, + "StopDistance": 20, + "InteractionType": "Action", + "Action": "Heavy Shot" + }, + { + "Position": { + "X": -4.75964, + "Y": -3.0942674, + "Z": 21.23782 + }, + "TerritoryId": 132, + "InteractionType": "WalkTo" + }, + { + "DataId": 2000929, + "Position": { + "X": -5.7526855, + "Y": 2.0598755, + "Z": 30.655273 + }, + "TerritoryId": 132, + "StopDistance": 20, + "InteractionType": "Action", + "Action": "Heavy Shot" + }, + { + "Position": { + "X": 31.96446, + "Y": -1.5349445, + "Z": 60.44494 + }, + "TerritoryId": 132, + "InteractionType": "WalkTo" + }, + { + "DataId": 2000928, + "Position": { + "X": 33.24939, + "Y": 5.4473877, + "Z": 70.63391 + }, + "TerritoryId": 132, + "StopDistance": 20, + "InteractionType": "Action", + "Action": "Heavy Shot" + }, + { + "Position": { + "X": 65.39101, + "Y": -3.7351668, + "Z": 88.24835 + }, + "TerritoryId": 132, + "InteractionType": "WalkTo" + }, + { + "DataId": 2000930, + "Position": { + "X": 56.595703, + "Y": -3.7385254, + "Z": 96.97107 + }, + "TerritoryId": 132, + "StopDistance": 20, + "InteractionType": "Action", + "Action": "Heavy Shot" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1000200, + "Position": { + "X": 209.55212, + "Y": 0.9999819, + "Z": 35.01941 + }, + "TerritoryId": 132, + "InteractionType": "Interact", + "AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Archers' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 132 + ] + } + } + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "Position": { + "X": 303.89548, + "Y": -21.916101, + "Z": 210.33368 + }, + "TerritoryId": 154, + "AethernetShortcut": [ + "[Gridania] Archers' Guild", + "[Gridania] Yellow Serpent Gate (North Shroud)" + ], + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "ComplexCombatData": [ + { + "DataId": 5, + "MinimumKillCount": 8, + "$": "Slay opo-opos." + } + ] + }, + { + "Position": { + "X": 316.9498, + "Y": -16.625727, + "Z": 190.52563 + }, + "TerritoryId": 154, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "ComplexCombatData": [ + { + "DataId": 5, + "MinimumKillCount": 8, + "$": "Slay opo-opos." + } + ], + "CompletionQuestVariablesFlags": [ + { + "Low": 8 + }, + null, + null, + null, + null, + null + ] + }, + { + "Position": { + "X": 250.70682, + "Y": -11.9244995, + "Z": 40.554157 + }, + "TerritoryId": 154, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "ComplexCombatData": [ + { + "DataId": 32, + "MinimumKillCount": 8, + "$": "Slay microchus." + } + ] + }, + { + "Position": { + "X": 315.33475, + "Y": -8.230231, + "Z": -6.9168186 + }, + "TerritoryId": 154, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "ComplexCombatData": [ + { + "DataId": 32, + "MinimumKillCount": 8, + "$": "Slay microchus." + } + ] + }, + { + "Position": { + "X": 276.26797, + "Y": -6.927437, + "Z": -31.987146 + }, + "TerritoryId": 154, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "ComplexCombatData": [ + { + "DataId": 32, + "MinimumKillCount": 8, + "$": "Slay microchus." + } + ], + "CompletionQuestVariablesFlags": [ + null, + { + "High": 8 + }, + null, + null, + null, + null + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1000200, + "Position": { + "X": 209.55212, + "Y": 0.9999819, + "Z": 35.01941 + }, + "TerritoryId": 132, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Archers' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 132 + ] + } + } + } + ] + } + ] +} \ No newline at end of file diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/68_Violators Will Be Shot.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/68_Violators Will Be Shot.json new file mode 100644 index 00000000..de9bdb95 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/68_Violators Will Be Shot.json @@ -0,0 +1,261 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Cacahuetes", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1000200, + "Position": { + "X": 209.55212, + "Y": 0.9999819, + "Z": 35.01941 + }, + "TerritoryId": 132, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Archers' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 132 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1000204, + "Position": { + "X": 226.33704, + "Y": 1.9999089, + "Z": 29.06836 + }, + "TerritoryId": 132, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": -326.03064, + "Y": 9.169003, + "Z": 323.19617 + }, + "TerritoryId": 152, + "InteractionType": "WalkTo", + "AetheryteShortcut": "East Shroud - Hawthorne Hut" + }, + { + "DataId": 2000944, + "Position": { + "X": -330.12903, + "Y": 16.708557, + "Z": 329.67102 + }, + "TerritoryId": 152, + "StopDistance": 20, + "InteractionType": "Action", + "Action": "Heavy Shot" + }, + { + "Position": { + "X": -321.1917, + "Y": 0.22361445, + "Z": 297.61597 + }, + "TerritoryId": 152, + "InteractionType": "WalkTo" + }, + { + "DataId": 2000943, + "Position": { + "X": -330.73932, + "Y": 9.262146, + "Z": 290.1808 + }, + "TerritoryId": 152, + "StopDistance": 20, + "InteractionType": "Action", + "Action": "Heavy Shot" + }, + { + "Position": { + "X": -358.00266, + "Y": 6.9801626, + "Z": 306.18744 + }, + "TerritoryId": 152, + "InteractionType": "WalkTo" + }, + { + "DataId": 2000945, + "Position": { + "X": -364.55334, + "Y": 14.480774, + "Z": 307.60657 + }, + "TerritoryId": 152, + "StopDistance": 20, + "InteractionType": "Action", + "Action": "Heavy Shot" + }, + { + "Position": { + "X": -378.32364, + "Y": 6.10847, + "Z": 269.35767 + }, + "TerritoryId": 152, + "InteractionType": "WalkTo" + }, + { + "DataId": 2000942, + "Position": { + "X": -378.53058, + "Y": 9.048584, + "Z": 262.68408 + }, + "TerritoryId": 152, + "StopDistance": 20, + "InteractionType": "Action", + "Action": "Heavy Shot" + }, + { + "Position": { + "X": -301.42407, + "Y": 0.17268503, + "Z": 257.9185 + }, + "TerritoryId": 152, + "InteractionType": "WalkTo" + }, + { + "DataId": 2001179, + "Position": { + "X": -297.29156, + "Y": 5.996765, + "Z": 250.96509 + }, + "TerritoryId": 152, + "StopDistance": 20, + "InteractionType": "Action", + "Action": "Heavy Shot" + }, + { + "Position": { + "X": -264.77237, + "Y": -3.2272563, + "Z": 240.00267 + }, + "TerritoryId": 152, + "InteractionType": "WalkTo" + }, + { + "DataId": 2000946, + "Position": { + "X": -269.00134, + "Y": 4.2266846, + "Z": 230.45691 + }, + "TerritoryId": 152, + "StopDistance": 20, + "InteractionType": "Action", + "Action": "Heavy Shot" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1000204, + "Position": { + "X": 226.33704, + "Y": 1.9999089, + "Z": 29.06836 + }, + "TerritoryId": 132, + "InteractionType": "Interact", + "AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Archers' Guild" + ] + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "Position": { + "X": 288.74252, + "Y": -11.241169, + "Z": 42.220448 + }, + "TerritoryId": 154, + "InteractionType": "WalkTo", + "AetheryteShortcut": "North Shroud - Fallgourd Float" + }, + { + "DataId": 2000962, + "Position": { + "X": 288.56335, + "Y": -11.306946, + "Z": 52.384155 + }, + "TerritoryId": 154, + "InteractionType": "SinglePlayerDuty" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1000204, + "Position": { + "X": 226.33704, + "Y": 1.9999089, + "Z": 29.06836 + }, + "TerritoryId": 132, + "InteractionType": "Interact", + "AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Archers' Guild" + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1000200, + "Position": { + "X": 209.55212, + "Y": 0.9999819, + "Z": 35.01941 + }, + "TerritoryId": 132, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} \ No newline at end of file diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/70_To Catch a Poacher.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/70_To Catch a Poacher.json new file mode 100644 index 00000000..7658c4ef --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/70_To Catch a Poacher.json @@ -0,0 +1,162 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Cacahuetes", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1000200, + "Position": { + "X": 209.55212, + "Y": 0.9999819, + "Z": 35.01941 + }, + "TerritoryId": 132, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Archers' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 132 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1000590, + "Position": { + "X": -165.9419, + "Y": 9.869227, + "Z": -81.34589 + }, + "TerritoryId": 153, + "InteractionType": "Interact", + "AetheryteShortcut": "South Shroud - Quarrymill" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2000949, + "Position": { + "X": -258.9914, + "Y": 10.330261, + "Z": -46.00598 + }, + "TerritoryId": 153, + "InteractionType": "Interact" + }, + { + "DataId": 2000948, + "Position": { + "X": -270.00848, + "Y": 15.487854, + "Z": -91.17267 + }, + "TerritoryId": 153, + "InteractionType": "Interact" + }, + { + "DataId": 2000947, + "Position": { + "X": -318.07434, + "Y": 18.936401, + "Z": -165.11792 + }, + "TerritoryId": 153, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2001105, + "Position": { + "X": -173.02203, + "Y": 9.872559, + "Z": -78.690796 + }, + "TerritoryId": 153, + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_CLSARC004_00070_Q1_000_1", + "Answer": "TEXT_CLSARC004_00070_A1_000_1" + }, + { + "Type": "List", + "Prompt": "TEXT_CLSARC004_00070_Q2_000_1", + "Answer": "TEXT_CLSARC004_00070_A2_000_3" + } + ] + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 2000136, + "Position": { + "X": -295.85718, + "Y": 23.575134, + "Z": -192.34003 + }, + "TerritoryId": 153, + "InteractionType": "SinglePlayerDuty" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1000590, + "Position": { + "X": -165.9419, + "Y": 9.869227, + "Z": -81.34589 + }, + "TerritoryId": 153, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1000200, + "Position": { + "X": 209.55212, + "Y": 0.9999819, + "Z": 35.01941 + }, + "TerritoryId": 132, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Archers' Guild" + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/71_Homecoming.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/71_Homecoming.json new file mode 100644 index 00000000..326cd174 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/71_Homecoming.json @@ -0,0 +1,123 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Cacahuetes", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1000200, + "Position": { + "X": 209.55212, + "Y": 0.9999819, + "Z": 35.01941 + }, + "TerritoryId": 132, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Archers' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 132 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1000204, + "Position": { + "X": 226.33704, + "Y": 1.9999089, + "Z": 29.06836 + }, + "TerritoryId": 132, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1000199, + "Position": { + "X": 211.13904, + "Y": 1.5032133E-05, + "Z": 28.580078 + }, + "TerritoryId": 132, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2000951, + "Position": { + "X": -1.8158569, + "Y": 6.9122925, + "Z": -93.0343 + }, + "TerritoryId": 153, + "InteractionType": "Interact", + "AetheryteShortcut": "South Shroud - Quarrymill", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_CLSARC005_00071_Q1_000_1", + "Answer": "TEXT_CLSARC005_00071_A1_000_1" + } + ] + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1000534, + "Position": { + "X": 134.47766, + "Y": -7, + "Z": -69.993164 + }, + "TerritoryId": 148, + "InteractionType": "SinglePlayerDuty", + "AetheryteShortcut": "Central Shroud - Bentbranch Meadows" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1000200, + "Position": { + "X": 209.55212, + "Y": 0.9999819, + "Z": 35.01941 + }, + "TerritoryId": 132, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Archers' Guild" + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/76_The One That Got Away.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/76_The One That Got Away.json new file mode 100644 index 00000000..a9566634 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/76_The One That Got Away.json @@ -0,0 +1,85 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Cacahuetes", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1000200, + "Position": { + "X": 209.55212, + "Y": 0.9999819, + "Z": 35.01941 + }, + "TerritoryId": 132, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Archers' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 132 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1000795, + "Position": { + "X": 278.61438, + "Y": 8.346143, + "Z": -38.223938 + }, + "TerritoryId": 153, + "InteractionType": "SinglePlayerDuty", + "AetheryteShortcut": "South Shroud - Quarrymill" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2000709, + "Position": { + "X": -90.74542, + "Y": 0.015197754, + "Z": 61.08191 + }, + "TerritoryId": 153, + "InteractionType": "SinglePlayerDuty" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1000200, + "Position": { + "X": 209.55212, + "Y": 0.9999819, + "Z": 35.01941 + }, + "TerritoryId": 132, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Archers' Guild" + ] + } + ] + } + ] +} \ No newline at end of file From 77df87b23b4be2f08779532d7278b0ef45bb2477 Mon Sep 17 00:00:00 2001 From: pot0to Date: Thu, 22 Aug 2024 03:26:09 -0700 Subject: [PATCH 033/450] fixed author name --- .../Class Quests/BRD/219_My First Bow.json | 4 ++-- .../Class Quests/BRD/46_A Matter of Perspective.json | 4 ++-- .../Class Quests/BRD/68_Violators Will Be Shot.json | 4 ++-- .../Class Quests/BRD/70_To Catch a Poacher.json | 4 ++-- .../2.x - A Realm Reborn/Class Quests/BRD/71_Homecoming.json | 4 ++-- .../Class Quests/BRD/76_The One That Got Away.json | 4 ++-- 6 files changed, 12 insertions(+), 12 deletions(-) diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/219_My First Bow.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/219_My First Bow.json index fdb606fc..f2e24c67 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/219_My First Bow.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/219_My First Bow.json @@ -1,6 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "Cacahuetes", + "Author": "pot0to", "QuestSequence": [ { "Sequence": 0, @@ -176,4 +176,4 @@ ] } ] -} \ No newline at end of file +} diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/46_A Matter of Perspective.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/46_A Matter of Perspective.json index 3201ff5c..f0a78f61 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/46_A Matter of Perspective.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/46_A Matter of Perspective.json @@ -1,6 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "Cacahuetes", + "Author": "pot0to", "QuestSequence": [ { "Sequence": 0, @@ -323,4 +323,4 @@ ] } ] -} \ No newline at end of file +} diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/68_Violators Will Be Shot.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/68_Violators Will Be Shot.json index de9bdb95..88c35e71 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/68_Violators Will Be Shot.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/68_Violators Will Be Shot.json @@ -1,6 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "Cacahuetes", + "Author": "pot0to", "QuestSequence": [ { "Sequence": 0, @@ -258,4 +258,4 @@ ] } ] -} \ No newline at end of file +} diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/70_To Catch a Poacher.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/70_To Catch a Poacher.json index 7658c4ef..95fd13ef 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/70_To Catch a Poacher.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/70_To Catch a Poacher.json @@ -1,6 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "Cacahuetes", + "Author": "pot0to", "QuestSequence": [ { "Sequence": 0, @@ -159,4 +159,4 @@ ] } ] -} \ No newline at end of file +} diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/71_Homecoming.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/71_Homecoming.json index 326cd174..f8f3f223 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/71_Homecoming.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/71_Homecoming.json @@ -1,6 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "Cacahuetes", + "Author": "pot0to", "QuestSequence": [ { "Sequence": 0, @@ -120,4 +120,4 @@ ] } ] -} \ No newline at end of file +} diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/76_The One That Got Away.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/76_The One That Got Away.json index a9566634..90eca176 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/76_The One That Got Away.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/76_The One That Got Away.json @@ -1,6 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "Cacahuetes", + "Author": "pot0to", "QuestSequence": [ { "Sequence": 0, @@ -82,4 +82,4 @@ ] } ] -} \ No newline at end of file +} From 0796ab86724df84998d01baac4e4b501346dc587 Mon Sep 17 00:00:00 2001 From: alydev Date: Fri, 23 Aug 2024 06:58:56 +0000 Subject: [PATCH 034/450] Add 1560_Bird in Hand.json --- .../Central Shroud/1560_Bird in Hand.json | 181 ++++++++++++++++++ 1 file changed, 181 insertions(+) create mode 100644 QuestPaths/2.x - A Realm Reborn/Side Quests/Black Shroud/Central Shroud/1560_Bird in Hand.json diff --git a/QuestPaths/2.x - A Realm Reborn/Side Quests/Black Shroud/Central Shroud/1560_Bird in Hand.json b/QuestPaths/2.x - A Realm Reborn/Side Quests/Black Shroud/Central Shroud/1560_Bird in Hand.json new file mode 100644 index 00000000..7e4abb73 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Side Quests/Black Shroud/Central Shroud/1560_Bird in Hand.json @@ -0,0 +1,181 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "alydev", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1000471, + "Position": { + "X": -60.471558, + "Y": 0.19999865, + "Z": 6.301941 + }, + "TerritoryId": 148, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2004436, + "Position": { + "X": -58.06067, + "Y": 0.19836426, + "Z": 5.355835 + }, + "TerritoryId": 148, + "InteractionType": "Interact" + }, + { + "DataId": 2004432, + "Position": { + "X": -64.62195, + "Y": -0.015319824, + "Z": -5.2339478 + }, + "TerritoryId": 148, + "InteractionType": "Interact" + }, + { + "DataId": 2004433, + "Position": { + "X": -47.28778, + "Y": -0.015319824, + "Z": -4.0131226 + }, + "TerritoryId": 148, + "InteractionType": "Interact" + }, + { + "DataId": 2004434, + "Position": { + "X": -51.773926, + "Y": 0.19836426, + "Z": 16.128723 + }, + "TerritoryId": 148, + "InteractionType": "Interact" + }, + { + "DataId": 2004435, + "Position": { + "X": -63.309692, + "Y": 0.19836426, + "Z": 16.03717 + }, + "TerritoryId": 148, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1000471, + "Position": { + "X": -60.471558, + "Y": 0.19999865, + "Z": 6.301941 + }, + "TerritoryId": 148, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1000473, + "Position": { + "X": -44.14441, + "Y": 0.74388826, + "Z": -32.88324 + }, + "TerritoryId": 148, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1000471, + "Position": { + "X": -60.471558, + "Y": 0.19999865, + "Z": 6.301941 + }, + "TerritoryId": 148, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1000470, + "Position": { + "X": -59.006653, + "Y": -0.010835781, + "Z": 26.41333 + }, + "TerritoryId": 148, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1009569, + "Position": { + "X": -56.10742, + "Y": -0.020424694, + "Z": 28.54956 + }, + "TerritoryId": 148, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 7, + "Steps": [ + { + "DataId": 1000470, + "Position": { + "X": -59.006653, + "Y": -0.010835781, + "Z": 26.41333 + }, + "TerritoryId": 148, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1000471, + "Position": { + "X": -60.471558, + "Y": 0.19999865, + "Z": 6.301941 + }, + "TerritoryId": 148, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} \ No newline at end of file From 325860ec2794dcec6671b3d94047a0f18991f262 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Fri, 23 Aug 2024 09:53:24 +0200 Subject: [PATCH 035/450] Remove ShouldHandleUiInteractions from duty UI windows since that's never active --- Questionable/Controller/GameUi/HelpUiController.cs | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/Questionable/Controller/GameUi/HelpUiController.cs b/Questionable/Controller/GameUi/HelpUiController.cs index a7b23398..0d869add 100644 --- a/Questionable/Controller/GameUi/HelpUiController.cs +++ b/Questionable/Controller/GameUi/HelpUiController.cs @@ -24,13 +24,8 @@ internal sealed class HelpUiController : IDisposable _addonLifecycle.RegisterListener(AddonEvent.PostSetup, "MultipleHelpWindow", MultipleHelpWindowPostSetup); } - private bool ShouldHandleUiInteractions => _questController.IsRunning; - private unsafe void UnendingCodexPostSetup(AddonEvent type, AddonArgs args) { - if (!ShouldHandleUiInteractions) - return; - if (_questController.StartedQuest?.Quest.Id.Value == 4526) { _logger.LogInformation("Closing Unending Codex"); @@ -41,9 +36,6 @@ internal sealed class HelpUiController : IDisposable private unsafe void ContentsTutorialPostSetup(AddonEvent type, AddonArgs args) { - if (!ShouldHandleUiInteractions) - return; - if (_questController.StartedQuest?.Quest.Id.Value == 245) { _logger.LogInformation("Closing ContentsTutorial"); @@ -57,9 +49,6 @@ internal sealed class HelpUiController : IDisposable /// private unsafe void MultipleHelpWindowPostSetup(AddonEvent type, AddonArgs args) { - if (!ShouldHandleUiInteractions) - return; - if (_questController.StartedQuest?.Quest.Id.Value == 245) { _logger.LogInformation("Closing MultipleHelpWindow"); From b1d5b6cf2cf64ed4467a576c92f15380f3393450 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Fri, 23 Aug 2024 14:02:29 +0200 Subject: [PATCH 036/450] Add some NextQuestIds for MRD --- .../Class Quests/WAR/311_Way of the Marauder.json | 3 ++- .../Class Quests/WAR/312_My First Axe.json | 3 ++- .../Class Quests/WAR/313_Axe in the Stone.json | 3 ++- .../Class Quests/WAR/314_Wake of Destruction.json | 3 ++- .../Class Quests/WAR/315_Wake of Destruction.json | 3 ++- .../Class Quests/WAR/316_Brutal Strength.json | 3 ++- 6 files changed, 12 insertions(+), 6 deletions(-) diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/WAR/311_Way of the Marauder.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/WAR/311_Way of the Marauder.json index 48c7d050..450bc856 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/WAR/311_Way of the Marauder.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/WAR/311_Way of the Marauder.json @@ -185,7 +185,8 @@ "AethernetShortcut": [ "[Limsa Lominsa] Aetheryte Plaza", "[Limsa Lominsa] Marauders' Guild" - ] + ], + "NextQuestId": 313 } ] } diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/WAR/312_My First Axe.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/WAR/312_My First Axe.json index 4969ace6..45f30e16 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/WAR/312_My First Axe.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/WAR/312_My First Axe.json @@ -163,7 +163,8 @@ "AethernetShortcut": [ "[Limsa Lominsa] Aetheryte Plaza", "[Limsa Lominsa] Marauders' Guild" - ] + ], + "NextQuestId": 313 } ] } diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/WAR/313_Axe in the Stone.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/WAR/313_Axe in the Stone.json index a1adfdeb..c4c41262 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/WAR/313_Axe in the Stone.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/WAR/313_Axe in the Stone.json @@ -314,7 +314,8 @@ "AethernetShortcut": [ "[Limsa Lominsa] Aetheryte Plaza", "[Limsa Lominsa] Marauders' Guild" - ] + ], + "NextQuestId": 315 } ] } diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/WAR/314_Wake of Destruction.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/WAR/314_Wake of Destruction.json index dbb6dcd4..a95f37e9 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/WAR/314_Wake of Destruction.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/WAR/314_Wake of Destruction.json @@ -132,7 +132,8 @@ "AethernetShortcut": [ "[Limsa Lominsa] Aetheryte Plaza", "[Limsa Lominsa] Marauders' Guild" - ] + ], + "NextQuestId": 316 } ] } diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/WAR/315_Wake of Destruction.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/WAR/315_Wake of Destruction.json index c6c66f93..e5ef67e1 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/WAR/315_Wake of Destruction.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/WAR/315_Wake of Destruction.json @@ -132,7 +132,8 @@ "AethernetShortcut": [ "[Limsa Lominsa] Aetheryte Plaza", "[Limsa Lominsa] Marauders' Guild" - ] + ], + "NextQuestId": 316 } ] } diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/WAR/316_Brutal Strength.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/WAR/316_Brutal Strength.json index b12278d8..ead596f4 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/WAR/316_Brutal Strength.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/WAR/316_Brutal Strength.json @@ -209,7 +209,8 @@ "AethernetShortcut": [ "[Limsa Lominsa] Aetheryte Plaza", "[Limsa Lominsa] Marauders' Guild" - ] + ], + "NextQuestId": 317 } ] } From 3a4cf56965dc57cdb4774457b53c8c5b707fa434 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Fri, 23 Aug 2024 14:28:23 +0200 Subject: [PATCH 037/450] Add Immortal Flames to GC selection --- ...2_My Little Chocobo (Immortal Flames).json | 88 +++++++++++++++++++ Questionable/Functions/QuestFunctions.cs | 2 + Questionable/Windows/ConfigWindow.cs | 2 +- 3 files changed, 91 insertions(+), 1 deletion(-) create mode 100644 QuestPaths/2.x - A Realm Reborn/MSQ-1/Shared/702_My Little Chocobo (Immortal Flames).json diff --git a/QuestPaths/2.x - A Realm Reborn/MSQ-1/Shared/702_My Little Chocobo (Immortal Flames).json b/QuestPaths/2.x - A Realm Reborn/MSQ-1/Shared/702_My Little Chocobo (Immortal Flames).json new file mode 100644 index 00000000..200da05f --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/MSQ-1/Shared/702_My Little Chocobo (Immortal Flames).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": -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": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1002390, + "Position": { + "X": -143.45007, + "Y": 4.5499268, + "Z": -108.537415 + }, + "TerritoryId": 130, + "InteractionType": "Instruction", + "Comment": "Buy Flame Chocobo Issuance" + }, + { + "DataId": 1001978, + "Position": { + "X": 55.344482, + "Y": 4.124078, + "Z": -143.9079 + }, + "TerritoryId": 130, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1006003, + "Position": { + "X": 51.621216, + "Y": 4, + "Z": -142.22937 + }, + "TerritoryId": 130, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1001978, + "Position": { + "X": 55.344482, + "Y": 4.124078, + "Z": -143.9079 + }, + "TerritoryId": 130, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/Questionable/Functions/QuestFunctions.cs b/Questionable/Functions/QuestFunctions.cs index 13eee5e4..6c51b2e5 100644 --- a/Questionable/Functions/QuestFunctions.cs +++ b/Questionable/Functions/QuestFunctions.cs @@ -80,6 +80,7 @@ internal sealed unsafe class QuestFunctions { GrandCompany.TwinAdder => (new QuestId(680), 0), GrandCompany.Maelstrom => (new QuestId(681), 0), + GrandCompany.ImmortalFlames => (new QuestId(682), 0), _ => default }; } @@ -89,6 +90,7 @@ internal sealed unsafe class QuestFunctions { GrandCompany.TwinAdder => 700, GrandCompany.Maelstrom => 701, + GrandCompany.ImmortalFlames => 702, _ => 0 }; diff --git a/Questionable/Windows/ConfigWindow.cs b/Questionable/Windows/ConfigWindow.cs index c2148aa1..a419249c 100644 --- a/Questionable/Windows/ConfigWindow.cs +++ b/Questionable/Windows/ConfigWindow.cs @@ -20,7 +20,7 @@ internal sealed class ConfigWindow : LWindow, IPersistableWindowConfig private readonly string[] _mountNames; private readonly string[] _grandCompanyNames = - ["None (manually pick quest)", "Maelstrom", "Twin Adder" /*, "Immortal Flames"*/]; + ["None (manually pick quest)", "Maelstrom", "Twin Adder", "Immortal Flames"]; [SuppressMessage("Performance", "CA1861", Justification = "One time initialization")] public ConfigWindow(IDalamudPluginInterface pluginInterface, Configuration configuration, IDataManager dataManager) From 03b26500523f115b627eaa1b2458c900565cdef4 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Fri, 23 Aug 2024 14:40:39 +0200 Subject: [PATCH 038/450] Update early ARR msq quests --- .../510_A Wild Rose By Any Other Name.json | 22 +++++++++++++++++-- .../MSQ-1/Shared/574_Dressed to Deceive.json | 4 ++++ .../MSQ-1/Shared/621_For the Children.json | 1 + 3 files changed, 25 insertions(+), 2 deletions(-) diff --git a/QuestPaths/2.x - A Realm Reborn/MSQ-1/Shared/510_A Wild Rose By Any Other Name.json b/QuestPaths/2.x - A Realm Reborn/MSQ-1/Shared/510_A Wild Rose By Any Other Name.json index 486e38a9..c3ea23c7 100644 --- a/QuestPaths/2.x - A Realm Reborn/MSQ-1/Shared/510_A Wild Rose By Any Other Name.json +++ b/QuestPaths/2.x - A Realm Reborn/MSQ-1/Shared/510_A Wild Rose By Any Other Name.json @@ -44,15 +44,33 @@ "Sequence": 255, "Steps": [ { + "Position": { + "X": -64.84354, + "Y": -3.6581912, + "Z": 186.08156 + }, "TerritoryId": 141, - "InteractionType": "AttuneAetheryte", - "Aetheryte": "Central Thanalan - Black Brush Station", + "InteractionType": "WalkTo", "AetheryteShortcut": "Ul'dah", "AethernetShortcut": [ "[Ul'dah] Aetheryte Plaza", "[Ul'dah] Gate of Nald (Central Thanalan)" ] }, + { + "Position": { + "X": -62.2836, + "Y": -3.6582258, + "Z": 144.35869 + }, + "TerritoryId": 141, + "InteractionType": "WalkTo" + }, + { + "TerritoryId": 141, + "InteractionType": "AttuneAetheryte", + "Aetheryte": "Central Thanalan - Black Brush Station" + }, { "Position": { "X": 454.0109, diff --git a/QuestPaths/2.x - A Realm Reborn/MSQ-1/Shared/574_Dressed to Deceive.json b/QuestPaths/2.x - A Realm Reborn/MSQ-1/Shared/574_Dressed to Deceive.json index 75423c9d..7580849a 100644 --- a/QuestPaths/2.x - A Realm Reborn/MSQ-1/Shared/574_Dressed to Deceive.json +++ b/QuestPaths/2.x - A Realm Reborn/MSQ-1/Shared/574_Dressed to Deceive.json @@ -190,6 +190,10 @@ "ItemId": 30362, "TargetTerritoryId": 140 }, + { + "TerritoryId": 140, + "InteractionType": "EquipRecommended" + }, { "Position": { "X": -492.96475, diff --git a/QuestPaths/2.x - A Realm Reborn/MSQ-1/Shared/621_For the Children.json b/QuestPaths/2.x - A Realm Reborn/MSQ-1/Shared/621_For the Children.json index 2c176bc2..147d35b0 100644 --- a/QuestPaths/2.x - A Realm Reborn/MSQ-1/Shared/621_For the Children.json +++ b/QuestPaths/2.x - A Realm Reborn/MSQ-1/Shared/621_For the Children.json @@ -41,6 +41,7 @@ "Y": -0.48849356, "Z": -278.41507 }, + "StopDistance": 0.5, "TerritoryId": 145, "InteractionType": "Combat", "EnemySpawnType": "AutoOnEnterArea", From 721c3d0a5c88d7d87b53e748b47ad2106564de3a Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Fri, 23 Aug 2024 15:43:58 +0200 Subject: [PATCH 039/450] Add Gold Saucer aethernet shards --- .../Common/Converter/AetheryteConverter.cs | 2 +- Questionable.Model/Common/EAetheryteLocation.cs | 10 +++++++++- .../Questing/Converter/AethernetShardConverter.cs | 9 +++++++++ Questionable.Model/common-schema.json | 10 +++++++++- 4 files changed, 28 insertions(+), 3 deletions(-) diff --git a/Questionable.Model/Common/Converter/AetheryteConverter.cs b/Questionable.Model/Common/Converter/AetheryteConverter.cs index 0cecd3ea..36853586 100644 --- a/Questionable.Model/Common/Converter/AetheryteConverter.cs +++ b/Questionable.Model/Common/Converter/AetheryteConverter.cs @@ -35,8 +35,8 @@ public sealed class AetheryteConverter() : EnumConverter(Val { EAetheryteLocation.CoerthasCentralHighlandsCampDragonhead, "Coerthas Central Highlands - Camp Dragonhead" }, { EAetheryteLocation.MorDhona, "Mor Dhona" }, - { EAetheryteLocation.GoldSaucer, "Gold Saucer" }, { EAetheryteLocation.WolvesDenPier, "Wolves' Den Pier" }, + { EAetheryteLocation.GoldSaucer, "Gold Saucer" }, { EAetheryteLocation.Ishgard, "Ishgard" }, { EAetheryteLocation.Idyllshire, "Idyllshire" }, diff --git a/Questionable.Model/Common/EAetheryteLocation.cs b/Questionable.Model/Common/EAetheryteLocation.cs index a2dc3e2d..7142cfe7 100644 --- a/Questionable.Model/Common/EAetheryteLocation.cs +++ b/Questionable.Model/Common/EAetheryteLocation.cs @@ -72,9 +72,17 @@ public enum EAetheryteLocation CoerthasCentralHighlandsCampDragonhead = 23, MorDhona = 24, - GoldSaucer = 62, WolvesDenPier = 55, + GoldSaucer = 62, + GoldSaucerEntranceCardSquares = 63, + GoldSaucerWonderSquareEast = 64, + GoldSaucerWonderSquareWest = 65, + GoldSaucerEventSquare = 66, + GoldSaucerCactpotBoard = 67, + GoldSaucerRoundSquare = 68, + GoldSaucerChocoboSquare = 69, + Ishgard = 70, IshgardForgottenKnight = 80, IshgardSkysteelManufactory = 81, diff --git a/Questionable.Model/Questing/Converter/AethernetShardConverter.cs b/Questionable.Model/Questing/Converter/AethernetShardConverter.cs index 6b5e5834..6367c9d7 100644 --- a/Questionable.Model/Questing/Converter/AethernetShardConverter.cs +++ b/Questionable.Model/Questing/Converter/AethernetShardConverter.cs @@ -46,6 +46,15 @@ public sealed class AethernetShardConverter() : EnumConverter Date: Fri, 23 Aug 2024 16:57:14 +0200 Subject: [PATCH 040/450] Add Omega raid quests --- .../Raid Quests/2928_The Hunt for Omega.json | 106 +++++++++++ .../Raid Quests/2929_Into the Deltascape.json | 63 +++++++ .../2930_A Catastrophe Waiting.json | 64 +++++++ .../Raid Quests/2931_The Croak Queen.json | 65 +++++++ .../Raid Quests/2932_A Void at All Costs.json | 65 +++++++ .../Raid Quests/2933_The Anomaly.json | 105 +++++++++++ .../Raid Quests/3031_Return to the Rift.json | 55 ++++++ .../Raid Quests/3032_No Slowing Down.json | 65 +++++++ .../3033_An Unfinished Masterpiece.json | 80 +++++++++ .../Raid Quests/3034_Won't Let You Pass.json | 98 ++++++++++ .../Raid Quests/3035_Test World of Ruin.json | 80 +++++++++ ...154_In the Beginning, There Was Chaos.json | 90 ++++++++++ .../3155_And Like Fire Was His Mane.json | 49 +++++ .../3156_In the End, There Is Omega.json | 143 +++++++++++++++ .../3157_To Kweh under Distant Skies.json | 167 ++++++++++++++++++ 15 files changed, 1295 insertions(+) create mode 100644 QuestPaths/4.x - Stormblood/Raid Quests/2928_The Hunt for Omega.json create mode 100644 QuestPaths/4.x - Stormblood/Raid Quests/2929_Into the Deltascape.json create mode 100644 QuestPaths/4.x - Stormblood/Raid Quests/2930_A Catastrophe Waiting.json create mode 100644 QuestPaths/4.x - Stormblood/Raid Quests/2931_The Croak Queen.json create mode 100644 QuestPaths/4.x - Stormblood/Raid Quests/2932_A Void at All Costs.json create mode 100644 QuestPaths/4.x - Stormblood/Raid Quests/2933_The Anomaly.json create mode 100644 QuestPaths/4.x - Stormblood/Raid Quests/3031_Return to the Rift.json create mode 100644 QuestPaths/4.x - Stormblood/Raid Quests/3032_No Slowing Down.json create mode 100644 QuestPaths/4.x - Stormblood/Raid Quests/3033_An Unfinished Masterpiece.json create mode 100644 QuestPaths/4.x - Stormblood/Raid Quests/3034_Won't Let You Pass.json create mode 100644 QuestPaths/4.x - Stormblood/Raid Quests/3035_Test World of Ruin.json create mode 100644 QuestPaths/4.x - Stormblood/Raid Quests/3154_In the Beginning, There Was Chaos.json create mode 100644 QuestPaths/4.x - Stormblood/Raid Quests/3155_And Like Fire Was His Mane.json create mode 100644 QuestPaths/4.x - Stormblood/Raid Quests/3156_In the End, There Is Omega.json create mode 100644 QuestPaths/4.x - Stormblood/Raid Quests/3157_To Kweh under Distant Skies.json diff --git a/QuestPaths/4.x - Stormblood/Raid Quests/2928_The Hunt for Omega.json b/QuestPaths/4.x - Stormblood/Raid Quests/2928_The Hunt for Omega.json new file mode 100644 index 00000000..f3390265 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Raid Quests/2928_The Hunt for Omega.json @@ -0,0 +1,106 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1021926, + "Position": { + "X": 71.06128, + "Y": -0.10695544, + "Z": 59.372803 + }, + "TerritoryId": 635, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Rhalgr's Reach", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1021930, + "Position": { + "X": 112.41321, + "Y": 0.65204173, + "Z": 56.290405 + }, + "TerritoryId": 635, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1021933, + "Position": { + "X": 466.20886, + "Y": 69.27097, + "Z": 525.7495 + }, + "TerritoryId": 612, + "InteractionType": "Interact", + "AetheryteShortcut": "Fringes - Peering Stones", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1021941, + "Position": { + "X": 467.00232, + "Y": 69.270096, + "Z": 521.14136 + }, + "TerritoryId": 612, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1021937, + "Position": { + "X": 465.5984, + "Y": 69.25287, + "Z": 518.88293 + }, + "StopDistance": 7, + "TerritoryId": 612, + "InteractionType": "SinglePlayerDuty" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1021942, + "Position": { + "X": -208.57562, + "Y": -223.5, + "Z": -124.16266 + }, + "TerritoryId": 724, + "InteractionType": "CompleteQuest", + "NextQuestId": 2929 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Raid Quests/2929_Into the Deltascape.json b/QuestPaths/4.x - Stormblood/Raid Quests/2929_Into the Deltascape.json new file mode 100644 index 00000000..86aee81d --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Raid Quests/2929_Into the Deltascape.json @@ -0,0 +1,63 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1021942, + "Position": { + "X": -208.57562, + "Y": -223.5, + "Z": -124.16266 + }, + "TerritoryId": 724, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1021946, + "Position": { + "X": -211.01703, + "Y": -223.25, + "Z": -117.021484 + }, + "StopDistance": 6, + "TerritoryId": 724, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "TerritoryId": 724, + "InteractionType": "Duty", + "ContentFinderConditionId": 252 + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1021942, + "Position": { + "X": -208.57562, + "Y": -223.5, + "Z": -124.16266 + }, + "TerritoryId": 724, + "InteractionType": "CompleteQuest", + "NextQuestId": 2930 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Raid Quests/2930_A Catastrophe Waiting.json b/QuestPaths/4.x - Stormblood/Raid Quests/2930_A Catastrophe Waiting.json new file mode 100644 index 00000000..2cf9ddfe --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Raid Quests/2930_A Catastrophe Waiting.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": 1021942, + "Position": { + "X": -208.57562, + "Y": -223.5, + "Z": -124.16266 + }, + "TerritoryId": 724, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1021946, + "Position": { + "X": -211.01703, + "Y": -223.25, + "Z": -117.021484 + }, + "StopDistance": 6, + "TerritoryId": 724, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "TerritoryId": 724, + "InteractionType": "Duty", + "ContentFinderConditionId": 253 + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1021943, + "Position": { + "X": -207.20227, + "Y": -223.50002, + "Z": -124.95618 + }, + "StopDistance": 7, + "TerritoryId": 724, + "InteractionType": "CompleteQuest", + "NextQuestId": 2931 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Raid Quests/2931_The Croak Queen.json b/QuestPaths/4.x - Stormblood/Raid Quests/2931_The Croak Queen.json new file mode 100644 index 00000000..fc0551c3 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Raid Quests/2931_The Croak Queen.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": 1021942, + "Position": { + "X": -208.57562, + "Y": -223.5, + "Z": -124.16266 + }, + "StopDistance": 7, + "TerritoryId": 724, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1021946, + "Position": { + "X": -211.01703, + "Y": -223.25, + "Z": -117.021484 + }, + "StopDistance": 6, + "TerritoryId": 724, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "TerritoryId": 724, + "InteractionType": "Duty", + "ContentFinderConditionId": 254 + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1021942, + "Position": { + "X": -208.57562, + "Y": -223.5, + "Z": -124.16266 + }, + "StopDistance": 6, + "TerritoryId": 724, + "InteractionType": "CompleteQuest", + "NextQuestId": 2932 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Raid Quests/2932_A Void at All Costs.json b/QuestPaths/4.x - Stormblood/Raid Quests/2932_A Void at All Costs.json new file mode 100644 index 00000000..f1f7a00d --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Raid Quests/2932_A Void at All Costs.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": 1021942, + "Position": { + "X": -208.57562, + "Y": -223.5, + "Z": -124.16266 + }, + "StopDistance": 7, + "TerritoryId": 724, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1021946, + "Position": { + "X": -211.01703, + "Y": -223.25, + "Z": -117.021484 + }, + "StopDistance": 6, + "TerritoryId": 724, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "TerritoryId": 724, + "InteractionType": "Duty", + "ContentFinderConditionId": 255 + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1021949, + "Position": { + "X": 462.6687, + "Y": 69.02547, + "Z": 515.06824 + }, + "StopDistance": 5, + "TerritoryId": 612, + "InteractionType": "CompleteQuest", + "NextQuestId": 2933 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Raid Quests/2933_The Anomaly.json b/QuestPaths/4.x - Stormblood/Raid Quests/2933_The Anomaly.json new file mode 100644 index 00000000..ee0be5a5 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Raid Quests/2933_The Anomaly.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": 1021949, + "Position": { + "X": 462.6687, + "Y": 69.02547, + "Z": 515.06824 + }, + "StopDistance": 5, + "TerritoryId": 612, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1023687, + "Position": { + "X": 112.7489, + "Y": 0.65204155, + "Z": 60.227295 + }, + "TerritoryId": 635, + "InteractionType": "Interact", + "AetheryteShortcut": "Rhalgr's Reach" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1021952, + "Position": { + "X": 40.146484, + "Y": -19.000002, + "Z": 94.92627 + }, + "TerritoryId": 132, + "InteractionType": "Interact", + "AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Airship Landing" + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1021956, + "Position": { + "X": 4.257263, + "Y": 0.002998305, + "Z": -0.4730835 + }, + "TerritoryId": 636, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1021953, + "Position": { + "X": 41.550293, + "Y": -19.000004, + "Z": 95.26196 + }, + "TerritoryId": 132, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1023687, + "Position": { + "X": 112.7489, + "Y": 0.65204155, + "Z": 60.227295 + }, + "TerritoryId": 635, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Rhalgr's Reach", + "NextQuestId": 3031 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Raid Quests/3031_Return to the Rift.json b/QuestPaths/4.x - Stormblood/Raid Quests/3031_Return to the Rift.json new file mode 100644 index 00000000..5f7d792b --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Raid Quests/3031_Return to the Rift.json @@ -0,0 +1,55 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1023687, + "Position": { + "X": 112.7489, + "Y": 0.65204155, + "Z": 60.227295 + }, + "TerritoryId": 635, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1021933, + "Position": { + "X": 466.20886, + "Y": 69.27097, + "Z": 525.7495 + }, + "TerritoryId": 612, + "InteractionType": "SinglePlayerDuty", + "AetheryteShortcut": "Fringes - Peering Stones", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1024788, + "Position": { + "X": -86.07617, + "Y": -72.25, + "Z": 181.47546 + }, + "StopDistance": 7, + "TerritoryId": 756, + "InteractionType": "CompleteQuest", + "NextQuestId": 3032 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Raid Quests/3032_No Slowing Down.json b/QuestPaths/4.x - Stormblood/Raid Quests/3032_No Slowing Down.json new file mode 100644 index 00000000..0b798f4c --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Raid Quests/3032_No Slowing Down.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": 1024788, + "Position": { + "X": -86.07617, + "Y": -72.25, + "Z": 181.47546 + }, + "StopDistance": 7, + "TerritoryId": 756, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1024747, + "Position": { + "X": -88.304016, + "Y": -72.25, + "Z": 169.17664 + }, + "StopDistance": 6, + "TerritoryId": 756, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "TerritoryId": 756, + "InteractionType": "Duty", + "ContentFinderConditionId": 286 + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1024788, + "Position": { + "X": -86.07617, + "Y": -72.25, + "Z": 181.47546 + }, + "StopDistance": 7, + "TerritoryId": 756, + "InteractionType": "CompleteQuest", + "NextQuestId": 3033 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Raid Quests/3033_An Unfinished Masterpiece.json b/QuestPaths/4.x - Stormblood/Raid Quests/3033_An Unfinished Masterpiece.json new file mode 100644 index 00000000..4a1e669c --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Raid Quests/3033_An Unfinished Masterpiece.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": 1024788, + "Position": { + "X": -86.07617, + "Y": -72.25, + "Z": 181.47546 + }, + "StopDistance": 7, + "TerritoryId": 756, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1024790, + "Position": { + "X": -81.92572, + "Y": -72.25, + "Z": 172.7168 + }, + "StopDistance": 5, + "TerritoryId": 756, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "TerritoryId": 756, + "InteractionType": "Duty", + "ContentFinderConditionId": 287 + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1024788, + "Position": { + "X": -86.07617, + "Y": -72.25, + "Z": 181.47546 + }, + "StopDistance": 7, + "TerritoryId": 756, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1024749, + "Position": { + "X": 463.79797, + "Y": 69.36809, + "Z": 520.31726 + }, + "TerritoryId": 612, + "InteractionType": "CompleteQuest", + "NextQuestId": 3034 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Raid Quests/3034_Won't Let You Pass.json b/QuestPaths/4.x - Stormblood/Raid Quests/3034_Won't Let You Pass.json new file mode 100644 index 00000000..0a610909 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Raid Quests/3034_Won't Let You Pass.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": 1024750, + "Position": { + "X": 464.28625, + "Y": 69.317245, + "Z": 519.3103 + }, + "StopDistance": 5, + "TerritoryId": 612, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1021947, + "Position": { + "X": 476.73767, + "Y": 69.83099, + "Z": 526.604 + }, + "TerritoryId": 612, + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_STMBDR204_03034_SYSTEM_000_026", + "Yes": true + } + ] + }, + { + "DataId": 1024853, + "Position": { + "X": -86.71704, + "Y": -72.25, + "Z": 179.58337 + }, + "StopDistance": 7, + "TerritoryId": 756, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1024747, + "Position": { + "X": -88.304016, + "Y": -72.25, + "Z": 169.17664 + }, + "StopDistance": 7, + "TerritoryId": 756, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "TerritoryId": 756, + "InteractionType": "Duty", + "ContentFinderConditionId": 288 + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1024788, + "Position": { + "X": -86.07617, + "Y": -72.25, + "Z": 181.47546 + }, + "StopDistance": 7, + "TerritoryId": 756, + "InteractionType": "CompleteQuest", + "NextQuestId": 3035 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Raid Quests/3035_Test World of Ruin.json b/QuestPaths/4.x - Stormblood/Raid Quests/3035_Test World of Ruin.json new file mode 100644 index 00000000..13de679b --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Raid Quests/3035_Test World of Ruin.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": 1024853, + "Position": { + "X": -86.71704, + "Y": -72.25, + "Z": 179.58337 + }, + "StopDistance": 7, + "TerritoryId": 756, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1024747, + "Position": { + "X": -88.304016, + "Y": -72.25, + "Z": 169.17664 + }, + "StopDistance": 7, + "TerritoryId": 756, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "TerritoryId": 756, + "InteractionType": "Duty", + "ContentFinderConditionId": 289 + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1021947, + "Position": { + "X": 476.73767, + "Y": 69.83099, + "Z": 526.604 + }, + "TerritoryId": 612, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1023687, + "Position": { + "X": 112.7489, + "Y": 0.65204155, + "Z": 60.227295 + }, + "TerritoryId": 635, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Rhalgr's Reach", + "NextQuestId": 3154 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Raid Quests/3154_In the Beginning, There Was Chaos.json b/QuestPaths/4.x - Stormblood/Raid Quests/3154_In the Beginning, There Was Chaos.json new file mode 100644 index 00000000..17dd09d3 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Raid Quests/3154_In the Beginning, There Was Chaos.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": [ + { + "DataId": 1023687, + "Position": { + "X": 112.7489, + "Y": 0.65204155, + "Z": 60.227295 + }, + "TerritoryId": 635, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1021937, + "Position": { + "X": 465.5984, + "Y": 69.25287, + "Z": 518.88293 + }, + "TerritoryId": 612, + "InteractionType": "Interact", + "AetheryteShortcut": "Fringes - Peering Stones", + "Fly": true, + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_STMBDR301_03154_Q2_000_051", + "Answer": "TEXT_STMBDR301_03154_A2_000_052" + } + ] + } + ] + }, + { + "Sequence": 2 + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1026450, + "Position": { + "X": -35.01947, + "Y": -16.150002, + "Z": 156.20654 + }, + "TerritoryId": 807, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "TerritoryId": 807, + "InteractionType": "Duty", + "ContentFinderConditionId": 587 + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1026453, + "Position": { + "X": -34.836426, + "Y": -16.15, + "Z": 153.8872 + }, + "StopDistance": 5, + "TerritoryId": 807, + "InteractionType": "CompleteQuest", + "NextQuestId": 3155 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Raid Quests/3155_And Like Fire Was His Mane.json b/QuestPaths/4.x - Stormblood/Raid Quests/3155_And Like Fire Was His Mane.json new file mode 100644 index 00000000..4816cb77 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Raid Quests/3155_And Like Fire Was His Mane.json @@ -0,0 +1,49 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1026452, + "Position": { + "X": -35.01947, + "Y": -16.150002, + "Z": 156.11499 + }, + "StopDistance": 7, + "TerritoryId": 807, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "TerritoryId": 807, + "InteractionType": "Duty", + "ContentFinderConditionId": 588 + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1026450, + "Position": { + "X": -35.01947, + "Y": -16.150002, + "Z": 156.20654 + }, + "StopDistance": 7, + "TerritoryId": 807, + "InteractionType": "CompleteQuest", + "NextQuestId": 3156 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Raid Quests/3156_In the End, There Is Omega.json b/QuestPaths/4.x - Stormblood/Raid Quests/3156_In the End, There Is Omega.json new file mode 100644 index 00000000..b37a3eee --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Raid Quests/3156_In the End, There Is Omega.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": 1026450, + "Position": { + "X": -35.01947, + "Y": -16.150002, + "Z": 156.20654 + }, + "StopDistance": 7, + "TerritoryId": 807, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1021937, + "Position": { + "X": 465.5984, + "Y": 69.25287, + "Z": 518.88293 + }, + "StopDistance": 7, + "TerritoryId": 612, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2009608, + "Position": { + "X": 103.07471, + "Y": 0.62561035, + "Z": 41.794434 + }, + "TerritoryId": 635, + "InteractionType": "Interact", + "AetheryteShortcut": "Rhalgr's Reach" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1026472, + "Position": { + "X": 116.50256, + "Y": 0.6520418, + "Z": 43.9917 + }, + "TerritoryId": 635, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1021947, + "Position": { + "X": 476.73767, + "Y": 69.83099, + "Z": 526.604 + }, + "TerritoryId": 612, + "InteractionType": "Interact", + "AetheryteShortcut": "Fringes - Peering Stones", + "Fly": true, + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_STMBDR303_03156_SYSTEM_000_006", + "Yes": true + } + ] + }, + { + "DataId": 1026456, + "Position": { + "X": -19.638367, + "Y": -16.65, + "Z": 144.06042 + }, + "TerritoryId": 812, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "TerritoryId": 812, + "InteractionType": "Duty", + "ContentFinderConditionId": 589 + } + ] + }, + { + "Sequence": 6 + }, + { + "Sequence": 7, + "Steps": [ + { + "TerritoryId": 812, + "InteractionType": "Duty", + "ContentFinderConditionId": 590 + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1021937, + "Position": { + "X": 465.5984, + "Y": 69.25287, + "Z": 518.88293 + }, + "StopDistance": 7, + "TerritoryId": 612, + "InteractionType": "CompleteQuest", + "NextQuestId": 3157 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Raid Quests/3157_To Kweh under Distant Skies.json b/QuestPaths/4.x - Stormblood/Raid Quests/3157_To Kweh under Distant Skies.json new file mode 100644 index 00000000..3f52f4bc --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Raid Quests/3157_To Kweh under Distant Skies.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": 1021939, + "Position": { + "X": 464.98804, + "Y": 69.34, + "Z": 522.4231 + }, + "StopDistance": 5, + "TerritoryId": 612, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1024746, + "Position": { + "X": 462.8518, + "Y": 69.31414, + "Z": 525.9021 + }, + "StopDistance": 6, + "TerritoryId": 612, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1023687, + "Position": { + "X": 112.7489, + "Y": 0.65204155, + "Z": 60.227295 + }, + "TerritoryId": 635, + "InteractionType": "Interact", + "AetheryteShortcut": "Rhalgr's Reach" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1026712, + "Position": { + "X": 113.23718, + "Y": 0.6520417, + "Z": 56.839844 + }, + "TerritoryId": 635, + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_STMBDR304_03157_Q1_000_102", + "Answer": "TEXT_STMBDR304_03157_A1_000_103" + } + ] + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1026465, + "Position": { + "X": -38.92578, + "Y": -0.0364509, + "Z": -3.7385254 + }, + "TerritoryId": 635, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1026466, + "Position": { + "X": -114.58002, + "Y": 0.5980477, + "Z": -33.829346 + }, + "TerritoryId": 635, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1026467, + "Position": { + "X": -150.4082, + "Y": -2.7350852, + "Z": -139.20807 + }, + "TerritoryId": 635, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 7, + "Steps": [ + { + "DataId": 1026467, + "Position": { + "X": -150.4082, + "Y": -2.7350852, + "Z": -139.20807 + }, + "TerritoryId": 635, + "InteractionType": "Emote", + "Emote": "pet" + } + ] + }, + { + "Sequence": 8, + "Steps": [ + { + "DataId": 1026468, + "Position": { + "X": -13.778931, + "Y": 0.98160696, + "Z": 70.54236 + }, + "TerritoryId": 635, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1023687, + "Position": { + "X": 112.7489, + "Y": 0.65204155, + "Z": 60.227295 + }, + "TerritoryId": 635, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} From a6f684248fb582e06172b334ac0ffc4589f6769f Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Fri, 23 Aug 2024 17:16:15 +0200 Subject: [PATCH 041/450] Add Gold Saucer unlock --- .../434_It Could Happen to You.json | 49 ++++ .../Gold Saucer/435_World of Wonders.json | 243 ++++++++++++++++++ .../MSQ/B-4.1/2968_A Sultana's Duty.json | 20 +- .../Common/EAetheryteLocation.cs | 1 + .../Converter/AethernetShardConverter.cs | 1 + Questionable.Model/common-schema.json | 1 + Questionable/Data/AetheryteData.cs | 11 +- 7 files changed, 311 insertions(+), 15 deletions(-) create mode 100644 QuestPaths/2.x - A Realm Reborn/Unlocks/Gold Saucer/434_It Could Happen to You.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Unlocks/Gold Saucer/435_World of Wonders.json diff --git a/QuestPaths/2.x - A Realm Reborn/Unlocks/Gold Saucer/434_It Could Happen to You.json b/QuestPaths/2.x - A Realm Reborn/Unlocks/Gold Saucer/434_It Could Happen to You.json new file mode 100644 index 00000000..97124065 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Unlocks/Gold Saucer/434_It Could Happen to You.json @@ -0,0 +1,49 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1011565, + "Position": { + "X": -78.8739, + "Y": 4, + "Z": -110.429565 + }, + "TerritoryId": 130, + "InteractionType": "AcceptQuest", + "PickUpQuestId": 434 + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1004433, + "Position": { + "X": -23.605713, + "Y": 83.19999, + "Z": -2.3041382 + }, + "TerritoryId": 130, + "InteractionType": "CompleteQuest", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Airship Landing" + ], + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_SUBGSC001_00434_Q1_000_000", + "Yes": true + } + ], + "NextQuestId": 435 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Unlocks/Gold Saucer/435_World of Wonders.json b/QuestPaths/2.x - A Realm Reborn/Unlocks/Gold Saucer/435_World of Wonders.json new file mode 100644 index 00000000..71199ea0 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Unlocks/Gold Saucer/435_World of Wonders.json @@ -0,0 +1,243 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": ["liza", "JerryWester"], + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1011022, + "Position": { + "X": -38.895264, + "Y": -2.7930364E-06, + "Z": 97.33728 + }, + "StopDistance": 7, + "TerritoryId": 144, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "TerritoryId": 144, + "InteractionType": "AttuneAethernetShard", + "AethernetShard": "[Gold Saucer] Entrance & Card Squares" + }, + { + "DataId": 1010448, + "Position": { + "X": -54.00177, + "Y": 1.6000003, + "Z": 30.685791 + }, + "StopDistance": 5, + "TerritoryId": 144, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1011038, + "Position": { + "X": -58.884644, + "Y": 1.6000003, + "Z": 27.634033 + }, + "StopDistance": 5, + "TerritoryId": 144, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1010478, + "Position": { + "X": -99.19891, + "Y": -0.86297023, + "Z": 66.11731 + }, + "TerritoryId": 144, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1011044, + "Position": { + "X": -84.45868, + "Y": 3.7690625E-06, + "Z": 29.06836 + }, + "TerritoryId": 144, + "InteractionType": "Interact", + "TargetTerritoryId": 388 + }, + { + "TerritoryId": 388, + "InteractionType": "AttuneAethernetShard", + "AethernetShard": "[Gold Saucer] Minion Square" + }, + { + "TerritoryId": 388, + "InteractionType": "AttuneAethernetShard", + "AethernetShard": "[Gold Saucer] Chocobo Square" + }, + { + "TerritoryId": 144, + "InteractionType": "AttuneAetheryte", + "Aetheryte": "Gold Saucer", + "AethernetShortcut": [ + "[Gold Saucer] Chocobo Square", + "[Gold Saucer] Entrance & Card Squares" + ] + }, + { + "DataId": 1011080, + "Position": { + "X": 21.530457, + "Y": 3.9997296, + "Z": 39.902344 + }, + "TerritoryId": 144, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "Position": { + "X": 12.5078335, + "Y": 4.1552944, + "Z": 45.718685 + }, + "TerritoryId": 144, + "InteractionType": "Jump", + "JumpDestination": { + "Position": { + "X": 12.60962, + "Y": 4.2181597, + "Z": 49.651253 + } + } + }, + { + "TerritoryId": 144, + "InteractionType": "AttuneAethernetShard", + "AethernetShard": "[Gold Saucer] Wonder Square West", + "DelaySecondsAtStart": 3 + }, + { + "TerritoryId": 144, + "InteractionType": "AttuneAethernetShard", + "AethernetShard": "[Gold Saucer] Wonder Square East" + }, + { + "TerritoryId": 144, + "InteractionType": "None", + "AethernetShortcut": [ + "[Gold Saucer] Wonder Square East", + "[Gold Saucer] Aetheryte Plaza" + ] + }, + { + "TerritoryId": 144, + "InteractionType": "AttuneAethernetShard", + "AethernetShard": "[Gold Saucer] Event Square" + }, + { + "Position": { + "X": 89.128395, + "Y": -5.000001, + "Z": -66.6124 + }, + "StopDistance": 0.5, + "TerritoryId": 144, + "InteractionType": "Jump", + "JumpDestination": { + "Position": { + "X": 85.47148, + "Y": -4.7818403, + "Z": -63.892 + }, + "DelaySeconds": 0.1 + } + }, + { + "TerritoryId": 144, + "InteractionType": "AttuneAethernetShard", + "AethernetShard": "[Gold Saucer] Cactpot Board", + "DelaySecondsAtStart": 3 + }, + { + "DataId": 1011079, + "Position": { + "X": 125.078125, + "Y": 13.000635, + "Z": -13.778931 + }, + "StopDistance": 4, + "TerritoryId": 144, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1011084, + "Position": { + "X": -12.527649, + "Y": 3.2546434, + "Z": -73.16705 + }, + "TerritoryId": 144, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Gold Saucer] Cactpot Board", + "[Gold Saucer] Aetheryte Plaza" + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "TerritoryId": 144, + "InteractionType": "AttuneAethernetShard", + "AethernetShard": "[Gold Saucer] Round Square" + }, + { + "DataId": 1010448, + "Position": { + "X": -54.00177, + "Y": 1.6000003, + "Z": 30.685791 + }, + "StopDistance": 5, + "TerritoryId": 144, + "InteractionType": "CompleteQuest", + "AethernetShortcut": [ + "[Gold Saucer] Round Square", + "[Gold Saucer] Entrance & Card Squares" + ] + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/MSQ/B-4.1/2968_A Sultana's Duty.json b/QuestPaths/4.x - Stormblood/MSQ/B-4.1/2968_A Sultana's Duty.json index db940a8b..4b430f94 100644 --- a/QuestPaths/4.x - Stormblood/MSQ/B-4.1/2968_A Sultana's Duty.json +++ b/QuestPaths/4.x - Stormblood/MSQ/B-4.1/2968_A Sultana's Duty.json @@ -85,20 +85,12 @@ "Sequence": 255, "Steps": [ { - "Position": { - "X": 12.5078335, - "Y": 4.1552944, - "Z": 45.718685 - }, "TerritoryId": 144, - "InteractionType": "Jump", - "JumpDestination": { - "Position": { - "X": 12.60962, - "Y": 4.2181597, - "Z": 49.651253 - } - } + "AethernetShortcut": [ + "[Gold Saucer] Entrance & Card Squares", + "[Gold Saucer] Wonder Square West" + ], + "InteractionType": "None" }, { "DataId": 1024043, @@ -113,4 +105,4 @@ ] } ] -} \ No newline at end of file +} diff --git a/Questionable.Model/Common/EAetheryteLocation.cs b/Questionable.Model/Common/EAetheryteLocation.cs index 7142cfe7..c1703017 100644 --- a/Questionable.Model/Common/EAetheryteLocation.cs +++ b/Questionable.Model/Common/EAetheryteLocation.cs @@ -82,6 +82,7 @@ public enum EAetheryteLocation GoldSaucerCactpotBoard = 67, GoldSaucerRoundSquare = 68, GoldSaucerChocoboSquare = 69, + GoldSaucerMinionSquare = 89, Ishgard = 70, IshgardForgottenKnight = 80, diff --git a/Questionable.Model/Questing/Converter/AethernetShardConverter.cs b/Questionable.Model/Questing/Converter/AethernetShardConverter.cs index 6367c9d7..efd2a9bd 100644 --- a/Questionable.Model/Questing/Converter/AethernetShardConverter.cs +++ b/Questionable.Model/Questing/Converter/AethernetShardConverter.cs @@ -54,6 +54,7 @@ public sealed class AethernetShardConverter() : EnumConverter Date: Fri, 23 Aug 2024 18:10:27 +0200 Subject: [PATCH 042/450] Add SB WAR quests --- .../Class Quests/WAR/601_And My Axe.json | 3 +- .../2900_Curious Gorge Meets His Match.json | 61 +++++++ .../Class Quests/WAR/2901_Field Training.json | 121 +++++++++++++ .../WAR/2902_When Push Comes to Shove.json | 158 ++++++++++++++++ .../WAR/2903_Going the Distance.json | 168 ++++++++++++++++++ .../WAR/2904_The Heart of the Problem.json | 148 +++++++++++++++ 6 files changed, 658 insertions(+), 1 deletion(-) create mode 100644 QuestPaths/4.x - Stormblood/Class Quests/WAR/2900_Curious Gorge Meets His Match.json create mode 100644 QuestPaths/4.x - Stormblood/Class Quests/WAR/2901_Field Training.json create mode 100644 QuestPaths/4.x - Stormblood/Class Quests/WAR/2902_When Push Comes to Shove.json create mode 100644 QuestPaths/4.x - Stormblood/Class Quests/WAR/2903_Going the Distance.json create mode 100644 QuestPaths/4.x - Stormblood/Class Quests/WAR/2904_The Heart of the Problem.json diff --git a/QuestPaths/3.x - Heavensward/Class Quests/WAR/601_And My Axe.json b/QuestPaths/3.x - Heavensward/Class Quests/WAR/601_And My Axe.json index 241c804a..fca23e00 100644 --- a/QuestPaths/3.x - Heavensward/Class Quests/WAR/601_And My Axe.json +++ b/QuestPaths/3.x - Heavensward/Class Quests/WAR/601_And My Axe.json @@ -110,7 +110,8 @@ "Z": 63.553833 }, "TerritoryId": 138, - "InteractionType": "CompleteQuest" + "InteractionType": "CompleteQuest", + "NextQuestId": 2900 } ] } diff --git a/QuestPaths/4.x - Stormblood/Class Quests/WAR/2900_Curious Gorge Meets His Match.json b/QuestPaths/4.x - Stormblood/Class Quests/WAR/2900_Curious Gorge Meets His Match.json new file mode 100644 index 00000000..d17c860b --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/WAR/2900_Curious Gorge Meets His Match.json @@ -0,0 +1,61 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1006746, + "Position": { + "X": 460.65454, + "Y": 8.309061, + "Z": 74.47925 + }, + "TerritoryId": 137, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Eastern La Noscea - Costa Del Sol", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1023885, + "Position": { + "X": 217.30359, + "Y": 7.999984, + "Z": 686.427 + }, + "TerritoryId": 135, + "InteractionType": "Interact", + "AetheryteShortcut": "Lower La Noscea - Moraby Drydocks" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1023885, + "Position": { + "X": 217.30359, + "Y": 7.999984, + "Z": 686.427 + }, + "StopDistance": 5, + "TerritoryId": 135, + "InteractionType": "CompleteQuest", + "NextQuestId": 2901 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Class Quests/WAR/2901_Field Training.json b/QuestPaths/4.x - Stormblood/Class Quests/WAR/2901_Field Training.json new file mode 100644 index 00000000..b558a026 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/WAR/2901_Field Training.json @@ -0,0 +1,121 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1023885, + "Position": { + "X": 217.30359, + "Y": 7.999984, + "Z": 686.427 + }, + "StopDistance": 5, + "TerritoryId": 135, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Lower La Noscea - Moraby Drydocks", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1022806, + "Position": { + "X": -164.5686, + "Y": 81.072655, + "Z": -294.33136 + }, + "TerritoryId": 180, + "InteractionType": "Interact", + "AetheryteShortcut": "Outer La Noscea - Camp Overlook", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2008649, + "Position": { + "X": -295.85718, + "Y": 53.20813, + "Z": -283.98572 + }, + "TerritoryId": 180, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 7500, + 7501 + ], + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2008650, + "Position": { + "X": -408.9876, + "Y": 46.860474, + "Z": -305.43988 + }, + "TerritoryId": 180, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 7500, + 7501 + ], + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1022811, + "Position": { + "X": -359.9756, + "Y": 58.723488, + "Z": -365.37732 + }, + "TerritoryId": 180, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1023885, + "Position": { + "X": 217.30359, + "Y": 7.999984, + "Z": 686.427 + }, + "StopDistance": 5, + "TerritoryId": 135, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Lower La Noscea - Moraby Drydocks", + "NextQuestId": 2902 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Class Quests/WAR/2902_When Push Comes to Shove.json b/QuestPaths/4.x - Stormblood/Class Quests/WAR/2902_When Push Comes to Shove.json new file mode 100644 index 00000000..11b3f38a --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/WAR/2902_When Push Comes to Shove.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": 1023885, + "Position": { + "X": 217.30359, + "Y": 7.999984, + "Z": 686.427 + }, + "StopDistance": 5, + "TerritoryId": 135, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Lower La Noscea - Moraby Drydocks", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1022816, + "Position": { + "X": -4.3183594, + "Y": 39.78392, + "Z": 197.52808 + }, + "TerritoryId": 137, + "InteractionType": "Interact", + "AetheryteShortcut": "Eastern La Noscea - Wineport", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2008651, + "Position": { + "X": -4.8066406, + "Y": 39.475098, + "Z": 348.2871 + }, + "TerritoryId": 137, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 7500, + 7501 + ], + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2008652, + "Position": { + "X": -82.59711, + "Y": 38.437378, + "Z": 501.42664 + }, + "TerritoryId": 137, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 7502, + 7503 + ], + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 2008653, + "Position": { + "X": -115.70923, + "Y": 49.66809, + "Z": 603.02124 + }, + "TerritoryId": 137, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 7502, + 7503 + ], + "Fly": true + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1022821, + "Position": { + "X": -149.85895, + "Y": 55.805172, + "Z": 642.7251 + }, + "TerritoryId": 137, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1022825, + "Position": { + "X": -208.08728, + "Y": 46.619385, + "Z": 467.73462 + }, + "TerritoryId": 137, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1023885, + "Position": { + "X": 217.30359, + "Y": 7.999984, + "Z": 686.427 + }, + "StopDistance": 5, + "TerritoryId": 135, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Lower La Noscea - Moraby Drydocks", + "NextQuestId": 2903 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Class Quests/WAR/2903_Going the Distance.json b/QuestPaths/4.x - Stormblood/Class Quests/WAR/2903_Going the Distance.json new file mode 100644 index 00000000..b9bc9fa7 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/WAR/2903_Going the Distance.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": 1023885, + "Position": { + "X": 217.30359, + "Y": 7.999984, + "Z": 686.427 + }, + "StopDistance": 5, + "TerritoryId": 135, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Lower La Noscea - Moraby Drydocks", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1019355, + "Position": { + "X": 556.8779, + "Y": -19.505642, + "Z": 397.14648 + }, + "TerritoryId": 622, + "InteractionType": "Interact", + "AetheryteShortcut": "Azim Steppe - Reunion", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 1019347, + "Position": { + "X": 575.2803, + "Y": -19.505632, + "Z": 343.74 + }, + "TerritoryId": 622, + "InteractionType": "Interact", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 1019354, + "Position": { + "X": 573.6323, + "Y": -19.505655, + "Z": 311.6654 + }, + "TerritoryId": 622, + "InteractionType": "Interact", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": -186.52919, + "Y": 2.935472, + "Z": 369.28806 + }, + "StopDistance": 0.5, + "TerritoryId": 622, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [ + 6641 + ], + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1022832, + "Position": { + "X": -183.76447, + "Y": 2.8128173, + "Z": 370.3822 + }, + "StopDistance": 5, + "TerritoryId": 622, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1022834, + "Position": { + "X": -339.25385, + "Y": 21.774029, + "Z": 268.6045 + }, + "TerritoryId": 622, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1022836, + "Position": { + "X": 525.10876, + "Y": -19.50681, + "Z": 403.3722 + }, + "TerritoryId": 622, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Azim Steppe - Reunion", + "Fly": true, + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_JOBWAR680_02903_Q1_000_075", + "Answer": "TEXT_JOBWAR680_02903_A1_000_076" + } + ], + "NextQuestId": 2904 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Class Quests/WAR/2904_The Heart of the Problem.json b/QuestPaths/4.x - Stormblood/Class Quests/WAR/2904_The Heart of the Problem.json new file mode 100644 index 00000000..9cefdbc5 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/WAR/2904_The Heart of the Problem.json @@ -0,0 +1,148 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1022836, + "Position": { + "X": 525.10876, + "Y": -19.50681, + "Z": 403.3722 + }, + "TerritoryId": 622, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1022837, + "Position": { + "X": 548.97375, + "Y": -19.503174, + "Z": 277.57678 + }, + "TerritoryId": 622, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": 534.11285, + "Y": 38.830116, + "Z": -473.95575 + }, + "TerritoryId": 622, + "InteractionType": "WalkTo" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1022839, + "Position": { + "X": 467.46008, + "Y": 39.964607, + "Z": -440.8484 + }, + "TerritoryId": 622, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1022836, + "Position": { + "X": 525.10876, + "Y": -19.50681, + "Z": 403.3722 + }, + "TerritoryId": 622, + "InteractionType": "Interact", + "AetheryteShortcut": "Azim Steppe - Reunion", + "Fly": true + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1022836, + "Position": { + "X": 525.10876, + "Y": -19.50681, + "Z": 403.3722 + }, + "TerritoryId": 622, + "InteractionType": "Emote", + "Emote": "slap" + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1022840, + "Position": { + "X": 233.38672, + "Y": 23.094816, + "Z": -234.57697 + }, + "TerritoryId": 622, + "InteractionType": "SinglePlayerDuty", + "Fly": true + } + ] + }, + { + "Sequence": 8, + "Steps": [ + { + "DataId": 1022841, + "Position": { + "X": 233.17297, + "Y": 23.085413, + "Z": -234.42438 + }, + "TerritoryId": 622, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1023885, + "Position": { + "X": 217.30359, + "Y": 7.999984, + "Z": 686.427 + }, + "StopDistance": 5, + "TerritoryId": 135, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Lower La Noscea - Moraby Drydocks" + } + ] + } + ] +} From f973f3cc5c35a34f4eb2369cbc2bfe3f95950951 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Fri, 23 Aug 2024 18:31:30 +0200 Subject: [PATCH 043/450] Small Gold Saucer adjustment --- .../Unlocks/Gold Saucer/434_It Could Happen to You.json | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/QuestPaths/2.x - A Realm Reborn/Unlocks/Gold Saucer/434_It Could Happen to You.json b/QuestPaths/2.x - A Realm Reborn/Unlocks/Gold Saucer/434_It Could Happen to You.json index 97124065..5605d082 100644 --- a/QuestPaths/2.x - A Realm Reborn/Unlocks/Gold Saucer/434_It Could Happen to You.json +++ b/QuestPaths/2.x - A Realm Reborn/Unlocks/Gold Saucer/434_It Could Happen to You.json @@ -13,8 +13,7 @@ "Z": -110.429565 }, "TerritoryId": 130, - "InteractionType": "AcceptQuest", - "PickUpQuestId": 434 + "InteractionType": "AcceptQuest" } ] }, From 1eed73afdf718590e62046ee566e0cdb83d220ce Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Fri, 23 Aug 2024 19:46:37 +0200 Subject: [PATCH 044/450] Minor cleanup for SB part 3 --- .../WAR/2904_The Heart of the Problem.json | 3 ++ .../MSQ/B-4.1/2963_The Darkness Below.json | 44 ++++++++++++++++--- .../MSQ/B-4.1/2964_The Mad King's Trove.json | 4 +- .../MSQ/B-4.1/2965_The Butcher's Blood.json | 14 +++++- .../MSQ/B-4.1/2966_Echoes of an Echo.json | 18 ++++++-- .../MSQ/B-4.1/2967_A Sultana's Strings.json | 25 ++++++++++- .../MSQ/B-4.1/2969_A Sultana's Resolve.json | 4 +- .../MSQ/B-4.1/2970_Securing the Saltery.json | 15 ++++--- .../MSQ/B-4.1/2971_A Blissful Arrival.json | 16 ++++++- .../MSQ/B-4.1/2972_Return of the Bull.json | 15 ++++++- .../C-4.2/3023_The Sword in the Store.json | 3 +- .../MSQ/C-4.2/3024_Hope on the Waves.json | 3 +- .../C-4.2/3025_Elation and Trepidation.json | 37 ++++++++++------ .../MSQ/C-4.2/3026_Storm on the Horizon.json | 44 +++++++------------ .../MSQ/C-4.2/3029_Rise of a New Sun.json | 3 +- .../MSQ/D-4.3/3070_Gosetsu and Tsuyu.json | 7 ++- .../D-4.3/3071_Gone Like the Morning Dew.json | 21 +++++++-- .../MSQ/D-4.3/3074_The Primary Agreement.json | 3 +- .../MSQ/D-4.3/3075_Under the Moonlight.json | 17 +++++-- .../Raid Quests/3035_Test World of Ruin.json | 3 ++ .../Common/EAetheryteLocation.cs | 1 + .../Converter/AethernetShardConverter.cs | 7 +++ Questionable.Model/common-schema.json | 6 +++ 23 files changed, 233 insertions(+), 80 deletions(-) diff --git a/QuestPaths/4.x - Stormblood/Class Quests/WAR/2904_The Heart of the Problem.json b/QuestPaths/4.x - Stormblood/Class Quests/WAR/2904_The Heart of the Problem.json index 9cefdbc5..c4710dc4 100644 --- a/QuestPaths/4.x - Stormblood/Class Quests/WAR/2904_The Heart of the Problem.json +++ b/QuestPaths/4.x - Stormblood/Class Quests/WAR/2904_The Heart of the Problem.json @@ -112,6 +112,9 @@ } ] }, + { + "Sequence": 7 + }, { "Sequence": 8, "Steps": [ diff --git a/QuestPaths/4.x - Stormblood/MSQ/B-4.1/2963_The Darkness Below.json b/QuestPaths/4.x - Stormblood/MSQ/B-4.1/2963_The Darkness Below.json index 9921542b..c24a8f01 100644 --- a/QuestPaths/4.x - Stormblood/MSQ/B-4.1/2963_The Darkness Below.json +++ b/QuestPaths/4.x - Stormblood/MSQ/B-4.1/2963_The Darkness Below.json @@ -12,6 +12,7 @@ "Y": 0, "Z": 58.64038 }, + "StopDistance": 5, "TerritoryId": 635, "InteractionType": "AcceptQuest", "AetheryteShortcut": "Rhalgr's Reach", @@ -36,7 +37,14 @@ "TerritoryId": 621, "InteractionType": "Interact", "AetheryteShortcut": "Lochs - Ala Mhigan Quarter", - "$": "QW: 0 0 0 0 0 0 -> QW: 1 0 0 0 0 128" + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] }, { "DataId": 1024131, @@ -47,7 +55,24 @@ }, "TerritoryId": 621, "InteractionType": "Interact", - "$": "QW: 1 0 0 0 0 128 -> QW: 2 0 0 0 0 192", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "Position": { + "X": 682.593, + "Y": 69.99999, + "Z": 538.1847 + }, + "TerritoryId": 621, + "InteractionType": "WalkTo", "Fly": true }, { @@ -59,7 +84,14 @@ }, "TerritoryId": 621, "InteractionType": "Interact", - "Fly": true + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] } ] }, @@ -74,8 +106,7 @@ "Z": 489.76868 }, "TerritoryId": 621, - "InteractionType": "Interact", - "Fly": true + "InteractionType": "Interact" } ] }, @@ -91,9 +122,10 @@ }, "TerritoryId": 621, "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Lochs - Ala Mhigan Quarter", "Fly": true } ] } ] -} \ No newline at end of file +} 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 8facd948..6f3c9c7f 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 @@ -12,6 +12,7 @@ "Y": 70, "Z": 576.0128 }, + "StopDistance": 5, "TerritoryId": 621, "InteractionType": "AcceptQuest", "AetheryteShortcut": "Lochs - Ala Mhigan Quarter", @@ -99,10 +100,11 @@ "Y": 70, "Z": 576.0128 }, + "StopDistance": 5, "TerritoryId": 621, "InteractionType": "CompleteQuest" } ] } ] -} \ No newline at end of file +} diff --git a/QuestPaths/4.x - Stormblood/MSQ/B-4.1/2965_The Butcher's Blood.json b/QuestPaths/4.x - Stormblood/MSQ/B-4.1/2965_The Butcher's Blood.json index b09978d3..79615f5e 100644 --- a/QuestPaths/4.x - Stormblood/MSQ/B-4.1/2965_The Butcher's Blood.json +++ b/QuestPaths/4.x - Stormblood/MSQ/B-4.1/2965_The Butcher's Blood.json @@ -12,6 +12,7 @@ "Y": 70, "Z": 576.1653 }, + "StopDistance": 7, "TerritoryId": 621, "InteractionType": "AcceptQuest", "AetheryteShortcut": "Lochs - Ala Mhigan Quarter", @@ -49,6 +50,7 @@ "Y": 69.999916, "Z": 637.3845 }, + "StopDistance": 5, "TerritoryId": 621, "InteractionType": "Interact" } @@ -64,10 +66,18 @@ "Y": 69.9999, "Z": 634.76 }, + "StopDistance": 7, "TerritoryId": 621, - "InteractionType": "CompleteQuest" + "InteractionType": "CompleteQuest", + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_STMBDB104_02965_Q1_000_000", + "Yes": true + } + ] } ] } ] -} \ No newline at end of file +} diff --git a/QuestPaths/4.x - Stormblood/MSQ/B-4.1/2966_Echoes of an Echo.json b/QuestPaths/4.x - Stormblood/MSQ/B-4.1/2966_Echoes of an Echo.json index 0fad695c..683ad95e 100644 --- a/QuestPaths/4.x - Stormblood/MSQ/B-4.1/2966_Echoes of an Echo.json +++ b/QuestPaths/4.x - Stormblood/MSQ/B-4.1/2966_Echoes of an Echo.json @@ -35,7 +35,14 @@ }, "TerritoryId": 621, "InteractionType": "Interact", - "Fly": true + "Fly": true, + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_STMBDB105_02966_Q1_000_000", + "Yes": true + } + ] } ] }, @@ -70,7 +77,8 @@ "X": -2.9769177, "Y": -1.3092512, "Z": -36.29651 - } + }, + "DelaySeconds": 0.1 }, "StopDistance": 0.25 }, @@ -87,7 +95,8 @@ "X": -2.8188858, "Y": 0.16235979, "Z": -38.626305 - } + }, + "DelaySeconds": 0.1 }, "StopDistance": 0.25 }, @@ -101,6 +110,7 @@ "TerritoryId": 738, "InteractionType": "Interact", "StopDistance": 4, + "DelaySecondsAtStart": 3, "$": "QW: 0 0 0 0 0 0 -> QW: 16 16 0 0 0 128" }, { @@ -156,4 +166,4 @@ ] } ] -} \ No newline at end of file +} diff --git a/QuestPaths/4.x - Stormblood/MSQ/B-4.1/2967_A Sultana's Strings.json b/QuestPaths/4.x - Stormblood/MSQ/B-4.1/2967_A Sultana's Strings.json index c044ad4c..accbb6f8 100644 --- a/QuestPaths/4.x - Stormblood/MSQ/B-4.1/2967_A Sultana's Strings.json +++ b/QuestPaths/4.x - Stormblood/MSQ/B-4.1/2967_A Sultana's Strings.json @@ -26,6 +26,22 @@ { "Sequence": 1, "Steps": [ + { + "TerritoryId": 131, + "InteractionType": "None", + "AetheryteShortcut": "Ul'dah" + }, + { + "DataId": 1011565, + "Position": { + "X": -78.8739, + "Y": 4, + "Z": -110.429565 + }, + "TerritoryId": 130, + "InteractionType": "AcceptQuest", + "PickUpQuestId": 434 + }, { "DataId": 1001821, "Position": { @@ -39,7 +55,12 @@ "AethernetShortcut": [ "[Ul'dah] Aetheryte Plaza", "[Ul'dah] The Chamber of Rule" - ] + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } } ] }, @@ -142,4 +163,4 @@ ] } ] -} \ No newline at end of file +} diff --git a/QuestPaths/4.x - Stormblood/MSQ/B-4.1/2969_A Sultana's Resolve.json b/QuestPaths/4.x - Stormblood/MSQ/B-4.1/2969_A Sultana's Resolve.json index 5fdd5f68..44e6cceb 100644 --- a/QuestPaths/4.x - Stormblood/MSQ/B-4.1/2969_A Sultana's Resolve.json +++ b/QuestPaths/4.x - Stormblood/MSQ/B-4.1/2969_A Sultana's Resolve.json @@ -80,6 +80,7 @@ "Y": -2.0000012, "Z": -17.166443 }, + "StopDistance": 5, "TerritoryId": 212, "InteractionType": "Interact" } @@ -95,10 +96,11 @@ "Y": -2.0000012, "Z": -17.166443 }, + "StopDistance": 5, "TerritoryId": 212, "InteractionType": "CompleteQuest" } ] } ] -} \ No newline at end of file +} diff --git a/QuestPaths/4.x - Stormblood/MSQ/B-4.1/2970_Securing the Saltery.json b/QuestPaths/4.x - Stormblood/MSQ/B-4.1/2970_Securing the Saltery.json index 10759bdc..284a29d3 100644 --- a/QuestPaths/4.x - Stormblood/MSQ/B-4.1/2970_Securing the Saltery.json +++ b/QuestPaths/4.x - Stormblood/MSQ/B-4.1/2970_Securing the Saltery.json @@ -12,6 +12,7 @@ "Y": -2.0000012, "Z": -17.166443 }, + "StopDistance": 5, "TerritoryId": 212, "InteractionType": "AcceptQuest" } @@ -45,7 +46,8 @@ }, "TerritoryId": 621, "InteractionType": "Interact", - "Fly": true + "Fly": true, + "AetheryteShortcut": "Lochs - Porta Praetoria" } ] }, @@ -60,8 +62,9 @@ "Z": 196.55139 }, "TerritoryId": 621, - "InteractionType": "Interact", - "Comment": "Aim at jaw" + "InteractionType": "Instruction", + "Comment": "Aim at jaw", + "Fly": true } ] }, @@ -75,6 +78,7 @@ "Y": -0.3, "Z": 207.6294 }, + "StopDistance": 5, "TerritoryId": 621, "InteractionType": "Interact" } @@ -91,7 +95,7 @@ "Z": 282.7954 }, "TerritoryId": 621, - "InteractionType": "Interact", + "InteractionType": "Instruction", "Fly": true, "Comment": "Aim at nearest eye" } @@ -107,6 +111,7 @@ "Y": 3.1742485, "Z": 249.34766 }, + "StopDistance": 6, "TerritoryId": 621, "InteractionType": "Interact" } @@ -129,4 +134,4 @@ ] } ] -} \ No newline at end of file +} diff --git a/QuestPaths/4.x - Stormblood/MSQ/B-4.1/2971_A Blissful Arrival.json b/QuestPaths/4.x - Stormblood/MSQ/B-4.1/2971_A Blissful Arrival.json index 5a1e9602..1241d40f 100644 --- a/QuestPaths/4.x - Stormblood/MSQ/B-4.1/2971_A Blissful Arrival.json +++ b/QuestPaths/4.x - Stormblood/MSQ/B-4.1/2971_A Blissful Arrival.json @@ -12,6 +12,7 @@ "Y": 11.183233, "Z": 187.02979 }, + "StopDistance": 5, "TerritoryId": 621, "InteractionType": "AcceptQuest" } @@ -20,6 +21,16 @@ { "Sequence": 1, "Steps": [ + { + "Position": { + "X": 528.8298, + "Y": 70, + "Z": 580.3701 + }, + "TerritoryId": 621, + "InteractionType": "WalkTo", + "Fly": true + }, { "DataId": 2009047, "Position": { @@ -27,9 +38,9 @@ "Y": 69.962524, "Z": 577.3861 }, + "StopDistance": 4, "TerritoryId": 621, "InteractionType": "Interact", - "Fly": true, "AetheryteShortcut": "Lochs - Ala Mhigan Quarter" } ] @@ -44,6 +55,7 @@ "Y": 70, "Z": 574.6699 }, + "StopDistance": 7, "TerritoryId": 621, "InteractionType": "Interact" } @@ -66,4 +78,4 @@ ] } ] -} \ No newline at end of file +} diff --git a/QuestPaths/4.x - Stormblood/MSQ/B-4.1/2972_Return of the Bull.json b/QuestPaths/4.x - Stormblood/MSQ/B-4.1/2972_Return of the Bull.json index ec0914e7..ace6118a 100644 --- a/QuestPaths/4.x - Stormblood/MSQ/B-4.1/2972_Return of the Bull.json +++ b/QuestPaths/4.x - Stormblood/MSQ/B-4.1/2972_Return of the Bull.json @@ -12,6 +12,7 @@ "Y": 74.00002, "Z": 75.48633 }, + "StopDistance": 5, "TerritoryId": 621, "InteractionType": "AcceptQuest", "DialogueChoices": [ @@ -52,7 +53,14 @@ }, "TerritoryId": 621, "InteractionType": "Interact", - "Fly": true + "Fly": true, + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_STMBDB111_02972_Q2_000_000", + "Yes": true + } + ] } ] }, @@ -66,6 +74,7 @@ "Y": 122, "Z": -349.0807 }, + "StopDistance": 5, "TerritoryId": 737, "InteractionType": "SinglePlayerDuty" } @@ -99,6 +108,7 @@ "Y": 70, "Z": 525.5055 }, + "StopDistance": 6, "TerritoryId": 621, "InteractionType": "Interact" } @@ -114,6 +124,7 @@ "Y": 70, "Z": 525.5055 }, + "StopDistance": 6, "TerritoryId": 621, "InteractionType": "Interact" } @@ -140,4 +151,4 @@ ] } ] -} \ No newline at end of file +} diff --git a/QuestPaths/4.x - Stormblood/MSQ/C-4.2/3023_The Sword in the Store.json b/QuestPaths/4.x - Stormblood/MSQ/C-4.2/3023_The Sword in the Store.json index 5e64545d..125abad6 100644 --- a/QuestPaths/4.x - Stormblood/MSQ/C-4.2/3023_The Sword in the Store.json +++ b/QuestPaths/4.x - Stormblood/MSQ/C-4.2/3023_The Sword in the Store.json @@ -12,6 +12,7 @@ "Y": 10.503965, "Z": -213.76367 }, + "StopDistance": 4, "TerritoryId": 628, "InteractionType": "AcceptQuest", "AetheryteShortcut": "Kugane", @@ -62,4 +63,4 @@ ] } ] -} \ No newline at end of file +} diff --git a/QuestPaths/4.x - Stormblood/MSQ/C-4.2/3024_Hope on the Waves.json b/QuestPaths/4.x - Stormblood/MSQ/C-4.2/3024_Hope on the Waves.json index 7d6c5d52..ab3f9d51 100644 --- a/QuestPaths/4.x - Stormblood/MSQ/C-4.2/3024_Hope on the Waves.json +++ b/QuestPaths/4.x - Stormblood/MSQ/C-4.2/3024_Hope on the Waves.json @@ -97,10 +97,11 @@ "Y": 11.709066, "Z": -283.0091 }, + "StopDistance": 7, "TerritoryId": 613, "InteractionType": "CompleteQuest" } ] } ] -} \ No newline at end of file +} diff --git a/QuestPaths/4.x - Stormblood/MSQ/C-4.2/3025_Elation and Trepidation.json b/QuestPaths/4.x - Stormblood/MSQ/C-4.2/3025_Elation and Trepidation.json index 9faacdcf..4248027b 100644 --- a/QuestPaths/4.x - Stormblood/MSQ/C-4.2/3025_Elation and Trepidation.json +++ b/QuestPaths/4.x - Stormblood/MSQ/C-4.2/3025_Elation and Trepidation.json @@ -12,6 +12,7 @@ "Y": 12.349811, "Z": -283.8026 }, + "StopDistance": 7, "TerritoryId": 613, "InteractionType": "AcceptQuest" } @@ -56,7 +57,14 @@ }, "TerritoryId": 614, "InteractionType": "Interact", - "$": "QW: 0 0 0 0 0 0 -> QW: 1 0 0 0 0 128" + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] }, { "DataId": 1019286, @@ -66,7 +74,15 @@ "Z": -425.3758 }, "TerritoryId": 614, - "InteractionType": "Interact" + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] } ] }, @@ -111,6 +127,7 @@ "Y": 36.90612, "Z": -524.71204 }, + "StopDistance": 4, "TerritoryId": 614, "InteractionType": "Interact" } @@ -119,16 +136,6 @@ { "Sequence": 255, "Steps": [ - { - "Position": { - "X": 228.99776, - "Y": 5.218606, - "Z": -407.7175 - }, - "TerritoryId": 614, - "InteractionType": "WalkTo", - "Fly": true - }, { "DataId": 1020524, "Position": { @@ -137,9 +144,11 @@ "Z": -433.24945 }, "TerritoryId": 614, - "InteractionType": "CompleteQuest" + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Yanxia - House of the Fierce", + "Fly": true } ] } ] -} \ No newline at end of file +} diff --git a/QuestPaths/4.x - Stormblood/MSQ/C-4.2/3026_Storm on the Horizon.json b/QuestPaths/4.x - Stormblood/MSQ/C-4.2/3026_Storm on the Horizon.json index 5abb5ca4..ba83bedd 100644 --- a/QuestPaths/4.x - Stormblood/MSQ/C-4.2/3026_Storm on the Horizon.json +++ b/QuestPaths/4.x - Stormblood/MSQ/C-4.2/3026_Storm on the Horizon.json @@ -50,6 +50,7 @@ "Y": 1.7862457, "Z": 738.9486 }, + "StopDistance": 5, "TerritoryId": 614, "InteractionType": "Interact" } @@ -86,43 +87,25 @@ "TargetTerritoryId": 759 }, { - "DataId": 162, - "Position": { - "X": 96.269165, - "Y": -3.4332886, - "Z": 81.01013 - }, "TerritoryId": 759, - "InteractionType": "Interact", - "Comment": "Aethernet Attunement: [Doman Enclave] Ferry Docks" + "InteractionType": "AttuneAethernetShard", + "AethernetShard": "[Doman Enclave] Ferry Docks" }, { - "DataId": 130, - "Position": { - "X": -61.57019, - "Y": 0.77819824, - "Z": 90.684326 - }, "TerritoryId": 759, - "InteractionType": "Interact", - "Comment": "Aethernet Attunement: [Doman Enclave] The Southern Enclave" - }, - { - "DataId": 129, - "Position": { - "X": 8.987488, - "Y": 0.8086548, - "Z": -105.85187 - }, - "TerritoryId": 759, - "InteractionType": "Interact", - "Comment": "Aethernet Attunement: [Doman Enclave] The Northern Enclave" + "InteractionType": "AttuneAethernetShard", + "AethernetShard": "[Doman Enclave] The Southern Enclave" }, { "TerritoryId": 759, "InteractionType": "AttuneAetheryte", "Aetheryte": "Doman Enclave" }, + { + "TerritoryId": 759, + "InteractionType": "AttuneAethernetShard", + "AethernetShard": "[Doman Enclave] The Northern Enclave" + }, { "DataId": 1024970, "Position": { @@ -132,6 +115,10 @@ }, "TerritoryId": 759, "InteractionType": "Interact", + "AethernetShortcut": [ + "[Doman Enclave] The Northern Enclave", + "[Doman Enclave] Aetheryte Plaza" + ], "DialogueChoices": [ { "Type": "List", @@ -178,6 +165,7 @@ "Y": 0.19999999, "Z": -4.837158 }, + "StopDistance": 7, "TerritoryId": 744, "InteractionType": "Interact" } @@ -210,4 +198,4 @@ ] } ] -} \ No newline at end of file +} diff --git a/QuestPaths/4.x - Stormblood/MSQ/C-4.2/3029_Rise of a New Sun.json b/QuestPaths/4.x - Stormblood/MSQ/C-4.2/3029_Rise of a New Sun.json index 6f89975e..e7a12a16 100644 --- a/QuestPaths/4.x - Stormblood/MSQ/C-4.2/3029_Rise of a New Sun.json +++ b/QuestPaths/4.x - Stormblood/MSQ/C-4.2/3029_Rise of a New Sun.json @@ -56,6 +56,7 @@ "Y": 1.286227, "Z": 746.2118 }, + "StopDistance": 5, "TerritoryId": 614, "InteractionType": "Interact" } @@ -93,4 +94,4 @@ ] } ] -} \ No newline at end of file +} diff --git a/QuestPaths/4.x - Stormblood/MSQ/D-4.3/3070_Gosetsu and Tsuyu.json b/QuestPaths/4.x - Stormblood/MSQ/D-4.3/3070_Gosetsu and Tsuyu.json index cdc7c89b..37c0320d 100644 --- a/QuestPaths/4.x - Stormblood/MSQ/D-4.3/3070_Gosetsu and Tsuyu.json +++ b/QuestPaths/4.x - Stormblood/MSQ/D-4.3/3070_Gosetsu and Tsuyu.json @@ -74,9 +74,12 @@ }, "TerritoryId": 759, "InteractionType": "CompleteQuest", - "Comment": "AethernetShortcut: [Doman Enclave] Aetheryte Plaza -> [Doman Enclave] Ferry Docks" + "AethernetShortcut": [ + "[Doman Enclave] Aetheryte Plaza", + "[Doman Enclave] Ferry Docks" + ] } ] } ] -} \ No newline at end of file +} diff --git a/QuestPaths/4.x - Stormblood/MSQ/D-4.3/3071_Gone Like the Morning Dew.json b/QuestPaths/4.x - Stormblood/MSQ/D-4.3/3071_Gone Like the Morning Dew.json index 68ab9388..dbf9f474 100644 --- a/QuestPaths/4.x - Stormblood/MSQ/D-4.3/3071_Gone Like the Morning Dew.json +++ b/QuestPaths/4.x - Stormblood/MSQ/D-4.3/3071_Gone Like the Morning Dew.json @@ -36,7 +36,14 @@ "TerritoryId": 614, "InteractionType": "Interact", "Fly": true, - "$": "QW: 0 0 0 0 0 0 -> QW: 1 0 0 0 0 128" + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] }, { "DataId": 1019303, @@ -46,7 +53,15 @@ "Z": 512.47424 }, "TerritoryId": 614, - "InteractionType": "Interact" + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] } ] }, @@ -115,4 +130,4 @@ ] } ] -} \ No newline at end of file +} diff --git a/QuestPaths/4.x - Stormblood/MSQ/D-4.3/3074_The Primary Agreement.json b/QuestPaths/4.x - Stormblood/MSQ/D-4.3/3074_The Primary Agreement.json index c5ac52f0..9a5fee8f 100644 --- a/QuestPaths/4.x - Stormblood/MSQ/D-4.3/3074_The Primary Agreement.json +++ b/QuestPaths/4.x - Stormblood/MSQ/D-4.3/3074_The Primary Agreement.json @@ -60,6 +60,7 @@ "Y": -8.000055, "Z": 44.327393 }, + "StopDistance": 5, "TerritoryId": 786, "InteractionType": "Interact" } @@ -117,4 +118,4 @@ ] } ] -} \ No newline at end of file +} diff --git a/QuestPaths/4.x - Stormblood/MSQ/D-4.3/3075_Under the Moonlight.json b/QuestPaths/4.x - Stormblood/MSQ/D-4.3/3075_Under the Moonlight.json index fd75aab2..920c183b 100644 --- a/QuestPaths/4.x - Stormblood/MSQ/D-4.3/3075_Under the Moonlight.json +++ b/QuestPaths/4.x - Stormblood/MSQ/D-4.3/3075_Under the Moonlight.json @@ -40,6 +40,17 @@ { "Sequence": 2, "Steps": [ + { + "Position": { + "X": 70.965355, + "Y": 26.085297, + "Z": -607.26685 + }, + "TerritoryId": 621, + "InteractionType": "WalkTo", + "Fly": true, + "AetheryteShortcut": "Lochs - Porta Praetoria" + }, { "DataId": 1025546, "Position": { @@ -48,9 +59,7 @@ "Z": -609.43005 }, "TerritoryId": 621, - "InteractionType": "Interact", - "Fly": true, - "AetheryteShortcut": "Lochs - Porta Praetoria" + "InteractionType": "Interact" } ] }, @@ -70,4 +79,4 @@ ] } ] -} \ No newline at end of file +} diff --git a/QuestPaths/4.x - Stormblood/Raid Quests/3035_Test World of Ruin.json b/QuestPaths/4.x - Stormblood/Raid Quests/3035_Test World of Ruin.json index 13de679b..01750617 100644 --- a/QuestPaths/4.x - Stormblood/Raid Quests/3035_Test World of Ruin.json +++ b/QuestPaths/4.x - Stormblood/Raid Quests/3035_Test World of Ruin.json @@ -44,6 +44,9 @@ } ] }, + { + "Sequence": 3 + }, { "Sequence": 4, "Steps": [ diff --git a/Questionable.Model/Common/EAetheryteLocation.cs b/Questionable.Model/Common/EAetheryteLocation.cs index c1703017..11738206 100644 --- a/Questionable.Model/Common/EAetheryteLocation.cs +++ b/Questionable.Model/Common/EAetheryteLocation.cs @@ -156,6 +156,7 @@ public enum EAetheryteLocation DomanEnclaveSouthern = 130, DomanEnclaveOneRiver = 131, DomanEnclaveDocks = 162, + DomanEnclaveGangos = 163, Crystarium = 133, CrystariumMarkets = 149, diff --git a/Questionable.Model/Questing/Converter/AethernetShardConverter.cs b/Questionable.Model/Questing/Converter/AethernetShardConverter.cs index efd2a9bd..e75b3ad0 100644 --- a/Questionable.Model/Questing/Converter/AethernetShardConverter.cs +++ b/Questionable.Model/Questing/Converter/AethernetShardConverter.cs @@ -100,6 +100,13 @@ public sealed class AethernetShardConverter() : EnumConverter Date: Fri, 23 Aug 2024 23:21:03 +0200 Subject: [PATCH 045/450] Minor cleanup for SB part 4 --- .../MSQ/D-4.3/3076_Emissary of the Dawn.json | 12 ++++++-- .../MSQ/E-4.4/3143_Sisterly Act.json | 3 +- .../MSQ/E-4.4/3144_Feel the Burn.json | 3 +- .../MSQ/E-4.4/3145_Shadows in the Empire.json | 19 +++++++++--- .../MSQ/E-4.4/3146_A Power in Slumber.json | 3 +- .../MSQ/E-4.4/3147_The Will of the Moon.json | 4 ++- .../MSQ/E-4.4/3148_The Call.json | 3 +- .../MSQ/E-4.4/3149_Prelude in Violet.json | 3 +- .../MSQ/F-4.5/3179_Soul Searching.json | 18 ++++------- .../MSQ/F-4.5/3180_A Defector's Tidings.json | 4 ++- .../F-4.5/3182_Parley on the Front Lines.json | 30 +++++++++++++++++-- .../MSQ/F-4.5/3183_The Face of War.json | 3 +- 12 files changed, 76 insertions(+), 29 deletions(-) diff --git a/QuestPaths/4.x - Stormblood/MSQ/D-4.3/3076_Emissary of the Dawn.json b/QuestPaths/4.x - Stormblood/MSQ/D-4.3/3076_Emissary of the Dawn.json index 05c5cf91..acc572af 100644 --- a/QuestPaths/4.x - Stormblood/MSQ/D-4.3/3076_Emissary of the Dawn.json +++ b/QuestPaths/4.x - Stormblood/MSQ/D-4.3/3076_Emissary of the Dawn.json @@ -28,7 +28,14 @@ "Z": 0.3689831 }, "TerritoryId": 351, - "InteractionType": "SinglePlayerDuty" + "InteractionType": "SinglePlayerDuty", + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_STMBDD107_03076_Q1_100_012", + "Yes": true + } + ] } ] }, @@ -42,10 +49,11 @@ "Y": -1.1041565E-05, "Z": -11.734253 }, + "StopDistance": 5, "TerritoryId": 351, "InteractionType": "CompleteQuest" } ] } ] -} \ No newline at end of file +} diff --git a/QuestPaths/4.x - Stormblood/MSQ/E-4.4/3143_Sisterly Act.json b/QuestPaths/4.x - Stormblood/MSQ/E-4.4/3143_Sisterly Act.json index 9d50c588..e047e82e 100644 --- a/QuestPaths/4.x - Stormblood/MSQ/E-4.4/3143_Sisterly Act.json +++ b/QuestPaths/4.x - Stormblood/MSQ/E-4.4/3143_Sisterly Act.json @@ -12,6 +12,7 @@ "Y": -1.1041565E-05, "Z": -11.734253 }, + "StopDistance": 5, "TerritoryId": 351, "InteractionType": "AcceptQuest" } @@ -99,4 +100,4 @@ ] } ] -} \ No newline at end of file +} 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 bfce7d3d..25ec9718 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 @@ -54,10 +54,11 @@ "Y": -4.178714, "Z": 87.296875 }, + "StopDistance": 7, "TerritoryId": 759, "InteractionType": "CompleteQuest" } ] } ] -} \ No newline at end of file +} diff --git a/QuestPaths/4.x - Stormblood/MSQ/E-4.4/3145_Shadows in the Empire.json b/QuestPaths/4.x - Stormblood/MSQ/E-4.4/3145_Shadows in the Empire.json index cc2bd52f..bcaa9b09 100644 --- a/QuestPaths/4.x - Stormblood/MSQ/E-4.4/3145_Shadows in the Empire.json +++ b/QuestPaths/4.x - Stormblood/MSQ/E-4.4/3145_Shadows in the Empire.json @@ -12,6 +12,7 @@ "Y": -4.178714, "Z": 87.296875 }, + "StopDistance": 7, "TerritoryId": 759, "InteractionType": "AcceptQuest", "AetheryteShortcut": "Doman Enclave", @@ -43,7 +44,10 @@ } ], "TargetTerritoryId": 744, - "Comment": "AethernetShortcut: [Doman Enclave] Ferry Docks -> [Doman Enclave] Aetheryte Plaza" + "AethernetShortcut": [ + "[Doman Enclave] Ferry Docks", + "[Doman Enclave] Aetheryte Plaza" + ] } ] }, @@ -57,6 +61,7 @@ "Y": 0.021091362, "Z": -3.0060425 }, + "StopDistance": 7, "TerritoryId": 744, "InteractionType": "Interact" } @@ -85,7 +90,10 @@ }, "TerritoryId": 759, "InteractionType": "Interact", - "Comment": "AethernetShortcut: [Doman Enclave] Aetheryte Plaza -> [Doman Enclave] Ferry Docks" + "AethernetShortcut": [ + "[Doman Enclave] Aetheryte Plaza", + "[Doman Enclave] Ferry Docks" + ] } ] }, @@ -109,7 +117,10 @@ } ], "TargetTerritoryId": 744, - "Comment": "AethernetShortcut: [Doman Enclave] Ferry Docks -> [Doman Enclave] Aetheryte Plaza" + "AethernetShortcut": [ + "[Doman Enclave] Ferry Docks", + "[Doman Enclave] Aetheryte Plaza" + ] }, { "DataId": 1025597, @@ -124,4 +135,4 @@ ] } ] -} \ No newline at end of file +} diff --git a/QuestPaths/4.x - Stormblood/MSQ/E-4.4/3146_A Power in Slumber.json b/QuestPaths/4.x - Stormblood/MSQ/E-4.4/3146_A Power in Slumber.json index e55780fd..0777eeda 100644 --- a/QuestPaths/4.x - Stormblood/MSQ/E-4.4/3146_A Power in Slumber.json +++ b/QuestPaths/4.x - Stormblood/MSQ/E-4.4/3146_A Power in Slumber.json @@ -51,6 +51,7 @@ "Y": -19.30375, "Z": 271.99194 }, + "StopDistance": 6, "TerritoryId": 622, "InteractionType": "Interact" } @@ -73,4 +74,4 @@ ] } ] -} \ No newline at end of file +} diff --git a/QuestPaths/4.x - Stormblood/MSQ/E-4.4/3147_The Will of the Moon.json b/QuestPaths/4.x - Stormblood/MSQ/E-4.4/3147_The Will of the Moon.json index 5c521f8b..cd563068 100644 --- a/QuestPaths/4.x - Stormblood/MSQ/E-4.4/3147_The Will of the Moon.json +++ b/QuestPaths/4.x - Stormblood/MSQ/E-4.4/3147_The Will of the Moon.json @@ -12,6 +12,7 @@ "Y": 40.86853, "Z": -503.37988 }, + "StopDistance": 5, "TerritoryId": 622, "InteractionType": "AcceptQuest" } @@ -101,10 +102,11 @@ "Y": 40.836098, "Z": -508.20172 }, + "StopDistance": 5, "TerritoryId": 622, "InteractionType": "CompleteQuest" } ] } ] -} \ No newline at end of file +} diff --git a/QuestPaths/4.x - Stormblood/MSQ/E-4.4/3148_The Call.json b/QuestPaths/4.x - Stormblood/MSQ/E-4.4/3148_The Call.json index feb70ed2..ede4cd62 100644 --- a/QuestPaths/4.x - Stormblood/MSQ/E-4.4/3148_The Call.json +++ b/QuestPaths/4.x - Stormblood/MSQ/E-4.4/3148_The Call.json @@ -131,10 +131,11 @@ "Y": 80, "Z": 437.70496 }, + "StopDistance": 5, "TerritoryId": 621, "InteractionType": "CompleteQuest" } ] } ] -} \ No newline at end of file +} diff --git a/QuestPaths/4.x - Stormblood/MSQ/E-4.4/3149_Prelude in Violet.json b/QuestPaths/4.x - Stormblood/MSQ/E-4.4/3149_Prelude in Violet.json index 15f45d46..7f81e8cd 100644 --- a/QuestPaths/4.x - Stormblood/MSQ/E-4.4/3149_Prelude in Violet.json +++ b/QuestPaths/4.x - Stormblood/MSQ/E-4.4/3149_Prelude in Violet.json @@ -12,6 +12,7 @@ "Y": 80, "Z": 437.70496 }, + "StopDistance": 5, "TerritoryId": 621, "InteractionType": "AcceptQuest", "AetheryteShortcut": "Lochs - Ala Mhigan Quarter", @@ -101,4 +102,4 @@ ] } ] -} \ No newline at end of file +} diff --git a/QuestPaths/4.x - Stormblood/MSQ/F-4.5/3179_Soul Searching.json b/QuestPaths/4.x - Stormblood/MSQ/F-4.5/3179_Soul Searching.json index d9590cce..ed050bb3 100644 --- a/QuestPaths/4.x - Stormblood/MSQ/F-4.5/3179_Soul Searching.json +++ b/QuestPaths/4.x - Stormblood/MSQ/F-4.5/3179_Soul Searching.json @@ -20,17 +20,6 @@ { "Sequence": 1, "Steps": [ - { - "Position": { - "X": 71.86769, - "Y": 204.99998, - "Z": 145.98666 - }, - "TerritoryId": 478, - "InteractionType": "WalkTo", - "TargetTerritoryId": 399, - "AetheryteShortcut": "Idyllshire" - }, { "DataId": 1026781, "Position": { @@ -40,6 +29,11 @@ }, "TerritoryId": 399, "InteractionType": "Interact", + "AetheryteShortcut": "Idyllshire", + "AethernetShortcut": [ + "[Idyllshire] Aetheryte Plaza", + "[Idyllshire] Prologue Gate (Western Hinterlands)" + ], "Fly": true } ] @@ -60,4 +54,4 @@ ] } ] -} \ No newline at end of file +} diff --git a/QuestPaths/4.x - Stormblood/MSQ/F-4.5/3180_A Defector's Tidings.json b/QuestPaths/4.x - Stormblood/MSQ/F-4.5/3180_A Defector's Tidings.json index c2861330..9d97cf8a 100644 --- a/QuestPaths/4.x - Stormblood/MSQ/F-4.5/3180_A Defector's Tidings.json +++ b/QuestPaths/4.x - Stormblood/MSQ/F-4.5/3180_A Defector's Tidings.json @@ -30,6 +30,7 @@ "TerritoryId": 621, "InteractionType": "Interact", "AetheryteShortcut": "Lochs - Ala Mhigan Quarter", + "Fly": true, "DialogueChoices": [ { "Type": "YesNo", @@ -50,6 +51,7 @@ "Y": 69.99995, "Z": 521.599 }, + "StopDistance": 5, "TerritoryId": 621, "InteractionType": "Interact" } @@ -90,4 +92,4 @@ ] } ] -} \ No newline at end of file +} diff --git a/QuestPaths/4.x - Stormblood/MSQ/F-4.5/3182_Parley on the Front Lines.json b/QuestPaths/4.x - Stormblood/MSQ/F-4.5/3182_Parley on the Front Lines.json index addb3a72..46719143 100644 --- a/QuestPaths/4.x - Stormblood/MSQ/F-4.5/3182_Parley on the Front Lines.json +++ b/QuestPaths/4.x - Stormblood/MSQ/F-4.5/3182_Parley on the Front Lines.json @@ -102,7 +102,14 @@ "Answer": "TEXT_STMBDF104_03182_A3_000_001" } ], - "$": "QW: 0 0 0 0 0 0 -> QW: 1 0 0 0 0 64" + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] }, { "DataId": 1026817, @@ -121,7 +128,14 @@ "Answer": "TEXT_STMBDF104_03182_A2_000_001" } ], - "$": "QW: 1 0 0 0 0 64 -> QW: 2 0 0 0 0 96" + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] }, { "DataId": 1026818, @@ -138,6 +152,14 @@ "Prompt": "TEXT_STMBDF104_03182_Q1_000_000", "Answer": "TEXT_STMBDF104_03182_A1_000_001" } + ], + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 ] } ] @@ -152,6 +174,7 @@ "Y": 0.014375329, "Z": 3.2807007 }, + "StopDistance": 7, "TerritoryId": 829, "InteractionType": "Interact" } @@ -167,10 +190,11 @@ "Y": 107.62999, "Z": 130.9071 }, + "StopDistance": 6, "TerritoryId": 829, "InteractionType": "CompleteQuest" } ] } ] -} \ No newline at end of file +} 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 37834969..c32f5c02 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 @@ -15,6 +15,7 @@ "Y": 107.62999, "Z": 130.9071 }, + "StopDistance": 6, "TerritoryId": 829, "InteractionType": "AcceptQuest" } @@ -89,4 +90,4 @@ ] } ] -} \ No newline at end of file +} From f18fd8a87c9ce1ee435eadcff02bf7c68f872add Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sat, 24 Aug 2024 00:02:05 +0200 Subject: [PATCH 046/450] Daily quest updates --- .../3904_Quality Parts, Guaranteed.json | 3 +- .../Dwarves/Dailies/3905_The New Batch.json | 64 +++++++++++++++++++ .../Dwarves/Dailies/3905_The New Batch.md | 6 ++ .../Dailies/4696_A Sound Endeavor.json | 3 +- .../Dailies/4697_Prototypical Retrieval.json | 33 +++++++++- .../Dailies/4698_Always Wear Protection.json | 21 +++++- .../PCT/4855_Mind over Manor.json | 23 +++++++ 7 files changed, 147 insertions(+), 6 deletions(-) create mode 100644 QuestPaths/5.x - Shadowbringers/Allied Societies/Dwarves/Dailies/3905_The New Batch.md diff --git a/QuestPaths/5.x - Shadowbringers/Allied Societies/Dwarves/Dailies/3904_Quality Parts, Guaranteed.json b/QuestPaths/5.x - Shadowbringers/Allied Societies/Dwarves/Dailies/3904_Quality Parts, Guaranteed.json index 9e176954..b8255d94 100644 --- a/QuestPaths/5.x - Shadowbringers/Allied Societies/Dwarves/Dailies/3904_Quality Parts, Guaranteed.json +++ b/QuestPaths/5.x - Shadowbringers/Allied Societies/Dwarves/Dailies/3904_Quality Parts, Guaranteed.json @@ -57,8 +57,7 @@ "Z": -423.84705 }, "TerritoryId": 813, - "InteractionType": "WalkTo", - "Fly": true + "InteractionType": "WalkTo" }, { "DataId": 1033712, diff --git a/QuestPaths/5.x - Shadowbringers/Allied Societies/Dwarves/Dailies/3905_The New Batch.json b/QuestPaths/5.x - Shadowbringers/Allied Societies/Dwarves/Dailies/3905_The New Batch.json index 737476ba..44d799f0 100644 --- a/QuestPaths/5.x - Shadowbringers/Allied Societies/Dwarves/Dailies/3905_The New Batch.json +++ b/QuestPaths/5.x - Shadowbringers/Allied Societies/Dwarves/Dailies/3905_The New Batch.json @@ -29,6 +29,40 @@ { "Sequence": 1, "Steps": [ + { + "DataId": 2011179, + "Position": { + "X": -304.036, + "Y": 19.860376, + "Z": -244.1596 + }, + "TerritoryId": 813, + "InteractionType": "Interact", + "Fly": true, + "RequiredQuestVariables": [ + null, + null, + [ + { + "Low": 2 + }, + { + "Low": 3 + } + ], + null, + null, + null + ], + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, { "DataId": 2011178, "Position": { @@ -39,6 +73,21 @@ "TerritoryId": 813, "InteractionType": "Interact", "Fly": true, + "RequiredQuestVariables": [ + null, + null, + [ + { + "Low": 1 + }, + { + "Low": 2 + } + ], + null, + null, + null + ], "CompletionQuestVariablesFlags": [ null, null, @@ -58,6 +107,21 @@ "TerritoryId": 813, "InteractionType": "Interact", "Fly": true, + "RequiredQuestVariables": [ + null, + null, + [ + { + "Low": 1 + }, + { + "Low": 3 + } + ], + null, + null, + null + ], "CompletionQuestVariablesFlags": [ null, null, diff --git a/QuestPaths/5.x - Shadowbringers/Allied Societies/Dwarves/Dailies/3905_The New Batch.md b/QuestPaths/5.x - Shadowbringers/Allied Societies/Dwarves/Dailies/3905_The New Batch.md new file mode 100644 index 00000000..98f1daab --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Allied Societies/Dwarves/Dailies/3905_The New Batch.md @@ -0,0 +1,6 @@ +``` +0 0 x 0 0 0 | 2011177 2011178 2011179 + 33(1) | x x + 34(2) | x x + 35(3) | x x +``` diff --git a/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Dailies/4696_A Sound Endeavor.json b/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Dailies/4696_A Sound Endeavor.json index a2c777b9..45394484 100644 --- a/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Dailies/4696_A Sound Endeavor.json +++ b/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Dailies/4696_A Sound Endeavor.json @@ -58,7 +58,8 @@ "Z": -706.9963 }, "TerritoryId": 959, - "InteractionType": "Interact" + "InteractionType": "Interact", + "Fly": true } ] }, diff --git a/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Dailies/4697_Prototypical Retrieval.json b/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Dailies/4697_Prototypical Retrieval.json index 4d767333..ceaa849e 100644 --- a/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Dailies/4697_Prototypical Retrieval.json +++ b/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Dailies/4697_Prototypical Retrieval.json @@ -39,7 +39,38 @@ "TerritoryId": 959, "InteractionType": "Interact", "AetheryteShortcut": "Mare Lamentorum - Sinus Lacrimarum", - "Fly": true + "Fly": true, + "RequiredQuestVariables": [ + null, + null, + [ + 16 + ], + null, + null, + null + ] + }, + { + "DataId": 2013260, + "Position": { + "X": 725.063, + "Y": 141.37488, + "Z": 233.02039 + }, + "TerritoryId": 959, + "InteractionType": "Interact", + "Fly": true, + "RequiredQuestVariables": [ + null, + null, + [ + 32 + ], + null, + null, + null + ] } ] }, diff --git a/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Dailies/4698_Always Wear Protection.json b/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Dailies/4698_Always Wear Protection.json index d731dcbc..4d1bd175 100644 --- a/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Dailies/4698_Always Wear Protection.json +++ b/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Dailies/4698_Always Wear Protection.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": 1044583, + "Position": { + "X": -52.018066, + "Y": -137.4167, + "Z": -622.4613 + }, + "TerritoryId": 959, + "InteractionType": "Interact", + "Fly": true + } ] }, { "Sequence": 255, "Steps": [ + { + "TerritoryId": 959, + "InteractionType": "Craft", + "ItemId": 38869, + "ItemCount": 4 + }, { "Position": { "X": -201.42024, @@ -42,7 +58,8 @@ "Z": -273.68756 }, "TerritoryId": 959, - "InteractionType": "WalkTo" + "InteractionType": "WalkTo", + "Fly": true }, { "DataId": 1044403, diff --git a/QuestPaths/7.x - Dawntrail/Class Quests/PCT/4855_Mind over Manor.json b/QuestPaths/7.x - Dawntrail/Class Quests/PCT/4855_Mind over Manor.json index ee9ad55c..d134ace3 100644 --- a/QuestPaths/7.x - Dawntrail/Class Quests/PCT/4855_Mind over Manor.json +++ b/QuestPaths/7.x - Dawntrail/Class Quests/PCT/4855_Mind over Manor.json @@ -84,9 +84,32 @@ "AethernetShortcut": [ "[Gridania] Conjurers' Guild", "[Gridania] Lancers' Guild" + ], + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_KINGBB202_04855_Q1_000_000", + "Answer": "TEXT_KINGBB202_04855_A1_000_001" + } ] } ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1049796, + "Position": { + "X": 27.695068, + "Y": 16.16987, + "Z": -339.13184 + }, + "StopDistance": 5, + "TerritoryId": 133, + "InteractionType": "CompleteQuest" + } + ] } ] } From a4d79079ba88aa9ddf128c55534a0a02a654e14e Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sat, 24 Aug 2024 00:05:17 +0200 Subject: [PATCH 047/450] Remove lv80 class quests from priority quest list --- Directory.Build.targets | 2 +- Questionable/Data/QuestData.cs | 36 +++++++++++++++++----------------- 2 files changed, 19 insertions(+), 19 deletions(-) diff --git a/Directory.Build.targets b/Directory.Build.targets index 5dacb6b5..4531c415 100644 --- a/Directory.Build.targets +++ b/Directory.Build.targets @@ -1,5 +1,5 @@ - 2.14 + 2.15 diff --git a/Questionable/Data/QuestData.cs b/Questionable/Data/QuestData.cs index f9164806..3a5f64ac 100644 --- a/Questionable/Data/QuestData.cs +++ b/Questionable/Data/QuestData.cs @@ -102,38 +102,38 @@ internal sealed class QuestData // ARR EClassJob.Gladiator => [63], - EClassJob.Paladin => [72, 73, 74, 75], + EClassJob.Paladin => [72, 73, 74], EClassJob.Marauder => [64], - EClassJob.Warrior => [76, 77, 78, 79], + EClassJob.Warrior => [76, 77, 78], EClassJob.Conjurer => [65], - EClassJob.WhiteMage => [86, 87, 88, 89], + EClassJob.WhiteMage => [86, 87, 88], EClassJob.Arcanist => [66], - EClassJob.Summoner => [127, 128, 129, 130], - EClassJob.Scholar => [90, 91, 92, 93], + EClassJob.Summoner => [127, 128, 129], + EClassJob.Scholar => [90, 91, 92], EClassJob.Pugilist => [67], - EClassJob.Monk => [98, 99, 100, 101], + EClassJob.Monk => [98, 99, 100], EClassJob.Lancer => [68], - EClassJob.Dragoon => [102, 103, 104, 105], + EClassJob.Dragoon => [102, 103, 104], EClassJob.Rogue => [69], - EClassJob.Ninja => [106, 107, 108, 109], + EClassJob.Ninja => [106, 107, 108], EClassJob.Archer => [70], - EClassJob.Bard => [113, 114, 115, 116], + EClassJob.Bard => [113, 114, 115], EClassJob.Thaumaturge => [71], - EClassJob.BlackMage => [123, 124, 125, 126], + EClassJob.BlackMage => [123, 124, 125], // HW - EClassJob.DarkKnight => [80, 81, 82, 83], - EClassJob.Astrologian => [94, 95, 96, 97], - EClassJob.Machinist => [117, 118, 119, 120], + EClassJob.DarkKnight => [80, 81, 82], + EClassJob.Astrologian => [94, 95, 96], + EClassJob.Machinist => [117, 118, 119], // SB - EClassJob.Samurai => [110, 111, 112], - EClassJob.RedMage => [131, 132, 133], - EClassJob.BlueMage => [134, 135, 146, 170], + EClassJob.Samurai => [110, 111], + EClassJob.RedMage => [131, 132], + EClassJob.BlueMage => [134, 135, 146], // ShB - EClassJob.Gunbreaker => [84, 85], - EClassJob.Dancer => [121, 122], + EClassJob.Gunbreaker => [84], + EClassJob.Dancer => [121], // EW EClassJob.Sage => [152], From dcf054a7635b5c6fb9463f4ace4767c8ec31498e Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sat, 24 Aug 2024 00:14:45 +0200 Subject: [PATCH 048/450] Fix teleport cost estimation --- Questionable/Functions/QuestFunctions.cs | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/Questionable/Functions/QuestFunctions.cs b/Questionable/Functions/QuestFunctions.cs index 6c51b2e5..6fb34dda 100644 --- a/Questionable/Functions/QuestFunctions.cs +++ b/Questionable/Functions/QuestFunctions.cs @@ -12,7 +12,6 @@ using FFXIVClientStructs.FFXIV.Component.GUI; using LLib.GameData; using LLib.GameUI; using Lumina.Excel.GeneratedSheets; -using Microsoft.Extensions.Logging; using Questionable.Controller; using Questionable.Controller.Steps.Interactions; using Questionable.Data; @@ -32,7 +31,6 @@ internal sealed unsafe class QuestFunctions private readonly IDataManager _dataManager; private readonly IClientState _clientState; private readonly IGameGui _gameGui; - private readonly ILogger _logger; public QuestFunctions( QuestRegistry questRegistry, @@ -41,8 +39,7 @@ internal sealed unsafe class QuestFunctions Configuration configuration, IDataManager dataManager, IClientState clientState, - IGameGui gameGui, - ILogger logger) + IGameGui gameGui) { _questRegistry = questRegistry; _questData = questData; @@ -51,7 +48,6 @@ internal sealed unsafe class QuestFunctions _dataManager = dataManager; _clientState = clientState; _gameGui = gameGui; - _logger = logger; } public (ElementId? CurrentQuest, byte Sequence) GetCurrentQuest() @@ -309,13 +305,10 @@ internal sealed unsafe class QuestFunctions private static int EstimateTeleportCosts(Quest quest) { - /* if (quest.Info.Expansion == EExpansionVersion.ARealmReborn) return 300 * quest.AllSteps().Count(x => x.Step.AetheryteShortcut != null); else return 1000 * quest.AllSteps().Count(x => x.Step.AetheryteShortcut != null); - */ - return 0; } private List GetPriorityQuestsThatCanBeAccepted() From a1988cc9c789297141a8e2fb1d86be2beaedf3e7 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sat, 24 Aug 2024 17:40:05 +0200 Subject: [PATCH 049/450] Change teleport indicator icon --- Questionable/Windows/QuestComponents/ActiveQuestComponent.cs | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/Questionable/Windows/QuestComponents/ActiveQuestComponent.cs b/Questionable/Windows/QuestComponents/ActiveQuestComponent.cs index 318b1f80..646d9e87 100644 --- a/Questionable/Windows/QuestComponents/ActiveQuestComponent.cs +++ b/Questionable/Windows/QuestComponents/ActiveQuestComponent.cs @@ -157,9 +157,7 @@ internal sealed partial class ActiveQuestComponent if (_configuration.Advanced.AdditionalStatusInformation && _questController.IsInterruptible()) { ImGui.SameLine(); - ImGui.PushFont(UiBuilder.IconFont); - ImGui.TextColored(ImGuiColors.DalamudYellow, FontAwesomeIcon.Pause.ToIconString()); - ImGui.PopFont(); + ImGui.TextColored(ImGuiColors.DalamudYellow, SeIconChar.Hyadelyn.ToIconString()); } } From f348e92cba719b03db9e92edcbb17524c45b2f02 Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Sun, 25 Aug 2024 03:03:41 +0800 Subject: [PATCH 050/450] Added Omicron 2nd story quest --- .../4602_Longing So for All the Fish.json | 260 ++++++++++++++++++ 1 file changed, 260 insertions(+) create mode 100644 QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Story/4602_Longing So for All the Fish.json 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 new file mode 100644 index 00000000..6745e7d5 --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Story/4602_Longing So for All the Fish.json @@ -0,0 +1,260 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "plogon_enjoyer", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1043951, + "Position": { + "X": 303.8529, + "Y": 481.99442, + "Z": 154.83325 + }, + "TerritoryId": 960, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1043865, + "Position": { + "X": 301.8081, + "Y": 482.13644, + "Z": 165.02625 + }, + "TerritoryId": 960, + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_BANOMI002_04602_Q5_000_000", + "Yes": true + } + ], + "Mount": true + }, + { + "DataId": 1043586, + "Position": { + "X": 205.3711, + "Y": 567.4998, + "Z": 246.72314 + }, + "TerritoryId": 960, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2012484, + "Position": { + "X": 492.48486, + "Y": 438.04077, + "Z": 365.43823 + }, + "TerritoryId": 960, + "InteractionType": "Interact", + "AetheryteShortcut": "Ultima Thule - Base Omicron", + "TargetTerritoryId": 960, + "Fly": true + }, + { + "DataId": 1043527, + "Position": { + "X": 463.5537, + "Y": 417.06747, + "Z": 407.12585 + }, + "TerritoryId": 960, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2012485, + "Position": { + "X": 469.3828, + "Y": 418.14294, + "Z": 403.3722 + }, + "TerritoryId": 960, + "InteractionType": "Interact", + "TargetTerritoryId": 960 + }, + { + "DataId": 1043529, + "Position": { + "X": 504.90576, + "Y": 436.9996, + "Z": 341.5122 + }, + "TerritoryId": 960, + "InteractionType": "Interact", + "Mount": true + }, + { + "DataId": 1043530, + "Position": { + "X": 475.0896, + "Y": 437.00183, + "Z": 319.53918 + }, + "TerritoryId": 960, + "InteractionType": "Interact", + "Mount": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1043531, + "Position": { + "X": 502.49475, + "Y": 436.99988, + "Z": 324.84924 + }, + "TerritoryId": 960, + "InteractionType": "Interact", + "Mount": true + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1043533, + "Position": { + "X": 77.3479, + "Y": 269.00006, + "Z": -607.72107 + }, + "TerritoryId": 960, + "InteractionType": "Interact", + "AetheryteShortcut": "Ultima Thule - Abode of the Ea", + "Fly": true + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1043537, + "Position": { + "X": -321.24823, + "Y": 263.2611, + "Z": -523.7049 + }, + "TerritoryId": 960, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 7, + "Steps": [ + { + "TerritoryId": 960, + "InteractionType": "None", + "RequiredGatheredItems": [ + { + "QuestAcceptedAsClass": "Miner", + "ItemId": 38277, + "ItemCount": 3 + }, + { + "QuestAcceptedAsClass": "Botanist", + "ItemId": 38301, + "ItemCount": 3 + } + ] + }, + { + "DataId": 2013072, + "Position": { + "X": 456.65674, + "Y": 438.04077, + "Z": 310.2312 + }, + "TerritoryId": 960, + "InteractionType": "Interact", + "AetheryteShortcut": "Ultima Thule - Base Omicron", + "TargetTerritoryId": 960, + "Mount": true + }, + { + "DataId": 1043865, + "Position": { + "X": 301.8081, + "Y": 482.13644, + "Z": 165.02625 + }, + "TerritoryId": 960, + "InteractionType": "Interact", + "TargetTerritoryId": 960, + "Fly": true + }, + { + "DataId": 1043585, + "Position": { + "X": 203.84521, + "Y": 567.4998, + "Z": 246.87573 + }, + "TerritoryId": 960, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1043864, + "Position": { + "X": 244.83093, + "Y": 564.8203, + "Z": 261.76843 + }, + "TerritoryId": 960, + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_BANOMI002_04602_Q2_000_000", + "Yes": true + } + ], + "Fly": true + }, + { + "DataId": 1043951, + "Position": { + "X": 303.8529, + "Y": 481.99442, + "Z": 154.83325 + }, + "TerritoryId": 960, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} \ No newline at end of file From f8a43a8558626278ba32c7578a5e5d62a491487b Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Fri, 23 Aug 2024 22:55:03 +0800 Subject: [PATCH 051/450] Added another daily quest --- .../Dailies/4616_Working Up a Thirst.json | 91 ++++++++++++++++++- .../Dailies/4616_Working Up a Thirst.md | 8 ++ 2 files changed, 98 insertions(+), 1 deletion(-) create mode 100644 QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4616_Working Up a Thirst.md diff --git a/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4616_Working Up a Thirst.json b/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4616_Working Up a Thirst.json index 368803c3..4d240d6f 100644 --- a/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4616_Working Up a Thirst.json +++ b/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4616_Working Up a Thirst.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,9 +17,99 @@ } ] }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1044051, + "Position": { + "X": -543.20593, + "Y": 72.39467, + "Z": 298.146 + }, + "TerritoryId": 960, + "InteractionType": "Interact", + "RequiredQuestVariables": [null, null, null, [1], null, null], + "Fly": true + }, + { + "DataId": 1044052, + "Position": { + "X": -110.27698, + "Y": 53.589848, + "Z": 538.41455 + }, + "TerritoryId": 960, + "InteractionType": "Interact", + "RequiredQuestVariables": [null, null, null, [1], null, null], + "Fly": true + }, + { + "DataId": 1044054, + "Position": { + "X": 83.69568, + "Y": 269.0921, + "Z": -483.0854 + }, + "TerritoryId": 960, + "InteractionType": "Interact", + "RequiredQuestVariables": [null, null, null, [2], null, null], + "Fly": true + }, + { + "DataId": 1044053, + "Position": { + "X": -225.66571, + "Y": 271.7499, + "Z": -308.6748 + }, + "TerritoryId": 960, + "InteractionType": "Interact", + "RequiredQuestVariables": [null, null, null, [2], null, null], + "Fly": true + }, + { + "DataId": 1044056, + "Position": { + "X": 582.7573, + "Y": 441.71567, + "Z": 427.9392 + }, + "TerritoryId": 960, + "InteractionType": "Interact", + "RequiredQuestVariables": [null, null, null, [3], null, null], + "Fly": true + }, + { + "DataId": 1044055, + "Position": { + "X": 636.59106, + "Y": 438.6276, + "Z": 271.5343 + }, + "TerritoryId": 960, + "InteractionType": "Interact", + "RequiredQuestVariables": [null, null, null, [3], null, null], + "Fly": true + } + ] + }, { "Sequence": 255, "Steps": [ + { + "DataId": 2013072, + "Position": { + "X": 456.65674, + "Y": 438.04077, + "Z": 310.2312 + }, + "TerritoryId": 960, + "InteractionType": "Interact", + "AetheryteShortcut": "Ultima Thule - Base Omicron", + "TargetTerritoryId": 960, + "Mount": true + }, { "DataId": 1043417, "Position": { diff --git a/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4616_Working Up a Thirst.md b/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4616_Working Up a Thirst.md new file mode 100644 index 00000000..98532d70 --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4616_Working Up a Thirst.md @@ -0,0 +1,8 @@ +## Working Up a Thirst + +``` +0 0 0 ? 0 0 + 1 → 1044051 1044052 + 2 → 1044053 1044054 + 3 → 1044055 1044056 +``` From 13037de8f1a15619f2869d299d62aeb82050f7ed Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Fri, 23 Aug 2024 23:12:33 +0800 Subject: [PATCH 052/450] Added step to enter Elysion --- .../Dailies/4611_Grounds for Improvement.json | 11 +++++++++++ 1 file changed, 11 insertions(+) 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 9b34e831..3b5632c9 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 @@ -21,7 +21,18 @@ "Sequence": 1, "Steps": [ { + "DataId": 2013074, + "Position": { + "X": 304.3412, + "Y": 483.48206, + "Z": 143.11438 + }, "TerritoryId": 960, + "InteractionType": "Interact", + "TargetTerritoryId": 1073 + }, + { + "TerritoryId": 1073, "InteractionType": "None", "RequiredGatheredItems": [ { From 7e8f20146092219b3693e0373f1384092990e2f7 Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Sun, 25 Aug 2024 01:42:30 +0800 Subject: [PATCH 053/450] Updated Omicron daily quest The Robot and the Sea --- .../Dailies/4614_The Robot and the Sea.json | 57 ++++++++++++++++++- 1 file changed, 56 insertions(+), 1 deletion(-) 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 368803c3..ca19a5ab 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 @@ -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,9 +17,65 @@ } ] }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2013074, + "Position": { + "X": 304.3412, + "Y": 483.48206, + "Z": 143.11438 + }, + "TerritoryId": 960, + "InteractionType": "Interact", + "TargetTerritoryId": 1073 + }, + { + "TerritoryId": 1073, + "InteractionType": "None", + "RequiredGatheredItems": [ + { + "QuestAcceptedAsClass": "Miner", + "ItemId": 38285, + "ItemCount": 3 + }, + { + "QuestAcceptedAsClass": "Botanist", + "ItemId": 38309, + "ItemCount": 3 + } + ] + }, + { + "DataId": 1044050, + "Position": { + "X": 472.03772, + "Y": 437.00162, + "Z": 336.6598 + }, + "TerritoryId": 960, + "InteractionType": "Interact", + "AetheryteShortcut": "Ultima Thule - Base Omicron", + "Mount": true + } + ] + }, { "Sequence": 255, "Steps": [ + { + "DataId": 2013072, + "Position": { + "X": 456.65674, + "Y": 438.04077, + "Z": 310.2312 + }, + "TerritoryId": 960, + "InteractionType": "Interact", + "TargetTerritoryId": 960, + "Mount": true + }, { "DataId": 1043417, "Position": { From 40d435ebc07c0ef67f994e2e616f269c83568870 Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Sun, 25 Aug 2024 03:00:24 +0800 Subject: [PATCH 054/450] Updated Omicron daily quest Using Their heads. Also added required gathering paths. --- .../Ultima Thule/905__MIN.json | 61 +++++++++++++++++++ .../Ultima Thule/907__BTN.json | 61 +++++++++++++++++++ .../Dailies/4615_Using Their Heads.json | 31 +++++++++- 3 files changed, 152 insertions(+), 1 deletion(-) create mode 100644 GatheringPaths/6.x - Endwalker/Ultima Thule/905__MIN.json create mode 100644 GatheringPaths/6.x - Endwalker/Ultima Thule/907__BTN.json diff --git a/GatheringPaths/6.x - Endwalker/Ultima Thule/905__MIN.json b/GatheringPaths/6.x - Endwalker/Ultima Thule/905__MIN.json new file mode 100644 index 00000000..ecca92e6 --- /dev/null +++ b/GatheringPaths/6.x - Endwalker/Ultima Thule/905__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": 960, + "InteractionType": "None", + "AetheryteShortcut": "Ultima Thule - Reah Tahra" + } + ], + "Groups": [ + { + "Nodes": [ + { + "DataId": 34364, + "Locations": [ + { + "Position": { + "X": -470.5523, + "Y": 79.49631, + "Z": 259.4856 + } + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 34365, + "Locations": [ + { + "Position": { + "X": -493.5432, + "Y": 73.7095, + "Z": 288.547 + } + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 34366, + "Locations": [ + { + "Position": { + "X": -478.8098, + "Y": 76.21393, + "Z": 280.0947 + } + } + ] + } + ] + } + ] +} diff --git a/GatheringPaths/6.x - Endwalker/Ultima Thule/907__BTN.json b/GatheringPaths/6.x - Endwalker/Ultima Thule/907__BTN.json new file mode 100644 index 00000000..63fb907f --- /dev/null +++ b/GatheringPaths/6.x - Endwalker/Ultima Thule/907__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": 960, + "InteractionType": "None", + "AetheryteShortcut": "Ultima Thule - Reah Tahra" + } + ], + "Groups": [ + { + "Nodes": [ + { + "DataId": 34370, + "Locations": [ + { + "Position": { + "X": -614.3087, + "Y": 81.96295, + "Z": 262.5681 + } + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 34371, + "Locations": [ + { + "Position": { + "X": -624.2021, + "Y": 79.12945, + "Z": 278.3768 + } + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 34372, + "Locations": [ + { + "Position": { + "X": -639.8513, + "Y": 78.34773, + "Z": 274.0034 + } + } + ] + } + ] + } + ] +} 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 368803c3..a4825552 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 @@ -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, @@ -21,6 +20,36 @@ { "Sequence": 255, "Steps": [ + { + "TerritoryId": 960, + "InteractionType": "None", + "RequiredGatheredItems": [ + { + "QuestAcceptedAsClass": "Miner", + "ItemId": 38286, + "ItemCount": 3 + }, + { + "QuestAcceptedAsClass": "Botanist", + "ItemId": 38310, + "ItemCount": 3 + } + ], + "Fly": true + }, + { + "DataId": 2013072, + "Position": { + "X": 456.65674, + "Y": 438.04077, + "Z": 310.2312 + }, + "TerritoryId": 960, + "InteractionType": "Interact", + "AetheryteShortcut": "Ultima Thule - Base Omicron", + "Mount": true, + "TargetTerritoryId": 960 + }, { "DataId": 1043417, "Position": { From f4beceec05a1397bdd036d6de112c32d11f2ce4d Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sat, 24 Aug 2024 22:42:32 +0200 Subject: [PATCH 055/450] Update tooltips --- .../Windows/QuestComponents/ActiveQuestComponent.cs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Questionable/Windows/QuestComponents/ActiveQuestComponent.cs b/Questionable/Windows/QuestComponents/ActiveQuestComponent.cs index 646d9e87..1234b1f1 100644 --- a/Questionable/Windows/QuestComponents/ActiveQuestComponent.cs +++ b/Questionable/Windows/QuestComponents/ActiveQuestComponent.cs @@ -142,7 +142,8 @@ internal sealed partial class ActiveQuestComponent ImGui.SameLine(0); if (ImGui.IsItemHovered()) - ImGui.SetTooltip("This quest is loaded from your 'pluginConfigs\\Questionable\\Quests' directory.\nThis gets loaded even if Questionable ships with a newer/different version of the quest."); + ImGui.SetTooltip( + "This quest is loaded from your 'pluginConfigs\\Questionable\\Quests' directory.\nThis gets loaded even if Questionable ships with a newer/different version of the quest."); } ImGui.TextUnformatted( @@ -158,6 +159,9 @@ 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."); } } From 1a6646cb525893d4936086bcc8a6abbcfc67fdd2 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sat, 24 Aug 2024 22:42:52 +0200 Subject: [PATCH 056/450] Minor cleanup for ARR BRD --- .../BRD/1085_A Song of Bards and Bowmen.json | 15 +- .../BRD/1086_The Archer's Anthem.json | 28 ++- .../BRD/1087_Bard's-eye View.json | 18 +- .../BRD/1088_Doing It the Bard Way.json | 19 +- .../BRD/1089_Pieces of the Past.json | 53 +++- .../BRD/1090_Requiem for the Fallen.json | 11 +- .../BRD/134_Training with Leih.json | 227 +++++++++++------- .../Class Quests/BRD/219_My First Bow.json | 82 +++---- .../BRD/46_A Matter of Perspective.json | 211 +++++++++------- .../BRD/68_Violators Will Be Shot.json | 150 ++++++++++-- .../BRD/70_To Catch a Poacher.json | 69 +++++- .../Class Quests/BRD/71_Homecoming.json | 28 ++- .../BRD/76_The One That Got Away.json | 16 +- .../BRD/1713_On the Road Again.json | 22 +- 14 files changed, 591 insertions(+), 358 deletions(-) rename QuestPaths/{2.x - A Realm Reborn => 3.x - Heavensward}/Class Quests/BRD/1713_On the Road Again.json (91%) diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/1085_A Song of Bards and Bowmen.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/1085_A Song of Bards and Bowmen.json index 9fae75ae..196337ec 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/1085_A Song of Bards and Bowmen.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/1085_A Song of Bards and Bowmen.json @@ -12,6 +12,7 @@ "Y": 0.9999819, "Z": 35.01941 }, + "StopDistance": 7, "TerritoryId": 132, "InteractionType": "AcceptQuest", "AetheryteShortcut": "Gridania", @@ -21,10 +22,7 @@ ], "SkipConditions": { "AetheryteShortcutIf": { - "InSameTerritory": true, - "InTerritory": [ - 132 - ] + "InSameTerritory": true } } } @@ -46,10 +44,7 @@ "Fly": true, "SkipConditions": { "AetheryteShortcutIf": { - "InSameTerritory": true, - "InTerritory": [ - 153 - ] + "InSameTerritory": true } } } @@ -107,6 +102,7 @@ "Y": 2.147105, "Z": 21.86615 }, + "StopDistance": 7, "TerritoryId": 153, "InteractionType": "Interact", "Fly": false @@ -125,7 +121,8 @@ }, "TerritoryId": 153, "InteractionType": "CompleteQuest", - "Fly": true + "Fly": true, + "NextQuestId": 1085 } ] } 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 dab7c28a..58b792d6 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 @@ -5,6 +5,15 @@ { "Sequence": 0, "Steps": [ + { + "TerritoryId": 153, + "InteractionType": "EquipItem", + "ItemId": 4546 + }, + { + "TerritoryId": 153, + "InteractionType": "EquipRecommended" + }, { "DataId": 1006750, "Position": { @@ -18,10 +27,7 @@ "Fly": true, "SkipConditions": { "AetheryteShortcutIf": { - "InSameTerritory": true, - "InTerritory": [ - 153 - ] + "InSameTerritory": true } } } @@ -37,6 +43,7 @@ "Y": 68.192505, "Z": 586.1448 }, + "StopDistance": 0.5, "TerritoryId": 137, "InteractionType": "Combat", "EnemySpawnType": "AfterInteraction", @@ -47,10 +54,7 @@ "Fly": true, "SkipConditions": { "AetheryteShortcutIf": { - "InSameTerritory": true, - "InTerritory": [ - 137 - ] + "InSameTerritory": true } } } @@ -72,12 +76,10 @@ "Fly": true, "SkipConditions": { "AetheryteShortcutIf": { - "InSameTerritory": true, - "InTerritory": [ - 153 - ] + "InSameTerritory": true } - } + }, + "NextQuestId": 1087 } ] } diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/1087_Bard's-eye View.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/1087_Bard's-eye View.json index 7332dbc9..f7d9359f 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/1087_Bard's-eye View.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/1087_Bard's-eye View.json @@ -18,10 +18,7 @@ "Fly": true, "SkipConditions": { "AetheryteShortcutIf": { - "InSameTerritory": true, - "InTerritory": [ - 153 - ] + "InSameTerritory": true } } } @@ -47,10 +44,7 @@ "Fly": true, "SkipConditions": { "AetheryteShortcutIf": { - "InSameTerritory": true, - "InTerritory": [ - 145 - ] + "InSameTerritory": true } } } @@ -72,12 +66,10 @@ "Fly": true, "SkipConditions": { "AetheryteShortcutIf": { - "InSameTerritory": true, - "InTerritory": [ - 153 - ] + "InSameTerritory": true } - } + }, + "NextQuestId": 1088 } ] } diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/1088_Doing It the Bard Way.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/1088_Doing It the Bard Way.json index e357eb15..50b44bf8 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/1088_Doing It the Bard Way.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/1088_Doing It the Bard Way.json @@ -1,7 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "pot0to", - "Comment": "Need to enable some way of doing single player duty first?", "QuestSequence": [ { "Sequence": 0, @@ -19,10 +18,7 @@ "Fly": true, "SkipConditions": { "AetheryteShortcutIf": { - "InSameTerritory": true, - "InTerritory": [ - 153 - ] + "InSameTerritory": true } } } @@ -46,12 +42,10 @@ "Fly": true, "SkipConditions": { "AetheryteShortcutIf": { - "InSameTerritory": true, - "InTerritory": [ - 137 - ] + "InSameTerritory": true } - } + }, + "$": "Actually a SinglePlayerDuty" } ] }, @@ -71,10 +65,7 @@ "Fly": true, "SkipConditions": { "AetheryteShortcutIf": { - "InSameTerritory": true, - "InTerritory": [ - 153 - ] + "InSameTerritory": true } }, "NextQuestId": 1089 diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/1089_Pieces of the Past.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/1089_Pieces of the Past.json index dbde6fc2..5336502f 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/1089_Pieces of the Past.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/1089_Pieces of the Past.json @@ -18,10 +18,7 @@ "Fly": true, "SkipConditions": { "AetheryteShortcutIf": { - "InSameTerritory": true, - "InTerritory": [ - 153 - ] + "InSameTerritory": true } }, "DialogueChoices": [ @@ -46,7 +43,15 @@ }, "TerritoryId": 153, "InteractionType": "Interact", - "Fly": true + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] }, { "DataId": 2002530, @@ -58,7 +63,15 @@ "TerritoryId": 152, "InteractionType": "Interact", "Fly": true, - "AetheryteShortcut": "East Shroud - Hawthorne Hut" + "AetheryteShortcut": "East Shroud - Hawthorne Hut", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 16 + ] }, { "Position": { @@ -80,7 +93,15 @@ }, "TerritoryId": 138, "InteractionType": "Interact", - "Fly": false + "Fly": false, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] }, { "DataId": 2002529, @@ -92,7 +113,15 @@ "TerritoryId": 147, "InteractionType": "Interact", "Fly": true, - "AetheryteShortcut": "Northern Thanalan - Ceruleum Processing Plant" + "AetheryteShortcut": "Northern Thanalan - Ceruleum Processing Plant", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] } ] }, @@ -112,12 +141,10 @@ "Fly": true, "SkipConditions": { "AetheryteShortcutIf": { - "InSameTerritory": true, - "InTerritory": [ - 153 - ] + "InSameTerritory": true } - } + }, + "NextQuestId": 1090 } ] } diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/1090_Requiem for the Fallen.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/1090_Requiem for the Fallen.json index d9232422..733606d0 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/1090_Requiem for the Fallen.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/1090_Requiem for the Fallen.json @@ -18,10 +18,7 @@ "Fly": true, "SkipConditions": { "AetheryteShortcutIf": { - "InSameTerritory": true, - "InTerritory": [ - 153 - ] + "InSameTerritory": true } } } @@ -42,7 +39,8 @@ "ItemId": 2000953, "EnemySpawnType": "AutoOnEnterArea", "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", - "Fly": true + "Fly": true, + "$": "Actually a SinglePlayerDuty" } ] }, @@ -57,7 +55,8 @@ "Z": 381.30762 }, "TerritoryId": 155, - "InteractionType": "CompleteQuest" + "InteractionType": "CompleteQuest", + "NextQuestId": 1713 } ] } diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/134_Training with Leih.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/134_Training with Leih.json index a42df442..bcae3086 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/134_Training with Leih.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/134_Training with Leih.json @@ -12,6 +12,7 @@ "Y": 0.9999819, "Z": 35.01941 }, + "StopDistance": 7, "TerritoryId": 132, "InteractionType": "AcceptQuest", "AetheryteShortcut": "Gridania", @@ -21,10 +22,7 @@ ], "SkipConditions": { "AetheryteShortcutIf": { - "InSameTerritory": true, - "InTerritory": [ - 132 - ] + "InSameTerritory": true } } } @@ -56,7 +54,8 @@ }, "TerritoryId": 148, "InteractionType": "WalkTo", - "AetheryteShortcut": "Central Shroud - Bentbranch Meadows" + "AetheryteShortcut": "Central Shroud - Bentbranch Meadows", + "Fly": true }, { "DataId": 2001177, @@ -68,7 +67,15 @@ "TerritoryId": 148, "StopDistance": 15, "InteractionType": "Action", - "Action": "Heavy Shot" + "Action": "Heavy Shot", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 2 + ] }, { "Position": { @@ -77,7 +84,19 @@ "Z": -61.20561 }, "TerritoryId": 148, - "InteractionType": "WalkTo" + "InteractionType": "WalkTo", + "SkipConditions": { + "StepIf": { + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 4 + ] + } + } }, { "DataId": 2001175, @@ -89,7 +108,15 @@ "TerritoryId": 148, "StopDistance": 15, "InteractionType": "Action", - "Action": "Heavy Shot" + "Action": "Heavy Shot", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 4 + ] }, { "Position": { @@ -98,7 +125,19 @@ "Z": -69.45994 }, "TerritoryId": 148, - "InteractionType": "WalkTo" + "InteractionType": "WalkTo", + "SkipConditions": { + "StepIf": { + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 8 + ] + } + } }, { "DataId": 2000959, @@ -110,7 +149,15 @@ "TerritoryId": 148, "StopDistance": 15, "InteractionType": "Action", - "Action": "Heavy Shot" + "Action": "Heavy Shot", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 8 + ] }, { "Position": { @@ -119,7 +166,19 @@ "Z": -132.85217 }, "TerritoryId": 148, - "InteractionType": "WalkTo" + "InteractionType": "WalkTo", + "SkipConditions": { + "StepIf": { + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 16 + ] + } + } }, { "DataId": 2000958, @@ -131,7 +190,15 @@ "TerritoryId": 148, "StopDistance": 15, "InteractionType": "Action", - "Action": "Heavy Shot" + "Action": "Heavy Shot", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 16 + ] }, { "Position": { @@ -140,7 +207,19 @@ "Z": -173.19547 }, "TerritoryId": 148, - "InteractionType": "WalkTo" + "InteractionType": "WalkTo", + "SkipConditions": { + "StepIf": { + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + } + } }, { "DataId": 2000957, @@ -152,7 +231,15 @@ "TerritoryId": 148, "StopDistance": 15, "InteractionType": "Action", - "Action": "Heavy Shot" + "Action": "Heavy Shot", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] }, { "Position": { @@ -200,57 +287,13 @@ { "Sequence": 4, "Steps": [ - { - "Position": { - "X": -353.36465, - "Y": 4.1194496, - "Z": 288.19882 - }, - "TerritoryId": 152, - "AetheryteShortcut": "East Shroud - Hawthorne Hut", - "InteractionType": "Combat", - "EnemySpawnType": "OverworldEnemies", - "ComplexCombatData": [ - { - "DataId": 5, - "MinimumKillCount": 8, - "$": "Slay northern vultures." - }, - { - "DataId": 39, - "MinimumKillCount": 8, - "$": "Slay tree slugs." - } - ] - }, - { - "Position": { - "X": -424.11658, - "Y": 7.2559156, - "Z": 277.93048 - }, - "TerritoryId": 152, - "InteractionType": "Combat", - "EnemySpawnType": "OverworldEnemies", - "ComplexCombatData": [ - { - "DataId": 5, - "MinimumKillCount": 8, - "$": "Slay northern vultures." - }, - { - "DataId": 39, - "MinimumKillCount": 8, - "$": "Slay tree slugs." - } - ] - }, { "Position": { "X": -431.09494, "Y": 2.9039853, "Z": 239.26413 }, + "StopDistance": 0.5, "TerritoryId": 152, "InteractionType": "Combat", "EnemySpawnType": "OverworldEnemies", @@ -258,43 +301,41 @@ { "DataId": 5, "MinimumKillCount": 8, - "$": "Slay northern vultures." + "$": "Slay northern vultures.", + "CompletionQuestVariablesFlags": [ + null, + { + "High": 8 + }, + null, + null, + null, + null + ] }, { "DataId": 39, "MinimumKillCount": 8, - "$": "Slay tree slugs." - } - ] - }, - { - "Position": { - "X": -380.5414, - "Y": 1.1250772, - "Z": 236.78247 - }, - "TerritoryId": 152, - "InteractionType": "Combat", - "EnemySpawnType": "OverworldEnemies", - "ComplexCombatData": [ - { - "DataId": 5, - "MinimumKillCount": 8, - "$": "Slay northern vultures." + "$": "Slay tree slugs.", + "CompletionQuestVariablesFlags": [ + { + "Low": 8 + }, + null, + null, + null, + null, + null + ] } ], - "CompletionQuestVariablesFlags": [ - { - "Low": 8 - }, - { - "High": 8 - }, - null, - null, - null, - null - ] + "AetheryteShortcut": "East Shroud - Hawthorne Hut", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } } ] }, @@ -328,6 +369,7 @@ "Y": 0.9999819, "Z": 35.01941 }, + "StopDistance": 7, "TerritoryId": 132, "InteractionType": "CompleteQuest", "DialogueChoices": [ @@ -336,9 +378,10 @@ "Prompt": "TEXT_CLSARC997_00134_Q1_000_1", "Yes": true } - ] + ], + "NextQuestId": 68 } ] } ] -} \ No newline at end of file +} diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/219_My First Bow.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/219_My First Bow.json index f2e24c67..b81a741f 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/219_My First Bow.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/219_My First Bow.json @@ -21,10 +21,7 @@ ], "SkipConditions": { "AetheryteShortcutIf": { - "InSameTerritory": true, - "InTerritory": [ - 132 - ] + "InSameTerritory": true } } } @@ -46,11 +43,31 @@ { "DataId": 37, "MinimumKillCount": 3, - "$": "Slay ground squirrels as an archer" + "$": "Slay ground squirrels as an archer", + "CompletionQuestVariablesFlags": [ + { + "Low": 3 + }, + null, + null, + null, + null, + null + ] }, { "DataId": 49, "MinimumKillCount": 3, + "CompletionQuestVariablesFlags": [ + null, + { + "High": 3 + }, + null, + null, + null, + null + ], "$": "Slay little ladybugs as an archer" } ], @@ -63,61 +80,23 @@ "AetheryteShortcutIf": { "InSameTerritory": true, "InTerritory": [ - 132, 148 ] } - } - }, - { - "Position": { - "X": 72.74856, - "Y": 14.679733, - "Z": -257.5843 }, - "TerritoryId": 148, - "InteractionType": "Combat", - "EnemySpawnType": "OverworldEnemies", - "ComplexCombatData": [ - { - "DataId": 37, - "MinimumKillCount": 3, - "$": "Slay ground squirrels as an archer" - }, - { - "DataId": 49, - "MinimumKillCount": 3, - "$": "Slay little ladybugs as an archer" - } - ], "CompletionQuestVariablesFlags": [ { "Low": 3 }, - 32, + { + "High": 3 + }, null, null, null, null ] }, - { - "Position": { - "X": 92.364235, - "Y": 3.463302, - "Z": -193.49184 - }, - "TerritoryId": 148, - "InteractionType": "Combat", - "EnemySpawnType": "OverworldEnemies", - "ComplexCombatData": [ - { - "DataId": 47, - "MinimumKillCount": 3, - "$": "Slay forest funguars as an archer" - } - ] - }, { "Position": { "X": 126.943115, @@ -135,7 +114,7 @@ } ], "CompletionQuestVariablesFlags": [ - 16, + null, { "Low": 3 }, @@ -157,6 +136,7 @@ "Y": 0.9999819, "Z": 35.01941 }, + "StopDistance": 7, "TerritoryId": 132, "InteractionType": "CompleteQuest", "AetheryteShortcut": "Gridania", @@ -166,12 +146,10 @@ ], "SkipConditions": { "AetheryteShortcutIf": { - "InSameTerritory": true, - "InTerritory": [ - 132 - ] + "InSameTerritory": true } - } + }, + "NextQuestId": 46 } ] } diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/46_A Matter of Perspective.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/46_A Matter of Perspective.json index f0a78f61..1a1edfec 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/46_A Matter of Perspective.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/46_A Matter of Perspective.json @@ -12,6 +12,7 @@ "Y": 0.9999819, "Z": 35.01941 }, + "StopDistance": 7, "TerritoryId": 132, "InteractionType": "AcceptQuest", "AetheryteShortcut": "Gridania", @@ -21,10 +22,7 @@ ], "SkipConditions": { "AetheryteShortcutIf": { - "InSameTerritory": true, - "InTerritory": [ - 132 - ] + "InSameTerritory": true } } } @@ -43,7 +41,15 @@ "TerritoryId": 132, "StopDistance": 15, "InteractionType": "Action", - "Action": "Heavy Shot" + "Action": "Heavy Shot", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] }, { "Position": { @@ -52,7 +58,19 @@ "Z": 57.230045 }, "TerritoryId": 132, - "InteractionType": "WalkTo" + "InteractionType": "WalkTo", + "SkipConditions": { + "StepIf": { + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + } + } }, { "DataId": 2000926, @@ -64,7 +82,15 @@ "TerritoryId": 132, "StopDistance": 20, "InteractionType": "Action", - "Action": "Heavy Shot" + "Action": "Heavy Shot", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] }, { "Position": { @@ -73,7 +99,19 @@ "Z": 15.033528 }, "TerritoryId": 132, - "InteractionType": "WalkTo" + "InteractionType": "WalkTo", + "SkipConditions": { + "StepIf": { + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 2 + ] + } + } }, { "DataId": 2000931, @@ -85,7 +123,15 @@ "TerritoryId": 132, "StopDistance": 20, "InteractionType": "Action", - "Action": "Heavy Shot" + "Action": "Heavy Shot", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 2 + ] }, { "Position": { @@ -94,7 +140,19 @@ "Z": 21.23782 }, "TerritoryId": 132, - "InteractionType": "WalkTo" + "InteractionType": "WalkTo", + "SkipConditions": { + "StepIf": { + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 8 + ] + } + } }, { "DataId": 2000929, @@ -106,7 +164,15 @@ "TerritoryId": 132, "StopDistance": 20, "InteractionType": "Action", - "Action": "Heavy Shot" + "Action": "Heavy Shot", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 8 + ] }, { "Position": { @@ -115,7 +181,19 @@ "Z": 60.44494 }, "TerritoryId": 132, - "InteractionType": "WalkTo" + "InteractionType": "WalkTo", + "SkipConditions": { + "StepIf": { + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 16 + ] + } + } }, { "DataId": 2000928, @@ -127,7 +205,15 @@ "TerritoryId": 132, "StopDistance": 20, "InteractionType": "Action", - "Action": "Heavy Shot" + "Action": "Heavy Shot", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 16 + ] }, { "Position": { @@ -136,7 +222,19 @@ "Z": 88.24835 }, "TerritoryId": 132, - "InteractionType": "WalkTo" + "InteractionType": "WalkTo", + "SkipConditions": { + "StepIf": { + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + } + } }, { "DataId": 2000930, @@ -148,7 +246,15 @@ "TerritoryId": 132, "StopDistance": 20, "InteractionType": "Action", - "Action": "Heavy Shot" + "Action": "Heavy Shot", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] } ] }, @@ -164,19 +270,10 @@ }, "TerritoryId": 132, "InteractionType": "Interact", - "AetheryteShortcut": "Gridania", "AethernetShortcut": [ "[Gridania] Aetheryte Plaza", "[Gridania] Archers' Guild" - ], - "SkipConditions": { - "AetheryteShortcutIf": { - "InSameTerritory": true, - "InTerritory": [ - 132 - ] - } - } + ] } ] }, @@ -189,6 +286,7 @@ "Y": -21.916101, "Z": 210.33368 }, + "StopDistance": 0.5, "TerritoryId": 154, "AethernetShortcut": [ "[Gridania] Archers' Guild", @@ -196,23 +294,6 @@ ], "InteractionType": "Combat", "EnemySpawnType": "OverworldEnemies", - "ComplexCombatData": [ - { - "DataId": 5, - "MinimumKillCount": 8, - "$": "Slay opo-opos." - } - ] - }, - { - "Position": { - "X": 316.9498, - "Y": -16.625727, - "Z": 190.52563 - }, - "TerritoryId": 154, - "InteractionType": "Combat", - "EnemySpawnType": "OverworldEnemies", "ComplexCombatData": [ { "DataId": 5, @@ -220,6 +301,7 @@ "$": "Slay opo-opos." } ], + "Fly": true, "CompletionQuestVariablesFlags": [ { "Low": 8 @@ -237,40 +319,7 @@ "Y": -11.9244995, "Z": 40.554157 }, - "TerritoryId": 154, - "InteractionType": "Combat", - "EnemySpawnType": "OverworldEnemies", - "ComplexCombatData": [ - { - "DataId": 32, - "MinimumKillCount": 8, - "$": "Slay microchus." - } - ] - }, - { - "Position": { - "X": 315.33475, - "Y": -8.230231, - "Z": -6.9168186 - }, - "TerritoryId": 154, - "InteractionType": "Combat", - "EnemySpawnType": "OverworldEnemies", - "ComplexCombatData": [ - { - "DataId": 32, - "MinimumKillCount": 8, - "$": "Slay microchus." - } - ] - }, - { - "Position": { - "X": 276.26797, - "Y": -6.927437, - "Z": -31.987146 - }, + "StopDistance": 0.5, "TerritoryId": 154, "InteractionType": "Combat", "EnemySpawnType": "OverworldEnemies", @@ -281,6 +330,7 @@ "$": "Slay microchus." } ], + "Fly": true, "CompletionQuestVariablesFlags": [ null, { @@ -304,6 +354,7 @@ "Y": 0.9999819, "Z": 35.01941 }, + "StopDistance": 7, "TerritoryId": 132, "InteractionType": "CompleteQuest", "AetheryteShortcut": "Gridania", @@ -313,12 +364,10 @@ ], "SkipConditions": { "AetheryteShortcutIf": { - "InSameTerritory": true, - "InTerritory": [ - 132 - ] + "InSameTerritory": true } - } + }, + "NextQuestId": 134 } ] } diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/68_Violators Will Be Shot.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/68_Violators Will Be Shot.json index 88c35e71..bb81bb25 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/68_Violators Will Be Shot.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/68_Violators Will Be Shot.json @@ -12,6 +12,7 @@ "Y": 0.9999819, "Z": 35.01941 }, + "StopDistance": 7, "TerritoryId": 132, "InteractionType": "AcceptQuest", "AetheryteShortcut": "Gridania", @@ -21,10 +22,7 @@ ], "SkipConditions": { "AetheryteShortcutIf": { - "InSameTerritory": true, - "InTerritory": [ - 132 - ] + "InSameTerritory": true } } } @@ -56,7 +54,23 @@ }, "TerritoryId": 152, "InteractionType": "WalkTo", - "AetheryteShortcut": "East Shroud - Hawthorne Hut" + "AetheryteShortcut": "East Shroud - Hawthorne Hut", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + }, + "StepIf": { + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 16 + ] + } + } }, { "DataId": 2000944, @@ -68,7 +82,15 @@ "TerritoryId": 152, "StopDistance": 20, "InteractionType": "Action", - "Action": "Heavy Shot" + "Action": "Heavy Shot", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 16 + ] }, { "Position": { @@ -77,7 +99,19 @@ "Z": 297.61597 }, "TerritoryId": 152, - "InteractionType": "WalkTo" + "InteractionType": "WalkTo", + "SkipConditions": { + "StepIf": { + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + } + } }, { "DataId": 2000943, @@ -89,7 +123,15 @@ "TerritoryId": 152, "StopDistance": 20, "InteractionType": "Action", - "Action": "Heavy Shot" + "Action": "Heavy Shot", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] }, { "Position": { @@ -98,7 +140,19 @@ "Z": 306.18744 }, "TerritoryId": 152, - "InteractionType": "WalkTo" + "InteractionType": "WalkTo", + "SkipConditions": { + "StepIf": { + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 8 + ] + } + } }, { "DataId": 2000945, @@ -110,7 +164,15 @@ "TerritoryId": 152, "StopDistance": 20, "InteractionType": "Action", - "Action": "Heavy Shot" + "Action": "Heavy Shot", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 8 + ] }, { "Position": { @@ -119,7 +181,19 @@ "Z": 269.35767 }, "TerritoryId": 152, - "InteractionType": "WalkTo" + "InteractionType": "WalkTo", + "SkipConditions": { + "StepIf": { + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + } + } }, { "DataId": 2000942, @@ -131,7 +205,15 @@ "TerritoryId": 152, "StopDistance": 20, "InteractionType": "Action", - "Action": "Heavy Shot" + "Action": "Heavy Shot", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] }, { "Position": { @@ -140,7 +222,19 @@ "Z": 257.9185 }, "TerritoryId": 152, - "InteractionType": "WalkTo" + "InteractionType": "WalkTo", + "SkipConditions": { + "StepIf": { + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 2 + ] + } + } }, { "DataId": 2001179, @@ -152,7 +246,15 @@ "TerritoryId": 152, "StopDistance": 20, "InteractionType": "Action", - "Action": "Heavy Shot" + "Action": "Heavy Shot", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 2 + ] }, { "Position": { @@ -200,16 +302,6 @@ { "Sequence": 4, "Steps": [ - { - "Position": { - "X": 288.74252, - "Y": -11.241169, - "Z": 42.220448 - }, - "TerritoryId": 154, - "InteractionType": "WalkTo", - "AetheryteShortcut": "North Shroud - Fallgourd Float" - }, { "DataId": 2000962, "Position": { @@ -218,7 +310,12 @@ "Z": 52.384155 }, "TerritoryId": 154, - "InteractionType": "SinglePlayerDuty" + "InteractionType": "SinglePlayerDuty", + "AethernetShortcut": [ + "[Gridania] Archers' Guild", + "[Gridania] Yellow Serpent Gate (North Shroud)" + ], + "Fly": true } ] }, @@ -253,7 +350,8 @@ "Z": 35.01941 }, "TerritoryId": 132, - "InteractionType": "CompleteQuest" + "InteractionType": "CompleteQuest", + "NextQuestId": 70 } ] } diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/70_To Catch a Poacher.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/70_To Catch a Poacher.json index 95fd13ef..a72083ec 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/70_To Catch a Poacher.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/70_To Catch a Poacher.json @@ -12,6 +12,7 @@ "Y": 0.9999819, "Z": 35.01941 }, + "StopDistance": 7, "TerritoryId": 132, "InteractionType": "AcceptQuest", "AetheryteShortcut": "Gridania", @@ -21,10 +22,7 @@ ], "SkipConditions": { "AetheryteShortcutIf": { - "InSameTerritory": true, - "InTerritory": [ - 132 - ] + "InSameTerritory": true } } } @@ -33,6 +31,23 @@ { "Sequence": 1, "Steps": [ + { + "Position": { + "X": -166.19086, + "Y": 8.399985, + "Z": -64.10584 + }, + "TerritoryId": 153, + "InteractionType": "WalkTo", + "Fly": true, + "SkipConditions": { + "StepIf": { + "Flying": "Locked" + } + }, + "$": "Buscarron SE steps", + "AetheryteShortcut": "South Shroud - Quarrymill" + }, { "DataId": 1000590, "Position": { @@ -41,8 +56,7 @@ "Z": -81.34589 }, "TerritoryId": 153, - "InteractionType": "Interact", - "AetheryteShortcut": "South Shroud - Quarrymill" + "InteractionType": "Interact" } ] }, @@ -57,7 +71,15 @@ "Z": -46.00598 }, "TerritoryId": 153, - "InteractionType": "Interact" + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] }, { "DataId": 2000948, @@ -67,7 +89,15 @@ "Z": -91.17267 }, "TerritoryId": 153, - "InteractionType": "Interact" + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] }, { "DataId": 2000947, @@ -77,7 +107,15 @@ "Z": -165.11792 }, "TerritoryId": 153, - "InteractionType": "Interact" + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] } ] }, @@ -111,6 +149,15 @@ { "Sequence": 4, "Steps": [ + { + "Position": { + "X": -192.12004, + "Y": 8.180927, + "Z": -65.00513 + }, + "TerritoryId": 153, + "InteractionType": "WalkTo" + }, { "DataId": 2000136, "Position": { @@ -148,13 +195,15 @@ "Y": 0.9999819, "Z": 35.01941 }, + "StopDistance": 7, "TerritoryId": 132, "InteractionType": "CompleteQuest", "AetheryteShortcut": "Gridania", "AethernetShortcut": [ "[Gridania] Aetheryte Plaza", "[Gridania] Archers' Guild" - ] + ], + "NextQuestId": 71 } ] } diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/71_Homecoming.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/71_Homecoming.json index f8f3f223..77c52c23 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/71_Homecoming.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/71_Homecoming.json @@ -12,6 +12,7 @@ "Y": 0.9999819, "Z": 35.01941 }, + "StopDistance": 7, "TerritoryId": 132, "InteractionType": "AcceptQuest", "AetheryteShortcut": "Gridania", @@ -21,10 +22,7 @@ ], "SkipConditions": { "AetheryteShortcutIf": { - "InSameTerritory": true, - "InTerritory": [ - 132 - ] + "InSameTerritory": true } } } @@ -73,6 +71,7 @@ "TerritoryId": 153, "InteractionType": "Interact", "AetheryteShortcut": "South Shroud - Quarrymill", + "Fly": true, "DialogueChoices": [ { "Type": "List", @@ -86,6 +85,21 @@ { "Sequence": 4, "Steps": [ + { + "Position": { + "X": 60.130726, + "Y": -5.9999475, + "Z": 63.516415 + }, + "TerritoryId": 148, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Central Shroud - Bentbranch Meadows", + "SkipConditions": { + "StepIf": { + "Flying": "Unlocked" + } + } + }, { "DataId": 1000534, "Position": { @@ -95,7 +109,7 @@ }, "TerritoryId": 148, "InteractionType": "SinglePlayerDuty", - "AetheryteShortcut": "Central Shroud - Bentbranch Meadows" + "Fly": true } ] }, @@ -109,13 +123,15 @@ "Y": 0.9999819, "Z": 35.01941 }, + "StopDistance": 7, "TerritoryId": 132, "InteractionType": "CompleteQuest", "AetheryteShortcut": "Gridania", "AethernetShortcut": [ "[Gridania] Aetheryte Plaza", "[Gridania] Archers' Guild" - ] + ], + "NextQuestId": 76 } ] } diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/76_The One That Got Away.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/76_The One That Got Away.json index 90eca176..d888625a 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/76_The One That Got Away.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/76_The One That Got Away.json @@ -12,6 +12,7 @@ "Y": 0.9999819, "Z": 35.01941 }, + "StopDistance": 7, "TerritoryId": 132, "InteractionType": "AcceptQuest", "AetheryteShortcut": "Gridania", @@ -21,10 +22,7 @@ ], "SkipConditions": { "AetheryteShortcutIf": { - "InSameTerritory": true, - "InTerritory": [ - 132 - ] + "InSameTerritory": true } } } @@ -42,7 +40,8 @@ }, "TerritoryId": 153, "InteractionType": "SinglePlayerDuty", - "AetheryteShortcut": "South Shroud - Quarrymill" + "AetheryteShortcut": "South Shroud - Quarrymill", + "Fly": true } ] }, @@ -57,7 +56,8 @@ "Z": 61.08191 }, "TerritoryId": 153, - "InteractionType": "SinglePlayerDuty" + "InteractionType": "SinglePlayerDuty", + "Fly": true } ] }, @@ -71,13 +71,15 @@ "Y": 0.9999819, "Z": 35.01941 }, + "StopDistance": 7, "TerritoryId": 132, "InteractionType": "CompleteQuest", "AetheryteShortcut": "Gridania", "AethernetShortcut": [ "[Gridania] Aetheryte Plaza", "[Gridania] Archers' Guild" - ] + ], + "NextQuestId": 1085 } ] } diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/1713_On the Road Again.json b/QuestPaths/3.x - Heavensward/Class Quests/BRD/1713_On the Road Again.json similarity index 91% rename from QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/1713_On the Road Again.json rename to QuestPaths/3.x - Heavensward/Class Quests/BRD/1713_On the Road Again.json index 03dfae4b..e09b8613 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/1713_On the Road Again.json +++ b/QuestPaths/3.x - Heavensward/Class Quests/BRD/1713_On the Road Again.json @@ -18,10 +18,7 @@ "Fly": true, "SkipConditions": { "AetheryteShortcutIf": { - "InSameTerritory": true, - "InTerritory": [ - 153 - ] + "InSameTerritory": true } } } @@ -46,10 +43,7 @@ ], "SkipConditions": { "AetheryteShortcutIf": { - "InSameTerritory": true, - "InTerritory": [ - 132 - ] + "InSameTerritory": true } } } @@ -148,6 +142,7 @@ "Y": 6.386869, "Z": 414.9386 }, + "StopDistance": 7, "TerritoryId": 152, "InteractionType": "Interact" } @@ -172,10 +167,7 @@ ], "SkipConditions": { "AetheryteShortcutIf": { - "InSameTerritory": true, - "InTerritory": [ - 132 - ] + "InSameTerritory": true } } } @@ -191,15 +183,13 @@ "Y": 8.059147, "Z": 31.72351 }, + "StopDistance": 7, "TerritoryId": 418, "InteractionType": "CompleteQuest", "AetheryteShortcut": "Ishgard", "SkipConditions": { "AetheryteShortcutIf": { - "InSameTerritory": true, - "InTerritory": [ - 418 - ] + "InSameTerritory": true } } } From 0dd392950a7d309ff368bcee008c5a91ce3de99c Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sat, 24 Aug 2024 22:47:52 +0200 Subject: [PATCH 057/450] Change author for new omicron quests --- .../6.x - Endwalker/Ultima Thule/905__MIN.json | 14 ++++++++++---- .../6.x - Endwalker/Ultima Thule/907__BTN.json | 10 +++++++--- .../Dailies/4611_Grounds for Improvement.json | 2 +- .../Dailies/4614_The Robot and the Sea.json | 2 +- .../Omicrons/Dailies/4615_Using Their Heads.json | 2 +- .../Omicrons/Dailies/4616_Working Up a Thirst.json | 2 +- 6 files changed, 21 insertions(+), 11 deletions(-) diff --git a/GatheringPaths/6.x - Endwalker/Ultima Thule/905__MIN.json b/GatheringPaths/6.x - Endwalker/Ultima Thule/905__MIN.json index ecca92e6..459a3d12 100644 --- a/GatheringPaths/6.x - Endwalker/Ultima Thule/905__MIN.json +++ b/GatheringPaths/6.x - Endwalker/Ultima Thule/905__MIN.json @@ -19,7 +19,9 @@ "X": -470.5523, "Y": 79.49631, "Z": 259.4856 - } + }, + "MinimumAngle": 0, + "MaximumAngle": 150 } ] } @@ -35,7 +37,9 @@ "X": -493.5432, "Y": 73.7095, "Z": 288.547 - } + }, + "MinimumAngle": 15, + "MaximumAngle": 215 } ] } @@ -51,11 +55,13 @@ "X": -478.8098, "Y": 76.21393, "Z": 280.0947 - } + }, + "MinimumAngle": 50, + "MaximumAngle": 180 } ] } ] } ] -} +} \ No newline at end of file diff --git a/GatheringPaths/6.x - Endwalker/Ultima Thule/907__BTN.json b/GatheringPaths/6.x - Endwalker/Ultima Thule/907__BTN.json index 63fb907f..1b2a3511 100644 --- a/GatheringPaths/6.x - Endwalker/Ultima Thule/907__BTN.json +++ b/GatheringPaths/6.x - Endwalker/Ultima Thule/907__BTN.json @@ -19,7 +19,9 @@ "X": -614.3087, "Y": 81.96295, "Z": 262.5681 - } + }, + "MinimumAngle": -150, + "MaximumAngle": 20 } ] } @@ -51,11 +53,13 @@ "X": -639.8513, "Y": 78.34773, "Z": 274.0034 - } + }, + "MinimumAngle": -60, + "MaximumAngle": 95 } ] } ] } ] -} +} \ No newline at end of file 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 3b5632c9..47d61f14 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 @@ -1,6 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "liza", + "Author": "plogon_enjoyer", "QuestSequence": [ { "Sequence": 0, 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 ca19a5ab..70ae5932 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 @@ -1,6 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "liza", + "Author": "plogon_enjoyer", "QuestSequence": [ { "Sequence": 0, 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 a4825552..88f3b658 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 @@ -1,6 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "liza", + "Author": "plogon_enjoyer", "QuestSequence": [ { "Sequence": 0, diff --git a/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4616_Working Up a Thirst.json b/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4616_Working Up a Thirst.json index 4d240d6f..a2478d3a 100644 --- a/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4616_Working Up a Thirst.json +++ b/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4616_Working Up a Thirst.json @@ -1,6 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "liza", + "Author": "plogon_enjoyer", "QuestSequence": [ { "Sequence": 0, From ec6687ec12d8dba262e13291cfd88a25d0cea1fb Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sat, 24 Aug 2024 22:53:30 +0200 Subject: [PATCH 058/450] Minor chocobo updates --- .../Central Shroud/1560_Bird in Hand.json | 53 ++++++++++++++++--- 1 file changed, 47 insertions(+), 6 deletions(-) diff --git a/QuestPaths/2.x - A Realm Reborn/Side Quests/Black Shroud/Central Shroud/1560_Bird in Hand.json b/QuestPaths/2.x - A Realm Reborn/Side Quests/Black Shroud/Central Shroud/1560_Bird in Hand.json index 7e4abb73..4038b5b7 100644 --- a/QuestPaths/2.x - A Realm Reborn/Side Quests/Black Shroud/Central Shroud/1560_Bird in Hand.json +++ b/QuestPaths/2.x - A Realm Reborn/Side Quests/Black Shroud/Central Shroud/1560_Bird in Hand.json @@ -28,7 +28,15 @@ "Z": 5.355835 }, "TerritoryId": 148, - "InteractionType": "Interact" + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 8 + ] }, { "DataId": 2004432, @@ -38,7 +46,15 @@ "Z": -5.2339478 }, "TerritoryId": 148, - "InteractionType": "Interact" + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] }, { "DataId": 2004433, @@ -48,7 +64,15 @@ "Z": -4.0131226 }, "TerritoryId": 148, - "InteractionType": "Interact" + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] }, { "DataId": 2004434, @@ -58,7 +82,15 @@ "Z": 16.128723 }, "TerritoryId": 148, - "InteractionType": "Interact" + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] }, { "DataId": 2004435, @@ -68,7 +100,15 @@ "Z": 16.03717 }, "TerritoryId": 148, - "InteractionType": "Interact" + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 16 + ] } ] }, @@ -142,6 +182,7 @@ "Y": -0.020424694, "Z": 28.54956 }, + "StopDistance": 7, "TerritoryId": 148, "InteractionType": "Interact" } @@ -178,4 +219,4 @@ ] } ] -} \ No newline at end of file +} From 4ca4e38af7fab05c3335982b0d512808ecb1952f Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sun, 25 Aug 2024 00:49:53 +0200 Subject: [PATCH 059/450] Make allied society quests non-interruptible --- Questionable/Controller/QuestController.cs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Questionable/Controller/QuestController.cs b/Questionable/Controller/QuestController.cs index c4805bb0..d932b471 100644 --- a/Questionable/Controller/QuestController.cs +++ b/Questionable/Controller/QuestController.cs @@ -719,6 +719,9 @@ internal sealed class QuestController : MiniTaskController, IDi if (type != ECurrentQuestType.Normal) return false; + if (currentQuest.Quest.Info.AlliedSociety != EAlliedSociety.None) + return false; + QuestSequence? currentSequence = currentQuest.Quest.FindSequence(currentQuest.Sequence); if (currentQuest.Step > 0) return false; From 581976b06b3c5831709c474d818b7e3b3e8a959a Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sun, 25 Aug 2024 01:27:41 +0200 Subject: [PATCH 060/450] Minor adjustments to unlock quests --- .../190_So You Want to Be an Alchemist.json | 47 ++-- .../ALC/575_Way of the Alchemist.json | 83 +++---- .../ARM/186_So You Want to Be an Armorer.json | 43 ++-- .../ARM/273_Way of the Armorer.json | 84 +++---- .../183_So You Want to Be a Thaumaturge.json | 52 ++-- .../BLM/344_Way of the Thaumaturge.json | 84 +++---- .../BRD/131_Way of the Archer.json | 84 +++---- .../BRD/181_So You Want to Be an Archer.json | 73 +++--- .../185_So You Want to Be a Blacksmith.json | 40 +-- .../BSM/291_Way of the Blacksmith.json | 88 +++---- .../BTN/193_So You Want to Be a Botanist.json | 64 ++--- .../BTN/3_Way of the Botanist.json | 84 +++---- .../184_So You Want to Be a Carpenter.json | 63 +++-- .../191_So You Want to Be a Culinarian.json | 43 ++-- .../CUL/271_Way of the Culinarian.json | 84 +++---- .../DRG/180_So You Want to Be a Lancer.json | 62 ++--- .../FSH/1107_Way of the Fisher.json | 104 ++++---- .../FSH/1108_My First Fishing Rod.json | 121 ++++------ .../FSH/1134_So You Want to Be a Fisher.json | 116 +++++---- .../FSH/3843_All the Fish in the Sea.json | 74 +++--- .../187_So You Want to Be a Goldsmith.json | 47 ++-- .../GSM/608_Way of the Goldsmith.json | 53 ++-- .../LTW/105_Way of the Leatherworker.json | 84 +++---- ...188_So You Want to Be a Leatherworker.json | 41 ++-- .../MNK/178_So You Want to Be a Pugilist.json | 46 ++-- .../MNK/532_Way of the Pugilist.json | 84 +++---- .../NIN/101_So You Want to Be a Rogue.json | 48 ++-- .../Class Quests/NIN/102_My First Dagger.json | 61 +++++ .../NIN/102_Way of the Rogue.json | 50 ---- .../PLD/1055_Paladin's Pledge.json | 155 ++++++------ .../177_So You Want to Be a Gladiator.json | 41 ++++ .../PLD/253_Way of the Gladiator.json | 18 +- .../PLD/261_Ul'dah's Most Wanted.json | 145 +++++------ .../PLD/262_That Old Familiar Feeling.json | 116 ++++----- .../PLD/263_The Face of Thal.json | 215 ++++++++++------- .../Class Quests/PLD/264_On Holy Ground.json | 143 +++++------ .../Class Quests/PLD/265_The Rematch.json | 227 +++++++++++------- .../PLD/285_Way of the Gladiator.json | 44 ++++ .../PLD/286_My First Gladius.json | 154 ++++++++++++ .../PLD/288_Ul'dah's Most Wanted.json | 163 +++++++++++++ .../451_So You Want to Be an Arcanist.json | 82 +++---- .../{ACN => SMN}/452_Way of the Arcanist.json | 82 +++---- .../WAR/179_So You Want to Be a Marauder.json | 43 ++-- .../WAR/310_Way of the Marauder.json | 84 +++---- .../WVR/189_So You Want to Be a Weaver.json | 47 ++-- .../WVR/534_Way of the Weaver.json | 84 +++---- 46 files changed, 2184 insertions(+), 1666 deletions(-) create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/102_My First Dagger.json delete mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/102_Way of the Rogue.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/PLD/177_So You Want to Be a Gladiator.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/PLD/285_Way of the Gladiator.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/PLD/286_My First Gladius.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/PLD/288_Ul'dah's Most Wanted.json rename QuestPaths/2.x - A Realm Reborn/Class Quests/{ACN => SMN}/451_So You Want to Be an Arcanist.json (95%) rename QuestPaths/2.x - A Realm Reborn/Class Quests/{ACN => SMN}/452_Way of the Arcanist.json (95%) diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/ALC/190_So You Want to Be an Alchemist.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/ALC/190_So You Want to Be an Alchemist.json index 4b16c6d0..e53954bb 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/ALC/190_So You Want to Be an Alchemist.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/ALC/190_So You Want to Be an Alchemist.json @@ -1,21 +1,24 @@ { - "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "Cacahuetes", - "QuestSequence": [ - { - "Sequence": 0, - "Steps": [ - { "DataId": 1002281, -"Position": { - "X": -115.739685, - "Y": 41.600117, - "Z": 118.88306 -}, -"TerritoryId": 131, -"InteractionType": "Interact", + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Cacahuetes", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1002281, + "Position": { + "X": -115.739685, + "Y": 41.600117, + "Z": 118.88306 + }, + "TerritoryId": 131, + "InteractionType": "Interact", "AetheryteShortcut": "Ul'dah", - "AethernetShortcut": ["[Ul'dah] Aetheryte Plaza", - "[Ul'dah] Alchemists' Guild"], + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Alchemists' Guild" + ], "SkipConditions": { "AetheryteShortcutIf": { "InSameTerritory": true, @@ -30,9 +33,9 @@ "Prompt": "TEXT_CLSALC001_00190_Q1_1", "Yes": true } - ]} - ] - } - ] - } - \ No newline at end of file + ] + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/ALC/575_Way of the Alchemist.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/ALC/575_Way of the Alchemist.json index 35f1bc7d..8a8c2e40 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/ALC/575_Way of the Alchemist.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/ALC/575_Way of the Alchemist.json @@ -1,42 +1,43 @@ { - "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "Cacahuetes", - "QuestSequence": [ - { - "Sequence": 0, - "Steps": [ - { "DataId": 1002281, -"Position": { - "X": -115.739685, - "Y": 41.600117, - "Z": 118.88306 -}, -"TerritoryId": 131, -"InteractionType": "AcceptQuest"} - ] - }, - { - "Sequence": 255, - "Steps": [ - { "DataId": 1002299, -"Position": { - "X": -98.8938, - "Y": 40.200146, - "Z": 120.83618 -}, -"TerritoryId": 131, -"InteractionType": "CompleteQuest", - "DialogueChoices": [ - { - "Type": "YesNo", - "Prompt": "TEXT_CLSALC011_00575_Q1_1", - "Yes": true - } - ], - "NextQuestId": 575 - } - ] - } - ] - } - \ No newline at end of file + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Cacahuetes", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1002281, + "Position": { + "X": -115.739685, + "Y": 41.600117, + "Z": 118.88306 + }, + "TerritoryId": 131, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1002299, + "Position": { + "X": -98.8938, + "Y": 40.200146, + "Z": 120.83618 + }, + "TerritoryId": 131, + "InteractionType": "CompleteQuest", + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_CLSALC011_00575_Q1_1", + "Yes": true + } + ] + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/ARM/186_So You Want to Be an Armorer.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/ARM/186_So You Want to Be an Armorer.json index f365f339..7cd043fc 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/ARM/186_So You Want to Be an Armorer.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/ARM/186_So You Want to Be an Armorer.json @@ -1,18 +1,19 @@ { - "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "Cacahuetes", - "QuestSequence": [ - { - "Sequence": 0, - "Steps": [ - { "DataId": 1000998, -"Position": { - "X": -51.651794, - "Y": 42.79979, - "Z": 190.41736 -}, -"TerritoryId": 128, -"InteractionType": "Interact", + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Cacahuetes", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1000998, + "Position": { + "X": -51.651794, + "Y": 42.79979, + "Z": 190.41736 + }, + "TerritoryId": 128, + "InteractionType": "Interact", "AetheryteShortcut": "Limsa Lominsa", "AethernetShortcut": [ "[Limsa Lominsa] Aetheryte Plaza", @@ -22,7 +23,7 @@ "AetheryteShortcutIf": { "InSameTerritory": true, "InTerritory": [ - 129 + 128 ] } }, @@ -32,9 +33,9 @@ "Prompt": "TEXT_CLSARM001_00186_Q1_000_1", "Yes": true } - ]} - ] - } - ] - } - \ No newline at end of file + ] + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/ARM/273_Way of the Armorer.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/ARM/273_Way of the Armorer.json index 91ca9538..93fef75b 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/ARM/273_Way of the Armorer.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/ARM/273_Way of the Armorer.json @@ -1,42 +1,44 @@ { - "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "Cacahuetes", - "QuestSequence": [ - { - "Sequence": 0, - "Steps": [ - { "DataId": 1000998, - "Position": { - "X": -51.651794, - "Y": 42.79979, - "Z": 190.41736 - }, - "TerritoryId": 128, - "InteractionType": "AcceptQuest"} - ] - }, - { - "Sequence": 255, - "Steps": [ - { "DataId": 1001000, - "Position": { - "X": -32.028687, - "Y": 41.499985, - "Z": 208.39233 - }, - "TerritoryId": 128, - "InteractionType": "CompleteQuest", - "DialogueChoices": [ - { - "Type": "YesNo", - "Prompt": "TEXT_CLSARM011_00273_Q1_000_1", - "Yes": true - } - ], - "NextQuestId": 273 - } - ] - } - ] - } - \ No newline at end of file + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Cacahuetes", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1000998, + "Position": { + "X": -51.651794, + "Y": 42.79979, + "Z": 190.41736 + }, + "TerritoryId": 128, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1001000, + "Position": { + "X": -32.028687, + "Y": 41.499985, + "Z": 208.39233 + }, + "TerritoryId": 128, + "InteractionType": "CompleteQuest", + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_CLSARM011_00273_Q1_000_1", + "Yes": true + } + ], + "NextQuestId": 273 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/BLM/183_So You Want to Be a Thaumaturge.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/BLM/183_So You Want to Be a Thaumaturge.json index f4678d54..fbd68169 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/BLM/183_So You Want to Be a Thaumaturge.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/BLM/183_So You Want to Be a Thaumaturge.json @@ -1,27 +1,27 @@ { - "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "Cacahuetes", - "QuestSequence": [ - { - "Sequence": 0, - "Steps": [ - { "DataId": 1002279, -"Position": { - "X": -196.8872, - "Y": 18.459997, - "Z": 59.952637 -}, -"TerritoryId": 130, -"InteractionType": "Interact", + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Cacahuetes", + "QuestSequence": [ + { + "Sequence": 0, + "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"], + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Thaumaturges' Guild" + ], "SkipConditions": { "AetheryteShortcutIf": { - "InSameTerritory": true, - "InTerritory": [ - 130 - ] + "InSameTerritory": true } }, "DialogueChoices": [ @@ -30,9 +30,9 @@ "Prompt": "TEXT_CLSTHM001_00183_Q1_000_1", "Yes": true } - ]} - ] - } - ] - } - \ No newline at end of file + ] + } + ] + } + ] +} 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 9dc1536a..902c1ef9 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 @@ -1,42 +1,44 @@ { - "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "Cacahuetes", - "QuestSequence": [ - { - "Sequence": 0, - "Steps": [ - { "DataId": 1002279, -"Position": { - "X": -196.8872, - "Y": 18.459997, - "Z": 59.952637 -}, -"TerritoryId": 130, -"InteractionType": "AcceptQuest"} - ] - }, - { - "Sequence": 255, - "Steps": [ - { "DataId": 1001709, -"Position": { - "X": -240.4975, - "Y": 18.7, - "Z": 85.58777 -}, -"TerritoryId": 130, -"InteractionType": "CompleteQuest", - "DialogueChoices": [ - { - "Type": "YesNo", - "Prompt": "TEXT_CLSTHM011_00344_Q1_001_1", - "Yes": true - } - ], - "NextQuestId": 553 - } - ] - } - ] - } - \ No newline at end of file + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Cacahuetes", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1002279, + "Position": { + "X": -196.8872, + "Y": 18.459997, + "Z": 59.952637 + }, + "TerritoryId": 130, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1001709, + "Position": { + "X": -240.4975, + "Y": 18.7, + "Z": 85.58777 + }, + "TerritoryId": 130, + "InteractionType": "CompleteQuest", + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_CLSTHM011_00344_Q1_001_1", + "Yes": true + } + ], + "NextQuestId": 553 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/131_Way of the Archer.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/131_Way of the Archer.json index 69146963..33fd9348 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/131_Way of the Archer.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/131_Way of the Archer.json @@ -1,42 +1,44 @@ { - "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "Cacahuetes", - "QuestSequence": [ - { - "Sequence": 0, - "Steps": [ - { "DataId": 1000197, -"Position": { - "X": 201.31226, - "Y": -3.1634123E-15, - "Z": 43.900146 -}, -"TerritoryId": 132, - "InteractionType": "AcceptQuest"} - ] - }, - { - "Sequence": 255, - "Steps": [ - { "DataId": 1000200, -"Position": { - "X": 209.55212, - "Y": 0.9999819, - "Z": 35.01941 -}, -"TerritoryId": 132, -"InteractionType": "CompleteQuest", - - "DialogueChoices": [ - { - "Type": "YesNo", - "Prompt": "TEXT_CLSARC998_00131_Q1_000_1", - "Yes": true - } - ] - } - ] - } - ] - } - \ No newline at end of file + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Cacahuetes", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1000197, + "Position": { + "X": 201.31226, + "Y": -3.1634123E-15, + "Z": 43.900146 + }, + "TerritoryId": 132, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1000200, + "Position": { + "X": 209.55212, + "Y": 0.9999819, + "Z": 35.01941 + }, + "StopDistance": 5, + "TerritoryId": 132, + "InteractionType": "CompleteQuest", + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_CLSARC998_00131_Q1_000_1", + "Yes": true + } + ] + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/181_So You Want to Be an Archer.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/181_So You Want to Be an Archer.json index 7ea66e41..8dd398f7 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/181_So You Want to Be an Archer.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/181_So You Want to Be an Archer.json @@ -1,42 +1,39 @@ { - "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "Cacahuetes", - "QuestSequence": [ - { - "Sequence": 0, - "Steps": [ - { "DataId": 1000197, -"Position": { - "X": 201.31226, - "Y": -3.1634123E-15, - "Z": 43.900146 -}, -"TerritoryId": 132, -"AetheryteShortcut": "Gridania", - "AethernetShortcut": [ - "[Gridania] Aetheryte Plaza", - "[Gridania] Archers' Guild" - ], - "DialogueChoices": [ - { - "Type": "YesNo", - "Prompt": "TEXT_CLSARC999_00181_Q1_000_1", - "Yes": true, - "$": "No Godbert prompt" - } - ], - "InteractionType": "AcceptQuest", - "SkipConditions": { + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Cacahuetes", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1000197, + "Position": { + "X": 201.31226, + "Y": -3.1634123E-15, + "Z": 43.900146 + }, + "TerritoryId": 132, + "AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Archers' Guild" + ], + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_CLSARC999_00181_Q1_000_1", + "Yes": true, + "$": "No Godbert prompt" + } + ], + "InteractionType": "AcceptQuest", + "SkipConditions": { "AetheryteShortcutIf": { - "InSameTerritory": true, - "InTerritory": [ - 132 - ] + "InSameTerritory": true } } - } - ] - } - ] - } - \ No newline at end of file + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/BSM/185_So You Want to Be a Blacksmith.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/BSM/185_So You Want to Be a Blacksmith.json index ff547934..32c64c56 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/BSM/185_So You Want to Be a Blacksmith.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/BSM/185_So You Want to Be a Blacksmith.json @@ -1,18 +1,19 @@ { - "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "Cacahuetes", - "QuestSequence": [ - { - "Sequence": 0, - "Steps": [ - { "DataId": 1000995, -"Position": { - "X": -52.018066, - "Y": 42.799637, - "Z": 192.2179 -}, -"TerritoryId": 128, -"InteractionType": "AcceptQuest", + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Cacahuetes", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1000995, + "Position": { + "X": -52.018066, + "Y": 42.799637, + "Z": 192.2179 + }, + "TerritoryId": 128, + "InteractionType": "AcceptQuest", "AetheryteShortcut": "Limsa Lominsa", "AethernetShortcut": [ "[Limsa Lominsa] Aetheryte Plaza", @@ -22,7 +23,7 @@ "AetheryteShortcutIf": { "InSameTerritory": true, "InTerritory": [ - 129 + 128 ] } }, @@ -35,8 +36,7 @@ ], "NextQuestId": 291 } - ] - } - ] - } - \ No newline at end of file + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/BSM/291_Way of the Blacksmith.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/BSM/291_Way of the Blacksmith.json index d175b90d..8430dab8 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/BSM/291_Way of the Blacksmith.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/BSM/291_Way of the Blacksmith.json @@ -1,18 +1,19 @@ { - "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "Cacahuetes", - "QuestSequence": [ - { - "Sequence": 0, - "Steps": [ - { "DataId": 1000995, -"Position": { - "X": -52.018066, - "Y": 42.799637, - "Z": 192.2179 -}, -"TerritoryId": 128, -"InteractionType": "AcceptQuest", + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Cacahuetes", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1000995, + "Position": { + "X": -52.018066, + "Y": 42.799637, + "Z": 192.2179 + }, + "TerritoryId": 128, + "InteractionType": "AcceptQuest", "AetheryteShortcut": "Limsa Lominsa", "AethernetShortcut": [ "[Limsa Lominsa] Aetheryte Plaza", @@ -22,7 +23,7 @@ "AetheryteShortcutIf": { "InSameTerritory": true, "InTerritory": [ - 129 + 128 ] } }, @@ -32,31 +33,32 @@ "Prompt": "TEXT_CLSBSM001_00185_Q1_000_1", "Yes": true } - ]} - ] - }, - { - "Sequence": 255, - "Steps": [ - { "DataId": 1000997, -"Position": { - "X": -31.265808, - "Y": 44.49997, - "Z": 185.53442 -}, -"TerritoryId": 128, -"InteractionType": "CompleteQuest", - "DialogueChoices": [ - { - "Type": "YesNo", - "Prompt": "TEXT_CLSBSM011_00291_Q1_000_1", - "Yes": true - } - ], - "NextQuestId": 292 - } - ] - } - ] - } - \ No newline at end of file + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1000997, + "Position": { + "X": -31.265808, + "Y": 44.49997, + "Z": 185.53442 + }, + "TerritoryId": 128, + "InteractionType": "CompleteQuest", + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_CLSBSM011_00291_Q1_000_1", + "Yes": true + } + ], + "NextQuestId": 292 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/BTN/193_So You Want to Be a Botanist.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/BTN/193_So You Want to Be a Botanist.json index 048b8ad3..aad03a63 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/BTN/193_So You Want to Be a Botanist.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/BTN/193_So You Want to Be a Botanist.json @@ -1,39 +1,41 @@ { - "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "Cacahuetes", - "QuestSequence": [ - { - "Sequence": 0, - "Steps": [ - { "DataId": 1000294, -"Position": { - "X": -238.05603, - "Y": 8, - "Z": -142.93127 -}, -"TerritoryId": 133, -"AetheryteShortcut": "Gridania", -"AethernetShortcut": ["[Gridania] Aetheryte Plaza", "[Gridania] Botanists' Guild"], - "DialogueChoices": [ - { - "Type": "YesNo", - "Prompt": "TEXT_CLSHRV999_00193_Q1_000_1", - "Yes": true - } - ], - "InteractionType": "AcceptQuest", - "SkipConditions": { + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Cacahuetes", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1000294, + "Position": { + "X": -238.05603, + "Y": 8, + "Z": -142.93127 + }, + "TerritoryId": 133, + "AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Botanists' Guild" + ], + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_CLSHRV999_00193_Q1_000_1", + "Yes": true + } + ], + "InteractionType": "AcceptQuest", + "SkipConditions": { "AetheryteShortcutIf": { "InSameTerritory": true, "InTerritory": [ - 132,133 + 133 ] } } - + } + ] + } + ] } - ] - } - ] - } - \ No newline at end of file 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 02440c89..aa2443e8 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 @@ -1,42 +1,44 @@ { - "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "Cacahuetes", - "QuestSequence": [ - { - "Sequence": 0, - "Steps": [ - { "DataId": 1000294, -"Position": { - "X": -238.05603, - "Y": 8, - "Z": -142.93127 -}, -"TerritoryId": 133, -"InteractionType": "AcceptQuest"} - ] - }, - { - "Sequence": 255, - "Steps": [ - { "DataId": 1000815, -"Position": { - "X": -233.9361, - "Y": 6.668152, - "Z": -171.03839 -}, -"TerritoryId": 133, -"InteractionType": "CompleteQuest", - "DialogueChoices": [ - { - "Type": "YesNo", - "Prompt": "TEXT_CLSHRV001_00003_Q1_000_1", - "Yes": true - } - ], - "NextQuestId": 3 - } - ] - } - ] - } - \ No newline at end of file + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Cacahuetes", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1000294, + "Position": { + "X": -238.05603, + "Y": 8, + "Z": -142.93127 + }, + "TerritoryId": 133, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1000815, + "Position": { + "X": -233.9361, + "Y": 6.668152, + "Z": -171.03839 + }, + "TerritoryId": 133, + "InteractionType": "CompleteQuest", + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_CLSHRV001_00003_Q1_000_1", + "Yes": true + } + ], + "NextQuestId": 3 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/CRP/184_So You Want to Be a Carpenter.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/CRP/184_So You Want to Be a Carpenter.json index a157b467..7cc8451f 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/CRP/184_So You Want to Be a Carpenter.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/CRP/184_So You Want to Be a Carpenter.json @@ -1,37 +1,34 @@ { - "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "Cacahuetes", - "QuestSequence": [ - { - "Sequence": 0, - "Steps": [ - { "DataId": 1000148, -"Position": { - "X": -20.279297, - "Y": -3.25, - "Z": 45.97534 -}, -"TerritoryId": 132, - "AetheryteShortcut": "Gridania", - "DialogueChoices": [ - { - "Type": "YesNo", - "Prompt": "TEXT_CLSWDK999_00184_Q1_000_1", - "Yes": true - } - ], - "InteractionType": "AcceptQuest", - "SkipConditions": { + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Cacahuetes", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1000148, + "Position": { + "X": -20.279297, + "Y": -3.25, + "Z": 45.97534 + }, + "TerritoryId": 132, + "AetheryteShortcut": "Gridania", + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_CLSWDK999_00184_Q1_000_1", + "Yes": true + } + ], + "InteractionType": "AcceptQuest", + "SkipConditions": { "AetheryteShortcutIf": { - "InSameTerritory": true, - "InTerritory": [ - 132 - ] + "InSameTerritory": true } } - } - ] - } - ] - } - \ No newline at end of file + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/CUL/191_So You Want to Be a Culinarian.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/CUL/191_So You Want to Be a Culinarian.json index 762b5f79..95d5ecf9 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/CUL/191_So You Want to Be a Culinarian.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/CUL/191_So You Want to Be a Culinarian.json @@ -1,18 +1,19 @@ { - "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "Cacahuetes", - "QuestSequence": [ - { - "Sequence": 0, - "Steps": [ - { "DataId": 1000946, -"Position": { - "X": -61.142883, - "Y": 42.299698, - "Z": -164.0498 -}, -"TerritoryId": 128, -"InteractionType": "Interact", + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Cacahuetes", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1000946, + "Position": { + "X": -61.142883, + "Y": 42.299698, + "Z": -164.0498 + }, + "TerritoryId": 128, + "InteractionType": "Interact", "AetheryteShortcut": "Limsa Lominsa", "AethernetShortcut": [ "[Limsa Lominsa] Aetheryte Plaza", @@ -22,7 +23,7 @@ "AetheryteShortcutIf": { "InSameTerritory": true, "InTerritory": [ - 129 + 128 ] } }, @@ -32,9 +33,9 @@ "Prompt": "TEXT_CLSCUL001_00191_Q1_000_1", "Yes": true } - ]} - ] - } - ] - } - \ No newline at end of file + ] + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/CUL/271_Way of the Culinarian.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/CUL/271_Way of the Culinarian.json index cbc91453..2a7bd1a3 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/CUL/271_Way of the Culinarian.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/CUL/271_Way of the Culinarian.json @@ -1,42 +1,44 @@ { - "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "Cacahuetes", - "QuestSequence": [ - { - "Sequence": 0, - "Steps": [ - { "DataId": 1000946, -"Position": { - "X": -61.142883, - "Y": 42.299698, - "Z": -164.0498 -}, -"TerritoryId": 128, -"InteractionType": "AcceptQuest"} - ] - }, - { - "Sequence": 255, - "Steps": [ - { "DataId": 1000947, -"Position": { - "X": -54.64258, - "Y": 44, - "Z": -151.23218 -}, -"TerritoryId": 128, -"InteractionType": "CompleteQuest", - "DialogueChoices": [ - { - "Type": "YesNo", - "Prompt": "TEXT_CLSCUL011_00271_Q1_000_1", - "Yes": true - } - ], - "NextQuestId": 271 - } - ] - } - ] - } - \ No newline at end of file + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Cacahuetes", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1000946, + "Position": { + "X": -61.142883, + "Y": 42.299698, + "Z": -164.0498 + }, + "TerritoryId": 128, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1000947, + "Position": { + "X": -54.64258, + "Y": 44, + "Z": -151.23218 + }, + "TerritoryId": 128, + "InteractionType": "CompleteQuest", + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_CLSCUL011_00271_Q1_000_1", + "Yes": true + } + ], + "NextQuestId": 271 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/DRG/180_So You Want to Be a Lancer.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/DRG/180_So You Want to Be a Lancer.json index f2cb05de..f1b94278 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/DRG/180_So You Want to Be a Lancer.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/DRG/180_So You Want to Be a Lancer.json @@ -1,32 +1,32 @@ { - "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "Cacahuetes", - "QuestSequence": [ - { - "Sequence": 0, - "Steps": [ - { "DataId": 1000251, - "Position": { - "X": 147.08167, - "Y": 15.5, - "Z": -267.99426 - }, - "TerritoryId": 133, - "AethernetShortcut": [ - "[Gridania] Aetheryte Plaza", - "[Gridania] Lancers' Guild" - ], - "DialogueChoices": [ - { - "Type": "YesNo", - "Prompt": "TEXT_CLSLNC999_00180_Q1_000_1", - "Yes": true - } - ], - "InteractionType": "Interact" - } - ] - } - ] - } - \ No newline at end of file + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Cacahuetes", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1000251, + "Position": { + "X": 147.08167, + "Y": 15.5, + "Z": -267.99426 + }, + "TerritoryId": 133, + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Lancers' Guild" + ], + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_CLSLNC999_00180_Q1_000_1", + "Yes": true + } + ], + "InteractionType": "Interact" + } + ] + } + ] +} 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 d28fa0e0..3cc4d179 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,57 +1,63 @@ { - "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "Cacahuetes", - "QuestSequence": [ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Cacahuetes", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ { - "Sequence": 0, - "Steps": [ - { - "DataId": 1000859, -"Position": { - "X": -166.76587, - "Y": 4.5496645, - "Z": 150.04187 -}, -"TerritoryId": 129, -"InteractionType": "Interact", -"AetheryteShortcut": "Limsa Lominsa", -"AethernetShortcut": [ - "[Limsa Lominsa] Aetheryte Plaza", - "[Limsa Lominsa] Fishermens' Guild" - ], - "SkipConditions": { + "DataId": 1000859, + "Position": { + "X": -166.76587, + "Y": 4.5496645, + "Z": 150.04187 + }, + "TerritoryId": 129, + "InteractionType": "Interact", + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] Fishermens' Guild" + ], + "SkipConditions": { "AetheryteShortcutIf": { - "InSameTerritory": true, - "InTerritory": [ - 129 - ] + "InSameTerritory": true } } - } - ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": -167.60791, + "Y": 4.550005, + "Z": 165.35986 + }, + "TerritoryId": 129, + "InteractionType": "WalkTo" }, { - "Sequence": 255, - "Steps": [ - { - "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 - } - ] + "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 } - ] -} \ No newline at end of file + ] + } + ] +} 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 67bd9254..c994aadd 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,76 +1,59 @@ { - "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "Cacahuetes", - "QuestSequence": [ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Cacahuetes", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ { - "Sequence": 0, - "Steps": [ - { - "TerritoryId": 129, - "InteractionType": "EquipItem", - "ItemId": 2571, - "SkipConditions": { - "StepIf": { - "Item": { - "NotInInventory": true - } - } - } - }, - { - "TerritoryId": 129, - "InteractionType": "EquipRecommended" - }, - - { - "DataId": 1000857, -"Position": { - "X": -165.27051, - "Y": 5.2500057, - "Z": 164.29382 -}, -"TerritoryId": 129, -"InteractionType": "AcceptQuest" - } - ] + "TerritoryId": 129, + "InteractionType": "EquipItem", + "ItemId": 2571, + "SkipConditions": { + "StepIf": { + "Item": { + "NotInInventory": true + } + } + } }, { - "Sequence": 1, - "Steps": [ - { -"Position": { - "X": -42.679565, - "Y": 39.999966, - "Z": 119.920654 -}, -"TerritoryId": 128, -"InteractionType": "WaitForManualProgress", - "AethernetShortcut": [ - "[Limsa Lominsa] Fishermens' Guild", - "[Limsa Lominsa] The Aftcastle" - ] - } - ] + "TerritoryId": 129, + "InteractionType": "EquipRecommended" }, { - "Sequence": 255, - "Steps": [ - { - "DataId": 1000857, -"Position": { - "X": -165.27051, - "Y": 5.2500057, - "Z": 164.29382 -}, -"TerritoryId": 129, -"InteractionType": "CompleteQuest", -"AethernetShortcut": [ - "[Limsa Lominsa] The Aftcastle", - "[Limsa Lominsa] Fishermens' Guild" - ], - "NextQuestId": 3843 - } - ] + "DataId": 1000857, + "Position": { + "X": -165.27051, + "Y": 5.2500057, + "Z": 164.29382 + }, + "TerritoryId": 129, + "InteractionType": "AcceptQuest" } - ] -} \ No newline at end of file + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1000857, + "Position": { + "X": -165.27051, + "Y": 5.2500057, + "Z": 164.29382 + }, + "TerritoryId": 129, + "InteractionType": "CompleteQuest", + "AethernetShortcut": [ + "[Limsa Lominsa] The Aftcastle", + "[Limsa Lominsa] Fishermens' Guild" + ], + "NextQuestId": 3843, + "Disabled": true, + "Comment": "Catch/turn in fish manually" + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/FSH/1134_So You Want to Be a Fisher.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/FSH/1134_So You Want to Be a Fisher.json index 037f2dad..d9fcf3c1 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/FSH/1134_So You Want to Be a Fisher.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/FSH/1134_So You Want to Be a Fisher.json @@ -1,67 +1,59 @@ { - "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "Cacahuetes", - "QuestSequence": [ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Cacahuetes", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ { - "Sequence": 0, - "Steps": [ - { - "DataId": 1000859, -"Position": { - "X": -166.76587, - "Y": 4.5496645, - "Z": 150.04187 -}, -"TerritoryId": 129, -"AethernetShortcut": [ - "[Limsa Lominsa] Aetheryte Plaza", - "[Limsa Lominsa] Fishermens' Guild" - ], -"DialogueChoices": [ - { - "Type": "YesNo", - "Prompt": "TEXT_CLSFSH001_01134_Q1_000_1", - "Yes": true, - "$": "Need to find real prompt in godbert" - } - ], -"InteractionType": "Interact" - }, - { - "DataId": 1000859, -"Position": { - "X": -166.76587, - "Y": 4.5496645, - "Z": 150.04187 -}, -"TerritoryId": 129, -"InteractionType": "AcceptQuest" - } - ] + "DataId": 1000859, + "Position": { + "X": -166.76587, + "Y": 4.5496645, + "Z": 150.04187 + }, + "TerritoryId": 129, + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] Fishermens' Guild" + ], + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_CLSFSH001_01134_Q1_000_1", + "Yes": true + } + ], + "InteractionType": "Interact" }, { - "Sequence": 255, - "Steps": [ - { - "DataId": 1000857, -"Position": { - "X": -165.27051, - "Y": 5.2500057, - "Z": 164.29382 -}, -"TerritoryId": 129, -"DialogueChoices": [ - { - "Type": "YesNo", - "Prompt": "TEXT_CLSGLA020_00253_Q1_000_1", - "Yes": true, - "$": "Need to find real prompt in godbert" - } - ], -"InteractionType": "CompleteQuest", -"NextQuestId": 1108 - } - ] + "DataId": 1000859, + "Position": { + "X": -166.76587, + "Y": 4.5496645, + "Z": 150.04187 + }, + "TerritoryId": 129, + "InteractionType": "AcceptQuest" } - ] -} \ No newline at end of file + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1000857, + "Position": { + "X": -165.27051, + "Y": 5.2500057, + "Z": 164.29382 + }, + "TerritoryId": 129, + "InteractionType": "CompleteQuest", + "NextQuestId": 1108 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/FSH/3843_All the Fish in the Sea.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/FSH/3843_All the Fish in the Sea.json index 985f50b6..3bf587f8 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/FSH/3843_All the Fish in the Sea.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/FSH/3843_All the Fish in the Sea.json @@ -1,40 +1,40 @@ { - "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "Cacahuetes", - "QuestSequence": [ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Cacahuetes", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ { - "Sequence": 0, - "Steps": [ - { - "DataId": 1000858, -"Position": { - "X": -168.47485, - "Y": 4.5500045, - "Z": 163.65295 -}, -"TerritoryId": 129, -"InteractionType": "AcceptQuest" - } - ] - }, - { - "Sequence": 255, - "Steps": [ - { - "DataId": 1005424, -"Position": { - "X": -412.80237, - "Y": 4, - "Z": 75.05908 -}, -"TerritoryId": 129, -"InteractionType": "CompleteQuest", - "AethernetShortcut": [ - "[Limsa Lominsa] Fishermens' Guild", - "[Limsa Lominsa] Arcanists' Guild" - ] - } - ] + "DataId": 1000858, + "Position": { + "X": -168.47485, + "Y": 4.5500045, + "Z": 163.65295 + }, + "TerritoryId": 129, + "InteractionType": "AcceptQuest" } - ] -} \ No newline at end of file + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1005424, + "Position": { + "X": -412.80237, + "Y": 4, + "Z": 75.05908 + }, + "TerritoryId": 129, + "InteractionType": "CompleteQuest", + "AethernetShortcut": [ + "[Limsa Lominsa] Fishermens' Guild", + "[Limsa Lominsa] Arcanists' Guild" + ] + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/GSM/187_So You Want to Be a Goldsmith.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/GSM/187_So You Want to Be a Goldsmith.json index 0151fc85..a66a332f 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/GSM/187_So You Want to Be a Goldsmith.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/GSM/187_So You Want to Be a Goldsmith.json @@ -1,21 +1,24 @@ { - "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "Cacahuetes", - "QuestSequence": [ - { - "Sequence": 0, - "Steps": [ - { "DataId": 1002280, -"Position": { - "X": -35.385742, - "Y": 13.599962, - "Z": 97.24573 -}, -"TerritoryId": 131, -"InteractionType": "Interact", + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Cacahuetes", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1002280, + "Position": { + "X": -35.385742, + "Y": 13.599962, + "Z": 97.24573 + }, + "TerritoryId": 131, + "InteractionType": "Interact", "AetheryteShortcut": "Ul'dah", - "AethernetShortcut": ["[Ul'dah] Aetheryte Plaza", - "[Ul'dah] Goldsmiths' Guild"], + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Goldsmiths' Guild" + ], "SkipConditions": { "AetheryteShortcutIf": { "InSameTerritory": true, @@ -30,9 +33,9 @@ "Prompt": "TEXT_CLSGLD001_00187_Q1_000_1", "Yes": true } - ]} - ] - } - ] - } - \ No newline at end of file + ] + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/GSM/608_Way of the Goldsmith.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/GSM/608_Way of the Goldsmith.json index eab3d228..2ba0018c 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/GSM/608_Way of the Goldsmith.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/GSM/608_Way of the Goldsmith.json @@ -5,36 +5,39 @@ { "Sequence": 0, "Steps": [ - { "DataId": 1002280, -"Position": { - "X": -35.385742, - "Y": 13.599962, - "Z": 97.24573 -}, -"TerritoryId": 131, -"InteractionType": "AcceptQuest"} + { + "DataId": 1002280, + "Position": { + "X": -35.385742, + "Y": 13.599962, + "Z": 97.24573 + }, + "TerritoryId": 131, + "InteractionType": "AcceptQuest" + } ] }, { "Sequence": 255, "Steps": [ - { "DataId": 1004093, -"Position": { - "X": -25.162231, - "Y": 12.200003, - "Z": 110.795654 -}, -"TerritoryId": 131, -"InteractionType": "CompleteQuest", -"DialogueChoices": [ - { - "Type": "YesNo", - "Prompt": "TEXT_CLSGLD011_00608_A1_000_1", - "Yes": true - } - ], -"NextQuestId": 608 -} + { + "DataId": 1004093, + "Position": { + "X": -25.162231, + "Y": 12.200003, + "Z": 110.795654 + }, + "TerritoryId": 131, + "InteractionType": "CompleteQuest", + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_CLSGLD011_00608_A1_000_1", + "Yes": true + } + ], + "NextQuestId": 608 + } ] } ] diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/LTW/105_Way of the Leatherworker.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/LTW/105_Way of the Leatherworker.json index 8c8f840a..c263bfda 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/LTW/105_Way of the Leatherworker.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/LTW/105_Way of the Leatherworker.json @@ -1,42 +1,44 @@ { - "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "Cacahuetes", - "QuestSequence": [ - { - "Sequence": 0, - "Steps": [ - { "DataId": 1000352, -"Position": { - "X": 65.69006, - "Y": 8, - "Z": -147.41742 -}, -"TerritoryId": 133, -"InteractionType": "AcceptQuest"} - ] - }, - { - "Sequence": 255, - "Steps": [ - { "DataId": 1000691, -"Position": { - "X": 71.97681, - "Y": 8, - "Z": -166.52173 -}, -"TerritoryId": 133, -"InteractionType": "CompleteQuest", - "DialogueChoices": [ - { - "Type": "YesNo", - "Prompt": "TEXT_CLSTAN000_00105_Q1_000_1", - "Yes": true - } - ], - "NextQuestId": 105 - } - ] - } - ] - } - \ No newline at end of file + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Cacahuetes", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1000352, + "Position": { + "X": 65.69006, + "Y": 8, + "Z": -147.41742 + }, + "TerritoryId": 133, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1000691, + "Position": { + "X": 71.97681, + "Y": 8, + "Z": -166.52173 + }, + "TerritoryId": 133, + "InteractionType": "CompleteQuest", + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_CLSTAN000_00105_Q1_000_1", + "Yes": true + } + ], + "NextQuestId": 105 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/LTW/188_So You Want to Be a Leatherworker.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/LTW/188_So You Want to Be a Leatherworker.json index 1114efb1..4412c8f6 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/LTW/188_So You Want to Be a Leatherworker.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/LTW/188_So You Want to Be a Leatherworker.json @@ -1,18 +1,19 @@ { - "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "Cacahuetes", - "QuestSequence": [ - { - "Sequence": 0, - "Steps": [ - { "DataId": 1000352, -"Position": { - "X": 65.69006, - "Y": 8, - "Z": -147.41742 -}, -"TerritoryId": 133, -"InteractionType": "Interact", + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Cacahuetes", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1000352, + "Position": { + "X": 65.69006, + "Y": 8, + "Z": -147.41742 + }, + "TerritoryId": 133, + "InteractionType": "Interact", "AetheryteShortcut": "Gridania", "AethernetShortcut": [ "[Gridania] Aetheryte Plaza", @@ -32,9 +33,9 @@ "Prompt": "TEXT_CLSTAN999_00188_Q1_000_1", "Yes": true } - ]} - ] - } - ] - } - \ No newline at end of file + ] + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/178_So You Want to Be a Pugilist.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/178_So You Want to Be a Pugilist.json index 5a950afb..8494b698 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/178_So You Want to Be a Pugilist.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/178_So You Want to Be a Pugilist.json @@ -1,25 +1,23 @@ { - "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "Cacahuetes", - "QuestSequence": [ - { - "Sequence": 0, - "Steps": [ - { "DataId": 1001286, -"Position": { - "X": -88.9754, - "Y": 2.55, - "Z": -51.163513 -}, -"TerritoryId": 130, -"InteractionType": "Interact", + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Cacahuetes", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1001286, + "Position": { + "X": -88.9754, + "Y": 2.55, + "Z": -51.163513 + }, + "TerritoryId": 130, + "InteractionType": "Interact", "AetheryteShortcut": "Ul'dah", "SkipConditions": { "AetheryteShortcutIf": { - "InSameTerritory": true, - "InTerritory": [ - 130 - ] + "InSameTerritory": true } }, "DialogueChoices": [ @@ -28,9 +26,9 @@ "Prompt": "TEXT_CLSPGL001_00178_Q1_000_1", "Yes": true } - ]} - ] - } - ] - } - \ No newline at end of file + ] + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/532_Way of the Pugilist.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/532_Way of the Pugilist.json index fd3e9fcb..2e25eb22 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/532_Way of the Pugilist.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/532_Way of the Pugilist.json @@ -1,42 +1,44 @@ { - "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "Cacahuetes", - "QuestSequence": [ - { - "Sequence": 0, - "Steps": [ - { "DataId": 1001286, -"Position": { - "X": -88.9754, - "Y": 2.55, - "Z": -51.163513 -}, -"TerritoryId": 130, -"InteractionType": "AcceptQuest"} - ] - }, - { - "Sequence": 255, - "Steps": [ - { "DataId": 1003817, -"Position": { - "X": -74.57086, - "Y": 1.9999951, - "Z": -42.404846 -}, -"TerritoryId": 130, -"InteractionType": "CompleteQuest", - "DialogueChoices": [ - { - "Type": "YesNo", - "Prompt": "TEXT_CLSPGL011_00532_Q1_000_1", - "Yes": true - } - ], - "NextQuestId": 553 - } - ] - } - ] - } - \ No newline at end of file + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Cacahuetes", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1001286, + "Position": { + "X": -88.9754, + "Y": 2.55, + "Z": -51.163513 + }, + "TerritoryId": 130, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1003817, + "Position": { + "X": -74.57086, + "Y": 1.9999951, + "Z": -42.404846 + }, + "TerritoryId": 130, + "InteractionType": "CompleteQuest", + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_CLSPGL011_00532_Q1_000_1", + "Yes": true + } + ], + "NextQuestId": 553 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/101_So You Want to Be a Rogue.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/101_So You Want to Be a Rogue.json index 6d6923c9..e73ae1cd 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/101_So You Want to Be a Rogue.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/101_So You Want to Be a Rogue.json @@ -1,28 +1,27 @@ { - "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "Cacahuetes", - "QuestSequence": [ - { - "Sequence": 255, - "Steps": [ - { "DataId": 1009944, -"Position": { - "X": -152.66656, - "Y": 2.8562405, - "Z": 243.18298 -}, -"TerritoryId": 129, -"InteractionType": "AcceptQuest", + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Cacahuetes", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1009944, + "Position": { + "X": -152.66656, + "Y": 2.8562405, + "Z": 243.18298 + }, + "TerritoryId": 129, + "InteractionType": "AcceptQuest", "AetheryteShortcut": "Limsa Lominsa", "AethernetShortcut": [ - "[Limsa Lominsa] Aetheryte Plaza","[Limsa Lominsa] Fishermens' Guild" + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] Fishermens' Guild" ], "SkipConditions": { "AetheryteShortcutIf": { - "InSameTerritory": true, - "InTerritory": [ - 129 - ] + "InSameTerritory": true } }, "DialogueChoices": [ @@ -32,10 +31,9 @@ "Yes": true } ], - "NextQuestID": 102 + "NextQuestId": 102 } - ] - } - ] - } - \ No newline at end of file + ] + } + ] +} 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 new file mode 100644 index 00000000..431a9e90 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/102_My First Dagger.json @@ -0,0 +1,61 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Cacahuetes", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1009944, + "Position": { + "X": -152.66656, + "Y": 2.8562405, + "Z": 243.18298 + }, + "TerritoryId": 129, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1009944, + "Position": { + "X": -152.66656, + "Y": 2.8562405, + "Z": 243.18298 + }, + "TerritoryId": 129, + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_CLSROG011_00102_Q9_000_901", + "Yes": true + } + ] + }, + { + "DataId": 1009943, + "Position": { + "X": -153.36847, + "Y": -129.4397, + "Z": 265.88843 + }, + "StopDistance": 7, + "TerritoryId": 129, + "InteractionType": "CompleteQuest", + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_CLSROG011_00102_Q1_000_030", + "Yes": true + } + ] + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/102_Way of the Rogue.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/102_Way of the Rogue.json deleted file mode 100644 index 5006b09f..00000000 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/NIN/102_Way of the Rogue.json +++ /dev/null @@ -1,50 +0,0 @@ -{ - "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "Cacahuetes", - "QuestSequence": [ - { - "Sequence": 0, - "Steps": [ - { "DataId": 1009944, -"Position": { - "X": -152.66656, - "Y": 2.8562405, - "Z": 243.18298 -}, -"TerritoryId": 129, -"InteractionType": "AcceptQuest"} - ] - }, - { - "Sequence": 255, - "Steps": [ - { "DataId": 1009944, -"Position": { - "X": -152.66656, - "Y": 2.8562405, - "Z": 243.18298 -}, -"TerritoryId": 129, -"InteractionType": "Interact" -}, - { "DataId": 1009943, -"Position": { - "X": -153.36847, - "Y": -129.4397, - "Z": 265.88843 -}, -"TerritoryId": 129, -"InteractionType": "CompleteQuest", - "DialogueChoices": [ - { - "Type": "YesNo", - "Prompt": "TEXT_CLSROG011_00102_Q1_000_030", - "Yes": true - } - ] - } - ] - } - ] - } - \ No newline at end of file diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/PLD/1055_Paladin's Pledge.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/PLD/1055_Paladin's Pledge.json index ee440d59..eba6e305 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/PLD/1055_Paladin's Pledge.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/PLD/1055_Paladin's Pledge.json @@ -7,18 +7,18 @@ "Steps": [ { "DataId": 1002277, -"Position": { - "X": -97.550964, - "Y": 7.05, - "Z": 23.605652 -}, -"TerritoryId": 131, -"InteractionType": "AcceptQuest", -"AethernetShortcut": [ + "Position": { + "X": -97.550964, + "Y": 7.05, + "Z": 23.605652 + }, + "TerritoryId": 131, + "InteractionType": "AcceptQuest", + "AethernetShortcut": [ "[Ul'dah] Aetheryte Plaza", "[Ul'dah] Gladiators' Guild" - ], - "SkipConditions": { + ], + "SkipConditions": { "AetheryteShortcutIf": { "InSameTerritory": true, "InTerritory": [ @@ -33,18 +33,18 @@ "Sequence": 1, "Steps": [ { - "DataId": 1006747, -"Position": { - "X": -20.828613, - "Y": 29.999964, - "Z": -2.4262085 -}, -"TerritoryId": 131, -"InteractionType": "Interact", -"AethernetShortcut": [ - "[Ul'dah] Gladiators' Guild", + "DataId": 1006747, + "Position": { + "X": -20.828613, + "Y": 29.999964, + "Z": -2.4262085 + }, + "TerritoryId": 131, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Ul'dah] Gladiators' Guild", "[Ul'dah] The Chamber of Rule" - ] + ] } ] }, @@ -52,66 +52,75 @@ "Sequence": 2, "Steps": [ { - "DataId": 2002344, -"Position": { - "X": -97.39838, - "Y": 14.846985, - "Z": -188.2201 -}, -"TerritoryId": 146, -"AetheryteShortcut": "Southern Thanalan - Little Ala Mhigo", -"InteractionType": "Combat", -"EnemySpawnType": "AfterInteraction", -"KillEnemyDataIds": [18,19] - } + "DataId": 2002344, + "Position": { + "X": -97.39838, + "Y": 14.846985, + "Z": -188.2201 + }, + "TerritoryId": 146, + "AetheryteShortcut": "Southern Thanalan - Little Ala Mhigo", + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 18, + 19 + ], + "Fly": true + } ] }, - { "Sequence": 3, - "Steps": [ + { + "Sequence": 3, + "Steps": [ { - "DataId": 2002345, -"Position": { - "X": -97.39838, - "Y": 16.433899, - "Z": -188.2201 -}, -"TerritoryId": 146, -"InteractionType": "UseItem", -"ItemId": 2000821 + "DataId": 2002345, + "Position": { + "X": -97.39838, + "Y": 16.433899, + "Z": -188.2201 + }, + "TerritoryId": 146, + "InteractionType": "UseItem", + "ItemId": 2000821 } - ]}, - { "Sequence": 4, - "Steps": [ + ] + }, + { + "Sequence": 4, + "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", + "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" - ] + ] } - ]} - , - { "Sequence": 255, - "Steps": [ + ] + }, + { + "Sequence": 255, + "Steps": [ { - "DataId": 1006747, -"Position": { - "X": -20.828613, - "Y": 29.999964, - "Z": -2.4262085 -}, -"TerritoryId": 131, -"InteractionType": "CompleteQuest", - "NextQuestId": 1056 + "DataId": 1006747, + "Position": { + "X": -20.828613, + "Y": 29.999964, + "Z": -2.4262085 + }, + "TerritoryId": 131, + "InteractionType": "CompleteQuest", + "NextQuestId": 1056 } - ]} + ] + } ] } diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/PLD/177_So You Want to Be a Gladiator.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/PLD/177_So You Want to Be a Gladiator.json new file mode 100644 index 00000000..c0c38a44 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/PLD/177_So You Want to Be a Gladiator.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": 1002277, + "Position": { + "X": -97.550964, + "Y": 7.05, + "Z": 23.605652 + }, + "TerritoryId": 131, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Gladiators' Guild" + ], + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_CLSGLA001_00177_Q1_000_1", + "Yes": true + } + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 131 + ] + } + } + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/PLD/253_Way of the Gladiator.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/PLD/253_Way of the Gladiator.json index 09113bd9..5d6ef84a 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/PLD/253_Way of the Gladiator.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/PLD/253_Way of the Gladiator.json @@ -84,8 +84,7 @@ "MinimumKillCount": 3, "CompletionQuestVariablesFlags": [ { - "Low": 3, - "Mode": "Exact" + "Low": 3 }, null, null, @@ -100,8 +99,7 @@ "CompletionQuestVariablesFlags": [ null, { - "High": 3, - "Mode": "Exact" + "High": 3 }, null, null, @@ -112,12 +110,10 @@ ], "CompletionQuestVariablesFlags": [ { - "Low": 3, - "Mode": "Exact" + "Low": 3 }, { - "High": 3, - "Mode": "Exact" + "High": 3 }, null, null, @@ -141,8 +137,7 @@ "CompletionQuestVariablesFlags": [ null, { - "Low": 3, - "Mode": "Exact" + "Low": 3 }, null, null, @@ -154,8 +149,7 @@ "CompletionQuestVariablesFlags": [ null, { - "Low": 3, - "Mode": "Exact" + "Low": 3 }, null, null, diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/PLD/261_Ul'dah's Most Wanted.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/PLD/261_Ul'dah's Most Wanted.json index 1c0293f7..2715bf99 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/PLD/261_Ul'dah's Most Wanted.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/PLD/261_Ul'dah's Most Wanted.json @@ -13,13 +13,13 @@ "Z": 39.81079 }, "TerritoryId": 131, -"InteractionType": "AcceptQuest", -"AetheryteShortcut": "Ul'dah", -"AethernetShortcut": [ + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ "[Ul'dah] Aetheryte Plaza", "[Ul'dah] Gladiators' Guild" - ], - "SkipConditions": { + ], + "SkipConditions": { "AetheryteShortcutIf": { "InSameTerritory": true, "InTerritory": [ @@ -35,19 +35,21 @@ "Steps": [ { "DataId": 1002296, -"Position": { - "X": -139.42175, - "Y": 4.019726, - "Z": 205.0354 -}, -"TerritoryId": 141, -"InteractionType": "Combat", -"EnemySpawnType": "AfterInteraction", -"AethernetShortcut": [ + "Position": { + "X": -139.42175, + "Y": 4.019726, + "Z": 205.0354 + }, + "TerritoryId": 141, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "AethernetShortcut": [ "[Ul'dah] Gladiators' Guild", "[Ul'dah] Gate of Nald (Central Thanalan)" ], - "KillEnemyDataIds": [1245] + "KillEnemyDataIds": [ + 1245 + ] } ] }, @@ -56,13 +58,13 @@ "Steps": [ { "DataId": 1002296, -"Position": { - "X": -139.42175, - "Y": 4.019726, - "Z": 205.0354 -}, -"TerritoryId": 141, -"InteractionType": "Interact" + "Position": { + "X": -139.42175, + "Y": 4.019726, + "Z": 205.0354 + }, + "TerritoryId": 141, + "InteractionType": "Interact" } ] }, @@ -77,13 +79,13 @@ "Z": 39.81079 }, "TerritoryId": 131, -"InteractionType": "Interact", -"AetheryteShortcut": "Ul'dah", -"AethernetShortcut": [ + "InteractionType": "Interact", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ "[Ul'dah] Aetheryte Plaza", "[Ul'dah] Gladiators' Guild" - ], - "SkipConditions": { + ], + "SkipConditions": { "AetheryteShortcutIf": { "InSameTerritory": true, "InTerritory": [ @@ -93,66 +95,69 @@ } } ] - }, + }, { - "Sequence": 4, - "Steps": [ - { - "DataId": 2001426, -"Position": { - "X": 27.206787, - "Y": 12.985352, - "Z": 51.83484 -}, -"TerritoryId": 141, -"InteractionType": "SinglePlayerDuty", - "AethernetShortcut": [ - "[Ul'dah] Gladiators' Guild", - "[Ul'dah] Gate of Nald (Central Thanalan)" - ] - } - ] - }, - - { "Sequence": 5, + "Sequence": 4, "Steps": [ - { - "DataId": 1003945, -"Position": { - "X": 24.917969, - "Y": 13, - "Z": 50.156372 -}, -"TerritoryId": 141, -"InteractionType": "Interact" - } - ]}, - - { "Sequence": 255, - "Steps": [ { - "DataId": 1001739, + "DataId": 2001426, + "Position": { + "X": 27.206787, + "Y": 12.985352, + "Z": 51.83484 + }, + "TerritoryId": 141, + "InteractionType": "SinglePlayerDuty", + "AethernetShortcut": [ + "[Ul'dah] Gladiators' Guild", + "[Ul'dah] Gate of Nald (Central Thanalan)" + ] + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1003945, + "Position": { + "X": 24.917969, + "Y": 13, + "Z": 50.156372 + }, + "StopDistance": 5, + "TerritoryId": 141, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1001739, "Position": { "X": -94.529724, "Y": 6.4999976, "Z": 39.81079 }, "TerritoryId": 131, -"InteractionType": "CompleteQuest", -"AetheryteShortcut": "Ul'dah", -"DialogueChoices": [ + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ul'dah", + "DialogueChoices": [ { "Type": "List", "Prompt": "TEXT_CLSGLA100_00261_Q1_000_160", "Answer": "TEXT_CLSGLA100_00261_A1_000_161" } ], -"AethernetShortcut": [ + "AethernetShortcut": [ "[Ul'dah] Aetheryte Plaza", "[Ul'dah] Gladiators' Guild" - ], - "NextQuestId": 262 + ], + "NextQuestId": 262 } - ]} + ] + } ] } diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/PLD/262_That Old Familiar Feeling.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/PLD/262_That Old Familiar Feeling.json index 6a32e975..f3ed11ad 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/PLD/262_That Old Familiar Feeling.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/PLD/262_That Old Familiar Feeling.json @@ -13,13 +13,13 @@ "Z": 39.81079 }, "TerritoryId": 131, -"InteractionType": "AcceptQuest", -"AetheryteShortcut": "Ul'dah", -"AethernetShortcut": [ + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ "[Ul'dah] Aetheryte Plaza", "[Ul'dah] Gladiators' Guild" - ], - "SkipConditions": { + ], + "SkipConditions": { "AetheryteShortcutIf": { "InSameTerritory": true, "InTerritory": [ @@ -34,17 +34,19 @@ "Sequence": 1, "Steps": [ { - "DataId": 1004224, -"Position": { - "X": -220.93542, - "Y": -38.407475, - "Z": 63.91992 -}, -"TerritoryId": 145, -"InteractionType": "Combat", -"AetheryteShortcut": "Eastern Thanalan - Camp Drybone", -"EnemySpawnType":"AfterInteraction", -"KillEnemyDataIds":[1244] + "DataId": 1004224, + "Position": { + "X": -220.93542, + "Y": -38.407475, + "Z": 63.91992 + }, + "TerritoryId": 145, + "InteractionType": "Combat", + "AetheryteShortcut": "Eastern Thanalan - Camp Drybone", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 1244 + ] } ] }, @@ -53,13 +55,13 @@ "Steps": [ { "DataId": 1004224, -"Position": { - "X": -220.93542, - "Y": -38.407475, - "Z": 63.91992 -}, -"TerritoryId": 145, -"InteractionType": "Interact" + "Position": { + "X": -220.93542, + "Y": -38.407475, + "Z": 63.91992 + }, + "TerritoryId": 145, + "InteractionType": "Interact" } ] }, @@ -74,13 +76,13 @@ "Z": 39.81079 }, "TerritoryId": 131, -"InteractionType": "Interact", -"AetheryteShortcut": "Ul'dah", -"AethernetShortcut": [ + "InteractionType": "Interact", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ "[Ul'dah] Aetheryte Plaza", "[Ul'dah] Gladiators' Guild" - ], - "SkipConditions": { + ], + "SkipConditions": { "AetheryteShortcutIf": { "InSameTerritory": true, "InTerritory": [ @@ -90,43 +92,45 @@ } } ] - }, + }, { - "Sequence": 4, - "Steps": [ - { - "DataId": 1004091, -"Position": { - "X": 24.12439, - "Y": 7.1999984, - "Z": -102.76953 -}, -"TerritoryId": 130, -"InteractionType": "SinglePlayerDuty", - "AethernetShortcut": [ - "[Ul'dah] Gladiators' Guild", - "[Ul'dah] Adventurers' Guild" - ] - } - ] - }, - { "Sequence": 255, - "Steps": [ + "Sequence": 4, + "Steps": [ { - "DataId": 1001739, + "DataId": 1004091, + "Position": { + "X": 24.12439, + "Y": 7.1999984, + "Z": -102.76953 + }, + "TerritoryId": 130, + "InteractionType": "SinglePlayerDuty", + "AethernetShortcut": [ + "[Ul'dah] Gladiators' Guild", + "[Ul'dah] Adventurers' Guild" + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1001739, "Position": { "X": -94.529724, "Y": 6.4999976, "Z": 39.81079 }, "TerritoryId": 131, -"InteractionType": "CompleteQuest", -"AethernetShortcut": [ - "[Ul'dah] Aetheryte Plaza", + "InteractionType": "CompleteQuest", + "AethernetShortcut": [ + "[Ul'dah] Adventurers' Guild", "[Ul'dah] Gladiators' Guild" - ], - "NextQuestId": 263 + ], + "NextQuestId": 263 } - ]} + ] + } ] } diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/PLD/263_The Face of Thal.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/PLD/263_The Face of Thal.json index 46473b39..9afca9f9 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/PLD/263_The Face of Thal.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/PLD/263_The Face of Thal.json @@ -13,13 +13,13 @@ "Z": 39.81079 }, "TerritoryId": 131, -"InteractionType": "AcceptQuest", -"AetheryteShortcut": "Ul'dah", -"AethernetShortcut": [ + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ "[Ul'dah] Aetheryte Plaza", "[Ul'dah] Gladiators' Guild" - ], - "SkipConditions": { + ], + "SkipConditions": { "AetheryteShortcutIf": { "InSameTerritory": true, "InTerritory": [ @@ -34,15 +34,15 @@ "Sequence": 1, "Steps": [ { - "DataId": 1004140, -"Position": { - "X": -72.34308, - "Y": -12.372956, - "Z": -69.13867 -}, -"TerritoryId": 141, -"InteractionType": "Interact", -"AetheryteShortcut": "Central Thanalan - Black Brush Station" + "DataId": 1004140, + "Position": { + "X": -72.34308, + "Y": -12.372956, + "Z": -69.13867 + }, + "TerritoryId": 141, + "InteractionType": "Interact", + "AetheryteShortcut": "Central Thanalan - Black Brush Station" } ] }, @@ -51,81 +51,108 @@ "Steps": [ { "DataId": 1001462, -"Position": { - "X": -93.33948, - "Y": -11.367981, - "Z": -41.397766 -}, -"TerritoryId": 141, -"InteractionType": "Interact" + "Position": { + "X": -93.33948, + "Y": -11.367981, + "Z": -41.397766 + }, + "TerritoryId": 141, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] }, { "DataId": 1001438, -"Position": { - "X": -30.838562, - "Y": -1.0332576, - "Z": -145.67792 -}, -"TerritoryId": 141, -"InteractionType": "Interact" + "Position": { + "X": -30.838562, + "Y": -1.0332576, + "Z": -145.67792 + }, + "TerritoryId": 141, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] }, - {"DataId": 2001434, -"Position": { - "X": -115.77026, - "Y": 0.015197754, - "Z": -149.24854 -}, -"TerritoryId": 141, -"InteractionType": "Interact" -} + { + "DataId": 2001434, + "Position": { + "X": -115.77026, + "Y": 0.015197754, + "Z": -149.24854 + }, + "TerritoryId": 141, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + } ] }, { "Sequence": 3, "Steps": [ - {"DataId": 1004140, -"Position": { - "X": -72.34308, - "Y": -12.372956, - "Z": -69.13867 -}, -"TerritoryId": 141, -"InteractionType": "Interact" + { + "DataId": 1004140, + "Position": { + "X": -72.34308, + "Y": -12.372956, + "Z": -69.13867 + }, + "TerritoryId": 141, + "InteractionType": "Interact" } ] - }, + }, { - "Sequence": 4, - "Steps": [ - { - "DataId": 1001285, -"Position": { - "X": -68.77246, - "Y": 4.0411124, - "Z": -126.51257 -}, -"TerritoryId": 130, -"InteractionType": "Interact", - "AetheryteShortcut": "Ul'dah" - } - ] - }, - { "Sequence": 5, - "Steps": [ + "Sequence": 4, + "Steps": [ { - "DataId": 1001739, + "DataId": 1001285, + "Position": { + "X": -68.77246, + "Y": 4.0411124, + "Z": -126.51257 + }, + "TerritoryId": 130, + "InteractionType": "Interact", + "AetheryteShortcut": "Ul'dah" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1001739, "Position": { "X": -94.529724, "Y": 6.4999976, "Z": 39.81079 }, "TerritoryId": 131, -"InteractionType": "Interact", -"AethernetShortcut": [ + "InteractionType": "Interact", + "AethernetShortcut": [ "[Ul'dah] Aetheryte Plaza", "[Ul'dah] Gladiators' Guild" - ], - "DialogueChoices": [ + ], + "DialogueChoices": [ { "Type": "List", "Prompt": "TEXT_CLSGLA200_00263_Q1_000_124", @@ -133,42 +160,48 @@ } ] } - ]}, - { "Sequence": 6, - "Steps": [ + ] + }, + { + "Sequence": 6, + "Steps": [ { - "DataId": 1004092, -"Position": { - "X": -241.16882, - "Y": 32.47634, - "Z": 398.9165 -}, -"TerritoryId": 140, -"InteractionType": "SinglePlayerDuty", -"AethernetShortcut": [ + "DataId": 1004092, + "Position": { + "X": -241.16882, + "Y": 32.47634, + "Z": 398.9165 + }, + "TerritoryId": 140, + "InteractionType": "SinglePlayerDuty", + "AethernetShortcut": [ "[Ul'dah] Gladiators' Guild", "[Ul'dah] Gate of the Sultana (Western Thanalan)" - ] + ], + "Fly": true } - ]}, - { "Sequence": 255, - "Steps": [ + ] + }, + { + "Sequence": 255, + "Steps": [ { - "DataId": 1001739, + "DataId": 1001739, "Position": { "X": -94.529724, "Y": 6.4999976, "Z": 39.81079 }, "TerritoryId": 131, -"InteractionType": "CompleteQuest", -"AetheryteShortcut": "Ul'dah", -"AethernetShortcut": [ + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ "[Ul'dah] Aetheryte Plaza", "[Ul'dah] Gladiators' Guild" - ], - "NextQuestId": 264 + ], + "NextQuestId": 264 } - ]} + ] + } ] } diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/PLD/264_On Holy Ground.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/PLD/264_On Holy Ground.json index 8756d67b..200951f4 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/PLD/264_On Holy Ground.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/PLD/264_On Holy Ground.json @@ -13,13 +13,13 @@ "Z": 39.81079 }, "TerritoryId": 131, -"InteractionType": "AcceptQuest", -"AetheryteShortcut": "Ul'dah", -"AethernetShortcut": [ + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ "[Ul'dah] Aetheryte Plaza", "[Ul'dah] Gladiators' Guild" - ], - "SkipConditions": { + ], + "SkipConditions": { "AetheryteShortcutIf": { "InSameTerritory": true, "InTerritory": [ @@ -34,20 +34,23 @@ "Sequence": 1, "Steps": [ { - "DataId": 1004225, -"Position": { - "X": 62.974, - "Y": 54.60642, - "Z": 284.90112 -}, -"TerritoryId": 140, -"InteractionType": "Combat", -"EnemySpawnType": "AfterInteraction", -"KillEnemyDataIds": [1243], -"AethernetShortcut": [ + "DataId": 1004225, + "Position": { + "X": 62.974, + "Y": 54.60642, + "Z": 284.90112 + }, + "TerritoryId": 140, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 1243 + ], + "AethernetShortcut": [ "[Ul'dah] Gladiators' Guild", "[Ul'dah] Gate of the Sultana (Western Thanalan)" - ] + ], + "Fly": true } ] }, @@ -56,61 +59,65 @@ "Steps": [ { "DataId": 1004225, -"Position": { - "X": 62.974, - "Y": 54.60642, - "Z": 284.90112 -}, -"TerritoryId": 140, -"InteractionType": "Interact" + "Position": { + "X": 62.974, + "Y": 54.60642, + "Z": 284.90112 + }, + "TerritoryId": 140, + "InteractionType": "Interact" } ] }, - { "Sequence": 3, - "Steps": [ + { + "Sequence": 3, + "Steps": [ { - "DataId": 1001739, + "DataId": 1001739, "Position": { "X": -94.529724, "Y": 6.4999976, "Z": 39.81079 }, "TerritoryId": 131, -"InteractionType": "Interact", -"AetheryteShortcut": "Ul'dah", -"AethernetShortcut": [ + "InteractionType": "Interact", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ "[Ul'dah] Aetheryte Plaza", "[Ul'dah] Gladiators' Guild" - ] + ] } - ]}, - { "Sequence": 4, - "Steps": [ + ] + }, + { + "Sequence": 4, + "Steps": [ { - "DataId": 1002277, -"Position": { - "X": -97.550964, - "Y": 7.05, - "Z": 23.605652 -}, -"TerritoryId": 131, -"InteractionType": "Interact" + "DataId": 1002277, + "Position": { + "X": -97.550964, + "Y": 7.05, + "Z": 23.605652 + }, + "TerritoryId": 131, + "InteractionType": "Interact" } - ]} - , - { "Sequence": 5, - "Steps": [ + ] + }, + { + "Sequence": 5, + "Steps": [ { - "DataId": 1004141, -"Position": { - "X": -520.5005, - "Y": -21.460285, - "Z": 123.46069 -}, -"TerritoryId": 145, -"InteractionType": "SinglePlayerDuty", -"AetheryteShortcut": "Eastern Thanalan - Camp Drybone", -"DialogueChoices": [ + "DataId": 1004141, + "Position": { + "X": -520.5005, + "Y": -21.460285, + "Z": 123.46069 + }, + "TerritoryId": 145, + "InteractionType": "SinglePlayerDuty", + "AetheryteShortcut": "Eastern Thanalan - Camp Drybone", + "DialogueChoices": [ { "Type": "List", "Prompt": "TEXT_CLSGLA250_00264_Q1_000_170", @@ -118,26 +125,28 @@ } ] } - ]} - , - { "Sequence": 255, - "Steps": [ + ] + }, + { + "Sequence": 255, + "Steps": [ { - "DataId": 1001739, + "DataId": 1001739, "Position": { "X": -94.529724, "Y": 6.4999976, "Z": 39.81079 }, "TerritoryId": 131, -"InteractionType": "CompleteQuest", -"AetheryteShortcut": "Ul'dah", -"AethernetShortcut": [ + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ "[Ul'dah] Aetheryte Plaza", "[Ul'dah] Gladiators' Guild" - ], - "NextQuestId": 265 + ], + "NextQuestId": 265 } - ]} + ] + } ] } diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/PLD/265_The Rematch.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/PLD/265_The Rematch.json index e644803c..2dd6e1d0 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/PLD/265_The Rematch.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/PLD/265_The Rematch.json @@ -13,13 +13,13 @@ "Z": 39.81079 }, "TerritoryId": 131, -"InteractionType": "AcceptQuest", -"AetheryteShortcut": "Ul'dah", -"AethernetShortcut": [ + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ "[Ul'dah] Aetheryte Plaza", "[Ul'dah] Gladiators' Guild" - ], - "SkipConditions": { + ], + "SkipConditions": { "AetheryteShortcutIf": { "InSameTerritory": true, "InTerritory": [ @@ -34,19 +34,19 @@ "Sequence": 1, "Steps": [ { - "DataId": 1001285, -"Position": { - "X": -68.77246, - "Y": 4.0411124, - "Z": -126.51257 -}, -"TerritoryId": 130, -"InteractionType": "Interact", -"AethernetShortcut": [ - "[Ul'dah] Gladiators' Guild", + "DataId": 1001285, + "Position": { + "X": -68.77246, + "Y": 4.0411124, + "Z": -126.51257 + }, + "TerritoryId": 130, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Ul'dah] Gladiators' Guild", "[Ul'dah] Aetheryte Plaza" - ], - "DialogueChoices": [ + ], + "DialogueChoices": [ { "Type": "List", "Prompt": "TEXT_CLSGLA300_00265_Q1_000_40", @@ -61,109 +61,150 @@ "Steps": [ { "Position": { - "X": 235.23369, - "Y": 2.747214, - "Z": 673.64215 -}, -"TerritoryId": 141, -"InteractionType": "WalkTo", -"AethernetShortcut": ["[Ul'dah] Aetheryte Plaza", "[Ul'dah] Gate of Thal (Central Thanalan)"] + "X": 235.23369, + "Y": 2.747214, + "Z": 673.64215 + }, + "TerritoryId": 141, + "InteractionType": "WalkTo", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Gate of Thal (Central Thanalan)" + ], + "SkipConditions": { + "StepIf": { + "AetheryteUnlocked": "Southern Thanalan - Little Ala Mhigo" + } + } }, -{ -"TerritoryId": 146, -"Aetheryte": "Southern Thanalan - Little Ala Mhigo", -"InteractionType": "AttuneAetheryte" -}, -{"Position": { - "X": 140.30618, - "Y": 4.2185926, - "Z": -585.2695 -}, -"TerritoryId": 146, -"InteractionType": "WalkTo"}, { - "DataId": 2001455, -"Position": { - "X": 28.091797, - "Y": 6.9733276, - "Z": -611.2917 -}, -"TerritoryId": 146, -"InteractionType": "Interact" - }, - { - "DataId": 2001435, -"Position": { - "X": 101.823364, - "Y": 7.248047, - "Z": -534.56934 -}, -"TerritoryId": 146, -"InteractionType": "Interact" - }, + "TerritoryId": 146, + "Aetheryte": "Southern Thanalan - Little Ala Mhigo", + "InteractionType": "AttuneAetheryte", + "SkipConditions": { + "StepIf": { + "AetheryteUnlocked": "Southern Thanalan - Little Ala Mhigo" + } + } + }, { -"Position": { - "X": 164.75665, - "Y": 3.3963587, - "Z": -585.49005 -}, -"TerritoryId": 146, -"InteractionType": "WalkTo" - + "Position": { + "X": 140.30618, + "Y": 4.2185926, + "Z": -585.2695 + }, + "TerritoryId": 146, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Southern Thanalan - Little Ala Mhigo", + "SkipConditions": { + "AetheryteShortcutIf": { + "AetheryteLocked": "Southern Thanalan - Little Ala Mhigo" + } + } + }, + { + "DataId": 2001455, + "Position": { + "X": 28.091797, + "Y": 6.9733276, + "Z": -611.2917 + }, + "TerritoryId": 146, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 2001435, + "Position": { + "X": 101.823364, + "Y": 7.248047, + "Z": -534.56934 + }, + "TerritoryId": 146, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] } ] }, - { "Sequence": 3, - "Steps": [ + { + "Sequence": 3, + "Steps": [ { - "DataId": 1001739, + "Position": { + "X": 164.75665, + "Y": 3.3963587, + "Z": -585.49005 + }, + "TerritoryId": 146, + "InteractionType": "WalkTo" + }, + { + "DataId": 1001739, "Position": { "X": -94.529724, "Y": 6.4999976, "Z": 39.81079 }, "TerritoryId": 131, -"InteractionType": "Interact", -"AetheryteShortcut": "Ul'dah", -"AethernetShortcut": [ + "InteractionType": "Interact", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ "[Ul'dah] Aetheryte Plaza", "[Ul'dah] Gladiators' Guild" - ] + ] } - ]}, - { "Sequence": 4, - "Steps": [ + ] + }, + { + "Sequence": 4, + "Steps": [ { - "DataId": 1004142, -"Position": { - "X": -19.97406, - "Y": -30.999985, - "Z": -33.951355 -}, -"TerritoryId": 145, -"InteractionType": "SinglePlayerDuty", -"AetheryteShortcut": "Eastern Thanalan - Camp Drybone" + "DataId": 1004142, + "Position": { + "X": -19.97406, + "Y": -30.999985, + "Z": -33.951355 + }, + "TerritoryId": 145, + "InteractionType": "SinglePlayerDuty", + "AetheryteShortcut": "Eastern Thanalan - Camp Drybone" } - ]} - , - { "Sequence": 255, - "Steps": [ + ] + }, + { + "Sequence": 255, + "Steps": [ { - "DataId": 1001739, + "DataId": 1001739, "Position": { "X": -94.529724, "Y": 6.4999976, "Z": 39.81079 }, "TerritoryId": 131, -"InteractionType": "CompleteQuest", -"AetheryteShortcut": "Ul'dah", -"AethernetShortcut": [ + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ "[Ul'dah] Aetheryte Plaza", "[Ul'dah] Gladiators' Guild" - ], - "NextQuestId": 1055 + ], + "NextQuestId": 1055 } - ]} + ] + } ] } diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/PLD/285_Way of the Gladiator.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/PLD/285_Way of the Gladiator.json new file mode 100644 index 00000000..126115bb --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/PLD/285_Way of the Gladiator.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": 1002277, + "Position": { + "X": -97.550964, + "Y": 7.05, + "Z": 23.605652 + }, + "TerritoryId": 131, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1001739, + "Position": { + "X": -94.529724, + "Y": 6.4999976, + "Z": 39.81079 + }, + "TerritoryId": 131, + "InteractionType": "CompleteQuest", + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_CLSGLA011_00285_Q2_000_1", + "Yes": true + } + ], + "NextQuestId": 286 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/PLD/286_My First Gladius.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/PLD/286_My First Gladius.json new file mode 100644 index 00000000..7a43259b --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/PLD/286_My First Gladius.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": [ + { + "DataId": 1001739, + "Position": { + "X": -94.529724, + "Y": 6.4999976, + "Z": 39.81079 + }, + "TerritoryId": 131, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": 45.13088, + "Y": 3.889354, + "Z": -166.51999 + }, + "TerritoryId": 130, + "InteractionType": "WalkTo", + "AethernetShortcut": [ + "[Ul'dah] Gladiators' Guild", + "[Ul'dah] Adventurers' Guild" + ], + "SkipConditions": { + "StepIf": { + "InTerritory": [ + 141 + ] + } + } + }, + { + "Position": { + "X": -116.10664, + "Y": 10.801613, + "Z": 276.979 + }, + "TerritoryId": 141, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "ComplexCombatData": [ + { + "DataId": 351, + "MinimumKillCount": 3, + "CompletionQuestVariablesFlags": [ + { + "Low": 3 + }, + null, + null, + null, + null, + null + ] + }, + { + "DataId": 141, + "MinimumKillCount": 3, + "CompletionQuestVariablesFlags": [ + null, + { + "High": 3 + }, + null, + null, + null, + null + ] + } + ], + "CompletionQuestVariablesFlags": [ + { + "Low": 3 + }, + { + "High": 3 + }, + null, + null, + null, + null + ] + }, + { + "Position": { + "X": 39.635372, + "Y": 3.2401803, + "Z": 273.41232 + }, + "TerritoryId": 141, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "ComplexCombatData": [ + { + "DataId": 205, + "MinimumKillCount": 3, + "CompletionQuestVariablesFlags": [ + null, + { + "Low": 3 + }, + null, + null, + null, + null + ] + } + ], + "CompletionQuestVariablesFlags": [ + null, + { + "Low": 3 + }, + null, + null, + null, + null + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1001739, + "Position": { + "X": -94.529724, + "Y": 6.4999976, + "Z": 39.81079 + }, + "TerritoryId": 131, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Gladiators' Guild" + ] + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/PLD/288_Ul'dah's Most Wanted.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/PLD/288_Ul'dah's Most Wanted.json new file mode 100644 index 00000000..a566207a --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/PLD/288_Ul'dah's Most Wanted.json @@ -0,0 +1,163 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Cacahuetes", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1001739, + "Position": { + "X": -94.529724, + "Y": 6.4999976, + "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": 1002296, + "Position": { + "X": -139.42175, + "Y": 4.019726, + "Z": 205.0354 + }, + "TerritoryId": 141, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "AethernetShortcut": [ + "[Ul'dah] Gladiators' Guild", + "[Ul'dah] Gate of Nald (Central Thanalan)" + ], + "KillEnemyDataIds": [ + 1245 + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1002296, + "Position": { + "X": -139.42175, + "Y": 4.019726, + "Z": 205.0354 + }, + "TerritoryId": 141, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1001739, + "Position": { + "X": -94.529724, + "Y": 6.4999976, + "Z": 39.81079 + }, + "TerritoryId": 131, + "InteractionType": "Interact", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Gladiators' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 131 + ] + } + } + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 2001756, + "Position": { + "X": 27.206787, + "Y": 12.985352, + "Z": 51.83484 + }, + "TerritoryId": 141, + "InteractionType": "SinglePlayerDuty", + "AethernetShortcut": [ + "[Ul'dah] Gladiators' Guild", + "[Ul'dah] Gate of Nald (Central Thanalan)" + ] + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1003945, + "Position": { + "X": 24.917969, + "Y": 13, + "Z": 50.156372 + }, + "StopDistance": 5, + "TerritoryId": 141, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1001739, + "Position": { + "X": -94.529724, + "Y": 6.4999976, + "Z": 39.81079 + }, + "TerritoryId": 131, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ul'dah", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_CLSGLA101_00288_Q1_000_160", + "Answer": "TEXT_CLSGLA101_00288_A1_000_161" + } + ], + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Gladiators' Guild" + ], + "NextQuestId": 262 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/ACN/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 similarity index 95% rename from QuestPaths/2.x - A Realm Reborn/Class Quests/ACN/451_So You Want to Be an Arcanist.json rename to QuestPaths/2.x - A Realm Reborn/Class Quests/SMN/451_So You Want to Be an Arcanist.json index 020ff0d5..b134aff7 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/ACN/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 @@ -1,42 +1,42 @@ -{ - "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "Cacahuetes", - "QuestSequence": [ - { - "Sequence": 255, - "Steps": [ - { "DataId": 1000895, -"Position": { - "X": -335.74432, - "Y": 12.899764, - "Z": 1.3884888 -}, -"TerritoryId": 129, -"InteractionType": "AcceptQuest", - "AetheryteShortcut": "Limsa Lominsa", - "AethernetShortcut": [ - "[Limsa Lominsa] Aetheryte Plaza", - "[Limsa Lominsa] Arcanists' Guild" - ], - "SkipConditions": { - "AetheryteShortcutIf": { - "InSameTerritory": true, - "InTerritory": [ - 129 - ] - } - }, - "DialogueChoices": [ - { - "Type": "YesNo", - "Prompt": "TEXT_CLSACN001_00451_Q1_000_000", - "Yes": true - } - ], - "NextQuestId": 452 - } - ] - } - ] - } +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Cacahuetes", + "QuestSequence": [ + { + "Sequence": 255, + "Steps": [ + { "DataId": 1000895, +"Position": { + "X": -335.74432, + "Y": 12.899764, + "Z": 1.3884888 +}, +"TerritoryId": 129, +"InteractionType": "AcceptQuest", + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] Arcanists' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 129 + ] + } + }, + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_CLSACN001_00451_Q1_000_000", + "Yes": true + } + ], + "NextQuestId": 452 + } + ] + } + ] + } \ No newline at end of file diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/ACN/452_Way of the Arcanist.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/SMN/452_Way of the Arcanist.json similarity index 95% rename from QuestPaths/2.x - A Realm Reborn/Class Quests/ACN/452_Way of the Arcanist.json rename to QuestPaths/2.x - A Realm Reborn/Class Quests/SMN/452_Way of the Arcanist.json index dad2a928..a20b24e0 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/ACN/452_Way of the Arcanist.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/SMN/452_Way of the Arcanist.json @@ -1,42 +1,42 @@ -{ - "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "Cacahuetes", - "QuestSequence": [ - { - "Sequence": 0, - "Steps": [ - { "DataId": 1000895, -"Position": { - "X": -335.74432, - "Y": 12.899764, - "Z": 1.3884888 -}, -"TerritoryId": 129, -"InteractionType": "AcceptQuest"} - ] - }, - { - "Sequence": 255, - "Steps": [ - { "DataId": 1000909, -"Position": { - "X": -326.37524, - "Y": 12.899658, - "Z": 9.994568 -}, -"TerritoryId": 129, -"InteractionType": "CompleteQuest", - "DialogueChoices": [ - { - "Type": "YesNo", - "Prompt": "TEXT_CLSACN011_00452_Q1_000_000", - "Yes": true - } - ], - "NextQuestId": 454 - } - ] - } - ] - } +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Cacahuetes", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { "DataId": 1000895, +"Position": { + "X": -335.74432, + "Y": 12.899764, + "Z": 1.3884888 +}, +"TerritoryId": 129, +"InteractionType": "AcceptQuest"} + ] + }, + { + "Sequence": 255, + "Steps": [ + { "DataId": 1000909, +"Position": { + "X": -326.37524, + "Y": 12.899658, + "Z": 9.994568 +}, +"TerritoryId": 129, +"InteractionType": "CompleteQuest", + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_CLSACN011_00452_Q1_000_000", + "Yes": true + } + ], + "NextQuestId": 454 + } + ] + } + ] + } \ No newline at end of file diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/WAR/179_So You Want to Be a Marauder.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/WAR/179_So You Want to Be a Marauder.json index b989176b..eaa718ee 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/WAR/179_So You Want to Be a Marauder.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/WAR/179_So You Want to Be a Marauder.json @@ -1,18 +1,19 @@ { - "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "Cacahuetes", - "QuestSequence": [ - { - "Sequence": 0, - "Steps": [ - { "DataId": 1000926, -"Position": { - "X": -10.055725, - "Y": 44.999794, - "Z": -245.80762 -}, -"TerritoryId": 128, -"InteractionType": "Interact", + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Cacahuetes", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1000926, + "Position": { + "X": -10.055725, + "Y": 44.999794, + "Z": -245.80762 + }, + "TerritoryId": 128, + "InteractionType": "Interact", "AetheryteShortcut": "Limsa Lominsa", "AethernetShortcut": [ "[Limsa Lominsa] Aetheryte Plaza", @@ -22,7 +23,7 @@ "AetheryteShortcutIf": { "InSameTerritory": true, "InTerritory": [ - 129, 128 + 128 ] } }, @@ -32,9 +33,9 @@ "Prompt": "TEXT_CLSEXC001_00179_Q1_000_1", "Yes": true } - ]} - ] - } - ] - } - \ No newline at end of file + ] + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/WAR/310_Way of the Marauder.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/WAR/310_Way of the Marauder.json index 16829c6d..e2cb02fc 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/WAR/310_Way of the Marauder.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/WAR/310_Way of the Marauder.json @@ -1,42 +1,44 @@ { - "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "Cacahuetes", - "QuestSequence": [ - { - "Sequence": 0, - "Steps": [ - { "DataId": 1000926, -"Position": { - "X": -10.055725, - "Y": 44.999794, - "Z": -245.80762 -}, -"TerritoryId": 128, -"InteractionType": "AcceptQuest"} - ] - }, - { - "Sequence": 255, - "Steps": [ - { "DataId": 1000927, -"Position": { - "X": -1.2055054, - "Y": 44.999886, - "Z": -255.8786 -}, -"TerritoryId": 128, -"InteractionType": "AcceptQuest", - "DialogueChoices": [ - { - "Type": "YesNo", - "Prompt": "TEXT_CLSEXC011_00310_Q2_000_1", - "Yes": true - } - ], - "NextQuestId": 312 - } - ] - } - ] - } - \ No newline at end of file + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Cacahuetes", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1000926, + "Position": { + "X": -10.055725, + "Y": 44.999794, + "Z": -245.80762 + }, + "TerritoryId": 128, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1000927, + "Position": { + "X": -1.2055054, + "Y": 44.999886, + "Z": -255.8786 + }, + "TerritoryId": 128, + "InteractionType": "AcceptQuest", + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_CLSEXC011_00310_Q2_000_1", + "Yes": true + } + ], + "NextQuestId": 312 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/WVR/189_So You Want to Be a Weaver.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/WVR/189_So You Want to Be a Weaver.json index 9428fff9..66ab5a05 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/WVR/189_So You Want to Be a Weaver.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/WVR/189_So You Want to Be a Weaver.json @@ -1,21 +1,24 @@ { - "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "Cacahuetes", - "QuestSequence": [ - { - "Sequence": 0, - "Steps": [ - { "DataId": 1002283, -"Position": { - "X": 134.90503, - "Y": 7.5919275, - "Z": 98.039185 -}, -"TerritoryId": 131, -"InteractionType": "Interact", + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Cacahuetes", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1002283, + "Position": { + "X": 134.90503, + "Y": 7.5919275, + "Z": 98.039185 + }, + "TerritoryId": 131, + "InteractionType": "Interact", "AetheryteShortcut": "Ul'dah", - "AethernetShortcut": ["[Ul'dah] Aetheryte Plaza", - "[Ul'dah] Weavers' Guild"], + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ], "SkipConditions": { "AetheryteShortcutIf": { "InSameTerritory": true, @@ -30,9 +33,9 @@ "Prompt": "TEXT_CLSWVR001_00189_Q1_000_1", "Yes": true } - ]} - ] - } - ] - } - \ No newline at end of file + ] + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/WVR/534_Way of the Weaver.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/WVR/534_Way of the Weaver.json index 6196aadd..0388389f 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/WVR/534_Way of the Weaver.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/WVR/534_Way of the Weaver.json @@ -1,42 +1,44 @@ { - "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "Cacahuetes", - "QuestSequence": [ - { - "Sequence": 0, - "Steps": [ - { "DataId": 1002283, -"Position": { - "X": 134.90503, - "Y": 7.5919275, - "Z": 98.039185 -}, -"TerritoryId": 131, -"InteractionType": "AcceptQuest"} - ] - }, - { - "Sequence": 255, - "Steps": [ - { "DataId": 1003818, -"Position": { - "X": 157.36621, - "Y": 7.7920074, - "Z": 98.924194 -}, -"TerritoryId": 131, -"InteractionType": "CompleteQuest", - "DialogueChoices": [ - { - "Type": "YesNo", - "Prompt": "TEXT_CLSWVR011_00534_SYSTEM_Q0", - "Yes": true - } - ], - "NextQuestId": 534 - } - ] - } - ] - } - \ No newline at end of file + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Cacahuetes", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1002283, + "Position": { + "X": 134.90503, + "Y": 7.5919275, + "Z": 98.039185 + }, + "TerritoryId": 131, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1003818, + "Position": { + "X": 157.36621, + "Y": 7.7920074, + "Z": 98.924194 + }, + "TerritoryId": 131, + "InteractionType": "CompleteQuest", + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_CLSWVR011_00534_SYSTEM_Q0", + "Yes": true + } + ], + "NextQuestId": 534 + } + ] + } + ] +} From b4a649189ace47d8875ac95d85cac267473e52c0 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sun, 25 Aug 2024 01:30:42 +0200 Subject: [PATCH 061/450] Add quest priority window --- Questionable/Controller/QuestController.cs | 10 +- Questionable/DalamudInitializer.cs | 2 + Questionable/Functions/QuestFunctions.cs | 17 +- Questionable/QuestionablePlugin.cs | 1 + Questionable/Windows/PriorityWindow.cs | 223 ++++++++++++++++++ .../QuestComponents/ActiveQuestComponent.cs | 11 + 6 files changed, 259 insertions(+), 5 deletions(-) create mode 100644 Questionable/Windows/PriorityWindow.cs diff --git a/Questionable/Controller/QuestController.cs b/Questionable/Controller/QuestController.cs index d932b471..529b4603 100644 --- a/Questionable/Controller/QuestController.cs +++ b/Questionable/Controller/QuestController.cs @@ -138,6 +138,8 @@ internal sealed class QuestController : MiniTaskController, IDi /// public QuestProgress? PendingQuest => _pendingQuest; + public List ManualPriorityQuests { get; } = []; + public string? DebugState { get; private set; } public void Reload() @@ -291,7 +293,13 @@ internal sealed class QuestController : MiniTaskController, IDi } else { - (ElementId? currentQuestId, currentSequence) = _questFunctions.GetCurrentQuest(); + (ElementId? currentQuestId, currentSequence) = + ManualPriorityQuests + .Where(x => _questFunctions.IsReadyToAcceptQuest(x.Id) || _questFunctions.IsQuestAccepted(x.Id)) + .Select(x => + ((ElementId?, byte)?)(x.Id, _questFunctions.GetQuestProgressInfo(x.Id)?.Sequence ?? 0)) + .FirstOrDefault() ?? + _questFunctions.GetCurrentQuest(); if (currentQuestId == null || currentQuestId.Value == 0) { if (_startedQuest != null) diff --git a/Questionable/DalamudInitializer.cs b/Questionable/DalamudInitializer.cs index f743ac39..78ac865c 100644 --- a/Questionable/DalamudInitializer.cs +++ b/Questionable/DalamudInitializer.cs @@ -36,6 +36,7 @@ internal sealed class DalamudInitializer : IDisposable QuestSelectionWindow questSelectionWindow, QuestValidationWindow questValidationWindow, JournalProgressWindow journalProgressWindow, + PriorityWindow priorityWindow, IToastGui toastGui, ILogger logger) { @@ -55,6 +56,7 @@ internal sealed class DalamudInitializer : IDisposable _windowSystem.AddWindow(questSelectionWindow); _windowSystem.AddWindow(questValidationWindow); _windowSystem.AddWindow(journalProgressWindow); + _windowSystem.AddWindow(priorityWindow); _pluginInterface.UiBuilder.Draw += _windowSystem.Draw; _pluginInterface.UiBuilder.OpenMainUi += _questWindow.Toggle; diff --git a/Questionable/Functions/QuestFunctions.cs b/Questionable/Functions/QuestFunctions.cs index 6fb34dda..7e360cd6 100644 --- a/Questionable/Functions/QuestFunctions.cs +++ b/Questionable/Functions/QuestFunctions.cs @@ -449,6 +449,18 @@ internal sealed unsafe class QuestFunctions } public bool IsQuestLocked(QuestId questId, ElementId? extraCompletedQuest = null) + { + if (IsQuestUnobtainable(questId, extraCompletedQuest)) + return true; + + var questInfo = (QuestInfo)_questData.GetQuestInfo(questId); + if (questInfo.GrandCompany != GrandCompany.None && questInfo.GrandCompany != GetGrandCompany()) + return true; + + return !HasCompletedPreviousQuests(questInfo, extraCompletedQuest) || !HasCompletedPreviousInstances(questInfo); + } + + public bool IsQuestUnobtainable(QuestId questId, ElementId? extraCompletedQuest = null) { var questInfo = (QuestInfo)_questData.GetQuestInfo(questId); if (questInfo.QuestLocks.Count > 0) @@ -460,13 +472,10 @@ internal sealed unsafe class QuestFunctions return true; } - if (questInfo.GrandCompany != GrandCompany.None && questInfo.GrandCompany != GetGrandCompany()) - return true; - if (_questData.GetLockedClassQuests().Contains(questId)) return true; - return !HasCompletedPreviousQuests(questInfo, extraCompletedQuest) || !HasCompletedPreviousInstances(questInfo); + return false; } public bool IsQuestLocked(LeveId leveId) diff --git a/Questionable/QuestionablePlugin.cs b/Questionable/QuestionablePlugin.cs index db3510cf..207cf2b1 100644 --- a/Questionable/QuestionablePlugin.cs +++ b/Questionable/QuestionablePlugin.cs @@ -208,6 +208,7 @@ public sealed class QuestionablePlugin : IDalamudPlugin serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); + serviceCollection.AddSingleton(); } private static void AddQuestValidators(ServiceCollection serviceCollection) diff --git a/Questionable/Windows/PriorityWindow.cs b/Questionable/Windows/PriorityWindow.cs new file mode 100644 index 00000000..7c76aca3 --- /dev/null +++ b/Questionable/Windows/PriorityWindow.cs @@ -0,0 +1,223 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Numerics; +using Dalamud.Interface; +using Dalamud.Interface.Colors; +using Dalamud.Interface.Components; +using Dalamud.Plugin; +using ImGuiNET; +using LLib.ImGui; +using Questionable.Controller; +using Questionable.Functions; +using Questionable.Model; +using Questionable.Model.Questing; +using Questionable.Windows.QuestComponents; + +namespace Questionable.Windows; + +internal sealed class PriorityWindow : LWindow +{ + private readonly QuestController _questController; + private readonly QuestRegistry _questRegistry; + private readonly QuestFunctions _questFunctions; + private readonly QuestTooltipComponent _questTooltipComponent; + private readonly UiUtils _uiUtils; + private readonly IDalamudPluginInterface _pluginInterface; + + private string _searchString = string.Empty; + private ElementId? _draggedItem; + + public PriorityWindow(QuestController questController, QuestRegistry questRegistry, QuestFunctions questFunctions, + QuestTooltipComponent questTooltipComponent, UiUtils uiUtils, IDalamudPluginInterface pluginInterface) + : base("Quest Priority###QuestionableQuestPriority") + { + _questController = questController; + _questRegistry = questRegistry; + _questFunctions = questFunctions; + _questTooltipComponent = questTooltipComponent; + _uiUtils = uiUtils; + _pluginInterface = pluginInterface; + + Size = new Vector2(400, 400); + SizeCondition = ImGuiCond.Once; + SizeConstraints = new WindowSizeConstraints + { + MinimumSize = new Vector2(400, 400), + MaximumSize = new Vector2(400, 999) + }; + } + + public override void Draw() + { + ImGui.Text("Quests to do first:"); + DrawQuestFilter(); + DrawQuestList(); + ImGui.Spacing(); + + ImGui.Separator(); + ImGui.Spacing(); + ImGui.TextWrapped( + "If you have an active MSQ quest, Questionable will generally try to do:"); + ImGui.BulletText("'Priority' quests: class quests, ARR primals, ARR raids"); + ImGui.BulletText( + "Supported quests in your 'To-Do list'\n(quests from your Journal that are always on-screen)"); + ImGui.BulletText("MSQ quest (if available, unless it is marked as 'ignored'\nin your Journal)"); + ImGui.TextWrapped( + "If you don't have any active MSQ quest, it will always try to pick up the next quest in the MSQ first."); + } + + private void DrawQuestFilter() + { + ImGui.SetNextItemWidth(ImGui.GetContentRegionAvail().X); + if (ImGui.BeginCombo($"##QuestSelection", "Add Quest...", ImGuiComboFlags.HeightLarge)) + { + ImGui.SetNextItemWidth(ImGui.GetContentRegionAvail().X); + bool addFirst = ImGui.InputTextWithHint("", "Filter...", ref _searchString, 256, + ImGuiInputTextFlags.AutoSelectAll | ImGuiInputTextFlags.EnterReturnsTrue); + + IEnumerable foundQuests; + if (!string.IsNullOrEmpty(_searchString)) + { + foundQuests = _questRegistry.AllQuests + .Where(x => x.Info.Name.Contains(_searchString, StringComparison.CurrentCultureIgnoreCase)) + .Where(x => x.Id is not QuestId questId || !_questFunctions.IsQuestUnobtainable(questId)); + } + else + { + foundQuests = _questRegistry.AllQuests.Where(x => _questFunctions.IsQuestAccepted(x.Id)); + } + + foreach (var quest in foundQuests) + { + if (quest.Info.IsMainScenarioQuest || _questController.ManualPriorityQuests.Contains(quest)) + continue; + + bool addThis = ImGui.Selectable(quest.Info.Name); + if (addThis || addFirst) + { + _questController.ManualPriorityQuests.Add(quest); + + if (addFirst) + { + ImGui.CloseCurrentPopup(); + addFirst = false; + } + } + } + + ImGui.EndCombo(); + } + + ImGui.Spacing(); + } + + private void DrawQuestList() + { + List priorityQuests = _questController.ManualPriorityQuests; + Quest? itemToRemove = null; + Quest? itemToAdd = null; + int indexToAdd = 0; + + float width = ImGui.GetContentRegionAvail().X; + List<(Vector2 TopLeft, Vector2 BottomRight)> itemPositions = []; + + for (int i = 0; i < priorityQuests.Count; ++i) + { + Vector2 topLeft = ImGui.GetCursorScreenPos() + + new Vector2(0, -ImGui.GetStyle().ItemSpacing.Y / 2); + var quest = priorityQuests[i]; + ImGui.PushID($"Quest{quest.Id}"); + + var style = _uiUtils.GetQuestStyle(quest.Id); + bool hovered; + using (var _ = _pluginInterface.UiBuilder.IconFontFixedWidthHandle.Push()) + { + ImGui.AlignTextToFramePadding(); + ImGui.TextColored(style.Color, style.Icon.ToIconString()); + hovered = ImGui.IsItemHovered(); + } + + ImGui.SameLine(); + ImGui.AlignTextToFramePadding(); + ImGui.Text(quest.Info.Name); + hovered |= ImGui.IsItemHovered(); + + if (hovered) + _questTooltipComponent.Draw(quest.Info); + + if (priorityQuests.Count > 1) + { + ImGui.PushFont(UiBuilder.IconFont); + ImGui.SameLine(ImGui.GetContentRegionAvail().X + + ImGui.GetStyle().WindowPadding.X - + ImGui.CalcTextSize(FontAwesomeIcon.ArrowsUpDown.ToIconString()).X - + ImGui.CalcTextSize(FontAwesomeIcon.Times.ToIconString()).X - + ImGui.GetStyle().FramePadding.X * 4 - + ImGui.GetStyle().ItemSpacing.X); + ImGui.PopFont(); + + if (_draggedItem == quest.Id) + { + ImGuiComponents.IconButton("##Move", FontAwesomeIcon.ArrowsUpDown, + ImGui.ColorConvertU32ToFloat4(ImGui.GetColorU32(ImGuiCol.ButtonActive))); + } + else + ImGuiComponents.IconButton("##Move", FontAwesomeIcon.ArrowsUpDown); + + if (_draggedItem == null && ImGui.IsItemActive() && ImGui.IsMouseDragging(ImGuiMouseButton.Left)) + _draggedItem = quest.Id; + + ImGui.SameLine(); + } + else + { + ImGui.PushFont(UiBuilder.IconFont); + ImGui.SameLine(ImGui.GetContentRegionAvail().X + + ImGui.GetStyle().WindowPadding.X - + ImGui.CalcTextSize(FontAwesomeIcon.Times.ToIconString()).X - + ImGui.GetStyle().FramePadding.X * 2); + ImGui.PopFont(); + } + + if (ImGuiComponents.IconButton($"##Remove{i}", FontAwesomeIcon.Times)) + itemToRemove = quest; + + ImGui.PopID(); + + Vector2 bottomRight = new Vector2(topLeft.X + width, + ImGui.GetCursorScreenPos().Y - ImGui.GetStyle().ItemSpacing.Y + 2); + itemPositions.Add((topLeft, bottomRight)); + } + + if (!ImGui.IsMouseDragging(ImGuiMouseButton.Left)) + _draggedItem = null; + else if (_draggedItem != null) + { + var draggedItem = priorityQuests.Single(x => x.Id == _draggedItem); + int oldIndex = priorityQuests.IndexOf(draggedItem); + + var (topLeft, bottomRight) = itemPositions[oldIndex]; + ImGui.GetWindowDrawList().AddRect(topLeft, bottomRight, ImGui.GetColorU32(ImGuiColors.DalamudGrey), 3f, + ImDrawFlags.RoundCornersAll); + + int newIndex = itemPositions.FindIndex(x => ImGui.IsMouseHoveringRect(x.TopLeft, x.BottomRight, true)); + if (newIndex >= 0 && oldIndex != newIndex) + { + itemToAdd = priorityQuests.Single(x => x.Id == _draggedItem); + indexToAdd = newIndex; + } + } + + if (itemToRemove != null) + { + priorityQuests.Remove(itemToRemove); + } + + if (itemToAdd != null) + { + priorityQuests.Remove(itemToAdd); + priorityQuests.Insert(indexToAdd, itemToAdd); + } + } +} diff --git a/Questionable/Windows/QuestComponents/ActiveQuestComponent.cs b/Questionable/Windows/QuestComponents/ActiveQuestComponent.cs index 1234b1f1..6d4a4384 100644 --- a/Questionable/Windows/QuestComponents/ActiveQuestComponent.cs +++ b/Questionable/Windows/QuestComponents/ActiveQuestComponent.cs @@ -31,6 +31,7 @@ internal sealed partial class ActiveQuestComponent private readonly ICommandManager _commandManager; private readonly Configuration _configuration; private readonly QuestRegistry _questRegistry; + private readonly PriorityWindow _priorityWindow; private readonly IChatGui _chatGui; public ActiveQuestComponent( @@ -42,6 +43,7 @@ internal sealed partial class ActiveQuestComponent ICommandManager commandManager, Configuration configuration, QuestRegistry questRegistry, + PriorityWindow priorityWindow, IChatGui chatGui) { _questController = questController; @@ -52,6 +54,7 @@ internal sealed partial class ActiveQuestComponent _commandManager = commandManager; _configuration = configuration; _questRegistry = questRegistry; + _priorityWindow = priorityWindow; _chatGui = chatGui; } @@ -111,6 +114,10 @@ internal sealed partial class ActiveQuestComponent _questController.Stop("Manual (no active quest)"); _gatheringController.Stop("Manual (no active quest)"); } + + ImGui.SameLine(); + if (ImGuiComponents.IconButton(FontAwesomeIcon.SortAmountDown)) + _priorityWindow.Toggle(); } } @@ -293,6 +300,10 @@ internal sealed partial class ActiveQuestComponent ImGui.PopStyleColor(); ImGui.EndDisabled(); + ImGui.SameLine(); + if (ImGuiComponents.IconButton(FontAwesomeIcon.SortAmountDown)) + _priorityWindow.Toggle(); + if (_commandManager.Commands.TryGetValue("/questinfo", out var commandInfo)) { ImGui.SameLine(); From cfce2591db3b6e4b66af502de5aac84acbb7bcf4 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sun, 25 Aug 2024 11:15:05 +0200 Subject: [PATCH 062/450] Add missing dialogue option for 'Sustenance for the Soul' --- .../Pixies/Story/3684_Sustenance for the Soul.json | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/QuestPaths/5.x - Shadowbringers/Allied Societies/Pixies/Story/3684_Sustenance for the Soul.json b/QuestPaths/5.x - Shadowbringers/Allied Societies/Pixies/Story/3684_Sustenance for the Soul.json index a60a9eb8..75b26eac 100644 --- a/QuestPaths/5.x - Shadowbringers/Allied Societies/Pixies/Story/3684_Sustenance for the Soul.json +++ b/QuestPaths/5.x - Shadowbringers/Allied Societies/Pixies/Story/3684_Sustenance for the Soul.json @@ -88,7 +88,14 @@ "TerritoryId": 814, "InteractionType": "Interact", "AetheryteShortcut": "Kholusia - Wright", - "Fly": true + "Fly": true, + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_BANPIX002_03684_Q1_000_000", + "Answer": "TEXT_BANPIX002_03684_A1_000_001" + } + ] } ] }, From 9430ca62da0f314739e4f6bb1ca793b388dd4098 Mon Sep 17 00:00:00 2001 From: cacahuetes Date: Sun, 25 Aug 2024 10:52:42 +0000 Subject: [PATCH 063/450] Upload files to "QuestPaths/3.x - Heavensward/Class Quests/WHM" --- .../WHM/1719_Taint Misbehaving.json | 215 ++++++++++++++++++ .../WHM/1720_A Journey of Purification.json | 91 ++++++++ .../1721_The Girl with the Dragon Tissue.json | 158 +++++++++++++ .../WHM/1722_The Dark Blight Writhes.json | 103 +++++++++ 4 files changed, 567 insertions(+) create mode 100644 QuestPaths/3.x - Heavensward/Class Quests/WHM/1719_Taint Misbehaving.json create mode 100644 QuestPaths/3.x - Heavensward/Class Quests/WHM/1720_A Journey of Purification.json create mode 100644 QuestPaths/3.x - Heavensward/Class Quests/WHM/1721_The Girl with the Dragon Tissue.json create mode 100644 QuestPaths/3.x - Heavensward/Class Quests/WHM/1722_The Dark Blight Writhes.json diff --git a/QuestPaths/3.x - Heavensward/Class Quests/WHM/1719_Taint Misbehaving.json b/QuestPaths/3.x - Heavensward/Class Quests/WHM/1719_Taint Misbehaving.json new file mode 100644 index 00000000..8715345a --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Class Quests/WHM/1719_Taint Misbehaving.json @@ -0,0 +1,215 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Cacahuetes", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "Position": { + "X": -146.86935, + "Y": 8.006159, + "Z": 268.78055 + }, + "StopDistance": 0.25, + "TerritoryId": 153, + "AetheryteShortcut": "South Shroud - Camp Tranquil", + "InteractionType": "Jump", + "JumpDestination": { + "Position": { + "X": -137.77051, + "Y": 7.7094107, + "Z": 275.28036 + }, + "DelaySeconds": 0.75 + }, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + }, + "StepIf": { + "Flying": "Unlocked", + "NearPosition": { + "Position": { + "X": -139.45221, + "Y": 8.712891, + "Z": 281.69678 + }, + "MaximumDistance": 3 + } + } + } + }, + { + "Position": { + "X": -139.04318, + "Y": 8.522301, + "Z": 280.0128 + }, + "TerritoryId": 153, + "InteractionType": "WalkTo", + "Fly": true, + "SkipConditions": { + "StepIf": { + "Flying": "Locked" + } + } + }, + { + "DataId": 1006751, + "Position": { + "X": -139.45221, + "Y": 8.712891, + "Z": 281.69678 + }, + "TerritoryId": 153, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1013606, + "Position": { + "X": -317.1283, + "Y": 21.686531, + "Z": 183.03198 + }, + "TerritoryId": 148, + "Fly": true, + "InteractionType": "Interact", + "AetheryteShortcut": "Central Shroud - Bentbranch Meadows" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1006245, + "Position": { + "X": 4.9591064, + "Y": -46.518013, + "Z": 248.49304 + }, + "TerritoryId": 154, + "InteractionType": "Interact", + "AetheryteShortcut": "North Shroud - Fallgourd Float" + }, + { + "DataId": 1007092, + "Position": { + "X": -59.31189, + "Y": -40.90982, + "Z": 232.62378 + }, + "TerritoryId": 154, + "InteractionType": "Interact" + }, + { + "DataId": 1002804, + "Position": { + "X": -26.260803, + "Y": -40.705082, + "Z": 172.74731 + }, + "TerritoryId": 154, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "Position": { + "X": 108.506836, + "Y": 7.167203, + "Z": -47.01306 + }, + "Fly": true, + "TerritoryId": 154, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [4683] + }, + { + "DataId": 1013605, + "Position": { + "X": 108.506836, + "Y": 7.167203, + "Z": -47.01306 + }, + "TerritoryId": 154, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1013605, + "Position": { + "X": 108.506836, + "Y": 7.167203, + "Z": -47.01306 + }, + "TerritoryId": 154, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1013606, + "Position": { + "X": -317.1283, + "Y": 21.686531, + "Z": 183.03198 + }, + "TerritoryId": 148, + "Fly": true, + "InteractionType": "Interact", + "AetheryteShortcut": "Central Shroud - Bentbranch Meadows" + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1013608, + "Position": { + "X": -314.9615, + "Y": 21.609262, + "Z": 182.8794 + }, + "TerritoryId": 148, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1013609, + "Position": { + "X": -44.480103, + "Y": -40.949986, + "Z": 187.7622 + }, + "AetheryteShortcut": "North Shroud - Fallgourd Float", + "TerritoryId": 154, + "InteractionType": "CompleteQuest", + "NextQuestId": 1720 + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Class Quests/WHM/1720_A Journey of Purification.json b/QuestPaths/3.x - Heavensward/Class Quests/WHM/1720_A Journey of Purification.json new file mode 100644 index 00000000..510520eb --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Class Quests/WHM/1720_A Journey of Purification.json @@ -0,0 +1,91 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Cacahuetes", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1013609, + "Position": { + "X": -44.480103, + "Y": -40.949986, + "Z": 187.7622 + }, + "AetheryteShortcut": "North Shroud - Fallgourd Float", + "TerritoryId": 154, + "InteractionType": "AcceptQuest", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1013610, + "Position": { + "X": 209.21643, + "Y": 302, + "Z": -204.85242 + }, + "TerritoryId": 155, + "InteractionType": "Interact", + "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1013663, + "Position": { + "X": 161.91345, + "Y": 275.37952, + "Z": 16.403442 + }, + "TerritoryId": 155, + "Fly": true, + "InteractionType": "SinglePlayerDuty" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2005889, + "Position": { + "X": 143.78564, + "Y": 280.0183, + "Z": 19.882507 + }, + "TerritoryId": 155, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1013610, + "Position": { + "X": 209.21643, + "Y": 302, + "Z": -204.85242 + }, + "TerritoryId": 155, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", + "NextQuestId": 1721 + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Class Quests/WHM/1721_The Girl with the Dragon Tissue.json b/QuestPaths/3.x - Heavensward/Class Quests/WHM/1721_The Girl with the Dragon Tissue.json new file mode 100644 index 00000000..f825f825 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Class Quests/WHM/1721_The Girl with the Dragon Tissue.json @@ -0,0 +1,158 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Cacahuetes", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1013610, + "Position": { + "X": 209.21643, + "Y": 302, + "Z": -204.85242 + }, + "TerritoryId": 155, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1013613, + "Position": { + "X": 479.91138, + "Y": 226.62401, + "Z": 817.0442 + }, + "TerritoryId": 397, + "InteractionType": "Interact", + "AetheryteShortcut": "Coerthas Western Highlands - Falcon's Nest" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1011232, + "Position": { + "X": 506.8589, + "Y": 217.95148, + "Z": 792.4772 + }, + "TerritoryId": 397, + "InteractionType": "Interact" + }, + { + "DataId": 1011237, + "Position": { + "X": 447.3181, + "Y": 212.53984, + "Z": 725.00183 + }, + "TerritoryId": 397, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1013614, + "Position": { + "X": 463.5232, + "Y": 200.23772, + "Z": 651.911 + }, + "TerritoryId": 397, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1013617, + "Position": { + "X": -513.0846, + "Y": 101.57904, + "Z": -653.3456 + }, + "TerritoryId": 397, + "InteractionType": "Interact", + "Fly": true + }, + { + "Position": { + "X": -336.4157, + "Y": 89.00586, + "Z": -586.5721 + }, + "TerritoryId": 397, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [4677] + } + ] + }, + + { + "Sequence": 5, + "Steps": [ + { + "DataId": 2005855, + "Position": { + "X": -336.4157, + "Y": 89.00586, + "Z": -586.5721 + }, + "TerritoryId": 397, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1013618, + "Position": { + "X": -402.12103, + "Y": 90.9028, + "Z": -688.53284 + }, + "TerritoryId": 397, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1013614, + "Position": { + "X": 463.5232, + "Y": 200.23772, + "Z": 651.911 + }, + "TerritoryId": 397, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Coerthas Western Highlands - Falcon's Nest", + "NextQuestId": 1722 + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Class Quests/WHM/1722_The Dark Blight Writhes.json b/QuestPaths/3.x - Heavensward/Class Quests/WHM/1722_The Dark Blight Writhes.json new file mode 100644 index 00000000..2a1a2d05 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Class Quests/WHM/1722_The Dark Blight Writhes.json @@ -0,0 +1,103 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Cacahuetes", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1013614, + "Position": { + "X": 463.5232, + "Y": 200.23772, + "Z": 651.911 + }, + "TerritoryId": 397, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Coerthas Western Highlands - Falcon's Nest", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1013619, + "Position": { + "X": -274.49457, + "Y": 125.33218, + "Z": -13.870483 + }, + "TerritoryId": 397, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1013620, + "Position": { + "X": -275.2575, + "Y": 125.596924, + "Z": -11.215393 + }, + "TerritoryId": 397, + "InteractionType": "WaitForManualProgress", + "$": "Cure II needs to be added to list of actions" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2005857, + "Position": { + "X": -336.4157, + "Y": 89.00586, + "Z": -586.5721 + }, + "TerritoryId": 397, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [4690] + }, + { + "DataId": 2005857, + "Position": { + "X": -336.4157, + "Y": 89.00586, + "Z": -586.5721 + }, + "TerritoryId": 397, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1013623, + "Position": { + "X": 486.93054, + "Y": -51.1414, + "Z": 25.986084 + }, + "TerritoryId": 398, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "The Dravanian Forelands - Tailfeather", + "NextQuestId": 1723 + } + ] + } + ] +} From 11132beb227c80d1344c7873c1eb38e248bd6bca Mon Sep 17 00:00:00 2001 From: cacahuetes Date: Sun, 25 Aug 2024 10:53:03 +0000 Subject: [PATCH 064/450] Upload files to "QuestPaths/3.x - Heavensward/Class Quests/WHM" --- .../WHM/1723_In the Wake of Death.json | 136 +++++++++ .../WHM/1724_Trials of the Padjals.json | 93 ++++++ .../WHM/1725_Hands of Healing.json | 280 ++++++++++++++++++ 3 files changed, 509 insertions(+) create mode 100644 QuestPaths/3.x - Heavensward/Class Quests/WHM/1723_In the Wake of Death.json create mode 100644 QuestPaths/3.x - Heavensward/Class Quests/WHM/1724_Trials of the Padjals.json create mode 100644 QuestPaths/3.x - Heavensward/Class Quests/WHM/1725_Hands of Healing.json diff --git a/QuestPaths/3.x - Heavensward/Class Quests/WHM/1723_In the Wake of Death.json b/QuestPaths/3.x - Heavensward/Class Quests/WHM/1723_In the Wake of Death.json new file mode 100644 index 00000000..1c433969 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Class Quests/WHM/1723_In the Wake of Death.json @@ -0,0 +1,136 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Cacahuetes", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1013623, + "Position": { + "X": 486.93054, + "Y": -51.1414, + "Z": 25.986084 + }, + "TerritoryId": 398, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "The Dravanian Forelands - Tailfeather", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1013624, + "Position": { + "X": -183.61182, + "Y": -104.708206, + "Z": 505.60767 + }, + "TerritoryId": 398, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": -561.82196, + "Y": -46.707886, + "Z": 300.46533 + }, + "TerritoryId": 398, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [4691, 4692], + "Fly": true + }, + { + "DataId": 2005859, + "Position": { + "X": -561.82196, + "Y": -46.707886, + "Z": 300.46533 + }, + "TerritoryId": 398, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1013625, + "Position": { + "X": -679.9573, + "Y": -100.52397, + "Z": 775.1736 + }, + "TerritoryId": 398, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1013625, + "Position": { + "X": -679.9573, + "Y": -100.52397, + "Z": 775.1736 + }, + "TerritoryId": 398, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [4690, 4691] + }, + { + "DataId": 2005861, + "Position": { + "X": -678.4009, + "Y": -100.60278, + "Z": 778.13367 + }, + "TerritoryId": 398, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1013625, + "Position": { + "X": -679.9573, + "Y": -100.52397, + "Z": 775.1736 + }, + "TerritoryId": 398, + "InteractionType": "CompleteQuest", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_JOBWHM580_01723_Q1_000_000", + "Answer": "TEXT_JOBWHM580_01723_A1_000_001" + } + ], + "NextQuestId": 1724 + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Class Quests/WHM/1724_Trials of the Padjals.json b/QuestPaths/3.x - Heavensward/Class Quests/WHM/1724_Trials of the Padjals.json new file mode 100644 index 00000000..637c7e44 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Class Quests/WHM/1724_Trials of the Padjals.json @@ -0,0 +1,93 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Cacahuetes", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1013627, + "Position": { + "X": -679.9573, + "Y": -100.52397, + "Z": 775.1736 + }, + "TerritoryId": 398, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "The Dravanian Forelands - Tailfeather", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": -146.86935, + "Y": 8.006159, + "Z": 268.78055 + }, + "StopDistance": 0.25, + "TerritoryId": 153, + "AetheryteShortcut": "South Shroud - Camp Tranquil", + "InteractionType": "Jump", + "JumpDestination": { + "Position": { + "X": -137.77051, + "Y": 7.7094107, + "Z": 275.28036 + }, + "DelaySeconds": 0.75 + }, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + }, + "StepIf": { + "Flying": "Unlocked", + "NearPosition": { + "Position": { + "X": -139.45221, + "Y": 8.712891, + "Z": 281.69678 + }, + "MaximumDistance": 3 + } + } + } + }, + { + "Position": { + "X": -139.04318, + "Y": 8.522301, + "Z": 280.0128 + }, + "TerritoryId": 153, + "InteractionType": "WalkTo", + "Fly": true, + "SkipConditions": { + "StepIf": { + "Flying": "Locked" + } + } + }, + { + "DataId": 1006751, + "Position": { + "X": -139.45221, + "Y": 8.712891, + "Z": 281.69678 + }, + "TerritoryId": 153, + "InteractionType": "CompleteQuest", + "NextQuestId": 1725 + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Class Quests/WHM/1725_Hands of Healing.json b/QuestPaths/3.x - Heavensward/Class Quests/WHM/1725_Hands of Healing.json new file mode 100644 index 00000000..3543774e --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Class Quests/WHM/1725_Hands of Healing.json @@ -0,0 +1,280 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Cacahuetes", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "Position": { + "X": -146.86935, + "Y": 8.006159, + "Z": 268.78055 + }, + "StopDistance": 0.25, + "TerritoryId": 153, + "AetheryteShortcut": "South Shroud - Camp Tranquil", + "InteractionType": "Jump", + "JumpDestination": { + "Position": { + "X": -137.77051, + "Y": 7.7094107, + "Z": 275.28036 + }, + "DelaySeconds": 0.75 + }, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + }, + "StepIf": { + "Flying": "Unlocked", + "NearPosition": { + "Position": { + "X": -139.45221, + "Y": 8.712891, + "Z": 281.69678 + }, + "MaximumDistance": 3 + } + } + } + }, + { + "Position": { + "X": -139.04318, + "Y": 8.522301, + "Z": 280.0128 + }, + "TerritoryId": 153, + "InteractionType": "WalkTo", + "Fly": true, + "SkipConditions": { + "StepIf": { + "Flying": "Locked" + } + } + }, + { + "DataId": 1006751, + "Position": { + "X": -139.45221, + "Y": 8.712891, + "Z": 281.69678 + }, + "TerritoryId": 153, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1013609, + "Position": { + "X": -44.480103, + "Y": -40.949986, + "Z": 187.7622 + }, + "TerritoryId": 154, + "InteractionType": "Interact", + "AetheryteShortcut": "North Shroud - Fallgourd Float" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": -146.86935, + "Y": 8.006159, + "Z": 268.78055 + }, + "StopDistance": 0.25, + "TerritoryId": 153, + "AetheryteShortcut": "South Shroud - Camp Tranquil", + "InteractionType": "Jump", + "JumpDestination": { + "Position": { + "X": -137.77051, + "Y": 7.7094107, + "Z": 275.28036 + }, + "DelaySeconds": 0.75 + }, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + }, + "StepIf": { + "Flying": "Unlocked", + "NearPosition": { + "Position": { + "X": -139.45221, + "Y": 8.712891, + "Z": 281.69678 + }, + "MaximumDistance": 3 + } + } + } + }, + { + "Position": { + "X": -139.04318, + "Y": 8.522301, + "Z": 280.0128 + }, + "TerritoryId": 153, + "InteractionType": "WalkTo", + "Fly": true, + "SkipConditions": { + "StepIf": { + "Flying": "Locked" + } + } + }, + { + "DataId": 1006751, + "Position": { + "X": -139.45221, + "Y": 8.712891, + "Z": 281.69678 + }, + "TerritoryId": 153, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1013632, + "Position": { + "X": 491.38623, + "Y": -51.091385, + "Z": 34.561646 + }, + "TerritoryId": 398, + "InteractionType": "Interact", + "AetheryteShortcut": "The Dravanian Forelands - Tailfeather" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1013635, + "Position": { + "X": -122.453674, + "Y": 0.72138774, + "Z": -615.80835 + }, + "TerritoryId": 398, + "InteractionType": "SinglePlayerDuty", + "AetheryteShortcut": "The Dravanian Forelands - Anyx Trine" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1013639, + "Position": { + "X": -120.74469, + "Y": 0.555462, + "Z": -616.6323 + }, + "TerritoryId": 398, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1013639, + "Position": { + "X": -120.74469, + "Y": 0.555462, + "Z": -616.6323 + }, + "TerritoryId": 398, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": -146.86935, + "Y": 8.006159, + "Z": 268.78055 + }, + "StopDistance": 0.25, + "TerritoryId": 153, + "AetheryteShortcut": "South Shroud - Camp Tranquil", + "InteractionType": "Jump", + "JumpDestination": { + "Position": { + "X": -137.77051, + "Y": 7.7094107, + "Z": 275.28036 + }, + "DelaySeconds": 0.75 + }, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + }, + "StepIf": { + "Flying": "Unlocked", + "NearPosition": { + "Position": { + "X": -139.45221, + "Y": 8.712891, + "Z": 281.69678 + }, + "MaximumDistance": 3 + } + } + } + }, + { + "Position": { + "X": -139.04318, + "Y": 8.522301, + "Z": 280.0128 + }, + "TerritoryId": 153, + "InteractionType": "WalkTo", + "Fly": true, + "SkipConditions": { + "StepIf": { + "Flying": "Locked" + } + } + }, + { + "DataId": 1006751, + "Position": { + "X": -139.45221, + "Y": 8.712891, + "Z": 281.69678 + }, + "TerritoryId": 153, + "InteractionType": "CompleteQuest", + "NextQuestId": 1725 + } + ] + } + ] +} From abee323d2bf41a8bd3ce127b36b3881f757401df Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sun, 25 Aug 2024 13:45:57 +0200 Subject: [PATCH 065/450] Add IsUnmounting condition to UnmountTask --- Questionable/Controller/Steps/Common/Mount.cs | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/Questionable/Controller/Steps/Common/Mount.cs b/Questionable/Controller/Steps/Common/Mount.cs index 144de5ba..9502455c 100644 --- a/Questionable/Controller/Steps/Common/Mount.cs +++ b/Questionable/Controller/Steps/Common/Mount.cs @@ -29,7 +29,7 @@ internal static class Mount public ITask Unmount() { - return new UnmountTask(condition, loggerFactory.CreateLogger(), gameFunctions); + return new UnmountTask(condition, loggerFactory.CreateLogger(), gameFunctions, clientState); } } @@ -119,7 +119,11 @@ internal static class Mount public override string ToString() => "Mount"; } - private sealed class UnmountTask(ICondition condition, ILogger logger, GameFunctions gameFunctions) + private sealed class UnmountTask( + ICondition condition, + ILogger logger, + GameFunctions gameFunctions, + IClientState clientState) : ITask { private bool _unmountTriggered; @@ -148,6 +152,9 @@ internal static class Mount if (_continueAt >= DateTime.Now) return ETaskResult.StillRunning; + if (IsUnmounting()) + return ETaskResult.StillRunning; + if (!_unmountTriggered) { // if still flying, we still need to land @@ -172,6 +179,8 @@ internal static class Mount : ETaskResult.TaskComplete; } + private unsafe bool IsUnmounting() => **(byte**)(clientState.LocalPlayer!.Address + 1432) == 1; + public override string ToString() => "Unmount"; } From d310c9ff1bb259dcabad2f7ff2c1aa8ae3e3d560 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sun, 25 Aug 2024 14:45:08 +0200 Subject: [PATCH 066/450] Handle quests that are unlocked when a previous quest isn't complete yet --- Questionable/Data/QuestData.cs | 5 ++-- Questionable/Functions/QuestFunctions.cs | 17 +++++++++++- Questionable/Model/LeveInfo.cs | 4 +-- Questionable/Model/QuestInfo.cs | 27 ++++++++++++------- Questionable/Model/QuestInfoUtils.cs | 6 ++--- .../QuestComponents/QuestTooltipComponent.cs | 23 +++++++++++----- 6 files changed, 57 insertions(+), 25 deletions(-) diff --git a/Questionable/Data/QuestData.cs b/Questionable/Data/QuestData.cs index 3a5f64ac..c2a8aba3 100644 --- a/Questionable/Data/QuestData.cs +++ b/Questionable/Data/QuestData.cs @@ -8,7 +8,8 @@ using LLib.GameData; using Lumina.Excel.GeneratedSheets; using Questionable.Model; using Questionable.Model.Questing; -using Quest = Lumina.Excel.GeneratedSheets.Quest; +using Leve = Lumina.Excel.GeneratedSheets2.Leve; +using Quest = Lumina.Excel.GeneratedSheets2.Quest; namespace Questionable.Data; @@ -62,7 +63,7 @@ internal sealed class QuestData // workaround because the game doesn't require completion of the CT questline through normal means QuestInfo aTimeToEveryPurpose = (QuestInfo)_quests[new QuestId(425)]; - aTimeToEveryPurpose.AddPreviousQuest(new QuestId(495)); + aTimeToEveryPurpose.AddPreviousQuest(new QuestInfo.PreviousQuestInfo(new QuestId(495))); } public IQuestInfo GetQuestInfo(ElementId elementId) diff --git a/Questionable/Functions/QuestFunctions.cs b/Questionable/Functions/QuestFunctions.cs index 7e360cd6..15a2dec1 100644 --- a/Questionable/Functions/QuestFunctions.cs +++ b/Questionable/Functions/QuestFunctions.cs @@ -494,7 +494,8 @@ internal sealed unsafe class QuestFunctions if (questInfo.PreviousQuests.Count == 0) return true; - var completedQuests = questInfo.PreviousQuests.Count(x => IsQuestComplete(x) || x.Equals(extraCompletedQuest)); + var completedQuests = questInfo.PreviousQuests.Count(x => + HasEnoughProgressOnPreviousQuest(x) || x.QuestId.Equals(extraCompletedQuest)); if (questInfo.PreviousQuestJoin == QuestInfo.QuestJoin.All && questInfo.PreviousQuests.Count == completedQuests) return true; @@ -504,6 +505,20 @@ internal sealed unsafe class QuestFunctions return false; } + private bool HasEnoughProgressOnPreviousQuest(QuestInfo.PreviousQuestInfo previousQuestInfo) + { + if (IsQuestComplete(previousQuestInfo.QuestId)) + return true; + + if (previousQuestInfo.Sequence != 0 && IsQuestAccepted(previousQuestInfo.QuestId)) + { + var progress = GetQuestProgressInfo(previousQuestInfo.QuestId); + return progress != null && progress.Sequence >= previousQuestInfo.Sequence; + } + + return false; + } + private static bool HasCompletedPreviousInstances(QuestInfo questInfo) { if (questInfo.PreviousInstanceContent.Count == 0) diff --git a/Questionable/Model/LeveInfo.cs b/Questionable/Model/LeveInfo.cs index b446da9a..d50ac82e 100644 --- a/Questionable/Model/LeveInfo.cs +++ b/Questionable/Model/LeveInfo.cs @@ -1,6 +1,6 @@ using System.Collections.Generic; using LLib.GameData; -using Lumina.Excel.GeneratedSheets; +using Lumina.Excel.GeneratedSheets2; using Questionable.Model.Questing; namespace Questionable.Model; @@ -14,7 +14,7 @@ internal sealed class LeveInfo : IQuestInfo Level = leve.ClassJobLevel; JournalGenre = leve.JournalGenre.Row; SortKey = QuestId.Value; - IssuerDataId = leve.LevelLevemete.Value!.Object; + IssuerDataId = leve.LevelLevemete.Value!.Object.Row; ClassJobs = QuestInfoUtils.AsList(leve.ClassJobCategory.Value!); Expansion = (EExpansionVersion)leve.LevelLevemete.Value.Territory.Value!.ExVersion.Row; } diff --git a/Questionable/Model/QuestInfo.cs b/Questionable/Model/QuestInfo.cs index 2c9c2951..d78838fc 100644 --- a/Questionable/Model/QuestInfo.cs +++ b/Questionable/Model/QuestInfo.cs @@ -5,7 +5,7 @@ using FFXIVClientStructs.FFXIV.Client.UI.Agent; using JetBrains.Annotations; using LLib.GameData; using Questionable.Model.Questing; -using ExcelQuest = Lumina.Excel.GeneratedSheets.Quest; +using ExcelQuest = Lumina.Excel.GeneratedSheets2.Quest; namespace Questionable.Model; @@ -31,13 +31,18 @@ internal sealed class QuestInfo : IQuestInfo }; Name = $"{quest.Name}{suffix}"; - Level = quest.ClassJobLevel0; - IssuerDataId = quest.IssuerStart; + Level = quest.ClassJobLevel[0]; + IssuerDataId = quest.IssuerStart.Row; IsRepeatable = quest.IsRepeatable; - PreviousQuests = quest.PreviousQuest - .Select(x => new QuestId((ushort)(x.Row & 0xFFFF))) - .Where(x => x.Value != 0) - .ToImmutableList(); + 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[1].Row & 0xFFFF))) + } + .Where(x => x.QuestId.Value != 0) + .ToImmutableList(); PreviousQuestJoin = (QuestJoin)quest.PreviousQuestJoin; QuestLocks = quest.QuestLock .Select(x => new QuestId((ushort)(x.Row & 0xFFFFF))) @@ -47,7 +52,7 @@ internal sealed class QuestInfo : IQuestInfo JournalGenre = quest.JournalGenre?.Row; SortKey = quest.SortKey; IsMainScenarioQuest = quest.JournalGenre?.Value?.JournalCategory?.Value?.JournalSection?.Row is 0 or 1; - CompletesInstantly = quest.ToDoCompleteSeq[0] == 0; + CompletesInstantly = quest.TodoParams[0].ToDoCompleteSeq == 0; PreviousInstanceContent = quest.InstanceContent.Select(x => (ushort)x.Row).Where(x => x != 0).ToList(); PreviousInstanceContentJoin = (QuestJoin)quest.InstanceContentJoin; GrandCompany = (GrandCompany)quest.GrandCompany.Row; @@ -64,7 +69,7 @@ internal sealed class QuestInfo : IQuestInfo public ushort Level { get; } public uint IssuerDataId { get; } public bool IsRepeatable { get; } - public ImmutableList PreviousQuests { get; set; } + public ImmutableList PreviousQuests { get; set; } public QuestJoin PreviousQuestJoin { get; } public ImmutableList QuestLocks { get; } public QuestJoin QuestLockJoin { get; } @@ -89,8 +94,10 @@ internal sealed class QuestInfo : IQuestInfo AtLeastOne = 2, } - public void AddPreviousQuest(QuestId questId) + public void AddPreviousQuest(PreviousQuestInfo questId) { PreviousQuests = [..PreviousQuests, questId]; } + + public sealed record PreviousQuestInfo(QuestId QuestId, byte Sequence = 0); } diff --git a/Questionable/Model/QuestInfoUtils.cs b/Questionable/Model/QuestInfoUtils.cs index 68845884..4f44fd4a 100644 --- a/Questionable/Model/QuestInfoUtils.cs +++ b/Questionable/Model/QuestInfoUtils.cs @@ -1,7 +1,7 @@ using System.Collections.Generic; using System.Linq; using LLib.GameData; -using Lumina.Excel.GeneratedSheets; +using Lumina.Excel.GeneratedSheets2; namespace Questionable.Model; @@ -57,8 +57,8 @@ internal static class QuestInfoUtils { EClassJob.Dancer, classJobCategory.DNC }, { EClassJob.Reaper, classJobCategory.RPR }, { EClassJob.Sage, classJobCategory.SGE }, - { EClassJob.Viper, classJobCategory.VPR }, - { EClassJob.Pictomancer, classJobCategory.PCT } + { EClassJob.Viper, classJobCategory.Unknown1 }, + { EClassJob.Pictomancer, classJobCategory.Unknown2 } } .Where(y => y.Value) .Select(y => y.Key) diff --git a/Questionable/Windows/QuestComponents/QuestTooltipComponent.cs b/Questionable/Windows/QuestComponents/QuestTooltipComponent.cs index d181d45a..cda7636c 100644 --- a/Questionable/Windows/QuestComponents/QuestTooltipComponent.cs +++ b/Questionable/Windows/QuestComponents/QuestTooltipComponent.cs @@ -19,19 +19,22 @@ internal sealed class QuestTooltipComponent private readonly TerritoryData _territoryData; private readonly QuestFunctions _questFunctions; private readonly UiUtils _uiUtils; + private readonly Configuration _configuration; public QuestTooltipComponent( QuestRegistry questRegistry, QuestData questData, TerritoryData territoryData, QuestFunctions questFunctions, - UiUtils uiUtils) + UiUtils uiUtils, + Configuration configuration) { _questRegistry = questRegistry; _questData = questData; _territoryData = territoryData; _questFunctions = questFunctions; _uiUtils = uiUtils; + _configuration = configuration; } public void Draw(IQuestInfo quest) @@ -105,13 +108,13 @@ internal sealed class QuestTooltipComponent foreach (var q in quest.PreviousQuests) { - if (_questData.TryGetQuestInfo(q, out var qInfo)) + if (_questData.TryGetQuestInfo(q.QuestId, out var qInfo)) { - var (iconColor, icon, _) = _uiUtils.GetQuestStyle(q); + var (iconColor, icon, _) = _uiUtils.GetQuestStyle(q.QuestId); if (!_questRegistry.IsKnownQuest(qInfo.QuestId)) iconColor = ImGuiColors.DalamudGrey; - _uiUtils.ChecklistItem(FormatQuestUnlockName(qInfo), iconColor, icon); + _uiUtils.ChecklistItem(FormatQuestUnlockName(qInfo, _questFunctions.IsQuestComplete(q.QuestId) ? byte.MinValue : q.Sequence), iconColor, icon); if (qInfo is QuestInfo qstInfo && (counter <= 2 || icon != FontAwesomeIcon.Check)) DrawQuestUnlocks(qstInfo, counter + 1); @@ -188,11 +191,17 @@ internal sealed class QuestTooltipComponent ImGui.Unindent(); } - private static string FormatQuestUnlockName(IQuestInfo questInfo) + private string FormatQuestUnlockName(IQuestInfo questInfo, byte sequence = 0) { + string name = questInfo.Name; + if (_configuration.Advanced.AdditionalStatusInformation && sequence != 0) + name += $" {SeIconChar.ItemLevel.ToIconString()}"; + if (questInfo.IsMainScenarioQuest) - return $"{questInfo.Name} ({questInfo.QuestId}, MSQ)"; + name += $" ({questInfo.QuestId}, MSQ)"; else - return $"{questInfo.Name} ({questInfo.QuestId})"; + name += $" {questInfo.Name} ({questInfo.QuestId})"; + + return name; } } From ca4bc07eeb610ca020424750933ed55494f863f9 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sun, 25 Aug 2024 16:01:02 +0200 Subject: [PATCH 067/450] Allow weekly delivery turn-in while in duty queue --- Questionable/Functions/GameFunctions.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Questionable/Functions/GameFunctions.cs b/Questionable/Functions/GameFunctions.cs index fda0c60d..360e882d 100644 --- a/Questionable/Functions/GameFunctions.cs +++ b/Questionable/Functions/GameFunctions.cs @@ -431,7 +431,8 @@ internal sealed unsafe class GameFunctions if (!AgentSatisfactionSupply.Instance()->IsAgentActive()) return false; - var flags = _condition.AsReadOnlySet(); + var flags = _condition.AsReadOnlySet().ToHashSet(); + flags.Remove(ConditionFlag.InDutyQueue); // irrelevant return flags.Count == 2 && flags.Contains(ConditionFlag.NormalConditions) && flags.Contains(ConditionFlag.OccupiedInQuestEvent); From 0ac2fae4b960b2bd8946a4979772ff3e764874ce Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sun, 25 Aug 2024 16:24:54 +0200 Subject: [PATCH 068/450] Add default combat delay to all non-overworld enemy encounters --- Questionable/Controller/Steps/Interactions/Combat.cs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Questionable/Controller/Steps/Interactions/Combat.cs b/Questionable/Controller/Steps/Interactions/Combat.cs index 8776280a..10875126 100644 --- a/Questionable/Controller/Steps/Interactions/Combat.cs +++ b/Questionable/Controller/Steps/Interactions/Combat.cs @@ -41,6 +41,7 @@ internal static class Combat ArgumentNullException.ThrowIfNull(step.DataId); yield return interactFactory.Interact(step.DataId.Value, quest, EInteractionType.None, true); + yield return new WaitAtEnd.WaitDelay(TimeSpan.FromSeconds(2)); yield return CreateTask(quest, sequence, step); break; } @@ -52,11 +53,15 @@ internal static class Combat yield return useItemFactory.OnObject(quest.Id, step.DataId.Value, step.ItemId.Value, step.CompletionQuestVariablesFlags, true); + yield return new WaitAtEnd.WaitDelay(TimeSpan.FromSeconds(2)); yield return CreateTask(quest, sequence, step); break; } case EEnemySpawnType.AutoOnEnterArea: + if (step.CombatDelaySecondsAtStart == null) + yield return new WaitAtEnd.WaitDelay(TimeSpan.FromSeconds(2)); + // automatically triggered when entering area, i.e. only unmount yield return CreateTask(quest, sequence, step); break; From 6a15daa4e6c66e72ecabf9e470754cec5fc00d91 Mon Sep 17 00:00:00 2001 From: cacahuetes Date: Sun, 25 Aug 2024 15:50:27 +0000 Subject: [PATCH 069/450] Interact after combat was put into a separate sequence by accident --- .../1721_The Girl with the Dragon Tissue.json | 310 +++++++++--------- 1 file changed, 152 insertions(+), 158 deletions(-) diff --git a/QuestPaths/3.x - Heavensward/Class Quests/WHM/1721_The Girl with the Dragon Tissue.json b/QuestPaths/3.x - Heavensward/Class Quests/WHM/1721_The Girl with the Dragon Tissue.json index f825f825..54b94a98 100644 --- a/QuestPaths/3.x - Heavensward/Class Quests/WHM/1721_The Girl with the Dragon Tissue.json +++ b/QuestPaths/3.x - Heavensward/Class Quests/WHM/1721_The Girl with the Dragon Tissue.json @@ -1,158 +1,152 @@ -{ - "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "Cacahuetes", - "QuestSequence": [ - { - "Sequence": 0, - "Steps": [ - { - "DataId": 1013610, - "Position": { - "X": 209.21643, - "Y": 302, - "Z": -204.85242 - }, - "TerritoryId": 155, - "InteractionType": "AcceptQuest", - "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", - "SkipConditions": { - "AetheryteShortcutIf": { - "InSameTerritory": true - } - } - } - ] - }, - { - "Sequence": 1, - "Steps": [ - { - "DataId": 1013613, - "Position": { - "X": 479.91138, - "Y": 226.62401, - "Z": 817.0442 - }, - "TerritoryId": 397, - "InteractionType": "Interact", - "AetheryteShortcut": "Coerthas Western Highlands - Falcon's Nest" - } - ] - }, - { - "Sequence": 2, - "Steps": [ - { - "DataId": 1011232, - "Position": { - "X": 506.8589, - "Y": 217.95148, - "Z": 792.4772 - }, - "TerritoryId": 397, - "InteractionType": "Interact" - }, - { - "DataId": 1011237, - "Position": { - "X": 447.3181, - "Y": 212.53984, - "Z": 725.00183 - }, - "TerritoryId": 397, - "InteractionType": "Interact" - } - ] - }, - { - "Sequence": 3, - "Steps": [ - { - "DataId": 1013614, - "Position": { - "X": 463.5232, - "Y": 200.23772, - "Z": 651.911 - }, - "TerritoryId": 397, - "InteractionType": "Interact" - } - ] - }, - { - "Sequence": 4, - "Steps": [ - { - "DataId": 1013617, - "Position": { - "X": -513.0846, - "Y": 101.57904, - "Z": -653.3456 - }, - "TerritoryId": 397, - "InteractionType": "Interact", - "Fly": true - }, - { - "Position": { - "X": -336.4157, - "Y": 89.00586, - "Z": -586.5721 - }, - "TerritoryId": 397, - "InteractionType": "Combat", - "EnemySpawnType": "AutoOnEnterArea", - "KillEnemyDataIds": [4677] - } - ] - }, - - { - "Sequence": 5, - "Steps": [ - { - "DataId": 2005855, - "Position": { - "X": -336.4157, - "Y": 89.00586, - "Z": -586.5721 - }, - "TerritoryId": 397, - "InteractionType": "Interact" - } - ] - }, - { - "Sequence": 6, - "Steps": [ - { - "DataId": 1013618, - "Position": { - "X": -402.12103, - "Y": 90.9028, - "Z": -688.53284 - }, - "TerritoryId": 397, - "InteractionType": "Interact" - } - ] - }, - { - "Sequence": 255, - "Steps": [ - { - "DataId": 1013614, - "Position": { - "X": 463.5232, - "Y": 200.23772, - "Z": 651.911 - }, - "TerritoryId": 397, - "InteractionType": "CompleteQuest", - "AetheryteShortcut": "Coerthas Western Highlands - Falcon's Nest", - "NextQuestId": 1722 - } - ] - } - ] -} +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Cacahuetes", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1013610, + "Position": { + "X": 209.21643, + "Y": 302, + "Z": -204.85242 + }, + "TerritoryId": 155, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1013613, + "Position": { + "X": 479.91138, + "Y": 226.62401, + "Z": 817.0442 + }, + "TerritoryId": 397, + "InteractionType": "Interact", + "AetheryteShortcut": "Coerthas Western Highlands - Falcon's Nest" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1011232, + "Position": { + "X": 506.8589, + "Y": 217.95148, + "Z": 792.4772 + }, + "TerritoryId": 397, + "InteractionType": "Interact" + }, + { + "DataId": 1011237, + "Position": { + "X": 447.3181, + "Y": 212.53984, + "Z": 725.00183 + }, + "TerritoryId": 397, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1013614, + "Position": { + "X": 463.5232, + "Y": 200.23772, + "Z": 651.911 + }, + "TerritoryId": 397, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1013617, + "Position": { + "X": -513.0846, + "Y": 101.57904, + "Z": -653.3456 + }, + "TerritoryId": 397, + "InteractionType": "Interact", + "Fly": true + }, + { + "Position": { + "X": -336.4157, + "Y": 89.00586, + "Z": -586.5721 + }, + "TerritoryId": 397, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [4677] + }, + { + "DataId": 2005855, + "Position": { + "X": -336.4157, + "Y": 89.00586, + "Z": -586.5721 + }, + "TerritoryId": 397, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1013618, + "Position": { + "X": -402.12103, + "Y": 90.9028, + "Z": -688.53284 + }, + "TerritoryId": 397, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1013614, + "Position": { + "X": 463.5232, + "Y": 200.23772, + "Z": 651.911 + }, + "TerritoryId": 397, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Coerthas Western Highlands - Falcon's Nest", + "NextQuestId": 1722 + } + ] + } + ] +} From 5bfc60d6ed6c11070382e1a3dd2d3f980e719166 Mon Sep 17 00:00:00 2001 From: cacahuetes Date: Sun, 25 Aug 2024 15:53:43 +0000 Subject: [PATCH 070/450] Upload files to "QuestPaths/4.x - Stormblood/Class Quests/WHM" --- .../WHM/2414_Unease in East End.json | 155 ++++++++++++++++++ .../WHM/2415_An Aura for Trouble.json | 105 ++++++++++++ .../WHM/2416_A Beacon for Bad Things.json | 111 +++++++++++++ .../WHM/2417_The Problem with Padjals.json | 100 +++++++++++ .../WHM/2418_What She Always Wanted.json | 128 +++++++++++++++ 5 files changed, 599 insertions(+) create mode 100644 QuestPaths/4.x - Stormblood/Class Quests/WHM/2414_Unease in East End.json create mode 100644 QuestPaths/4.x - Stormblood/Class Quests/WHM/2415_An Aura for Trouble.json create mode 100644 QuestPaths/4.x - Stormblood/Class Quests/WHM/2416_A Beacon for Bad Things.json create mode 100644 QuestPaths/4.x - Stormblood/Class Quests/WHM/2417_The Problem with Padjals.json create mode 100644 QuestPaths/4.x - Stormblood/Class Quests/WHM/2418_What She Always Wanted.json diff --git a/QuestPaths/4.x - Stormblood/Class Quests/WHM/2414_Unease in East End.json b/QuestPaths/4.x - Stormblood/Class Quests/WHM/2414_Unease in East End.json new file mode 100644 index 00000000..34e97ad7 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/WHM/2414_Unease in East End.json @@ -0,0 +1,155 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Cacahuetes", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "Position": { + "X": -146.86935, + "Y": 8.006159, + "Z": 268.78055 + }, + "StopDistance": 0.25, + "TerritoryId": 153, + "AetheryteShortcut": "South Shroud - Camp Tranquil", + "InteractionType": "Jump", + "JumpDestination": { + "Position": { + "X": -137.77051, + "Y": 7.7094107, + "Z": 275.28036 + }, + "DelaySeconds": 0.75 + }, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + }, + "StepIf": { + "Flying": "Unlocked", + "NearPosition": { + "Position": { + "X": -139.45221, + "Y": 8.712891, + "Z": 281.69678 + }, + "MaximumDistance": 3 + } + } + } + }, + { + "Position": { + "X": -139.04318, + "Y": 8.522301, + "Z": 280.0128 + }, + "TerritoryId": 153, + "InteractionType": "WalkTo", + "Fly": true, + "SkipConditions": { + "StepIf": { + "Flying": "Locked" + } + } + }, + { + "DataId": 1006751, + "Position": { + "X": -139.45221, + "Y": 8.712891, + "Z": 281.69678 + }, + "TerritoryId": 153, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "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": 2, + "Steps": [ + { + "DataId": 1018744, + "Position": { + "X": 87.96814, + "Y": 5.9457893, + "Z": 490.56213 + }, + "TerritoryId": 152, + "InteractionType": "Interact", + "AetheryteShortcut": "East Shroud - Hawthorne Hut" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1018746, + "Position": { + "X": -651.3619, + "Y": 130, + "Z": -527.8248 + }, + "TerritoryId": 612, + "InteractionType": "Interact", + "AetheryteShortcut": "Fringes - Castrum Oriens" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 2007687, + "Position": { + "X": -640.8331, + "Y": 120.3479, + "Z": -291.52362 + }, + "TerritoryId": 612, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1018752, + "Position": { + "X": -622.5834, + "Y": 130.26505, + "Z": -473.7469 + }, + "TerritoryId": 612, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Fringes - Castrum Oriens", + "NextQuestId": 2415 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Class Quests/WHM/2415_An Aura for Trouble.json b/QuestPaths/4.x - Stormblood/Class Quests/WHM/2415_An Aura for Trouble.json new file mode 100644 index 00000000..195ca167 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/WHM/2415_An Aura for Trouble.json @@ -0,0 +1,105 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Cacahuetes", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1018753, + "Position": { + "X": -623.621, + "Y": 130.24214, + "Z": -474.72345 + }, + "TerritoryId": 612, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Fringes - Castrum Oriens", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1018757, + "Position": { + "X": -437.2168, + "Y": 73.07981, + "Z": -100.23657 + }, + "TerritoryId": 612, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": -586.0533, + "Y": 54.95936, + "Z": 204.82178 + }, + "TerritoryId": 612, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [7214] + }, + { + "DataId": 1018758, + "Position": { + "X": -586.0533, + "Y": 54.95936, + "Z": 204.82178 + }, + "TerritoryId": 612, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "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": 255, + "Steps": [ + { + "DataId": 1018753, + "Position": { + "X": -623.621, + "Y": 130.24214, + "Z": -474.72345 + }, + "TerritoryId": 612, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Fringes - Castrum Oriens", + "NextQuestId": 2416 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Class Quests/WHM/2416_A Beacon for Bad Things.json b/QuestPaths/4.x - Stormblood/Class Quests/WHM/2416_A Beacon for Bad Things.json new file mode 100644 index 00000000..cb49dcfe --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/WHM/2416_A Beacon for Bad Things.json @@ -0,0 +1,111 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Cacahuetes", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1018753, + "Position": { + "X": -623.621, + "Y": 130.24214, + "Z": -474.72345 + }, + "TerritoryId": 612, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Fringes - Castrum Oriens", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2007711, + "Position": { + "X": -488.0293, + "Y": 50.94983, + "Z": 86.96118 + }, + "TerritoryId": 612, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2007712, + "Position": { + "X": -461.63123, + "Y": 57.14502, + "Z": 186.08374 + }, + "TerritoryId": 612, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2007713, + "Position": { + "X": -529.9306, + "Y": 36.88098, + "Z": 451.16345 + }, + "TerritoryId": 612, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1019090, + "Position": { + "X": -638.3002, + "Y": 38.30705, + "Z": 374.92932 + }, + "TerritoryId": 612, + "InteractionType": "SinglePlayerDuty" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1018753, + "Position": { + "X": -623.621, + "Y": 130.24214, + "Z": -474.72345 + }, + "TerritoryId": 612, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Fringes - Castrum Oriens", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_JOBWHM650_02416_Q1_000_000", + "Answer": "TEXT_JOBWHM650_02416_A1_000_001" + } + ], + "NextQuestId": 2417 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Class Quests/WHM/2417_The Problem with Padjals.json b/QuestPaths/4.x - Stormblood/Class Quests/WHM/2417_The Problem with Padjals.json new file mode 100644 index 00000000..12c95bf9 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/WHM/2417_The Problem with Padjals.json @@ -0,0 +1,100 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Cacahuetes", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1018753, + "Position": { + "X": -623.621, + "Y": 130.24214, + "Z": -474.72345 + }, + "TerritoryId": 612, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Fringes - Castrum Oriens", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1019125, + "Position": { + "X": -651.81964, + "Y": 40.067055, + "Z": 370.80945 + }, + "TerritoryId": 612, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": -175.06683, + "Y": 59.779804, + "Z": -558.8312 + }, + "TerritoryId": 612, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [7215], + "AetheryteShortcut": "Fringes - Castrum Oriens" + }, + { + "DataId": 1019128, + "Position": { + "X": -175.06683, + "Y": 59.779804, + "Z": -558.8312 + }, + "TerritoryId": 612, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1019131, + "Position": { + "X": -663.7522, + "Y": 43.594555, + "Z": 363.75977 + }, + "TerritoryId": 612, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1019132, + "Position": { + "X": -655.02405, + "Y": 40.43195, + "Z": 375.96704 + }, + "TerritoryId": 612, + "InteractionType": "CompleteQuest", + "NextQuestId": 2418 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Class Quests/WHM/2418_What She Always Wanted.json b/QuestPaths/4.x - Stormblood/Class Quests/WHM/2418_What She Always Wanted.json new file mode 100644 index 00000000..53a0fd4f --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/WHM/2418_What She Always Wanted.json @@ -0,0 +1,128 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Cacahuetes", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1019132, + "Position": { + "X": -655.02405, + "Y": 40.43195, + "Z": 375.96704 + }, + "TerritoryId": 612, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Fringes - Castrum Oriens", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1018759, + "Position": { + "X": -636.8048, + "Y": 130, + "Z": -528.6183 + }, + "TerritoryId": 612, + "InteractionType": "Interact", + "AetheryteShortcut": "Fringes - Castrum Oriens" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1019130, + "Position": { + "X": -665.3696, + "Y": 43.594574, + "Z": 364.40063 + }, + "TerritoryId": 612, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1019130, + "Position": { + "X": -665.3696, + "Y": 43.594574, + "Z": 364.40063 + }, + "TerritoryId": 612, + "InteractionType": "Emote", + "Emote": "soothe", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_JOBWHM700_02418_Q1_000_000", + "Answer": "TEXT_JOBWHM700_02418_A1_000_001" + } + ] + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "Position": { + "X": -381.88757, + "Y": 40.283813, + "Z": 484.82483 + }, + "TerritoryId": 612, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [7216] + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1019127, + "Position": { + "X": -381.88757, + "Y": 40.283813, + "Z": 484.82483 + }, + "TerritoryId": 612, + "InteractionType": "UseItem", + "ItemId": 2002053 + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1019588, + "Position": { + "X": -382.71155, + "Y": 40.275818, + "Z": 484.36694 + }, + "TerritoryId": 612, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} From 6eddca69312787e3aa60e5bccde8575488163abb Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sun, 25 Aug 2024 19:23:15 +0200 Subject: [PATCH 071/450] Pick up DT aether current quests (first four zones) during the MSQ --- .../SkipConditionsExtensions.cs | 4 ++ ...All Good Potpacts Must Come to an End.json | 3 +- .../Shaaloani/5138_Rroneek Seeker.json | 9 +++ .../5140_When the Bill Comes Due.json | 24 +++++++- .../5094_Secrets in the Cinderfield.json | 11 ++++ .../4868_A Well-mannered Shipwright.json | 18 ++++-- .../4870_Knowing the Hanuhanu.json | 24 +++++++- .../4872_Traders of Happiness.json | 10 ++-- .../4877_Knowing the Pelupelu.json | 24 ++++++++ .../4878_The Success of Others.json | 2 +- .../4879_For All Turali.json | 1 + .../4884_The Shape of Peace.json | 22 +++++++ .../4889_History's Keepers.json | 7 ++- .../4896_The Promise of Peace.json | 24 ++++++++ .../C-Yak T'el/4903_Into the Traverse.json | 55 ++++++++++-------- .../4909_Road to the Golden City.json | 22 +++++++ .../4919_And the Land Would Tremble.json | 57 +++++++++++++++++++ .../4923_In Yyasulani's Shadow.json | 11 ++++ QuestPaths/quest-v1.json | 16 +++++- .../Converter/ElementIdListConverter.cs | 36 ++++++++++++ .../Questing/SkipAetheryteCondition.cs | 9 +++ .../Questing/SkipStepConditions.cs | 7 +++ .../Steps/Shared/AethernetShortcut.cs | 20 ++++++- .../Steps/Shared/AetheryteShortcut.cs | 15 +++++ 24 files changed, 387 insertions(+), 44 deletions(-) create mode 100644 Questionable.Model/Questing/Converter/ElementIdListConverter.cs diff --git a/QuestPathGenerator/RoslynElements/SkipConditionsExtensions.cs b/QuestPathGenerator/RoslynElements/SkipConditionsExtensions.cs index 87d5e0a2..6307020f 100644 --- a/QuestPathGenerator/RoslynElements/SkipConditionsExtensions.cs +++ b/QuestPathGenerator/RoslynElements/SkipConditionsExtensions.cs @@ -128,6 +128,10 @@ internal static class SkipConditionsExtensions skipAetheryteCondition.InSameTerritory, emptyAetheryte.InSameTerritory), AssignmentList(nameof(SkipAetheryteCondition.InTerritory), skipAetheryteCondition.InTerritory), + AssignmentList(nameof(SkipAetheryteCondition.QuestsAccepted), + skipAetheryteCondition.QuestsAccepted), + AssignmentList(nameof(skipAetheryteCondition.QuestsCompleted), + skipAetheryteCondition.QuestsCompleted), Assignment(nameof(SkipAetheryteCondition.AetheryteLocked), skipAetheryteCondition.AetheryteLocked, emptyAetheryte.AetheryteLocked) .AsSyntaxNodeOrToken(), diff --git a/QuestPaths/7.x - Dawntrail/Aether Currents/Kozama'uka/5085_All Good Potpacts Must Come to an End.json b/QuestPaths/7.x - Dawntrail/Aether Currents/Kozama'uka/5085_All Good Potpacts Must Come to an End.json index dfb62125..8e4b42da 100644 --- a/QuestPaths/7.x - Dawntrail/Aether Currents/Kozama'uka/5085_All Good Potpacts Must Come to an End.json +++ b/QuestPaths/7.x - Dawntrail/Aether Currents/Kozama'uka/5085_All Good Potpacts Must Come to an End.json @@ -102,7 +102,8 @@ "Z": 342.85498 }, "TerritoryId": 1188, - "InteractionType": "CompleteQuest" + "InteractionType": "CompleteQuest", + "Mount": true } ] } diff --git a/QuestPaths/7.x - Dawntrail/Aether Currents/Shaaloani/5138_Rroneek Seeker.json b/QuestPaths/7.x - Dawntrail/Aether Currents/Shaaloani/5138_Rroneek Seeker.json index 9db9564a..92d92c8f 100644 --- a/QuestPaths/7.x - Dawntrail/Aether Currents/Shaaloani/5138_Rroneek Seeker.json +++ b/QuestPaths/7.x - Dawntrail/Aether Currents/Shaaloani/5138_Rroneek Seeker.json @@ -20,6 +20,15 @@ { "Sequence": 1, "Steps": [ + { + "Position": { + "X": 323.5058, + "Y": -16.330368, + "Z": -254.18399 + }, + "TerritoryId": 1190, + "InteractionType": "WalkTo" + }, { "DataId": 1050656, "Position": { diff --git a/QuestPaths/7.x - Dawntrail/Aether Currents/Shaaloani/5140_When the Bill Comes Due.json b/QuestPaths/7.x - Dawntrail/Aether Currents/Shaaloani/5140_When the Bill Comes Due.json index 49204d8c..912043e1 100644 --- a/QuestPaths/7.x - Dawntrail/Aether Currents/Shaaloani/5140_When the Bill Comes Due.json +++ b/QuestPaths/7.x - Dawntrail/Aether Currents/Shaaloani/5140_When the Bill Comes Due.json @@ -28,7 +28,8 @@ "Z": 427.2068 }, "TerritoryId": 1190, - "InteractionType": "Interact" + "InteractionType": "Interact", + "Mount": true } ] }, @@ -50,6 +51,27 @@ { "Sequence": 3, "Steps": [ + { + "Position": { + "X": 369.3906, + "Y": 5.9371996, + "Z": 417.16574 + }, + "TerritoryId": 1190, + "InteractionType": "WalkTo", + "$": "Shaaloani Hhusatahwi Saloon Stairs (top)" + }, + { + "Position": { + "X": 359.11545, + "Y": 1.9823306, + "Z": 419.5714 + }, + "TerritoryId": 1190, + "InteractionType": "WalkTo", + "$": "Shaaloani Hhusatahwi Saloon Stairs (bottom)", + "DisableNavmesh": true + }, { "DataId": 1051286, "Position": { diff --git a/QuestPaths/7.x - Dawntrail/Aether Currents/Yak T'el/5094_Secrets in the Cinderfield.json b/QuestPaths/7.x - Dawntrail/Aether Currents/Yak T'el/5094_Secrets in the Cinderfield.json index 4357cd5d..a3e6ab87 100644 --- a/QuestPaths/7.x - Dawntrail/Aether Currents/Yak T'el/5094_Secrets in the Cinderfield.json +++ b/QuestPaths/7.x - Dawntrail/Aether Currents/Yak T'el/5094_Secrets in the Cinderfield.json @@ -174,6 +174,17 @@ { "Sequence": 255, "Steps": [ + { + "DataId": 2013948, + "Position": { + "X": 610.7728, + "Y": 9.597839, + "Z": 233.05103 + }, + "TerritoryId": 1189, + "InteractionType": "AttuneAetherCurrent", + "AetherCurrentId": 2818440 + }, { "DataId": 1051073, "Position": { diff --git a/QuestPaths/7.x - Dawntrail/MSQ/A-Kozama'uka1-Urqopacha1/4868_A Well-mannered Shipwright.json b/QuestPaths/7.x - Dawntrail/MSQ/A-Kozama'uka1-Urqopacha1/4868_A Well-mannered Shipwright.json index 4a550c01..28bd626b 100644 --- a/QuestPaths/7.x - Dawntrail/MSQ/A-Kozama'uka1-Urqopacha1/4868_A Well-mannered Shipwright.json +++ b/QuestPaths/7.x - Dawntrail/MSQ/A-Kozama'uka1-Urqopacha1/4868_A Well-mannered Shipwright.json @@ -151,13 +151,21 @@ "Steps": [ { "Position": { - "X": -510.96463, - "Y": -0.47684515, - "Z": -305.96155 + "X": -510.37933, + "Y": -0.39999998, + "Z": -277.78192 }, "TerritoryId": 1188, - "InteractionType": "WalkTo", - "Comment": "Waypoint after swimming through the river" + "InteractionType": "WalkTo" + }, + { + "Position": { + "X": -521.0261, + "Y": -0.40000004, + "Z": -329.19336 + }, + "TerritoryId": 1188, + "InteractionType": "WalkTo" }, { "DataId": 2013936, diff --git a/QuestPaths/7.x - Dawntrail/MSQ/A-Kozama'uka1-Urqopacha1/4870_Knowing the Hanuhanu.json b/QuestPaths/7.x - Dawntrail/MSQ/A-Kozama'uka1-Urqopacha1/4870_Knowing the Hanuhanu.json index 83eb0953..d54e499a 100644 --- a/QuestPaths/7.x - Dawntrail/MSQ/A-Kozama'uka1-Urqopacha1/4870_Knowing the Hanuhanu.json +++ b/QuestPaths/7.x - Dawntrail/MSQ/A-Kozama'uka1-Urqopacha1/4870_Knowing the Hanuhanu.json @@ -12,7 +12,7 @@ "Y": 9.773315, "Z": -533.135 }, - "StopDistance": 5, + "StopDistance": 7, "TerritoryId": 1188, "InteractionType": "AcceptQuest" } @@ -135,6 +135,28 @@ { "Sequence": 255, "Steps": [ + { + "DataId": 1048782, + "Position": { + "X": -68.52832, + "Y": 6.536739, + "Z": -486.53394 + }, + "TerritoryId": 1188, + "InteractionType": "AcceptQuest", + "PickUpQuestId": 5064 + }, + { + "DataId": 1051237, + "Position": { + "X": -251.20929, + "Y": 5.5572896, + "Z": -554.89435 + }, + "TerritoryId": 1188, + "InteractionType": "AcceptQuest", + "PickUpQuestId": 5081 + }, { "DataId": 1046537, "Position": { diff --git a/QuestPaths/7.x - Dawntrail/MSQ/A-Kozama'uka1-Urqopacha1/4872_Traders of Happiness.json b/QuestPaths/7.x - Dawntrail/MSQ/A-Kozama'uka1-Urqopacha1/4872_Traders of Happiness.json index 7ce2e342..d1e8367e 100644 --- a/QuestPaths/7.x - Dawntrail/MSQ/A-Kozama'uka1-Urqopacha1/4872_Traders of Happiness.json +++ b/QuestPaths/7.x - Dawntrail/MSQ/A-Kozama'uka1-Urqopacha1/4872_Traders of Happiness.json @@ -21,6 +21,11 @@ { "Sequence": 1, "Steps": [ + { + "TerritoryId": 1187, + "InteractionType": "AttuneAetheryte", + "Aetheryte": "Urqopacha - Wachunpelo" + }, { "DataId": 1046557, "Position": { @@ -39,11 +44,6 @@ 128 ] }, - { - "TerritoryId": 1187, - "InteractionType": "AttuneAetheryte", - "Aetheryte": "Urqopacha - Wachunpelo" - }, { "DataId": 1046559, "Position": { diff --git a/QuestPaths/7.x - Dawntrail/MSQ/A-Kozama'uka1-Urqopacha1/4877_Knowing the Pelupelu.json b/QuestPaths/7.x - Dawntrail/MSQ/A-Kozama'uka1-Urqopacha1/4877_Knowing the Pelupelu.json index 7166e4a6..879ca750 100644 --- a/QuestPaths/7.x - Dawntrail/MSQ/A-Kozama'uka1-Urqopacha1/4877_Knowing the Pelupelu.json +++ b/QuestPaths/7.x - Dawntrail/MSQ/A-Kozama'uka1-Urqopacha1/4877_Knowing the Pelupelu.json @@ -52,6 +52,30 @@ { "Sequence": 255, "Steps": [ + { + "DataId": 1050684, + "Position": { + "X": 391.37854, + "Y": -156.07434, + "Z": -388.50995 + }, + "TerritoryId": 1187, + "InteractionType": "AcceptQuest", + "PickUpQuestId": 5039, + "Comment": "Traveler to the Rescue" + }, + { + "DataId": 1051195, + "Position": { + "X": 383.29138, + "Y": -154.50243, + "Z": -420.49292 + }, + "TerritoryId": 1187, + "InteractionType": "AcceptQuest", + "PickUpQuestId": 5051, + "Comment": "Crisis of Corruption" + }, { "DataId": 1046537, "Position": { diff --git a/QuestPaths/7.x - Dawntrail/MSQ/A-Kozama'uka1-Urqopacha1/4878_The Success of Others.json b/QuestPaths/7.x - Dawntrail/MSQ/A-Kozama'uka1-Urqopacha1/4878_The Success of Others.json index 3d40ae97..b6f50a5c 100644 --- a/QuestPaths/7.x - Dawntrail/MSQ/A-Kozama'uka1-Urqopacha1/4878_The Success of Others.json +++ b/QuestPaths/7.x - Dawntrail/MSQ/A-Kozama'uka1-Urqopacha1/4878_The Success of Others.json @@ -100,7 +100,7 @@ "Y": -19.725424, "Z": 203.72314 }, - "StopDistance": 5, + "StopDistance": 7, "TerritoryId": 1185, "InteractionType": "CompleteQuest" } 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 7c803180..9a983943 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 @@ -15,6 +15,7 @@ "Y": -19.725424, "Z": 203.72314 }, + "StopDistance": 7, "TerritoryId": 1185, "InteractionType": "AcceptQuest" } diff --git a/QuestPaths/7.x - Dawntrail/MSQ/B-Kozama'uka2-Urqopacha2/4884_The Shape of Peace.json b/QuestPaths/7.x - Dawntrail/MSQ/B-Kozama'uka2-Urqopacha2/4884_The Shape of Peace.json index e5d6be1e..32e96d54 100644 --- a/QuestPaths/7.x - Dawntrail/MSQ/B-Kozama'uka2-Urqopacha2/4884_The Shape of Peace.json +++ b/QuestPaths/7.x - Dawntrail/MSQ/B-Kozama'uka2-Urqopacha2/4884_The Shape of Peace.json @@ -63,6 +63,28 @@ { "Sequence": 3, "Steps": [ + { + "DataId": 1051263, + "Position": { + "X": -521.0193, + "Y": 121.63345, + "Z": 319.38647 + }, + "TerritoryId": 1188, + "InteractionType": "AcceptQuest", + "PickUpQuestId": 5085 + }, + { + "DataId": 1048855, + "Position": { + "X": -491.63043, + "Y": 121.63846, + "Z": 271.50366 + }, + "TerritoryId": 1188, + "InteractionType": "AcceptQuest", + "PickUpQuestId": 5074 + }, { "DataId": 1046876, "Position": { diff --git a/QuestPaths/7.x - Dawntrail/MSQ/B-Kozama'uka2-Urqopacha2/4889_History's Keepers.json b/QuestPaths/7.x - Dawntrail/MSQ/B-Kozama'uka2-Urqopacha2/4889_History's Keepers.json index eb22764c..60df9000 100644 --- a/QuestPaths/7.x - Dawntrail/MSQ/B-Kozama'uka2-Urqopacha2/4889_History's Keepers.json +++ b/QuestPaths/7.x - Dawntrail/MSQ/B-Kozama'uka2-Urqopacha2/4889_History's Keepers.json @@ -12,6 +12,7 @@ "Y": 119.49004, "Z": 190.72253 }, + "StopDistance": 5, "TerritoryId": 1188, "InteractionType": "AcceptQuest" } @@ -29,7 +30,8 @@ }, "TerritoryId": 1188, "InteractionType": "Interact", - "AetheryteShortcut": "Kozama'uka - Earthenshire" + "AetheryteShortcut": "Kozama'uka - Earthenshire", + "Fly": true } ] }, @@ -44,7 +46,8 @@ }, "TerritoryId": 1188, "InteractionType": "WalkTo", - "TargetTerritoryId": 1187 + "TargetTerritoryId": 1187, + "Fly": true }, { "DataId": 1046814, diff --git a/QuestPaths/7.x - Dawntrail/MSQ/B-Kozama'uka2-Urqopacha2/4896_The Promise of Peace.json b/QuestPaths/7.x - Dawntrail/MSQ/B-Kozama'uka2-Urqopacha2/4896_The Promise of Peace.json index 300238e9..03eed811 100644 --- a/QuestPaths/7.x - Dawntrail/MSQ/B-Kozama'uka2-Urqopacha2/4896_The Promise of Peace.json +++ b/QuestPaths/7.x - Dawntrail/MSQ/B-Kozama'uka2-Urqopacha2/4896_The Promise of Peace.json @@ -21,6 +21,30 @@ { "Sequence": 1, "Steps": [ + { + "DataId": 1051207, + "Position": { + "X": 425.07043, + "Y": 118.935005, + "Z": 606.13403 + }, + "StopDistance": 5, + "TerritoryId": 1187, + "InteractionType": "AcceptQuest", + "PickUpQuestId": 5055 + }, + { + "DataId": 1048730, + "Position": { + "X": 399.0692, + "Y": 122.53533, + "Z": 542.9922 + }, + "StopDistance": 5, + "TerritoryId": 1187, + "InteractionType": "AcceptQuest", + "PickUpQuestId": 5047 + }, { "DataId": 1046926, "Position": { diff --git a/QuestPaths/7.x - Dawntrail/MSQ/C-Yak T'el/4903_Into the Traverse.json b/QuestPaths/7.x - Dawntrail/MSQ/C-Yak T'el/4903_Into the Traverse.json index 52a6b9a8..f6cca46e 100644 --- a/QuestPaths/7.x - Dawntrail/MSQ/C-Yak T'el/4903_Into the Traverse.json +++ b/QuestPaths/7.x - Dawntrail/MSQ/C-Yak T'el/4903_Into the Traverse.json @@ -21,6 +21,36 @@ { "Sequence": 1, "Steps": [ + { + "DataId": 1050872, + "Position": { + "X": -408.71295, + "Y": 20.420113, + "Z": -398.8861 + }, + "TerritoryId": 1189, + "InteractionType": "AcceptQuest", + "DialogueChoices": [ + { + "Type": "List", + "ExcelSheet": "quest/051/KinGzd201_05110", + "Prompt": "TEXT_KINGZD201_05110_Q1_000_000", + "Answer": "TEXT_KINGZD201_05110_A1_000_001" + } + ], + "PickUpQuestId": 5110 + }, + { + "DataId": 1051073, + "Position": { + "X": 41.09253, + "Y": 8.205902, + "Z": -629.8467 + }, + "TerritoryId": 1189, + "InteractionType": "AcceptQuest", + "PickUpQuestId": 5094 + }, { "DataId": 1047577, "Position": { @@ -36,28 +66,6 @@ { "Sequence": 2, "Steps": [ - { - "DataId": 2013948, - "Position": { - "X": 610.7728, - "Y": 9.597839, - "Z": 233.05103 - }, - "TerritoryId": 1189, - "InteractionType": "AttuneAetherCurrent", - "AetherCurrentId": 2818440 - }, - { - "Position": { - "X": 614.25964, - "Y": -29.554798, - "Z": 202.75368 - }, - "TerritoryId": 1189, - "InteractionType": "WalkTo", - "DisableNavmesh": true, - "Mount": false - }, { "DataId": 1048230, "Position": { @@ -66,8 +74,7 @@ "Z": 214.83167 }, "TerritoryId": 1189, - "InteractionType": "Interact", - "DisableNavmesh": true + "InteractionType": "Interact" } ] }, 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 c959a428..39387ac5 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 @@ -24,6 +24,28 @@ { "Sequence": 1, "Steps": [ + { + "DataId": 1051052, + "Position": { + "X": 585.90063, + "Y": -142.49187, + "Z": 510.21594 + }, + "TerritoryId": 1189, + "InteractionType": "AcceptQuest", + "PickUpQuestId": 5103 + }, + { + "DataId": 1050884, + "Position": { + "X": 531.0597, + "Y": -142.49185, + "Z": 492.0271 + }, + "TerritoryId": 1189, + "InteractionType": "AcceptQuest", + "PickUpQuestId": 5114 + }, { "DataId": 1047701, "Position": { diff --git a/QuestPaths/7.x - Dawntrail/MSQ/D-Shaaloani-HeritageFound1/4919_And the Land Would Tremble.json b/QuestPaths/7.x - Dawntrail/MSQ/D-Shaaloani-HeritageFound1/4919_And the Land Would Tremble.json index 16c8605f..30d005a1 100644 --- a/QuestPaths/7.x - Dawntrail/MSQ/D-Shaaloani-HeritageFound1/4919_And the Land Would Tremble.json +++ b/QuestPaths/7.x - Dawntrail/MSQ/D-Shaaloani-HeritageFound1/4919_And the Land Would Tremble.json @@ -52,6 +52,62 @@ { "Sequence": 3, "Steps": [ + { + "DataId": 1050655, + "Position": { + "X": 289.02112, + "Y": -15.566031, + "Z": -478.78235 + }, + "TerritoryId": 1190, + "InteractionType": "AcceptQuest", + "PickUpQuestId": 5138 + }, + { + "Position": { + "X": 386.84927, + "Y": -0.84392637, + "Z": 435.0579 + }, + "TerritoryId": 1190, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Shaaloani - Hhusatahwi", + "SkipConditions": { + "StepIf": { + "QuestsCompleted": [ + 5140 + ] + }, + "AetheryteShortcutIf": { + "QuestsCompleted": [ + 5140 + ] + } + } + }, + { + "DataId": 1051283, + "Position": { + "X": 374.19702, + "Y": -0.24794838, + "Z": 437.2472 + }, + "StopDistance": 6, + "TerritoryId": 1190, + "InteractionType": "AcceptQuest", + "PickUpQuestId": 5140 + }, + { + "DataId": 1049324, + "Position": { + "X": -108.659546, + "Y": 4.055336, + "Z": 319.5697 + }, + "TerritoryId": 1190, + "InteractionType": "AcceptQuest", + "PickUpQuestId": 5130 + }, { "DataId": 1047001, "Position": { @@ -61,6 +117,7 @@ }, "TerritoryId": 1190, "InteractionType": "Interact", + "AetheryteShortcut": "Shaaloani - Sheshenewezi Springs", "DialogueChoices": [ { "Type": "YesNo", 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 edaedfc9..1bf3b839 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 @@ -161,6 +161,17 @@ { "Sequence": 7, "Steps": [ + { + "DataId": 1051316, + "Position": { + "X": -380.30066, + "Y": 18.718708, + "Z": -114.24432 + }, + "TerritoryId": 1190, + "InteractionType": "AcceptQuest", + "PickUpQuestId": 5144 + }, { "DataId": 1047082, "Position": { diff --git a/QuestPaths/quest-v1.json b/QuestPaths/quest-v1.json index ff535a8f..93efd3c0 100644 --- a/QuestPaths/quest-v1.json +++ b/QuestPaths/quest-v1.json @@ -234,13 +234,13 @@ "QuestsAccepted": { "type": "array", "items": { - "type": "number" + "type": ["number", "string"] } }, "QuestsCompleted": { "type": "array", "items": { - "type": "number" + "type": ["number", "string"] } }, "AetheryteLocked": { @@ -290,6 +290,18 @@ "type": "integer" } }, + "QuestsAccepted": { + "type": "array", + "items": { + "type": ["number", "string"] + } + }, + "QuestsCompleted": { + "type": "array", + "items": { + "type": ["number", "string"] + } + }, "AetheryteLocked": { "$ref": "https://git.carvel.li/liza/Questionable/raw/branch/master/Questionable.Model/common-schema.json#/$defs/Aetheryte" }, diff --git a/Questionable.Model/Questing/Converter/ElementIdListConverter.cs b/Questionable.Model/Questing/Converter/ElementIdListConverter.cs new file mode 100644 index 00000000..25dd688d --- /dev/null +++ b/Questionable.Model/Questing/Converter/ElementIdListConverter.cs @@ -0,0 +1,36 @@ +using System; +using System.Collections.Generic; +using System.Text.Json; +using System.Text.Json.Serialization; + +namespace Questionable.Model.Questing.Converter; + +public sealed class ElementIdListConverter : JsonConverter> +{ + public override List Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) + { + if (reader.TokenType != JsonTokenType.StartArray) + throw new JsonException(); + + reader.Read(); + + List values = []; + while (reader.TokenType != JsonTokenType.EndArray) + { + + if (reader.TokenType == JsonTokenType.Number) + values.Add(new QuestId(reader.GetUInt16())); + else + values.Add(ElementId.FromString(reader.GetString() ?? throw new JsonException())); + + reader.Read(); + } + + return values; + } + + public override void Write(Utf8JsonWriter writer, List value, JsonSerializerOptions options) + { + throw new NotImplementedException(); + } +} diff --git a/Questionable.Model/Questing/SkipAetheryteCondition.cs b/Questionable.Model/Questing/SkipAetheryteCondition.cs index 573c3e2e..70e13474 100644 --- a/Questionable.Model/Questing/SkipAetheryteCondition.cs +++ b/Questionable.Model/Questing/SkipAetheryteCondition.cs @@ -1,5 +1,7 @@ using System.Collections.Generic; +using System.Text.Json.Serialization; using Questionable.Model.Common; +using Questionable.Model.Questing.Converter; namespace Questionable.Model.Questing; @@ -8,6 +10,13 @@ public sealed class SkipAetheryteCondition public bool Never { get; set; } public bool InSameTerritory { get; set; } public List InTerritory { get; set; } = new(); + + [JsonConverter(typeof(ElementIdListConverter))] + public List QuestsAccepted { get; set; } = new(); + + [JsonConverter(typeof(ElementIdListConverter))] + public List QuestsCompleted { get; set; } = new(); + public EAetheryteLocation? AetheryteLocked { get; set; } public EAetheryteLocation? AetheryteUnlocked { get; set; } public bool RequiredQuestVariablesNotMet { get; set; } diff --git a/Questionable.Model/Questing/SkipStepConditions.cs b/Questionable.Model/Questing/SkipStepConditions.cs index 323a0dc0..bfb8fcfc 100644 --- a/Questionable.Model/Questing/SkipStepConditions.cs +++ b/Questionable.Model/Questing/SkipStepConditions.cs @@ -1,6 +1,8 @@ using System.Collections.Generic; using System.Linq; +using System.Text.Json.Serialization; using Questionable.Model.Common; +using Questionable.Model.Questing.Converter; namespace Questionable.Model.Questing; @@ -14,8 +16,13 @@ public sealed class SkipStepConditions public List InTerritory { get; set; } = new(); public List NotInTerritory { get; set; } = new(); public SkipItemConditions? Item { get; set; } + + [JsonConverter(typeof(ElementIdListConverter))] public List QuestsAccepted { get; set; } = new(); + + [JsonConverter(typeof(ElementIdListConverter))] public List QuestsCompleted { get; set; } = new(); + public EAetheryteLocation? AetheryteLocked { get; set; } public EAetheryteLocation? AetheryteUnlocked { get; set; } public NearPositionCondition? NearPosition { get; set; } diff --git a/Questionable/Controller/Steps/Shared/AethernetShortcut.cs b/Questionable/Controller/Steps/Shared/AethernetShortcut.cs index 9297297e..29c76f0c 100644 --- a/Questionable/Controller/Steps/Shared/AethernetShortcut.cs +++ b/Questionable/Controller/Steps/Shared/AethernetShortcut.cs @@ -24,6 +24,7 @@ internal static class AethernetShortcut MovementController movementController, AetheryteFunctions aetheryteFunctions, GameFunctions gameFunctions, + QuestFunctions questFunctions, IClientState clientState, AetheryteData aetheryteData, TerritoryData territoryData, @@ -46,8 +47,8 @@ internal static class AethernetShortcut public ITask Use(EAetheryteLocation from, EAetheryteLocation to, SkipAetheryteCondition? skipConditions = null) { return new UseAethernetShortcut(from, to, skipConditions ?? new(), - loggerFactory.CreateLogger(), aetheryteFunctions, gameFunctions, clientState, - aetheryteData, territoryData, lifestreamIpc, movementController, condition); + loggerFactory.CreateLogger(), aetheryteFunctions, gameFunctions, questFunctions, + clientState, aetheryteData, territoryData, lifestreamIpc, movementController, condition); } } @@ -58,6 +59,7 @@ internal static class AethernetShortcut ILogger logger, AetheryteFunctions aetheryteFunctions, GameFunctions gameFunctions, + QuestFunctions questFunctions, IClientState clientState, AetheryteData aetheryteData, TerritoryData territoryData, @@ -90,6 +92,20 @@ internal static class AethernetShortcut return false; } + if (skipConditions.QuestsCompleted.Count > 0 && + skipConditions.QuestsCompleted.All(questFunctions.IsQuestComplete)) + { + logger.LogInformation("Skipping aethernet shortcut, all prequisite quests are complete"); + return true; + } + + if (skipConditions.QuestsAccepted.Count > 0 && + skipConditions.QuestsAccepted.All(questFunctions.IsQuestAccepted)) + { + logger.LogInformation("Skipping aethernet shortcut, all prequisite quests are accepted"); + return true; + } + if (skipConditions.AetheryteLocked != null && !aetheryteFunctions.IsAetheryteUnlocked(skipConditions.AetheryteLocked.Value)) { diff --git a/Questionable/Controller/Steps/Shared/AetheryteShortcut.cs b/Questionable/Controller/Steps/Shared/AetheryteShortcut.cs index 2d72afd1..0b12bb3f 100644 --- a/Questionable/Controller/Steps/Shared/AetheryteShortcut.cs +++ b/Questionable/Controller/Steps/Shared/AetheryteShortcut.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Linq; using System.Numerics; using Dalamud.Plugin.Services; using FFXIVClientStructs.FFXIV.Application.Network.WorkDefinitions; @@ -93,6 +94,20 @@ internal static class AetheryteShortcut return true; } + if (skipConditions.QuestsCompleted.Count > 0 && + skipConditions.QuestsCompleted.All(questFunctions.IsQuestComplete)) + { + logger.LogInformation("Skipping aetheryte, all prequisite quests are complete"); + return true; + } + + if (skipConditions.QuestsAccepted.Count > 0 && + skipConditions.QuestsAccepted.All(questFunctions.IsQuestAccepted)) + { + logger.LogInformation("Skipping aetheryte, all prequisite quests are accepted"); + return true; + } + if (skipConditions.AetheryteLocked != null && !aetheryteFunctions.IsAetheryteUnlocked(skipConditions.AetheryteLocked.Value)) { From 15c97d55f763905bee0dfb5b9a991503b38dfba5 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sun, 25 Aug 2024 19:23:29 +0200 Subject: [PATCH 072/450] Minor starting quest adjustments --- .../190_So You Want to Be an Alchemist.json | 2 +- .../ARM/186_So You Want to Be an Armorer.json | 2 +- .../ARM/273_Way of the Armorer.json | 3 +- .../183_So You Want to Be a Thaumaturge.json | 2 +- .../BRD/1085_A Song of Bards and Bowmen.json | 2 +- .../BSM/291_Way of the Blacksmith.json | 2 +- .../BTN/3_Way of the Botanist.json | 3 +- .../191_So You Want to Be a Culinarian.json | 2 +- .../CUL/271_Way of the Culinarian.json | 3 +- .../DRG/180_So You Want to Be a Lancer.json | 2 +- .../FSH/1107_Way of the Fisher.json | 2 +- .../FSH/1134_So You Want to Be a Fisher.json | 16 -------- .../187_So You Want to Be a Goldsmith.json | 2 +- .../GSM/608_Way of the Goldsmith.json | 3 +- .../LTW/105_Way of the Leatherworker.json | 3 +- ...188_So You Want to Be a Leatherworker.json | 2 +- .../MNK/178_So You Want to Be a Pugilist.json | 2 +- .../451_So You Want to Be an Arcanist.json | 38 +++++++++---------- .../WAR/179_So You Want to Be a Marauder.json | 2 +- .../WAR/310_Way of the Marauder.json | 2 +- .../WVR/189_So You Want to Be a Weaver.json | 2 +- .../WVR/534_Way of the Weaver.json | 3 +- 22 files changed, 39 insertions(+), 61 deletions(-) diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/ALC/190_So You Want to Be an Alchemist.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/ALC/190_So You Want to Be an Alchemist.json index e53954bb..0c9c4a30 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/ALC/190_So You Want to Be an Alchemist.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/ALC/190_So You Want to Be an Alchemist.json @@ -13,7 +13,7 @@ "Z": 118.88306 }, "TerritoryId": 131, - "InteractionType": "Interact", + "InteractionType": "AcceptQuest", "AetheryteShortcut": "Ul'dah", "AethernetShortcut": [ "[Ul'dah] Aetheryte Plaza", diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/ARM/186_So You Want to Be an Armorer.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/ARM/186_So You Want to Be an Armorer.json index 7cd043fc..872c6267 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/ARM/186_So You Want to Be an Armorer.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/ARM/186_So You Want to Be an Armorer.json @@ -13,7 +13,7 @@ "Z": 190.41736 }, "TerritoryId": 128, - "InteractionType": "Interact", + "InteractionType": "AcceptQuest", "AetheryteShortcut": "Limsa Lominsa", "AethernetShortcut": [ "[Limsa Lominsa] Aetheryte Plaza", diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/ARM/273_Way of the Armorer.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/ARM/273_Way of the Armorer.json index 93fef75b..955356e2 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/ARM/273_Way of the Armorer.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/ARM/273_Way of the Armorer.json @@ -35,8 +35,7 @@ "Prompt": "TEXT_CLSARM011_00273_Q1_000_1", "Yes": true } - ], - "NextQuestId": 273 + ] } ] } diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/BLM/183_So You Want to Be a Thaumaturge.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/BLM/183_So You Want to Be a Thaumaturge.json index fbd68169..e4f58a84 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/BLM/183_So You Want to Be a Thaumaturge.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/BLM/183_So You Want to Be a Thaumaturge.json @@ -13,7 +13,7 @@ "Z": 59.952637 }, "TerritoryId": 130, - "InteractionType": "Interact", + "InteractionType": "AcceptQuest", "AetheryteShortcut": "Ul'dah", "AethernetShortcut": [ "[Ul'dah] Aetheryte Plaza", diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/1085_A Song of Bards and Bowmen.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/1085_A Song of Bards and Bowmen.json index 196337ec..e22e5d58 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/1085_A Song of Bards and Bowmen.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/1085_A Song of Bards and Bowmen.json @@ -122,7 +122,7 @@ "TerritoryId": 153, "InteractionType": "CompleteQuest", "Fly": true, - "NextQuestId": 1085 + "NextQuestId": 1086 } ] } diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/BSM/291_Way of the Blacksmith.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/BSM/291_Way of the Blacksmith.json index 8430dab8..087d1faa 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/BSM/291_Way of the Blacksmith.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/BSM/291_Way of the Blacksmith.json @@ -30,7 +30,7 @@ "DialogueChoices": [ { "Type": "YesNo", - "Prompt": "TEXT_CLSBSM001_00185_Q1_000_1", + "Prompt": "TEXT_CLSBSM011_00291_Q1_000_1", "Yes": true } ] 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 aa2443e8..23abee99 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 @@ -35,8 +35,7 @@ "Prompt": "TEXT_CLSHRV001_00003_Q1_000_1", "Yes": true } - ], - "NextQuestId": 3 + ] } ] } diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/CUL/191_So You Want to Be a Culinarian.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/CUL/191_So You Want to Be a Culinarian.json index 95d5ecf9..7a46a5c5 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/CUL/191_So You Want to Be a Culinarian.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/CUL/191_So You Want to Be a Culinarian.json @@ -13,7 +13,7 @@ "Z": -164.0498 }, "TerritoryId": 128, - "InteractionType": "Interact", + "InteractionType": "AcceptQuest", "AetheryteShortcut": "Limsa Lominsa", "AethernetShortcut": [ "[Limsa Lominsa] Aetheryte Plaza", diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/CUL/271_Way of the Culinarian.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/CUL/271_Way of the Culinarian.json index 2a7bd1a3..500efc80 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/CUL/271_Way of the Culinarian.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/CUL/271_Way of the Culinarian.json @@ -35,8 +35,7 @@ "Prompt": "TEXT_CLSCUL011_00271_Q1_000_1", "Yes": true } - ], - "NextQuestId": 271 + ] } ] } diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/DRG/180_So You Want to Be a Lancer.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/DRG/180_So You Want to Be a Lancer.json index f1b94278..fa199bd5 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/DRG/180_So You Want to Be a Lancer.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/DRG/180_So You Want to Be a Lancer.json @@ -24,7 +24,7 @@ "Yes": true } ], - "InteractionType": "Interact" + "InteractionType": "AcceptQuest" } ] } 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 3cc4d179..5a771ddd 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 @@ -13,7 +13,7 @@ "Z": 150.04187 }, "TerritoryId": 129, - "InteractionType": "Interact", + "InteractionType": "AcceptQuest", "AetheryteShortcut": "Limsa Lominsa", "AethernetShortcut": [ "[Limsa Lominsa] Aetheryte Plaza", diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/FSH/1134_So You Want to Be a Fisher.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/FSH/1134_So You Want to Be a Fisher.json index d9fcf3c1..3b810ba4 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/FSH/1134_So You Want to Be a Fisher.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/FSH/1134_So You Want to Be a Fisher.json @@ -38,22 +38,6 @@ "InteractionType": "AcceptQuest" } ] - }, - { - "Sequence": 255, - "Steps": [ - { - "DataId": 1000857, - "Position": { - "X": -165.27051, - "Y": 5.2500057, - "Z": 164.29382 - }, - "TerritoryId": 129, - "InteractionType": "CompleteQuest", - "NextQuestId": 1108 - } - ] } ] } diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/GSM/187_So You Want to Be a Goldsmith.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/GSM/187_So You Want to Be a Goldsmith.json index a66a332f..bb79e28f 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/GSM/187_So You Want to Be a Goldsmith.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/GSM/187_So You Want to Be a Goldsmith.json @@ -13,7 +13,7 @@ "Z": 97.24573 }, "TerritoryId": 131, - "InteractionType": "Interact", + "InteractionType": "AcceptQuest", "AetheryteShortcut": "Ul'dah", "AethernetShortcut": [ "[Ul'dah] Aetheryte Plaza", diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/GSM/608_Way of the Goldsmith.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/GSM/608_Way of the Goldsmith.json index 2ba0018c..3e9017a1 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/GSM/608_Way of the Goldsmith.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/GSM/608_Way of the Goldsmith.json @@ -35,8 +35,7 @@ "Prompt": "TEXT_CLSGLD011_00608_A1_000_1", "Yes": true } - ], - "NextQuestId": 608 + ] } ] } diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/LTW/105_Way of the Leatherworker.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/LTW/105_Way of the Leatherworker.json index c263bfda..101c9595 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/LTW/105_Way of the Leatherworker.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/LTW/105_Way of the Leatherworker.json @@ -35,8 +35,7 @@ "Prompt": "TEXT_CLSTAN000_00105_Q1_000_1", "Yes": true } - ], - "NextQuestId": 105 + ] } ] } diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/LTW/188_So You Want to Be a Leatherworker.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/LTW/188_So You Want to Be a Leatherworker.json index 4412c8f6..6928be6d 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/LTW/188_So You Want to Be a Leatherworker.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/LTW/188_So You Want to Be a Leatherworker.json @@ -13,7 +13,7 @@ "Z": -147.41742 }, "TerritoryId": 133, - "InteractionType": "Interact", + "InteractionType": "AcceptQuest", "AetheryteShortcut": "Gridania", "AethernetShortcut": [ "[Gridania] Aetheryte Plaza", diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/178_So You Want to Be a Pugilist.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/178_So You Want to Be a Pugilist.json index 8494b698..b75d1e75 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/178_So You Want to Be a Pugilist.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/178_So You Want to Be a Pugilist.json @@ -13,7 +13,7 @@ "Z": -51.163513 }, "TerritoryId": 130, - "InteractionType": "Interact", + "InteractionType": "AcceptQuest", "AetheryteShortcut": "Ul'dah", "SkipConditions": { "AetheryteShortcutIf": { 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 b134aff7..4c4c38fc 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 @@ -1,18 +1,19 @@ { - "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "Cacahuetes", - "QuestSequence": [ - { - "Sequence": 255, - "Steps": [ - { "DataId": 1000895, -"Position": { - "X": -335.74432, - "Y": 12.899764, - "Z": 1.3884888 -}, -"TerritoryId": 129, -"InteractionType": "AcceptQuest", + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Cacahuetes", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1000895, + "Position": { + "X": -335.74432, + "Y": 12.899764, + "Z": 1.3884888 + }, + "TerritoryId": 129, + "InteractionType": "AcceptQuest", "AetheryteShortcut": "Limsa Lominsa", "AethernetShortcut": [ "[Limsa Lominsa] Aetheryte Plaza", @@ -35,8 +36,7 @@ ], "NextQuestId": 452 } - ] - } - ] - } - \ No newline at end of file + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/WAR/179_So You Want to Be a Marauder.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/WAR/179_So You Want to Be a Marauder.json index eaa718ee..b9522c79 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/WAR/179_So You Want to Be a Marauder.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/WAR/179_So You Want to Be a Marauder.json @@ -13,7 +13,7 @@ "Z": -245.80762 }, "TerritoryId": 128, - "InteractionType": "Interact", + "InteractionType": "AcceptQuest", "AetheryteShortcut": "Limsa Lominsa", "AethernetShortcut": [ "[Limsa Lominsa] Aetheryte Plaza", diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/WAR/310_Way of the Marauder.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/WAR/310_Way of the Marauder.json index e2cb02fc..fd759a6a 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/WAR/310_Way of the Marauder.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/WAR/310_Way of the Marauder.json @@ -28,7 +28,7 @@ "Z": -255.8786 }, "TerritoryId": 128, - "InteractionType": "AcceptQuest", + "InteractionType": "CompleteQuest", "DialogueChoices": [ { "Type": "YesNo", diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/WVR/189_So You Want to Be a Weaver.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/WVR/189_So You Want to Be a Weaver.json index 66ab5a05..50cad2af 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/WVR/189_So You Want to Be a Weaver.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/WVR/189_So You Want to Be a Weaver.json @@ -13,7 +13,7 @@ "Z": 98.039185 }, "TerritoryId": 131, - "InteractionType": "Interact", + "InteractionType": "AcceptQuest", "AetheryteShortcut": "Ul'dah", "AethernetShortcut": [ "[Ul'dah] Aetheryte Plaza", diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/WVR/534_Way of the Weaver.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/WVR/534_Way of the Weaver.json index 0388389f..8e517afb 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/WVR/534_Way of the Weaver.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/WVR/534_Way of the Weaver.json @@ -35,8 +35,7 @@ "Prompt": "TEXT_CLSWVR011_00534_SYSTEM_Q0", "Yes": true } - ], - "NextQuestId": 534 + ] } ] } From db39e76e4bf8df0f674930979b89e1d1a36a0d3a Mon Sep 17 00:00:00 2001 From: cacahuetes Date: Sun, 25 Aug 2024 17:59:24 +0000 Subject: [PATCH 073/450] Upload files to "QuestPaths/5.x - Shadowbringers/Role Quests/Healer" --- .../Healer/3268_Affronts and Allies.json | 118 +++++++++++++++++ .../Healer/3269_The Scientific Method.json | 121 ++++++++++++++++++ .../Healer/3270_The Lost and the Found.json | 118 +++++++++++++++++ .../Healer/3271_Never to Return.json | 77 +++++++++++ .../Healer/3272_The Soul of Temperance.json | 113 ++++++++++++++++ 5 files changed, 547 insertions(+) create mode 100644 QuestPaths/5.x - Shadowbringers/Role Quests/Healer/3268_Affronts and Allies.json create mode 100644 QuestPaths/5.x - Shadowbringers/Role Quests/Healer/3269_The Scientific Method.json create mode 100644 QuestPaths/5.x - Shadowbringers/Role Quests/Healer/3270_The Lost and the Found.json create mode 100644 QuestPaths/5.x - Shadowbringers/Role Quests/Healer/3271_Never to Return.json create mode 100644 QuestPaths/5.x - Shadowbringers/Role Quests/Healer/3272_The Soul of Temperance.json diff --git a/QuestPaths/5.x - Shadowbringers/Role Quests/Healer/3268_Affronts and Allies.json b/QuestPaths/5.x - Shadowbringers/Role Quests/Healer/3268_Affronts and Allies.json new file mode 100644 index 00000000..268e2b12 --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Role Quests/Healer/3268_Affronts and Allies.json @@ -0,0 +1,118 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Cacahuetes", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1031158, + "Position": { + "X": -26.657532, + "Y": 3.999815, + "Z": 209.88782 + }, + "TerritoryId": 819, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Crystarium", + "AethernetShortcut": [ + "[Crystarium] Aetheryte Plaza", + "[Crystarium] Musica Universalis Markets" + ], + "SkipConditions": { + "AetheryteShortcutIf": { "InSameTerritory": true } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1030004, + "Position": { + "X": 689.1127, + "Y": 30.11682, + "Z": 278.85852 + }, + "TerritoryId": 814, + "InteractionType": "Interact", + "AetheryteShortcut": "Kholusia - Stilltide" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2009999, + "Position": { + "X": 529.3812, + "Y": 11.9782715, + "Z": 370.83997 + }, + "TerritoryId": 814, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [10866] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2010000, + "Position": { + "X": 342.48877, + "Y": 16.55597, + "Z": 454.24573 + }, + "TerritoryId": 814, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [10867] + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1030006, + "Position": { + "X": 181.59753, + "Y": 33.636906, + "Z": 177.47766 + }, + "TerritoryId": 814, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1031158, + "Position": { + "X": -26.657532, + "Y": 3.999815, + "Z": 209.88782 + }, + "TerritoryId": 819, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Crystarium", + "AethernetShortcut": [ + "[Crystarium] Aetheryte Plaza", + "[Crystarium] Musica Universalis Markets" + ], + "SkipConditions": { + "AetheryteShortcutIf": { "InSameTerritory": true } + }, + "NextQuestId": 3269 + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Role Quests/Healer/3269_The Scientific Method.json b/QuestPaths/5.x - Shadowbringers/Role Quests/Healer/3269_The Scientific Method.json new file mode 100644 index 00000000..19c40685 --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Role Quests/Healer/3269_The Scientific Method.json @@ -0,0 +1,121 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Cacahuetes", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1031158, + "Position": { + "X": -26.657532, + "Y": 3.999815, + "Z": 209.88782 + }, + "TerritoryId": 819, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Crystarium", + "AethernetShortcut": [ + "[Crystarium] Aetheryte Plaza", + "[Crystarium] Musica Universalis Markets" + ], + "SkipConditions": { + "AetheryteShortcutIf": { "InSameTerritory": true } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1030012, + "Position": { + "X": 279.469, + "Y": 1.4685827, + "Z": -281.94098 + }, + "TerritoryId": 815, + "InteractionType": "Interact", + "AetheryteShortcut": "Amh Araeng - Mord Souq" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2010002, + "Position": { + "X": 279.65198, + "Y": 1.4800415, + "Z": -282.7345 + }, + "TerritoryId": 815, + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_LUCKBA221_03269_Q1_000_000", + "Answer": "TEXT_LUCKBA221_03269_A1_000_002" + } + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1030013, + "Position": { + "X": 612.3292, + "Y": -25.655535, + "Z": -36.66742 + }, + "TerritoryId": 815, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1030014, + "Position": { + "X": 614.46545, + "Y": -25.7535, + "Z": -35.6604 + }, + "TerritoryId": 815, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1031158, + "Position": { + "X": -26.657532, + "Y": 3.999815, + "Z": 209.88782 + }, + "TerritoryId": 819, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Crystarium", + "AethernetShortcut": [ + "[Crystarium] Aetheryte Plaza", + "[Crystarium] Musica Universalis Markets" + ], + "SkipConditions": { + "AetheryteShortcutIf": { "InSameTerritory": true } + }, + "NextQuestId": 3270 + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Role Quests/Healer/3270_The Lost and the Found.json b/QuestPaths/5.x - Shadowbringers/Role Quests/Healer/3270_The Lost and the Found.json new file mode 100644 index 00000000..215bc044 --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Role Quests/Healer/3270_The Lost and the Found.json @@ -0,0 +1,118 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "AUTHOR", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1031158, + "Position": { + "X": -26.657532, + "Y": 3.999815, + "Z": 209.88782 + }, + "TerritoryId": 819, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Crystarium", + "AethernetShortcut": [ + "[Crystarium] Aetheryte Plaza", + "[Crystarium] Musica Universalis Markets" + ], + "SkipConditions": { + "AetheryteShortcutIf": { "InSameTerritory": true } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1030015, + "Position": { + "X": -83.05487, + "Y": -19.061518, + "Z": 309.83435 + }, + "TerritoryId": 817, + "InteractionType": "Interact", + "AetheryteShortcut": "Rak'tika - Slitherbough" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2010003, + "Position": { + "X": 263.9048, + "Y": 12.436096, + "Z": 103.990234 + }, + "TerritoryId": 817, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [10950] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2010004, + "Position": { + "X": 446.0669, + "Y": 8.041443, + "Z": 123.03345 + }, + "TerritoryId": 817, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [10869] + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1030017, + "Position": { + "X": 633.99695, + "Y": 24.12675, + "Z": 59.861084 + }, + "TerritoryId": 817, + "InteractionType": "SinglePlayerDuty" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1031158, + "Position": { + "X": -26.657532, + "Y": 3.999815, + "Z": 209.88782 + }, + "TerritoryId": 819, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Crystarium", + "AethernetShortcut": [ + "[Crystarium] Aetheryte Plaza", + "[Crystarium] Musica Universalis Markets" + ], + "SkipConditions": { + "AetheryteShortcutIf": { "InSameTerritory": true } + }, + "NextQuestId": 3271 + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Role Quests/Healer/3271_Never to Return.json b/QuestPaths/5.x - Shadowbringers/Role Quests/Healer/3271_Never to Return.json new file mode 100644 index 00000000..f0e75da0 --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Role Quests/Healer/3271_Never to Return.json @@ -0,0 +1,77 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "AUTHOR", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1031158, + "Position": { + "X": -26.657532, + "Y": 3.999815, + "Z": 209.88782 + }, + "TerritoryId": 819, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Crystarium", + "AethernetShortcut": [ + "[Crystarium] Aetheryte Plaza", + "[Crystarium] Musica Universalis Markets" + ], + "SkipConditions": { + "AetheryteShortcutIf": { "InSameTerritory": true } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1030021, + "Position": { + "X": -456.6568, + "Y": 417.12558, + "Z": -597.1008 + }, + "TerritoryId": 814, + "InteractionType": "Interact", + "AetheryteShortcut": "Kholusia - Tomra" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1030022, + "Position": { + "X": -355.55048, + "Y": 415.2497, + "Z": -677.9431 + }, + "TerritoryId": 814, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1030021, + "Position": { + "X": -456.6568, + "Y": 417.12558, + "Z": -597.1008 + }, + "TerritoryId": 814, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Kholusia - Tomra", + "NextQuestId": 3272 + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Role Quests/Healer/3272_The Soul of Temperance.json b/QuestPaths/5.x - Shadowbringers/Role Quests/Healer/3272_The Soul of Temperance.json new file mode 100644 index 00000000..b3d5cf1d --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Role Quests/Healer/3272_The Soul of Temperance.json @@ -0,0 +1,113 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Cacahuetes", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1030021, + "Position": { + "X": -456.6568, + "Y": 417.12558, + "Z": -597.1008 + }, + "TerritoryId": 814, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Kholusia - Tomra", + "NextQuestId": 3272, + "SkipConditions": { + "AethernetShortcutIf": { "InSameTerritory": true } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2010006, + "Position": { + "X": -115.31244, + "Y": 428.18335, + "Z": -621.4542 + }, + "TerritoryId": 814, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [10870] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2010007, + "Position": { + "X": 21.194763, + "Y": 348.89746, + "Z": -251.88074 + }, + "TerritoryId": 814, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [10871] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1030035, + "Position": { + "X": -650.35474, + "Y": 352.45102, + "Z": -129.01508 + }, + "TerritoryId": 814, + "InteractionType": "SinglePlayerDuty" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1030038, + "Position": { + "X": -650.35474, + "Y": 352.45102, + "Z": -129.01508 + }, + "TerritoryId": 814, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1030039, + "Position": { + "X": -26.657532, + "Y": 3.999815, + "Z": 209.88782 + }, + "TerritoryId": 819, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Crystarium", + "AethernetShortcut": [ + "[Crystarium] Aetheryte Plaza", + "[Crystarium] Musica Universalis Markets" + ], + "SkipConditions": { + "AetheryteShortcutIf": { "InSameTerritory": true } + } + } + ] + } + ] +} From d4f122dda030054e3b8e1f1084b34b6e99d07697 Mon Sep 17 00:00:00 2001 From: cacahuetes Date: Sun, 25 Aug 2024 18:00:13 +0000 Subject: [PATCH 074/450] Update QuestPaths/5.x - Shadowbringers/Role Quests/Healer/3267_Traditions and Travails.json --- .../Healer/3267_Traditions and Travails.json | 84 ++++++++++++++++++- 1 file changed, 81 insertions(+), 3 deletions(-) diff --git a/QuestPaths/5.x - Shadowbringers/Role Quests/Healer/3267_Traditions and Travails.json b/QuestPaths/5.x - Shadowbringers/Role Quests/Healer/3267_Traditions and Travails.json index 10e0e76d..8e04de51 100644 --- a/QuestPaths/5.x - Shadowbringers/Role Quests/Healer/3267_Traditions and Travails.json +++ b/QuestPaths/5.x - Shadowbringers/Role Quests/Healer/3267_Traditions and Travails.json @@ -1,7 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "liza", - "Disabled": true, + "Author": "Cacahuetes", "QuestSequence": [ { "Sequence": 0, @@ -14,7 +13,86 @@ "Z": 209.88782 }, "TerritoryId": 819, - "InteractionType": "AcceptQuest" + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Crystarium", + "AethernetShortcut": [ + "[Crystarium] Aetheryte Plaza", + "[Crystarium] Musica Universalis Markets" + ], + "SkipConditions": { + "AetheryteShortcutIf": { "InSameTerritory": true } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1029999, + "Position": { + "X": 346.66968, + "Y": 3.2878497, + "Z": 177.17249 + }, + "TerritoryId": 813, + "InteractionType": "Interact", + "AetheryteShortcut": "Lakeland - Fort Jobb" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": 340.6667, + "Y": 3.0521033, + "Z": 208.3552 + }, + "TerritoryId": 813, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [10865] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1030000, + "Position": { + "X": 341.02393, + "Y": 3.5819468, + "Z": 198.32141 + }, + "TerritoryId": 813, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1031158, + "Position": { + "X": -26.657532, + "Y": 3.999815, + "Z": 209.88782 + }, + "TerritoryId": 819, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Crystarium", + "AethernetShortcut": [ + "[Crystarium] Aetheryte Plaza", + "[Crystarium] Musica Universalis Markets" + ], + "SkipConditions": { + "AetheryteShortcutIf": { "InSameTerritory": true } + }, + "NextQuestId": 3268 } ] } From f4475d64caf867e2eaf6f3236d59658910c54de1 Mon Sep 17 00:00:00 2001 From: cacahuetes Date: Sun, 25 Aug 2024 18:21:29 +0000 Subject: [PATCH 075/450] Update QuestPaths/5.x - Shadowbringers/Role Quests/Healer/3272_The Soul of Temperance.json --- .../Healer/3272_The Soul of Temperance.json | 241 ++++++++++-------- 1 file changed, 128 insertions(+), 113 deletions(-) diff --git a/QuestPaths/5.x - Shadowbringers/Role Quests/Healer/3272_The Soul of Temperance.json b/QuestPaths/5.x - Shadowbringers/Role Quests/Healer/3272_The Soul of Temperance.json index b3d5cf1d..24d7c9d6 100644 --- a/QuestPaths/5.x - Shadowbringers/Role Quests/Healer/3272_The Soul of Temperance.json +++ b/QuestPaths/5.x - Shadowbringers/Role Quests/Healer/3272_The Soul of Temperance.json @@ -1,113 +1,128 @@ -{ - "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "Cacahuetes", - "QuestSequence": [ - { - "Sequence": 0, - "Steps": [ - { - "DataId": 1030021, - "Position": { - "X": -456.6568, - "Y": 417.12558, - "Z": -597.1008 - }, - "TerritoryId": 814, - "InteractionType": "CompleteQuest", - "AetheryteShortcut": "Kholusia - Tomra", - "NextQuestId": 3272, - "SkipConditions": { - "AethernetShortcutIf": { "InSameTerritory": true } - } - } - ] - }, - { - "Sequence": 1, - "Steps": [ - { - "DataId": 2010006, - "Position": { - "X": -115.31244, - "Y": 428.18335, - "Z": -621.4542 - }, - "TerritoryId": 814, - "InteractionType": "Combat", - "EnemySpawnType": "AfterInteraction", - "KillEnemyDataIds": [10870] - } - ] - }, - { - "Sequence": 2, - "Steps": [ - { - "DataId": 2010007, - "Position": { - "X": 21.194763, - "Y": 348.89746, - "Z": -251.88074 - }, - "TerritoryId": 814, - "InteractionType": "Combat", - "EnemySpawnType": "AfterInteraction", - "KillEnemyDataIds": [10871] - } - ] - }, - { - "Sequence": 3, - "Steps": [ - { - "DataId": 1030035, - "Position": { - "X": -650.35474, - "Y": 352.45102, - "Z": -129.01508 - }, - "TerritoryId": 814, - "InteractionType": "SinglePlayerDuty" - } - ] - }, - { - "Sequence": 4, - "Steps": [ - { - "DataId": 1030038, - "Position": { - "X": -650.35474, - "Y": 352.45102, - "Z": -129.01508 - }, - "TerritoryId": 814, - "InteractionType": "Interact" - } - ] - }, - { - "Sequence": 255, - "Steps": [ - { - "DataId": 1030039, - "Position": { - "X": -26.657532, - "Y": 3.999815, - "Z": 209.88782 - }, - "TerritoryId": 819, - "InteractionType": "CompleteQuest", - "AetheryteShortcut": "Crystarium", - "AethernetShortcut": [ - "[Crystarium] Aetheryte Plaza", - "[Crystarium] Musica Universalis Markets" - ], - "SkipConditions": { - "AetheryteShortcutIf": { "InSameTerritory": true } - } - } - ] - } - ] -} +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Cacahuetes", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1030021, + "Position": { + "X": -456.6568, + "Y": 417.12558, + "Z": -597.1008 + }, + "TerritoryId": 814, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Kholusia - Tomra", + "NextQuestId": 3272, + "SkipConditions": { + "AethernetShortcutIf": { "InSameTerritory": true } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2010006, + "Position": { + "X": -115.31244, + "Y": 428.18335, + "Z": -621.4542 + }, + "TerritoryId": 814, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [10870] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2010007, + "Position": { + "X": 21.194763, + "Y": 348.89746, + "Z": -251.88074 + }, + "TerritoryId": 814, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [10871] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1030035, + "Position": { + "X": -650.35474, + "Y": 352.45102, + "Z": -129.01508 + }, + "TerritoryId": 814, + "InteractionType": "SinglePlayerDuty" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1030038, + "Position": { + "X": -650.35474, + "Y": 352.45102, + "Z": -129.01508 + }, + "TerritoryId": 814, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1030038, + "Position": { + "X": -650.35474, + "Y": 352.45102, + "Z": -129.01508 + }, + "TerritoryId": 814, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1030039, + "Position": { + "X": -26.657532, + "Y": 3.999815, + "Z": 209.88782 + }, + "TerritoryId": 819, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Crystarium", + "AethernetShortcut": [ + "[Crystarium] Aetheryte Plaza", + "[Crystarium] Musica Universalis Markets" + ], + "SkipConditions": { + "AetheryteShortcutIf": { "InSameTerritory": true } + } + } + ] + } + ] +} From 3a54dd109186e9aa8da557092afab6d734d2f608 Mon Sep 17 00:00:00 2001 From: cacahuetes Date: Sun, 25 Aug 2024 18:33:30 +0000 Subject: [PATCH 076/450] Update QuestPaths/3.x - Heavensward/Class Quests/WHM/1721_The Girl with the Dragon Tissue.json --- .../1721_The Girl with the Dragon Tissue.json | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/QuestPaths/3.x - Heavensward/Class Quests/WHM/1721_The Girl with the Dragon Tissue.json b/QuestPaths/3.x - Heavensward/Class Quests/WHM/1721_The Girl with the Dragon Tissue.json index 54b94a98..cd08a4e0 100644 --- a/QuestPaths/3.x - Heavensward/Class Quests/WHM/1721_The Girl with the Dragon Tissue.json +++ b/QuestPaths/3.x - Heavensward/Class Quests/WHM/1721_The Girl with the Dragon Tissue.json @@ -116,6 +116,22 @@ } ] }, + + { + "Sequence": 5, + "Steps": [ + { + "DataId": 2005855, + "Position": { + "X": -336.4157, + "Y": 89.00586, + "Z": -586.5721 + }, + "TerritoryId": 397, + "InteractionType": "Interact" + } + ] + }, { "Sequence": 6, "Steps": [ From 2a4ce09cda15ad09f7431c92271c7119d2c279a5 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Mon, 26 Aug 2024 11:11:44 +0200 Subject: [PATCH 077/450] Handle specific dialogue interactions while in a duty --- .../Controller/GameUi/InteractionUiController.cs | 7 ++++++- Questionable/Data/TerritoryData.cs | 10 ++++++---- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/Questionable/Controller/GameUi/InteractionUiController.cs b/Questionable/Controller/GameUi/InteractionUiController.cs index 64c17832..e630d7d6 100644 --- a/Questionable/Controller/GameUi/InteractionUiController.cs +++ b/Questionable/Controller/GameUi/InteractionUiController.cs @@ -42,6 +42,7 @@ internal sealed class InteractionUiController : IDisposable private readonly GatheringPointRegistry _gatheringPointRegistry; private readonly QuestRegistry _questRegistry; private readonly QuestData _questData; + private readonly TerritoryData _territoryData; private readonly IGameGui _gameGui; private readonly ITargetManager _targetManager; private readonly IClientState _clientState; @@ -61,6 +62,7 @@ internal sealed class InteractionUiController : IDisposable GatheringPointRegistry gatheringPointRegistry, QuestRegistry questRegistry, QuestData questData, + TerritoryData territoryData, IGameGui gameGui, ITargetManager targetManager, IPluginLog pluginLog, @@ -77,6 +79,7 @@ internal sealed class InteractionUiController : IDisposable _gatheringPointRegistry = gatheringPointRegistry; _questRegistry = questRegistry; _questData = questData; + _territoryData = territoryData; _gameGui = gameGui; _targetManager = targetManager; _clientState = clientState; @@ -101,7 +104,9 @@ internal sealed class InteractionUiController : IDisposable } } - private bool ShouldHandleUiInteractions => _isInitialCheck || _questController.IsRunning; + private bool ShouldHandleUiInteractions => _isInitialCheck || + _questController.IsRunning || + _territoryData.IsQuestBattleInstance(_clientState.TerritoryType); internal unsafe void HandleCurrentDialogueChoices() { diff --git a/Questionable/Data/TerritoryData.cs b/Questionable/Data/TerritoryData.cs index 0175cf6d..0b20d9a9 100644 --- a/Questionable/Data/TerritoryData.cs +++ b/Questionable/Data/TerritoryData.cs @@ -12,7 +12,7 @@ internal sealed class TerritoryData { private readonly ImmutableDictionary _territoryNames; private readonly ImmutableHashSet _territoriesWithMount; - private readonly ImmutableHashSet _dutyTerritories; + private readonly ImmutableDictionary _dutyTerritories; private readonly ImmutableDictionary _instanceNames; public TerritoryData(IDataManager dataManager) @@ -35,8 +35,7 @@ internal sealed class TerritoryData _dutyTerritories = dataManager.GetExcelSheet()! .Where(x => x.RowId > 0 && x.ContentFinderCondition.Row != 0) - .Select(x => (ushort)x.RowId) - .ToImmutableHashSet(); + .ToImmutableDictionary(x => (ushort)x.RowId, x => x.ContentFinderCondition.Value!.ContentType.Row); _instanceNames = dataManager.GetExcelSheet()! .Where(x => x.RowId > 0 && x.Content != 0 && x.ContentLinkType == 1 && x.ContentType.Row != 6) @@ -56,7 +55,10 @@ internal sealed class TerritoryData public bool CanUseMount(ushort territoryId) => _territoriesWithMount.Contains(territoryId); - public bool IsDutyInstance(ushort territoryId) => _dutyTerritories.Contains(territoryId); + public bool IsDutyInstance(ushort territoryId) => _dutyTerritories.ContainsKey(territoryId); + + public bool IsQuestBattleInstance(ushort territoryId) => + _dutyTerritories.TryGetValue(territoryId, out uint contentType) && contentType == 7; public string? GetInstanceName(ushort instanceId) => _instanceNames.GetValueOrDefault(instanceId); } From 477b7cb44642cba7c4f0a8c8e5b5529034c734e0 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Mon, 26 Aug 2024 11:14:26 +0200 Subject: [PATCH 078/450] Update positions for S9 aetheryte interactions --- Questionable/Controller/Steps/Shared/AethernetShortcut.cs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Questionable/Controller/Steps/Shared/AethernetShortcut.cs b/Questionable/Controller/Steps/Shared/AethernetShortcut.cs index 29c76f0c..8df6c49a 100644 --- a/Questionable/Controller/Steps/Shared/AethernetShortcut.cs +++ b/Questionable/Controller/Steps/Shared/AethernetShortcut.cs @@ -142,10 +142,10 @@ internal static class AethernetShortcut logger.LogInformation("Moving to S9 aetheryte"); List nearbyPoints = [ - new(7.225532f, 8.467899f, -7.1670876f), - new(7.177844f, 8.467899f, 7.2216787f), - new(-7.0762224f, 8.467898f, 7.1924725f), - new(-7.1289554f, 8.467898f, -7.0594683f) + new(0, 8.442986f, 9), + new(9, 8.442986f, 0), + new(-9, 8.442986f, 0), + new(0, 8.442986f, -9), ]; Vector3 closestPoint = nearbyPoints.MinBy(x => (playerPosition - x).Length()); From e6ee91c19c5e9d270ffb769f1e43230dc042ef42 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Mon, 26 Aug 2024 15:58:14 +0200 Subject: [PATCH 079/450] Fix interactions in 'A Knight of Alexandria' --- Questionable/Controller/Steps/Interactions/Interact.cs | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/Questionable/Controller/Steps/Interactions/Interact.cs b/Questionable/Controller/Steps/Interactions/Interact.cs index 0482d88b..c826fef5 100644 --- a/Questionable/Controller/Steps/Interactions/Interact.cs +++ b/Questionable/Controller/Steps/Interactions/Interact.cs @@ -174,6 +174,14 @@ internal static class Interact logger.LogInformation("Interaction was most likely triggered"); _interactionState = EInteractionState.InteractionConfirmed; } + else if (dataId is >= 1047901 and <= 1047905 && + condition[ConditionFlag.Disguised] && + flag == ConditionFlag.Mounting71 && // why the fuck is this the flag that's used, instead of OccupiedIn[Quest]Event + value) + { + logger.LogInformation("(A Knight of Alexandria) Interaction was most likely triggered"); + _interactionState = EInteractionState.InteractionConfirmed; + } } private enum EInteractionState From a840a9f42e3f2d7d2fbe1011869f6d445b3e37fa Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Mon, 26 Aug 2024 16:01:07 +0200 Subject: [PATCH 080/450] Pick up DT aether current quests (HF/LM) during the MSQ --- .../Shaaloani/978_Pyariyoanaan Plain_MIN.json | 10 +++-- .../Urqopacha/974_Chabameki_MIN.json | 6 +-- .../Heritage Found/5159_He Who Remembers.json | 9 +++++ .../5160_Auntie Knows Best.json | 18 +++++++++ .../4932_Embracing Oblivion.json | 1 + .../4933_Solution Nine.json | 31 ++++++++++++++- .../4941_At a Crossroads.json | 22 +++++++++++ .../4945_The Resilient Son.json | 3 +- .../4951_The Land of Dreams.json | 11 ++++++ .../4953_The Sanctuary of the Strong.json | 35 +++++++++++++++++ .../4956_An Explorer's Delight.json | 38 +++++++++++++++++++ .../MSQ/F-Living Memory/4959_Dawntrail.json | 11 ++++-- Questionable/Controller/QuestController.cs | 4 +- .../Controller/Steps/Interactions/Combat.cs | 6 +-- 14 files changed, 189 insertions(+), 16 deletions(-) diff --git a/GatheringPaths/7.x - Dawntrail/Shaaloani/978_Pyariyoanaan Plain_MIN.json b/GatheringPaths/7.x - Dawntrail/Shaaloani/978_Pyariyoanaan Plain_MIN.json index ef7c642e..fbb7675a 100644 --- a/GatheringPaths/7.x - Dawntrail/Shaaloani/978_Pyariyoanaan Plain_MIN.json +++ b/GatheringPaths/7.x - Dawntrail/Shaaloani/978_Pyariyoanaan Plain_MIN.json @@ -42,14 +42,18 @@ "X": 419.309, "Y": -10.25133, "Z": -784.8259 - } + }, + "MinimumAngle": -25, + "MaximumAngle": 85 }, { "Position": { "X": 410.6989, "Y": -10.9656, "Z": -790.8315 - } + }, + "MinimumAngle": -20, + "MaximumAngle": 95 } ] } @@ -156,4 +160,4 @@ ] } ] -} +} \ No newline at end of file diff --git a/GatheringPaths/7.x - Dawntrail/Urqopacha/974_Chabameki_MIN.json b/GatheringPaths/7.x - Dawntrail/Urqopacha/974_Chabameki_MIN.json index 7dff5fe8..d103a9ea 100644 --- a/GatheringPaths/7.x - Dawntrail/Urqopacha/974_Chabameki_MIN.json +++ b/GatheringPaths/7.x - Dawntrail/Urqopacha/974_Chabameki_MIN.json @@ -52,8 +52,8 @@ "Y": -47.86026, "Z": -394.9654 }, - "MinimumAngle": -120, - "MaximumAngle": 120 + "MinimumAngle": -145, + "MaximumAngle": -95 } ] } @@ -160,4 +160,4 @@ ] } ] -} +} \ No newline at end of file diff --git a/QuestPaths/7.x - Dawntrail/Aether Currents/Heritage Found/5159_He Who Remembers.json b/QuestPaths/7.x - Dawntrail/Aether Currents/Heritage Found/5159_He Who Remembers.json index 55270650..7fdb2f05 100644 --- a/QuestPaths/7.x - Dawntrail/Aether Currents/Heritage Found/5159_He Who Remembers.json +++ b/QuestPaths/7.x - Dawntrail/Aether Currents/Heritage Found/5159_He Who Remembers.json @@ -20,6 +20,15 @@ { "Sequence": 1, "Steps": [ + { + "Position": { + "X": -392.35907, + "Y": -14.000012, + "Z": 635.3141 + }, + "TerritoryId": 1191, + "InteractionType": "WalkTo" + }, { "Position": { "X": -415.87146, diff --git a/QuestPaths/7.x - Dawntrail/Aether Currents/Heritage Found/5160_Auntie Knows Best.json b/QuestPaths/7.x - Dawntrail/Aether Currents/Heritage Found/5160_Auntie Knows Best.json index 47d856fe..6957d154 100644 --- a/QuestPaths/7.x - Dawntrail/Aether Currents/Heritage Found/5160_Auntie Knows Best.json +++ b/QuestPaths/7.x - Dawntrail/Aether Currents/Heritage Found/5160_Auntie Knows Best.json @@ -55,6 +55,24 @@ { "Sequence": 255, "Steps": [ + { + "Position": { + "X": 184.68884, + "Y": 99.24859, + "Z": -171.97504 + }, + "TerritoryId": 1191, + "InteractionType": "WalkTo" + }, + { + "Position": { + "X": 148.14713, + "Y": 100.07344, + "Z": -135.20776 + }, + "TerritoryId": 1191, + "InteractionType": "WalkTo" + }, { "DataId": 2013966, "Position": { diff --git a/QuestPaths/7.x - Dawntrail/MSQ/E-SolutionNine-HeritageFound2/4932_Embracing Oblivion.json b/QuestPaths/7.x - Dawntrail/MSQ/E-SolutionNine-HeritageFound2/4932_Embracing Oblivion.json index a039a85a..0bdf93e8 100644 --- a/QuestPaths/7.x - Dawntrail/MSQ/E-SolutionNine-HeritageFound2/4932_Embracing Oblivion.json +++ b/QuestPaths/7.x - Dawntrail/MSQ/E-SolutionNine-HeritageFound2/4932_Embracing Oblivion.json @@ -69,6 +69,7 @@ "Y": 0.003171, "Z": 1.296936 }, + "StopDistance": 5, "TerritoryId": 1171, "InteractionType": "CompleteQuest" } diff --git a/QuestPaths/7.x - Dawntrail/MSQ/E-SolutionNine-HeritageFound2/4933_Solution Nine.json b/QuestPaths/7.x - Dawntrail/MSQ/E-SolutionNine-HeritageFound2/4933_Solution Nine.json index 67d31b9b..747faf16 100644 --- a/QuestPaths/7.x - Dawntrail/MSQ/E-SolutionNine-HeritageFound2/4933_Solution Nine.json +++ b/QuestPaths/7.x - Dawntrail/MSQ/E-SolutionNine-HeritageFound2/4933_Solution Nine.json @@ -21,6 +21,34 @@ { "Sequence": 1, "Steps": [ + { + "DataId": 1049443, + "Position": { + "X": -177.56934, + "Y": 29.999998, + "Z": -601.15967 + }, + "TerritoryId": 1191, + "InteractionType": "AcceptQuest", + "PickUpQuestId": 5153, + "AetheryteShortcut": "Heritage Found - The Outskirts", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + }, + { + "DataId": 1050805, + "Position": { + "X": -153.09375, + "Y": 34.946026, + "Z": -581.0178 + }, + "TerritoryId": 1191, + "InteractionType": "AcceptQuest", + "PickUpQuestId": 5160 + }, { "DataId": 1048053, "Position": { @@ -29,8 +57,7 @@ "Z": -828.58014 }, "TerritoryId": 1191, - "InteractionType": "Interact", - "AetheryteShortcut": "Heritage Found - The Outskirts" + "InteractionType": "Interact" } ] }, diff --git a/QuestPaths/7.x - Dawntrail/MSQ/E-SolutionNine-HeritageFound2/4941_At a Crossroads.json b/QuestPaths/7.x - Dawntrail/MSQ/E-SolutionNine-HeritageFound2/4941_At a Crossroads.json index 08e1e1a9..b48c78ef 100644 --- a/QuestPaths/7.x - Dawntrail/MSQ/E-SolutionNine-HeritageFound2/4941_At a Crossroads.json +++ b/QuestPaths/7.x - Dawntrail/MSQ/E-SolutionNine-HeritageFound2/4941_At a Crossroads.json @@ -37,6 +37,17 @@ { "Sequence": 2, "Steps": [ + { + "DataId": 1049505, + "Position": { + "X": -209.85736, + "Y": 7.49638, + "Z": 595.9104 + }, + "TerritoryId": 1191, + "InteractionType": "AcceptQuest", + "PickUpQuestId": 5159 + }, { "DataId": 1048099, "Position": { @@ -53,6 +64,17 @@ { "Sequence": 3, "Steps": [ + { + "DataId": 1049501, + "Position": { + "X": -592.7062, + "Y": -2.4803436, + "Z": -489.28055 + }, + "TerritoryId": 1191, + "InteractionType": "AcceptQuest", + "PickUpQuestId": 5156 + }, { "DataId": 1048116, "Position": { 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 b912c8bd..bb4681d7 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 @@ -32,7 +32,8 @@ "Z": -565.48413 }, "TerritoryId": 1191, - "InteractionType": "Interact" + "InteractionType": "Interact", + "Fly": true } ] }, diff --git a/QuestPaths/7.x - Dawntrail/MSQ/F-Living Memory/4951_The Land of Dreams.json b/QuestPaths/7.x - Dawntrail/MSQ/F-Living Memory/4951_The Land of Dreams.json index ae4ec158..15de1328 100644 --- a/QuestPaths/7.x - Dawntrail/MSQ/F-Living Memory/4951_The Land of Dreams.json +++ b/QuestPaths/7.x - Dawntrail/MSQ/F-Living Memory/4951_The Land of Dreams.json @@ -21,6 +21,17 @@ { "Sequence": 1, "Steps": [ + { + "DataId": 1050617, + "Position": { + "X": -631.4031, + "Y": 2.9305653E-07, + "Z": 497.12354 + }, + "TerritoryId": 1192, + "InteractionType": "AcceptQuest", + "PickUpQuestId": 5174 + }, { "DataId": 1047884, "Position": { diff --git a/QuestPaths/7.x - Dawntrail/MSQ/F-Living Memory/4953_The Sanctuary of the Strong.json b/QuestPaths/7.x - Dawntrail/MSQ/F-Living Memory/4953_The Sanctuary of the Strong.json index 3c29861a..5f5a5c57 100644 --- a/QuestPaths/7.x - Dawntrail/MSQ/F-Living Memory/4953_The Sanctuary of the Strong.json +++ b/QuestPaths/7.x - Dawntrail/MSQ/F-Living Memory/4953_The Sanctuary of the Strong.json @@ -21,6 +21,41 @@ { "Sequence": 1, "Steps": [ + { + "DataId": 1048243, + "Position": { + "X": 57.87744, + "Y": 53.200012, + "Z": 772.03015 + }, + "TerritoryId": 1192, + "InteractionType": "Interact", + "AetheryteShortcut": "Living Memory - Leynode Mnemo", + "TargetTerritoryId": 1192, + "SkipConditions": { + "StepIf": { + "QuestsCompleted": [ + 5176 + ] + }, + "AetheryteShortcutIf": { + "QuestsCompleted": [ + 5176 + ] + } + } + }, + { + "DataId": 1050621, + "Position": { + "X": 477.1344, + "Y": -0.034497976, + "Z": 711.6654 + }, + "TerritoryId": 1192, + "InteractionType": "AcceptQuest", + "PickUpQuestId": 5176 + }, { "DataId": 1047917, "Position": { diff --git a/QuestPaths/7.x - Dawntrail/MSQ/F-Living Memory/4956_An Explorer's Delight.json b/QuestPaths/7.x - Dawntrail/MSQ/F-Living Memory/4956_An Explorer's Delight.json index 146b118c..2c708162 100644 --- a/QuestPaths/7.x - Dawntrail/MSQ/F-Living Memory/4956_An Explorer's Delight.json +++ b/QuestPaths/7.x - Dawntrail/MSQ/F-Living Memory/4956_An Explorer's Delight.json @@ -21,6 +21,44 @@ { "Sequence": 1, "Steps": [ + { + "DataId": 1050625, + "Position": { + "X": 628.6869, + "Y": 24.99949, + "Z": -283.3753 + }, + "TerritoryId": 1192, + "InteractionType": "AcceptQuest", + "PickUpQuestId": 5178, + "AetheryteShortcut": "Living Memory - Leynode Pyro", + "SkipConditions": { + "AetheryteShortcutIf": { + "QuestsCompleted": [ + 5178 + ] + } + } + }, + { + "DataId": 1050632, + "Position": { + "X": 538.9944, + "Y": 25.001822, + "Z": -194.3847 + }, + "TerritoryId": 1192, + "InteractionType": "AcceptQuest", + "PickUpQuestId": 5179, + "AetheryteShortcut": "Living Memory - Leynode Pyro", + "SkipConditions": { + "AetheryteShortcutIf": { + "QuestsCompleted": [ + 5179 + ] + } + } + }, { "DataId": 1047971, "Position": { 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 87c4c82b..68e4c7bf 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 @@ -33,8 +33,12 @@ }, "TerritoryId": 1192, "InteractionType": "WalkTo", - "AetheryteShortcut": "Living Memory - Leynode Mnemo", - "$": "Leynode Mnemo to Meso Terminal waypoint" + "$": "Leynode Mnemo to Meso Terminal waypoint", + "SkipConditions": { + "StepIf": { + "Flying": "Unlocked" + } + } }, { "DataId": 1048014, @@ -44,7 +48,8 @@ "Z": 363.05774 }, "TerritoryId": 1192, - "InteractionType": "Interact" + "InteractionType": "Interact", + "Fly": true } ] }, diff --git a/Questionable/Controller/QuestController.cs b/Questionable/Controller/QuestController.cs index 529b4603..70512f8a 100644 --- a/Questionable/Controller/QuestController.cs +++ b/Questionable/Controller/QuestController.cs @@ -735,7 +735,9 @@ internal sealed class QuestController : MiniTaskController, IDi return false; QuestStep? currentStep = currentSequence?.FindStep(currentQuest.Step); - return currentStep?.AetheryteShortcut != null; + return currentStep?.AetheryteShortcut != null && + (currentStep.SkipConditions?.AetheryteShortcutIf?.QuestsCompleted.Count ?? 0) == 0 && + (currentStep.SkipConditions?.AetheryteShortcutIf?.QuestsAccepted.Count ?? 0) == 0; } public bool TryPickPriorityQuest() diff --git a/Questionable/Controller/Steps/Interactions/Combat.cs b/Questionable/Controller/Steps/Interactions/Combat.cs index 10875126..39909c56 100644 --- a/Questionable/Controller/Steps/Interactions/Combat.cs +++ b/Questionable/Controller/Steps/Interactions/Combat.cs @@ -41,7 +41,7 @@ internal static class Combat ArgumentNullException.ThrowIfNull(step.DataId); yield return interactFactory.Interact(step.DataId.Value, quest, EInteractionType.None, true); - yield return new WaitAtEnd.WaitDelay(TimeSpan.FromSeconds(2)); + yield return new WaitAtEnd.WaitDelay(TimeSpan.FromSeconds(1)); yield return CreateTask(quest, sequence, step); break; } @@ -53,14 +53,14 @@ internal static class Combat yield return useItemFactory.OnObject(quest.Id, step.DataId.Value, step.ItemId.Value, step.CompletionQuestVariablesFlags, true); - yield return new WaitAtEnd.WaitDelay(TimeSpan.FromSeconds(2)); + yield return new WaitAtEnd.WaitDelay(TimeSpan.FromSeconds(1)); yield return CreateTask(quest, sequence, step); break; } case EEnemySpawnType.AutoOnEnterArea: if (step.CombatDelaySecondsAtStart == null) - yield return new WaitAtEnd.WaitDelay(TimeSpan.FromSeconds(2)); + yield return new WaitAtEnd.WaitDelay(TimeSpan.FromSeconds(1)); // automatically triggered when entering area, i.e. only unmount yield return CreateTask(quest, sequence, step); From 24f95d58fe9100e97a1f8b851b33b2af93bc7325 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Mon, 26 Aug 2024 16:07:39 +0200 Subject: [PATCH 081/450] Version bump --- Directory.Build.targets | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Directory.Build.targets b/Directory.Build.targets index 4531c415..8fe0a236 100644 --- a/Directory.Build.targets +++ b/Directory.Build.targets @@ -1,5 +1,5 @@ - 2.15 + 2.16 From 2c2e95682bb4ccd10a59bf0146c3221889f6bffb Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Mon, 26 Aug 2024 16:13:17 +0200 Subject: [PATCH 082/450] Fix previous quest requirement --- Questionable/Model/QuestInfo.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Questionable/Model/QuestInfo.cs b/Questionable/Model/QuestInfo.cs index d78838fc..9b1214b9 100644 --- a/Questionable/Model/QuestInfo.cs +++ b/Questionable/Model/QuestInfo.cs @@ -39,7 +39,7 @@ internal sealed class QuestInfo : IQuestInfo { 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[1].Row & 0xFFFF))) + new(new QuestId((ushort)(quest.PreviousQuest[2].Row & 0xFFFF))) } .Where(x => x.QuestId.Value != 0) .ToImmutableList(); From 21c9e2fcac3c575a1b5960614b65b656a2dfe9fd Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Mon, 26 Aug 2024 16:13:27 +0200 Subject: [PATCH 083/450] Fix quest tooltips including quest name twice --- Questionable/Windows/QuestComponents/QuestTooltipComponent.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Questionable/Windows/QuestComponents/QuestTooltipComponent.cs b/Questionable/Windows/QuestComponents/QuestTooltipComponent.cs index cda7636c..4fac3f95 100644 --- a/Questionable/Windows/QuestComponents/QuestTooltipComponent.cs +++ b/Questionable/Windows/QuestComponents/QuestTooltipComponent.cs @@ -200,7 +200,7 @@ internal sealed class QuestTooltipComponent if (questInfo.IsMainScenarioQuest) name += $" ({questInfo.QuestId}, MSQ)"; else - name += $" {questInfo.Name} ({questInfo.QuestId})"; + name += $" ({questInfo.QuestId})"; return name; } From 7fe85a49f2f14530d83c4cc2ad10ec00a275af8e Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Mon, 26 Aug 2024 03:18:44 +0800 Subject: [PATCH 084/450] Added Omicron story quest 'And Another Question'. Also added required gathering points. --- .../Ultima Thule/909__MIN.json | 61 +++++ .../Ultima Thule/912__BTN.json | 61 +++++ .../Story/4603_And Another Question.json | 229 ++++++++++++++++++ 3 files changed, 351 insertions(+) create mode 100644 GatheringPaths/6.x - Endwalker/Ultima Thule/909__MIN.json create mode 100644 GatheringPaths/6.x - Endwalker/Ultima Thule/912__BTN.json create mode 100644 QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Story/4603_And Another Question.json diff --git a/GatheringPaths/6.x - Endwalker/Ultima Thule/909__MIN.json b/GatheringPaths/6.x - Endwalker/Ultima Thule/909__MIN.json new file mode 100644 index 00000000..8343042a --- /dev/null +++ b/GatheringPaths/6.x - Endwalker/Ultima Thule/909__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": 960, + "InteractionType": "None", + "AetheryteShortcut": "Ultima Thule - Reah Tahra" + } + ], + "Groups": [ + { + "Nodes": [ + { + "DataId": 34376, + "Locations": [ + { + "Position": { + "X": -586.0029, + "Y": 84.39367, + "Z": 568.1448 + } + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 34377, + "Locations": [ + { + "Position": { + "X": -578.2748, + "Y": 86.34826, + "Z": 567.2876 + } + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 34378, + "Locations": [ + { + "Position": { + "X": -600.2446, + "Y": 86.01588, + "Z": 557.4477 + } + } + ] + } + ] + } + ] +} diff --git a/GatheringPaths/6.x - Endwalker/Ultima Thule/912__BTN.json b/GatheringPaths/6.x - Endwalker/Ultima Thule/912__BTN.json new file mode 100644 index 00000000..0f22e432 --- /dev/null +++ b/GatheringPaths/6.x - Endwalker/Ultima Thule/912__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": 960, + "InteractionType": "None", + "AetheryteShortcut": "Ultima Thule - Reah Tahra" + } + ], + "Groups": [ + { + "Nodes": [ + { + "DataId": 34385, + "Locations": [ + { + "Position": { + "X": 27.77994, + "Y": 73.57088, + "Z": 695.2364 + } + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 34386, + "Locations": [ + { + "Position": { + "X": 23.20134, + "Y": 70.90392, + "Z": 698.6194 + } + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 34387, + "Locations": [ + { + "Position": { + "X": 30.69294, + "Y": 75.43362, + "Z": 688.8371 + } + } + ] + } + ] + } + ] +} 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 new file mode 100644 index 00000000..7d907484 --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Story/4603_And Another Question.json @@ -0,0 +1,229 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "plogon_enjoyer", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1043951, + "Position": { + "X": 303.8529, + "Y": 481.99442, + "Z": 154.83325 + }, + "TerritoryId": 960, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1043865, + "Position": { + "X": 301.8081, + "Y": 482.13644, + "Z": 165.02625 + }, + "TerritoryId": 960, + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_BANOMI003_04603_Q9_000_000", + "Yes": true + } + ], + "Mount": true + }, + { + "DataId": 1043539, + "Position": { + "X": 205.92041, + "Y": 566, + "Z": 257.2517 + }, + "TerritoryId": 960, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1043547, + "Position": { + "X": 110.30737, + "Y": 269.03677, + "Z": -626.7338 + }, + "TerritoryId": 960, + "InteractionType": "Interact", + "AetheryteShortcut": "Ultima Thule - Abode of the Ea", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1043552, + "Position": { + "X": 103.837524, + "Y": 269.41934, + "Z": -514.6105 + }, + "TerritoryId": 960, + "InteractionType": "Interact", + "Fly": true + }, + { + "DataId": 1043549, + "Position": { + "X": 46.219482, + "Y": 269.597, + "Z": -474.60138 + }, + "TerritoryId": 960, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1043547, + "Position": { + "X": 110.30737, + "Y": 269.03677, + "Z": -626.7338 + }, + "TerritoryId": 960, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1043549, + "Position": { + "X": 46.219482, + "Y": 269.597, + "Z": -474.60138 + }, + "TerritoryId": 960, + "InteractionType": "Interact", + "Fly": true, + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_BANOMI003_04603_Q2_000_000", + "Yes": true + } + ] + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "TerritoryId": 960, + "InteractionType": "None", + "RequiredGatheredItems": [ + { + "QuestAcceptedAsClass": "Miner", + "ItemId": 38278, + "ItemCount": 3 + }, + { + "QuestAcceptedAsClass": "Botanist", + "ItemId": 38302, + "ItemCount": 3 + } + ], + "Fly": true + }, + { + "DataId": 2013072, + "Position": { + "X": 456.65674, + "Y": 438.04077, + "Z": 310.2312 + }, + "TerritoryId": 960, + "InteractionType": "Interact", + "AetheryteShortcut": "Ultima Thule - Base Omicron", + "TargetTerritoryId": 960, + "Mount": true + }, + { + "DataId": 1043865, + "Position": { + "X": 301.8081, + "Y": 482.13644, + "Z": 165.02625 + }, + "TerritoryId": 960, + "InteractionType": "Interact", + "TargetTerritoryId": 960, + "Fly": true + }, + { + "DataId": 1043585, + "Position": { + "X": 203.84521, + "Y": 567.4998, + "Z": 246.87573 + }, + "TerritoryId": 960, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1043864, + "Position": { + "X": 244.83093, + "Y": 564.8203, + "Z": 261.76843 + }, + "TerritoryId": 960, + "InteractionType": "Interact", + "Fly": true, + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_BANOMI003_04603_Q8_000_000", + "Yes": true + } + ] + }, + { + "DataId": 1043951, + "Position": { + "X": 303.8529, + "Y": 481.99442, + "Z": 154.83325 + }, + "TerritoryId": 960, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} From 99499415dbfc17028efcf6afc35136752fef3994 Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Tue, 27 Aug 2024 00:44:30 +0800 Subject: [PATCH 085/450] Updated Omicron daily quest 'I, Omicron' --- .../Omicrons/Dailies/4623_I, Omicron.json | 61 ++++++++++++++++++- 1 file changed, 58 insertions(+), 3 deletions(-) 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 368803c3..ee549563 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 @@ -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,9 +17,65 @@ } ] }, + { + "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": "None", + "RequiredGatheredItems": [ + { + "QuestAcceptedAsClass": "Miner", + "ItemId": 38291, + "ItemCount": 3 + }, + { + "QuestAcceptedAsClass": "Botanist", + "ItemId": 38315, + "ItemCount": 3 + } + ] + }, + { + "DataId": 1044065, + "Position": { + "X": 478.9348, + "Y": 437.0016, + "Z": 340.505 + }, + "TerritoryId": 960, + "InteractionType": "Interact", + "AetheryteShortcut": "Ultima Thule - Base Omicron" + } + ] + }, { "Sequence": 255, "Steps": [ + { + "DataId": 2013072, + "Position": { + "X": 456.65674, + "Y": 438.04077, + "Z": 310.2312 + }, + "TerritoryId": 960, + "InteractionType": "Interact", + "TargetTerritoryId": 960, + "Mount": true + }, { "DataId": 1043417, "Position": { From 2f4313c9da951bcacdb2a7adad0348ac7febf7b0 Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Tue, 27 Aug 2024 00:44:45 +0800 Subject: [PATCH 086/450] Updated Omicron daily quest 'Guardians of the Galaxy' --- .../Dailies/4624_Guardians of the Galaxy.json | 78 ++++++++++++++++++- 1 file changed, 74 insertions(+), 4 deletions(-) diff --git a/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4624_Guardians of the Galaxy.json b/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4624_Guardians of the Galaxy.json index 368803c3..780945ad 100644 --- a/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4624_Guardians of the Galaxy.json +++ b/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4624_Guardians of the Galaxy.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,9 +17,79 @@ } ] }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2013073, + "Position": { + "X": 334.37085, + "Y": 483.17688, + "Z": 158.28174 + }, + "TerritoryId": 960, + "InteractionType": "Interact", + "TargetTerritoryId": 960, + "Mount": true + }, + { + "DataId": 1044066, + "Position": { + "X": 493.58362, + "Y": 436.99985, + "Z": 317.09766 + }, + "TerritoryId": 960, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1044068, + "Position": { + "X": 638.5748, + "Y": 438.6276, + "Z": 260.3341 + }, + "TerritoryId": 960, + "InteractionType": "Action", + "Action": "Electric Flux", + "Fly": true + }, + { + "DataId": 1044069, + "Position": { + "X": 668.0552, + "Y": 440.4633, + "Z": 360.79956 + }, + "TerritoryId": 960, + "InteractionType": "Action", + "Action": "Electric Flux", + "Fly": true + } + ] + }, { "Sequence": 255, "Steps": [ + { + "DataId": 2013072, + "Position": { + "X": 456.65674, + "Y": 438.04077, + "Z": 310.2312 + }, + "TerritoryId": 960, + "InteractionType": "Interact", + "TargetTerritoryId": 960, + "AetheryteShortcut": "Ultima Thule - Base Omicron", + "Mount": true + }, { "DataId": 1043417, "Position": { @@ -29,7 +98,8 @@ "Z": 148.11926 }, "TerritoryId": 960, - "InteractionType": "CompleteQuest" + "InteractionType": "CompleteQuest", + "Mount": true } ] } From b9061b31909d0171d64c4e066276926e60823021 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Tue, 27 Aug 2024 21:14:22 +0200 Subject: [PATCH 087/450] Support 'ChatMessage' in CompleteQuest steps --- Questionable/Controller/Steps/Interactions/Interact.cs | 3 +++ Questionable/Controller/Steps/Interactions/Say.cs | 7 ++++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/Questionable/Controller/Steps/Interactions/Interact.cs b/Questionable/Controller/Steps/Interactions/Interact.cs index c826fef5..b79fa904 100644 --- a/Questionable/Controller/Steps/Interactions/Interact.cs +++ b/Questionable/Controller/Steps/Interactions/Interact.cs @@ -28,6 +28,9 @@ internal static class Interact if (step.Emote != null) yield break; + if (step.ChatMessage != null) + yield break; + if (step.DataId == null) yield break; } diff --git a/Questionable/Controller/Steps/Interactions/Say.cs b/Questionable/Controller/Steps/Interactions/Say.cs index 7b8855a1..3d917b33 100644 --- a/Questionable/Controller/Steps/Interactions/Say.cs +++ b/Questionable/Controller/Steps/Interactions/Say.cs @@ -17,7 +17,12 @@ internal static class Say { public IEnumerable CreateAllTasks(Quest quest, QuestSequence sequence, QuestStep step) { - if (step.InteractionType != EInteractionType.Say) + if (step.InteractionType is EInteractionType.AcceptQuest or EInteractionType.CompleteQuest) + { + if (step.ChatMessage == null) + return []; + } + else if (step.InteractionType != EInteractionType.Say) return []; From 0473c9b17cc4411eeaab74fba185f9b4ddc2ffeb Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Tue, 27 Aug 2024 22:00:34 +0200 Subject: [PATCH 088/450] Update code for updated dalamud --- Questionable/Controller/ContextMenuController.cs | 2 +- Questionable/Controller/Steps/Gathering/TurnInDelivery.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Questionable/Controller/ContextMenuController.cs b/Questionable/Controller/ContextMenuController.cs index f8441e63..509d8372 100644 --- a/Questionable/Controller/ContextMenuController.cs +++ b/Questionable/Controller/ContextMenuController.cs @@ -99,7 +99,7 @@ internal sealed class ContextMenuController : IDisposable if (agentSatisfactionSupply->IsAgentActive()) { int maxTurnIns = agentSatisfactionSupply->NpcInfo.SatisfactionRank == 1 ? 3 : 6; - quantityToGather = Math.Min(agentSatisfactionSupply->RemainingAllowances, + quantityToGather = Math.Min(agentSatisfactionSupply->NpcData.RemainingAllowances, ((AgentSatisfactionSupply2*)agentSatisfactionSupply)->CalculateTurnInsToNextRank(maxTurnIns)); } } diff --git a/Questionable/Controller/Steps/Gathering/TurnInDelivery.cs b/Questionable/Controller/Steps/Gathering/TurnInDelivery.cs index ca6a93d8..08da1440 100644 --- a/Questionable/Controller/Steps/Gathering/TurnInDelivery.cs +++ b/Questionable/Controller/Steps/Gathering/TurnInDelivery.cs @@ -44,7 +44,7 @@ internal static class TurnInDelivery if (addon == null || !LAddon.IsAddonReady(addon)) return ETaskResult.StillRunning; - ushort remainingAllowances = agentSatisfactionSupply->RemainingAllowances; + ushort remainingAllowances = agentSatisfactionSupply->NpcData.RemainingAllowances; if (remainingAllowances == 0) { logger.LogInformation("No remaining weekly allowances"); From 33726426df2ea3b27f8c9abc66495704ed45b49b Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Tue, 27 Aug 2024 22:02:26 +0200 Subject: [PATCH 089/450] Add Rising 2024 quests --- .../5015_Rising to the Call.json | 187 ++++++++++++++++++ ... Who Are About to Set Sail Salute You.json | 121 ++++++++++++ .../QuestComponents/EventInfoComponent.cs | 16 +- 3 files changed, 318 insertions(+), 6 deletions(-) create mode 100644 QuestPaths/7.x - Dawntrail/Seasonal Events/Rising (2024)/5015_Rising to the Call.json create mode 100644 QuestPaths/7.x - Dawntrail/Seasonal Events/Rising (2024)/5016_We Who Are About to Set Sail Salute You.json diff --git a/QuestPaths/7.x - Dawntrail/Seasonal Events/Rising (2024)/5015_Rising to the Call.json b/QuestPaths/7.x - Dawntrail/Seasonal Events/Rising (2024)/5015_Rising to the Call.json new file mode 100644 index 00000000..d85aa707 --- /dev/null +++ b/QuestPaths/7.x - Dawntrail/Seasonal Events/Rising (2024)/5015_Rising to the Call.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": 1050998, + "Position": { + "X": 4.0131226, + "Y": 44.499996, + "Z": 126.17676 + }, + "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": 1050999, + "Position": { + "X": 4.837097, + "Y": 31.47563, + "Z": -256.97723 + }, + "TerritoryId": 128, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Limsa Lominsa] The Aftcastle", + "[Limsa Lominsa] Marauders' Guild" + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1051000, + "Position": { + "X": -100.175476, + "Y": 18.00033, + "Z": -15.030151 + }, + "TerritoryId": 129, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Limsa Lominsa] Marauders' Guild", + "[Limsa Lominsa] Aetheryte Plaza" + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1001217, + "Position": { + "X": -140.85602, + "Y": 18.199999, + "Z": 17.013733 + }, + "TerritoryId": 129, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 1051003, + "Position": { + "X": -188.12854, + "Y": 16, + "Z": 33.37146 + }, + "TerritoryId": 129, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, + { + "DataId": 1051002, + "Position": { + "X": -205.005, + "Y": 15.999994, + "Z": 71.97681 + }, + "TerritoryId": 129, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 1051004, + "Position": { + "X": -243.03046, + "Y": 16.199997, + "Z": 40.97046 + }, + "TerritoryId": 129, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 16 + ] + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 2014209, + "Position": { + "X": -385.1225, + "Y": 5.996765, + "Z": 33.707153 + }, + "TerritoryId": 129, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Limsa Lominsa] Hawkers' Alley", + "[Limsa Lominsa] Arcanists' Guild" + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1051001, + "Position": { + "X": 3.7994385, + "Y": 44.499992, + "Z": 126.05469 + }, + "TerritoryId": 128, + "InteractionType": "CompleteQuest", + "AethernetShortcut": [ + "[Limsa Lominsa] Arcanists' Guild", + "[Limsa Lominsa] The Aftcastle" + ] + } + ] + } + ] +} diff --git a/QuestPaths/7.x - Dawntrail/Seasonal Events/Rising (2024)/5016_We Who Are About to Set Sail Salute You.json b/QuestPaths/7.x - Dawntrail/Seasonal Events/Rising (2024)/5016_We Who Are About to Set Sail Salute You.json new file mode 100644 index 00000000..83300e64 --- /dev/null +++ b/QuestPaths/7.x - Dawntrail/Seasonal Events/Rising (2024)/5016_We Who Are About to Set Sail Salute You.json @@ -0,0 +1,121 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1051007, + "Position": { + "X": 2.2735596, + "Y": 44.499992, + "Z": 125.200195 + }, + "StopDistance": 5, + "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": 1051008, + "Position": { + "X": 2.5481567, + "Y": 43.999977, + "Z": -206.71399 + }, + "TerritoryId": 128, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Limsa Lominsa] The Aftcastle", + "[Limsa Lominsa] Marauders' Guild" + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1051009, + "Position": { + "X": 1.5106201, + "Y": 44, + "Z": -205.8595 + }, + "TerritoryId": 128, + "InteractionType": "Interact", + "StopDistance": 5 + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2014210, + "Position": { + "X": -176.62323, + "Y": 40.97046, + "Z": 185.35132 + }, + "TerritoryId": 128, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Limsa Lominsa] Marauders' Guild", + "[Limsa Lominsa] The Aftcastle" + ] + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1051010, + "Position": { + "X": -178.11859, + "Y": 40.999958, + "Z": 184.67993 + }, + "StopDistance": 5, + "TerritoryId": 128, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1051011, + "Position": { + "X": -178.63745, + "Y": 40.999916, + "Z": 186.3584 + }, + "StopDistance": 7, + "TerritoryId": 128, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/Questionable/Windows/QuestComponents/EventInfoComponent.cs b/Questionable/Windows/QuestComponents/EventInfoComponent.cs index 12e3f497..fa94117d 100644 --- a/Questionable/Windows/QuestComponents/EventInfoComponent.cs +++ b/Questionable/Windows/QuestComponents/EventInfoComponent.cs @@ -20,8 +20,7 @@ internal sealed class EventInfoComponent { private readonly List _eventQuests = [ - new EventQuest("Moonfire Faire", [new(5182), new(5183)], - new DateTime(new DateOnly(2024, 8, 26), new TimeOnly(14, 59), DateTimeKind.Utc)), + new("The Rising", [new(5015), new(5016)], AtDailyReset(new(2024, 9, 11))), ]; private readonly QuestData _questData; @@ -47,6 +46,11 @@ internal sealed class EventInfoComponent _pluginInterface = pluginInterface; } + private static DateTime AtDailyReset(DateOnly date) + { + return new DateTime(date, new TimeOnly(14, 59), DateTimeKind.Utc); + } + public bool ShouldDraw => _configuration.General.ShowIncompleteSeasonalEvents && _eventQuests.Any(IsIncomplete); public void Draw() @@ -75,10 +79,10 @@ internal sealed class EventInfoComponent width -= ImGui.CalcTextSize(FontAwesomeIcon.Check.ToIconString()).X; List startableQuests = eventQuest.QuestIds.Where(x => - _questRegistry.IsKnownQuest(x) && - _questFunctions.IsReadyToAcceptQuest(x) && - x != _questController.StartedQuest?.Quest.Id && - x != _questController.NextQuest?.Quest.Id) + _questRegistry.IsKnownQuest(x) && + _questFunctions.IsReadyToAcceptQuest(x) && + x != _questController.StartedQuest?.Quest.Id && + x != _questController.NextQuest?.Quest.Id) .ToList(); if (startableQuests.Count == 0) width = 0; From fe1d2d51dbb875e08d306f37c2b40f82a2982130 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Tue, 27 Aug 2024 22:16:04 +0200 Subject: [PATCH 090/450] Mark completed daily quests as unable to accept --- Questionable/Functions/QuestFunctions.cs | 3 +++ .../QuestComponents/CreationUtilsComponent.cs | 12 ++++++++++++ 2 files changed, 15 insertions(+) diff --git a/Questionable/Functions/QuestFunctions.cs b/Questionable/Functions/QuestFunctions.cs index 15a2dec1..4bfdce00 100644 --- a/Questionable/Functions/QuestFunctions.cs +++ b/Questionable/Functions/QuestFunctions.cs @@ -360,6 +360,9 @@ internal sealed unsafe class QuestFunctions { if (IsQuestAccepted(questId)) return false; + + if (QuestManager.Instance()->IsDailyQuestCompleted(questId.Value)) + return false; } else { diff --git a/Questionable/Windows/QuestComponents/CreationUtilsComponent.cs b/Questionable/Windows/QuestComponents/CreationUtilsComponent.cs index 33fa831c..ab73c25d 100644 --- a/Questionable/Windows/QuestComponents/CreationUtilsComponent.cs +++ b/Questionable/Windows/QuestComponents/CreationUtilsComponent.cs @@ -110,6 +110,18 @@ internal sealed class CreationUtilsComponent } #endif +#if false + var questManager = QuestManager.Instance(); + if (questManager != null) + { + for (int i = 0; i < questManager->DailyQuests.Length; ++i) + { + var dailyQuest = questManager->DailyQuests[i]; + ImGui.Text($"Daily Quest {i}: {dailyQuest.QuestId}, {dailyQuest.IsCompleted}"); + } + } +#endif + #if false var director = UIState.Instance()->DirectorTodo.Director; if (director != null) From 3d7b152cd1665b24d18290cd09fde95bc1a94841 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Tue, 27 Aug 2024 22:45:31 +0200 Subject: [PATCH 091/450] Change some teleports in 'World of Wonders' --- .../Gold Saucer/435_World of Wonders.json | 45 +++++++++++++------ 1 file changed, 32 insertions(+), 13 deletions(-) diff --git a/QuestPaths/2.x - A Realm Reborn/Unlocks/Gold Saucer/435_World of Wonders.json b/QuestPaths/2.x - A Realm Reborn/Unlocks/Gold Saucer/435_World of Wonders.json index 71199ea0..7831f300 100644 --- a/QuestPaths/2.x - A Realm Reborn/Unlocks/Gold Saucer/435_World of Wonders.json +++ b/QuestPaths/2.x - A Realm Reborn/Unlocks/Gold Saucer/435_World of Wonders.json @@ -1,6 +1,9 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": ["liza", "JerryWester"], + "Author": [ + "liza", + "JerryWester" + ], "QuestSequence": [ { "Sequence": 0, @@ -95,14 +98,19 @@ "AethernetShard": "[Gold Saucer] Chocobo Square" }, { - "TerritoryId": 144, - "InteractionType": "AttuneAetheryte", - "Aetheryte": "Gold Saucer", + "TerritoryId": 388, + "InteractionType": "None", "AethernetShortcut": [ "[Gold Saucer] Chocobo Square", "[Gold Saucer] Entrance & Card Squares" ] }, + { + "TerritoryId": 144, + "InteractionType": "AttuneAetheryte", + "Aetheryte": "Gold Saucer", + "DelaySecondsAtStart": 3 + }, { "DataId": 1011080, "Position": { @@ -156,7 +164,8 @@ { "TerritoryId": 144, "InteractionType": "AttuneAethernetShard", - "AethernetShard": "[Gold Saucer] Event Square" + "AethernetShard": "[Gold Saucer] Event Square", + "DelaySecondsAtStart": 3 }, { "Position": { @@ -198,6 +207,14 @@ { "Sequence": 6, "Steps": [ + { + "TerritoryId": 144, + "InteractionType": "None", + "AethernetShortcut": [ + "[Gold Saucer] Cactpot Board", + "[Gold Saucer] Aetheryte Plaza" + ] + }, { "DataId": 1011084, "Position": { @@ -207,10 +224,7 @@ }, "TerritoryId": 144, "InteractionType": "Interact", - "AethernetShortcut": [ - "[Gold Saucer] Cactpot Board", - "[Gold Saucer] Aetheryte Plaza" - ] + "DelaySecondsAtStart": 3 } ] }, @@ -222,6 +236,14 @@ "InteractionType": "AttuneAethernetShard", "AethernetShard": "[Gold Saucer] Round Square" }, + { + "TerritoryId": 144, + "InteractionType": "None", + "AethernetShortcut": [ + "[Gold Saucer] Round Square", + "[Gold Saucer] Entrance & Card Squares" + ] + }, { "DataId": 1010448, "Position": { @@ -232,10 +254,7 @@ "StopDistance": 5, "TerritoryId": 144, "InteractionType": "CompleteQuest", - "AethernetShortcut": [ - "[Gold Saucer] Round Square", - "[Gold Saucer] Entrance & Card Squares" - ] + "DelaySecondsAtStart": 3 } ] } From 90b04677423b96455ff72c4d2933018bfde0b81b Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Tue, 27 Aug 2024 22:52:15 +0200 Subject: [PATCH 092/450] Minor gathering path adjustments --- .../6.x - Endwalker/Ultima Thule/909__MIN.json | 16 ++++++++++++---- .../6.x - Endwalker/Ultima Thule/912__BTN.json | 14 ++++++++++---- 2 files changed, 22 insertions(+), 8 deletions(-) diff --git a/GatheringPaths/6.x - Endwalker/Ultima Thule/909__MIN.json b/GatheringPaths/6.x - Endwalker/Ultima Thule/909__MIN.json index 8343042a..9d3da596 100644 --- a/GatheringPaths/6.x - Endwalker/Ultima Thule/909__MIN.json +++ b/GatheringPaths/6.x - Endwalker/Ultima Thule/909__MIN.json @@ -19,7 +19,11 @@ "X": -586.0029, "Y": 84.39367, "Z": 568.1448 - } + }, + "MinimumAngle": -60, + "MaximumAngle": 75, + "MinimumDistance": 1, + "MaximumDistance": 3 } ] } @@ -35,7 +39,9 @@ "X": -578.2748, "Y": 86.34826, "Z": 567.2876 - } + }, + "MinimumAngle": -80, + "MaximumAngle": 60 } ] } @@ -51,11 +57,13 @@ "X": -600.2446, "Y": 86.01588, "Z": 557.4477 - } + }, + "MinimumAngle": -35, + "MaximumAngle": 145 } ] } ] } ] -} +} \ No newline at end of file diff --git a/GatheringPaths/6.x - Endwalker/Ultima Thule/912__BTN.json b/GatheringPaths/6.x - Endwalker/Ultima Thule/912__BTN.json index 0f22e432..1955433b 100644 --- a/GatheringPaths/6.x - Endwalker/Ultima Thule/912__BTN.json +++ b/GatheringPaths/6.x - Endwalker/Ultima Thule/912__BTN.json @@ -19,7 +19,9 @@ "X": 27.77994, "Y": 73.57088, "Z": 695.2364 - } + }, + "MinimumAngle": 0, + "MaximumAngle": 135 } ] } @@ -35,7 +37,9 @@ "X": 23.20134, "Y": 70.90392, "Z": 698.6194 - } + }, + "MinimumAngle": -10, + "MaximumAngle": 145 } ] } @@ -51,11 +55,13 @@ "X": 30.69294, "Y": 75.43362, "Z": 688.8371 - } + }, + "MinimumAngle": -5, + "MaximumAngle": 120 } ] } ] } ] -} +} \ No newline at end of file From 218dbd8febee62616d99abb76a99f2b351cfa1dd Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Tue, 27 Aug 2024 23:40:22 +0200 Subject: [PATCH 093/450] Daily quest update --- Directory.Build.targets | 2 +- .../Dwarves/Dailies/3925_Fast and Loud.json | 20 +++++- .../Qitari/Dailies/3829_Eggspotting.json | 56 ++++++++++++++-- .../Dailies/3830_Safety Is No Accident.json | 14 ++-- ...Fish, Two Fish, Bread Fish, Stew Fish.json | 14 ++-- .../4710_Clean Paws Make Good Artists.json | 23 ++++++- .../4630_Reclaiming the Taste of Home.json | 65 ++++++++++++++++++- .../Dailies/4632_Checking for Cavities.json | 41 +++++++++++- .../Steps/Shared/GatheringRequiredItems.cs | 1 + Questionable/Windows/QuestSelectionWindow.cs | 4 +- 10 files changed, 214 insertions(+), 26 deletions(-) diff --git a/Directory.Build.targets b/Directory.Build.targets index 8fe0a236..d7818760 100644 --- a/Directory.Build.targets +++ b/Directory.Build.targets @@ -1,5 +1,5 @@ - 2.16 + 2.17 diff --git a/QuestPaths/5.x - Shadowbringers/Allied Societies/Dwarves/Dailies/3925_Fast and Loud.json b/QuestPaths/5.x - Shadowbringers/Allied Societies/Dwarves/Dailies/3925_Fast and Loud.json index d73c93ee..f11fc566 100644 --- a/QuestPaths/5.x - Shadowbringers/Allied Societies/Dwarves/Dailies/3925_Fast and Loud.json +++ b/QuestPaths/5.x - Shadowbringers/Allied Societies/Dwarves/Dailies/3925_Fast and Loud.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,13 +29,28 @@ { "Sequence": 1, "Steps": [ - - + { + "DataId": 1034071, + "Position": { + "X": -171.4046, + "Y": 5.779212, + "Z": -110.27698 + }, + "TerritoryId": 813, + "InteractionType": "Interact", + "Fly": true + } ] }, { "Sequence": 255, "Steps": [ + { + "TerritoryId": 813, + "InteractionType": "Craft", + "ItemId": 31179, + "ItemCount": 3 + }, { "Position": { "X": -615.73865, diff --git a/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Dailies/3829_Eggspotting.json b/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Dailies/3829_Eggspotting.json index 5b359ba6..6fc790bd 100644 --- a/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Dailies/3829_Eggspotting.json +++ b/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Dailies/3829_Eggspotting.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,54 @@ } ] }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1032830, + "Position": { + "X": -134.02002, + "Y": -18.460577, + "Z": 303.5476 + }, + "TerritoryId": 817, + "InteractionType": "Interact", + "AetheryteShortcut": "Rak'tika - Slitherbough" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1032831, + "Position": { + "X": -54.795166, + "Y": 0.7328947, + "Z": 217.09009 + }, + "TerritoryId": 817, + "InteractionType": "UseItem", + "ItemId": 2002980, + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1032830, + "Position": { + "X": -134.02002, + "Y": -18.460577, + "Z": 303.5476 + }, + "TerritoryId": 817, + "InteractionType": "Interact" + } + ] + }, { "Sequence": 255, "Steps": [ @@ -30,12 +77,7 @@ "TerritoryId": 817, "InteractionType": "WalkTo", "AetheryteShortcut": "Rak'tika - Fanow", - "Fly": true, - "RequiredGatheredItems": [ - - - - ] + "Fly": true }, { "DataId": 1032643, 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 5b359ba6..deded4f5 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 @@ -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, @@ -32,9 +31,16 @@ "AetheryteShortcut": "Rak'tika - Fanow", "Fly": true, "RequiredGatheredItems": [ - - - + { + "QuestAcceptedAsClass": "Miner", + "ItemId": 29535, + "ItemCount": 3 + }, + { + "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 5b359ba6..17c44e90 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 @@ -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, @@ -32,9 +31,16 @@ "AetheryteShortcut": "Rak'tika - Fanow", "Fly": true, "RequiredGatheredItems": [ - - - + { + "QuestAcceptedAsClass": "Miner", + "ItemId": 29536, + "ItemCount": 3 + }, + { + "QuestAcceptedAsClass": "Botanist", + "ItemId": 29562, + "ItemCount": 3 + } ] }, { diff --git a/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Dailies/4710_Clean Paws Make Good Artists.json b/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Dailies/4710_Clean Paws Make Good Artists.json index d731dcbc..4bd89209 100644 --- a/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Dailies/4710_Clean Paws Make Good Artists.json +++ b/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Dailies/4710_Clean Paws Make Good Artists.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,29 @@ { "Sequence": 1, "Steps": [ + { + "DataId": 1044610, + "Position": { + "X": 588.281, + "Y": -161.13907, + "Z": -761.0742 + }, + "TerritoryId": 959, + "InteractionType": "Interact", + "AetheryteShortcut": "Mare Lamentorum - Bestways Burrow", + "Fly": true + } ] }, { "Sequence": 255, "Steps": [ + { + "TerritoryId": 959, + "InteractionType": "Craft", + "ItemId": 38885, + "ItemCount": 1 + }, { "Position": { "X": -201.42024, @@ -42,7 +59,9 @@ "Z": -273.68756 }, "TerritoryId": 959, - "InteractionType": "WalkTo" + "InteractionType": "WalkTo", + "AetheryteShortcut": "Mare Lamentorum - Bestways Burrow", + "Fly": true }, { "DataId": 1044403, 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 368803c3..91ba26b4 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 @@ -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,9 +17,73 @@ } ] }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2013074, + "Position": { + "X": 304.3412, + "Y": 483.48206, + "Z": 143.11438 + }, + "TerritoryId": 960, + "InteractionType": "Interact", + "TargetTerritoryId": 1073 + }, + { + "DataId": 1044075, + "Position": { + "X": -64.4389, + "Y": 493.32922, + "Z": -4.409851 + }, + "TerritoryId": 1073, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1044075, + "Position": { + "X": -64.4389, + "Y": 493.32922, + "Z": -4.409851 + }, + "TerritoryId": 1073, + "InteractionType": "Interact", + "RequiredGatheredItems": [ + { + "QuestAcceptedAsClass": "Miner", + "ItemId": 38296, + "ItemCount": 3 + }, + { + "QuestAcceptedAsClass": "Botanist", + "ItemId": 38320, + "ItemCount": 3 + } + ] + } + ] + }, { "Sequence": 255, "Steps": [ + { + "DataId": 1043421, + "Position": { + "X": 2.4261475, + "Y": 499.87805, + "Z": 46.036377 + }, + "TerritoryId": 1073, + "InteractionType": "Interact", + "TargetTerritoryId": 960 + }, { "DataId": 1043417, "Position": { 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 368803c3..fdec020c 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 @@ -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,9 +17,49 @@ } ] }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1044081, + "Position": { + "X": -503.99023, + "Y": 74.16917, + "Z": 261.82947 + }, + "TerritoryId": 960, + "InteractionType": "Interact", + "AetheryteShortcut": "Ultima Thule - Reah Tahra", + "RequiredGatheredItems": [ + { + "QuestAcceptedAsClass": "Miner", + "ItemId": 38299, + "ItemCount": 3 + }, + { + "QuestAcceptedAsClass": "Botanist", + "ItemId": 38323, + "ItemCount": 3 + } + ] + } + ] + }, { "Sequence": 255, "Steps": [ + { + "DataId": 2013072, + "Position": { + "X": 456.65674, + "Y": 438.04077, + "Z": 310.2312 + }, + "TerritoryId": 960, + "InteractionType": "Interact", + "TargetTerritoryId": 960, + "AetheryteShortcut": "Ultima Thule - Base Omicron" + }, { "DataId": 1043417, "Position": { diff --git a/Questionable/Controller/Steps/Shared/GatheringRequiredItems.cs b/Questionable/Controller/Steps/Shared/GatheringRequiredItems.cs index 6e821e6a..b500046b 100644 --- a/Questionable/Controller/Steps/Shared/GatheringRequiredItems.cs +++ b/Questionable/Controller/Steps/Shared/GatheringRequiredItems.cs @@ -82,6 +82,7 @@ internal static class GatheringRequiredItems "Wait(navmesh ready)"); yield return CreateStartGatheringTask(gatheringPointId, requiredGatheredItems); + yield return new WaitAtEnd.WaitDelay(); } } diff --git a/Questionable/Windows/QuestSelectionWindow.cs b/Questionable/Windows/QuestSelectionWindow.cs index ba9b5ee1..a53b79e9 100644 --- a/Questionable/Windows/QuestSelectionWindow.cs +++ b/Questionable/Windows/QuestSelectionWindow.cs @@ -226,9 +226,7 @@ internal sealed class QuestSelectionWindow : LWindow if (knownQuest != null && knownQuest.FindSequence(0)?.LastStep()?.InteractionType is EInteractionType.AcceptQuest or EInteractionType.AcceptLeve && - !_questFunctions.IsQuestAccepted(quest.QuestId) && - !_questFunctions.IsQuestLocked(quest.QuestId) && - (quest.IsRepeatable || !_questFunctions.IsQuestAcceptedOrComplete(quest.QuestId))) + _questFunctions.IsReadyToAcceptQuest(quest.QuestId)) { ImGui.BeginDisabled(_questController.NextQuest != null || _questController.SimulatedQuest != null); From 916082ef35d5279d5ec543f4eef4522a61819970 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Wed, 28 Aug 2024 10:35:24 +0200 Subject: [PATCH 094/450] Add Rising dialogue/NextQuestId --- .../Rising (2024)/5015_Rising to the Call.json | 3 ++- .../5016_We Who Are About to Set Sail Salute You.json | 9 ++++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/QuestPaths/7.x - Dawntrail/Seasonal Events/Rising (2024)/5015_Rising to the Call.json b/QuestPaths/7.x - Dawntrail/Seasonal Events/Rising (2024)/5015_Rising to the Call.json index d85aa707..dc0b144b 100644 --- a/QuestPaths/7.x - Dawntrail/Seasonal Events/Rising (2024)/5015_Rising to the Call.json +++ b/QuestPaths/7.x - Dawntrail/Seasonal Events/Rising (2024)/5015_Rising to the Call.json @@ -179,7 +179,8 @@ "AethernetShortcut": [ "[Limsa Lominsa] Arcanists' Guild", "[Limsa Lominsa] The Aftcastle" - ] + ], + "NextQuestId": 5016 } ] } diff --git a/QuestPaths/7.x - Dawntrail/Seasonal Events/Rising (2024)/5016_We Who Are About to Set Sail Salute You.json b/QuestPaths/7.x - Dawntrail/Seasonal Events/Rising (2024)/5016_We Who Are About to Set Sail Salute You.json index 83300e64..3d92545a 100644 --- a/QuestPaths/7.x - Dawntrail/Seasonal Events/Rising (2024)/5016_We Who Are About to Set Sail Salute You.json +++ b/QuestPaths/7.x - Dawntrail/Seasonal Events/Rising (2024)/5016_We Who Are About to Set Sail Salute You.json @@ -113,7 +113,14 @@ }, "StopDistance": 7, "TerritoryId": 128, - "InteractionType": "CompleteQuest" + "InteractionType": "CompleteQuest", + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_FESANX002_05016_Q52_000_082", + "Yes": true + } + ] } ] } From 33774df23b518c61c9ab6db1109c7cf70b3617d7 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Wed, 28 Aug 2024 11:48:40 +0200 Subject: [PATCH 095/450] Daily quest updates --- .../Dailies/4705_Whisks for Whiskers.json | 22 ++++++- .../4706_Sets, Reps, and Loporrits.json | 37 +++++++++++- .../Dailies/4612_A Fertile Blend.json | 25 +++++++- .../Dailies/4613_The Hunger Pangs.json | 58 ++++++++++++++++++- 4 files changed, 136 insertions(+), 6 deletions(-) diff --git a/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Dailies/4705_Whisks for Whiskers.json b/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Dailies/4705_Whisks for Whiskers.json index d731dcbc..8fc84f3e 100644 --- a/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Dailies/4705_Whisks for Whiskers.json +++ b/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Dailies/4705_Whisks for Whiskers.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": 1044592, + "Position": { + "X": -493.40048, + "Y": -158.89024, + "Z": -384.29846 + }, + "TerritoryId": 959, + "InteractionType": "Interact", + "Fly": true + } ] }, { "Sequence": 255, "Steps": [ + { + "TerritoryId": 959, + "InteractionType": "Craft", + "ItemId": 38879, + "ItemCount": 2 + }, { "Position": { "X": -201.42024, @@ -42,7 +58,9 @@ "Z": -273.68756 }, "TerritoryId": 959, - "InteractionType": "WalkTo" + "InteractionType": "WalkTo", + "AetheryteShortcut": "Mare Lamentorum - Bestways Burrow", + "Fly": true }, { "DataId": 1044403, diff --git a/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Dailies/4706_Sets, Reps, and Loporrits.json b/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Dailies/4706_Sets, Reps, and Loporrits.json index d731dcbc..343a44a3 100644 --- a/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Dailies/4706_Sets, Reps, and Loporrits.json +++ b/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Dailies/4706_Sets, Reps, and Loporrits.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,6 +29,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": 38881, + "ItemCount": 1 + }, + { + "DataId": 1044602, + "Position": { + "X": 463.0349, + "Y": -167.81126, + "Z": -490.13504 + }, + "TerritoryId": 959, + "InteractionType": "Interact", + "Fly": true + } ] }, { @@ -42,7 +73,9 @@ "Z": -273.68756 }, "TerritoryId": 959, - "InteractionType": "WalkTo" + "InteractionType": "WalkTo", + "AetheryteShortcut": "Mare Lamentorum - Bestways Burrow", + "Fly": true }, { "DataId": 1044403, 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 368803c3..298df76d 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 @@ -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, @@ -21,6 +20,30 @@ { "Sequence": 255, "Steps": [ + { + "DataId": 2013072, + "Position": { + "X": 456.65674, + "Y": 438.04077, + "Z": 310.2312 + }, + "TerritoryId": 960, + "InteractionType": "Interact", + "TargetTerritoryId": 960, + "AetheryteShortcut": "Ultima Thule - Base Omicron", + "RequiredGatheredItems": [ + { + "QuestAcceptedAsClass": "Miner", + "ItemId": 38283, + "ItemCount": 3 + }, + { + "QuestAcceptedAsClass": "Botanist", + "ItemId": 38307, + "ItemCount": 3 + } + ] + }, { "DataId": 1043417, "Position": { diff --git a/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4613_The Hunger Pangs.json b/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4613_The Hunger Pangs.json index 368803c3..e8779c33 100644 --- a/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4613_The Hunger Pangs.json +++ b/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4613_The Hunger Pangs.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,9 +17,66 @@ } ] }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1044048, + "Position": { + "X": -347.70734, + "Y": 263.0844, + "Z": -463.73694 + }, + "TerritoryId": 960, + "InteractionType": "Interact", + "AetheryteShortcut": "Ultima Thule - Abode of the Ea", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 1044049, + "Position": { + "X": -376.21124, + "Y": 266.08542, + "Z": -551.90356 + }, + "TerritoryId": 960, + "InteractionType": "Interact", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + } + ] + }, { "Sequence": 255, "Steps": [ + { + + "DataId": 2013072, + "Position": { + "X": 456.65674, + "Y": 438.04077, + "Z": 310.2312 + }, + "TerritoryId": 960, + "InteractionType": "Interact", + "TargetTerritoryId": 960, + "AetheryteShortcut": "Ultima Thule - Base Omicron" + }, { "DataId": 1043417, "Position": { From c95a80de34cc97a7ddd0e8b74efc73f05e1697ea Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Wed, 28 Aug 2024 22:09:38 +0800 Subject: [PATCH 096/450] Added Ananta story quest 'Griffins Rampant' --- .../Ananta/Story/3037_Griffins Rampant.json | 159 ++++++++++++++++++ 1 file changed, 159 insertions(+) create mode 100644 QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Story/3037_Griffins Rampant.json diff --git a/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Story/3037_Griffins Rampant.json b/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Story/3037_Griffins Rampant.json new file mode 100644 index 00000000..aa55efd9 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Story/3037_Griffins Rampant.json @@ -0,0 +1,159 @@ +{ + "$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": 1024896, + "Position": { + "X": -630.2129, + "Y": 130.26343, + "Z": -452.20117 + }, + "TerritoryId": 612, + "InteractionType": "Interact", + "AetheryteShortcut": "Fringes - Castrum Oriens", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1024897, + "Position": { + "X": -76.40198, + "Y": -5.32758e-12, + "Z": -48.233826 + }, + "TerritoryId": 635, + "InteractionType": "Interact", + "Mount": true, + "AetheryteShortcut": "Rhalgr's Reach", + "AethernetShortcut": [ + "[Rhalgr's Reach] Aetheryte Plaza", + "[Rhalgr's Reach] Western Rhalgr's Reach" + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1024952, + "Position": { + "X": 12.008789, + "Y": 55.97821, + "Z": 237.96448 + }, + "TerritoryId": 612, + "InteractionType": "Interact", + "AetheryteShortcut": "Fringes - Peering Stones", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1024900, + "Position": { + "X": -50.980408, + "Y": 56.02146, + "Z": 218.46338 + }, + "TerritoryId": 612, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1024901, + "Position": { + "X": -80.52191, + "Y": 56.021286, + "Z": 231.40308 + }, + "TerritoryId": 612, + "InteractionType": "Action", + "Action": "Buffet (Griffin)", + "Fly": true + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1024901, + "Position": { + "X": -80.52191, + "Y": 56.021286, + "Z": 231.40308 + }, + "TerritoryId": 612, + "InteractionType": "Action", + "Action": "Buffet (Griffin)", + "Fly": true + } + ] + }, + { + "Sequence": 7, + "Steps": [ + { + "DataId": 1024901, + "Position": { + "X": -80.52191, + "Y": 56.021286, + "Z": 231.40308 + }, + "TerritoryId": 612, + "InteractionType": "Action", + "Action": "Buffet (Griffin)", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1024901, + "Position": { + "X": -80.52191, + "Y": 56.021286, + "Z": 231.40308 + }, + "TerritoryId": 612, + "InteractionType": "CompleteQuest", + "Mount": false + } + ] + } + ] +} From 1112af873f4a829d2f1c1839b6a87b7cdef5aba7 Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Wed, 28 Aug 2024 22:09:59 +0800 Subject: [PATCH 097/450] Added Ananta daily quest 'A Signal for the Senses' --- .../Dailies/3050_A Signal for the Senses.json | 32 +++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) diff --git a/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Dailies/3050_A Signal for the Senses.json b/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Dailies/3050_A Signal for the Senses.json index 2ff0c260..da21fa33 100644 --- a/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Dailies/3050_A Signal for the Senses.json +++ b/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Dailies/3050_A Signal for the Senses.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,7 +21,35 @@ { "Sequence": 1, "Steps": [ - + { + "DataId": 2009341, + "Position": { + "X": 333.1808, + "Y": 61.17334, + "Z": -362.41705 + }, + "TerritoryId": 612, + "InteractionType": "UseItem", + "ItemId": 2002437, + "AetheryteShortcut": "Rhalgr's Reach", + "AethernetShortcut": [ + "[Rhalgr's Reach] Aetheryte Plaza", + "[Rhalgr's Reach] Fringes Gate" + ], + "Fly": true + }, + { + "DataId": 2009340, + "Position": { + "X": 90.01294, + "Y": 74.44873, + "Z": -566.03345 + }, + "TerritoryId": 612, + "InteractionType": "UseItem", + "ItemId": 2002437, + "Fly": true + } ] }, { @@ -36,6 +63,7 @@ }, "TerritoryId": 612, "InteractionType": "WalkTo", + "AetheryteShortcut": "Fringes - Peering Stones", "Fly": true }, { From 248a636de5439c0c65821a20b07a730c641ac556 Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Wed, 28 Aug 2024 22:10:10 +0800 Subject: [PATCH 098/450] Added Ananta daily quest 'Criminal Crossing' --- .../Dailies/3051_Criminal Crossings.json | 90 ++++++++++++++++++- 1 file changed, 88 insertions(+), 2 deletions(-) diff --git a/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Dailies/3051_Criminal Crossings.json b/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Dailies/3051_Criminal Crossings.json index 2ff0c260..cbd8ff8a 100644 --- a/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Dailies/3051_Criminal Crossings.json +++ b/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Dailies/3051_Criminal Crossings.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,7 +21,94 @@ { "Sequence": 1, "Steps": [ - + { + "DataId": 1025062, + "Position": { + "X": -345.7237, + "Y": 43.09622, + "Z": 177.84387 + }, + "TerritoryId": 612, + "InteractionType": "Combat", + "Fly": true, + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_BANANA402_03051_Q1_000_000", + "Answer": "TEXT_BANANA402_03051_A1_000_002" + } + ], + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [8587] + }, + { + "DataId": 1025061, + "Position": { + "X": -488.18192, + "Y": 81.128265, + "Z": -191.33289 + }, + "TerritoryId": 612, + "InteractionType": "Combat", + "SkipConditions": { + "StepIf": { + "NotTargetable": true + } + }, + "Fly": true, + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_BANANA402_03051_Q1_000_000", + "Answer": "TEXT_BANANA402_03051_A1_000_002" + } + ], + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [8586], + "$": "This NPC will become an enemy" + }, + { + "DataId": 1025119, + "Position": { + "X": -488.18192, + "Y": 81.128265, + "Z": -191.33289 + }, + "TerritoryId": 612, + "InteractionType": "Interact", + "SkipConditions": { + "StepIf": { + "NotTargetable": true + } + }, + "Fly": true, + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_BANANA402_03051_Q1_000_000", + "Answer": "TEXT_BANANA402_03051_A1_000_001" + } + ], + "$": "This NPC will not become an enemy" + }, + { + "DataId": 1025118, + "Position": { + "X": -572.96106, + "Y": 112.436066, + "Z": -229.29736 + }, + "TerritoryId": 612, + "InteractionType": "Interact", + "Fly": true, + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_BANANA402_03051_Q1_000_000", + "Answer": "TEXT_BANANA402_03051_A1_000_001" + } + ] + } ] }, { From f3082d8636b49ae1eedce933de88897eb7733680 Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Wed, 28 Aug 2024 22:10:22 +0800 Subject: [PATCH 099/450] Added Ananta daily quest 'When Feathers Fly' --- .../Dailies/3052_When Feathers Fly.json | 26 +++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Dailies/3052_When Feathers Fly.json b/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Dailies/3052_When Feathers Fly.json index 2ff0c260..294d2fbe 100644 --- a/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Dailies/3052_When Feathers Fly.json +++ b/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Dailies/3052_When Feathers Fly.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,7 +21,30 @@ { "Sequence": 1, "Steps": [ - + { + "DataId": 1025063, + "Position": { + "X": 291.73718, + "Y": 73.622604, + "Z": -496.87955 + }, + "TerritoryId": 612, + "InteractionType": "Emote", + "Emote": "soothe", + "Fly": true + }, + { + "DataId": 1025065, + "Position": { + "X": -73.04492, + "Y": 62.044453, + "Z": -878.78235 + }, + "TerritoryId": 612, + "InteractionType": "Emote", + "Emote": "rally", + "Fly": true + } ] }, { From da332f503cbfa11e29c74e13c84545001f2e25ad Mon Sep 17 00:00:00 2001 From: FalconTaterz Date: Sat, 24 Aug 2024 19:33:29 -0500 Subject: [PATCH 100/450] Add Hildibrand quest paths up to 8-armed --- ...1204_The Rise and Fall of a Gentlemen.json | 114 ++++++++ .../1205_Back in the Saddle.json | 72 +++++ .../1206_After Her Own Heart.json | 126 +++++++++ .../1207_The Immaculate Deception.json | 265 ++++++++++++++++++ .../1315_The Science of Deduction.json | 173 ++++++++++++ .../Hildibrand Quests/1316_The Hammer.json | 75 +++++ .../1317_Manderville Men.json | 69 +++++ .../1318_The Three Collectors.json | 154 ++++++++++ .../1438_The Business of Betrothal.json | 154 ++++++++++ .../1439_A Burst of Inspiration.json | 83 ++++++ .../1440_Seeds of Rebellion.json | 150 ++++++++++ .../1441_A Case of Indecency.json | 101 +++++++ 12 files changed, 1536 insertions(+) create mode 100644 QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1204_The Rise and Fall of a Gentlemen.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1205_Back in the Saddle.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1206_After Her Own Heart.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1207_The Immaculate Deception.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1315_The Science of Deduction.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1316_The Hammer.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1317_Manderville Men.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1318_The Three Collectors.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1438_The Business of Betrothal.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1439_A Burst of Inspiration.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1440_Seeds of Rebellion.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1441_A Case of Indecency.json diff --git a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1204_The Rise and Fall of a Gentlemen.json b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1204_The Rise and Fall of a Gentlemen.json new file mode 100644 index 00000000..ae051bb2 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1204_The Rise and Fall of a Gentlemen.json @@ -0,0 +1,114 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "FalconTaterz", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "AetheryteShortcut": "Ul'dah", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + }, + "DataId": 1001285, + "Position": { + "X": -68.77246, + "Y": 4.0411124, + "Z": -126.51257 + }, + "TerritoryId": 130, + "InteractionType": "AcceptQuest", + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_CHRHDB101_01204_Q1_000_1", + "Yes": true + } + ] + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "AetheryteShortcut": "Eastern Thanalan - Camp Drybone", + "Mount": true, + "Fly": true, + "DataId": 1005709, + "Position": { + "X": -464.16425, + "Y": -26.945036, + "Z": 85.40466 + }, + "TerritoryId": 145, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "AetheryteShortcut": "Southern Thanalan - Forgotten Springs", + "Mount": true, + "Fly": true, + "Position": { + "X": -273.9414, + "Y": 9.756445, + "Z": 222.65837 + }, + "TerritoryId": 146, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "KillEnemyDataIds": [] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "AetheryteShortcut": "Eastern Thanalan - Camp Drybone", + "Mount": true, + "Fly": true, + "DataId": 1005709, + "Position": { + "X": -464.16425, + "Y": -26.945036, + "Z": 85.40466 + }, + "TerritoryId": 145, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "AetheryteShortcut": "Southern Thanalan - Forgotten Springs", + "Mount": true, + "Fly": true, + "DataId": 1005710, + "Position": { + "X": 4.4403076, + "Y": 7.2767544, + "Z": 885.55725 + }, + "TerritoryId": 146, + "InteractionType": "CompleteQuest", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_CHRHDB101_01204_Q2_000_1", + "Answer": "TEXT_CHRHDB101_01204_Q2A2_000_2" + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1205_Back in the Saddle.json b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1205_Back in the Saddle.json new file mode 100644 index 00000000..dabe7d3b --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1205_Back in the Saddle.json @@ -0,0 +1,72 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "FalconTaterz", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1005711, + "Position": { + "X": 4.837097, + "Y": 7.4445505, + "Z": 884.70276 + }, + "TerritoryId": 146, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "AetheryteShortcut": "Ul'dah", + "DataId": 1004333, + "Position": { + "X": -101.854004, + "Y": 4.0131226, + "Z": -98.95477 + }, + "TerritoryId": 130, + "InteractionType": "Interact" + }, + { + "DataId": 1004331, + "Position": { + "X": -20.096191, + "Y": 4.9999676, + "Z": -133.22656 + }, + "TerritoryId": 130, + "InteractionType": "Interact" + }, + { + "DataId": 1001313, + "Position": { + "X": 16.372864, + "Y": 7.9999795, + "Z": -106.21808 + }, + "TerritoryId": 130, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1001285, + "Position": { + "X": -68.77246, + "Y": 4.0411124, + "Z": -126.51257 + }, + "TerritoryId": 130, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} \ No newline at end of file diff --git a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1206_After Her Own Heart.json b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1206_After Her Own Heart.json new file mode 100644 index 00000000..efc214dd --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1206_After Her Own Heart.json @@ -0,0 +1,126 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "FalconTaterz", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "AetheryteShortcut": "Ul'dah", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + }, + "DataId": 1001285, + "Position": { + "X": -68.77246, + "Y": 4.0411124, + "Z": -126.51257 + }, + "TerritoryId": 130, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ], + "DataId": 1001691, + "Position": { + "X": 142.16821, + "Y": 7.4920034, + "Z": 104.72266 + }, + "TerritoryId": 131, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "AethernetShortcut": [ + "[Ul'dah] Weavers' Guild", + "[Ul'dah] Aetheryte Plaza" + ], + "DataId": 1005713, + "Position": { + "X": -72.98395, + "Y": 3.9999995, + "Z": -113.02362 + }, + "TerritoryId": 130, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1005716, + "Position": { + "X": -144.76239, + "Y": 12, + "Z": 0.99176025 + }, + "TerritoryId": 130, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1005717, + "Position": { + "X": -147.17328, + "Y": 12, + "Z": -3.6469727 + }, + "TerritoryId": 130, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 2003001, + "Position": { + "X": -144.79291, + "Y": 11.9782715, + "Z": -3.4943848 + }, + "TerritoryId": 130, + "InteractionType": "UseItem", + "ItemId": 2001126 + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1005716, + "Position": { + "X": -144.76239, + "Y": 12, + "Z": 0.99176025 + }, + "TerritoryId": 130, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} \ No newline at end of file diff --git a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1207_The Immaculate Deception.json b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1207_The Immaculate Deception.json new file mode 100644 index 00000000..540ab83e --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1207_The Immaculate Deception.json @@ -0,0 +1,265 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "FalconTaterz", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "AetheryteShortcut": "Ul'dah", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + }, + "DataId": 1005721, + "Position": { + "X": -144.06049, + "Y": 12, + "Z": -5.5390625 + }, + "TerritoryId": 130, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "AetheryteShortcut": "Eastern Thanalan - Camp Drybone", + "Mount": true, + "Fly": true, + "DataId": 1005722, + "Position": { + "X": -550.4387, + "Y": -5.5688405, + "Z": -176.71478 + }, + "TerritoryId": 145, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Mount": true, + "Fly": true, + "DataId": 1004042, + "Position": { + "X": -568.4138, + "Y": 5.893569, + "Z": -221.27112 + }, + "TerritoryId": 145, + "InteractionType": "Interact" + }, + { + "DataId": 1003940, + "Position": { + "X": -540.94763, + "Y": 4.134529, + "Z": -241.07733 + }, + "TerritoryId": 145, + "InteractionType": "Interact" + }, + { + "DataId": 1003939, + "Position": { + "X": -540.09314, + "Y": 4.137387, + "Z": -240.98578 + }, + "TerritoryId": 145, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "Mount": true, + "Fly": true, + "DataId": 1005724, + "Position": { + "X": -490.44025, + "Y": 2.8072534, + "Z": -274.34198 + }, + "TerritoryId": 145, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "AetheryteShortcut": "Eastern Thanalan - Camp Drybone", + "Mount": true, + "Fly": true, + "DataId": 1005727, + "Position": { + "X": -221.11853, + "Y": -37.79669, + "Z": 149.67566 + }, + "TerritoryId": 145, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "AetheryteShortcut": "Eastern Thanalan - Camp Drybone", + "DataId": 1005727, + "Position": { + "X": -221.11853, + "Y": -37.79669, + "Z": 149.67566 + }, + "TerritoryId": 145, + "InteractionType": "UseItem", + "ItemId": 2001150 + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "AetheryteShortcut": "Eastern Thanalan - Camp Drybone", + "DataId": 1005727, + "Position": { + "X": -221.11853, + "Y": -37.79669, + "Z": 149.67566 + }, + "TerritoryId": 145, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 7, + "Steps": [ + { + "AetheryteShortcut": "Eastern Thanalan - Camp Drybone", + "DataId": 1005727, + "Position": { + "X": -221.11853, + "Y": -37.79669, + "Z": 149.67566 + }, + "TerritoryId": 145, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 8, + "Steps": [ + { + "AetheryteShortcut": "Eastern Thanalan - Camp Drybone", + "DataId": 1005727, + "Position": { + "X": -221.11853, + "Y": -37.79669, + "Z": 149.67566 + }, + "TerritoryId": 145, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 9, + "Steps": [ + { + "AetheryteShortcut": "Eastern Thanalan - Camp Drybone", + "DataId": 1005727, + "Position": { + "X": -221.11853, + "Y": -37.79669, + "Z": 149.67566 + }, + "TerritoryId": 145, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 10, + "Steps": [ + { + "DataId": 2003006, + "Position": { + "X": -208.5451, + "Y": -37.9187, + "Z": 151.87305 + }, + "TerritoryId": 145, + "InteractionType": "Interact" + }, + { + "DataId": 2003005, + "Position": { + "X": -220.87439, + "Y": -37.857666, + "Z": 166.0028 + }, + "TerritoryId": 145, + "InteractionType": "Interact" + }, + { + "DataId": 2003004, + "Position": { + "X": -206.46985, + "Y": -37.644104, + "Z": 187.36548 + }, + "TerritoryId": 145, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 11, + "Steps": [ + { + "DataId": 1005730, + "Position": { + "X": -222.49182, + "Y": -37.896374, + "Z": 159.3805 + }, + "TerritoryId": 145, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Mount": true, + "Fly": true, + "DataId": 1005731, + "Position": { + "X": -526.8788, + "Y": 5.404997, + "Z": -246.50952 + }, + "TerritoryId": 145, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} \ No newline at end of file diff --git a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1315_The Science of Deduction.json b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1315_The Science of Deduction.json new file mode 100644 index 00000000..03f940e2 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1315_The Science of Deduction.json @@ -0,0 +1,173 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "FalconTaterz", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "AetheryteShortcut": "Eastern Thanalan - Camp Drybone", + "SkipConditions": {"AetheryteShortcutIf": {"InSameTerritory": true}}, + "DataId": 1005884, + "Position": { + "X": -526.26843, + "Y": 5.4049973, + "Z": -249.25616 + }, + "TerritoryId": 145, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "AetheryteShortcut": "Eastern Thanalan - Camp Drybone", + "DataId": 1003931, + "Position": { + "X": -379.6292, + "Y": -55.85506, + "Z": 95.04846 + }, + "TerritoryId": 145, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "AetheryteShortcut": "Western Thanalan - Horizon", + "Mount": true, + "DataId": 1008709, + "Position": { + "X": -431.7846, + "Y": 28.038658, + "Z": -383.1693 + }, + "TerritoryId": 140, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "AetheryteShortcut": "Western Thanalan - Horizon", + "Mount": true, + "Fly": true, + "DataId": 1008713, + "Position": { + "X": 108.99512, + "Y": 57.816406, + "Z": 12.191956 + }, + "TerritoryId": 140, + "InteractionType": "Interact" + }, + { + "Mount": true, + "Fly": true, + "DataId": 1002022, + "Position": { + "X": 12.039368, + "Y": 22.144684, + "Z": 65.384766 + }, + "TerritoryId": 140, + "InteractionType": "Interact" + }, + { + "Mount": true, + "Fly": true, + "DataId": 1008715, + "Position": { + "X": -69.90167, + "Y": 13.38208, + "Z": 158.73962 + }, + "TerritoryId": 140, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 2003654, + "Position": { + "X": -68.55884, + "Y": 13.809326, + "Z": 159.16675 + }, + "TerritoryId": 140, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 2003658, + "Position": { + "X": -71.06128, + "Y": 13.443176, + "Z": 155.9624 + }, + "TerritoryId": 140, + "InteractionType": "Interact" + }, + { + "DataId": 2003656, + "Position": { + "X": -72.95343, + "Y": 13.504211, + "Z": 159.19727 + }, + "TerritoryId": 140, + "InteractionType": "Interact" + }, + { + "DataId": 2003659, + "Position": { + "X": -76.15784, + "Y": 13.443176, + "Z": 155.90137 + }, + "TerritoryId": 140, + "InteractionType": "Interact" + }, + { + "DataId": 2003657, + "Position": { + "X": -80.18622, + "Y": 13.412659, + "Z": 158.12915 + }, + "TerritoryId": 140, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1008716, + "Position": { + "X": -68.00946, + "Y": 13.443176, + "Z": 157.5188 + }, + "TerritoryId": 140, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} \ No newline at end of file diff --git a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1316_The Hammer.json b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1316_The Hammer.json new file mode 100644 index 00000000..b0d8c5e0 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1316_The Hammer.json @@ -0,0 +1,75 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "FalconTaterz", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1008716, + "Position": { + "X": -68.00946, + "Y": 13.443176, + "Z": 157.5188 + }, + "TerritoryId": 140, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "AetheryteShortcut": "Northern Thanalan - Camp Bluefog", + "Mount": true, + "Fly": true, + "DataId": 2003664, + "Position": { + "X": 11.337402, + "Y": 2.670288, + "Z": 320.943 + }, + "TerritoryId": 147, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Mount": true, + "DataId": 2003665, + "Position": { + "X": 34.50061, + "Y": 12.191956, + "Z": 254.13892 + }, + "TerritoryId": 147, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Mount": true, + "DataId": 2003666, + "Position": { + "X": 111.192505, + "Y": 19.424683, + "Z": 121.20239 + }, + "TerritoryId": 147, + "InteractionType": "Interact" + }, + { + "TerritoryId": 147, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} \ No newline at end of file diff --git a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1317_Manderville Men.json b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1317_Manderville Men.json new file mode 100644 index 00000000..c4be6b52 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1317_Manderville Men.json @@ -0,0 +1,69 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "FalconTaterz", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1008722, + "Position": { + "X": 109.7887, + "Y": 18.36741, + "Z": 121.72119 + }, + "TerritoryId": 147, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2003667, + "Position": { + "X": 139.48267, + "Y": 20.279175, + "Z": 102.92212 + }, + "TerritoryId": 147, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "AetheryteShortcut": "Western Thanalan - Horizon", + "Mount": true, + "Fly": true, + "DataId": 1008730, + "Position": { + "X": -431.26575, + "Y": 28.038658, + "Z": -381.4298 + }, + "TerritoryId": 140, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1008735, + "Position": { + "X": -420.2793, + "Y": 23.113977, + "Z": -367.17786 + }, + "TerritoryId": 140, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} \ No newline at end of file diff --git a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1318_The Three Collectors.json b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1318_The Three Collectors.json new file mode 100644 index 00000000..1b97397a --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1318_The Three Collectors.json @@ -0,0 +1,154 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "FalconTaterz", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1008736, + "Position": { + "X": -418.44818, + "Y": 23.113976, + "Z": -367.8188 + }, + "TerritoryId": 140, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", + "Mount": true, + "Fly": true, + "DataId": 1008739, + "Position": { + "X": 176.71472, + "Y": 222.1357, + "Z": 347.219 + }, + "TerritoryId": 155, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1008741, + "Position": { + "X": 249.50024, + "Y": 222.36392, + "Z": 353.6278 + }, + "TerritoryId": 155, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1008746, + "Position": { + "X": 261.46326, + "Y": 222.27127, + "Z": 320.2411 + }, + "TerritoryId": 155, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "Mount": true, + "DataId": 2003741, + "Position": { + "X": 394.7965, + "Y": 225.0553, + "Z": 378.80518 + }, + "TerritoryId": 155, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "Mount": true, + "DataId": 1008752, + "Position": { + "X": 487.81555, + "Y": 206.95914, + "Z": 479.69775 + }, + "TerritoryId": 155, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 2003671, + "Position": { + "X": 489.181, + "Y": 206.8937, + "Z": 479.662 + }, + "TerritoryId": 155, + "InteractionType": "Interact" + }, + { + "TerritoryId": 155, + "InteractionType": "Duty", + "ContentFinderConditionId": 76 + } + ] + }, + { + "Sequence": 7, + "Steps": [ + { + "DataId": 1008756, + "Position": { + "X": 480.12512, + "Y": 207.33582, + "Z": 475.33374 + }, + "TerritoryId": 155, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "AetheryteShortcut": "Western Thanalan - Horizon", + "Mount": true, + "Fly": true, + "DataId": 1008788, + "Position": { + "X": -421.46948, + "Y": 23.113977, + "Z": -367.57465 + }, + "TerritoryId": 140, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} \ No newline at end of file diff --git a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1438_The Business of Betrothal.json b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1438_The Business of Betrothal.json new file mode 100644 index 00000000..e7abc878 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1438_The Business of Betrothal.json @@ -0,0 +1,154 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "FalconTaterz", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "AetheryteShortcut": "Western Thanalan - Horizon", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + }, + "DataId": 1008757, + "Position": { + "X": -422.5376, + "Y": 23.113976, + "Z": -367.7882 + }, + "TerritoryId": 140, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "AetheryteShortcut": "Eastern La Noscea - Costa Del Sol", + "Mount": true, + "Fly": true, + "DataId": 1009305, + "Position": { + "X": 562.4321, + "Y": 17.654663, + "Z": 421.7135 + }, + "TerritoryId": 137, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1009307, + "Position": { + "X": 498.89368, + "Y": 10.079935, + "Z": 418.265 + }, + "TerritoryId": 137, + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_CHRHDB301_01438_Q1_000_000", + "Answer": "TEXT_CHRHDB301_01438_A1_000_030" + }, + { + "Type": "List", + "Prompt": "TEXT_CHRHDB301_01438_Q2_000_000", + "Answer": "TEXT_CHRHDB301_01438_A2_000_030" + } + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "Mount": true, + "Fly": true, + "DataId": 1009310, + "Position": { + "X": 471.18323, + "Y": 9.96334, + "Z": 794.6135 + }, + "TerritoryId": 137, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "AetheryteShortcut": "Eastern La Noscea - Costa Del Sol", + "DataId": 1009308, + "Position": { + "X": 560.32654, + "Y": 17.707417, + "Z": 421.01147 + }, + "TerritoryId": 137, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1009311, + "Position": { + "X": 531.2123, + "Y": 17.448051, + "Z": 454.1847 + }, + "TerritoryId": 137, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1009317, + "Position": { + "X": 583.88635, + "Y": 14.587067, + "Z": 394.70508 + }, + "TerritoryId": 137, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 2004317, + "Position": { + "X": 515.98376, + "Y": 9.384277, + "Z": 525.81055 + }, + "TerritoryId": 137, + "InteractionType": "Interact" + }, + { + "TerritoryId": 137, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} \ No newline at end of file diff --git a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1439_A Burst of Inspiration.json b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1439_A Burst of Inspiration.json new file mode 100644 index 00000000..6b104573 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1439_A Burst of Inspiration.json @@ -0,0 +1,83 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "FalconTaterz", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1009326, + "Position": { + "X": 526.2073, + "Y": 8.84578, + "Z": 556.54236 + }, + "TerritoryId": 137, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1009328, + "Position": { + "X": 515.0376, + "Y": 9.192075, + "Z": 524.834 + }, + "TerritoryId": 137, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1009319, + "Position": { + "X": 581.3534, + "Y": 14.587067, + "Z": 395.8037 + }, + "TerritoryId": 137, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "AetheryteShortcut": "Limsa Lominsa", + "DataId": 1001023, + "Position": { + "X": -78.62976, + "Y": 18.000334, + "Z": -22.62915 + }, + "TerritoryId": 129, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "AetheryteShortcut": "Western La Noscea - Aleport", + "DataId": 1009331, + "Position": { + "X": 311.54346, + "Y": -36.405907, + "Z": 344.71655 + }, + "TerritoryId": 138, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} \ No newline at end of file diff --git a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1440_Seeds of Rebellion.json b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1440_Seeds of Rebellion.json new file mode 100644 index 00000000..ca534efe --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1440_Seeds of Rebellion.json @@ -0,0 +1,150 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "FalconTaterz", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1009331, + "Position": { + "X": 311.54346, + "Y": -36.405907, + "Z": 344.71655 + }, + "TerritoryId": 138, + "InteractionType": "AcceptQuest", + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_CHRHDB303_01440_Q1_000_010", + "Yes": true + } + ] + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Mount": true, + "Fly": true, + "DataId": 2004324, + "Position": { + "X": -283.0091, + "Y": -40.634766, + "Z": 425.58936 + }, + "TerritoryId": 138, + "InteractionType": "Interact" + }, + { + "DataId": 2004325, + "Position": { + "X": -242.60321, + "Y": -38.68164, + "Z": 514.7324 + }, + "TerritoryId": 138, + "InteractionType": "Interact" + }, + { + "DataId": 2004326, + "Position": { + "X": -291.06586, + "Y": -38.07129, + "Z": 596.765 + }, + "TerritoryId": 138, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Comment": "Commence \"The Mandragoras\"", + "DataId": 1009335, + "Position": { + "X": -256.70258, + "Y": -40.18569, + "Z": 684.1992 + }, + "TerritoryId": 138, + "InteractionType": "Interact" + }, + { + "Comment": "Fight some Mandragoras", + "Position": { + "X": -256.70258, + "Y": -40.18569, + "Z": 684.1992 + }, + "TerritoryId": 138, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "KillEnemyDataIds": [ + 2950, + 2951, + 2952, + 2953, + 2954 + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "AetheryteShortcut": "Eastern La Noscea - Costa Del Sol", + "Mount": true, + "Fly": true, + "DataId": 1009319, + "Position": { + "X": 581.3534, + "Y": 14.587067, + "Z": 395.8037 + }, + "TerritoryId": 137, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "Mount": true, + "Fly": true, + "DataId": 1009336, + "Position": { + "X": 494.49902, + "Y": 11.323204, + "Z": 210.3761 + }, + "TerritoryId": 137, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "AetheryteShortcut": "Eastern La Noscea - Wineport", + "DataId": 1009337, + "Position": { + "X": -46.860474, + "Y": 75.95114, + "Z": 10.879639 + }, + "TerritoryId": 137, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} \ No newline at end of file diff --git a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1441_A Case of Indecency.json b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1441_A Case of Indecency.json new file mode 100644 index 00000000..38f5b7e9 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1441_A Case of Indecency.json @@ -0,0 +1,101 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "FalconTaterz", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1009341, + "Position": { + "X": -48.44745, + "Y": 75.95115, + "Z": 9.079041 + }, + "TerritoryId": 137, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "AetheryteShortcut": "Eastern La Noscea - Costa Del Sol", + "DataId": 1009351, + "Position": { + "X": 524.28467, + "Y": 17.448048, + "Z": 449.08826 + }, + "TerritoryId": 137, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1009347, + "Position": { + "X": 442.77087, + "Y": 15.823447, + "Z": 375.17358 + }, + "TerritoryId": 137, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1009348, + "Position": { + "X": 386.19055, + "Y": 29.58076, + "Z": 350.3623 + }, + "TerritoryId": 137, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1009345, + "Position": { + "X": 523.76587, + "Y": 17.448044, + "Z": 447.13513 + }, + "TerritoryId": 137, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 2004328, + "Position": { + "X": 523.4607, + "Y": 17.837708, + "Z": 455.2528 + }, + "TerritoryId": 137, + "InteractionType": "Interact" + }, + { + "TerritoryId": 137, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} \ No newline at end of file From 36126c5bdcfe42bf53f66805aae544bdd8e141ff Mon Sep 17 00:00:00 2001 From: FalconTaterz Date: Sun, 25 Aug 2024 16:43:54 -0500 Subject: [PATCH 101/450] Finish ARR Hildibrand quest paths --- .../166_Eight-armed and Dangerous.json | 138 ++++++++++++++++++ .../202_What Price Victory.json | 111 ++++++++++++++ .../203_The Trouble with Truffles.json | 135 +++++++++++++++++ .../204_The Coliseum Conundrum.json | 125 ++++++++++++++++ .../490_Shades of Sil'dih.json | 94 ++++++++++++ .../Hildibrand Quests/491_Sibling Strife.json | 137 +++++++++++++++++ .../492_Beneath the Mask.json | 131 +++++++++++++++++ .../Hildibrand Quests/493_Truths Untold.json | 89 +++++++++++ .../Hildibrand Quests/502_Her Last Vow.json | 104 +++++++++++++ 9 files changed, 1064 insertions(+) create mode 100644 QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/166_Eight-armed and Dangerous.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/202_What Price Victory.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/203_The Trouble with Truffles.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/204_The Coliseum Conundrum.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/490_Shades of Sil'dih.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/491_Sibling Strife.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/492_Beneath the Mask.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/493_Truths Untold.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/502_Her Last Vow.json diff --git a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/166_Eight-armed and Dangerous.json b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/166_Eight-armed and Dangerous.json new file mode 100644 index 00000000..a5774909 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/166_Eight-armed and Dangerous.json @@ -0,0 +1,138 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "FalconTaterz", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "AetheryteShortcut": "Eastern La Noscea - Costa Del Sol", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + }, + "DataId": 1009357, + "Position": { + "X": 528.95386, + "Y": 17.44805, + "Z": 448.69153 + }, + "TerritoryId": 137, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Thaumaturges' Guild" + ], + "DataId": 1010160, + "Position": { + "X": -144.64032, + "Y": 12, + "Z": -5.6916504 + }, + "TerritoryId": 130, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "AethernetShortcut": [ + "[Ul'dah] Thaumaturges' Guild", + "[Ul'dah] Gladiators' Guild" + ], + "DataId": 1001857, + "Position": { + "X": -46.76892, + "Y": 10, + "Z": -12.741333 + }, + "TerritoryId": 131, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "AethernetShortcut": [ + "[Ul'dah] Gladiators' Guild", + "[Ul'dah] Thaumaturges' Guild" + ], + "DataId": 1010160, + "Position": { + "X": -144.64032, + "Y": 12, + "Z": -5.6916504 + }, + "TerritoryId": 130, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1010188, + "Position": { + "X": -106.523315, + "Y": 4.2265673, + "Z": -82.16986 + }, + "TerritoryId": 130, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Gladiators' Guild" + ], + "DataId": 1010281, + "Position": { + "X": -70.96979, + "Y": 6.9839683, + "Z": 3.982544 + }, + "TerritoryId": 131, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "AethernetShortcut": [ + "[Ul'dah] Gladiators' Guild", + "[Ul'dah] Thaumaturges' Guild" + ], + "DataId": 1010287, + "Position": { + "X": -142.71765, + "Y": 12, + "Z": -3.9215698 + }, + "TerritoryId": 130, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} \ No newline at end of file diff --git a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/202_What Price Victory.json b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/202_What Price Victory.json new file mode 100644 index 00000000..74e482e6 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/202_What Price Victory.json @@ -0,0 +1,111 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "FalconTaterz", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1010279, + "Position": { + "X": -143.60266, + "Y": 11.999999, + "Z": -3.8911133 + }, + "TerritoryId": 130, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "AethernetShortcut": [ + "[Ul'dah] Thaumaturges' Guild", + "[Ul'dah] Gladiators' Guild" + ], + "DataId": 1010523, + "Position": { + "X": -53.48291, + "Y": 9.999997, + "Z": -4.0742188 + }, + "TerritoryId": 131, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Mount": true, + "AetheryteShortcut": "Central Thanalan - Black Brush Station", + "DataId": 1010293, + "Position": { + "X": -61.387024, + "Y": -11.84896, + "Z": -63.126587 + }, + "TerritoryId": 141, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "Mount": true, + "Fly": true, + "DataId": 1010298, + "Position": { + "X": 19.851929, + "Y": 19.020214, + "Z": -421.37793 + }, + "TerritoryId": 141, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "Mount": true, + "Fly": true, + "DataId": 1010310, + "Position": { + "X": -55.436035, + "Y": 3.4680986, + "Z": 260.57825 + }, + "TerritoryId": 141, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Thaumaturges' Guild" + ], + "DataId": 1010290, + "Position": { + "X": -144.73187, + "Y": 11.999999, + "Z": -5.661133 + }, + "TerritoryId": 130, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} \ No newline at end of file diff --git a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/203_The Trouble with Truffles.json b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/203_The Trouble with Truffles.json new file mode 100644 index 00000000..2465078a --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/203_The Trouble with Truffles.json @@ -0,0 +1,135 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "FalconTaterz", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1010290, + "Position": { + "X": -144.73187, + "Y": 11.999999, + "Z": -5.661133 + }, + "TerritoryId": 130, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "AethernetShortcut": [ + "[Ul'dah] Thaumaturges' Guild", + "[Ul'dah] Gladiators' Guild" + ], + "DataId": 1010169, + "Position": { + "X": -47.501343, + "Y": 9.999995, + "Z": -11.886841 + }, + "TerritoryId": 131, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1010316, + "Position": { + "X": -54.581604, + "Y": 9.999972, + "Z": -12.64978 + }, + "StopDistance": 6, + "TerritoryId": 131, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "Comment": "This teleport is because I couldn't figure out jumping", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ], + "DataId": 2004901, + "Position": { + "X": 103.50195, + "Y": 7.9804688, + "Z": 8.255066 + }, + "TerritoryId": 131, + "InteractionType": "Interact" + }, + { + "DataId": 2004900, + "Position": { + "X": 103.715576, + "Y": 7.9804688, + "Z": -35.233154 + }, + "TerritoryId": 131, + "InteractionType": "Interact" + }, + { + "DataId": 2004899, + "Position": { + "X": 68.0094, + "Y": 7.9804688, + "Z": -74.05206 + }, + "TerritoryId": 131, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "AethernetShortcut": [ + "[Ul'dah] Sapphire Avenue Exchange", + "[Ul'dah] Gladiators' Guild" + ], + "DataId": 1010316, + "Position": { + "X": -54.581604, + "Y": 9.999972, + "Z": -12.64978 + }, + "TerritoryId": 131, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "AethernetShortcut": [ + "[Ul'dah] Gladiators' Guild", + "[Ul'dah] Sapphire Avenue Exchange" + ], + "DataId": 1001679, + "Position": { + "X": 140.48975, + "Y": 4.0099983, + "Z": -59.80017 + }, + "TerritoryId": 131, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} \ No newline at end of file diff --git a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/204_The Coliseum Conundrum.json b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/204_The Coliseum Conundrum.json new file mode 100644 index 00000000..58ef5717 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/204_The Coliseum Conundrum.json @@ -0,0 +1,125 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "FalconTaterz", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1010317, + "Position": { + "X": 139.78784, + "Y": 4.0099993, + "Z": -57.114563 + }, + "TerritoryId": 131, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "AethernetShortcut": [ + "[Ul'dah] Sapphire Avenue Exchange", + "[Ul'dah] Gladiators' Guild" + ], + "DataId": 1010330, + "Position": { + "X": -69.5354, + "Y": 6.9839687, + "Z": 0.07623291 + }, + "TerritoryId": 131, + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_CHRHDB404_00204_Q1_000_000", + "Yes": true + } + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1010772, + "Position": { + "X": -72.40405, + "Y": 6.9839687, + "Z": -0.045776367 + }, + "TerritoryId": 131, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "AetheryteShortcut": "Eastern Thanalan - Camp Drybone", + "Mount": true, + "Fly": true, + "DataId": 1010161, + "Position": { + "X": -338.3994, + "Y": -22.360315, + "Z": 434.3175 + }, + "TerritoryId": 145, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "TerritoryId": 145, + "InteractionType": "Duty", + "ContentFinderConditionId": 81 + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1010329, + "Position": { + "X": -334.21838, + "Y": -22.463528, + "Z": 432.9746 + }, + "TerritoryId": 145, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Gladiators' Guild" + ], + "DataId": 1010330, + "Position": { + "X": -69.5354, + "Y": 6.9839687, + "Z": 0.07623291 + }, + "TerritoryId": 131, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} \ No newline at end of file diff --git a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/490_Shades of Sil'dih.json b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/490_Shades of Sil'dih.json new file mode 100644 index 00000000..e7108cea --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/490_Shades of Sil'dih.json @@ -0,0 +1,94 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "FalconTaterz", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1010708, + "Position": { + "X": -70.237305, + "Y": 6.9839683, + "Z": 1.9073486 + }, + "TerritoryId": 131, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "AethernetShortcut": [ + "[Ul'dah] Gladiators' Guild", + "[Ul'dah] Aetheryte Plaza" + ], + "DataId": 1001285, + "Position": { + "X": -68.77246, + "Y": 4.0411124, + "Z": -126.51257 + }, + "TerritoryId": 130, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Alchemists' Guild" + ], + "DataId": 1011620, + "Position": { + "X": -118.69995, + "Y": 40, + "Z": 95.23157 + }, + "TerritoryId": 131, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1011672, + "Position": { + "X": -118.21167, + "Y": 40, + "Z": 92.11865 + }, + "TerritoryId": 131, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "AethernetShortcut": [ + "[Ul'dah] Alchemists' Guild", + "[Ul'dah] Gate of the Sultana (Western Thanalan)" + ], + "Mount": true, + "DataId": 1011677, + "Position": { + "X": 363.54602, + "Y": 74.743355, + "Z": 171.12988 + }, + "TerritoryId": 140, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} \ No newline at end of file diff --git a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/491_Sibling Strife.json b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/491_Sibling Strife.json new file mode 100644 index 00000000..a425d7cf --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/491_Sibling Strife.json @@ -0,0 +1,137 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "FalconTaterz", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1011677, + "Position": { + "X": 363.54602, + "Y": 74.743355, + "Z": 171.12988 + }, + "TerritoryId": 140, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Thaumaturges' Guild" + ], + "DataId": 1011681, + "Position": { + "X": -182.29956, + "Y": 18, + "Z": 56.90088 + }, + "TerritoryId": 130, + "InteractionType": "Interact" + }, + { + "DataId": 1003897, + "Position": { + "X": -195.45282, + "Y": 18, + "Z": 60.53247 + }, + "TerritoryId": 130, + "InteractionType": "Interact" + }, + { + "DataId": 1001294, + "Position": { + "X": -214.22144, + "Y": 18.5, + "Z": 72.129395 + }, + "TerritoryId": 130, + "InteractionType": "Interact" + }, + { + "DataId": 1001708, + "Position": { + "X": -250.3548, + "Y": 18, + "Z": 80.88806 + }, + "TerritoryId": 130, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1011682, + "Position": { + "X": -200.763, + "Y": 17.999998, + "Z": 59.189697 + }, + "TerritoryId": 130, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "AetheryteShortcut": "Western Thanalan - Horizon", + "DataId": 1011683, + "Position": { + "X": 76.8291, + "Y": 45, + "Z": -218.28033 + }, + "TerritoryId": 140, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "Mount": true, + "Position": { + "X": -345.65482, + "Y": 23, + "Z": -352.02484 + }, + "TerritoryId": 140, + "InteractionType": "WalkTo" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Alchemists' Guild" + ], + "DataId": 1011675, + "Position": { + "X": -118.150635, + "Y": 40, + "Z": 96.29968 + }, + "TerritoryId": 131, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} \ No newline at end of file diff --git a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/492_Beneath the Mask.json b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/492_Beneath the Mask.json new file mode 100644 index 00000000..58a4bc4d --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/492_Beneath the Mask.json @@ -0,0 +1,131 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "FalconTaterz", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1011691, + "Position": { + "X": 40.878906, + "Y": 33.999985, + "Z": 27.939209 + }, + "TerritoryId": 131, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2005164, + "Position": { + "X": 43.07617, + "Y": 33.98181, + "Z": -13.962036 + }, + "TerritoryId": 131, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2005165, + "Position": { + "X": 60.16626, + "Y": 33.98181, + "Z": -21.316895 + }, + "TerritoryId": 131, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2005166, + "Position": { + "X": 74.96753, + "Y": 28.976807, + "Z": -29.007446 + }, + "TerritoryId": 131, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1011697, + "Position": { + "X": 39.07837, + "Y": 33.999985, + "Z": 27.237305 + }, + "TerritoryId": 131, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1011693, + "Position": { + "X": 39.444458, + "Y": 34, + "Z": 29.984009 + }, + "TerritoryId": 131, + "InteractionType": "Interact" + }, + { + "DataId": 1011694, + "Position": { + "X": 41.367188, + "Y": 33.999992, + "Z": 29.43457 + }, + "TerritoryId": 131, + "InteractionType": "Interact" + }, + { + "DataId": 1011695, + "Position": { + "X": 41.916504, + "Y": 33.999992, + "Z": 30.044922 + }, + "TerritoryId": 131, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1011697, + "Position": { + "X": 39.07837, + "Y": 33.999985, + "Z": 27.237305 + }, + "TerritoryId": 131, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} \ No newline at end of file diff --git a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/493_Truths Untold.json b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/493_Truths Untold.json new file mode 100644 index 00000000..ad2f92ca --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/493_Truths Untold.json @@ -0,0 +1,89 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "FalconTaterz", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1011699, + "Position": { + "X": 39.81079, + "Y": 34, + "Z": 30.22815 + }, + "TerritoryId": 131, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1011707, + "Position": { + "X": 42.893066, + "Y": 33.99998, + "Z": 29.343018 + }, + "TerritoryId": 131, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "AethernetShortcut": [ + "[Ul'dah] The Chamber of Rule", + "[Ul'dah] Sapphire Avenue Exchange" + ], + "DataId": 1001679, + "Position": { + "X": 140.48975, + "Y": 4.0099983, + "Z": -59.80017 + }, + "TerritoryId": 131, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "AethernetShortcut": [ + "[Ul'dah] Sapphire Avenue Exchange", + "[Ul'dah] The Chamber of Rule" + ], + "DataId": 1011712, + "Position": { + "X": -43.86969, + "Y": 30.000008, + "Z": 7.8583374 + }, + "TerritoryId": 131, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1011707, + "Position": { + "X": 42.893066, + "Y": 33.99998, + "Z": 29.343018 + }, + "TerritoryId": 131, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} \ No newline at end of file diff --git a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/502_Her Last Vow.json b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/502_Her Last Vow.json new file mode 100644 index 00000000..4f18857a --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/502_Her Last Vow.json @@ -0,0 +1,104 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "FalconTaterz", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1011707, + "Position": { + "X": 42.893066, + "Y": 33.99998, + "Z": 29.343018 + }, + "TerritoryId": 131, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "AetheryteShortcut": "Central Thanalan - Black Brush Station", + "Mount": true, + "Fly": true, + "DataId": 1011714, + "Position": { + "X": -223.19379, + "Y": -3.7199955, + "Z": 52.32312 + }, + "TerritoryId": 141, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2005188, + "Position": { + "X": -314.07648, + "Y": -1.083435, + "Z": 43.9917 + }, + "TerritoryId": 141, + "InteractionType": "Interact" + }, + { + "ChatMessage": { + "Key": "TEXT_CHRHDB505_00502_SAYTODO_000_000" + }, + "TerritoryId": 141, + "InteractionType": "Say" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "AetheryteShortcut": "South Shroud - Quarrymill", + "Mount": true, + "Fly": true, + "DataId": 1011722, + "Position": { + "X": 159.68555, + "Y": 37.432796, + "Z": 177.69128 + }, + "TerritoryId": 153, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "TerritoryId": 153, + "InteractionType": "Duty", + "ContentFinderConditionId": 85 + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1011723, + "Position": { + "X": 141.06958, + "Y": 29.64365, + "Z": 173.72388 + }, + "TerritoryId": 153, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} \ No newline at end of file From 7d622c4d128d63a4504e6cb6946e53068a596c53 Mon Sep 17 00:00:00 2001 From: Fifi Date: Fri, 23 Aug 2024 15:08:21 +0900 Subject: [PATCH 102/450] shb phys role quests --- .../Physical/3273_No Greater Sport.json | 120 +++++++++++++++ .../Physical/3274_Vengeance in Defeat.json | 119 +++++++++++++++ .../Physical/3275_Freedom from Privilege.json | 140 ++++++++++++++++++ .../Physical/3276_The Hunter's Legacy.json | 83 +++++++++++ .../Physical/3277_Fellowship Restored.json | 118 +++++++++++++++ .../Physical/3278_Courage Born of Fear.json | 122 +++++++++++++++ 6 files changed, 702 insertions(+) create mode 100644 QuestPaths/5.x - Shadowbringers/Role Quests/Physical/3273_No Greater Sport.json create mode 100644 QuestPaths/5.x - Shadowbringers/Role Quests/Physical/3274_Vengeance in Defeat.json create mode 100644 QuestPaths/5.x - Shadowbringers/Role Quests/Physical/3275_Freedom from Privilege.json create mode 100644 QuestPaths/5.x - Shadowbringers/Role Quests/Physical/3276_The Hunter's Legacy.json create mode 100644 QuestPaths/5.x - Shadowbringers/Role Quests/Physical/3277_Fellowship Restored.json create mode 100644 QuestPaths/5.x - Shadowbringers/Role Quests/Physical/3278_Courage Born of Fear.json diff --git a/QuestPaths/5.x - Shadowbringers/Role Quests/Physical/3273_No Greater Sport.json b/QuestPaths/5.x - Shadowbringers/Role Quests/Physical/3273_No Greater Sport.json new file mode 100644 index 00000000..12fd2520 --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Role Quests/Physical/3273_No Greater Sport.json @@ -0,0 +1,120 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Fifi", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1030126, + "Position": { + "X": -18.143005, + "Y": 3.9998174, + "Z": 235.40088 + }, + "TerritoryId": 819, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Crystarium", + "AethernetShortcut": [ + "[Crystarium] Aetheryte Plaza", + "[Crystarium] The Pendants" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1030127, + "Position": { + "X": 200.12195, + "Y": -0.39141315, + "Z": 389.45593 + }, + "TerritoryId": 813, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Crystarium] The Pendants", + "[Crystarium] Tessellation (Lakeland)" + ], + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2010396, + "Position": { + "X": 195.48328, + "Y": -0.7477417, + "Z": 370.93152 + }, + "TerritoryId": 813, + "InteractionType": "UseItem", + "ItemId": 2002718 + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2010397, + "Position": { + "X": 203.90625, + "Y": -0.5340576, + "Z": 389.82214 + }, + "TerritoryId": 813, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [10872] + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1031013, + "Position": { + "X": 200.09155, + "Y": -0.39049676, + "Z": 389.4254 + }, + "TerritoryId": 813, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1030964, + "Position": { + "X": -18.143005, + "Y": 3.9998174, + "Z": 235.40088 + }, + "TerritoryId": 819, + "InteractionType": "CompleteQuest", + "NextQuestId": 3274, + "AetheryteShortcut": "Crystarium", + "AethernetShortcut": [ + "[Crystarium] Aetheryte Plaza", + "[Crystarium] The Pendants" + ] + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Role Quests/Physical/3274_Vengeance in Defeat.json b/QuestPaths/5.x - Shadowbringers/Role Quests/Physical/3274_Vengeance in Defeat.json new file mode 100644 index 00000000..b99fbbff --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Role Quests/Physical/3274_Vengeance in Defeat.json @@ -0,0 +1,119 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Fifi", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1030964, + "Position": { + "X": -18.143005, + "Y": 3.9998174, + "Z": 235.40088 + }, + "TerritoryId": 819, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Crystarium", + "AethernetShortcut": [ + "[Crystarium] Aetheryte Plaza", + "[Crystarium] The Pendants" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1030130, + "Position": { + "X": 469.0775, + "Y": -32.782784, + "Z": -288.44135 + }, + "TerritoryId": 815, + "InteractionType": "Interact", + "AetheryteShortcut": "Amh Araeng - Mord Souq", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2010399, + "Position": { + "X": 613.39734, + "Y": -33.585205, + "Z": -180.95679 + }, + "TerritoryId": 815, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2010400, + "Position": { + "X": 536.9192, + "Y": -33.737732, + "Z": 38.83423 + }, + "TerritoryId": 815, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [10873], + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 2010401, + "Position": { + "X": 469.0775, + "Y": -32.791687, + "Z": -288.44135 + }, + "TerritoryId": 815, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1030964, + "Position": { + "X": -18.143005, + "Y": 3.9998174, + "Z": 235.40088 + }, + "TerritoryId": 819, + "InteractionType": "CompleteQuest", + "NextQuestId": 3275, + "AetheryteShortcut": "Crystarium", + "AethernetShortcut": [ + "[Crystarium] Aetheryte Plaza", + "[Crystarium] The Pendants" + ] + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Role Quests/Physical/3275_Freedom from Privilege.json b/QuestPaths/5.x - Shadowbringers/Role Quests/Physical/3275_Freedom from Privilege.json new file mode 100644 index 00000000..8ee624bf --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Role Quests/Physical/3275_Freedom from Privilege.json @@ -0,0 +1,140 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Fifi", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1030964, + "Position": { + "X": -18.143005, + "Y": 3.9998174, + "Z": 235.40088 + }, + "TerritoryId": 819, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Crystarium", + "AethernetShortcut": [ + "[Crystarium] Aetheryte Plaza", + "[Crystarium] The Pendants" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1030135, + "Position": { + "X": -251.42291, + "Y": 22.19962, + "Z": 325.7953 + }, + "TerritoryId": 814, + "InteractionType": "Interact", + "AetheryteShortcut": "Kholusia - Wright", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2010402, + "Position": { + "X": -550.7744, + "Y": 29.160034, + "Z": 363.4851 + }, + "TerritoryId": 814, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2010403, + "Position": { + "X": -550.98804, + "Y": 41.33667, + "Z": 252.24683 + }, + "TerritoryId": 814, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1030136, + "Position": { + "X": -192.58417, + "Y": 26.771265, + "Z": 248.46265 + }, + "TerritoryId": 814, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1030140, + "Position": { + "X": 67.64319, + "Y": 82.001656, + "Z": -53.330322 + }, + "TerritoryId": 820, + "InteractionType": "Interact", + "AetheryteShortcut": "Eulmore" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1030964, + "Position": { + "X": -18.143005, + "Y": 3.9998174, + "Z": 235.40088 + }, + "TerritoryId": 819, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Crystarium", + "AethernetShortcut": [ + "[Crystarium] Aetheryte Plaza", + "[Crystarium] The Pendants" + ], + "NextQuestId": 3276, + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_LUCKBA321_03275_Q1_000_000", + "Answer": "TEXT_LUCKBA321_03275_A1_000_001" + } + ] + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Role Quests/Physical/3276_The Hunter's Legacy.json b/QuestPaths/5.x - Shadowbringers/Role Quests/Physical/3276_The Hunter's Legacy.json new file mode 100644 index 00000000..011fde1c --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Role Quests/Physical/3276_The Hunter's Legacy.json @@ -0,0 +1,83 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Fifi", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1030964, + "Position": { + "X": -18.143005, + "Y": 3.9998174, + "Z": 235.40088 + }, + "TerritoryId": 819, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Crystarium", + "AethernetShortcut": [ + "[Crystarium] Aetheryte Plaza", + "[Crystarium] The Pendants" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1030144, + "Position": { + "X": 94.68213, + "Y": 37.377014, + "Z": 611.1085 + }, + "TerritoryId": 814, + "InteractionType": "Interact", + "Fly": true, + "AetheryteShortcut": "Kholusia - Wright" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1030146, + "Position": { + "X": -190.1427, + "Y": 12.748831, + "Z": 591.6686 + }, + "TerritoryId": 817, + "InteractionType": "SinglePlayerDuty", + "AetheryteShortcut": "Rak'tika - Slitherbough", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1030144, + "Position": { + "X": 94.68213, + "Y": 37.377014, + "Z": 611.1085 + }, + "TerritoryId": 814, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Kholusia - Wright", + "Fly": true, + "NextQuestId": 3277 + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Role Quests/Physical/3277_Fellowship Restored.json b/QuestPaths/5.x - Shadowbringers/Role Quests/Physical/3277_Fellowship Restored.json new file mode 100644 index 00000000..4e825eae --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Role Quests/Physical/3277_Fellowship Restored.json @@ -0,0 +1,118 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Fifi", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1030145, + "Position": { + "X": 93.461426, + "Y": 37.43559, + "Z": 611.50525 + }, + "TerritoryId": 814, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Kholusia - Wright", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + }, + "Fly": true + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2010405, + "Position": { + "X": -33.707214, + "Y": 3.982544, + "Z": 205.70679 + }, + "TerritoryId": 819, + "InteractionType": "Interact", + "AetheryteShortcut": "Crystarium", + "AethernetShortcut": [ + "[Crystarium] Aetheryte Plaza", + "[Crystarium] The Pendants" + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1027323, + "Position": { + "X": -42.893127, + "Y": 3.9998171, + "Z": 242.08435 + }, + "TerritoryId": 819, + "InteractionType": "Interact" + }, + { + "DataId": 1027238, + "Position": { + "X": -15.487976, + "Y": 3.9998171, + "Z": 215.3811 + }, + "TerritoryId": 819, + "InteractionType": "Interact" + }, + { + "DataId": 1030147, + "Position": { + "X": 0.59503174, + "Y": 3.9998174, + "Z": 209.27734 + }, + "TerritoryId": 819, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1030148, + "Position": { + "X": -246.57056, + "Y": 10.152376, + "Z": 678.21765 + }, + "TerritoryId": 817, + "InteractionType": "Interact", + "AetheryteShortcut": "Rak'tika - Slitherbough", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1030145, + "Position": { + "X": 93.461426, + "Y": 37.43559, + "Z": 611.50525 + }, + "TerritoryId": 814, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Kholusia - Wright", + "Fly": true, + "NextQuestId": 3278 + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Role Quests/Physical/3278_Courage Born of Fear.json b/QuestPaths/5.x - Shadowbringers/Role Quests/Physical/3278_Courage Born of Fear.json new file mode 100644 index 00000000..342e2ade --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Role Quests/Physical/3278_Courage Born of Fear.json @@ -0,0 +1,122 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Fifi", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1030144, + "Position": { + "X": 94.68213, + "Y": 37.377014, + "Z": 611.1085 + }, + "TerritoryId": 814, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Kholusia - Wright", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + }, + "Fly": true + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1027253, + "Position": { + "X": 17.502075, + "Y": 19.999794, + "Z": -190.41736 + }, + "TerritoryId": 819, + "InteractionType": "Interact", + "AetheryteShortcut": "Crystarium", + "AethernetShortcut": [ + "[Crystarium] Aetheryte Plaza", + "[Crystarium] The Crystalline Mean" + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2010406, + "Position": { + "X": -17.013855, + "Y": 4.470825, + "Z": 234.97363 + }, + "TerritoryId": 819, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Crystarium] The Crystalline Mean", + "[Crystarium] The Pendants" + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1030990, + "Position": { + "X": -246.57056, + "Y": 10.152376, + "Z": 678.21765 + }, + "TerritoryId": 817, + "InteractionType": "SinglePlayerDuty", + "AetheryteShortcut": "Rak'tika - Slitherbough", + "Fly": true + } + ] + }, + { "Sequence": 4, "Steps": [] }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1030145, + "Position": { + "X": 93.461426, + "Y": 37.43559, + "Z": 611.50525 + }, + "TerritoryId": 814, + "InteractionType": "Interact", + "Fly": true, + "AetheryteShortcut": "Kholusia - Wright" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1030964, + "Position": { + "X": -18.143005, + "Y": 3.9998174, + "Z": 235.40088 + }, + "TerritoryId": 819, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Crystarium", + "AethernetShortcut": [ + "[Crystarium] Aetheryte Plaza", + "[Crystarium] The Pendants" + ] + } + ] + } + ] +} From 1a9f870987946867c45afae8fc191f99edfeb089 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Thu, 29 Aug 2024 09:05:07 +0200 Subject: [PATCH 103/450] Fix pathing for first kholusia aether current --- .../MSQ/A2-Kholusia 1/3283_A Still Tide.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/QuestPaths/5.x - Shadowbringers/MSQ/A2-Kholusia 1/3283_A Still Tide.json b/QuestPaths/5.x - Shadowbringers/MSQ/A2-Kholusia 1/3283_A Still Tide.json index e5761913..d83e144c 100644 --- a/QuestPaths/5.x - Shadowbringers/MSQ/A2-Kholusia 1/3283_A Still Tide.json +++ b/QuestPaths/5.x - Shadowbringers/MSQ/A2-Kholusia 1/3283_A Still Tide.json @@ -23,9 +23,9 @@ "Steps": [ { "Position": { - "X": 643.7624, - "Y": 0.35477543, - "Z": 541.9913 + "X": 639.3296, + "Y": 0.52189386, + "Z": 533.5061 }, "TerritoryId": 814, "InteractionType": "WalkTo" From 6a01cd4f83ed68a00944c46f50f24a6604de6d71 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Thu, 29 Aug 2024 09:11:25 +0200 Subject: [PATCH 104/450] Adjust Open Arms, Closed Gate --- .../3284_Open Arms, Closed Gate.json | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/QuestPaths/5.x - Shadowbringers/MSQ/A2-Kholusia 1/3284_Open Arms, Closed Gate.json b/QuestPaths/5.x - Shadowbringers/MSQ/A2-Kholusia 1/3284_Open Arms, Closed Gate.json index ced10209..9bb25b11 100644 --- a/QuestPaths/5.x - Shadowbringers/MSQ/A2-Kholusia 1/3284_Open Arms, Closed Gate.json +++ b/QuestPaths/5.x - Shadowbringers/MSQ/A2-Kholusia 1/3284_Open Arms, Closed Gate.json @@ -35,6 +35,21 @@ }, { "Sequence": 2, + "Steps": [ + { + "Position": { + "X": 338.49463, + "Y": 31.93622, + "Z": 203.53125 + }, + "StopDistance": 1, + "TerritoryId": 814, + "InteractionType": "WalkTo" + } + ] + }, + { + "Sequence": 3, "Steps": [ { "Position": { @@ -48,8 +63,7 @@ "EnemySpawnType": "AutoOnEnterArea", "KillEnemyDataIds": [ 10859 - ], - "Comment": "TODO Either this step is incorrect OR the next one is missing" + ] } ] }, From c57395fbfd2981e270f8e7a34784a1b3cbe0749e Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Thu, 29 Aug 2024 09:20:51 +0200 Subject: [PATCH 105/450] Use fixed-size icons for validation issue button --- .../QuickAccessButtonsComponent.cs | 32 ++++++++++++------- 1 file changed, 21 insertions(+), 11 deletions(-) diff --git a/Questionable/Windows/QuestComponents/QuickAccessButtonsComponent.cs b/Questionable/Windows/QuestComponents/QuickAccessButtonsComponent.cs index 6704b594..4860f687 100644 --- a/Questionable/Windows/QuestComponents/QuickAccessButtonsComponent.cs +++ b/Questionable/Windows/QuestComponents/QuickAccessButtonsComponent.cs @@ -7,6 +7,7 @@ using Dalamud.Interface.Colors; using Dalamud.Interface.Components; using Dalamud.Interface.Utility; using Dalamud.Interface.Utility.Raii; +using Dalamud.Plugin; using Dalamud.Plugin.Services; using FFXIVClientStructs.FFXIV.Client.UI.Agent; using ImGuiNET; @@ -28,6 +29,7 @@ internal sealed class QuickAccessButtonsComponent private readonly IClientState _clientState; private readonly ICondition _condition; private readonly ICommandManager _commandManager; + private readonly IDalamudPluginInterface _pluginInterface; public QuickAccessButtonsComponent( MovementController movementController, @@ -39,7 +41,8 @@ internal sealed class QuickAccessButtonsComponent JournalProgressWindow journalProgressWindow, IClientState clientState, ICondition condition, - ICommandManager commandManager) + ICommandManager commandManager, + IDalamudPluginInterface pluginInterface) { _movementController = movementController; _gameFunctions = gameFunctions; @@ -51,6 +54,7 @@ internal sealed class QuickAccessButtonsComponent _clientState = clientState; _condition = condition; _commandManager = commandManager; + _pluginInterface = pluginInterface; } public event EventHandler? Reload; @@ -109,12 +113,14 @@ internal sealed class QuickAccessButtonsComponent int partsToRender = errorCount == 0 || infoCount == 0 ? 1 : 2; using var id = ImRaii.PushId("validationissues"); - ImGui.PushFont(UiBuilder.IconFont); var icon1 = FontAwesomeIcon.TimesCircle; var icon2 = FontAwesomeIcon.InfoCircle; - Vector2 iconSize1 = errorCount > 0 ? ImGui.CalcTextSize(icon1.ToIconString()) : Vector2.Zero; - Vector2 iconSize2 = infoCount > 0 ? ImGui.CalcTextSize(icon2.ToIconString()) : Vector2.Zero; - ImGui.PopFont(); + Vector2 iconSize1, iconSize2; + using (var _ = _pluginInterface.UiBuilder.IconFontFixedWidthHandle.Push()) + { + iconSize1 = errorCount > 0 ? ImGui.CalcTextSize(icon1.ToIconString()) : Vector2.Zero; + iconSize2 = infoCount > 0 ? ImGui.CalcTextSize(icon2.ToIconString()) : Vector2.Zero; + } string text1 = errorCount > 0 ? errorCount.ToString(CultureInfo.InvariantCulture) : string.Empty; string text2 = infoCount > 0 ? infoCount.ToString(CultureInfo.InvariantCulture) : string.Empty; @@ -136,9 +142,11 @@ internal sealed class QuickAccessButtonsComponent cursor.Y + ImGui.GetStyle().FramePadding.Y); if (errorCount > 0) { - ImGui.PushFont(UiBuilder.IconFont); - dl.AddText(position, ImGui.GetColorU32(ImGuiColors.DalamudRed), icon1.ToIconString()); - ImGui.PopFont(); + using (var _ = _pluginInterface.UiBuilder.IconFontFixedWidthHandle.Push()) + { + dl.AddText(position, ImGui.GetColorU32(ImGuiColors.DalamudRed), icon1.ToIconString()); + } + position = position with { X = position.X + iconSize1.X + iconPadding }; // Draw the text on the window drawlist @@ -148,9 +156,11 @@ internal sealed class QuickAccessButtonsComponent if (infoCount > 0) { - ImGui.PushFont(UiBuilder.IconFont); - dl.AddText(position, ImGui.GetColorU32(ImGuiColors.ParsedBlue), icon2.ToIconString()); - ImGui.PopFont(); + using (var _ = _pluginInterface.UiBuilder.IconFontFixedWidthHandle.Push()) + { + dl.AddText(position, ImGui.GetColorU32(ImGuiColors.ParsedBlue), icon2.ToIconString()); + } + position = position with { X = position.X + iconSize2.X + iconPadding }; // Draw the text on the window drawlist From 977ac6d144a30c6925e95cd30ef848c83105841e Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Thu, 29 Aug 2024 09:59:09 +0200 Subject: [PATCH 106/450] Minor path updates --- .../Role Quests/Physical/3273_No Greater Sport.json | 1 + .../Role Quests/Physical/3277_Fellowship Restored.json | 1 + 2 files changed, 2 insertions(+) diff --git a/QuestPaths/5.x - Shadowbringers/Role Quests/Physical/3273_No Greater Sport.json b/QuestPaths/5.x - Shadowbringers/Role Quests/Physical/3273_No Greater Sport.json index 12fd2520..7d69c7c5 100644 --- a/QuestPaths/5.x - Shadowbringers/Role Quests/Physical/3273_No Greater Sport.json +++ b/QuestPaths/5.x - Shadowbringers/Role Quests/Physical/3273_No Greater Sport.json @@ -90,6 +90,7 @@ "Y": -0.39049676, "Z": 389.4254 }, + "StopDistance": 5, "TerritoryId": 813, "InteractionType": "Interact" } diff --git a/QuestPaths/5.x - Shadowbringers/Role Quests/Physical/3277_Fellowship Restored.json b/QuestPaths/5.x - Shadowbringers/Role Quests/Physical/3277_Fellowship Restored.json index 4e825eae..d020cd4c 100644 --- a/QuestPaths/5.x - Shadowbringers/Role Quests/Physical/3277_Fellowship Restored.json +++ b/QuestPaths/5.x - Shadowbringers/Role Quests/Physical/3277_Fellowship Restored.json @@ -106,6 +106,7 @@ "Y": 37.43559, "Z": 611.50525 }, + "StopDistance": 1, "TerritoryId": 814, "InteractionType": "CompleteQuest", "AetheryteShortcut": "Kholusia - Wright", From ee20ab996b27168e18a6e58fc84e49a78adb8129 Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Thu, 29 Aug 2024 18:11:30 +0800 Subject: [PATCH 107/450] Updated Author --- .../Ananta/Dailies/3050_A Signal for the Senses.json | 2 +- .../Ananta/Dailies/3051_Criminal Crossings.json | 2 +- .../Allied Societies/Ananta/Dailies/3052_When Feathers Fly.json | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Dailies/3050_A Signal for the Senses.json b/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Dailies/3050_A Signal for the Senses.json index da21fa33..2c59b09b 100644 --- a/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Dailies/3050_A Signal for the Senses.json +++ b/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Dailies/3050_A Signal for the Senses.json @@ -1,6 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "liza", + "Author": "plogon_enjoyer", "QuestSequence": [ { "Sequence": 0, diff --git a/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Dailies/3051_Criminal Crossings.json b/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Dailies/3051_Criminal Crossings.json index cbd8ff8a..2283a975 100644 --- a/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Dailies/3051_Criminal Crossings.json +++ b/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Dailies/3051_Criminal Crossings.json @@ -1,6 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "liza", + "Author": "plogon_enjoyer", "QuestSequence": [ { "Sequence": 0, diff --git a/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Dailies/3052_When Feathers Fly.json b/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Dailies/3052_When Feathers Fly.json index 294d2fbe..85e5f32c 100644 --- a/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Dailies/3052_When Feathers Fly.json +++ b/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Dailies/3052_When Feathers Fly.json @@ -1,6 +1,6 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "liza", + "Author": "plogon_enjoyer", "QuestSequence": [ { "Sequence": 0, From e4b5ccec366a46b723774800817700b9530eb6ca Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Thu, 29 Aug 2024 15:45:16 +0200 Subject: [PATCH 108/450] Update movement logic to handle cases where you're stopped too far away --- .../2632_The Palace of Lost Souls.json | 6 +++-- .../Kurenai/2704_Fathoms Below.json | 3 ++- .../Kurenai/2705_A Part of Your World.json | 3 ++- .../Kurenai/2706_The Elixir of Life.json | 2 ++ .../2484_In Soroban We Trust.json | 3 ++- .../2486_In Darkness the Magatama Dreams.json | 3 ++- QuestPaths/quest-v1.json | 4 ++++ Questionable.Model/Questing/QuestStep.cs | 1 + Questionable/Controller/MovementController.cs | 2 +- .../Controller/Steps/Shared/MoveTo.cs | 24 ++++++++++++++++--- Questionable/Functions/GameFunctions.cs | 15 +++++------- 11 files changed, 47 insertions(+), 19 deletions(-) diff --git a/QuestPaths/4.x - Stormblood/Aether Currents/The Ruby Sea/2632_The Palace of Lost Souls.json b/QuestPaths/4.x - Stormblood/Aether Currents/The Ruby Sea/2632_The Palace of Lost Souls.json index 7425f2d3..fe72918a 100644 --- a/QuestPaths/4.x - Stormblood/Aether Currents/The Ruby Sea/2632_The Palace of Lost Souls.json +++ b/QuestPaths/4.x - Stormblood/Aether Currents/The Ruby Sea/2632_The Palace of Lost Souls.json @@ -50,7 +50,8 @@ }, "TerritoryId": 613, "InteractionType": "WalkTo", - "$": "Sui-no-Sato, NE inside" + "$": "Sui-no-Sato, NE inside", + "RestartNavigationIfCancelled": false }, { "Position": { @@ -122,7 +123,8 @@ }, "TerritoryId": 613, "InteractionType": "WalkTo", - "$": "Sui-no-Sato, NE outside" + "$": "Sui-no-Sato, NE outside", + "RestartNavigationIfCancelled": false }, { "DataId": 1023280, diff --git a/QuestPaths/4.x - Stormblood/Custom Deliveries/Kurenai/2704_Fathoms Below.json b/QuestPaths/4.x - Stormblood/Custom Deliveries/Kurenai/2704_Fathoms Below.json index ef577617..75966772 100644 --- a/QuestPaths/4.x - Stormblood/Custom Deliveries/Kurenai/2704_Fathoms Below.json +++ b/QuestPaths/4.x - Stormblood/Custom Deliveries/Kurenai/2704_Fathoms Below.json @@ -23,7 +23,8 @@ }, "TerritoryId": 613, "InteractionType": "WalkTo", - "$": "Sui-no-Sato, NE outside" + "$": "Sui-no-Sato, NE outside", + "RestartNavigationIfCancelled": false }, { "DataId": 1023280, diff --git a/QuestPaths/4.x - Stormblood/Custom Deliveries/Kurenai/2705_A Part of Your World.json b/QuestPaths/4.x - Stormblood/Custom Deliveries/Kurenai/2705_A Part of Your World.json index 834a2cc1..1fe63872 100644 --- a/QuestPaths/4.x - Stormblood/Custom Deliveries/Kurenai/2705_A Part of Your World.json +++ b/QuestPaths/4.x - Stormblood/Custom Deliveries/Kurenai/2705_A Part of Your World.json @@ -85,7 +85,8 @@ }, "TerritoryId": 613, "InteractionType": "WalkTo", - "$": "Sui-no-Sato, NE outside" + "$": "Sui-no-Sato, NE outside", + "RestartNavigationIfCancelled": false }, { "DataId": 1023280, diff --git a/QuestPaths/4.x - Stormblood/Custom Deliveries/Kurenai/2706_The Elixir of Life.json b/QuestPaths/4.x - Stormblood/Custom Deliveries/Kurenai/2706_The Elixir of Life.json index fed711ae..738d856d 100644 --- a/QuestPaths/4.x - Stormblood/Custom Deliveries/Kurenai/2706_The Elixir of Life.json +++ b/QuestPaths/4.x - Stormblood/Custom Deliveries/Kurenai/2706_The Elixir of Life.json @@ -91,6 +91,7 @@ "TerritoryId": 613, "InteractionType": "WalkTo", "$": "Exile, outside", + "RestartNavigationIfCancelled": false, "Fly": true }, { @@ -164,6 +165,7 @@ "TerritoryId": 613, "InteractionType": "WalkTo", "$": "Sui-no-Sato, SW outside", + "RestartNavigationIfCancelled": false, "Fly": true }, { diff --git a/QuestPaths/4.x - Stormblood/MSQ/A3.1-Ruby Sea/2484_In Soroban We Trust.json b/QuestPaths/4.x - Stormblood/MSQ/A3.1-Ruby Sea/2484_In Soroban We Trust.json index b3a2e566..6664fb25 100644 --- a/QuestPaths/4.x - Stormblood/MSQ/A3.1-Ruby Sea/2484_In Soroban We Trust.json +++ b/QuestPaths/4.x - Stormblood/MSQ/A3.1-Ruby Sea/2484_In Soroban We Trust.json @@ -49,7 +49,8 @@ }, "TerritoryId": 613, "InteractionType": "WalkTo", - "$": "Sui-no-Sato, NE outside" + "$": "Sui-no-Sato, NE outside", + "RestartNavigationIfCancelled": false }, { "DataId": 1019970, diff --git a/QuestPaths/4.x - Stormblood/MSQ/A3.1-Ruby Sea/2486_In Darkness the Magatama Dreams.json b/QuestPaths/4.x - Stormblood/MSQ/A3.1-Ruby Sea/2486_In Darkness the Magatama Dreams.json index 9b97dfe0..933b8b9e 100644 --- a/QuestPaths/4.x - Stormblood/MSQ/A3.1-Ruby Sea/2486_In Darkness the Magatama Dreams.json +++ b/QuestPaths/4.x - Stormblood/MSQ/A3.1-Ruby Sea/2486_In Darkness the Magatama Dreams.json @@ -28,7 +28,8 @@ }, "TerritoryId": 613, "InteractionType": "WalkTo", - "$": "Sui-no-Sato, NE inside" + "$": "Sui-no-Sato, NE inside", + "RestartNavigationIfCancelled": false }, { "DataId": 1019978, diff --git a/QuestPaths/quest-v1.json b/QuestPaths/quest-v1.json index 93efd3c0..09e47075 100644 --- a/QuestPaths/quest-v1.json +++ b/QuestPaths/quest-v1.json @@ -92,6 +92,10 @@ "type": "boolean", "description": "Most interactions with objects are checked for a Y (height) difference of 2 in-game units. If set to true, the game won't attempt to get any closer if the height difference is larger than this." }, + "RestartNavigationIfCancelled": { + "type": "boolean", + "description": "For some specific loading screen transitions (e.g. when entering/leaving the water through the portals in the ruby sea), setting this to 'false' means it won't re-attempt to move to the portal after the loading animation" + }, "TerritoryId": { "type": "integer", "description": "The territory id associated with the location", diff --git a/Questionable.Model/Questing/QuestStep.cs b/Questionable.Model/Questing/QuestStep.cs index a09386bc..5a23e6e4 100644 --- a/Questionable.Model/Questing/QuestStep.cs +++ b/Questionable.Model/Questing/QuestStep.cs @@ -36,6 +36,7 @@ public sealed class QuestStep public bool? Land { get; set; } public bool? Sprint { get; set; } public bool? IgnoreDistanceToObject { get; set; } + public bool? RestartNavigationIfCancelled { get; set; } public string? Comment { get; set; } /// diff --git a/Questionable/Controller/MovementController.cs b/Questionable/Controller/MovementController.cs index 6809c9f1..676d51d0 100644 --- a/Questionable/Controller/MovementController.cs +++ b/Questionable/Controller/MovementController.cs @@ -151,7 +151,7 @@ internal sealed class MovementController : IDisposable if (IsPathRunning && Destination != null) { - if (_gameFunctions.IsLoadingScreenVisible(false)) + if (_gameFunctions.IsLoadingScreenVisible()) { _logger.LogInformation("Stopping movement, loading screen visible"); Stop(); diff --git a/Questionable/Controller/Steps/Shared/MoveTo.cs b/Questionable/Controller/Steps/Shared/MoveTo.cs index a24fb2f0..33192674 100644 --- a/Questionable/Controller/Steps/Shared/MoveTo.cs +++ b/Questionable/Controller/Steps/Shared/MoveTo.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Numerics; using Dalamud.Game.ClientState.Conditions; @@ -67,7 +68,7 @@ internal static class MoveTo public ITask Move(MoveParams moveParams) { return new MoveInternal(moveParams, movementController, gameFunctions, - loggerFactory.CreateLogger(), condition, dataManager); + loggerFactory.CreateLogger(), condition, clientState, dataManager); } public ITask Land() @@ -163,20 +164,24 @@ internal static class MoveTo private readonly MovementController _movementController; private readonly ILogger _logger; private readonly ICondition _condition; + private readonly IClientState _clientState; private readonly Action _startAction; private readonly Vector3 _destination; + private readonly MoveParams _moveParams; public MoveInternal(MoveParams moveParams, MovementController movementController, GameFunctions gameFunctions, ILogger logger, ICondition condition, + IClientState clientState, IDataManager dataManager) { _movementController = movementController; _logger = logger; _condition = condition; + _clientState = clientState; _cannotExecuteAtThisTime = dataManager.GetString(579, x => x.Text)!; _destination = moveParams.Destination; @@ -206,6 +211,8 @@ internal static class MoveTo ignoreDistanceToObject: moveParams.IgnoreDistanceToObject, land: moveParams.Land); } + + _moveParams = moveParams; } public bool Start() @@ -224,6 +231,15 @@ internal static class MoveTo if (movementStartedAt == DateTime.MaxValue || movementStartedAt.AddSeconds(2) >= DateTime.Now) return ETaskResult.StillRunning; + if (_moveParams.RestartNavigation && + Vector3.Distance(_clientState.LocalPlayer!.Position, _destination) > + (_moveParams.StopDistance ?? QuestStep.DefaultStopDistance) + 5f) + { + _logger.LogInformation("Looks like movement was interrupted, re-attempting to move"); + _startAction(); + return ETaskResult.StillRunning; + } + return ETaskResult.TaskComplete; } @@ -248,7 +264,8 @@ internal static class MoveTo bool Sprint = true, bool Fly = false, bool Land = false, - bool IgnoreDistanceToObject = false) + bool IgnoreDistanceToObject = false, + bool RestartNavigation = true) { public MoveParams(QuestStep step, Vector3 destination) : this(step.TerritoryId, @@ -259,7 +276,8 @@ internal static class MoveTo step.Sprint != false, step.Fly == true, step.Land == true, - step.IgnoreDistanceToObject == true) + step.IgnoreDistanceToObject == true, + step.RestartNavigationIfCancelled != false) { } } diff --git a/Questionable/Functions/GameFunctions.cs b/Questionable/Functions/GameFunctions.cs index 360e882d..51795705 100644 --- a/Questionable/Functions/GameFunctions.cs +++ b/Questionable/Functions/GameFunctions.cs @@ -398,7 +398,7 @@ internal sealed unsafe class GameFunctions if (!_clientState.IsLoggedIn || _clientState.LocalPlayer == null) return true; - if (IsLoadingScreenVisible(true)) + if (IsLoadingScreenVisible()) return true; if (_condition[ConditionFlag.Crafting]) @@ -438,19 +438,16 @@ internal sealed unsafe class GameFunctions flags.Contains(ConditionFlag.OccupiedInQuestEvent); } - public bool IsLoadingScreenVisible(bool all) + public bool IsLoadingScreenVisible() { if (_gameGui.TryGetAddonByName("FadeMiddle", out AtkUnitBase* fade) && LAddon.IsAddonReady(fade) && fade->IsVisible) return true; - if (all) - { - if (_gameGui.TryGetAddonByName("FadeBack", out fade) && LAddon.IsAddonReady(fade) && fade->IsVisible) - return true; + if (_gameGui.TryGetAddonByName("FadeBack", out fade) && LAddon.IsAddonReady(fade) && fade->IsVisible) + return true; - if (_gameGui.TryGetAddonByName("NowLoading", out fade) && LAddon.IsAddonReady(fade) && fade->IsVisible) - return true; - } + if (_gameGui.TryGetAddonByName("NowLoading", out fade) && LAddon.IsAddonReady(fade) && fade->IsVisible) + return true; return false; } From 34e1f62ea99ca47f438d1a9687bcaae9d7ddaf48 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Thu, 29 Aug 2024 16:29:21 +0200 Subject: [PATCH 109/450] Add Cure II as action --- QuestPaths/quest-v1.json | 1 + Questionable.Model/Questing/Converter/ActionConverter.cs | 1 + Questionable.Model/Questing/EAction.cs | 1 + 3 files changed, 3 insertions(+) diff --git a/QuestPaths/quest-v1.json b/QuestPaths/quest-v1.json index 09e47075..c7ebd5fa 100644 --- a/QuestPaths/quest-v1.json +++ b/QuestPaths/quest-v1.json @@ -856,6 +856,7 @@ "Heavy Swing", "Heavy Shot", "Cure", + "Cure II", "Esuna", "Physick", "Buffet (Sanuwa)", diff --git a/Questionable.Model/Questing/Converter/ActionConverter.cs b/Questionable.Model/Questing/Converter/ActionConverter.cs index 42e6e384..5c6bea0a 100644 --- a/Questionable.Model/Questing/Converter/ActionConverter.cs +++ b/Questionable.Model/Questing/Converter/ActionConverter.cs @@ -10,6 +10,7 @@ public sealed class ActionConverter() : EnumConverter(Values) { EAction.HeavySwing, "Heavy Swing" }, { EAction.HeavyShot, "Heavy Shot" }, { EAction.Cure, "Cure" }, + { EAction.Cure2, "Cure II" }, { EAction.Esuna, "Esuna" }, { EAction.Physick, "Physick" }, { EAction.BuffetSanuwa, "Buffet (Sanuwa)" }, diff --git a/Questionable.Model/Questing/EAction.cs b/Questionable.Model/Questing/EAction.cs index 15e7f842..5ca20daf 100644 --- a/Questionable.Model/Questing/EAction.cs +++ b/Questionable.Model/Questing/EAction.cs @@ -9,6 +9,7 @@ public enum EAction HeavySwing = 31, HeavyShot = 97, Cure = 120, + Cure2 = 135, Esuna = 7568, Physick = 190, BuffetSanuwa = 4931, From 4ecff4a43335802d982faf6c61bf25329e48341f Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Thu, 29 Aug 2024 16:55:04 +0200 Subject: [PATCH 110/450] Minor WHM quest adjustments --- .../WHM/1719_Taint Misbehaving.json | 40 +++++++++++-- .../WHM/1720_A Journey of Purification.json | 3 +- .../1721_The Girl with the Dragon Tissue.json | 59 ++++++++++++------- .../WHM/1722_The Dark Blight Writhes.json | 16 ++++- .../WHM/1723_In the Wake of Death.json | 10 +++- .../WHM/1725_Hands of Healing.json | 5 +- .../WHM/2414_Unease in East End.json | 6 +- .../WHM/2415_An Aura for Trouble.json | 7 ++- .../WHM/2416_A Beacon for Bad Things.json | 12 ++-- .../WHM/2417_The Problem with Padjals.json | 16 ++++- .../WHM/2418_What She Always Wanted.json | 13 +++- 11 files changed, 144 insertions(+), 43 deletions(-) diff --git a/QuestPaths/3.x - Heavensward/Class Quests/WHM/1719_Taint Misbehaving.json b/QuestPaths/3.x - Heavensward/Class Quests/WHM/1719_Taint Misbehaving.json index 8715345a..fe8075f0 100644 --- a/QuestPaths/3.x - Heavensward/Class Quests/WHM/1719_Taint Misbehaving.json +++ b/QuestPaths/3.x - Heavensward/Class Quests/WHM/1719_Taint Misbehaving.json @@ -96,7 +96,15 @@ }, "TerritoryId": 154, "InteractionType": "Interact", - "AetheryteShortcut": "North Shroud - Fallgourd Float" + "AetheryteShortcut": "North Shroud - Fallgourd Float", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] }, { "DataId": 1007092, @@ -106,7 +114,15 @@ "Z": 232.62378 }, "TerritoryId": 154, - "InteractionType": "Interact" + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] }, { "DataId": 1002804, @@ -116,7 +132,15 @@ "Z": 172.74731 }, "TerritoryId": 154, - "InteractionType": "Interact" + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] } ] }, @@ -133,7 +157,15 @@ "TerritoryId": 154, "InteractionType": "Combat", "EnemySpawnType": "AutoOnEnterArea", - "KillEnemyDataIds": [4683] + "KillEnemyDataIds": [4683], + "CompletionQuestVariablesFlags": [ + 2, + null, + null, + null, + null, + null + ] }, { "DataId": 1013605, diff --git a/QuestPaths/3.x - Heavensward/Class Quests/WHM/1720_A Journey of Purification.json b/QuestPaths/3.x - Heavensward/Class Quests/WHM/1720_A Journey of Purification.json index 510520eb..be678168 100644 --- a/QuestPaths/3.x - Heavensward/Class Quests/WHM/1720_A Journey of Purification.json +++ b/QuestPaths/3.x - Heavensward/Class Quests/WHM/1720_A Journey of Purification.json @@ -35,7 +35,8 @@ }, "TerritoryId": 155, "InteractionType": "Interact", - "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead" + "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", + "Mount": true } ] }, diff --git a/QuestPaths/3.x - Heavensward/Class Quests/WHM/1721_The Girl with the Dragon Tissue.json b/QuestPaths/3.x - Heavensward/Class Quests/WHM/1721_The Girl with the Dragon Tissue.json index cd08a4e0..c219c397 100644 --- a/QuestPaths/3.x - Heavensward/Class Quests/WHM/1721_The Girl with the Dragon Tissue.json +++ b/QuestPaths/3.x - Heavensward/Class Quests/WHM/1721_The Girl with the Dragon Tissue.json @@ -50,7 +50,15 @@ "Z": 792.4772 }, "TerritoryId": 397, - "InteractionType": "Interact" + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] }, { "DataId": 1011237, @@ -60,7 +68,15 @@ "Z": 725.00183 }, "TerritoryId": 397, - "InteractionType": "Interact" + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] } ] }, @@ -92,7 +108,12 @@ "TerritoryId": 397, "InteractionType": "Interact", "Fly": true - }, + } + ] + }, + { + "Sequence": 5, + "Steps": [ { "Position": { "X": -336.4157, @@ -102,7 +123,18 @@ "TerritoryId": 397, "InteractionType": "Combat", "EnemySpawnType": "AutoOnEnterArea", - "KillEnemyDataIds": [4677] + "KillEnemyDataIds": [ + 4677 + ], + "Fly": true, + "CompletionQuestVariablesFlags": [ + 2, + null, + null, + null, + null, + null + ] }, { "DataId": 2005855, @@ -116,22 +148,6 @@ } ] }, - - { - "Sequence": 5, - "Steps": [ - { - "DataId": 2005855, - "Position": { - "X": -336.4157, - "Y": 89.00586, - "Z": -586.5721 - }, - "TerritoryId": 397, - "InteractionType": "Interact" - } - ] - }, { "Sequence": 6, "Steps": [ @@ -143,7 +159,8 @@ "Z": -688.53284 }, "TerritoryId": 397, - "InteractionType": "Interact" + "InteractionType": "Interact", + "Fly": true } ] }, diff --git a/QuestPaths/3.x - Heavensward/Class Quests/WHM/1722_The Dark Blight Writhes.json b/QuestPaths/3.x - Heavensward/Class Quests/WHM/1722_The Dark Blight Writhes.json index 2a1a2d05..8cc13327 100644 --- a/QuestPaths/3.x - Heavensward/Class Quests/WHM/1722_The Dark Blight Writhes.json +++ b/QuestPaths/3.x - Heavensward/Class Quests/WHM/1722_The Dark Blight Writhes.json @@ -49,9 +49,10 @@ "Y": 125.596924, "Z": -11.215393 }, + "StopDistance": 5, "TerritoryId": 397, - "InteractionType": "WaitForManualProgress", - "$": "Cure II needs to be added to list of actions" + "InteractionType": "Action", + "Action": "Cure II" } ] }, @@ -68,7 +69,16 @@ "TerritoryId": 397, "InteractionType": "Combat", "EnemySpawnType": "AutoOnEnterArea", - "KillEnemyDataIds": [4690] + "KillEnemyDataIds": [4690], + "Fly": true, + "CompletionQuestVariablesFlags": [ + 4, + null, + null, + null, + null, + null + ] }, { "DataId": 2005857, diff --git a/QuestPaths/3.x - Heavensward/Class Quests/WHM/1723_In the Wake of Death.json b/QuestPaths/3.x - Heavensward/Class Quests/WHM/1723_In the Wake of Death.json index 1c433969..d96e1d70 100644 --- a/QuestPaths/3.x - Heavensward/Class Quests/WHM/1723_In the Wake of Death.json +++ b/QuestPaths/3.x - Heavensward/Class Quests/WHM/1723_In the Wake of Death.json @@ -52,7 +52,15 @@ "InteractionType": "Combat", "EnemySpawnType": "AutoOnEnterArea", "KillEnemyDataIds": [4691, 4692], - "Fly": true + "Fly": true, + "CompletionQuestVariablesFlags": [ + 4, + null, + null, + null, + null, + null + ] }, { "DataId": 2005859, diff --git a/QuestPaths/3.x - Heavensward/Class Quests/WHM/1725_Hands of Healing.json b/QuestPaths/3.x - Heavensward/Class Quests/WHM/1725_Hands of Healing.json index 3543774e..1a7b66ca 100644 --- a/QuestPaths/3.x - Heavensward/Class Quests/WHM/1725_Hands of Healing.json +++ b/QuestPaths/3.x - Heavensward/Class Quests/WHM/1725_Hands of Healing.json @@ -176,7 +176,8 @@ }, "TerritoryId": 398, "InteractionType": "SinglePlayerDuty", - "AetheryteShortcut": "The Dravanian Forelands - Anyx Trine" + "AetheryteShortcut": "The Dravanian Forelands - Anyx Trine", + "Fly": true } ] }, @@ -272,7 +273,7 @@ }, "TerritoryId": 153, "InteractionType": "CompleteQuest", - "NextQuestId": 1725 + "NextQuestId": 2414 } ] } diff --git a/QuestPaths/4.x - Stormblood/Class Quests/WHM/2414_Unease in East End.json b/QuestPaths/4.x - Stormblood/Class Quests/WHM/2414_Unease in East End.json index 34e97ad7..35041f7a 100644 --- a/QuestPaths/4.x - Stormblood/Class Quests/WHM/2414_Unease in East End.json +++ b/QuestPaths/4.x - Stormblood/Class Quests/WHM/2414_Unease in East End.json @@ -99,7 +99,8 @@ }, "TerritoryId": 152, "InteractionType": "Interact", - "AetheryteShortcut": "East Shroud - Hawthorne Hut" + "AetheryteShortcut": "East Shroud - Hawthorne Hut", + "Fly": true } ] }, @@ -130,7 +131,8 @@ "Z": -291.52362 }, "TerritoryId": 612, - "InteractionType": "Interact" + "InteractionType": "Interact", + "Fly": true } ] }, diff --git a/QuestPaths/4.x - Stormblood/Class Quests/WHM/2415_An Aura for Trouble.json b/QuestPaths/4.x - Stormblood/Class Quests/WHM/2415_An Aura for Trouble.json index 195ca167..ce6f9b65 100644 --- a/QuestPaths/4.x - Stormblood/Class Quests/WHM/2415_An Aura for Trouble.json +++ b/QuestPaths/4.x - Stormblood/Class Quests/WHM/2415_An Aura for Trouble.json @@ -34,7 +34,8 @@ "Z": -100.23657 }, "TerritoryId": 612, - "InteractionType": "Interact" + "InteractionType": "Interact", + "Fly": true } ] }, @@ -47,10 +48,12 @@ "Y": 54.95936, "Z": 204.82178 }, + "StopDistance": 0.5, "TerritoryId": 612, "InteractionType": "Combat", "EnemySpawnType": "AutoOnEnterArea", - "KillEnemyDataIds": [7214] + "KillEnemyDataIds": [7214], + "Fly": true }, { "DataId": 1018758, diff --git a/QuestPaths/4.x - Stormblood/Class Quests/WHM/2416_A Beacon for Bad Things.json b/QuestPaths/4.x - Stormblood/Class Quests/WHM/2416_A Beacon for Bad Things.json index cb49dcfe..b9e8d1b6 100644 --- a/QuestPaths/4.x - Stormblood/Class Quests/WHM/2416_A Beacon for Bad Things.json +++ b/QuestPaths/4.x - Stormblood/Class Quests/WHM/2416_A Beacon for Bad Things.json @@ -34,7 +34,8 @@ "Z": 86.96118 }, "TerritoryId": 612, - "InteractionType": "Interact" + "InteractionType": "Interact", + "Fly": true } ] }, @@ -49,7 +50,8 @@ "Z": 186.08374 }, "TerritoryId": 612, - "InteractionType": "Interact" + "InteractionType": "Interact", + "Fly": true } ] }, @@ -64,7 +66,8 @@ "Z": 451.16345 }, "TerritoryId": 612, - "InteractionType": "Interact" + "InteractionType": "Interact", + "Fly": true } ] }, @@ -79,7 +82,8 @@ "Z": 374.92932 }, "TerritoryId": 612, - "InteractionType": "SinglePlayerDuty" + "InteractionType": "SinglePlayerDuty", + "Fly": true } ] }, diff --git a/QuestPaths/4.x - Stormblood/Class Quests/WHM/2417_The Problem with Padjals.json b/QuestPaths/4.x - Stormblood/Class Quests/WHM/2417_The Problem with Padjals.json index 12c95bf9..b34f17f2 100644 --- a/QuestPaths/4.x - Stormblood/Class Quests/WHM/2417_The Problem with Padjals.json +++ b/QuestPaths/4.x - Stormblood/Class Quests/WHM/2417_The Problem with Padjals.json @@ -34,7 +34,8 @@ "Z": 370.80945 }, "TerritoryId": 612, - "InteractionType": "Interact" + "InteractionType": "Interact", + "Fly": true } ] }, @@ -51,7 +52,8 @@ "InteractionType": "Combat", "EnemySpawnType": "AutoOnEnterArea", "KillEnemyDataIds": [7215], - "AetheryteShortcut": "Fringes - Castrum Oriens" + "AetheryteShortcut": "Fringes - Castrum Oriens", + "Fly": true }, { "DataId": 1019128, @@ -68,6 +70,16 @@ { "Sequence": 3, "Steps": [ + { + "Position": { + "X": -650.58673, + "Y": 39.856243, + "Z": 371.54846 + }, + "TerritoryId": 612, + "InteractionType": "WalkTo", + "Fly": true + }, { "DataId": 1019131, "Position": { diff --git a/QuestPaths/4.x - Stormblood/Class Quests/WHM/2418_What She Always Wanted.json b/QuestPaths/4.x - Stormblood/Class Quests/WHM/2418_What She Always Wanted.json index 53a0fd4f..eec344e8 100644 --- a/QuestPaths/4.x - Stormblood/Class Quests/WHM/2418_What She Always Wanted.json +++ b/QuestPaths/4.x - Stormblood/Class Quests/WHM/2418_What She Always Wanted.json @@ -42,6 +42,16 @@ { "Sequence": 2, "Steps": [ + { + "Position": { + "X": -650.58673, + "Y": 39.856243, + "Z": 371.54846 + }, + "TerritoryId": 612, + "InteractionType": "WalkTo", + "Fly": true + }, { "DataId": 1019130, "Position": { @@ -89,7 +99,8 @@ "TerritoryId": 612, "InteractionType": "Combat", "EnemySpawnType": "AutoOnEnterArea", - "KillEnemyDataIds": [7216] + "KillEnemyDataIds": [7216], + "Fly": true } ] }, From 0a49da168227c1ae50e86c4a89f45558eda73026 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Thu, 29 Aug 2024 21:33:07 +0200 Subject: [PATCH 111/450] Minor healer quest adjustments --- .../Healer/3267_Traditions and Travails.json | 3 ++- .../Role Quests/Healer/3268_Affronts and Allies.json | 9 ++++++--- .../Healer/3269_The Scientific Method.json | 5 ++++- .../Healer/3270_The Lost and the Found.json | 9 ++++++--- .../Role Quests/Healer/3271_Never to Return.json | 3 ++- .../Healer/3272_The Soul of Temperance.json | 12 +++++++----- 6 files changed, 27 insertions(+), 14 deletions(-) diff --git a/QuestPaths/5.x - Shadowbringers/Role Quests/Healer/3267_Traditions and Travails.json b/QuestPaths/5.x - Shadowbringers/Role Quests/Healer/3267_Traditions and Travails.json index 8e04de51..15fc4534 100644 --- a/QuestPaths/5.x - Shadowbringers/Role Quests/Healer/3267_Traditions and Travails.json +++ b/QuestPaths/5.x - Shadowbringers/Role Quests/Healer/3267_Traditions and Travails.json @@ -37,7 +37,8 @@ }, "TerritoryId": 813, "InteractionType": "Interact", - "AetheryteShortcut": "Lakeland - Fort Jobb" + "AetheryteShortcut": "Lakeland - Fort Jobb", + "Fly": true } ] }, diff --git a/QuestPaths/5.x - Shadowbringers/Role Quests/Healer/3268_Affronts and Allies.json b/QuestPaths/5.x - Shadowbringers/Role Quests/Healer/3268_Affronts and Allies.json index 268e2b12..ad7d1e23 100644 --- a/QuestPaths/5.x - Shadowbringers/Role Quests/Healer/3268_Affronts and Allies.json +++ b/QuestPaths/5.x - Shadowbringers/Role Quests/Healer/3268_Affronts and Allies.json @@ -54,7 +54,8 @@ "TerritoryId": 814, "InteractionType": "Combat", "EnemySpawnType": "AfterInteraction", - "KillEnemyDataIds": [10866] + "KillEnemyDataIds": [10866], + "Fly": true } ] }, @@ -71,7 +72,8 @@ "TerritoryId": 814, "InteractionType": "Combat", "EnemySpawnType": "AfterInteraction", - "KillEnemyDataIds": [10867] + "KillEnemyDataIds": [10867], + "Fly": true } ] }, @@ -86,7 +88,8 @@ "Z": 177.47766 }, "TerritoryId": 814, - "InteractionType": "Interact" + "InteractionType": "Interact", + "Fly": true } ] }, diff --git a/QuestPaths/5.x - Shadowbringers/Role Quests/Healer/3269_The Scientific Method.json b/QuestPaths/5.x - Shadowbringers/Role Quests/Healer/3269_The Scientific Method.json index 19c40685..a1c6b7cb 100644 --- a/QuestPaths/5.x - Shadowbringers/Role Quests/Healer/3269_The Scientific Method.json +++ b/QuestPaths/5.x - Shadowbringers/Role Quests/Healer/3269_The Scientific Method.json @@ -51,6 +51,7 @@ "Y": 1.4800415, "Z": -282.7345 }, + "StopDistance": 4, "TerritoryId": 815, "InteractionType": "Interact", "DialogueChoices": [ @@ -74,7 +75,8 @@ "Z": -36.66742 }, "TerritoryId": 815, - "InteractionType": "Interact" + "InteractionType": "Interact", + "Fly": true } ] }, @@ -88,6 +90,7 @@ "Y": -25.7535, "Z": -35.6604 }, + "StopDistance": 4, "TerritoryId": 815, "InteractionType": "Interact" } diff --git a/QuestPaths/5.x - Shadowbringers/Role Quests/Healer/3270_The Lost and the Found.json b/QuestPaths/5.x - Shadowbringers/Role Quests/Healer/3270_The Lost and the Found.json index 215bc044..9fbd36cd 100644 --- a/QuestPaths/5.x - Shadowbringers/Role Quests/Healer/3270_The Lost and the Found.json +++ b/QuestPaths/5.x - Shadowbringers/Role Quests/Healer/3270_The Lost and the Found.json @@ -54,7 +54,8 @@ "TerritoryId": 817, "InteractionType": "Combat", "EnemySpawnType": "AfterInteraction", - "KillEnemyDataIds": [10950] + "KillEnemyDataIds": [10950], + "Fly": true } ] }, @@ -71,7 +72,8 @@ "TerritoryId": 817, "InteractionType": "Combat", "EnemySpawnType": "AfterInteraction", - "KillEnemyDataIds": [10869] + "KillEnemyDataIds": [10869], + "Fly": true } ] }, @@ -86,7 +88,8 @@ "Z": 59.861084 }, "TerritoryId": 817, - "InteractionType": "SinglePlayerDuty" + "InteractionType": "SinglePlayerDuty", + "Fly": true } ] }, diff --git a/QuestPaths/5.x - Shadowbringers/Role Quests/Healer/3271_Never to Return.json b/QuestPaths/5.x - Shadowbringers/Role Quests/Healer/3271_Never to Return.json index f0e75da0..5e306be5 100644 --- a/QuestPaths/5.x - Shadowbringers/Role Quests/Healer/3271_Never to Return.json +++ b/QuestPaths/5.x - Shadowbringers/Role Quests/Healer/3271_Never to Return.json @@ -52,7 +52,8 @@ "Z": -677.9431 }, "TerritoryId": 814, - "InteractionType": "Interact" + "InteractionType": "Interact", + "Fly": true } ] }, diff --git a/QuestPaths/5.x - Shadowbringers/Role Quests/Healer/3272_The Soul of Temperance.json b/QuestPaths/5.x - Shadowbringers/Role Quests/Healer/3272_The Soul of Temperance.json index 24d7c9d6..f951018d 100644 --- a/QuestPaths/5.x - Shadowbringers/Role Quests/Healer/3272_The Soul of Temperance.json +++ b/QuestPaths/5.x - Shadowbringers/Role Quests/Healer/3272_The Soul of Temperance.json @@ -13,9 +13,8 @@ "Z": -597.1008 }, "TerritoryId": 814, - "InteractionType": "CompleteQuest", + "InteractionType": "AcceptQuest", "AetheryteShortcut": "Kholusia - Tomra", - "NextQuestId": 3272, "SkipConditions": { "AethernetShortcutIf": { "InSameTerritory": true } } @@ -35,7 +34,8 @@ "TerritoryId": 814, "InteractionType": "Combat", "EnemySpawnType": "AfterInteraction", - "KillEnemyDataIds": [10870] + "KillEnemyDataIds": [10870], + "Fly": true } ] }, @@ -52,7 +52,8 @@ "TerritoryId": 814, "InteractionType": "Combat", "EnemySpawnType": "AfterInteraction", - "KillEnemyDataIds": [10871] + "KillEnemyDataIds": [10871], + "Fly": true } ] }, @@ -67,7 +68,8 @@ "Z": -129.01508 }, "TerritoryId": 814, - "InteractionType": "SinglePlayerDuty" + "InteractionType": "SinglePlayerDuty", + "Fly": true } ] }, From 24c1e0c5d953c35b1b27b066c80cfd229844e16b Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Fri, 30 Aug 2024 09:15:46 +0200 Subject: [PATCH 112/450] Version bump --- Directory.Build.targets | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Directory.Build.targets b/Directory.Build.targets index d7818760..6b83635a 100644 --- a/Directory.Build.targets +++ b/Directory.Build.targets @@ -1,5 +1,5 @@ - 2.17 + 2.18 From 47d9f090a24a43cf4fb3cb60f9bc9f5f4397c4bf Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Fri, 30 Aug 2024 13:59:33 +0200 Subject: [PATCH 113/450] Handle zone transitiions in new movement logic --- Directory.Build.targets | 2 +- Questionable/Controller/Steps/Shared/MoveTo.cs | 18 ++++++++++++++---- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/Directory.Build.targets b/Directory.Build.targets index 6b83635a..c6651601 100644 --- a/Directory.Build.targets +++ b/Directory.Build.targets @@ -1,5 +1,5 @@ - 2.18 + 2.19 diff --git a/Questionable/Controller/Steps/Shared/MoveTo.cs b/Questionable/Controller/Steps/Shared/MoveTo.cs index 33192674..f9e0d690 100644 --- a/Questionable/Controller/Steps/Shared/MoveTo.cs +++ b/Questionable/Controller/Steps/Shared/MoveTo.cs @@ -169,6 +169,8 @@ internal static class MoveTo private readonly Action _startAction; private readonly Vector3 _destination; private readonly MoveParams _moveParams; + private readonly bool _isUnderwaterInitially; + private bool _canRestart; public MoveInternal(MoveParams moveParams, MovementController movementController, @@ -213,6 +215,7 @@ internal static class MoveTo } _moveParams = moveParams; + _canRestart = moveParams.RestartNavigation; } public bool Start() @@ -231,13 +234,20 @@ internal static class MoveTo if (movementStartedAt == DateTime.MaxValue || movementStartedAt.AddSeconds(2) >= DateTime.Now) return ETaskResult.StillRunning; - if (_moveParams.RestartNavigation && + if (_canRestart && Vector3.Distance(_clientState.LocalPlayer!.Position, _destination) > (_moveParams.StopDistance ?? QuestStep.DefaultStopDistance) + 5f) { - _logger.LogInformation("Looks like movement was interrupted, re-attempting to move"); - _startAction(); - return ETaskResult.StillRunning; + _canRestart = false; + if (_clientState.TerritoryType == _moveParams.TerritoryId) + { + _logger.LogInformation("Looks like movement was interrupted, re-attempting to move"); + _startAction(); + return ETaskResult.StillRunning; + } + else + _logger.LogInformation( + "Looks like movement was interrupted, do nothing since we're in a different territory now"); } return ETaskResult.TaskComplete; From ded6f6bbb296d973e457550995486faca95d4188 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Fri, 30 Aug 2024 17:10:54 +0200 Subject: [PATCH 114/450] Always hide 'Cannot execute at this time' while moving, not only during diving --- Questionable/Controller/Steps/Shared/MoveTo.cs | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/Questionable/Controller/Steps/Shared/MoveTo.cs b/Questionable/Controller/Steps/Shared/MoveTo.cs index f9e0d690..28562a0b 100644 --- a/Questionable/Controller/Steps/Shared/MoveTo.cs +++ b/Questionable/Controller/Steps/Shared/MoveTo.cs @@ -68,7 +68,7 @@ internal static class MoveTo public ITask Move(MoveParams moveParams) { return new MoveInternal(moveParams, movementController, gameFunctions, - loggerFactory.CreateLogger(), condition, clientState, dataManager); + loggerFactory.CreateLogger(), clientState, dataManager); } public ITask Land() @@ -163,26 +163,22 @@ internal static class MoveTo private readonly string _cannotExecuteAtThisTime; private readonly MovementController _movementController; private readonly ILogger _logger; - private readonly ICondition _condition; private readonly IClientState _clientState; private readonly Action _startAction; private readonly Vector3 _destination; private readonly MoveParams _moveParams; - private readonly bool _isUnderwaterInitially; private bool _canRestart; public MoveInternal(MoveParams moveParams, MovementController movementController, GameFunctions gameFunctions, ILogger logger, - ICondition condition, IClientState clientState, IDataManager dataManager) { _movementController = movementController; _logger = logger; - _condition = condition; _clientState = clientState; _cannotExecuteAtThisTime = dataManager.GetString(579, x => x.Text)!; @@ -257,8 +253,7 @@ internal static class MoveTo public bool OnErrorToast(SeString message) { - if (GameFunctions.GameStringEquals(_cannotExecuteAtThisTime, message.TextValue) && - _condition[ConditionFlag.Diving]) + if (GameFunctions.GameStringEquals(_cannotExecuteAtThisTime, message.TextValue)) return true; return false; From 308d4b8253d1b0089ea4a27ff7fc90f822ddab3d Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Fri, 30 Aug 2024 20:35:37 +0200 Subject: [PATCH 115/450] Update source gen --- QuestPathGenerator/RoslynElements/QuestStepExtensions.cs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/QuestPathGenerator/RoslynElements/QuestStepExtensions.cs b/QuestPathGenerator/RoslynElements/QuestStepExtensions.cs index 11cdc214..e5b8eabb 100644 --- a/QuestPathGenerator/RoslynElements/QuestStepExtensions.cs +++ b/QuestPathGenerator/RoslynElements/QuestStepExtensions.cs @@ -62,6 +62,9 @@ internal static class QuestStepExtensions Assignment(nameof(QuestStep.IgnoreDistanceToObject), step.IgnoreDistanceToObject, emptyStep.IgnoreDistanceToObject) .AsSyntaxNodeOrToken(), + Assignment(nameof(QuestStep.RestartNavigationIfCancelled), + step.RestartNavigationIfCancelled, emptyStep.RestartNavigationIfCancelled) + .AsSyntaxNodeOrToken(), Assignment(nameof(QuestStep.Comment), step.Comment, emptyStep.Comment) .AsSyntaxNodeOrToken(), Assignment(nameof(QuestStep.Aetheryte), step.Aetheryte, emptyStep.Aetheryte) From a5d75eb0f549de13e8166438b41adac2c926ee30 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Fri, 30 Aug 2024 20:35:53 +0200 Subject: [PATCH 116/450] Update some late ARR quests --- .../MSQ-2/E6-2.55/427_The Parting Glass.json | 1 + .../MSQ-2/E6-2.55/428_Before the Dawn.json | 1 + .../Raid Quests/1709_Legacy of Allag.json | 44 +++++++++---------- .../Gold Saucer/435_World of Wonders.json | 18 ++++++++ 4 files changed, 41 insertions(+), 23 deletions(-) diff --git a/QuestPaths/2.x - A Realm Reborn/MSQ-2/E6-2.55/427_The Parting Glass.json b/QuestPaths/2.x - A Realm Reborn/MSQ-2/E6-2.55/427_The Parting Glass.json index c02faa3e..28fc2c1b 100644 --- a/QuestPaths/2.x - A Realm Reborn/MSQ-2/E6-2.55/427_The Parting Glass.json +++ b/QuestPaths/2.x - A Realm Reborn/MSQ-2/E6-2.55/427_The Parting Glass.json @@ -53,6 +53,7 @@ "Y": -0.63573146, "Z": -166.33862 }, + "StopDistance": 5, "TerritoryId": 141, "InteractionType": "Interact" } diff --git a/QuestPaths/2.x - A Realm Reborn/MSQ-2/E6-2.55/428_Before the Dawn.json b/QuestPaths/2.x - A Realm Reborn/MSQ-2/E6-2.55/428_Before the Dawn.json index a502544c..0db03bd8 100644 --- a/QuestPaths/2.x - A Realm Reborn/MSQ-2/E6-2.55/428_Before the Dawn.json +++ b/QuestPaths/2.x - A Realm Reborn/MSQ-2/E6-2.55/428_Before the Dawn.json @@ -35,6 +35,7 @@ }, "TerritoryId": 155, "InteractionType": "CompleteQuest", + "Mount": true, "DialogueChoices": [ { "Type": "YesNo", diff --git a/QuestPaths/2.x - A Realm Reborn/Raid Quests/1709_Legacy of Allag.json b/QuestPaths/2.x - A Realm Reborn/Raid Quests/1709_Legacy of Allag.json index 687fc403..1e363fb4 100644 --- a/QuestPaths/2.x - A Realm Reborn/Raid Quests/1709_Legacy of Allag.json +++ b/QuestPaths/2.x - A Realm Reborn/Raid Quests/1709_Legacy of Allag.json @@ -337,16 +337,6 @@ "InteractionType": "WalkTo", "Fly": true }, - { - "Position": { - "X": 233.0817, - "Y": 8, - "Z": -21.83023 - }, - "TerritoryId": 146, - "InteractionType": "WalkTo", - "Fly": true - }, { "DataId": 2000077, "Position": { @@ -360,18 +350,16 @@ "KillEnemyDataIds": [ 9489 ], - "$": "0 0 0 0 0 0 -> 16 17 0 0 0 128" - }, - { - "Position": { - "X": 614.4023, - "Y": 301.81046, - "Z": -101.94888 - }, - "TerritoryId": 155, - "InteractionType": "WalkTo", - "Fly": true, - "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead" + "$": "0 0 0 0 0 0 -> 16 17 0 0 0 128", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ], + "Fly": true }, { "DataId": 2000078, @@ -386,7 +374,17 @@ "KillEnemyDataIds": [ 9490 ], - "$": "16 17 0 0 0 128 -> 0 17 0 0 0 0" + "Fly": true, + "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", + "$": "16 17 0 0 0 128 -> 0 17 0 0 0 0", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] } ] }, diff --git a/QuestPaths/2.x - A Realm Reborn/Unlocks/Gold Saucer/435_World of Wonders.json b/QuestPaths/2.x - A Realm Reborn/Unlocks/Gold Saucer/435_World of Wonders.json index 7831f300..f6dce677 100644 --- a/QuestPaths/2.x - A Realm Reborn/Unlocks/Gold Saucer/435_World of Wonders.json +++ b/QuestPaths/2.x - A Realm Reborn/Unlocks/Gold Saucer/435_World of Wonders.json @@ -191,6 +191,15 @@ "AethernetShard": "[Gold Saucer] Cactpot Board", "DelaySecondsAtStart": 3 }, + { + "Position": { + "X": 111.36922, + "Y": 13.000123, + "Z": -24.209782 + }, + "TerritoryId": 144, + "InteractionType": "WalkTo" + }, { "DataId": 1011079, "Position": { @@ -207,6 +216,15 @@ { "Sequence": 6, "Steps": [ + { + "Position": { + "X": 111.36922, + "Y": 13.000123, + "Z": -24.209782 + }, + "TerritoryId": 144, + "InteractionType": "WalkTo" + }, { "TerritoryId": 144, "InteractionType": "None", From de7cf2a94fec6d2317d33d34a888d806a8e316f6 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Fri, 30 Aug 2024 21:40:42 +0200 Subject: [PATCH 117/450] Handle accepting quests via 'PickupQuestId' if NPC offers multiple quests --- .../Controller/GameUi/InteractionUiController.cs | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/Questionable/Controller/GameUi/InteractionUiController.cs b/Questionable/Controller/GameUi/InteractionUiController.cs index e630d7d6..21c95d29 100644 --- a/Questionable/Controller/GameUi/InteractionUiController.cs +++ b/Questionable/Controller/GameUi/InteractionUiController.cs @@ -235,6 +235,16 @@ internal sealed class InteractionUiController : IDisposable _logger.LogInformation("Checking if current quest {Name} is on the list", currentQuest.Quest.Info.Name); if (CheckQuestSelection(addonSelectIconString, currentQuest.Quest, answers)) return; + + var sequence = currentQuest.Quest.FindSequence(currentQuest.Sequence); + QuestStep? step = sequence?.FindStep(currentQuest.Step); + if (step is { InteractionType: EInteractionType.AcceptQuest, PickUpQuestId: not null } && + _questRegistry.TryGetQuest(step.PickUpQuestId, out Quest? pickupQuest)) + { + _logger.LogInformation("Checking if current picked-up {Name} is on the list", pickupQuest.Info.Name); + if (CheckQuestSelection(addonSelectIconString, pickupQuest, answers)) + return; + } } var nextQuest = _questController.NextQuest; From 5fe89ae00155e7f055f9939ded672cd59007f30d Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Sat, 31 Aug 2024 16:37:08 +0800 Subject: [PATCH 118/450] Added MNK quest "The Legend Continues" --- .../MNK/2026_The Legend Continues.json | 154 ++++++++++++++++++ 1 file changed, 154 insertions(+) create mode 100644 QuestPaths/3.x - Heavensward/Class Quests/MNK/2026_The Legend Continues.json diff --git a/QuestPaths/3.x - Heavensward/Class Quests/MNK/2026_The Legend Continues.json b/QuestPaths/3.x - Heavensward/Class Quests/MNK/2026_The Legend Continues.json new file mode 100644 index 00000000..63aab0af --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Class Quests/MNK/2026_The Legend Continues.json @@ -0,0 +1,154 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "plogon_enjoyer", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1006749, + "Position": { + "X": -30.47229, + "Y": 13.599918, + "Z": 95.26196 + }, + "TerritoryId": 131, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1013971, + "Position": { + "X": 15.854065, + "Y": 28.620823, + "Z": -682.76495 + }, + "TerritoryId": 156, + "InteractionType": "Interact", + "Fly": true, + "AetheryteShortcut": "Mor Dhona" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1013976, + "Position": { + "X": 95.87244, + "Y": -4.4635005, + "Z": -533.56226 + }, + "TerritoryId": 156, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1013977, + "Position": { + "X": 207.53784, + "Y": 18.12324, + "Z": -608.75867 + }, + "TerritoryId": 156, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [777], + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1013977, + "Position": { + "X": 207.53784, + "Y": 18.12324, + "Z": -608.75867 + }, + "TerritoryId": 156, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1013978, + "Position": { + "X": 205.95093, + "Y": -22.991264, + "Z": -449.24084 + }, + "TerritoryId": 156, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [4615], + "Fly": true + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1013978, + "Position": { + "X": 205.95093, + "Y": -22.991264, + "Z": -449.24084 + }, + "TerritoryId": 156, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 7, + "Steps": [ + { + "DataId": 1014111, + "Position": { + "X": 95.87244, + "Y": -4.4635005, + "Z": -533.56226 + }, + "TerritoryId": 156, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1013971, + "Position": { + "X": 15.854065, + "Y": 28.620823, + "Z": -682.76495 + }, + "TerritoryId": 156, + "InteractionType": "CompleteQuest", + "Fly": true, + "AetheryteShortcut": "Mor Dhona", + "NextQuestId": 2027 + } + ] + } + ] +} From 1277ed55472fb203eeef5d873c4a57b2482bbbf4 Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Sat, 31 Aug 2024 16:38:03 +0800 Subject: [PATCH 119/450] Added MNK quest "Let's Talk about Sects" --- .../MNK/2027_Let's Talk about Sects.json | 194 ++++++++++++++++++ 1 file changed, 194 insertions(+) create mode 100644 QuestPaths/3.x - Heavensward/Class Quests/MNK/2027_Let's Talk about Sects.json diff --git a/QuestPaths/3.x - Heavensward/Class Quests/MNK/2027_Let's Talk about Sects.json b/QuestPaths/3.x - Heavensward/Class Quests/MNK/2027_Let's Talk about Sects.json new file mode 100644 index 00000000..3e977e0e --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Class Quests/MNK/2027_Let's Talk about Sects.json @@ -0,0 +1,194 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "plogon_enjoyer", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1013971, + "Position": { + "X": 15.854065, + "Y": 28.620823, + "Z": -682.76495 + }, + "TerritoryId": 156, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1013982, + "Position": { + "X": -73.0755, + "Y": 2.668869, + "Z": -622.52234 + }, + "TerritoryId": 156, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": -144.73549, + "Y": 1.9077771, + "Z": -655.4047 + }, + "TerritoryId": 156, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 1013984, + "Position": { + "X": -142.22937, + "Y": 1.3916924, + "Z": -654.13904 + }, + "TerritoryId": 156, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "Position": { + "X": -142.22937, + "Y": 1.3916924, + "Z": -654.13904 + }, + "TerritoryId": 156, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [5047] + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "Position": { + "X": -222.99123, + "Y": 3.602174, + "Z": -625.4028 + }, + "TerritoryId": 156, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 1013987, + "Position": { + "X": -223.40735, + "Y": 4.1458693, + "Z": -628.32074 + }, + "TerritoryId": 156, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "Position": { + "X": -223.40735, + "Y": 4.1458693, + "Z": -628.32074 + }, + "TerritoryId": 156, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [5047] + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "Position": { + "X": -256.7943, + "Y": -5.5647316, + "Z": -542.8478 + }, + "TerritoryId": 156, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 1013990, + "Position": { + "X": -253.83386, + "Y": -5.455734, + "Z": -542.87024 + }, + "TerritoryId": 156, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 7, + "Steps": [ + { + "Position": { + "X": -253.83386, + "Y": -5.455734, + "Z": -542.87024 + }, + "TerritoryId": 156, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [5043] + } + ] + }, + { + "Sequence": 8, + "Steps": [ + { + "DataId": 1013994, + "Position": { + "X": -402.36517, + "Y": -14.213073, + "Z": -502.06763 + }, + "TerritoryId": 156, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1013971, + "Position": { + "X": 15.854065, + "Y": 28.620823, + "Z": -682.76495 + }, + "TerritoryId": 156, + "InteractionType": "CompleteQuest", + "Fly": true, + "AetheryteShortcut": "Mor Dhona", + "NextQuestId": 2028 + } + ] + } + ] +} From 0a99feeab6bae5b1895ef6d441e786b0a5ecd4ea Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Sat, 31 Aug 2024 17:42:00 +0800 Subject: [PATCH 120/450] Added MNK quest "Against the Shadow" --- .../MNK/2028_Against the Shadow.json | 56 +++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 QuestPaths/3.x - Heavensward/Class Quests/MNK/2028_Against the Shadow.json diff --git a/QuestPaths/3.x - Heavensward/Class Quests/MNK/2028_Against the Shadow.json b/QuestPaths/3.x - Heavensward/Class Quests/MNK/2028_Against the Shadow.json new file mode 100644 index 00000000..4ed88620 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Class Quests/MNK/2028_Against the Shadow.json @@ -0,0 +1,56 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "plogon_enjoyer", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1013971, + "Position": { + "X": 15.854065, + "Y": 28.620823, + "Z": -682.76495 + }, + "TerritoryId": 156, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1013997, + "Position": { + "X": -78.29407, + "Y": 68.34659, + "Z": -157.33582 + }, + "TerritoryId": 147, + "InteractionType": "SinglePlayerDuty", + "Fly": true, + "AetheryteShortcut": "Northern Thanalan - Ceruleum Processing Plant" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1013971, + "Position": { + "X": 15.854065, + "Y": 28.620823, + "Z": -682.76495 + }, + "TerritoryId": 156, + "InteractionType": "CompleteQuest", + "Fly": true, + "AetheryteShortcut": "Mor Dhona", + "NextQuestId": 2029 + } + ] + } + ] +} From a15ecae7e07b4baca0605bb18749aefd1234a973 Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Sat, 31 Aug 2024 17:42:23 +0800 Subject: [PATCH 121/450] Added MNK quest "Fight the Battle to Win" --- .../MNK/2029_Fight the Battle to Win.json | 90 +++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 QuestPaths/3.x - Heavensward/Class Quests/MNK/2029_Fight the Battle to Win.json diff --git a/QuestPaths/3.x - Heavensward/Class Quests/MNK/2029_Fight the Battle to Win.json b/QuestPaths/3.x - Heavensward/Class Quests/MNK/2029_Fight the Battle to Win.json new file mode 100644 index 00000000..14902731 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Class Quests/MNK/2029_Fight the Battle to Win.json @@ -0,0 +1,90 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "plogon_enjoyer", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1013971, + "Position": { + "X": 15.854065, + "Y": 28.620823, + "Z": -682.76495 + }, + "TerritoryId": 156, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1013999, + "Position": { + "X": 33.89026, + "Y": -8.812927, + "Z": 126.17676 + }, + "TerritoryId": 154, + "InteractionType": "Interact", + "Fly": true, + "AetheryteShortcut": "North Shroud - Fallgourd Float" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2005966, + "Position": { + "X": 163.53088, + "Y": -27.328918, + "Z": 207.84314 + }, + "TerritoryId": 154, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [5043], + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1014001, + "Position": { + "X": 404.89807, + "Y": -5.4588227, + "Z": 72.342896 + }, + "TerritoryId": 154, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1013971, + "Position": { + "X": 15.854065, + "Y": 28.620823, + "Z": -682.76495 + }, + "TerritoryId": 156, + "InteractionType": "CompleteQuest", + "Fly": true, + "AetheryteShortcut": "Mor Dhona", + "NextQuestId": 2030 + } + ] + } + ] +} From 34339feaf5d7985d5dc3b54983ae98433f4d1b1b Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Sat, 31 Aug 2024 17:43:10 +0800 Subject: [PATCH 122/450] Added MNK quest "Stop the Senseless Killing" --- .../MNK/2030_Stop the Senseless Killing.json | 123 ++++++++++++++++++ 1 file changed, 123 insertions(+) create mode 100644 QuestPaths/3.x - Heavensward/Class Quests/MNK/2030_Stop the Senseless Killing.json diff --git a/QuestPaths/3.x - Heavensward/Class Quests/MNK/2030_Stop the Senseless Killing.json b/QuestPaths/3.x - Heavensward/Class Quests/MNK/2030_Stop the Senseless Killing.json new file mode 100644 index 00000000..a337d017 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Class Quests/MNK/2030_Stop the Senseless Killing.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": 1013971, + "Position": { + "X": 15.854065, + "Y": 28.620823, + "Z": -682.76495 + }, + "TerritoryId": 156, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1014005, + "Position": { + "X": -631.22, + "Y": 121.245285, + "Z": -652.39954 + }, + "TerritoryId": 397, + "InteractionType": "Interact", + "AetheryteShortcut": "Coerthas Western Highlands - Falcon's Nest", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2005967, + "Position": { + "X": -556.9696, + "Y": 116.68567, + "Z": -794.0032 + }, + "TerritoryId": 397, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [4627], + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1014006, + "Position": { + "X": -627.19165, + "Y": 121.248, + "Z": -648.5847 + }, + "TerritoryId": 397, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1014007, + "Position": { + "X": -621.51526, + "Y": 121.248, + "Z": -649.13403 + }, + "TerritoryId": 397, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1014010, + "Position": { + "X": -621.51526, + "Y": 121.248, + "Z": -649.13403 + }, + "TerritoryId": 397, + "InteractionType": "Emote", + "Emote": "rally", + "DelaySecondsAtStart": 1, + "$": "Delay added due to step being cancelled abruptly if started immediately" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1013971, + "Position": { + "X": 15.854065, + "Y": 28.620823, + "Z": -682.76495 + }, + "TerritoryId": 156, + "InteractionType": "CompleteQuest", + "Fly": true, + "AetheryteShortcut": "Mor Dhona", + "NextQuestId": 2031 + } + ] + } + ] +} From 16a5e30891e528871a3080dbf9c324840a2be8df Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Sat, 31 Aug 2024 17:43:26 +0800 Subject: [PATCH 123/450] Added MNK quest "Appetite for Destruction" --- .../MNK/2031_Appetite for Destruction.json | 76 +++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 QuestPaths/3.x - Heavensward/Class Quests/MNK/2031_Appetite for Destruction.json diff --git a/QuestPaths/3.x - Heavensward/Class Quests/MNK/2031_Appetite for Destruction.json b/QuestPaths/3.x - Heavensward/Class Quests/MNK/2031_Appetite for Destruction.json new file mode 100644 index 00000000..91ad4bfe --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Class Quests/MNK/2031_Appetite for Destruction.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": 1013971, + "Position": { + "X": 15.854065, + "Y": 28.620823, + "Z": -682.76495 + }, + "TerritoryId": 156, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1014012, + "Position": { + "X": -142.1684, + "Y": 26.764246, + "Z": -357.50366 + }, + "TerritoryId": 146, + "InteractionType": "Interact", + "Fly": true, + "AetheryteShortcut": "Southern Thanalan - Little Ala Mhigo", + "DialogueChoices": [ + { + "Prompt": "TEXT_JOBMNK600_02031_Q1_000_000", + "Type": "List", + "Answer": "TEXT_JOBMNK600_02031_A1_000_010" + } + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1014011, + "Position": { + "X": -143.08392, + "Y": 26.654997, + "Z": -358.114 + }, + "TerritoryId": 146, + "InteractionType": "SinglePlayerDuty" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1014112, + "Position": { + "X": -149.34009, + "Y": 12.685881, + "Z": -260.91406 + }, + "TerritoryId": 146, + "InteractionType": "CompleteQuest", + "NextQuestId": 2426 + } + ] + } + ] +} From 5fe5bd5a23d50eb977fea0c2fa6b59c445dbfa3c Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Mon, 26 Aug 2024 01:04:36 +0800 Subject: [PATCH 124/450] Added PUG class quest My First Hora --- .../Class Quests/MNK/553_My First Hora.json | 157 ++++++++++++++++++ 1 file changed, 157 insertions(+) create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/553_My First Hora.json diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/553_My First Hora.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/553_My First Hora.json new file mode 100644 index 00000000..6709add6 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/553_My First Hora.json @@ -0,0 +1,157 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "plogon_enjoyer", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1003817, + "Position": { + "X": -74.57086, + "Y": 1.9999951, + "Z": -42.404846 + }, + "TerritoryId": 130, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "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 + } + ] + } + ] +} From 18da3ddbb06348ab5bd8b1dbad6a9fd4bd5f804f Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Mon, 26 Aug 2024 01:18:45 +0800 Subject: [PATCH 125/450] Added Bootshine to the list of actions allowed --- QuestPaths/quest-v1.json | 3 ++- Questionable.Model/Questing/Converter/ActionConverter.cs | 1 + Questionable.Model/Questing/EAction.cs | 1 + 3 files changed, 4 insertions(+), 1 deletion(-) diff --git a/QuestPaths/quest-v1.json b/QuestPaths/quest-v1.json index c7ebd5fa..b56e9f82 100644 --- a/QuestPaths/quest-v1.json +++ b/QuestPaths/quest-v1.json @@ -868,7 +868,8 @@ "Yellow Gulal", "Blue Gulal", "Electric Flux", - "Hop-step" + "Hop-step", + "Bootshine" ] } }, diff --git a/Questionable.Model/Questing/Converter/ActionConverter.cs b/Questionable.Model/Questing/Converter/ActionConverter.cs index 5c6bea0a..27dd1283 100644 --- a/Questionable.Model/Questing/Converter/ActionConverter.cs +++ b/Questionable.Model/Questing/Converter/ActionConverter.cs @@ -23,5 +23,6 @@ public sealed class ActionConverter() : EnumConverter(Values) { EAction.BlueGulal, "Blue Gulal" }, { EAction.ElectrixFlux, "Electric Flux" }, { EAction.HopStep, "Hop-step" }, + { EAction.Bootshine, "Bootshine" }, }; } diff --git a/Questionable.Model/Questing/EAction.cs b/Questionable.Model/Questing/EAction.cs index 5ca20daf..c8ea63e6 100644 --- a/Questionable.Model/Questing/EAction.cs +++ b/Questionable.Model/Questing/EAction.cs @@ -7,6 +7,7 @@ namespace Questionable.Model.Questing; public enum EAction { HeavySwing = 31, + Bootshine = 53, HeavyShot = 97, Cure = 120, Cure2 = 135, From 3f358faa41fc0a8e0bc742ced6d01c3cc1354c90 Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Mon, 26 Aug 2024 22:59:41 +0800 Subject: [PATCH 126/450] Added PUG class quest 'Harder than Rock' --- .../MNK/554_Harder than Rock.json | 230 ++++++++++++++++++ 1 file changed, 230 insertions(+) create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/554_Harder than Rock.json diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/554_Harder than Rock.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/554_Harder than Rock.json new file mode 100644 index 00000000..40da8959 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/554_Harder than Rock.json @@ -0,0 +1,230 @@ +{ + "$schema": "https://git.carvel.li/plogon_enjoyer/Questionable/raw/branch/monk_class_quest/QuestPaths/quest-v1.json", + "Author": "plogon_enjoyer", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1003817, + "Position": { + "X": -74.57086, + "Y": 1.9999951, + "Z": -42.404846 + }, + "TerritoryId": 130, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": -73.40663, + "Y": 0.60187495, + "Z": -59.04644 + }, + "TerritoryId": 130, + "InteractionType": "WalkTo", + "$": "Sometimes the pathing gets blocked coming from Hamon" + }, + { + "DataId": 2001285, + "Position": { + "X": -80.36932, + "Y": 0.6866455, + "Z": -59.55603 + }, + "TerritoryId": 130, + "InteractionType": "Interact" + }, + { + "DataId": 2001282, + "Position": { + "X": -21.74414, + "Y": 9.994568, + "Z": -78.50769 + }, + "TerritoryId": 130, + "InteractionType": "Interact" + }, + { + "DataId": 2001283, + "Position": { + "X": 37.03357, + "Y": 7.248047, + "Z": -98.8938 + }, + "TerritoryId": 130, + "InteractionType": "Interact" + }, + { + "DataId": 2001280, + "Position": { + "X": -162.46283, + "Y": 17.471558, + "Z": 60.196777 + }, + "TerritoryId": 130, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Ul'dah] Adventurers' Guild", + "[Ul'dah] Thaumaturges' Guild" + ] + }, + { + "DataId": 2001281, + "Position": { + "X": -254.74939, + "Y": 17.990356, + "Z": 67.33801 + }, + "TerritoryId": 130, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1003817, + "Position": { + "X": -74.57086, + "Y": 1.9999951, + "Z": -42.404846 + }, + "TerritoryId": 130, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Ul'dah] Thaumaturges' Guild", + "[Ul'dah] Aetheryte Plaza" + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2001541, + "Position": { + "X": 224.7196, + "Y": 52.048462, + "Z": 79.45361 + }, + "TerritoryId": 140, + "InteractionType": "Action", + "Action": "Bootshine", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Gate of the Sultana (Western Thanalan)" + ], + "Fly": true + }, + { + "Position": { + "X": 224.7196, + "Y": 52.048462, + "Z": 79.45361 + }, + "TerritoryId": 140, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "KillEnemyDataIds": [131], + "CombatDelaySecondsAtStart": 1 + }, + { + "DataId": 2001542, + "Position": { + "X": 245.71594, + "Y": 52.475708, + "Z": 58.091064 + }, + "TerritoryId": 140, + "InteractionType": "Action", + "Action": "Bootshine", + "Fly": true + }, + { + "Position": { + "X": 245.71594, + "Y": 52.475708, + "Z": 58.091064 + }, + "TerritoryId": 140, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "KillEnemyDataIds": [131], + "CombatDelaySecondsAtStart": 1 + }, + { + "DataId": 2001543, + "Position": { + "X": 224.01758, + "Y": 52.231567, + "Z": 41.367188 + }, + "TerritoryId": 140, + "InteractionType": "Action", + "Action": "Bootshine", + "Fly": true + }, + { + "Position": { + "X": 224.01758, + "Y": 52.231567, + "Z": 41.367188 + }, + "TerritoryId": 140, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "KillEnemyDataIds": [131], + "CombatDelaySecondsAtStart": 1 + }, + { + "DataId": 2001544, + "Position": { + "X": 259.05237, + "Y": 53.421753, + "Z": 25.40625 + }, + "TerritoryId": 140, + "InteractionType": "Action", + "Action": "Bootshine", + "Fly": true + }, + { + "Position": { + "X": 258.4417, + "Y": 52.01455, + "Z": 23.240385 + }, + "TerritoryId": 140, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "KillEnemyDataIds": [131], + "CombatDelaySecondsAtStart": 1 + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1003817, + "Position": { + "X": -74.57086, + "Y": 1.9999951, + "Z": -42.404846 + }, + "TerritoryId": 130, + "AetheryteShortcut": "Ul'dah", + "InteractionType": "CompleteQuest" + } + ] + } + ] +} From 8b5cec4def58b0bf11ffec43f57ffd723fe8c39a Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Mon, 26 Aug 2024 23:47:20 +0800 Subject: [PATCH 127/450] Added PUG class quest 'Burning Up the Quarter Malm' --- .../MNK/698_Burning Up the Quarter Malm.json | 141 ++++++++++++++++++ 1 file changed, 141 insertions(+) create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/698_Burning Up the Quarter Malm.json diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/698_Burning Up the Quarter Malm.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/698_Burning Up the Quarter Malm.json new file mode 100644 index 00000000..ded06e26 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/698_Burning Up the Quarter Malm.json @@ -0,0 +1,141 @@ +{ + "$schema": "https://git.carvel.li/plogon_enjoyer/Questionable/raw/branch/monk_class_quest/QuestPaths/quest-v1.json", + "Author": "plogon_enjoyer", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1003817, + "Position": { + "X": -74.57086, + "Y": 1.9999951, + "Z": -42.404846 + }, + "TerritoryId": 130, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2001798, + "Position": { + "X": -107.9017, + "Y": 4.989685, + "Z": -105.4603 + }, + "TerritoryId": 130, + "InteractionType": "Action", + "Action": "Bootshine" + }, + { + "DataId": 2001799, + "Position": { + "X": -105.6365, + "Y": 4.9655, + "Z": -107.5618 + }, + "TerritoryId": 130, + "InteractionType": "Action", + "Action": "Bootshine" + }, + { + "DataId": 2001800, + "Position": { + "X": -77.62268, + "Y": 5.0201416, + "Z": -128.893 + }, + "TerritoryId": 130, + "InteractionType": "Action", + "Action": "Bootshine" + }, + { + "DataId": 2001801, + "Position": { + "X": -74.60144, + "Y": 4.8981323, + "Z": -130.69354 + }, + "TerritoryId": 130, + "InteractionType": "Action", + "Action": "Bootshine" + }, + { + "DataId": 2001802, + "Position": { + "X": -71.42755, + "Y": 5.0201416, + "Z": -132.34149 + }, + "TerritoryId": 130, + "InteractionType": "Action", + "Action": "Bootshine" + } + ] + }, + { + "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" + } + ] + } + ] +} From d1159960a530b8ccf46b43c863306380f09df432 Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Tue, 27 Aug 2024 00:02:13 +0800 Subject: [PATCH 128/450] Fixed schema --- .../Class Quests/MNK/554_Harder than Rock.json | 2 +- .../Class Quests/MNK/698_Burning Up the Quarter Malm.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/554_Harder than Rock.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/554_Harder than Rock.json index 40da8959..7d34585a 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/554_Harder than Rock.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/554_Harder than Rock.json @@ -1,5 +1,5 @@ { - "$schema": "https://git.carvel.li/plogon_enjoyer/Questionable/raw/branch/monk_class_quest/QuestPaths/quest-v1.json", + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "plogon_enjoyer", "QuestSequence": [ { diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/698_Burning Up the Quarter Malm.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/698_Burning Up the Quarter Malm.json index ded06e26..42cfc797 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/698_Burning Up the Quarter Malm.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/698_Burning Up the Quarter Malm.json @@ -1,5 +1,5 @@ { - "$schema": "https://git.carvel.li/plogon_enjoyer/Questionable/raw/branch/monk_class_quest/QuestPaths/quest-v1.json", + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "plogon_enjoyer", "QuestSequence": [ { From 4aa8545d7aed9b25326278cde3a47a636ecf56cd Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Tue, 27 Aug 2024 07:09:04 +0800 Subject: [PATCH 129/450] Added PUG class quest 'The Spirit is Willing' --- .../MNK/558_The Spirit Is Willing.json | 173 ++++++++++++++++++ 1 file changed, 173 insertions(+) create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/558_The Spirit Is Willing.json diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/558_The Spirit Is Willing.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/558_The Spirit Is Willing.json new file mode 100644 index 00000000..613bf975 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/558_The Spirit Is Willing.json @@ -0,0 +1,173 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "plogon_enjoyer", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1003817, + "Position": { + "X": -74.57086, + "Y": 1.9999951, + "Z": -42.404846 + }, + "TerritoryId": 130, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": 265.54178, + "Y": -19.718353, + "Z": -128.44438 + }, + "TerritoryId": 141, + "AetheryteShortcut": "Central Thanalan - Black Brush Station", + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "CombatDelaySecondsAtStart": 0, + "ComplexCombatData": [ + { + "DataId": 26, + "RewardItemId": 2000408, + "RewardItemCount": 5 + } + ], + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": 359.2259, + "Y": -1.9503738, + "Z": -187.50148 + }, + "TerritoryId": 141, + "InteractionType": "WalkTo" + }, + { + "DataId": 1003822, + "Position": { + "X": -27.390015, + "Y": -2.056931, + "Z": -146.92914 + }, + "TerritoryId": 141, + "InteractionType": "Interact", + "Fly": true, + "AetheryteShortcut": "Central Thanalan - Black Brush Station" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1001578, + "Position": { + "X": -35.446716, + "Y": -2.057618, + "Z": -154.95538 + }, + "TerritoryId": 141, + "InteractionType": "Interact", + "Mount": true + }, + { + "DataId": 1001445, + "Position": { + "X": -13.046509, + "Y": -2.0905762, + "Z": -184.40533 + }, + "TerritoryId": 141, + "InteractionType": "Interact", + "Fly": true + }, + { + "DataId": 1004148, + "Position": { + "X": 5.722107, + "Y": -1.985179, + "Z": -172.7779 + }, + "TerritoryId": 141, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1003822, + "Position": { + "X": -27.390015, + "Y": -2.056931, + "Z": -146.92914 + }, + "TerritoryId": 141, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 2001349, + "Position": { + "X": -241.41296, + "Y": 8.0720215, + "Z": -32.24237 + }, + "TerritoryId": 141, + "InteractionType": "SinglePlayerDuty", + "Fly": true + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1004149, + "Position": { + "X": -242.84735, + "Y": 7.405224, + "Z": -29.312622 + }, + "TerritoryId": 141, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1003827, + "Position": { + "X": -65.65961, + "Y": 0.9481947, + "Z": -51.98755 + }, + "TerritoryId": 130, + "AetheryteShortcut": "Ul'dah", + "InteractionType": "CompleteQuest" + } + ] + } + ] +} From f8f51c1e141fa6252e696752b6191ef54b87638f Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Tue, 27 Aug 2024 08:02:22 +0800 Subject: [PATCH 130/450] Added PUG class quest 'Keeping the Spirit Alive' --- .../MNK/562_Keeping the Spirit Alive.json | 179 ++++++++++++++++++ 1 file changed, 179 insertions(+) create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/562_Keeping the Spirit Alive.json diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/562_Keeping the Spirit Alive.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/562_Keeping the Spirit Alive.json new file mode 100644 index 00000000..e2a8d1dd --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/562_Keeping the Spirit Alive.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": 1003817, + "Position": { + "X": -74.57086, + "Y": 1.9999951, + "Z": -42.404846 + }, + "TerritoryId": 130, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1003827, + "Position": { + "X": -65.65961, + "Y": 0.9481947, + "Z": -51.98755 + }, + "TerritoryId": 130, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2001391, + "Position": { + "X": -215.99152, + "Y": -29.495728, + "Z": 203.78418 + }, + "TerritoryId": 145, + "InteractionType": "Action", + "Action": "Bootshine", + "Fly": true, + "AetheryteShortcut": "Eastern Thanalan - Camp Drybone" + }, + { + "Position": { + "X": -215.99152, + "Y": -29.495728, + "Z": 203.78418 + }, + "TerritoryId": 145, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "CombatDelaySecondsAtStart": 1, + "ComplexCombatData": [ + { + "DataId": 139, + "MinimumKillCount": 1 + }, + { + "DataId": 136, + "MinimumKillCount": 2 + } + ] + }, + { + "DataId": 2001389, + "Position": { + "X": -242.4201, + "Y": -26.138794, + "Z": 229.17517 + }, + "TerritoryId": 145, + "InteractionType": "Action", + "Action": "Bootshine", + "Mount": true + }, + { + "Position": { + "X": -242.4201, + "Y": -26.138794, + "Z": 229.17517 + }, + "TerritoryId": 145, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "CombatDelaySecondsAtStart": 1, + "ComplexCombatData": [ + { + "DataId": 57, + "MinimumKillCount": 2 + } + ] + }, + { + "DataId": 2001390, + "Position": { + "X": -228.8396, + "Y": -27.8172, + "Z": 250.14111 + }, + "TerritoryId": 145, + "InteractionType": "Action", + "Action": "Bootshine", + "Mount": true + }, + { + "Position": { + "X": -228.8396, + "Y": -27.8172, + "Z": 250.14111 + }, + "TerritoryId": 145, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "CombatDelaySecondsAtStart": 1, + "ComplexCombatData": [ + { + "DataId": 57, + "MinimumKillCount": 2 + } + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1003817, + "Position": { + "X": -74.57086, + "Y": 1.9999951, + "Z": -42.404846 + }, + "TerritoryId": 130, + "InteractionType": "Interact", + "AetheryteShortcut": "Ul'dah" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1003817, + "Position": { + "X": -74.57086, + "Y": 1.9999951, + "Z": -42.404846 + }, + "TerritoryId": 130, + "InteractionType": "SinglePlayerDuty" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1003817, + "Position": { + "X": -74.57086, + "Y": 1.9999951, + "Z": -42.404846 + }, + "TerritoryId": 130, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} From c5ffc13a3816f384f47e081de09fd93a2f5435e3 Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Tue, 27 Aug 2024 08:45:03 +0800 Subject: [PATCH 131/450] Added PUG class quest 'Star-crossed Rivals' --- .../MNK/566_Star-crossed Rivals.json | 160 ++++++++++++++++++ 1 file changed, 160 insertions(+) create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/566_Star-crossed Rivals.json diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/566_Star-crossed Rivals.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/566_Star-crossed Rivals.json new file mode 100644 index 00000000..f99776aa --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/566_Star-crossed Rivals.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": 1003817, + "Position": { + "X": -74.57086, + "Y": 1.9999951, + "Z": -42.404846 + }, + "TerritoryId": 130, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1003827, + "Position": { + "X": -65.65961, + "Y": 0.9481947, + "Z": -51.98755 + }, + "TerritoryId": 130, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1003829, + "Position": { + "X": -147.32587, + "Y": 25.913446, + "Z": -359.76202 + }, + "TerritoryId": 146, + "InteractionType": "Interact", + "AetheryteShortcut": "Southern Thanalan - Little Ala Mhigo", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2001525, + "Position": { + "X": -203.81476, + "Y": 27.267822, + "Z": -351.76624 + }, + "TerritoryId": 146, + "InteractionType": "UseItem", + "ItemId": 2000409, + "RequiredQuestVariables": [[0], null, null, null, null, null] + }, + { + "Position": { + "X": -258.89648, + "Y": 26.681297, + "Z": -322.03738 + }, + "TerritoryId": 146, + "InteractionType": "WalkTo", + "Mount": true + }, + { + "Position": { + "X": -102.12759, + "Y": 14.866777, + "Z": -187.7578 + }, + "TerritoryId": 146, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 2001523, + "Position": { + "X": -105.57721, + "Y": 14.999573, + "Z": -185.32086 + }, + "TerritoryId": 146, + "InteractionType": "UseItem", + "ItemId": 2000409, + "RequiredQuestVariables": [[16], null, null, null, null, null] + }, + { + "DataId": 2001524, + "Position": { + "X": 197.4364, + "Y": 15.548889, + "Z": -450.58368 + }, + "TerritoryId": 146, + "InteractionType": "UseItem", + "ItemId": 2000409, + "RequiredQuestVariables": [[32], null, null, null, null, null], + "Fly": true + }, + { + "DataId": 2001522, + "Position": { + "X": 22.171326, + "Y": 17.868286, + "Z": -600.24414 + }, + "TerritoryId": 146, + "InteractionType": "UseItem", + "ItemId": 2000409, + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1003829, + "Position": { + "X": -147.32587, + "Y": 25.913446, + "Z": -359.76202 + }, + "TerritoryId": 146, + "InteractionType": "SinglePlayerDuty", + "AetheryteShortcut": "Southern Thanalan - Little Ala Mhigo", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1003817, + "Position": { + "X": -74.57086, + "Y": 1.9999951, + "Z": -42.404846 + }, + "TerritoryId": 130, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ul'dah" + } + ] + } + ] +} From 90a196fd6688eab258a9c09ce8d7056c1adabe68 Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Tue, 27 Aug 2024 09:19:01 +0800 Subject: [PATCH 132/450] Added PUG class quest 'Return of the Holyfist' --- .../MNK/567_Return of the Holyfist.json | 109 ++++++++++++++++++ 1 file changed, 109 insertions(+) create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/567_Return of the Holyfist.json diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/567_Return of the Holyfist.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/567_Return of the Holyfist.json new file mode 100644 index 00000000..5ec3ee47 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/567_Return of the Holyfist.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": 1003817, + "Position": { + "X": -74.57086, + "Y": 1.9999951, + "Z": -42.404846 + }, + "TerritoryId": 130, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1003830, + "Position": { + "X": -301.5335, + "Y": 5.0000005, + "Z": 471.3053 + }, + "TerritoryId": 146, + "InteractionType": "Interact", + "AetheryteShortcut": "Southern Thanalan - Forgotten Springs", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": -262.6409, + "Y": 14.190942, + "Z": 594.23486 + }, + "TerritoryId": 146, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "CombatDelaySecondsAtStart": 0, + "ComplexCombatData": [ + { + "DataId": 357, + "MinimumKillCount": 5 + } + ], + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1003830, + "Position": { + "X": -301.5335, + "Y": 5.0000005, + "Z": 471.3053 + }, + "TerritoryId": 146, + "InteractionType": "SinglePlayerDuty", + "AetheryteShortcut": "Southern Thanalan - Forgotten Springs", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1003890, + "Position": { + "X": -21.805176, + "Y": 3.9999993, + "Z": -145.18964 + }, + "TerritoryId": 130, + "InteractionType": "SinglePlayerDuty", + "AetheryteShortcut": "Ul'dah" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1003817, + "Position": { + "X": -74.57086, + "Y": 1.9999951, + "Z": -42.404846 + }, + "TerritoryId": 130, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} From 360941554deedbd5e67b582147aa5114592e0833 Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Tue, 27 Aug 2024 09:54:54 +0800 Subject: [PATCH 133/450] Added PUG class quest 'Brother from Another Mother' --- .../MNK/1061_Brother from Another Mother.json | 96 +++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/1061_Brother from Another Mother.json diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/1061_Brother from Another Mother.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/1061_Brother from Another Mother.json new file mode 100644 index 00000000..2a6259f8 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/1061_Brother from Another Mother.json @@ -0,0 +1,96 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "plogon_enjoyer", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1001286, + "Position": { + "X": -88.9754, + "Y": 2.55, + "Z": -51.163513 + }, + "TerritoryId": 130, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1006749, + "Position": { + "X": -30.47229, + "Y": 13.599918, + "Z": 95.26196 + }, + "TerritoryId": 131, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Goldsmiths' Guild" + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2002439, + "Position": { + "X": -232.80695, + "Y": -28.793823, + "Z": 125.29175 + }, + "TerritoryId": 141, + "InteractionType": "UseItem", + "ItemId": 2000951, + "AethernetShortcut": [ + "[Ul'dah] Goldsmiths' Guild", + "[Ul'dah] Gate of Nald (Central Thanalan)" + ], + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2002440, + "Position": { + "X": -232.80695, + "Y": -28.946411, + "Z": 125.29175 + }, + "TerritoryId": 141, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1006749, + "Position": { + "X": -30.47229, + "Y": 13.599918, + "Z": 95.26196 + }, + "TerritoryId": 131, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Goldsmiths' Guild" + ] + } + ] + } + ] +} From c86cd245d919e6e7803e8dff6ac6cbdbc1fdd695 Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Tue, 27 Aug 2024 10:00:20 +0800 Subject: [PATCH 134/450] Added NextQuestId for a few of the quests --- .../Class Quests/MNK/1061_Brother from Another Mother.json | 3 ++- .../Class Quests/MNK/558_The Spirit Is Willing.json | 3 ++- .../Class Quests/MNK/562_Keeping the Spirit Alive.json | 3 ++- .../Class Quests/MNK/566_Star-crossed Rivals.json | 3 ++- .../Class Quests/MNK/698_Burning Up the Quarter Malm.json | 3 ++- 5 files changed, 10 insertions(+), 5 deletions(-) diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/1061_Brother from Another Mother.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/1061_Brother from Another Mother.json index 2a6259f8..8b1e5b3e 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/1061_Brother from Another Mother.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/1061_Brother from Another Mother.json @@ -88,7 +88,8 @@ "AethernetShortcut": [ "[Ul'dah] Aetheryte Plaza", "[Ul'dah] Goldsmiths' Guild" - ] + ], + "NextQuestId": 1062 } ] } diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/558_The Spirit Is Willing.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/558_The Spirit Is Willing.json index 613bf975..ecf6b130 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/558_The Spirit Is Willing.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/558_The Spirit Is Willing.json @@ -165,7 +165,8 @@ }, "TerritoryId": 130, "AetheryteShortcut": "Ul'dah", - "InteractionType": "CompleteQuest" + "InteractionType": "CompleteQuest", + "NextQuestId": 562 } ] } diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/562_Keeping the Spirit Alive.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/562_Keeping the Spirit Alive.json index e2a8d1dd..76cc90c8 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/562_Keeping the Spirit Alive.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/562_Keeping the Spirit Alive.json @@ -171,7 +171,8 @@ "Z": -42.404846 }, "TerritoryId": 130, - "InteractionType": "CompleteQuest" + "InteractionType": "CompleteQuest", + "NextQuestId": 566 } ] } diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/566_Star-crossed Rivals.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/566_Star-crossed Rivals.json index f99776aa..b541c438 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/566_Star-crossed Rivals.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/566_Star-crossed Rivals.json @@ -152,7 +152,8 @@ }, "TerritoryId": 130, "InteractionType": "CompleteQuest", - "AetheryteShortcut": "Ul'dah" + "AetheryteShortcut": "Ul'dah", + "NextQuestId": 567 } ] } diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/698_Burning Up the Quarter Malm.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/698_Burning Up the Quarter Malm.json index 42cfc797..7755cc74 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/698_Burning Up the Quarter Malm.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/698_Burning Up the Quarter Malm.json @@ -133,7 +133,8 @@ }, "TerritoryId": 130, "AetheryteShortcut": "Ul'dah", - "InteractionType": "CompleteQuest" + "InteractionType": "CompleteQuest", + "NextQuestId": 558 } ] } From 74357c0e8970a9ecdba039263f31935694e9eaf8 Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Tue, 27 Aug 2024 10:16:02 +0800 Subject: [PATCH 135/450] Added MNK class quest 'Insulted Intelligence' --- .../MNK/1062_Insulted Intelligence.json | 77 +++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/1062_Insulted Intelligence.json diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/1062_Insulted Intelligence.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/1062_Insulted Intelligence.json new file mode 100644 index 00000000..a4292181 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/1062_Insulted Intelligence.json @@ -0,0 +1,77 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "plogon_enjoyer", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1006749, + "Position": { + "X": -30.47229, + "Y": 13.599918, + "Z": 95.26196 + }, + "TerritoryId": 131, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2002441, + "Position": { + "X": 689.5093, + "Y": 9.750427, + "Z": 483.32947 + }, + "TerritoryId": 137, + "InteractionType": "Combat", + "EnemySpawnType": "AfterItemUse", + "ItemId": 2000817, + "KillEnemyDataIds": [1925], + "AetheryteShortcut": "Eastern La Noscea - Costa Del Sol", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2002442, + "Position": { + "X": 689.5093, + "Y": 9.750427, + "Z": 483.32947 + }, + "TerritoryId": 137, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1006749, + "Position": { + "X": -30.47229, + "Y": 13.599918, + "Z": 95.26196 + }, + "TerritoryId": 131, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Goldsmiths' Guild" + ], + "NextQuestId": 1063 + } + ] + } + ] +} From 6a0a1205d7420e17aa1c9ce6b050adc76fe5f618 Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Wed, 28 Aug 2024 19:04:17 +0800 Subject: [PATCH 136/450] Added MNK class quest 'A Slave to the Aether' --- .../MNK/1063_A Slave to the Aether.json | 104 ++++++++++++++++++ 1 file changed, 104 insertions(+) create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/1063_A Slave to the Aether.json diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/1063_A Slave to the Aether.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/1063_A Slave to the Aether.json new file mode 100644 index 00000000..d6915c27 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/1063_A Slave to the Aether.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": 1006749, + "Position": { + "X": -30.47229, + "Y": 13.599918, + "Z": 95.26196 + }, + "TerritoryId": 131, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1007874, + "Position": { + "X": -221.48468, + "Y": 26.16912, + "Z": -343.9536 + }, + "TerritoryId": 146, + "InteractionType": "Interact", + "Mount": true, + "AetheryteShortcut": "Southern Thanalan - Little Ala Mhigo" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2002443, + "Position": { + "X": 24.215942, + "Y": 25.65039, + "Z": 115.983765 + }, + "TerritoryId": 153, + "InteractionType": "UseItem", + "ItemId": 2000818, + "AetheryteShortcut": "South Shroud - Quarrymill", + "Fly": true + }, + { + "Position": { + "X": 24.215942, + "Y": 25.65039, + "Z": 115.983765 + }, + "TerritoryId": 153, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "DelaySecondsAtStart": 0, + "KillEnemyDataIds": [1926] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2002444, + "Position": { + "X": 24.215942, + "Y": 25.65039, + "Z": 115.983765 + }, + "TerritoryId": 153, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1006749, + "Position": { + "X": -30.47229, + "Y": 13.599918, + "Z": 95.26196 + }, + "TerritoryId": 131, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Goldsmiths' Guild" + ], + "NextQuestId": 1604 + } + ] + } + ] +} From a5fe834aafa0cd891037399f30e4a793ab22fd33 Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Wed, 28 Aug 2024 20:48:47 +0800 Subject: [PATCH 137/450] Added MNK class quest 'The Pursuit of Power' --- .../MNK/1064_The Pursuit of Power.json | 87 +++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/1064_The Pursuit of Power.json diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/1064_The Pursuit of Power.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/1064_The Pursuit of Power.json new file mode 100644 index 00000000..e5812d8b --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/1064_The Pursuit of Power.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": 1006749, + "Position": { + "X": -30.47229, + "Y": 13.599918, + "Z": 95.26196 + }, + "TerritoryId": 131, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2002445, + "Position": { + "X": 3.1585693, + "Y": 20.58435, + "Z": -13.16864 + }, + "TerritoryId": 152, + "InteractionType": "UseItem", + "ItemId": 2000820, + "AetheryteShortcut": "East Shroud - Hawthorne Hut", + "Fly": true + }, + { + "Position": { + "X": 3.1585693, + "Y": 20.58435, + "Z": -13.16864 + }, + "TerritoryId": 152, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "CombatDelaySecondsAtStart": 0, + "KillEnemyDataIds": [1927] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2002446, + "Position": { + "X": 3.1585693, + "Y": 20.58435, + "Z": -13.16864 + }, + "TerritoryId": 152, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1006749, + "Position": { + "X": -30.47229, + "Y": 13.599918, + "Z": 95.26196 + }, + "TerritoryId": 131, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Goldsmiths' Guild" + ], + "NextQuestId": 1065 + } + ] + } + ] +} From 9dd467c8d21a03c11405597a9defa52f0225c67b Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Wed, 28 Aug 2024 20:48:58 +0800 Subject: [PATCH 138/450] Added MNK class quest 'Good Vibrations' --- .../MNK/1065_Good Vibrations.json | 223 ++++++++++++++++++ 1 file changed, 223 insertions(+) create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/1065_Good Vibrations.json diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/1065_Good Vibrations.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/1065_Good Vibrations.json new file mode 100644 index 00000000..fdd1d2b7 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/1065_Good Vibrations.json @@ -0,0 +1,223 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "plogon_enjoyer", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1006749, + "Position": { + "X": -30.47229, + "Y": 13.599918, + "Z": 95.26196 + }, + "TerritoryId": 131, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1007875, + "Position": { + "X": -221.48468, + "Y": 26.16912, + "Z": -343.9536 + }, + "TerritoryId": 146, + "InteractionType": "Interact", + "AetheryteShortcut": "Southern Thanalan - Little Ala Mhigo", + "Mount": true, + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_JOBMNK451_01065_Q1_000_000", + "Yes": true + } + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": -258.66748, + "Y": 26.617363, + "Z": -320.76898 + }, + "TerritoryId": 146, + "InteractionType": "WalkTo", + "Mount": true + }, + { + "Position": { + "X": 38.911945, + "Y": 23.511465, + "Z": -142.86761 + }, + "TerritoryId": 146, + "InteractionType": "WalkTo", + "Fly": true, + "Land": true + }, + { + "DataId": 2002447, + "Position": { + "X": 41.428223, + "Y": 25.101074, + "Z": -149.64526 + }, + "TerritoryId": 146, + "InteractionType": "Interact" + }, + { + "Position": { + "X": 46.038277, + "Y": 50.482662, + "Z": -578.6224 + }, + "TerritoryId": 146, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "Position": { + "X": 22.885742, + "Y": 17.930914, + "Z": -619.7939 + }, + "TerritoryId": 146, + "InteractionType": "WalkTo", + "Land": true + }, + { + "DataId": 2002548, + "Position": { + "X": 17.837708, + "Y": 20.523315, + "Z": -629.1448 + }, + "TerritoryId": 146, + "InteractionType": "Interact", + "Mount": true + }, + { + "Position": { + "X": 214.89189, + "Y": 29.38419, + "Z": 59.154907 + }, + "TerritoryId": 147, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Northern Thanalan - Ceruleum Processing Plant", + "Fly": true + }, + { + "DataId": 2002448, + "Position": { + "X": 213.70251, + "Y": 30.19751, + "Z": 61.020752 + }, + "TerritoryId": 147, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1007875, + "Position": { + "X": -221.48468, + "Y": 26.16912, + "Z": -343.9536 + }, + "TerritoryId": 146, + "InteractionType": "Interact", + "Mount": true, + "AetheryteShortcut": "Southern Thanalan - Little Ala Mhigo" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1007877, + "Position": { + "X": -74.08258, + "Y": 2.6069984, + "Z": 716.39575 + }, + "TerritoryId": 135, + "AetheryteShortcut": "Lower La Noscea - Moraby Drydocks", + "Fly": true, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "CombatDelaySecondsAtStart": 0, + "KillEnemyDataIds": [81,345,348] + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1007877, + "Position": { + "X": -74.08258, + "Y": 2.6069984, + "Z": 716.39575 + }, + "TerritoryId": 135, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1007875, + "Position": { + "X": -221.48468, + "Y": 26.16912, + "Z": -343.9536 + }, + "TerritoryId": 146, + "InteractionType": "Interact", + "Mount": true, + "AetheryteShortcut": "Southern Thanalan - Little Ala Mhigo" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1006749, + "Position": { + "X": -30.47229, + "Y": 13.599918, + "Z": 95.26196 + }, + "TerritoryId": 131, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Goldsmiths' Guild" + ], + "NextQuestId": 1066 + } + ] + } + ] +} From bdfb21eee8705f45d0f44a975e880db51331d692 Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Wed, 28 Aug 2024 20:49:09 +0800 Subject: [PATCH 139/450] Added MNK class quest 'Five Easy Pieces' --- .../MNK/1066_Five Easy Pieces.json | 65 +++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/1066_Five Easy Pieces.json diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/1066_Five Easy Pieces.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/1066_Five Easy Pieces.json new file mode 100644 index 00000000..6a7047e9 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/1066_Five Easy Pieces.json @@ -0,0 +1,65 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "plogon_enjoyer", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1006749, + "Position": { + "X": -30.47229, + "Y": 13.599918, + "Z": 95.26196 + }, + "TerritoryId": 131, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": 107.50675, + "Y": -4.574165, + "Z": -543.2282 + }, + "TerritoryId": 156, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Mor Dhona", + "Fly": true, + "Land": true + }, + { + "Position": { + "X": 104.612144, + "Y": -4.931232, + "Z": -533.5191 + }, + "TerritoryId": 156, + "InteractionType": "SinglePlayerDuty", + "Mount": false + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1007899, + "Position": { + "X": 104.72266, + "Y": -4.9380107, + "Z": -533.53174 + }, + "TerritoryId": 156, + "InteractionType": "CompleteQuest", + "Fly": true, + "NextQuestId": 2026 + } + ] + } + ] +} From 414b21eaba7188e8e35e0ff9881e446e03b6c052 Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Sat, 31 Aug 2024 18:08:52 +0800 Subject: [PATCH 140/450] Re-ordered Bootshine --- QuestPaths/quest-v1.json | 4 ++-- Questionable.Model/Questing/Converter/ActionConverter.cs | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/QuestPaths/quest-v1.json b/QuestPaths/quest-v1.json index b56e9f82..6279b7ac 100644 --- a/QuestPaths/quest-v1.json +++ b/QuestPaths/quest-v1.json @@ -854,6 +854,7 @@ "description": "The action to use", "enum": [ "Heavy Swing", + "Bootshine", "Heavy Shot", "Cure", "Cure II", @@ -868,8 +869,7 @@ "Yellow Gulal", "Blue Gulal", "Electric Flux", - "Hop-step", - "Bootshine" + "Hop-step" ] } }, diff --git a/Questionable.Model/Questing/Converter/ActionConverter.cs b/Questionable.Model/Questing/Converter/ActionConverter.cs index 27dd1283..c0399493 100644 --- a/Questionable.Model/Questing/Converter/ActionConverter.cs +++ b/Questionable.Model/Questing/Converter/ActionConverter.cs @@ -8,6 +8,7 @@ public sealed class ActionConverter() : EnumConverter(Values) private static readonly Dictionary Values = new() { { EAction.HeavySwing, "Heavy Swing" }, + { EAction.Bootshine, "Bootshine" }, { EAction.HeavyShot, "Heavy Shot" }, { EAction.Cure, "Cure" }, { EAction.Cure2, "Cure II" }, @@ -23,6 +24,5 @@ public sealed class ActionConverter() : EnumConverter(Values) { EAction.BlueGulal, "Blue Gulal" }, { EAction.ElectrixFlux, "Electric Flux" }, { EAction.HopStep, "Hop-step" }, - { EAction.Bootshine, "Bootshine" }, }; } From 1572ff11a8aa752e1a0f4215f0037cc3b350452b Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sat, 31 Aug 2024 14:03:53 +0200 Subject: [PATCH 141/450] Add IPC methods IsRunning/GetCurrentQuestId --- Questionable/External/QuestionableIpc.cs | 31 ++++++++++++++++++++++++ Questionable/QuestionablePlugin.cs | 2 ++ 2 files changed, 33 insertions(+) create mode 100644 Questionable/External/QuestionableIpc.cs diff --git a/Questionable/External/QuestionableIpc.cs b/Questionable/External/QuestionableIpc.cs new file mode 100644 index 00000000..e73053ef --- /dev/null +++ b/Questionable/External/QuestionableIpc.cs @@ -0,0 +1,31 @@ +using System; +using Dalamud.Plugin; +using Dalamud.Plugin.Ipc; +using Questionable.Controller; + +namespace Questionable.External; + +internal sealed class QuestionableIpc : IDisposable +{ + private const string IpcIsRunning = "Questionable.IsRunning"; + private const string IpcGetCurrentQuestId = "Questionable.GetCurrentQuestId"; + + private readonly ICallGateProvider _isRunning; + private readonly ICallGateProvider _getCurrentQuestId; + + public QuestionableIpc(QuestController questController, IDalamudPluginInterface pluginInterface) + { + _isRunning = pluginInterface.GetIpcProvider(IpcIsRunning); + _isRunning.RegisterFunc(() => questController.IsRunning); + + _getCurrentQuestId = pluginInterface.GetIpcProvider(IpcGetCurrentQuestId); + _getCurrentQuestId.RegisterFunc(() => questController.CurrentQuest?.Quest.Id.ToString()); + } + + + public void Dispose() + { + _getCurrentQuestId.UnregisterFunc(); + _isRunning.UnregisterFunc(); + } +} diff --git a/Questionable/QuestionablePlugin.cs b/Questionable/QuestionablePlugin.cs index 207cf2b1..d1a5b543 100644 --- a/Questionable/QuestionablePlugin.cs +++ b/Questionable/QuestionablePlugin.cs @@ -120,6 +120,7 @@ public sealed class QuestionablePlugin : IDalamudPlugin serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); + serviceCollection.AddSingleton(); } private static void AddTaskFactories(ServiceCollection serviceCollection) @@ -235,6 +236,7 @@ public sealed class QuestionablePlugin : IDalamudPlugin serviceProvider.GetRequiredService(); serviceProvider.GetRequiredService(); serviceProvider.GetRequiredService(); + serviceProvider.GetRequiredService(); serviceProvider.GetRequiredService(); } From aaad336c64b583d27ff27f02056101fb4cf82375 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sat, 31 Aug 2024 14:04:07 +0200 Subject: [PATCH 142/450] Fix next quest display --- Questionable/Windows/QuestComponents/ActiveQuestComponent.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Questionable/Windows/QuestComponents/ActiveQuestComponent.cs b/Questionable/Windows/QuestComponents/ActiveQuestComponent.cs index 6d4a4384..b1ffd40b 100644 --- a/Questionable/Windows/QuestComponents/ActiveQuestComponent.cs +++ b/Questionable/Windows/QuestComponents/ActiveQuestComponent.cs @@ -177,7 +177,7 @@ internal sealed partial class ActiveQuestComponent { using var _ = ImRaii.PushColor(ImGuiCol.Text, ImGuiColors.DalamudYellow); ImGui.TextUnformatted( - $"Next Quest: {Shorten(currentQuest.Quest.Info.Name)} / {currentQuest.Sequence} / {currentQuest.Step}"); + $"Next Quest: {Shorten(nextQuest.Quest.Info.Name)} / {nextQuest.Sequence} / {nextQuest.Step}"); } } } From fa4043b4a250402f85dbf52e27fbdef0cc1cdd9b Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Sat, 31 Aug 2024 20:41:12 +0800 Subject: [PATCH 143/450] Added conditional aetheryte and aethernet shortcuts for sequence 0 --- .../MNK/1061_Brother from Another Mother.json | 8 +++++++- .../MNK/1062_Insulted Intelligence.json | 15 ++++++++++++++- .../MNK/1063_A Slave to the Aether.json | 15 ++++++++++++++- .../MNK/1064_The Pursuit of Power.json | 15 ++++++++++++++- .../Class Quests/MNK/1065_Good Vibrations.json | 15 ++++++++++++++- .../Class Quests/MNK/1066_Five Easy Pieces.json | 15 ++++++++++++++- .../Class Quests/MNK/554_Harder than Rock.json | 8 +++++++- .../MNK/558_The Spirit Is Willing.json | 8 +++++++- .../MNK/562_Keeping the Spirit Alive.json | 8 +++++++- .../Class Quests/MNK/566_Star-crossed Rivals.json | 8 +++++++- .../MNK/567_Return of the Holyfist.json | 8 +++++++- .../MNK/698_Burning Up the Quarter Malm.json | 8 +++++++- 12 files changed, 119 insertions(+), 12 deletions(-) diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/1061_Brother from Another Mother.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/1061_Brother from Another Mother.json index 8b1e5b3e..ffeb9cf3 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/1061_Brother from Another Mother.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/1061_Brother from Another Mother.json @@ -13,7 +13,13 @@ "Z": -51.163513 }, "TerritoryId": 130, - "InteractionType": "AcceptQuest" + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } } ] }, diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/1062_Insulted Intelligence.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/1062_Insulted Intelligence.json index a4292181..b5c9395c 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/1062_Insulted Intelligence.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/1062_Insulted Intelligence.json @@ -13,7 +13,20 @@ "Z": 95.26196 }, "TerritoryId": 131, - "InteractionType": "AcceptQuest" + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Goldsmiths' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InTerritory": [130, 131] + }, + "AethernetShortcutIf": { + "InSameTerritory": true + } + } } ] }, diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/1063_A Slave to the Aether.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/1063_A Slave to the Aether.json index d6915c27..eb73c689 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/1063_A Slave to the Aether.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/1063_A Slave to the Aether.json @@ -13,7 +13,20 @@ "Z": 95.26196 }, "TerritoryId": 131, - "InteractionType": "AcceptQuest" + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Goldsmiths' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InTerritory": [130, 131] + }, + "AethernetShortcutIf": { + "InSameTerritory": true + } + } } ] }, diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/1064_The Pursuit of Power.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/1064_The Pursuit of Power.json index e5812d8b..234cb1a6 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/1064_The Pursuit of Power.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/1064_The Pursuit of Power.json @@ -13,7 +13,20 @@ "Z": 95.26196 }, "TerritoryId": 131, - "InteractionType": "AcceptQuest" + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Goldsmiths' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InTerritory": [130, 131] + }, + "AethernetShortcutIf": { + "InSameTerritory": true + } + } } ] }, diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/1065_Good Vibrations.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/1065_Good Vibrations.json index fdd1d2b7..ce891a9c 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/1065_Good Vibrations.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/1065_Good Vibrations.json @@ -13,7 +13,20 @@ "Z": 95.26196 }, "TerritoryId": 131, - "InteractionType": "AcceptQuest" + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Goldsmiths' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InTerritory": [130, 131] + }, + "AethernetShortcutIf": { + "InSameTerritory": true + } + } } ] }, diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/1066_Five Easy Pieces.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/1066_Five Easy Pieces.json index 6a7047e9..f722c1bf 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/1066_Five Easy Pieces.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/1066_Five Easy Pieces.json @@ -13,7 +13,20 @@ "Z": 95.26196 }, "TerritoryId": 131, - "InteractionType": "AcceptQuest" + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Goldsmiths' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InTerritory": [130, 131] + }, + "AethernetShortcutIf": { + "InSameTerritory": true + } + } } ] }, diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/554_Harder than Rock.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/554_Harder than Rock.json index 7d34585a..299c7971 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/554_Harder than Rock.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/554_Harder than Rock.json @@ -13,7 +13,13 @@ "Z": -42.404846 }, "TerritoryId": 130, - "InteractionType": "AcceptQuest" + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } } ] }, diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/558_The Spirit Is Willing.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/558_The Spirit Is Willing.json index ecf6b130..2ec3b573 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/558_The Spirit Is Willing.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/558_The Spirit Is Willing.json @@ -13,7 +13,13 @@ "Z": -42.404846 }, "TerritoryId": 130, - "InteractionType": "AcceptQuest" + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } } ] }, diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/562_Keeping the Spirit Alive.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/562_Keeping the Spirit Alive.json index 76cc90c8..80168a29 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/562_Keeping the Spirit Alive.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/562_Keeping the Spirit Alive.json @@ -13,7 +13,13 @@ "Z": -42.404846 }, "TerritoryId": 130, - "InteractionType": "AcceptQuest" + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } } ] }, diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/566_Star-crossed Rivals.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/566_Star-crossed Rivals.json index b541c438..79b73060 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/566_Star-crossed Rivals.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/566_Star-crossed Rivals.json @@ -13,7 +13,13 @@ "Z": -42.404846 }, "TerritoryId": 130, - "InteractionType": "AcceptQuest" + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } } ] }, diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/567_Return of the Holyfist.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/567_Return of the Holyfist.json index 5ec3ee47..59a1d906 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/567_Return of the Holyfist.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/567_Return of the Holyfist.json @@ -13,7 +13,13 @@ "Z": -42.404846 }, "TerritoryId": 130, - "InteractionType": "AcceptQuest" + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } } ] }, diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/698_Burning Up the Quarter Malm.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/698_Burning Up the Quarter Malm.json index 7755cc74..e5c5d898 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/698_Burning Up the Quarter Malm.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/698_Burning Up the Quarter Malm.json @@ -13,7 +13,13 @@ "Z": -42.404846 }, "TerritoryId": 130, - "InteractionType": "AcceptQuest" + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } } ] }, From 9a6909dba3ae8caf3a7484ef3e2a8ac09958989a Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Sat, 31 Aug 2024 20:44:08 +0800 Subject: [PATCH 144/450] Added conditional aetheryte and aethernet shortcuts for sequence 0 --- .../MNK/2026_The Legend Continues.json | 15 ++++++++++++++- .../MNK/2027_Let's Talk about Sects.json | 8 +++++++- .../Class Quests/MNK/2028_Against the Shadow.json | 8 +++++++- .../MNK/2029_Fight the Battle to Win.json | 8 +++++++- .../MNK/2030_Stop the Senseless Killing.json | 8 +++++++- .../MNK/2031_Appetite for Destruction.json | 8 +++++++- 6 files changed, 49 insertions(+), 6 deletions(-) diff --git a/QuestPaths/3.x - Heavensward/Class Quests/MNK/2026_The Legend Continues.json b/QuestPaths/3.x - Heavensward/Class Quests/MNK/2026_The Legend Continues.json index 63aab0af..c65033bc 100644 --- a/QuestPaths/3.x - Heavensward/Class Quests/MNK/2026_The Legend Continues.json +++ b/QuestPaths/3.x - Heavensward/Class Quests/MNK/2026_The Legend Continues.json @@ -13,7 +13,20 @@ "Z": 95.26196 }, "TerritoryId": 131, - "InteractionType": "AcceptQuest" + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Goldsmiths' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InTerritory": [130, 131] + }, + "AethernetShortcutIf": { + "InSameTerritory": true + } + } } ] }, diff --git a/QuestPaths/3.x - Heavensward/Class Quests/MNK/2027_Let's Talk about Sects.json b/QuestPaths/3.x - Heavensward/Class Quests/MNK/2027_Let's Talk about Sects.json index 3e977e0e..79357b67 100644 --- a/QuestPaths/3.x - Heavensward/Class Quests/MNK/2027_Let's Talk about Sects.json +++ b/QuestPaths/3.x - Heavensward/Class Quests/MNK/2027_Let's Talk about Sects.json @@ -13,7 +13,13 @@ "Z": -682.76495 }, "TerritoryId": 156, - "InteractionType": "AcceptQuest" + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Mor Dhona", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } } ] }, diff --git a/QuestPaths/3.x - Heavensward/Class Quests/MNK/2028_Against the Shadow.json b/QuestPaths/3.x - Heavensward/Class Quests/MNK/2028_Against the Shadow.json index 4ed88620..214af16b 100644 --- a/QuestPaths/3.x - Heavensward/Class Quests/MNK/2028_Against the Shadow.json +++ b/QuestPaths/3.x - Heavensward/Class Quests/MNK/2028_Against the Shadow.json @@ -13,7 +13,13 @@ "Z": -682.76495 }, "TerritoryId": 156, - "InteractionType": "AcceptQuest" + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Mor Dhona", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } } ] }, diff --git a/QuestPaths/3.x - Heavensward/Class Quests/MNK/2029_Fight the Battle to Win.json b/QuestPaths/3.x - Heavensward/Class Quests/MNK/2029_Fight the Battle to Win.json index 14902731..521faefa 100644 --- a/QuestPaths/3.x - Heavensward/Class Quests/MNK/2029_Fight the Battle to Win.json +++ b/QuestPaths/3.x - Heavensward/Class Quests/MNK/2029_Fight the Battle to Win.json @@ -13,7 +13,13 @@ "Z": -682.76495 }, "TerritoryId": 156, - "InteractionType": "AcceptQuest" + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Mor Dhona", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } } ] }, diff --git a/QuestPaths/3.x - Heavensward/Class Quests/MNK/2030_Stop the Senseless Killing.json b/QuestPaths/3.x - Heavensward/Class Quests/MNK/2030_Stop the Senseless Killing.json index a337d017..0e939a29 100644 --- a/QuestPaths/3.x - Heavensward/Class Quests/MNK/2030_Stop the Senseless Killing.json +++ b/QuestPaths/3.x - Heavensward/Class Quests/MNK/2030_Stop the Senseless Killing.json @@ -13,7 +13,13 @@ "Z": -682.76495 }, "TerritoryId": 156, - "InteractionType": "AcceptQuest" + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Mor Dhona", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } } ] }, diff --git a/QuestPaths/3.x - Heavensward/Class Quests/MNK/2031_Appetite for Destruction.json b/QuestPaths/3.x - Heavensward/Class Quests/MNK/2031_Appetite for Destruction.json index 91ad4bfe..b9cf2df6 100644 --- a/QuestPaths/3.x - Heavensward/Class Quests/MNK/2031_Appetite for Destruction.json +++ b/QuestPaths/3.x - Heavensward/Class Quests/MNK/2031_Appetite for Destruction.json @@ -13,7 +13,13 @@ "Z": -682.76495 }, "TerritoryId": 156, - "InteractionType": "AcceptQuest" + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Mor Dhona", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } } ] }, From 8ef1b8440c5a13cec844018ba6c4cb2a0c94aee6 Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Sat, 31 Aug 2024 20:49:52 +0800 Subject: [PATCH 145/450] Added MNK actions "Twin Snakes", "Demolish", "Dragon Kick", and "Form Shift" --- QuestPaths/quest-v1.json | 4 ++++ Questionable.Model/Questing/Converter/ActionConverter.cs | 4 ++++ Questionable.Model/Questing/EAction.cs | 4 ++++ 3 files changed, 12 insertions(+) diff --git a/QuestPaths/quest-v1.json b/QuestPaths/quest-v1.json index 6279b7ac..3e134e8b 100644 --- a/QuestPaths/quest-v1.json +++ b/QuestPaths/quest-v1.json @@ -855,11 +855,15 @@ "enum": [ "Heavy Swing", "Bootshine", + "Twin Snakes", + "Demolish", + "Dragon Kick", "Heavy Shot", "Cure", "Cure II", "Esuna", "Physick", + "Form Shift", "Buffet (Sanuwa)", "Buffet (Griffin)", "Fumigate", diff --git a/Questionable.Model/Questing/Converter/ActionConverter.cs b/Questionable.Model/Questing/Converter/ActionConverter.cs index c0399493..6393aeec 100644 --- a/Questionable.Model/Questing/Converter/ActionConverter.cs +++ b/Questionable.Model/Questing/Converter/ActionConverter.cs @@ -9,11 +9,15 @@ public sealed class ActionConverter() : EnumConverter(Values) { { EAction.HeavySwing, "Heavy Swing" }, { EAction.Bootshine, "Bootshine" }, + { EAction.TwinSnakes, "Twin Snakes" }, + { EAction.Demolish, "Demolish" }, + { EAction.DragonKick, "Dragon Kick" }, { EAction.HeavyShot, "Heavy Shot" }, { EAction.Cure, "Cure" }, { EAction.Cure2, "Cure II" }, { EAction.Esuna, "Esuna" }, { EAction.Physick, "Physick" }, + { EAction.FormShift, "Form Shift" }, { EAction.BuffetSanuwa, "Buffet (Sanuwa)" }, { EAction.BuffetGriffin, "Buffet (Griffin)" }, { EAction.Fumigate, "Fumigate" }, diff --git a/Questionable.Model/Questing/EAction.cs b/Questionable.Model/Questing/EAction.cs index c8ea63e6..19fb4a98 100644 --- a/Questionable.Model/Questing/EAction.cs +++ b/Questionable.Model/Questing/EAction.cs @@ -8,11 +8,15 @@ public enum EAction { HeavySwing = 31, Bootshine = 53, + TwinSnakes = 61, + Demolish = 66, + DragonKick = 74, HeavyShot = 97, Cure = 120, Cure2 = 135, Esuna = 7568, Physick = 190, + FormShift = 4262, BuffetSanuwa = 4931, BuffetGriffin = 4583, Fumigate = 5872, From 66ed076785df5be23ae650829f2bbebeacdb54b0 Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Sat, 31 Aug 2024 20:50:04 +0800 Subject: [PATCH 146/450] Added all MNK Stormblood class quests --- .../MNK/2426_A Fistful of Resolve.json | 107 ++++++++++++ .../MNK/2427_Return of the Monk.json | 151 ++++++++++++++++ .../MNK/2428_Cross-fist Training.json | 164 ++++++++++++++++++ .../MNK/2429_Choices and Paths.json | 149 ++++++++++++++++ .../MNK/2430_The Power to Protect.json | 119 +++++++++++++ 5 files changed, 690 insertions(+) create mode 100644 QuestPaths/4.x - Stormblood/Class Quests/MNK/2426_A Fistful of Resolve.json create mode 100644 QuestPaths/4.x - Stormblood/Class Quests/MNK/2427_Return of the Monk.json create mode 100644 QuestPaths/4.x - Stormblood/Class Quests/MNK/2428_Cross-fist Training.json create mode 100644 QuestPaths/4.x - Stormblood/Class Quests/MNK/2429_Choices and Paths.json create mode 100644 QuestPaths/4.x - Stormblood/Class Quests/MNK/2430_The Power to Protect.json diff --git a/QuestPaths/4.x - Stormblood/Class Quests/MNK/2426_A Fistful of Resolve.json b/QuestPaths/4.x - Stormblood/Class Quests/MNK/2426_A Fistful of Resolve.json new file mode 100644 index 00000000..73f3621e --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/MNK/2426_A Fistful of Resolve.json @@ -0,0 +1,107 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "plogon_enjoyer", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1006749, + "Position": { + "X": -30.47229, + "Y": 13.599918, + "Z": 95.26196 + }, + "TerritoryId": 131, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Goldsmiths' Guild" + ], + "SkipConditions": { + "AethernetShortcutIf": { + "InSameTerritory": true + }, + "AetheryteShortcutIf": { + "InTerritory": [130, 131] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1013971, + "Position": { + "X": 15.854065, + "Y": 28.620823, + "Z": -682.76495 + }, + "TerritoryId": 156, + "InteractionType": "Interact", + "Fly": true, + "AetheryteShortcut": "Mor Dhona" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1022372, + "Position": { + "X": -224.90277, + "Y": 26.139341, + "Z": -353.38373 + }, + "TerritoryId": 146, + "InteractionType": "Interact", + "Mount": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1022373, + "Position": { + "X": -81.22388, + "Y": 39.42472, + "Z": -336.96503 + }, + "TerritoryId": 146, + "InteractionType": "Interact", + "Mount": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1013971, + "Position": { + "X": 15.854065, + "Y": 28.620823, + "Z": -682.76495 + }, + "TerritoryId": 156, + "InteractionType": "CompleteQuest", + "Fly": true, + "AetheryteShortcut": "Mor Dhona", + "DialogueChoices": [ + { + "Prompt": "TEXT_JOBMNK601_02426_Q2_000_000", + "Type": "List", + "Answer": "TEXT_JOBMNK601_02426_A2_000_001" + } + ] + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Class Quests/MNK/2427_Return of the Monk.json b/QuestPaths/4.x - Stormblood/Class Quests/MNK/2427_Return of the Monk.json new file mode 100644 index 00000000..3afc9843 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/MNK/2427_Return of the Monk.json @@ -0,0 +1,151 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "plogon_enjoyer", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1013971, + "Position": { + "X": 15.854065, + "Y": 28.620823, + "Z": -682.76495 + }, + "TerritoryId": 156, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Mor Dhona", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1022384, + "Position": { + "X": 76.920654, + "Y": 62.19928, + "Z": -669.4591 + }, + "TerritoryId": 612, + "InteractionType": "Interact", + "Fly": true, + "AetheryteShortcut": "Fringes - Castrum Oriens" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1022387, + "Position": { + "X": 49.94275, + "Y": 118.155785, + "Z": -746.0899 + }, + "TerritoryId": 620, + "InteractionType": "Interact", + "Fly": true, + "AetheryteShortcut": "Peaks - Ala Gannha" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1022390, + "Position": { + "X": 51.132935, + "Y": 118.44431, + "Z": -789.27295 + }, + "TerritoryId": 620, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "Position": { + "X": 46.555176, + "Y": 117.997925, + "Z": -784.2374 + }, + "TerritoryId": 620, + "InteractionType": "Action", + "Action": "Form Shift" + }, + { + "DataId": 2008451, + "Position": { + "X": 46.555176, + "Y": 117.997925, + "Z": -784.2374 + }, + "TerritoryId": 620, + "InteractionType": "Action", + "Action": "Twin Snakes" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 2008451, + "Position": { + "X": 46.555176, + "Y": 117.997925, + "Z": -784.2374 + }, + "TerritoryId": 620, + "InteractionType": "Action", + "Action": "Dragon Kick" + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 2008451, + "Position": { + "X": 46.555176, + "Y": 117.997925, + "Z": -784.2374 + }, + "TerritoryId": 620, + "InteractionType": "Action", + "Action": "Demolish" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1022390, + "Position": { + "X": 51.132935, + "Y": 118.44431, + "Z": -789.27295 + }, + "TerritoryId": 620, + "InteractionType": "CompleteQuest", + "NextQuestId": 2428 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Class Quests/MNK/2428_Cross-fist Training.json b/QuestPaths/4.x - Stormblood/Class Quests/MNK/2428_Cross-fist Training.json new file mode 100644 index 00000000..a58ddf73 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/MNK/2428_Cross-fist Training.json @@ -0,0 +1,164 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "plogon_enjoyer", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1022390, + "Position": { + "X": 51.132935, + "Y": 118.44431, + "Z": -789.27295 + }, + "TerritoryId": 620, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Peaks - Ala Gannha", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1003817, + "Position": { + "X": -74.57086, + "Y": 1.9999951, + "Z": -42.404846 + }, + "TerritoryId": 130, + "AetheryteShortcut": "Ul'dah", + "InteractionType": "CompleteQuest" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1022390, + "Position": { + "X": 51.132935, + "Y": 118.44431, + "Z": -789.27295 + }, + "TerritoryId": 620, + "InteractionType": "Interact", + "Fly": true, + "AetheryteShortcut": "Peaks - Ala Gannha" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1022404, + "Position": { + "X": 76.43237, + "Y": 62.148823, + "Z": -667.2923 + }, + "TerritoryId": 612, + "InteractionType": "Interact", + "Fly": true, + "AetheryteShortcut": "Fringes - Castrum Oriens" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "Position": { + "X": -96.72436, + "Y": 60.086643, + "Z": -602.3445 + }, + "TerritoryId": 612, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "Position": { + "X": -109.40343, + "Y": 60.039776, + "Z": -612.03217 + }, + "TerritoryId": 612, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [7217], + "CombatDelaySecondsAtStart": 0, + "Mount": false + }, + { + "DataId": 1022405, + "Position": { + "X": -106.82843, + "Y": 60.07189, + "Z": -609.49115 + }, + "TerritoryId": 612, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1022411, + "Position": { + "X": -107.927124, + "Y": 60.035603, + "Z": -609.76575 + }, + "TerritoryId": 612, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1022412, + "Position": { + "X": 103.77649, + "Y": 118.18349, + "Z": -707.393 + }, + "TerritoryId": 620, + "InteractionType": "Interact", + "Fly": true, + "AetheryteShortcut": "Peaks - Ala Gannha" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1023728, + "Position": { + "X": 51.132935, + "Y": 118.44431, + "Z": -789.27295 + }, + "TerritoryId": 620, + "InteractionType": "CompleteQuest", + "Fly": true, + "NextQuestId": 2429 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Class Quests/MNK/2429_Choices and Paths.json b/QuestPaths/4.x - Stormblood/Class Quests/MNK/2429_Choices and Paths.json new file mode 100644 index 00000000..fbd3bd5b --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/MNK/2429_Choices and Paths.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": 1023728, + "Position": { + "X": 51.132935, + "Y": 118.44431, + "Z": -789.27295 + }, + "TerritoryId": 620, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Peaks - Ala Gannha", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1022437, + "Position": { + "X": 81.467896, + "Y": 118.391884, + "Z": -792.7825 + }, + "TerritoryId": 620, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1022438, + "Position": { + "X": -61.112427, + "Y": -0.002525447, + "Z": -67.67377 + }, + "TerritoryId": 635, + "InteractionType": "Interact", + "Mount": true, + "AetheryteShortcut": "Rhalgr's Reach", + "AethernetShortcut": [ + "[Rhalgr's Reach] Aetheryte Plaza", + "[Rhalgr's Reach] Western Rhalgr's Reach" + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1023728, + "Position": { + "X": 51.132935, + "Y": 118.44431, + "Z": -789.27295 + }, + "TerritoryId": 620, + "InteractionType": "Interact", + "Fly": true, + "AetheryteShortcut": "Peaks - Ala Gannha" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1022439, + "Position": { + "X": 162.40173, + "Y": 49.7417, + "Z": -251.9112 + }, + "TerritoryId": 612, + "InteractionType": "Interact", + "Fly": true, + "AetheryteShortcut": "Fringes - Peering Stones" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1022442, + "Position": { + "X": -575.1583, + "Y": 110.899315, + "Z": -324.69672 + }, + "TerritoryId": 612, + "InteractionType": "SinglePlayerDuty", + "Fly": true, + "AetheryteShortcut": "Fringes - Castrum Oriens", + "$": "Will skip Sequence 6" + } + ] + }, + { + "Sequence": 7, + "Steps": [ + { + "DataId": 1022446, + "Position": { + "X": -586.2974, + "Y": 113.00655, + "Z": -312.7337 + }, + "TerritoryId": 612, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1022390, + "Position": { + "X": 51.132935, + "Y": 118.44431, + "Z": -789.27295 + }, + "TerritoryId": 620, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Peaks - Ala Gannha", + "Fly": true, + "NextQuestId": 2430 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Class Quests/MNK/2430_The Power to Protect.json b/QuestPaths/4.x - Stormblood/Class Quests/MNK/2430_The Power to Protect.json new file mode 100644 index 00000000..457226b0 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Class Quests/MNK/2430_The Power to Protect.json @@ -0,0 +1,119 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "plogon_enjoyer", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1022390, + "Position": { + "X": 51.132935, + "Y": 118.44431, + "Z": -789.27295 + }, + "TerritoryId": 620, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Peaks - Ala Gannha", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + }, + "DialogueChoices": [ + { + "Prompt": "TEXT_JOBMNK700_02430_Q1_000_000", + "Type": "List", + "Answer": "TEXT_JOBMNK700_02430_A1_000_001" + } + ] + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1022532, + "Position": { + "X": 617.6089, + "Y": 271.0004, + "Z": -463.1266 + }, + "TerritoryId": 620, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1022548, + "Position": { + "X": 75.638916, + "Y": 62.111427, + "Z": -665.3696 + }, + "TerritoryId": 612, + "InteractionType": "SinglePlayerDuty", + "Fly": true, + "AetheryteShortcut": "Fringes - Castrum Oriens", + "$": "Will skip Sequence 5" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1022539, + "Position": { + "X": 54.36792, + "Y": 118.22339, + "Z": -785.12244 + }, + "TerritoryId": 620, + "InteractionType": "Interact" + }, + { + "DataId": 1022538, + "Position": { + "X": 51.31604, + "Y": 118.32745, + "Z": -786.9841 + }, + "TerritoryId": 620, + "InteractionType": "Interact" + }, + { + "DataId": 1022392, + "Position": { + "X": 53.147095, + "Y": 118.4737, + "Z": -788.4489 + }, + "TerritoryId": 620, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1022390, + "Position": { + "X": 51.132935, + "Y": 118.44431, + "Z": -789.27295 + }, + "TerritoryId": 620, + "InteractionType": "CompleteQuest", + "NextQuestId": 3211 + } + ] + } + ] +} From c193789d3c7215c42704dc012feae65526e69c92 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sat, 31 Aug 2024 19:41:59 +0200 Subject: [PATCH 147/450] Ignore NextQuestId for job quests --- Questionable/Controller/Steps/Common/NextQuest.cs | 4 ++++ Questionable/Functions/QuestFunctions.cs | 6 +++--- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/Questionable/Controller/Steps/Common/NextQuest.cs b/Questionable/Controller/Steps/Common/NextQuest.cs index e7fd2b62..574c76ae 100644 --- a/Questionable/Controller/Steps/Common/NextQuest.cs +++ b/Questionable/Controller/Steps/Common/NextQuest.cs @@ -20,6 +20,10 @@ internal static class NextQuest if (step.NextQuestId == quest.Id) return null; + // probably irrelevant, since pick up is handled elsewhere (and, in particular, checks for aetherytes and stuff) + if (questFunctions.GetPriorityQuests().Contains(step.NextQuestId)) + return null; + return new SetQuest(step.NextQuestId, quest.Id, questRegistry, questController, questFunctions, loggerFactory.CreateLogger()); } } diff --git a/Questionable/Functions/QuestFunctions.cs b/Questionable/Functions/QuestFunctions.cs index 4bfdce00..b36e7c36 100644 --- a/Questionable/Functions/QuestFunctions.cs +++ b/Questionable/Functions/QuestFunctions.cs @@ -254,7 +254,8 @@ internal sealed unsafe class QuestFunctions InventoryManager* inventoryManager = InventoryManager.Instance(); int gil = inventoryManager->GetItemCountInContainer(1, InventoryType.Currency); - return GetPriorityQuestsThatCanBeAccepted() + return GetPriorityQuests() + .Where(IsReadyToAcceptQuest) .Where(x => { if (!_questRegistry.TryGetQuest(x, out Quest? quest)) @@ -311,7 +312,7 @@ internal sealed unsafe class QuestFunctions return 1000 * quest.AllSteps().Count(x => x.Step.AetheryteShortcut != null); } - private List GetPriorityQuestsThatCanBeAccepted() + public List GetPriorityQuests() { List priorityQuests = [ @@ -349,7 +350,6 @@ internal sealed unsafe class QuestFunctions return priorityQuests .Where(_questRegistry.IsKnownQuest) - .Where(IsReadyToAcceptQuest) .ToList(); } From 0c401c6cfcd621b5ae8a88d682d6dfcb6ec9f82b Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Sat, 31 Aug 2024 01:27:51 +0800 Subject: [PATCH 148/450] Updated step to fly --- .../Ananta/Dailies/3044_A Sluggish Endeavor.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Dailies/3044_A Sluggish Endeavor.json b/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Dailies/3044_A Sluggish Endeavor.json index 13709727..80bf5056 100644 --- a/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Dailies/3044_A Sluggish Endeavor.json +++ b/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Dailies/3044_A Sluggish Endeavor.json @@ -35,7 +35,8 @@ 8578, 8579, 8580 - ] + ], + "Fly": true } ] }, From 913e37a84d0dc3bc2635490441db12ae75f96080 Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Sun, 1 Sep 2024 01:54:06 +0800 Subject: [PATCH 149/450] Added conditions for "When Feathers Fly" --- .../Dailies/3052_When Feathers Fly.json | 29 +++++++++++++++++++ .../Ananta/Dailies/3052_When Feathers Fly.md | 7 +++++ 2 files changed, 36 insertions(+) create mode 100644 QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Dailies/3052_When Feathers Fly.md diff --git a/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Dailies/3052_When Feathers Fly.json b/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Dailies/3052_When Feathers Fly.json index 85e5f32c..70330fb8 100644 --- a/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Dailies/3052_When Feathers Fly.json +++ b/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Dailies/3052_When Feathers Fly.json @@ -21,6 +21,32 @@ { "Sequence": 1, "Steps": [ + { + "DataId": 1025066, + "Position": { + "X": -155.90149, + "Y": 66.2623, + "Z": -366.93372 + }, + "TerritoryId": 612, + "InteractionType": "Emote", + "Emote": "rally", + "Fly": true, + "RequiredQuestVariables": [null, null, [16], null, null, null] + }, + { + "DataId": 1025064, + "Position": { + "X": 185.62585, + "Y": 68.93902, + "Z": -372.15234 + }, + "TerritoryId": 612, + "InteractionType": "Emote", + "RequiredQuestVariables": [null, [1, 17], null, null, null, null], + "Emote": "soothe", + "Fly": true + }, { "DataId": 1025063, "Position": { @@ -30,6 +56,7 @@ }, "TerritoryId": 612, "InteractionType": "Emote", + "RequiredQuestVariables": [null, [2, 18], null, null, null, null], "Emote": "soothe", "Fly": true }, @@ -42,6 +69,7 @@ }, "TerritoryId": 612, "InteractionType": "Emote", + "RequiredQuestVariables": [null, null, [32], null, null, null], "Emote": "rally", "Fly": true } @@ -58,6 +86,7 @@ }, "TerritoryId": 612, "InteractionType": "WalkTo", + "AetheryteShortcut": "Fringes - Peering Stones", "Fly": true }, { diff --git a/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Dailies/3052_When Feathers Fly.md b/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Dailies/3052_When Feathers Fly.md new file mode 100644 index 00000000..8b0ba9fb --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Dailies/3052_When Feathers Fly.md @@ -0,0 +1,7 @@ +``` +0 0 x x 0 0 | 1025063 1025064 1025065 1025066 + 1 16 x x + 2 16 x x + 1 32 x x + 2 32 x x +``` From 1627d43e4e3b32f41d3fa8e9985cde11d81f6c9f Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Sun, 1 Sep 2024 02:15:16 +0800 Subject: [PATCH 150/450] Added conditions for "Criminal Crossings" --- .../Dailies/3051_Criminal Crossings.json | 71 ++++++++++++++----- .../Ananta/Dailies/3051_Criminal Crossings.md | 5 ++ 2 files changed, 57 insertions(+), 19 deletions(-) create mode 100644 QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Dailies/3051_Criminal Crossings.md diff --git a/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Dailies/3051_Criminal Crossings.json b/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Dailies/3051_Criminal Crossings.json index 2283a975..be29d3d4 100644 --- a/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Dailies/3051_Criminal Crossings.json +++ b/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Dailies/3051_Criminal Crossings.json @@ -21,6 +21,25 @@ { "Sequence": 1, "Steps": [ + { + "DataId": 1025120, + "Position": { + "X": -333.66907, + "Y": 43.042835, + "Z": -22.201904 + }, + "TerritoryId": 612, + "InteractionType": "Interact", + "RequiredQuestVariables": [null, null, null, [2], null, null], + "Fly": true, + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_BANANA402_03051_Q1_000_000", + "Answer": "TEXT_BANANA402_03051_A1_000_001" + } + ] + }, { "DataId": 1025062, "Position": { @@ -30,6 +49,7 @@ }, "TerritoryId": 612, "InteractionType": "Combat", + "RequiredQuestVariables": [null, null, null, [3], null, null], "Fly": true, "DialogueChoices": [ { @@ -41,6 +61,25 @@ "EnemySpawnType": "AfterInteraction", "KillEnemyDataIds": [8587] }, + { + "DataId": 1025119, + "Position": { + "X": -488.18192, + "Y": 81.128265, + "Z": -191.33289 + }, + "TerritoryId": 612, + "InteractionType": "Interact", + "RequiredQuestVariables": [null, null, null, [2], null, null], + "Fly": true, + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_BANANA402_03051_Q1_000_000", + "Answer": "TEXT_BANANA402_03051_A1_000_001" + } + ] + }, { "DataId": 1025061, "Position": { @@ -50,11 +89,7 @@ }, "TerritoryId": 612, "InteractionType": "Combat", - "SkipConditions": { - "StepIf": { - "NotTargetable": true - } - }, + "RequiredQuestVariables": [null, null, null, [3], null, null], "Fly": true, "DialogueChoices": [ { @@ -64,32 +99,28 @@ } ], "EnemySpawnType": "AfterInteraction", - "KillEnemyDataIds": [8586], - "$": "This NPC will become an enemy" + "KillEnemyDataIds": [8586] }, { - "DataId": 1025119, + "DataId": 1025060, "Position": { - "X": -488.18192, - "Y": 81.128265, - "Z": -191.33289 + "X": -572.9916, + "Y": 112.44218, + "Z": -229.32788 }, "TerritoryId": 612, - "InteractionType": "Interact", - "SkipConditions": { - "StepIf": { - "NotTargetable": true - } - }, + "InteractionType": "Combat", + "RequiredQuestVariables": [null, null, null, [2], null, null], "Fly": true, "DialogueChoices": [ { "Type": "List", "Prompt": "TEXT_BANANA402_03051_Q1_000_000", - "Answer": "TEXT_BANANA402_03051_A1_000_001" + "Answer": "TEXT_BANANA402_03051_A1_000_002" } ], - "$": "This NPC will not become an enemy" + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [8585] }, { "DataId": 1025118, @@ -100,6 +131,7 @@ }, "TerritoryId": 612, "InteractionType": "Interact", + "RequiredQuestVariables": [null, null, null, [3], null, null], "Fly": true, "DialogueChoices": [ { @@ -122,6 +154,7 @@ }, "TerritoryId": 612, "InteractionType": "WalkTo", + "AetheryteShortcut": "Fringes - Peering Stones", "Fly": true }, { diff --git a/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Dailies/3051_Criminal Crossings.md b/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Dailies/3051_Criminal Crossings.md new file mode 100644 index 00000000..3aa3f81e --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Dailies/3051_Criminal Crossings.md @@ -0,0 +1,5 @@ +``` +0 0 0 x 0 0 | + 2 1025120 -> 1025119 -> 1025060 + 3 1025062 -> 1025061 -> 1025118 +``` From d76242adfe4fec11d0d40fa949634645c216d328 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sat, 31 Aug 2024 21:50:50 +0200 Subject: [PATCH 151/450] Fix emote use in 'Familiar Faces' once and for all --- Questionable/Controller/Steps/Interactions/Emote.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Questionable/Controller/Steps/Interactions/Emote.cs b/Questionable/Controller/Steps/Interactions/Emote.cs index 940aabb1..8a5db80e 100644 --- a/Questionable/Controller/Steps/Interactions/Emote.cs +++ b/Questionable/Controller/Steps/Interactions/Emote.cs @@ -14,7 +14,8 @@ internal static class Emote { public IEnumerable CreateAllTasks(Quest quest, QuestSequence sequence, QuestStep step) { - if (step.InteractionType is EInteractionType.AcceptQuest or EInteractionType.CompleteQuest) + if (step.InteractionType is EInteractionType.AcceptQuest or EInteractionType.CompleteQuest + or EInteractionType.SinglePlayerDuty) { if (step.Emote == null) return []; From 842715337c014c4b5177b9cfcacecea478681bd5 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sat, 31 Aug 2024 22:21:36 +0200 Subject: [PATCH 152/450] Update HW paths + include aether current quests in MSQ --- .../1828_Hide Your Moogles.json | 14 +++++- .../1771_Some Bad News.json | 1 + .../1790_Stolen Munitions.json | 9 ++++ .../1797_The Hunter Becomes the Kweh.json | 1 + .../1802_A Lesson in Humility.json | 3 +- .../1945_Ebb and Aetherflow.json | 1 + .../1963_Taking Stock.json | 11 ++++ .../1909_Sleepless in Ok' Zundu.json | 9 ++++ .../WAR/588_The Bear Necessity.json | 17 ++++++- .../1580_Coming to Ishgard.json | 1 + .../1592_Meeting the Neighbors.json | 3 +- .../1593_Sense of Urgency.json | 9 ++++ .../1599_Flame General Affairs.json | 17 +++++++ .../1602_To Siege or Not to Siege.json | 2 + .../1603_Alphinaud's Way.json | 2 +- .../1604_In Search of Iceheart.json | 11 ++++ .../1608_Purple Flame, Purple Flame.json | 33 ++++++++++++ .../1609_Where the Chocobos Roam.json | 10 ++++ .../1610_Worse than Dragons.json | 11 ++++ .../1614_A Gnathic Deity.json | 11 ++++ .../1616_Lord of the Hive.json | 50 +++++++++++++++++-- .../1617_Mourn in Passing.json | 2 +- .../1620_Moghan's Trial.json | 2 +- .../1621_Mogmug's Trial.json | 11 ++++ .../1623_Moglin's Judgment.json | 2 +- .../1624_Leaving Moghome.json | 2 +- .../1625_The Road to Zenith.json | 19 +++++++ .../1627_Heart of Ice.json | 1 + .../1628_The Wyrm's Lair.json | 1 + .../1629_New Winds, Old Friends.json | 11 ++++ .../1630_A General Summons.json | 2 + .../1635_The Song Begins.json | 20 +++++++- .../1641_The Sins of Antiquity.json | 15 +++++- .../A5-Sea of Clouds/1644_Familiar Faces.json | 7 ++- .../1647_Bolt, Chain, and Island.json | 25 +++++++++- .../1648_A Difference of Opinion.json | 2 +- .../1653_Tataru's Surprise.json | 9 ++++ .../1654_Onward to Sharlayan.json | 3 +- .../1656_Golems Begone.json | 21 +++++++- .../1657_An Illuminati Incident.json | 15 ++++++ .../1658_Leaving Idyllshire.json | 11 ++++ .../1659_Matoya's Cave.json | 30 +++++++---- .../1660_Forbidden Knowledge.json | 16 +++++- .../1662_Hour of Departure.json | 1 + ...663_The First Flight of the Excelsior.json | 3 +- .../1666_Chimerical Maintenance.json | 9 ++++ 46 files changed, 425 insertions(+), 41 deletions(-) diff --git a/QuestPaths/3.x - Heavensward/Aether Currents/The Churning Mists/1828_Hide Your Moogles.json b/QuestPaths/3.x - Heavensward/Aether Currents/The Churning Mists/1828_Hide Your Moogles.json index 7d7043cf..be32d328 100644 --- a/QuestPaths/3.x - Heavensward/Aether Currents/The Churning Mists/1828_Hide Your Moogles.json +++ b/QuestPaths/3.x - Heavensward/Aether Currents/The Churning Mists/1828_Hide Your Moogles.json @@ -196,6 +196,17 @@ { "Sequence": 255, "Steps": [ + { + "Position": { + "X": -465.66104, + "Y": 43.041187, + "Z": 380.90747 + }, + "TerritoryId": 400, + "InteractionType": "WalkTo", + "Mount": true, + "DisableNavmesh": true + }, { "DataId": 1013420, "Position": { @@ -204,8 +215,7 @@ "Z": 347.0968 }, "TerritoryId": 400, - "InteractionType": "CompleteQuest", - "DisableNavmesh": true + "InteractionType": "CompleteQuest" } ] } diff --git a/QuestPaths/3.x - Heavensward/Aether Currents/The Dravanian Forelands/1771_Some Bad News.json b/QuestPaths/3.x - Heavensward/Aether Currents/The Dravanian Forelands/1771_Some Bad News.json index c584f07b..e3a5e7b5 100644 --- a/QuestPaths/3.x - Heavensward/Aether Currents/The Dravanian Forelands/1771_Some Bad News.json +++ b/QuestPaths/3.x - Heavensward/Aether Currents/The Dravanian Forelands/1771_Some Bad News.json @@ -111,6 +111,7 @@ }, "TerritoryId": 398, "InteractionType": "WalkTo", + "Mount": true, "SkipConditions": { "StepIf": { "CompletionQuestVariablesFlags": [ diff --git a/QuestPaths/3.x - Heavensward/Aether Currents/The Dravanian Forelands/1790_Stolen Munitions.json b/QuestPaths/3.x - Heavensward/Aether Currents/The Dravanian Forelands/1790_Stolen Munitions.json index 5e217fc9..17d022f2 100644 --- a/QuestPaths/3.x - Heavensward/Aether Currents/The Dravanian Forelands/1790_Stolen Munitions.json +++ b/QuestPaths/3.x - Heavensward/Aether Currents/The Dravanian Forelands/1790_Stolen Munitions.json @@ -20,6 +20,15 @@ { "Sequence": 1, "Steps": [ + { + "Position": { + "X": 67.682434, + "Y": -49.685223, + "Z": -148.21802 + }, + "TerritoryId": 398, + "InteractionType": "WalkTo" + }, { "DataId": 4001, "Position": { diff --git a/QuestPaths/3.x - Heavensward/Aether Currents/The Dravanian Forelands/1797_The Hunter Becomes the Kweh.json b/QuestPaths/3.x - Heavensward/Aether Currents/The Dravanian Forelands/1797_The Hunter Becomes the Kweh.json index 2deff7b9..1ccc2ef4 100644 --- a/QuestPaths/3.x - Heavensward/Aether Currents/The Dravanian Forelands/1797_The Hunter Becomes the Kweh.json +++ b/QuestPaths/3.x - Heavensward/Aether Currents/The Dravanian Forelands/1797_The Hunter Becomes the Kweh.json @@ -118,6 +118,7 @@ }, "TerritoryId": 398, "InteractionType": "WalkTo", + "Mount": true, "SkipConditions": { "StepIf": { "CompletionQuestVariablesFlags": [ diff --git a/QuestPaths/3.x - Heavensward/Aether Currents/The Dravanian Forelands/1802_A Lesson in Humility.json b/QuestPaths/3.x - Heavensward/Aether Currents/The Dravanian Forelands/1802_A Lesson in Humility.json index 2c5c6b23..fd7ed9c5 100644 --- a/QuestPaths/3.x - Heavensward/Aether Currents/The Dravanian Forelands/1802_A Lesson in Humility.json +++ b/QuestPaths/3.x - Heavensward/Aether Currents/The Dravanian Forelands/1802_A Lesson in Humility.json @@ -152,7 +152,8 @@ "Z": 22.9953 }, "TerritoryId": 398, - "InteractionType": "CompleteQuest" + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "The Dravanian Forelands - Anyx Trine" } ] } diff --git a/QuestPaths/3.x - Heavensward/Aether Currents/The Dravanian Hinterlands/1945_Ebb and Aetherflow.json b/QuestPaths/3.x - Heavensward/Aether Currents/The Dravanian Hinterlands/1945_Ebb and Aetherflow.json index 64cbba1e..1d32b15e 100644 --- a/QuestPaths/3.x - Heavensward/Aether Currents/The Dravanian Hinterlands/1945_Ebb and Aetherflow.json +++ b/QuestPaths/3.x - Heavensward/Aether Currents/The Dravanian Hinterlands/1945_Ebb and Aetherflow.json @@ -98,6 +98,7 @@ "Y": 205.6815, "Z": 31.631958 }, + "StopDistance": 5, "TerritoryId": 478, "InteractionType": "CompleteQuest", "AetheryteShortcut": "Idyllshire" 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 b67d5cd7..338a7da4 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 @@ -30,6 +30,17 @@ "InteractionType": "WalkTo", "TargetTerritoryId": 399 }, + { + "DataId": 2006210, + "Position": { + "X": -487.48004, + "Y": 144.64026, + "Z": -285.359 + }, + "TerritoryId": 399, + "InteractionType": "AttuneAetherCurrent", + "AetherCurrentId": 2818088 + }, { "DataId": 1013651, "Position": { diff --git a/QuestPaths/3.x - Heavensward/Aether Currents/The Sea of Clouds/1909_Sleepless in Ok' Zundu.json b/QuestPaths/3.x - Heavensward/Aether Currents/The Sea of Clouds/1909_Sleepless in Ok' Zundu.json index e6fd0f6c..ef0f8a4a 100644 --- a/QuestPaths/3.x - Heavensward/Aether Currents/The Sea of Clouds/1909_Sleepless in Ok' Zundu.json +++ b/QuestPaths/3.x - Heavensward/Aether Currents/The Sea of Clouds/1909_Sleepless in Ok' Zundu.json @@ -20,6 +20,15 @@ { "Sequence": 1, "Steps": [ + { + "Position": { + "X": -44.83911, + "Y": -1.6023016, + "Z": -655.73804 + }, + "TerritoryId": 401, + "InteractionType": "WalkTo" + }, { "DataId": 2005824, "Position": { diff --git a/QuestPaths/3.x - Heavensward/Class Quests/WAR/588_The Bear Necessity.json b/QuestPaths/3.x - Heavensward/Class Quests/WAR/588_The Bear Necessity.json index f3ce1fe7..559d211e 100644 --- a/QuestPaths/3.x - Heavensward/Class Quests/WAR/588_The Bear Necessity.json +++ b/QuestPaths/3.x - Heavensward/Class Quests/WAR/588_The Bear Necessity.json @@ -135,6 +135,20 @@ { "Sequence": 3, "Steps": [ + { + "Position": { + "X": 423.53406, + "Y": -26.253891, + "Z": -550.60297 + }, + "TerritoryId": 398, + "InteractionType": "WalkTo", + "SkipConditions": { + "StepIf": { + "Flying": "Unlocked" + } + } + }, { "DataId": 2005573, "Position": { @@ -177,7 +191,8 @@ "StepIf": { "Flying": "Unlocked" } - } + }, + "DisableNavmesh": true } ] }, diff --git a/QuestPaths/3.x - Heavensward/MSQ/A1-Coerthas Western Highlands 1, Sea of Clouds 1/1580_Coming to Ishgard.json b/QuestPaths/3.x - Heavensward/MSQ/A1-Coerthas Western Highlands 1, Sea of Clouds 1/1580_Coming to Ishgard.json index 6bd29e33..e051a689 100644 --- a/QuestPaths/3.x - Heavensward/MSQ/A1-Coerthas Western Highlands 1, Sea of Clouds 1/1580_Coming to Ishgard.json +++ b/QuestPaths/3.x - Heavensward/MSQ/A1-Coerthas Western Highlands 1, Sea of Clouds 1/1580_Coming to Ishgard.json @@ -12,6 +12,7 @@ "Y": 0.014982708, "Z": -0.07635498 }, + "StopDistance": 7, "TerritoryId": 395, "InteractionType": "AcceptQuest" } diff --git a/QuestPaths/3.x - Heavensward/MSQ/A1-Coerthas Western Highlands 1, Sea of Clouds 1/1592_Meeting the Neighbors.json b/QuestPaths/3.x - Heavensward/MSQ/A1-Coerthas Western Highlands 1, Sea of Clouds 1/1592_Meeting the Neighbors.json index c7215e44..b5ff5887 100644 --- a/QuestPaths/3.x - Heavensward/MSQ/A1-Coerthas Western Highlands 1, Sea of Clouds 1/1592_Meeting the Neighbors.json +++ b/QuestPaths/3.x - Heavensward/MSQ/A1-Coerthas Western Highlands 1, Sea of Clouds 1/1592_Meeting the Neighbors.json @@ -114,8 +114,7 @@ "Z": 761.01306 }, "TerritoryId": 401, - "InteractionType": "CompleteQuest", - "AetheryteShortcut": "The Sea of Clouds - Camp Cloudtop" + "InteractionType": "CompleteQuest" } ] } diff --git a/QuestPaths/3.x - Heavensward/MSQ/A1-Coerthas Western Highlands 1, Sea of Clouds 1/1593_Sense of Urgency.json b/QuestPaths/3.x - Heavensward/MSQ/A1-Coerthas Western Highlands 1, Sea of Clouds 1/1593_Sense of Urgency.json index 4a8d50ac..75b0b6bb 100644 --- a/QuestPaths/3.x - Heavensward/MSQ/A1-Coerthas Western Highlands 1, Sea of Clouds 1/1593_Sense of Urgency.json +++ b/QuestPaths/3.x - Heavensward/MSQ/A1-Coerthas Western Highlands 1, Sea of Clouds 1/1593_Sense of Urgency.json @@ -83,6 +83,15 @@ 128 ] }, + { + "Position": { + "X": -368.08698, + "Y": -185.05266, + "Z": 792.836 + }, + "TerritoryId": 401, + "InteractionType": "WalkTo" + }, { "DataId": 1012360, "Position": { diff --git a/QuestPaths/3.x - Heavensward/MSQ/A2-Raubahn/1599_Flame General Affairs.json b/QuestPaths/3.x - Heavensward/MSQ/A2-Raubahn/1599_Flame General Affairs.json index 6dfd7035..d80572cb 100644 --- a/QuestPaths/3.x - Heavensward/MSQ/A2-Raubahn/1599_Flame General Affairs.json +++ b/QuestPaths/3.x - Heavensward/MSQ/A2-Raubahn/1599_Flame General Affairs.json @@ -20,6 +20,23 @@ { "Sequence": 1, "Steps": [ + { + "DataId": 1011952, + "Position": { + "X": -277.63788, + "Y": -184.59735, + "Z": 741.60376 + }, + "TerritoryId": 401, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "The Sea of Clouds - Camp Cloudtop", + "PickUpQuestId": 1748, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + }, { "DataId": 1001029, "Position": { diff --git a/QuestPaths/3.x - Heavensward/MSQ/A3.1-Coerthas Western Highlands 2/1602_To Siege or Not to Siege.json b/QuestPaths/3.x - Heavensward/MSQ/A3.1-Coerthas Western Highlands 2/1602_To Siege or Not to Siege.json index 967dc514..90526401 100644 --- a/QuestPaths/3.x - Heavensward/MSQ/A3.1-Coerthas Western Highlands 2/1602_To Siege or Not to Siege.json +++ b/QuestPaths/3.x - Heavensward/MSQ/A3.1-Coerthas Western Highlands 2/1602_To Siege or Not to Siege.json @@ -47,6 +47,7 @@ "Y": 16.009666, "Z": -9.567444 }, + "StopDistance": 7, "TerritoryId": 419, "InteractionType": "Interact", "TargetTerritoryId": 433 @@ -63,6 +64,7 @@ "Y": 0.022254243, "Z": -4.409851 }, + "StopDistance": 5, "TerritoryId": 433, "InteractionType": "CompleteQuest", "DialogueChoices": [ diff --git a/QuestPaths/3.x - Heavensward/MSQ/A3.1-Coerthas Western Highlands 2/1603_Alphinaud's Way.json b/QuestPaths/3.x - Heavensward/MSQ/A3.1-Coerthas Western Highlands 2/1603_Alphinaud's Way.json index 7c2298f3..05414fb3 100644 --- a/QuestPaths/3.x - Heavensward/MSQ/A3.1-Coerthas Western Highlands 2/1603_Alphinaud's Way.json +++ b/QuestPaths/3.x - Heavensward/MSQ/A3.1-Coerthas Western Highlands 2/1603_Alphinaud's Way.json @@ -12,6 +12,7 @@ "Y": 0.022254243, "Z": -4.409851 }, + "StopDistance": 5, "TerritoryId": 433, "InteractionType": "AcceptQuest" } @@ -27,7 +28,6 @@ "Y": 1.1443481, "Z": 13.199036 }, - "StopDistance": 7, "TerritoryId": 433, "InteractionType": "Interact", "TargetTerritoryId": 419 diff --git a/QuestPaths/3.x - Heavensward/MSQ/A3.1-Coerthas Western Highlands 2/1604_In Search of Iceheart.json b/QuestPaths/3.x - Heavensward/MSQ/A3.1-Coerthas Western Highlands 2/1604_In Search of Iceheart.json index efa5f07f..e03fc6ea 100644 --- a/QuestPaths/3.x - Heavensward/MSQ/A3.1-Coerthas Western Highlands 2/1604_In Search of Iceheart.json +++ b/QuestPaths/3.x - Heavensward/MSQ/A3.1-Coerthas Western Highlands 2/1604_In Search of Iceheart.json @@ -87,6 +87,17 @@ { "Sequence": 4, "Steps": [ + { + "DataId": 1011240, + "Position": { + "X": 493.15625, + "Y": 200.2377, + "Z": 663.01965 + }, + "TerritoryId": 397, + "InteractionType": "AcceptQuest", + "PickUpQuestId": 1744 + }, { "DataId": 2005536, "Position": { diff --git a/QuestPaths/3.x - Heavensward/MSQ/A3.1-Coerthas Western Highlands 2/1608_Purple Flame, Purple Flame.json b/QuestPaths/3.x - Heavensward/MSQ/A3.1-Coerthas Western Highlands 2/1608_Purple Flame, Purple Flame.json index 058fb527..ab4de151 100644 --- a/QuestPaths/3.x - Heavensward/MSQ/A3.1-Coerthas Western Highlands 2/1608_Purple Flame, Purple Flame.json +++ b/QuestPaths/3.x - Heavensward/MSQ/A3.1-Coerthas Western Highlands 2/1608_Purple Flame, Purple Flame.json @@ -20,6 +20,39 @@ { "Sequence": 1, "Steps": [ + { + "DataId": 1011910, + "Position": { + "X": -298.26813, + "Y": 126.67049, + "Z": -1.4191895 + }, + "TerritoryId": 397, + "InteractionType": "AcceptQuest", + "PickUpQuestId": 1759 + }, + { + "DataId": 1011907, + "Position": { + "X": -288.8686, + "Y": 127.06639, + "Z": 13.199036 + }, + "TerritoryId": 397, + "InteractionType": "AcceptQuest", + "PickUpQuestId": 1760 + }, + { + "DataId": 1011911, + "Position": { + "X": -279.56055, + "Y": 127.08131, + "Z": 13.595764 + }, + "TerritoryId": 397, + "InteractionType": "AcceptQuest", + "PickUpQuestId": 2111 + }, { "Position": { "X": -365.48965, diff --git a/QuestPaths/3.x - Heavensward/MSQ/A3.2-The Dravanian Forelands/1609_Where the Chocobos Roam.json b/QuestPaths/3.x - Heavensward/MSQ/A3.2-The Dravanian Forelands/1609_Where the Chocobos Roam.json index 82bc7486..cf8bc885 100644 --- a/QuestPaths/3.x - Heavensward/MSQ/A3.2-The Dravanian Forelands/1609_Where the Chocobos Roam.json +++ b/QuestPaths/3.x - Heavensward/MSQ/A3.2-The Dravanian Forelands/1609_Where the Chocobos Roam.json @@ -20,6 +20,16 @@ { "Sequence": 1, "Steps": [ + { + "Position": { + "X": -826.9342, + "Y": 117.95439, + "Z": -642.92413 + }, + "TerritoryId": 397, + "InteractionType": "WalkTo", + "Fly": true + }, { "Position": { "X": -850.3646, diff --git a/QuestPaths/3.x - Heavensward/MSQ/A3.2-The Dravanian Forelands/1610_Worse than Dragons.json b/QuestPaths/3.x - Heavensward/MSQ/A3.2-The Dravanian Forelands/1610_Worse than Dragons.json index d1790954..18b0e19b 100644 --- a/QuestPaths/3.x - Heavensward/MSQ/A3.2-The Dravanian Forelands/1610_Worse than Dragons.json +++ b/QuestPaths/3.x - Heavensward/MSQ/A3.2-The Dravanian Forelands/1610_Worse than Dragons.json @@ -35,6 +35,17 @@ { "Sequence": 2, "Steps": [ + { + "DataId": 1011916, + "Position": { + "X": 470.02356, + "Y": -49.89133, + "Z": 20.370789 + }, + "TerritoryId": 398, + "InteractionType": "AcceptQuest", + "PickUpQuestId": 1771 + }, { "Position": { "X": 634.0371, diff --git a/QuestPaths/3.x - Heavensward/MSQ/A3.2-The Dravanian Forelands/1614_A Gnathic Deity.json b/QuestPaths/3.x - Heavensward/MSQ/A3.2-The Dravanian Forelands/1614_A Gnathic Deity.json index 9ee5317f..766d64ac 100644 --- a/QuestPaths/3.x - Heavensward/MSQ/A3.2-The Dravanian Forelands/1614_A Gnathic Deity.json +++ b/QuestPaths/3.x - Heavensward/MSQ/A3.2-The Dravanian Forelands/1614_A Gnathic Deity.json @@ -105,6 +105,17 @@ { "Sequence": 3, "Steps": [ + { + "DataId": 1011929, + "Position": { + "X": 70.81714, + "Y": -49.2083, + "Z": -141.55798 + }, + "TerritoryId": 398, + "InteractionType": "AcceptQuest", + "PickUpQuestId": 1790 + }, { "Position": { "X": 70.535545, diff --git a/QuestPaths/3.x - Heavensward/MSQ/A3.2-The Dravanian Forelands/1616_Lord of the Hive.json b/QuestPaths/3.x - Heavensward/MSQ/A3.2-The Dravanian Forelands/1616_Lord of the Hive.json index cf0d154e..f73fbe9b 100644 --- a/QuestPaths/3.x - Heavensward/MSQ/A3.2-The Dravanian Forelands/1616_Lord of the Hive.json +++ b/QuestPaths/3.x - Heavensward/MSQ/A3.2-The Dravanian Forelands/1616_Lord of the Hive.json @@ -90,13 +90,52 @@ "Sequence": 255, "Steps": [ { + "DataId": 1011916, "Position": { - "X": 123.44939, - "Y": -60.88712, - "Z": -118.79085 + "X": 470.02356, + "Y": -49.89133, + "Z": 20.370789 }, "TerritoryId": 398, - "InteractionType": "WalkTo" + "InteractionType": "AcceptQuest", + "PickUpQuestId": 1797, + "AetheryteShortcut": "The Dravanian Forelands - Tailfeather", + "SkipConditions": { + "AetheryteShortcutIf": { + "QuestsCompleted": [ + 1797 + ] + } + } + }, + { + "DataId": 1011937, + "Position": { + "X": -305.56195, + "Y": 39.04307, + "Z": 22.9953 + }, + "TerritoryId": 398, + "InteractionType": "AcceptQuest", + "PickUpQuestId": 1802, + "AetheryteShortcut": "The Dravanian Forelands - Anyx Trine", + "SkipConditions": { + "AetheryteShortcutIf": { + "QuestsCompleted": [ + 1802 + ] + } + } + }, + { + "Position": { + "X": 22.235865, + "Y": -24.754946, + "Z": -119.65716 + }, + "TerritoryId": 398, + "InteractionType": "WalkTo", + "AetheryteShortcut": "The Dravanian Forelands - Anyx Trine" }, { "DataId": 1014544, @@ -106,7 +145,8 @@ "Z": -142.50409 }, "TerritoryId": 398, - "InteractionType": "CompleteQuest" + "InteractionType": "CompleteQuest", + "DisableNavmesh": 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 449e0aaa..78abed7d 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 @@ -12,7 +12,7 @@ "Y": -50.325172, "Z": -146.95972 }, - "StopDistance": 5, + "StopDistance": 7, "TerritoryId": 398, "InteractionType": "AcceptQuest" } diff --git a/QuestPaths/3.x - Heavensward/MSQ/A3.3-The Churning Mists/1620_Moghan's Trial.json b/QuestPaths/3.x - Heavensward/MSQ/A3.3-The Churning Mists/1620_Moghan's Trial.json index 46aac443..284166c7 100644 --- a/QuestPaths/3.x - Heavensward/MSQ/A3.3-The Churning Mists/1620_Moghan's Trial.json +++ b/QuestPaths/3.x - Heavensward/MSQ/A3.3-The Churning Mists/1620_Moghan's Trial.json @@ -12,7 +12,7 @@ "Y": -69.42934, "Z": 693.5072 }, - "StopDistance": 5, + "StopDistance": 6.5, "TerritoryId": 400, "InteractionType": "AcceptQuest" } diff --git a/QuestPaths/3.x - Heavensward/MSQ/A3.3-The Churning Mists/1621_Mogmug's Trial.json b/QuestPaths/3.x - Heavensward/MSQ/A3.3-The Churning Mists/1621_Mogmug's Trial.json index 89f3196d..3c314d00 100644 --- a/QuestPaths/3.x - Heavensward/MSQ/A3.3-The Churning Mists/1621_Mogmug's Trial.json +++ b/QuestPaths/3.x - Heavensward/MSQ/A3.3-The Churning Mists/1621_Mogmug's Trial.json @@ -31,6 +31,17 @@ "DisableNavmesh": true, "Mount": true }, + { + "DataId": 1012284, + "Position": { + "X": 363.24097, + "Y": -73.25598, + "Z": 678.4314 + }, + "TerritoryId": 400, + "InteractionType": "AcceptQuest", + "PickUpQuestId": 1819 + }, { "Position": { "X": 286.46622, 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 3379cf91..9f9f298d 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 @@ -155,7 +155,7 @@ "Y": -69.42934, "Z": 693.5072 }, - "StopDistance": 5, + "StopDistance": 7, "TerritoryId": 400, "InteractionType": "CompleteQuest" } diff --git a/QuestPaths/3.x - Heavensward/MSQ/A3.3-The Churning Mists/1624_Leaving Moghome.json b/QuestPaths/3.x - Heavensward/MSQ/A3.3-The Churning Mists/1624_Leaving Moghome.json index 13b0b022..6fb671d3 100644 --- a/QuestPaths/3.x - Heavensward/MSQ/A3.3-The Churning Mists/1624_Leaving Moghome.json +++ b/QuestPaths/3.x - Heavensward/MSQ/A3.3-The Churning Mists/1624_Leaving Moghome.json @@ -12,7 +12,7 @@ "Y": -69.42934, "Z": 693.5072 }, - "StopDistance": 5, + "StopDistance": 7, "TerritoryId": 400, "InteractionType": "AcceptQuest" } diff --git a/QuestPaths/3.x - Heavensward/MSQ/A3.3-The Churning Mists/1625_The Road to Zenith.json b/QuestPaths/3.x - Heavensward/MSQ/A3.3-The Churning Mists/1625_The Road to Zenith.json index 9b3ed0f6..5b023de8 100644 --- a/QuestPaths/3.x - Heavensward/MSQ/A3.3-The Churning Mists/1625_The Road to Zenith.json +++ b/QuestPaths/3.x - Heavensward/MSQ/A3.3-The Churning Mists/1625_The Road to Zenith.json @@ -58,6 +58,25 @@ { "Sequence": 255, "Steps": [ + { + "DataId": 1012285, + "Position": { + "X": 247.11987, + "Y": -42.33362, + "Z": 565.3314 + }, + "TerritoryId": 400, + "InteractionType": "AcceptQuest", + "PickUpQuestId": 1823, + "AetheryteShortcut": "The Churning Mists - Moghome", + "SkipConditions": { + "AetheryteShortcutIf": { + "QuestsCompleted": [ + 1823 + ] + } + } + }, { "DataId": 1013202, "Position": { diff --git a/QuestPaths/3.x - Heavensward/MSQ/A3.3-The Churning Mists/1627_Heart of Ice.json b/QuestPaths/3.x - Heavensward/MSQ/A3.3-The Churning Mists/1627_Heart of Ice.json index bfbead82..9712eb9d 100644 --- a/QuestPaths/3.x - Heavensward/MSQ/A3.3-The Churning Mists/1627_Heart of Ice.json +++ b/QuestPaths/3.x - Heavensward/MSQ/A3.3-The Churning Mists/1627_Heart of Ice.json @@ -85,6 +85,7 @@ "Y": 123.72873, "Z": 210.74231 }, + "StopDistance": 7, "TerritoryId": 400, "InteractionType": "CompleteQuest" } diff --git a/QuestPaths/3.x - Heavensward/MSQ/A3.3-The Churning Mists/1628_The Wyrm's Lair.json b/QuestPaths/3.x - Heavensward/MSQ/A3.3-The Churning Mists/1628_The Wyrm's Lair.json index b6e26f82..31d0bfdb 100644 --- a/QuestPaths/3.x - Heavensward/MSQ/A3.3-The Churning Mists/1628_The Wyrm's Lair.json +++ b/QuestPaths/3.x - Heavensward/MSQ/A3.3-The Churning Mists/1628_The Wyrm's Lair.json @@ -12,6 +12,7 @@ "Y": 123.72873, "Z": 210.74231 }, + "StopDistance": 7, "TerritoryId": 400, "InteractionType": "AcceptQuest" } diff --git a/QuestPaths/3.x - Heavensward/MSQ/A3.3-The Churning Mists/1629_New Winds, Old Friends.json b/QuestPaths/3.x - Heavensward/MSQ/A3.3-The Churning Mists/1629_New Winds, Old Friends.json index 61be6d80..1a39a37d 100644 --- a/QuestPaths/3.x - Heavensward/MSQ/A3.3-The Churning Mists/1629_New Winds, Old Friends.json +++ b/QuestPaths/3.x - Heavensward/MSQ/A3.3-The Churning Mists/1629_New Winds, Old Friends.json @@ -20,6 +20,17 @@ { "Sequence": 1, "Steps": [ + { + "DataId": 1013434, + "Position": { + "X": 517.9064, + "Y": -1.1917055, + "Z": -354.63495 + }, + "TerritoryId": 400, + "InteractionType": "AcceptQuest", + "PickUpQuestId": 1835 + }, { "DataId": 1012720, "Position": { diff --git a/QuestPaths/3.x - Heavensward/MSQ/A3.3-The Churning Mists/1630_A General Summons.json b/QuestPaths/3.x - Heavensward/MSQ/A3.3-The Churning Mists/1630_A General Summons.json index 362321a5..61828e2c 100644 --- a/QuestPaths/3.x - Heavensward/MSQ/A3.3-The Churning Mists/1630_A General Summons.json +++ b/QuestPaths/3.x - Heavensward/MSQ/A3.3-The Churning Mists/1630_A General Summons.json @@ -12,6 +12,7 @@ "Y": 16.979584, "Z": -37.521973 }, + "StopDistance": 7, "TerritoryId": 418, "InteractionType": "AcceptQuest" } @@ -58,6 +59,7 @@ "Y": 0, "Z": -3.1281738 }, + "StopDistance": 7, "TerritoryId": 212, "InteractionType": "Interact" } diff --git a/QuestPaths/3.x - Heavensward/MSQ/A3.3-The Churning Mists/1635_The Song Begins.json b/QuestPaths/3.x - Heavensward/MSQ/A3.3-The Churning Mists/1635_The Song Begins.json index 81bf09c6..7e8fcdb3 100644 --- a/QuestPaths/3.x - Heavensward/MSQ/A3.3-The Churning Mists/1635_The Song Begins.json +++ b/QuestPaths/3.x - Heavensward/MSQ/A3.3-The Churning Mists/1635_The Song Begins.json @@ -21,6 +21,25 @@ { "Sequence": 255, "Steps": [ + { + "DataId": 1013420, + "Position": { + "X": -511.46716, + "Y": 50, + "Z": 347.0968 + }, + "TerritoryId": 400, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "The Churning Mists - Zenith", + "PickUpQuestId": 1828, + "SkipConditions": { + "AetheryteShortcutIf": { + "QuestsCompleted": [ + 1828 + ] + } + } + }, { "DataId": 1013172, "Position": { @@ -30,7 +49,6 @@ }, "TerritoryId": 400, "InteractionType": "CompleteQuest", - "AetheryteShortcut": "The Churning Mists - Zenith", "Fly": true } ] diff --git a/QuestPaths/3.x - Heavensward/MSQ/A4-Ishgard/1641_The Sins of Antiquity.json b/QuestPaths/3.x - Heavensward/MSQ/A4-Ishgard/1641_The Sins of Antiquity.json index 8450034b..c586d7d2 100644 --- a/QuestPaths/3.x - Heavensward/MSQ/A4-Ishgard/1641_The Sins of Antiquity.json +++ b/QuestPaths/3.x - Heavensward/MSQ/A4-Ishgard/1641_The Sins of Antiquity.json @@ -21,6 +21,18 @@ { "Sequence": 255, "Steps": [ + { + "DataId": 1014720, + "Position": { + "X": 13.809326, + "Y": 15.96505, + "Z": -13.870483 + }, + "StopDistance": 7, + "TerritoryId": 419, + "InteractionType": "AcceptQuest", + "PickUpQuestId": 1874 + }, { "DataId": 1011223, "Position": { @@ -37,8 +49,9 @@ "Yes": true } ], + "AetheryteShortcut": "Ishgard", "AethernetShortcut": [ - "[Ishgard] The Last Vigil", + "[Ishgard] Aetheryte Plaza", "[Ishgard] The Forgotten Knight" ] }, diff --git a/QuestPaths/3.x - Heavensward/MSQ/A5-Sea of Clouds/1644_Familiar Faces.json b/QuestPaths/3.x - Heavensward/MSQ/A5-Sea of Clouds/1644_Familiar Faces.json index 822f3dde..c65d6815 100644 --- a/QuestPaths/3.x - Heavensward/MSQ/A5-Sea of Clouds/1644_Familiar Faces.json +++ b/QuestPaths/3.x - Heavensward/MSQ/A5-Sea of Clouds/1644_Familiar Faces.json @@ -38,7 +38,7 @@ "Z": 113.54166 }, "TerritoryId": 401, - "InteractionType": "SinglePlayerDuty", + "InteractionType": "Emote", "Emote": "lookout", "StopDistance": 0.25 } @@ -54,10 +54,9 @@ "Z": 77.39858 }, "TerritoryId": 401, - "InteractionType": "Emote", + "InteractionType": "SinglePlayerDuty", "Emote": "lookout", - "StopDistance": 0.25, - "Comment": "Solo Duty triggered by emoting?" + "StopDistance": 0.25 } ] }, diff --git a/QuestPaths/3.x - Heavensward/MSQ/A5-Sea of Clouds/1647_Bolt, Chain, and Island.json b/QuestPaths/3.x - Heavensward/MSQ/A5-Sea of Clouds/1647_Bolt, Chain, and Island.json index e83bee3d..25028e99 100644 --- a/QuestPaths/3.x - Heavensward/MSQ/A5-Sea of Clouds/1647_Bolt, Chain, and Island.json +++ b/QuestPaths/3.x - Heavensward/MSQ/A5-Sea of Clouds/1647_Bolt, Chain, and Island.json @@ -20,6 +20,17 @@ { "Sequence": 1, "Steps": [ + { + "DataId": 1012069, + "Position": { + "X": -647.0283, + "Y": -51.05719, + "Z": -417.74628 + }, + "TerritoryId": 401, + "InteractionType": "AcceptQuest", + "PickUpQuestId": 1909 + }, { "DataId": 1012064, "Position": { @@ -35,6 +46,17 @@ { "Sequence": 2, "Steps": [ + { + "DataId": 1012068, + "Position": { + "X": -597.0398, + "Y": -51.05185, + "Z": -387.0451 + }, + "TerritoryId": 401, + "InteractionType": "AcceptQuest", + "PickUpQuestId": 1910 + }, { "DataId": 2006231, "Position": { @@ -68,6 +90,7 @@ "Y": -14.730623, "Z": -537.56006 }, + "StopDistance": 7, "TerritoryId": 401, "InteractionType": "Interact", "DialogueChoices": [ @@ -100,7 +123,7 @@ "Y": -14.153766, "Z": -543.0228 }, - "StopDistance": 5, + "StopDistance": 7, "TerritoryId": 401, "InteractionType": "CompleteQuest" } diff --git a/QuestPaths/3.x - Heavensward/MSQ/A5-Sea of Clouds/1648_A Difference of Opinion.json b/QuestPaths/3.x - Heavensward/MSQ/A5-Sea of Clouds/1648_A Difference of Opinion.json index f4924843..27c692ab 100644 --- a/QuestPaths/3.x - Heavensward/MSQ/A5-Sea of Clouds/1648_A Difference of Opinion.json +++ b/QuestPaths/3.x - Heavensward/MSQ/A5-Sea of Clouds/1648_A Difference of Opinion.json @@ -12,7 +12,7 @@ "Y": -14.153766, "Z": -543.0228 }, - "StopDistance": 5, + "StopDistance": 7, "TerritoryId": 401, "InteractionType": "AcceptQuest" } diff --git a/QuestPaths/3.x - Heavensward/MSQ/A6-The Dravanian Hinterlands/1653_Tataru's Surprise.json b/QuestPaths/3.x - Heavensward/MSQ/A6-The Dravanian Hinterlands/1653_Tataru's Surprise.json index 9285d55a..96b7dec9 100644 --- a/QuestPaths/3.x - Heavensward/MSQ/A6-The Dravanian Hinterlands/1653_Tataru's Surprise.json +++ b/QuestPaths/3.x - Heavensward/MSQ/A6-The Dravanian Hinterlands/1653_Tataru's Surprise.json @@ -21,6 +21,15 @@ { "Sequence": 1, "Steps": [ + { + "Position": { + "X": 43.620056, + "Y": -7.9655867, + "Z": 103.63884 + }, + "TerritoryId": 132, + "InteractionType": "WalkTo" + }, { "DataId": 1000691, "Position": { diff --git a/QuestPaths/3.x - Heavensward/MSQ/A6-The Dravanian Hinterlands/1654_Onward to Sharlayan.json b/QuestPaths/3.x - Heavensward/MSQ/A6-The Dravanian Hinterlands/1654_Onward to Sharlayan.json index 92e5a36f..9d70443d 100644 --- a/QuestPaths/3.x - Heavensward/MSQ/A6-The Dravanian Hinterlands/1654_Onward to Sharlayan.json +++ b/QuestPaths/3.x - Heavensward/MSQ/A6-The Dravanian Hinterlands/1654_Onward to Sharlayan.json @@ -45,7 +45,8 @@ }, "TerritoryId": 398, "InteractionType": "CompleteQuest", - "AetheryteShortcut": "The Dravanian Forelands - Tailfeather" + "AetheryteShortcut": "The Dravanian Forelands - Tailfeather", + "Fly": true } ] } diff --git a/QuestPaths/3.x - Heavensward/MSQ/A6-The Dravanian Hinterlands/1656_Golems Begone.json b/QuestPaths/3.x - Heavensward/MSQ/A6-The Dravanian Hinterlands/1656_Golems Begone.json index 28768729..55c9f0b5 100644 --- a/QuestPaths/3.x - Heavensward/MSQ/A6-The Dravanian Hinterlands/1656_Golems Begone.json +++ b/QuestPaths/3.x - Heavensward/MSQ/A6-The Dravanian Hinterlands/1656_Golems Begone.json @@ -27,6 +27,7 @@ "Y": 205.62819, "Z": 26.901611 }, + "StopDistance": 7, "TerritoryId": 478, "InteractionType": "Interact" } @@ -47,7 +48,15 @@ "$": "0 0 0 0 0 0 -> 1 0 0 0 0 64", "ChatMessage": { "Key": "TEXT_HEAVNA607_01656_SAYTODO_000" - } + }, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] }, { "DataId": 1012413, @@ -60,7 +69,15 @@ "InteractionType": "Say", "ChatMessage": { "Key": "TEXT_HEAVNA607_01656_SAYTODO_000" - } + }, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] } ] }, diff --git a/QuestPaths/3.x - Heavensward/MSQ/A6-The Dravanian Hinterlands/1657_An Illuminati Incident.json b/QuestPaths/3.x - Heavensward/MSQ/A6-The Dravanian Hinterlands/1657_An Illuminati Incident.json index f8924a38..9f25ebda 100644 --- a/QuestPaths/3.x - Heavensward/MSQ/A6-The Dravanian Hinterlands/1657_An Illuminati Incident.json +++ b/QuestPaths/3.x - Heavensward/MSQ/A6-The Dravanian Hinterlands/1657_An Illuminati Incident.json @@ -20,6 +20,21 @@ { "Sequence": 1, "Steps": [ + { + "DataId": 1012287, + "Position": { + "X": -28.397034, + "Y": 100.969696, + "Z": -186.4195 + }, + "TerritoryId": 399, + "InteractionType": "AcceptQuest", + "PickUpQuestId": 1936, + "AethernetShortcut": [ + "[Idyllshire] Aetheryte Plaza", + "[Idyllshire] Epilogue Gate (Eastern Hinterlands)" + ] + }, { "DataId": 1012416, "Position": { diff --git a/QuestPaths/3.x - Heavensward/MSQ/A6-The Dravanian Hinterlands/1658_Leaving Idyllshire.json b/QuestPaths/3.x - Heavensward/MSQ/A6-The Dravanian Hinterlands/1658_Leaving Idyllshire.json index 973360b2..d4516d63 100644 --- a/QuestPaths/3.x - Heavensward/MSQ/A6-The Dravanian Hinterlands/1658_Leaving Idyllshire.json +++ b/QuestPaths/3.x - Heavensward/MSQ/A6-The Dravanian Hinterlands/1658_Leaving Idyllshire.json @@ -20,6 +20,17 @@ { "Sequence": 1, "Steps": [ + { + "DataId": 1012102, + "Position": { + "X": 72.40405, + "Y": 205.6815, + "Z": 31.631958 + }, + "TerritoryId": 478, + "InteractionType": "AcceptQuest", + "PickUpQuestId": 1945 + }, { "DataId": 1012419, "Position": { diff --git a/QuestPaths/3.x - Heavensward/MSQ/A6-The Dravanian Hinterlands/1659_Matoya's Cave.json b/QuestPaths/3.x - Heavensward/MSQ/A6-The Dravanian Hinterlands/1659_Matoya's Cave.json index 3c27ba55..c13a7192 100644 --- a/QuestPaths/3.x - Heavensward/MSQ/A6-The Dravanian Hinterlands/1659_Matoya's Cave.json +++ b/QuestPaths/3.x - Heavensward/MSQ/A6-The Dravanian Hinterlands/1659_Matoya's Cave.json @@ -21,6 +21,17 @@ { "Sequence": 1, "Steps": [ + { + "DataId": 1012133, + "Position": { + "X": -26.840637, + "Y": 206.49944, + "Z": 28.67163 + }, + "TerritoryId": 478, + "InteractionType": "AcceptQuest", + "PickUpQuestId": 1963 + }, { "Position": { "X": 71.86769, @@ -29,18 +40,15 @@ }, "TerritoryId": 478, "InteractionType": "WalkTo", - "TargetTerritoryId": 399 - }, - { - "DataId": 2006210, - "Position": { - "X": -487.48004, - "Y": 144.64026, - "Z": -285.359 + "TargetTerritoryId": 399, + "SkipConditions": { + "StepIf": { + "InTerritory": [ + 399 + ] + } }, - "TerritoryId": 399, - "InteractionType": "AttuneAetherCurrent", - "AetherCurrentId": 2818088 + "$": "Skipped if already in the Hinterlands, since 'Taking Stock' already leaves you closer to the entrance to Matoya's cave" }, { "DataId": 2006214, 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 1a656cdf..cf7fe15e 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 @@ -44,7 +44,7 @@ "Y": 38.43, "Z": 3.5552979 }, - "StopDistance": 7, + "StopDistance": 6, "TerritoryId": 463, "InteractionType": "Interact" } @@ -53,6 +53,17 @@ { "Sequence": 3, "Steps": [ + { + "DataId": 1012141, + "Position": { + "X": 35.690796, + "Y": 38.43, + "Z": 12.985352 + }, + "TerritoryId": 463, + "InteractionType": "AcceptQuest", + "PickUpQuestId": 1966 + }, { "DataId": 2005337, "Position": { @@ -114,7 +125,8 @@ }, "TerritoryId": 399, "InteractionType": "WalkTo", - "DisableNavmesh": true + "DisableNavmesh": true, + "Mount": true }, { "DataId": 2005336, diff --git a/QuestPaths/3.x - Heavensward/MSQ/A6-The Dravanian Hinterlands/1662_Hour of Departure.json b/QuestPaths/3.x - Heavensward/MSQ/A6-The Dravanian Hinterlands/1662_Hour of Departure.json index ddf0e6ea..85aaee24 100644 --- a/QuestPaths/3.x - Heavensward/MSQ/A6-The Dravanian Hinterlands/1662_Hour of Departure.json +++ b/QuestPaths/3.x - Heavensward/MSQ/A6-The Dravanian Hinterlands/1662_Hour of Departure.json @@ -28,6 +28,7 @@ "Y": -14.52896, "Z": 41.153564 }, + "StopDistance": 7, "TerritoryId": 419, "InteractionType": "Interact" } diff --git a/QuestPaths/3.x - Heavensward/MSQ/A7-Azys Lla/1663_The First Flight of the Excelsior.json b/QuestPaths/3.x - Heavensward/MSQ/A7-Azys Lla/1663_The First Flight of the Excelsior.json index 910a94e5..d5325ed2 100644 --- a/QuestPaths/3.x - Heavensward/MSQ/A7-Azys Lla/1663_The First Flight of the Excelsior.json +++ b/QuestPaths/3.x - Heavensward/MSQ/A7-Azys Lla/1663_The First Flight of the Excelsior.json @@ -61,7 +61,8 @@ "Z": -659.2356 }, "TerritoryId": 402, - "InteractionType": "Interact" + "InteractionType": "Interact", + "DisableNavmesh": true } ] }, diff --git a/QuestPaths/3.x - Heavensward/MSQ/A7-Azys Lla/1666_Chimerical Maintenance.json b/QuestPaths/3.x - Heavensward/MSQ/A7-Azys Lla/1666_Chimerical Maintenance.json index f1727762..06fed283 100644 --- a/QuestPaths/3.x - Heavensward/MSQ/A7-Azys Lla/1666_Chimerical Maintenance.json +++ b/QuestPaths/3.x - Heavensward/MSQ/A7-Azys Lla/1666_Chimerical Maintenance.json @@ -35,6 +35,15 @@ { "Sequence": 2, "Steps": [ + { + "Position": { + "X": 642.1002, + "Y": -32.964188, + "Z": -532.8383 + }, + "TerritoryId": 402, + "InteractionType": "WalkTo" + }, { "DataId": 2005568, "Position": { From 86f764aca33b72de0e3fce29788f425e85764eb3 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sat, 31 Aug 2024 22:31:06 +0200 Subject: [PATCH 153/450] Reduce the max melee distance for RSR --- .../Controller/CombatModules/RotationSolverRebornModule.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Questionable/Controller/CombatModules/RotationSolverRebornModule.cs b/Questionable/Controller/CombatModules/RotationSolverRebornModule.cs index 0af5fda4..8d0484d6 100644 --- a/Questionable/Controller/CombatModules/RotationSolverRebornModule.cs +++ b/Questionable/Controller/CombatModules/RotationSolverRebornModule.cs @@ -85,7 +85,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 : 3f; + float maxDistance = player.ClassJob.GameData?.Role is 3 or 4 ? 20f : 2.9f; if (actualDistance - hitboxOffset >= maxDistance) { if (actualDistance - hitboxOffset <= 5) From d7aa4243d7396a591a8c858f9307017c7e351eb0 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sun, 1 Sep 2024 14:21:26 +0200 Subject: [PATCH 154/450] Add EnemySpawnType - AfterAction --- QuestPaths/quest-v1.json | 1 + .../Questing/Converter/EnemySpawnTypeConverter.cs | 1 + Questionable.Model/Questing/EEnemySpawnType.cs | 1 + .../Controller/Steps/Interactions/Action.cs | 9 +++++++-- .../Controller/Steps/Interactions/Combat.cs | 14 ++++++++++++++ 5 files changed, 24 insertions(+), 2 deletions(-) diff --git a/QuestPaths/quest-v1.json b/QuestPaths/quest-v1.json index c7ebd5fa..69b6c854 100644 --- a/QuestPaths/quest-v1.json +++ b/QuestPaths/quest-v1.json @@ -584,6 +584,7 @@ "AutoOnEnterArea", "AfterInteraction", "AfterItemUse", + "AfterAction", "OverworldEnemies" ] }, diff --git a/Questionable.Model/Questing/Converter/EnemySpawnTypeConverter.cs b/Questionable.Model/Questing/Converter/EnemySpawnTypeConverter.cs index e97faa4f..d37c5b7c 100644 --- a/Questionable.Model/Questing/Converter/EnemySpawnTypeConverter.cs +++ b/Questionable.Model/Questing/Converter/EnemySpawnTypeConverter.cs @@ -9,6 +9,7 @@ public sealed class EnemySpawnTypeConverter() : EnumConverter(V { { EEnemySpawnType.AfterInteraction, "AfterInteraction" }, { EEnemySpawnType.AfterItemUse, "AfterItemUse" }, + { EEnemySpawnType.AfterAction, "AfterAction" }, { EEnemySpawnType.AutoOnEnterArea, "AutoOnEnterArea" }, { EEnemySpawnType.OverworldEnemies, "OverworldEnemies" }, }; diff --git a/Questionable.Model/Questing/EEnemySpawnType.cs b/Questionable.Model/Questing/EEnemySpawnType.cs index 3c42b9f4..f119ea08 100644 --- a/Questionable.Model/Questing/EEnemySpawnType.cs +++ b/Questionable.Model/Questing/EEnemySpawnType.cs @@ -9,6 +9,7 @@ public enum EEnemySpawnType None = 0, AfterInteraction, AfterItemUse, + AfterAction, AutoOnEnterArea, OverworldEnemies, } diff --git a/Questionable/Controller/Steps/Interactions/Action.cs b/Questionable/Controller/Steps/Interactions/Action.cs index a91983b3..6d4da220 100644 --- a/Questionable/Controller/Steps/Interactions/Action.cs +++ b/Questionable/Controller/Steps/Interactions/Action.cs @@ -24,13 +24,18 @@ internal static class Action ArgumentNullException.ThrowIfNull(step.Action); - var task = new UseOnObject(step.DataId, step.Action.Value, gameFunctions, - loggerFactory.CreateLogger()); + var task = OnObject(step.DataId, step.Action.Value); if (step.Action.Value.RequiresMount()) return [task]; else return [mountFactory.Unmount(), task]; } + + public ITask OnObject(uint? dataId, EAction action) + { + return new UseOnObject(dataId, action, gameFunctions, + loggerFactory.CreateLogger()); + } } private sealed class UseOnObject( diff --git a/Questionable/Controller/Steps/Interactions/Combat.cs b/Questionable/Controller/Steps/Interactions/Combat.cs index 39909c56..6657da33 100644 --- a/Questionable/Controller/Steps/Interactions/Combat.cs +++ b/Questionable/Controller/Steps/Interactions/Combat.cs @@ -18,6 +18,7 @@ internal static class Combat Interact.Factory interactFactory, Mount.Factory mountFactory, UseItem.Factory useItemFactory, + Action.Factory actionFactory, QuestFunctions questFunctions) : ITaskFactory { public IEnumerable CreateAllTasks(Quest quest, QuestSequence sequence, QuestStep step) @@ -58,6 +59,19 @@ internal static class Combat break; } + case EEnemySpawnType.AfterAction: + { + ArgumentNullException.ThrowIfNull(step.DataId); + ArgumentNullException.ThrowIfNull(step.Action); + + if (!step.Action.Value.RequiresMount()) + yield return mountFactory.Unmount(); + yield return actionFactory.OnObject(step.DataId.Value, step.Action.Value); + yield return new WaitAtEnd.WaitDelay(TimeSpan.FromSeconds(1)); + yield return CreateTask(quest, sequence, step); + break; + } ; + case EEnemySpawnType.AutoOnEnterArea: if (step.CombatDelaySecondsAtStart == null) yield return new WaitAtEnd.WaitDelay(TimeSpan.FromSeconds(1)); From 7f348207d3019860f1fed47abe2e620a425ff8d4 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sun, 1 Sep 2024 15:14:28 +0200 Subject: [PATCH 155/450] Add experimental combat module for Magiteknical Failure (aether current quest) --- .../2639_Magiteknical Failure.json | 6 +- Questionable.Model/Questing/EAction.cs | 2 + Questionable/Controller/CombatController.cs | 3 + .../Controller/CombatModules/ICombatModule.cs | 2 + .../CombatModules/Mount128Module.cs | 51 +++++++++++++++++ .../RotationSolverRebornModule.cs | 2 + Questionable/Controller/CommandHandler.cs | 56 ++++++++++++++----- .../Controller/Steps/Interactions/Combat.cs | 10 ++-- Questionable/Functions/GameFunctions.cs | 18 ++++-- Questionable/QuestionablePlugin.cs | 1 + 10 files changed, 125 insertions(+), 26 deletions(-) create mode 100644 Questionable/Controller/CombatModules/Mount128Module.cs diff --git a/QuestPaths/4.x - Stormblood/Aether Currents/The Fringes/2639_Magiteknical Failure.json b/QuestPaths/4.x - Stormblood/Aether Currents/The Fringes/2639_Magiteknical Failure.json index 7f1657a2..ce26036a 100644 --- a/QuestPaths/4.x - Stormblood/Aether Currents/The Fringes/2639_Magiteknical Failure.json +++ b/QuestPaths/4.x - Stormblood/Aether Currents/The Fringes/2639_Magiteknical Failure.json @@ -49,8 +49,7 @@ }, "StopDistance": 0.5, "TerritoryId": 612, - "InteractionType": "Instruction", - "Comment": "Manual combat", + "InteractionType": "Combat", "EnemySpawnType": "AutoOnEnterArea", "KillEnemyDataIds": [ 7504 @@ -69,8 +68,7 @@ }, "StopDistance": 2, "TerritoryId": 612, - "InteractionType": "Instruction", - "Comment": "Manual combat", + "InteractionType": "Combat", "EnemySpawnType": "AutoOnEnterArea", "KillEnemyDataIds": [ 7505 diff --git a/Questionable.Model/Questing/EAction.cs b/Questionable.Model/Questing/EAction.cs index 5ca20daf..89605e87 100644 --- a/Questionable.Model/Questing/EAction.cs +++ b/Questionable.Model/Questing/EAction.cs @@ -15,6 +15,8 @@ public enum EAction BuffetSanuwa = 4931, BuffetGriffin = 4583, Fumigate = 5872, + MagitekPulse = 8624, + MagitekThunder = 8625, SiphonSnout = 18187, Cannonfire = 20121, RedGulal = 29382, diff --git a/Questionable/Controller/CombatController.cs b/Questionable/Controller/CombatController.cs index 2a7c08d9..d1ff66be 100644 --- a/Questionable/Controller/CombatController.cs +++ b/Questionable/Controller/CombatController.cs @@ -191,6 +191,9 @@ internal sealed class CombatController : IDisposable { if (gameObject is IBattleNpc battleNpc) { + if (_currentFight != null && !_currentFight.Module.CanAttack(battleNpc)) + return 0; + // TODO this works as somewhat of a delay between killing enemies if certain items/flags are checked // but also delays killing the next enemy a little if (_currentFight == null || _currentFight.Data.SpawnType != EEnemySpawnType.OverworldEnemies || diff --git a/Questionable/Controller/CombatModules/ICombatModule.cs b/Questionable/Controller/CombatModules/ICombatModule.cs index 1aec57cc..542e2d6f 100644 --- a/Questionable/Controller/CombatModules/ICombatModule.cs +++ b/Questionable/Controller/CombatModules/ICombatModule.cs @@ -13,4 +13,6 @@ internal interface ICombatModule void Update(IGameObject nextTarget); void MoveToTarget(IGameObject nextTarget); + + bool CanAttack(IBattleNpc target); } diff --git a/Questionable/Controller/CombatModules/Mount128Module.cs b/Questionable/Controller/CombatModules/Mount128Module.cs new file mode 100644 index 00000000..39ef13cc --- /dev/null +++ b/Questionable/Controller/CombatModules/Mount128Module.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 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) + { + _movementController = movementController; + _gameFunctions = gameFunctions; + } + + public bool IsLoaded => _gameFunctions.GetMountId() == MountId; + + public bool Start() => 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 7504 or 7505; +} diff --git a/Questionable/Controller/CombatModules/RotationSolverRebornModule.cs b/Questionable/Controller/CombatModules/RotationSolverRebornModule.cs index 8d0484d6..72e13ae7 100644 --- a/Questionable/Controller/CombatModules/RotationSolverRebornModule.cs +++ b/Questionable/Controller/CombatModules/RotationSolverRebornModule.cs @@ -119,6 +119,8 @@ internal sealed class RotationSolverRebornModule : ICombatModule, IDisposable } } + public bool CanAttack(IBattleNpc target) => true; + public void Dispose() => Stop(); [PublicAPI] diff --git a/Questionable/Controller/CommandHandler.cs b/Questionable/Controller/CommandHandler.cs index dbf8ade5..776f615a 100644 --- a/Questionable/Controller/CommandHandler.cs +++ b/Questionable/Controller/CommandHandler.cs @@ -3,16 +3,20 @@ using System.Linq; using Dalamud.Game.ClientState.Objects; using Dalamud.Game.Command; using Dalamud.Plugin.Services; +using Lumina.Excel.GeneratedSheets; using Questionable.Functions; -using Questionable.Model; using Questionable.Model.Questing; using Questionable.Windows; using Questionable.Windows.QuestComponents; +using Quest = Questionable.Model.Quest; namespace Questionable.Controller; internal sealed class CommandHandler : IDisposable { + private const string MessageTag = "Questionable"; + private const ushort TagColor = 576; + private readonly ICommandManager _commandManager; private readonly IChatGui _chatGui; private readonly QuestController _questController; @@ -24,6 +28,8 @@ internal sealed class CommandHandler : IDisposable private readonly QuestSelectionWindow _questSelectionWindow; private readonly ITargetManager _targetManager; private readonly QuestFunctions _questFunctions; + private readonly GameFunctions _gameFunctions; + private readonly IDataManager _dataManager; public CommandHandler( ICommandManager commandManager, @@ -36,7 +42,9 @@ internal sealed class CommandHandler : IDisposable QuestWindow questWindow, QuestSelectionWindow questSelectionWindow, ITargetManager targetManager, - QuestFunctions questFunctions) + QuestFunctions questFunctions, + GameFunctions gameFunctions, + IDataManager dataManager) { _commandManager = commandManager; _chatGui = chatGui; @@ -49,6 +57,8 @@ internal sealed class CommandHandler : IDisposable _questSelectionWindow = questSelectionWindow; _targetManager = targetManager; _questFunctions = questFunctions; + _gameFunctions = gameFunctions; + _dataManager = dataManager; _commandManager.AddHandler("/qst", new CommandInfo(ProcessCommand) { @@ -108,12 +118,16 @@ internal sealed class CommandHandler : IDisposable _questSelectionWindow.OpenForCurrentZone(); break; + case "mountid": + PrintMountId(); + break; + case "": _questWindow.Toggle(); break; default: - _chatGui.PrintError($"Unknown subcommand {parts[0]}", "Questionable"); + _chatGui.PrintError($"Unknown subcommand {parts[0]}", MessageTag, TagColor); break; } } @@ -122,7 +136,7 @@ internal sealed class CommandHandler : IDisposable { if (!_debugOverlay.DrawConditions()) { - _chatGui.PrintError("[Questionable] You don't have the debug overlay enabled."); + _chatGui.PrintError("You don't have the debug overlay enabled.", MessageTag, TagColor); return; } @@ -131,15 +145,15 @@ internal sealed class CommandHandler : IDisposable if (_questRegistry.TryGetQuest(questId, out Quest? quest)) { _debugOverlay.HighlightedQuest = quest.Id; - _chatGui.Print($"[Questionable] Set highlighted quest to {questId} ({quest.Info.Name})."); + _chatGui.Print($"Set highlighted quest to {questId} ({quest.Info.Name}).", MessageTag, TagColor); } else - _chatGui.PrintError($"[Questionable] Unknown quest {questId}."); + _chatGui.PrintError($"Unknown quest {questId}.", MessageTag, TagColor); } else { _debugOverlay.HighlightedQuest = null; - _chatGui.Print("[Questionable] Cleared highlighted quest."); + _chatGui.Print("Cleared highlighted quest.", MessageTag, TagColor); } } @@ -148,21 +162,21 @@ internal sealed class CommandHandler : IDisposable if (arguments.Length >= 1 && ElementId.TryFromString(arguments[0], out ElementId? questId) && questId != null) { if (_questFunctions.IsQuestLocked(questId)) - _chatGui.PrintError($"[Questionable] Quest {questId} is locked."); + _chatGui.PrintError($"Quest {questId} is locked.", MessageTag, TagColor); else if (_questRegistry.TryGetQuest(questId, out Quest? quest)) { _questController.SetNextQuest(quest); - _chatGui.Print($"[Questionable] Set next quest to {questId} ({quest.Info.Name})."); + _chatGui.Print($"Set next quest to {questId} ({quest.Info.Name}).", MessageTag, TagColor); } else { - _chatGui.PrintError($"[Questionable] Unknown quest {questId}."); + _chatGui.PrintError($"Unknown quest {questId}.", MessageTag, TagColor); } } else { _questController.SetNextQuest(null); - _chatGui.Print("[Questionable] Cleared next quest."); + _chatGui.Print("Cleared next quest.", MessageTag, TagColor); } } @@ -173,18 +187,32 @@ internal sealed class CommandHandler : IDisposable if (_questRegistry.TryGetQuest(questId, out Quest? quest)) { _questController.SimulateQuest(quest); - _chatGui.Print($"[Questionable] Simulating quest {questId} ({quest.Info.Name})."); + _chatGui.Print($"Simulating quest {questId} ({quest.Info.Name}).", MessageTag, TagColor); } else - _chatGui.PrintError($"[Questionable] Unknown quest {questId}."); + _chatGui.PrintError($"Unknown quest {questId}.", MessageTag, TagColor); } else { _questController.SimulateQuest(null); - _chatGui.Print("[Questionable] Cleared simulated quest."); + _chatGui.Print("Cleared simulated quest.", MessageTag, TagColor); } } + private void PrintMountId() + { + ushort? mountId = _gameFunctions.GetMountId(); + if (mountId != null) + { + var row = _dataManager.GetExcelSheet()!.GetRow(mountId.Value); + _chatGui.Print( + $"Mount ID: {mountId}, Name: {row?.Singular}, Obtainable: {(row?.Order == -1 ? "No" : "Yes")}", + MessageTag, TagColor); + } + else + _chatGui.Print("You are not mounted.", MessageTag, TagColor); + } + public void Dispose() { _commandManager.RemoveHandler("/qst"); diff --git a/Questionable/Controller/Steps/Interactions/Combat.cs b/Questionable/Controller/Steps/Interactions/Combat.cs index 6657da33..eab500dd 100644 --- a/Questionable/Controller/Steps/Interactions/Combat.cs +++ b/Questionable/Controller/Steps/Interactions/Combat.cs @@ -1,7 +1,7 @@ using System; using System.Collections.Generic; using System.Linq; -using Microsoft.Extensions.DependencyInjection; +using Questionable.Controller.CombatModules; using Questionable.Controller.Steps.Common; using Questionable.Controller.Steps.Shared; using Questionable.Controller.Utils; @@ -19,7 +19,8 @@ internal static class Combat Mount.Factory mountFactory, UseItem.Factory useItemFactory, Action.Factory actionFactory, - QuestFunctions questFunctions) : ITaskFactory + QuestFunctions questFunctions, + GameFunctions gameFunctions) : ITaskFactory { public IEnumerable CreateAllTasks(Quest quest, QuestSequence sequence, QuestStep step) { @@ -28,7 +29,8 @@ internal static class Combat ArgumentNullException.ThrowIfNull(step.EnemySpawnType); - yield return mountFactory.Unmount(); + if (gameFunctions.GetMountId() != Mount128Module.MountId) + yield return mountFactory.Unmount(); if (step.CombatDelaySecondsAtStart != null) { @@ -70,7 +72,7 @@ internal static class Combat yield return new WaitAtEnd.WaitDelay(TimeSpan.FromSeconds(1)); yield return CreateTask(quest, sequence, step); break; - } ; + } case EEnemySpawnType.AutoOnEnterArea: if (step.CombatDelaySecondsAtStart == null) diff --git a/Questionable/Functions/GameFunctions.cs b/Questionable/Functions/GameFunctions.cs index 51795705..90703500 100644 --- a/Questionable/Functions/GameFunctions.cs +++ b/Questionable/Functions/GameFunctions.cs @@ -81,8 +81,9 @@ internal sealed unsafe class GameFunctions if (_questFunctions.IsQuestAccepted(new QuestId(3304)) && _condition[ConditionFlag.Mounted]) { - BattleChara* battleChara = (BattleChara*)(_clientState.LocalPlayer?.Address ?? 0); - if (battleChara != null && battleChara->Mount.MountId == 198) // special quest amaro, not the normal one + // special quest amaro, not the normal one + // TODO Check if this also applies to beast tribe mounts + if (GetMountId() == 198) return true; } @@ -92,6 +93,15 @@ internal sealed unsafe class GameFunctions playerState->IsAetherCurrentZoneComplete(aetherCurrentCompFlgSet); } + public ushort? GetMountId() + { + BattleChara* battleChara = (BattleChara*)(_clientState.LocalPlayer?.Address ?? 0); + if (battleChara != null && battleChara->Mount.MountId != 0) + return battleChara->Mount.MountId; + else + return null; + } + public bool IsFlyingUnlockedInCurrentZone() => IsFlyingUnlocked(_clientState.TerritoryType); public bool IsAetherCurrentUnlocked(uint aetherCurrentId) @@ -210,10 +220,10 @@ internal sealed unsafe class GameFunctions return false; } - public bool UseAction(IGameObject gameObject, EAction action) + public bool UseAction(IGameObject gameObject, EAction action, bool checkCanUse = true) { var actionRow = _dataManager.GetExcelSheet()!.GetRow((uint)action)!; - if (!ActionManager.CanUseActionOnTarget((uint)action, (GameObject*)gameObject.Address)) + if (checkCanUse && !ActionManager.CanUseActionOnTarget((uint)action, (GameObject*)gameObject.Address)) { _logger.LogWarning("Can not use action {Action} on target {Target}", action, gameObject); return false; diff --git a/Questionable/QuestionablePlugin.cs b/Questionable/QuestionablePlugin.cs index d1a5b543..88ebc1b3 100644 --- a/Questionable/QuestionablePlugin.cs +++ b/Questionable/QuestionablePlugin.cs @@ -185,6 +185,7 @@ public sealed class QuestionablePlugin : IDalamudPlugin serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); + serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); } From 7c62a85a8a342f70d0a7620b44ae58cceb297b78 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sun, 1 Sep 2024 15:44:59 +0200 Subject: [PATCH 156/450] Make sequence 0 non-interruptible, as you otherwise get quests with a lower priority than the MSQ --- Questionable/Controller/QuestController.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Questionable/Controller/QuestController.cs b/Questionable/Controller/QuestController.cs index 70512f8a..2fcef5eb 100644 --- a/Questionable/Controller/QuestController.cs +++ b/Questionable/Controller/QuestController.cs @@ -724,7 +724,7 @@ internal sealed class QuestController : MiniTaskController, IDi return false; var (currentQuest, type) = details.Value; - if (type != ECurrentQuestType.Normal) + if (type != ECurrentQuestType.Normal || currentQuest.Sequence == 0) return false; if (currentQuest.Quest.Info.AlliedSociety != EAlliedSociety.None) From 272050d11b0483aba3550e32f2c9989c6b5c8ed3 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sun, 1 Sep 2024 20:35:50 +0200 Subject: [PATCH 157/450] Don't allow debug overlay to be closed via ESC --- Questionable/Windows/DebugOverlay.cs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Questionable/Windows/DebugOverlay.cs b/Questionable/Windows/DebugOverlay.cs index e629fe01..c41daf60 100644 --- a/Questionable/Windows/DebugOverlay.cs +++ b/Questionable/Windows/DebugOverlay.cs @@ -45,6 +45,8 @@ internal sealed class DebugOverlay : Window Size = ImGui.GetIO().DisplaySize; SizeCondition = ImGuiCond.Always; IsOpen = true; + ShowCloseButton = false; + RespectCloseHotkey = false; } public ElementId? HighlightedQuest { get; set; } From e8b912411968fd8c3c3e6eb1aad5b17c3f52da2a Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sun, 1 Sep 2024 20:36:06 +0200 Subject: [PATCH 158/450] Code cleanup --- Questionable/Functions/QuestFunctions.cs | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/Questionable/Functions/QuestFunctions.cs b/Questionable/Functions/QuestFunctions.cs index b36e7c36..e346822d 100644 --- a/Questionable/Functions/QuestFunctions.cs +++ b/Questionable/Functions/QuestFunctions.cs @@ -135,17 +135,14 @@ internal sealed unsafe class QuestFunctions currentQuest = new QuestId(questManager->NormalQuests[trackedQuest.Index].QuestId); if (_questRegistry.IsKnownQuest(currentQuest)) return (currentQuest, QuestManager.GetQuestSequence(currentQuest.Value)); - break; + continue; case 2: // leve currentQuest = new LeveId(questManager->LeveQuests[trackedQuest.Index].LeveId); if (_questRegistry.IsKnownQuest(currentQuest)) return (currentQuest, questManager->GetLeveQuestById(currentQuest.Value)->Sequence); - break; + continue; } - - if (_questRegistry.IsKnownQuest(currentQuest)) - return (currentQuest, QuestManager.GetQuestSequence(currentQuest.Value)); } ElementId? priorityQuest = GetNextPriorityQuestThatCanBeAccepted(); From 9d41101d2614372e7ef67be51474246fe02f0602 Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Sat, 31 Aug 2024 01:10:46 +0800 Subject: [PATCH 159/450] Updated and enabled Omicron daily quest 'I'll Fish It Myself' --- .../Dailies/4617_I'll Fish It Myself.json | 65 +++++++++++++++++-- 1 file changed, 61 insertions(+), 4 deletions(-) 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 368803c3..30a6cf2f 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 @@ -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,9 +17,66 @@ } ] }, + { + "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": "None", + "RequiredGatheredItems": [ + { + "QuestAcceptedAsClass": "Miner", + "ItemId": 38287, + "ItemCount": 3 + }, + { + "QuestAcceptedAsClass": "Botanist", + "ItemId": 38311, + "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": [ + { + "DataId": 2013072, + "Position": { + "X": 456.65674, + "Y": 438.04077, + "Z": 310.2312 + }, + "TerritoryId": 960, + "InteractionType": "Interact", + "TargetTerritoryId": 960, + "Mount": true + }, { "DataId": 1043417, "Position": { @@ -29,7 +85,8 @@ "Z": 148.11926 }, "TerritoryId": 960, - "InteractionType": "CompleteQuest" + "InteractionType": "CompleteQuest", + "Mount": true } ] } From f0f876b81039abe8c71d2f985ce4304c88497ae3 Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Sun, 1 Sep 2024 00:47:55 +0800 Subject: [PATCH 160/450] Fixed RequiredQuestVariables values for the first pair. Added conditional teleports, too. --- .../Dailies/4616_Working Up a Thirst.json | 23 +++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4616_Working Up a Thirst.json b/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4616_Working Up a Thirst.json index a2478d3a..1ff7d372 100644 --- a/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4616_Working Up a Thirst.json +++ b/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4616_Working Up a Thirst.json @@ -30,6 +30,12 @@ "TerritoryId": 960, "InteractionType": "Interact", "RequiredQuestVariables": [null, null, null, [1], null, null], + "AetheryteShortcut": "Ultima Thule - Reah Tahra", + "SkipConditions": { + "AetheryteShortcutIf": { + "RequiredQuestVariablesNotMet": true + } + }, "Fly": true }, { @@ -41,8 +47,9 @@ }, "TerritoryId": 960, "InteractionType": "Interact", - "RequiredQuestVariables": [null, null, null, [1], null, null], - "Fly": true + "RequiredQuestVariables": [null, null, null, [17], null, null], + "Fly": true, + "$": "It's the only pair that increases the significant element by 16" }, { "DataId": 1044054, @@ -54,6 +61,12 @@ "TerritoryId": 960, "InteractionType": "Interact", "RequiredQuestVariables": [null, null, null, [2], null, null], + "AetheryteShortcut": "Ultima Thule - Abode of the Ea", + "SkipConditions": { + "AetheryteShortcutIf": { + "RequiredQuestVariablesNotMet": true + } + }, "Fly": true }, { @@ -78,6 +91,12 @@ "TerritoryId": 960, "InteractionType": "Interact", "RequiredQuestVariables": [null, null, null, [3], null, null], + "AetheryteShortcut": "Ultima Thule - Base Omicron", + "SkipConditions": { + "AetheryteShortcutIf": { + "RequiredQuestVariablesNotMet": true + } + }, "Fly": true }, { From b01afa2fa20bef953ce7f0667e54e363443be22c Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Mon, 2 Sep 2024 02:58:55 +0800 Subject: [PATCH 161/450] Added new Omicron story and daily quests. Also added new gathering points for the story quest. --- .../911_Avalonia Fallen_MIN.json | 53 +++++ .../914_Avalonia Fallen_BTN.json | 53 +++++ ...25_Corporeal Hand to Proverbial Mouth.json | 63 +++++- ...estaurateur's Guide to the Dragonstar.json | 205 ++++++++++++++++++ 4 files changed, 371 insertions(+), 3 deletions(-) create mode 100644 GatheringPaths/3.x - Heavensward/The Dravanian Forelands/911_Avalonia Fallen_MIN.json create mode 100644 GatheringPaths/3.x - Heavensward/The Dravanian Forelands/914_Avalonia Fallen_BTN.json create mode 100644 QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Story/4604_The Restaurateur's Guide to the Dragonstar.json diff --git a/GatheringPaths/3.x - Heavensward/The Dravanian Forelands/911_Avalonia Fallen_MIN.json b/GatheringPaths/3.x - Heavensward/The Dravanian Forelands/911_Avalonia Fallen_MIN.json new file mode 100644 index 00000000..0a329266 --- /dev/null +++ b/GatheringPaths/3.x - Heavensward/The Dravanian Forelands/911_Avalonia Fallen_MIN.json @@ -0,0 +1,53 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/GatheringPaths/gatheringlocation-v1.json", + "Author": "liza", + "Steps": [ + { + "TerritoryId": 398, + "InteractionType": "None", + "AetheryteShortcut": "The Dravanian Forelands - Anyx Trine" + } + ], + "Groups": [ + { + "Nodes": [ + { + "DataId": 34382, + "Locations": [ + { + "Position": { + "X": -528.8412, + "Y": -89.70924, + "Z": 458.582 + } + } + ] + }, + { + "DataId": 34383, + "Locations": [ + { + "Position": { + "X": -636.4533, + "Y": -100.1258, + "Z": 484.7436 + } + } + ] + }, + { + "DataId": 34384, + "Locations": [ + { + "Position": { + "X": -589.4542, + "Y": -100.4852, + "Z": 528.1926 + } + } + ] + } + ] + } + ] +} diff --git a/GatheringPaths/3.x - Heavensward/The Dravanian Forelands/914_Avalonia Fallen_BTN.json b/GatheringPaths/3.x - Heavensward/The Dravanian Forelands/914_Avalonia Fallen_BTN.json new file mode 100644 index 00000000..8dc152dc --- /dev/null +++ b/GatheringPaths/3.x - Heavensward/The Dravanian Forelands/914_Avalonia Fallen_BTN.json @@ -0,0 +1,53 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/GatheringPaths/gatheringlocation-v1.json", + "Author": "liza", + "Steps": [ + { + "TerritoryId": 398, + "InteractionType": "None", + "AetheryteShortcut": "The Dravanian Forelands - Anyx Trine" + } + ], + "Groups": [ + { + "Nodes": [ + { + "DataId": 34391, + "Locations": [ + { + "Position": { + "X": -49.75243, + "Y": -31.70323, + "Z": -171.6977 + } + } + ] + }, + { + "DataId": 34392, + "Locations": [ + { + "Position": { + "X": -44.89702, + "Y": -32.39204, + "Z": -153.4274 + } + } + ] + }, + { + "DataId": 34393, + "Locations": [ + { + "Position": { + "X": -36.6049, + "Y": -31.32222, + "Z": -134.1001 + } + } + ] + } + ] + } + ] +} 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 368803c3..6e64ff1c 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 @@ -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,9 +17,66 @@ } ] }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2013074, + "Position": { + "X": 304.3412, + "Y": 483.4821, + "Z": 143.1448 + }, + "TerritoryId": 960, + "InteractionType": "Interact", + "TargetTerritoryId": 1073 + }, + { + "TerritoryId": 1073, + "InteractionType": "None", + "RequiredGatheredItems": [ + { + "QuestAcceptedAsClass": "Miner", + "ItemId": 38292, + "ItemCount": 3 + }, + { + "QuestAcceptedAsClass": "Botanist", + "ItemId": 38316, + "ItemCount": 3 + } + ] + }, + { + "DataId": 1044070, + "Position": { + "X": 132.34143, + "Y": 269.00006, + "Z": -654.6273 + }, + "TerritoryId": 960, + "InteractionType": "Interact", + "Fly": true, + "AetheryteShortcut": "Ultima Thule - Abode of the Ea" + } + ] + }, { "Sequence": 255, "Steps": [ + { + "DataId": 2013072, + "Position": { + "X": 456.65674, + "Y": 438.04077, + "Z": 310.2312 + }, + "TerritoryId": 960, + "InteractionType": "Interact", + "TargetTerritoryId": 960, + "AetheryteShortcut": "Ultima Thule - Base Omicron", + "Mount": true + }, { "DataId": 1043417, "Position": { @@ -29,7 +85,8 @@ "Z": 148.11926 }, "TerritoryId": 960, - "InteractionType": "CompleteQuest" + "InteractionType": "CompleteQuest", + "Mount": true } ] } 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 new file mode 100644 index 00000000..6517000d --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Story/4604_The Restaurateur's Guide to the Dragonstar.json @@ -0,0 +1,205 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "plogon_enjoyer", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 2013072, + "Position": { + "X": 456.65674, + "Y": 438.04077, + "Z": 310.2312 + }, + "TerritoryId": 960, + "InteractionType": "Interact", + "TargetTerritoryId": 960, + "Mount": true, + "AetheryteShortcut": "Ultima Thule - Base Omicron", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + }, + { + "DataId": 1043951, + "Position": { + "X": 303.8529, + "Y": 481.99442, + "Z": 154.83325 + }, + "TerritoryId": 960, + "InteractionType": "AcceptQuest", + "Fly": true + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1043865, + "Position": { + "X": 301.8081, + "Y": 482.13644, + "Z": 165.02625 + }, + "TerritoryId": 960, + "InteractionType": "Interact", + "Mount": true, + "TargetTerritoryId": 960, + "DialogueChoices": [ + { + "Prompt": "TEXT_BANOMI004_04604_Q5_000_000", + "Type": "YesNo", + "Yes": true + } + ] + }, + { + "DataId": 1043586, + "Position": { + "X": 205.3711, + "Y": 567.4998, + "Z": 246.72314 + }, + "TerritoryId": 960, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1043559, + "Position": { + "X": -573.3883, + "Y": 73.033104, + "Z": 212.78699 + }, + "TerritoryId": 960, + "InteractionType": "Interact", + "Fly": true, + "AetheryteShortcut": "Ultima Thule - Reah Tahra" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1011935, + "Position": { + "X": -285.63367, + "Y": 39.04305, + "Z": 53.72693 + }, + "TerritoryId": 398, + "InteractionType": "Interact", + "Fly": true, + "AetheryteShortcut": "The Dravanian Forelands - Anyx Trine" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "TerritoryId": 398, + "InteractionType": "None", + "RequiredGatheredItems": [ + { + "QuestAcceptedAsClass": "Miner", + "ItemId": 38279, + "ItemCount": 3 + }, + { + "QuestAcceptedAsClass": "Botanist", + "ItemId": 38303, + "ItemCount": 3 + } + ] + }, + { + "DataId": 2013072, + "Position": { + "X": 456.65674, + "Y": 438.04077, + "Z": 310.2312 + }, + "TerritoryId": 960, + "InteractionType": "Interact", + "TargetTerritoryId": 960, + "Mount": true, + "AetheryteShortcut": "Ultima Thule - Base Omicron", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + }, + { + "DataId": 1043865, + "Position": { + "X": 301.8081, + "Y": 482.13644, + "Z": 165.02625 + }, + "TerritoryId": 960, + "InteractionType": "Interact", + "Fly": true, + "TargetTerritoryId": 960 + }, + { + "DataId": 1043585, + "Position": { + "X": 203.84521, + "Y": 567.4998, + "Z": 246.87573 + }, + "TerritoryId": 960, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1043864, + "Position": { + "X": 244.83093, + "Y": 564.8203, + "Z": 261.76843 + }, + "TerritoryId": 960, + "InteractionType": "Interact", + "Fly": true, + "TargetTerritoryId": 960, + "DialogueChoices": [ + { + "Prompt": "TEXT_BANOMI004_04604_Q4_000_000", + "Type": "YesNo", + "Yes": true + } + ] + }, + { + "DataId": 1043951, + "Position": { + "X": 303.8529, + "Y": 481.99442, + "Z": 154.83325 + }, + "TerritoryId": 960, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} From 8848947acae44772a219620a24aec96abb2807f5 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sun, 1 Sep 2024 21:49:33 +0200 Subject: [PATCH 162/450] Update gathering paths --- .../4.x - Stormblood/The Ruby Sea/490_Rasen Kaikyo_MIN.json | 3 ++- .../4.x - Stormblood/The Ruby Sea/511_Rasen Kaikyo_BTN.json | 3 ++- .../4.x - Stormblood/The Ruby Sea/529_Rasen Kaikyo_BTN.json | 3 ++- .../The Ruby Sea/730_The Kobayashi Maru_MIN.json | 3 ++- .../The Tempest/927_The Norvrandt Slope_BTN.json | 5 +++-- 5 files changed, 11 insertions(+), 6 deletions(-) diff --git a/GatheringPaths/4.x - Stormblood/The Ruby Sea/490_Rasen Kaikyo_MIN.json b/GatheringPaths/4.x - Stormblood/The Ruby Sea/490_Rasen Kaikyo_MIN.json index 81b0c73c..def9bda9 100644 --- a/GatheringPaths/4.x - Stormblood/The Ruby Sea/490_Rasen Kaikyo_MIN.json +++ b/GatheringPaths/4.x - Stormblood/The Ruby Sea/490_Rasen Kaikyo_MIN.json @@ -10,7 +10,8 @@ }, "TerritoryId": 613, "InteractionType": "WalkTo", - "AetheryteShortcut": "Ruby Sea - Tamamizu" + "AetheryteShortcut": "Ruby Sea - Tamamizu", + "RestartNavigationIfCancelled": false }, { "TerritoryId": 613, diff --git a/GatheringPaths/4.x - Stormblood/The Ruby Sea/511_Rasen Kaikyo_BTN.json b/GatheringPaths/4.x - Stormblood/The Ruby Sea/511_Rasen Kaikyo_BTN.json index d9b9f746..ec39be55 100644 --- a/GatheringPaths/4.x - Stormblood/The Ruby Sea/511_Rasen Kaikyo_BTN.json +++ b/GatheringPaths/4.x - Stormblood/The Ruby Sea/511_Rasen Kaikyo_BTN.json @@ -10,7 +10,8 @@ }, "TerritoryId": 613, "InteractionType": "WalkTo", - "AetheryteShortcut": "Ruby Sea - Tamamizu" + "AetheryteShortcut": "Ruby Sea - Tamamizu", + "RestartNavigationIfCancelled": false }, { "TerritoryId": 613, diff --git a/GatheringPaths/4.x - Stormblood/The Ruby Sea/529_Rasen Kaikyo_BTN.json b/GatheringPaths/4.x - Stormblood/The Ruby Sea/529_Rasen Kaikyo_BTN.json index 3a159087..5528393a 100644 --- a/GatheringPaths/4.x - Stormblood/The Ruby Sea/529_Rasen Kaikyo_BTN.json +++ b/GatheringPaths/4.x - Stormblood/The Ruby Sea/529_Rasen Kaikyo_BTN.json @@ -10,7 +10,8 @@ }, "TerritoryId": 613, "InteractionType": "WalkTo", - "AetheryteShortcut": "Ruby Sea - Tamamizu" + "AetheryteShortcut": "Ruby Sea - Tamamizu", + "RestartNavigationIfCancelled": false }, { "TerritoryId": 613, diff --git a/GatheringPaths/4.x - Stormblood/The Ruby Sea/730_The Kobayashi Maru_MIN.json b/GatheringPaths/4.x - Stormblood/The Ruby Sea/730_The Kobayashi Maru_MIN.json index 959b1210..4d8d1589 100644 --- a/GatheringPaths/4.x - Stormblood/The Ruby Sea/730_The Kobayashi Maru_MIN.json +++ b/GatheringPaths/4.x - Stormblood/The Ruby Sea/730_The Kobayashi Maru_MIN.json @@ -10,7 +10,8 @@ }, "TerritoryId": 613, "InteractionType": "WalkTo", - "AetheryteShortcut": "Ruby Sea - Tamamizu" + "AetheryteShortcut": "Ruby Sea - Tamamizu", + "RestartNavigationIfCancelled": false }, { "TerritoryId": 613, diff --git a/GatheringPaths/5.x - Shadowbringers/The Tempest/927_The Norvrandt Slope_BTN.json b/GatheringPaths/5.x - Shadowbringers/The Tempest/927_The Norvrandt Slope_BTN.json index 36a1044b..5eda959e 100644 --- a/GatheringPaths/5.x - Shadowbringers/The Tempest/927_The Norvrandt Slope_BTN.json +++ b/GatheringPaths/5.x - Shadowbringers/The Tempest/927_The Norvrandt Slope_BTN.json @@ -4,7 +4,8 @@ "Steps": [ { "TerritoryId": 818, - "InteractionType": "None" + "InteractionType": "None", + "AetheryteShortcut": "Tempest - Ondo Cups" } ], "Groups": [ @@ -128,4 +129,4 @@ ] } ] -} \ No newline at end of file +} From 617e1d11c388377fd8df8dc31bee80f3e08ab542 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Mon, 2 Sep 2024 21:36:34 +0200 Subject: [PATCH 163/450] Explicitly specify territoryId in NearPosition --- .../RoslynElements/SkipConditionsExtensions.cs | 3 +++ .../1080_Only You Can Prevent Forest Ire.json | 6 ++++-- .../WHM/1082_Following in His Footsteps.json | 12 ++++++++---- .../Class Quests/WHM/1083_Yearn for the Urn.json | 6 ++++-- .../WHM/1084_Heart of the Forest.json | 6 ++++-- .../Class Quests/WHM/1719_Taint Misbehaving.json | 3 ++- .../WHM/1724_Trials of the Padjals.json | 3 ++- .../Class Quests/WHM/1725_Hands of Healing.json | 9 ++++++--- .../WAR/2904_The Heart of the Problem.json | 16 +++++++++++++++- .../WHM/2414_Unease in East End.json | 3 ++- .../3624_A Voice from the Void.json | 3 ++- .../Magical Ranged/3625_Echoes of the Past.json | 3 ++- .../Magical Ranged/3626_Nyelbert's Lament.json | 3 ++- .../3627_Taynor's Training Day.json | 3 ++- .../Magical Ranged/3628_A Tearful Reunion.json | 3 ++- .../Dailies/4610_A Brewing Reputation.json | 3 ++- QuestPaths/quest-v1.json | 12 ++++++++++-- .../Questing/NearPositionCondition.cs | 1 + .../ClassQuestShouldHaveShortcutValidator.cs | 6 ++++++ 19 files changed, 79 insertions(+), 25 deletions(-) create mode 100644 Questionable/Validation/Validators/ClassQuestShouldHaveShortcutValidator.cs diff --git a/QuestPathGenerator/RoslynElements/SkipConditionsExtensions.cs b/QuestPathGenerator/RoslynElements/SkipConditionsExtensions.cs index 6307020f..02084db1 100644 --- a/QuestPathGenerator/RoslynElements/SkipConditionsExtensions.cs +++ b/QuestPathGenerator/RoslynElements/SkipConditionsExtensions.cs @@ -109,6 +109,9 @@ internal static class SkipConditionsExtensions .AsSyntaxNodeOrToken(), Assignment(nameof(NearPositionCondition.MaximumDistance), nearPositionCondition.MaximumDistance, emptyCondition.MaximumDistance) + .AsSyntaxNodeOrToken(), + Assignment(nameof(NearPositionCondition.TerritoryId), + nearPositionCondition.TerritoryId, emptyCondition.TerritoryId) .AsSyntaxNodeOrToken())))); } diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/WHM/1080_Only You Can Prevent Forest Ire.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/WHM/1080_Only You Can Prevent Forest Ire.json index 729b4b3f..7ebd65e2 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/WHM/1080_Only You Can Prevent Forest Ire.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/WHM/1080_Only You Can Prevent Forest Ire.json @@ -35,7 +35,8 @@ "Y": 8.712891, "Z": 281.69678 }, - "MaximumDistance": 3 + "MaximumDistance": 3, + "TerritoryId": 153 } } } @@ -150,7 +151,8 @@ "Y": 8.712891, "Z": 281.69678 }, - "MaximumDistance": 3 + "MaximumDistance": 3, + "TerritoryId": 153 } } } diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/WHM/1082_Following in His Footsteps.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/WHM/1082_Following in His Footsteps.json index 4be0c9df..5b4cd824 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/WHM/1082_Following in His Footsteps.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/WHM/1082_Following in His Footsteps.json @@ -35,7 +35,8 @@ "Y": 8.712891, "Z": 281.69678 }, - "MaximumDistance": 3 + "MaximumDistance": 3, + "TerritoryId": 153 } } } @@ -202,7 +203,8 @@ "Y": 8.712891, "Z": 281.69678 }, - "MaximumDistance": 3 + "MaximumDistance": 3, + "TerritoryId": 153 } } } @@ -293,7 +295,8 @@ "Y": 8.712891, "Z": 281.69678 }, - "MaximumDistance": 3 + "MaximumDistance": 3, + "TerritoryId": 153 } } } @@ -409,7 +412,8 @@ "Y": 8.712891, "Z": 281.69678 }, - "MaximumDistance": 3 + "MaximumDistance": 3, + "TerritoryId": 153 } } } diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/WHM/1083_Yearn for the Urn.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/WHM/1083_Yearn for the Urn.json index c71f25c4..af438098 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/WHM/1083_Yearn for the Urn.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/WHM/1083_Yearn for the Urn.json @@ -35,7 +35,8 @@ "Y": 8.712891, "Z": 281.69678 }, - "MaximumDistance": 3 + "MaximumDistance": 3, + "TerritoryId": 153 } } } @@ -194,7 +195,8 @@ "Y": 8.712891, "Z": 281.69678 }, - "MaximumDistance": 3 + "MaximumDistance": 3, + "TerritoryId": 153 } } } diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/WHM/1084_Heart of the Forest.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/WHM/1084_Heart of the Forest.json index 727f1685..77a1c616 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/WHM/1084_Heart of the Forest.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/WHM/1084_Heart of the Forest.json @@ -35,7 +35,8 @@ "Y": 8.712891, "Z": 281.69678 }, - "MaximumDistance": 3 + "MaximumDistance": 3, + "TerritoryId": 153 } } } @@ -117,7 +118,8 @@ "Y": 8.712891, "Z": 281.69678 }, - "MaximumDistance": 3 + "MaximumDistance": 3, + "TerritoryId": 153 } } } diff --git a/QuestPaths/3.x - Heavensward/Class Quests/WHM/1719_Taint Misbehaving.json b/QuestPaths/3.x - Heavensward/Class Quests/WHM/1719_Taint Misbehaving.json index fe8075f0..7843c2cf 100644 --- a/QuestPaths/3.x - Heavensward/Class Quests/WHM/1719_Taint Misbehaving.json +++ b/QuestPaths/3.x - Heavensward/Class Quests/WHM/1719_Taint Misbehaving.json @@ -35,7 +35,8 @@ "Y": 8.712891, "Z": 281.69678 }, - "MaximumDistance": 3 + "MaximumDistance": 3, + "TerritoryId": 153 } } } diff --git a/QuestPaths/3.x - Heavensward/Class Quests/WHM/1724_Trials of the Padjals.json b/QuestPaths/3.x - Heavensward/Class Quests/WHM/1724_Trials of the Padjals.json index 637c7e44..a109c03c 100644 --- a/QuestPaths/3.x - Heavensward/Class Quests/WHM/1724_Trials of the Padjals.json +++ b/QuestPaths/3.x - Heavensward/Class Quests/WHM/1724_Trials of the Padjals.json @@ -56,7 +56,8 @@ "Y": 8.712891, "Z": 281.69678 }, - "MaximumDistance": 3 + "MaximumDistance": 3, + "TerritoryId": 153 } } } diff --git a/QuestPaths/3.x - Heavensward/Class Quests/WHM/1725_Hands of Healing.json b/QuestPaths/3.x - Heavensward/Class Quests/WHM/1725_Hands of Healing.json index 1a7b66ca..e5222cab 100644 --- a/QuestPaths/3.x - Heavensward/Class Quests/WHM/1725_Hands of Healing.json +++ b/QuestPaths/3.x - Heavensward/Class Quests/WHM/1725_Hands of Healing.json @@ -35,7 +35,8 @@ "Y": 8.712891, "Z": 281.69678 }, - "MaximumDistance": 3 + "MaximumDistance": 3, + "TerritoryId": 153 } } } @@ -116,7 +117,8 @@ "Y": 8.712891, "Z": 281.69678 }, - "MaximumDistance": 3 + "MaximumDistance": 3, + "TerritoryId": 153 } } } @@ -244,7 +246,8 @@ "Y": 8.712891, "Z": 281.69678 }, - "MaximumDistance": 3 + "MaximumDistance": 3, + "TerritoryId": 153 } } } diff --git a/QuestPaths/4.x - Stormblood/Class Quests/WAR/2904_The Heart of the Problem.json b/QuestPaths/4.x - Stormblood/Class Quests/WAR/2904_The Heart of the Problem.json index c4710dc4..f3cb71d0 100644 --- a/QuestPaths/4.x - Stormblood/Class Quests/WAR/2904_The Heart of the Problem.json +++ b/QuestPaths/4.x - Stormblood/Class Quests/WAR/2904_The Heart of the Problem.json @@ -13,7 +13,21 @@ "Z": 403.3722 }, "TerritoryId": 622, - "InteractionType": "AcceptQuest" + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Azim Steppe - Reunion", + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": 525.10876, + "Y": -19.50681, + "Z": 403.3722 + }, + "MaximumDistance": 100, + "TerritoryId": 622 + } + } + } } ] }, diff --git a/QuestPaths/4.x - Stormblood/Class Quests/WHM/2414_Unease in East End.json b/QuestPaths/4.x - Stormblood/Class Quests/WHM/2414_Unease in East End.json index 35041f7a..c7385a02 100644 --- a/QuestPaths/4.x - Stormblood/Class Quests/WHM/2414_Unease in East End.json +++ b/QuestPaths/4.x - Stormblood/Class Quests/WHM/2414_Unease in East End.json @@ -35,7 +35,8 @@ "Y": 8.712891, "Z": 281.69678 }, - "MaximumDistance": 3 + "MaximumDistance": 3, + "TerritoryId": 153 } } } diff --git a/QuestPaths/5.x - Shadowbringers/Role Quests/Magical Ranged/3624_A Voice from the Void.json b/QuestPaths/5.x - Shadowbringers/Role Quests/Magical Ranged/3624_A Voice from the Void.json index c2dced21..5d58303b 100644 --- a/QuestPaths/5.x - Shadowbringers/Role Quests/Magical Ranged/3624_A Voice from the Void.json +++ b/QuestPaths/5.x - Shadowbringers/Role Quests/Magical Ranged/3624_A Voice from the Void.json @@ -23,7 +23,8 @@ "Y": 7.1558266, "Z": -249.1341 }, - "MaximumDistance": 100 + "MaximumDistance": 100, + "TerritoryId": 815 } } } diff --git a/QuestPaths/5.x - Shadowbringers/Role Quests/Magical Ranged/3625_Echoes of the Past.json b/QuestPaths/5.x - Shadowbringers/Role Quests/Magical Ranged/3625_Echoes of the Past.json index 9b7b8dde..2eeb073d 100644 --- a/QuestPaths/5.x - Shadowbringers/Role Quests/Magical Ranged/3625_Echoes of the Past.json +++ b/QuestPaths/5.x - Shadowbringers/Role Quests/Magical Ranged/3625_Echoes of the Past.json @@ -23,7 +23,8 @@ "Y": 7.1558266, "Z": -249.1341 }, - "MaximumDistance": 100 + "MaximumDistance": 100, + "TerritoryId": 815 } } } diff --git a/QuestPaths/5.x - Shadowbringers/Role Quests/Magical Ranged/3626_Nyelbert's Lament.json b/QuestPaths/5.x - Shadowbringers/Role Quests/Magical Ranged/3626_Nyelbert's Lament.json index 43368dbd..ca1f720b 100644 --- a/QuestPaths/5.x - Shadowbringers/Role Quests/Magical Ranged/3626_Nyelbert's Lament.json +++ b/QuestPaths/5.x - Shadowbringers/Role Quests/Magical Ranged/3626_Nyelbert's Lament.json @@ -23,7 +23,8 @@ "Y": 7.1558266, "Z": -249.1341 }, - "MaximumDistance": 100 + "MaximumDistance": 100, + "TerritoryId": 815 } } } diff --git a/QuestPaths/5.x - Shadowbringers/Role Quests/Magical Ranged/3627_Taynor's Training Day.json b/QuestPaths/5.x - Shadowbringers/Role Quests/Magical Ranged/3627_Taynor's Training Day.json index 370c4fc1..45c3f672 100644 --- a/QuestPaths/5.x - Shadowbringers/Role Quests/Magical Ranged/3627_Taynor's Training Day.json +++ b/QuestPaths/5.x - Shadowbringers/Role Quests/Magical Ranged/3627_Taynor's Training Day.json @@ -23,7 +23,8 @@ "Y": 7.1558266, "Z": -249.1341 }, - "MaximumDistance": 100 + "MaximumDistance": 100, + "TerritoryId": 815 } } } diff --git a/QuestPaths/5.x - Shadowbringers/Role Quests/Magical Ranged/3628_A Tearful Reunion.json b/QuestPaths/5.x - Shadowbringers/Role Quests/Magical Ranged/3628_A Tearful Reunion.json index 1895ba16..f5e70ecf 100644 --- a/QuestPaths/5.x - Shadowbringers/Role Quests/Magical Ranged/3628_A Tearful Reunion.json +++ b/QuestPaths/5.x - Shadowbringers/Role Quests/Magical Ranged/3628_A Tearful Reunion.json @@ -23,7 +23,8 @@ "Y": 7.1558266, "Z": -249.1341 }, - "MaximumDistance": 100 + "MaximumDistance": 100, + "TerritoryId": 815 } } } diff --git a/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4610_A Brewing Reputation.json b/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4610_A Brewing Reputation.json index 1e9036a2..8834ff36 100644 --- a/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4610_A Brewing Reputation.json +++ b/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4610_A Brewing Reputation.json @@ -157,7 +157,8 @@ "Y": 437.5829, "Z": 333.63843 }, - "MaximumDistance": 100 + "MaximumDistance": 100, + "TerritoryId": 960 } } } diff --git a/QuestPaths/quest-v1.json b/QuestPaths/quest-v1.json index 69b6c854..ad911e72 100644 --- a/QuestPaths/quest-v1.json +++ b/QuestPaths/quest-v1.json @@ -261,11 +261,15 @@ }, "MaximumDistance": { "type": "number" + }, + "TerritoryId": { + "type": "number" } }, "required": [ "Position", - "MaximumDistance" + "MaximumDistance", + "TerritoryId" ], "additionalProperties": false }, @@ -323,11 +327,15 @@ }, "MaximumDistance": { "type": "number" + }, + "TerritoryId": { + "type": "number" } }, "required": [ "Position", - "MaximumDistance" + "MaximumDistance", + "TerritoryId" ], "additionalProperties": false } diff --git a/Questionable.Model/Questing/NearPositionCondition.cs b/Questionable.Model/Questing/NearPositionCondition.cs index 7c5885ed..ecfba871 100644 --- a/Questionable.Model/Questing/NearPositionCondition.cs +++ b/Questionable.Model/Questing/NearPositionCondition.cs @@ -9,4 +9,5 @@ public sealed class NearPositionCondition [JsonConverter(typeof(VectorConverter))] public Vector3 Position { get; set; } public float MaximumDistance { get; set; } + public ushort TerritoryId { get; set; } } diff --git a/Questionable/Validation/Validators/ClassQuestShouldHaveShortcutValidator.cs b/Questionable/Validation/Validators/ClassQuestShouldHaveShortcutValidator.cs new file mode 100644 index 00000000..405c8f88 --- /dev/null +++ b/Questionable/Validation/Validators/ClassQuestShouldHaveShortcutValidator.cs @@ -0,0 +1,6 @@ +namespace Questionable.Validation.Validators; + +public class ClassQuestShouldHaveShortcut +{ + +} From 8638e291b1248caf088b8242949b8ef3e7e0bd6f Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Mon, 2 Sep 2024 21:49:51 +0200 Subject: [PATCH 164/450] Update SB paths + include aether current quests in MSQ (up until Azim Steppe) --- .../2163_As Goes Light, So Goes Darkness.json | 1 + .../MSQ/D-3.3/2247_Litany of Peace.json | 2 + .../MSQ/E-3.4/2348_Honorable Heroes.json | 4 ++ .../The Azim Steppe/2771_Sheep Snatcher.json | 2 +- .../2782_Forty Years and Counting.json | 53 ++++++++++++++----- .../The Fringes/2661_The Hidden Truth.json | 4 +- .../2632_The Palace of Lost Souls.json | 3 +- .../2693_The Sword in the Stone.json | 42 +++------------ .../Yanxia/2724_Something Smells.json | 11 ++++ .../Kurenai/2704_Fathoms Below.json | 3 +- .../Kurenai/2705_A Part of Your World.json | 3 +- .../Kurenai/2706_The Elixir of Life.json | 3 +- .../2453_Best Served with Cold Steel.json | 11 ++++ .../2456_The Prodigal Daughter.json | 5 +- .../2955_Death by a Thousand Rocks.json | 9 +++- .../2461_Where Men Go as One.json | 1 + .../2466_Divide and Conquer.json | 19 +++++++ .../2467_Lies, Damn Lies, and Pirates.json | 13 ++++- .../2469_Not without Incident.json | 2 +- .../2635_Future Rust, Future Dust.json | 38 ++++++------- .../2637_Ye Wayward Brothers.json | 3 +- .../A2-Kugane/2470_The Man from Ul'dah.json | 2 +- .../2475_Making the Catfish Sing.json | 1 + .../2479_To Bend with the Wind.json | 11 ++++ .../A3.1-Ruby Sea/2481_Alisaie's Stones.json | 21 +++++++- .../MSQ/A3.1-Ruby Sea/2482_Under the Sea.json | 11 ++++ .../2484_In Soroban We Trust.json | 14 ++++- .../2486_In Darkness the Magatama Dreams.json | 22 +++++++- .../2488_Breaking and Delivering.json | 23 ++++++-- .../2489_The Lord of the Revel.json | 3 +- .../2490_Tide Goes in, Imperials Go Out.json | 22 ++++++++ .../2491_A Silence in Three Parts.json | 3 +- .../2953_The Arrows of Misfortune.json | 2 + .../A3.2-Yanxia 1/2492_Life after Doma.json | 5 +- .../2494_The Ones We Leave Behind.json | 25 ++++++++- .../A3.2-Yanxia 1/2495_A New Ruby Tithe.json | 31 +++++++++-- .../A3.2-Yanxia 1/2496_The Will to Live.json | 26 ++++++++- .../2497_Daughter of the Deep.json | 16 ++++-- .../A4-Azim Steppe/2501_A Season for War.json | 6 +-- .../2502_An Impossible Dream.json | 13 ++++- .../2505_The Heart of Nations.json | 38 ++++++------- .../2506_A Trial Before the Trial.json | 13 ++++- .../2509_The Labors of Magnai.json | 36 ++++++------- .../2511_Sworn Enemies of the Sun.json | 15 +++--- .../A4-Azim Steppe/2513_A Final Peace.json | 13 ++++- .../MSQ/A4-Azim Steppe/2515_Naadam.json | 37 ++++++------- .../2517_In Crimson They Walked.json | 12 +++-- .../2518_The Hour of Reckoning.json | 2 +- .../2519_The Room Where It Happened.json | 2 +- .../A5-Yanxia 2/2520_Seeds of Despair.json | 3 +- .../2521_The Limits of Our Endurance.json | 5 +- .../2523_On the Eve of Destiny.json | 1 + .../2946_How Tataru Got Her Groove Back.json | 5 +- 53 files changed, 486 insertions(+), 185 deletions(-) diff --git a/QuestPaths/3.x - Heavensward/MSQ/B-3.1/2163_As Goes Light, So Goes Darkness.json b/QuestPaths/3.x - Heavensward/MSQ/B-3.1/2163_As Goes Light, So Goes Darkness.json index f720da44..3b1d87a7 100644 --- a/QuestPaths/3.x - Heavensward/MSQ/B-3.1/2163_As Goes Light, So Goes Darkness.json +++ b/QuestPaths/3.x - Heavensward/MSQ/B-3.1/2163_As Goes Light, So Goes Darkness.json @@ -94,6 +94,7 @@ "Y": 0.022254243, "Z": 4.623413 }, + "StopDistance": 7, "TerritoryId": 433, "InteractionType": "CompleteQuest" } diff --git a/QuestPaths/3.x - Heavensward/MSQ/D-3.3/2247_Litany of Peace.json b/QuestPaths/3.x - Heavensward/MSQ/D-3.3/2247_Litany of Peace.json index 192cc0cb..ee1c758c 100644 --- a/QuestPaths/3.x - Heavensward/MSQ/D-3.3/2247_Litany of Peace.json +++ b/QuestPaths/3.x - Heavensward/MSQ/D-3.3/2247_Litany of Peace.json @@ -27,6 +27,7 @@ "Y": 24.458836, "Z": 0.62561035 }, + "StopDistance": 4, "TerritoryId": 418, "InteractionType": "Interact", "DialogueChoices": [ @@ -79,6 +80,7 @@ "Y": 0.022254243, "Z": 4.623413 }, + "StopDistance": 7, "TerritoryId": 433, "InteractionType": "CompleteQuest" } diff --git a/QuestPaths/3.x - Heavensward/MSQ/E-3.4/2348_Honorable Heroes.json b/QuestPaths/3.x - Heavensward/MSQ/E-3.4/2348_Honorable Heroes.json index e3a1b231..6be02d16 100644 --- a/QuestPaths/3.x - Heavensward/MSQ/E-3.4/2348_Honorable Heroes.json +++ b/QuestPaths/3.x - Heavensward/MSQ/E-3.4/2348_Honorable Heroes.json @@ -78,6 +78,10 @@ { "Sequence": 255, "Steps": [ + { + "TerritoryId": 146, + "InteractionType": "EquipRecommended" + }, { "DataId": 1017762, "Position": { diff --git a/QuestPaths/4.x - Stormblood/Aether Currents/The Azim Steppe/2771_Sheep Snatcher.json b/QuestPaths/4.x - Stormblood/Aether Currents/The Azim Steppe/2771_Sheep Snatcher.json index 923643c0..3d3167ab 100644 --- a/QuestPaths/4.x - Stormblood/Aether Currents/The Azim Steppe/2771_Sheep Snatcher.json +++ b/QuestPaths/4.x - Stormblood/Aether Currents/The Azim Steppe/2771_Sheep Snatcher.json @@ -28,7 +28,7 @@ "Z": -210.22363 }, "TerritoryId": 622, - "InteractionType": "WaitForManualProgress", + "InteractionType": "Instruction", "Comment": "Snipe sheep" } ] diff --git a/QuestPaths/4.x - Stormblood/Aether Currents/The Azim Steppe/2782_Forty Years and Counting.json b/QuestPaths/4.x - Stormblood/Aether Currents/The Azim Steppe/2782_Forty Years and Counting.json index 549b7566..98a16015 100644 --- a/QuestPaths/4.x - Stormblood/Aether Currents/The Azim Steppe/2782_Forty Years and Counting.json +++ b/QuestPaths/4.x - Stormblood/Aether Currents/The Azim Steppe/2782_Forty Years and Counting.json @@ -50,18 +50,15 @@ }, "TerritoryId": 622, "InteractionType": "Interact", - "$": "QW: 0 0 0 0 0 0 -> QW: 1 16 0 0 0 128" - }, - { - "DataId": 2008926, - "Position": { - "X": 27.634033, - "Y": 115.464966, - "Z": -48.05072 - }, - "TerritoryId": 622, - "InteractionType": "Interact", - "$": "QW: 1 16 0 0 0 128 -> QW: 2 32 0 0 0 192" + "$": "QW: 0 0 0 0 0 0 -> QW: 1 16 0 0 0 128", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] }, { "DataId": 2008927, @@ -71,7 +68,35 @@ "Z": -49.5766 }, "TerritoryId": 622, - "InteractionType": "Interact" + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, + { + "DataId": 2008926, + "Position": { + "X": 27.634033, + "Y": 115.464966, + "Z": -48.05072 + }, + "StopDistance": 4, + "TerritoryId": 622, + "InteractionType": "Interact", + "$": "QW: 1 16 0 0 0 128 -> QW: 2 32 0 0 0 192", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] } ] }, @@ -91,4 +116,4 @@ ] } ] -} \ No newline at end of file +} diff --git a/QuestPaths/4.x - Stormblood/Aether Currents/The Fringes/2661_The Hidden Truth.json b/QuestPaths/4.x - Stormblood/Aether Currents/The Fringes/2661_The Hidden Truth.json index 62b1a0e5..e3c62d59 100644 --- a/QuestPaths/4.x - Stormblood/Aether Currents/The Fringes/2661_The Hidden Truth.json +++ b/QuestPaths/4.x - Stormblood/Aether Currents/The Fringes/2661_The Hidden Truth.json @@ -83,6 +83,7 @@ "Y": 74.88393, "Z": -118.30322 }, + "StopDistance": 5, "TerritoryId": 612, "InteractionType": "Interact" } @@ -98,10 +99,11 @@ "Y": 75.3867, "Z": -124.712036 }, + "StopDistance": 7, "TerritoryId": 612, "InteractionType": "CompleteQuest" } ] } ] -} \ No newline at end of file +} diff --git a/QuestPaths/4.x - Stormblood/Aether Currents/The Ruby Sea/2632_The Palace of Lost Souls.json b/QuestPaths/4.x - Stormblood/Aether Currents/The Ruby Sea/2632_The Palace of Lost Souls.json index fe72918a..ab947e9d 100644 --- a/QuestPaths/4.x - Stormblood/Aether Currents/The Ruby Sea/2632_The Palace of Lost Souls.json +++ b/QuestPaths/4.x - Stormblood/Aether Currents/The Ruby Sea/2632_The Palace of Lost Souls.json @@ -113,7 +113,8 @@ }, "TerritoryId": 613, "InteractionType": "WalkTo", - "AetheryteShortcut": "Ruby Sea - Tamamizu" + "AetheryteShortcut": "Ruby Sea - Tamamizu", + "RestartNavigationIfCancelled": false }, { "Position": { diff --git a/QuestPaths/4.x - Stormblood/Aether Currents/The Ruby Sea/2693_The Sword in the Stone.json b/QuestPaths/4.x - Stormblood/Aether Currents/The Ruby Sea/2693_The Sword in the Stone.json index b6c9665f..b3985897 100644 --- a/QuestPaths/4.x - Stormblood/Aether Currents/The Ruby Sea/2693_The Sword in the Stone.json +++ b/QuestPaths/4.x - Stormblood/Aether Currents/The Ruby Sea/2693_The Sword in the Stone.json @@ -20,15 +20,6 @@ { "Sequence": 1, "Steps": [ - { - "Position": { - "X": 566.1683, - "Y": -60.550995, - "Z": -134.80696 - }, - "TerritoryId": 613, - "InteractionType": "WalkTo" - }, { "DataId": 1023358, "Position": { @@ -87,9 +78,9 @@ "Steps": [ { "Position": { - "X": 617.86127, - "Y": -29.12958, - "Z": -129.81326 + "X": 617.17053, + "Y": -29.302427, + "Z": -130.22484 }, "TerritoryId": 613, "InteractionType": "Jump", @@ -137,30 +128,13 @@ "Steps": [ { "Position": { - "X": 593.3238, - "Y": -45.048393, - "Z": -152.89952 - }, - "TerritoryId": 613, - "InteractionType": "Jump", - "StopDistance": 0.25, - "JumpDestination": { - "Position": { - "X": 566.00684, - "Y": -61.995552, - "Z": -146.04814 - } - } - }, - { - "Position": { - "X": 566.1683, - "Y": -60.550995, - "Z": -134.80696 + "X": 570.09125, + "Y": -62.583626, + "Z": -145.46727 }, "TerritoryId": 613, "InteractionType": "WalkTo", - "Mount": true + "DisableNavmesh": true }, { "DataId": 1023358, @@ -175,4 +149,4 @@ ] } ] -} \ No newline at end of file +} diff --git a/QuestPaths/4.x - Stormblood/Aether Currents/Yanxia/2724_Something Smells.json b/QuestPaths/4.x - Stormblood/Aether Currents/Yanxia/2724_Something Smells.json index 7e6bc815..cab3da14 100644 --- a/QuestPaths/4.x - Stormblood/Aether Currents/Yanxia/2724_Something Smells.json +++ b/QuestPaths/4.x - Stormblood/Aether Currents/Yanxia/2724_Something Smells.json @@ -126,6 +126,17 @@ 4 ] }, + { + "Position": { + "X": 445.11514, + "Y": 40.55606, + "Z": -51.57855 + }, + "TerritoryId": 614, + "InteractionType": "WalkTo", + "DisableNavmesh": true, + "Mount": true + }, { "DataId": 2008465, "Position": { diff --git a/QuestPaths/4.x - Stormblood/Custom Deliveries/Kurenai/2704_Fathoms Below.json b/QuestPaths/4.x - Stormblood/Custom Deliveries/Kurenai/2704_Fathoms Below.json index 75966772..21aa856c 100644 --- a/QuestPaths/4.x - Stormblood/Custom Deliveries/Kurenai/2704_Fathoms Below.json +++ b/QuestPaths/4.x - Stormblood/Custom Deliveries/Kurenai/2704_Fathoms Below.json @@ -13,7 +13,8 @@ }, "TerritoryId": 613, "InteractionType": "WalkTo", - "AetheryteShortcut": "Ruby Sea - Tamamizu" + "AetheryteShortcut": "Ruby Sea - Tamamizu", + "RestartNavigationIfCancelled": false }, { "Position": { diff --git a/QuestPaths/4.x - Stormblood/Custom Deliveries/Kurenai/2705_A Part of Your World.json b/QuestPaths/4.x - Stormblood/Custom Deliveries/Kurenai/2705_A Part of Your World.json index 1fe63872..d44e7aae 100644 --- a/QuestPaths/4.x - Stormblood/Custom Deliveries/Kurenai/2705_A Part of Your World.json +++ b/QuestPaths/4.x - Stormblood/Custom Deliveries/Kurenai/2705_A Part of Your World.json @@ -75,7 +75,8 @@ }, "TerritoryId": 613, "InteractionType": "WalkTo", - "AetheryteShortcut": "Ruby Sea - Tamamizu" + "AetheryteShortcut": "Ruby Sea - Tamamizu", + "RestartNavigationIfCancelled": false }, { "Position": { diff --git a/QuestPaths/4.x - Stormblood/Custom Deliveries/Kurenai/2706_The Elixir of Life.json b/QuestPaths/4.x - Stormblood/Custom Deliveries/Kurenai/2706_The Elixir of Life.json index 738d856d..0976654b 100644 --- a/QuestPaths/4.x - Stormblood/Custom Deliveries/Kurenai/2706_The Elixir of Life.json +++ b/QuestPaths/4.x - Stormblood/Custom Deliveries/Kurenai/2706_The Elixir of Life.json @@ -80,7 +80,8 @@ }, "TerritoryId": 613, "InteractionType": "WalkTo", - "Mount": true + "Mount": true, + "RestartNavigationIfCancelled": false }, { "Position": { diff --git a/QuestPaths/4.x - Stormblood/MSQ/A1.1-Peaks 1/2453_Best Served with Cold Steel.json b/QuestPaths/4.x - Stormblood/MSQ/A1.1-Peaks 1/2453_Best Served with Cold Steel.json index 822d5bc0..598dd113 100644 --- a/QuestPaths/4.x - Stormblood/MSQ/A1.1-Peaks 1/2453_Best Served with Cold Steel.json +++ b/QuestPaths/4.x - Stormblood/MSQ/A1.1-Peaks 1/2453_Best Served with Cold Steel.json @@ -26,6 +26,17 @@ { "Sequence": 1, "Steps": [ + { + "DataId": 1019517, + "Position": { + "X": -653.0099, + "Y": 129.91537, + "Z": -510.67374 + }, + "TerritoryId": 612, + "InteractionType": "AcceptQuest", + "PickUpQuestId": 2639 + }, { "DataId": 2007955, "Position": { diff --git a/QuestPaths/4.x - Stormblood/MSQ/A1.2-Fringes 1/2456_The Prodigal Daughter.json b/QuestPaths/4.x - Stormblood/MSQ/A1.2-Fringes 1/2456_The Prodigal Daughter.json index dd5c736b..802baf24 100644 --- a/QuestPaths/4.x - Stormblood/MSQ/A1.2-Fringes 1/2456_The Prodigal Daughter.json +++ b/QuestPaths/4.x - Stormblood/MSQ/A1.2-Fringes 1/2456_The Prodigal Daughter.json @@ -44,7 +44,8 @@ "Z": -730.4951 }, "TerritoryId": 620, - "InteractionType": "Interact" + "InteractionType": "Interact", + "AetheryteShortcut": "Peaks - Ala Gannha" } ] }, @@ -64,4 +65,4 @@ ] } ] -} \ No newline at end of file +} diff --git a/QuestPaths/4.x - Stormblood/MSQ/A1.2-Fringes 1/2955_Death by a Thousand Rocks.json b/QuestPaths/4.x - Stormblood/MSQ/A1.2-Fringes 1/2955_Death by a Thousand Rocks.json index 2f754049..d91c52ca 100644 --- a/QuestPaths/4.x - Stormblood/MSQ/A1.2-Fringes 1/2955_Death by a Thousand Rocks.json +++ b/QuestPaths/4.x - Stormblood/MSQ/A1.2-Fringes 1/2955_Death by a Thousand Rocks.json @@ -34,7 +34,12 @@ "Z": -300.8011 }, "TerritoryId": 620, - "InteractionType": "Interact" + "InteractionType": "Interact", + "AetheryteShortcut": "Rhalgr's Reach", + "AethernetShortcut": [ + "[Rhalgr's Reach] Aetheryte Plaza", + "[Rhalgr's Reach] Peaks Gate" + ] } ] }, @@ -70,4 +75,4 @@ ] } ] -} \ No newline at end of file +} diff --git a/QuestPaths/4.x - Stormblood/MSQ/A1.3-Rhalgr's Reach 2/2461_Where Men Go as One.json b/QuestPaths/4.x - Stormblood/MSQ/A1.3-Rhalgr's Reach 2/2461_Where Men Go as One.json index 25a91e36..dc90a555 100644 --- a/QuestPaths/4.x - Stormblood/MSQ/A1.3-Rhalgr's Reach 2/2461_Where Men Go as One.json +++ b/QuestPaths/4.x - Stormblood/MSQ/A1.3-Rhalgr's Reach 2/2461_Where Men Go as One.json @@ -34,6 +34,7 @@ "Y": 13.02367, "Z": -88.91437 }, + "StopDistance": 5, "TerritoryId": 635, "InteractionType": "CompleteQuest" } diff --git a/QuestPaths/4.x - Stormblood/MSQ/A1.3-Rhalgr's Reach 2/2466_Divide and Conquer.json b/QuestPaths/4.x - Stormblood/MSQ/A1.3-Rhalgr's Reach 2/2466_Divide and Conquer.json index b82b0faa..26c349b9 100644 --- a/QuestPaths/4.x - Stormblood/MSQ/A1.3-Rhalgr's Reach 2/2466_Divide and Conquer.json +++ b/QuestPaths/4.x - Stormblood/MSQ/A1.3-Rhalgr's Reach 2/2466_Divide and Conquer.json @@ -46,6 +46,25 @@ { "Sequence": 2, "Steps": [ + { + "DataId": 1020841, + "Position": { + "X": 146.01355, + "Y": 118.1921, + "Z": -730.4951 + }, + "TerritoryId": 620, + "InteractionType": "AcceptQuest", + "PickUpQuestId": 2655, + "AetheryteShortcut": "Peaks - Ala Gannha", + "SkipConditions": { + "AetheryteShortcutIf": { + "QuestsCompleted": [ + 2655 + ] + } + } + }, { "DataId": 1020432, "Position": { diff --git a/QuestPaths/4.x - Stormblood/MSQ/A1.3-Rhalgr's Reach 2/2467_Lies, Damn Lies, and Pirates.json b/QuestPaths/4.x - Stormblood/MSQ/A1.3-Rhalgr's Reach 2/2467_Lies, Damn Lies, and Pirates.json index d506cfda..a60bafac 100644 --- a/QuestPaths/4.x - Stormblood/MSQ/A1.3-Rhalgr's Reach 2/2467_Lies, Damn Lies, and Pirates.json +++ b/QuestPaths/4.x - Stormblood/MSQ/A1.3-Rhalgr's Reach 2/2467_Lies, Damn Lies, and Pirates.json @@ -26,6 +26,17 @@ { "Sequence": 1, "Steps": [ + { + "DataId": 1019519, + "Position": { + "X": -613.1228, + "Y": 130, + "Z": -529.839 + }, + "TerritoryId": 612, + "InteractionType": "AcceptQuest", + "PickUpQuestId": 2661 + }, { "DataId": 1020434, "Position": { @@ -59,4 +70,4 @@ ] } ] -} \ No newline at end of file +} 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 31f911bf..214a764a 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 @@ -101,7 +101,7 @@ "Y": -6.9999976, "Z": -58.884644 }, - "StopDistance": 5, + "StopDistance": 6, "TerritoryId": 628, "InteractionType": "CompleteQuest" } diff --git a/QuestPaths/4.x - Stormblood/MSQ/A1.3-Rhalgr's Reach 2/2635_Future Rust, Future Dust.json b/QuestPaths/4.x - Stormblood/MSQ/A1.3-Rhalgr's Reach 2/2635_Future Rust, Future Dust.json index e0a4faba..9ee072bd 100644 --- a/QuestPaths/4.x - Stormblood/MSQ/A1.3-Rhalgr's Reach 2/2635_Future Rust, Future Dust.json +++ b/QuestPaths/4.x - Stormblood/MSQ/A1.3-Rhalgr's Reach 2/2635_Future Rust, Future Dust.json @@ -86,6 +86,25 @@ } } }, + { + "DataId": 1019486, + "Position": { + "X": -116.746826, + "Y": 0.6342248, + "Z": -55.832825 + }, + "TerritoryId": 635, + "InteractionType": "Interact", + "$": "2 16 0 0 0 160 -> 3 16 0 0 0 176", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 16 + ] + }, { "Position": { "X": -42.27211, @@ -107,25 +126,6 @@ } } }, - { - "DataId": 1019486, - "Position": { - "X": -116.746826, - "Y": 0.6342248, - "Z": -55.832825 - }, - "TerritoryId": 635, - "InteractionType": "Interact", - "$": "2 16 0 0 0 160 -> 3 16 0 0 0 176", - "CompletionQuestVariablesFlags": [ - null, - null, - null, - null, - null, - 16 - ] - }, { "DataId": 1019490, "Position": { diff --git a/QuestPaths/4.x - Stormblood/MSQ/A1.3-Rhalgr's Reach 2/2637_Ye Wayward Brothers.json b/QuestPaths/4.x - Stormblood/MSQ/A1.3-Rhalgr's Reach 2/2637_Ye Wayward Brothers.json index c19ea6c2..c4665b5c 100644 --- a/QuestPaths/4.x - Stormblood/MSQ/A1.3-Rhalgr's Reach 2/2637_Ye Wayward Brothers.json +++ b/QuestPaths/4.x - Stormblood/MSQ/A1.3-Rhalgr's Reach 2/2637_Ye Wayward Brothers.json @@ -144,8 +144,9 @@ }, "TerritoryId": 635, "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Rhalgr's Reach", "AethernetShortcut": [ - "[Rhalgr's Reach] Northeastern Rhalgr's Reach", + "[Rhalgr's Reach] Aetheryte Plaza", "[Rhalgr's Reach] Western Rhalgr's Reach" ] } diff --git a/QuestPaths/4.x - Stormblood/MSQ/A2-Kugane/2470_The Man from Ul'dah.json b/QuestPaths/4.x - Stormblood/MSQ/A2-Kugane/2470_The Man from Ul'dah.json index 18ae1d01..ce42de96 100644 --- a/QuestPaths/4.x - Stormblood/MSQ/A2-Kugane/2470_The Man from Ul'dah.json +++ b/QuestPaths/4.x - Stormblood/MSQ/A2-Kugane/2470_The Man from Ul'dah.json @@ -12,7 +12,7 @@ "Y": -6.9999976, "Z": -55.832825 }, - "StopDistance": 5, + "StopDistance": 6, "TerritoryId": 628, "InteractionType": "AcceptQuest" } diff --git a/QuestPaths/4.x - Stormblood/MSQ/A2-Kugane/2475_Making the Catfish Sing.json b/QuestPaths/4.x - Stormblood/MSQ/A2-Kugane/2475_Making the Catfish Sing.json index 138f5594..e4731239 100644 --- a/QuestPaths/4.x - Stormblood/MSQ/A2-Kugane/2475_Making the Catfish Sing.json +++ b/QuestPaths/4.x - Stormblood/MSQ/A2-Kugane/2475_Making the Catfish Sing.json @@ -30,6 +30,7 @@ "Y": 0, "Z": -2.3041382 }, + "StopDistance": 7, "TerritoryId": 639, "InteractionType": "Interact" } diff --git a/QuestPaths/4.x - Stormblood/MSQ/A3.1-Ruby Sea/2479_To Bend with the Wind.json b/QuestPaths/4.x - Stormblood/MSQ/A3.1-Ruby Sea/2479_To Bend with the Wind.json index 991de741..178c88a4 100644 --- a/QuestPaths/4.x - Stormblood/MSQ/A3.1-Ruby Sea/2479_To Bend with the Wind.json +++ b/QuestPaths/4.x - Stormblood/MSQ/A3.1-Ruby Sea/2479_To Bend with the Wind.json @@ -35,6 +35,17 @@ { "Sequence": 2, "Steps": [ + { + "DataId": 1019168, + "Position": { + "X": 501.33508, + "Y": 34.0062, + "Z": 781.70435 + }, + "TerritoryId": 613, + "InteractionType": "AcceptQuest", + "PickUpQuestId": 2673 + }, { "Position": { "X": 553.3004, diff --git a/QuestPaths/4.x - Stormblood/MSQ/A3.1-Ruby Sea/2481_Alisaie's Stones.json b/QuestPaths/4.x - Stormblood/MSQ/A3.1-Ruby Sea/2481_Alisaie's Stones.json index fbe35d07..41434e28 100644 --- a/QuestPaths/4.x - Stormblood/MSQ/A3.1-Ruby Sea/2481_Alisaie's Stones.json +++ b/QuestPaths/4.x - Stormblood/MSQ/A3.1-Ruby Sea/2481_Alisaie's Stones.json @@ -56,7 +56,15 @@ 6676 ], "ItemId": 2002093, - "$": "0 2 0 0 0 0 -> 16 17 0 0 0 128" + "$": "0 2 0 0 0 0 -> 16 17 0 0 0 128", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] }, { "DataId": 2007913, @@ -71,7 +79,15 @@ "KillEnemyDataIds": [ 6676 ], - "ItemId": 2002093 + "ItemId": 2002093, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] } ] }, @@ -103,6 +119,7 @@ "Y": 9.2068815, "Z": -661.21924 }, + "StopDistance": 7, "TerritoryId": 613, "InteractionType": "Interact" } diff --git a/QuestPaths/4.x - Stormblood/MSQ/A3.1-Ruby Sea/2482_Under the Sea.json b/QuestPaths/4.x - Stormblood/MSQ/A3.1-Ruby Sea/2482_Under the Sea.json index ff2d8b3d..f7c0381d 100644 --- a/QuestPaths/4.x - Stormblood/MSQ/A3.1-Ruby Sea/2482_Under the Sea.json +++ b/QuestPaths/4.x - Stormblood/MSQ/A3.1-Ruby Sea/2482_Under the Sea.json @@ -26,6 +26,17 @@ { "Sequence": 1, "Steps": [ + { + "DataId": 1022102, + "Position": { + "X": 97.8866, + "Y": 2.096308, + "Z": -617.79205 + }, + "TerritoryId": 613, + "InteractionType": "AcceptQuest", + "PickUpQuestId": 2687 + }, { "DataId": 1019951, "Position": { diff --git a/QuestPaths/4.x - Stormblood/MSQ/A3.1-Ruby Sea/2484_In Soroban We Trust.json b/QuestPaths/4.x - Stormblood/MSQ/A3.1-Ruby Sea/2484_In Soroban We Trust.json index 6664fb25..3d9e4611 100644 --- a/QuestPaths/4.x - Stormblood/MSQ/A3.1-Ruby Sea/2484_In Soroban We Trust.json +++ b/QuestPaths/4.x - Stormblood/MSQ/A3.1-Ruby Sea/2484_In Soroban We Trust.json @@ -26,6 +26,17 @@ { "Sequence": 1, "Steps": [ + { + "DataId": 1023357, + "Position": { + "X": 565.0873, + "Y": -62.272896, + "Z": -147.84473 + }, + "TerritoryId": 613, + "InteractionType": "AcceptQuest", + "PickUpQuestId": 2693 + }, { "DataId": 1019969, "Position": { @@ -34,7 +45,8 @@ "Z": -300.5265 }, "TerritoryId": 613, - "InteractionType": "Interact" + "InteractionType": "Interact", + "AetheryteShortcut": "Ruby Sea - Tamamizu" } ] }, diff --git a/QuestPaths/4.x - Stormblood/MSQ/A3.1-Ruby Sea/2486_In Darkness the Magatama Dreams.json b/QuestPaths/4.x - Stormblood/MSQ/A3.1-Ruby Sea/2486_In Darkness the Magatama Dreams.json index 933b8b9e..a3179dd5 100644 --- a/QuestPaths/4.x - Stormblood/MSQ/A3.1-Ruby Sea/2486_In Darkness the Magatama Dreams.json +++ b/QuestPaths/4.x - Stormblood/MSQ/A3.1-Ruby Sea/2486_In Darkness the Magatama Dreams.json @@ -20,6 +20,25 @@ { "Sequence": 1, "Steps": [ + { + "DataId": 1023280, + "Position": { + "X": -62.790894, + "Y": -198.96509, + "Z": -64.34735 + }, + "TerritoryId": 613, + "InteractionType": "AcceptQuest", + "PickUpQuestId": 2632, + "DialogueChoices": [ + { + "ExcelSheet": "quest/026/StmBdy001_02632", + "Type": "List", + "Prompt": "TEXT_STMBDY001_02632_Q1_000_050", + "Answer": "TEXT_STMBDY001_02632_A1_000_051" + } + ] + }, { "Position": { "X": 21.067955, @@ -72,7 +91,8 @@ "Z": 221.51514 }, "TerritoryId": 613, - "InteractionType": "Interact" + "InteractionType": "Interact", + "Mount": false } ] }, diff --git a/QuestPaths/4.x - Stormblood/MSQ/A3.1-Ruby Sea/2488_Breaking and Delivering.json b/QuestPaths/4.x - Stormblood/MSQ/A3.1-Ruby Sea/2488_Breaking and Delivering.json index 9727c165..99b65195 100644 --- a/QuestPaths/4.x - Stormblood/MSQ/A3.1-Ruby Sea/2488_Breaking and Delivering.json +++ b/QuestPaths/4.x - Stormblood/MSQ/A3.1-Ruby Sea/2488_Breaking and Delivering.json @@ -40,7 +40,8 @@ "Z": -314.00232 }, "TerritoryId": 613, - "InteractionType": "WalkTo" + "InteractionType": "WalkTo", + "RestartNavigationIfCancelled": false }, { "DataId": 1019981, @@ -60,14 +61,26 @@ "Steps": [ { "Position": { - "X": -659.02277, - "Y": -21.210977, - "Z": 270.70654 + "X": -583.7968, + "Y": -58.207996, + "Z": 244.92668 }, "TerritoryId": 613, "InteractionType": "WalkTo", "Fly": true, - "StopDistance": 0.25 + "Mount": true + }, + { + "Position": { + "X": -655.3086, + "Y": 0, + "Z": 270.4341 + }, + "TerritoryId": 613, + "InteractionType": "WalkTo", + "Fly": true, + "DisableNavmesh": true, + "RestartNavigationIfCancelled": false }, { "Position": { diff --git a/QuestPaths/4.x - Stormblood/MSQ/A3.1-Ruby Sea/2489_The Lord of the Revel.json b/QuestPaths/4.x - Stormblood/MSQ/A3.1-Ruby Sea/2489_The Lord of the Revel.json index be1b52ee..18066fc0 100644 --- a/QuestPaths/4.x - Stormblood/MSQ/A3.1-Ruby Sea/2489_The Lord of the Revel.json +++ b/QuestPaths/4.x - Stormblood/MSQ/A3.1-Ruby Sea/2489_The Lord of the Revel.json @@ -65,7 +65,8 @@ }, "TerritoryId": 613, "InteractionType": "WalkTo", - "DisableNavmesh": true + "DisableNavmesh": true, + "RestartNavigationIfCancelled": false }, { "DataId": 1019987, diff --git a/QuestPaths/4.x - Stormblood/MSQ/A3.1-Ruby Sea/2490_Tide Goes in, Imperials Go Out.json b/QuestPaths/4.x - Stormblood/MSQ/A3.1-Ruby Sea/2490_Tide Goes in, Imperials Go Out.json index a78c4ffa..73209be2 100644 --- a/QuestPaths/4.x - Stormblood/MSQ/A3.1-Ruby Sea/2490_Tide Goes in, Imperials Go Out.json +++ b/QuestPaths/4.x - Stormblood/MSQ/A3.1-Ruby Sea/2490_Tide Goes in, Imperials Go Out.json @@ -20,6 +20,27 @@ { "Sequence": 1, "Steps": [ + { + "Position": { + "X": -780.3967, + "Y": 7.9621, + "Z": -446.48938 + }, + "TerritoryId": 613, + "InteractionType": "WalkTo", + "SkipConditions": { + "StepIf": { + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + } + } + }, { "DataId": 1019991, "Position": { @@ -47,6 +68,7 @@ }, "TerritoryId": 613, "InteractionType": "WalkTo", + "Mount": true, "SkipConditions": { "StepIf": { "CompletionQuestVariablesFlags": [ diff --git a/QuestPaths/4.x - Stormblood/MSQ/A3.1-Ruby Sea/2491_A Silence in Three Parts.json b/QuestPaths/4.x - Stormblood/MSQ/A3.1-Ruby Sea/2491_A Silence in Three Parts.json index 07fe24aa..a61964a7 100644 --- a/QuestPaths/4.x - Stormblood/MSQ/A3.1-Ruby Sea/2491_A Silence in Three Parts.json +++ b/QuestPaths/4.x - Stormblood/MSQ/A3.1-Ruby Sea/2491_A Silence in Three Parts.json @@ -29,7 +29,8 @@ }, "TerritoryId": 613, "InteractionType": "WalkTo", - "TargetTerritoryId": 614 + "TargetTerritoryId": 614, + "Fly": true } ] }, diff --git a/QuestPaths/4.x - Stormblood/MSQ/A3.1-Ruby Sea/2953_The Arrows of Misfortune.json b/QuestPaths/4.x - Stormblood/MSQ/A3.1-Ruby Sea/2953_The Arrows of Misfortune.json index 84d1d3f5..07c4e990 100644 --- a/QuestPaths/4.x - Stormblood/MSQ/A3.1-Ruby Sea/2953_The Arrows of Misfortune.json +++ b/QuestPaths/4.x - Stormblood/MSQ/A3.1-Ruby Sea/2953_The Arrows of Misfortune.json @@ -61,6 +61,7 @@ "Y": 3.3707767, "Z": -534.4778 }, + "StopDistance": 7, "TerritoryId": 613, "InteractionType": "Interact" } @@ -76,6 +77,7 @@ "Y": 3.3707767, "Z": -534.4778 }, + "StopDistance": 7, "TerritoryId": 613, "InteractionType": "Interact" } diff --git a/QuestPaths/4.x - Stormblood/MSQ/A3.2-Yanxia 1/2492_Life after Doma.json b/QuestPaths/4.x - Stormblood/MSQ/A3.2-Yanxia 1/2492_Life after Doma.json index 67d15aaa..35e78862 100644 --- a/QuestPaths/4.x - Stormblood/MSQ/A3.2-Yanxia 1/2492_Life after Doma.json +++ b/QuestPaths/4.x - Stormblood/MSQ/A3.2-Yanxia 1/2492_Life after Doma.json @@ -99,7 +99,8 @@ "TerritoryId": 614, "InteractionType": "WalkTo", "Fly": true, - "StopDistance": 0.25 + "StopDistance": 0.25, + "RestartNavigationIfCancelled": false }, { "DataId": 1020007, @@ -114,4 +115,4 @@ ] } ] -} \ No newline at end of file +} diff --git a/QuestPaths/4.x - Stormblood/MSQ/A3.2-Yanxia 1/2494_The Ones We Leave Behind.json b/QuestPaths/4.x - Stormblood/MSQ/A3.2-Yanxia 1/2494_The Ones We Leave Behind.json index c3549b73..9f7df38e 100644 --- a/QuestPaths/4.x - Stormblood/MSQ/A3.2-Yanxia 1/2494_The Ones We Leave Behind.json +++ b/QuestPaths/4.x - Stormblood/MSQ/A3.2-Yanxia 1/2494_The Ones We Leave Behind.json @@ -26,6 +26,28 @@ { "Sequence": 1, "Steps": [ + { + "DataId": 1019314, + "Position": { + "X": 421.77454, + "Y": -0.3000138, + "Z": -293.9651 + }, + "TerritoryId": 614, + "InteractionType": "AcceptQuest", + "PickUpQuestId": 2724 + }, + { + "DataId": 1019263, + "Position": { + "X": 451.56018, + "Y": 58.77665, + "Z": -188.3421 + }, + "TerritoryId": 614, + "InteractionType": "AcceptQuest", + "PickUpQuestId": 2728 + }, { "Position": { "X": 508.4545, @@ -51,6 +73,7 @@ "Y": 83.5696, "Z": 94.92627 }, + "StopDistance": 7, "TerritoryId": 614, "InteractionType": "Interact" } @@ -134,4 +157,4 @@ ] } ] -} \ No newline at end of file +} diff --git a/QuestPaths/4.x - Stormblood/MSQ/A3.2-Yanxia 1/2495_A New Ruby Tithe.json b/QuestPaths/4.x - Stormblood/MSQ/A3.2-Yanxia 1/2495_A New Ruby Tithe.json index 44420f7a..b86394da 100644 --- a/QuestPaths/4.x - Stormblood/MSQ/A3.2-Yanxia 1/2495_A New Ruby Tithe.json +++ b/QuestPaths/4.x - Stormblood/MSQ/A3.2-Yanxia 1/2495_A New Ruby Tithe.json @@ -66,6 +66,28 @@ { "Sequence": 3, "Steps": [ + { + "DataId": 1019316, + "Position": { + "X": 434.89734, + "Y": 68.02076, + "Z": -125.01721 + }, + "TerritoryId": 614, + "InteractionType": "AcceptQuest", + "PickUpQuestId": 2733 + }, + { + "DataId": 1019313, + "Position": { + "X": 465.26282, + "Y": 58.52148, + "Z": -171.09949 + }, + "TerritoryId": 614, + "InteractionType": "AcceptQuest", + "PickUpQuestId": 2730 + }, { "DataId": 1020024, "Position": { @@ -89,7 +111,8 @@ "Z": 147.23425 }, "TerritoryId": 614, - "InteractionType": "Interact" + "InteractionType": "Instruction", + "Comment": "Snipe soldiers" } ] }, @@ -104,7 +127,8 @@ "Z": 237.04883 }, "TerritoryId": 614, - "InteractionType": "Interact" + "InteractionType": "Instruction", + "Comment": "Snipe soldiers" } ] }, @@ -134,7 +158,8 @@ "Z": 603.2959 }, "TerritoryId": 614, - "InteractionType": "Interact" + "InteractionType": "Instruction", + "Comment": "Snipe soldiers" } ] }, diff --git a/QuestPaths/4.x - Stormblood/MSQ/A3.2-Yanxia 1/2496_The Will to Live.json b/QuestPaths/4.x - Stormblood/MSQ/A3.2-Yanxia 1/2496_The Will to Live.json index 040ec25b..9747cd69 100644 --- a/QuestPaths/4.x - Stormblood/MSQ/A3.2-Yanxia 1/2496_The Will to Live.json +++ b/QuestPaths/4.x - Stormblood/MSQ/A3.2-Yanxia 1/2496_The Will to Live.json @@ -77,6 +77,7 @@ "Y": 14.6418705, "Z": 620.35547 }, + "StopDistance": 4, "TerritoryId": 614, "InteractionType": "Interact" } @@ -92,6 +93,7 @@ "Y": 14.64187, "Z": 619.8672 }, + "StopDistance": 4, "TerritoryId": 614, "InteractionType": "Interact" } @@ -135,7 +137,15 @@ "TerritoryId": 614, "InteractionType": "Emote", "Emote": "imperialsalute", - "$": "0 0 0 0 0 0 -> 17 0 0 0 0 64" + "$": "0 0 0 0 0 0 -> 17 0 0 0 0 64", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] }, { "DataId": 1020040, @@ -146,13 +156,25 @@ }, "TerritoryId": 614, "InteractionType": "Emote", - "Emote": "imperialsalute" + "Emote": "imperialsalute", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] } ] }, { "Sequence": 6, "Steps": [ + { + "TerritoryId": 614, + "InteractionType": "EquipRecommended" + }, { "DataId": 1020042, "Position": { diff --git a/QuestPaths/4.x - Stormblood/MSQ/A3.2-Yanxia 1/2497_Daughter of the Deep.json b/QuestPaths/4.x - Stormblood/MSQ/A3.2-Yanxia 1/2497_Daughter of the Deep.json index 0ca80fb5..1802bb77 100644 --- a/QuestPaths/4.x - Stormblood/MSQ/A3.2-Yanxia 1/2497_Daughter of the Deep.json +++ b/QuestPaths/4.x - Stormblood/MSQ/A3.2-Yanxia 1/2497_Daughter of the Deep.json @@ -20,10 +20,6 @@ { "Sequence": 1, "Steps": [ - { - "TerritoryId": 614, - "InteractionType": "EquipRecommended" - }, { "DataId": 2008011, "Position": { @@ -35,6 +31,15 @@ "InteractionType": "AttuneAetherCurrent", "AetherCurrentId": 2818199 }, + { + "Position": { + "X": 453.69717, + "Y": 14.463846, + "Z": 663.386 + }, + "TerritoryId": 614, + "InteractionType": "WalkTo" + }, { "DataId": 1020047, "Position": { @@ -172,7 +177,8 @@ "TerritoryId": 614, "InteractionType": "WalkTo", "Fly": true, - "StopDistance": 0.25 + "StopDistance": 0.25, + "RestartNavigationIfCancelled": false }, { "DataId": 1023787, diff --git a/QuestPaths/4.x - Stormblood/MSQ/A4-Azim Steppe/2501_A Season for War.json b/QuestPaths/4.x - Stormblood/MSQ/A4-Azim Steppe/2501_A Season for War.json index f48043a4..533d8913 100644 --- a/QuestPaths/4.x - Stormblood/MSQ/A4-Azim Steppe/2501_A Season for War.json +++ b/QuestPaths/4.x - Stormblood/MSQ/A4-Azim Steppe/2501_A Season for War.json @@ -38,9 +38,9 @@ }, { "Position": { - "X": 259.30197, - "Y": 1.436653, - "Z": 337.41043 + "X": 395.68478, + "Y": -8.147073, + "Z": 299.55774 }, "TerritoryId": 622, "InteractionType": "Combat", diff --git a/QuestPaths/4.x - Stormblood/MSQ/A4-Azim Steppe/2502_An Impossible Dream.json b/QuestPaths/4.x - Stormblood/MSQ/A4-Azim Steppe/2502_An Impossible Dream.json index de26918f..deac66c3 100644 --- a/QuestPaths/4.x - Stormblood/MSQ/A4-Azim Steppe/2502_An Impossible Dream.json +++ b/QuestPaths/4.x - Stormblood/MSQ/A4-Azim Steppe/2502_An Impossible Dream.json @@ -26,6 +26,17 @@ { "Sequence": 1, "Steps": [ + { + "DataId": 1019347, + "Position": { + "X": 575.2803, + "Y": -19.505632, + "Z": 343.74 + }, + "TerritoryId": 622, + "InteractionType": "AcceptQuest", + "PickUpQuestId": 2760 + }, { "DataId": 1020279, "Position": { @@ -54,4 +65,4 @@ ] } ] -} \ No newline at end of file +} diff --git a/QuestPaths/4.x - Stormblood/MSQ/A4-Azim Steppe/2505_The Heart of Nations.json b/QuestPaths/4.x - Stormblood/MSQ/A4-Azim Steppe/2505_The Heart of Nations.json index 55cb19b0..572207cb 100644 --- a/QuestPaths/4.x - Stormblood/MSQ/A4-Azim Steppe/2505_The Heart of Nations.json +++ b/QuestPaths/4.x - Stormblood/MSQ/A4-Azim Steppe/2505_The Heart of Nations.json @@ -69,25 +69,6 @@ 128 ] }, - { - "DataId": 2008246, - "Position": { - "X": 641.7792, - "Y": 5.996765, - "Z": -355.6115 - }, - "TerritoryId": 622, - "InteractionType": "Interact", - "$": "1 16 0 0 0 128 -> 2 32 0 0 0 192", - "CompletionQuestVariablesFlags": [ - null, - null, - null, - null, - null, - 64 - ] - }, { "DataId": 2008247, "Position": { @@ -124,6 +105,25 @@ null, 16 ] + }, + { + "DataId": 2008246, + "Position": { + "X": 641.7792, + "Y": 5.996765, + "Z": -355.6115 + }, + "TerritoryId": 622, + "InteractionType": "Interact", + "$": "1 16 0 0 0 128 -> 2 32 0 0 0 192", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] } ] }, diff --git a/QuestPaths/4.x - Stormblood/MSQ/A4-Azim Steppe/2506_A Trial Before the Trial.json b/QuestPaths/4.x - Stormblood/MSQ/A4-Azim Steppe/2506_A Trial Before the Trial.json index 170a0045..b0302b05 100644 --- a/QuestPaths/4.x - Stormblood/MSQ/A4-Azim Steppe/2506_A Trial Before the Trial.json +++ b/QuestPaths/4.x - Stormblood/MSQ/A4-Azim Steppe/2506_A Trial Before the Trial.json @@ -35,6 +35,17 @@ { "Sequence": 2, "Steps": [ + { + "DataId": 1019405, + "Position": { + "X": 343.58728, + "Y": 26.261887, + "Z": -326.55835 + }, + "TerritoryId": 622, + "InteractionType": "AcceptQuest", + "PickUpQuestId": 2771 + }, { "DataId": 1020671, "Position": { @@ -119,4 +130,4 @@ ] } ] -} \ No newline at end of file +} diff --git a/QuestPaths/4.x - Stormblood/MSQ/A4-Azim Steppe/2509_The Labors of Magnai.json b/QuestPaths/4.x - Stormblood/MSQ/A4-Azim Steppe/2509_The Labors of Magnai.json index 626bfa6d..7c762d51 100644 --- a/QuestPaths/4.x - Stormblood/MSQ/A4-Azim Steppe/2509_The Labors of Magnai.json +++ b/QuestPaths/4.x - Stormblood/MSQ/A4-Azim Steppe/2509_The Labors of Magnai.json @@ -160,6 +160,24 @@ 16 ] }, + { + "DataId": 2008257, + "Position": { + "X": -194.2627, + "Y": -57.66388, + "Z": 105.97388 + }, + "TerritoryId": 622, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 1 + ] + }, { "DataId": 2008256, "Position": { @@ -216,24 +234,6 @@ null, 8 ] - }, - { - "DataId": 2008257, - "Position": { - "X": -194.2627, - "Y": -57.66388, - "Z": 105.97388 - }, - "TerritoryId": 622, - "InteractionType": "Interact", - "CompletionQuestVariablesFlags": [ - null, - null, - null, - null, - null, - 1 - ] } ] }, diff --git a/QuestPaths/4.x - Stormblood/MSQ/A4-Azim Steppe/2511_Sworn Enemies of the Sun.json b/QuestPaths/4.x - Stormblood/MSQ/A4-Azim Steppe/2511_Sworn Enemies of the Sun.json index 6474f1e8..8f209934 100644 --- a/QuestPaths/4.x - Stormblood/MSQ/A4-Azim Steppe/2511_Sworn Enemies of the Sun.json +++ b/QuestPaths/4.x - Stormblood/MSQ/A4-Azim Steppe/2511_Sworn Enemies of the Sun.json @@ -42,15 +42,15 @@ "Sequence": 2, "Steps": [ { - "DataId": 1019424, + "DataId": 1023348, "Position": { - "X": 66.056274, - "Y": 114.904976, - "Z": -8.377258 + "X": 79.24011, + "Y": 114.90497, + "Z": 95.994385 }, "TerritoryId": 622, - "InteractionType": "Interact", - "TargetTerritoryId": 622 + "InteractionType": "AcceptQuest", + "PickUpQuestId": 2782 }, { "Position": { @@ -61,7 +61,8 @@ "TerritoryId": 622, "InteractionType": "Emote", "Emote": "lookout", - "StopDistance": 0.25 + "StopDistance": 0.25, + "AetheryteShortcut": "Azim Steppe - Reunion" } ] }, diff --git a/QuestPaths/4.x - Stormblood/MSQ/A4-Azim Steppe/2513_A Final Peace.json b/QuestPaths/4.x - Stormblood/MSQ/A4-Azim Steppe/2513_A Final Peace.json index 2b902ebc..894c0392 100644 --- a/QuestPaths/4.x - Stormblood/MSQ/A4-Azim Steppe/2513_A Final Peace.json +++ b/QuestPaths/4.x - Stormblood/MSQ/A4-Azim Steppe/2513_A Final Peace.json @@ -20,6 +20,17 @@ { "Sequence": 1, "Steps": [ + { + "DataId": 1023193, + "Position": { + "X": -434.0429, + "Y": 2.5501096, + "Z": 650.01904 + }, + "TerritoryId": 622, + "InteractionType": "AcceptQuest", + "PickUpQuestId": 2791 + }, { "DataId": 1020280, "Position": { @@ -76,4 +87,4 @@ ] } ] -} \ No newline at end of file +} diff --git a/QuestPaths/4.x - Stormblood/MSQ/A4-Azim Steppe/2515_Naadam.json b/QuestPaths/4.x - Stormblood/MSQ/A4-Azim Steppe/2515_Naadam.json index c419c628..a37bb517 100644 --- a/QuestPaths/4.x - Stormblood/MSQ/A4-Azim Steppe/2515_Naadam.json +++ b/QuestPaths/4.x - Stormblood/MSQ/A4-Azim Steppe/2515_Naadam.json @@ -20,6 +20,25 @@ { "Sequence": 1, "Steps": [ + { + "DataId": 1019386, + "Position": { + "X": 501.21313, + "Y": 40.836082, + "Z": -505.9129 + }, + "StopDistance": 7, + "TerritoryId": 622, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, { "DataId": 1019388, "Position": { @@ -90,24 +109,6 @@ null, 16 ] - }, - { - "DataId": 1019386, - "Position": { - "X": 501.21313, - "Y": 40.836082, - "Z": -505.9129 - }, - "TerritoryId": 622, - "InteractionType": "Interact", - "CompletionQuestVariablesFlags": [ - null, - null, - null, - null, - null, - 128 - ] } ] }, diff --git a/QuestPaths/4.x - Stormblood/MSQ/A4-Azim Steppe/2517_In Crimson They Walked.json b/QuestPaths/4.x - Stormblood/MSQ/A4-Azim Steppe/2517_In Crimson They Walked.json index 171c5596..3ed1759e 100644 --- a/QuestPaths/4.x - Stormblood/MSQ/A4-Azim Steppe/2517_In Crimson They Walked.json +++ b/QuestPaths/4.x - Stormblood/MSQ/A4-Azim Steppe/2517_In Crimson They Walked.json @@ -30,7 +30,8 @@ }, "TerritoryId": 622, "InteractionType": "Interact", - "AetheryteShortcut": "Azim Steppe - Dawn Throne" + "AetheryteShortcut": "Azim Steppe - Dawn Throne", + "Fly": true } ] }, @@ -39,13 +40,14 @@ "Steps": [ { "Position": { - "X": 51.873592, - "Y": 114.90497, - "Z": 64.512596 + "X": 12.142036, + "Y": 121, + "Z": 63.4195 }, "TerritoryId": 622, "InteractionType": "WalkTo", - "Mount": true + "Mount": true, + "Fly": true }, { "DataId": 1019424, diff --git a/QuestPaths/4.x - Stormblood/MSQ/A4-Azim Steppe/2518_The Hour of Reckoning.json b/QuestPaths/4.x - Stormblood/MSQ/A4-Azim Steppe/2518_The Hour of Reckoning.json index 7102bd78..f9feca1a 100644 --- a/QuestPaths/4.x - Stormblood/MSQ/A4-Azim Steppe/2518_The Hour of Reckoning.json +++ b/QuestPaths/4.x - Stormblood/MSQ/A4-Azim Steppe/2518_The Hour of Reckoning.json @@ -75,4 +75,4 @@ ] } ] -} \ No newline at end of file +} diff --git a/QuestPaths/4.x - Stormblood/MSQ/A5-Yanxia 2/2519_The Room Where It Happened.json b/QuestPaths/4.x - Stormblood/MSQ/A5-Yanxia 2/2519_The Room Where It Happened.json index b2ba2d76..58b462dd 100644 --- a/QuestPaths/4.x - Stormblood/MSQ/A5-Yanxia 2/2519_The Room Where It Happened.json +++ b/QuestPaths/4.x - Stormblood/MSQ/A5-Yanxia 2/2519_The Room Where It Happened.json @@ -84,4 +84,4 @@ ] } ] -} \ No newline at end of file +} diff --git a/QuestPaths/4.x - Stormblood/MSQ/A5-Yanxia 2/2520_Seeds of Despair.json b/QuestPaths/4.x - Stormblood/MSQ/A5-Yanxia 2/2520_Seeds of Despair.json index 02e832e7..f4276125 100644 --- a/QuestPaths/4.x - Stormblood/MSQ/A5-Yanxia 2/2520_Seeds of Despair.json +++ b/QuestPaths/4.x - Stormblood/MSQ/A5-Yanxia 2/2520_Seeds of Despair.json @@ -34,7 +34,8 @@ "Z": -382.8031 }, "TerritoryId": 614, - "InteractionType": "Interact" + "InteractionType": "Interact", + "Fly": true } ] }, diff --git a/QuestPaths/4.x - Stormblood/MSQ/A5-Yanxia 2/2521_The Limits of Our Endurance.json b/QuestPaths/4.x - Stormblood/MSQ/A5-Yanxia 2/2521_The Limits of Our Endurance.json index af3d50b3..9dbfffe8 100644 --- a/QuestPaths/4.x - Stormblood/MSQ/A5-Yanxia 2/2521_The Limits of Our Endurance.json +++ b/QuestPaths/4.x - Stormblood/MSQ/A5-Yanxia 2/2521_The Limits of Our Endurance.json @@ -34,7 +34,8 @@ "Z": -414.99963 }, "TerritoryId": 614, - "InteractionType": "Interact" + "InteractionType": "Interact", + "Fly": true } ] }, @@ -72,4 +73,4 @@ ] } ] -} \ No newline at end of file +} diff --git a/QuestPaths/4.x - Stormblood/MSQ/A5-Yanxia 2/2523_On the Eve of Destiny.json b/QuestPaths/4.x - Stormblood/MSQ/A5-Yanxia 2/2523_On the Eve of Destiny.json index 1786d198..5350174a 100644 --- a/QuestPaths/4.x - Stormblood/MSQ/A5-Yanxia 2/2523_On the Eve of Destiny.json +++ b/QuestPaths/4.x - Stormblood/MSQ/A5-Yanxia 2/2523_On the Eve of Destiny.json @@ -106,6 +106,7 @@ }, "TerritoryId": 614, "InteractionType": "CompleteQuest", + "Fly": true, "DialogueChoices": [ { "Type": "List", diff --git a/QuestPaths/4.x - Stormblood/MSQ/A5-Yanxia 2/2946_How Tataru Got Her Groove Back.json b/QuestPaths/4.x - Stormblood/MSQ/A5-Yanxia 2/2946_How Tataru Got Her Groove Back.json index 3b1adc94..bd5aa51e 100644 --- a/QuestPaths/4.x - Stormblood/MSQ/A5-Yanxia 2/2946_How Tataru Got Her Groove Back.json +++ b/QuestPaths/4.x - Stormblood/MSQ/A5-Yanxia 2/2946_How Tataru Got Her Groove Back.json @@ -89,9 +89,10 @@ }, "TerritoryId": 614, "InteractionType": "CompleteQuest", - "AetheryteShortcut": "Yanxia - House of the Fierce" + "AetheryteShortcut": "Yanxia - House of the Fierce", + "Fly": true } ] } ] -} \ No newline at end of file +} From 8baf287604cc46aeb3338e99e746986b832ec484 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Mon, 2 Sep 2024 22:03:29 +0200 Subject: [PATCH 165/450] Add aetheryte shortcuts to sequence 0 of class/job quests that didn't have any (and thus weren't eligible as priority quests) --- .../BRD/1086_The Archer's Anthem.json | 18 +++---- .../BTN/3_Way of the Botanist.json | 15 +++++- .../MIN/192_So You Want to Be a Miner.json | 13 +++++ .../MIN/597_Way of the Miner.json | 15 +++++- .../MIN/599_My First Pickaxe.json | 15 +++++- .../Class Quests/MIN/600_Know Thy Land.json | 15 +++++- .../MNK/532_Way of the Pugilist.json | 8 ++- .../MNK/533_Way of the Pugilist.json | 8 ++- .../PLD/1055_Paladin's Pledge.json | 1 + .../PLD/256_Kicking the Hornet's Nest.json | 15 +++++- .../SCH/1097_Forgotten but Not Gone.json | 8 ++- .../SCH/1098_The Last Remnants.json | 15 +++++- .../SCH/1099_The Consequences of Anger.json | 15 +++++- .../1100_In the Image of the Ancients.json | 15 +++++- .../SCH/1101_For Your Fellow Man.json | 15 +++++- .../SCH/1102_The Beast Within.json | 15 +++++- .../WHM/1081_O Brother, Where Art Thou.json | 6 ++- .../DNC/3250_Gamboling for Gil.json | 8 ++- .../Magical Ranged/3623_Hollow Pursuits.json | 12 ++++- .../3243_The Man with Too Many Scars.json | 12 ++++- .../PCT/4854_The Joy of Pictomancy.json | 15 +++++- .../PCT/4855_Mind over Manor.json | 4 ++ .../VPR/4848_Enter the Viper.json | 8 ++- .../VPR/4849_Fangs of the Viper.json | 13 ++++- .../Magical Ranged/4842_Power Forgotten.json | 8 ++- .../4843_A Brand of Justice.json | 8 ++- .../4844_The Seeds of Popularity.json | 8 ++- .../Magical Ranged/4845_Floundering Fame.json | 6 +++ .../Magical Ranged/4846_Behind the Helm.json | 8 ++- .../4847_Heroes and Pretenders.json | 8 ++- .../4838_Take Me to Your Leader.json | 8 ++- .../4839_The Milk of Mamool Ja Kindness.json | 8 ++- .../4840_Ally in the Alley.json | 8 ++- .../4841_The Mightiest Shield.json | 8 ++- .../Tank/4818_The Narwhal Beckons.json | 8 ++- .../Tank/4819_Sleepless in Ishgard.json | 8 ++- .../Tank/4820_Between Sleep and Death.json | 6 +++ .../Tank/4821_Beacon in the Darkness.json | 8 ++- .../Tank/4822_Awakened, not Stirred.json | 8 ++- .../Tank/4823_Dreams of a New Day.json | 8 ++- Questionable.Model/Questing/QuestStep.cs | 16 ++++++ .../Controller/Steps/Interactions/UseItem.cs | 8 ++- .../Steps/Shared/AetheryteShortcut.cs | 2 +- .../Controller/Steps/Shared/SkipCondition.cs | 2 +- Questionable/Functions/QuestFunctions.cs | 9 +--- Questionable/QuestionablePlugin.cs | 1 + Questionable/Validation/EIssueType.cs | 1 + .../ClassQuestShouldHaveShortcutValidator.cs | 51 +++++++++++++++++-- 48 files changed, 436 insertions(+), 62 deletions(-) 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 58b792d6..cced8794 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 @@ -8,7 +8,14 @@ { "TerritoryId": 153, "InteractionType": "EquipItem", - "ItemId": 4546 + "ItemId": 4546, + "AetheryteShortcut": "South Shroud - Quarrymill", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } }, { "TerritoryId": 153, @@ -22,14 +29,7 @@ "Z": -7.3396606 }, "TerritoryId": 153, - "InteractionType": "AcceptQuest", - "AetheryteShortcut": "South Shroud - Quarrymill", - "Fly": true, - "SkipConditions": { - "AetheryteShortcutIf": { - "InSameTerritory": true - } - } + "InteractionType": "AcceptQuest" } ] }, 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 23abee99..1a5f96dc 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 @@ -13,7 +13,20 @@ "Z": -142.93127 }, "TerritoryId": 133, - "InteractionType": "AcceptQuest" + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Botanists' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 133 + ] + } + } } ] }, diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/MIN/192_So You Want to Be a Miner.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/MIN/192_So You Want to Be a Miner.json index faaf1166..ea8b8257 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/MIN/192_So You Want to Be a Miner.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/MIN/192_So You Want to Be a Miner.json @@ -14,6 +14,19 @@ }, "TerritoryId": 131, "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Miners' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 131 + ] + } + }, "DialogueChoices": [ { "Type": "YesNo", diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/MIN/597_Way of the Miner.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/MIN/597_Way of the Miner.json index ab55d722..5ab37fe6 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/MIN/597_Way of the Miner.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/MIN/597_Way of the Miner.json @@ -13,7 +13,20 @@ "Z": 153.2157 }, "TerritoryId": 131, - "InteractionType": "AcceptQuest" + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Miners' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 131 + ] + } + } } ] }, diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/MIN/599_My First Pickaxe.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/MIN/599_My First Pickaxe.json index c9bcf377..07dd8fbf 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/MIN/599_My First Pickaxe.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/MIN/599_My First Pickaxe.json @@ -13,7 +13,20 @@ "Z": 157.42725 }, "TerritoryId": 131, - "InteractionType": "AcceptQuest" + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Miners' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 131 + ] + } + } } ] }, diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/MIN/600_Know Thy Land.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/MIN/600_Know Thy Land.json index ae8417c0..50ff25c8 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/MIN/600_Know Thy Land.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/MIN/600_Know Thy Land.json @@ -13,7 +13,20 @@ "Z": 157.42725 }, "TerritoryId": 131, - "InteractionType": "AcceptQuest" + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Miners' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 131 + ] + } + } } ] }, diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/532_Way of the Pugilist.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/532_Way of the Pugilist.json index 2e25eb22..130b69e0 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/532_Way of the Pugilist.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/532_Way of the Pugilist.json @@ -13,7 +13,13 @@ "Z": -51.163513 }, "TerritoryId": 130, - "InteractionType": "AcceptQuest" + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } } ] }, 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 cbbb57c3..8c00e6a2 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 @@ -14,7 +14,13 @@ "Z": -51.163513 }, "TerritoryId": 130, - "InteractionType": "AcceptQuest" + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } } ] } diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/PLD/1055_Paladin's Pledge.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/PLD/1055_Paladin's Pledge.json index eba6e305..d7d54815 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/PLD/1055_Paladin's Pledge.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/PLD/1055_Paladin's Pledge.json @@ -14,6 +14,7 @@ }, "TerritoryId": 131, "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", "AethernetShortcut": [ "[Ul'dah] Aetheryte Plaza", "[Ul'dah] Gladiators' Guild" diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/PLD/256_Kicking the Hornet's Nest.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/PLD/256_Kicking the Hornet's Nest.json index 88320c09..e12a5e43 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/PLD/256_Kicking the Hornet's Nest.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/PLD/256_Kicking the Hornet's Nest.json @@ -13,7 +13,20 @@ "Z": 39.81079 }, "TerritoryId": 131, - "InteractionType": "AcceptQuest" + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Gladiators' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 131 + ] + } + } } ] }, diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/SCH/1097_Forgotten but Not Gone.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/SCH/1097_Forgotten but Not Gone.json index 615cf8be..5d4a5b35 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/SCH/1097_Forgotten but Not Gone.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/SCH/1097_Forgotten but Not Gone.json @@ -12,7 +12,13 @@ "Z": 4.017052 }, "TerritoryId": 129, - "InteractionType": "WalkTo" + "InteractionType": "WalkTo", + "AetheryteShortcut": "Limsa Lominsa", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } }, { "DataId": 1000895, diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/SCH/1098_The Last Remnants.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/SCH/1098_The Last Remnants.json index 66e6af53..19cbfbe7 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/SCH/1098_The Last Remnants.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/SCH/1098_The Last Remnants.json @@ -8,7 +8,20 @@ { "TerritoryId": 128, "InteractionType": "EquipItem", - "ItemId": 4550 + "ItemId": 4550, + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] Marauders' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 128 + ] + } + } }, { "DataId": 1006757, diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/SCH/1099_The Consequences of Anger.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/SCH/1099_The Consequences of Anger.json index 2fbe65db..18257f45 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/SCH/1099_The Consequences of Anger.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/SCH/1099_The Consequences of Anger.json @@ -13,7 +13,20 @@ "Z": -250.56848 }, "TerritoryId": 128, - "InteractionType": "AcceptQuest" + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] Marauders' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 128 + ] + } + } } ] }, diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/SCH/1100_In the Image of the Ancients.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/SCH/1100_In the Image of the Ancients.json index 8e87dd8b..aa5a054f 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/SCH/1100_In the Image of the Ancients.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/SCH/1100_In the Image of the Ancients.json @@ -13,7 +13,20 @@ "Z": -250.56848 }, "TerritoryId": 128, - "InteractionType": "AcceptQuest" + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] Marauders' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 128 + ] + } + } } ] }, diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/SCH/1101_For Your Fellow Man.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/SCH/1101_For Your Fellow Man.json index a2b64690..270a798d 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/SCH/1101_For Your Fellow Man.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/SCH/1101_For Your Fellow Man.json @@ -13,7 +13,20 @@ "Z": -250.56848 }, "TerritoryId": 128, - "InteractionType": "AcceptQuest" + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] Marauders' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 128 + ] + } + } } ] }, 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 8169dfbd..06d12fb3 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 @@ -13,7 +13,20 @@ "Z": -250.56848 }, "TerritoryId": 128, - "InteractionType": "AcceptQuest" + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] Marauders' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 128 + ] + } + } } ] }, diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/WHM/1081_O Brother, Where Art Thou.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/WHM/1081_O Brother, Where Art Thou.json index 48d669d2..8f55a98e 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/WHM/1081_O Brother, Where Art Thou.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/WHM/1081_O Brother, Where Art Thou.json @@ -35,7 +35,8 @@ "Y": 8.712891, "Z": 281.69678 }, - "MaximumDistance": 3 + "MaximumDistance": 3, + "TerritoryId": 153 } } } @@ -157,7 +158,8 @@ "Y": 8.712891, "Z": 281.69678 }, - "MaximumDistance": 3 + "MaximumDistance": 3, + "TerritoryId": 153 } } } diff --git a/QuestPaths/5.x - Shadowbringers/Class Quests/DNC/3250_Gamboling for Gil.json b/QuestPaths/5.x - Shadowbringers/Class Quests/DNC/3250_Gamboling for Gil.json index 18979d0a..cc2dcd85 100644 --- a/QuestPaths/5.x - Shadowbringers/Class Quests/DNC/3250_Gamboling for Gil.json +++ b/QuestPaths/5.x - Shadowbringers/Class Quests/DNC/3250_Gamboling for Gil.json @@ -13,7 +13,13 @@ "Z": 195.94104 }, "TerritoryId": 129, - "InteractionType": "AcceptQuest" + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Limsa Lominsa", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } } ] }, diff --git a/QuestPaths/5.x - Shadowbringers/Role Quests/Magical Ranged/3623_Hollow Pursuits.json b/QuestPaths/5.x - Shadowbringers/Role Quests/Magical Ranged/3623_Hollow Pursuits.json index 212b5074..83dc2b97 100644 --- a/QuestPaths/5.x - Shadowbringers/Role Quests/Magical Ranged/3623_Hollow Pursuits.json +++ b/QuestPaths/5.x - Shadowbringers/Role Quests/Magical Ranged/3623_Hollow Pursuits.json @@ -13,7 +13,17 @@ "Z": 201.9226 }, "TerritoryId": 819, - "InteractionType": "AcceptQuest" + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Crystarium", + "AethernetShortcut": [ + "[Crystarium] Aetheryte Plaza", + "[Crystarium] Musica Universalis Markets" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } } ] }, diff --git a/QuestPaths/5.x - Shadowbringers/Role Quests/Tank/3243_The Man with Too Many Scars.json b/QuestPaths/5.x - Shadowbringers/Role Quests/Tank/3243_The Man with Too Many Scars.json index be65d1d6..02adab4a 100644 --- a/QuestPaths/5.x - Shadowbringers/Role Quests/Tank/3243_The Man with Too Many Scars.json +++ b/QuestPaths/5.x - Shadowbringers/Role Quests/Tank/3243_The Man with Too Many Scars.json @@ -14,7 +14,17 @@ "Z": 251.75854 }, "TerritoryId": 819, - "InteractionType": "AcceptQuest" + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Crystarium", + "AethernetShortcut": [ + "[Crystarium] Aetheryte Plaza", + "[Crystarium] Musica Universalis Markets" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } } ] } diff --git a/QuestPaths/7.x - Dawntrail/Class Quests/PCT/4854_The Joy of Pictomancy.json b/QuestPaths/7.x - Dawntrail/Class Quests/PCT/4854_The Joy of Pictomancy.json index 86f5071c..4423e4d1 100644 --- a/QuestPaths/7.x - Dawntrail/Class Quests/PCT/4854_The Joy of Pictomancy.json +++ b/QuestPaths/7.x - Dawntrail/Class Quests/PCT/4854_The Joy of Pictomancy.json @@ -20,7 +20,20 @@ "Prompt": "TEXT_KINGBB201_04854_Q1_000_000", "Answer": "TEXT_KINGBB201_04854_A1_000_002" } - ] + ], + "AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Conjurers' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 133 + ] + } + } } ] }, diff --git a/QuestPaths/7.x - Dawntrail/Class Quests/PCT/4855_Mind over Manor.json b/QuestPaths/7.x - Dawntrail/Class Quests/PCT/4855_Mind over Manor.json index d134ace3..abc4342a 100644 --- a/QuestPaths/7.x - Dawntrail/Class Quests/PCT/4855_Mind over Manor.json +++ b/QuestPaths/7.x - Dawntrail/Class Quests/PCT/4855_Mind over Manor.json @@ -14,11 +14,15 @@ "TerritoryId": 132, "InteractionType": "UseItem", "ItemId": 43538, + "AetheryteShortcut": "Gridania", "SkipConditions": { "StepIf": { "Item": { "NotInInventory": true } + }, + "AetheryteShortcutIf": { + "InSameTerritory": true } } }, diff --git a/QuestPaths/7.x - Dawntrail/Class Quests/VPR/4848_Enter the Viper.json b/QuestPaths/7.x - Dawntrail/Class Quests/VPR/4848_Enter the Viper.json index 6e246198..2a3451f3 100644 --- a/QuestPaths/7.x - Dawntrail/Class Quests/VPR/4848_Enter the Viper.json +++ b/QuestPaths/7.x - Dawntrail/Class Quests/VPR/4848_Enter the Viper.json @@ -13,7 +13,13 @@ "Z": -99.321045 }, "TerritoryId": 130, - "InteractionType": "AcceptQuest" + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } } ] }, 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 ccf61580..dec630ec 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 @@ -17,16 +17,27 @@ "TerritoryId": 131, "InteractionType": "UseItem", "ItemId": 43537, + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ], "SkipConditions": { "StepIf": { "Item": { "NotInInventory": true } + }, + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 131 + ] } } }, { - "TerritoryId": 131, + "TerritoryId": 131, "InteractionType": "EquipItem", "ItemId": 41808, "SkipConditions": { diff --git a/QuestPaths/7.x - Dawntrail/Role Quests/Magical Ranged/4842_Power Forgotten.json b/QuestPaths/7.x - Dawntrail/Role Quests/Magical Ranged/4842_Power Forgotten.json index 33df55b7..c04f2dc7 100644 --- a/QuestPaths/7.x - Dawntrail/Role Quests/Magical Ranged/4842_Power Forgotten.json +++ b/QuestPaths/7.x - Dawntrail/Role Quests/Magical Ranged/4842_Power Forgotten.json @@ -13,7 +13,13 @@ "Z": 194.72034 }, "TerritoryId": 1185, - "InteractionType": "AcceptQuest" + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Tuliyollal", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } } ] }, diff --git a/QuestPaths/7.x - Dawntrail/Role Quests/Magical Ranged/4843_A Brand of Justice.json b/QuestPaths/7.x - Dawntrail/Role Quests/Magical Ranged/4843_A Brand of Justice.json index 6b6425ea..a26a9fca 100644 --- a/QuestPaths/7.x - Dawntrail/Role Quests/Magical Ranged/4843_A Brand of Justice.json +++ b/QuestPaths/7.x - Dawntrail/Role Quests/Magical Ranged/4843_A Brand of Justice.json @@ -13,7 +13,13 @@ "Z": 628.3817 }, "TerritoryId": 957, - "InteractionType": "AcceptQuest" + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Thavnair - Yedlihmad", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } } ] }, diff --git a/QuestPaths/7.x - Dawntrail/Role Quests/Magical Ranged/4844_The Seeds of Popularity.json b/QuestPaths/7.x - Dawntrail/Role Quests/Magical Ranged/4844_The Seeds of Popularity.json index 40af8b55..5542bd4b 100644 --- a/QuestPaths/7.x - Dawntrail/Role Quests/Magical Ranged/4844_The Seeds of Popularity.json +++ b/QuestPaths/7.x - Dawntrail/Role Quests/Magical Ranged/4844_The Seeds of Popularity.json @@ -13,7 +13,13 @@ "Z": 628.3817 }, "TerritoryId": 957, - "InteractionType": "AcceptQuest" + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Thavnair - Yedlihmad", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } } ] }, diff --git a/QuestPaths/7.x - Dawntrail/Role Quests/Magical Ranged/4845_Floundering Fame.json b/QuestPaths/7.x - Dawntrail/Role Quests/Magical Ranged/4845_Floundering Fame.json index cbe6d957..0150bd00 100644 --- a/QuestPaths/7.x - Dawntrail/Role Quests/Magical Ranged/4845_Floundering Fame.json +++ b/QuestPaths/7.x - Dawntrail/Role Quests/Magical Ranged/4845_Floundering Fame.json @@ -14,6 +14,12 @@ }, "TerritoryId": 957, "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Thavnair - Yedlihmad", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + }, "DialogueChoices": [ { "Type": "List", diff --git a/QuestPaths/7.x - Dawntrail/Role Quests/Magical Ranged/4846_Behind the Helm.json b/QuestPaths/7.x - Dawntrail/Role Quests/Magical Ranged/4846_Behind the Helm.json index 9b581e94..49373025 100644 --- a/QuestPaths/7.x - Dawntrail/Role Quests/Magical Ranged/4846_Behind the Helm.json +++ b/QuestPaths/7.x - Dawntrail/Role Quests/Magical Ranged/4846_Behind the Helm.json @@ -13,7 +13,13 @@ "Z": 628.3817 }, "TerritoryId": 957, - "InteractionType": "AcceptQuest" + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Thavnair - Yedlihmad", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } } ] }, 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 feff8b34..73a1350d 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 @@ -16,7 +16,13 @@ "Z": 628.3817 }, "TerritoryId": 957, - "InteractionType": "AcceptQuest" + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Thavnair - Yedlihmad", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } } ] }, diff --git a/QuestPaths/7.x - Dawntrail/Role Quests/Physical Ranged/4838_Take Me to Your Leader.json b/QuestPaths/7.x - Dawntrail/Role Quests/Physical Ranged/4838_Take Me to Your Leader.json index ed65c14d..9fd43410 100644 --- a/QuestPaths/7.x - Dawntrail/Role Quests/Physical Ranged/4838_Take Me to Your Leader.json +++ b/QuestPaths/7.x - Dawntrail/Role Quests/Physical Ranged/4838_Take Me to Your Leader.json @@ -13,7 +13,13 @@ "Z": -3.6469727 }, "TerritoryId": 621, - "InteractionType": "AcceptQuest" + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Lochs - Porta Praetoria", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } } ] }, diff --git a/QuestPaths/7.x - Dawntrail/Role Quests/Physical Ranged/4839_The Milk of Mamool Ja Kindness.json b/QuestPaths/7.x - Dawntrail/Role Quests/Physical Ranged/4839_The Milk of Mamool Ja Kindness.json index 90b8d6de..e51f3ef2 100644 --- a/QuestPaths/7.x - Dawntrail/Role Quests/Physical Ranged/4839_The Milk of Mamool Ja Kindness.json +++ b/QuestPaths/7.x - Dawntrail/Role Quests/Physical Ranged/4839_The Milk of Mamool Ja Kindness.json @@ -13,7 +13,13 @@ "Z": 739.4979 }, "TerritoryId": 620, - "InteractionType": "AcceptQuest" + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Peaks - Ala Ghiri", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } } ] }, diff --git a/QuestPaths/7.x - Dawntrail/Role Quests/Physical Ranged/4840_Ally in the Alley.json b/QuestPaths/7.x - Dawntrail/Role Quests/Physical Ranged/4840_Ally in the Alley.json index d73e1be9..0e23cedd 100644 --- a/QuestPaths/7.x - Dawntrail/Role Quests/Physical Ranged/4840_Ally in the Alley.json +++ b/QuestPaths/7.x - Dawntrail/Role Quests/Physical Ranged/4840_Ally in the Alley.json @@ -13,7 +13,13 @@ "Z": 739.4979 }, "TerritoryId": 620, - "InteractionType": "AcceptQuest" + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Peaks - Ala Ghiri", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } } ] }, 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 cba86057..599b3b17 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 @@ -16,7 +16,13 @@ "Z": 618.09717 }, "TerritoryId": 621, - "InteractionType": "AcceptQuest" + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Lochs - Ala Mhigan Quarter", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } } ] }, diff --git a/QuestPaths/7.x - Dawntrail/Role Quests/Tank/4818_The Narwhal Beckons.json b/QuestPaths/7.x - Dawntrail/Role Quests/Tank/4818_The Narwhal Beckons.json index ab8d951a..960d2233 100644 --- a/QuestPaths/7.x - Dawntrail/Role Quests/Tank/4818_The Narwhal Beckons.json +++ b/QuestPaths/7.x - Dawntrail/Role Quests/Tank/4818_The Narwhal Beckons.json @@ -13,7 +13,13 @@ "Z": 203.14331 }, "TerritoryId": 1185, - "InteractionType": "AcceptQuest" + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Tuliyollal", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } } ] }, diff --git a/QuestPaths/7.x - Dawntrail/Role Quests/Tank/4819_Sleepless in Ishgard.json b/QuestPaths/7.x - Dawntrail/Role Quests/Tank/4819_Sleepless in Ishgard.json index 69caf918..668b23af 100644 --- a/QuestPaths/7.x - Dawntrail/Role Quests/Tank/4819_Sleepless in Ishgard.json +++ b/QuestPaths/7.x - Dawntrail/Role Quests/Tank/4819_Sleepless in Ishgard.json @@ -13,7 +13,13 @@ "Z": -48.05072 }, "TerritoryId": 418, - "InteractionType": "AcceptQuest" + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ishgard", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } } ] }, diff --git a/QuestPaths/7.x - Dawntrail/Role Quests/Tank/4820_Between Sleep and Death.json b/QuestPaths/7.x - Dawntrail/Role Quests/Tank/4820_Between Sleep and Death.json index 09bfe8e2..9b08c1c9 100644 --- a/QuestPaths/7.x - Dawntrail/Role Quests/Tank/4820_Between Sleep and Death.json +++ b/QuestPaths/7.x - Dawntrail/Role Quests/Tank/4820_Between Sleep and Death.json @@ -14,6 +14,12 @@ }, "TerritoryId": 418, "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ishgard", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + }, "DialogueChoices": [ { "Type": "List", diff --git a/QuestPaths/7.x - Dawntrail/Role Quests/Tank/4821_Beacon in the Darkness.json b/QuestPaths/7.x - Dawntrail/Role Quests/Tank/4821_Beacon in the Darkness.json index 67f58ebb..4691ec7c 100644 --- a/QuestPaths/7.x - Dawntrail/Role Quests/Tank/4821_Beacon in the Darkness.json +++ b/QuestPaths/7.x - Dawntrail/Role Quests/Tank/4821_Beacon in the Darkness.json @@ -13,7 +13,13 @@ "Z": -1.7243042 }, "TerritoryId": 418, - "InteractionType": "AcceptQuest" + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ishgard", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } } ] }, diff --git a/QuestPaths/7.x - Dawntrail/Role Quests/Tank/4822_Awakened, not Stirred.json b/QuestPaths/7.x - Dawntrail/Role Quests/Tank/4822_Awakened, not Stirred.json index 544b366f..a29c5a66 100644 --- a/QuestPaths/7.x - Dawntrail/Role Quests/Tank/4822_Awakened, not Stirred.json +++ b/QuestPaths/7.x - Dawntrail/Role Quests/Tank/4822_Awakened, not Stirred.json @@ -14,7 +14,13 @@ }, "StopDistance": 5, "TerritoryId": 418, - "InteractionType": "AcceptQuest" + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ishgard", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } } ] }, 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 1fe65e91..db15f8e2 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 @@ -16,7 +16,13 @@ "Z": -48.17273 }, "TerritoryId": 418, - "InteractionType": "AcceptQuest" + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ishgard", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } } ] }, diff --git a/Questionable.Model/Questing/QuestStep.cs b/Questionable.Model/Questing/QuestStep.cs index 5a23e6e4..8ee496bf 100644 --- a/Questionable.Model/Questing/QuestStep.cs +++ b/Questionable.Model/Questing/QuestStep.cs @@ -12,6 +12,7 @@ namespace Questionable.Model.Questing; public sealed class QuestStep { public const float DefaultStopDistance = 3f; + public const int VesperBayAetheryteTicket = 30362; public uint? DataId { get; set; } @@ -110,4 +111,19 @@ public sealed class QuestStep else return StopDistance ?? DefaultStopDistance; } + + /// + /// Only relevant for the step 0 in sequence 0: Whether this step is valid for teleporting to it. + /// + /// + public bool IsTeleportableForPriorityQuests() + { + if (AetheryteShortcut != null) + return true; + + if (InteractionType == EInteractionType.UseItem && ItemId == VesperBayAetheryteTicket) + return true; + + return false; + } } diff --git a/Questionable/Controller/Steps/Interactions/UseItem.cs b/Questionable/Controller/Steps/Interactions/UseItem.cs index 2481e8f5..1e5d51bd 100644 --- a/Questionable/Controller/Steps/Interactions/UseItem.cs +++ b/Questionable/Controller/Steps/Interactions/UseItem.cs @@ -23,8 +23,6 @@ namespace Questionable.Controller.Steps.Interactions; internal static class UseItem { - public const int VesperBayAetheryteTicket = 30362; - internal sealed class Factory( Mount.Factory mountFactory, MoveTo.Factory moveFactory, @@ -47,7 +45,7 @@ internal static class UseItem ArgumentNullException.ThrowIfNull(step.ItemId); - if (step.ItemId == VesperBayAetheryteTicket) + if (step.ItemId == QuestStep.VesperBayAetheryteTicket) { unsafe { @@ -196,7 +194,7 @@ internal static class UseItem if (StartingCombat && condition[ConditionFlag.InCombat]) return ETaskResult.TaskComplete; - if (ItemId == VesperBayAetheryteTicket && _usedItem) + if (ItemId == QuestStep.VesperBayAetheryteTicket && _usedItem) { InventoryManager* inventoryManager = InventoryManager.Instance(); if (inventoryManager == null) @@ -228,7 +226,7 @@ internal static class UseItem private TimeSpan GetRetryDelay() { - if (ItemId == VesperBayAetheryteTicket) + if (ItemId == QuestStep.VesperBayAetheryteTicket) return TimeSpan.FromSeconds(11); else return TimeSpan.FromSeconds(5); diff --git a/Questionable/Controller/Steps/Shared/AetheryteShortcut.cs b/Questionable/Controller/Steps/Shared/AetheryteShortcut.cs index 0b12bb3f..0ac347a2 100644 --- a/Questionable/Controller/Steps/Shared/AetheryteShortcut.cs +++ b/Questionable/Controller/Steps/Shared/AetheryteShortcut.cs @@ -137,7 +137,7 @@ internal static class AetheryteShortcut if (skipConditions.NearPosition is { } nearPosition && - clientState.TerritoryType == step.TerritoryId) + clientState.TerritoryType == nearPosition.TerritoryId) { if (Vector3.Distance(nearPosition.Position, clientState.LocalPlayer!.Position) <= nearPosition.MaximumDistance) diff --git a/Questionable/Controller/Steps/Shared/SkipCondition.cs b/Questionable/Controller/Steps/Shared/SkipCondition.cs index 1d2420cf..1c8a3fa3 100644 --- a/Questionable/Controller/Steps/Shared/SkipCondition.cs +++ b/Questionable/Controller/Steps/Shared/SkipCondition.cs @@ -204,7 +204,7 @@ internal static class SkipCondition } } - if (skipConditions.NearPosition is { } nearPosition && clientState.TerritoryType == step.TerritoryId) + if (skipConditions.NearPosition is { } nearPosition && clientState.TerritoryType == nearPosition.TerritoryId) { if (Vector3.Distance(nearPosition.Position, clientState.LocalPlayer!.Position) <= nearPosition.MaximumDistance) diff --git a/Questionable/Functions/QuestFunctions.cs b/Questionable/Functions/QuestFunctions.cs index e346822d..3f48db39 100644 --- a/Questionable/Functions/QuestFunctions.cs +++ b/Questionable/Functions/QuestFunctions.cs @@ -262,14 +262,7 @@ internal sealed unsafe class QuestFunctions if (firstStep == null) return false; - if (firstStep.AetheryteShortcut != null) - return true; - - if (firstStep is - { InteractionType: EInteractionType.UseItem, ItemId: UseItem.VesperBayAetheryteTicket }) - return true; - - return false; + return firstStep.IsTeleportableForPriorityQuests(); }) .FirstOrDefault(x => { diff --git a/Questionable/QuestionablePlugin.cs b/Questionable/QuestionablePlugin.cs index 88ebc1b3..5c74c00b 100644 --- a/Questionable/QuestionablePlugin.cs +++ b/Questionable/QuestionablePlugin.cs @@ -223,6 +223,7 @@ public sealed class QuestionablePlugin : IDalamudPlugin serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); + serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); serviceCollection.AddSingleton(sp => sp.GetRequiredService()); } diff --git a/Questionable/Validation/EIssueType.cs b/Questionable/Validation/EIssueType.cs index 0f51ce6b..75512481 100644 --- a/Questionable/Validation/EIssueType.cs +++ b/Questionable/Validation/EIssueType.cs @@ -17,4 +17,5 @@ public enum EIssueType UnexpectedCompleteQuestStep, InvalidAethernetShortcut, InvalidExcelRef, + ClassQuestWithoutAetheryteShortcut, } diff --git a/Questionable/Validation/Validators/ClassQuestShouldHaveShortcutValidator.cs b/Questionable/Validation/Validators/ClassQuestShouldHaveShortcutValidator.cs index 405c8f88..680ef124 100644 --- a/Questionable/Validation/Validators/ClassQuestShouldHaveShortcutValidator.cs +++ b/Questionable/Validation/Validators/ClassQuestShouldHaveShortcutValidator.cs @@ -1,6 +1,51 @@ -namespace Questionable.Validation.Validators; +using System.Collections.Generic; +using LLib.GameData; +using Questionable.Data; +using Questionable.Model; +using Questionable.Model.Questing; -public class ClassQuestShouldHaveShortcut +namespace Questionable.Validation.Validators; + +internal sealed class ClassQuestShouldHaveShortcutValidator : IQuestValidator { - + private readonly HashSet _classJobQuests = []; + + public ClassQuestShouldHaveShortcutValidator(QuestData questData) + { + foreach (EClassJob classJob in typeof(EClassJob).GetEnumValues()) + { + if (classJob == EClassJob.Adventurer) + continue; + + foreach (var questInfo in questData.GetClassJobQuests(classJob)) + { + // TODO maybe remove the level check + if (questInfo.Level > 1) + _classJobQuests.Add(questInfo.QuestId); + } + } + } + + public IEnumerable Validate(Quest quest) + { + if (!_classJobQuests.Contains(quest.Id)) + yield break; + + var firstStep = quest.FindSequence(0)?.FindStep(0); + if (firstStep == null) + yield break; + + if (firstStep.IsTeleportableForPriorityQuests()) + yield break; + + yield return new ValidationIssue + { + ElementId = quest.Id, + Sequence = 0, + Step = 0, + Type = EIssueType.ClassQuestWithoutAetheryteShortcut, + Severity = EIssueSeverity.Error, + Description = "Class quest should have an aetheryte shortcut to be done automatically", + }; + } } From 67f0f8dd7010355e3e9639325e0e4c56ddf44640 Mon Sep 17 00:00:00 2001 From: cacahuetes Date: Mon, 2 Sep 2024 21:51:20 +0000 Subject: [PATCH 166/450] ARC/BRD quests for if you start off as ARC --- .../BRD/21_Way of the Archer.json | 195 ++++++++++ .../BRD/67_School of Hard Nocks.json | 356 ++++++++++++++++++ 2 files changed, 551 insertions(+) create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/21_Way of the Archer.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/67_School of Hard Nocks.json diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/21_Way of the Archer.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/21_Way of the Archer.json new file mode 100644 index 00000000..860bf666 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/21_Way of the Archer.json @@ -0,0 +1,195 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Cacahuetes", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1000197, + "Position": { + "X": 201.31226, + "Y": -3.1634123e-15, + "Z": 43.900146 + }, + "TerritoryId": 132, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Archers' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1000200, + "Position": { + "X": 209.55212, + "Y": 0.9999819, + "Z": 35.01941 + }, + "TerritoryId": 132, + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_CLSARC000_00021_Q1_000_1", + "Yes": true + } + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": 97.18397, + "Y": 17.128555, + "Z": -269.5008 + }, + "TerritoryId": 148, + "AethernetShortcut": [ + "[Gridania] Archers' Guild", + "[Gridania] Blue Badger Gate (Central Shroud)" + ], + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "ComplexCombatData": [ + { + "DataId": 37, + "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" + }, + { + "Position": { + "X": 119.449745, + "Y": 17.399649, + "Z": -259.6467 + }, + "TerritoryId": 148, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "ComplexCombatData": [ + { + "DataId": 49, + "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": 83.756714, + "Y": 4.1801105, + "Z": -191.24133 + }, + "TerritoryId": 148, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "ComplexCombatData": [ + { + "DataId": 47, + "CompletionQuestVariablesFlags": [ + null, + { + "Low": 3 + }, + null, + null, + null, + null + ], + "MinimumKillCount": 3 + } + ], + "CompletionQuestVariablesFlags": [ + null, + { + "Low": 3 + }, + null, + null, + null, + null + ], + "$": "35 48 0 0 0 0 -> 35 51 0 0 0 0 // This one automatically went to 0 0 0 0 0 0 so I am not sure about the 51 part" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1000200, + "Position": { + "X": 209.55212, + "Y": 0.9999819, + "Z": 35.01941 + }, + "AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Archers' Guild" + ], + "StopDistance": 7, + "TerritoryId": 132, + "InteractionType": "CompleteQuest", + "NextQuestId": 46 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/67_School of Hard Nocks.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/67_School of Hard Nocks.json new file mode 100644 index 00000000..23046faa --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/67_School of Hard Nocks.json @@ -0,0 +1,356 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Cacahuetes", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1000200, + "Position": { + "X": 209.55212, + "Y": 0.9999819, + "Z": 35.01941 + }, + "StopDistance": 7, + "TerritoryId": 132, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Archers' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1000199, + "Position": { + "X": 211.13904, + "Y": 1.5032018e-5, + "Z": 28.580078 + }, + "TerritoryId": 132, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": -87.448326, + "Y": -3.8114734, + "Z": -77.68485 + }, + "TerritoryId": 148, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Central Shroud - Bentbranch Meadows", + "Fly": true + }, + { + "DataId": 2001173, + "Position": { + "X": -88.24298, + "Y": 3.768982, + "Z": -88.24298 + }, + "TerritoryId": 148, + "StopDistance": 15, + "InteractionType": "Action", + "Action": "Heavy Shot", + "CompletionQuestVariablesFlags": [null, null, null, null, null, 2] + }, + { + "Position": { + "X": -113.806755, + "Y": -3.824695, + "Z": -61.20561 + }, + "TerritoryId": 148, + "InteractionType": "WalkTo", + "SkipConditions": { + "StepIf": { + "CompletionQuestVariablesFlags": [null, null, null, null, null, 4] + } + } + }, + { + "DataId": 2001171, + "Position": { + "X": -115.58716, + "Y": -3.402832, + "Z": -51.07196 + }, + "TerritoryId": 148, + "StopDistance": 15, + "InteractionType": "Action", + "Action": "Heavy Shot", + "CompletionQuestVariablesFlags": [null, null, null, null, null, 4] + }, + { + "Position": { + "X": -142.90863, + "Y": -1.355497, + "Z": -69.45994 + }, + "TerritoryId": 148, + "InteractionType": "WalkTo", + "SkipConditions": { + "StepIf": { + "CompletionQuestVariablesFlags": [null, null, null, null, null, 8] + } + } + }, + { + "DataId": 2000940, + "Position": { + "X": -143.32806, + "Y": -0.41204834, + "Z": -58.884644 + }, + "TerritoryId": 148, + "StopDistance": 15, + "InteractionType": "Action", + "Action": "Heavy Shot", + "CompletionQuestVariablesFlags": [null, null, null, null, null, 8] + }, + { + "Position": { + "X": -154.95493, + "Y": 4.0352364, + "Z": -132.85217 + }, + "TerritoryId": 148, + "InteractionType": "WalkTo", + "SkipConditions": { + "StepIf": { + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 16 + ] + } + } + }, + { + "DataId": 2000939, + "Position": { + "X": -166.97955, + "Y": 10.2387085, + "Z": -138.41461 + }, + "TerritoryId": 148, + "StopDistance": 15, + "InteractionType": "Action", + "Action": "Heavy Shot", + "CompletionQuestVariablesFlags": [null, null, null, null, null, 16] + }, + { + "Position": { + "X": -114.08684, + "Y": 7.6589117, + "Z": -173.19547 + }, + "TerritoryId": 148, + "InteractionType": "WalkTo", + "SkipConditions": { + "StepIf": { + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + } + } + }, + { + "DataId": 2000938, + "Position": { + "X": -120.68359, + "Y": 12.49707, + "Z": -182.39111 + }, + "TerritoryId": 148, + "StopDistance": 15, + "InteractionType": "Action", + "Action": "Heavy Shot", + "CompletionQuestVariablesFlags": [null, null, null, null, null, 32] + }, + { + "Position": { + "X": -74.71171, + "Y": -4, + "Z": -190.44055 + }, + "TerritoryId": 148, + "InteractionType": "WalkTo" + }, + { + "DataId": 2000937, + "Position": { + "X": -80.76605, + "Y": -2.3651733, + "Z": -196.49048 + }, + "TerritoryId": 148, + "StopDistance": 15, + "InteractionType": "Action", + "Action": "Heavy Shot" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1000199, + "Position": { + "X": 211.13904, + "Y": 1.5032018e-5, + "Z": 28.580078 + }, + "TerritoryId": 132, + "InteractionType": "Interact", + "AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Archers' Guild" + ] + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1001263, + "Position": { + "X": 181.41443, + "Y": -2.3519497, + "Z": -240.40594 + }, + "TerritoryId": 133, + "InteractionType": "Interact", + "TargetTerritoryId": 152, + "AethernetShortcut": [ + "[Gridania] Archers' Guild", + "[Gridania] Lancers' Guild" + ], + "SkipConditions": { + "StepIf": { "AetheryteUnlocked": "East Shroud - Hawthorne Hut" } + } + }, + { + "Position": { + "X": -431.09494, + "Y": 2.9039853, + "Z": 239.26413 + }, + "StopDistance": 0.5, + "TerritoryId": 152, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "ComplexCombatData": [ + { + "DataId": 5, + "MinimumKillCount": 8, + "$": "Slay northern vultures.", + "CompletionQuestVariablesFlags": [ + null, + { + "High": 8 + }, + null, + null, + null, + null + ] + }, + { + "DataId": 39, + "MinimumKillCount": 8, + "$": "Slay tree slugs.", + "CompletionQuestVariablesFlags": [ + { + "Low": 8 + }, + null, + null, + null, + null, + null + ] + } + ], + "AetheryteShortcut": "East Shroud - Hawthorne Hut", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1000199, + "Position": { + "X": 211.13904, + "Y": 1.5032018e-5, + "Z": 28.580078 + }, + "TerritoryId": 132, + "InteractionType": "Interact", + "AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Archers' Guild" + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1000200, + "Position": { + "X": 209.55212, + "Y": 0.9999819, + "Z": 35.01941 + }, + "StopDistance": 7, + "TerritoryId": 132, + "InteractionType": "CompleteQuest", + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_CLSARC002_00067_Q1_000_1", + "Yes": true + } + ], + "NextQuestId": 68 + } + ] + } + ] +} From 47e779ea817773a5c80bffdb140006445ed6d75e Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Tue, 3 Sep 2024 23:34:31 +0800 Subject: [PATCH 167/450] Added new action Trample --- 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 c7ebd5fa..68a7aead 100644 --- a/QuestPaths/quest-v1.json +++ b/QuestPaths/quest-v1.json @@ -861,6 +861,7 @@ "Physick", "Buffet (Sanuwa)", "Buffet (Griffin)", + "Trample", "Fumigate", "Siphon Snout", "Cannonfire", diff --git a/Questionable.Model/Questing/Converter/ActionConverter.cs b/Questionable.Model/Questing/Converter/ActionConverter.cs index 5c6bea0a..737a818e 100644 --- a/Questionable.Model/Questing/Converter/ActionConverter.cs +++ b/Questionable.Model/Questing/Converter/ActionConverter.cs @@ -15,6 +15,7 @@ public sealed class ActionConverter() : EnumConverter(Values) { EAction.Physick, "Physick" }, { EAction.BuffetSanuwa, "Buffet (Sanuwa)" }, { EAction.BuffetGriffin, "Buffet (Griffin)" }, + { EAction.Trample, "Trample" }, { EAction.Fumigate, "Fumigate" }, { EAction.SiphonSnout, "Siphon Snout" }, { EAction.Cannonfire, "Cannonfire" }, diff --git a/Questionable.Model/Questing/EAction.cs b/Questionable.Model/Questing/EAction.cs index 5ca20daf..eac75924 100644 --- a/Questionable.Model/Questing/EAction.cs +++ b/Questionable.Model/Questing/EAction.cs @@ -14,6 +14,7 @@ public enum EAction Physick = 190, BuffetSanuwa = 4931, BuffetGriffin = 4583, + Trample = 4585, Fumigate = 5872, SiphonSnout = 18187, Cannonfire = 20121, @@ -48,6 +49,7 @@ public static class EActionExtensions return action is EAction.BuffetSanuwa or EAction.BuffetGriffin + or EAction.Trample or EAction.Fumigate or EAction.SiphonSnout or EAction.Cannonfire From 8ef9e706963b041959b8c4feab6c3e16d055d844 Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Tue, 3 Sep 2024 23:46:11 +0800 Subject: [PATCH 168/450] Added new Ananta story quest "Chance of Gales" --- .../Ananta/Story/3038_Chance of Gales.json | 194 ++++++++++++++++++ 1 file changed, 194 insertions(+) create mode 100644 QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Story/3038_Chance of Gales.json diff --git a/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Story/3038_Chance of Gales.json b/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Story/3038_Chance of Gales.json new file mode 100644 index 00000000..c51e7201 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Story/3038_Chance of Gales.json @@ -0,0 +1,194 @@ +{ + "$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": 1024903, + "Position": { + "X": 111.31445, + "Y": 39.096542, + "Z": 296.34546 + }, + "TerritoryId": 612, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1021591, + "Position": { + "X": -277.82104, + "Y": 258.90652, + "Z": 782.77246 + }, + "TerritoryId": 620, + "InteractionType": "Interact", + "Fly": true, + "AetheryteShortcut": "Peaks - Ala Ghiri" + }, + { + "DataId": 1020871, + "Position": { + "X": -237.90344, + "Y": 257.71973, + "Z": 741.5731 + }, + "TerritoryId": 620, + "InteractionType": "Interact", + "Fly": true + }, + { + "DataId": 1021587, + "Position": { + "X": -210.68134, + "Y": 257.8064, + "Z": 767.4829 + }, + "TerritoryId": 620, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1024906, + "Position": { + "X": -239.12415, + "Y": 258.90652, + "Z": 782.62 + }, + "TerritoryId": 620, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1024908, + "Position": { + "X": -238.91058, + "Y": 266.39832, + "Z": 508.14062 + }, + "TerritoryId": 620, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1024911, + "Position": { + "X": 10.971252, + "Y": 55.943913, + "Z": 239.88696 + }, + "TerritoryId": 612, + "InteractionType": "Interact", + "Fly": true, + "AetheryteShortcut": "Fringes - Peering Stones" + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1024912, + "Position": { + "X": -92.27136, + "Y": 50.00444, + "Z": 186.29736 + }, + "TerritoryId": 612, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 7, + "Steps": [ + { + "Position": { + "X": -212.2359, + "Y": 43.672523, + "Z": -133.15985 + }, + "TerritoryId": 612, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 2009281, + "Position": { + "X": -209.79633, + "Y": 42.70996, + "Z": -153.85675 + }, + "TerritoryId": 612, + "InteractionType": "Action", + "Action": "Trample", + "Land": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": 5.853586, + "Y": 55.943962, + "Z": 237.26181 + }, + "TerritoryId": 612, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 1024911, + "Position": { + "X": 10.971252, + "Y": 55.943913, + "Z": 239.88696 + }, + "TerritoryId": 612, + "InteractionType": "CompleteQuest", + "Mount": false + } + ] + } + ] +} From ec10c6d4c2ffd9a8e2a56714177eae11510536cc Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Tue, 3 Sep 2024 23:52:37 +0800 Subject: [PATCH 169/450] Updated "Criminal Crossings" --- .../Dailies/3051_Criminal Crossings.json | 22 ++++++++++++------- .../Ananta/Dailies/3051_Criminal Crossings.md | 5 ++++- 2 files changed, 18 insertions(+), 9 deletions(-) diff --git a/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Dailies/3051_Criminal Crossings.json b/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Dailies/3051_Criminal Crossings.json index be29d3d4..e4901bb9 100644 --- a/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Dailies/3051_Criminal Crossings.json +++ b/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Dailies/3051_Criminal Crossings.json @@ -12,9 +12,15 @@ "Y": 56.113926, "Z": 236.25537 }, - "StopDistance": 7, "TerritoryId": 612, - "InteractionType": "AcceptQuest" + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Fringes - Peering Stones", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } } ] }, @@ -30,7 +36,7 @@ }, "TerritoryId": 612, "InteractionType": "Interact", - "RequiredQuestVariables": [null, null, null, [2], null, null], + "RequiredQuestVariables": [null, null, null, [2, 4], null, null], "Fly": true, "DialogueChoices": [ { @@ -49,7 +55,7 @@ }, "TerritoryId": 612, "InteractionType": "Combat", - "RequiredQuestVariables": [null, null, null, [3], null, null], + "RequiredQuestVariables": [null, null, null, [1, 3, 5], null, null], "Fly": true, "DialogueChoices": [ { @@ -70,7 +76,7 @@ }, "TerritoryId": 612, "InteractionType": "Interact", - "RequiredQuestVariables": [null, null, null, [2], null, null], + "RequiredQuestVariables": [null, null, null, [1, 2, 5], null, null], "Fly": true, "DialogueChoices": [ { @@ -89,7 +95,7 @@ }, "TerritoryId": 612, "InteractionType": "Combat", - "RequiredQuestVariables": [null, null, null, [3], null, null], + "RequiredQuestVariables": [null, null, null, [3, 4], null, null], "Fly": true, "DialogueChoices": [ { @@ -110,7 +116,7 @@ }, "TerritoryId": 612, "InteractionType": "Combat", - "RequiredQuestVariables": [null, null, null, [2], null, null], + "RequiredQuestVariables": [null, null, null, [2, 4], null, null], "Fly": true, "DialogueChoices": [ { @@ -131,7 +137,7 @@ }, "TerritoryId": 612, "InteractionType": "Interact", - "RequiredQuestVariables": [null, null, null, [3], null, null], + "RequiredQuestVariables": [null, null, null, [1, 3, 5], null, null], "Fly": true, "DialogueChoices": [ { diff --git a/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Dailies/3051_Criminal Crossings.md b/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Dailies/3051_Criminal Crossings.md index 3aa3f81e..6834de92 100644 --- a/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Dailies/3051_Criminal Crossings.md +++ b/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Dailies/3051_Criminal Crossings.md @@ -1,5 +1,8 @@ ``` -0 0 0 x 0 0 | +0 0 0 x 0 0 | + 1 1025062 -> 1025119 -> 1025118 2 1025120 -> 1025119 -> 1025060 3 1025062 -> 1025061 -> 1025118 + 4 1025120 -> 1025061 -> 1025060 + 5 1025062 -> 1025119 -> 1025118 ``` From b6e40bf1a0723b0448189b069f456d964ee93767 Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Tue, 3 Sep 2024 23:53:23 +0800 Subject: [PATCH 170/450] Added new daily quest "Sparring Lesson" --- .../Ananta/Dailies/3053_Sparring Lesson.json | 32 +++++++++++++++++-- 1 file changed, 29 insertions(+), 3 deletions(-) diff --git a/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Dailies/3053_Sparring Lesson.json b/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Dailies/3053_Sparring Lesson.json index 2ff0c260..6ce1349f 100644 --- a/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Dailies/3053_Sparring Lesson.json +++ b/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Dailies/3053_Sparring Lesson.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, @@ -22,7 +21,34 @@ { "Sequence": 1, "Steps": [ - + { + "DataId": 1025067, + "Position": { + "X": 39.04773, + "Y": 43.373318, + "Z": -221.9425 + }, + "TerritoryId": 612, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [8588], + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1025247, + "Position": { + "X": 41.45874, + "Y": 42.875717, + "Z": -218.28033 + }, + "TerritoryId": 612, + "InteractionType": "Interact" + } ] }, { From d1eee8f977ff2e82b39c0b717017f04d50b6aa35 Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Wed, 4 Sep 2024 00:13:52 +0800 Subject: [PATCH 171/450] Added daily quest "Snack between Meals" --- .../Dailies/3049_Snack between Meals.json | 46 +++++++++++++++++-- .../Dailies/3049_Snack between Meals.md | 6 +++ 2 files changed, 49 insertions(+), 3 deletions(-) create mode 100644 QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Dailies/3049_Snack between Meals.md diff --git a/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Dailies/3049_Snack between Meals.json b/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Dailies/3049_Snack between Meals.json index 2ff0c260..c255515b 100644 --- a/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Dailies/3049_Snack between Meals.json +++ b/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Dailies/3049_Snack between Meals.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, @@ -22,7 +21,48 @@ { "Sequence": 1, "Steps": [ - + { + "DataId": 2009337, + "Position": { + "X": 94.95691, + "Y": 49.05774, + "Z": 575.2803 + }, + "TerritoryId": 612, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [8584], + "RequiredQuestVariables": [null, null, [1, 2], null, null, null], + "Fly": true + }, + { + "DataId": 2009338, + "Position": { + "X": 180.07166, + "Y": 47.470703, + "Z": 546.1051 + }, + "TerritoryId": 612, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [8584], + "RequiredQuestVariables": [null, null, [3, 17], null, null, null], + "Fly": true + }, + { + "DataId": 2009339, + "Position": { + "X": 291.21838, + "Y": 47.501343, + "Z": 496.75732 + }, + "TerritoryId": 612, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [8584], + "RequiredQuestVariables": [null, null, [18, 19], null, null, null], + "Fly": true + } ] }, { diff --git a/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Dailies/3049_Snack between Meals.md b/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Dailies/3049_Snack between Meals.md new file mode 100644 index 00000000..995b6b9b --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Dailies/3049_Snack between Meals.md @@ -0,0 +1,6 @@ +``` +0 0 x 0 0 0 | + 1 2009337 -> 2009338 + 2 2009337 -> 2009339 + 3 2009338 -> 2009339 +``` From 7bd3152e00bf35f311e4586a9d3da4e12d926b40 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Wed, 4 Sep 2024 12:05:17 +0200 Subject: [PATCH 172/450] Update 67 - post-SB paths/include aehter currents --- Directory.Build.targets | 2 +- .../2821_Eyes Bigger than Her Stomach.json | 8 ++-- .../The Lochs/2881_If I Were a Fish.json | 3 +- .../The Peaks/2842_Out of Sight.json | 3 +- .../MSQ/A5-Yanxia 2/2524_The Die Is Cast.json | 13 +++++- .../2525_The World Turned Upside Down.json | 2 +- .../2526_A Swift and Secret Departure.json | 3 +- .../2530_Rising Fortunes, Rising Spirits.json | 5 ++ .../2531_The Lure of the Dream.json | 13 ++++-- .../2532_The Lady of Bliss.json | 11 +++++ .../2542_With Tired Hands We Toil.json | 13 +++++- .../MSQ/A7-Lochs/2549_The Key to Victory.json | 46 ++++++++++++++++++- .../MSQ/A7-Lochs/2550_The Resonant.json | 4 +- .../2552_The Measure of His Reach.json | 46 ++++++++++++++++++- .../MSQ/B-4.1/2964_The Mad King's Trove.json | 14 +++++- .../MSQ/B-4.1/2971_A Blissful Arrival.json | 22 +++++++-- .../C-4.2/3023_The Sword in the Store.json | 2 +- .../MSQ/C-4.2/3027_His Forgotten Home.json | 16 +++++-- .../MSQ/C-4.2/3028_A Guilty Conscience.json | 3 +- .../MSQ/C-4.2/3029_Rise of a New Sun.json | 5 +- .../MSQ/H-4.55/3185_A Requiem for Heroes.json | 1 + Questionable/Windows/UiUtils.cs | 1 + 22 files changed, 208 insertions(+), 28 deletions(-) diff --git a/Directory.Build.targets b/Directory.Build.targets index c6651601..b6de8ec4 100644 --- a/Directory.Build.targets +++ b/Directory.Build.targets @@ -1,5 +1,5 @@ - 2.19 + 2.20 diff --git a/QuestPaths/4.x - Stormblood/Aether Currents/The Fringes/2821_Eyes Bigger than Her Stomach.json b/QuestPaths/4.x - Stormblood/Aether Currents/The Fringes/2821_Eyes Bigger than Her Stomach.json index 2eac6e18..b1c25727 100644 --- a/QuestPaths/4.x - Stormblood/Aether Currents/The Fringes/2821_Eyes Bigger than Her Stomach.json +++ b/QuestPaths/4.x - Stormblood/Aether Currents/The Fringes/2821_Eyes Bigger than Her Stomach.json @@ -28,9 +28,9 @@ "Steps": [ { "Position": { - "X": 370.87048, - "Y": 73.22009, - "Z": 118.791504 + "X": 385.1642, + "Y": 74.01643, + "Z": 135.44316 }, "TerritoryId": 612, "InteractionType": "WaitForManualProgress", @@ -55,4 +55,4 @@ ] } ] -} \ No newline at end of file +} diff --git a/QuestPaths/4.x - Stormblood/Aether Currents/The Lochs/2881_If I Were a Fish.json b/QuestPaths/4.x - Stormblood/Aether Currents/The Lochs/2881_If I Were a Fish.json index 3cf36eae..bf7b8e85 100644 --- a/QuestPaths/4.x - Stormblood/Aether Currents/The Lochs/2881_If I Were a Fish.json +++ b/QuestPaths/4.x - Stormblood/Aether Currents/The Lochs/2881_If I Were a Fish.json @@ -76,7 +76,8 @@ "TerritoryId": 621, "InteractionType": "WalkTo", "DisableNavmesh": true, - "Mount": true + "Mount": true, + "RestartNavigationIfCancelled": false }, { "DataId": 1023174, diff --git a/QuestPaths/4.x - Stormblood/Aether Currents/The Peaks/2842_Out of Sight.json b/QuestPaths/4.x - Stormblood/Aether Currents/The Peaks/2842_Out of Sight.json index 7599354f..2874d2b3 100644 --- a/QuestPaths/4.x - Stormblood/Aether Currents/The Peaks/2842_Out of Sight.json +++ b/QuestPaths/4.x - Stormblood/Aether Currents/The Peaks/2842_Out of Sight.json @@ -48,7 +48,8 @@ "Z": 786.1918 }, "TerritoryId": 620, - "InteractionType": "WalkTo" + "InteractionType": "WalkTo", + "Mount": true }, { "DataId": 1023259, 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 f99aa383..2811433e 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 @@ -86,6 +86,16 @@ { "Sequence": 3, "Steps": [ + { + "Position": { + "X": -364.42896, + "Y": 1.2300289, + "Z": -363.52563 + }, + "TerritoryId": 614, + "InteractionType": "WalkTo", + "Fly": true + }, { "DataId": 1020247, "Position": { @@ -94,8 +104,7 @@ "Z": -362.5086 }, "TerritoryId": 614, - "InteractionType": "Interact", - "Fly": true + "InteractionType": "Interact" } ] }, diff --git a/QuestPaths/4.x - Stormblood/MSQ/A5-Yanxia 2/2525_The World Turned Upside Down.json b/QuestPaths/4.x - Stormblood/MSQ/A5-Yanxia 2/2525_The World Turned Upside Down.json index 55f2b8eb..aeb5fba9 100644 --- a/QuestPaths/4.x - Stormblood/MSQ/A5-Yanxia 2/2525_The World Turned Upside Down.json +++ b/QuestPaths/4.x - Stormblood/MSQ/A5-Yanxia 2/2525_The World Turned Upside Down.json @@ -103,7 +103,7 @@ "Y": -7.0001082, "Z": 53.81848 }, - "StopDistance": 7, + "StopDistance": 4, "TerritoryId": 628, "InteractionType": "CompleteQuest" } diff --git a/QuestPaths/4.x - Stormblood/MSQ/A5-Yanxia 2/2526_A Swift and Secret Departure.json b/QuestPaths/4.x - Stormblood/MSQ/A5-Yanxia 2/2526_A Swift and Secret Departure.json index 1312ff5b..c6d57975 100644 --- a/QuestPaths/4.x - Stormblood/MSQ/A5-Yanxia 2/2526_A Swift and Secret Departure.json +++ b/QuestPaths/4.x - Stormblood/MSQ/A5-Yanxia 2/2526_A Swift and Secret Departure.json @@ -31,8 +31,9 @@ "TerritoryId": 628, "InteractionType": "Interact", "TargetTerritoryId": 639, + "AetheryteShortcut": "Kugane", "AethernetShortcut": [ - "[Kugane] Kogane Dori Markets", + "[Kugane] Aetheryte Plaza", "[Kugane] The Ruby Bazaar" ] } diff --git a/QuestPaths/4.x - Stormblood/MSQ/A6.1-Fringes 2/2530_Rising Fortunes, Rising Spirits.json b/QuestPaths/4.x - Stormblood/MSQ/A6.1-Fringes 2/2530_Rising Fortunes, Rising Spirits.json index 0315248c..ff60e8f0 100644 --- a/QuestPaths/4.x - Stormblood/MSQ/A6.1-Fringes 2/2530_Rising Fortunes, Rising Spirits.json +++ b/QuestPaths/4.x - Stormblood/MSQ/A6.1-Fringes 2/2530_Rising Fortunes, Rising Spirits.json @@ -59,6 +59,11 @@ { "Sequence": 255, "Steps": [ + { + "TerritoryId": 612, + "InteractionType": "AttuneAetheryte", + "Aetheryte": "Fringes - Peering Stones" + }, { "DataId": 1020578, "Position": { diff --git a/QuestPaths/4.x - Stormblood/MSQ/A6.1-Fringes 2/2531_The Lure of the Dream.json b/QuestPaths/4.x - Stormblood/MSQ/A6.1-Fringes 2/2531_The Lure of the Dream.json index 9fa4d564..1ff76231 100644 --- a/QuestPaths/4.x - Stormblood/MSQ/A6.1-Fringes 2/2531_The Lure of the Dream.json +++ b/QuestPaths/4.x - Stormblood/MSQ/A6.1-Fringes 2/2531_The Lure of the Dream.json @@ -21,9 +21,15 @@ "Sequence": 1, "Steps": [ { + "DataId": 1020807, + "Position": { + "X": 433.9818, + "Y": 114.48304, + "Z": 233.29517 + }, "TerritoryId": 612, - "InteractionType": "AttuneAetheryte", - "Aetheryte": "Fringes - Peering Stones" + "InteractionType": "AcceptQuest", + "PickUpQuestId": 2821 }, { "DataId": 2007971, @@ -44,7 +50,8 @@ }, "TerritoryId": 612, "InteractionType": "WalkTo", - "DisableNavmesh": true + "DisableNavmesh": true, + "Mount": true }, { "DataId": 1020817, diff --git a/QuestPaths/4.x - Stormblood/MSQ/A6.1-Fringes 2/2532_The Lady of Bliss.json b/QuestPaths/4.x - Stormblood/MSQ/A6.1-Fringes 2/2532_The Lady of Bliss.json index ef161cde..ccc351df 100644 --- a/QuestPaths/4.x - Stormblood/MSQ/A6.1-Fringes 2/2532_The Lady of Bliss.json +++ b/QuestPaths/4.x - Stormblood/MSQ/A6.1-Fringes 2/2532_The Lady of Bliss.json @@ -21,6 +21,17 @@ { "Sequence": 1, "Steps": [ + { + "DataId": 1020821, + "Position": { + "X": 276.7223, + "Y": 76.853935, + "Z": -23.51416 + }, + "TerritoryId": 612, + "InteractionType": "AcceptQuest", + "PickUpQuestId": 2816 + }, { "DataId": 1020589, "Position": { diff --git a/QuestPaths/4.x - Stormblood/MSQ/A6.2-Peaks 2/2542_With Tired Hands We Toil.json b/QuestPaths/4.x - Stormblood/MSQ/A6.2-Peaks 2/2542_With Tired Hands We Toil.json index 451ae480..25b70b6a 100644 --- a/QuestPaths/4.x - Stormblood/MSQ/A6.2-Peaks 2/2542_With Tired Hands We Toil.json +++ b/QuestPaths/4.x - Stormblood/MSQ/A6.2-Peaks 2/2542_With Tired Hands We Toil.json @@ -27,6 +27,17 @@ { "Sequence": 1, "Steps": [ + { + "DataId": 1020873, + "Position": { + "X": -327.96222, + "Y": 258.90652, + "Z": 757.3815 + }, + "TerritoryId": 620, + "InteractionType": "AcceptQuest", + "PickUpQuestId": 2842 + }, { "DataId": 2009008, "Position": { @@ -120,4 +131,4 @@ ] } ] -} \ No newline at end of file +} diff --git a/QuestPaths/4.x - Stormblood/MSQ/A7-Lochs/2549_The Key to Victory.json b/QuestPaths/4.x - Stormblood/MSQ/A7-Lochs/2549_The Key to Victory.json index 659248b9..426b491e 100644 --- a/QuestPaths/4.x - Stormblood/MSQ/A7-Lochs/2549_The Key to Victory.json +++ b/QuestPaths/4.x - Stormblood/MSQ/A7-Lochs/2549_The Key to Victory.json @@ -26,6 +26,48 @@ { "Sequence": 1, "Steps": [ + { + "Position": { + "X": -791.2012, + "Y": 46.3994, + "Z": -15.904689 + }, + "TerritoryId": 621, + "InteractionType": "WalkTo", + "TargetTerritoryId": 620, + "SkipConditions": { + "StepIf": { + "InTerritory": [ + 620 + ], + "QuestsCompleted": [ + 2860 + ] + } + } + }, + { + "DataId": 1023167, + "Position": { + "X": 313.28296, + "Y": 324.51355, + "Z": 362.4475 + }, + "TerritoryId": 620, + "InteractionType": "AcceptQuest", + "PickUpQuestId": 2851 + }, + { + "DataId": 1020893, + "Position": { + "X": 283.77197, + "Y": 322.87146, + "Z": 752.34607 + }, + "TerritoryId": 620, + "InteractionType": "AcceptQuest", + "PickUpQuestId": 2860 + }, { "DataId": 1021705, "Position": { @@ -35,7 +77,8 @@ }, "StopDistance": 7, "TerritoryId": 621, - "InteractionType": "SinglePlayerDuty" + "InteractionType": "SinglePlayerDuty", + "AetheryteShortcut": "Lochs - Porta Praetoria" } ] }, @@ -49,6 +92,7 @@ "Y": 45.410225, "Z": 766.47595 }, + "StopDistance": 5, "TerritoryId": 621, "InteractionType": "CompleteQuest" } diff --git a/QuestPaths/4.x - Stormblood/MSQ/A7-Lochs/2550_The Resonant.json b/QuestPaths/4.x - Stormblood/MSQ/A7-Lochs/2550_The Resonant.json index fe1034c1..ccda8a09 100644 --- a/QuestPaths/4.x - Stormblood/MSQ/A7-Lochs/2550_The Resonant.json +++ b/QuestPaths/4.x - Stormblood/MSQ/A7-Lochs/2550_The Resonant.json @@ -12,6 +12,7 @@ "Y": 45.410225, "Z": 766.47595 }, + "StopDistance": 5, "TerritoryId": 621, "InteractionType": "AcceptQuest" } @@ -99,7 +100,8 @@ }, "TerritoryId": 621, "InteractionType": "WalkTo", - "StopDistance": 0.25 + "StopDistance": 0.25, + "RestartNavigationIfCancelled": false }, { "Position": { diff --git a/QuestPaths/4.x - Stormblood/MSQ/A7-Lochs/2552_The Measure of His Reach.json b/QuestPaths/4.x - Stormblood/MSQ/A7-Lochs/2552_The Measure of His Reach.json index edb33ea0..5c01d821 100644 --- a/QuestPaths/4.x - Stormblood/MSQ/A7-Lochs/2552_The Measure of His Reach.json +++ b/QuestPaths/4.x - Stormblood/MSQ/A7-Lochs/2552_The Measure of His Reach.json @@ -26,6 +26,50 @@ { "Sequence": 1, "Steps": [ + { + "DataId": 1022987, + "Position": { + "X": -662.13477, + "Y": 49.999794, + "Z": -48.874695 + }, + "TerritoryId": 621, + "InteractionType": "AcceptQuest", + "PickUpQuestId": 2881 + }, + { + "DataId": 1022992, + "Position": { + "X": -506.6148, + "Y": 8.7, + "Z": -40.299072 + }, + "TerritoryId": 621, + "InteractionType": "AcceptQuest", + "PickUpQuestId": 2877 + }, + { + "DataId": 1022990, + "Position": { + "X": -524.58997, + "Y": 8.688546, + "Z": -19.424805 + }, + "TerritoryId": 621, + "InteractionType": "AcceptQuest", + "PickUpQuestId": 2880 + }, + { + "DataId": 1022991, + "Position": { + "X": -539.6353, + "Y": 7.6119823, + "Z": 52.140015 + }, + "TerritoryId": 621, + "InteractionType": "AcceptQuest", + "PickUpQuestId": 2883 + }, { "DataId": 2007993, "Position": { @@ -102,4 +146,4 @@ ] } ] -} \ No newline at end of file +} 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 6f3c9c7f..d23fe19c 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 @@ -27,6 +27,18 @@ { "Sequence": 1, "Steps": [ + { + "DataId": 1023048, + "Position": { + "X": 497.76453, + "Y": 69.99941, + "Z": 583.7339 + }, + "TerritoryId": 621, + "InteractionType": "Interact", + "TargetTerritoryId": 621, + "Fly": true + }, { "DataId": 1024134, "Position": { @@ -100,7 +112,7 @@ "Y": 70, "Z": 576.0128 }, - "StopDistance": 5, + "StopDistance": 6, "TerritoryId": 621, "InteractionType": "CompleteQuest" } diff --git a/QuestPaths/4.x - Stormblood/MSQ/B-4.1/2971_A Blissful Arrival.json b/QuestPaths/4.x - Stormblood/MSQ/B-4.1/2971_A Blissful Arrival.json index 1241d40f..ad3f298d 100644 --- a/QuestPaths/4.x - Stormblood/MSQ/B-4.1/2971_A Blissful Arrival.json +++ b/QuestPaths/4.x - Stormblood/MSQ/B-4.1/2971_A Blissful Arrival.json @@ -29,7 +29,8 @@ }, "TerritoryId": 621, "InteractionType": "WalkTo", - "Fly": true + "Fly": true, + "AetheryteShortcut": "Lochs - Ala Mhigan Quarter" }, { "DataId": 2009047, @@ -40,8 +41,7 @@ }, "StopDistance": 4, "TerritoryId": 621, - "InteractionType": "Interact", - "AetheryteShortcut": "Lochs - Ala Mhigan Quarter" + "InteractionType": "Interact" } ] }, @@ -64,6 +64,22 @@ { "Sequence": 255, "Steps": [ + { + "DataId": 1023048, + "Position": { + "X": 497.76453, + "Y": 69.99941, + "Z": 583.7339 + }, + "TerritoryId": 621, + "InteractionType": "Interact", + "TargetTerritoryId": 621, + "SkipConditions": { + "StepIf": { + "Flying": "Unlocked" + } + } + }, { "DataId": 1024057, "Position": { diff --git a/QuestPaths/4.x - Stormblood/MSQ/C-4.2/3023_The Sword in the Store.json b/QuestPaths/4.x - Stormblood/MSQ/C-4.2/3023_The Sword in the Store.json index 125abad6..e71bf895 100644 --- a/QuestPaths/4.x - Stormblood/MSQ/C-4.2/3023_The Sword in the Store.json +++ b/QuestPaths/4.x - Stormblood/MSQ/C-4.2/3023_The Sword in the Store.json @@ -12,7 +12,7 @@ "Y": 10.503965, "Z": -213.76367 }, - "StopDistance": 4, + "StopDistance": 5, "TerritoryId": 628, "InteractionType": "AcceptQuest", "AetheryteShortcut": "Kugane", diff --git a/QuestPaths/4.x - Stormblood/MSQ/C-4.2/3027_His Forgotten Home.json b/QuestPaths/4.x - Stormblood/MSQ/C-4.2/3027_His Forgotten Home.json index 5e94b93a..480b6717 100644 --- a/QuestPaths/4.x - Stormblood/MSQ/C-4.2/3027_His Forgotten Home.json +++ b/QuestPaths/4.x - Stormblood/MSQ/C-4.2/3027_His Forgotten Home.json @@ -59,6 +59,16 @@ { "Sequence": 3, "Steps": [ + { + "Position": { + "X": -347.07507, + "Y": 1.2300062, + "Z": -345.90344 + }, + "TerritoryId": 614, + "InteractionType": "WalkTo", + "Fly": true + }, { "DataId": 1024986, "Position": { @@ -67,8 +77,7 @@ "Z": -344.13672 }, "TerritoryId": 614, - "InteractionType": "SinglePlayerDuty", - "Fly": true + "InteractionType": "SinglePlayerDuty" } ] }, @@ -82,10 +91,11 @@ "Y": 17.720512, "Z": 301.59448 }, + "StopDistance": 5, "TerritoryId": 614, "InteractionType": "CompleteQuest" } ] } ] -} \ No newline at end of file +} diff --git a/QuestPaths/4.x - Stormblood/MSQ/C-4.2/3028_A Guilty Conscience.json b/QuestPaths/4.x - Stormblood/MSQ/C-4.2/3028_A Guilty Conscience.json index b99143fc..ae2caa3b 100644 --- a/QuestPaths/4.x - Stormblood/MSQ/C-4.2/3028_A Guilty Conscience.json +++ b/QuestPaths/4.x - Stormblood/MSQ/C-4.2/3028_A Guilty Conscience.json @@ -12,6 +12,7 @@ "Y": 17.720512, "Z": 301.59448 }, + "StopDistance": 5, "TerritoryId": 614, "InteractionType": "AcceptQuest" } @@ -67,4 +68,4 @@ ] } ] -} \ No newline at end of file +} diff --git a/QuestPaths/4.x - Stormblood/MSQ/C-4.2/3029_Rise of a New Sun.json b/QuestPaths/4.x - Stormblood/MSQ/C-4.2/3029_Rise of a New Sun.json index e7a12a16..1a3edd65 100644 --- a/QuestPaths/4.x - Stormblood/MSQ/C-4.2/3029_Rise of a New Sun.json +++ b/QuestPaths/4.x - Stormblood/MSQ/C-4.2/3029_Rise of a New Sun.json @@ -13,7 +13,10 @@ "Z": -2.7619019 }, "TerritoryId": 744, - "InteractionType": "AcceptQuest" + "InteractionType": "AcceptQuest", + "DelaySecondsAtStart": 3, + "StopDistance": 1, + "$": "This may skip movement as the game thinks we're close enough at the start; unsure if delay helps" } ] }, 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 87faa68a..fdb4747b 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 @@ -34,6 +34,7 @@ "StopDistance": 7, "TerritoryId": 621, "InteractionType": "Interact", + "TargetTerritoryId": 829, "DialogueChoices": [ { "Type": "YesNo", diff --git a/Questionable/Windows/UiUtils.cs b/Questionable/Windows/UiUtils.cs index 4e1fb9c3..e0155816 100644 --- a/Questionable/Windows/UiUtils.cs +++ b/Questionable/Windows/UiUtils.cs @@ -56,6 +56,7 @@ internal sealed class UiUtils if (extraPadding > 0) ImGui.SetCursorPosX(ImGui.GetCursorPosX() + extraPadding); ImGui.TextUnformatted(text); + hover |= ImGui.IsItemHovered(); return hover; } From d59026bf1d39e1e29d1f047e6d5831ecc0b6ecea Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Wed, 4 Sep 2024 19:53:18 +0200 Subject: [PATCH 173/450] Add moogle unlock quests --- .../1821_A Pebble for Your Thoughts.json | 120 +++++++++ .../1824_Spineless Wadjets.json | 190 ++++++++++++++ .../1831_Far from Home.json | 155 +++++++++++ .../1832_A Nutty Initiation.json | 118 +++++++++ .../1863_Protecting the Pom.json | 73 ++++++ .../1864_Save the Pomguard.json | 107 ++++++++ .../1865_An Urgent Message.json | 55 ++++ .../1866_An Uneasy Feeling.json | 128 +++++++++ .../1867_A Moogle's Intuition.json | 128 +++++++++ .../1868_Trouble at Zenith.json | 76 ++++++ .../1871_Laying the First Brick.json | 116 +++++++++ .../1872_Into the Mists.json | 87 +++++++ .../1878_Bitter Is the Night.json | 112 ++++++++ .../1879_These Things Take Time.json | 76 ++++++ .../1880_Thar Be Dragons.json | 57 ++++ .../1881_Cleaning House.json | 88 +++++++ .../1882_Finders Keepers.json | 119 +++++++++ .../1883_An Unwelcome Surprise.json | 111 ++++++++ .../1884_A Meter Too Far.json | 243 ++++++++++++++++++ 19 files changed, 2159 insertions(+) create mode 100644 QuestPaths/3.x - Heavensward/Side Quests/The Churning Mists/1821_A Pebble for Your Thoughts.json create mode 100644 QuestPaths/3.x - Heavensward/Side Quests/The Churning Mists/1824_Spineless Wadjets.json create mode 100644 QuestPaths/3.x - Heavensward/Side Quests/The Churning Mists/1831_Far from Home.json create mode 100644 QuestPaths/3.x - Heavensward/Side Quests/The Churning Mists/1832_A Nutty Initiation.json create mode 100644 QuestPaths/3.x - Heavensward/Side Quests/The Churning Mists/1863_Protecting the Pom.json create mode 100644 QuestPaths/3.x - Heavensward/Side Quests/The Churning Mists/1864_Save the Pomguard.json create mode 100644 QuestPaths/3.x - Heavensward/Side Quests/The Churning Mists/1865_An Urgent Message.json create mode 100644 QuestPaths/3.x - Heavensward/Side Quests/The Churning Mists/1866_An Uneasy Feeling.json create mode 100644 QuestPaths/3.x - Heavensward/Side Quests/The Churning Mists/1867_A Moogle's Intuition.json create mode 100644 QuestPaths/3.x - Heavensward/Side Quests/The Churning Mists/1868_Trouble at Zenith.json create mode 100644 QuestPaths/3.x - Heavensward/Side Quests/The Churning Mists/1871_Laying the First Brick.json create mode 100644 QuestPaths/3.x - Heavensward/Side Quests/The Churning Mists/1872_Into the Mists.json create mode 100644 QuestPaths/3.x - Heavensward/Side Quests/The Churning Mists/1878_Bitter Is the Night.json create mode 100644 QuestPaths/3.x - Heavensward/Side Quests/The Churning Mists/1879_These Things Take Time.json create mode 100644 QuestPaths/3.x - Heavensward/Side Quests/The Churning Mists/1880_Thar Be Dragons.json create mode 100644 QuestPaths/3.x - Heavensward/Side Quests/The Churning Mists/1881_Cleaning House.json create mode 100644 QuestPaths/3.x - Heavensward/Side Quests/The Churning Mists/1882_Finders Keepers.json create mode 100644 QuestPaths/3.x - Heavensward/Side Quests/The Churning Mists/1883_An Unwelcome Surprise.json create mode 100644 QuestPaths/3.x - Heavensward/Side Quests/The Churning Mists/1884_A Meter Too Far.json diff --git a/QuestPaths/3.x - Heavensward/Side Quests/The Churning Mists/1821_A Pebble for Your Thoughts.json b/QuestPaths/3.x - Heavensward/Side Quests/The Churning Mists/1821_A Pebble for Your Thoughts.json new file mode 100644 index 00000000..0d78e30d --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Side Quests/The Churning Mists/1821_A Pebble for Your Thoughts.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": 1014424, + "Position": { + "X": 357.47314, + "Y": 2.7662196, + "Z": 638.3002 + }, + "TerritoryId": 400, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "The Churning Mists - Moghome", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + }, + "Fly": true + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1014425, + "Position": { + "X": 475.7915, + "Y": -4.4960318, + "Z": 722.13306 + }, + "TerritoryId": 400, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1014427, + "Position": { + "X": 474.6012, + "Y": -4.4750566, + "Z": 721.5532 + }, + "TerritoryId": 400, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "Position": { + "X": 769.16034, + "Y": -9.491294, + "Z": 286.96594 + }, + "TerritoryId": 400, + "InteractionType": "WalkTo", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "Position": { + "X": 769.16034, + "Y": -9.491294, + "Z": 286.96594 + }, + "TerritoryId": 400, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [ + 4039 + ] + }, + { + "DataId": 1014426, + "Position": { + "X": 770.2295, + "Y": -9.491293, + "Z": 287.95288 + }, + "StopDistance": 7, + "TerritoryId": 400, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1014427, + "Position": { + "X": 474.6012, + "Y": -4.4750566, + "Z": 721.5532 + }, + "TerritoryId": 400, + "InteractionType": "CompleteQuest", + "Fly": true, + "NextQuestId": 1824 + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Side Quests/The Churning Mists/1824_Spineless Wadjets.json b/QuestPaths/3.x - Heavensward/Side Quests/The Churning Mists/1824_Spineless Wadjets.json new file mode 100644 index 00000000..253bb3bc --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Side Quests/The Churning Mists/1824_Spineless Wadjets.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": 1014429, + "Position": { + "X": -77.34796, + "Y": -8.655561, + "Z": 165.23987 + }, + "TerritoryId": 400, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "The Churning Mists - Moghome", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1014431, + "Position": { + "X": -77.37854, + "Y": -8.6555605, + "Z": 166.36902 + }, + "TerritoryId": 400, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1014430, + "Position": { + "X": 357.90027, + "Y": -29.897694, + "Z": -105.21106 + }, + "TerritoryId": 400, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "Position": { + "X": 318.27338, + "Y": -29.677633, + "Z": -148.89816 + }, + "TerritoryId": 400, + "InteractionType": "Combat", + "Fly": true, + "EnemySpawnType": "OverworldEnemies", + "ComplexCombatData": [ + { + "DataId": 4470, + "MinimumKillCount": 1 + } + ] + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1014430, + "Position": { + "X": 357.90027, + "Y": -29.897694, + "Z": -105.21106 + }, + "TerritoryId": 400, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "Position": { + "X": 293.52023, + "Y": -30.697027, + "Z": -167.88272 + }, + "TerritoryId": 400, + "InteractionType": "Combat", + "Fly": true, + "EnemySpawnType": "OverworldEnemies", + "ComplexCombatData": [ + { + "DataId": 4470, + "MinimumKillCount": 1 + } + ] + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1014430, + "Position": { + "X": 357.90027, + "Y": -29.897694, + "Z": -105.21106 + }, + "TerritoryId": 400, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 7, + "Steps": [ + { + "Position": { + "X": 226.58783, + "Y": -36.917496, + "Z": -100.45467 + }, + "TerritoryId": 400, + "InteractionType": "Combat", + "Fly": true, + "EnemySpawnType": "OverworldEnemies", + "ComplexCombatData": [ + { + "DataId": 4470, + "MinimumKillCount": 1 + } + ] + } + ] + }, + { + "Sequence": 8, + "Steps": [ + { + "DataId": 1014430, + "Position": { + "X": 357.90027, + "Y": -29.897694, + "Z": -105.21106 + }, + "TerritoryId": 400, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1014431, + "Position": { + "X": -77.37854, + "Y": -8.6555605, + "Z": 166.36902 + }, + "TerritoryId": 400, + "InteractionType": "CompleteQuest", + "Fly": true, + "NextQuestId": 1831 + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Side Quests/The Churning Mists/1831_Far from Home.json b/QuestPaths/3.x - Heavensward/Side Quests/The Churning Mists/1831_Far from Home.json new file mode 100644 index 00000000..79f6bdd1 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Side Quests/The Churning Mists/1831_Far from Home.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": 1014432, + "Position": { + "X": -625.8793, + "Y": 50, + "Z": 332.63135 + }, + "TerritoryId": 400, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "The Churning Mists - Zenith" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1014436, + "Position": { + "X": -626.42865, + "Y": 49.999996, + "Z": 334.0658 + }, + "StopDistance": 7, + "TerritoryId": 400, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1014432, + "Position": { + "X": -625.8793, + "Y": 50, + "Z": 332.63135 + }, + "TerritoryId": 400, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "Position": { + "X": -473.00934, + "Y": 42.910698, + "Z": 361.0051 + }, + "TerritoryId": 400, + "InteractionType": "WalkTo" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "Position": { + "X": -473.00934, + "Y": 42.910698, + "Z": 361.0051 + }, + "TerritoryId": 400, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [ + 4076 + ] + }, + { + "DataId": 1014433, + "Position": { + "X": -473.4112, + "Y": 42.91877, + "Z": 360.0061 + }, + "TerritoryId": 400, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "Position": { + "X": -177.2358, + "Y": -20.962738, + "Z": 266.31805 + }, + "TerritoryId": 400, + "InteractionType": "WalkTo", + "Fly": true + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "Position": { + "X": -177.2358, + "Y": -20.962738, + "Z": 266.31805 + }, + "TerritoryId": 400, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [ + 4076 + ] + }, + { + "DataId": 1014434, + "Position": { + "X": -177.11151, + "Y": -20.990452, + "Z": 266.5293 + }, + "TerritoryId": 400, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1014435, + "Position": { + "X": -109.056274, + "Y": -8.844471, + "Z": 209.3385 + }, + "TerritoryId": 400, + "InteractionType": "CompleteQuest", + "Fly": true, + "NextQuestId": 1832 + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Side Quests/The Churning Mists/1832_A Nutty Initiation.json b/QuestPaths/3.x - Heavensward/Side Quests/The Churning Mists/1832_A Nutty Initiation.json new file mode 100644 index 00000000..4b768d93 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Side Quests/The Churning Mists/1832_A Nutty Initiation.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": 1014442, + "Position": { + "X": 455.28345, + "Y": -24.191578, + "Z": 109.05615 + }, + "TerritoryId": 400, + "InteractionType": "AcceptQuest", + "Fly": true, + "AetheryteShortcut": "The Churning Mists - Moghome", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1014445, + "Position": { + "X": 455.2528, + "Y": -24.093994, + "Z": 109.88013 + }, + "TerritoryId": 400, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1014442, + "Position": { + "X": 455.28345, + "Y": -24.191578, + "Z": 109.05615 + }, + "TerritoryId": 400, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1012084, + "Position": { + "X": 225.54358, + "Y": 6.9602013, + "Z": 709.34607 + }, + "TerritoryId": 400, + "InteractionType": "Interact", + "AetheryteShortcut": "The Churning Mists - Moghome", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "Position": { + "X": 391.38687, + "Y": -27.748926, + "Z": 113.191864 + }, + "TerritoryId": 400, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 1014446, + "Position": { + "X": 389.7306, + "Y": -27.420471, + "Z": 114.06116 + }, + "TerritoryId": 400, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1012082, + "Position": { + "X": 381.70435, + "Y": -69.41491, + "Z": 691.5541 + }, + "TerritoryId": 400, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "The Churning Mists - Moghome", + "Fly": true, + "NextQuestId": 1863 + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Side Quests/The Churning Mists/1863_Protecting the Pom.json b/QuestPaths/3.x - Heavensward/Side Quests/The Churning Mists/1863_Protecting the Pom.json new file mode 100644 index 00000000..df979c20 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Side Quests/The Churning Mists/1863_Protecting the Pom.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": 1012082, + "Position": { + "X": 381.70435, + "Y": -69.41491, + "Z": 691.5541 + }, + "TerritoryId": 400, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": -6.1052914, + "Y": -20.632738, + "Z": 181.941 + }, + "StopDistance": 0.25, + "TerritoryId": 400, + "InteractionType": "Combat", + "Fly": true, + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [ + 3999 + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1014290, + "Position": { + "X": -6.302063, + "Y": -20.660929, + "Z": 181.75012 + }, + "TerritoryId": 400, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1014293, + "Position": { + "X": -106.889465, + "Y": 36.394444, + "Z": 186.1753 + }, + "TerritoryId": 400, + "InteractionType": "CompleteQuest", + "Fly": true, + "NextQuestId": 1864 + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Side Quests/The Churning Mists/1864_Save the Pomguard.json b/QuestPaths/3.x - Heavensward/Side Quests/The Churning Mists/1864_Save the Pomguard.json new file mode 100644 index 00000000..5ca1311a --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Side Quests/The Churning Mists/1864_Save the Pomguard.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": 1014293, + "Position": { + "X": -106.889465, + "Y": 36.394444, + "Z": 186.1753 + }, + "TerritoryId": 400, + "InteractionType": "AcceptQuest", + "Fly": true + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1014294, + "Position": { + "X": -369.64984, + "Y": 30.292116, + "Z": 423.0868 + }, + "TerritoryId": 400, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": -271.42133, + "Y": 41.099045, + "Z": 241.92078 + }, + "StopDistance": 0.25, + "TerritoryId": 400, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [ + 4076 + ], + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1014297, + "Position": { + "X": -271.44275, + "Y": 41.099045, + "Z": 242.20642 + }, + "TerritoryId": 400, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1014294, + "Position": { + "X": -369.64984, + "Y": 30.292116, + "Z": 423.0868 + }, + "TerritoryId": 400, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1014300, + "Position": { + "X": -696.34546, + "Y": 79, + "Z": 269.00122 + }, + "TerritoryId": 400, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "The Churning Mists - Zenith", + "Fly": true, + "NextQuestId": 1865 + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Side Quests/The Churning Mists/1865_An Urgent Message.json b/QuestPaths/3.x - Heavensward/Side Quests/The Churning Mists/1865_An Urgent Message.json new file mode 100644 index 00000000..22ce709f --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Side Quests/The Churning Mists/1865_An Urgent Message.json @@ -0,0 +1,55 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1014300, + "Position": { + "X": -696.34546, + "Y": 79, + "Z": 269.00122 + }, + "TerritoryId": 400, + "InteractionType": "AcceptQuest", + "Fly": true + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1014303, + "Position": { + "X": -811.8868, + "Y": 83.29895, + "Z": 219.3789 + }, + "TerritoryId": 400, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1014304, + "Position": { + "X": -471.7937, + "Y": 39.90609, + "Z": 156.2981 + }, + "TerritoryId": 400, + "InteractionType": "CompleteQuest", + "Fly": true, + "NextQuestId": 1866 + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Side Quests/The Churning Mists/1866_An Uneasy Feeling.json b/QuestPaths/3.x - Heavensward/Side Quests/The Churning Mists/1866_An Uneasy Feeling.json new file mode 100644 index 00000000..74b0eb0e --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Side Quests/The Churning Mists/1866_An Uneasy Feeling.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": -662.4473, + "Y": 73, + "Z": 172.12396 + }, + "TerritoryId": 400, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 1014307, + "Position": { + "X": -661.40234, + "Y": 73, + "Z": 171.03833 + }, + "TerritoryId": 400, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": -611.016, + "Y": 81, + "Z": 142.83911 + }, + "TerritoryId": 400, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [ + 4045 + ], + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, + { + "Position": { + "X": -627.9241, + "Y": 81, + "Z": 98.83264 + }, + "TerritoryId": 400, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [ + 4045 + ], + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "Position": { + "X": -579.05023, + "Y": 80.999985, + "Z": 101.69408 + }, + "TerritoryId": 400, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [ + 4045 + ], + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": -662.4473, + "Y": 73, + "Z": 172.12396 + }, + "TerritoryId": 400, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 1014307, + "Position": { + "X": -661.40234, + "Y": 73, + "Z": 171.03833 + }, + "TerritoryId": 400, + "InteractionType": "CompleteQuest", + "NextQuestId": 1867 + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Side Quests/The Churning Mists/1867_A Moogle's Intuition.json b/QuestPaths/3.x - Heavensward/Side Quests/The Churning Mists/1867_A Moogle's Intuition.json new file mode 100644 index 00000000..c15f99a0 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Side Quests/The Churning Mists/1867_A Moogle's Intuition.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": -745.7825, + "Y": 73, + "Z": 317.39563 + }, + "TerritoryId": 400, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 1014308, + "Position": { + "X": -746.12036, + "Y": 73, + "Z": 318.7456 + }, + "TerritoryId": 400, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": -723.45496, + "Y": 81, + "Z": 378.70322 + }, + "TerritoryId": 400, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [ + 4045 + ], + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, + { + "Position": { + "X": -722.5188, + "Y": 80.999985, + "Z": 427.1239 + }, + "TerritoryId": 400, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [ + 4045 + ], + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "Position": { + "X": -765.2328, + "Y": 81, + "Z": 406.13608 + }, + "TerritoryId": 400, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [ + 4045 + ], + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": -745.7825, + "Y": 73, + "Z": 317.39563 + }, + "TerritoryId": 400, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 1014308, + "Position": { + "X": -746.12036, + "Y": 73, + "Z": 318.7456 + }, + "TerritoryId": 400, + "InteractionType": "CompleteQuest", + "NextQuestId": 1868 + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Side Quests/The Churning Mists/1868_Trouble at Zenith.json b/QuestPaths/3.x - Heavensward/Side Quests/The Churning Mists/1868_Trouble at Zenith.json new file mode 100644 index 00000000..972ba8ed --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Side Quests/The Churning Mists/1868_Trouble at Zenith.json @@ -0,0 +1,76 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1014300, + "Position": { + "X": -696.34546, + "Y": 79, + "Z": 269.00122 + }, + "TerritoryId": 400, + "InteractionType": "AcceptQuest", + "Fly": true + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1014310, + "Position": { + "X": -713.80176, + "Y": 343, + "Z": 238.94104 + }, + "TerritoryId": 400, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 4493 + ], + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1014311, + "Position": { + "X": -711.17725, + "Y": 342.0005, + "Z": 236.3164 + }, + "StopDistance": 5, + "TerritoryId": 400, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1012082, + "Position": { + "X": 381.70435, + "Y": -69.41491, + "Z": 691.5541 + }, + "TerritoryId": 400, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "The Churning Mists - Moghome", + "Fly": true, + "NextQuestId": 1872 + } + ] + } + ] +} 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 new file mode 100644 index 00000000..032518dc --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Side Quests/The Churning Mists/1871_Laying the First Brick.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": 1013560, + "Position": { + "X": 15.609924, + "Y": 81.84059, + "Z": -317.37244 + }, + "TerritoryId": 400, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2005821, + "Position": { + "X": 16.159302, + "Y": 82.1698, + "Z": -322.89618 + }, + "StopDistance": 4, + "TerritoryId": 400, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1013569, + "Position": { + "X": 330.73914, + "Y": 223.01535, + "Z": -480.36932 + }, + "StopDistance": 1, + "TerritoryId": 400, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "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" + ] + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "Position": { + "X": 380.00024, + "Y": -69.42949, + "Z": 694.65753 + }, + "TerritoryId": 400, + "InteractionType": "WalkTo", + "AetheryteShortcut": "The Churning Mists - Moghome" + }, + { + "DataId": 1012077, + "Position": { + "X": 381.70435, + "Y": -66.84979, + "Z": 700.86194 + }, + "StopDistance": 8, + "TerritoryId": 400, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1014314, + "Position": { + "X": 12.100342, + "Y": 81.8406, + "Z": -318.0133 + }, + "TerritoryId": 400, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Side Quests/The Churning Mists/1872_Into the Mists.json b/QuestPaths/3.x - Heavensward/Side Quests/The Churning Mists/1872_Into the Mists.json new file mode 100644 index 00000000..546bf2f8 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Side Quests/The Churning Mists/1872_Into the Mists.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": 1013557, + "Position": { + "X": 9.6588745, + "Y": 15.96505, + "Z": -7.4921875 + }, + "TerritoryId": 419, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] The Last Vigil" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 419 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1012163, + "Position": { + "X": 128.25195, + "Y": 24.458832, + "Z": -0.6867676 + }, + "TerritoryId": 418, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Ishgard] The Last Vigil", + "[Ishgard] The Forgotten Knight" + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1013559, + "Position": { + "X": 129.22852, + "Y": 24.397108, + "Z": -1.9379272 + }, + "StopDistance": 5, + "TerritoryId": 418, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1013560, + "Position": { + "X": 15.609924, + "Y": 81.84059, + "Z": -317.37244 + }, + "TerritoryId": 400, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "The Churning Mists - Moghome", + "Fly": true, + "NextQuestId": 1878 + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Side Quests/The Churning Mists/1878_Bitter Is the Night.json b/QuestPaths/3.x - Heavensward/Side Quests/The Churning Mists/1878_Bitter Is the Night.json new file mode 100644 index 00000000..fcafa8c3 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Side Quests/The Churning Mists/1878_Bitter Is the Night.json @@ -0,0 +1,112 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1013560, + "Position": { + "X": 15.609924, + "Y": 81.84059, + "Z": -317.37244 + }, + "TerritoryId": 400, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": -40.84487, + "Y": 62.87995, + "Z": -293.59937 + }, + "StopDistance": 0.5, + "TerritoryId": 400, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [ + 4044 + ], + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "Position": { + "X": -49.8887, + "Y": 76.75615, + "Z": -348.67075 + }, + "StopDistance": 0.5, + "TerritoryId": 400, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [ + 4044 + ], + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, + { + "Position": { + "X": -10.931383, + "Y": 76.75615, + "Z": -249.3747 + }, + "StopDistance": 0.5, + "TerritoryId": 400, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [ + 4044 + ], + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1013560, + "Position": { + "X": 15.609924, + "Y": 81.84059, + "Z": -317.37244 + }, + "TerritoryId": 400, + "InteractionType": "CompleteQuest", + "Fly": true, + "NextQuestId": 1881 + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Side Quests/The Churning Mists/1879_These Things Take Time.json b/QuestPaths/3.x - Heavensward/Side Quests/The Churning Mists/1879_These Things Take Time.json new file mode 100644 index 00000000..329f332b --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Side Quests/The Churning Mists/1879_These Things Take Time.json @@ -0,0 +1,76 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1013560, + "Position": { + "X": 15.609924, + "Y": 81.84059, + "Z": -317.37244 + }, + "TerritoryId": 400, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1013566, + "Position": { + "X": -753.59735, + "Y": 285.65656, + "Z": -168.65796 + }, + "StopDistance": 0.25, + "TerritoryId": 400, + "InteractionType": "Interact", + "AetheryteShortcut": "The Churning Mists - Zenith", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": -734.0618, + "Y": 258.66254, + "Z": -178.1613 + }, + "TerritoryId": 400, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "KillEnemyDataIds": [ + 4044 + ], + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1013566, + "Position": { + "X": -753.59735, + "Y": 285.65656, + "Z": -168.65796 + }, + "StopDistance": 0.25, + "TerritoryId": 400, + "InteractionType": "CompleteQuest", + "Fly": true, + "NextQuestId": 1883 + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Side Quests/The Churning Mists/1880_Thar Be Dragons.json b/QuestPaths/3.x - Heavensward/Side Quests/The Churning Mists/1880_Thar Be Dragons.json new file mode 100644 index 00000000..a74c5124 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Side Quests/The Churning Mists/1880_Thar Be Dragons.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": 1013567, + "Position": { + "X": 15.609924, + "Y": 81.84059, + "Z": -317.37244 + }, + "TerritoryId": 400, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": -131.11111, + "Y": -64.89958, + "Z": -321.4496 + }, + "StopDistance": 0.5, + "TerritoryId": 400, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [ + 4505 + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1013560, + "Position": { + "X": 15.609924, + "Y": 81.84059, + "Z": -317.37244 + }, + "TerritoryId": 400, + "InteractionType": "CompleteQuest", + "Fly": true, + "NextQuestId": 1871 + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Side Quests/The Churning Mists/1881_Cleaning House.json b/QuestPaths/3.x - Heavensward/Side Quests/The Churning Mists/1881_Cleaning House.json new file mode 100644 index 00000000..81661277 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Side Quests/The Churning Mists/1881_Cleaning House.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": 1013560, + "Position": { + "X": 15.609924, + "Y": 81.84059, + "Z": -317.37244 + }, + "TerritoryId": 400, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1013569, + "Position": { + "X": 330.73914, + "Y": 223.01535, + "Z": -480.36932 + }, + "StopDistance": 1, + "TerritoryId": 400, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": 315.91586, + "Y": 234.0008, + "Z": -617.9445 + }, + "TerritoryId": 400, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "ComplexCombatData": [ + { + "DataId": 4469, + "MinimumKillCount": 3, + "CompletionQuestVariablesFlags": [ + { + "Low": 3 + }, + null, + null, + null, + null, + null + ] + } + ], + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1013569, + "Position": { + "X": 330.73914, + "Y": 223.01535, + "Z": -480.36932 + }, + "StopDistance": 1, + "TerritoryId": 400, + "InteractionType": "CompleteQuest", + "Fly": true, + "NextQuestId": 1882 + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Side Quests/The Churning Mists/1882_Finders Keepers.json b/QuestPaths/3.x - Heavensward/Side Quests/The Churning Mists/1882_Finders Keepers.json new file mode 100644 index 00000000..b1aef8de --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Side Quests/The Churning Mists/1882_Finders Keepers.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": 1013569, + "Position": { + "X": 330.73914, + "Y": 223.01535, + "Z": -480.36932 + }, + "TerritoryId": 400, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": 159.85898, + "Y": 212.64731, + "Z": -734.95905 + }, + "TerritoryId": 400, + "InteractionType": "WalkTo", + "Fly": true, + "SkipConditions": { + "StepIf": { + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + } + } + }, + { + "DataId": 2005805, + "Position": { + "X": 161.39453, + "Y": 212.6344, + "Z": -733.7301 + }, + "TerritoryId": 400, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 2005806, + "Position": { + "X": 110.52112, + "Y": 212.6344, + "Z": -785.15295 + }, + "TerritoryId": 400, + "InteractionType": "Interact", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1013569, + "Position": { + "X": 330.73914, + "Y": 223.01535, + "Z": -480.36932 + }, + "StopDistance": 1, + "TerritoryId": 400, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1013560, + "Position": { + "X": 15.609924, + "Y": 81.84059, + "Z": -317.37244 + }, + "TerritoryId": 400, + "InteractionType": "CompleteQuest", + "Fly": true, + "NextQuestId": 1879 + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Side Quests/The Churning Mists/1883_An Unwelcome Surprise.json b/QuestPaths/3.x - Heavensward/Side Quests/The Churning Mists/1883_An Unwelcome Surprise.json new file mode 100644 index 00000000..d7f9098d --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Side Quests/The Churning Mists/1883_An Unwelcome Surprise.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": 1013566, + "Position": { + "X": -753.59735, + "Y": 285.65656, + "Z": -168.65796 + }, + "TerritoryId": 400, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1013570, + "Position": { + "X": -556.4203, + "Y": 266.003, + "Z": -673.7926 + }, + "StopDistance": 0.25, + "TerritoryId": 400, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": -568.1701, + "Y": 258.0283, + "Z": -651.9808 + }, + "TerritoryId": 400, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "ComplexCombatData": [ + { + "DataId": 4044, + "MinimumKillCount": 3 + } + ], + "Fly": true, + "CompletionQuestVariablesFlags": [ + { + "Low": 3 + }, + null, + null, + null, + null, + null + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "Position": { + "X": -568.1701, + "Y": 258.0283, + "Z": -651.9808 + }, + "StopDistance": 100, + "TerritoryId": 400, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "ComplexCombatData": [ + { + "DataId": 4044, + "MinimumKillCount": 1 + } + ], + "$": "This is a separate quest sequence, but it just does the same thing as sequence 2?" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1013570, + "Position": { + "X": -556.4203, + "Y": 266.003, + "Z": -673.7926 + }, + "StopDistance": 0.25, + "TerritoryId": 400, + "InteractionType": "CompleteQuest", + "Fly": true, + "NextQuestId": 1884 + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Side Quests/The Churning Mists/1884_A Meter Too Far.json b/QuestPaths/3.x - Heavensward/Side Quests/The Churning Mists/1884_A Meter Too Far.json new file mode 100644 index 00000000..4beee70f --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Side Quests/The Churning Mists/1884_A Meter Too Far.json @@ -0,0 +1,243 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1013570, + "Position": { + "X": -556.4203, + "Y": 266.003, + "Z": -673.7926 + }, + "TerritoryId": 400, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2005812, + "Position": { + "X": -757.4121, + "Y": 257.49585, + "Z": -702.57117 + }, + "TerritoryId": 400, + "InteractionType": "Interact", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 2005811, + "Position": { + "X": -815.4879, + "Y": 258.0758, + "Z": -674.9218 + }, + "TerritoryId": 400, + "InteractionType": "Interact", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 2005813, + "Position": { + "X": -788.0522, + "Y": 257.67908, + "Z": -644.1901 + }, + "TerritoryId": 400, + "InteractionType": "Interact", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1013570, + "Position": { + "X": -556.4203, + "Y": 266.003, + "Z": -673.7926 + }, + "StopDistance": 0.25, + "TerritoryId": 400, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1013566, + "Position": { + "X": -753.59735, + "Y": 285.65656, + "Z": -168.65796 + }, + "StopDistance": 0.25, + "TerritoryId": 400, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 2005814, + "Position": { + "X": -755.9472, + "Y": 258.80823, + "Z": -207.72113 + }, + "TerritoryId": 400, + "InteractionType": "Interact", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 2005816, + "Position": { + "X": -698.024, + "Y": 258.28943, + "Z": -221.66785 + }, + "TerritoryId": 400, + "InteractionType": "Interact", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, + { + "DataId": 2005815, + "Position": { + "X": -701.83875, + "Y": 258.53357, + "Z": -165.23999 + }, + "TerritoryId": 400, + "InteractionType": "Interact", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1013566, + "Position": { + "X": -753.59735, + "Y": 285.65656, + "Z": -168.65796 + }, + "StopDistance": 0.25, + "TerritoryId": 400, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1013567, + "Position": { + "X": 15.609924, + "Y": 81.84059, + "Z": -317.37244 + }, + "TerritoryId": 400, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 7, + "Steps": [ + { + "DataId": 2005817, + "Position": { + "X": 16.159302, + "Y": 82.1698, + "Z": -322.89618 + }, + "TerritoryId": 400, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1013567, + "Position": { + "X": 15.609924, + "Y": 81.84059, + "Z": -317.37244 + }, + "TerritoryId": 400, + "InteractionType": "CompleteQuest", + "NextQuestId": 1880 + } + ] + } + ] +} From 7a9a49acf66d947ef5fd45140df47dc91b3e0210 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Wed, 4 Sep 2024 20:07:41 +0200 Subject: [PATCH 174/450] Remove TODO in 'Heroic Dreams' --- .../5.x - Shadowbringers/MSQ/I-5.3/3772_Heroic Dreams.json | 1 - 1 file changed, 1 deletion(-) diff --git a/QuestPaths/5.x - Shadowbringers/MSQ/I-5.3/3772_Heroic Dreams.json b/QuestPaths/5.x - Shadowbringers/MSQ/I-5.3/3772_Heroic Dreams.json index 029ed22f..af76cbcc 100644 --- a/QuestPaths/5.x - Shadowbringers/MSQ/I-5.3/3772_Heroic Dreams.json +++ b/QuestPaths/5.x - Shadowbringers/MSQ/I-5.3/3772_Heroic Dreams.json @@ -131,7 +131,6 @@ "Sequence": 4, "Steps": [ { - "Comment": "TODO Verify Area Transition", "Position": { "X": 837.8474, "Y": 37.845993, From 0e33da7385d15b640589959639442dc18d52ab8f Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Wed, 4 Sep 2024 23:18:06 +0200 Subject: [PATCH 175/450] Add quest requirements that are only mentioned in quest text --- Questionable/Data/QuestData.cs | 96 +++++++++++++++++++++++++++++++++- 1 file changed, 94 insertions(+), 2 deletions(-) diff --git a/Questionable/Data/QuestData.cs b/Questionable/Data/QuestData.cs index c2a8aba3..7ba7f3cc 100644 --- a/Questionable/Data/QuestData.cs +++ b/Questionable/Data/QuestData.cs @@ -62,8 +62,100 @@ internal sealed class QuestData _quests = quests.ToDictionary(x => x.QuestId, x => x); // workaround because the game doesn't require completion of the CT questline through normal means - QuestInfo aTimeToEveryPurpose = (QuestInfo)_quests[new QuestId(425)]; - aTimeToEveryPurpose.AddPreviousQuest(new QuestInfo.PreviousQuestInfo(new QuestId(495))); + AddPreviousQuest(new QuestId(425), new QuestId(495)); + + // "In order to undertake this quest" [...] + const int mountaintopDiplomacy = 1619; + const int inscrutableTastes = 2095; + const int tideGoesIn = 2490; + const int firstOfMany = 2534; + const int achtIaOrmhInn = 3320; + AddPreviousQuest(new QuestId(1480), new QuestId(2373)); + AddPreviousQuest(new QuestId(1717), new QuestId(mountaintopDiplomacy)); + AddPreviousQuest(new QuestId(2088), new QuestId(mountaintopDiplomacy)); + AddPreviousQuest(new QuestId(2062), new QuestId(1617)); + AddPreviousQuest(new QuestId(2063), new QuestId(mountaintopDiplomacy)); + AddPreviousQuest(new QuestId(2257), new QuestId(1655)); + AddPreviousQuest(new QuestId(2608), new QuestId(firstOfMany)); + AddPreviousQuest(new QuestId(2600), new QuestId(2466)); + AddPreviousQuest(new QuestId(2622), new QuestId(tideGoesIn)); + AddPreviousQuest(new QuestId(2624), new QuestId(firstOfMany)); + AddPreviousQuest(new QuestId(2898), new QuestId(tideGoesIn)); + AddPreviousQuest(new QuestId(2974), new QuestId(2491)); + AddPreviousQuest(new QuestId(2975), new QuestId(2630)); + AddPreviousQuest(new QuestId(2912), new QuestId(tideGoesIn)); + AddPreviousQuest(new QuestId(2914), new QuestId(2537)); + AddPreviousQuest(new QuestId(2919), new QuestId(2455)); + AddPreviousQuest(new QuestId(2952), new QuestId(2518)); + AddPreviousQuest(new QuestId(2904), new QuestId(2503)); + AddPreviousQuest(new QuestId(3038), new QuestId(firstOfMany)); + AddPreviousQuest(new QuestId(3087), new QuestId(100)); + AddPreviousQuest(new QuestId(3246), new QuestId(3314)); + AddPreviousQuest(new QuestId(3247), new QuestId(achtIaOrmhInn)); + AddPreviousQuest(new QuestId(3270), new QuestId(3333)); + AddPreviousQuest(new QuestId(3271), new QuestId(3634)); + AddPreviousQuest(new QuestId(3264), new QuestId(2247)); + AddPreviousQuest(new QuestId(3253), new QuestId(2247)); + AddPreviousQuest(new QuestId(3254), new QuestId(2537)); + AddPreviousQuest(new QuestId(3228), new QuestId(achtIaOrmhInn)); + AddPreviousQuest(new QuestId(3234), new QuestId(achtIaOrmhInn)); + AddPreviousQuest(new QuestId(3237), new QuestId(achtIaOrmhInn)); + AddPreviousQuest(new QuestId(3238), new QuestId(3634)); + AddPreviousQuest(new QuestId(3240), new QuestId(achtIaOrmhInn)); + AddPreviousQuest(new QuestId(3241), new QuestId(3648)); + AddPreviousQuest(new QuestId(3628), new QuestId(3301)); + AddPreviousQuest(new QuestId(3655), new QuestId(inscrutableTastes)); + AddPreviousQuest(new QuestId(3771), new QuestId(495)); + AddPreviousQuest(new QuestId(4068), new QuestId(1658)); + AddPreviousQuest(new QuestId(4078), new QuestId(1583)); + AddPreviousQuest(new QuestId(4150), new QuestId(4417)); + AddPreviousQuest(new QuestId(4155), new QuestId(4383)); + AddPreviousQuest(new QuestId(4156), new QuestId(3326)); + AddPreviousQuest(new QuestId(4158), new QuestId(4434)); + AddPreviousQuest(new QuestId(4159), new QuestId(4464)); + AddPreviousQuest(new QuestId(4163), new QuestId(4398)); + AddPreviousQuest(new QuestId(4165), new QuestId(4438)); + AddPreviousQuest(new QuestId(4473), new QuestId(inscrutableTastes)); + AddPreviousQuest(new QuestId(4650), new QuestId(2374)); + AddPreviousQuest(new QuestId(4662), new QuestId(3166)); + AddPreviousQuest(new QuestId(4761), new QuestId(4032)); + AddPreviousQuest(new QuestId(4812), new QuestId(4750)); + AddPreviousQuest(new QuestId(4851), new QuestId(2446)); + AddPreviousQuest(new QuestId(4856), new QuestId(1669)); + AddPreviousQuest(new QuestId(4857), new QuestId(2553)); + AddPreviousQuest(new QuestId(4979), new QuestId(4896)); + AddPreviousQuest(new QuestId(4980), new QuestId(4911)); + AddPreviousQuest(new QuestId(4985), new QuestId(4903)); + AddPreviousQuest(new QuestId(4987), new QuestId(4912)); + AddPreviousQuest(new QuestId(4988), new QuestId(4942)); + AddPreviousQuest(new QuestId(4992), new QuestId(4912)); + AddPreviousQuest(new QuestId(4999), new QuestId(4908)); + AddPreviousQuest(new QuestId(4966), new QuestId(inscrutableTastes)); + AddPreviousQuest(new QuestId(5000), new QuestId(4908)); + AddPreviousQuest(new QuestId(5001), new QuestId(4912)); + + // "In order to proceed with this quest" [...] + /* my little chocobo + AddPreviousQuest(new QuestId(1036), new QuestId()); + AddPreviousQuest(new QuestId(1663), new QuestId()); + AddPreviousQuest(new QuestId(3771), new QuestId()); + AddPreviousQuest(new QuestId(4521), new QuestId()); + */ + /* only applicable for fishers + const int spearfishing = 2922; + AddPreviousQuest(new QuestId(3811), new QuestId(spearfishing)); + AddPreviousQuest(new QuestId(3812), new QuestId(spearfishing)); + AddPreviousQuest(new QuestId(3817), new QuestId(spearfishing)); + AddPreviousQuest(new QuestId(3818), new QuestId(spearfishing)); + AddPreviousQuest(new QuestId(3821), new QuestId(spearfishing)); + AddPreviousQuest(new QuestId(3833), new QuestId(spearfishing)); + */ + } + + private void AddPreviousQuest(QuestId questToUpdate, QuestId requiredQuestId) + { + QuestInfo quest = (QuestInfo)_quests[questToUpdate]; + quest.AddPreviousQuest(new QuestInfo.PreviousQuestInfo(requiredQuestId)); } public IQuestInfo GetQuestInfo(ElementId elementId) From b92531f2ec4ee5ec4276968c51899892d3503451 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Wed, 4 Sep 2024 23:18:25 +0200 Subject: [PATCH 176/450] Restart movement if you're unmounted while moving (Logistics of War) --- Questionable/Controller/MovementController.cs | 39 ++++++++++++------- 1 file changed, 24 insertions(+), 15 deletions(-) diff --git a/Questionable/Controller/MovementController.cs b/Questionable/Controller/MovementController.cs index 676d51d0..95950e14 100644 --- a/Questionable/Controller/MovementController.cs +++ b/Questionable/Controller/MovementController.cs @@ -120,7 +120,8 @@ internal sealed class MovementController : IDisposable { Destination.NavmeshCalculations++; Destination.PartialRoute.AddRange(navPoints); - _logger.LogInformation("Running navmesh recalculation with fudged point ({From} to {To})", navPoints.Last(), Destination.Position); + _logger.LogInformation("Running navmesh recalculation with fudged point ({From} to {To})", + navPoints.Last(), Destination.Position); _cancellationTokenSource = new(); _cancellationTokenSource.CancelAfter(TimeSpan.FromSeconds(30)); @@ -161,20 +162,12 @@ internal sealed class MovementController : IDisposable if (Destination is { IsFlying: true } && _condition[ConditionFlag.Swimming]) { _logger.LogInformation("Flying but swimming, restarting as non-flying path..."); - var dest = Destination; - Stop(); - - if (dest.UseNavmesh) - { - NavigateTo(EMovementType.None, dest.DataId, dest.Position, false, false, dest.StopDistance, - dest.IgnoreDistanceToObject); - } - else - { - NavigateTo(EMovementType.None, dest.DataId, [dest.Position], false, false, dest.StopDistance, - dest.IgnoreDistanceToObject); - } - + Restart(Destination); + } + else if (Destination is { IsFlying: true } && !_condition[ConditionFlag.Mounted]) + { + _logger.LogInformation("Flying but not mounted, restarting as non-flying path..."); + Restart(Destination); return; } @@ -260,6 +253,22 @@ internal sealed class MovementController : IDisposable } } + private void Restart(DestinationData destination) + { + Stop(); + + if (destination.UseNavmesh) + { + NavigateTo(EMovementType.None, destination.DataId, destination.Position, false, false, + destination.StopDistance, destination.IgnoreDistanceToObject); + } + else + { + NavigateTo(EMovementType.None, destination.DataId, [destination.Position], false, false, + destination.StopDistance, destination.IgnoreDistanceToObject); + } + } + private bool IsOnFlightPath(Vector3 p) { Vector3? pointOnFloor = _navmeshIpc.GetPointOnFloor(p, true); From e1ff3267089e14629c92e1e2425caf51c3e5e062 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Thu, 5 Sep 2024 14:46:05 +0200 Subject: [PATCH 177/450] Only count successful jumps for for repeatedJumps --- Questionable/Controller/Steps/Interactions/Jump.cs | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/Questionable/Controller/Steps/Interactions/Jump.cs b/Questionable/Controller/Steps/Interactions/Jump.cs index 464eaace..d9d93db5 100644 --- a/Questionable/Controller/Steps/Interactions/Jump.cs +++ b/Questionable/Controller/Steps/Interactions/Jump.cs @@ -1,4 +1,5 @@ using System; +using Dalamud.Game.ClientState.Conditions; using Dalamud.Plugin.Services; using FFXIVClientStructs.FFXIV.Client.Game; using Microsoft.Extensions.DependencyInjection; @@ -15,6 +16,7 @@ internal static class Jump MovementController movementController, IClientState clientState, IFramework framework, + ICondition condition, ILoggerFactory loggerFactory) : SimpleTaskFactory { public override ITask? CreateTask(Quest quest, QuestSequence sequence, QuestStep step) @@ -38,7 +40,7 @@ internal static class Jump public ITask RepeatedJumps(uint? dataId, JumpDestination jumpDestination, string? comment) { return new DoRepeatedJumps(dataId, jumpDestination, comment, movementController, clientState, framework, - loggerFactory.CreateLogger()); + condition, loggerFactory.CreateLogger()); } } @@ -91,6 +93,7 @@ internal static class Jump MovementController movementController, IClientState clientState, IFramework framework, + ICondition condition, ILogger logger) : DoSingleJump(dataId, jumpDestination, comment, movementController, clientState, framework) { @@ -108,7 +111,7 @@ internal static class Jump public override ETaskResult Update() { - if (DateTime.Now < _continueAt) + if (DateTime.Now < _continueAt || condition[ConditionFlag.Jumping]) return ETaskResult.StillRunning; float stopDistance = _jumpDestination.CalculateStopDistance(); @@ -120,10 +123,10 @@ internal static class Jump _jumpDestination.Position.Y - 0.5f); unsafe { - ActionManager.Instance()->UseAction(ActionType.GeneralAction, 2); + if (ActionManager.Instance()->UseAction(ActionType.GeneralAction, 2)) + ++_attempts; } - ++_attempts; if (_attempts >= 50) throw new TaskException("Tried to jump too many times, didn't reach the target"); From 50a2b29fee0f7e4737955cac53baf6cc21ea2bec Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Thu, 5 Sep 2024 15:56:29 +0200 Subject: [PATCH 178/450] Add ShB tank role quests --- .../3243_The Man with Too Many Scars.json | 152 ++++++++++- .../Tank/3244_Shaped by Tragedy.json | 108 ++++++++ .../Tank/3245_Defined by Loss.json | 250 ++++++++++++++++++ .../3246_The Princess and Her Knight.json | 183 +++++++++++++ .../Tank/3247_The Hardened Heart.json | 69 +++++ .../Tank/3248_To Have Loved and Lost.json | 102 +++++++ .../Controller/Steps/Interactions/Interact.cs | 3 + .../Controller/Steps/Interactions/UseItem.cs | 7 +- .../QuestComponents/CreationUtilsComponent.cs | 10 +- 9 files changed, 879 insertions(+), 5 deletions(-) create mode 100644 QuestPaths/5.x - Shadowbringers/Role Quests/Tank/3244_Shaped by Tragedy.json create mode 100644 QuestPaths/5.x - Shadowbringers/Role Quests/Tank/3245_Defined by Loss.json create mode 100644 QuestPaths/5.x - Shadowbringers/Role Quests/Tank/3246_The Princess and Her Knight.json create mode 100644 QuestPaths/5.x - Shadowbringers/Role Quests/Tank/3247_The Hardened Heart.json create mode 100644 QuestPaths/5.x - Shadowbringers/Role Quests/Tank/3248_To Have Loved and Lost.json diff --git a/QuestPaths/5.x - Shadowbringers/Role Quests/Tank/3243_The Man with Too Many Scars.json b/QuestPaths/5.x - Shadowbringers/Role Quests/Tank/3243_The Man with Too Many Scars.json index 02adab4a..e91554f7 100644 --- a/QuestPaths/5.x - Shadowbringers/Role Quests/Tank/3243_The Man with Too Many Scars.json +++ b/QuestPaths/5.x - Shadowbringers/Role Quests/Tank/3243_The Man with Too Many Scars.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,7 +17,7 @@ "AetheryteShortcut": "Crystarium", "AethernetShortcut": [ "[Crystarium] Aetheryte Plaza", - "[Crystarium] Musica Universalis Markets" + "[Crystarium] The Pendants" ], "SkipConditions": { "AetheryteShortcutIf": { @@ -27,6 +26,155 @@ } } ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1029890, + "Position": { + "X": 738.796, + "Y": 22.936495, + "Z": 406.21033 + }, + "TerritoryId": 813, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Crystarium] The Pendants", + "[Crystarium] Tessellation (Lakeland)" + ], + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": 447.0961, + "Y": 13.008003, + "Z": 210.91484 + }, + "StopDistance": 0.25, + "TerritoryId": 813, + "InteractionType": "Jump", + "JumpDestination": { + "Position": { + "X": 448.69727, + "Y": 13.393556, + "Z": 205.00368 + } + }, + "SkipConditions": { + "StepIf": { + "Flying": "Unlocked" + } + } + }, + { + "DataId": 2009942, + "Position": { + "X": 453.4828, + "Y": 13.626221, + "Z": 189.44067 + }, + "TerritoryId": 813, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 10853 + ], + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1029891, + "Position": { + "X": 445.27344, + "Y": 13.409448, + "Z": 204.42505 + }, + "TerritoryId": 813, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "Position": { + "X": 412.249, + "Y": 7.472949, + "Z": 187.34154 + }, + "TerritoryId": 813, + "InteractionType": "WalkTo", + "DisableNavmesh": true, + "Mount": true, + "SkipConditions": { + "StepIf": { + "Flying": "Unlocked" + } + } + }, + { + "DataId": 2009943, + "Position": { + "X": 633.6614, + "Y": 21.377869, + "Z": -267.93323 + }, + "TerritoryId": 813, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 10854 + ], + "Fly": true + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1029892, + "Position": { + "X": 635.1262, + "Y": 20.257477, + "Z": -249.22565 + }, + "TerritoryId": 813, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1029889, + "Position": { + "X": -35.385742, + "Y": 3.9998174, + "Z": 251.75854 + }, + "TerritoryId": 819, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Crystarium", + "AethernetShortcut": [ + "[Crystarium] Aetheryte Plaza", + "[Crystarium] The Pendants" + ], + "NextQuestId": 3244 + } + ] } ] } diff --git a/QuestPaths/5.x - Shadowbringers/Role Quests/Tank/3244_Shaped by Tragedy.json b/QuestPaths/5.x - Shadowbringers/Role Quests/Tank/3244_Shaped by Tragedy.json new file mode 100644 index 00000000..a77ac9b2 --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Role Quests/Tank/3244_Shaped by Tragedy.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": 1029889, + "Position": { + "X": -35.385742, + "Y": 3.9998174, + "Z": 251.75854 + }, + "TerritoryId": 819, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Crystarium", + "AethernetShortcut": [ + "[Crystarium] Aetheryte Plaza", + "[Crystarium] The Pendants" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1029893, + "Position": { + "X": -248.34064, + "Y": 21.086334, + "Z": 346.0287 + }, + "TerritoryId": 814, + "InteractionType": "Interact", + "AetheryteShortcut": "Kholusia - Wright" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1029895, + "Position": { + "X": -317.43347, + "Y": 19.407524, + "Z": 404.3794 + }, + "TerritoryId": 814, + "InteractionType": "Interact", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 1029896, + "Position": { + "X": -311.57397, + "Y": 17.772081, + "Z": 443.8086 + }, + "TerritoryId": 814, + "InteractionType": "Interact", + "Fly": true, + "Mount": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1029893, + "Position": { + "X": -248.34064, + "Y": 21.086334, + "Z": 346.0287 + }, + "TerritoryId": 814, + "InteractionType": "CompleteQuest", + "Fly": true, + "NextQuestId": 3245 + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Role Quests/Tank/3245_Defined by Loss.json b/QuestPaths/5.x - Shadowbringers/Role Quests/Tank/3245_Defined by Loss.json new file mode 100644 index 00000000..9c684083 --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Role Quests/Tank/3245_Defined by Loss.json @@ -0,0 +1,250 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1029893, + "Position": { + "X": -248.34064, + "Y": 21.086334, + "Z": 346.0287 + }, + "TerritoryId": 814, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Kholusia - Wright", + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": -248.34064, + "Y": 21.086334, + "Z": 346.0287 + }, + "TerritoryId": 814, + "MaximumDistance": 100 + } + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": 173.40976, + "Y": 58.977684, + "Z": 883.3417 + }, + "TerritoryId": 814, + "InteractionType": "WalkTo", + "Fly": true, + "SkipConditions": { + "StepIf": { + "AetheryteUnlocked": "Eulmore", + "InTerritory": [ + 820 + ] + } + } + }, + { + "DataId": 1029899, + "Position": { + "X": 34.561646, + "Y": 83.001076, + "Z": -67.00244 + }, + "TerritoryId": 820, + "InteractionType": "Interact", + "AetheryteShortcut": "Eulmore", + "SkipConditions": { + "AetheryteShortcutIf": { + "AetheryteLocked": "Eulmore" + } + } + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1029893, + "Position": { + "X": -248.34064, + "Y": 21.086334, + "Z": 346.0287 + }, + "TerritoryId": 814, + "InteractionType": "Interact", + "AetheryteShortcut": "Kholusia - Wright" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "Position": { + "X": 271.6878, + "Y": 7.1558237, + "Z": -197.58272 + }, + "TerritoryId": 815, + "InteractionType": "WalkTo" + }, + { + "DataId": 1029898, + "Position": { + "X": 270.37463, + "Y": 7.1558247, + "Z": -196.30737 + }, + "TerritoryId": 815, + "InteractionType": "Interact", + "AetheryteShortcut": "Amh Araeng - Mord Souq" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1027876, + "Position": { + "X": 314.16797, + "Y": 1.4912677, + "Z": -255.60394 + }, + "TerritoryId": 815, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 1029951, + "Position": { + "X": 303.82227, + "Y": 1.4685826, + "Z": -292.89697 + }, + "TerritoryId": 815, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1029953, + "Position": { + "X": 241.19922, + "Y": 4.0297, + "Z": -289.601 + }, + "TerritoryId": 815, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 2009944, + "Position": { + "X": 476.18823, + "Y": -44.87683, + "Z": 229.96863 + }, + "TerritoryId": 815, + "InteractionType": "Interact", + "AetheryteShortcut": "Amh Araeng - Inn at Journey's Head", + "Fly": true + } + ] + }, + { + "Sequence": 7, + "Steps": [ + { + "Position": { + "X": 555.85315, + "Y": -50.899147, + "Z": 322.2599 + }, + "StopDistance": 0.25, + "TerritoryId": 815, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [ + 10855 + ] + } + ] + }, + { + "Sequence": 8, + "Steps": [ + { + "DataId": 1029957, + "Position": { + "X": 293.04944, + "Y": -42.796906, + "Z": 251.75854 + }, + "TerritoryId": 815, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": 296.43002, + "Y": 1.4685829, + "Z": -289.11447 + }, + "TerritoryId": 815, + "InteractionType": "WalkTo", + "Fly": true, + "AetheryteShortcut": "Amh Araeng - Mord Souq" + }, + { + "DataId": 1029959, + "Position": { + "X": 295.27722, + "Y": 1.4685827, + "Z": -290.18085 + }, + "TerritoryId": 815, + "InteractionType": "CompleteQuest", + "NextQuestId": 3246 + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Role Quests/Tank/3246_The Princess and Her Knight.json b/QuestPaths/5.x - Shadowbringers/Role Quests/Tank/3246_The Princess and Her Knight.json new file mode 100644 index 00000000..a11643db --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Role Quests/Tank/3246_The Princess and Her Knight.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": [ + { + "Position": { + "X": 296.43002, + "Y": 1.4685829, + "Z": -289.11447 + }, + "TerritoryId": 815, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Amh Araeng - Mord Souq", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": 296.43002, + "Y": 1.4685829, + "Z": -289.11447 + }, + "TerritoryId": 815, + "MaximumDistance": 100 + } + } + } + }, + { + "DataId": 1029959, + "Position": { + "X": 295.27722, + "Y": 1.4685827, + "Z": -290.18085 + }, + "TerritoryId": 815, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1029960, + "Position": { + "X": -393.66754, + "Y": 52.333755, + "Z": 497.15417 + }, + "TerritoryId": 816, + "InteractionType": "Interact", + "AetheryteShortcut": "Il Mheg - Lydha Lran", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_LUCKBA131_03246_Q2_000_000", + "Answer": "TEXT_LUCKBA131_03246_A2_000_001" + } + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1027671, + "Position": { + "X": -33.12738, + "Y": 105.68533, + "Z": -879.9115 + }, + "TerritoryId": 816, + "InteractionType": "Interact", + "AetheryteShortcut": "Il Mheg - Pla Enni", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 1027670, + "Position": { + "X": 32.028687, + "Y": 101.900696, + "Z": -857.87744 + }, + "TerritoryId": 816, + "InteractionType": "Interact", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1029961, + "Position": { + "X": -93.736206, + "Y": 101.44155, + "Z": -834.9279 + }, + "TerritoryId": 816, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1029963, + "Position": { + "X": 61.020752, + "Y": 100.95007, + "Z": -872.4651 + }, + "TerritoryId": 816, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 2009946, + "Position": { + "X": 395.16284, + "Y": 62.05847, + "Z": -516.22797 + }, + "TerritoryId": 816, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 10856 + ], + "AetheryteShortcut": "Il Mheg - Wolekdorf", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1029963, + "Position": { + "X": 61.020752, + "Y": 100.95007, + "Z": -872.4651 + }, + "TerritoryId": 816, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Il Mheg - Pla Enni", + "Fly": true, + "NextQuestId": 3247 + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Role Quests/Tank/3247_The Hardened Heart.json b/QuestPaths/5.x - Shadowbringers/Role Quests/Tank/3247_The Hardened Heart.json new file mode 100644 index 00000000..515eb013 --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Role Quests/Tank/3247_The Hardened Heart.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": 1029963, + "Position": { + "X": 61.020752, + "Y": 100.95007, + "Z": -872.4651 + }, + "TerritoryId": 816, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Il Mheg - Pla Enni", + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": 61.020752, + "Y": 100.95007, + "Z": -872.4651 + }, + "TerritoryId": 816, + "MaximumDistance": 100 + } + } + }, + "Fly": true + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1029967, + "Position": { + "X": -68.40625, + "Y": 105.29414, + "Z": -251.88074 + }, + "TerritoryId": 816, + "InteractionType": "SinglePlayerDuty", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1029963, + "Position": { + "X": 61.020752, + "Y": 100.95007, + "Z": -872.4651 + }, + "TerritoryId": 816, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Il Mheg - Pla Enni", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Role Quests/Tank/3248_To Have Loved and Lost.json b/QuestPaths/5.x - Shadowbringers/Role Quests/Tank/3248_To Have Loved and Lost.json new file mode 100644 index 00000000..9758c825 --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Role Quests/Tank/3248_To Have Loved and Lost.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": 1029963, + "Position": { + "X": 61.020752, + "Y": 100.95007, + "Z": -872.4651 + }, + "TerritoryId": 816, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Il Mheg - Pla Enni", + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": 61.020752, + "Y": 100.95007, + "Z": -872.4651 + }, + "TerritoryId": 816, + "MaximumDistance": 100 + } + } + }, + "Fly": true + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": -823.0134, + "Y": 22.900805, + "Z": -55.223766 + }, + "TerritoryId": 816, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 2009948, + "Position": { + "X": -824.88745, + "Y": 23.11737, + "Z": -56.443176 + }, + "TerritoryId": 816, + "InteractionType": "SinglePlayerDuty", + "ItemId": 2002569 + } + ] + }, + { + "Sequence": 2 + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1029963, + "Position": { + "X": 61.020752, + "Y": 100.95007, + "Z": -872.4651 + }, + "TerritoryId": 816, + "InteractionType": "Interact", + "AetheryteShortcut": "Il Mheg - Pla Enni", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1029889, + "Position": { + "X": -35.385742, + "Y": 3.9998174, + "Z": 251.75854 + }, + "TerritoryId": 819, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Crystarium", + "AethernetShortcut": [ + "[Crystarium] Aetheryte Plaza", + "[Crystarium] The Pendants" + ] + } + ] + } + ] +} diff --git a/Questionable/Controller/Steps/Interactions/Interact.cs b/Questionable/Controller/Steps/Interactions/Interact.cs index b79fa904..8d6b67fa 100644 --- a/Questionable/Controller/Steps/Interactions/Interact.cs +++ b/Questionable/Controller/Steps/Interactions/Interact.cs @@ -31,6 +31,9 @@ internal static class Interact if (step.ChatMessage != null) yield break; + if (step.ItemId != null) + yield break; + if (step.DataId == null) yield break; } diff --git a/Questionable/Controller/Steps/Interactions/UseItem.cs b/Questionable/Controller/Steps/Interactions/UseItem.cs index 1e5d51bd..1891e5b1 100644 --- a/Questionable/Controller/Steps/Interactions/UseItem.cs +++ b/Questionable/Controller/Steps/Interactions/UseItem.cs @@ -40,7 +40,12 @@ internal static class UseItem { public IEnumerable CreateAllTasks(Quest quest, QuestSequence sequence, QuestStep step) { - if (step.InteractionType != EInteractionType.UseItem) + if (step.InteractionType is EInteractionType.SinglePlayerDuty) + { + if (step.ItemId == null) + return []; + } + else if (step.InteractionType != EInteractionType.UseItem) return []; ArgumentNullException.ThrowIfNull(step.ItemId); diff --git a/Questionable/Windows/QuestComponents/CreationUtilsComponent.cs b/Questionable/Windows/QuestComponents/CreationUtilsComponent.cs index ab73c25d..dd095f90 100644 --- a/Questionable/Windows/QuestComponents/CreationUtilsComponent.cs +++ b/Questionable/Windows/QuestComponents/CreationUtilsComponent.cs @@ -38,6 +38,7 @@ internal sealed class CreationUtilsComponent private readonly ITargetManager _targetManager; private readonly ICondition _condition; private readonly IGameGui _gameGui; + private readonly Configuration _configuration; private readonly ILogger _logger; public CreationUtilsComponent( @@ -51,6 +52,7 @@ internal sealed class CreationUtilsComponent ITargetManager targetManager, ICondition condition, IGameGui gameGui, + Configuration configuration, ILogger logger) { _movementController = movementController; @@ -63,6 +65,7 @@ internal sealed class CreationUtilsComponent _targetManager = targetManager; _condition = condition; _gameGui = gameGui; + _configuration = configuration; _logger = logger; } @@ -79,8 +82,11 @@ internal sealed class CreationUtilsComponent ImGui.Text(SeIconChar.BotanistSprout.ToIconString()); } - var q = _questFunctions.GetCurrentQuest(); - ImGui.Text($"Current Quest: {q.CurrentQuest} → {q.Sequence}"); + if (_configuration.Advanced.AdditionalStatusInformation) + { + var q = _questFunctions.GetCurrentQuest(); + ImGui.Text($"Current Quest: {q.CurrentQuest} → {q.Sequence}"); + } #if false var questManager = QuestManager.Instance(); From af556610d853d94c20a0662f5f402add60786284 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Thu, 5 Sep 2024 20:38:55 +0200 Subject: [PATCH 179/450] Increase default check distance for follow quests --- Questionable/Controller/Steps/Shared/WaitAtEnd.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Questionable/Controller/Steps/Shared/WaitAtEnd.cs b/Questionable/Controller/Steps/Shared/WaitAtEnd.cs index 631cbf11..47c0fe4a 100644 --- a/Questionable/Controller/Steps/Shared/WaitAtEnd.cs +++ b/Questionable/Controller/Steps/Shared/WaitAtEnd.cs @@ -66,7 +66,7 @@ internal static class WaitAtEnd return [ - new WaitObjectAtPosition(step.DataId.Value, step.Position.Value, step.NpcWaitDistance ?? 0.05f, + new WaitObjectAtPosition(step.DataId.Value, step.Position.Value, step.NpcWaitDistance ?? 0.5f, gameFunctions), new WaitDelay(), Next(quest, sequence) From 5398979c9548cbda90c01b3bd71716790e651c0e Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Thu, 5 Sep 2024 20:49:41 +0200 Subject: [PATCH 180/450] Update Shadowbringers paths + include aether current quests in MSQ --- .../Amh Araeng/3511_Charmless Man.json | 11 ++++++ .../Il Mheg/3398_Delightful Decorations.json | 6 +-- .../Il Mheg/3404_The Path to Popularity.json | 16 ++++++++ .../Kholusia/3360_A Plankless Task.json | 18 ++++++--- .../Kholusia/3537_Fugitive of Fear.json | 3 +- .../3386_An Unreasonable Request.json | 21 ++++++++++ .../Tempest/3594_Community Cohesion.json | 9 +++++ .../3279_The Syrcus Trench.json | 2 +- .../3286_City of Final Pleasures.json | 30 ++++++++++++-- .../A2-Kholusia 1/3288_A Taste of Honey.json | 26 +++++++++++-- .../3289_A Blessed Instrument.json | 7 +++- .../3294_A Desert Crossing.json | 14 ++++++- .../3297_A Purchase of Fruit.json | 10 +++++ .../3300_The Lightwardens.json | 9 +++++ .../B-Il Mheg/3302_An Unwelcome Guest.json | 20 +++++++++- .../B-Il Mheg/3305_The Oracle of Light.json | 39 ++++++++++++++++++- .../MSQ/B-Il Mheg/3307_Sul Uin's Request.json | 11 ++++++ .../B-Il Mheg/3311_Courting Cooperation.json | 11 ++++++ .../B-Il Mheg/3312_The Key to the Castle.json | 11 ++++++ .../MSQ/B-Il Mheg/3315_Spore Sweeper.json | 4 +- .../B-Il Mheg/3319_Memento of a Friend.json | 14 ++++++- .../MSQ/C-Rak'tika/3323_A Little Faith.json | 21 +++++++++- .../3327_Lost but Not Forgotten.json | 11 ++++++ .../C-Rak'tika/3329_Stirring Up Trouble.json | 12 +++++- .../MSQ/C-Rak'tika/3332_Put to the Proof.json | 17 +++++++- .../MSQ/C-Rak'tika/3333_Into the Wood.json | 12 +++++- .../C-Rak'tika/3335_Look to the Stars.json | 12 +++++- .../3340_The Burden of Knowledge.json | 11 ++++++ .../3607_Word from On High.json | 10 +++++ .../3614_Down for Maintenance.json | 3 +- .../3616_A Convenient Distraction.json | 11 ++++++ .../D-Amh Araeng 2/3619_Full Steam Ahead.json | 14 ++++++- .../3622_More than a Hunch.json | 7 ++++ .../E-Kholusia 2/3632_Paradise Fallen.json | 8 +--- .../E-Kholusia 2/3640_Rich Veins of Hope.json | 19 +++++++++ .../3642_A Breath of Respite.json | 12 ++++++ .../3643_Extinguishing the Last Light.json | 3 +- .../MSQ/F-Tempest/3645_In His Garden.json | 12 ++++-- .../F-Tempest/3647_To Storm-tossed Seas.json | 32 ++++++++++----- .../F-Tempest/3649_City of the Ancients.json | 31 ++++++++++++++- .../MSQ/F-Tempest/3653_A Greater Purpose.json | 36 ++++++++++++++++- 41 files changed, 527 insertions(+), 59 deletions(-) diff --git a/QuestPaths/5.x - Shadowbringers/Aether Currents/Amh Araeng/3511_Charmless Man.json b/QuestPaths/5.x - Shadowbringers/Aether Currents/Amh Araeng/3511_Charmless Man.json index 3de20e02..52dbdbfe 100644 --- a/QuestPaths/5.x - Shadowbringers/Aether Currents/Amh Araeng/3511_Charmless Man.json +++ b/QuestPaths/5.x - Shadowbringers/Aether Currents/Amh Araeng/3511_Charmless Man.json @@ -35,6 +35,17 @@ { "Sequence": 255, "Steps": [ + { + "DataId": 1030979, + "Position": { + "X": -424.61285, + "Y": 31.900826, + "Z": -226.64227 + }, + "TerritoryId": 815, + "InteractionType": "AcceptQuest", + "PickUpQuestId": 3503 + }, { "DataId": 1030807, "Position": { diff --git a/QuestPaths/5.x - Shadowbringers/Aether Currents/Il Mheg/3398_Delightful Decorations.json b/QuestPaths/5.x - Shadowbringers/Aether Currents/Il Mheg/3398_Delightful Decorations.json index cef64c1d..0011e9c6 100644 --- a/QuestPaths/5.x - Shadowbringers/Aether Currents/Il Mheg/3398_Delightful Decorations.json +++ b/QuestPaths/5.x - Shadowbringers/Aether Currents/Il Mheg/3398_Delightful Decorations.json @@ -27,8 +27,7 @@ "Z": -194.937 }, "TerritoryId": 816, - "InteractionType": "Dive", - "Comment": "TODO: Verify diving works here" + "InteractionType": "Dive" }, { "DataId": 2010160, @@ -116,7 +115,8 @@ }, "TerritoryId": 816, "InteractionType": "WalkTo", - "DisableNavmesh": true + "DisableNavmesh": true, + "Mount": true }, { "Position": { diff --git a/QuestPaths/5.x - Shadowbringers/Aether Currents/Il Mheg/3404_The Path to Popularity.json b/QuestPaths/5.x - Shadowbringers/Aether Currents/Il Mheg/3404_The Path to Popularity.json index 85586a61..e005cb36 100644 --- a/QuestPaths/5.x - Shadowbringers/Aether Currents/Il Mheg/3404_The Path to Popularity.json +++ b/QuestPaths/5.x - Shadowbringers/Aether Currents/Il Mheg/3404_The Path to Popularity.json @@ -91,6 +91,22 @@ } ] }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1030838, + "Position": { + "X": -285.90833, + "Y": 40.324036, + "Z": 444.41882 + }, + "TerritoryId": 816, + "InteractionType": "Interact", + "AetheryteShortcut": "Il Mheg - Lydha Lran" + } + ] + }, { "Sequence": 255, "Steps": [ diff --git a/QuestPaths/5.x - Shadowbringers/Aether Currents/Kholusia/3360_A Plankless Task.json b/QuestPaths/5.x - Shadowbringers/Aether Currents/Kholusia/3360_A Plankless Task.json index 61829403..cf48cb7b 100644 --- a/QuestPaths/5.x - Shadowbringers/Aether Currents/Kholusia/3360_A Plankless Task.json +++ b/QuestPaths/5.x - Shadowbringers/Aether Currents/Kholusia/3360_A Plankless Task.json @@ -80,7 +80,8 @@ null, null, 128 - ] + ], + "DelaySecondsAtStart": 1 }, { "DataId": 2010286, @@ -99,7 +100,8 @@ null, null, 32 - ] + ], + "DelaySecondsAtStart": 1 }, { "DataId": 2010287, @@ -118,7 +120,8 @@ null, null, 16 - ] + ], + "DelaySecondsAtStart": 1 }, { "DataId": 2010288, @@ -137,7 +140,8 @@ null, null, 8 - ] + ], + "DelaySecondsAtStart": 1 }, { "DataId": 2010261, @@ -156,7 +160,8 @@ null, null, 64 - ] + ], + "DelaySecondsAtStart": 1 }, { "DataId": 2010289, @@ -175,7 +180,8 @@ null, null, 4 - ] + ], + "DelaySecondsAtStart": 1 } ] }, diff --git a/QuestPaths/5.x - Shadowbringers/Aether Currents/Kholusia/3537_Fugitive of Fear.json b/QuestPaths/5.x - Shadowbringers/Aether Currents/Kholusia/3537_Fugitive of Fear.json index ca916173..fffd4d93 100644 --- a/QuestPaths/5.x - Shadowbringers/Aether Currents/Kholusia/3537_Fugitive of Fear.json +++ b/QuestPaths/5.x - Shadowbringers/Aether Currents/Kholusia/3537_Fugitive of Fear.json @@ -42,7 +42,8 @@ "Z": -15.381194 }, "TerritoryId": 814, - "InteractionType": "WalkTo" + "InteractionType": "WalkTo", + "Mount": true }, { "Position": { diff --git a/QuestPaths/5.x - Shadowbringers/Aether Currents/Lakeland/3386_An Unreasonable Request.json b/QuestPaths/5.x - Shadowbringers/Aether Currents/Lakeland/3386_An Unreasonable Request.json index 7a5640ea..64f15cc9 100644 --- a/QuestPaths/5.x - Shadowbringers/Aether Currents/Lakeland/3386_An Unreasonable Request.json +++ b/QuestPaths/5.x - Shadowbringers/Aether Currents/Lakeland/3386_An Unreasonable Request.json @@ -40,6 +40,7 @@ }, "TerritoryId": 813, "InteractionType": "Interact", + "Mount": true, "DialogueChoices": [ { "Type": "List", @@ -53,6 +54,26 @@ { "Sequence": 2, "Steps": [ + { + "Position": { + "X": -159.60991, + "Y": 28.47209, + "Z": -130.60031 + }, + "TerritoryId": 813, + "InteractionType": "WalkTo", + "Mount": true + }, + { + "Position": { + "X": -159.76884, + "Y": 32.30582, + "Z": -122.91172 + }, + "TerritoryId": 813, + "InteractionType": "WalkTo", + "DisableNavmesh": true + }, { "DataId": 1028317, "Position": { diff --git a/QuestPaths/5.x - Shadowbringers/Aether Currents/Tempest/3594_Community Cohesion.json b/QuestPaths/5.x - Shadowbringers/Aether Currents/Tempest/3594_Community Cohesion.json index dc8bdeaa..93e5ec84 100644 --- a/QuestPaths/5.x - Shadowbringers/Aether Currents/Tempest/3594_Community Cohesion.json +++ b/QuestPaths/5.x - Shadowbringers/Aether Currents/Tempest/3594_Community Cohesion.json @@ -35,6 +35,15 @@ { "Sequence": 2, "Steps": [ + { + "Position": { + "X": -450.6779, + "Y": -250.89601, + "Z": 400.94394 + }, + "TerritoryId": 818, + "InteractionType": "WalkTo" + }, { "Position": { "X": -361.26102, diff --git a/QuestPaths/5.x - Shadowbringers/MSQ/A1-Crystarium 1/3279_The Syrcus Trench.json b/QuestPaths/5.x - Shadowbringers/MSQ/A1-Crystarium 1/3279_The Syrcus Trench.json index 61515c17..456f753b 100644 --- a/QuestPaths/5.x - Shadowbringers/MSQ/A1-Crystarium 1/3279_The Syrcus Trench.json +++ b/QuestPaths/5.x - Shadowbringers/MSQ/A1-Crystarium 1/3279_The Syrcus Trench.json @@ -104,7 +104,7 @@ }, "TerritoryId": 877, "InteractionType": "WalkTo", - "Mount": false + "RestartNavigationIfCancelled": false } ] }, diff --git a/QuestPaths/5.x - Shadowbringers/MSQ/A2-Kholusia 1/3286_City of Final Pleasures.json b/QuestPaths/5.x - Shadowbringers/MSQ/A2-Kholusia 1/3286_City of Final Pleasures.json index fecd56c3..ed00acad 100644 --- a/QuestPaths/5.x - Shadowbringers/MSQ/A2-Kholusia 1/3286_City of Final Pleasures.json +++ b/QuestPaths/5.x - Shadowbringers/MSQ/A2-Kholusia 1/3286_City of Final Pleasures.json @@ -20,6 +20,28 @@ { "Sequence": 1, "Steps": [ + { + "DataId": 1027452, + "Position": { + "X": -310.62793, + "Y": 19.405178, + "Z": 405.2948 + }, + "TerritoryId": 814, + "InteractionType": "AcceptQuest", + "PickUpQuestId": 3360 + }, + { + "DataId": 1030763, + "Position": { + "X": -306.2334, + "Y": 20.956566, + "Z": 358.41907 + }, + "TerritoryId": 814, + "InteractionType": "AcceptQuest", + "PickUpQuestId": 3371 + }, { "DataId": 2009964, "Position": { @@ -140,10 +162,11 @@ "Y": 6, "Z": 33.17366 }, - "StopDistance": 5, + "StopDistance": 0.25, "TerritoryId": 820, "InteractionType": "UseItem", - "ItemId": 2002575 + "ItemId": 2002575, + "DelaySecondsAtStart": 3 } ] }, @@ -197,7 +220,8 @@ }, "TerritoryId": 820, "InteractionType": "Interact", - "TargetTerritoryId": 820 + "TargetTerritoryId": 820, + "Sprint": true }, { "DataId": 1029830, diff --git a/QuestPaths/5.x - Shadowbringers/MSQ/A2-Kholusia 1/3288_A Taste of Honey.json b/QuestPaths/5.x - Shadowbringers/MSQ/A2-Kholusia 1/3288_A Taste of Honey.json index fa499ae3..fe86189e 100644 --- a/QuestPaths/5.x - Shadowbringers/MSQ/A2-Kholusia 1/3288_A Taste of Honey.json +++ b/QuestPaths/5.x - Shadowbringers/MSQ/A2-Kholusia 1/3288_A Taste of Honey.json @@ -43,13 +43,22 @@ "Z": -70.08472 }, "TerritoryId": 820, - "InteractionType": "Instruction", - "Comment": "Win first game", + "InteractionType": "Interact", "DialogueChoices": [ { "Type": "List", "Prompt": "TEXT_LUCKMA207_03288_Q1_000_041", "Answer": "TEXT_LUCKMA207_03288_A1_000_042" + }, + { + "Type": "List", + "Prompt": "TEXT_LUCKMA207_03288_Q2_000_052", + "Answer": "TEXT_LUCKMA207_03288_A2_000_054" + }, + { + "Type": "YesNo", + "Prompt": "TEXT_LUCKMA207_03288_TISTABIE_000_060", + "Yes": true } ] } @@ -66,13 +75,22 @@ "Z": -70.08472 }, "TerritoryId": 820, - "InteractionType": "Instruction", - "Comment": "Win second game", + "InteractionType": "Interact", "DialogueChoices": [ { "Type": "List", "Prompt": "TEXT_LUCKMA207_03288_Q1_000_041", "Answer": "TEXT_LUCKMA207_03288_A1_000_042" + }, + { + "Type": "List", + "Prompt": "TEXT_LUCKMA207_03288_Q2_000_052", + "Answer": "TEXT_LUCKMA207_03288_A2_000_054" + }, + { + "Type": "YesNo", + "Prompt": "TEXT_LUCKMA207_03288_TISTABIE_000_060", + "Yes": true } ] } diff --git a/QuestPaths/5.x - Shadowbringers/MSQ/A2-Kholusia 1/3289_A Blessed Instrument.json b/QuestPaths/5.x - Shadowbringers/MSQ/A2-Kholusia 1/3289_A Blessed Instrument.json index bf4ae094..94f2bca1 100644 --- a/QuestPaths/5.x - Shadowbringers/MSQ/A2-Kholusia 1/3289_A Blessed Instrument.json +++ b/QuestPaths/5.x - Shadowbringers/MSQ/A2-Kholusia 1/3289_A Blessed Instrument.json @@ -62,7 +62,7 @@ { "TerritoryId": 820, "InteractionType": "AttuneAethernetShard", - "AethernetShard": "[Eulmore] Nightsoil Pots", + "AethernetShard": "[Eulmore] Southeast Derelicts", "AethernetShortcut": [ "[Eulmore] The Mainstay", "[Eulmore] The Glory Gate" @@ -83,6 +83,11 @@ { "Sequence": 3, "Steps": [ + { + "TerritoryId": 820, + "InteractionType": "AttuneAethernetShard", + "AethernetShard": "[Eulmore] Nightsoil Pots" + }, { "DataId": 1029838, "Position": { diff --git a/QuestPaths/5.x - Shadowbringers/MSQ/A3-Amh Araeng 1/3294_A Desert Crossing.json b/QuestPaths/5.x - Shadowbringers/MSQ/A3-Amh Araeng 1/3294_A Desert Crossing.json index e362a1ed..ba61712a 100644 --- a/QuestPaths/5.x - Shadowbringers/MSQ/A3-Amh Araeng 1/3294_A Desert Crossing.json +++ b/QuestPaths/5.x - Shadowbringers/MSQ/A3-Amh Araeng 1/3294_A Desert Crossing.json @@ -20,6 +20,17 @@ { "Sequence": 1, "Steps": [ + { + "DataId": 1027872, + "Position": { + "X": 268.4519, + "Y": 4.0296993, + "Z": -144.1825 + }, + "TerritoryId": 815, + "InteractionType": "AcceptQuest", + "PickUpQuestId": 3375 + }, { "DataId": 1030606, "Position": { @@ -28,7 +39,8 @@ "Z": -117.93707 }, "TerritoryId": 815, - "InteractionType": "Interact" + "InteractionType": "Interact", + "AetheryteShortcut": "Amh Araeng - Mord Souq" } ] }, diff --git a/QuestPaths/5.x - Shadowbringers/MSQ/A3-Amh Araeng 1/3297_A Purchase of Fruit.json b/QuestPaths/5.x - Shadowbringers/MSQ/A3-Amh Araeng 1/3297_A Purchase of Fruit.json index f872b922..53c877c9 100644 --- a/QuestPaths/5.x - Shadowbringers/MSQ/A3-Amh Araeng 1/3297_A Purchase of Fruit.json +++ b/QuestPaths/5.x - Shadowbringers/MSQ/A3-Amh Araeng 1/3297_A Purchase of Fruit.json @@ -51,6 +51,15 @@ { "Sequence": 3, "Steps": [ + { + "Position": { + "X": 362.283, + "Y": -27.966003, + "Z": 304.85144 + }, + "TerritoryId": 815, + "InteractionType": "WalkTo" + }, { "DataId": 1030386, "Position": { @@ -58,6 +67,7 @@ "Y": -27.966003, "Z": 301.2893 }, + "StopDistance": 5, "TerritoryId": 815, "InteractionType": "Interact" } 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 2ad4c858..e889192d 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 @@ -85,6 +85,15 @@ "InteractionType": "AttuneAetheryte", "Aetheryte": "Lakeland - Fort Jobb" }, + { + "Position": { + "X": 601.42426, + "Y": 23.210327, + "Z": -223.36815 + }, + "TerritoryId": 813, + "InteractionType": "WalkTo" + }, { "DataId": 2010028, "Position": { diff --git a/QuestPaths/5.x - Shadowbringers/MSQ/B-Il Mheg/3302_An Unwelcome Guest.json b/QuestPaths/5.x - Shadowbringers/MSQ/B-Il Mheg/3302_An Unwelcome Guest.json index b5a421bd..6c053aeb 100644 --- a/QuestPaths/5.x - Shadowbringers/MSQ/B-Il Mheg/3302_An Unwelcome Guest.json +++ b/QuestPaths/5.x - Shadowbringers/MSQ/B-Il Mheg/3302_An Unwelcome Guest.json @@ -12,7 +12,6 @@ "Y": 1.7160122, "Z": 249.83594 }, - "StopDistance": 7, "TerritoryId": 819, "InteractionType": "AcceptQuest" } @@ -21,6 +20,17 @@ { "Sequence": 1, "Steps": [ + { + "DataId": 1027948, + "Position": { + "X": 40.42102, + "Y": 2.232896, + "Z": 261.49377 + }, + "TerritoryId": 819, + "InteractionType": "AcceptQuest", + "PickUpQuestId": 3380 + }, { "DataId": 1027230, "Position": { @@ -30,11 +40,17 @@ }, "TerritoryId": 819, "InteractionType": "Interact", + "AetheryaateShortcut": "Crystarium", "AethernetShortcut": [ "[Crystarium] The Pendants", "[Crystarium] The Dossal Gate" ], - "TargetTerritoryId": 844 + "TargetTerritoryId": 844, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } } ] }, 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 5aeffbc0..317653d7 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 @@ -165,6 +165,39 @@ { "Sequence": 4, "Steps": [ + { + "DataId": 1031212, + "Position": { + "X": -673.0907, + "Y": 51.157936, + "Z": -219.50104 + }, + "TerritoryId": 813, + "InteractionType": "AcceptQuest", + "PickUpQuestId": 3385 + }, + { + "DataId": 1027382, + "Position": { + "X": -765.92664, + "Y": 61.720478, + "Z": -304.1886 + }, + "TerritoryId": 813, + "InteractionType": "AcceptQuest", + "PickUpQuestId": 3384 + }, + { + "DataId": 1027419, + "Position": { + "X": -700.7401, + "Y": 61.993748, + "Z": -353.62787 + }, + "TerritoryId": 813, + "InteractionType": "AcceptQuest", + "PickUpQuestId": 3386 + }, { "Position": { "X": -724.9727, @@ -178,7 +211,8 @@ "Flying": "Unlocked" } }, - "Comment": "Tower Bottom" + "Comment": "Tower Bottom", + "AetheryteShortcut": "Lakeland - Ostall Imperative" }, { "Position": { @@ -347,7 +381,8 @@ "StepIf": { "Flying": "Locked" } - } + }, + "Fly": true }, { "DataId": 1028955, diff --git a/QuestPaths/5.x - Shadowbringers/MSQ/B-Il Mheg/3307_Sul Uin's Request.json b/QuestPaths/5.x - Shadowbringers/MSQ/B-Il Mheg/3307_Sul Uin's Request.json index b4801eed..9c45180c 100644 --- a/QuestPaths/5.x - Shadowbringers/MSQ/B-Il Mheg/3307_Sul Uin's Request.json +++ b/QuestPaths/5.x - Shadowbringers/MSQ/B-Il Mheg/3307_Sul Uin's Request.json @@ -20,6 +20,17 @@ { "Sequence": 1, "Steps": [ + { + "DataId": 1030266, + "Position": { + "X": -367.66614, + "Y": 66.863594, + "Z": 557.1526 + }, + "TerritoryId": 816, + "InteractionType": "AcceptQuest", + "PickUpQuestId": 3395 + }, { "Position": { "X": -359.70227, diff --git a/QuestPaths/5.x - Shadowbringers/MSQ/B-Il Mheg/3311_Courting Cooperation.json b/QuestPaths/5.x - Shadowbringers/MSQ/B-Il Mheg/3311_Courting Cooperation.json index 1e71b76d..dc7d4c4f 100644 --- a/QuestPaths/5.x - Shadowbringers/MSQ/B-Il Mheg/3311_Courting Cooperation.json +++ b/QuestPaths/5.x - Shadowbringers/MSQ/B-Il Mheg/3311_Courting Cooperation.json @@ -28,6 +28,17 @@ { "Sequence": 1, "Steps": [ + { + "DataId": 1030618, + "Position": { + "X": -613.39746, + "Y": 36.54754, + "Z": -215.41168 + }, + "TerritoryId": 816, + "InteractionType": "AcceptQuest", + "PickUpQuestId": 3398 + }, { "Position": { "X": -629.64935, 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 dacfa4d5..226f762c 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 @@ -23,6 +23,17 @@ { "Sequence": 1, "Steps": [ + { + "DataId": 1030838, + "Position": { + "X": -285.90833, + "Y": 40.324036, + "Z": 444.41882 + }, + "TerritoryId": 816, + "InteractionType": "AcceptQuest", + "PickUpQuestId": 3404 + }, { "DataId": 2009828, "Position": { diff --git a/QuestPaths/5.x - Shadowbringers/MSQ/B-Il Mheg/3315_Spore Sweeper.json b/QuestPaths/5.x - Shadowbringers/MSQ/B-Il Mheg/3315_Spore Sweeper.json index 99929255..56ceb583 100644 --- a/QuestPaths/5.x - Shadowbringers/MSQ/B-Il Mheg/3315_Spore Sweeper.json +++ b/QuestPaths/5.x - Shadowbringers/MSQ/B-Il Mheg/3315_Spore Sweeper.json @@ -106,7 +106,9 @@ "Z": -860.6854 }, "TerritoryId": 816, - "InteractionType": "WalkTo" + "InteractionType": "WalkTo", + "DisableNavmesh": true, + "Mount": true }, { "DataId": 2009832, diff --git a/QuestPaths/5.x - Shadowbringers/MSQ/B-Il Mheg/3319_Memento of a Friend.json b/QuestPaths/5.x - Shadowbringers/MSQ/B-Il Mheg/3319_Memento of a Friend.json index 8e86fac8..7d94ca84 100644 --- a/QuestPaths/5.x - Shadowbringers/MSQ/B-Il Mheg/3319_Memento of a Friend.json +++ b/QuestPaths/5.x - Shadowbringers/MSQ/B-Il Mheg/3319_Memento of a Friend.json @@ -21,6 +21,17 @@ { "Sequence": 1, "Steps": [ + { + "DataId": 1027695, + "Position": { + "X": 441.64185, + "Y": 89.80711, + "Z": -653.43713 + }, + "TerritoryId": 816, + "InteractionType": "AcceptQuest", + "PickUpQuestId": 3427 + }, { "Position": { "X": 57.868374, @@ -28,8 +39,7 @@ "Z": -431.17603 }, "TerritoryId": 816, - "InteractionType": "Dive", - "Comment": "TODO: Verify diving works here" + "InteractionType": "Dive" }, { "DataId": 2009837, diff --git a/QuestPaths/5.x - Shadowbringers/MSQ/C-Rak'tika/3323_A Little Faith.json b/QuestPaths/5.x - Shadowbringers/MSQ/C-Rak'tika/3323_A Little Faith.json index c33dfe69..a5286f4e 100644 --- a/QuestPaths/5.x - Shadowbringers/MSQ/C-Rak'tika/3323_A Little Faith.json +++ b/QuestPaths/5.x - Shadowbringers/MSQ/C-Rak'tika/3323_A Little Faith.json @@ -40,6 +40,21 @@ } } }, + { + "Position": { + "X": 731.32855, + "Y": 13.078317, + "Z": -147.50694 + }, + "TerritoryId": 813, + "InteractionType": "WalkTo", + "DisableNavmesh": true, + "SkipConditions": { + "StepIf": { + "Flying": "Unlocked" + } + } + }, { "Position": { "X": 731.32855, @@ -49,7 +64,11 @@ "TerritoryId": 813, "InteractionType": "WalkTo", "Fly": true, - "DisableNavmesh": true + "SkipConditions": { + "StepIf": { + "Flying": "Locked" + } + } }, { "Position": { diff --git a/QuestPaths/5.x - Shadowbringers/MSQ/C-Rak'tika/3327_Lost but Not Forgotten.json b/QuestPaths/5.x - Shadowbringers/MSQ/C-Rak'tika/3327_Lost but Not Forgotten.json index 0fb8e7cb..3b4713ba 100644 --- a/QuestPaths/5.x - Shadowbringers/MSQ/C-Rak'tika/3327_Lost but Not Forgotten.json +++ b/QuestPaths/5.x - Shadowbringers/MSQ/C-Rak'tika/3327_Lost but Not Forgotten.json @@ -20,6 +20,17 @@ { "Sequence": 1, "Steps": [ + { + "DataId": 1029023, + "Position": { + "X": -131.36493, + "Y": -16.477911, + "Z": 316.3042 + }, + "TerritoryId": 817, + "InteractionType": "AcceptQuest", + "PickUpQuestId": 3444 + }, { "DataId": 2009866, "Position": { diff --git a/QuestPaths/5.x - Shadowbringers/MSQ/C-Rak'tika/3329_Stirring Up Trouble.json b/QuestPaths/5.x - Shadowbringers/MSQ/C-Rak'tika/3329_Stirring Up Trouble.json index 4682c425..32618958 100644 --- a/QuestPaths/5.x - Shadowbringers/MSQ/C-Rak'tika/3329_Stirring Up Trouble.json +++ b/QuestPaths/5.x - Shadowbringers/MSQ/C-Rak'tika/3329_Stirring Up Trouble.json @@ -36,6 +36,15 @@ { "Sequence": 2, "Steps": [ + { + "Position": { + "X": -138.85619, + "Y": -3.036951, + "Z": 54.482983 + }, + "TerritoryId": 817, + "InteractionType": "WalkTo" + }, { "DataId": 2010066, "Position": { @@ -45,7 +54,8 @@ }, "TerritoryId": 817, "InteractionType": "AttuneAetherCurrent", - "AetherCurrentId": 2818285 + "AetherCurrentId": 2818285, + "DisableNavmesh": true }, { "DataId": 1029214, diff --git a/QuestPaths/5.x - Shadowbringers/MSQ/C-Rak'tika/3332_Put to the Proof.json b/QuestPaths/5.x - Shadowbringers/MSQ/C-Rak'tika/3332_Put to the Proof.json index d586e2ea..52339cbf 100644 --- a/QuestPaths/5.x - Shadowbringers/MSQ/C-Rak'tika/3332_Put to the Proof.json +++ b/QuestPaths/5.x - Shadowbringers/MSQ/C-Rak'tika/3332_Put to the Proof.json @@ -21,6 +21,17 @@ { "Sequence": 1, "Steps": [ + { + "DataId": 1030747, + "Position": { + "X": -81.28485, + "Y": -19.061882, + "Z": 307.20984 + }, + "TerritoryId": 817, + "InteractionType": "AcceptQuest", + "PickUpQuestId": 3656 + }, { "DataId": 1029223, "Position": { @@ -149,7 +160,8 @@ "TerritoryId": 817, "InteractionType": "WalkTo", "Fly": true, - "DisableNavmesh": true + "DisableNavmesh": true, + "Mount": true }, { "Position": { @@ -169,7 +181,8 @@ }, "TerritoryId": 817, "InteractionType": "WalkTo", - "DisableNavmesh": true + "DisableNavmesh": true, + "RestartNavigationIfCancelled": false }, { "Position": { diff --git a/QuestPaths/5.x - Shadowbringers/MSQ/C-Rak'tika/3333_Into the Wood.json b/QuestPaths/5.x - Shadowbringers/MSQ/C-Rak'tika/3333_Into the Wood.json index e94f1f50..0caad6c3 100644 --- a/QuestPaths/5.x - Shadowbringers/MSQ/C-Rak'tika/3333_Into the Wood.json +++ b/QuestPaths/5.x - Shadowbringers/MSQ/C-Rak'tika/3333_Into the Wood.json @@ -44,7 +44,8 @@ }, "TerritoryId": 817, "InteractionType": "WalkTo", - "DisableNavmesh": true + "DisableNavmesh": true, + "Mount": true }, { "Position": { @@ -93,6 +94,15 @@ { "Sequence": 255, "Steps": [ + { + "Position": { + "X": 434.4612, + "Y": 4.434532, + "Z": -7.1864815 + }, + "TerritoryId": 817, + "InteractionType": "WalkTo" + }, { "DataId": 1029228, "Position": { diff --git a/QuestPaths/5.x - Shadowbringers/MSQ/C-Rak'tika/3335_Look to the Stars.json b/QuestPaths/5.x - Shadowbringers/MSQ/C-Rak'tika/3335_Look to the Stars.json index 668c8fee..2272c5ee 100644 --- a/QuestPaths/5.x - Shadowbringers/MSQ/C-Rak'tika/3335_Look to the Stars.json +++ b/QuestPaths/5.x - Shadowbringers/MSQ/C-Rak'tika/3335_Look to the Stars.json @@ -20,6 +20,17 @@ { "Sequence": 1, "Steps": [ + { + "DataId": 1027736, + "Position": { + "X": 396.38354, + "Y": 20.422523, + "Z": -179.12573 + }, + "TerritoryId": 817, + "InteractionType": "AcceptQuest", + "PickUpQuestId": 3467 + }, { "DataId": 1029238, "Position": { @@ -197,7 +208,6 @@ "TerritoryId": 817, "InteractionType": "Jump", "Comment": "Northwest", - "DisableNavmesh": true, "JumpDestination": { "Position": { "X": 123.35363, 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 b90541c6..63ebecdc 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 @@ -24,6 +24,17 @@ { "Sequence": 1, "Steps": [ + { + "DataId": 1027716, + "Position": { + "X": 494.9873, + "Y": -6.555339, + "Z": -224.93329 + }, + "TerritoryId": 817, + "InteractionType": "AcceptQuest", + "PickUpQuestId": 3478 + }, { "DataId": 2010073, "Position": { diff --git a/QuestPaths/5.x - Shadowbringers/MSQ/D-Amh Araeng 2/3607_Word from On High.json b/QuestPaths/5.x - Shadowbringers/MSQ/D-Amh Araeng 2/3607_Word from On High.json index fabaa0fb..ab8dcdc0 100644 --- a/QuestPaths/5.x - Shadowbringers/MSQ/D-Amh Araeng 2/3607_Word from On High.json +++ b/QuestPaths/5.x - Shadowbringers/MSQ/D-Amh Araeng 2/3607_Word from On High.json @@ -81,6 +81,16 @@ { "Sequence": 255, "Steps": [ + { + "Position": { + "X": -694.03015, + "Y": 52.60457, + "Z": -139.54802 + }, + "TerritoryId": 813, + "InteractionType": "WalkTo", + "Mount": true + }, { "DataId": 1029606, "Position": { diff --git a/QuestPaths/5.x - Shadowbringers/MSQ/D-Amh Araeng 2/3614_Down for Maintenance.json b/QuestPaths/5.x - Shadowbringers/MSQ/D-Amh Araeng 2/3614_Down for Maintenance.json index 6fddc0c2..610aec80 100644 --- a/QuestPaths/5.x - Shadowbringers/MSQ/D-Amh Araeng 2/3614_Down for Maintenance.json +++ b/QuestPaths/5.x - Shadowbringers/MSQ/D-Amh Araeng 2/3614_Down for Maintenance.json @@ -51,8 +51,7 @@ "RewardItemId": 2002560, "RewardItemCount": 3 } - ], - "Comment": "Probably needs manual movement (or waiting for enemies to respawn)" + ] } ] }, diff --git a/QuestPaths/5.x - Shadowbringers/MSQ/D-Amh Araeng 2/3616_A Convenient Distraction.json b/QuestPaths/5.x - Shadowbringers/MSQ/D-Amh Araeng 2/3616_A Convenient Distraction.json index 66b6fd40..d3b3b7fe 100644 --- a/QuestPaths/5.x - Shadowbringers/MSQ/D-Amh Araeng 2/3616_A Convenient Distraction.json +++ b/QuestPaths/5.x - Shadowbringers/MSQ/D-Amh Araeng 2/3616_A Convenient Distraction.json @@ -20,6 +20,17 @@ { "Sequence": 1, "Steps": [ + { + "DataId": 1027927, + "Position": { + "X": -476.95123, + "Y": 47.78906, + "Z": -200.61041 + }, + "TerritoryId": 815, + "InteractionType": "AcceptQuest", + "PickUpQuestId": 3511 + }, { "DataId": 1029756, "Position": { 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 b578ea08..4a39fbd5 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 @@ -23,6 +23,17 @@ { "Sequence": 1, "Steps": [ + { + "DataId": 1030419, + "Position": { + "X": -506.6148, + "Y": 45.614502, + "Z": -194.50684 + }, + "TerritoryId": 815, + "InteractionType": "AcceptQuest", + "PickUpQuestId": 3525 + }, { "DataId": 1029768, "Position": { @@ -31,7 +42,8 @@ "Z": -583.7339 }, "TerritoryId": 815, - "InteractionType": "Interact" + "InteractionType": "Interact", + "AetheryteShortcut": "Amh Araeng - Twine" } ] }, diff --git a/QuestPaths/5.x - Shadowbringers/MSQ/D-Amh Araeng 2/3622_More than a Hunch.json b/QuestPaths/5.x - Shadowbringers/MSQ/D-Amh Araeng 2/3622_More than a Hunch.json index 0b92b58a..8dea3028 100644 --- a/QuestPaths/5.x - Shadowbringers/MSQ/D-Amh Araeng 2/3622_More than a Hunch.json +++ b/QuestPaths/5.x - Shadowbringers/MSQ/D-Amh Araeng 2/3622_More than a Hunch.json @@ -54,6 +54,13 @@ "AethernetShortcut": [ "[Crystarium] The Dossal Gate", "[Crystarium] The Pendants" + ], + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_LUCKMD117_03622_Q2_000_000", + "Yes": true + } ] } ] diff --git a/QuestPaths/5.x - Shadowbringers/MSQ/E-Kholusia 2/3632_Paradise Fallen.json b/QuestPaths/5.x - Shadowbringers/MSQ/E-Kholusia 2/3632_Paradise Fallen.json index f8f5d851..dbc109f6 100644 --- a/QuestPaths/5.x - Shadowbringers/MSQ/E-Kholusia 2/3632_Paradise Fallen.json +++ b/QuestPaths/5.x - Shadowbringers/MSQ/E-Kholusia 2/3632_Paradise Fallen.json @@ -61,12 +61,6 @@ { "Sequence": 3, "Steps": [ - { - "TerritoryId": 820, - "InteractionType": "AttuneAethernetShard", - "AethernetShard": "[Eulmore] Southeast Derelicts", - "Comment": "TODO This step isn't very a good place to have this attunement; the next step should use Nightsoil Pots" - }, { "DataId": 1030191, "Position": { @@ -77,7 +71,7 @@ "TerritoryId": 820, "InteractionType": "Interact", "AethernetShortcut": [ - "[Eulmore] Southeast Derelicts", + "[Eulmore] Nightsoil Pots", "[Eulmore] The Mainstay" ] } diff --git a/QuestPaths/5.x - Shadowbringers/MSQ/E-Kholusia 2/3640_Rich Veins of Hope.json b/QuestPaths/5.x - Shadowbringers/MSQ/E-Kholusia 2/3640_Rich Veins of Hope.json index fcb82d63..04f918d9 100644 --- a/QuestPaths/5.x - Shadowbringers/MSQ/E-Kholusia 2/3640_Rich Veins of Hope.json +++ b/QuestPaths/5.x - Shadowbringers/MSQ/E-Kholusia 2/3640_Rich Veins of Hope.json @@ -36,6 +36,25 @@ { "Sequence": 2, "Steps": [ + { + "DataId": 1030776, + "Position": { + "X": -450.85834, + "Y": 417.1344, + "Z": -610.8644 + }, + "TerritoryId": 814, + "InteractionType": "AcceptQuest", + "DialogueChoices": [ + { + "ExcelSheet": "quest/035/LucKzi101_03556", + "Type": "List", + "Prompt": "TEXT_LUCKZI101_03556_Q1_000_000", + "Answer": "TEXT_LUCKZI101_03556_A1_000_001" + } + ], + "PickUpQuestId": 3556 + }, { "DataId": 1030292, "Position": { diff --git a/QuestPaths/5.x - Shadowbringers/MSQ/E-Kholusia 2/3642_A Breath of Respite.json b/QuestPaths/5.x - Shadowbringers/MSQ/E-Kholusia 2/3642_A Breath of Respite.json index 8d687cb0..a1e3334c 100644 --- a/QuestPaths/5.x - Shadowbringers/MSQ/E-Kholusia 2/3642_A Breath of Respite.json +++ b/QuestPaths/5.x - Shadowbringers/MSQ/E-Kholusia 2/3642_A Breath of Respite.json @@ -36,6 +36,18 @@ { "Sequence": 2, "Steps": [ + { + "DataId": 1027956, + "Position": { + "X": -128.77094, + "Y": 354.35815, + "Z": -179.18677 + }, + "StopDistance": 5, + "TerritoryId": 814, + "InteractionType": "AcceptQuest", + "PickUpQuestId": 3537 + }, { "Position": { "X": -122.537926, 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 5c025ad6..67b106f2 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 @@ -55,7 +55,8 @@ "Z": -797.3602 }, "TerritoryId": 814, - "InteractionType": "Interact" + "InteractionType": "Interact", + "AetheryteShortcut": "Kholusia - Tomra" } ] }, diff --git a/QuestPaths/5.x - Shadowbringers/MSQ/F-Tempest/3645_In His Garden.json b/QuestPaths/5.x - Shadowbringers/MSQ/F-Tempest/3645_In His Garden.json index a2485ea1..ece82b0f 100644 --- a/QuestPaths/5.x - Shadowbringers/MSQ/F-Tempest/3645_In His Garden.json +++ b/QuestPaths/5.x - Shadowbringers/MSQ/F-Tempest/3645_In His Garden.json @@ -129,6 +129,14 @@ { "Sequence": 255, "Steps": [ + { + "TerritoryId": 819, + "InteractionType": "None", + "AethernetShortcut": [ + "[Crystarium] The Amaro Launch", + "[Crystarium] Tessellation (Lakeland)" + ] + }, { "Position": { "X": 608.7031, @@ -137,10 +145,6 @@ }, "TerritoryId": 813, "InteractionType": "WalkTo", - "AethernetShortcut": [ - "[Crystarium] The Amaro Launch", - "[Crystarium] Tessellation (Lakeland)" - ], "Fly": true, "SkipConditions": { "StepIf": { diff --git a/QuestPaths/5.x - Shadowbringers/MSQ/F-Tempest/3647_To Storm-tossed Seas.json b/QuestPaths/5.x - Shadowbringers/MSQ/F-Tempest/3647_To Storm-tossed Seas.json index 86cc8daa..74e45874 100644 --- a/QuestPaths/5.x - Shadowbringers/MSQ/F-Tempest/3647_To Storm-tossed Seas.json +++ b/QuestPaths/5.x - Shadowbringers/MSQ/F-Tempest/3647_To Storm-tossed Seas.json @@ -21,6 +21,14 @@ { "Sequence": 1, "Steps": [ + { + "TerritoryId": 819, + "AethernetShortcut": [ + "[Crystarium] The Amaro Launch", + "[Crystarium] Tessellation (Lakeland)" + ], + "InteractionType": "None" + }, { "Position": { "X": 55.589294, @@ -29,10 +37,6 @@ }, "TerritoryId": 813, "InteractionType": "WalkTo", - "AethernetShortcut": [ - "[Crystarium] The Amaro Launch", - "[Crystarium] Tessellation (Lakeland)" - ], "SkipConditions": { "StepIf": { "Flying": "Unlocked" @@ -85,7 +89,6 @@ }, { "Sequence": 2, - "Comment": "TODO Verify when flying unlocked", "Steps": [ { "Position": { @@ -148,7 +151,6 @@ }, { "Sequence": 3, - "Comment": "TODO Verify when flying unlocked", "Steps": [ { "Position": { @@ -158,7 +160,8 @@ }, "TerritoryId": 813, "InteractionType": "WalkTo", - "DisableNavmesh": true + "DisableNavmesh": true, + "Mount": true }, { "Position": { @@ -167,7 +170,12 @@ "Z": 810.7269 }, "TerritoryId": 813, - "InteractionType": "WalkTo" + "InteractionType": "WalkTo", + "SkipConditions": { + "StepIf": { + "Flying": "Unlocked" + } + } }, { "Position": { @@ -177,7 +185,12 @@ }, "TerritoryId": 813, "InteractionType": "WalkTo", - "Mount": true + "Mount": true, + "SkipConditions": { + "StepIf": { + "Flying": "Unlocked" + } + } }, { "DataId": 1030333, @@ -188,6 +201,7 @@ }, "TerritoryId": 813, "InteractionType": "Interact", + "Fly": true, "DialogueChoices": [ { "Type": "List", diff --git a/QuestPaths/5.x - Shadowbringers/MSQ/F-Tempest/3649_City of the Ancients.json b/QuestPaths/5.x - Shadowbringers/MSQ/F-Tempest/3649_City of the Ancients.json index 97c8984c..34fa28fc 100644 --- a/QuestPaths/5.x - Shadowbringers/MSQ/F-Tempest/3649_City of the Ancients.json +++ b/QuestPaths/5.x - Shadowbringers/MSQ/F-Tempest/3649_City of the Ancients.json @@ -20,6 +20,17 @@ { "Sequence": 1, "Steps": [ + { + "DataId": 1031015, + "Position": { + "X": 530.51025, + "Y": 353.54364, + "Z": -244.00702 + }, + "TerritoryId": 818, + "InteractionType": "AcceptQuest", + "PickUpQuestId": 3588 + }, { "DataId": 1030518, "Position": { @@ -54,6 +65,15 @@ 128 ] }, + { + "Position": { + "X": 324.9114, + "Y": 353.76694, + "Z": -475.44562 + }, + "TerritoryId": 818, + "InteractionType": "WalkTo" + }, { "DataId": 2010142, "Position": { @@ -61,9 +81,18 @@ "Y": 355.79456, "Z": -477.53113 }, + "StopDistance": 4, "TerritoryId": 818, "InteractionType": "UseItem", - "ItemId": 2002673 + "ItemId": 2002673, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] } ] }, diff --git a/QuestPaths/5.x - Shadowbringers/MSQ/F-Tempest/3653_A Greater Purpose.json b/QuestPaths/5.x - Shadowbringers/MSQ/F-Tempest/3653_A Greater Purpose.json index 42fd0d82..bae69a79 100644 --- a/QuestPaths/5.x - Shadowbringers/MSQ/F-Tempest/3653_A Greater Purpose.json +++ b/QuestPaths/5.x - Shadowbringers/MSQ/F-Tempest/3653_A Greater Purpose.json @@ -20,6 +20,39 @@ { "Sequence": 1, "Steps": [ + { + "DataId": 1027778, + "Position": { + "X": -713.28296, + "Y": -245.368, + "Z": 498.49683 + }, + "TerritoryId": 818, + "InteractionType": "AcceptQuest", + "PickUpQuestId": 3593 + }, + { + "DataId": 1030477, + "Position": { + "X": -594.6593, + "Y": -266.7698, + "Z": 338.70447 + }, + "TerritoryId": 818, + "InteractionType": "AcceptQuest", + "PickUpQuestId": 3594 + }, + { + "DataId": 1027775, + "Position": { + "X": -390.85986, + "Y": -260.17664, + "Z": 308.46106 + }, + "TerritoryId": 818, + "InteractionType": "AcceptQuest", + "PickUpQuestId": 3592 + }, { "TerritoryId": 818, "InteractionType": "AttuneAetheryte", @@ -162,7 +195,8 @@ "Z": 444.7069 }, "TerritoryId": 818, - "InteractionType": "WalkTo" + "InteractionType": "WalkTo", + "AetheryteShortcut": "Tempest - Macarenses Angle" }, { "DataId": 1030558, From 60e259442f364c86324dec56c093308d4861cb83 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Thu, 5 Sep 2024 22:51:31 +0200 Subject: [PATCH 181/450] Move CT raids to 'Alliance Raid Quests' --- .../1200_Sanding It Down.json | 0 .../1201_A Performance for the Ages.json | 0 .../1202_Labyrinth of the Ancients.json | 0 .../1203_For Prosperity.json | 0 .../{Raid Quests => Alliance Raid Quests}/1474_Syrcus Tower.json | 0 .../1709_Legacy of Allag.json | 0 .../494_The World of Darkness.json | 0 .../495_The Light of Hope.json | 0 8 files changed, 0 insertions(+), 0 deletions(-) rename QuestPaths/2.x - A Realm Reborn/{Raid Quests => Alliance Raid Quests}/1200_Sanding It Down.json (100%) rename QuestPaths/2.x - A Realm Reborn/{Raid Quests => Alliance Raid Quests}/1201_A Performance for the Ages.json (100%) rename QuestPaths/2.x - A Realm Reborn/{Raid Quests => Alliance Raid Quests}/1202_Labyrinth of the Ancients.json (100%) rename QuestPaths/2.x - A Realm Reborn/{Raid Quests => Alliance Raid Quests}/1203_For Prosperity.json (100%) rename QuestPaths/2.x - A Realm Reborn/{Raid Quests => Alliance Raid Quests}/1474_Syrcus Tower.json (100%) rename QuestPaths/2.x - A Realm Reborn/{Raid Quests => Alliance Raid Quests}/1709_Legacy of Allag.json (100%) rename QuestPaths/2.x - A Realm Reborn/{Raid Quests => Alliance Raid Quests}/494_The World of Darkness.json (100%) rename QuestPaths/2.x - A Realm Reborn/{Raid Quests => Alliance Raid Quests}/495_The Light of Hope.json (100%) diff --git a/QuestPaths/2.x - A Realm Reborn/Raid Quests/1200_Sanding It Down.json b/QuestPaths/2.x - A Realm Reborn/Alliance Raid Quests/1200_Sanding It Down.json similarity index 100% rename from QuestPaths/2.x - A Realm Reborn/Raid Quests/1200_Sanding It Down.json rename to QuestPaths/2.x - A Realm Reborn/Alliance Raid Quests/1200_Sanding It Down.json diff --git a/QuestPaths/2.x - A Realm Reborn/Raid Quests/1201_A Performance for the Ages.json b/QuestPaths/2.x - A Realm Reborn/Alliance Raid Quests/1201_A Performance for the Ages.json similarity index 100% rename from QuestPaths/2.x - A Realm Reborn/Raid Quests/1201_A Performance for the Ages.json rename to QuestPaths/2.x - A Realm Reborn/Alliance Raid Quests/1201_A Performance for the Ages.json diff --git a/QuestPaths/2.x - A Realm Reborn/Raid Quests/1202_Labyrinth of the Ancients.json b/QuestPaths/2.x - A Realm Reborn/Alliance Raid Quests/1202_Labyrinth of the Ancients.json similarity index 100% rename from QuestPaths/2.x - A Realm Reborn/Raid Quests/1202_Labyrinth of the Ancients.json rename to QuestPaths/2.x - A Realm Reborn/Alliance Raid Quests/1202_Labyrinth of the Ancients.json diff --git a/QuestPaths/2.x - A Realm Reborn/Raid Quests/1203_For Prosperity.json b/QuestPaths/2.x - A Realm Reborn/Alliance Raid Quests/1203_For Prosperity.json similarity index 100% rename from QuestPaths/2.x - A Realm Reborn/Raid Quests/1203_For Prosperity.json rename to QuestPaths/2.x - A Realm Reborn/Alliance Raid Quests/1203_For Prosperity.json diff --git a/QuestPaths/2.x - A Realm Reborn/Raid Quests/1474_Syrcus Tower.json b/QuestPaths/2.x - A Realm Reborn/Alliance Raid Quests/1474_Syrcus Tower.json similarity index 100% rename from QuestPaths/2.x - A Realm Reborn/Raid Quests/1474_Syrcus Tower.json rename to QuestPaths/2.x - A Realm Reborn/Alliance Raid Quests/1474_Syrcus Tower.json diff --git a/QuestPaths/2.x - A Realm Reborn/Raid Quests/1709_Legacy of Allag.json b/QuestPaths/2.x - A Realm Reborn/Alliance Raid Quests/1709_Legacy of Allag.json similarity index 100% rename from QuestPaths/2.x - A Realm Reborn/Raid Quests/1709_Legacy of Allag.json rename to QuestPaths/2.x - A Realm Reborn/Alliance Raid Quests/1709_Legacy of Allag.json diff --git a/QuestPaths/2.x - A Realm Reborn/Raid Quests/494_The World of Darkness.json b/QuestPaths/2.x - A Realm Reborn/Alliance Raid Quests/494_The World of Darkness.json similarity index 100% rename from QuestPaths/2.x - A Realm Reborn/Raid Quests/494_The World of Darkness.json rename to QuestPaths/2.x - A Realm Reborn/Alliance Raid Quests/494_The World of Darkness.json diff --git a/QuestPaths/2.x - A Realm Reborn/Raid Quests/495_The Light of Hope.json b/QuestPaths/2.x - A Realm Reborn/Alliance Raid Quests/495_The Light of Hope.json similarity index 100% rename from QuestPaths/2.x - A Realm Reborn/Raid Quests/495_The Light of Hope.json rename to QuestPaths/2.x - A Realm Reborn/Alliance Raid Quests/495_The Light of Hope.json From c8fed9d278f949cc816b601c7a832be5383a3b86 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Fri, 6 Sep 2024 00:08:43 +0200 Subject: [PATCH 182/450] Code cleanup --- .../QuestComponents/CreationUtilsComponent.cs | 295 ++++++++++-------- 1 file changed, 161 insertions(+), 134 deletions(-) diff --git a/Questionable/Windows/QuestComponents/CreationUtilsComponent.cs b/Questionable/Windows/QuestComponents/CreationUtilsComponent.cs index dd095f90..8c7cb09b 100644 --- a/Questionable/Windows/QuestComponents/CreationUtilsComponent.cs +++ b/Questionable/Windows/QuestComponents/CreationUtilsComponent.cs @@ -4,6 +4,7 @@ using System.Globalization; using System.Numerics; using Dalamud.Game.ClientState.Conditions; using Dalamud.Game.ClientState.Objects; +using Dalamud.Game.ClientState.Objects.Types; using Dalamud.Game.Text; using Dalamud.Interface; using Dalamud.Interface.Colors; @@ -147,144 +148,14 @@ internal sealed class CreationUtilsComponent if (_targetManager.Target != null) { - ImGui.Separator(); - ImGui.Text(string.Create(CultureInfo.InvariantCulture, - $"Target: {_targetManager.Target.Name} ({_targetManager.Target.ObjectKind}; {_targetManager.Target.DataId})")); - - GameObject* gameObject = (GameObject*)_targetManager.Target.Address; - ImGui.Text(string.Create(CultureInfo.InvariantCulture, - $"Distance: {(_targetManager.Target.Position - _clientState.LocalPlayer.Position).Length():F2}")); + DrawTargetDetails(_targetManager.Target); + DrawInteractionButtons(_targetManager.Target); ImGui.SameLine(); - - float verticalDistance = _targetManager.Target.Position.Y - _clientState.LocalPlayer.Position.Y; - string verticalDistanceText = string.Create(CultureInfo.InvariantCulture, $"Y: {verticalDistance:F2}"); - if (Math.Abs(verticalDistance) >= MovementController.DefaultVerticalInteractionDistance) - ImGui.TextColored(ImGuiColors.DalamudOrange, verticalDistanceText); - else - ImGui.Text(verticalDistanceText); - - ImGui.SameLine(); - ImGui.Text($"QM: {gameObject->NamePlateIconId}"); - - ImGui.BeginDisabled(!_movementController.IsNavmeshReady || _gameFunctions.IsOccupied()); - if (!_movementController.IsPathfinding) - { - if (ImGuiComponents.IconButtonWithText(FontAwesomeIcon.Bullseye, "To Target")) - { - _movementController.NavigateTo(EMovementType.DebugWindow, _targetManager.Target.DataId, - _targetManager.Target.Position, - fly: _condition[ConditionFlag.Mounted] && _gameFunctions.IsFlyingUnlockedInCurrentZone(), - sprint: true); - } - } - else - { - if (ImGui.Button("Cancel pathfinding")) - _movementController.ResetPathfinding(); - } - - ImGui.EndDisabled(); - - ImGui.SameLine(); - ImGui.BeginDisabled(!_questData.IsIssuerOfAnyQuest(_targetManager.Target.DataId)); - bool showQuests = ImGuiComponents.IconButton(FontAwesomeIcon.MapMarkerAlt); - if (ImGui.IsItemHovered()) - ImGui.SetTooltip("Show all Quests starting with your current target."); - if (showQuests) - _questSelectionWindow.OpenForTarget(_targetManager.Target); - - ImGui.EndDisabled(); - - ImGui.BeginDisabled(_gameFunctions.IsOccupied()); - ImGui.SameLine(); - bool interact = ImGuiComponents.IconButton(FontAwesomeIcon.MousePointer); - if (ImGui.IsItemHovered()) - ImGui.SetTooltip("Interact with your current target."); - if (interact) - { - ulong result = TargetSystem.Instance()->InteractWithObject( - (GameObject*)_targetManager.Target.Address, false); - _logger.LogInformation("XXXXX Interaction Result: {Result}", result); - } - ImGui.EndDisabled(); - ImGui.SameLine(); - - bool copy = ImGuiComponents.IconButton(FontAwesomeIcon.Copy); - if (ImGui.IsItemHovered()) - ImGui.SetTooltip( - "Left click: Copy target position as JSON.\nRight click: Copy target position as C# code."); - if (copy) - { - var target = _targetManager.Target; - if (target.ObjectKind == ObjectKind.GatheringPoint) - { - ImGui.SetClipboardText($$""" - "DataId": {{target.DataId}}, - "Position": { - "X": {{target.Position.X.ToString(CultureInfo.InvariantCulture)}}, - "Y": {{target.Position.Y.ToString(CultureInfo.InvariantCulture)}}, - "Z": {{target.Position.Z.ToString(CultureInfo.InvariantCulture)}} - } - """); - } - else - { - string interactionType = gameObject->NamePlateIconId switch - { - 71201 or 71211 or 71221 or 71231 or 71341 or 71351 => "AcceptQuest", - 71202 or 71212 or 71222 or 71232 or 71342 or 71352 => "AcceptQuest", // repeatable - 71205 or 71215 or 71225 or 71235 or 71345 or 71355 => "CompleteQuest", - _ => "Interact", - }; - ImGui.SetClipboardText($$""" - "DataId": {{target.DataId}}, - "Position": { - "X": {{target.Position.X.ToString(CultureInfo.InvariantCulture)}}, - "Y": {{target.Position.Y.ToString(CultureInfo.InvariantCulture)}}, - "Z": {{target.Position.Z.ToString(CultureInfo.InvariantCulture)}} - }, - "TerritoryId": {{_clientState.TerritoryType}}, - "InteractionType": "{{interactionType}}" - """); - } - } - else if (ImGui.IsItemClicked(ImGuiMouseButton.Right)) - { - if (_targetManager.Target.ObjectKind == ObjectKind.Aetheryte) - { - EAetheryteLocation location = (EAetheryteLocation)_targetManager.Target.DataId; - ImGui.SetClipboardText(string.Create(CultureInfo.InvariantCulture, - $"{{EAetheryteLocation.{location}, new({_targetManager.Target.Position.X}f, {_targetManager.Target.Position.Y}f, {_targetManager.Target.Position.Z}f)}},")); - } - else - ImGui.SetClipboardText(string.Create(CultureInfo.InvariantCulture, - $"new({_targetManager.Target.Position.X}f, {_targetManager.Target.Position.Y}f, {_targetManager.Target.Position.Z}f)")); - } + DrawCopyButton(_targetManager.Target); } else { - bool copy = ImGuiComponents.IconButton(FontAwesomeIcon.Copy); - if (ImGui.IsItemHovered()) - ImGui.SetTooltip( - "Left click: Copy your position as JSON.\nRight click: Copy your position as C# code."); - if (copy) - { - ImGui.SetClipboardText($$""" - "Position": { - "X": {{_clientState.LocalPlayer.Position.X.ToString(CultureInfo.InvariantCulture)}}, - "Y": {{_clientState.LocalPlayer.Position.Y.ToString(CultureInfo.InvariantCulture)}}, - "Z": {{_clientState.LocalPlayer.Position.Z.ToString(CultureInfo.InvariantCulture)}} - }, - "TerritoryId": {{_clientState.TerritoryType}}, - "InteractionType": "" - """); - } - else if (ImGui.IsItemClicked(ImGuiMouseButton.Right)) - { - Vector3 position = _clientState.LocalPlayer!.Position; - ImGui.SetClipboardText(string.Create(CultureInfo.InvariantCulture, - $"new({position.X}f, {position.Y}f, {position.Z}f)")); - } + DrawCopyButton(); } ulong hoveredItemId = _gameGui.HoveredItem; @@ -294,4 +165,160 @@ internal sealed class CreationUtilsComponent ImGui.Text($"Hovered Item: {hoveredItemId}"); } } + + private unsafe void DrawTargetDetails(IGameObject target) + { + ImGui.Separator(); + ImGui.Text(string.Create(CultureInfo.InvariantCulture, + $"Target: {target.Name} ({target.ObjectKind}; {target.DataId})")); + + if (_clientState.LocalPlayer != null) + { + ImGui.Text(string.Create(CultureInfo.InvariantCulture, + $"Distance: {(target.Position - _clientState.LocalPlayer.Position).Length():F2}")); + ImGui.SameLine(); + + float verticalDistance = target.Position.Y - _clientState.LocalPlayer.Position.Y; + string verticalDistanceText = string.Create(CultureInfo.InvariantCulture, $"Y: {verticalDistance:F2}"); + if (Math.Abs(verticalDistance) >= MovementController.DefaultVerticalInteractionDistance) + ImGui.TextColored(ImGuiColors.DalamudOrange, verticalDistanceText); + else + ImGui.Text(verticalDistanceText); + + ImGui.SameLine(); + } + + GameObject* gameObject = (GameObject*)target.Address; + ImGui.Text($"QM: {gameObject->NamePlateIconId}"); + } + + private unsafe void DrawInteractionButtons(IGameObject target) + { + ImGui.BeginDisabled(!_movementController.IsNavmeshReady || _gameFunctions.IsOccupied()); + if (!_movementController.IsPathfinding) + { + if (ImGuiComponents.IconButtonWithText(FontAwesomeIcon.Bullseye, "To Target")) + { + _movementController.NavigateTo(EMovementType.DebugWindow, target.DataId, + target.Position, + fly: _condition[ConditionFlag.Mounted] && _gameFunctions.IsFlyingUnlockedInCurrentZone(), + sprint: true); + } + } + else + { + if (ImGui.Button("Cancel pathfinding")) + _movementController.ResetPathfinding(); + } + + ImGui.EndDisabled(); + + ImGui.SameLine(); + ImGui.BeginDisabled(!_questData.IsIssuerOfAnyQuest(target.DataId)); + bool showQuests = ImGuiComponents.IconButton(FontAwesomeIcon.MapMarkerAlt); + if (ImGui.IsItemHovered()) + ImGui.SetTooltip("Show all Quests starting with your current target."); + if (showQuests) + _questSelectionWindow.OpenForTarget(_targetManager.Target); + + ImGui.EndDisabled(); + + ImGui.BeginDisabled(_gameFunctions.IsOccupied()); + ImGui.SameLine(); + bool interact = ImGuiComponents.IconButton(FontAwesomeIcon.MousePointer); + if (ImGui.IsItemHovered()) + ImGui.SetTooltip("Interact with your current target."); + if (interact) + { + ulong result = TargetSystem.Instance()->InteractWithObject( + (GameObject*)target.Address, false); + _logger.LogInformation("XXXXX Interaction Result: {Result}", result); + } + + ImGui.EndDisabled(); + } + + private unsafe void DrawCopyButton(IGameObject target) + { + GameObject* gameObject = (GameObject*)target.Address; + bool copy = ImGuiComponents.IconButton(FontAwesomeIcon.Copy); + if (ImGui.IsItemHovered()) + ImGui.SetTooltip( + "Left click: Copy target position as JSON.\nRight click: Copy target position as C# code."); + if (copy) + { + if (target.ObjectKind == ObjectKind.GatheringPoint) + { + ImGui.SetClipboardText($$""" + "DataId": {{target.DataId}}, + "Position": { + "X": {{target.Position.X.ToString(CultureInfo.InvariantCulture)}}, + "Y": {{target.Position.Y.ToString(CultureInfo.InvariantCulture)}}, + "Z": {{target.Position.Z.ToString(CultureInfo.InvariantCulture)}} + } + """); + } + else + { + string interactionType = gameObject->NamePlateIconId switch + { + 71201 or 71211 or 71221 or 71231 or 71341 or 71351 => "AcceptQuest", + 71202 or 71212 or 71222 or 71232 or 71342 or 71352 => "AcceptQuest", // repeatable + 71205 or 71215 or 71225 or 71235 or 71345 or 71355 => "CompleteQuest", + _ => "Interact", + }; + ImGui.SetClipboardText($$""" + "DataId": {{target.DataId}}, + "Position": { + "X": {{target.Position.X.ToString(CultureInfo.InvariantCulture)}}, + "Y": {{target.Position.Y.ToString(CultureInfo.InvariantCulture)}}, + "Z": {{target.Position.Z.ToString(CultureInfo.InvariantCulture)}} + }, + "TerritoryId": {{_clientState.TerritoryType}}, + "InteractionType": "{{interactionType}}" + """); + } + } + else if (ImGui.IsItemClicked(ImGuiMouseButton.Right)) + { + if (target.ObjectKind == ObjectKind.Aetheryte) + { + EAetheryteLocation location = (EAetheryteLocation)target.DataId; + ImGui.SetClipboardText(string.Create(CultureInfo.InvariantCulture, + $"{{EAetheryteLocation.{location}, new({target.Position.X}f, {target.Position.Y}f, {target.Position.Z}f)}},")); + } + else + ImGui.SetClipboardText(string.Create(CultureInfo.InvariantCulture, + $"new({target.Position.X}f, {target.Position.Y}f, {target.Position.Z}f)")); + } + } + + private void DrawCopyButton() + { + if (_clientState.LocalPlayer == null) + return; + + bool copy = ImGuiComponents.IconButton(FontAwesomeIcon.Copy); + if (ImGui.IsItemHovered()) + ImGui.SetTooltip( + "Left click: Copy your position as JSON.\nRight click: Copy your position as C# code."); + if (copy) + { + ImGui.SetClipboardText($$""" + "Position": { + "X": {{_clientState.LocalPlayer.Position.X.ToString(CultureInfo.InvariantCulture)}}, + "Y": {{_clientState.LocalPlayer.Position.Y.ToString(CultureInfo.InvariantCulture)}}, + "Z": {{_clientState.LocalPlayer.Position.Z.ToString(CultureInfo.InvariantCulture)}} + }, + "TerritoryId": {{_clientState.TerritoryType}}, + "InteractionType": "" + """); + } + else if (ImGui.IsItemClicked(ImGuiMouseButton.Right)) + { + Vector3 position = _clientState.LocalPlayer!.Position; + ImGui.SetClipboardText(string.Create(CultureInfo.InvariantCulture, + $"new({position.X}f, {position.Y}f, {position.Z}f)")); + } + } } From e126031753e21c8e48a65484db7b6dafab796960 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Fri, 6 Sep 2024 12:36:19 +0200 Subject: [PATCH 183/450] Add ARR Odin/Ex unlock quests --- .../Unlocks/Trials/1007_Primal Fear.json | 49 +++++ .../1008_Who Was That Man in Black.json | 152 ++++++++++++++ .../Trials/1009_The Dark Divinity.json | 123 +++++++++++ ...012_All You Wanted to Know about Odin.json | 64 ++++++ .../1048_Ifrit Bleeds, We Can Kill It.json | 3 +- .../Unlocks/Trials/1194_Primal Nature.json | 38 ++++ .../Trials/1195_Gale-force Warning.json | 119 +++++++++++ ...1196_Quake Me Up Before You O'Ghomoro.json | 193 ++++++++++++++++++ .../Trials/1197_Ifrit Ain't Broke.json | 188 +++++++++++++++++ .../Trials/1198_To Tussle with Gods.json | 82 ++++++++ .../Unlocks/Trials/1309_Primal Focus.json | 80 ++++++++ .../Unlocks/Trials/1412_The King Lives.json | 54 +++++ .../Unlocks/Trials/1413_Whorl of a Time.json | 58 ++++++ .../1530_Judgment Bolts and Lightning.json | 115 +++++++++++ .../433_Fear and Odin in the Shroud.json | 64 ++++++ .../Unlocks/Trials/90_Drop Dead Shiva.json | 166 +++++++++++++++ 16 files changed, 1547 insertions(+), 1 deletion(-) create mode 100644 QuestPaths/2.x - A Realm Reborn/Unlocks/Trials/1007_Primal Fear.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Unlocks/Trials/1008_Who Was That Man in Black.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Unlocks/Trials/1009_The Dark Divinity.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Unlocks/Trials/1012_All You Wanted to Know about Odin.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Unlocks/Trials/1194_Primal Nature.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Unlocks/Trials/1195_Gale-force Warning.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Unlocks/Trials/1196_Quake Me Up Before You O'Ghomoro.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Unlocks/Trials/1197_Ifrit Ain't Broke.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Unlocks/Trials/1198_To Tussle with Gods.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Unlocks/Trials/1309_Primal Focus.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Unlocks/Trials/1412_The King Lives.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Unlocks/Trials/1413_Whorl of a Time.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Unlocks/Trials/1530_Judgment Bolts and Lightning.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Unlocks/Trials/433_Fear and Odin in the Shroud.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Unlocks/Trials/90_Drop Dead Shiva.json diff --git a/QuestPaths/2.x - A Realm Reborn/Unlocks/Trials/1007_Primal Fear.json b/QuestPaths/2.x - A Realm Reborn/Unlocks/Trials/1007_Primal Fear.json new file mode 100644 index 00000000..3fab9f81 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Unlocks/Trials/1007_Primal Fear.json @@ -0,0 +1,49 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1007478, + "Position": { + "X": -2.822998, + "Y": -3.0000014, + "Z": -56.229553 + }, + "TerritoryId": 212, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1000423, + "Position": { + "X": 232.04382, + "Y": 1.999974, + "Z": 45.578613 + }, + "TerritoryId": 132, + "InteractionType": "Interact", + "TargetTerritoryId": 204 + }, + { + "DataId": 1003061, + "Position": { + "X": -0.015319824, + "Y": 0.500025, + "Z": -4.3793945 + }, + "TerritoryId": 204, + "InteractionType": "CompleteQuest", + "DisableNavmesh": true, + "NextQuestId": 1008 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Unlocks/Trials/1008_Who Was That Man in Black.json b/QuestPaths/2.x - A Realm Reborn/Unlocks/Trials/1008_Who Was That Man in Black.json new file mode 100644 index 00000000..5722739b --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Unlocks/Trials/1008_Who Was That Man in Black.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": 1003061, + "Position": { + "X": -0.015319824, + "Y": 0.500025, + "Z": -4.3793945 + }, + "TerritoryId": 204, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2001215, + "Position": { + "X": 0.002457563, + "Y": 1.052062, + "Z": 9.820032 + }, + "TerritoryId": 204, + "InteractionType": "Interact", + "TargetTerritoryId": 132, + "SkipConditions": { + "StepIf": { + "NotInTerritory": [ + 204 + ] + } + } + }, + { + "DataId": 1000195, + "Position": { + "X": 197.4364, + "Y": 0.0026046988, + "Z": 57.114502 + }, + "TerritoryId": 132, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 1000156, + "Position": { + "X": 6.6376343, + "Y": 1.1442462, + "Z": -11.795227 + }, + "TerritoryId": 132, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Gridania] Archers' Guild", + "[Gridania] Aetheryte Plaza" + ], + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 16 + ] + }, + { + "DataId": 1000122, + "Position": { + "X": 88.60913, + "Y": -8.685379, + "Z": 128.64868 + }, + "TerritoryId": 132, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, + { + "DataId": 1000372, + "Position": { + "X": 39.53601, + "Y": -8.041565, + "Z": 112.13855 + }, + "TerritoryId": 132, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1000423, + "Position": { + "X": 232.04382, + "Y": 1.999974, + "Z": 45.578613 + }, + "TerritoryId": 132, + "InteractionType": "Interact", + "TargetTerritoryId": 204, + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Archers' Guild" + ] + }, + { + "DataId": 1003061, + "Position": { + "X": -0.015319824, + "Y": 0.500025, + "Z": -4.3793945 + }, + "TerritoryId": 204, + "InteractionType": "CompleteQuest", + "DisableNavmesh": true, + "NextQuestId": 1009 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Unlocks/Trials/1009_The Dark Divinity.json b/QuestPaths/2.x - A Realm Reborn/Unlocks/Trials/1009_The Dark Divinity.json new file mode 100644 index 00000000..924ce54d --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Unlocks/Trials/1009_The Dark Divinity.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": 1003061, + "Position": { + "X": -0.015319824, + "Y": 0.500025, + "Z": -4.3793945 + }, + "TerritoryId": 204, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1006584, + "Position": { + "X": 193.83533, + "Y": 7.8634253, + "Z": -57.724915 + }, + "TerritoryId": 153, + "InteractionType": "Interact", + "AetheryteShortcut": "South Shroud - Quarrymill" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": 616.5126, + "Y": 22.329094, + "Z": 84.68576 + }, + "TerritoryId": 153, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 2002241, + "Position": { + "X": 617.21216, + "Y": 23.605652, + "Z": 83.26843 + }, + "TerritoryId": 153, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 2198 + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2002614, + "Position": { + "X": 617.21216, + "Y": 23.605652, + "Z": 83.26843 + }, + "TerritoryId": 153, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1006584, + "Position": { + "X": 193.83533, + "Y": 7.8634253, + "Z": -57.724915 + }, + "TerritoryId": 153, + "InteractionType": "Interact", + "AetheryteShortcut": "South Shroud - Quarrymill" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": 210.56421, + "Y": 18.119999, + "Z": -21.370262 + }, + "TerritoryId": 153, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 1006585, + "Position": { + "X": 209.3385, + "Y": 18.119999, + "Z": -21.957764 + }, + "TerritoryId": 153, + "InteractionType": "CompleteQuest", + "NextQuestId": 1012 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Unlocks/Trials/1012_All You Wanted to Know about Odin.json b/QuestPaths/2.x - A Realm Reborn/Unlocks/Trials/1012_All You Wanted to Know about Odin.json new file mode 100644 index 00000000..d19bd5fb --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Unlocks/Trials/1012_All You Wanted to Know about Odin.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": 1006585, + "Position": { + "X": 209.3385, + "Y": 18.119999, + "Z": -21.957764 + }, + "TerritoryId": 153, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "TerritoryId": 132, + "InteractionType": "UseItem", + "ItemId": 30362, + "TargetTerritoryId": 140 + }, + { + "Position": { + "X": -492.96475, + "Y": 20.999884, + "Z": -380.82272 + }, + "TerritoryId": 140, + "InteractionType": "WalkTo", + "$": "Avoid walking around Waking Sands table" + }, + { + "DataId": 2001711, + "Position": { + "X": -480.9181, + "Y": 18.00103, + "Z": -386.862 + }, + "TerritoryId": 140, + "InteractionType": "Interact", + "TargetTerritoryId": 212 + }, + { + "DataId": 1007478, + "Position": { + "X": -2.822998, + "Y": -3.0000014, + "Z": -56.229553 + }, + "TerritoryId": 212, + "InteractionType": "CompleteQuest", + "NextQuestId": 433 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Unlocks/Trials/1048_Ifrit Bleeds, We Can Kill It.json b/QuestPaths/2.x - A Realm Reborn/Unlocks/Trials/1048_Ifrit Bleeds, We Can Kill It.json index 2599943b..375a6d64 100644 --- a/QuestPaths/2.x - A Realm Reborn/Unlocks/Trials/1048_Ifrit Bleeds, We Can Kill It.json +++ b/QuestPaths/2.x - A Realm Reborn/Unlocks/Trials/1048_Ifrit Bleeds, We Can Kill It.json @@ -87,7 +87,8 @@ "TerritoryId": 146, "Mount": false, "InteractionType": "CompleteQuest", - "StopDistance": 5 + "StopDistance": 5, + "IgnoreDistanceToObject": true } ] } diff --git a/QuestPaths/2.x - A Realm Reborn/Unlocks/Trials/1194_Primal Nature.json b/QuestPaths/2.x - A Realm Reborn/Unlocks/Trials/1194_Primal Nature.json new file mode 100644 index 00000000..5adea9a4 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Unlocks/Trials/1194_Primal Nature.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": 1007478, + "Position": { + "X": -2.822998, + "Y": -3.0000014, + "Z": -56.229553 + }, + "TerritoryId": 212, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1000168, + "Position": { + "X": -75.48645, + "Y": -0.5013741, + "Z": -5.081299 + }, + "TerritoryId": 132, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Gridania", + "NextQuestId": 1195 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Unlocks/Trials/1195_Gale-force Warning.json b/QuestPaths/2.x - A Realm Reborn/Unlocks/Trials/1195_Gale-force Warning.json new file mode 100644 index 00000000..6aab4baa --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Unlocks/Trials/1195_Gale-force Warning.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": 1000168, + "Position": { + "X": -75.48645, + "Y": -0.5013741, + "Z": -5.081299 + }, + "TerritoryId": 132, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": 643.84, + "Y": 287.48834, + "Z": 175.5028 + }, + "TerritoryId": 155, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", + "Fly": true + }, + { + "DataId": 2003456, + "Position": { + "X": 649.7748, + "Y": 292.4391, + "Z": 175.34143 + }, + "TerritoryId": 155, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "TerritoryId": 155, + "InteractionType": "Duty", + "ContentFinderConditionId": 65 + } + ] + }, + { + "Sequence": 3 + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1000168, + "Position": { + "X": -75.48645, + "Y": -0.5013741, + "Z": -5.081299 + }, + "TerritoryId": 132, + "InteractionType": "Interact", + "AetheryteShortcut": "Gridania" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "TerritoryId": 132, + "InteractionType": "UseItem", + "ItemId": 30362, + "TargetTerritoryId": 140 + }, + { + "Position": { + "X": -492.96475, + "Y": 20.999884, + "Z": -380.82272 + }, + "TerritoryId": 140, + "InteractionType": "WalkTo", + "$": "Avoid walking around Waking Sands table" + }, + { + "DataId": 2001711, + "Position": { + "X": -480.9181, + "Y": 18.00103, + "Z": -386.862 + }, + "TerritoryId": 140, + "InteractionType": "Interact", + "TargetTerritoryId": 212 + }, + { + "DataId": 1007478, + "Position": { + "X": -2.822998, + "Y": -3.0000014, + "Z": -56.229553 + }, + "TerritoryId": 212, + "InteractionType": "CompleteQuest", + "NextQuestId": 1196 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Unlocks/Trials/1196_Quake Me Up Before You O'Ghomoro.json b/QuestPaths/2.x - A Realm Reborn/Unlocks/Trials/1196_Quake Me Up Before You O'Ghomoro.json new file mode 100644 index 00000000..357fa574 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Unlocks/Trials/1196_Quake Me Up Before You O'Ghomoro.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": 1007478, + "Position": { + "X": -2.822998, + "Y": -3.0000014, + "Z": -56.229553 + }, + "TerritoryId": 212, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1003281, + "Position": { + "X": 97.520386, + "Y": 40.248554, + "Z": 81.1322 + }, + "TerritoryId": 128, + "InteractionType": "Interact", + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] The Aftcastle" + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": 71.55255, + "Y": 59.83099, + "Z": -516.4647 + }, + "TerritoryId": 180, + "InteractionType": "WalkTo", + "Fly": true, + "AetheryteShortcut": "Outer La Noscea - Camp Overlook" + }, + { + "Position": { + "X": 111.7023, + "Y": 28.568699, + "Z": -611.7063 + }, + "TerritoryId": 180, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "Position": { + "X": 84.102905, + "Y": 28.170393, + "Z": -716.35504 + }, + "TerritoryId": 180, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "Position": { + "X": 161.06644, + "Y": 26.61216, + "Z": -712.6371 + }, + "TerritoryId": 180, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "Position": { + "X": 176.3917, + "Y": 29.076319, + "Z": -652.8805 + }, + "TerritoryId": 180, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "Position": { + "X": 143.06934, + "Y": 23.642702, + "Z": -656.43506 + }, + "TerritoryId": 180, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 2003457, + "Position": { + "X": 144.39612, + "Y": 29.037842, + "Z": -622.4918 + }, + "TerritoryId": 180, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "TerritoryId": 180, + "InteractionType": "Duty", + "ContentFinderConditionId": 64 + } + ] + }, + { + "Sequence": 4 + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1003281, + "Position": { + "X": 97.520386, + "Y": 40.248554, + "Z": 81.1322 + }, + "TerritoryId": 128, + "InteractionType": "Interact", + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] The Aftcastle" + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "TerritoryId": 132, + "InteractionType": "UseItem", + "ItemId": 30362, + "TargetTerritoryId": 140 + }, + { + "Position": { + "X": -492.96475, + "Y": 20.999884, + "Z": -380.82272 + }, + "TerritoryId": 140, + "InteractionType": "WalkTo", + "$": "Avoid walking around Waking Sands table" + }, + { + "DataId": 2001711, + "Position": { + "X": -480.9181, + "Y": 18.00103, + "Z": -386.862 + }, + "TerritoryId": 140, + "InteractionType": "Interact", + "TargetTerritoryId": 212 + }, + { + "DataId": 1007478, + "Position": { + "X": -2.822998, + "Y": -3.0000014, + "Z": -56.229553 + }, + "TerritoryId": 212, + "InteractionType": "CompleteQuest", + "NextQuestId": 1197 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Unlocks/Trials/1197_Ifrit Ain't Broke.json b/QuestPaths/2.x - A Realm Reborn/Unlocks/Trials/1197_Ifrit Ain't Broke.json new file mode 100644 index 00000000..137084bf --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Unlocks/Trials/1197_Ifrit Ain't Broke.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": 1007478, + "Position": { + "X": -2.822998, + "Y": -3.0000014, + "Z": -56.229553 + }, + "TerritoryId": 212, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "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": [ + { + "Position": { + "X": -22.992174, + "Y": 31.881628, + "Z": -3.1655574 + }, + "TerritoryId": 146, + "InteractionType": "WalkTo", + "Fly": true, + "AetheryteShortcut": "Southern Thanalan - Little Ala Mhigo" + }, + { + "Position": { + "X": 373.0123, + "Y": 46.21888, + "Z": -47.523537 + }, + "TerritoryId": 146, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "Position": { + "X": 500.2741, + "Y": 36.9815, + "Z": -153.72185 + }, + "TerritoryId": 146, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "Position": { + "X": 694.0748, + "Y": 4.267518, + "Z": -84.443855 + }, + "TerritoryId": 146, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 2003458, + "Position": { + "X": 694.3617, + "Y": 7.9193726, + "Z": -80.1557 + }, + "TerritoryId": 146, + "Mount": false, + "InteractionType": "Interact", + "StopDistance": 5, + "IgnoreDistanceToObject": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "TerritoryId": 146, + "InteractionType": "Duty", + "ContentFinderConditionId": 63 + } + ] + }, + { + "Sequence": 4 + }, + { + "Sequence": 5, + "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": 255, + "Steps": [ + { + "TerritoryId": 132, + "InteractionType": "UseItem", + "ItemId": 30362, + "TargetTerritoryId": 140 + }, + { + "Position": { + "X": -492.96475, + "Y": 20.999884, + "Z": -380.82272 + }, + "TerritoryId": 140, + "InteractionType": "WalkTo", + "$": "Avoid walking around Waking Sands table" + }, + { + "DataId": 2001711, + "Position": { + "X": -480.9181, + "Y": 18.00103, + "Z": -386.862 + }, + "TerritoryId": 140, + "InteractionType": "Interact", + "TargetTerritoryId": 212 + }, + { + "DataId": 1007478, + "Position": { + "X": -2.822998, + "Y": -3.0000014, + "Z": -56.229553 + }, + "TerritoryId": 212, + "InteractionType": "CompleteQuest", + "NextQuestId": 1198 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Unlocks/Trials/1198_To Tussle with Gods.json b/QuestPaths/2.x - A Realm Reborn/Unlocks/Trials/1198_To Tussle with Gods.json new file mode 100644 index 00000000..c99c86cf --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Unlocks/Trials/1198_To Tussle with Gods.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": 1007478, + "Position": { + "X": -2.822998, + "Y": -3.0000014, + "Z": -56.229553 + }, + "TerritoryId": 212, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": 26.405773, + "Y": 29.49983, + "Z": -767.3998 + }, + "TerritoryId": 156, + "InteractionType": "WalkTo", + "Fly": true, + "AetheryteShortcut": "Mor Dhona" + }, + { + "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": 255, + "Steps": [ + { + "Position": { + "X": 26.405773, + "Y": 29.49983, + "Z": -767.3998 + }, + "TerritoryId": 156, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 1006951, + "Position": { + "X": 73.77734, + "Y": 33.066578, + "Z": -709.77344 + }, + "TerritoryId": 156, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Unlocks/Trials/1309_Primal Focus.json b/QuestPaths/2.x - A Realm Reborn/Unlocks/Trials/1309_Primal Focus.json new file mode 100644 index 00000000..6e2decef --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Unlocks/Trials/1309_Primal Focus.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": 1006951, + "Position": { + "X": 73.77734, + "Y": 33.066578, + "Z": -709.77344 + }, + "TerritoryId": 156, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "TerritoryId": 155, + "InteractionType": "Duty", + "ContentFinderConditionId": 65, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "TerritoryId": 180, + "InteractionType": "Duty", + "ContentFinderConditionId": 64, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "TerritoryId": 146, + "InteractionType": "Duty", + "ContentFinderConditionId": 63, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1006951, + "Position": { + "X": 73.77734, + "Y": 33.066578, + "Z": -709.77344 + }, + "TerritoryId": 156, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Unlocks/Trials/1412_The King Lives.json b/QuestPaths/2.x - A Realm Reborn/Unlocks/Trials/1412_The King Lives.json new file mode 100644 index 00000000..3f5cac7e --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Unlocks/Trials/1412_The King Lives.json @@ -0,0 +1,54 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1007478, + "Position": { + "X": -2.822998, + "Y": -3.0000014, + "Z": -56.229553 + }, + "TerritoryId": 212, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1000168, + "Position": { + "X": -75.48645, + "Y": -0.5013741, + "Z": -5.081299 + }, + "TerritoryId": 132, + "InteractionType": "Interact", + "AetheryteShortcut": "Gridania" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1008544, + "Position": { + "X": -316.42633, + "Y": 12.050298, + "Z": -35.385742 + }, + "TerritoryId": 152, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "East Shroud - Hawthorne Hut", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Unlocks/Trials/1413_Whorl of a Time.json b/QuestPaths/2.x - A Realm Reborn/Unlocks/Trials/1413_Whorl of a Time.json new file mode 100644 index 00000000..920b69f4 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Unlocks/Trials/1413_Whorl of a Time.json @@ -0,0 +1,58 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1007478, + "Position": { + "X": -2.822998, + "Y": -3.0000014, + "Z": -56.229553 + }, + "TerritoryId": 212, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1003281, + "Position": { + "X": 97.520386, + "Y": 40.248554, + "Z": 81.1322 + }, + "TerritoryId": 128, + "InteractionType": "Interact", + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] The Aftcastle" + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1005409, + "Position": { + "X": 159.62463, + "Y": 8.974117, + "Z": 582.7573 + }, + "TerritoryId": 135, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Lower La Noscea - Moraby Drydocks", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Unlocks/Trials/1530_Judgment Bolts and Lightning.json b/QuestPaths/2.x - A Realm Reborn/Unlocks/Trials/1530_Judgment Bolts and Lightning.json new file mode 100644 index 00000000..ec213216 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Unlocks/Trials/1530_Judgment Bolts and Lightning.json @@ -0,0 +1,115 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1009294, + "Position": { + "X": -63.767517, + "Y": -1.7171676, + "Z": 11.673096 + }, + "TerritoryId": 132, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1000587, + "Position": { + "X": -7.248047, + "Y": -8.407776, + "Z": 268.23828 + }, + "TerritoryId": 152, + "InteractionType": "Interact", + "AetheryteShortcut": "East Shroud - Hawthorne Hut", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": 198.12068, + "Y": -31.484615, + "Z": -218.4991 + }, + "TerritoryId": 152, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 2004430, + "Position": { + "X": 198.2909, + "Y": -29.83142, + "Z": -220.44714 + }, + "TerritoryId": 152, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "TerritoryId": 152, + "InteractionType": "Duty", + "ContentFinderConditionId": 78 + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "TerritoryId": 132, + "InteractionType": "UseItem", + "ItemId": 30362, + "TargetTerritoryId": 140 + }, + { + "Position": { + "X": -492.96475, + "Y": 20.999884, + "Z": -380.82272 + }, + "TerritoryId": 140, + "InteractionType": "WalkTo", + "$": "Avoid walking around Waking Sands table" + }, + { + "DataId": 2001711, + "Position": { + "X": -480.9181, + "Y": 18.00103, + "Z": -386.862 + }, + "TerritoryId": 140, + "InteractionType": "Interact", + "TargetTerritoryId": 212 + }, + { + "DataId": 1007478, + "Position": { + "X": -2.822998, + "Y": -3.0000014, + "Z": -56.229553 + }, + "TerritoryId": 212, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Unlocks/Trials/433_Fear and Odin in the Shroud.json b/QuestPaths/2.x - A Realm Reborn/Unlocks/Trials/433_Fear and Odin in the Shroud.json new file mode 100644 index 00000000..10f664c8 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Unlocks/Trials/433_Fear and Odin in the Shroud.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": 1009294, + "Position": { + "X": -63.767517, + "Y": -1.7171676, + "Z": 11.673096 + }, + "TerritoryId": 132, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Gridania" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1011250, + "Position": { + "X": 616.51013, + "Y": 22.291952, + "Z": 85.22156 + }, + "TerritoryId": 153, + "InteractionType": "Interact", + "AetheryteShortcut": "South Shroud - Quarrymill", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "TerritoryId": 153, + "InteractionType": "Duty", + "ContentFinderConditionId": 82 + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1011250, + "Position": { + "X": 616.51013, + "Y": 22.291952, + "Z": 85.22156 + }, + "TerritoryId": 153, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Unlocks/Trials/90_Drop Dead Shiva.json b/QuestPaths/2.x - A Realm Reborn/Unlocks/Trials/90_Drop Dead Shiva.json new file mode 100644 index 00000000..3a0647c6 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Unlocks/Trials/90_Drop Dead Shiva.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": 1007478, + "Position": { + "X": -2.822998, + "Y": -3.0000014, + "Z": -56.229553 + }, + "TerritoryId": 212, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": -424.22275, + "Y": 265.1, + "Z": -206.5006 + }, + "TerritoryId": 155, + "InteractionType": "WalkTo", + "Fly": true, + "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead" + }, + { + "DataId": 1006444, + "Position": { + "X": -432.9748, + "Y": 233.47266, + "Z": -199.6643 + }, + "TerritoryId": 155, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": -431.37878, + "Y": 259.79306, + "Z": -194.97882 + }, + "TerritoryId": 155, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "Position": { + "X": -423.87833, + "Y": 266.9849, + "Z": -205.68484 + }, + "TerritoryId": 155, + "InteractionType": "WalkTo", + "Fly": false + }, + { + "DataId": 1010054, + "Position": { + "X": -916.6552, + "Y": 229.3692, + "Z": -6.4240723 + }, + "TerritoryId": 155, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "TerritoryId": 155, + "InteractionType": "Duty", + "ContentFinderConditionId": 80 + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "Position": { + "X": -424.22275, + "Y": 265.1, + "Z": -206.5006 + }, + "TerritoryId": 155, + "InteractionType": "WalkTo", + "Fly": true, + "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + }, + { + "DataId": 1006444, + "Position": { + "X": -432.9748, + "Y": 233.47266, + "Z": -199.6643 + }, + "TerritoryId": 155, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "TerritoryId": 132, + "InteractionType": "UseItem", + "ItemId": 30362, + "TargetTerritoryId": 140 + }, + { + "Position": { + "X": -492.96475, + "Y": 20.999884, + "Z": -380.82272 + }, + "TerritoryId": 140, + "InteractionType": "WalkTo", + "$": "Avoid walking around Waking Sands table" + }, + { + "DataId": 2001711, + "Position": { + "X": -480.9181, + "Y": 18.00103, + "Z": -386.862 + }, + "TerritoryId": 140, + "InteractionType": "Interact", + "TargetTerritoryId": 212 + }, + { + "DataId": 1007478, + "Position": { + "X": -2.822998, + "Y": -3.0000014, + "Z": -56.229553 + }, + "TerritoryId": 212, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} From 0eef3cd5eb7189250e1089ec6427602a7fb06d5a Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Fri, 6 Sep 2024 13:25:10 +0200 Subject: [PATCH 184/450] Add 'comfort' 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 ad911e72..cb6c9c5e 100644 --- a/QuestPaths/quest-v1.json +++ b/QuestPaths/quest-v1.json @@ -778,7 +778,8 @@ "bow", "uchiwasshoi", "clap", - "victorypose" + "victorypose", + "comfort" ] } } diff --git a/Questionable.Model/Questing/Converter/EmoteConverter.cs b/Questionable.Model/Questing/Converter/EmoteConverter.cs index e6080ce0..935bc32a 100644 --- a/Questionable.Model/Questing/Converter/EmoteConverter.cs +++ b/Questionable.Model/Questing/Converter/EmoteConverter.cs @@ -32,5 +32,6 @@ public sealed class EmoteConverter() : EnumConverter(Values) { EEmote.Uchiwasshoi, "uchiwasshoi" }, { EEmote.Clap, "clap" }, { EEmote.VictoryPose, "victorypose" }, + { EEmote.Comfort, "comfort" }, }; } diff --git a/Questionable.Model/Questing/EEmote.cs b/Questionable.Model/Questing/EEmote.cs index 517f9db7..0b81fd3e 100644 --- a/Questionable.Model/Questing/EEmote.cs +++ b/Questionable.Model/Questing/EEmote.cs @@ -33,4 +33,5 @@ public enum EEmote Uchiwasshoi = 278, Clap = 7, VictoryPose = 122, + Comfort = 9, } From 0b30189ec2721ba4b6dddae388c92ab692f0be82 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Fri, 6 Sep 2024 13:36:47 +0200 Subject: [PATCH 185/450] Move trials from Unlock\Trials to Trial Quests, as expacs tend to have proper questlines --- .../{Unlocks/Trials => Trial Quests}/1007_Primal Fear.json | 0 .../Trials => Trial Quests}/1008_Who Was That Man in Black.json | 0 .../{Unlocks/Trials => Trial Quests}/1009_The Dark Divinity.json | 0 .../1012_All You Wanted to Know about Odin.json | 0 .../Trials => Trial Quests}/1047_A Recurring Problem.json | 0 .../1048_Ifrit Bleeds, We Can Kill It.json | 0 .../Trials => Trial Quests}/1157_In for Garuda Awakening.json | 0 .../{Unlocks/Trials => Trial Quests}/1158_In a Titan Spot.json | 0 .../{Unlocks/Trials => Trial Quests}/1194_Primal Nature.json | 0 .../{Unlocks/Trials => Trial Quests}/1195_Gale-force Warning.json | 0 .../1196_Quake Me Up Before You O'Ghomoro.json | 0 .../{Unlocks/Trials => Trial Quests}/1197_Ifrit Ain't Broke.json | 0 .../Trials => Trial Quests}/1198_To Tussle with Gods.json | 0 .../{Unlocks/Trials => Trial Quests}/1309_Primal Focus.json | 0 .../{Unlocks/Trials => Trial Quests}/1412_The King Lives.json | 0 .../{Unlocks/Trials => Trial Quests}/1413_Whorl of a Time.json | 0 .../1530_Judgment Bolts and Lightning.json | 0 .../Trials => Trial Quests}/433_Fear and Odin in the Shroud.json | 0 .../{Unlocks/Trials => Trial Quests}/90_Drop Dead Shiva.json | 0 19 files changed, 0 insertions(+), 0 deletions(-) rename QuestPaths/2.x - A Realm Reborn/{Unlocks/Trials => Trial Quests}/1007_Primal Fear.json (100%) rename QuestPaths/2.x - A Realm Reborn/{Unlocks/Trials => Trial Quests}/1008_Who Was That Man in Black.json (100%) rename QuestPaths/2.x - A Realm Reborn/{Unlocks/Trials => Trial Quests}/1009_The Dark Divinity.json (100%) rename QuestPaths/2.x - A Realm Reborn/{Unlocks/Trials => Trial Quests}/1012_All You Wanted to Know about Odin.json (100%) rename QuestPaths/2.x - A Realm Reborn/{Unlocks/Trials => Trial Quests}/1047_A Recurring Problem.json (100%) rename QuestPaths/2.x - A Realm Reborn/{Unlocks/Trials => Trial Quests}/1048_Ifrit Bleeds, We Can Kill It.json (100%) rename QuestPaths/2.x - A Realm Reborn/{Unlocks/Trials => Trial Quests}/1157_In for Garuda Awakening.json (100%) rename QuestPaths/2.x - A Realm Reborn/{Unlocks/Trials => Trial Quests}/1158_In a Titan Spot.json (100%) rename QuestPaths/2.x - A Realm Reborn/{Unlocks/Trials => Trial Quests}/1194_Primal Nature.json (100%) rename QuestPaths/2.x - A Realm Reborn/{Unlocks/Trials => Trial Quests}/1195_Gale-force Warning.json (100%) rename QuestPaths/2.x - A Realm Reborn/{Unlocks/Trials => Trial Quests}/1196_Quake Me Up Before You O'Ghomoro.json (100%) rename QuestPaths/2.x - A Realm Reborn/{Unlocks/Trials => Trial Quests}/1197_Ifrit Ain't Broke.json (100%) rename QuestPaths/2.x - A Realm Reborn/{Unlocks/Trials => Trial Quests}/1198_To Tussle with Gods.json (100%) rename QuestPaths/2.x - A Realm Reborn/{Unlocks/Trials => Trial Quests}/1309_Primal Focus.json (100%) rename QuestPaths/2.x - A Realm Reborn/{Unlocks/Trials => Trial Quests}/1412_The King Lives.json (100%) rename QuestPaths/2.x - A Realm Reborn/{Unlocks/Trials => Trial Quests}/1413_Whorl of a Time.json (100%) rename QuestPaths/2.x - A Realm Reborn/{Unlocks/Trials => Trial Quests}/1530_Judgment Bolts and Lightning.json (100%) rename QuestPaths/2.x - A Realm Reborn/{Unlocks/Trials => Trial Quests}/433_Fear and Odin in the Shroud.json (100%) rename QuestPaths/2.x - A Realm Reborn/{Unlocks/Trials => Trial Quests}/90_Drop Dead Shiva.json (100%) diff --git a/QuestPaths/2.x - A Realm Reborn/Unlocks/Trials/1007_Primal Fear.json b/QuestPaths/2.x - A Realm Reborn/Trial Quests/1007_Primal Fear.json similarity index 100% rename from QuestPaths/2.x - A Realm Reborn/Unlocks/Trials/1007_Primal Fear.json rename to QuestPaths/2.x - A Realm Reborn/Trial Quests/1007_Primal Fear.json diff --git a/QuestPaths/2.x - A Realm Reborn/Unlocks/Trials/1008_Who Was That Man in Black.json b/QuestPaths/2.x - A Realm Reborn/Trial Quests/1008_Who Was That Man in Black.json similarity index 100% rename from QuestPaths/2.x - A Realm Reborn/Unlocks/Trials/1008_Who Was That Man in Black.json rename to QuestPaths/2.x - A Realm Reborn/Trial Quests/1008_Who Was That Man in Black.json diff --git a/QuestPaths/2.x - A Realm Reborn/Unlocks/Trials/1009_The Dark Divinity.json b/QuestPaths/2.x - A Realm Reborn/Trial Quests/1009_The Dark Divinity.json similarity index 100% rename from QuestPaths/2.x - A Realm Reborn/Unlocks/Trials/1009_The Dark Divinity.json rename to QuestPaths/2.x - A Realm Reborn/Trial Quests/1009_The Dark Divinity.json diff --git a/QuestPaths/2.x - A Realm Reborn/Unlocks/Trials/1012_All You Wanted to Know about Odin.json b/QuestPaths/2.x - A Realm Reborn/Trial Quests/1012_All You Wanted to Know about Odin.json similarity index 100% rename from QuestPaths/2.x - A Realm Reborn/Unlocks/Trials/1012_All You Wanted to Know about Odin.json rename to QuestPaths/2.x - A Realm Reborn/Trial Quests/1012_All You Wanted to Know about Odin.json diff --git a/QuestPaths/2.x - A Realm Reborn/Unlocks/Trials/1047_A Recurring Problem.json b/QuestPaths/2.x - A Realm Reborn/Trial Quests/1047_A Recurring Problem.json similarity index 100% rename from QuestPaths/2.x - A Realm Reborn/Unlocks/Trials/1047_A Recurring Problem.json rename to QuestPaths/2.x - A Realm Reborn/Trial Quests/1047_A Recurring Problem.json diff --git a/QuestPaths/2.x - A Realm Reborn/Unlocks/Trials/1048_Ifrit Bleeds, We Can Kill It.json b/QuestPaths/2.x - A Realm Reborn/Trial Quests/1048_Ifrit Bleeds, We Can Kill It.json similarity index 100% rename from QuestPaths/2.x - A Realm Reborn/Unlocks/Trials/1048_Ifrit Bleeds, We Can Kill It.json rename to QuestPaths/2.x - A Realm Reborn/Trial Quests/1048_Ifrit Bleeds, We Can Kill It.json diff --git a/QuestPaths/2.x - A Realm Reborn/Unlocks/Trials/1157_In for Garuda Awakening.json b/QuestPaths/2.x - A Realm Reborn/Trial Quests/1157_In for Garuda Awakening.json similarity index 100% rename from QuestPaths/2.x - A Realm Reborn/Unlocks/Trials/1157_In for Garuda Awakening.json rename to QuestPaths/2.x - A Realm Reborn/Trial Quests/1157_In for Garuda Awakening.json diff --git a/QuestPaths/2.x - A Realm Reborn/Unlocks/Trials/1158_In a Titan Spot.json b/QuestPaths/2.x - A Realm Reborn/Trial Quests/1158_In a Titan Spot.json similarity index 100% rename from QuestPaths/2.x - A Realm Reborn/Unlocks/Trials/1158_In a Titan Spot.json rename to QuestPaths/2.x - A Realm Reborn/Trial Quests/1158_In a Titan Spot.json diff --git a/QuestPaths/2.x - A Realm Reborn/Unlocks/Trials/1194_Primal Nature.json b/QuestPaths/2.x - A Realm Reborn/Trial Quests/1194_Primal Nature.json similarity index 100% rename from QuestPaths/2.x - A Realm Reborn/Unlocks/Trials/1194_Primal Nature.json rename to QuestPaths/2.x - A Realm Reborn/Trial Quests/1194_Primal Nature.json diff --git a/QuestPaths/2.x - A Realm Reborn/Unlocks/Trials/1195_Gale-force Warning.json b/QuestPaths/2.x - A Realm Reborn/Trial Quests/1195_Gale-force Warning.json similarity index 100% rename from QuestPaths/2.x - A Realm Reborn/Unlocks/Trials/1195_Gale-force Warning.json rename to QuestPaths/2.x - A Realm Reborn/Trial Quests/1195_Gale-force Warning.json diff --git a/QuestPaths/2.x - A Realm Reborn/Unlocks/Trials/1196_Quake Me Up Before You O'Ghomoro.json b/QuestPaths/2.x - A Realm Reborn/Trial Quests/1196_Quake Me Up Before You O'Ghomoro.json similarity index 100% rename from QuestPaths/2.x - A Realm Reborn/Unlocks/Trials/1196_Quake Me Up Before You O'Ghomoro.json rename to QuestPaths/2.x - A Realm Reborn/Trial Quests/1196_Quake Me Up Before You O'Ghomoro.json diff --git a/QuestPaths/2.x - A Realm Reborn/Unlocks/Trials/1197_Ifrit Ain't Broke.json b/QuestPaths/2.x - A Realm Reborn/Trial Quests/1197_Ifrit Ain't Broke.json similarity index 100% rename from QuestPaths/2.x - A Realm Reborn/Unlocks/Trials/1197_Ifrit Ain't Broke.json rename to QuestPaths/2.x - A Realm Reborn/Trial Quests/1197_Ifrit Ain't Broke.json diff --git a/QuestPaths/2.x - A Realm Reborn/Unlocks/Trials/1198_To Tussle with Gods.json b/QuestPaths/2.x - A Realm Reborn/Trial Quests/1198_To Tussle with Gods.json similarity index 100% rename from QuestPaths/2.x - A Realm Reborn/Unlocks/Trials/1198_To Tussle with Gods.json rename to QuestPaths/2.x - A Realm Reborn/Trial Quests/1198_To Tussle with Gods.json diff --git a/QuestPaths/2.x - A Realm Reborn/Unlocks/Trials/1309_Primal Focus.json b/QuestPaths/2.x - A Realm Reborn/Trial Quests/1309_Primal Focus.json similarity index 100% rename from QuestPaths/2.x - A Realm Reborn/Unlocks/Trials/1309_Primal Focus.json rename to QuestPaths/2.x - A Realm Reborn/Trial Quests/1309_Primal Focus.json diff --git a/QuestPaths/2.x - A Realm Reborn/Unlocks/Trials/1412_The King Lives.json b/QuestPaths/2.x - A Realm Reborn/Trial Quests/1412_The King Lives.json similarity index 100% rename from QuestPaths/2.x - A Realm Reborn/Unlocks/Trials/1412_The King Lives.json rename to QuestPaths/2.x - A Realm Reborn/Trial Quests/1412_The King Lives.json diff --git a/QuestPaths/2.x - A Realm Reborn/Unlocks/Trials/1413_Whorl of a Time.json b/QuestPaths/2.x - A Realm Reborn/Trial Quests/1413_Whorl of a Time.json similarity index 100% rename from QuestPaths/2.x - A Realm Reborn/Unlocks/Trials/1413_Whorl of a Time.json rename to QuestPaths/2.x - A Realm Reborn/Trial Quests/1413_Whorl of a Time.json diff --git a/QuestPaths/2.x - A Realm Reborn/Unlocks/Trials/1530_Judgment Bolts and Lightning.json b/QuestPaths/2.x - A Realm Reborn/Trial Quests/1530_Judgment Bolts and Lightning.json similarity index 100% rename from QuestPaths/2.x - A Realm Reborn/Unlocks/Trials/1530_Judgment Bolts and Lightning.json rename to QuestPaths/2.x - A Realm Reborn/Trial Quests/1530_Judgment Bolts and Lightning.json diff --git a/QuestPaths/2.x - A Realm Reborn/Unlocks/Trials/433_Fear and Odin in the Shroud.json b/QuestPaths/2.x - A Realm Reborn/Trial Quests/433_Fear and Odin in the Shroud.json similarity index 100% rename from QuestPaths/2.x - A Realm Reborn/Unlocks/Trials/433_Fear and Odin in the Shroud.json rename to QuestPaths/2.x - A Realm Reborn/Trial Quests/433_Fear and Odin in the Shroud.json diff --git a/QuestPaths/2.x - A Realm Reborn/Unlocks/Trials/90_Drop Dead Shiva.json b/QuestPaths/2.x - A Realm Reborn/Trial Quests/90_Drop Dead Shiva.json similarity index 100% rename from QuestPaths/2.x - A Realm Reborn/Unlocks/Trials/90_Drop Dead Shiva.json rename to QuestPaths/2.x - A Realm Reborn/Trial Quests/90_Drop Dead Shiva.json From 81d1935187532bb579eeb8c39562a964397311c0 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Fri, 6 Sep 2024 21:17:11 +0200 Subject: [PATCH 186/450] Don't count unobtainable quests towards completeable quests in journal --- .../Controller/Steps/Interactions/UseItem.cs | 2 +- Questionable/Data/QuestData.cs | 29 +++++++++++- Questionable/Functions/QuestFunctions.cs | 38 ++++++++++++++++ Questionable/Model/QuestInfo.cs | 22 +++++++--- .../QuestJournalComponent.cs | 44 +++++++++++-------- Questionable/Windows/UiUtils.cs | 2 + 6 files changed, 112 insertions(+), 25 deletions(-) diff --git a/Questionable/Controller/Steps/Interactions/UseItem.cs b/Questionable/Controller/Steps/Interactions/UseItem.cs index 1891e5b1..358c30d9 100644 --- a/Questionable/Controller/Steps/Interactions/UseItem.cs +++ b/Questionable/Controller/Steps/Interactions/UseItem.cs @@ -91,7 +91,7 @@ internal static class UseItem step.CompletionQuestVariablesFlags); } - return [unmount, task]; + return [unmount, new WaitAtEnd.WaitDelay(TimeSpan.FromSeconds(0.5)), task]; } else if (step.DataId != null) { diff --git a/Questionable/Data/QuestData.cs b/Questionable/Data/QuestData.cs index 7ba7f3cc..2be98c4d 100644 --- a/Questionable/Data/QuestData.cs +++ b/Questionable/Data/QuestData.cs @@ -45,12 +45,21 @@ internal sealed class QuestData .Where(x => x.RowId > 0 && x.Quest.Row > 0) .ToDictionary(x => x.Quest.Row, x => x.Redo); + 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; + } + List quests = [ ..dataManager.GetExcelSheet()! .Where(x => x.RowId > 0) .Where(x => x.IssuerLocation.Row > 0) - .Select(x => new QuestInfo(x, questChapters.GetValueOrDefault(x.RowId))), + .Select(x => new QuestInfo(x, questChapters.GetValueOrDefault(x.RowId), + startingCities.GetValueOrDefault(x.RowId))), ..dataManager.GetExcelSheet()! .Where(x => x.RowId > 0) .Select(x => new SatisfactionSupplyInfo(x)), @@ -150,6 +159,14 @@ internal sealed class QuestData AddPreviousQuest(new QuestId(3821), new QuestId(spearfishing)); AddPreviousQuest(new QuestId(3833), new QuestId(spearfishing)); */ + + // initial city quests are side quests + ((QuestInfo)_quests[new QuestId(107)]).StartingCity = 1; + ((QuestInfo)_quests[new QuestId(39)]).StartingCity = 2; + ((QuestInfo)_quests[new QuestId(594)]).StartingCity = 3; + + // follow-up quests to picking a GC + AddGcFollowUpQuests(); } private void AddPreviousQuest(QuestId questToUpdate, QuestId requiredQuestId) @@ -158,6 +175,16 @@ internal sealed class QuestData quest.AddPreviousQuest(new QuestInfo.PreviousQuestInfo(requiredQuestId)); } + private void AddGcFollowUpQuests() + { + QuestId[] questIds = [new(683), new(684), new(685)]; + foreach (QuestId questId in questIds) + { + QuestInfo quest = (QuestInfo)_quests[questId]; + quest.AddQuestLocks(QuestInfo.QuestJoin.AtLeastOne, questIds.Where(x => x != questId).ToArray()); + } + } + public IQuestInfo GetQuestInfo(ElementId elementId) { return _quests[elementId] ?? throw new ArgumentOutOfRangeException(nameof(elementId)); diff --git a/Questionable/Functions/QuestFunctions.cs b/Questionable/Functions/QuestFunctions.cs index 3f48db39..091150a8 100644 --- a/Questionable/Functions/QuestFunctions.cs +++ b/Questionable/Functions/QuestFunctions.cs @@ -453,6 +453,14 @@ internal sealed unsafe class QuestFunctions return !HasCompletedPreviousQuests(questInfo, extraCompletedQuest) || !HasCompletedPreviousInstances(questInfo); } + public bool IsQuestUnobtainable(ElementId elementId, ElementId? extraCompletedQuest = null) + { + if (elementId is QuestId questId) + return IsQuestUnobtainable(questId, extraCompletedQuest); + else + return false; + } + public bool IsQuestUnobtainable(QuestId questId, ElementId? extraCompletedQuest = null) { var questInfo = (QuestInfo)_questData.GetQuestInfo(questId); @@ -468,6 +476,36 @@ internal sealed unsafe class QuestFunctions if (_questData.GetLockedClassQuests().Contains(questId)) return true; + unsafe + { + var startingCity = PlayerState.Instance()->StartTown; + if (questInfo.StartingCity > 0 && questInfo.StartingCity != startingCity) + return true; + + if (questId.Value == 674 && startingCity == 3) + return true; + if (questId.Value == 673 && startingCity != 3) + return true; + + Dictionary closeToHomeQuests = new() + { + { 108, EClassJob.Marauder }, + { 109, EClassJob.Arcanist }, + { 85, EClassJob.Lancer }, + { 123, EClassJob.Archer }, + { 124, EClassJob.Conjurer }, + { 568, EClassJob.Gladiator }, + { 569, EClassJob.Pugilist }, + { 570, EClassJob.Thaumaturge } + }; + if (closeToHomeQuests.TryGetValue(questId.Value, out EClassJob neededStartingClass)) + { + EClassJob actualStartingClass = (EClassJob)PlayerState.Instance()->FirstClass; + if (actualStartingClass != neededStartingClass) + return true; + } + } + return false; } diff --git a/Questionable/Model/QuestInfo.cs b/Questionable/Model/QuestInfo.cs index 9b1214b9..aeda70c3 100644 --- a/Questionable/Model/QuestInfo.cs +++ b/Questionable/Model/QuestInfo.cs @@ -1,4 +1,5 @@ -using System.Collections.Generic; +using System; +using System.Collections.Generic; using System.Collections.Immutable; using System.Linq; using FFXIVClientStructs.FFXIV.Client.UI.Agent; @@ -11,7 +12,7 @@ namespace Questionable.Model; internal sealed class QuestInfo : IQuestInfo { - public QuestInfo(ExcelQuest quest, ushort newGamePlusChapter) + public QuestInfo(ExcelQuest quest, ushort newGamePlusChapter, byte startingCity) { QuestId = new QuestId((ushort)(quest.RowId & 0xFFFF)); @@ -60,6 +61,7 @@ internal sealed class QuestInfo : IQuestInfo ClassJobs = QuestInfoUtils.AsList(quest.ClassJobCategory0.Value!); IsSeasonalEvent = quest.Festival.Row != 0; NewGamePlusChapter = newGamePlusChapter; + StartingCity = startingCity; Expansion = (EExpansionVersion)quest.Expansion.Row; } @@ -69,10 +71,10 @@ internal sealed class QuestInfo : IQuestInfo public ushort Level { get; } public uint IssuerDataId { get; } public bool IsRepeatable { get; } - public ImmutableList PreviousQuests { get; set; } + public ImmutableList PreviousQuests { get; private set; } public QuestJoin PreviousQuestJoin { get; } - public ImmutableList QuestLocks { get; } - public QuestJoin QuestLockJoin { get; } + public ImmutableList QuestLocks { get; private set; } + public QuestJoin QuestLockJoin { get; private set; } public List PreviousInstanceContent { get; } public QuestJoin PreviousInstanceContentJoin { get; } public uint? JournalGenre { get; } @@ -84,6 +86,7 @@ internal sealed class QuestInfo : IQuestInfo public IReadOnlyList ClassJobs { get; } public bool IsSeasonalEvent { get; } public ushort NewGamePlusChapter { get; } + public byte StartingCity { get; set; } public EExpansionVersion Expansion { get; } [UsedImplicitly(ImplicitUseKindFlags.Assign, ImplicitUseTargetFlags.Members)] @@ -99,5 +102,14 @@ internal sealed class QuestInfo : IQuestInfo PreviousQuests = [..PreviousQuests, questId]; } + public void AddQuestLocks(QuestJoin questJoin, params QuestId[] questId) + { + if (QuestLocks.Count > 0 && QuestLockJoin != questJoin) + throw new InvalidOperationException(); + + QuestLockJoin = questJoin; + QuestLocks = [..QuestLocks, ..questId]; + } + public sealed record PreviousQuestInfo(QuestId QuestId, byte Sequence = 0); } diff --git a/Questionable/Windows/JournalComponents/QuestJournalComponent.cs b/Questionable/Windows/JournalComponents/QuestJournalComponent.cs index 9aa04a7e..715c045f 100644 --- a/Questionable/Windows/JournalComponents/QuestJournalComponent.cs +++ b/Questionable/Windows/JournalComponents/QuestJournalComponent.cs @@ -19,9 +19,13 @@ namespace Questionable.Windows.JournalComponents; internal sealed class QuestJournalComponent { - private readonly Dictionary _genreCounts = new(); - private readonly Dictionary _categoryCounts = new(); - private readonly Dictionary _sectionCounts = new(); + private readonly Dictionary _genreCounts = []; + + private readonly Dictionary _categoryCounts = + []; + + private readonly Dictionary _sectionCounts = + []; private readonly JournalData _journalData; private readonly QuestRegistry _questRegistry; @@ -95,7 +99,7 @@ internal sealed class QuestJournalComponent if (filter.Section.QuestCount == 0) return; - (int supported, int completed) = _sectionCounts.GetValueOrDefault(filter.Section); + (int available, int obtainable, int completed) = _sectionCounts.GetValueOrDefault(filter.Section); ImGui.TableNextRow(); ImGui.TableNextColumn(); @@ -103,9 +107,9 @@ internal sealed class QuestJournalComponent bool open = ImGui.TreeNodeEx(filter.Section.Name, ImGuiTreeNodeFlags.SpanFullWidth); ImGui.TableNextColumn(); - DrawCount(supported, filter.Section.QuestCount); + DrawCount(available, filter.Section.QuestCount); ImGui.TableNextColumn(); - DrawCount(completed, filter.Section.QuestCount); + DrawCount(completed, obtainable); if (open) { @@ -121,7 +125,7 @@ internal sealed class QuestJournalComponent if (filter.Category.QuestCount == 0) return; - (int supported, int completed) = _categoryCounts.GetValueOrDefault(filter.Category); + (int available, int obtainable, int completed) = _categoryCounts.GetValueOrDefault(filter.Category); ImGui.TableNextRow(); ImGui.TableNextColumn(); @@ -129,9 +133,9 @@ internal sealed class QuestJournalComponent bool open = ImGui.TreeNodeEx(filter.Category.Name, ImGuiTreeNodeFlags.SpanFullWidth); ImGui.TableNextColumn(); - DrawCount(supported, filter.Category.QuestCount); + DrawCount(available, filter.Category.QuestCount); ImGui.TableNextColumn(); - DrawCount(completed, filter.Category.QuestCount); + DrawCount(completed, obtainable); if (open) { @@ -147,7 +151,7 @@ internal sealed class QuestJournalComponent if (filter.Genre.QuestCount == 0) return; - (int supported, int completed) = _genreCounts.GetValueOrDefault(filter.Genre); + (int supported, int obtainable, int completed) = _genreCounts.GetValueOrDefault(filter.Genre); ImGui.TableNextRow(); ImGui.TableNextColumn(); @@ -157,7 +161,7 @@ internal sealed class QuestJournalComponent ImGui.TableNextColumn(); DrawCount(supported, filter.Genre.QuestCount); ImGui.TableNextColumn(); - DrawCount(completed, filter.Genre.QuestCount); + DrawCount(completed, obtainable); if (open) { @@ -192,7 +196,8 @@ internal sealed class QuestJournalComponent 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!); + _commandManager.DispatchCommand("/questinfo", questInfo.QuestId.ToString() ?? string.Empty, + commandInfo!); } ImGui.EndPopup(); @@ -317,8 +322,9 @@ internal sealed class QuestJournalComponent { int available = genre.Quests.Count(x => _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, completed); + _genreCounts[genre] = (available, obtainable, completed); } foreach (var category in _journalData.Categories) @@ -328,8 +334,9 @@ internal sealed class QuestJournalComponent .Select(x => x.Value) .ToList(); int available = counts.Sum(x => x.Available); + int obtainable = counts.Sum(x => x.Obtainable); int completed = counts.Sum(x => x.Completed); - _categoryCounts[category] = (available, completed); + _categoryCounts[category] = (available, obtainable, completed); } foreach (var section in _journalData.Sections) @@ -339,21 +346,22 @@ internal sealed class QuestJournalComponent .Select(x => x.Value) .ToList(); int available = counts.Sum(x => x.Available); + int obtainable = counts.Sum(x => x.Obtainable); int completed = counts.Sum(x => x.Completed); - _sectionCounts[section] = (available, completed); + _sectionCounts[section] = (available, obtainable, completed); } } internal void ClearCounts() { foreach (var genreCount in _genreCounts.ToList()) - _genreCounts[genreCount.Key] = (genreCount.Value.Available, 0); + _genreCounts[genreCount.Key] = (genreCount.Value.Available, genreCount.Value.Available, 0); foreach (var categoryCount in _categoryCounts.ToList()) - _categoryCounts[categoryCount.Key] = (categoryCount.Value.Available, 0); + _categoryCounts[categoryCount.Key] = (categoryCount.Value.Available, categoryCount.Value.Available, 0); foreach (var sectionCount in _sectionCounts.ToList()) - _sectionCounts[sectionCount.Key] = (sectionCount.Value.Available, 0); + _sectionCounts[sectionCount.Key] = (sectionCount.Value.Available, sectionCount.Value.Available, 0); } private sealed record FilteredSection(JournalData.Section Section, List Categories); diff --git a/Questionable/Windows/UiUtils.cs b/Questionable/Windows/UiUtils.cs index e0155816..270a76d9 100644 --- a/Questionable/Windows/UiUtils.cs +++ b/Questionable/Windows/UiUtils.cs @@ -26,6 +26,8 @@ internal sealed class UiUtils return (ImGuiColors.DalamudYellow, FontAwesomeIcon.PersonWalkingArrowRight, "Active"); else if (_questFunctions.IsQuestAcceptedOrComplete(elementId)) return (ImGuiColors.ParsedGreen, FontAwesomeIcon.Check, "Complete"); + else if (_questFunctions.IsQuestUnobtainable(elementId)) + return (ImGuiColors.DalamudGrey, FontAwesomeIcon.Minus, "Unobtainable"); else if (_questFunctions.IsQuestLocked(elementId)) return (ImGuiColors.DalamudRed, FontAwesomeIcon.Times, "Locked"); else From baee61ae781068afbdeabe37bcd9e9cb78a30a6b Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Fri, 6 Sep 2024 23:09:42 +0200 Subject: [PATCH 187/450] Add YoRHa: Dark Apocalypse quests (excluding locked follow ups) --- .../3671_Word about Komra.json | 181 +++++ .../3717_A Scandal in Komra.json | 220 ++++++ .../3718_On the Threshold.json | 113 +++ .../3719_An Academic Dispute.json | 37 + .../3720_Tails, You Lose.json | 453 ++++++++++++ .../3721_Heads, I Win.json | 454 ++++++++++++ .../3784_Carnivals and Confrontations.json | 49 ++ .../3785_One Way to Do It.json | 89 +++ .../3952_We Can Rebuild Her.json | 198 ++++++ .../3953_Everything You Know Is Wrong.json | 121 ++++ .../3954_Crime and Punishment.json | 363 ++++++++++ .../3998_To Make Amends.json | 657 ++++++++++++++++++ .../4034_Konogg, Alone.json | 213 ++++++ .../4035_Brave New World.json | 200 ++++++ .../4036_It Takes a Village.json | 297 ++++++++ .../4043_Komra Wasn't Built in a Day.json | 43 ++ .../4044_A Message from Konogg.json | 21 + .../4050_All That Grinds Is Not Gloom.json | 143 ++++ 18 files changed, 3852 insertions(+) create mode 100644 QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/3671_Word about Komra.json create mode 100644 QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/3717_A Scandal in Komra.json create mode 100644 QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/3718_On the Threshold.json create mode 100644 QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/3719_An Academic Dispute.json create mode 100644 QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/3720_Tails, You Lose.json create mode 100644 QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/3721_Heads, I Win.json create mode 100644 QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/3784_Carnivals and Confrontations.json create mode 100644 QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/3785_One Way to Do It.json create mode 100644 QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/3952_We Can Rebuild Her.json create mode 100644 QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/3953_Everything You Know Is Wrong.json create mode 100644 QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/3954_Crime and Punishment.json create mode 100644 QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/3998_To Make Amends.json create mode 100644 QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/4034_Konogg, Alone.json create mode 100644 QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/4035_Brave New World.json create mode 100644 QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/4036_It Takes a Village.json create mode 100644 QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/4043_Komra Wasn't Built in a Day.json create mode 100644 QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/4044_A Message from Konogg.json create mode 100644 QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/4050_All That Grinds Is Not Gloom.json diff --git a/QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/3671_Word about Komra.json b/QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/3671_Word about Komra.json new file mode 100644 index 00000000..4e46eb25 --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/3671_Word about Komra.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": [ + { + "DataId": 1031577, + "Position": { + "X": -425.58942, + "Y": 417.21378, + "Z": -636.7438 + }, + "TerritoryId": 814, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1031578, + "Position": { + "X": 737.48376, + "Y": 285.0224, + "Z": -84.97754 + }, + "TerritoryId": 814, + "InteractionType": "Interact", + "AetheryteShortcut": "Kholusia - Stilltide", + "Fly": true, + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_LUCKYA003_03671_Q1_000_000", + "Yes": true + } + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1031579, + "Position": { + "X": 735.89685, + "Y": 285.08194, + "Z": -82.35297 + }, + "StopDistance": 5, + "TerritoryId": 814, + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_LUCKYA003_03671_Q2_000_000", + "Answer": "TEXT_LUCKYA003_03671_A2_000_001" + } + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1031580, + "Position": { + "X": 665.21704, + "Y": 297.47797, + "Z": -159.77728 + }, + "TerritoryId": 814, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 2010753, + "Position": { + "X": 631.9523, + "Y": 325.82593, + "Z": -228.68695 + }, + "TerritoryId": 814, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1031580, + "Position": { + "X": 665.21704, + "Y": 297.47797, + "Z": -159.77728 + }, + "TerritoryId": 814, + "InteractionType": "Interact", + "Fly": true, + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_LUCKYA003_03671_Q5_000_000", + "Answer": "TEXT_LUCKYA003_03671_A5_000_002" + } + ] + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "Position": { + "X": 544.0766, + "Y": 295.72742, + "Z": -218.72057 + }, + "TerritoryId": 814, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 2010754, + "Position": { + "X": 542.9313, + "Y": 296.19275, + "Z": -217.02905 + }, + "TerritoryId": 814, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 7, + "Steps": [ + { + "DataId": 1031579, + "Position": { + "X": 735.89685, + "Y": 285.08194, + "Z": -82.35297 + }, + "TerritoryId": 814, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1031577, + "Position": { + "X": -425.58942, + "Y": 417.21378, + "Z": -636.7438 + }, + "TerritoryId": 814, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Kholusia - Tomra", + "NextQuestId": 3717 + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/3717_A Scandal in Komra.json b/QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/3717_A Scandal in Komra.json new file mode 100644 index 00000000..2f3509d7 --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/3717_A Scandal in Komra.json @@ -0,0 +1,220 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1031577, + "Position": { + "X": -425.58942, + "Y": 417.21378, + "Z": -636.7438 + }, + "TerritoryId": 814, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1031586, + "Position": { + "X": 663.569, + "Y": 297.47797, + "Z": -162.24927 + }, + "TerritoryId": 814, + "InteractionType": "Interact", + "AetheryteShortcut": "Kholusia - Stilltide", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": 547.1434, + "Y": 295.63748, + "Z": -219.3426 + }, + "TerritoryId": 814, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 2010833, + "Position": { + "X": 545.4946, + "Y": 296.1317, + "Z": -218.79913 + }, + "TerritoryId": 814, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1031586, + "Position": { + "X": 663.569, + "Y": 297.47797, + "Z": -162.24927 + }, + "TerritoryId": 814, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1031826, + "Position": { + "X": 623.1022, + "Y": 297.49335, + "Z": -199.51172 + }, + "TerritoryId": 814, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1031578, + "Position": { + "X": 737.48376, + "Y": 285.0224, + "Z": -84.97754 + }, + "TerritoryId": 814, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1031578, + "Position": { + "X": 737.48376, + "Y": 285.0224, + "Z": -84.97754 + }, + "TerritoryId": 814, + "InteractionType": "Emote", + "Emote": "doubt" + } + ] + }, + { + "Sequence": 7, + "Steps": [ + { + "DataId": 1031829, + "Position": { + "X": 215.28955, + "Y": 315.85886, + "Z": -17.349548 + }, + "TerritoryId": 814, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 8, + "Steps": [ + { + "Position": { + "X": 215.44379, + "Y": 315.57245, + "Z": -22.744217 + }, + "StopDistance": 0.5, + "TerritoryId": 814, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [ + 11435, + 11436 + ] + } + ] + }, + { + "Sequence": 9, + "Steps": [ + { + "Position": { + "X": 237.7035, + "Y": 308.6692, + "Z": -119.51825 + }, + "TerritoryId": 814, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 1031828, + "Position": { + "X": 236.40796, + "Y": 309.01877, + "Z": -118.24219 + }, + "TerritoryId": 814, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 10, + "Steps": [ + { + "DataId": 2010844, + "Position": { + "X": 238.17798, + "Y": 308.5221, + "Z": -120.19531 + }, + "TerritoryId": 814, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1031586, + "Position": { + "X": 663.569, + "Y": 297.47797, + "Z": -162.24927 + }, + "TerritoryId": 814, + "InteractionType": "CompleteQuest", + "Fly": true, + "NextQuestId": 3718 + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/3718_On the Threshold.json b/QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/3718_On the Threshold.json new file mode 100644 index 00000000..9ebe35f2 --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/3718_On the Threshold.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": 1031586, + "Position": { + "X": 663.569, + "Y": 297.47797, + "Z": -162.24927 + }, + "TerritoryId": 814, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1032079, + "Position": { + "X": 737.11743, + "Y": 285.0313, + "Z": -84.06195 + }, + "TerritoryId": 814, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2010855, + "Position": { + "X": 738.3076, + "Y": 285.60303, + "Z": -82.871826 + }, + "StopDistance": 4, + "TerritoryId": 814, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1031837, + "Position": { + "X": -1.8158569, + "Y": -6.9233757E-09, + "Z": -90.013 + }, + "TerritoryId": 895, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "TerritoryId": 895, + "InteractionType": "Duty", + "ContentFinderConditionId": 700 + } + ] + }, + { + "Sequence": 5 + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1032021, + "Position": { + "X": -8.255188, + "Y": 0.02999778, + "Z": -66.66675 + }, + "TerritoryId": 895, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1032020, + "Position": { + "X": -9.353821, + "Y": 0.037398916, + "Z": -66.88031 + }, + "StopDistance": 4, + "TerritoryId": 895, + "InteractionType": "CompleteQuest", + "NextQuestId": 3719 + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/3719_An Academic Dispute.json b/QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/3719_An Academic Dispute.json new file mode 100644 index 00000000..e4afc186 --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/3719_An Academic Dispute.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": 1032020, + "Position": { + "X": -9.353821, + "Y": 0.037398916, + "Z": -66.88031 + }, + "StopDistance": 4, + "TerritoryId": 895, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1032228, + "Position": { + "X": -499.4736, + "Y": 484.00323, + "Z": 244.19006 + }, + "TerritoryId": 896, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/3720_Tails, You Lose.json b/QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/3720_Tails, You Lose.json new file mode 100644 index 00000000..3d9d3ca8 --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/3720_Tails, You Lose.json @@ -0,0 +1,453 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1032228, + "Position": { + "X": -499.4736, + "Y": 484.00323, + "Z": 244.19006 + }, + "TerritoryId": 896, + "InteractionType": "AcceptQuest", + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_LUCKTA110_03720_Q2_000_000", + "Yes": true + } + ] + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2010848, + "Position": { + "X": -504.78372, + "Y": 483.97034, + "Z": 234.82104 + }, + "TerritoryId": 896, + "InteractionType": "Interact", + "SkipConditions": { + "StepIf": { + "NotTargetable": true + } + } + }, + { + "Position": { + "X": -500.0601, + "Y": 464, + "Z": 209.26236 + }, + "TerritoryId": 896, + "InteractionType": "WalkTo" + }, + { + "DataId": 2010869, + "Position": { + "X": -505.2415, + "Y": 463.95044, + "Z": 217.60889 + }, + "TerritoryId": 896, + "InteractionType": "Interact", + "SkipConditions": { + "StepIf": { + "NotTargetable": true + } + } + }, + { + "Position": { + "X": -500.03152, + "Y": 401, + "Z": -3.3307662 + }, + "TerritoryId": 896, + "InteractionType": "WalkTo" + }, + { + "DataId": 2010870, + "Position": { + "X": -541.619, + "Y": 400.99182, + "Z": -36.209717 + }, + "TerritoryId": 896, + "InteractionType": "Interact", + "SkipConditions": { + "StepIf": { + "NotTargetable": true + } + } + }, + { + "DataId": 1032073, + "Position": { + "X": -560.0824, + "Y": 383, + "Z": -139.08606 + }, + "TerritoryId": 896, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": -557.9587, + "Y": 383, + "Z": -141.83781 + }, + "TerritoryId": 896, + "InteractionType": "WalkTo", + "RestartNavigationIfCancelled": false + }, + { + "DataId": 1032025, + "Position": { + "X": -573.6935, + "Y": 352.99423, + "Z": -264.0879 + }, + "TerritoryId": 896, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2010874, + "Position": { + "X": -626.5507, + "Y": 340.96277, + "Z": -367.02527 + }, + "TerritoryId": 896, + "InteractionType": "Interact", + "SkipConditions": { + "StepIf": { + "NotTargetable": true + } + } + }, + { + "DataId": 2010872, + "Position": { + "X": -697.87134, + "Y": 339.1621, + "Z": -378.34747 + }, + "TerritoryId": 896, + "InteractionType": "Interact", + "SkipConditions": { + "StepIf": { + "NotTargetable": true + } + } + }, + { + "DataId": 2010825, + "Position": { + "X": -708.21704, + "Y": 339.19275, + "Z": -350.57605 + }, + "TerritoryId": 896, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1032027, + "Position": { + "X": -675.1965, + "Y": 335.42987, + "Z": -293.87354 + }, + "TerritoryId": 896, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 2010882, + "Position": { + "X": -684.01624, + "Y": 335.8662, + "Z": -292.04242 + }, + "TerritoryId": 896, + "InteractionType": "Interact", + "TargetTerritoryId": 896 + }, + { + "DataId": 2010871, + "Position": { + "X": -676.2646, + "Y": -482.9328, + "Z": 612.4818 + }, + "TerritoryId": 896, + "InteractionType": "Interact", + "SkipConditions": { + "StepIf": { + "NotTargetable": true + } + } + }, + { + "DataId": 2010827, + "Position": { + "X": -688.2887, + "Y": -484.00098, + "Z": 582.2689 + }, + "TerritoryId": 896, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 2010826, + "Position": { + "X": -747.982, + "Y": -489.98248, + "Z": 603.1128 + }, + "TerritoryId": 896, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 2010875, + "Position": { + "X": -712.1538, + "Y": -495.99454, + "Z": 562.3406 + }, + "TerritoryId": 896, + "InteractionType": "Interact", + "SkipConditions": { + "StepIf": { + "NotTargetable": true + } + } + }, + { + "DataId": 2010873, + "Position": { + "X": -711.2383, + "Y": -498.00873, + "Z": 547.1732 + }, + "TerritoryId": 896, + "InteractionType": "Interact", + "SkipConditions": { + "StepIf": { + "NotTargetable": true + } + } + }, + { + "DataId": 1032150, + "Position": { + "X": -729.3965, + "Y": -499.74826, + "Z": 546.4408 + }, + "TerritoryId": 896, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 2010944, + "Position": { + "X": -836.6369, + "Y": -492.24078, + "Z": 498.0697 + }, + "TerritoryId": 896, + "InteractionType": "Interact", + "TargetTerritoryId": 896 + }, + { + "DataId": 2010878, + "Position": { + "X": 874.7843, + "Y": -676.02045, + "Z": 884.9774 + }, + "TerritoryId": 896, + "InteractionType": "Interact", + "SkipConditions": { + "StepIf": { + "NotTargetable": true + } + } + }, + { + "DataId": 2010877, + "Position": { + "X": 911.13135, + "Y": -677.0276, + "Z": 894.1023 + }, + "TerritoryId": 896, + "InteractionType": "Interact", + "SkipConditions": { + "StepIf": { + "NotTargetable": true + } + } + }, + { + "DataId": 2010876, + "Position": { + "X": 900.05334, + "Y": -673.0602, + "Z": 828.70215 + }, + "TerritoryId": 896, + "InteractionType": "Interact", + "SkipConditions": { + "StepIf": { + "NotTargetable": true + } + } + }, + { + "DataId": 1032075, + "Position": { + "X": 899.5956, + "Y": -677, + "Z": 880.39966 + }, + "TerritoryId": 896, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 7, + "Steps": [ + { + "DataId": 1032228, + "Position": { + "X": -499.4736, + "Y": 484.00323, + "Z": 244.19006 + }, + "TerritoryId": 896, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 8, + "Steps": [ + { + "DataId": 2010831, + "Position": { + "X": -499.01584, + "Y": 485.2826, + "Z": 280.26245 + }, + "TerritoryId": 896, + "InteractionType": "Interact", + "TargetTerritoryId": 895 + }, + { + "DataId": 1032152, + "Position": { + "X": -13.809448, + "Y": 0.039723, + "Z": -66.941345 + }, + "TerritoryId": 895, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 2010829, + "Position": { + "X": 1.4190674, + "Y": 0.83917236, + "Z": 2.5177002 + }, + "TerritoryId": 895, + "InteractionType": "Interact", + "TargetTerritoryId": 814 + }, + { + "DataId": 1032227, + "Position": { + "X": 665.8884, + "Y": 297.47797, + "Z": -160.57074 + }, + "TerritoryId": 814, + "InteractionType": "CompleteQuest", + "Fly": true, + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_LUCKTA110_03720_Q1_000_000", + "Answer": "TEXT_LUCKTA110_03720_A1_000_002" + } + ], + "NextQuestId": 3784 + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/3721_Heads, I Win.json b/QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/3721_Heads, I Win.json new file mode 100644 index 00000000..ba6db5e5 --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/3721_Heads, I Win.json @@ -0,0 +1,454 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1032229, + "Position": { + "X": -501.1826, + "Y": 484.0032, + "Z": 244.2511 + }, + "StopDistance": 4, + "TerritoryId": 896, + "InteractionType": "AcceptQuest", + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_LUCKTA120_03721_Q2_000_000", + "Yes": true + } + ] + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2010848, + "Position": { + "X": -504.78372, + "Y": 483.97034, + "Z": 234.82104 + }, + "TerritoryId": 896, + "InteractionType": "Interact", + "SkipConditions": { + "StepIf": { + "NotTargetable": true + } + } + }, + { + "Position": { + "X": -500.0601, + "Y": 464, + "Z": 209.26236 + }, + "TerritoryId": 896, + "InteractionType": "WalkTo" + }, + { + "DataId": 2010869, + "Position": { + "X": -505.2415, + "Y": 463.95044, + "Z": 217.60889 + }, + "TerritoryId": 896, + "InteractionType": "Interact", + "SkipConditions": { + "StepIf": { + "NotTargetable": true + } + } + }, + { + "Position": { + "X": -500.03152, + "Y": 401, + "Z": -3.3307662 + }, + "TerritoryId": 896, + "InteractionType": "WalkTo" + }, + { + "DataId": 2010870, + "Position": { + "X": -541.619, + "Y": 400.99182, + "Z": -36.209717 + }, + "TerritoryId": 896, + "InteractionType": "Interact", + "SkipConditions": { + "StepIf": { + "NotTargetable": true + } + } + }, + { + "DataId": 1032074, + "Position": { + "X": -560.0824, + "Y": 383, + "Z": -139.08606 + }, + "TerritoryId": 896, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": -557.9587, + "Y": 383, + "Z": -141.83781 + }, + "TerritoryId": 896, + "InteractionType": "WalkTo", + "RestartNavigationIfCancelled": false + }, + { + "DataId": 1032026, + "Position": { + "X": -573.6935, + "Y": 352.99423, + "Z": -264.0879 + }, + "TerritoryId": 896, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2010874, + "Position": { + "X": -626.5507, + "Y": 340.96277, + "Z": -367.02527 + }, + "TerritoryId": 896, + "InteractionType": "Interact", + "SkipConditions": { + "StepIf": { + "NotTargetable": true + } + } + }, + { + "DataId": 2010872, + "Position": { + "X": -697.87134, + "Y": 339.1621, + "Z": -378.34747 + }, + "TerritoryId": 896, + "InteractionType": "Interact", + "SkipConditions": { + "StepIf": { + "NotTargetable": true + } + } + }, + { + "DataId": 2010834, + "Position": { + "X": -708.21704, + "Y": 339.19275, + "Z": -350.57605 + }, + "TerritoryId": 896, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1032028, + "Position": { + "X": -675.1965, + "Y": 335.42987, + "Z": -293.87354 + }, + "TerritoryId": 896, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 2010882, + "Position": { + "X": -684.01624, + "Y": 335.8662, + "Z": -292.04242 + }, + "TerritoryId": 896, + "InteractionType": "Interact", + "TargetTerritoryId": 896 + }, + { + "DataId": 2010871, + "Position": { + "X": -676.2646, + "Y": -482.9328, + "Z": 612.4818 + }, + "TerritoryId": 896, + "InteractionType": "Interact", + "SkipConditions": { + "StepIf": { + "NotTargetable": true + } + } + }, + { + "DataId": 2010836, + "Position": { + "X": -688.2887, + "Y": -484.00098, + "Z": 582.2689 + }, + "TerritoryId": 896, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 2010835, + "Position": { + "X": -747.982, + "Y": -489.98248, + "Z": 603.1128 + }, + "TerritoryId": 896, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 2010875, + "Position": { + "X": -712.1538, + "Y": -495.99454, + "Z": 562.3406 + }, + "TerritoryId": 896, + "InteractionType": "Interact", + "SkipConditions": { + "StepIf": { + "NotTargetable": true + } + } + }, + { + "DataId": 2010873, + "Position": { + "X": -711.2383, + "Y": -498.00873, + "Z": 547.1732 + }, + "TerritoryId": 896, + "InteractionType": "Interact", + "SkipConditions": { + "StepIf": { + "NotTargetable": true + } + } + }, + { + "DataId": 1032150, + "Position": { + "X": -729.3965, + "Y": -499.74826, + "Z": 546.4408 + }, + "TerritoryId": 896, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 2010944, + "Position": { + "X": -836.6369, + "Y": -492.24078, + "Z": 498.0697 + }, + "TerritoryId": 896, + "InteractionType": "Interact", + "TargetTerritoryId": 896 + }, + { + "DataId": 2010878, + "Position": { + "X": 874.7843, + "Y": -676.02045, + "Z": 884.9774 + }, + "TerritoryId": 896, + "InteractionType": "Interact", + "SkipConditions": { + "StepIf": { + "NotTargetable": true + } + } + }, + { + "DataId": 2010877, + "Position": { + "X": 911.13135, + "Y": -677.0276, + "Z": 894.1023 + }, + "TerritoryId": 896, + "InteractionType": "Interact", + "SkipConditions": { + "StepIf": { + "NotTargetable": true + } + } + }, + { + "DataId": 2010876, + "Position": { + "X": 900.05334, + "Y": -673.0602, + "Z": 828.70215 + }, + "TerritoryId": 896, + "InteractionType": "Interact", + "SkipConditions": { + "StepIf": { + "NotTargetable": true + } + } + }, + { + "DataId": 1032076, + "Position": { + "X": 899.93115, + "Y": -677, + "Z": 881.43726 + }, + "TerritoryId": 896, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 7, + "Steps": [ + { + "DataId": 1032228, + "Position": { + "X": -499.4736, + "Y": 484.00323, + "Z": 244.19006 + }, + "TerritoryId": 896, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 8, + "Steps": [ + { + "DataId": 2010831, + "Position": { + "X": -499.01584, + "Y": 485.2826, + "Z": 280.26245 + }, + "TerritoryId": 896, + "InteractionType": "Interact", + "TargetTerritoryId": 895 + }, + { + "DataId": 1032152, + "Position": { + "X": -13.809448, + "Y": 0.039723, + "Z": -66.941345 + }, + "TerritoryId": 895, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 2010829, + "Position": { + "X": 1.4190674, + "Y": 0.83917236, + "Z": 2.5177002 + }, + "TerritoryId": 895, + "InteractionType": "Interact", + "TargetTerritoryId": 814 + }, + { + "DataId": 1032227, + "Position": { + "X": 665.8884, + "Y": 297.47797, + "Z": -160.57074 + }, + "TerritoryId": 814, + "InteractionType": "CompleteQuest", + "Fly": true, + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_LUCKTA120_03721_Q1_000_000", + "Answer": "TEXT_LUCKTA120_03721_A1_000_002" + } + ], + "NextQuestId": 3784 + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/3784_Carnivals and Confrontations.json b/QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/3784_Carnivals and Confrontations.json new file mode 100644 index 00000000..d59a06cd --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/3784_Carnivals and Confrontations.json @@ -0,0 +1,49 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1032227, + "Position": { + "X": 665.8884, + "Y": 297.47797, + "Z": -160.57074 + }, + "TerritoryId": 814, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 2010832, + "Position": { + "X": 738.3076, + "Y": 285.60303, + "Z": -82.871826 + }, + "TerritoryId": 814, + "InteractionType": "Interact", + "Fly": true, + "TargetTerritoryId": 895 + }, + { + "DataId": 1032152, + "Position": { + "X": -13.809448, + "Y": 0.039723, + "Z": -66.941345 + }, + "TerritoryId": 895, + "InteractionType": "CompleteQuest", + "NextQuestId": 3785 + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/3785_One Way to Do It.json b/QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/3785_One Way to Do It.json new file mode 100644 index 00000000..c98c57fe --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/3785_One Way to Do It.json @@ -0,0 +1,89 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1032152, + "Position": { + "X": -13.809448, + "Y": 0.039723, + "Z": -66.941345 + }, + "TerritoryId": 895, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2010829, + "Position": { + "X": 1.4190674, + "Y": 0.83917236, + "Z": 2.5177002 + }, + "TerritoryId": 895, + "InteractionType": "Interact", + "TargetTerritoryId": 814 + }, + { + "DataId": 1031580, + "Position": { + "X": 665.21704, + "Y": 297.47797, + "Z": -159.77728 + }, + "TerritoryId": 814, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": 382.49646, + "Y": 312.8454, + "Z": -382.58423 + }, + "TerritoryId": 814, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "ComplexCombatData": [ + { + "DataId": 10410, + "MinimumKillCount": 1, + "RewardItemId": 2002972, + "RewardItemCount": 1 + } + ], + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1031580, + "Position": { + "X": 665.21704, + "Y": 297.47797, + "Z": -159.77728 + }, + "TerritoryId": 814, + "InteractionType": "CompleteQuest", + "Fly": true, + "NextQuestId": 3952 + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/3952_We Can Rebuild Her.json b/QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/3952_We Can Rebuild Her.json new file mode 100644 index 00000000..7c7853d5 --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/3952_We Can Rebuild Her.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": 1032227, + "Position": { + "X": 665.8884, + "Y": 297.47797, + "Z": -160.57074 + }, + "StopDistance": 4, + "TerritoryId": 814, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1032245, + "Position": { + "X": 622.73596, + "Y": 297.49292, + "Z": -199.42017 + }, + "TerritoryId": 814, + "InteractionType": "Interact", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 1032244, + "Position": { + "X": 603.9978, + "Y": 297.43994, + "Z": -180.92627 + }, + "TerritoryId": 814, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 1032246, + "Position": { + "X": 594.8423, + "Y": 297.2672, + "Z": -176.01282 + }, + "TerritoryId": 814, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1032227, + "Position": { + "X": 665.8884, + "Y": 297.47797, + "Z": -160.57074 + }, + "TerritoryId": 814, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2010832, + "Position": { + "X": 738.3076, + "Y": 285.60303, + "Z": -82.871826 + }, + "TerritoryId": 814, + "InteractionType": "Interact", + "Fly": true, + "TargetTerritoryId": 895 + }, + { + "DataId": 1032152, + "Position": { + "X": -13.809448, + "Y": 0.039723, + "Z": -66.941345 + }, + "TerritoryId": 895, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 2010830, + "Position": { + "X": -0.015319824, + "Y": 1.2664795, + "Z": -94.86542 + }, + "TerritoryId": 895, + "InteractionType": "Interact", + "TargetTerritoryId": 896 + }, + { + "Position": { + "X": -499.9735, + "Y": 463.36023, + "Z": 177.62115 + }, + "TerritoryId": 896, + "InteractionType": "WalkTo" + }, + { + "Position": { + "X": -499.9782, + "Y": 400.99997, + "Z": 4.3087606 + }, + "TerritoryId": 896, + "InteractionType": "WalkTo" + }, + { + "Position": { + "X": -557.9587, + "Y": 383, + "Z": -141.83781 + }, + "TerritoryId": 896, + "InteractionType": "WalkTo", + "RestartNavigationIfCancelled": false + }, + { + "DataId": 2011156, + "Position": { + "X": -694.05664, + "Y": 339.1621, + "Z": -370.2602 + }, + "TerritoryId": 896, + "InteractionType": "Say", + "ChatMessage": { + "Key": "TEXT_LUCKTA301_03952_SAYTODO_000_220" + } + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1032020, + "Position": { + "X": -9.353821, + "Y": 0.037398916, + "Z": -66.88031 + }, + "TerritoryId": 895, + "InteractionType": "CompleteQuest", + "NextQuestId": 3953 + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/3953_Everything You Know Is Wrong.json b/QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/3953_Everything You Know Is Wrong.json new file mode 100644 index 00000000..c12c26f5 --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/3953_Everything You Know Is Wrong.json @@ -0,0 +1,121 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1032020, + "Position": { + "X": -9.353821, + "Y": 0.037398916, + "Z": -66.88031 + }, + "TerritoryId": 895, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "TerritoryId": 814, + "InteractionType": "Duty", + "ContentFinderConditionId": 736 + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1034040, + "Position": { + "X": -363.94293, + "Y": 103.83351, + "Z": 366.4148 + }, + "TerritoryId": 928, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2011108, + "Position": { + "X": -363.3631, + "Y": 103.990234, + "Z": 375.69226 + }, + "TerritoryId": 928, + "InteractionType": "Interact" + }, + { + "DataId": 2011155, + "Position": { + "X": -383.81018, + "Y": 102.89148, + "Z": 389.12024 + }, + "TerritoryId": 928, + "InteractionType": "Interact", + "TargetTerritoryId": 814 + }, + { + "DataId": 2010832, + "Position": { + "X": 738.3076, + "Y": 285.60303, + "Z": -82.871826 + }, + "TerritoryId": 814, + "InteractionType": "Interact", + "Fly": true, + "TargetTerritoryId": 895 + }, + { + "DataId": 1034044, + "Position": { + "X": -19.058533, + "Y": -3.501947E-11, + "Z": -58.365784 + }, + "TerritoryId": 895, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 2011136, + "Position": { + "X": -21.74414, + "Y": 0.6866455, + "Z": -58.396362 + }, + "TerritoryId": 895, + "InteractionType": "Interact", + "TargetTerritoryId": 895 + }, + { + "DataId": 1034031, + "Position": { + "X": -50.492126, + "Y": 0.037401117, + "Z": -121.53815 + }, + "TerritoryId": 895, + "InteractionType": "CompleteQuest", + "NextQuestId": 3954 + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/3954_Crime and Punishment.json b/QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/3954_Crime and Punishment.json new file mode 100644 index 00000000..9b073768 --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/3954_Crime and Punishment.json @@ -0,0 +1,363 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1034030, + "Position": { + "X": -48.508484, + "Y": 0.029999997, + "Z": -120.50055 + }, + "TerritoryId": 895, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2011137, + "Position": { + "X": -49.5766, + "Y": 1.2054443, + "Z": -109.056274 + }, + "TerritoryId": 895, + "InteractionType": "Interact", + "TargetTerritoryId": 895 + }, + { + "DataId": 1034027, + "Position": { + "X": -7.7669067, + "Y": -3.1738587E-11, + "Z": -52.872498 + }, + "TerritoryId": 895, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1034025, + "Position": { + "X": -6.515625, + "Y": 0.029999863, + "Z": -52.84204 + }, + "StopDistance": 1, + "TerritoryId": 895, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1034016, + "Position": { + "X": -6.668213, + "Y": -3.3829915E-11, + "Z": -56.443176 + }, + "StopDistance": 5, + "TerritoryId": 895, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 8 + ] + }, + { + "DataId": 1034019, + "Position": { + "X": -4.9592285, + "Y": -3.3072475E-11, + "Z": -55.161438 + }, + "StopDistance": 5, + "TerritoryId": 895, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 1034020, + "Position": { + "X": -4.348877, + "Y": -3.1869986E-11, + "Z": -53.11664 + }, + "StopDistance": 5, + "TerritoryId": 895, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 16 + ] + }, + { + "DataId": 1034017, + "Position": { + "X": -5.0507812, + "Y": 0.029999875, + "Z": -51.010986 + }, + "StopDistance": 5, + "TerritoryId": 895, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, + { + "DataId": 1034018, + "Position": { + "X": -6.729248, + "Y": 0.037395146, + "Z": -49.851257 + }, + "StopDistance": 5, + "TerritoryId": 895, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 1034028, + "Position": { + "X": -9.140198, + "Y": 0.029994294, + "Z": -49.973328 + }, + "StopDistance": 5, + "TerritoryId": 895, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 4 + ] + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1034025, + "Position": { + "X": -6.515625, + "Y": 0.029999863, + "Z": -52.84204 + }, + "TerritoryId": 895, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1034025, + "Position": { + "X": -6.515625, + "Y": 0.029999863, + "Z": -52.84204 + }, + "TerritoryId": 895, + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_LUCKTA303_03954_Q1_000_000", + "Answer": "TEXT_LUCKTA303_03954_A1_000_004" + } + ] + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1034027, + "Position": { + "X": -7.7669067, + "Y": -3.1738587E-11, + "Z": -52.872498 + }, + "TerritoryId": 895, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 7, + "Steps": [ + { + "DataId": 2011136, + "Position": { + "X": -21.74166, + "Y": 0.691666, + "Z": -58.37535 + }, + "TerritoryId": 895, + "InteractionType": "Interact", + "TargetTerritoryId": 895 + }, + { + "DataId": 1034030, + "Position": { + "X": -48.508484, + "Y": 0.029999997, + "Z": -120.50055 + }, + "StopDistance": 7, + "TerritoryId": 895, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 8, + "Steps": [ + { + "DataId": 2011137, + "Position": { + "X": -49.55915, + "Y": 1.209601, + "Z": -109.0371 + }, + "TerritoryId": 895, + "InteractionType": "Interact", + "TargetTerritoryId": 895 + }, + { + "DataId": 1034027, + "Position": { + "X": -7.7669067, + "Y": -3.1738587E-11, + "Z": -52.872498 + }, + "TerritoryId": 895, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 9, + "Steps": [ + { + "DataId": 2010829, + "Position": { + "X": 1.4190674, + "Y": 0.83917236, + "Z": 2.5177002 + }, + "TerritoryId": 895, + "InteractionType": "Interact", + "TargetTerritoryId": 814 + }, + { + "DataId": 2011151, + "Position": { + "X": 467.79578, + "Y": 311.02466, + "Z": -189.1051 + }, + "TerritoryId": 814, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 10, + "Steps": [ + { + "DataId": 2011152, + "Position": { + "X": 345.3269, + "Y": 320.14954, + "Z": -317.58606 + }, + "TerritoryId": 814, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 11, + "Steps": [ + { + "DataId": 2011153, + "Position": { + "X": 466.26978, + "Y": 298.146, + "Z": -398.79456 + }, + "TerritoryId": 814, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1034052, + "Position": { + "X": 618.58545, + "Y": 297.26346, + "Z": -170.24493 + }, + "TerritoryId": 814, + "InteractionType": "CompleteQuest", + "Fly": true, + "NextQuestId": 3998 + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/3998_To Make Amends.json b/QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/3998_To Make Amends.json new file mode 100644 index 00000000..d5b6ce28 --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/3998_To Make Amends.json @@ -0,0 +1,657 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1034052, + "Position": { + "X": 618.58545, + "Y": 297.26346, + "Z": -170.24493 + }, + "TerritoryId": 814, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1034052, + "Position": { + "X": 618.58545, + "Y": 297.26346, + "Z": -170.24493 + }, + "TerritoryId": 814, + "InteractionType": "Emote", + "Emote": "comfort" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1034056, + "Position": { + "X": 657.52637, + "Y": 297.47794, + "Z": -145.22015 + }, + "TerritoryId": 814, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1034932, + "Position": { + "X": 618.61584, + "Y": 297.26785, + "Z": -170.30597 + }, + "TerritoryId": 814, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1034933, + "Position": { + "X": 412.46655, + "Y": 285.10947, + "Z": -163.74463 + }, + "TerritoryId": 814, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1034934, + "Position": { + "X": -31.47937, + "Y": 330.8092, + "Z": -35.90454 + }, + "TerritoryId": 814, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1034935, + "Position": { + "X": -475.36432, + "Y": 334.0526, + "Z": -53.97119 + }, + "TerritoryId": 814, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 7, + "Steps": [ + { + "DataId": 1034936, + "Position": { + "X": -452.3537, + "Y": 65.77815, + "Z": 93.03418 + }, + "TerritoryId": 814, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 8, + "Steps": [ + { + "DataId": 1034930, + "Position": { + "X": 673.64, + "Y": 28.11754, + "Z": 272.9381 + }, + "TerritoryId": 814, + "InteractionType": "Interact", + "AetheryteShortcut": "Kholusia - Stilltide" + } + ] + }, + { + "Sequence": 9, + "Steps": [ + { + "DataId": 1034931, + "Position": { + "X": 534.08093, + "Y": 299.67776, + "Z": -184.22223 + }, + "StopDistance": 5, + "TerritoryId": 814, + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_LUCKTA401_03998_Q6_000_000", + "Answer": "TEXT_LUCKTA401_03998_A6_000_002" + } + ] + } + ] + }, + { + "Sequence": 10, + "Steps": [ + { + "DataId": 1035129, + "Position": { + "X": 613.73303, + "Y": 325.6843, + "Z": -224.93329 + }, + "TerritoryId": 814, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 11, + "Steps": [ + { + "DataId": 2011273, + "Position": { + "X": 574.9447, + "Y": 296.71167, + "Z": -175.55511 + }, + "TerritoryId": 814, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 12, + "Steps": [ + { + "DataId": 2011154, + "Position": { + "X": 703.1509, + "Y": 295.3993, + "Z": -160.20447 + }, + "TerritoryId": 814, + "InteractionType": "Interact", + "TargetTerritoryId": 928, + "Fly": true, + "SkipConditions": { + "StepIf": { + "InTerritory": [ + 928 + ] + } + } + }, + { + "Position": { + "X": -352.89597, + "Y": 106.840775, + "Z": 337.33798 + }, + "TerritoryId": 928, + "InteractionType": "WalkTo", + "RestartNavigationIfCancelled": false + }, + { + "DataId": 2011274, + "Position": { + "X": -277.69897, + "Y": 69.90149, + "Z": 274.00623 + }, + "TerritoryId": 928, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 13, + "Steps": [ + { + "Position": { + "X": -271.62762, + "Y": 69.97228, + "Z": 273.0655 + }, + "TerritoryId": 928, + "InteractionType": "WalkTo", + "RestartNavigationIfCancelled": false + }, + { + "DataId": 2011109, + "Position": { + "X": -254.20007, + "Y": 29.984009, + "Z": 178.02698 + }, + "TerritoryId": 928, + "InteractionType": "Interact", + "SkipConditions": { + "StepIf": { + "NotTargetable": true + } + } + }, + { + "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": -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 + }, + { + "DataId": 2011110, + "Position": { + "X": -203.41809, + "Y": -150.53027, + "Z": -187.39612 + }, + "TerritoryId": 928, + "InteractionType": "Interact", + "SkipConditions": { + "StepIf": { + "NotTargetable": true + } + } + }, + { + "Position": { + "X": -229.93883, + "Y": -150.49908, + "Z": -219.08035 + }, + "TerritoryId": 928, + "InteractionType": "WalkTo" + }, + { + "DataId": 2011111, + "Position": { + "X": -227.34424, + "Y": -149.06543, + "Z": -320.75995 + }, + "StopDistance": 1, + "TerritoryId": 928, + "InteractionType": "Interact", + "SkipConditions": { + "StepIf": { + "NotTargetable": true + } + } + }, + { + "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 + }, + { + "DataId": 2011118, + "Position": { + "X": -295.9182, + "Y": -203.99792, + "Z": -320.9735 + }, + "TerritoryId": 928, + "InteractionType": "Interact", + "SkipConditions": { + "StepIf": { + "NotTargetable": true + } + } + }, + { + "Position": { + "X": -305.8408, + "Y": -204.6433, + "Z": -336.8385 + }, + "TerritoryId": 928, + "InteractionType": "WalkTo", + "RestartNavigationIfCancelled": false + }, + { + "DataId": 2011115, + "Position": { + "X": -386.25165, + "Y": -241.32147, + "Z": -314.99207 + }, + "TerritoryId": 928, + "InteractionType": "Interact", + "SkipConditions": { + "StepIf": { + "NotTargetable": true + } + } + }, + { + "Position": { + "X": -367.89325, + "Y": -241.31789, + "Z": -313.52274 + }, + "TerritoryId": 928, + "InteractionType": "WalkTo" + }, + { + "Position": { + "X": -374.37668, + "Y": -244.75201, + "Z": -313.43954 + }, + "TerritoryId": 928, + "InteractionType": "WalkTo", + "DisableNavmesh": true + }, + { + "Position": { + "X": -374.10797, + "Y": -244.75217, + "Z": -318.6855 + }, + "TerritoryId": 928, + "InteractionType": "WalkTo" + }, + { + "DataId": 2011113, + "Position": { + "X": -372.85425, + "Y": -244.77002, + "Z": -303.18152 + }, + "TerritoryId": 928, + "InteractionType": "Interact", + "SkipConditions": { + "StepIf": { + "NotTargetable": true + } + } + }, + { + "DataId": 2011114, + "Position": { + "X": -345.17438, + "Y": -244.77002, + "Z": -321.43134 + }, + "TerritoryId": 928, + "InteractionType": "Interact", + "SkipConditions": { + "StepIf": { + "NotTargetable": true + } + } + }, + { + "Position": { + "X": -358.27484, + "Y": -244.75198, + "Z": -312.8948 + }, + "TerritoryId": 928, + "InteractionType": "WalkTo" + }, + { + "Position": { + "X": -364.58334, + "Y": -241.318, + "Z": -313.35168 + }, + "TerritoryId": 928, + "InteractionType": "WalkTo", + "DisableNavmesh": true + }, + { + "DataId": 2011275, + "Position": { + "X": -366.50647, + "Y": -241.32147, + "Z": -311.57397 + }, + "StopDistance": 1, + "TerritoryId": 928, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 14, + "Steps": [ + { + "Position": { + "X": -366.50647, + "Y": -241.32147, + "Z": -311.57397 + }, + "StopDistance": 0.5, + "TerritoryId": 928, + "InteractionType": "Jump", + "JumpDestination": { + "DataId": 2011269, + "Position": { + "X": -366.558, + "Y": -249.74661, + "Z": -301.74612 + } + } + }, + { + "DataId": 2011112, + "Position": { + "X": -366.47595, + "Y": -249.80548, + "Z": -318.89832 + }, + "StopDistance": 1, + "TerritoryId": 928, + "InteractionType": "Interact", + "SkipConditions": { + "StepIf": { + "NotTargetable": true + } + } + }, + { + "DataId": 2011269, + "Position": { + "X": -366.50647, + "Y": -248.43219, + "Z": -285.6947 + }, + "TerritoryId": 928, + "InteractionType": "Interact", + "TargetTerritoryId": 928 + }, + { + "DataId": 2011116, + "Position": { + "X": 193.89636, + "Y": -500.0229, + "Z": -89.7384 + }, + "TerritoryId": 928, + "InteractionType": "Interact", + "SkipConditions": { + "StepIf": { + "NotTargetable": true + } + } + }, + { + "Position": { + "X": 199.90454, + "Y": -500.00003, + "Z": -476.80316 + }, + "TerritoryId": 928, + "InteractionType": "WalkTo" + }, + { + "DataId": 2011117, + "Position": { + "X": 253.13184, + "Y": -500.0229, + "Z": -484.39764 + }, + "TerritoryId": 928, + "InteractionType": "Interact", + "SkipConditions": { + "StepIf": { + "NotTargetable": true + } + } + }, + { + "DataId": 2011276, + "Position": { + "X": 200, + "Y": -478.47717, + "Z": -558.8312 + }, + "TerritoryId": 928, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 15, + "Steps": [ + { + "DataId": 1035130, + "Position": { + "X": -16.372986, + "Y": 0.039723, + "Z": -70.481445 + }, + "TerritoryId": 895, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 2010829, + "Position": { + "X": 1.4190674, + "Y": 0.83917236, + "Z": 2.5177002 + }, + "TerritoryId": 895, + "InteractionType": "Interact", + "TargetTerritoryId": 814 + }, + { + "DataId": 1032227, + "Position": { + "X": 665.8884, + "Y": 297.47797, + "Z": -160.57074 + }, + "TerritoryId": 814, + "InteractionType": "CompleteQuest", + "Fly": true, + "NextQuestId": 4034 + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/4034_Konogg, Alone.json b/QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/4034_Konogg, Alone.json new file mode 100644 index 00000000..2b0f8e94 --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/4034_Konogg, Alone.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": 1032227, + "Position": { + "X": 665.8884, + "Y": 297.47797, + "Z": -160.57074 + }, + "TerritoryId": 814, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2010832, + "Position": { + "X": 738.3076, + "Y": 285.60303, + "Z": -82.871826 + }, + "TerritoryId": 814, + "InteractionType": "Interact", + "TargetTerritoryId": 895, + "Fly": true + }, + { + "DataId": 1035131, + "Position": { + "X": -3.6469727, + "Y": -3.475783E-11, + "Z": -58.121643 + }, + "TerritoryId": 895, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2010829, + "Position": { + "X": 1.4190674, + "Y": 0.83917236, + "Z": 2.5177002 + }, + "TerritoryId": 895, + "InteractionType": "Interact", + "TargetTerritoryId": 814 + }, + { + "DataId": 1035132, + "Position": { + "X": 545.4337, + "Y": 295.66992, + "Z": -221.45422 + }, + "TerritoryId": 814, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2011442, + "Position": { + "X": -8.957031, + "Y": 0.503479, + "Z": -65.26294 + }, + "TerritoryId": 895, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1035134, + "Position": { + "X": 711.635, + "Y": 286.3896, + "Z": -122.78937 + }, + "StopDistance": 7, + "TerritoryId": 814, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1034054, + "Position": { + "X": 659.75415, + "Y": 297.47797, + "Z": -145.15906 + }, + "TerritoryId": 814, + "InteractionType": "Interact", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 1027299, + "Position": { + "X": 638.11694, + "Y": 297.44974, + "Z": -180.19385 + }, + "TerritoryId": 814, + "InteractionType": "Interact", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, + { + "DataId": 1027486, + "Position": { + "X": 608.8501, + "Y": 297.4718, + "Z": -165.45361 + }, + "TerritoryId": 814, + "InteractionType": "Interact", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 2011447, + "Position": { + "X": 711.6044, + "Y": 286.12183, + "Z": -121.50757 + }, + "TerritoryId": 814, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1035135, + "Position": { + "X": -361.37946, + "Y": 105.987305, + "Z": 347.12744 + }, + "StopDistance": 5, + "TerritoryId": 928, + "InteractionType": "CompleteQuest", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_LUCKTA501_04034_Q5_000_000", + "Answer": "TEXT_LUCKTA501_04034_A5_000_001" + }, + { + "Type": "List", + "Prompt": "TEXT_LUCKTA501_04034_Q6_000_000", + "Answer": "TEXT_LUCKTA501_04034_A6_000_001" + } + ], + "NextQuestId": 4035 + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/4035_Brave New World.json b/QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/4035_Brave New World.json new file mode 100644 index 00000000..3ebdc6af --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/4035_Brave New World.json @@ -0,0 +1,200 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1035135, + "Position": { + "X": -361.37946, + "Y": 105.987305, + "Z": 347.12744 + }, + "StopDistance": 5, + "TerritoryId": 928, + "InteractionType": "AcceptQuest", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_LUCKTA502_04035_Q1_000_000", + "Answer": "TEXT_LUCKTA502_04035_A1_000_001" + } + ] + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": -352.89597, + "Y": 106.840775, + "Z": 337.33798 + }, + "TerritoryId": 928, + "InteractionType": "WalkTo", + "RestartNavigationIfCancelled": false + }, + { + "Position": { + "X": -271.62762, + "Y": 69.97228, + "Z": 273.0655 + }, + "TerritoryId": 928, + "InteractionType": "WalkTo", + "RestartNavigationIfCancelled": false + }, + { + "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": -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 + }, + { + "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 + }, + { + "Position": { + "X": -305.8408, + "Y": -204.6433, + "Z": -336.8385 + }, + "TerritoryId": 928, + "InteractionType": "WalkTo", + "RestartNavigationIfCancelled": false + }, + { + "Position": { + "X": -366.50647, + "Y": -241.32147, + "Z": -311.57397 + }, + "StopDistance": 0.5, + "TerritoryId": 928, + "InteractionType": "Jump", + "JumpDestination": { + "DataId": 2011269, + "Position": { + "X": -366.558, + "Y": -249.74661, + "Z": -301.74612 + } + } + }, + { + "DataId": 2011269, + "Position": { + "X": -366.50647, + "Y": -248.43219, + "Z": -285.6947 + }, + "TerritoryId": 928, + "InteractionType": "Interact", + "TargetTerritoryId": 928 + }, + { + "DataId": 2011440, + "Position": { + "X": 200, + "Y": -478.47717, + "Z": -558.8312 + }, + "TerritoryId": 928, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "TerritoryId": 928, + "InteractionType": "Duty", + "ContentFinderConditionId": 779 + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1035142, + "Position": { + "X": 701.9607, + "Y": 291.86115, + "Z": -142.443 + }, + "StopDistance": 5, + "TerritoryId": 814, + "InteractionType": "CompleteQuest", + "NextQuestId": 4036 + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/4036_It Takes a Village.json b/QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/4036_It Takes a Village.json new file mode 100644 index 00000000..b93277a0 --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/4036_It Takes a Village.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": 1035142, + "Position": { + "X": 701.9607, + "Y": 291.86115, + "Z": -142.443 + }, + "StopDistance": 5, + "TerritoryId": 814, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2010832, + "Position": { + "X": 738.3076, + "Y": 285.60303, + "Z": -82.871826 + }, + "TerritoryId": 814, + "InteractionType": "Interact", + "TargetTerritoryId": 895, + "Fly": true + }, + { + "DataId": 1035141, + "Position": { + "X": -13.382202, + "Y": 0.039723, + "Z": -66.11737 + }, + "TerritoryId": 895, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1032227, + "Position": { + "X": 665.8884, + "Y": 297.47797, + "Z": -160.57074 + }, + "TerritoryId": 814, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2010832, + "Position": { + "X": 738.3076, + "Y": 285.60303, + "Z": -82.871826 + }, + "TerritoryId": 814, + "InteractionType": "Interact", + "TargetTerritoryId": 895, + "Fly": true + }, + { + "DataId": 1035133, + "Position": { + "X": -6.881897, + "Y": 0.029997535, + "Z": -63.187683 + }, + "TerritoryId": 895, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 2011441, + "Position": { + "X": -3.5858765, + "Y": -0.015319824, + "Z": -58.06067 + }, + "StopDistance": 4, + "TerritoryId": 895, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "Position": { + "X": 2.2522326, + "Y": 0, + "Z": -52.14471 + }, + "TerritoryId": 895, + "InteractionType": "WalkTo" + }, + { + "DataId": 1035148, + "Position": { + "X": 2.39563, + "Y": -3.2740335E-11, + "Z": -54.61206 + }, + "TerritoryId": 895, + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_LUCKTA503_04036_Q9_000_000", + "Answer": "TEXT_LUCKTA503_04036_A9_000_002" + } + ], + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 8 + ] + }, + { + "DataId": 1035144, + "Position": { + "X": 3.9520264, + "Y": -3.2538423E-11, + "Z": -54.24591 + }, + "TerritoryId": 895, + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_LUCKTA503_04036_Q6_000_000", + "Answer": "TEXT_LUCKTA503_04036_A6_000_002" + } + ], + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 1035145, + "Position": { + "X": 4.8981323, + "Y": -3.0844622E-11, + "Z": -51.407654 + }, + "TerritoryId": 895, + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_LUCKTA503_04036_Q7_000_000", + "Answer": "TEXT_LUCKTA503_04036_A7_000_002" + } + ], + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 1035146, + "Position": { + "X": 4.3182373, + "Y": -3.024035E-11, + "Z": -50.400574 + }, + "TerritoryId": 895, + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_LUCKTA503_04036_Q8_000_000", + "Answer": "TEXT_LUCKTA503_04036_A8_000_001" + } + ], + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, + { + "DataId": 1035147, + "Position": { + "X": 0.62561035, + "Y": -3.0313623E-11, + "Z": -50.522705 + }, + "TerritoryId": 895, + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_LUCKTA503_04036_Q10_000_000", + "Answer": "TEXT_LUCKTA503_04036_A10_000_002" + } + ], + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 16 + ] + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1035630, + "Position": { + "X": 2.2124634, + "Y": -3.161355E-11, + "Z": -52.689453 + }, + "TerritoryId": 895, + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_LUCKTA503_04036_Q11_000_000", + "Answer": "TEXT_LUCKTA503_04036_A11_000_001" + } + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 2010829, + "Position": { + "X": 1.4190674, + "Y": 0.83917236, + "Z": 2.5177002 + }, + "TerritoryId": 895, + "InteractionType": "Interact", + "TargetTerritoryId": 814 + }, + { + "DataId": 1032227, + "Position": { + "X": 665.8884, + "Y": 297.47797, + "Z": -160.57074 + }, + "TerritoryId": 814, + "InteractionType": "CompleteQuest", + "Fly": true, + "NextQuestId": 4043 + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/4043_Komra Wasn't Built in a Day.json b/QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/4043_Komra Wasn't Built in a Day.json new file mode 100644 index 00000000..50c9cfd2 --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/4043_Komra Wasn't Built in a Day.json @@ -0,0 +1,43 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1032227, + "Position": { + "X": 665.8884, + "Y": 297.47797, + "Z": -160.57074 + }, + "TerritoryId": 814, + "InteractionType": "AcceptQuest", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_LUCKTA510_04043_Q1_000_000", + "Answer": "TEXT_LUCKTA510_04043_A1_000_001" + } + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1036042, + "Position": { + "X": 655.1765, + "Y": 297.57593, + "Z": -171.31305 + }, + "TerritoryId": 814, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/4044_A Message from Konogg.json b/QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/4044_A Message from Konogg.json new file mode 100644 index 00000000..96e2ac54 --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/4044_A Message from Konogg.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": 1032227, + "Position": { + "X": 665.8884, + "Y": 297.47797, + "Z": -160.57074 + }, + "TerritoryId": 814, + "InteractionType": "AcceptQuest" + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/4050_All That Grinds Is Not Gloom.json b/QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/4050_All That Grinds Is Not Gloom.json new file mode 100644 index 00000000..318f37c0 --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/4050_All That Grinds Is Not Gloom.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": 1036042, + "Position": { + "X": 655.1765, + "Y": 297.57593, + "Z": -171.31305 + }, + "TerritoryId": 814, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Kholusia - Stilltide", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + }, + "Fly": true, + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_LUCKTA521_04050_Q1_000_000", + "Answer": "TEXT_LUCKTA521_04050_A1_000_002" + } + ] + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2010832, + "Position": { + "X": 738.3076, + "Y": 285.60303, + "Z": -82.871826 + }, + "TerritoryId": 814, + "InteractionType": "Interact", + "TargetTerritoryId": 895 + }, + { + "DataId": 2010830, + "Position": { + "X": -0.015319824, + "Y": 1.2664795, + "Z": -94.86542 + }, + "TerritoryId": 895, + "InteractionType": "Interact", + "TargetTerritoryId": 896 + }, + { + "Position": { + "X": -499.9735, + "Y": 463.36023, + "Z": 177.62115 + }, + "TerritoryId": 896, + "InteractionType": "WalkTo" + }, + { + "Position": { + "X": -499.9782, + "Y": 400.99997, + "Z": 4.3087606 + }, + "TerritoryId": 896, + "InteractionType": "WalkTo" + }, + { + "Position": { + "X": -557.9587, + "Y": 383, + "Z": -141.83781 + }, + "TerritoryId": 896, + "InteractionType": "WalkTo", + "RestartNavigationIfCancelled": false + }, + { + "DataId": 2011457, + "Position": { + "X": -643.4882, + "Y": 338.39917, + "Z": -353.8415 + }, + "TerritoryId": 896, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 2011456, + "Position": { + "X": -679.56055, + "Y": 335.31702, + "Z": -307.88135 + }, + "TerritoryId": 896, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1036042, + "Position": { + "X": 655.1765, + "Y": 297.57593, + "Z": -171.31305 + }, + "TerritoryId": 814, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Kholusia - Stilltide", + "Fly": true + } + ] + } + ] +} From f0ea7355a21cb837c16bcf981453bb8f77edff4e Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sat, 7 Sep 2024 23:53:26 +0200 Subject: [PATCH 188/450] Add Four Lords quests --- .../3015_An Auspicious Encounter.json | 256 ++++++++++++++++++ .../Trial Quests/3016_Tortoise in Time.json | 166 ++++++++++++ .../3152_The Fire-bird Down Below.json | 113 ++++++++ .../3165_Surpassing the Samurai.json | 97 +++++++ .../Trial Quests/3166_The Fifth Lord.json | 167 ++++++++++++ 5 files changed, 799 insertions(+) create mode 100644 QuestPaths/4.x - Stormblood/Trial Quests/3015_An Auspicious Encounter.json create mode 100644 QuestPaths/4.x - Stormblood/Trial Quests/3016_Tortoise in Time.json create mode 100644 QuestPaths/4.x - Stormblood/Trial Quests/3152_The Fire-bird Down Below.json create mode 100644 QuestPaths/4.x - Stormblood/Trial Quests/3165_Surpassing the Samurai.json create mode 100644 QuestPaths/4.x - Stormblood/Trial Quests/3166_The Fifth Lord.json diff --git a/QuestPaths/4.x - Stormblood/Trial Quests/3015_An Auspicious Encounter.json b/QuestPaths/4.x - Stormblood/Trial Quests/3015_An Auspicious Encounter.json new file mode 100644 index 00000000..160d9244 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Trial Quests/3015_An Auspicious Encounter.json @@ -0,0 +1,256 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1024836, + "Position": { + "X": -788.2658, + "Y": 11.709066, + "Z": -283.0091 + }, + "TerritoryId": 613, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ruby Sea - Onokoro", + "Fly": true + } + ] + }, + { + "Sequence": 1, + "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 + }, + { + "DataId": 2009398, + "Position": { + "X": 279.4994, + "Y": 16.55597, + "Z": 844.541 + }, + "TerritoryId": 613, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "TerritoryId": 613, + "InteractionType": "Duty", + "ContentFinderConditionId": 284 + } + ] + }, + { + "Sequence": 3 + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1025142, + "Position": { + "X": 51.5907, + "Y": -90.000015, + "Z": -492.51547 + }, + "TerritoryId": 764, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 1025141, + "Position": { + "X": 55.161255, + "Y": -89.90002, + "Z": -459.0982 + }, + "TerritoryId": 764, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 1025143, + "Position": { + "X": 97.67297, + "Y": -89.90002, + "Z": -480.36932 + }, + "TerritoryId": 764, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1025138, + "Position": { + "X": 61.997314, + "Y": -90.00002, + "Z": -478.14148 + }, + "TerritoryId": 764, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1025144, + "Position": { + "X": 8.804443, + "Y": -90, + "Z": -470.63403 + }, + "TerritoryId": 764, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 7, + "Steps": [ + { + "DataId": 1025148, + "Position": { + "X": 509.17822, + "Y": 23.72771, + "Z": -764.0345 + }, + "TerritoryId": 614, + "InteractionType": "Interact", + "AetheryteShortcut": "Yanxia - House of the Fierce", + "Fly": true + } + ] + }, + { + "Sequence": 8, + "Steps": [ + { + "TerritoryId": 614, + "InteractionType": "Duty", + "ContentFinderConditionId": 290 + } + ] + }, + { + "Sequence": 9, + "Steps": [ + { + "DataId": 1025469, + "Position": { + "X": 505.5161, + "Y": 23.265062, + "Z": -768.6732 + }, + "TerritoryId": 614, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 10, + "Steps": [ + { + "DataId": 1025137, + "Position": { + "X": 281.66626, + "Y": 16.350018, + "Z": 846.89087 + }, + "TerritoryId": 613, + "InteractionType": "Interact", + "AetheryteShortcut": "Kugane", + "AethernetShortcut": [ + "[Kugane] Aetheryte Plaza", + "[Kugane] The Ruby Price" + ], + "Fly": true, + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_STMBDY301_03015_Q7_000_000", + "Yes": true + } + ] + } + ] + }, + { + "Sequence": 11, + "Steps": [ + { + "DataId": 1025168, + "Position": { + "X": 75.638916, + "Y": -89.90002, + "Z": -503.95975 + }, + "TerritoryId": 764, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1019178, + "Position": { + "X": 319.69165, + "Y": -120.03494, + "Z": -250.90417 + }, + "TerritoryId": 613, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ruby Sea - Tamamizu", + "NextQuestId": 3016 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Trial Quests/3016_Tortoise in Time.json b/QuestPaths/4.x - Stormblood/Trial Quests/3016_Tortoise in Time.json new file mode 100644 index 00000000..0a159ba5 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Trial Quests/3016_Tortoise in Time.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": 1019178, + "Position": { + "X": 319.69165, + "Y": -120.03494, + "Z": -250.90417 + }, + "TerritoryId": 613, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1025137, + "Position": { + "X": 281.66626, + "Y": 16.350018, + "Z": 846.89087 + }, + "TerritoryId": 613, + "InteractionType": "Interact", + "AetheryteShortcut": "Kugane", + "AethernetShortcut": [ + "[Kugane] Aetheryte Plaza", + "[Kugane] The Ruby Price" + ], + "Fly": true, + "TargetTerritoryId": 764 + }, + { + "DataId": 1025559, + "Position": { + "X": 61.753174, + "Y": -90.00002, + "Z": -478.11096 + }, + "TerritoryId": 764, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1025563, + "Position": { + "X": -485.19116, + "Y": 68.82959, + "Z": 273.2738 + }, + "TerritoryId": 614, + "InteractionType": "Interact", + "AetheryteShortcut": "Doman Enclave", + "AethernetShortcut": [ + "[Doman Enclave] Aetheryte Plaza", + "[Doman Enclave] The One River" + ], + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "TerritoryId": 614, + "InteractionType": "Duty", + "ContentFinderConditionId": 536 + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1025137, + "Position": { + "X": 281.66626, + "Y": 16.350018, + "Z": 846.89087 + }, + "TerritoryId": 613, + "InteractionType": "Interact", + "AetheryteShortcut": "Kugane", + "AethernetShortcut": [ + "[Kugane] Aetheryte Plaza", + "[Kugane] The Ruby Price" + ], + "Fly": true, + "TargetTerritoryId": 764 + }, + { + "DataId": 1025138, + "Position": { + "X": 61.997314, + "Y": -90.00002, + "Z": -478.14148 + }, + "TerritoryId": 764, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1025138, + "Position": { + "X": 61.997314, + "Y": -90.00002, + "Z": -478.14148 + }, + "TerritoryId": 764, + "InteractionType": "SinglePlayerDuty" + } + ] + }, + { + "Sequence": 6 + }, + { + "Sequence": 7, + "Steps": [ + { + "DataId": 1025138, + "Position": { + "X": 61.997314, + "Y": -90.00002, + "Z": -478.14148 + }, + "TerritoryId": 764, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1019178, + "Position": { + "X": 319.69165, + "Y": -120.03494, + "Z": -250.90417 + }, + "TerritoryId": 613, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ruby Sea - Tamamizu", + "NextQuestId": 3152 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Trial Quests/3152_The Fire-bird Down Below.json b/QuestPaths/4.x - Stormblood/Trial Quests/3152_The Fire-bird Down Below.json new file mode 100644 index 00000000..efe4807b --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Trial Quests/3152_The Fire-bird Down Below.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": 1019178, + "Position": { + "X": 319.69165, + "Y": -120.03494, + "Z": -250.90417 + }, + "TerritoryId": 613, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence":1, + "Steps": [ + { + "DataId": 1025137, + "Position": { + "X": 281.66626, + "Y": 16.350018, + "Z": 846.89087 + }, + "TerritoryId": 613, + "InteractionType": "Interact", + "AetheryteShortcut": "Kugane", + "AethernetShortcut": [ + "[Kugane] Aetheryte Plaza", + "[Kugane] The Ruby Price" + ], + "Fly": true, + "TargetTerritoryId": 764 + }, + { + "DataId": 1026480, + "Position": { + "X": 61.997314, + "Y": -90.00002, + "Z": -478.14148 + }, + "TerritoryId": 764, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1026204, + "Position": { + "X": 74.23511, + "Y": -90.00003, + "Z": -457.3587 + }, + "TerritoryId": 764, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "TerritoryId": 764, + "InteractionType": "Duty", + "ContentFinderConditionId": 596 + } + ] + }, + { + "Sequence": 4 + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1026480, + "Position": { + "X": 61.997314, + "Y": -90.00002, + "Z": -478.14148 + }, + "TerritoryId": 764, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1019178, + "Position": { + "X": 319.69165, + "Y": -120.03494, + "Z": -250.90417 + }, + "TerritoryId": 613, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ruby Sea - Tamamizu", + "NextQuestId": 3165 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Trial Quests/3165_Surpassing the Samurai.json b/QuestPaths/4.x - Stormblood/Trial Quests/3165_Surpassing the Samurai.json new file mode 100644 index 00000000..93ae9a87 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Trial Quests/3165_Surpassing the Samurai.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": 1019178, + "Position": { + "X": 319.69165, + "Y": -120.03494, + "Z": -250.90417 + }, + "TerritoryId": 613, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1025137, + "Position": { + "X": 281.66626, + "Y": 16.350018, + "Z": 846.89087 + }, + "TerritoryId": 613, + "InteractionType": "Interact", + "AetheryteShortcut": "Kugane", + "AethernetShortcut": [ + "[Kugane] Aetheryte Plaza", + "[Kugane] The Ruby Price" + ], + "Fly": true, + "TargetTerritoryId": 764 + }, + { + "DataId": 1026480, + "Position": { + "X": 61.997314, + "Y": -90.00002, + "Z": -478.14148 + }, + "TerritoryId": 764, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1026581, + "Position": { + "X": 798.4894, + "Y": -0.079232015, + "Z": -300.67908 + }, + "TerritoryId": 613, + "InteractionType": "Interact", + "AetheryteShortcut": "Ruby Sea - Tamamizu", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "TerritoryId": 613, + "InteractionType": "Duty", + "ContentFinderConditionId": 637 + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1026581, + "Position": { + "X": 798.4894, + "Y": -0.079232015, + "Z": -300.67908 + }, + "StopDistance": 6, + "TerritoryId": 613, + "InteractionType": "CompleteQuest", + "NextQuestId": 3166 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Trial Quests/3166_The Fifth Lord.json b/QuestPaths/4.x - Stormblood/Trial Quests/3166_The Fifth Lord.json new file mode 100644 index 00000000..166cf97d --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Trial Quests/3166_The Fifth Lord.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": 1026581, + "Position": { + "X": 798.4894, + "Y": -0.079232015, + "Z": -300.67908 + }, + "StopDistance": 6, + "TerritoryId": 613, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1025137, + "Position": { + "X": 281.66626, + "Y": 16.350018, + "Z": 846.89087 + }, + "TerritoryId": 613, + "InteractionType": "Interact", + "AetheryteShortcut": "Kugane", + "AethernetShortcut": [ + "[Kugane] Aetheryte Plaza", + "[Kugane] The Ruby Price" + ], + "Fly": true, + "TargetTerritoryId": 764 + }, + { + "DataId": 1026480, + "Position": { + "X": 61.997314, + "Y": -90.00002, + "Z": -478.14148 + }, + "TerritoryId": 764, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1026480, + "Position": { + "X": 61.997314, + "Y": -90.00002, + "Z": -478.14148 + }, + "TerritoryId": 764, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1028803, + "Position": { + "X": 8.804443, + "Y": -90, + "Z": -470.63403 + }, + "TerritoryId": 764, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 1028804, + "Position": { + "X": 74.23511, + "Y": -90.00003, + "Z": -457.3587 + }, + "TerritoryId": 764, + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_STMBDY332_03166_Q2_000_000", + "Answer": "TEXT_STMBDY332_03166_A2_000_001" + } + ], + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 1028805, + "Position": { + "X": 115.83118, + "Y": -90, + "Z": -470.81714 + }, + "TerritoryId": 764, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1028806, + "Position": { + "X": 61.997314, + "Y": -90.00002, + "Z": -478.14148 + }, + "TerritoryId": 764, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1019178, + "Position": { + "X": 319.69165, + "Y": -120.03494, + "Z": -250.90417 + }, + "TerritoryId": 613, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ruby Sea - Tamamizu", + "NextQuestId": 3165 + } + ] + } + ] +} From 755c7b65493fcd3b8b6eb54a07247229655a38a9 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sun, 8 Sep 2024 01:40:05 +0200 Subject: [PATCH 189/450] Add 'battlestance' 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 cb6c9c5e..5b69b662 100644 --- a/QuestPaths/quest-v1.json +++ b/QuestPaths/quest-v1.json @@ -779,7 +779,8 @@ "uchiwasshoi", "clap", "victorypose", - "comfort" + "comfort", + "battlestance" ] } } diff --git a/Questionable.Model/Questing/Converter/EmoteConverter.cs b/Questionable.Model/Questing/Converter/EmoteConverter.cs index 935bc32a..27715b54 100644 --- a/Questionable.Model/Questing/Converter/EmoteConverter.cs +++ b/Questionable.Model/Questing/Converter/EmoteConverter.cs @@ -33,5 +33,6 @@ public sealed class EmoteConverter() : EnumConverter(Values) { EEmote.Clap, "clap" }, { EEmote.VictoryPose, "victorypose" }, { EEmote.Comfort, "comfort" }, + { EEmote.BattleStance, "battlestance" }, }; } diff --git a/Questionable.Model/Questing/EEmote.cs b/Questionable.Model/Questing/EEmote.cs index 0b81fd3e..2ec72603 100644 --- a/Questionable.Model/Questing/EEmote.cs +++ b/Questionable.Model/Questing/EEmote.cs @@ -34,4 +34,5 @@ public enum EEmote Clap = 7, VictoryPose = 122, Comfort = 9, + BattleStance = 121, } From c6744dfedacb02aac3f31ef0579864ee40822cab Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sun, 8 Sep 2024 01:40:46 +0200 Subject: [PATCH 190/450] Add follow path for 'You and the Ailouros' --- .../Elpis/4288_You and the Ailouros.json | 47 ++++++++++++++++--- 1 file changed, 40 insertions(+), 7 deletions(-) diff --git a/QuestPaths/6.x - Endwalker/Aether Currents/Elpis/4288_You and the Ailouros.json b/QuestPaths/6.x - Endwalker/Aether Currents/Elpis/4288_You and the Ailouros.json index 07cf2c84..ddc09b77 100644 --- a/QuestPaths/6.x - Endwalker/Aether Currents/Elpis/4288_You and the Ailouros.json +++ b/QuestPaths/6.x - Endwalker/Aether Currents/Elpis/4288_You and the Ailouros.json @@ -28,18 +28,51 @@ "Z": 509.72766 }, "TerritoryId": 961, - "InteractionType": "WaitForManualProgress", - "Comment": "Follow" + "InteractionType": "Interact" + }, + { + "DataId": 1041141, + "Position": { + "X": -655.5854, + "Y": -22.394821, + "Z": 498.91443 + }, + "StopDistance": 1, + "TerritoryId": 961, + "InteractionType": "WaitForNpcAtPosition", + "Mount": true + }, + { + "DataId": 1041141, + "Position": { + "X": -686.881, + "Y": -25.994936, + "Z": 443.804 + }, + "StopDistance": 1, + "TerritoryId": 961, + "InteractionType": "WaitForNpcAtPosition" + }, + { + "DataId": 1041141, + "Position": { + "X": -738.11304, + "Y": -25.933691, + "Z": 487.78436 + }, + "StopDistance": 1, + "TerritoryId": 961, + "InteractionType": "WaitForNpcAtPosition" }, { "Position": { - "X": -838.7837, - "Y": -39.605896, - "Z": 518.9479 + "X": -819.6994, + "Y": -38.65795, + "Z": 506.43152 }, + "StopDistance": 1, "TerritoryId": 961, - "InteractionType": "WalkTo", - "Comment": "Unsure if this is sequence 1" + "InteractionType": "WalkTo" } ] }, From ed00301f74b16f2a64556ab1b8943053f9e15dfe Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sun, 8 Sep 2024 13:29:56 +0200 Subject: [PATCH 191/450] Add Eden quests --- .../3255_In the Middle of Nowhere.json | 76 +++++++++++ .../Raid Quests/3256_Deploy the Core.json | 73 +++++++++++ .../Raid Quests/3257_One Fell Swoop.json | 49 +++++++ .../3258_Nor Any Drop to Drink.json | 90 +++++++++++++ .../Raid Quests/3259_Super Seismic.json | 82 ++++++++++++ .../3260_The Next Piece of the Puzzle.json | 78 +++++++++++ .../3787_Away with the Faerie.json | 108 +++++++++++++++ .../Raid Quests/3788_Blood and Thunder.json | 74 +++++++++++ .../Raid Quests/3789_Into the Firestorm.json | 123 ++++++++++++++++++ .../Raid Quests/3790_Heart of Darkness.json | 89 +++++++++++++ .../Raid Quests/3791_On Thin Ice.json | 49 +++++++ .../Raid Quests/3792_Life Finds a Way.json | 65 +++++++++ .../Raid Quests/3793_Worlds Apart.json | 70 ++++++++++ .../Raid Quests/3975_Empty Promise.json | 55 ++++++++ .../Raid Quests/3976_Fear of the Dark.json | 74 +++++++++++ .../Raid Quests/3977_Shadows of the Past.json | 97 ++++++++++++++ .../Raid Quests/3978_Voice of the Soul.json | 96 ++++++++++++++ .../Raid Quests/3979_Where I Belong.json | 65 +++++++++ 18 files changed, 1413 insertions(+) create mode 100644 QuestPaths/5.x - Shadowbringers/Raid Quests/3255_In the Middle of Nowhere.json create mode 100644 QuestPaths/5.x - Shadowbringers/Raid Quests/3256_Deploy the Core.json create mode 100644 QuestPaths/5.x - Shadowbringers/Raid Quests/3257_One Fell Swoop.json create mode 100644 QuestPaths/5.x - Shadowbringers/Raid Quests/3258_Nor Any Drop to Drink.json create mode 100644 QuestPaths/5.x - Shadowbringers/Raid Quests/3259_Super Seismic.json create mode 100644 QuestPaths/5.x - Shadowbringers/Raid Quests/3260_The Next Piece of the Puzzle.json create mode 100644 QuestPaths/5.x - Shadowbringers/Raid Quests/3787_Away with the Faerie.json create mode 100644 QuestPaths/5.x - Shadowbringers/Raid Quests/3788_Blood and Thunder.json create mode 100644 QuestPaths/5.x - Shadowbringers/Raid Quests/3789_Into the Firestorm.json create mode 100644 QuestPaths/5.x - Shadowbringers/Raid Quests/3790_Heart of Darkness.json create mode 100644 QuestPaths/5.x - Shadowbringers/Raid Quests/3791_On Thin Ice.json create mode 100644 QuestPaths/5.x - Shadowbringers/Raid Quests/3792_Life Finds a Way.json create mode 100644 QuestPaths/5.x - Shadowbringers/Raid Quests/3793_Worlds Apart.json create mode 100644 QuestPaths/5.x - Shadowbringers/Raid Quests/3975_Empty Promise.json create mode 100644 QuestPaths/5.x - Shadowbringers/Raid Quests/3976_Fear of the Dark.json create mode 100644 QuestPaths/5.x - Shadowbringers/Raid Quests/3977_Shadows of the Past.json create mode 100644 QuestPaths/5.x - Shadowbringers/Raid Quests/3978_Voice of the Soul.json create mode 100644 QuestPaths/5.x - Shadowbringers/Raid Quests/3979_Where I Belong.json diff --git a/QuestPaths/5.x - Shadowbringers/Raid Quests/3255_In the Middle of Nowhere.json b/QuestPaths/5.x - Shadowbringers/Raid Quests/3255_In the Middle of Nowhere.json new file mode 100644 index 00000000..b34f0f8e --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Raid Quests/3255_In the Middle of Nowhere.json @@ -0,0 +1,76 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1030090, + "Position": { + "X": -73.35016, + "Y": 1.5753315E-08, + "Z": 55.954834 + }, + "TerritoryId": 819, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1030091, + "Position": { + "X": 380.97205, + "Y": -64.31066, + "Z": 511.2229 + }, + "TerritoryId": 815, + "InteractionType": "Interact", + "AetheryteShortcut": "Amh Araeng - Inn at Journey's Head", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1030091, + "Position": { + "X": 380.97205, + "Y": -64.31066, + "Z": 511.2229 + }, + "TerritoryId": 815, + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_LUCKRA101_03255_YESNO_001", + "Yes": true + } + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1030095, + "Position": { + "X": -0.56463623, + "Y": -2.028786, + "Z": -17.807312 + }, + "TerritoryId": 878, + "InteractionType": "CompleteQuest", + "NextQuestId": 3256 + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Raid Quests/3256_Deploy the Core.json b/QuestPaths/5.x - Shadowbringers/Raid Quests/3256_Deploy the Core.json new file mode 100644 index 00000000..25740de5 --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Raid Quests/3256_Deploy the Core.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": 1030095, + "Position": { + "X": -0.56463623, + "Y": -2.028786, + "Z": -17.807312 + }, + "TerritoryId": 878, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "TerritoryId": 878, + "InteractionType": "Duty", + "ContentFinderConditionId": 653 + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1030101, + "Position": { + "X": -8.712891, + "Y": -2.498, + "Z": 13.137939 + }, + "TerritoryId": 878, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 2009981, + "Position": { + "X": -14.66394, + "Y": -2.609314, + "Z": 23.819275 + }, + "TerritoryId": 878, + "InteractionType": "Interact", + "TargetTerritoryId": 857 + }, + { + "DataId": 1030104, + "Position": { + "X": 101.57922, + "Y": -2.8675152E-14, + "Z": 94.346436 + }, + "TerritoryId": 857, + "InteractionType": "CompleteQuest", + "NextQuestId": 3257 + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Raid Quests/3257_One Fell Swoop.json b/QuestPaths/5.x - Shadowbringers/Raid Quests/3257_One Fell Swoop.json new file mode 100644 index 00000000..ae4859a1 --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Raid Quests/3257_One Fell Swoop.json @@ -0,0 +1,49 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1030110, + "Position": { + "X": 99.99231, + "Y": -7.687662E-13, + "Z": 92.51538 + }, + "StopDistance": 6, + "TerritoryId": 857, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "TerritoryId": 878, + "InteractionType": "Duty", + "ContentFinderConditionId": 684 + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1030110, + "Position": { + "X": 99.99231, + "Y": -7.687662E-13, + "Z": 92.51538 + }, + "StopDistance": 6, + "TerritoryId": 857, + "InteractionType": "CompleteQuest", + "NextQuestId": 3258 + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Raid Quests/3258_Nor Any Drop to Drink.json b/QuestPaths/5.x - Shadowbringers/Raid Quests/3258_Nor Any Drop to Drink.json new file mode 100644 index 00000000..f9cccf0f --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Raid Quests/3258_Nor Any Drop to Drink.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": [ + { + "DataId": 1030110, + "Position": { + "X": 99.99231, + "Y": -7.687662E-13, + "Z": 92.51538 + }, + "StopDistance": 6, + "TerritoryId": 857, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1030117, + "Position": { + "X": -1.3580933, + "Y": -2.0308912, + "Z": -16.647583 + }, + "TerritoryId": 878, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2010135, + "Position": { + "X": -14.66394, + "Y": -2.5788574, + "Z": 23.819275 + }, + "TerritoryId": 878, + "InteractionType": "Interact", + "TargetTerritoryId": 857 + }, + { + "DataId": 1030110, + "Position": { + "X": 99.99231, + "Y": -7.687662E-13, + "Z": 92.51538 + }, + "TerritoryId": 857, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "TerritoryId": 878, + "InteractionType": "Duty", + "ContentFinderConditionId": 682 + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1030110, + "Position": { + "X": 99.99231, + "Y": -7.687662E-13, + "Z": 92.51538 + }, + "StopDistance": 6, + "TerritoryId": 857, + "InteractionType": "CompleteQuest", + "NextQuestId": 3259 + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Raid Quests/3259_Super Seismic.json b/QuestPaths/5.x - Shadowbringers/Raid Quests/3259_Super Seismic.json new file mode 100644 index 00000000..1f3c5c12 --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Raid Quests/3259_Super Seismic.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": 1030113, + "Position": { + "X": -2.1210327, + "Y": -2.4980056, + "Z": 18.142944 + }, + "StopDistance": 5, + "TerritoryId": 878, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2010135, + "Position": { + "X": -14.66394, + "Y": -2.5788574, + "Z": 23.819275 + }, + "TerritoryId": 878, + "InteractionType": "Interact", + "TargetTerritoryId": 857 + }, + { + "DataId": 1030110, + "Position": { + "X": 99.99231, + "Y": -7.687662E-13, + "Z": 92.51538 + }, + "TerritoryId": 857, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "TerritoryId": 878, + "InteractionType": "Duty", + "ContentFinderConditionId": 689 + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1030110, + "Position": { + "X": 99.99231, + "Y": -7.687662E-13, + "Z": 92.51538 + }, + "StopDistance": 6, + "TerritoryId": 857, + "InteractionType": "CompleteQuest", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_LUCKRA105_03259_Q2_000_000", + "Answer": "TEXT_LUCKRA105_03259_A2_000_001" + } + ], + "NextQuestId": 3260 + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Raid Quests/3260_The Next Piece of the Puzzle.json b/QuestPaths/5.x - Shadowbringers/Raid Quests/3260_The Next Piece of the Puzzle.json new file mode 100644 index 00000000..8672b983 --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Raid Quests/3260_The Next Piece of the Puzzle.json @@ -0,0 +1,78 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1030118, + "Position": { + "X": -3.8605957, + "Y": -2.497989, + "Z": 19.119507 + }, + "StopDistance": 5, + "TerritoryId": 878, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1030387, + "Position": { + "X": 31.967651, + "Y": 4.929005, + "Z": -9.10968 + }, + "TerritoryId": 878, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1030091, + "Position": { + "X": 380.97205, + "Y": -64.31066, + "Z": 511.2229 + }, + "TerritoryId": 815, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": 270.40494, + "Y": 7.1558266, + "Z": -234.46175 + }, + "TerritoryId": 815, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 1030121, + "Position": { + "X": 268.8181, + "Y": 7.1558256, + "Z": -233.66144 + }, + "TerritoryId": 815, + "InteractionType": "CompleteQuest", + "NextQuestId": 3787 + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Raid Quests/3787_Away with the Faerie.json b/QuestPaths/5.x - Shadowbringers/Raid Quests/3787_Away with the Faerie.json new file mode 100644 index 00000000..e19a7446 --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Raid Quests/3787_Away with the Faerie.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": 1032715, + "Position": { + "X": 265.3086, + "Y": 7.1558266, + "Z": -237.81189 + }, + "StopDistance": 7, + "TerritoryId": 815, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1032606, + "Position": { + "X": 318.2268, + "Y": 1.5411377, + "Z": -225.6352 + }, + "TerritoryId": 815, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2010957, + "Position": { + "X": 485.40466, + "Y": -26.29132, + "Z": -20.859192 + }, + "TerritoryId": 815, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1032591, + "Position": { + "X": 482.44446, + "Y": -41.81235, + "Z": 81.55945 + }, + "StopDistance": 6, + "TerritoryId": 815, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1030092, + "Position": { + "X": 382.864, + "Y": -64.404945, + "Z": 512.01636 + }, + "TerritoryId": 815, + "InteractionType": "Interact", + "Fly": true, + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_LUCKRA201_03787_YESNO_001", + "Yes": true + } + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1032596, + "Position": { + "X": -6.0273438, + "Y": -2.5312338, + "Z": 21.62201 + }, + "TerritoryId": 878, + "InteractionType": "CompleteQuest", + "NextQuestId": 3788 + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Raid Quests/3788_Blood and Thunder.json b/QuestPaths/5.x - Shadowbringers/Raid Quests/3788_Blood and Thunder.json new file mode 100644 index 00000000..ebc6d036 --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Raid Quests/3788_Blood and Thunder.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": 1032596, + "Position": { + "X": -6.0273438, + "Y": -2.5312338, + "Z": 21.62201 + }, + "TerritoryId": 878, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2010135, + "Position": { + "X": -14.66394, + "Y": -2.5788574, + "Z": 23.819275 + }, + "TerritoryId": 878, + "InteractionType": "Interact", + "TargetTerritoryId": 857 + }, + { + "DataId": 1030112, + "Position": { + "X": 101.548706, + "Y": -2.330609E-14, + "Z": 93.217285 + }, + "TerritoryId": 857, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "TerritoryId": 857, + "InteractionType": "Duty", + "ContentFinderConditionId": 715 + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1030110, + "Position": { + "X": 99.99231, + "Y": -7.687662E-13, + "Z": 92.51538 + }, + "StopDistance": 6, + "TerritoryId": 857, + "InteractionType": "CompleteQuest", + "NextQuestId": 3789 + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Raid Quests/3789_Into the Firestorm.json b/QuestPaths/5.x - Shadowbringers/Raid Quests/3789_Into the Firestorm.json new file mode 100644 index 00000000..0feffc87 --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Raid Quests/3789_Into the Firestorm.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": 1032605, + "Position": { + "X": -8.743469, + "Y": -2.0474615, + "Z": -10.025269 + }, + "StopDistance": 6, + "TerritoryId": 878, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1032602, + "Position": { + "X": -6.7597656, + "Y": -2.1008918, + "Z": -8.560364 + }, + "StopDistance": 6, + "TerritoryId": 878, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1032602, + "Position": { + "X": -6.7597656, + "Y": -2.1008918, + "Z": -8.560364 + }, + "StopDistance": 6, + "TerritoryId": 878, + "InteractionType": "Emote", + "Emote": "rally" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2010959, + "Position": { + "X": -7.461731, + "Y": -2.2736206, + "Z": -5.8442383 + }, + "TerritoryId": 878, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 2010135, + "Position": { + "X": -14.66394, + "Y": -2.5788574, + "Z": 23.819275 + }, + "TerritoryId": 878, + "InteractionType": "Interact", + "TargetTerritoryId": 857 + }, + { + "DataId": 1030112, + "Position": { + "X": 101.548706, + "Y": -2.330609E-14, + "Z": 93.217285 + }, + "TerritoryId": 857, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "TerritoryId": 857, + "InteractionType": "Duty", + "ContentFinderConditionId": 719 + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1030110, + "Position": { + "X": 99.99231, + "Y": -7.687662E-13, + "Z": 92.51538 + }, + "StopDistance": 6, + "TerritoryId": 857, + "InteractionType": "CompleteQuest", + "NextQuestId": 3790 + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Raid Quests/3790_Heart of Darkness.json b/QuestPaths/5.x - Shadowbringers/Raid Quests/3790_Heart of Darkness.json new file mode 100644 index 00000000..4fa12e46 --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Raid Quests/3790_Heart of Darkness.json @@ -0,0 +1,89 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1032604, + "Position": { + "X": -7.034485, + "Y": -2.0372493, + "Z": -11.215393 + }, + "StopDistance": 7, + "TerritoryId": 878, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2010135, + "Position": { + "X": -14.66394, + "Y": -2.5788574, + "Z": 23.819275 + }, + "TerritoryId": 878, + "InteractionType": "Interact", + "TargetTerritoryId": 857 + }, + { + "DataId": 1030112, + "Position": { + "X": 101.548706, + "Y": -2.330609E-14, + "Z": 93.217285 + }, + "TerritoryId": 857, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1032610, + "Position": { + "X": 101.823364, + "Y": -2.7503654E-14, + "Z": 94.13281 + }, + "TerritoryId": 857, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "TerritoryId": 857, + "InteractionType": "Duty", + "ContentFinderConditionId": 726 + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1032610, + "Position": { + "X": 101.823364, + "Y": -2.7503654E-14, + "Z": 94.13281 + }, + "TerritoryId": 857, + "InteractionType": "CompleteQuest", + "NextQuestId": 3791 + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Raid Quests/3791_On Thin Ice.json b/QuestPaths/5.x - Shadowbringers/Raid Quests/3791_On Thin Ice.json new file mode 100644 index 00000000..c745e69c --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Raid Quests/3791_On Thin Ice.json @@ -0,0 +1,49 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1032611, + "Position": { + "X": 103.65454, + "Y": -2.7643511E-14, + "Z": 94.56018 + }, + "StopDistance": 5, + "TerritoryId": 857, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "TerritoryId": 857, + "InteractionType": "Duty", + "ContentFinderConditionId": 728 + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1030110, + "Position": { + "X": 99.99231, + "Y": -7.687662E-13, + "Z": 92.51538 + }, + "StopDistance": 5, + "TerritoryId": 857, + "InteractionType": "CompleteQuest", + "NextQuestId": 3792 + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Raid Quests/3792_Life Finds a Way.json b/QuestPaths/5.x - Shadowbringers/Raid Quests/3792_Life Finds a Way.json new file mode 100644 index 00000000..bf5cfd61 --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Raid Quests/3792_Life Finds a Way.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": 1032602, + "Position": { + "X": -6.7597656, + "Y": -2.1008885, + "Z": -8.560364 + }, + "StopDistance": 5, + "TerritoryId": 878, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1030091, + "Position": { + "X": 380.97205, + "Y": -64.31066, + "Z": 511.2229 + }, + "TerritoryId": 815, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": 268.15204, + "Y": 7.1558266, + "Z": -237.94643 + }, + "TerritoryId": 815, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Amh Araeng - Mord Souq", + "Fly": true + }, + { + "DataId": 1032590, + "Position": { + "X": 265.3086, + "Y": 7.1558266, + "Z": -237.78137 + }, + "StopDistance": 4, + "TerritoryId": 815, + "InteractionType": "CompleteQuest", + "NextQuestId": 3793 + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Raid Quests/3793_Worlds Apart.json b/QuestPaths/5.x - Shadowbringers/Raid Quests/3793_Worlds Apart.json new file mode 100644 index 00000000..a460df4e --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Raid Quests/3793_Worlds Apart.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": 1032590, + "Position": { + "X": 265.3086, + "Y": 7.1558266, + "Z": -237.78137 + }, + "StopDistance": 4, + "TerritoryId": 815, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2010961, + "Position": { + "X": -6.9733887, + "Y": 3.982544, + "Z": 221.36255 + }, + "TerritoryId": 819, + "InteractionType": "Interact", + "AetheryteShortcut": "Crystarium", + "AethernetShortcut": [ + "[Crystarium] Aetheryte Plaza", + "[Crystarium] The Pendants" + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": 268.15204, + "Y": 7.1558266, + "Z": -237.94643 + }, + "TerritoryId": 815, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Amh Araeng - Mord Souq", + "Fly": true + }, + { + "DataId": 1032590, + "Position": { + "X": 265.3086, + "Y": 7.1558266, + "Z": -237.78137 + }, + "StopDistance": 4, + "TerritoryId": 815, + "InteractionType": "CompleteQuest", + "NextQuestId": 3975 + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Raid Quests/3975_Empty Promise.json b/QuestPaths/5.x - Shadowbringers/Raid Quests/3975_Empty Promise.json new file mode 100644 index 00000000..c5c21cb0 --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Raid Quests/3975_Empty Promise.json @@ -0,0 +1,55 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1032590, + "Position": { + "X": 265.3086, + "Y": 7.1558266, + "Z": -237.78137 + }, + "StopDistance": 4, + "TerritoryId": 815, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1034507, + "Position": { + "X": 381.9486, + "Y": -64.35385, + "Z": 511.13135 + }, + "TerritoryId": 815, + "InteractionType": "Interact", + "AetheryteShortcut": "Amh Araeng - Inn at Journey's Head", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1034508, + "Position": { + "X": 380.66675, + "Y": -64.28985, + "Z": 510.58203 + }, + "TerritoryId": 815, + "InteractionType": "CompleteQuest", + "NextQuestId": 3976 + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Raid Quests/3976_Fear of the Dark.json b/QuestPaths/5.x - Shadowbringers/Raid Quests/3976_Fear of the Dark.json new file mode 100644 index 00000000..7261a5be --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Raid Quests/3976_Fear of the Dark.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": 1034510, + "Position": { + "X": 31.021484, + "Y": 4.9285717, + "Z": -8.560364 + }, + "StopDistance": 4, + "TerritoryId": 878, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2010135, + "Position": { + "X": -14.66394, + "Y": -2.5788574, + "Z": 23.819275 + }, + "TerritoryId": 878, + "InteractionType": "Interact", + "TargetTerritoryId": 857 + }, + { + "DataId": 1030110, + "Position": { + "X": 99.99231, + "Y": -7.687662E-13, + "Z": 92.51538 + }, + "TerritoryId": 857, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "TerritoryId": 857, + "InteractionType": "Duty", + "ContentFinderConditionId": 749 + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1034511, + "Position": { + "X": 101.27405, + "Y": -2.4161777E-14, + "Z": 93.36987 + }, + "TerritoryId": 857, + "InteractionType": "CompleteQuest", + "NextQuestId": 3977 + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Raid Quests/3977_Shadows of the Past.json b/QuestPaths/5.x - Shadowbringers/Raid Quests/3977_Shadows of the Past.json new file mode 100644 index 00000000..0ab8de23 --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Raid Quests/3977_Shadows of the Past.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": 1034514, + "Position": { + "X": -8.163635, + "Y": -2.4984214, + "Z": 18.936401 + }, + "StopDistance": 4, + "TerritoryId": 878, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1034513, + "Position": { + "X": -6.149414, + "Y": -2.4984214, + "Z": 19.72992 + }, + "StopDistance": 5, + "TerritoryId": 878, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2011241, + "Position": { + "X": -14.6356, + "Y": -2.581, + "Z": 23.8476 + }, + "TerritoryId": 878, + "InteractionType": "Interact", + "TargetTerritoryId": 857 + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1034515, + "Position": { + "X": -7.888916, + "Y": -2.4984214, + "Z": 12.741211 + }, + "StopDistance": 5, + "TerritoryId": 878, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "TerritoryId": 857, + "InteractionType": "Duty", + "ContentFinderConditionId": 747 + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1034518, + "Position": { + "X": 101.182495, + "Y": -3.8122757E-14, + "Z": 103.715576 + }, + "StopDistance": 7, + "TerritoryId": 857, + "InteractionType": "CompleteQuest", + "NextQuestId": 3978 + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Raid Quests/3978_Voice of the Soul.json b/QuestPaths/5.x - Shadowbringers/Raid Quests/3978_Voice of the Soul.json new file mode 100644 index 00000000..de061f16 --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Raid Quests/3978_Voice of the Soul.json @@ -0,0 +1,96 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1034519, + "Position": { + "X": 101.15198, + "Y": -3.8577113E-14, + "Z": 103.6239 + }, + "StopDistance": 7, + "TerritoryId": 857, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "TerritoryId": 857, + "InteractionType": "Duty", + "ContentFinderConditionId": 751 + } + ] + }, + { + "Sequence": 2 + }, + { + "Sequence": 3, + "Steps": [ + { + "TerritoryId": 857, + "InteractionType": "Duty", + "ContentFinderConditionId": 758 + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1034521, + "Position": { + "X": -8.163635, + "Y": -2.4984214, + "Z": 11.734131 + }, + "StopDistance": 5, + "TerritoryId": 878, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1034520, + "Position": { + "X": -7.7974243, + "Y": -2.4984214, + "Z": 11.337402 + }, + "StopDistance": 5, + "TerritoryId": 878, + "InteractionType": "Say", + "ChatMessage": { + "Key": "TEXT_LUCKRA304_03978_SAYTODO_000_160" + } + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1034521, + "Position": { + "X": -8.163635, + "Y": -2.4984214, + "Z": 11.734131 + }, + "StopDistance": 5, + "TerritoryId": 878, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Raid Quests/3979_Where I Belong.json b/QuestPaths/5.x - Shadowbringers/Raid Quests/3979_Where I Belong.json new file mode 100644 index 00000000..98da6980 --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Raid Quests/3979_Where I Belong.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": 1034522, + "Position": { + "X": -7.0039062, + "Y": -2.4980054, + "Z": 21.591492 + }, + "StopDistance": 7, + "TerritoryId": 878, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1034508, + "Position": { + "X": 380.66675, + "Y": -64.28985, + "Z": 510.58203 + }, + "StopDistance": 5, + "TerritoryId": 815, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": 268.15204, + "Y": 7.1558266, + "Z": -237.94643 + }, + "TerritoryId": 815, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Amh Araeng - Mord Souq", + "Fly": true + }, + { + "DataId": 1032715, + "Position": { + "X": 265.3086, + "Y": 7.1558266, + "Z": -237.81189 + }, + "StopDistance": 4, + "TerritoryId": 815, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} From bd6655615c141272ac50cde8b3553e013ec926b1 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sun, 8 Sep 2024 14:38:24 +0200 Subject: [PATCH 192/450] Add Old Sharlayan side quests --- .../Old Sharlayan/4180_A Waiting Love.json | 76 +++++++ .../4181_Scholarly Perspective.json | 77 +++++++ .../4182_A Literary Delivery.json | 108 ++++++++++ .../Old Sharlayan/4183_Doll Dash.json | 66 ++++++ .../4210_A Volatile Education.json | 113 +++++++++++ .../4211_The Light of Progress.json | 66 ++++++ .../Old Sharlayan/4212_My Fair Mammet.json | 59 ++++++ ...13_The Creature from the Wooden Crate.json | 66 ++++++ .../Old Sharlayan/4214_Fast Fashion.json | 132 ++++++++++++ .../Old Sharlayan/4215_Booking Books.json | 188 ++++++++++++++++++ .../4316_For the Love of Pudding.json | 122 ++++++++++++ .../Old Sharlayan/4317_Secret in the Box.json | 132 ++++++++++++ .../4319_Sandwiches and Pretzels.json | 77 +++++++ QuestPaths/quest-v1.json | 3 +- .../Questing/Converter/EmoteConverter.cs | 1 + Questionable.Model/Questing/EEmote.cs | 1 + .../Controller/Steps/Interactions/Interact.cs | 6 +- 17 files changed, 1290 insertions(+), 3 deletions(-) create mode 100644 QuestPaths/6.x - Endwalker/Side Quests/Old Sharlayan/4180_A Waiting Love.json create mode 100644 QuestPaths/6.x - Endwalker/Side Quests/Old Sharlayan/4181_Scholarly Perspective.json create mode 100644 QuestPaths/6.x - Endwalker/Side Quests/Old Sharlayan/4182_A Literary Delivery.json create mode 100644 QuestPaths/6.x - Endwalker/Side Quests/Old Sharlayan/4183_Doll Dash.json create mode 100644 QuestPaths/6.x - Endwalker/Side Quests/Old Sharlayan/4210_A Volatile Education.json create mode 100644 QuestPaths/6.x - Endwalker/Side Quests/Old Sharlayan/4211_The Light of Progress.json create mode 100644 QuestPaths/6.x - Endwalker/Side Quests/Old Sharlayan/4212_My Fair Mammet.json create mode 100644 QuestPaths/6.x - Endwalker/Side Quests/Old Sharlayan/4213_The Creature from the Wooden Crate.json create mode 100644 QuestPaths/6.x - Endwalker/Side Quests/Old Sharlayan/4214_Fast Fashion.json create mode 100644 QuestPaths/6.x - Endwalker/Side Quests/Old Sharlayan/4215_Booking Books.json create mode 100644 QuestPaths/6.x - Endwalker/Side Quests/Old Sharlayan/4316_For the Love of Pudding.json create mode 100644 QuestPaths/6.x - Endwalker/Side Quests/Old Sharlayan/4317_Secret in the Box.json create mode 100644 QuestPaths/6.x - Endwalker/Side Quests/Old Sharlayan/4319_Sandwiches and Pretzels.json diff --git a/QuestPaths/6.x - Endwalker/Side Quests/Old Sharlayan/4180_A Waiting Love.json b/QuestPaths/6.x - Endwalker/Side Quests/Old Sharlayan/4180_A Waiting Love.json new file mode 100644 index 00000000..89c51bba --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Side Quests/Old Sharlayan/4180_A Waiting Love.json @@ -0,0 +1,76 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1039336, + "Position": { + "X": -175.61609, + "Y": 7.84433, + "Z": 68.92493 + }, + "TerritoryId": 962, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1039328, + "Position": { + "X": -152.3919, + "Y": -16.147, + "Z": 209.46057 + }, + "TerritoryId": 962, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Old Sharlayan] The Baldesion Annex", + "[Old Sharlayan] Scholar's Harbor" + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1039328, + "Position": { + "X": -152.3919, + "Y": -16.147, + "Z": 209.46057 + }, + "TerritoryId": 962, + "InteractionType": "Emote", + "Emote": "poke" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1039336, + "Position": { + "X": -175.61609, + "Y": 7.84433, + "Z": 68.92493 + }, + "TerritoryId": 962, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Old Sharlayan", + "AethernetShortcut": [ + "[Old Sharlayan] Aetheryte Plaza", + "[Old Sharlayan] The Baldesion Annex" + ] + } + ] + } + ] +} diff --git a/QuestPaths/6.x - Endwalker/Side Quests/Old Sharlayan/4181_Scholarly Perspective.json b/QuestPaths/6.x - Endwalker/Side Quests/Old Sharlayan/4181_Scholarly Perspective.json new file mode 100644 index 00000000..d78b2a99 --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Side Quests/Old Sharlayan/4181_Scholarly Perspective.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": 1037211, + "Position": { + "X": 36.209595, + "Y": 2.455876, + "Z": -22.90387 + }, + "TerritoryId": 962, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1039337, + "Position": { + "X": 99.6261, + "Y": -10.587427, + "Z": 276.81384 + }, + "TerritoryId": 962, + "InteractionType": "Instruction", + "Comment": "Click ewer, head and feet", + "AethernetShortcut": [ + "[Old Sharlayan] Aetheryte Plaza", + "[Old Sharlayan] Scholar's Harbor" + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1039349, + "Position": { + "X": -49.485046, + "Y": -14.999998, + "Z": 253.34546 + }, + "TerritoryId": 962, + "InteractionType": "Interact", + "AetheryteShortcut": "Old Sharlayan", + "AethernetShortcut": [ + "[Old Sharlayan] Aetheryte Plaza", + "[Old Sharlayan] Scholar's Harbor" + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1037211, + "Position": { + "X": 36.209595, + "Y": 2.455876, + "Z": -22.90387 + }, + "TerritoryId": 962, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Old Sharlayan" + } + ] + } + ] +} diff --git a/QuestPaths/6.x - Endwalker/Side Quests/Old Sharlayan/4182_A Literary Delivery.json b/QuestPaths/6.x - Endwalker/Side Quests/Old Sharlayan/4182_A Literary Delivery.json new file mode 100644 index 00000000..475d4264 --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Side Quests/Old Sharlayan/4182_A Literary Delivery.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": 1039509, + "Position": { + "X": 42.06909, + "Y": 2.4514537, + "Z": -11.062805 + }, + "TerritoryId": 962, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1039340, + "Position": { + "X": 71.39697, + "Y": -14.446998, + "Z": 82.108765 + }, + "TerritoryId": 962, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Old Sharlayan] Aetheryte Plaza", + "[Old Sharlayan] Scholar's Harbor" + ], + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, + { + "DataId": 1039338, + "Position": { + "X": 205.67627, + "Y": 1.5468291, + "Z": 22.690125 + }, + "TerritoryId": 962, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Old Sharlayan] Scholar's Harbor", + "[Old Sharlayan] Journey's End" + ], + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 1039339, + "Position": { + "X": -237.93402, + "Y": 12.289626, + "Z": 16.189758 + }, + "TerritoryId": 962, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Old Sharlayan] Journey's End", + "[Old Sharlayan] The Studium" + ], + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1039509, + "Position": { + "X": 42.06909, + "Y": 2.4514537, + "Z": -11.062805 + }, + "TerritoryId": 962, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Old Sharlayan" + } + ] + } + ] +} diff --git a/QuestPaths/6.x - Endwalker/Side Quests/Old Sharlayan/4183_Doll Dash.json b/QuestPaths/6.x - Endwalker/Side Quests/Old Sharlayan/4183_Doll Dash.json new file mode 100644 index 00000000..c9548b75 --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Side Quests/Old Sharlayan/4183_Doll Dash.json @@ -0,0 +1,66 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1039341, + "Position": { + "X": 164.72107, + "Y": 1.2891341, + "Z": 22.140747 + }, + "TerritoryId": 962, + "InteractionType": "AcceptQuest", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_AKTKZA004_04183_Q1_000_000", + "Answer": "TEXT_AKTKZA004_04183_A1_000_002" + } + ] + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1039342, + "Position": { + "X": 111.65027, + "Y": 18.835812, + "Z": -175.0058 + }, + "TerritoryId": 962, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Old Sharlayan] Journey's End", + "[Old Sharlayan] The Leveilleur Estate" + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1039341, + "Position": { + "X": 164.72107, + "Y": 1.2891341, + "Z": 22.140747 + }, + "TerritoryId": 962, + "InteractionType": "CompleteQuest", + "AethernetShortcut": [ + "[Old Sharlayan] The Leveilleur Estate", + "[Old Sharlayan] Journey's End" + ] + } + ] + } + ] +} diff --git a/QuestPaths/6.x - Endwalker/Side Quests/Old Sharlayan/4210_A Volatile Education.json b/QuestPaths/6.x - Endwalker/Side Quests/Old Sharlayan/4210_A Volatile Education.json new file mode 100644 index 00000000..b42a58b0 --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Side Quests/Old Sharlayan/4210_A Volatile Education.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": 1039510, + "Position": { + "X": -309.07147, + "Y": 21.799957, + "Z": -174.36487 + }, + "TerritoryId": 962, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": -201.63965, + "Y": 25.46388, + "Z": -157.38919 + }, + "TerritoryId": 962, + "InteractionType": "WalkTo" + }, + { + "Position": { + "X": -191.05865, + "Y": 22.001097, + "Z": -166.16983 + }, + "TerritoryId": 962, + "InteractionType": "WalkTo", + "DisableNavmesh": true + }, + { + "DataId": 1039346, + "Position": { + "X": -188.922, + "Y": 23.49104, + "Z": -181.90283 + }, + "TerritoryId": 962, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2011801, + "Position": { + "X": -191.02777, + "Y": 24.215942, + "Z": -179.15619 + }, + "TerritoryId": 962, + "InteractionType": "UseItem", + "ItemId": 2003114 + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1039346, + "Position": { + "X": -188.922, + "Y": 23.49104, + "Z": -181.90283 + }, + "TerritoryId": 962, + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_AKTKZC001_04210_Q1_000_000", + "Answer": "TEXT_AKTKZC001_04210_A1_000_002" + } + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1039510, + "Position": { + "X": -309.07147, + "Y": 21.799957, + "Z": -174.36487 + }, + "TerritoryId": 962, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Old Sharlayan", + "AethernetShortcut": [ + "[Old Sharlayan] Aetheryte Plaza", + "[Old Sharlayan] The Studium" + ] + } + ] + } + ] +} diff --git a/QuestPaths/6.x - Endwalker/Side Quests/Old Sharlayan/4211_The Light of Progress.json b/QuestPaths/6.x - Endwalker/Side Quests/Old Sharlayan/4211_The Light of Progress.json new file mode 100644 index 00000000..80534b45 --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Side Quests/Old Sharlayan/4211_The Light of Progress.json @@ -0,0 +1,66 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 2011795, + "Position": { + "X": -104.32593, + "Y": 24.673828, + "Z": -120.042725 + }, + "TerritoryId": 962, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1039344, + "Position": { + "X": -58.54895, + "Y": 5.9669995, + "Z": -60.746216 + }, + "TerritoryId": 962, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1039509, + "Position": { + "X": 42.06909, + "Y": 2.4514537, + "Z": -11.062805 + }, + "TerritoryId": 962, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1039345, + "Position": { + "X": -102.1897, + "Y": 24.649986, + "Z": -119.798584 + }, + "TerritoryId": 962, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/6.x - Endwalker/Side Quests/Old Sharlayan/4212_My Fair Mammet.json b/QuestPaths/6.x - Endwalker/Side Quests/Old Sharlayan/4212_My Fair Mammet.json new file mode 100644 index 00000000..eec5c43f --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Side Quests/Old Sharlayan/4212_My Fair Mammet.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": 1037104, + "Position": { + "X": -326.07007, + "Y": 20.1375, + "Z": -142.56512 + }, + "TerritoryId": 962, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1039343, + "Position": { + "X": -16.983276, + "Y": -16.246998, + "Z": 123.03345 + }, + "TerritoryId": 962, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Old Sharlayan] The Studium", + "[Old Sharlayan] Scholar's Harbor" + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1037104, + "Position": { + "X": -326.07007, + "Y": 20.1375, + "Z": -142.56512 + }, + "TerritoryId": 962, + "InteractionType": "CompleteQuest", + "AethernetShortcut": [ + "[Old Sharlayan] Scholar's Harbor", + "[Old Sharlayan] The Studium" + ] + } + ] + } + ] +} diff --git a/QuestPaths/6.x - Endwalker/Side Quests/Old Sharlayan/4213_The Creature from the Wooden Crate.json b/QuestPaths/6.x - Endwalker/Side Quests/Old Sharlayan/4213_The Creature from the Wooden Crate.json new file mode 100644 index 00000000..cf4a5427 --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Side Quests/Old Sharlayan/4213_The Creature from the Wooden Crate.json @@ -0,0 +1,66 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1041286, + "Position": { + "X": -230.51807, + "Y": 21.437386, + "Z": -119.46289 + }, + "TerritoryId": 962, + "InteractionType": "AcceptQuest", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_AKTKZC004_04213_Q1_000_000", + "Answer": "TEXT_AKTKZC004_04213_A1_000_001" + } + ] + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1041285, + "Position": { + "X": 115.80066, + "Y": 14.741594, + "Z": -132.03638 + }, + "TerritoryId": 962, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Old Sharlayan] The Studium", + "[Old Sharlayan] The Leveilleur Estate" + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1041286, + "Position": { + "X": -230.51807, + "Y": 21.437386, + "Z": -119.46289 + }, + "TerritoryId": 962, + "InteractionType": "CompleteQuest", + "AethernetShortcut": [ + "[Old Sharlayan] The Leveilleur Estate", + "[Old Sharlayan] The Studium" + ] + } + ] + } + ] +} diff --git a/QuestPaths/6.x - Endwalker/Side Quests/Old Sharlayan/4214_Fast Fashion.json b/QuestPaths/6.x - Endwalker/Side Quests/Old Sharlayan/4214_Fast Fashion.json new file mode 100644 index 00000000..0b4c7e74 --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Side Quests/Old Sharlayan/4214_Fast Fashion.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": 1041287, + "Position": { + "X": -307.3625, + "Y": 22.3, + "Z": -143.29755 + }, + "TerritoryId": 962, + "InteractionType": "AcceptQuest", + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_AKTKZC005_04214_Q1_000_000", + "Yes": true + } + ] + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1041288, + "Position": { + "X": -169.51251, + "Y": 21.975235, + "Z": -152.26978 + }, + "TerritoryId": 962, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2012434, + "Position": { + "X": -168.32227, + "Y": 21.927185, + "Z": -151.29321 + }, + "StopDistance": 0.25, + "TerritoryId": 962, + "InteractionType": "Emote", + "Emote": "battlestance" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2012437, + "Position": { + "X": -169.69562, + "Y": 22.87323, + "Z": -150.07251 + }, + "TerritoryId": 962, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1037098, + "Position": { + "X": -94.83484, + "Y": 6.617, + "Z": -41.58087 + }, + "TerritoryId": 962, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1041288, + "Position": { + "X": -169.51251, + "Y": 21.975235, + "Z": -152.26978 + }, + "TerritoryId": 962, + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_AKTKZC005_04214_Q2_000_000", + "Answer": "TEXT_AKTKZC005_04214_A2_000_002" + } + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1041287, + "Position": { + "X": -307.3625, + "Y": 22.3, + "Z": -143.29755 + }, + "TerritoryId": 962, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Old Sharlayan", + "AethernetShortcut": [ + "[Old Sharlayan] Aetheryte Plaza", + "[Old Sharlayan] The Studium" + ] + } + ] + } + ] +} diff --git a/QuestPaths/6.x - Endwalker/Side Quests/Old Sharlayan/4215_Booking Books.json b/QuestPaths/6.x - Endwalker/Side Quests/Old Sharlayan/4215_Booking Books.json new file mode 100644 index 00000000..93207817 --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Side Quests/Old Sharlayan/4215_Booking Books.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": 1037139, + "Position": { + "X": -317.06726, + "Y": 19, + "Z": 48.844116 + }, + "TerritoryId": 962, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": -265.8844, + "Y": 18.745457, + "Z": 44.893326 + }, + "TerritoryId": 962, + "InteractionType": "WalkTo", + "SkipConditions": { + "StepIf": { + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + } + } + }, + { + "Position": { + "X": -258.26123, + "Y": 12.376022, + "Z": 53.92458 + }, + "TerritoryId": 962, + "InteractionType": "WalkTo", + "DisableNavmesh": true, + "SkipConditions": { + "StepIf": { + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + } + } + }, + { + "DataId": 1041289, + "Position": { + "X": -265.919, + "Y": 12.623348, + "Z": 102.86096 + }, + "TerritoryId": 962, + "InteractionType": "UseItem", + "ItemId": 2003288, + "GroundTarget": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 1041290, + "Position": { + "X": -291.49316, + "Y": 12.68306, + "Z": 127.45862 + }, + "TerritoryId": 962, + "InteractionType": "UseItem", + "ItemId": 2003288, + "GroundTarget": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 1041291, + "Position": { + "X": -155.77942, + "Y": 11.71745, + "Z": -52.628357 + }, + "TerritoryId": 962, + "InteractionType": "UseItem", + "ItemId": 2003288, + "GroundTarget": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, + { + "DataId": 1041292, + "Position": { + "X": -147.50903, + "Y": 12.490502, + "Z": -87.052734 + }, + "TerritoryId": 962, + "InteractionType": "UseItem", + "ItemId": 2003288, + "GroundTarget": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 16 + ] + }, + { + "DataId": 1041293, + "Position": { + "X": -107.86603, + "Y": 18.024683, + "Z": -71.33594 + }, + "TerritoryId": 962, + "InteractionType": "UseItem", + "ItemId": 2003288, + "GroundTarget": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 8 + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1037139, + "Position": { + "X": -317.06726, + "Y": 19, + "Z": 48.844116 + }, + "TerritoryId": 962, + "InteractionType": "CompleteQuest", + "AethernetShortcut": [ + "[Old Sharlayan] The Baldesion Annex", + "[Old Sharlayan] The Studium" + ] + } + ] + } + ] +} diff --git a/QuestPaths/6.x - Endwalker/Side Quests/Old Sharlayan/4316_For the Love of Pudding.json b/QuestPaths/6.x - Endwalker/Side Quests/Old Sharlayan/4316_For the Love of Pudding.json new file mode 100644 index 00000000..39bdc094 --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Side Quests/Old Sharlayan/4316_For the Love of Pudding.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": 1041301, + "Position": { + "X": -50.94995, + "Y": -14.169327, + "Z": 108.75098 + }, + "TerritoryId": 962, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1041295, + "Position": { + "X": -22.568176, + "Y": -16.246908, + "Z": 91.75244 + }, + "TerritoryId": 962, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1037066, + "Position": { + "X": 65.01868, + "Y": -14.446999, + "Z": 78.26355 + }, + "TerritoryId": 962, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, + { + "DataId": 1040985, + "Position": { + "X": 56.77881, + "Y": 5.1499996, + "Z": -73.86902 + }, + "TerritoryId": 962, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Old Sharlayan] Scholar's Harbor", + "[Old Sharlayan] Aetheryte Plaza" + ], + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 2012610, + "Position": { + "X": -363.6988, + "Y": 20.279175, + "Z": 92.729004 + }, + "TerritoryId": 962, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Old Sharlayan] Aetheryte Plaza", + "[Old Sharlayan] The Studium" + ], + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1041301, + "Position": { + "X": -50.94995, + "Y": -14.169327, + "Z": 108.75098 + }, + "TerritoryId": 962, + "InteractionType": "CompleteQuest", + "AethernetShortcut": [ + "[Old Sharlayan] The Studium", + "[Old Sharlayan] Scholar's Harbor" + ] + } + ] + } + ] +} diff --git a/QuestPaths/6.x - Endwalker/Side Quests/Old Sharlayan/4317_Secret in the Box.json b/QuestPaths/6.x - Endwalker/Side Quests/Old Sharlayan/4317_Secret in the Box.json new file mode 100644 index 00000000..b5dd688a --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Side Quests/Old Sharlayan/4317_Secret in the Box.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": 1041296, + "Position": { + "X": -32.913757, + "Y": 2.400051, + "Z": -8.804504 + }, + "TerritoryId": 962, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2012438, + "Position": { + "X": -33.310486, + "Y": 2.8533936, + "Z": -9.048645 + }, + "StopDistance": 4, + "TerritoryId": 962, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1041297, + "Position": { + "X": -167.55939, + "Y": 6.6576204, + "Z": 129.07605 + }, + "TerritoryId": 962, + "InteractionType": "Emote", + "Emote": "doze", + "AethernetShortcut": [ + "[Old Sharlayan] Aetheryte Plaza", + "[Old Sharlayan] The Baldesion Annex" + ], + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 1041299, + "Position": { + "X": -126.17688, + "Y": 29.890081, + "Z": -201.80054 + }, + "TerritoryId": 962, + "InteractionType": "Say", + "ChatMessage": { + "Key": "TEXT_AKTKZI002_04317_SAYTODO_000_060" + }, + "AethernetShortcut": [ + "[Old Sharlayan] The Baldesion Annex", + "[Old Sharlayan] The Rostra" + ], + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 1037234, + "Position": { + "X": 16.922241, + "Y": 23.499975, + "Z": -136.67511 + }, + "TerritoryId": 962, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ], + "SkipConditions": { + "StepIf": { + "Never": true + } + } + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 2012439, + "Position": { + "X": -32.822205, + "Y": 2.8533936, + "Z": -9.842102 + }, + "TerritoryId": 962, + "InteractionType": "CompleteQuest", + "AethernetShortcut": [ + "[Old Sharlayan] The Rostra", + "[Old Sharlayan] Aetheryte Plaza" + ] + } + ] + } + ] +} diff --git a/QuestPaths/6.x - Endwalker/Side Quests/Old Sharlayan/4319_Sandwiches and Pretzels.json b/QuestPaths/6.x - Endwalker/Side Quests/Old Sharlayan/4319_Sandwiches and Pretzels.json new file mode 100644 index 00000000..5d4c1cac --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Side Quests/Old Sharlayan/4319_Sandwiches and Pretzels.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": [ + { + "Position": { + "X": -38.106888, + "Y": -14.1693125, + "Z": 107.58956 + }, + "TerritoryId": 962, + "InteractionType": "WalkTo" + }, + { + "DataId": 1037077, + "Position": { + "X": -38.07129, + "Y": -14.169313, + "Z": 105.30249 + }, + "TerritoryId": 962, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1041308, + "Position": { + "X": 190.6615, + "Y": 18.89543, + "Z": -91.44739 + }, + "TerritoryId": 962, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Old Sharlayan] Scholar's Harbor", + "[Old Sharlayan] The Leveilleur Estate" + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": -38.106888, + "Y": -14.1693125, + "Z": 107.58956 + }, + "TerritoryId": 962, + "InteractionType": "WalkTo", + "AethernetShortcut": [ + "[Old Sharlayan] The Leveilleur Estate", + "[Old Sharlayan] Scholar's Harbor" + ] + }, + { + "DataId": 1037077, + "Position": { + "X": -38.07129, + "Y": -14.169313, + "Z": 105.30249 + }, + "TerritoryId": 962, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/quest-v1.json b/QuestPaths/quest-v1.json index 5b69b662..7efcab12 100644 --- a/QuestPaths/quest-v1.json +++ b/QuestPaths/quest-v1.json @@ -780,7 +780,8 @@ "clap", "victorypose", "comfort", - "battlestance" + "battlestance", + "doze" ] } } diff --git a/Questionable.Model/Questing/Converter/EmoteConverter.cs b/Questionable.Model/Questing/Converter/EmoteConverter.cs index 27715b54..629a0f4f 100644 --- a/Questionable.Model/Questing/Converter/EmoteConverter.cs +++ b/Questionable.Model/Questing/Converter/EmoteConverter.cs @@ -34,5 +34,6 @@ public sealed class EmoteConverter() : EnumConverter(Values) { EEmote.VictoryPose, "victorypose" }, { EEmote.Comfort, "comfort" }, { EEmote.BattleStance, "battlestance" }, + { EEmote.Doze, "doze" }, }; } diff --git a/Questionable.Model/Questing/EEmote.cs b/Questionable.Model/Questing/EEmote.cs index 2ec72603..424a2ebc 100644 --- a/Questionable.Model/Questing/EEmote.cs +++ b/Questionable.Model/Questing/EEmote.cs @@ -35,4 +35,5 @@ public enum EEmote VictoryPose = 122, Comfort = 9, BattleStance = 121, + Doze = 13, } diff --git a/Questionable/Controller/Steps/Interactions/Interact.cs b/Questionable/Controller/Steps/Interactions/Interact.cs index 8d6b67fa..4988b2ae 100644 --- a/Questionable/Controller/Steps/Interactions/Interact.cs +++ b/Questionable/Controller/Steps/Interactions/Interact.cs @@ -47,7 +47,8 @@ internal static class Interact yield return new WaitAtEnd.WaitDelay(); yield return Interact(step.DataId.Value, quest, step.InteractionType, - step.TargetTerritoryId != null || quest.Id is SatisfactionSupplyNpcId, step.PickUpItemId); + step.TargetTerritoryId != null || quest.Id is SatisfactionSupplyNpcId || + step.SkipConditions is { StepIf.Never: true }, step.PickUpItemId); } internal ITask Interact(uint dataId, Quest? quest, EInteractionType interactionType, @@ -182,7 +183,8 @@ internal static class Interact } else if (dataId is >= 1047901 and <= 1047905 && condition[ConditionFlag.Disguised] && - flag == ConditionFlag.Mounting71 && // why the fuck is this the flag that's used, instead of OccupiedIn[Quest]Event + flag == ConditionFlag + .Mounting71 && // why the fuck is this the flag that's used, instead of OccupiedIn[Quest]Event value) { logger.LogInformation("(A Knight of Alexandria) Interaction was most likely triggered"); From 6ceff7a117743f8afa2db4d32acbee91a41cab0f Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sun, 8 Sep 2024 14:56:12 +0200 Subject: [PATCH 193/450] Adjustments for Kurenai --- .../Kurenai/2706_The Elixir of Life.json | 9 +++++++++ Questionable/Controller/Steps/Shared/MoveTo.cs | 9 +++++++++ 2 files changed, 18 insertions(+) diff --git a/QuestPaths/4.x - Stormblood/Custom Deliveries/Kurenai/2706_The Elixir of Life.json b/QuestPaths/4.x - Stormblood/Custom Deliveries/Kurenai/2706_The Elixir of Life.json index 0976654b..b41673c8 100644 --- a/QuestPaths/4.x - Stormblood/Custom Deliveries/Kurenai/2706_The Elixir of Life.json +++ b/QuestPaths/4.x - Stormblood/Custom Deliveries/Kurenai/2706_The Elixir of Life.json @@ -157,6 +157,15 @@ "InteractionType": "WalkTo", "Mount": true }, + { + "Position": { + "X": 163.43794, + "Y": -133.31677, + "Z": 79.0077 + }, + "TerritoryId": 613, + "InteractionType": "WalkTo" + }, { "Position": { "X": -96.41638, diff --git a/Questionable/Controller/Steps/Shared/MoveTo.cs b/Questionable/Controller/Steps/Shared/MoveTo.cs index 28562a0b..ba76a687 100644 --- a/Questionable/Controller/Steps/Shared/MoveTo.cs +++ b/Questionable/Controller/Steps/Shared/MoveTo.cs @@ -116,6 +116,15 @@ internal static class MoveTo actualDistance = float.MaxValue; } + // Fixes a case where you're initiating the gathering step when standing next to the NPC already + // TODO maybe this should be delayed up until starting movement + if (questId is SatisfactionSupplyNpcId) + { + logger.LogDebug("SatisfactionSupply: Changing distance to max, previous distance: {Distance}", + actualDistance); + actualDistance = float.MaxValue; + } + if (step.Mount == true) yield return mountFactory.Mount(step.TerritoryId, Mount.EMountIf.Always); else if (step.Mount == false) From e357abd50550b8ad3598ac467c17fb7f614fb649 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sun, 8 Sep 2024 15:38:19 +0200 Subject: [PATCH 194/450] Add some Radz-at-Han quests --- .../Radz-at-Han/4269_A Bond Eternal.json | 85 ++++++++ .../Radz-at-Han/4270_A Gift of Flowers.json | 145 +++++++++++++ .../Radz-at-Han/4273_Silks for a Babe.json | 73 +++++++ .../Radz-at-Han/4274_Hungry Hungry Hamsa.json | 202 ++++++++++++++++++ .../4275_Operation Ring Retrieval.json | 159 ++++++++++++++ 5 files changed, 664 insertions(+) create mode 100644 QuestPaths/6.x - Endwalker/Side Quests/Radz-at-Han/4269_A Bond Eternal.json create mode 100644 QuestPaths/6.x - Endwalker/Side Quests/Radz-at-Han/4270_A Gift of Flowers.json create mode 100644 QuestPaths/6.x - Endwalker/Side Quests/Radz-at-Han/4273_Silks for a Babe.json create mode 100644 QuestPaths/6.x - Endwalker/Side Quests/Radz-at-Han/4274_Hungry Hungry Hamsa.json create mode 100644 QuestPaths/6.x - Endwalker/Side Quests/Radz-at-Han/4275_Operation Ring Retrieval.json diff --git a/QuestPaths/6.x - Endwalker/Side Quests/Radz-at-Han/4269_A Bond Eternal.json b/QuestPaths/6.x - Endwalker/Side Quests/Radz-at-Han/4269_A Bond Eternal.json new file mode 100644 index 00000000..ee958f79 --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Side Quests/Radz-at-Han/4269_A Bond Eternal.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": [ + { + "Position": { + "X": -21.53136, + "Y": 1.7999926, + "Z": -182.28082 + }, + "TerritoryId": 963, + "InteractionType": "WalkTo" + }, + { + "DataId": 1037381, + "Position": { + "X": -23.697266, + "Y": 1.7999947, + "Z": -180.07172 + }, + "StopDistance": 4, + "TerritoryId": 963, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1041282, + "Position": { + "X": 67.826294, + "Y": -24.693443, + "Z": -238.08661 + }, + "TerritoryId": 963, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Radz-at-Han] Mehryde's Meyhane", + "[Radz-at-Han] Aetheryte Plaza" + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "TerritoryId": 963, + "InteractionType": "AttuneAethernetShard", + "AethernetShard": "[Radz-at-Han] The High Crucible of Al-Kimiya", + "$": "TODO This happens in Post-EW MSQ only; should maybe move this to when we're around the alchemist area earlier" + }, + { + "Position": { + "X": -21.53136, + "Y": 1.7999926, + "Z": -182.28082 + }, + "TerritoryId": 963, + "InteractionType": "WalkTo", + "AethernetShortcut": [ + "[Radz-at-Han] The High Crucible of Al-Kimiya", + "[Radz-at-Han] Mehryde's Meyhane" + ] + }, + { + "DataId": 1037381, + "Position": { + "X": -23.697266, + "Y": 1.7999947, + "Z": -180.07172 + }, + "StopDistance": 4, + "TerritoryId": 963, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/6.x - Endwalker/Side Quests/Radz-at-Han/4270_A Gift of Flowers.json b/QuestPaths/6.x - Endwalker/Side Quests/Radz-at-Han/4270_A Gift of Flowers.json new file mode 100644 index 00000000..e2e3f108 --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Side Quests/Radz-at-Han/4270_A Gift of Flowers.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": 1037469, + "Position": { + "X": -148.8518, + "Y": 36, + "Z": 38.895264 + }, + "TerritoryId": 963, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1041152, + "Position": { + "X": -100.02289, + "Y": 13.999934, + "Z": 157.97656 + }, + "TerritoryId": 963, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Radz-at-Han] Ruveydah Fibers", + "[Radz-at-Han] Alzadaal's Peace" + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2012395, + "Position": { + "X": -108.20172, + "Y": 14.877502, + "Z": 156.20654 + }, + "TerritoryId": 963, + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_AKTKZF015_04270_Q1_000_000", + "Answer": "TEXT_AKTKZF015_04270_A1_000_002" + } + ], + "CompletionQuestVariablesFlags": [ + null, + 64, + null, + null, + null, + null + ] + }, + { + "DataId": 2012396, + "Position": { + "X": -106.126526, + "Y": 15.0911255, + "Z": 154.49756 + }, + "TerritoryId": 963, + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_AKTKZF015_04270_Q1_000_000", + "Answer": "TEXT_AKTKZF015_04270_A1_000_001" + } + ], + "CompletionQuestVariablesFlags": [ + null, + 32, + null, + null, + null, + null + ] + }, + { + "DataId": 1041152, + "Position": { + "X": -100.02289, + "Y": 13.999934, + "Z": 157.97656 + }, + "StopDistance": 7, + "TerritoryId": 963, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": -38.102844, + "Y": 7.704563, + "Z": 106.27705 + }, + "TerritoryId": 963, + "InteractionType": "WalkTo" + }, + { + "Position": { + "X": 6.6071167, + "Y": -2.02948, + "Z": 110.55151 + }, + "StopDistance": 2, + "TerritoryId": 963, + "InteractionType": "WalkTo", + "DisableNavmesh": true + }, + { + "DataId": 1037469, + "Position": { + "X": -148.8518, + "Y": 36, + "Z": 38.895264 + }, + "TerritoryId": 963, + "InteractionType": "CompleteQuest", + "AethernetShortcut": [ + "[Radz-at-Han] Alzadaal's Peace", + "[Radz-at-Han] Ruveydah Fibers" + ] + } + ] + } + ] +} diff --git a/QuestPaths/6.x - Endwalker/Side Quests/Radz-at-Han/4273_Silks for a Babe.json b/QuestPaths/6.x - Endwalker/Side Quests/Radz-at-Han/4273_Silks for a Babe.json new file mode 100644 index 00000000..9e7a1901 --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Side Quests/Radz-at-Han/4273_Silks for a Babe.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": 1041146, + "Position": { + "X": -155.80994, + "Y": 28, + "Z": 178.97302 + }, + "TerritoryId": 963, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1041147, + "Position": { + "X": -90.25714, + "Y": 24.010002, + "Z": 70.54236 + }, + "TerritoryId": 963, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2012390, + "Position": { + "X": -88.39557, + "Y": 25.223145, + "Z": 66.453 + }, + "TerritoryId": 963, + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_AKTKZF018_04273_Q1_000_000", + "Answer": "TEXT_AKTKZF018_04273_A1_000_001" + } + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1041146, + "Position": { + "X": -155.80994, + "Y": 28, + "Z": 178.97302 + }, + "TerritoryId": 963, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/6.x - Endwalker/Side Quests/Radz-at-Han/4274_Hungry Hungry Hamsa.json b/QuestPaths/6.x - Endwalker/Side Quests/Radz-at-Han/4274_Hungry Hungry Hamsa.json new file mode 100644 index 00000000..098256e3 --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Side Quests/Radz-at-Han/4274_Hungry Hungry Hamsa.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": 1040957, + "Position": { + "X": -191.48547, + "Y": 35.999928, + "Z": 158.31238 + }, + "TerritoryId": 963, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2012393, + "Position": { + "X": -238.88, + "Y": 35.965454, + "Z": 122.78931 + }, + "TerritoryId": 963, + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_AKTKZF019_04274_Q3_000_000", + "Answer": "TEXT_AKTKZF019_04274_A3_000_001" + } + ], + "CompletionQuestVariablesFlags": [ + null, + null, + null, + 16, + null, + null + ] + }, + { + "DataId": 2012393, + "Position": { + "X": -238.88, + "Y": 35.965454, + "Z": 122.78931 + }, + "TerritoryId": 963, + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_AKTKZF019_04274_Q3_000_000", + "Answer": "TEXT_AKTKZF019_04274_A3_000_002" + } + ], + "CompletionQuestVariablesFlags": [ + null, + null, + null, + 128, + null, + null + ] + }, + { + "DataId": 2012392, + "Position": { + "X": -237.10992, + "Y": 35.965454, + "Z": 122.75879 + }, + "TerritoryId": 963, + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_AKTKZF019_04274_Q2_000_000", + "Answer": "TEXT_AKTKZF019_04274_A2_000_002" + } + ], + "CompletionQuestVariablesFlags": [ + null, + null, + null, + 32, + null, + null + ] + }, + { + "DataId": 2012391, + "Position": { + "X": -235.52307, + "Y": 35.965454, + "Z": 122.23999 + }, + "TerritoryId": 963, + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_AKTKZF019_04274_Q1_000_000", + "Answer": "TEXT_AKTKZF019_04274_A1_000_001" + } + ], + "CompletionQuestVariablesFlags": [ + null, + null, + null, + 8, + null, + null + ] + }, + { + "DataId": 2012391, + "Position": { + "X": -235.52307, + "Y": 35.965454, + "Z": 122.23999 + }, + "TerritoryId": 963, + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_AKTKZF019_04274_Q1_000_000", + "Answer": "TEXT_AKTKZF019_04274_A1_000_002" + } + ], + "CompletionQuestVariablesFlags": [ + null, + null, + null, + 64, + null, + null + ] + }, + { + "DataId": 1041149, + "Position": { + "X": -226.64227, + "Y": 36, + "Z": 108.56787 + }, + "TerritoryId": 963, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 1041148, + "Position": { + "X": -223.59052, + "Y": 36, + "Z": 143.328 + }, + "TerritoryId": 963, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1040957, + "Position": { + "X": -191.48547, + "Y": 35.999928, + "Z": 158.31238 + }, + "TerritoryId": 963, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/6.x - Endwalker/Side Quests/Radz-at-Han/4275_Operation Ring Retrieval.json b/QuestPaths/6.x - Endwalker/Side Quests/Radz-at-Han/4275_Operation Ring Retrieval.json new file mode 100644 index 00000000..5c6578bb --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Side Quests/Radz-at-Han/4275_Operation Ring Retrieval.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": 1040884, + "Position": { + "X": -176.13495, + "Y": 36, + "Z": 28.244385 + }, + "TerritoryId": 963, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1041514, + "Position": { + "X": -133.59277, + "Y": 30.999994, + "Z": 0.07623291 + }, + "TerritoryId": 963, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": -104.8164, + "Y": 30.999998, + "Z": 11.496266 + }, + "TerritoryId": 963, + "InteractionType": "WalkTo", + "DelaySecondsAtStart": 2, + "Sprint": false + }, + { + "DataId": 1041515, + "Position": { + "X": -63.309746, + "Y": 31.051857, + "Z": 20.292212 + }, + "StopDistance": 100, + "TerritoryId": 963, + "InteractionType": "WaitForNpcAtPosition", + "Sprint": false + }, + { + "Position": { + "X": -68.410736, + "Y": 30.999716, + "Z": 20.657598 + }, + "TerritoryId": 963, + "InteractionType": "WalkTo", + "Sprint": false + }, + { + "DataId": 1041515, + "Position": { + "X": -16.034935, + "Y": 27.05736, + "Z": 31.972898 + }, + "StopDistance": 100, + "TerritoryId": 963, + "InteractionType": "WaitForNpcAtPosition", + "Sprint": false + }, + { + "Position": { + "X": -27.071863, + "Y": 27.000011, + "Z": 27.903757 + }, + "TerritoryId": 963, + "InteractionType": "WalkTo", + "Sprint": false + }, + { + "DataId": 1041515, + "Position": { + "X": 20.139565, + "Y": 26.999846, + "Z": 34.94524 + }, + "StopDistance": 100, + "TerritoryId": 963, + "InteractionType": "WaitForNpcAtPosition", + "Sprint": false + }, + { + "Position": { + "X": 33.18388, + "Y": 26.999989, + "Z": 41.661907 + }, + "TerritoryId": 963, + "InteractionType": "WalkTo", + "DelaySecondsAtStart": 2, + "Sprint": false + }, + { + "DataId": 1041515, + "Position": { + "X": 56.11211, + "Y": 26.999992, + "Z": 47.213455 + }, + "StopDistance": 100, + "TerritoryId": 963, + "InteractionType": "WaitForNpcAtPosition", + "Sprint": false + }, + { + "DataId": 1041514, + "Position": { + "X": 70.07179, + "Y": 26.99999, + "Z": 61.356277 + }, + "StopDistance": 2, + "TerritoryId": 963, + "InteractionType": "WalkTo", + "DelaySecondsAtStart": 8, + "Sprint": false + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1040885, + "Position": { + "X": -173.05261, + "Y": 36, + "Z": 25.589355 + }, + "TerritoryId": 963, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} From df5f866fe80eaa6f63249651a0cc43e1a9a37af6 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sun, 8 Sep 2024 17:47:55 +0200 Subject: [PATCH 195/450] Add PCT job quests --- .../PCT/4855_Mind over Manor.json | 3 +- .../PCT/4856_Perspectives in Pursuit.json | 120 ++++++++++++ .../PCT/4857_The Crate Beyond.json | 185 ++++++++++++++++++ .../Class Quests/PCT/4858_Beruru's Clues.json | 143 ++++++++++++++ .../PCT/4859_Somewhere Only She Knows.json | 95 +++++++++ 5 files changed, 545 insertions(+), 1 deletion(-) create mode 100644 QuestPaths/7.x - Dawntrail/Class Quests/PCT/4856_Perspectives in Pursuit.json create mode 100644 QuestPaths/7.x - Dawntrail/Class Quests/PCT/4857_The Crate Beyond.json create mode 100644 QuestPaths/7.x - Dawntrail/Class Quests/PCT/4858_Beruru's Clues.json create mode 100644 QuestPaths/7.x - Dawntrail/Class Quests/PCT/4859_Somewhere Only She Knows.json diff --git a/QuestPaths/7.x - Dawntrail/Class Quests/PCT/4855_Mind over Manor.json b/QuestPaths/7.x - Dawntrail/Class Quests/PCT/4855_Mind over Manor.json index abc4342a..f135075a 100644 --- a/QuestPaths/7.x - Dawntrail/Class Quests/PCT/4855_Mind over Manor.json +++ b/QuestPaths/7.x - Dawntrail/Class Quests/PCT/4855_Mind over Manor.json @@ -111,7 +111,8 @@ }, "StopDistance": 5, "TerritoryId": 133, - "InteractionType": "CompleteQuest" + "InteractionType": "CompleteQuest", + "NextQuestId": 4856 } ] } diff --git a/QuestPaths/7.x - Dawntrail/Class Quests/PCT/4856_Perspectives in Pursuit.json b/QuestPaths/7.x - Dawntrail/Class Quests/PCT/4856_Perspectives in Pursuit.json new file mode 100644 index 00000000..15194589 --- /dev/null +++ b/QuestPaths/7.x - Dawntrail/Class Quests/PCT/4856_Perspectives in Pursuit.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": 1049796, + "Position": { + "X": 27.695068, + "Y": 16.16987, + "Z": -339.13184 + }, + "TerritoryId": 133, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Lancers' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 133 + ] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1049797, + "Position": { + "X": 214.64856, + "Y": 301.99997, + "Z": -254.26111 + }, + "TerritoryId": 155, + "InteractionType": "Interact", + "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", + "Mount": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1049798, + "Position": { + "X": 229.84656, + "Y": 302.04782, + "Z": -289.2348 + }, + "TerritoryId": 155, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2013740, + "Position": { + "X": 301.13672, + "Y": 358.99735, + "Z": -575.8297 + }, + "TerritoryId": 155, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "Position": { + "X": 403.64606, + "Y": 346.8219, + "Z": -669.97644 + }, + "StopDistance": 0.5, + "TerritoryId": 155, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [ + 17628 + ], + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1049800, + "Position": { + "X": 215.77783, + "Y": 302, + "Z": -253.86438 + }, + "TerritoryId": 155, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", + "Mount": true, + "NextQuestId": 4857 + } + ] + } + ] +} diff --git a/QuestPaths/7.x - Dawntrail/Class Quests/PCT/4857_The Crate Beyond.json b/QuestPaths/7.x - Dawntrail/Class Quests/PCT/4857_The Crate Beyond.json new file mode 100644 index 00000000..5f93e550 --- /dev/null +++ b/QuestPaths/7.x - Dawntrail/Class Quests/PCT/4857_The Crate Beyond.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": 1049797, + "Position": { + "X": 214.64856, + "Y": 301.99997, + "Z": -254.26111 + }, + "TerritoryId": 155, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + }, + "Mount": true + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2013741, + "Position": { + "X": 107.28613, + "Y": 11.9782715, + "Z": -76.676636 + }, + "TerritoryId": 628, + "InteractionType": "UseItem", + "ItemId": 2003500, + "AetheryteShortcut": "Kugane", + "AethernetShortcut": ["[Kugane] Aetheryte Plaza", "[Kugane] Sekiseigumi Barracks"] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1049801, + "Position": { + "X": 445.9143, + "Y": 29.750532, + "Z": 770.8705 + }, + "TerritoryId": 613, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Kugane] Sekiseigumi Barracks", + "[Kugane] The Ruby Price" + ], + "Fly": true, + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_KINGBB221_04857_Q2_000_000", + "Answer": "TEXT_KINGBB221_04857_A2_000_001" + } + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2013742, + "Position": { + "X": 411.79517, + "Y": 16.250854, + "Z": 832.4863 + }, + "TerritoryId": 613, + "InteractionType": "Combat", + "EnemySpawnType": "AfterItemUse", + "ItemId": 2003559, + "ComplexCombatData": [ + { + "DataId": 17629 + } + ], + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 2013743, + "Position": { + "X": 338.4298, + "Y": 0.6866455, + "Z": 793.4232 + }, + "TerritoryId": 613, + "InteractionType": "Combat", + "EnemySpawnType": "AfterItemUse", + "ItemId": 2003559, + "ComplexCombatData": [ + { + "DataId": 17629 + } + ], + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 2013744, + "Position": { + "X": 415.61, + "Y": 0.7171631, + "Z": 730.4341 + }, + "TerritoryId": 613, + "InteractionType": "Combat", + "EnemySpawnType": "AfterItemUse", + "ItemId": 2003559, + "ComplexCombatData": [ + { + "DataId": 17629 + } + ], + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1049802, + "Position": { + "X": 444.6936, + "Y": 29.73244, + "Z": 770.9315 + }, + "TerritoryId": 613, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1049803, + "Position": { + "X": 105.85181, + "Y": 12.000005, + "Z": -75.70001 + }, + "TerritoryId": 628, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Kugane", + "AethernetShortcut": [ + "[Kugane] Aetheryte Plaza", + "[Kugane] Sekiseigumi Barracks" + ], + "NextQuestId": 4858 + } + ] + } + ] +} diff --git a/QuestPaths/7.x - Dawntrail/Class Quests/PCT/4858_Beruru's Clues.json b/QuestPaths/7.x - Dawntrail/Class Quests/PCT/4858_Beruru's Clues.json new file mode 100644 index 00000000..83262192 --- /dev/null +++ b/QuestPaths/7.x - Dawntrail/Class Quests/PCT/4858_Beruru's Clues.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": 1049804, + "Position": { + "X": 105.69922, + "Y": 12.000006, + "Z": -77.37854 + }, + "TerritoryId": 628, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Kugane", + "AethernetShortcut": [ + "[Kugane] Aetheryte Plaza", + "[Kugane] Sekiseigumi Barracks" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2013747, + "Position": { + "X": -57.63336, + "Y": 3.9520264, + "Z": -142.22937 + }, + "TerritoryId": 130, + "InteractionType": "UseItem", + "ItemId": 2003503, + "AetheryteShortcut": "Ul'dah" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1049805, + "Position": { + "X": -152.14777, + "Y": 14.005, + "Z": 45.303955 + }, + "TerritoryId": 130, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Thaumaturges' Guild" + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "Position": { + "X": -286.10168, + "Y": -32, + "Z": 92.85731 + }, + "StopDistance": 0.5, + "TerritoryId": 141, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [ + 17632, + 17633, + 17634, + 17635, + 17636, + 17637, + 17638, + 17639, + 17640 + ], + "AethernetShortcut": [ + "[Ul'dah] Thaumaturges' Guild", + "[Ul'dah] Gate of Nald (Central Thanalan)" + ], + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1049806, + "Position": { + "X": -152.60547, + "Y": 14.004998, + "Z": 46.73828 + }, + "TerritoryId": 130, + "InteractionType": "Interact", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Thaumaturges' Guild" + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1049805, + "Position": { + "X": -152.14777, + "Y": 14.005, + "Z": 45.303955 + }, + "StopDistance": 5, + "TerritoryId": 130, + "InteractionType": "CompleteQuest", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_KINGBB231_04858_Q3_000_000", + "Answer": "TEXT_KINGBB231_04858_A3_000_002" + } + ], + "NextQuestId": 4859 + } + ] + } + ] +} diff --git a/QuestPaths/7.x - Dawntrail/Class Quests/PCT/4859_Somewhere Only She Knows.json b/QuestPaths/7.x - Dawntrail/Class Quests/PCT/4859_Somewhere Only She Knows.json new file mode 100644 index 00000000..47390e10 --- /dev/null +++ b/QuestPaths/7.x - Dawntrail/Class Quests/PCT/4859_Somewhere Only She Knows.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": 1049805, + "Position": { + "X": -152.14777, + "Y": 14.005, + "Z": 45.303955 + }, + "StopDistance": 5, + "TerritoryId": 130, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Thaumaturges' Guild" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": 15.193803, + "Y": 2.4684885, + "Z": -133.5494 + }, + "TerritoryId": 148, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Central Shroud - Bentbranch Meadows" + }, + { + "DataId": 1049807, + "Position": { + "X": 14.419739, + "Y": 2.2207584, + "Z": -132.25 + }, + "TerritoryId": 148, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1049807, + "Position": { + "X": 14.419739, + "Y": 2.2207584, + "Z": -132.25 + }, + "TerritoryId": 148, + "InteractionType": "SinglePlayerDuty", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_KINGBB241_04859_Q2_000_000", + "Answer": "TEXT_KINGBB241_04859_A2_000_001" + } + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1049808, + "Position": { + "X": 17.013733, + "Y": 2.0418286, + "Z": -129.83911 + }, + "StopDistance": 7, + "TerritoryId": 148, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} From f54b2fb914fbf91094b9fde59dd0c95d28c13985 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sun, 8 Sep 2024 17:59:58 +0200 Subject: [PATCH 196/450] Add Warring Triad/HW ex unlock quests --- .../Trial Quests/2114_Gods of Eld.json | 73 +++++++ .../2115_The Diabolical Bismarck.json | 187 +++++++++++++++++ .../2116_Thok Around the Clock.json | 190 ++++++++++++++++++ .../2230_When the Bough Wakes.json | 129 ++++++++++++ .../2281_A Fiendish Likeness.json | 105 ++++++++++ .../Trial Quests/2288_The Fate of Stars.json | 152 ++++++++++++++ .../Trial Quests/2332_Balance unto All.json | 129 ++++++++++++ .../2333_A Deific Simulacrum.json | 105 ++++++++++ .../2394_The Last Pillar to Fall.json | 161 +++++++++++++++ .../2395_A Demonic Duplicate.json | 105 ++++++++++ 10 files changed, 1336 insertions(+) create mode 100644 QuestPaths/3.x - Heavensward/Trial Quests/2114_Gods of Eld.json create mode 100644 QuestPaths/3.x - Heavensward/Trial Quests/2115_The Diabolical Bismarck.json create mode 100644 QuestPaths/3.x - Heavensward/Trial Quests/2116_Thok Around the Clock.json create mode 100644 QuestPaths/3.x - Heavensward/Trial Quests/2230_When the Bough Wakes.json create mode 100644 QuestPaths/3.x - Heavensward/Trial Quests/2281_A Fiendish Likeness.json create mode 100644 QuestPaths/3.x - Heavensward/Trial Quests/2288_The Fate of Stars.json create mode 100644 QuestPaths/3.x - Heavensward/Trial Quests/2332_Balance unto All.json create mode 100644 QuestPaths/3.x - Heavensward/Trial Quests/2333_A Deific Simulacrum.json create mode 100644 QuestPaths/3.x - Heavensward/Trial Quests/2394_The Last Pillar to Fall.json create mode 100644 QuestPaths/3.x - Heavensward/Trial Quests/2395_A Demonic Duplicate.json diff --git a/QuestPaths/3.x - Heavensward/Trial Quests/2114_Gods of Eld.json b/QuestPaths/3.x - Heavensward/Trial Quests/2114_Gods of Eld.json new file mode 100644 index 00000000..41a2b3c2 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Trial Quests/2114_Gods of Eld.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": 1012217, + "Position": { + "X": 25.925049, + "Y": 15.8650675, + "Z": 19.394226 + }, + "TerritoryId": 419, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] The Last Vigil" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 419 + ] + } + } + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "TerritoryId": 156, + "DataId": 2002881, + "Position": { + "X": 21.133728, + "Y": 22.323914, + "Z": -631.281 + }, + "InteractionType": "Interact", + "TargetTerritoryId": 351, + "AetheryteShortcut": "Mor Dhona" + }, + { + "DataId": 2002878, + "Position": { + "X": -0.015319824, + "Y": -1.0223389, + "Z": -26.779602 + }, + "TerritoryId": 351, + "InteractionType": "Interact", + "TargetTerritoryId": 351 + }, + { + "DataId": 2006287, + "Position": { + "X": 0.015197754, + "Y": -1.9990234, + "Z": -40.909485 + }, + "TerritoryId": 351, + "InteractionType": "CompleteQuest", + "NextQuestId": 2230 + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Trial Quests/2115_The Diabolical Bismarck.json b/QuestPaths/3.x - Heavensward/Trial Quests/2115_The Diabolical Bismarck.json new file mode 100644 index 00000000..594395aa --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Trial Quests/2115_The Diabolical Bismarck.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": [ + { + "TerritoryId": 156, + "DataId": 2002881, + "Position": { + "X": 21.133728, + "Y": 22.323914, + "Z": -631.281 + }, + "InteractionType": "Interact", + "TargetTerritoryId": 351, + "AetheryteShortcut": "Mor Dhona", + "SkipConditions": { + "StepIf": { + "InTerritory": [ + 351 + ] + }, + "AetheryteShortcutIf": { + "InTerritory": [ + 351 + ] + } + } + }, + { + "DataId": 2002878, + "Position": { + "X": -0.015319824, + "Y": -1.0223389, + "Z": -26.779602 + }, + "TerritoryId": 351, + "InteractionType": "Interact", + "TargetTerritoryId": 351, + "SkipConditions": { + "StepIf": { + "ExtraCondition": "RisingStonesSolar" + } + } + }, + { + "DataId": 1014565, + "Position": { + "X": 0.44250488, + "Y": -1.9957249, + "Z": -43.22882 + }, + "StopDistance": 7, + "TerritoryId": 351, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "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": 2, + "Steps": [ + { + "DataId": 1014623, + "Position": { + "X": -808.8655, + "Y": -57.761612, + "Z": 159.5636 + }, + "TerritoryId": 401, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "Position": { + "X": 367.30618, + "Y": 141.31621, + "Z": 258.9364 + }, + "TerritoryId": 401, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 2006288, + "Position": { + "X": 369.55823, + "Y": 143.17542, + "Z": 260.70032 + }, + "StopDistance": 4, + "TerritoryId": 401, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "TerritoryId": 401, + "InteractionType": "Duty", + "ContentFinderConditionId": 89 + } + ] + }, + { + "Sequence": 5, + "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": [ + { + "TerritoryId": 156, + "DataId": 2002881, + "Position": { + "X": 21.133728, + "Y": 22.323914, + "Z": -631.281 + }, + "InteractionType": "Interact", + "TargetTerritoryId": 351, + "AetheryteShortcut": "Mor Dhona" + }, + { + "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 + }, + "StopDistance": 7, + "TerritoryId": 351, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Trial Quests/2116_Thok Around the Clock.json b/QuestPaths/3.x - Heavensward/Trial Quests/2116_Thok Around the Clock.json new file mode 100644 index 00000000..6caec65e --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Trial Quests/2116_Thok Around the Clock.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": [ + { + "TerritoryId": 156, + "DataId": 2002881, + "Position": { + "X": 21.133728, + "Y": 22.323914, + "Z": -631.281 + }, + "InteractionType": "Interact", + "TargetTerritoryId": 351, + "AetheryteShortcut": "Mor Dhona", + "SkipConditions": { + "StepIf": { + "InTerritory": [ + 351 + ] + }, + "AetheryteShortcutIf": { + "InTerritory": [ + 351 + ] + } + } + }, + { + "DataId": 2002878, + "Position": { + "X": -0.015319824, + "Y": -1.0223389, + "Z": -26.779602 + }, + "TerritoryId": 351, + "InteractionType": "Interact", + "TargetTerritoryId": 351, + "SkipConditions": { + "StepIf": { + "ExtraCondition": "RisingStonesSolar" + } + } + }, + { + "DataId": 1014565, + "Position": { + "X": 0.44250488, + "Y": -1.9957249, + "Z": -43.22882 + }, + "StopDistance": 7, + "TerritoryId": 351, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": 73.307335, + "Y": -49.128403, + "Z": -142.59073 + }, + "TerritoryId": 398, + "InteractionType": "WalkTo", + "AetheryteShortcut": "The Dravanian Forelands - Tailfeather", + "Fly": true + }, + { + "DataId": 1011928, + "Position": { + "X": 73.19751, + "Y": -49.19563, + "Z": -139.05548 + }, + "StopDistance": 4, + "TerritoryId": 398, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": 258.42062, + "Y": -112.936935, + "Z": 924.15704 + }, + "TerritoryId": 398, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 2006289, + "Position": { + "X": 257.77063, + "Y": -111.92493, + "Z": 925.3832 + }, + "TerritoryId": 398, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "TerritoryId": 401, + "InteractionType": "Duty", + "ContentFinderConditionId": 87 + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "Position": { + "X": 73.307335, + "Y": -49.128403, + "Z": -142.59073 + }, + "TerritoryId": 398, + "InteractionType": "WalkTo", + "AetheryteShortcut": "The Dravanian Forelands - Tailfeather", + "Fly": true + }, + { + "DataId": 1011928, + "Position": { + "X": 73.19751, + "Y": -49.19563, + "Z": -139.05548 + }, + "StopDistance": 4, + "TerritoryId": 398, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "TerritoryId": 156, + "DataId": 2002881, + "Position": { + "X": 21.133728, + "Y": 22.323914, + "Z": -631.281 + }, + "InteractionType": "Interact", + "TargetTerritoryId": 351, + "AetheryteShortcut": "Mor Dhona" + }, + { + "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 + }, + "StopDistance": 7, + "TerritoryId": 351, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Trial Quests/2230_When the Bough Wakes.json b/QuestPaths/3.x - Heavensward/Trial Quests/2230_When the Bough Wakes.json new file mode 100644 index 00000000..6934095a --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Trial Quests/2230_When the Bough Wakes.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": [ + { + "TerritoryId": 156, + "DataId": 2002881, + "Position": { + "X": 21.133728, + "Y": 22.323914, + "Z": -631.281 + }, + "InteractionType": "Interact", + "TargetTerritoryId": 351, + "AetheryteShortcut": "Mor Dhona", + "SkipConditions": { + "StepIf": { + "InTerritory": [ + 351 + ] + }, + "AetheryteShortcutIf": { + "InTerritory": [ + 351 + ] + } + } + }, + { + "DataId": 2002878, + "Position": { + "X": -0.015319824, + "Y": -1.0223389, + "Z": -26.779602 + }, + "TerritoryId": 351, + "InteractionType": "Interact", + "TargetTerritoryId": 351, + "SkipConditions": { + "StepIf": { + "ExtraCondition": "RisingStonesSolar" + } + } + }, + { + "DataId": 1014565, + "Position": { + "X": 0.44250488, + "Y": -1.9957249, + "Z": -43.22882 + }, + "StopDistance": 7, + "TerritoryId": 351, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1016631, + "Position": { + "X": 209.12476, + "Y": 256.37268, + "Z": -4.3793945 + }, + "TerritoryId": 402, + "InteractionType": "Interact", + "AetheryteShortcut": "Azys Lla - Helix", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "TerritoryId": 401, + "InteractionType": "Duty", + "ContentFinderConditionId": 134 + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "TerritoryId": 156, + "DataId": 2002881, + "Position": { + "X": 21.133728, + "Y": 22.323914, + "Z": -631.281 + }, + "InteractionType": "Interact", + "TargetTerritoryId": 351, + "AetheryteShortcut": "Mor Dhona" + }, + { + "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 + }, + "StopDistance": 7, + "TerritoryId": 351, + "InteractionType": "CompleteQuest", + "NextQuestId": 2288 + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Trial Quests/2281_A Fiendish Likeness.json b/QuestPaths/3.x - Heavensward/Trial Quests/2281_A Fiendish Likeness.json new file mode 100644 index 00000000..4f372b27 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Trial Quests/2281_A Fiendish Likeness.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": [ + { + "TerritoryId": 156, + "DataId": 2002881, + "Position": { + "X": 21.133728, + "Y": 22.323914, + "Z": -631.281 + }, + "InteractionType": "Interact", + "TargetTerritoryId": 351, + "AetheryteShortcut": "Mor Dhona", + "SkipConditions": { + "StepIf": { + "InTerritory": [ + 351 + ] + }, + "AetheryteShortcutIf": { + "InTerritory": [ + 351 + ] + } + } + }, + { + "DataId": 2002878, + "Position": { + "X": -0.015319824, + "Y": -1.0223389, + "Z": -26.779602 + }, + "TerritoryId": 351, + "InteractionType": "Interact", + "TargetTerritoryId": 351, + "SkipConditions": { + "StepIf": { + "ExtraCondition": "RisingStonesSolar" + } + } + }, + { + "DataId": 1014565, + "Position": { + "X": 0.44250488, + "Y": -1.9957249, + "Z": -43.22882 + }, + "StopDistance": 7, + "TerritoryId": 351, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": 212.05304, + "Y": 256.37265, + "Z": 0.08028713 + }, + "TerritoryId": 402, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Azys Lla - Helix", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + }, + "StepIf": { + "NearPosition": { + "Position": { + "X": 152.26978, + "Y": 245.1, + "Z": -6.2714844 + }, + "TerritoryId": 402, + "MaximumDistance": 10 + } + } + } + }, + { + "DataId": 1016633, + "Position": { + "X": 152.26978, + "Y": 245.1, + "Z": -6.2714844 + }, + "TerritoryId": 402, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Trial Quests/2288_The Fate of Stars.json b/QuestPaths/3.x - Heavensward/Trial Quests/2288_The Fate of Stars.json new file mode 100644 index 00000000..604727f4 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Trial Quests/2288_The Fate of Stars.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": [ + { + "TerritoryId": 156, + "DataId": 2002881, + "Position": { + "X": 21.133728, + "Y": 22.323914, + "Z": -631.281 + }, + "InteractionType": "Interact", + "TargetTerritoryId": 351, + "AetheryteShortcut": "Mor Dhona", + "SkipConditions": { + "StepIf": { + "InTerritory": [ + 351 + ] + }, + "AetheryteShortcutIf": { + "InTerritory": [ + 351 + ] + } + } + }, + { + "DataId": 2002878, + "Position": { + "X": -0.015319824, + "Y": -1.0223389, + "Z": -26.779602 + }, + "TerritoryId": 351, + "InteractionType": "Interact", + "TargetTerritoryId": 351, + "SkipConditions": { + "StepIf": { + "ExtraCondition": "RisingStonesSolar" + } + } + }, + { + "DataId": 1014565, + "Position": { + "X": 0.44250488, + "Y": -1.9957249, + "Z": -43.22882 + }, + "StopDistance": 7, + "TerritoryId": 351, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1017115, + "Position": { + "X": -59.67804, + "Y": 271.23285, + "Z": 4.0131226 + }, + "TerritoryId": 402, + "InteractionType": "Interact", + "AetheryteShortcut": "Azys Lla - Helix", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2005564, + "Position": { + "X": -58.121643, + "Y": 271.1986, + "Z": -4.1047363 + }, + "TerritoryId": 402, + "InteractionType": "SinglePlayerDuty" + } + ] + }, + { + "Sequence": 3 + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1017167, + "Position": { + "X": -66.91089, + "Y": 271.23285, + "Z": 4.0131226 + }, + "TerritoryId": 402, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "TerritoryId": 156, + "DataId": 2002881, + "Position": { + "X": 21.133728, + "Y": 22.323914, + "Z": -631.281 + }, + "InteractionType": "Interact", + "TargetTerritoryId": 351, + "AetheryteShortcut": "Mor Dhona" + }, + { + "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 + }, + "StopDistance": 7, + "TerritoryId": 351, + "InteractionType": "CompleteQuest", + "NextQuestId": 2332 + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Trial Quests/2332_Balance unto All.json b/QuestPaths/3.x - Heavensward/Trial Quests/2332_Balance unto All.json new file mode 100644 index 00000000..ad3d286f --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Trial Quests/2332_Balance unto All.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": [ + { + "TerritoryId": 156, + "DataId": 2002881, + "Position": { + "X": 21.133728, + "Y": 22.323914, + "Z": -631.281 + }, + "InteractionType": "Interact", + "TargetTerritoryId": 351, + "AetheryteShortcut": "Mor Dhona", + "SkipConditions": { + "StepIf": { + "InTerritory": [ + 351 + ] + }, + "AetheryteShortcutIf": { + "InTerritory": [ + 351 + ] + } + } + }, + { + "DataId": 2002878, + "Position": { + "X": -0.015319824, + "Y": -1.0223389, + "Z": -26.779602 + }, + "TerritoryId": 351, + "InteractionType": "Interact", + "TargetTerritoryId": 351, + "SkipConditions": { + "StepIf": { + "ExtraCondition": "RisingStonesSolar" + } + } + }, + { + "DataId": 1014565, + "Position": { + "X": 0.44250488, + "Y": -1.9957249, + "Z": -43.22882 + }, + "StopDistance": 7, + "TerritoryId": 351, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1017674, + "Position": { + "X": 209.97937, + "Y": 256.37262, + "Z": 5.9052124 + }, + "TerritoryId": 402, + "InteractionType": "Interact", + "AetheryteShortcut": "Azys Lla - Helix", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "TerritoryId": 402, + "InteractionType": "Duty", + "ContentFinderConditionId": 183 + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "TerritoryId": 156, + "DataId": 2002881, + "Position": { + "X": 21.133728, + "Y": 22.323914, + "Z": -631.281 + }, + "InteractionType": "Interact", + "TargetTerritoryId": 351, + "AetheryteShortcut": "Mor Dhona" + }, + { + "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 + }, + "StopDistance": 7, + "TerritoryId": 351, + "InteractionType": "CompleteQuest", + "NextQuestId": 2394 + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Trial Quests/2333_A Deific Simulacrum.json b/QuestPaths/3.x - Heavensward/Trial Quests/2333_A Deific Simulacrum.json new file mode 100644 index 00000000..4f372b27 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Trial Quests/2333_A Deific Simulacrum.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": [ + { + "TerritoryId": 156, + "DataId": 2002881, + "Position": { + "X": 21.133728, + "Y": 22.323914, + "Z": -631.281 + }, + "InteractionType": "Interact", + "TargetTerritoryId": 351, + "AetheryteShortcut": "Mor Dhona", + "SkipConditions": { + "StepIf": { + "InTerritory": [ + 351 + ] + }, + "AetheryteShortcutIf": { + "InTerritory": [ + 351 + ] + } + } + }, + { + "DataId": 2002878, + "Position": { + "X": -0.015319824, + "Y": -1.0223389, + "Z": -26.779602 + }, + "TerritoryId": 351, + "InteractionType": "Interact", + "TargetTerritoryId": 351, + "SkipConditions": { + "StepIf": { + "ExtraCondition": "RisingStonesSolar" + } + } + }, + { + "DataId": 1014565, + "Position": { + "X": 0.44250488, + "Y": -1.9957249, + "Z": -43.22882 + }, + "StopDistance": 7, + "TerritoryId": 351, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": 212.05304, + "Y": 256.37265, + "Z": 0.08028713 + }, + "TerritoryId": 402, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Azys Lla - Helix", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + }, + "StepIf": { + "NearPosition": { + "Position": { + "X": 152.26978, + "Y": 245.1, + "Z": -6.2714844 + }, + "TerritoryId": 402, + "MaximumDistance": 10 + } + } + } + }, + { + "DataId": 1016633, + "Position": { + "X": 152.26978, + "Y": 245.1, + "Z": -6.2714844 + }, + "TerritoryId": 402, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Trial Quests/2394_The Last Pillar to Fall.json b/QuestPaths/3.x - Heavensward/Trial Quests/2394_The Last Pillar to Fall.json new file mode 100644 index 00000000..4642d07a --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Trial Quests/2394_The Last Pillar to 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": [ + { + "TerritoryId": 156, + "DataId": 2002881, + "Position": { + "X": 21.133728, + "Y": 22.323914, + "Z": -631.281 + }, + "InteractionType": "Interact", + "TargetTerritoryId": 351, + "AetheryteShortcut": "Mor Dhona", + "SkipConditions": { + "StepIf": { + "InTerritory": [ + 351 + ] + }, + "AetheryteShortcutIf": { + "InTerritory": [ + 351 + ] + } + } + }, + { + "DataId": 2002878, + "Position": { + "X": -0.015319824, + "Y": -1.0223389, + "Z": -26.779602 + }, + "TerritoryId": 351, + "InteractionType": "Interact", + "TargetTerritoryId": 351, + "SkipConditions": { + "StepIf": { + "ExtraCondition": "RisingStonesSolar" + } + } + }, + { + "DataId": 1014565, + "Position": { + "X": 0.44250488, + "Y": -1.9957249, + "Z": -43.22882 + }, + "StopDistance": 7, + "TerritoryId": 351, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2007560, + "Position": { + "X": 216.11353, + "Y": 256.36682, + "Z": 10.757568 + }, + "TerritoryId": 402, + "InteractionType": "Interact", + "AetheryteShortcut": "Azys Lla - Helix", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1017675, + "Position": { + "X": 148.11926, + "Y": 245.1, + "Z": -4.1657104 + }, + "TerritoryId": 402, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3 + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1018511, + "Position": { + "X": -1.449646, + "Y": 3.144145E-06, + "Z": 5.2643433 + }, + "TerritoryId": 507, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "TerritoryId": 507, + "InteractionType": "Duty", + "ContentFinderConditionId": 223 + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "TerritoryId": 156, + "DataId": 2002881, + "Position": { + "X": 21.133728, + "Y": 22.323914, + "Z": -631.281 + }, + "InteractionType": "Interact", + "TargetTerritoryId": 351, + "AetheryteShortcut": "Mor Dhona" + }, + { + "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 + }, + "StopDistance": 7, + "TerritoryId": 351, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Trial Quests/2395_A Demonic Duplicate.json b/QuestPaths/3.x - Heavensward/Trial Quests/2395_A Demonic Duplicate.json new file mode 100644 index 00000000..4f372b27 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Trial Quests/2395_A Demonic Duplicate.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": [ + { + "TerritoryId": 156, + "DataId": 2002881, + "Position": { + "X": 21.133728, + "Y": 22.323914, + "Z": -631.281 + }, + "InteractionType": "Interact", + "TargetTerritoryId": 351, + "AetheryteShortcut": "Mor Dhona", + "SkipConditions": { + "StepIf": { + "InTerritory": [ + 351 + ] + }, + "AetheryteShortcutIf": { + "InTerritory": [ + 351 + ] + } + } + }, + { + "DataId": 2002878, + "Position": { + "X": -0.015319824, + "Y": -1.0223389, + "Z": -26.779602 + }, + "TerritoryId": 351, + "InteractionType": "Interact", + "TargetTerritoryId": 351, + "SkipConditions": { + "StepIf": { + "ExtraCondition": "RisingStonesSolar" + } + } + }, + { + "DataId": 1014565, + "Position": { + "X": 0.44250488, + "Y": -1.9957249, + "Z": -43.22882 + }, + "StopDistance": 7, + "TerritoryId": 351, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": 212.05304, + "Y": 256.37265, + "Z": 0.08028713 + }, + "TerritoryId": 402, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Azys Lla - Helix", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + }, + "StepIf": { + "NearPosition": { + "Position": { + "X": 152.26978, + "Y": 245.1, + "Z": -6.2714844 + }, + "TerritoryId": 402, + "MaximumDistance": 10 + } + } + } + }, + { + "DataId": 1016633, + "Position": { + "X": 152.26978, + "Y": 245.1, + "Z": -6.2714844 + }, + "TerritoryId": 402, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} From b95774a2831bd26fe80b23ea9dbc8b533ad4404f Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sun, 8 Sep 2024 18:35:01 +0200 Subject: [PATCH 197/450] Update Endwalker paths + include aether current quests in MSQ --- .../4232_Children Are Our Future.json | 3 +- .../Labyrinthos/4320_Gleaners Wish.json | 9 +- .../4484_The Lad in Labyrinthos.json | 9 +- .../Thavnair/4489_Steppe Child.json | 4 +- .../Ultima Thule/4342_Ending as One.json | 30 ++++- .../4346_A Most Stimulating Discussion.json | 58 ++++++++- .../Ultima Thule/4354_Combat Evolved.json | 12 +- .../Ultima Thule/4355_Learn to Love.json | 113 ++++++++++++++++++ .../4371_House of Divinities.json | 19 +++ .../4374_A Boys Errand.json | 11 ++ .../B-Garlemald/4384_Tracks in the Snow.json | 3 +- .../4385_How the Mighty Are Fallen.json | 10 +- .../MSQ/B-Garlemald/4387_A Way Forward.json | 1 + .../B-Garlemald/4393_Strange Bedfellows.json | 33 ++++- .../B-Garlemald/4394_In from the Cold.json | 46 ++++++- .../B-Garlemald/4396_A Trip to the Moon.json | 2 +- .../MSQ/B-Garlemald/4397_Sea of Sorrow.json | 3 +- .../4402_A Taste of the Moon.json | 3 +- .../C-MareLamentorum/4403_Styled a Hero.json | 1 + .../4404_Alls Vale That Endsvale.json | 34 ++++-- .../4406_Setting Things Straight.json | 6 +- .../4407_Heart of the Matter.json | 37 +++++- .../D-Thavnair2/4416_Simple Pleasures.json | 23 +++- .../MSQ/D-Thavnair2/4417_Under His Wing.json | 8 +- .../MSQ/E-Elpis/4426_Aether to Aether.json | 11 ++ .../E-Elpis/4428_Verdict and Execution.json | 11 ++ .../4433_A Flower upon Your Return.json | 49 +++++++- .../MSQ/F-Labyrinthos2/4445_Sage Council.json | 11 ++ .../F-Labyrinthos2/4446_Hither and Yarns.json | 49 ++++++++ .../4448_Bonds of Adamantite.json | 3 +- .../G-UltimaThule/4459_Victory x Lost.json | 22 ++++ .../MSQ/G-UltimaThule/4460_x.json | 31 ++++- ... Alone.json => 4463_You're Not Alone.json} | 3 +- .../MSQ/G-UltimaThule/4464_Endwalker.json | 3 +- 34 files changed, 614 insertions(+), 57 deletions(-) create mode 100644 QuestPaths/6.x - Endwalker/Aether Currents/Ultima Thule/4355_Learn to Love.json rename QuestPaths/6.x - Endwalker/MSQ/G-UltimaThule/{4463_Youre Not Alone.json => 4463_You're Not Alone.json} (98%) diff --git a/QuestPaths/6.x - Endwalker/Aether Currents/Garlemald/4232_Children Are Our Future.json b/QuestPaths/6.x - Endwalker/Aether Currents/Garlemald/4232_Children Are Our Future.json index 98ba0654..f604d5ae 100644 --- a/QuestPaths/6.x - Endwalker/Aether Currents/Garlemald/4232_Children Are Our Future.json +++ b/QuestPaths/6.x - Endwalker/Aether Currents/Garlemald/4232_Children Are Our Future.json @@ -223,7 +223,8 @@ "InteractionType": "WalkTo", "Sprint": false, "Mount": false, - "DelaySecondsAtStart": 5 + "DelaySecondsAtStart": 5, + "RestartNavigationIfCancelled": false } ] }, diff --git a/QuestPaths/6.x - Endwalker/Aether Currents/Labyrinthos/4320_Gleaners Wish.json b/QuestPaths/6.x - Endwalker/Aether Currents/Labyrinthos/4320_Gleaners Wish.json index 6ad932e0..1b1ffd85 100644 --- a/QuestPaths/6.x - Endwalker/Aether Currents/Labyrinthos/4320_Gleaners Wish.json +++ b/QuestPaths/6.x - Endwalker/Aether Currents/Labyrinthos/4320_Gleaners Wish.json @@ -13,7 +13,14 @@ "Z": -74.906555 }, "TerritoryId": 956, - "InteractionType": "AcceptQuest" + "InteractionType": "AcceptQuest", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_AKTKZI005_04320_Q1_000_000", + "Answer": "TEXT_AKTKZI005_04320_A1_000_003" + } + ] } ] }, diff --git a/QuestPaths/6.x - Endwalker/Aether Currents/Labyrinthos/4484_The Lad in Labyrinthos.json b/QuestPaths/6.x - Endwalker/Aether Currents/Labyrinthos/4484_The Lad in Labyrinthos.json index 245becb9..5545c918 100644 --- a/QuestPaths/6.x - Endwalker/Aether Currents/Labyrinthos/4484_The Lad in Labyrinthos.json +++ b/QuestPaths/6.x - Endwalker/Aether Currents/Labyrinthos/4484_The Lad in Labyrinthos.json @@ -13,7 +13,14 @@ "Z": -23.758362 }, "TerritoryId": 956, - "InteractionType": "AcceptQuest" + "InteractionType": "AcceptQuest", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_AKTKZI101_04484_Q1_000_000", + "Answer": "TEXT_AKTKZI101_04484_A1_000_002" + } + ] } ] }, diff --git a/QuestPaths/6.x - Endwalker/Aether Currents/Thavnair/4489_Steppe Child.json b/QuestPaths/6.x - Endwalker/Aether Currents/Thavnair/4489_Steppe Child.json index 445e90ec..d1639225 100644 --- a/QuestPaths/6.x - Endwalker/Aether Currents/Thavnair/4489_Steppe Child.json +++ b/QuestPaths/6.x - Endwalker/Aether Currents/Thavnair/4489_Steppe Child.json @@ -20,8 +20,7 @@ "Prompt": "TEXT_AKTKZA201_04489_Q1_000_004", "Answer": "TEXT_AKTKZA201_04489_A1_000_002" } - ], - "Comment": "TODO I don't think dialogue choices as part of accepting a quest are handled yet" + ] } ] }, @@ -84,6 +83,7 @@ "Y": 41.614826, "Z": 409.53687 }, + "StopDistance": 5, "TerritoryId": 957, "InteractionType": "Interact" } diff --git a/QuestPaths/6.x - Endwalker/Aether Currents/Ultima Thule/4342_Ending as One.json b/QuestPaths/6.x - Endwalker/Aether Currents/Ultima Thule/4342_Ending as One.json index 2c458504..255d858b 100644 --- a/QuestPaths/6.x - Endwalker/Aether Currents/Ultima Thule/4342_Ending as One.json +++ b/QuestPaths/6.x - Endwalker/Aether Currents/Ultima Thule/4342_Ending as One.json @@ -29,9 +29,33 @@ "TerritoryId": 960, "InteractionType": "Combat", "EnemySpawnType": "OverworldEnemies", - "KillEnemyDataIds": [ - 13315, - 14097 + "ComplexCombatData": [ + { + "DataId": 13315, + "MinimumKillCount": 2, + "CompletionQuestVariablesFlags": [ + null, + 32, + null, + null, + null, + null + ] + }, + { + "DataId": 14097, + "MinimumKillCount": 1, + "CompletionQuestVariablesFlags": [ + null, + { + "High": 3 + }, + null, + null, + null, + null + ] + } ], "$": "QuestVariables: 0 0-16-32 0 0 0 0" } diff --git a/QuestPaths/6.x - Endwalker/Aether Currents/Ultima Thule/4346_A Most Stimulating Discussion.json b/QuestPaths/6.x - Endwalker/Aether Currents/Ultima Thule/4346_A Most Stimulating Discussion.json index 60757d42..82bf9238 100644 --- a/QuestPaths/6.x - Endwalker/Aether Currents/Ultima Thule/4346_A Most Stimulating Discussion.json +++ b/QuestPaths/6.x - Endwalker/Aether Currents/Ultima Thule/4346_A Most Stimulating Discussion.json @@ -20,6 +20,28 @@ { "Sequence": 1, "Steps": [ + { + "Position": { + "X": 33.55028, + "Y": 269.00006, + "Z": -683.68896 + }, + "TerritoryId": 960, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Ultima Thule - Abode of the Ea", + "SkipConditions": { + "StepIf": { + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + } + } + }, { "DataId": 1040880, "Position": { @@ -29,7 +51,14 @@ }, "TerritoryId": 960, "InteractionType": "Interact", - "AetheryteShortcut": "Ultima Thule - Abode of the Ea" + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] }, { "DataId": 1040881, @@ -41,7 +70,22 @@ "TerritoryId": 960, "InteractionType": "Interact", "$.0": "[2]", - "$.1": "QuestVariables if done after [3]: 32 17 0 0 0 160" + "$.1": "QuestVariables if done after [3]: 32 17 0 0 0 160", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_AKTKZJ010_04346_Q1_000_000", + "Answer": "TEXT_AKTKZJ010_04346_A1_000_001" + } + ], + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] }, { "DataId": 1040879, @@ -53,7 +97,15 @@ "TerritoryId": 960, "InteractionType": "Interact", "$.0": "[3]", - "$.1": "QuestVariables if done first: 16 1 0 0 0 128" + "$.1": "QuestVariables if done first: 16 1 0 0 0 128", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] } ] }, 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 3a863052..393eba29 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 @@ -13,7 +13,14 @@ "Z": 315.81592 }, "TerritoryId": 960, - "InteractionType": "AcceptQuest" + "InteractionType": "AcceptQuest", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_AKTKZK001_04354_Q1_000_100", + "Answer": "TEXT_AKTKZK001_04354_A2_000_100" + } + ] } ] }, @@ -32,8 +39,7 @@ "EnemySpawnType": "AutoOnEnterArea", "KillEnemyDataIds": [ 14044 - ], - "Comment": "Can maybe be automated to use item depending on quest vars??" + ] } ] }, diff --git a/QuestPaths/6.x - Endwalker/Aether Currents/Ultima Thule/4355_Learn to Love.json b/QuestPaths/6.x - Endwalker/Aether Currents/Ultima Thule/4355_Learn to Love.json new file mode 100644 index 00000000..54e86496 --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Aether Currents/Ultima Thule/4355_Learn to Love.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": 1041656, + "Position": { + "X": 510.3075, + "Y": 436.9997, + "Z": 307.17932 + }, + "TerritoryId": 960, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2012560, + "Position": { + "X": 510.3379, + "Y": 436.9724, + "Z": 307.20984 + }, + "TerritoryId": 960, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2012752, + "Position": { + "X": 687.2511, + "Y": 440.48218, + "Z": 375.3567 + }, + "TerritoryId": 960, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 2012753, + "Position": { + "X": 688.74634, + "Y": 440.45154, + "Z": 381.21606 + }, + "TerritoryId": 960, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": 674.91565, + "Y": 440.4633, + "Z": 404.94272 + }, + "TerritoryId": 960, + "InteractionType": "WalkTo" + }, + { + "DataId": 2012032, + "Position": { + "X": 661.76843, + "Y": 439.96326, + "Z": 411.73413 + }, + "TerritoryId": 960, + "InteractionType": "AttuneAetherCurrent", + "AetherCurrentId": 2818391 + }, + { + "DataId": 1041656, + "Position": { + "X": 510.3075, + "Y": 436.9997, + "Z": 307.17932 + }, + "TerritoryId": 960, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ultima Thule - Base Omicron" + } + ] + } + ] +} diff --git a/QuestPaths/6.x - Endwalker/MSQ/A-Thavnair1-Labyrinthos1/4371_House of Divinities.json b/QuestPaths/6.x - Endwalker/MSQ/A-Thavnair1-Labyrinthos1/4371_House of Divinities.json index 9429e7e6..bbe790e0 100644 --- a/QuestPaths/6.x - Endwalker/MSQ/A-Thavnair1-Labyrinthos1/4371_House of Divinities.json +++ b/QuestPaths/6.x - Endwalker/MSQ/A-Thavnair1-Labyrinthos1/4371_House of Divinities.json @@ -21,6 +21,25 @@ { "Sequence": 1, "Steps": [ + { + "DataId": 1041331, + "Position": { + "X": 202.4414, + "Y": 1.769943, + "Z": 727.7484 + }, + "TerritoryId": 957, + "InteractionType": "AcceptQuest", + "DialogueChoices": [ + { + "ExcelSheet": "quest/044/AktKza201_04489", + "Type": "List", + "Prompt": "TEXT_AKTKZA201_04489_Q1_000_004", + "Answer": "TEXT_AKTKZA201_04489_A1_000_002" + } + ], + "PickUpQuestId": 4489 + }, { "DataId": 2011951, "Position": { diff --git a/QuestPaths/6.x - Endwalker/MSQ/A-Thavnair1-Labyrinthos1/4374_A Boys Errand.json b/QuestPaths/6.x - Endwalker/MSQ/A-Thavnair1-Labyrinthos1/4374_A Boys Errand.json index 1a8b6161..f551b723 100644 --- a/QuestPaths/6.x - Endwalker/MSQ/A-Thavnair1-Labyrinthos1/4374_A Boys Errand.json +++ b/QuestPaths/6.x - Endwalker/MSQ/A-Thavnair1-Labyrinthos1/4374_A Boys Errand.json @@ -20,6 +20,17 @@ { "Sequence": 1, "Steps": [ + { + "DataId": 1037670, + "Position": { + "X": -508.84262, + "Y": -3.7109916E-05, + "Z": -20.767578 + }, + "TerritoryId": 957, + "InteractionType": "AcceptQuest", + "PickUpQuestId": 4203 + }, { "DataId": 1038642, "Position": { diff --git a/QuestPaths/6.x - Endwalker/MSQ/B-Garlemald/4384_Tracks in the Snow.json b/QuestPaths/6.x - Endwalker/MSQ/B-Garlemald/4384_Tracks in the Snow.json index 1bcbd2e0..6fdb1620 100644 --- a/QuestPaths/6.x - Endwalker/MSQ/B-Garlemald/4384_Tracks in the Snow.json +++ b/QuestPaths/6.x - Endwalker/MSQ/B-Garlemald/4384_Tracks in the Snow.json @@ -329,7 +329,8 @@ }, "TerritoryId": 958, "InteractionType": "WalkTo", - "Mount": false + "Mount": false, + "RestartNavigationIfCancelled": false } ] }, diff --git a/QuestPaths/6.x - Endwalker/MSQ/B-Garlemald/4385_How the Mighty Are Fallen.json b/QuestPaths/6.x - Endwalker/MSQ/B-Garlemald/4385_How the Mighty Are Fallen.json index e6498a49..8f6cf55a 100644 --- a/QuestPaths/6.x - Endwalker/MSQ/B-Garlemald/4385_How the Mighty Are Fallen.json +++ b/QuestPaths/6.x - Endwalker/MSQ/B-Garlemald/4385_How the Mighty Are Fallen.json @@ -118,7 +118,12 @@ "Z": 623.22424 }, "TerritoryId": 958, - "InteractionType": "Interact" + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 14085, + 14086 + ] } ] }, @@ -134,7 +139,8 @@ }, "TerritoryId": 958, "InteractionType": "Interact", - "Mount": false + "Mount": false, + "RestartNavigationIfCancelled": false } ] }, diff --git a/QuestPaths/6.x - Endwalker/MSQ/B-Garlemald/4387_A Way Forward.json b/QuestPaths/6.x - Endwalker/MSQ/B-Garlemald/4387_A Way Forward.json index 4ed240b8..64a3f4ad 100644 --- a/QuestPaths/6.x - Endwalker/MSQ/B-Garlemald/4387_A Way Forward.json +++ b/QuestPaths/6.x - Endwalker/MSQ/B-Garlemald/4387_A Way Forward.json @@ -153,6 +153,7 @@ "Y": 0.21427588, "Z": 147.8446 }, + "StopDistance": 5, "TerritoryId": 958, "InteractionType": "CompleteQuest" } 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 04342d49..1ed061f7 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 @@ -20,6 +20,17 @@ { "Sequence": 1, "Steps": [ + { + "DataId": 1041753, + "Position": { + "X": -321.49237, + "Y": 22.009079, + "Z": 424.00232 + }, + "TerritoryId": 958, + "InteractionType": "AcceptQuest", + "PickUpQuestId": 4498 + }, { "DataId": 1039917, "Position": { @@ -121,10 +132,30 @@ null, null, 64 - ] + ], + "NearPosition": { + "Position": { + "X": 496.94043, + "Y": 10.887661, + "Z": -418.57025 + }, + "TerritoryId": 958, + "MaximumDistance": 30 + } } } }, + { + "DataId": 1040633, + "Position": { + "X": 496.94043, + "Y": 10.887661, + "Z": -418.57025 + }, + "TerritoryId": 958, + "InteractionType": "AcceptQuest", + "PickUpQuestId": 4232 + }, { "DataId": 2012111, "Position": { 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 923bd663..df2c8baa 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 @@ -23,6 +23,36 @@ { "Sequence": 1, "Steps": [ + { + "DataId": 1040898, + "Position": { + "X": -433.12738, + "Y": 22.221891, + "Z": 460.80713 + }, + "TerritoryId": 958, + "InteractionType": "AcceptQuest", + "PickUpQuestId": 4216 + }, + { + "DataId": 1041765, + "Position": { + "X": -323.4455, + "Y": 22, + "Z": 487.81555 + }, + "TerritoryId": 958, + "InteractionType": "AcceptQuest", + "PickUpQuestId": 4502, + "AetheryteShortcut": "Garlemald - Camp Broken Glass", + "SkipConditions": { + "AetheryteShortcutIf": { + "QuestsCompleted": [ + 4502 + ] + } + } + }, { "DataId": 1039932, "Position": { @@ -39,7 +69,21 @@ "Prompt": "TEXT_AKTKMB115_04394_Q1_000_042", "Yes": true } - ] + ], + "AetheryteShortcut": "Garlemald - Camp Broken Glass", + "SkipConditions": { + "AetheryteShortcutIf": { + "NearPosition": { + "Position": { + "X": -357.99194, + "Y": 22, + "Z": 488.3954 + }, + "TerritoryId": 958, + "MaximumDistance": 200 + } + } + } } ] }, diff --git a/QuestPaths/6.x - Endwalker/MSQ/B-Garlemald/4396_A Trip to the Moon.json b/QuestPaths/6.x - Endwalker/MSQ/B-Garlemald/4396_A Trip to the Moon.json index f7234960..5a3b25cd 100644 --- a/QuestPaths/6.x - Endwalker/MSQ/B-Garlemald/4396_A Trip to the Moon.json +++ b/QuestPaths/6.x - Endwalker/MSQ/B-Garlemald/4396_A Trip to the Moon.json @@ -72,7 +72,7 @@ "Z": 632.41016 }, "TerritoryId": 959, - "InteractionType": "Interact", + "InteractionType": "Combat", "EnemySpawnType": "AfterInteraction", "KillEnemyDataIds": [ 14077 diff --git a/QuestPaths/6.x - Endwalker/MSQ/B-Garlemald/4397_Sea of Sorrow.json b/QuestPaths/6.x - Endwalker/MSQ/B-Garlemald/4397_Sea of Sorrow.json index 8c9efca9..ace37185 100644 --- a/QuestPaths/6.x - Endwalker/MSQ/B-Garlemald/4397_Sea of Sorrow.json +++ b/QuestPaths/6.x - Endwalker/MSQ/B-Garlemald/4397_Sea of Sorrow.json @@ -187,7 +187,8 @@ "Z": 523.24695 }, "TerritoryId": 959, - "InteractionType": "Interact", + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", "KillEnemyDataIds": [ 14076 ] 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 e30ded62..fe670f69 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 @@ -251,7 +251,8 @@ "Z": -620.05035 }, "TerritoryId": 959, - "InteractionType": "Interact" + "InteractionType": "Interact", + "DelaySecondsAtStart": 3 } ] }, diff --git a/QuestPaths/6.x - Endwalker/MSQ/C-MareLamentorum/4403_Styled a Hero.json b/QuestPaths/6.x - Endwalker/MSQ/C-MareLamentorum/4403_Styled a Hero.json index 8020eced..2698d1f2 100644 --- a/QuestPaths/6.x - Endwalker/MSQ/C-MareLamentorum/4403_Styled a Hero.json +++ b/QuestPaths/6.x - Endwalker/MSQ/C-MareLamentorum/4403_Styled a Hero.json @@ -12,6 +12,7 @@ "Y": -168, "Z": -618.7686 }, + "StopDistance": 5, "TerritoryId": 959, "InteractionType": "AcceptQuest" } diff --git a/QuestPaths/6.x - Endwalker/MSQ/C-MareLamentorum/4404_Alls Vale That Endsvale.json b/QuestPaths/6.x - Endwalker/MSQ/C-MareLamentorum/4404_Alls Vale That Endsvale.json index 8e339baa..2004e56f 100644 --- a/QuestPaths/6.x - Endwalker/MSQ/C-MareLamentorum/4404_Alls Vale That Endsvale.json +++ b/QuestPaths/6.x - Endwalker/MSQ/C-MareLamentorum/4404_Alls Vale That Endsvale.json @@ -21,25 +21,34 @@ "Sequence": 1, "Steps": [ { + "DataId": 1037867, "Position": { - "X": 68.93551, - "Y": -48.912445, - "Z": -683.716 + "X": -301.62512, + "Y": -144.00002, + "Z": -491.14215 }, "TerritoryId": 959, - "InteractionType": "WalkTo", - "DisableNavmesh": true, - "Mount": true + "InteractionType": "AcceptQuest", + "PickUpQuestId": 4240, + "AetheryteShortcut": "Mare Lamentorum - Bestways Burrow", + "SkipConditions": { + "AetheryteShortcutIf": { + "QuestsCompleted": [ + 4240 + ] + } + } }, { + "DataId": 1039520, "Position": { - "X": 86.32549, - "Y": -137.4167, - "Z": -619.77936 + "X": -287.8615, + "Y": -143.50005, + "Z": -520.28687 }, "TerritoryId": 959, - "InteractionType": "WalkTo", - "DisableNavmesh": true + "InteractionType": "AcceptQuest", + "PickUpQuestId": 4241 }, { "DataId": 1038928, @@ -49,7 +58,8 @@ "Z": -504.26492 }, "TerritoryId": 959, - "InteractionType": "Interact" + "InteractionType": "Interact", + "AetheryteShortcut": "Mare Lamentorum - Bestways Burrow" } ] }, diff --git a/QuestPaths/6.x - Endwalker/MSQ/C-MareLamentorum/4406_Setting Things Straight.json b/QuestPaths/6.x - Endwalker/MSQ/C-MareLamentorum/4406_Setting Things Straight.json index 0370b779..00c79a9a 100644 --- a/QuestPaths/6.x - Endwalker/MSQ/C-MareLamentorum/4406_Setting Things Straight.json +++ b/QuestPaths/6.x - Endwalker/MSQ/C-MareLamentorum/4406_Setting Things Straight.json @@ -109,9 +109,9 @@ "AetheryteShortcut": "Mare Lamentorum - Bestways Burrow", "JumpDestination": { "Position": { - "X": 307.72073, - "Y": -143.15913, - "Z": -563.4788 + "X": 315.84082, + "Y": -156.2339, + "Z": -577.15063 }, "StopDistance": 5 } diff --git a/QuestPaths/6.x - Endwalker/MSQ/C-MareLamentorum/4407_Heart of the Matter.json b/QuestPaths/6.x - Endwalker/MSQ/C-MareLamentorum/4407_Heart of the Matter.json index 03185721..7d71fa7a 100644 --- a/QuestPaths/6.x - Endwalker/MSQ/C-MareLamentorum/4407_Heart of the Matter.json +++ b/QuestPaths/6.x - Endwalker/MSQ/C-MareLamentorum/4407_Heart of the Matter.json @@ -21,6 +21,42 @@ { "Sequence": 1, "Steps": [ + { + "DataId": 1041555, + "Position": { + "X": 26.443848, + "Y": -129.20917, + "Z": -536.9497 + }, + "TerritoryId": 959, + "InteractionType": "AcceptQuest", + "PickUpQuestId": 4516, + "AetheryteShortcut": "Mare Lamentorum - Bestways Burrow", + "SkipConditions": { + "AetheryteShortcutIf": { + "QuestsCompleted": [4516] + } + } + }, + { + "DataId": 1041123, + "Position": { + "X": -81.864685, + "Y": -132.74333, + "Z": -521.6602 + }, + "TerritoryId": 959, + "InteractionType": "AcceptQuest", + "PickUpQuestId": 4253, + "DialogueChoices": [ + { + "ExcelSheet": "quest/042/AktKze014_04253", + "Type": "List", + "Prompt": "TEXT_AKTKZE014_04253_Q1_000_000", + "Answer": "TEXT_AKTKZE014_04253_A1_000_002" + } + ] + }, { "DataId": 2012664, "Position": { @@ -30,7 +66,6 @@ }, "TerritoryId": 959, "InteractionType": "Interact", - "AetheryteShortcut": "Mare Lamentorum - Bestways Burrow", "TargetTerritoryId": 959 }, { diff --git a/QuestPaths/6.x - Endwalker/MSQ/D-Thavnair2/4416_Simple Pleasures.json b/QuestPaths/6.x - Endwalker/MSQ/D-Thavnair2/4416_Simple Pleasures.json index 1fc767aa..87d06dab 100644 --- a/QuestPaths/6.x - Endwalker/MSQ/D-Thavnair2/4416_Simple Pleasures.json +++ b/QuestPaths/6.x - Endwalker/MSQ/D-Thavnair2/4416_Simple Pleasures.json @@ -113,15 +113,26 @@ "Sequence": 255, "Steps": [ { + "DataId": 1040669, "Position": { - "X": 425.544, - "Y": 3.1257756, - "Z": -218.32741 + "X": 381.64343, + "Y": 3.1891773, + "Z": -207.20227 }, "TerritoryId": 957, - "InteractionType": "WalkTo", - "Mount": true, - "DisableNavmesh": true + "InteractionType": "AcceptQuest", + "PickUpQuestId": 4259 + }, + { + "DataId": 1040864, + "Position": { + "X": 462.51624, + "Y": 14.320099, + "Z": -219.86731 + }, + "TerritoryId": 957, + "InteractionType": "AcceptQuest", + "PickUpQuestId": 4257 }, { "DataId": 1039064, diff --git a/QuestPaths/6.x - Endwalker/MSQ/D-Thavnair2/4417_Under His Wing.json b/QuestPaths/6.x - Endwalker/MSQ/D-Thavnair2/4417_Under His Wing.json index 2abf1683..4eea5d8e 100644 --- a/QuestPaths/6.x - Endwalker/MSQ/D-Thavnair2/4417_Under His Wing.json +++ b/QuestPaths/6.x - Endwalker/MSQ/D-Thavnair2/4417_Under His Wing.json @@ -12,7 +12,7 @@ "Y": 3.1168795, "Z": -262.62305 }, - "StopDistance": 5, + "StopDistance": 8, "TerritoryId": 957, "InteractionType": "AcceptQuest" } @@ -29,7 +29,8 @@ "Z": -597.83325 }, "TerritoryId": 957, - "InteractionType": "Interact" + "InteractionType": "Interact", + "Fly": true } ] }, @@ -45,7 +46,8 @@ "TerritoryId": 957, "InteractionType": "WalkTo", "Comment": "Travel to Radz-at-Han", - "TargetTerritoryId": 963 + "TargetTerritoryId": 963, + "Fly": true }, { "DataId": 1040354, 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 f8495547..e4748e24 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 @@ -21,6 +21,17 @@ { "Sequence": 1, "Steps": [ + { + "DataId": 1041328, + "Position": { + "X": 166.39954, + "Y": 9.457411, + "Z": 236.34692 + }, + "TerritoryId": 961, + "InteractionType": "AcceptQuest", + "PickUpQuestId": 4507 + }, { "DataId": 1040073, "Position": { diff --git a/QuestPaths/6.x - Endwalker/MSQ/E-Elpis/4428_Verdict and Execution.json b/QuestPaths/6.x - Endwalker/MSQ/E-Elpis/4428_Verdict and Execution.json index 1283689e..200a1de6 100644 --- a/QuestPaths/6.x - Endwalker/MSQ/E-Elpis/4428_Verdict and Execution.json +++ b/QuestPaths/6.x - Endwalker/MSQ/E-Elpis/4428_Verdict and Execution.json @@ -20,6 +20,17 @@ { "Sequence": 1, "Steps": [ + { + "DataId": 1037969, + "Position": { + "X": -611.90204, + "Y": -22.39482, + "Z": 510.42944 + }, + "TerritoryId": 961, + "InteractionType": "AcceptQuest", + "PickUpQuestId": 4288 + }, { "DataId": 1040092, "Position": { diff --git a/QuestPaths/6.x - Endwalker/MSQ/E-Elpis/4433_A Flower upon Your Return.json b/QuestPaths/6.x - Endwalker/MSQ/E-Elpis/4433_A Flower upon Your Return.json index 31df1410..28f34596 100644 --- a/QuestPaths/6.x - Endwalker/MSQ/E-Elpis/4433_A Flower upon Your Return.json +++ b/QuestPaths/6.x - Endwalker/MSQ/E-Elpis/4433_A Flower upon Your Return.json @@ -69,6 +69,54 @@ { "Sequence": 3, "Steps": [ + { + "DataId": 1041369, + "Position": { + "X": -639.85657, + "Y": 162.30406, + "Z": -189.47137 + }, + "TerritoryId": 961, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Elpis - Poieten Oikos", + "PickUpQuestId": 4511, + "SkipConditions": { + "AetheryteShortcutIf": { + "QuestsCompleted": [ + 4511 + ] + } + } + }, + { + "DataId": 1041847, + "Position": { + "X": -484.2146, + "Y": 141.86789, + "Z": -97.21527 + }, + "TerritoryId": 961, + "InteractionType": "AcceptQuest", + "PickUpQuestId": 4313, + "AetheryteShortcut": "Elpis - Poieten Oikos", + "SkipConditions": { + "AetheryteShortcutIf": { + "QuestsCompleted": [ + 4313 + ] + } + }, + "$": "Teleporting at the start of the quest, as navmesh gets stuck on a rock otherwise" + }, + { + "Position": { + "X": -531.21313, + "Y": 159.97144, + "Z": -244.95073 + }, + "TerritoryId": 961, + "InteractionType": "WalkTo" + }, { "DataId": 2012151, "Position": { @@ -78,7 +126,6 @@ }, "TerritoryId": 961, "InteractionType": "Interact", - "AetheryteShortcut": "Elpis - Poieten Oikos", "DialogueChoices": [ { "Type": "YesNo", diff --git a/QuestPaths/6.x - Endwalker/MSQ/F-Labyrinthos2/4445_Sage Council.json b/QuestPaths/6.x - Endwalker/MSQ/F-Labyrinthos2/4445_Sage Council.json index 20ffb4a1..22e3ab2b 100644 --- a/QuestPaths/6.x - Endwalker/MSQ/F-Labyrinthos2/4445_Sage Council.json +++ b/QuestPaths/6.x - Endwalker/MSQ/F-Labyrinthos2/4445_Sage Council.json @@ -20,6 +20,17 @@ { "Sequence": 1, "Steps": [ + { + "DataId": 1041667, + "Position": { + "X": 443.96118, + "Y": 65.162, + "Z": -105.4552 + }, + "TerritoryId": 956, + "InteractionType": "AcceptQuest", + "PickUpQuestId": 4480 + }, { "Position": { "X": 5.4520116, diff --git a/QuestPaths/6.x - Endwalker/MSQ/F-Labyrinthos2/4446_Hither and Yarns.json b/QuestPaths/6.x - Endwalker/MSQ/F-Labyrinthos2/4446_Hither and Yarns.json index cb81a4f3..b0856bfc 100644 --- a/QuestPaths/6.x - Endwalker/MSQ/F-Labyrinthos2/4446_Hither and Yarns.json +++ b/QuestPaths/6.x - Endwalker/MSQ/F-Labyrinthos2/4446_Hither and Yarns.json @@ -21,6 +21,55 @@ { "Sequence": 1, "Steps": [ + { + "DataId": 1041129, + "Position": { + "X": -23.575256, + "Y": -31.53021, + "Z": 1.8463135 + }, + "TerritoryId": 956, + "InteractionType": "AcceptQuest", + "PickUpQuestId": 4329 + }, + { + "DataId": 1041683, + "Position": { + "X": -29.984009, + "Y": -31.53043, + "Z": -23.758362 + }, + "TerritoryId": 956, + "InteractionType": "AcceptQuest", + "PickUpQuestId": 4484, + "DialogueChoices": [ + { + "Type": "List", + "ExcelSheet": "quest/044/AktKzi101_04484", + "Prompt": "TEXT_AKTKZI101_04484_Q1_000_000", + "Answer": "TEXT_AKTKZI101_04484_A1_000_002" + } + ] + }, + { + "DataId": 1041313, + "Position": { + "X": 89.28052, + "Y": -17.530382, + "Z": -74.906555 + }, + "TerritoryId": 956, + "InteractionType": "AcceptQuest", + "PickUpQuestId": 4320, + "DialogueChoices": [ + { + "Type": "List", + "ExcelSheet": "quest/043/AktKzi005_04320", + "Prompt": "TEXT_AKTKZI005_04320_Q1_000_000", + "Answer": "TEXT_AKTKZI005_04320_A1_000_003" + } + ] + }, { "DataId": 1040444, "Position": { diff --git a/QuestPaths/6.x - Endwalker/MSQ/F-Labyrinthos2/4448_Bonds of Adamantite.json b/QuestPaths/6.x - Endwalker/MSQ/F-Labyrinthos2/4448_Bonds of Adamantite.json index b3cf7f42..d13967ff 100644 --- a/QuestPaths/6.x - Endwalker/MSQ/F-Labyrinthos2/4448_Bonds of Adamantite.json +++ b/QuestPaths/6.x - Endwalker/MSQ/F-Labyrinthos2/4448_Bonds of Adamantite.json @@ -129,7 +129,8 @@ "Z": 301.63266 }, "TerritoryId": 956, - "InteractionType": "WalkTo" + "InteractionType": "WalkTo", + "RestartNavigationIfCancelled": false } ] }, diff --git a/QuestPaths/6.x - Endwalker/MSQ/G-UltimaThule/4459_Victory x Lost.json b/QuestPaths/6.x - Endwalker/MSQ/G-UltimaThule/4459_Victory x Lost.json index 8a9d75af..70d7ed5e 100644 --- a/QuestPaths/6.x - Endwalker/MSQ/G-UltimaThule/4459_Victory x Lost.json +++ b/QuestPaths/6.x - Endwalker/MSQ/G-UltimaThule/4459_Victory x Lost.json @@ -21,6 +21,28 @@ { "Sequence": 1, "Steps": [ + { + "DataId": 1040876, + "Position": { + "X": 49.42395, + "Y": 269.25684, + "Z": -523.2472 + }, + "TerritoryId": 960, + "InteractionType": "AcceptQuest", + "PickUpQuestId": 4342 + }, + { + "DataId": 1038016, + "Position": { + "X": 105.42456, + "Y": 269.29584, + "Z": -454.3069 + }, + "TerritoryId": 960, + "InteractionType": "AcceptQuest", + "PickUpQuestId": 4346 + }, { "DataId": 1039787, "Position": { diff --git a/QuestPaths/6.x - Endwalker/MSQ/G-UltimaThule/4460_x.json b/QuestPaths/6.x - Endwalker/MSQ/G-UltimaThule/4460_x.json index b8d7fcf7..35dcefaf 100644 --- a/QuestPaths/6.x - Endwalker/MSQ/G-UltimaThule/4460_x.json +++ b/QuestPaths/6.x - Endwalker/MSQ/G-UltimaThule/4460_x.json @@ -22,15 +22,34 @@ "Sequence": 1, "Steps": [ { - "DataId": 2012032, + "DataId": 1041656, "Position": { - "X": 661.76843, - "Y": 439.96326, - "Z": 411.73413 + "X": 510.3075, + "Y": 436.9997, + "Z": 307.17932 }, "TerritoryId": 960, - "InteractionType": "AttuneAetherCurrent", - "AetherCurrentId": 2818391 + "InteractionType": "AcceptQuest", + "PickUpQuestId": 4355 + }, + { + "DataId": 1038043, + "Position": { + "X": 470.4203, + "Y": 437.00183, + "Z": 315.81592 + }, + "TerritoryId": 960, + "InteractionType": "AcceptQuest", + "PickUpQuestId": 4354, + "DialogueChoices": [ + { + "Type": "List", + "ExcelSheet": "quest/043/AktKzk001_04354", + "Prompt": "TEXT_AKTKZK001_04354_Q1_000_100", + "Answer": "TEXT_AKTKZK001_04354_A2_000_100" + } + ] }, { "DataId": 1040343, diff --git a/QuestPaths/6.x - Endwalker/MSQ/G-UltimaThule/4463_Youre Not Alone.json b/QuestPaths/6.x - Endwalker/MSQ/G-UltimaThule/4463_You're Not Alone.json similarity index 98% rename from QuestPaths/6.x - Endwalker/MSQ/G-UltimaThule/4463_Youre Not Alone.json rename to QuestPaths/6.x - Endwalker/MSQ/G-UltimaThule/4463_You're Not Alone.json index 46a36575..036101b1 100644 --- a/QuestPaths/6.x - Endwalker/MSQ/G-UltimaThule/4463_Youre Not Alone.json +++ b/QuestPaths/6.x - Endwalker/MSQ/G-UltimaThule/4463_You're Not Alone.json @@ -212,7 +212,8 @@ }, "StopDistance": 5, "TerritoryId": 960, - "InteractionType": "CompleteQuest" + "InteractionType": "CompleteQuest", + "DisableNavmesh": true } ] } 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 4fb91846..af09a13a 100644 --- a/QuestPaths/6.x - Endwalker/MSQ/G-UltimaThule/4464_Endwalker.json +++ b/QuestPaths/6.x - Endwalker/MSQ/G-UltimaThule/4464_Endwalker.json @@ -18,7 +18,8 @@ "Z": 4.2266846 }, "TerritoryId": 960, - "InteractionType": "AcceptQuest" + "InteractionType": "AcceptQuest", + "DisableNavmesh": true } ] }, From 9dd123c036c470447e4f38da3edc75aed9ec19f6 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sun, 8 Sep 2024 19:08:47 +0200 Subject: [PATCH 198/450] Minor QW updates --- .../Dailies/3049_Snack between Meals.json | 60 +++++++++++++++++-- .../Dailies/3052_When Feathers Fly.json | 52 ++++++++++++++-- 2 files changed, 102 insertions(+), 10 deletions(-) diff --git a/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Dailies/3049_Snack between Meals.json b/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Dailies/3049_Snack between Meals.json index c255515b..f9de1919 100644 --- a/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Dailies/3049_Snack between Meals.json +++ b/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Dailies/3049_Snack between Meals.json @@ -31,8 +31,24 @@ "TerritoryId": 612, "InteractionType": "Combat", "EnemySpawnType": "AfterInteraction", - "KillEnemyDataIds": [8584], - "RequiredQuestVariables": [null, null, [1, 2], null, null, null], + "KillEnemyDataIds": [ + 8584 + ], + "RequiredQuestVariables": [ + null, + null, + [ + { + "Low": 1 + }, + { + "Low": 2 + } + ], + null, + null, + null + ], "Fly": true }, { @@ -45,8 +61,24 @@ "TerritoryId": 612, "InteractionType": "Combat", "EnemySpawnType": "AfterInteraction", - "KillEnemyDataIds": [8584], - "RequiredQuestVariables": [null, null, [3, 17], null, null, null], + "KillEnemyDataIds": [ + 8584 + ], + "RequiredQuestVariables": [ + null, + null, + [ + { + "Low": 3 + }, + { + "Low": 1 + } + ], + null, + null, + null + ], "Fly": true }, { @@ -59,8 +91,24 @@ "TerritoryId": 612, "InteractionType": "Combat", "EnemySpawnType": "AfterInteraction", - "KillEnemyDataIds": [8584], - "RequiredQuestVariables": [null, null, [18, 19], null, null, null], + "KillEnemyDataIds": [ + 8584 + ], + "RequiredQuestVariables": [ + null, + null, + [ + { + "Low": 2 + }, + { + "Low": 3 + } + ], + null, + null, + null + ], "Fly": true } ] diff --git a/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Dailies/3052_When Feathers Fly.json b/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Dailies/3052_When Feathers Fly.json index 70330fb8..9d6fd5b4 100644 --- a/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Dailies/3052_When Feathers Fly.json +++ b/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Dailies/3052_When Feathers Fly.json @@ -32,7 +32,18 @@ "InteractionType": "Emote", "Emote": "rally", "Fly": true, - "RequiredQuestVariables": [null, null, [16], null, null, null] + "RequiredQuestVariables": [ + null, + null, + [ + { + "High": 1 + } + ], + null, + null, + null + ] }, { "DataId": 1025064, @@ -43,7 +54,18 @@ }, "TerritoryId": 612, "InteractionType": "Emote", - "RequiredQuestVariables": [null, [1, 17], null, null, null, null], + "RequiredQuestVariables": [ + null, + [ + { + "Low": 1 + } + ], + null, + null, + null, + null + ], "Emote": "soothe", "Fly": true }, @@ -56,7 +78,18 @@ }, "TerritoryId": 612, "InteractionType": "Emote", - "RequiredQuestVariables": [null, [2, 18], null, null, null, null], + "RequiredQuestVariables": [ + null, + [ + { + "Low": 2 + } + ], + null, + null, + null, + null + ], "Emote": "soothe", "Fly": true }, @@ -69,7 +102,18 @@ }, "TerritoryId": 612, "InteractionType": "Emote", - "RequiredQuestVariables": [null, null, [32], null, null, null], + "RequiredQuestVariables": [ + null, + null, + [ + { + "High": 2 + } + ], + null, + null, + null + ], "Emote": "rally", "Fly": true } From 8a700c3daa39e4023227909dc83f82e8ad58ab4f Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sun, 8 Sep 2024 19:12:46 +0200 Subject: [PATCH 199/450] Minor QW updates --- .../Dailies/4616_Working Up a Thirst.json | 78 +++++++++++++++++-- 1 file changed, 72 insertions(+), 6 deletions(-) diff --git a/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4616_Working Up a Thirst.json b/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4616_Working Up a Thirst.json index 1ff7d372..82dd0e5a 100644 --- a/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4616_Working Up a Thirst.json +++ b/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4616_Working Up a Thirst.json @@ -29,7 +29,18 @@ }, "TerritoryId": 960, "InteractionType": "Interact", - "RequiredQuestVariables": [null, null, null, [1], null, null], + "RequiredQuestVariables": [ + null, + null, + null, + [ + { + "Low": 1 + } + ], + null, + null + ], "AetheryteShortcut": "Ultima Thule - Reah Tahra", "SkipConditions": { "AetheryteShortcutIf": { @@ -47,7 +58,18 @@ }, "TerritoryId": 960, "InteractionType": "Interact", - "RequiredQuestVariables": [null, null, null, [17], null, null], + "RequiredQuestVariables": [ + null, + null, + null, + [ + { + "Low": 1 + } + ], + null, + null + ], "Fly": true, "$": "It's the only pair that increases the significant element by 16" }, @@ -60,7 +82,18 @@ }, "TerritoryId": 960, "InteractionType": "Interact", - "RequiredQuestVariables": [null, null, null, [2], null, null], + "RequiredQuestVariables": [ + null, + null, + null, + [ + { + "Low": 2 + } + ], + null, + null + ], "AetheryteShortcut": "Ultima Thule - Abode of the Ea", "SkipConditions": { "AetheryteShortcutIf": { @@ -78,7 +111,18 @@ }, "TerritoryId": 960, "InteractionType": "Interact", - "RequiredQuestVariables": [null, null, null, [2], null, null], + "RequiredQuestVariables": [ + null, + null, + null, + [ + { + "Low": 2 + } + ], + null, + null + ], "Fly": true }, { @@ -90,7 +134,18 @@ }, "TerritoryId": 960, "InteractionType": "Interact", - "RequiredQuestVariables": [null, null, null, [3], null, null], + "RequiredQuestVariables": [ + null, + null, + null, + [ + { + "Low": 3 + } + ], + null, + null + ], "AetheryteShortcut": "Ultima Thule - Base Omicron", "SkipConditions": { "AetheryteShortcutIf": { @@ -108,7 +163,18 @@ }, "TerritoryId": 960, "InteractionType": "Interact", - "RequiredQuestVariables": [null, null, null, [3], null, null], + "RequiredQuestVariables": [ + null, + null, + null, + [ + { + "Low": 3 + } + ], + null, + null + ], "Fly": true } ] From 07fb066047993deb3ad41604cdeafd966b44245d Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sun, 8 Sep 2024 19:30:16 +0200 Subject: [PATCH 200/450] Update locked starting class quests --- Questionable/Data/QuestData.cs | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/Questionable/Data/QuestData.cs b/Questionable/Data/QuestData.cs index 2be98c4d..6843b84c 100644 --- a/Questionable/Data/QuestData.cs +++ b/Questionable/Data/QuestData.cs @@ -318,16 +318,24 @@ internal sealed class QuestData if (startingClass == EClassJob.Adventurer) return []; - return + // If you start the game as another class, you get: + // - "So you want to be a XX" + // - "Way of the XX" (depends on "So you want to be a XX") + // - "My First XX" + // If you start the game with this class, you get: + // - "Way of the XX" (no preconditions) + // In both cases, the level 10 quests are different + List> startingClassQuests = [ - startingClass == EClassJob.Gladiator ? new(177) : new(253), - startingClass == EClassJob.Pugilist ? new(178) : new(533), - startingClass == EClassJob.Marauder ? new(179) : new(311), - startingClass == EClassJob.Lancer ? new(180) : new(23), - startingClass == EClassJob.Archer ? new(181) : new(21), - startingClass == EClassJob.Conjurer ? new(182) : new(22), - startingClass == EClassJob.Thaumaturge ? new(183) : new(345), - startingClass == EClassJob.Arcanist ? new(451) : new(453), + startingClass == EClassJob.Gladiator ? [177, 285, 286, 288] : [253, 261], + startingClass == EClassJob.Pugilist ? [178, 532, 553, 698] : [533, 555], + startingClass == EClassJob.Marauder ? [179, 310, 312, 315] : [311, 314], + startingClass == EClassJob.Lancer ? [180, 132, 218, 143] : [23, 35], + startingClass == EClassJob.Archer ? [181, 131, 219, 134] : [21, 67], + startingClass == EClassJob.Conjurer ? [182, 133, 211, 147] : [22, 91], + startingClass == EClassJob.Thaumaturge ? [183, 344, 346, 349] : [345, 348], + startingClass == EClassJob.Arcanist ? [451, 452, 454, 457] : [453, 456], ]; + return startingClassQuests.SelectMany(x => x).Select(x => new QuestId(x)).ToList(); } } From 8a93d2728e163751d582e39a82e222e13b91a9c8 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sun, 8 Sep 2024 20:06:59 +0200 Subject: [PATCH 201/450] Add Coils quests --- .../Raid Quests/1159_Primal Awakening.json | 129 +++++++++++++ .../Raid Quests/1160_Alisaie's Pledge.json | 93 ++++++++++ .../1313_Another Turn in the Coil.json | 148 +++++++++++++++ .../Raid Quests/1314_Alisaie's Resolve.json | 86 +++++++++ .../Raid Quests/43_Fragments of Truth.json | 173 ++++++++++++++++++ .../Raid Quests/44_Alisaie's Path.json | 46 +++++ 6 files changed, 675 insertions(+) create mode 100644 QuestPaths/2.x - A Realm Reborn/Raid Quests/1159_Primal Awakening.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Raid Quests/1160_Alisaie's Pledge.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Raid Quests/1313_Another Turn in the Coil.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Raid Quests/1314_Alisaie's Resolve.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Raid Quests/43_Fragments of Truth.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Raid Quests/44_Alisaie's Path.json diff --git a/QuestPaths/2.x - A Realm Reborn/Raid Quests/1159_Primal Awakening.json b/QuestPaths/2.x - A Realm Reborn/Raid Quests/1159_Primal Awakening.json new file mode 100644 index 00000000..2399d279 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Raid Quests/1159_Primal Awakening.json @@ -0,0 +1,129 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "Comment": "Only Turn 5 is required for the next quest to unlock", + "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": 1007478, + "Position": { + "X": -2.822998, + "Y": -3.0000014, + "Z": -56.229553 + }, + "TerritoryId": 212, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1007685, + "Position": { + "X": -18.539795, + "Y": 70.50106, + "Z": 17.746216 + }, + "TerritoryId": 137, + "InteractionType": "Interact", + "AetheryteShortcut": "Eastern La Noscea - Wineport" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": 358.13956, + "Y": 76.42267, + "Z": -98.75324 + }, + "TerritoryId": 137, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 2002609, + "Position": { + "X": 356.98486, + "Y": 77.71411, + "Z": -99.83978 + }, + "TerritoryId": 137, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1007627, + "Position": { + "X": 13.260071, + "Y": 65.04303, + "Z": 43.808594 + }, + "TerritoryId": 137, + "InteractionType": "CompleteQuest", + "Fly": true, + "NextQuestId": 1160 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Raid Quests/1160_Alisaie's Pledge.json b/QuestPaths/2.x - A Realm Reborn/Raid Quests/1160_Alisaie's Pledge.json new file mode 100644 index 00000000..cc58159a --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Raid Quests/1160_Alisaie's Pledge.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": 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": 1007478, + "Position": { + "X": -2.822998, + "Y": -3.0000014, + "Z": -56.229553 + }, + "TerritoryId": 212, + "InteractionType": "AcceptQuest", + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_GAIUSD102_01160_Q1_000_000", + "Yes": false + } + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1007684, + "Position": { + "X": -2.975586, + "Y": -3.000001, + "Z": -55.10034 + }, + "TerritoryId": 212, + "InteractionType": "CompleteQuest", + "NextQuestId": 1313 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Raid Quests/1313_Another Turn in the Coil.json b/QuestPaths/2.x - A Realm Reborn/Raid Quests/1313_Another Turn in the Coil.json new file mode 100644 index 00000000..eac21b58 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Raid Quests/1313_Another Turn in the Coil.json @@ -0,0 +1,148 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "Comment": "Only Turn 9 is required for the next quest to unlock", + "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": 1007478, + "Position": { + "X": -2.822998, + "Y": -3.0000014, + "Z": -56.229553 + }, + "TerritoryId": 212, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1008538, + "Position": { + "X": -35.26361, + "Y": -45.545444, + "Z": 295.36877 + }, + "TerritoryId": 154, + "InteractionType": "Interact", + "AetheryteShortcut": "North Shroud - Fallgourd Float" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": -43.719337, + "Y": -46.570717, + "Z": 288.87 + }, + "TerritoryId": 154, + "InteractionType": "WalkTo", + "Mount": true + }, + { + "Position": { + "X": -238.82307, + "Y": -75.39517, + "Z": 422.71375 + }, + "TerritoryId": 154, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 1008539, + "Position": { + "X": -236.74377, + "Y": -75.699936, + "Z": 423.0868 + }, + "TerritoryId": 154, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": -43.719337, + "Y": -46.570717, + "Z": 288.87 + }, + "TerritoryId": 154, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 1008538, + "Position": { + "X": -35.26361, + "Y": -45.545444, + "Z": 295.36877 + }, + "TerritoryId": 154, + "InteractionType": "CompleteQuest", + "NextQuestId": 1314 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Raid Quests/1314_Alisaie's Resolve.json b/QuestPaths/2.x - A Realm Reborn/Raid Quests/1314_Alisaie's Resolve.json new file mode 100644 index 00000000..dfeadd0e --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Raid Quests/1314_Alisaie's Resolve.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": [ + { + "Position": { + "X": -59.93238, + "Y": 77.08961, + "Z": -204.68428 + }, + "TerritoryId": 147, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Northern Thanalan - Ceruleum Processing Plant", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + }, + { + "DataId": 1008540, + "Position": { + "X": -60.31891, + "Y": 76.76807, + "Z": -203.23492 + }, + "TerritoryId": 147, + "InteractionType": "AcceptQuest", + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_GAIUSD302_01314_Q1_000_000", + "Yes": false + } + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "TerritoryId": 132, + "InteractionType": "UseItem", + "ItemId": 30362, + "TargetTerritoryId": 140 + }, + { + "Position": { + "X": -492.96475, + "Y": 20.999884, + "Z": -380.82272 + }, + "TerritoryId": 140, + "InteractionType": "WalkTo", + "$": "Avoid walking around Waking Sands table" + }, + { + "DataId": 2001711, + "Position": { + "X": -480.9181, + "Y": 18.00103, + "Z": -386.862 + }, + "TerritoryId": 140, + "InteractionType": "Interact", + "TargetTerritoryId": 212 + }, + { + "DataId": 1007478, + "Position": { + "X": -2.822998, + "Y": -3.0000014, + "Z": -56.229553 + }, + "TerritoryId": 212, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Raid Quests/43_Fragments of Truth.json b/QuestPaths/2.x - A Realm Reborn/Raid Quests/43_Fragments of Truth.json new file mode 100644 index 00000000..3f8b8c2f --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Raid Quests/43_Fragments of Truth.json @@ -0,0 +1,173 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "Comment": "Only Turn 13 is required for the next quest to unlock", + "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": 1007478, + "Position": { + "X": -2.822998, + "Y": -3.0000014, + "Z": -56.229553 + }, + "TerritoryId": 212, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": 430.20032, + "Y": 3.6547468, + "Z": 168.62611 + }, + "TerritoryId": 145, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Eastern Thanalan - Camp Drybone", + "Fly": true + }, + { + "DataId": 1009769, + "Position": { + "X": 430.6858, + "Y": 3.26411, + "Z": 171.58765 + }, + "StopDistance": 5, + "TerritoryId": 145, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1009770, + "Position": { + "X": 469.5963, + "Y": -3.4332886, + "Z": -781.1856 + }, + "TerritoryId": 156, + "InteractionType": "Interact", + "AetheryteShortcut": "Mor Dhona", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1009771, + "Position": { + "X": -71.61066, + "Y": 48.96479, + "Z": -52.048523 + }, + "TerritoryId": 147, + "InteractionType": "Interact", + "AetheryteShortcut": "Northern Thanalan - Ceruleum Processing Plant" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "Position": { + "X": -67.2906, + "Y": 71.11877, + "Z": -189.74506 + }, + "TerritoryId": 147, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 1009772, + "Position": { + "X": -67.12445, + "Y": 71.293205, + "Z": -190.96667 + }, + "TerritoryId": 147, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1009768, + "Position": { + "X": -103.868225, + "Y": 51.873333, + "Z": -58.365784 + }, + "TerritoryId": 147, + "InteractionType": "CompleteQuest", + "Fly": true, + "NextQuestId": 44 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Raid Quests/44_Alisaie's Path.json b/QuestPaths/2.x - A Realm Reborn/Raid Quests/44_Alisaie's Path.json new file mode 100644 index 00000000..731170bc --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Raid Quests/44_Alisaie's Path.json @@ -0,0 +1,46 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1009777, + "Position": { + "X": -59.983215, + "Y": 76.798584, + "Z": -204.0589 + }, + "StopDistance": 1, + "TerritoryId": 147, + "InteractionType": "AcceptQuest", + "Fly": true, + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_GAIUSD502_00044_Q1_000_000", + "Yes": false + } + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1009771, + "Position": { + "X": -71.61066, + "Y": 48.96479, + "Z": -52.048523 + }, + "TerritoryId": 147, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} From 26c698b86b0b61e0e7c47b64b854f33cdb4195ea Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sun, 8 Sep 2024 20:07:26 +0200 Subject: [PATCH 202/450] Version bump --- Directory.Build.targets | 2 +- .../911_Avalonia Fallen_MIN.json | 26 +++++++++++++++---- .../914_Avalonia Fallen_BTN.json | 12 +++++++-- 3 files changed, 32 insertions(+), 8 deletions(-) diff --git a/Directory.Build.targets b/Directory.Build.targets index b6de8ec4..e65ff76c 100644 --- a/Directory.Build.targets +++ b/Directory.Build.targets @@ -1,5 +1,5 @@ - 2.20 + 3.0 diff --git a/GatheringPaths/3.x - Heavensward/The Dravanian Forelands/911_Avalonia Fallen_MIN.json b/GatheringPaths/3.x - Heavensward/The Dravanian Forelands/911_Avalonia Fallen_MIN.json index 0a329266..649e0ef6 100644 --- a/GatheringPaths/3.x - Heavensward/The Dravanian Forelands/911_Avalonia Fallen_MIN.json +++ b/GatheringPaths/3.x - Heavensward/The Dravanian Forelands/911_Avalonia Fallen_MIN.json @@ -19,10 +19,18 @@ "X": -528.8412, "Y": -89.70924, "Z": 458.582 - } + }, + "MinimumAngle": -10, + "MaximumAngle": 80, + "MinimumDistance": 2.1, + "MaximumDistance": 3 } ] - }, + } + ] + }, + { + "Nodes": [ { "DataId": 34383, "Locations": [ @@ -31,10 +39,16 @@ "X": -636.4533, "Y": -100.1258, "Z": 484.7436 - } + }, + "MinimumAngle": -75, + "MaximumAngle": 35 } ] - }, + } + ] + }, + { + "Nodes": [ { "DataId": 34384, "Locations": [ @@ -43,7 +57,9 @@ "X": -589.4542, "Y": -100.4852, "Z": 528.1926 - } + }, + "MinimumAngle": -25, + "MaximumAngle": 120 } ] } diff --git a/GatheringPaths/3.x - Heavensward/The Dravanian Forelands/914_Avalonia Fallen_BTN.json b/GatheringPaths/3.x - Heavensward/The Dravanian Forelands/914_Avalonia Fallen_BTN.json index 8dc152dc..d2b1d932 100644 --- a/GatheringPaths/3.x - Heavensward/The Dravanian Forelands/914_Avalonia Fallen_BTN.json +++ b/GatheringPaths/3.x - Heavensward/The Dravanian Forelands/914_Avalonia Fallen_BTN.json @@ -22,7 +22,11 @@ } } ] - }, + } + ] + }, + { + "Nodes": [ { "DataId": 34392, "Locations": [ @@ -34,7 +38,11 @@ } } ] - }, + } + ] + }, + { + "Nodes": [ { "DataId": 34393, "Locations": [ From 7348cee3c75f33469410aa334e9e6e9ec65be838 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Mon, 9 Sep 2024 15:49:30 +0200 Subject: [PATCH 203/450] Update IsRunning IPC --- Questionable/External/QuestionableIpc.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Questionable/External/QuestionableIpc.cs b/Questionable/External/QuestionableIpc.cs index e73053ef..c6459134 100644 --- a/Questionable/External/QuestionableIpc.cs +++ b/Questionable/External/QuestionableIpc.cs @@ -16,7 +16,8 @@ internal sealed class QuestionableIpc : IDisposable public QuestionableIpc(QuestController questController, IDalamudPluginInterface pluginInterface) { _isRunning = pluginInterface.GetIpcProvider(IpcIsRunning); - _isRunning.RegisterFunc(() => questController.IsRunning); + _isRunning.RegisterFunc(() => + questController.AutomationType != QuestController.EAutomationType.Manual || questController.IsRunning); _getCurrentQuestId = pluginInterface.GetIpcProvider(IpcGetCurrentQuestId); _getCurrentQuestId.RegisterFunc(() => questController.CurrentQuest?.Quest.Id.ToString()); From a1e7aa41220d15bf0e3cf50028e892938dd6c47f Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Mon, 9 Sep 2024 19:42:25 +0200 Subject: [PATCH 204/450] Never interrupt quests that are added to the manual priority window --- Questionable/Controller/QuestController.cs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Questionable/Controller/QuestController.cs b/Questionable/Controller/QuestController.cs index 2fcef5eb..8cb18d2e 100644 --- a/Questionable/Controller/QuestController.cs +++ b/Questionable/Controller/QuestController.cs @@ -727,6 +727,9 @@ internal sealed class QuestController : MiniTaskController, IDi if (type != ECurrentQuestType.Normal || currentQuest.Sequence == 0) return false; + if (ManualPriorityQuests.Contains(currentQuest.Quest)) + return false; + if (currentQuest.Quest.Info.AlliedSociety != EAlliedSociety.None) return false; From 461c96f7eed3e6c4971965597d8e581221445db8 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Mon, 9 Sep 2024 21:13:58 +0200 Subject: [PATCH 205/450] Minor adjustments for MNK quests --- .../MNK/1061_Brother from Another Mother.json | 23 ++++++--- .../MNK/1062_Insulted Intelligence.json | 19 +++++--- .../MNK/1065_Good Vibrations.json | 9 +++- .../MNK/554_Harder than Rock.json | 48 +++++++++++++++++-- .../MNK/558_The Spirit Is Willing.json | 1 + .../MNK/566_Star-crossed Rivals.json | 37 ++++++++++++-- Questionable/Functions/GameFunctions.cs | 4 +- 7 files changed, 114 insertions(+), 27 deletions(-) diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/1061_Brother from Another Mother.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/1061_Brother from Another Mother.json index ffeb9cf3..8c3d6643 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/1061_Brother from Another Mother.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/1061_Brother from Another Mother.json @@ -45,6 +45,20 @@ { "Sequence": 2, "Steps": [ + { + "Position": { + "X": -231.99818, + "Y": -28.997791, + "Z": 123.01078 + }, + "TerritoryId": 141, + "InteractionType": "WalkTo", + "AethernetShortcut": [ + "[Ul'dah] Goldsmiths' Guild", + "[Ul'dah] Gate of Nald (Central Thanalan)" + ], + "Fly": true + }, { "DataId": 2002439, "Position": { @@ -53,13 +67,8 @@ "Z": 125.29175 }, "TerritoryId": 141, - "InteractionType": "UseItem", - "ItemId": 2000951, - "AethernetShortcut": [ - "[Ul'dah] Goldsmiths' Guild", - "[Ul'dah] Gate of Nald (Central Thanalan)" - ], - "Fly": true + "InteractionType": "SinglePlayerDuty", + "ItemId": 2000951 } ] }, diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/1062_Insulted Intelligence.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/1062_Insulted Intelligence.json index b5c9395c..9e70c0f0 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/1062_Insulted Intelligence.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/1062_Insulted Intelligence.json @@ -6,14 +6,9 @@ "Sequence": 0, "Steps": [ { - "DataId": 1006749, - "Position": { - "X": -30.47229, - "Y": 13.599918, - "Z": 95.26196 - }, "TerritoryId": 131, - "InteractionType": "AcceptQuest", + "InteractionType": "EquipItem", + "ItemId": 4543, "AetheryteShortcut": "Ul'dah", "AethernetShortcut": [ "[Ul'dah] Aetheryte Plaza", @@ -27,6 +22,16 @@ "InSameTerritory": true } } + }, + { + "DataId": 1006749, + "Position": { + "X": -30.47229, + "Y": 13.599918, + "Z": 95.26196 + }, + "TerritoryId": 131, + "InteractionType": "AcceptQuest" } ] }, diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/1065_Good Vibrations.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/1065_Good Vibrations.json index ce891a9c..960c27cf 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/1065_Good Vibrations.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/1065_Good Vibrations.json @@ -96,7 +96,12 @@ }, "TerritoryId": 146, "InteractionType": "WalkTo", - "Fly": true + "Fly": true, + "SkipConditions": { + "StepIf": { + "Flying": "Locked" + } + } }, { "Position": { @@ -106,7 +111,7 @@ }, "TerritoryId": 146, "InteractionType": "WalkTo", - "Land": true + "Fly": true }, { "DataId": 2002548, diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/554_Harder than Rock.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/554_Harder than Rock.json index 299c7971..31c22487 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/554_Harder than Rock.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/554_Harder than Rock.json @@ -44,7 +44,15 @@ "Z": -59.55603 }, "TerritoryId": 130, - "InteractionType": "Interact" + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 8 + ] }, { "DataId": 2001282, @@ -54,7 +62,15 @@ "Z": -78.50769 }, "TerritoryId": 130, - "InteractionType": "Interact" + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] }, { "DataId": 2001283, @@ -64,7 +80,15 @@ "Z": -98.8938 }, "TerritoryId": 130, - "InteractionType": "Interact" + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 16 + ] }, { "DataId": 2001280, @@ -78,6 +102,14 @@ "AethernetShortcut": [ "[Ul'dah] Adventurers' Guild", "[Ul'dah] Thaumaturges' Guild" + ], + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 ] }, { @@ -88,7 +120,15 @@ "Z": 67.33801 }, "TerritoryId": 130, - "InteractionType": "Interact" + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] } ] }, diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/558_The Spirit Is Willing.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/558_The Spirit Is Willing.json index 2ec3b573..8924e6fd 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/558_The Spirit Is Willing.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/558_The Spirit Is Willing.json @@ -154,6 +154,7 @@ "Y": 7.405224, "Z": -29.312622 }, + "StopDistance": 6, "TerritoryId": 141, "InteractionType": "Interact" } diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/566_Star-crossed Rivals.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/566_Star-crossed Rivals.json index 79b73060..182c255c 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/566_Star-crossed Rivals.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/566_Star-crossed Rivals.json @@ -68,7 +68,14 @@ "TerritoryId": 146, "InteractionType": "UseItem", "ItemId": 2000409, - "RequiredQuestVariables": [[0], null, null, null, null, null] + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 16 + ] }, { "Position": { @@ -100,7 +107,14 @@ "TerritoryId": 146, "InteractionType": "UseItem", "ItemId": 2000409, - "RequiredQuestVariables": [[16], null, null, null, null, null] + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] }, { "DataId": 2001524, @@ -112,7 +126,14 @@ "TerritoryId": 146, "InteractionType": "UseItem", "ItemId": 2000409, - "RequiredQuestVariables": [[32], null, null, null, null, null], + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ], "Fly": true }, { @@ -125,7 +146,15 @@ "TerritoryId": 146, "InteractionType": "UseItem", "ItemId": 2000409, - "Fly": true + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] } ] }, diff --git a/Questionable/Functions/GameFunctions.cs b/Questionable/Functions/GameFunctions.cs index 90703500..07fb8c37 100644 --- a/Questionable/Functions/GameFunctions.cs +++ b/Questionable/Functions/GameFunctions.cs @@ -182,9 +182,7 @@ internal sealed unsafe class GameFunctions long result = AgentInventoryContext.Instance()->UseItem(itemId); _logger.LogInformation("UseItem result on {DataId}: {Result}", dataId, result); - - // TODO is 1 a generally accepted result? - return result == 0 || (itemId == 2002450 && result == 1); + return result is 0 or 1; } return false; From a9e9319966e4e581289b2fad49dcc42603256a87 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Mon, 9 Sep 2024 21:39:11 +0200 Subject: [PATCH 206/450] Minor adjustments for MNK quests --- .../MNK/2028_Against the Shadow.json | 16 ++++++++++++++++ .../MNK/2030_Stop the Senseless Killing.json | 12 +++++++++++- .../MNK/2031_Appetite for Destruction.json | 1 + 3 files changed, 28 insertions(+), 1 deletion(-) diff --git a/QuestPaths/3.x - Heavensward/Class Quests/MNK/2028_Against the Shadow.json b/QuestPaths/3.x - Heavensward/Class Quests/MNK/2028_Against the Shadow.json index 214af16b..a93e8d7b 100644 --- a/QuestPaths/3.x - Heavensward/Class Quests/MNK/2028_Against the Shadow.json +++ b/QuestPaths/3.x - Heavensward/Class Quests/MNK/2028_Against the Shadow.json @@ -40,6 +40,22 @@ } ] }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1013997, + "Position": { + "X": -78.29407, + "Y": 68.34659, + "Z": -157.33582 + }, + "StopDistance": 4, + "TerritoryId": 147, + "InteractionType": "Interact" + } + ] + }, { "Sequence": 255, "Steps": [ diff --git a/QuestPaths/3.x - Heavensward/Class Quests/MNK/2030_Stop the Senseless Killing.json b/QuestPaths/3.x - Heavensward/Class Quests/MNK/2030_Stop the Senseless Killing.json index 0e939a29..38585e24 100644 --- a/QuestPaths/3.x - Heavensward/Class Quests/MNK/2030_Stop the Senseless Killing.json +++ b/QuestPaths/3.x - Heavensward/Class Quests/MNK/2030_Stop the Senseless Killing.json @@ -26,6 +26,17 @@ { "Sequence": 1, "Steps": [ + { + "Position": { + "X": 873.8737, + "Y": -3.1452856, + "Z": 352.47165 + }, + "TerritoryId": 398, + "InteractionType": "WalkTo", + "AetheryteShortcut": "The Dravanian Forelands - Tailfeather", + "Fly": true + }, { "DataId": 1014005, "Position": { @@ -35,7 +46,6 @@ }, "TerritoryId": 397, "InteractionType": "Interact", - "AetheryteShortcut": "Coerthas Western Highlands - Falcon's Nest", "Fly": true } ] diff --git a/QuestPaths/3.x - Heavensward/Class Quests/MNK/2031_Appetite for Destruction.json b/QuestPaths/3.x - Heavensward/Class Quests/MNK/2031_Appetite for Destruction.json index b9cf2df6..32549063 100644 --- a/QuestPaths/3.x - Heavensward/Class Quests/MNK/2031_Appetite for Destruction.json +++ b/QuestPaths/3.x - Heavensward/Class Quests/MNK/2031_Appetite for Destruction.json @@ -72,6 +72,7 @@ "Y": 12.685881, "Z": -260.91406 }, + "StopDistance": 4, "TerritoryId": 146, "InteractionType": "CompleteQuest", "NextQuestId": 2426 From c2e4abc9b9c6adfa6e57c3050f8d6d3f76d1ef83 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Mon, 9 Sep 2024 22:02:14 +0200 Subject: [PATCH 207/450] Minor adjustments for MNK quests --- .../MNK/2426_A Fistful of Resolve.json | 1 + .../MNK/2427_Return of the Monk.json | 7 ++- .../MNK/2428_Cross-fist Training.json | 9 +++- .../MNK/2429_Choices and Paths.json | 13 ++++-- .../MNK/2430_The Power to Protect.json | 44 ++++++++++++++++--- 5 files changed, 63 insertions(+), 11 deletions(-) diff --git a/QuestPaths/4.x - Stormblood/Class Quests/MNK/2426_A Fistful of Resolve.json b/QuestPaths/4.x - Stormblood/Class Quests/MNK/2426_A Fistful of Resolve.json index 73f3621e..98b71b8b 100644 --- a/QuestPaths/4.x - Stormblood/Class Quests/MNK/2426_A Fistful of Resolve.json +++ b/QuestPaths/4.x - Stormblood/Class Quests/MNK/2426_A Fistful of Resolve.json @@ -59,6 +59,7 @@ }, "TerritoryId": 146, "InteractionType": "Interact", + "AetheryteShortcut": "Southern Thanalan - Little Ala Mhigo", "Mount": true } ] diff --git a/QuestPaths/4.x - Stormblood/Class Quests/MNK/2427_Return of the Monk.json b/QuestPaths/4.x - Stormblood/Class Quests/MNK/2427_Return of the Monk.json index 3afc9843..24d018c7 100644 --- a/QuestPaths/4.x - Stormblood/Class Quests/MNK/2427_Return of the Monk.json +++ b/QuestPaths/4.x - Stormblood/Class Quests/MNK/2427_Return of the Monk.json @@ -36,7 +36,11 @@ "TerritoryId": 612, "InteractionType": "Interact", "Fly": true, - "AetheryteShortcut": "Fringes - Castrum Oriens" + "AetheryteShortcut": "Rhalgr's Reach", + "AethernetShortcut": [ + "[Rhalgr's Reach] Aetheryte Plaza", + "[Rhalgr's Reach] Fringes Gate" + ] } ] }, @@ -141,6 +145,7 @@ "Y": 118.44431, "Z": -789.27295 }, + "StopDistance": 5, "TerritoryId": 620, "InteractionType": "CompleteQuest", "NextQuestId": 2428 diff --git a/QuestPaths/4.x - Stormblood/Class Quests/MNK/2428_Cross-fist Training.json b/QuestPaths/4.x - Stormblood/Class Quests/MNK/2428_Cross-fist Training.json index a58ddf73..5adc1fae 100644 --- a/QuestPaths/4.x - Stormblood/Class Quests/MNK/2428_Cross-fist Training.json +++ b/QuestPaths/4.x - Stormblood/Class Quests/MNK/2428_Cross-fist Training.json @@ -12,6 +12,7 @@ "Y": 118.44431, "Z": -789.27295 }, + "StopDistance": 5, "TerritoryId": 620, "InteractionType": "AcceptQuest", "AetheryteShortcut": "Peaks - Ala Gannha", @@ -35,7 +36,7 @@ }, "TerritoryId": 130, "AetheryteShortcut": "Ul'dah", - "InteractionType": "CompleteQuest" + "InteractionType": "Interact" } ] }, @@ -69,7 +70,11 @@ "TerritoryId": 612, "InteractionType": "Interact", "Fly": true, - "AetheryteShortcut": "Fringes - Castrum Oriens" + "AetheryteShortcut": "Rhalgr's Reach", + "AethernetShortcut": [ + "[Rhalgr's Reach] Aetheryte Plaza", + "[Rhalgr's Reach] Fringes Gate" + ] } ] }, diff --git a/QuestPaths/4.x - Stormblood/Class Quests/MNK/2429_Choices and Paths.json b/QuestPaths/4.x - Stormblood/Class Quests/MNK/2429_Choices and Paths.json index fbd3bd5b..4f7b3180 100644 --- a/QuestPaths/4.x - Stormblood/Class Quests/MNK/2429_Choices and Paths.json +++ b/QuestPaths/4.x - Stormblood/Class Quests/MNK/2429_Choices and Paths.json @@ -90,7 +90,11 @@ "TerritoryId": 612, "InteractionType": "Interact", "Fly": true, - "AetheryteShortcut": "Fringes - Peering Stones" + "AetheryteShortcut": "Rhalgr's Reach", + "AethernetShortcut": [ + "[Rhalgr's Reach] Aetheryte Plaza", + "[Rhalgr's Reach] Fringes Gate" + ] } ] }, @@ -107,11 +111,13 @@ "TerritoryId": 612, "InteractionType": "SinglePlayerDuty", "Fly": true, - "AetheryteShortcut": "Fringes - Castrum Oriens", - "$": "Will skip Sequence 6" + "AetheryteShortcut": "Fringes - Castrum Oriens" } ] }, + { + "Sequence": 6 + }, { "Sequence": 7, "Steps": [ @@ -122,6 +128,7 @@ "Y": 113.00655, "Z": -312.7337 }, + "StopDistance": 4, "TerritoryId": 612, "InteractionType": "Interact" } diff --git a/QuestPaths/4.x - Stormblood/Class Quests/MNK/2430_The Power to Protect.json b/QuestPaths/4.x - Stormblood/Class Quests/MNK/2430_The Power to Protect.json index 457226b0..21e6c078 100644 --- a/QuestPaths/4.x - Stormblood/Class Quests/MNK/2430_The Power to Protect.json +++ b/QuestPaths/4.x - Stormblood/Class Quests/MNK/2430_The Power to Protect.json @@ -59,11 +59,17 @@ "TerritoryId": 612, "InteractionType": "SinglePlayerDuty", "Fly": true, - "AetheryteShortcut": "Fringes - Castrum Oriens", - "$": "Will skip Sequence 5" + "AetheryteShortcut": "Rhalgr's Reach", + "AethernetShortcut": [ + "[Rhalgr's Reach] Aetheryte Plaza", + "[Rhalgr's Reach] Fringes Gate" + ] } ] }, + { + "Sequence": 3 + }, { "Sequence": 4, "Steps": [ @@ -74,8 +80,17 @@ "Y": 118.22339, "Z": -785.12244 }, + "StopDistance": 7, "TerritoryId": 620, - "InteractionType": "Interact" + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] }, { "DataId": 1022538, @@ -84,8 +99,17 @@ "Y": 118.32745, "Z": -786.9841 }, + "StopDistance": 7, "TerritoryId": 620, - "InteractionType": "Interact" + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] }, { "DataId": 1022392, @@ -94,8 +118,17 @@ "Y": 118.4737, "Z": -788.4489 }, + "StopDistance": 7, "TerritoryId": 620, - "InteractionType": "Interact" + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] } ] }, @@ -109,6 +142,7 @@ "Y": 118.44431, "Z": -789.27295 }, + "StopDistance": 7, "TerritoryId": 620, "InteractionType": "CompleteQuest", "NextQuestId": 3211 From 3f3627320ef05f229cc8df8c590342db500ca4a8 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Mon, 9 Sep 2024 23:49:35 +0200 Subject: [PATCH 208/450] Tweak custom delivery/gathering --- .../The Peaks/531_Sleeping Stones_MIN.json | 8 +++++--- .../Custom Deliveries/M'naago/S2_M'naago.json | 4 ++++ Questionable/Controller/GatheringController.cs | 1 + 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/GatheringPaths/4.x - Stormblood/The Peaks/531_Sleeping Stones_MIN.json b/GatheringPaths/4.x - Stormblood/The Peaks/531_Sleeping Stones_MIN.json index 871aec20..c8a3de6f 100644 --- a/GatheringPaths/4.x - Stormblood/The Peaks/531_Sleeping Stones_MIN.json +++ b/GatheringPaths/4.x - Stormblood/The Peaks/531_Sleeping Stones_MIN.json @@ -84,8 +84,10 @@ "Y": 257.4255, "Z": -669.3115 }, - "MinimumAngle": -30, - "MaximumAngle": 5 + "MinimumAngle": -50, + "MaximumAngle": -15, + "MinimumDistance": 2.1, + "MaximumDistance": 3 } ] } @@ -133,4 +135,4 @@ ] } ] -} +} \ No newline at end of file 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 4acf85fc..1908b500 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 @@ -16,6 +16,10 @@ "InteractionType": "Interact", "RequiredGatheredItems": [], "AetheryteShortcut": "Rhalgr's Reach", + "AethernetShortcut": [ + "[Rhalgr's Reach] Aetheryte Plaza", + "[Rhalgr's Reach] Northeastern Rhalgr's Reach" + ], "DialogueChoices": [ { "Type": "List", diff --git a/Questionable/Controller/GatheringController.cs b/Questionable/Controller/GatheringController.cs index 36a09a9f..ffa01244 100644 --- a/Questionable/Controller/GatheringController.cs +++ b/Questionable/Controller/GatheringController.cs @@ -192,6 +192,7 @@ internal sealed unsafe class GatheringController : MiniTaskController())); + _taskQueue.Enqueue(_mountFactory.Unmount()); _taskQueue.Enqueue(_interactFactory.Interact(currentNode.DataId, null, EInteractionType.InternalGather, true)); QueueGatherNode(currentNode); From b2b86f699738b15b02211534a8669f291995a9e0 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Mon, 9 Sep 2024 23:54:15 +0200 Subject: [PATCH 209/450] Minor gathering tweaks --- .../6.x - Endwalker/Elpis/824_Northerly Zephyrneus_MIN.json | 5 +++-- .../Controller/Steps/Shared/GatheringRequiredItems.cs | 1 + 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/GatheringPaths/6.x - Endwalker/Elpis/824_Northerly Zephyrneus_MIN.json b/GatheringPaths/6.x - Endwalker/Elpis/824_Northerly Zephyrneus_MIN.json index 8655bdc8..a2b4b035 100644 --- a/GatheringPaths/6.x - Endwalker/Elpis/824_Northerly Zephyrneus_MIN.json +++ b/GatheringPaths/6.x - Endwalker/Elpis/824_Northerly Zephyrneus_MIN.json @@ -4,7 +4,8 @@ "Steps": [ { "TerritoryId": 961, - "InteractionType": "None" + "InteractionType": "None", + "AetheryteShortcut": "Elpis - Poieten Oikos" } ], "Groups": [ @@ -161,4 +162,4 @@ ] } ] -} \ No newline at end of file +} diff --git a/Questionable/Controller/Steps/Shared/GatheringRequiredItems.cs b/Questionable/Controller/Steps/Shared/GatheringRequiredItems.cs index b500046b..48ad33bb 100644 --- a/Questionable/Controller/Steps/Shared/GatheringRequiredItems.cs +++ b/Questionable/Controller/Steps/Shared/GatheringRequiredItems.cs @@ -155,5 +155,6 @@ internal static class GatheringRequiredItems { public bool Start() => true; public ETaskResult Update() => ETaskResult.TaskComplete; + public override string ToString() => "Gather/SkipMarker"; } } From 9deacfbb4a9643bd9195bf93d63f6080407eae2a Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Tue, 10 Sep 2024 20:44:37 +0200 Subject: [PATCH 210/450] Add Kurenai quest --- ...p Where They Trade All Day in the Sun.json | 115 ++++++++++++++++++ .../4885_Lost Promise.json | 1 + 2 files changed, 116 insertions(+) create mode 100644 QuestPaths/4.x - Stormblood/Custom Deliveries/Kurenai/3140_Up Where They Trade All Day in the Sun.json diff --git a/QuestPaths/4.x - Stormblood/Custom Deliveries/Kurenai/3140_Up Where They Trade All Day in the Sun.json b/QuestPaths/4.x - Stormblood/Custom Deliveries/Kurenai/3140_Up Where They Trade All Day in the Sun.json new file mode 100644 index 00000000..74c2e3d2 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Custom Deliveries/Kurenai/3140_Up Where They Trade All Day in the Sun.json @@ -0,0 +1,115 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1025878, + "Position": { + "X": 343.984, + "Y": -120.32947, + "Z": -306.0197 + }, + "TerritoryId": 613, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": 322.1539, + "Y": -121.22571, + "Z": -314.2446 + }, + "TerritoryId": 613, + "InteractionType": "WalkTo", + "RestartNavigationIfCancelled": false, + "Mount": true + }, + { + "Position": { + "X": 22.288645, + "Y": -196.2301, + "Z": -155.5739 + }, + "TerritoryId": 613, + "InteractionType": "WalkTo", + "$": "Sui-no-Sato, NE outside", + "RestartNavigationIfCancelled": false + }, + { + "DataId": 1025966, + "Position": { + "X": -10.51355, + "Y": -187.08374, + "Z": -95.07898 + }, + "TerritoryId": 613, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2009560, + "Position": { + "X": 855.1002, + "Y": 1.1749268, + "Z": 876.0051 + }, + "TerritoryId": 613, + "InteractionType": "Interact", + "AetheryteShortcut": "Kugane", + "AethernetShortcut": [ + "[Kugane] Aetheryte Plaza", + "[Kugane] The Ruby Price" + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1025968, + "Position": { + "X": 35.477173, + "Y": 5.9422755, + "Z": -143.63324 + }, + "TerritoryId": 628, + "InteractionType": "Interact", + "AetheryteShortcut": "Kugane", + "AethernetShortcut": [ + "[Kugane] Aetheryte Plaza", + "[Kugane] Rakuza District" + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1025878, + "Position": { + "X": 343.984, + "Y": -120.32947, + "Z": -306.0197 + }, + "TerritoryId": 613, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ruby Sea - Tamamizu" + } + ] + } + ] +} diff --git a/QuestPaths/7.x - Dawntrail/MSQ/B-Kozama'uka2-Urqopacha2/4885_Lost Promise.json b/QuestPaths/7.x - Dawntrail/MSQ/B-Kozama'uka2-Urqopacha2/4885_Lost Promise.json index 9ea2d2f8..4b02bd7e 100644 --- a/QuestPaths/7.x - Dawntrail/MSQ/B-Kozama'uka2-Urqopacha2/4885_Lost Promise.json +++ b/QuestPaths/7.x - Dawntrail/MSQ/B-Kozama'uka2-Urqopacha2/4885_Lost Promise.json @@ -59,6 +59,7 @@ "Y": 115.180565, "Z": 236.59106 }, + "StopDistance": 4, "TerritoryId": 1188, "InteractionType": "Interact" }, From d54bd048ff1a8a9b011f38d5dbe68bff49c075a0 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Tue, 10 Sep 2024 20:44:47 +0200 Subject: [PATCH 211/450] Fix NRE --- Questionable/Controller/QuestController.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Questionable/Controller/QuestController.cs b/Questionable/Controller/QuestController.cs index 8cb18d2e..6a0934aa 100644 --- a/Questionable/Controller/QuestController.cs +++ b/Questionable/Controller/QuestController.cs @@ -318,7 +318,8 @@ internal sealed class QuestController : MiniTaskController, IDi _logger.LogInformation("New quest: {QuestName}", quest.Info.Name); _startedQuest = new QuestProgress(quest, currentSequence); - if (_clientState.LocalPlayer!.Level < quest.Info.Level) + if (_clientState.LocalPlayer != null && + _clientState.LocalPlayer.Level < quest.Info.Level) { _logger.LogInformation( "Stopping automation, player level ({PlayerLevel}) < quest level ({QuestLevel}", From 9369c837c65eeb25ce2cc025362ee651ed132606 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Tue, 10 Sep 2024 21:04:33 +0200 Subject: [PATCH 212/450] Add suffix to venture unlock quests --- ...ture.json => 1433_An Ill-conceived Venture (Limsa).json} | 6 +----- Questionable/Model/QuestInfo.cs | 3 +++ 2 files changed, 4 insertions(+), 5 deletions(-) rename QuestPaths/2.x - A Realm Reborn/Unlocks/Misc/{1433_An Ill-conceived Venture.json => 1433_An Ill-conceived Venture (Limsa).json} (93%) diff --git a/QuestPaths/2.x - A Realm Reborn/Unlocks/Misc/1433_An Ill-conceived Venture.json b/QuestPaths/2.x - A Realm Reborn/Unlocks/Misc/1433_An Ill-conceived Venture (Limsa).json similarity index 93% rename from QuestPaths/2.x - A Realm Reborn/Unlocks/Misc/1433_An Ill-conceived Venture.json rename to QuestPaths/2.x - A Realm Reborn/Unlocks/Misc/1433_An Ill-conceived Venture (Limsa).json index 605677c4..409ae27d 100644 --- a/QuestPaths/2.x - A Realm Reborn/Unlocks/Misc/1433_An Ill-conceived Venture.json +++ b/QuestPaths/2.x - A Realm Reborn/Unlocks/Misc/1433_An Ill-conceived Venture (Limsa).json @@ -17,10 +17,7 @@ "InteractionType": "AcceptQuest", "SkipConditions": { "AetheryteShortcutIf": { - "InSameTerritory": true, - "InTerritory": [ - 129 - ] + "InSameTerritory": true } } } @@ -71,4 +68,3 @@ } ] } - \ No newline at end of file diff --git a/Questionable/Model/QuestInfo.cs b/Questionable/Model/QuestInfo.cs index aeda70c3..05603009 100644 --- a/Questionable/Model/QuestInfo.cs +++ b/Questionable/Model/QuestInfo.cs @@ -28,6 +28,9 @@ internal sealed class QuestInfo : IQuestInfo 570 => " (Thaumaturge)", 673 => " (Ul'dah)", 674 => " (Limsa/Gridania)", + 1432 => " (Gridania)", + 1433 => " (Limsa)", + 1434 => " (Ul'dah)", _ => "", }; From 71c13b6742f25f9d27944a0d12c893eabcbc3a4b Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Sun, 1 Sep 2024 22:15:46 +0800 Subject: [PATCH 213/450] Added "Aspected Benefic" to the list of Actions --- QuestPaths/quest-v1.json | 1 + Questionable.Model/Questing/Converter/ActionConverter.cs | 1 + Questionable.Model/Questing/EAction.cs | 1 + 3 files changed, 3 insertions(+) diff --git a/QuestPaths/quest-v1.json b/QuestPaths/quest-v1.json index 8068adef..3f3cb325 100644 --- a/QuestPaths/quest-v1.json +++ b/QuestPaths/quest-v1.json @@ -875,6 +875,7 @@ "Cure II", "Esuna", "Physick", + "Aspected Benefic", "Form Shift", "Buffet (Sanuwa)", "Buffet (Griffin)", diff --git a/Questionable.Model/Questing/Converter/ActionConverter.cs b/Questionable.Model/Questing/Converter/ActionConverter.cs index 2ccd2388..d5de1fc1 100644 --- a/Questionable.Model/Questing/Converter/ActionConverter.cs +++ b/Questionable.Model/Questing/Converter/ActionConverter.cs @@ -17,6 +17,7 @@ public sealed class ActionConverter() : EnumConverter(Values) { EAction.Cure2, "Cure II" }, { EAction.Esuna, "Esuna" }, { EAction.Physick, "Physick" }, + { EAction.AspectedBenefic, "Aspected Benefic" }, { EAction.FormShift, "Form Shift" }, { EAction.BuffetSanuwa, "Buffet (Sanuwa)" }, { EAction.BuffetGriffin, "Buffet (Griffin)" }, diff --git a/Questionable.Model/Questing/EAction.cs b/Questionable.Model/Questing/EAction.cs index f3f905c9..fc4afa38 100644 --- a/Questionable.Model/Questing/EAction.cs +++ b/Questionable.Model/Questing/EAction.cs @@ -16,6 +16,7 @@ public enum EAction Cure2 = 135, Esuna = 7568, Physick = 190, + AspectedBenefic = 3595, FormShift = 4262, BuffetSanuwa = 4931, BuffetGriffin = 4583, From 8c6449c326c1258da5d205df9a4927c3bc68a3f2 Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Mon, 2 Sep 2024 01:06:46 +0800 Subject: [PATCH 214/450] Added the final job quests for the following jobs: - AST - BLM - BRD - DRG - DRK - MCH - MNK - NIN - PLD - RDM - SAM - SCH - SMN - WAR - WHM - DRK - MNK - NIN - SAM - SCH - WHM --- .../AST/3222_Love, Astrologically.json | 156 ++++++++++++++ .../BLM/3216_A Home for a Tome.json | 155 ++++++++++++++ .../BRD/3214_A Harmony from the Heavens.json | 138 ++++++++++++ .../DRG/3213_Gone but Not Forgiven.json | 120 +++++++++++ .../Class Quests/DRK/3221_Our Closure.json | 189 +++++++++++++++++ .../MCH/3220_Machinists for the Morrow.json | 148 +++++++++++++ .../MNK/3211_A Monk's Legacy.json | 138 ++++++++++++ .../NIN/3219_Oboro's Big Idea.json | 197 ++++++++++++++++++ .../PLD/3210_Worth Fighting For.json | 93 +++++++++ .../RDM/3224_Succession of Steel.json | 176 ++++++++++++++++ .../SAM/3223_The Legend of Musosai.json | 118 +++++++++++ .../Class Quests/SCH/3218_True Beauty.json | 182 ++++++++++++++++ .../SMN/4033_To Be Second Best.json | 111 ++++++++++ ...12_Once, Twice, Three Times a Warrior.json | 194 +++++++++++++++++ .../WHM/3215_Whence the Healing Springs.json | 126 +++++++++++ 15 files changed, 2241 insertions(+) create mode 100644 QuestPaths/5.x - Shadowbringers/Class Quests/AST/3222_Love, Astrologically.json create mode 100644 QuestPaths/5.x - Shadowbringers/Class Quests/BLM/3216_A Home for a Tome.json create mode 100644 QuestPaths/5.x - Shadowbringers/Class Quests/BRD/3214_A Harmony from the Heavens.json create mode 100644 QuestPaths/5.x - Shadowbringers/Class Quests/DRG/3213_Gone but Not Forgiven.json create mode 100644 QuestPaths/5.x - Shadowbringers/Class Quests/DRK/3221_Our Closure.json create mode 100644 QuestPaths/5.x - Shadowbringers/Class Quests/MCH/3220_Machinists for the Morrow.json create mode 100644 QuestPaths/5.x - Shadowbringers/Class Quests/MNK/3211_A Monk's Legacy.json create mode 100644 QuestPaths/5.x - Shadowbringers/Class Quests/NIN/3219_Oboro's Big Idea.json create mode 100644 QuestPaths/5.x - Shadowbringers/Class Quests/PLD/3210_Worth Fighting For.json create mode 100644 QuestPaths/5.x - Shadowbringers/Class Quests/RDM/3224_Succession of Steel.json create mode 100644 QuestPaths/5.x - Shadowbringers/Class Quests/SAM/3223_The Legend of Musosai.json create mode 100644 QuestPaths/5.x - Shadowbringers/Class Quests/SCH/3218_True Beauty.json create mode 100644 QuestPaths/5.x - Shadowbringers/Class Quests/SMN/4033_To Be Second Best.json create mode 100644 QuestPaths/5.x - Shadowbringers/Class Quests/WAR/3212_Once, Twice, Three Times a Warrior.json create mode 100644 QuestPaths/5.x - Shadowbringers/Class Quests/WHM/3215_Whence the Healing Springs.json diff --git a/QuestPaths/5.x - Shadowbringers/Class Quests/AST/3222_Love, Astrologically.json b/QuestPaths/5.x - Shadowbringers/Class Quests/AST/3222_Love, Astrologically.json new file mode 100644 index 00000000..aa2a6fed --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Class Quests/AST/3222_Love, Astrologically.json @@ -0,0 +1,156 @@ +{ + "$schema": "https://git.carvel.li/plogon_enjoyer/Questionable/raw/branch/temp/QuestPaths/quest-v1.json", + "Author": "plogon_enjoyer", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1012222, + "Position": { + "X": 202.38037, + "Y": -5.3999662, + "Z": -58.9151 + }, + "TerritoryId": 419, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] Athenaeum Astrologicum" + ] + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1021255, + "Position": { + "X": -0.35101318, + "Y": 11.965101, + "Z": 45.029297 + }, + "TerritoryId": 419, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Ishgard] Athenaeum Astrologicum", + "[Ishgard] The Last Vigil" + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1028385, + "Position": { + "X": -48.17273, + "Y": 8.05915, + "Z": 15.762573 + }, + "TerritoryId": 418, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Ishgard] The Last Vigil", + "[Ishgard] Aetheryte Plaza" + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1028386, + "Position": { + "X": 199.17603, + "Y": -5.3999653, + "Z": -57.38922 + }, + "TerritoryId": 419, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] Athenaeum Astrologicum" + ] + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1028388, + "Position": { + "X": -4.989685, + "Y": 27.716667, + "Z": -130.9682 + }, + "TerritoryId": 419, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Ishgard] Athenaeum Astrologicum", + "[Ishgard] Saint Reymanaud's Cathedral" + ] + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1028390, + "Position": { + "X": 244.64783, + "Y": 323.99997, + "Z": -303.3036 + }, + "TerritoryId": 155, + "InteractionType": "Interact", + "Fly": true, + "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead" + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1028390, + "Position": { + "X": 244.64783, + "Y": 323.99997, + "Z": -303.3036 + }, + "TerritoryId": 155, + "InteractionType": "Action", + "Action": "Aspected Benefic", + "DelaySecondsAtStart": 2 + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1028391, + "Position": { + "X": 199.4812, + "Y": -5.3999653, + "Z": -60.44104 + }, + "TerritoryId": 419, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] Athenaeum Astrologicum" + ] + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Class Quests/BLM/3216_A Home for a Tome.json b/QuestPaths/5.x - Shadowbringers/Class Quests/BLM/3216_A Home for a Tome.json new file mode 100644 index 00000000..11559228 --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Class Quests/BLM/3216_A Home for a Tome.json @@ -0,0 +1,155 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "plogon_enjoyer", + "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" + ] + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1002279, + "Position": { + "X": -196.8872, + "Y": 18.459997, + "Z": 59.952637 + }, + "TerritoryId": 130, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Ul'dah] Weavers' Guild", + "[Ul'dah] Thaumaturges' Guild" + ], + "DialogueChoices": [ + { + "Prompt": "TEXT_LUCKBC007_03216_Q1_000_300", + "Type": "List", + "Answer": "TEXT_LUCKBC007_03216_A1_000_301" + }, + { + "Prompt": "TEXT_LUCKBC007_03216_Q1_000_100", + "Type": "List", + "Answer": "TEXT_LUCKBC007_03216_A1_000_101" + } + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1001708, + "Position": { + "X": -250.3548, + "Y": 18, + "Z": 80.88806 + }, + "TerritoryId": 130, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1029866, + "Position": { + "X": -173.08313, + "Y": 17.999998, + "Z": 74.906494 + }, + "TerritoryId": 130, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1029868, + "Position": { + "X": -89.21954, + "Y": 39.99999, + "Z": 106.98096 + }, + "TerritoryId": 131, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1001708, + "Position": { + "X": -250.3548, + "Y": 18, + "Z": 80.88806 + }, + "TerritoryId": 130, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Ul'dah] Alchemists' Guild", + "[Ul'dah] Thaumaturges' Guild" + ] + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1001708, + "Position": { + "X": -250.3548, + "Y": 18, + "Z": 80.88806 + }, + "TerritoryId": 130, + "InteractionType": "Interact" + } + ] + }, + { + "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" + ] + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Class Quests/BRD/3214_A Harmony from the Heavens.json b/QuestPaths/5.x - Shadowbringers/Class Quests/BRD/3214_A Harmony from the Heavens.json new file mode 100644 index 00000000..49db76ef --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Class Quests/BRD/3214_A Harmony from the Heavens.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": 1006750, + "Position": { + "X": 16.464417, + "Y": 6.750492, + "Z": -7.3396606 + }, + "TerritoryId": 153, + "InteractionType": "AcceptQuest", + "Fly": true, + "AetheryteShortcut": "South Shroud - Quarrymill", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1030074, + "Position": { + "X": 192.58398, + "Y": -2.539064, + "Z": 73.59424 + }, + "TerritoryId": 132, + "InteractionType": "Interact", + "AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Archers' Guild" + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1030078, + "Position": { + "X": -180.34644, + "Y": -1.2285838, + "Z": 341.6953 + }, + "TerritoryId": 152, + "InteractionType": "Interact", + "Fly": true, + "AetheryteShortcut": "East Shroud - Hawthorne Hut" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2010182, + "Position": { + "X": -85.160645, + "Y": 6.0578003, + "Z": 398.64185 + }, + "TerritoryId": 152, + "InteractionType": "Say", + "ChatMessage": { + "Key": "TEXT_LUCKBC005_03214_SYSTEM_000_999" + }, + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 2010183, + "Position": { + "X": 38.376343, + "Y": 7.2785034, + "Z": 430.28906 + }, + "TerritoryId": 152, + "InteractionType": "Say", + "ChatMessage": { + "Key": "TEXT_LUCKBC005_03214_SYSTEM_000_999" + }, + "Fly": true + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1030081, + "Position": { + "X": 29.648315, + "Y": -18.800003, + "Z": 95.26196 + }, + "TerritoryId": 132, + "InteractionType": "Interact", + "AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Airship Landing" + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1030081, + "Position": { + "X": 29.648315, + "Y": -18.800003, + "Z": 95.26196 + }, + "TerritoryId": 132, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Class Quests/DRG/3213_Gone but Not Forgiven.json b/QuestPaths/5.x - Shadowbringers/Class Quests/DRG/3213_Gone but Not Forgiven.json new file mode 100644 index 00000000..bb270717 --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Class Quests/DRG/3213_Gone but Not Forgiven.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": 1006748, + "Position": { + "X": 217.88354, + "Y": 222, + "Z": 345.3269 + }, + "TerritoryId": 155, + "InteractionType": "AcceptQuest", + "Fly": true, + "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1029861, + "Position": { + "X": -753.78046, + "Y": 123.728714, + "Z": 206.43921 + }, + "TerritoryId": 400, + "InteractionType": "Interact", + "Fly": true, + "AetheryteShortcut": "The Churning Mists - Zenith" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2009923, + "Position": { + "X": -114.0307, + "Y": 145.09802, + "Z": -553.2159 + }, + "TerritoryId": 400, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1029862, + "Position": { + "X": -93.27844, + "Y": 137.46214, + "Z": -534.44727 + }, + "TerritoryId": 400, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1029863, + "Position": { + "X": 746.6697, + "Y": 69.99995, + "Z": 533.135 + }, + "TerritoryId": 621, + "InteractionType": "Interact", + "Fly": true, + "AetheryteShortcut": "Lochs - Ala Mhigan Quarter" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": 213.22748, + "Y": 222.08781, + "Z": 342.82468 + }, + "TerritoryId": 155, + "InteractionType": "WalkTo", + "Fly": true, + "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead" + }, + { + "DataId": 1006748, + "Position": { + "X": 217.88354, + "Y": 222, + "Z": 345.3269 + }, + "TerritoryId": 155, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Class Quests/DRK/3221_Our Closure.json b/QuestPaths/5.x - Shadowbringers/Class Quests/DRK/3221_Our Closure.json new file mode 100644 index 00000000..8be2d12b --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Class Quests/DRK/3221_Our Closure.json @@ -0,0 +1,189 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "plogon_enjoyer", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1013969, + "Position": { + "X": 104.234375, + "Y": 14.999986, + "Z": 40.787354 + }, + "TerritoryId": 418, + "InteractionType": "AcceptQuest", + "DialogueChoices": [ + { + "Prompt": "TEXT_LUCKBC012_03221_Q1_000_002", + "Type": "List", + "Answer": "TEXT_LUCKBC012_03221_A1_000_003" + } + ] + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2009976, + "Position": { + "X": 102.92212, + "Y": 15.915161, + "Z": 39.414062 + }, + "TerritoryId": 418, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1030087, + "Position": { + "X": -182.51324, + "Y": 2.0332975, + "Z": -5.56958 + }, + "TerritoryId": 418, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Ishgard] The Forgotten Knight", + "[Ishgard] Skysteel Manufactory" + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1030088, + "Position": { + "X": 104.93628, + "Y": 34.72381, + "Z": 10.208252 + }, + "TerritoryId": 418, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Ishgard] Skysteel Manufactory", + "[Ishgard] The Forgotten Knight" + ] + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1019486, + "Position": { + "X": -116.746826, + "Y": 0.6342248, + "Z": -55.832825 + }, + "TerritoryId": 635, + "InteractionType": "Interact", + "AetheryteShortcut": "Rhalgr's Reach", + "AethernetShortcut": [ + "[Rhalgr's Reach] Aetheryte Plaza", + "[Rhalgr's Reach] Western Rhalgr's Reach" + ] + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1006215, + "Position": { + "X": -227.34424, + "Y": 26.16842, + "Z": -352.98694 + }, + "TerritoryId": 146, + "InteractionType": "Interact", + "AetheryteShortcut": "Southern Thanalan - Little Ala Mhigo" + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1030089, + "Position": { + "X": 433.31042, + "Y": 68.09681, + "Z": -184.2832 + }, + "TerritoryId": 135, + "InteractionType": "Interact", + "Fly": true, + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] Tempest Gate (Lower La Noscea)" + ] + } + ] + }, + { + "Sequence": 7, + "Steps": [ + { + "DataId": 2009979, + "Position": { + "X": -95.10956, + "Y": 298.63428, + "Z": -212.54297 + }, + "TerritoryId": 155, + "InteractionType": "Say", + "ChatMessage": { + "Key": "TEXT_LUCKBC012_03221_SYSTEM_000_0160" + }, + "Fly": true, + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] The Gates of Judgement (Coerthas Central Highlands)" + ] + } + ] + }, + { + "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": [ + { + "Prompt": "TEXT_LUCKBC012_03221_Q3_000_192", + "Type": "List", + "Answer": "TEXT_LUCKBC012_03221_A3_000_193" + } + ] + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Class Quests/MCH/3220_Machinists for the Morrow.json b/QuestPaths/5.x - Shadowbringers/Class Quests/MCH/3220_Machinists for the Morrow.json new file mode 100644 index 00000000..10f1a8c6 --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Class Quests/MCH/3220_Machinists for the Morrow.json @@ -0,0 +1,148 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "plogon_enjoyer", + "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": 2009739, + "Position": { + "X": -116.44165, + "Y": 15.121643, + "Z": -53.574463 + }, + "TerritoryId": 418, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1014577, + "Position": { + "X": -154.31458, + "Y": 16.999992, + "Z": -53.3609 + }, + "TerritoryId": 418, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1014803, + "Position": { + "X": 484.39758, + "Y": 212.5841, + "Z": 724.2999 + }, + "TerritoryId": 397, + "InteractionType": "Interact", + "Fly": true, + "AetheryteShortcut": "Coerthas Western Highlands - Falcon's Nest" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 2009740, + "Position": { + "X": 348.01245, + "Y": 158.34277, + "Z": 153.03271 + }, + "TerritoryId": 397, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 2009741, + "Position": { + "X": 504.72266, + "Y": 121.62964, + "Z": 162.005 + }, + "TerritoryId": 397, + "InteractionType": "Combat", + "Fly": true, + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [10833] + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1028096, + "Position": { + "X": 343.00745, + "Y": 158.52606, + "Z": 152.75806 + }, + "TerritoryId": 397, + "InteractionType": "Interact", + "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" + ] + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Class Quests/MNK/3211_A Monk's Legacy.json b/QuestPaths/5.x - Shadowbringers/Class Quests/MNK/3211_A Monk's Legacy.json new file mode 100644 index 00000000..d886dfaf --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Class Quests/MNK/3211_A Monk's Legacy.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": 1006749, + "Position": { + "X": -30.47229, + "Y": 13.599918, + "Z": 95.26196 + }, + "TerritoryId": 131, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Goldsmiths' Guild" + ], + "SkipConditions": { + "AethernetShortcutIf": { + "InSameTerritory": true + }, + "AetheryteShortcutIf": { + "InTerritory": [130, 131] + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1028409, + "Position": { + "X": 103.4104, + "Y": 118.31935, + "Z": -706.1417 + }, + "TerritoryId": 620, + "InteractionType": "Interact", + "AetheryteShortcut": "Peaks - Ala Gannha", + "Fly": true + }, + { + "DataId": 1028410, + "Position": { + "X": 38.010254, + "Y": 118.13663, + "Z": -750.57605 + }, + "TerritoryId": 620, + "InteractionType": "Interact", + "Mount": true + }, + { + "DataId": 1028408, + "Position": { + "X": 55.649536, + "Y": 118.16888, + "Z": -784.2069 + }, + "TerritoryId": 620, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1028411, + "Position": { + "X": -140.67297, + "Y": 27.29529, + "Z": -408.16364 + }, + "TerritoryId": 146, + "InteractionType": "Interact", + "AetheryteShortcut": "Southern Thanalan - Little Ala Mhigo", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2009755, + "Position": { + "X": 64.86609, + "Y": -0.38153076, + "Z": -83.32953 + }, + "TerritoryId": 635, + "InteractionType": "Interact", + "AetheryteShortcut": "Rhalgr's Reach", + "AethernetShortcut": [ + "[Rhalgr's Reach] Aetheryte Plaza", + "[Rhalgr's Reach] Northeastern Rhalgr's Reach" + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1006749, + "Position": { + "X": -30.47229, + "Y": 13.599918, + "Z": 95.26196 + }, + "TerritoryId": 131, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Goldsmiths' Guild" + ], + "SkipConditions": { + "AethernetShortcutIf": { + "InSameTerritory": true + }, + "AetheryteShortcutIf": { + "InTerritory": [130, 131] + } + } + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Class Quests/NIN/3219_Oboro's Big Idea.json b/QuestPaths/5.x - Shadowbringers/Class Quests/NIN/3219_Oboro's Big Idea.json new file mode 100644 index 00000000..8ca27a67 --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Class Quests/NIN/3219_Oboro's Big Idea.json @@ -0,0 +1,197 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "plogon_enjoyer", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1010601, + "Position": { + "X": -14.755493, + "Y": 41.39178, + "Z": 258.13684 + }, + "TerritoryId": 137, + "InteractionType": "Interact", + "TargetTerritoryId": 137, + "AetheryteShortcut": "Eastern La Noscea - Wineport" + }, + { + "DataId": 1010139, + "Position": { + "X": -33.218933, + "Y": -24.674446, + "Z": 257.98413 + }, + "TerritoryId": 137, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1030049, + "Position": { + "X": -349.50793, + "Y": 57.270435, + "Z": -393.0572 + }, + "TerritoryId": 180, + "InteractionType": "Interact", + "Fly": true, + "AetheryteShortcut": "Outer La Noscea - Camp Overlook" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2010173, + "Position": { + "X": -310.0786, + "Y": 5.5999756, + "Z": -564.0803 + }, + "TerritoryId": 180, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "Position": { + "X": -302.34204, + "Y": 4.9819174, + "Z": -570.3643 + }, + "TerritoryId": 180, + "InteractionType": "WalkTo", + "Mount": true + }, + { + "Position": { + "X": -308.3169, + "Y": 5.7642717, + "Z": -571.4899 + }, + "TerritoryId": 180, + "InteractionType": "WalkTo" + }, + { + "DataId": 2010175, + "Position": { + "X": -302.72375, + "Y": 9.750427, + "Z": -578.02704 + }, + "TerritoryId": 180, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "Position": { + "X": -306.7621, + "Y": 5.7733507, + "Z": -570.97736 + }, + "TerritoryId": 180, + "InteractionType": "WalkTo" + }, + { + "Position": { + "X": -302.3223, + "Y": 4.976821, + "Z": -570.7108 + }, + "TerritoryId": 180, + "InteractionType": "WalkTo" + }, + { + "DataId": 2010180, + "Position": { + "X": -349.50793, + "Y": 57.236572, + "Z": -393.0572 + }, + "TerritoryId": 180, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1010601, + "Position": { + "X": -14.755493, + "Y": 41.39178, + "Z": 258.13684 + }, + "TerritoryId": 137, + "InteractionType": "Interact", + "TargetTerritoryId": 137, + "AetheryteShortcut": "Eastern La Noscea - Wineport" + }, + { + "DataId": 1010139, + "Position": { + "X": -33.218933, + "Y": -24.674446, + "Z": 257.98413 + }, + "TerritoryId": 137, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 2010181, + "Position": { + "X": -77.28699, + "Y": 40.97046, + "Z": -138.78088 + }, + "TerritoryId": 128, + "InteractionType": "Interact", + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] Culinarians' Guild" + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1030053, + "Position": { + "X": -153.67358, + "Y": -129.4397, + "Z": 264.60657 + }, + "TerritoryId": 129, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Class Quests/PLD/3210_Worth Fighting For.json b/QuestPaths/5.x - Shadowbringers/Class Quests/PLD/3210_Worth Fighting For.json new file mode 100644 index 00000000..4bef1f46 --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Class Quests/PLD/3210_Worth Fighting For.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": 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": 1001739, + "Position": { + "X": -94.529724, + "Y": 6.4999976, + "Z": 39.81079 + }, + "TerritoryId": 131, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Ul'dah] The Chamber of Rule", + "[Ul'dah] Gladiators' Guild" + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1028092, + "Position": { + "X": 213.58044, + "Y": 54.47546, + "Z": 228.19861 + }, + "TerritoryId": 140, + "InteractionType": "Interact", + "Fly": true, + "AethernetShortcut": [ + "[Ul'dah] Gladiators' Guild", + "[Ul'dah] Gate of the Sultana (Western Thanalan)" + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1001739, + "Position": { + "X": -94.529724, + "Y": 6.4999976, + "Z": 39.81079 + }, + "TerritoryId": 131, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Gladiators' Guild" + ] + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Class Quests/RDM/3224_Succession of Steel.json b/QuestPaths/5.x - Shadowbringers/Class Quests/RDM/3224_Succession of Steel.json new file mode 100644 index 00000000..76f80ac8 --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Class Quests/RDM/3224_Succession of Steel.json @@ -0,0 +1,176 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "plogon_enjoyer", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1023610, + "Position": { + "X": 55.313843, + "Y": 20.397943, + "Z": -676.3562 + }, + "TerritoryId": 156, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Mor Dhona" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1028372, + "Position": { + "X": 599.23694, + "Y": 80.00001, + "Z": 623.07153 + }, + "TerritoryId": 621, + "InteractionType": "Interact", + "AetheryteShortcut": "Lochs - Ala Mhigan Quarter", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1028374, + "Position": { + "X": 274.76917, + "Y": 10.572342, + "Z": -543.05334 + }, + "TerritoryId": 621, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1028379, + "Position": { + "X": 81.49841, + "Y": 10, + "Z": -574.2123 + }, + "TerritoryId": 621, + "InteractionType": "Interact", + "Fly": true, + "DialogueChoices": [ + { + "Prompt": "TEXT_LUCKBC015_03224_Q1_000_100", + "Type": "List", + "Answer": "TEXT_LUCKBC015_03224_A1_000_101" + } + ] + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1030849, + "Position": { + "X": 124.40674, + "Y": 10, + "Z": -515.58716 + }, + "TerritoryId": 621, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [10834, 10835], + "Fly": true + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1028374, + "Position": { + "X": 274.76917, + "Y": 10.572342, + "Z": -543.05334 + }, + "TerritoryId": 621, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1028376, + "Position": { + "X": -790.7988, + "Y": 78.22368, + "Z": -699.5804 + }, + "TerritoryId": 621, + "InteractionType": "Interact", + "AetheryteShortcut": "Lochs - Porta Praetoria", + "Fly": true + } + ] + }, + { + "Sequence": 7, + "Steps": [ + { + "DataId": 1028377, + "Position": { + "X": 51.346558, + "Y": 24.662476, + "Z": -787.9301 + }, + "TerritoryId": 621, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 8, + "Steps": [ + { + "DataId": 1028377, + "Position": { + "X": 51.346558, + "Y": 24.662476, + "Z": -787.9301 + }, + "TerritoryId": 621, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1030677, + "Position": { + "X": 55.313843, + "Y": 20.397943, + "Z": -676.3562 + }, + "TerritoryId": 156, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Mor Dhona" + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Class Quests/SAM/3223_The Legend of Musosai.json b/QuestPaths/5.x - Shadowbringers/Class Quests/SAM/3223_The Legend of Musosai.json new file mode 100644 index 00000000..a063825e --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Class Quests/SAM/3223_The Legend of Musosai.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": 1022184, + "Position": { + "X": 129.71692, + "Y": 15, + "Z": -157.61047 + }, + "TerritoryId": 628, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Kugane", + "AethernetShortcut": [ + "[Kugane] Aetheryte Plaza", + "[Kugane] Sekiseigumi Barracks" + ] + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1030622, + "Position": { + "X": 39.04773, + "Y": 8, + "Z": -119.76807 + }, + "TerritoryId": 130, + "InteractionType": "Interact", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Adventurers' Guild" + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1030057, + "Position": { + "X": -218.15833, + "Y": 31.684015, + "Z": 380.51416 + }, + "TerritoryId": 140, + "InteractionType": "Interact", + "Fly": true, + "AethernetShortcut": [ + "[Ul'dah] Adventurers' Guild", + "[Ul'dah] Gate of the Sultana (Western Thanalan)" + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1022189, + "Position": { + "X": -312.67267, + "Y": 33.089348, + "Z": 446.5553 + }, + "TerritoryId": 140, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1030058, + "Position": { + "X": -301.04523, + "Y": 13.9837475, + "Z": 292.8053 + }, + "TerritoryId": 140, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1030622, + "Position": { + "X": 39.04773, + "Y": 8, + "Z": -119.76807 + }, + "TerritoryId": 130, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Adventurers' Guild" + ] + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Class Quests/SCH/3218_True Beauty.json b/QuestPaths/5.x - Shadowbringers/Class Quests/SCH/3218_True Beauty.json new file mode 100644 index 00000000..444f7ac0 --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Class Quests/SCH/3218_True Beauty.json @@ -0,0 +1,182 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "plogon_enjoyer", + "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" + ] + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1043098, + "Position": { + "X": 206.0426, + "Y": -3.111818, + "Z": 41.94702 + }, + "TerritoryId": 139, + "InteractionType": "Interact", + "AetheryteShortcut": "Upper La Noscea - Camp Bronze Lake", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2009742, + "Position": { + "X": 69.565796, + "Y": 17.807251, + "Z": 234.88208 + }, + "TerritoryId": 153, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [10832], + "AetheryteShortcut": "South Shroud - Camp Tranquil", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1043098, + "Position": { + "X": 206.0426, + "Y": -3.111818, + "Z": 41.94702 + }, + "TerritoryId": 139, + "InteractionType": "Interact", + "AetheryteShortcut": "Upper La Noscea - Camp Bronze Lake", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1031208, + "Position": { + "X": 206.80542, + "Y": -3.065022, + "Z": 43.83911 + }, + "TerritoryId": 139, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "Position": { + "X": -277.67575, + "Y": 64.18076, + "Z": -163.79219 + }, + "TerritoryId": 180, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Outer La Noscea - Camp Overlook", + "Fly": true + }, + { + "DataId": 1028097, + "Position": { + "X": -276.56976, + "Y": 64.43479, + "Z": -161.18109 + }, + "TerritoryId": 180, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1043098, + "Position": { + "X": 206.0426, + "Y": -3.111818, + "Z": 41.94702 + }, + "TerritoryId": 139, + "InteractionType": "Interact", + "AetheryteShortcut": "Upper La Noscea - Camp Bronze Lake", + "Fly": true + } + ] + }, + { + "Sequence": 7, + "Steps": [ + { + "DataId": 1031208, + "Position": { + "X": 206.80542, + "Y": -3.065022, + "Z": 43.83911 + }, + "TerritoryId": 139, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 8, + "Steps": [ + { + "DataId": 1028373, + "Position": { + "X": 207.53784, + "Y": -3.049824, + "Z": 43.22876 + }, + "TerritoryId": 139, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1043098, + "Position": { + "X": 206.0426, + "Y": -3.111818, + "Z": 41.94702 + }, + "TerritoryId": 139, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Class Quests/SMN/4033_To Be Second Best.json b/QuestPaths/5.x - Shadowbringers/Class Quests/SMN/4033_To Be Second Best.json new file mode 100644 index 00000000..141e238f --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Class Quests/SMN/4033_To Be Second Best.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": 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" + ] + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1028406, + "Position": { + "X": 43.289795, + "Y": -8, + "Z": 108.62891 + }, + "TerritoryId": 132, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Gridania] Mih Khetto's Amphitheatre", + "[Gridania] Aetheryte Plaza" + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2011356, + "Position": { + "X": 58.304688, + "Y": -0.015319824, + "Z": 84.27551 + }, + "TerritoryId": 635, + "InteractionType": "Interact", + "AetheryteShortcut": "Rhalgr's Reach" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1024112, + "Position": { + "X": 796.933, + "Y": 69.9999, + "Z": 634.76 + }, + "TerritoryId": 621, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1028406, + "Position": { + "X": 43.289795, + "Y": -8, + "Z": 108.62891 + }, + "TerritoryId": 132, + "InteractionType": "Interact", + "AetheryteShortcut": "Gridania" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1006756, + "Position": { + "X": -16.891846, + "Y": 10.17425, + "Z": -246.87573 + }, + "TerritoryId": 133, + "InteractionType": "AcceptQuest", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Mih Khetto's Amphitheatre" + ] + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Class Quests/WAR/3212_Once, Twice, Three Times a Warrior.json b/QuestPaths/5.x - Shadowbringers/Class Quests/WAR/3212_Once, Twice, Three Times a Warrior.json new file mode 100644 index 00000000..79403bfe --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Class Quests/WAR/3212_Once, Twice, Three Times a Warrior.json @@ -0,0 +1,194 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "plogon_enjoyer", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1006746, + "Position": { + "X": 460.65454, + "Y": 8.309061, + "Z": 74.47925 + }, + "TerritoryId": 137, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Eastern La Noscea - Costa Del Sol", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + }, + "Fly": true, + "DialogueChoices": [ + { + "Prompt": "TEXT_LUCKBC003_03212_Q1_000_000", + "Type": "List", + "Answer": "TEXT_LUCKBC003_03212_A1_000_001" + } + ] + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": 219.98953, + "Y": 7.9999647, + "Z": 683.2227 + }, + "TerritoryId": 135, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Lower La Noscea - Moraby Drydocks", + "Fly": true + }, + { + "DataId": 1023885, + "Position": { + "X": 217.30359, + "Y": 7.999984, + "Z": 686.427 + }, + "TerritoryId": 135, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": 226.71358, + "Y": 8.000019, + "Z": 671.0062 + }, + "TerritoryId": 135, + "InteractionType": "WalkTo", + "Mount": true + }, + { + "DataId": 1030042, + "Position": { + "X": 425.10107, + "Y": 61.22168, + "Z": -42.404846 + }, + "TerritoryId": 135, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2010149, + "Position": { + "X": 345.3573, + "Y": 58.457275, + "Z": -63.523376 + }, + "TerritoryId": 135, + "InteractionType": "Action", + "Action": "Heavy Swing", + "Fly": true + }, + { + "DataId": 2010150, + "Position": { + "X": 369.43604, + "Y": 64.59143, + "Z": -88.85327 + }, + "TerritoryId": 135, + "InteractionType": "Action", + "Action": "Heavy Swing", + "Fly": true + }, + { + "DataId": 2010151, + "Position": { + "X": 360.95215, + "Y": 69.90149, + "Z": -119.06616 + }, + "TerritoryId": 135, + "InteractionType": "Action", + "Action": "Heavy Swing", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1030042, + "Position": { + "X": 425.10107, + "Y": 61.22168, + "Z": -42.404846 + }, + "TerritoryId": 135, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1030044, + "Position": { + "X": 435.8739, + "Y": 66.317635, + "Z": -276.56976 + }, + "TerritoryId": 135, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1030046, + "Position": { + "X": 433.9818, + "Y": 66.317635, + "Z": -277.48535 + }, + "TerritoryId": 135, + "InteractionType": "Action", + "Action": "Heavy Swing", + "DelaySecondsAtStart": 2 + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1006746, + "Position": { + "X": 460.65454, + "Y": 8.309061, + "Z": 74.47925 + }, + "TerritoryId": 137, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Eastern La Noscea - Costa Del Sol", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Class Quests/WHM/3215_Whence the Healing Springs.json b/QuestPaths/5.x - Shadowbringers/Class Quests/WHM/3215_Whence the Healing Springs.json new file mode 100644 index 00000000..7ce4fb3f --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Class Quests/WHM/3215_Whence the Healing Springs.json @@ -0,0 +1,126 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "plogon_enjoyer", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "Position": { + "X": -137.7745, + "Y": 10.010047, + "Z": 278.79453 + }, + "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": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1028418, + "Position": { + "X": -242.26752, + "Y": -4, + "Z": 1.2054443 + }, + "TerritoryId": 133, + "InteractionType": "Interact", + "AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Conjurers' Guild" + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1028419, + "Position": { + "X": -19.058533, + "Y": -32.58833, + "Z": 307.1488 + }, + "TerritoryId": 148, + "InteractionType": "Interact", + "AetheryteShortcut": "Central Shroud - Bentbranch Meadows", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1028423, + "Position": { + "X": -62.974, + "Y": -36.839226, + "Z": 473.3806 + }, + "TerritoryId": 148, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1028424, + "Position": { + "X": -19.85205, + "Y": -34.365856, + "Z": 416.76965 + }, + "TerritoryId": 148, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": -137.7745, + "Y": 10.010047, + "Z": 278.79453 + }, + "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": "CompleteQuest" + } + ] + } + ] +} From 224d53148310245ac477ef2a2c5cce3950b78b4b Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Tue, 10 Sep 2024 21:19:11 +0200 Subject: [PATCH 215/450] Add Gridania/Ul'dah venture unlocks --- ...2_An Ill-conceived Venture (Gridania).json | 112 ++++++++++++++++++ ...434_An Ill-conceived Venture (Ul'dah).json | 77 ++++++++++++ 2 files changed, 189 insertions(+) create mode 100644 QuestPaths/2.x - A Realm Reborn/Unlocks/Misc/1432_An Ill-conceived Venture (Gridania).json create mode 100644 QuestPaths/2.x - A Realm Reborn/Unlocks/Misc/1434_An Ill-conceived Venture (Ul'dah).json diff --git a/QuestPaths/2.x - A Realm Reborn/Unlocks/Misc/1432_An Ill-conceived Venture (Gridania).json b/QuestPaths/2.x - A Realm Reborn/Unlocks/Misc/1432_An Ill-conceived Venture (Gridania).json new file mode 100644 index 00000000..b6aed8bc --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Unlocks/Misc/1432_An Ill-conceived Venture (Gridania).json @@ -0,0 +1,112 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1008950, + "Position": { + "X": 29.19043, + "Y": -1.4123198, + "Z": 52.658813 + }, + "TerritoryId": 132, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Gridania", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1001263, + "Position": { + "X": 181.41443, + "Y": -2.3519497, + "Z": -240.40594 + }, + "TerritoryId": 133, + "InteractionType": "Interact", + "TargetTerritoryId": 152, + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Lancers' Guild" + ], + "SkipConditions": { + "StepIf": { + "AetheryteUnlocked": "East Shroud - Hawthorne Hut" + } + } + }, + { + "TerritoryId": 152, + "InteractionType": "AttuneAetheryte", + "Aetheryte": "East Shroud - Hawthorne Hut", + "SkipConditions": { + "StepIf": { + "AetheryteUnlocked": "East Shroud - Hawthorne Hut" + } + } + }, + { + "Position": { + "X": -53.214554, + "Y": -8.980761, + "Z": 297.15152 + }, + "TerritoryId": 152, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [ + 12 + ], + "AetheryteShortcut": "East Shroud - Hawthorne Hut", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + }, + { + "DataId": 1008951, + "Position": { + "X": -51.651794, + "Y": -8.992504, + "Z": 296.9253 + }, + "TerritoryId": 152, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1000233, + "Position": { + "X": 168.65796, + "Y": 15.5, + "Z": -95.99457 + }, + "StopDistance": 0.5, + "TerritoryId": 133, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Leatherworkers' Guild & Shaded Bower" + ] + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Unlocks/Misc/1434_An Ill-conceived Venture (Ul'dah).json b/QuestPaths/2.x - A Realm Reborn/Unlocks/Misc/1434_An Ill-conceived Venture (Ul'dah).json new file mode 100644 index 00000000..608541e7 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Unlocks/Misc/1434_An Ill-conceived Venture (Ul'dah).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": 1008798, + "Position": { + "X": -93.06476, + "Y": 4, + "Z": -124.712036 + }, + "TerritoryId": 130, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ul'dah", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": -240.09776, + "Y": -37.803402, + "Z": 105.18645 + }, + "StopDistance": 0.5, + "TerritoryId": 145, + "InteractionType": "Combat", + "AetheryteShortcut": "Eastern Thanalan - Camp Drybone", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [ + 138 + ] + }, + { + "DataId": 1008799, + "Position": { + "X": -237.72034, + "Y": -37.77224, + "Z": 103.4104 + }, + "TerritoryId": 145, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1001963, + "Position": { + "X": 106.06543, + "Y": 4.642026, + "Z": -72.007385 + }, + "TerritoryId": 131, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Sapphire Avenue Exchange" + ] + } + ] + } + ] +} From c49a388d531b607704a25c07350dc8864c8b24ec Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Tue, 10 Sep 2024 22:11:52 +0200 Subject: [PATCH 216/450] Only mark 'Close to Home' as unobtainable once one of them has been picked up or completed --- Directory.Build.targets | 2 +- Questionable/Functions/QuestFunctions.cs | 56 +++++++++++++----------- 2 files changed, 32 insertions(+), 26 deletions(-) diff --git a/Directory.Build.targets b/Directory.Build.targets index e65ff76c..0a5ba814 100644 --- a/Directory.Build.targets +++ b/Directory.Build.targets @@ -1,5 +1,5 @@ - 3.0 + 3.1 diff --git a/Questionable/Functions/QuestFunctions.cs b/Questionable/Functions/QuestFunctions.cs index 091150a8..0e12262e 100644 --- a/Questionable/Functions/QuestFunctions.cs +++ b/Questionable/Functions/QuestFunctions.cs @@ -476,34 +476,40 @@ internal sealed unsafe class QuestFunctions if (_questData.GetLockedClassQuests().Contains(questId)) return true; - unsafe + var startingCity = PlayerState.Instance()->StartTown; + if (questInfo.StartingCity > 0 && questInfo.StartingCity != startingCity) + return true; + + if (questId.Value == 674 && startingCity == 3) + return true; + if (questId.Value == 673 && startingCity != 3) + return true; + + Dictionary closeToHomeQuests = new() { - var startingCity = PlayerState.Instance()->StartTown; - if (questInfo.StartingCity > 0 && questInfo.StartingCity != startingCity) - return true; + { 108, EClassJob.Marauder }, + { 109, EClassJob.Arcanist }, + { 85, EClassJob.Lancer }, + { 123, EClassJob.Archer }, + { 124, EClassJob.Conjurer }, + { 568, EClassJob.Gladiator }, + { 569, EClassJob.Pugilist }, + { 570, EClassJob.Thaumaturge } + }; - if (questId.Value == 674 && startingCity == 3) + // The starting class experience is a bit confusing. If you start in Gridania, the MSQ next quest data will + // always select 'Close to Home (Lancer)' even if starting as Conjurer/Archer. However, if we always mark the + // Lancer quest as unobtainable, it'll not get picked up as Conjurer/Archer, and thus will stop questing. + // + // While the NPC offers all 3 quests, there's no manual selection, and interacting will automatically select the + // quest for your current class, then switch you from a dead-ish intro zone to the actual starting city + // (so that you can't come back later to pick up another quest). + if (closeToHomeQuests.TryGetValue(questId.Value, out EClassJob neededStartingClass) && + closeToHomeQuests.Any(x => IsQuestAcceptedOrComplete(new QuestId(x.Key)))) + { + EClassJob actualStartingClass = (EClassJob)PlayerState.Instance()->FirstClass; + if (actualStartingClass != neededStartingClass) return true; - if (questId.Value == 673 && startingCity != 3) - return true; - - Dictionary closeToHomeQuests = new() - { - { 108, EClassJob.Marauder }, - { 109, EClassJob.Arcanist }, - { 85, EClassJob.Lancer }, - { 123, EClassJob.Archer }, - { 124, EClassJob.Conjurer }, - { 568, EClassJob.Gladiator }, - { 569, EClassJob.Pugilist }, - { 570, EClassJob.Thaumaturge } - }; - if (closeToHomeQuests.TryGetValue(questId.Value, out EClassJob neededStartingClass)) - { - EClassJob actualStartingClass = (EClassJob)PlayerState.Instance()->FirstClass; - if (actualStartingClass != neededStartingClass) - return true; - } } return false; From 8b07532080060ab7e9f3ec4c000963cbbd43bd80 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Wed, 11 Sep 2024 10:36:08 +0200 Subject: [PATCH 217/450] Mark quests that you don't own the expac for as unobtainable --- Questionable/Functions/QuestFunctions.cs | 27 +++++++++++++++---- .../QuestJournalComponent.cs | 15 +++++++---- Questionable/Windows/PriorityWindow.cs | 2 +- 3 files changed, 33 insertions(+), 11 deletions(-) diff --git a/Questionable/Functions/QuestFunctions.cs b/Questionable/Functions/QuestFunctions.cs index 0e12262e..46f52f8f 100644 --- a/Questionable/Functions/QuestFunctions.cs +++ b/Questionable/Functions/QuestFunctions.cs @@ -453,10 +453,26 @@ internal sealed unsafe class QuestFunctions return !HasCompletedPreviousQuests(questInfo, extraCompletedQuest) || !HasCompletedPreviousInstances(questInfo); } + public bool IsQuestLocked(LeveId leveId) + { + if (IsQuestUnobtainable(leveId)) + return true; + + // this only checks for the current class + IQuestInfo questInfo = _questData.GetQuestInfo(leveId); + if (!questInfo.ClassJobs.Contains((EClassJob)_clientState.LocalPlayer!.ClassJob.Id) || + questInfo.Level > _clientState.LocalPlayer.Level) + return true; + + return !IsQuestAccepted(leveId) && QuestManager.Instance()->NumLeveAllowances == 0; + } + public bool IsQuestUnobtainable(ElementId elementId, ElementId? extraCompletedQuest = null) { if (elementId is QuestId questId) return IsQuestUnobtainable(questId, extraCompletedQuest); + else if (elementId is LeveId leveId) + return IsQuestUnobtainable(leveId); else return false; } @@ -464,6 +480,9 @@ internal sealed unsafe class QuestFunctions public bool IsQuestUnobtainable(QuestId questId, ElementId? extraCompletedQuest = null) { var questInfo = (QuestInfo)_questData.GetQuestInfo(questId); + if (questInfo.Expansion > (EExpansionVersion)PlayerState.Instance()->MaxExpansion) + return true; + if (questInfo.QuestLocks.Count > 0) { var completedQuests = questInfo.QuestLocks.Count(x => IsQuestComplete(x) || x.Equals(extraCompletedQuest)); @@ -515,15 +534,13 @@ internal sealed unsafe class QuestFunctions return false; } - public bool IsQuestLocked(LeveId leveId) + private bool IsQuestUnobtainable(LeveId leveId) { - // this only checks for the current class IQuestInfo questInfo = _questData.GetQuestInfo(leveId); - if (!questInfo.ClassJobs.Contains((EClassJob)_clientState.LocalPlayer!.ClassJob.Id) || - questInfo.Level > _clientState.LocalPlayer.Level) + if (questInfo.Expansion > (EExpansionVersion)PlayerState.Instance()->MaxExpansion) return true; - return !IsQuestAccepted(leveId) && QuestManager.Instance()->NumLeveAllowances == 0; + return false; } private bool HasCompletedPreviousQuests(QuestInfo questInfo, ElementId? extraCompletedQuest) diff --git a/Questionable/Windows/JournalComponents/QuestJournalComponent.cs b/Questionable/Windows/JournalComponents/QuestJournalComponent.cs index 715c045f..e1d2b6c5 100644 --- a/Questionable/Windows/JournalComponents/QuestJournalComponent.cs +++ b/Questionable/Windows/JournalComponents/QuestJournalComponent.cs @@ -224,12 +224,17 @@ internal sealed class QuestJournalComponent string len = 9999.ToString(CultureInfo.CurrentCulture); ImGui.PushFont(UiBuilder.MonoFont); - string text = - $"{count.ToString(CultureInfo.CurrentCulture).PadLeft(len.Length)} / {total.ToString(CultureInfo.CurrentCulture).PadLeft(len.Length)}"; - if (count == total) - ImGui.TextColored(ImGuiColors.ParsedGreen, text); + if (total == 0) + ImGui.TextColored(ImGuiColors.DalamudGrey, $"{"-".PadLeft(len.Length)} / {"-".PadLeft(len.Length)}"); else - ImGui.TextUnformatted(text); + { + string text = + $"{count.ToString(CultureInfo.CurrentCulture).PadLeft(len.Length)} / {total.ToString(CultureInfo.CurrentCulture).PadLeft(len.Length)}"; + if (count == total) + ImGui.TextColored(ImGuiColors.ParsedGreen, text); + else + ImGui.TextUnformatted(text); + } ImGui.PopFont(); } diff --git a/Questionable/Windows/PriorityWindow.cs b/Questionable/Windows/PriorityWindow.cs index 7c76aca3..60428f1c 100644 --- a/Questionable/Windows/PriorityWindow.cs +++ b/Questionable/Windows/PriorityWindow.cs @@ -81,7 +81,7 @@ internal sealed class PriorityWindow : LWindow { foundQuests = _questRegistry.AllQuests .Where(x => x.Info.Name.Contains(_searchString, StringComparison.CurrentCultureIgnoreCase)) - .Where(x => x.Id is not QuestId questId || !_questFunctions.IsQuestUnobtainable(questId)); + .Where(x => !_questFunctions.IsQuestUnobtainable(x.Id)); } else { From 320bb5edbe8b581032f4d5a2933f381db2b6554f Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Wed, 11 Sep 2024 16:58:07 +0200 Subject: [PATCH 218/450] Add snipe cheat --- .../The Azim Steppe/2771_Sheep Snatcher.json | 2 +- .../Alliance Raid Quests/3091_Desire.json | 2 +- .../A3.2-Yanxia 1/2495_A New Ruby Tithe.json | 6 +-- .../MSQ/B-4.1/2970_Securing the Saltery.json | 4 +- .../Pixies/Dailies/3707_Not the Beavers.json | 2 +- .../3285_A Fickle Existence.json | 2 +- .../3292_City of the Mord.json | 2 +- .../MSQ/C-Rak'tika/3323_A Little Faith.json | 2 +- .../C-Rak'tika/3330_A Beeautiful Plan.json | 2 +- .../3634_The View from Above.json | 2 +- .../E-Kholusia 2/3637_Meet the Tholls.json | 4 +- .../F-Tempest/3649_City of the Ancients.json | 2 +- .../MSQ/G-5.1/3680_Finding Good Help.json | 2 +- .../4363_Deeper into the Maze.json | 2 +- .../4406_Setting Things Straight.json | 2 +- .../MSQ/F-Labyrinthos2/4443_Wise Guides.json | 2 +- .../MSQ/G-UltimaThule/4460_x.json | 2 +- .../MSQ/G-UltimaThule/4461_Hello World.json | 2 +- .../4181_Scholarly Perspective.json | 2 +- .../4867_The Feat of Reeds.json | 2 +- .../4881_Lending a Helphand.json | 2 +- .../4921_Pick up the Pieces.json | 2 +- .../Shaaloani/5126_A Refined Perspective.json | 2 +- .../Yak T'el/5100_Carved in Stone.json | 2 +- QuestPaths/quest-v1.json | 1 + .../Converter/InteractionTypeConverter.cs | 1 + .../Questing/EInteractionType.cs | 1 + Questionable/Configuration.cs | 1 + .../Controller/Steps/Interactions/Interact.cs | 8 +++- .../Controller/Steps/Shared/WaitAtEnd.cs | 1 + .../Controller/Utils/AutoSnipeHandler.cs | 48 +++++++++++++++++++ Questionable/QuestionablePlugin.cs | 3 ++ Questionable/Windows/ConfigWindow.cs | 10 ++++ .../QuestComponents/ActiveQuestComponent.cs | 2 +- 34 files changed, 102 insertions(+), 30 deletions(-) create mode 100644 Questionable/Controller/Utils/AutoSnipeHandler.cs diff --git a/QuestPaths/4.x - Stormblood/Aether Currents/The Azim Steppe/2771_Sheep Snatcher.json b/QuestPaths/4.x - Stormblood/Aether Currents/The Azim Steppe/2771_Sheep Snatcher.json index 3d3167ab..034df26b 100644 --- a/QuestPaths/4.x - Stormblood/Aether Currents/The Azim Steppe/2771_Sheep Snatcher.json +++ b/QuestPaths/4.x - Stormblood/Aether Currents/The Azim Steppe/2771_Sheep Snatcher.json @@ -28,7 +28,7 @@ "Z": -210.22363 }, "TerritoryId": 622, - "InteractionType": "Instruction", + "InteractionType": "Snipe", "Comment": "Snipe sheep" } ] diff --git a/QuestPaths/4.x - Stormblood/Alliance Raid Quests/3091_Desire.json b/QuestPaths/4.x - Stormblood/Alliance Raid Quests/3091_Desire.json index 4242e0f7..d0c8d2a9 100644 --- a/QuestPaths/4.x - Stormblood/Alliance Raid Quests/3091_Desire.json +++ b/QuestPaths/4.x - Stormblood/Alliance Raid Quests/3091_Desire.json @@ -54,7 +54,7 @@ "Z": 208.484 }, "TerritoryId": 787, - "InteractionType": "Instruction", + "InteractionType": "Snipe", "Comment": "Far on the left" } ] diff --git a/QuestPaths/4.x - Stormblood/MSQ/A3.2-Yanxia 1/2495_A New Ruby Tithe.json b/QuestPaths/4.x - Stormblood/MSQ/A3.2-Yanxia 1/2495_A New Ruby Tithe.json index b86394da..1045490b 100644 --- a/QuestPaths/4.x - Stormblood/MSQ/A3.2-Yanxia 1/2495_A New Ruby Tithe.json +++ b/QuestPaths/4.x - Stormblood/MSQ/A3.2-Yanxia 1/2495_A New Ruby Tithe.json @@ -111,7 +111,7 @@ "Z": 147.23425 }, "TerritoryId": 614, - "InteractionType": "Instruction", + "InteractionType": "Snipe", "Comment": "Snipe soldiers" } ] @@ -127,7 +127,7 @@ "Z": 237.04883 }, "TerritoryId": 614, - "InteractionType": "Instruction", + "InteractionType": "Snipe", "Comment": "Snipe soldiers" } ] @@ -158,7 +158,7 @@ "Z": 603.2959 }, "TerritoryId": 614, - "InteractionType": "Instruction", + "InteractionType": "Snipe", "Comment": "Snipe soldiers" } ] diff --git a/QuestPaths/4.x - Stormblood/MSQ/B-4.1/2970_Securing the Saltery.json b/QuestPaths/4.x - Stormblood/MSQ/B-4.1/2970_Securing the Saltery.json index 284a29d3..b7da884e 100644 --- a/QuestPaths/4.x - Stormblood/MSQ/B-4.1/2970_Securing the Saltery.json +++ b/QuestPaths/4.x - Stormblood/MSQ/B-4.1/2970_Securing the Saltery.json @@ -62,7 +62,7 @@ "Z": 196.55139 }, "TerritoryId": 621, - "InteractionType": "Instruction", + "InteractionType": "Snipe", "Comment": "Aim at jaw", "Fly": true } @@ -95,7 +95,7 @@ "Z": 282.7954 }, "TerritoryId": 621, - "InteractionType": "Instruction", + "InteractionType": "Snipe", "Fly": true, "Comment": "Aim at nearest eye" } diff --git a/QuestPaths/5.x - Shadowbringers/Allied Societies/Pixies/Dailies/3707_Not the Beavers.json b/QuestPaths/5.x - Shadowbringers/Allied Societies/Pixies/Dailies/3707_Not the Beavers.json index ae181ec1..8d99337d 100644 --- a/QuestPaths/5.x - Shadowbringers/Allied Societies/Pixies/Dailies/3707_Not the Beavers.json +++ b/QuestPaths/5.x - Shadowbringers/Allied Societies/Pixies/Dailies/3707_Not the Beavers.json @@ -28,7 +28,7 @@ "Z": 755.58093 }, "TerritoryId": 816, - "InteractionType": "Instruction", + "InteractionType": "Snipe", "Fly": true, "Comment": "Throw Porxies at Beavers" } diff --git a/QuestPaths/5.x - Shadowbringers/MSQ/A2-Kholusia 1/3285_A Fickle Existence.json b/QuestPaths/5.x - Shadowbringers/MSQ/A2-Kholusia 1/3285_A Fickle Existence.json index d70949f9..78b6e3ca 100644 --- a/QuestPaths/5.x - Shadowbringers/MSQ/A2-Kholusia 1/3285_A Fickle Existence.json +++ b/QuestPaths/5.x - Shadowbringers/MSQ/A2-Kholusia 1/3285_A Fickle Existence.json @@ -48,7 +48,7 @@ "Z": 656.9772 }, "TerritoryId": 814, - "InteractionType": "Instruction", + "InteractionType": "Snipe", "Comment": "Click the guy in front of (or near) the light house stairs" } ] diff --git a/QuestPaths/5.x - Shadowbringers/MSQ/A3-Amh Araeng 1/3292_City of the Mord.json b/QuestPaths/5.x - Shadowbringers/MSQ/A3-Amh Araeng 1/3292_City of the Mord.json index ded86bd5..813814f3 100644 --- a/QuestPaths/5.x - Shadowbringers/MSQ/A3-Amh Araeng 1/3292_City of the Mord.json +++ b/QuestPaths/5.x - Shadowbringers/MSQ/A3-Amh Araeng 1/3292_City of the Mord.json @@ -48,7 +48,7 @@ "Z": -186.14484 }, "TerritoryId": 815, - "InteractionType": "Instruction", + "InteractionType": "Snipe", "Comment": "Click all four foods" } ] diff --git a/QuestPaths/5.x - Shadowbringers/MSQ/C-Rak'tika/3323_A Little Faith.json b/QuestPaths/5.x - Shadowbringers/MSQ/C-Rak'tika/3323_A Little Faith.json index a5286f4e..b5c2d0d6 100644 --- a/QuestPaths/5.x - Shadowbringers/MSQ/C-Rak'tika/3323_A Little Faith.json +++ b/QuestPaths/5.x - Shadowbringers/MSQ/C-Rak'tika/3323_A Little Faith.json @@ -104,7 +104,7 @@ "Z": -92.97333 }, "TerritoryId": 813, - "InteractionType": "WaitForManualProgress", + "InteractionType": "Snipe", "Comment": "Tablet is on the right middle shelf of the table" } ] diff --git a/QuestPaths/5.x - Shadowbringers/MSQ/C-Rak'tika/3330_A Beeautiful Plan.json b/QuestPaths/5.x - Shadowbringers/MSQ/C-Rak'tika/3330_A Beeautiful Plan.json index 960e9293..51a28c18 100644 --- a/QuestPaths/5.x - Shadowbringers/MSQ/C-Rak'tika/3330_A Beeautiful Plan.json +++ b/QuestPaths/5.x - Shadowbringers/MSQ/C-Rak'tika/3330_A Beeautiful Plan.json @@ -84,7 +84,7 @@ "Z": -359.4873 }, "TerritoryId": 817, - "InteractionType": "WaitForManualProgress", + "InteractionType": "Snipe", "Comment": "Click murals" } ] diff --git a/QuestPaths/5.x - Shadowbringers/MSQ/E-Kholusia 2/3634_The View from Above.json b/QuestPaths/5.x - Shadowbringers/MSQ/E-Kholusia 2/3634_The View from Above.json index 2c9e1fff..5285a8a2 100644 --- a/QuestPaths/5.x - Shadowbringers/MSQ/E-Kholusia 2/3634_The View from Above.json +++ b/QuestPaths/5.x - Shadowbringers/MSQ/E-Kholusia 2/3634_The View from Above.json @@ -73,7 +73,7 @@ "Z": 22.47644 }, "TerritoryId": 814, - "InteractionType": "WaitForManualProgress", + "InteractionType": "Snipe", "Comment": "Click on the guy left of the the rock" } ] diff --git a/QuestPaths/5.x - Shadowbringers/MSQ/E-Kholusia 2/3637_Meet the Tholls.json b/QuestPaths/5.x - Shadowbringers/MSQ/E-Kholusia 2/3637_Meet the Tholls.json index ee2b89dc..8396eed7 100644 --- a/QuestPaths/5.x - Shadowbringers/MSQ/E-Kholusia 2/3637_Meet the Tholls.json +++ b/QuestPaths/5.x - Shadowbringers/MSQ/E-Kholusia 2/3637_Meet the Tholls.json @@ -59,7 +59,7 @@ "Z": -616.47974 }, "TerritoryId": 814, - "InteractionType": "WaitForManualProgress", + "InteractionType": "Snipe", "Comment": "Click red hat dwarf (always shows up in the same location)" } ] @@ -75,7 +75,7 @@ "Z": -616.47974 }, "TerritoryId": 814, - "InteractionType": "WaitForManualProgress", + "InteractionType": "Snipe", "Comment": "Click red hat dwarf" } ] diff --git a/QuestPaths/5.x - Shadowbringers/MSQ/F-Tempest/3649_City of the Ancients.json b/QuestPaths/5.x - Shadowbringers/MSQ/F-Tempest/3649_City of the Ancients.json index 34fa28fc..3242f9d5 100644 --- a/QuestPaths/5.x - Shadowbringers/MSQ/F-Tempest/3649_City of the Ancients.json +++ b/QuestPaths/5.x - Shadowbringers/MSQ/F-Tempest/3649_City of the Ancients.json @@ -54,7 +54,7 @@ "Z": -414.38928 }, "TerritoryId": 818, - "InteractionType": "WaitForManualProgress", + "InteractionType": "Snipe", "Comment": "Click top left (broken) window", "CompletionQuestVariablesFlags": [ null, diff --git a/QuestPaths/5.x - Shadowbringers/MSQ/G-5.1/3680_Finding Good Help.json b/QuestPaths/5.x - Shadowbringers/MSQ/G-5.1/3680_Finding Good Help.json index 19ac4906..2416c087 100644 --- a/QuestPaths/5.x - Shadowbringers/MSQ/G-5.1/3680_Finding Good Help.json +++ b/QuestPaths/5.x - Shadowbringers/MSQ/G-5.1/3680_Finding Good Help.json @@ -44,7 +44,7 @@ "Z": -161.45575 }, "TerritoryId": 814, - "InteractionType": "WaitForManualProgress", + "InteractionType": "Snipe", "Comment": "Help Master Chai dodge enemies" } ] diff --git a/QuestPaths/6.x - Endwalker/MSQ/A-Thavnair1-Labyrinthos1/4363_Deeper into the Maze.json b/QuestPaths/6.x - Endwalker/MSQ/A-Thavnair1-Labyrinthos1/4363_Deeper into the Maze.json index 75cf15c6..15fb42ae 100644 --- a/QuestPaths/6.x - Endwalker/MSQ/A-Thavnair1-Labyrinthos1/4363_Deeper into the Maze.json +++ b/QuestPaths/6.x - Endwalker/MSQ/A-Thavnair1-Labyrinthos1/4363_Deeper into the Maze.json @@ -119,7 +119,7 @@ "Z": -519.18823 }, "TerritoryId": 956, - "InteractionType": "WaitForManualProgress", + "InteractionType": "Snipe", "Comment": "Shoot Large Green Bird" } ] diff --git a/QuestPaths/6.x - Endwalker/MSQ/C-MareLamentorum/4406_Setting Things Straight.json b/QuestPaths/6.x - Endwalker/MSQ/C-MareLamentorum/4406_Setting Things Straight.json index 00c79a9a..b84bfe28 100644 --- a/QuestPaths/6.x - Endwalker/MSQ/C-MareLamentorum/4406_Setting Things Straight.json +++ b/QuestPaths/6.x - Endwalker/MSQ/C-MareLamentorum/4406_Setting Things Straight.json @@ -160,7 +160,7 @@ "Z": -654.13904 }, "TerritoryId": 959, - "InteractionType": "WaitForManualProgress", + "InteractionType": "Snipe", "Comment": "Find \"Runninway?\"" } ] diff --git a/QuestPaths/6.x - Endwalker/MSQ/F-Labyrinthos2/4443_Wise Guides.json b/QuestPaths/6.x - Endwalker/MSQ/F-Labyrinthos2/4443_Wise Guides.json index d7c5efa7..56b49ff6 100644 --- a/QuestPaths/6.x - Endwalker/MSQ/F-Labyrinthos2/4443_Wise Guides.json +++ b/QuestPaths/6.x - Endwalker/MSQ/F-Labyrinthos2/4443_Wise Guides.json @@ -45,7 +45,7 @@ }, "StopDistance": 5, "TerritoryId": 956, - "InteractionType": "WaitForManualProgress", + "InteractionType": "Snipe", "Comment": "Find Points of Interest" } ] diff --git a/QuestPaths/6.x - Endwalker/MSQ/G-UltimaThule/4460_x.json b/QuestPaths/6.x - Endwalker/MSQ/G-UltimaThule/4460_x.json index 35dcefaf..de94694b 100644 --- a/QuestPaths/6.x - Endwalker/MSQ/G-UltimaThule/4460_x.json +++ b/QuestPaths/6.x - Endwalker/MSQ/G-UltimaThule/4460_x.json @@ -104,7 +104,7 @@ "Z": 375.50916 }, "TerritoryId": 960, - "InteractionType": "WaitForManualProgress", + "InteractionType": "Snipe", "Comment": "Find Errant Omicron" } ] diff --git a/QuestPaths/6.x - Endwalker/MSQ/G-UltimaThule/4461_Hello World.json b/QuestPaths/6.x - Endwalker/MSQ/G-UltimaThule/4461_Hello World.json index 48ae6672..300ba565 100644 --- a/QuestPaths/6.x - Endwalker/MSQ/G-UltimaThule/4461_Hello World.json +++ b/QuestPaths/6.x - Endwalker/MSQ/G-UltimaThule/4461_Hello World.json @@ -44,7 +44,7 @@ "Z": 398.42822 }, "TerritoryId": 960, - "InteractionType": "WaitForManualProgress", + "InteractionType": "Snipe", "Comment": "Identify Anomaly (Head, Elbow or Knee)" } ] diff --git a/QuestPaths/6.x - Endwalker/Side Quests/Old Sharlayan/4181_Scholarly Perspective.json b/QuestPaths/6.x - Endwalker/Side Quests/Old Sharlayan/4181_Scholarly Perspective.json index d78b2a99..ae183516 100644 --- a/QuestPaths/6.x - Endwalker/Side Quests/Old Sharlayan/4181_Scholarly Perspective.json +++ b/QuestPaths/6.x - Endwalker/Side Quests/Old Sharlayan/4181_Scholarly Perspective.json @@ -28,7 +28,7 @@ "Z": 276.81384 }, "TerritoryId": 962, - "InteractionType": "Instruction", + "InteractionType": "Snipe", "Comment": "Click ewer, head and feet", "AethernetShortcut": [ "[Old Sharlayan] Aetheryte Plaza", diff --git a/QuestPaths/7.x - Dawntrail/MSQ/A-Kozama'uka1-Urqopacha1/4867_The Feat of Reeds.json b/QuestPaths/7.x - Dawntrail/MSQ/A-Kozama'uka1-Urqopacha1/4867_The Feat of Reeds.json index c69575bd..b3a2d6b2 100644 --- a/QuestPaths/7.x - Dawntrail/MSQ/A-Kozama'uka1-Urqopacha1/4867_The Feat of Reeds.json +++ b/QuestPaths/7.x - Dawntrail/MSQ/A-Kozama'uka1-Urqopacha1/4867_The Feat of Reeds.json @@ -136,7 +136,7 @@ "Z": -532.15845 }, "TerritoryId": 1188, - "InteractionType": "WaitForManualProgress", + "InteractionType": "Snipe", "Comment": "Inspect Eye, Carrying Pole and Tail", "AetheryteShortcut": "Kozama'uka - Ok'hanu" } diff --git a/QuestPaths/7.x - Dawntrail/MSQ/B-Kozama'uka2-Urqopacha2/4881_Lending a Helphand.json b/QuestPaths/7.x - Dawntrail/MSQ/B-Kozama'uka2-Urqopacha2/4881_Lending a Helphand.json index 5fbb423b..29d5bcb0 100644 --- a/QuestPaths/7.x - Dawntrail/MSQ/B-Kozama'uka2-Urqopacha2/4881_Lending a Helphand.json +++ b/QuestPaths/7.x - Dawntrail/MSQ/B-Kozama'uka2-Urqopacha2/4881_Lending a Helphand.json @@ -28,7 +28,7 @@ "Z": 343.7704 }, "TerritoryId": 1188, - "InteractionType": "WaitForManualProgress", + "InteractionType": "Snipe", "Comment": "Click (from left to right) worn tools, Kaahe, crafting materials, untouched meal" } ] diff --git a/QuestPaths/7.x - Dawntrail/MSQ/D-Shaaloani-HeritageFound1/4921_Pick up the Pieces.json b/QuestPaths/7.x - Dawntrail/MSQ/D-Shaaloani-HeritageFound1/4921_Pick up the Pieces.json index bcace205..a5347bfe 100644 --- a/QuestPaths/7.x - Dawntrail/MSQ/D-Shaaloani-HeritageFound1/4921_Pick up the Pieces.json +++ b/QuestPaths/7.x - Dawntrail/MSQ/D-Shaaloani-HeritageFound1/4921_Pick up the Pieces.json @@ -28,7 +28,7 @@ "Z": 25.680908 }, "TerritoryId": 1185, - "InteractionType": "WaitForManualProgress", + "InteractionType": "Snipe", "Comment": "Inspect Helm, Corpse, Weapon" } ] diff --git a/QuestPaths/7.x - Dawntrail/Side Quests/Shaaloani/5126_A Refined Perspective.json b/QuestPaths/7.x - Dawntrail/Side Quests/Shaaloani/5126_A Refined Perspective.json index 4412991d..31d97375 100644 --- a/QuestPaths/7.x - Dawntrail/Side Quests/Shaaloani/5126_A Refined Perspective.json +++ b/QuestPaths/7.x - Dawntrail/Side Quests/Shaaloani/5126_A Refined Perspective.json @@ -28,7 +28,7 @@ "Z": -141.92426 }, "TerritoryId": 1190, - "InteractionType": "Instruction", + "InteractionType": "Snipe", "Comment": "Click (from left to right) pump, middle of the connecting pipes, barrels" } ] diff --git a/QuestPaths/7.x - Dawntrail/Side Quests/Yak T'el/5100_Carved in Stone.json b/QuestPaths/7.x - Dawntrail/Side Quests/Yak T'el/5100_Carved in Stone.json index b50e254d..2244ebb9 100644 --- a/QuestPaths/7.x - Dawntrail/Side Quests/Yak T'el/5100_Carved in Stone.json +++ b/QuestPaths/7.x - Dawntrail/Side Quests/Yak T'el/5100_Carved in Stone.json @@ -28,7 +28,7 @@ "Z": 557.7018 }, "TerritoryId": 1189, - "InteractionType": "Instruction", + "InteractionType": "Snipe", "Comment": "Inspect Flag, Red Head, Blue Head" } ] diff --git a/QuestPaths/quest-v1.json b/QuestPaths/quest-v1.json index 8068adef..a3bfd6f9 100644 --- a/QuestPaths/quest-v1.json +++ b/QuestPaths/quest-v1.json @@ -130,6 +130,7 @@ "Jump", "Dive", "Craft", + "Snipe", "Instruction", "AcceptQuest", "CompleteQuest", diff --git a/Questionable.Model/Questing/Converter/InteractionTypeConverter.cs b/Questionable.Model/Questing/Converter/InteractionTypeConverter.cs index 8683a57a..bf856da9 100644 --- a/Questionable.Model/Questing/Converter/InteractionTypeConverter.cs +++ b/Questionable.Model/Questing/Converter/InteractionTypeConverter.cs @@ -27,6 +27,7 @@ public sealed class InteractionTypeConverter() : EnumConverter { EInteractionType.Jump, "Jump" }, { EInteractionType.Dive, "Dive" }, { EInteractionType.Craft, "Craft" }, + { EInteractionType.Snipe, "Snipe" }, { EInteractionType.Instruction, "Instruction" }, { EInteractionType.AcceptQuest, "AcceptQuest" }, { EInteractionType.CompleteQuest, "CompleteQuest" }, diff --git a/Questionable.Model/Questing/EInteractionType.cs b/Questionable.Model/Questing/EInteractionType.cs index c0b3eede..f251b5ae 100644 --- a/Questionable.Model/Questing/EInteractionType.cs +++ b/Questionable.Model/Questing/EInteractionType.cs @@ -26,6 +26,7 @@ public enum EInteractionType Jump, Dive, Craft, + Snipe, /// /// Needs to be manually continued. diff --git a/Questionable/Configuration.cs b/Questionable/Configuration.cs index 9f86cb94..3ea014cb 100644 --- a/Questionable/Configuration.cs +++ b/Questionable/Configuration.cs @@ -19,6 +19,7 @@ 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; } } internal sealed class AdvancedConfiguration diff --git a/Questionable/Controller/Steps/Interactions/Interact.cs b/Questionable/Controller/Steps/Interactions/Interact.cs index 4988b2ae..b048b7ff 100644 --- a/Questionable/Controller/Steps/Interactions/Interact.cs +++ b/Questionable/Controller/Steps/Interactions/Interact.cs @@ -16,7 +16,8 @@ namespace Questionable.Controller.Steps.Interactions; internal static class Interact { - internal sealed class Factory(GameFunctions gameFunctions, ICondition condition, ILoggerFactory loggerFactory) + internal sealed class Factory(GameFunctions gameFunctions, Configuration configuration, ICondition condition, + ILoggerFactory loggerFactory) : ITaskFactory { public IEnumerable CreateAllTasks(Quest quest, QuestSequence sequence, QuestStep step) @@ -37,6 +38,11 @@ internal static class Interact if (step.DataId == null) yield break; } + else if (step.InteractionType == EInteractionType.Snipe) + { + if (!configuration.General.AutomaticallyCompleteSnipeTasks) + yield break; + } else if (step.InteractionType != EInteractionType.Interact) yield break; diff --git a/Questionable/Controller/Steps/Shared/WaitAtEnd.cs b/Questionable/Controller/Steps/Shared/WaitAtEnd.cs index 47c0fe4a..e2a0864f 100644 --- a/Questionable/Controller/Steps/Shared/WaitAtEnd.cs +++ b/Questionable/Controller/Steps/Shared/WaitAtEnd.cs @@ -49,6 +49,7 @@ internal static class WaitAtEnd case EInteractionType.WaitForManualProgress: case EInteractionType.Instruction: + case EInteractionType.Snipe: return [new WaitNextStepOrSequence()]; case EInteractionType.Duty: diff --git a/Questionable/Controller/Utils/AutoSnipeHandler.cs b/Questionable/Controller/Utils/AutoSnipeHandler.cs new file mode 100644 index 00000000..dc48c3ac --- /dev/null +++ b/Questionable/Controller/Utils/AutoSnipeHandler.cs @@ -0,0 +1,48 @@ +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/QuestionablePlugin.cs b/Questionable/QuestionablePlugin.cs index 5c74c00b..b5be5760 100644 --- a/Questionable/QuestionablePlugin.cs +++ b/Questionable/QuestionablePlugin.cs @@ -18,6 +18,7 @@ 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; @@ -108,6 +109,7 @@ public sealed class QuestionablePlugin : IDalamudPlugin serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); + serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); @@ -240,6 +242,7 @@ public sealed class QuestionablePlugin : IDalamudPlugin serviceProvider.GetRequiredService(); serviceProvider.GetRequiredService(); serviceProvider.GetRequiredService(); + serviceProvider.GetRequiredService().Enable(); } public void Dispose() diff --git a/Questionable/Windows/ConfigWindow.cs b/Questionable/Windows/ConfigWindow.cs index a419249c..e69a7c37 100644 --- a/Questionable/Windows/ConfigWindow.cs +++ b/Questionable/Windows/ConfigWindow.cs @@ -90,6 +90,16 @@ internal sealed class ConfigWindow : LWindow, IPersistableWindowConfig Save(); } + if (ImGui.CollapsingHeader("Cheats")) + { + bool automaticallyCompleteSnipeTasks = _configuration.General.AutomaticallyCompleteSnipeTasks; + if (ImGui.Checkbox("Automatically complete snipe tasks", ref automaticallyCompleteSnipeTasks)) + { + _configuration.General.AutomaticallyCompleteSnipeTasks = automaticallyCompleteSnipeTasks; + Save(); + } + } + ImGui.EndTabItem(); } diff --git a/Questionable/Windows/QuestComponents/ActiveQuestComponent.cs b/Questionable/Windows/QuestComponents/ActiveQuestComponent.cs index b1ffd40b..34beb090 100644 --- a/Questionable/Windows/QuestComponents/ActiveQuestComponent.cs +++ b/Questionable/Windows/QuestComponents/ActiveQuestComponent.cs @@ -84,7 +84,7 @@ internal sealed partial class ActiveQuestComponent if (!isMinimized) { bool colored = currentStep is - { InteractionType: EInteractionType.Instruction or EInteractionType.WaitForManualProgress }; + { InteractionType: EInteractionType.Instruction or EInteractionType.WaitForManualProgress or EInteractionType.Snipe }; if (colored) ImGui.PushStyleColor(ImGuiCol.Text, ImGuiColors.DalamudOrange); ImGui.TextUnformatted(currentStep?.Comment ?? From b435d91d9c2b00440f82228bd5f8bcaf9312fe64 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Wed, 11 Sep 2024 17:27:37 +0200 Subject: [PATCH 219/450] Add Omega: Beyond the Rift --- .../4586_A Heartless Hypothesis.json | 222 +++++++++++++++ .../4587_Good-bye, x.json | 262 ++++++++++++++++++ .../4761_Aggressive Expansion.json | 0 .../4762_Forever in Our Hearts.json | 0 4 files changed, 484 insertions(+) create mode 100644 QuestPaths/6.x - Endwalker/Side Quests/Omega - Beyond the Rift/4586_A Heartless Hypothesis.json create mode 100644 QuestPaths/6.x - Endwalker/Side Quests/Omega - Beyond the Rift/4587_Good-bye, x.json rename QuestPaths/6.x - Endwalker/{ => Side Quests}/Tataru's Grand Endeavor/4761_Aggressive Expansion.json (100%) rename QuestPaths/6.x - Endwalker/{ => Side Quests}/Tataru's Grand Endeavor/4762_Forever in Our Hearts.json (100%) diff --git a/QuestPaths/6.x - Endwalker/Side Quests/Omega - Beyond the Rift/4586_A Heartless Hypothesis.json b/QuestPaths/6.x - Endwalker/Side Quests/Omega - Beyond the Rift/4586_A Heartless Hypothesis.json new file mode 100644 index 00000000..f0580396 --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Side Quests/Omega - Beyond the Rift/4586_A Heartless Hypothesis.json @@ -0,0 +1,222 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1042796, + "Position": { + "X": -12.100403, + "Y": -16.147, + "Z": 153.76514 + }, + "TerritoryId": 962, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1039550, + "Position": { + "X": -620.7218, + "Y": -27.670597, + "Z": 302.17432 + }, + "TerritoryId": 956, + "InteractionType": "Interact", + "AetheryteShortcut": "Labyrinthos - Aporia", + "SkipConditions": { + "StepIf": { + "Flying": "Unlocked" + } + }, + "TargetTerritoryId": 956 + }, + { + "Position": { + "X": -431.53903, + "Y": -220.1193, + "Z": 301.76364 + }, + "TerritoryId": 956, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 1042797, + "Position": { + "X": -393.20978, + "Y": -220.20282, + "Z": 283.16162 + }, + "TerritoryId": 956, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1042799, + "Position": { + "X": -395.37653, + "Y": -220.20282, + "Z": 285.66406 + }, + "TerritoryId": 956, + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_STMBDR601_04586_Q2_000_107", + "Yes": true + } + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1042803, + "Position": { + "X": 43.289795, + "Y": -1.4816303E-06, + "Z": -55.680176 + }, + "TerritoryId": 963, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1042887, + "Position": { + "X": 108.72046, + "Y": 26.999989, + "Z": 14.90802 + }, + "TerritoryId": 963, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Radz-at-Han] Aetheryte Plaza", + "[Radz-at-Han] Kama" + ], + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 1039539, + "Position": { + "X": 87.662964, + "Y": 27.06, + "Z": 28.030762 + }, + "TerritoryId": 963, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 1042804, + "Position": { + "X": 87.35791, + "Y": 26.99999, + "Z": 56.687256 + }, + "TerritoryId": 963, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1042803, + "Position": { + "X": 116.01684, + "Y": 26.99999, + "Z": 45.689087 + }, + "StopDistance": 0.25, + "TerritoryId": 963, + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_STMBDR601_04586_Q5_000_225", + "Answer": "TEXT_STMBDR601_04586_A5_000_228" + } + ] + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1039541, + "Position": { + "X": -159.3805, + "Y": 23.999973, + "Z": 110.61267 + }, + "TerritoryId": 963, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Radz-at-Han] Kama", + "[Radz-at-Han] Ruveydah Fibers" + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1042805, + "Position": { + "X": -57.480774, + "Y": 14, + "Z": 106.82837 + }, + "StopDistance": 4, + "TerritoryId": 963, + "InteractionType": "CompleteQuest", + "NextQuestId": 4587 + } + ] + } + ] +} diff --git a/QuestPaths/6.x - Endwalker/Side Quests/Omega - Beyond the Rift/4587_Good-bye, x.json b/QuestPaths/6.x - Endwalker/Side Quests/Omega - Beyond the Rift/4587_Good-bye, x.json new file mode 100644 index 00000000..cc261a21 --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Side Quests/Omega - Beyond the Rift/4587_Good-bye, x.json @@ -0,0 +1,262 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1042807, + "Position": { + "X": -59.06775, + "Y": 13.999993, + "Z": 114.67151 + }, + "StopDistance": 6, + "TerritoryId": 963, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1042809, + "Position": { + "X": -378.43903, + "Y": 22, + "Z": 494.9873 + }, + "TerritoryId": 958, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1042811, + "Position": { + "X": -323.23187, + "Y": 22, + "Z": 500.35852 + }, + "TerritoryId": 958, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "Position": { + "X": -277.7818, + "Y": 25.227219, + "Z": 423.6428 + }, + "TerritoryId": 958, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 1042810, + "Position": { + "X": -276.41718, + "Y": 25.227219, + "Z": 425.4673 + }, + "TerritoryId": 958, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1042809, + "Position": { + "X": -331.9679, + "Y": 22.585815, + "Z": 430.56573 + }, + "TerritoryId": 958, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1042829, + "Position": { + "X": -330.86145, + "Y": 22.310896, + "Z": 431.4182 + }, + "TerritoryId": 958, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1042813, + "Position": { + "X": 591.30237, + "Y": 34.877754, + "Z": 191.30237 + }, + "TerritoryId": 958, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1043126, + "Position": { + "X": 605.9509, + "Y": 34.7239, + "Z": 203.32642 + }, + "StopDistance": 5, + "TerritoryId": 958, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 7, + "Steps": [ + { + "DataId": 1042816, + "Position": { + "X": 31.967651, + "Y": -132.9464, + "Z": -563.5615 + }, + "TerritoryId": 959, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 8, + "Steps": [ + { + "DataId": 1042818, + "Position": { + "X": -1.6327515, + "Y": -28.024765, + "Z": -216.23566 + }, + "TerritoryId": 959, + "InteractionType": "Interact", + "Fly": true, + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_STMBDR602_04587_Q4_000_294", + "Answer": "TEXT_STMBDR602_04587_A4_000_295" + } + ] + } + ] + }, + { + "Sequence": 9, + "Steps": [ + { + "DataId": 1038930, + "Position": { + "X": -415.39636, + "Y": 136.98077, + "Z": 575.7992 + }, + "TerritoryId": 959, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 10, + "Steps": [ + { + "DataId": 1039550, + "Position": { + "X": -620.7218, + "Y": -27.670597, + "Z": 302.17432 + }, + "TerritoryId": 956, + "InteractionType": "Interact", + "AetheryteShortcut": "Labyrinthos - Aporia", + "SkipConditions": { + "StepIf": { + "Flying": "Unlocked" + } + }, + "TargetTerritoryId": 956 + }, + { + "Position": { + "X": -431.53903, + "Y": -220.1193, + "Z": 301.76364 + }, + "TerritoryId": 956, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 1042800, + "Position": { + "X": -393.0572, + "Y": -220.20284, + "Z": 284.71802 + }, + "TerritoryId": 956, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1042822, + "Position": { + "X": 111.039795, + "Y": -10.587426, + "Z": 280.38452 + }, + "TerritoryId": 962, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/6.x - Endwalker/Tataru's Grand Endeavor/4761_Aggressive Expansion.json b/QuestPaths/6.x - Endwalker/Side Quests/Tataru's Grand Endeavor/4761_Aggressive Expansion.json similarity index 100% rename from QuestPaths/6.x - Endwalker/Tataru's Grand Endeavor/4761_Aggressive Expansion.json rename to QuestPaths/6.x - Endwalker/Side Quests/Tataru's Grand Endeavor/4761_Aggressive Expansion.json diff --git a/QuestPaths/6.x - Endwalker/Tataru's Grand Endeavor/4762_Forever in Our Hearts.json b/QuestPaths/6.x - Endwalker/Side Quests/Tataru's Grand Endeavor/4762_Forever in Our Hearts.json similarity index 100% rename from QuestPaths/6.x - Endwalker/Tataru's Grand Endeavor/4762_Forever in Our Hearts.json rename to QuestPaths/6.x - Endwalker/Side Quests/Tataru's Grand Endeavor/4762_Forever in Our Hearts.json From 72e66eef5089e45a7bca063d0fe49da49e630dca Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Wed, 11 Sep 2024 17:33:41 +0200 Subject: [PATCH 220/450] Version bump --- Directory.Build.targets | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Directory.Build.targets b/Directory.Build.targets index 0a5ba814..c74d3461 100644 --- a/Directory.Build.targets +++ b/Directory.Build.targets @@ -1,5 +1,5 @@ - 3.1 + 3.2 From c1c2b7861d9bab55be2614203d90878048963cb7 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Wed, 11 Sep 2024 17:36:53 +0200 Subject: [PATCH 221/450] Remove the Rising from event quests --- 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 fa94117d..c0d84bc4 100644 --- a/Questionable/Windows/QuestComponents/EventInfoComponent.cs +++ b/Questionable/Windows/QuestComponents/EventInfoComponent.cs @@ -20,7 +20,6 @@ internal sealed class EventInfoComponent { private readonly List _eventQuests = [ - new("The Rising", [new(5015), new(5016)], AtDailyReset(new(2024, 9, 11))), ]; private readonly QuestData _questData; From a4f14ec419e0d387b1ccd0f4db19de977281b65e Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Mon, 9 Sep 2024 01:30:30 +0800 Subject: [PATCH 222/450] Added a few daily quests: - Funnel and Games - The Very Hungry Marid --- .../Ananta/Dailies/3054_Funnel and Games.json | 49 ++++++++++++++- .../Dailies/3058_The Very Hungry Marid.json | 63 ++++++++++++++++++- 2 files changed, 106 insertions(+), 6 deletions(-) diff --git a/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Dailies/3054_Funnel and Games.json b/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Dailies/3054_Funnel and Games.json index 2ff0c260..abb37aa1 100644 --- a/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Dailies/3054_Funnel and Games.json +++ b/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Dailies/3054_Funnel and Games.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, @@ -22,7 +21,51 @@ { "Sequence": 1, "Steps": [ - + { + "Position": { + "X": -169.52124, + "Y": 41.96321, + "Z": -23.855082 + }, + "TerritoryId": 612, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "KillEnemyDataIds": [8589], + "Fly": true, + "Land": true, + "RequiredQuestVariables": [null, null, [16], null, null, null], + "CombatDelaySecondsAtStart": 1 + }, + { + "Position": { + "X": -259.28268, + "Y": 49.18244, + "Z": 33.798065 + }, + "TerritoryId": 612, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "KillEnemyDataIds": [8589], + "Fly": true, + "Land": true, + "RequiredQuestVariables": [null, null, [32], null, null, null], + "CombatDelaySecondsAtStart": 1 + }, + { + "Position": { + "X": -219.26901, + "Y": 43.36, + "Z": 90.7601 + }, + "TerritoryId": 612, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "KillEnemyDataIds": [8589], + "Fly": true, + "Land": true, + "RequiredQuestVariables": [null, null, [48], null, null, null], + "CombatDelaySecondsAtStart": 1 + } ] }, { diff --git a/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Dailies/3058_The Very Hungry Marid.json b/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Dailies/3058_The Very Hungry Marid.json index 2ff0c260..6f27b3da 100644 --- a/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Dailies/3058_The Very Hungry Marid.json +++ b/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Dailies/3058_The Very Hungry Marid.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, @@ -22,7 +21,65 @@ { "Sequence": 1, "Steps": [ - + { + "DataId": 2009347, + "Position": { + "X": 35.965454, + "Y": 51.255005, + "Z": 292.37805 + }, + "TerritoryId": 612, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1025072, + "Position": { + "X": 94.04126, + "Y": 41.171764, + "Z": 376.57727 + }, + "TerritoryId": 612, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2009347, + "Position": { + "X": 35.965454, + "Y": 51.255005, + "Z": 292.37805 + }, + "TerritoryId": 612, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1025072, + "Position": { + "X": 94.04126, + "Y": 41.171764, + "Z": 376.57727 + }, + "TerritoryId": 612, + "InteractionType": "Interact", + "Fly": true + } ] }, { From 056d33ac6d5bca15b219f3a9ea8e0dd38790d557 Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Mon, 9 Sep 2024 01:30:51 +0800 Subject: [PATCH 223/450] Added new story quest "It Can Be Cruel Sometimes" --- .../Story/3039_It Can Be Cruel Sometimes.json | 160 ++++++++++++++++++ 1 file changed, 160 insertions(+) create mode 100644 QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Story/3039_It Can Be Cruel Sometimes.json diff --git a/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Story/3039_It Can Be Cruel Sometimes.json b/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Story/3039_It Can Be Cruel Sometimes.json new file mode 100644 index 00000000..4f27aeba --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Story/3039_It Can Be Cruel Sometimes.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": 1024771, + "Position": { + "X": 12.008789, + "Y": 55.97821, + "Z": 237.96448 + }, + "TerritoryId": 612, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1024915, + "Position": { + "X": -127.45862, + "Y": 41.197662, + "Z": 7.248047 + }, + "TerritoryId": 612, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1024915, + "Position": { + "X": -127.45862, + "Y": 41.197662, + "Z": 7.248047 + }, + "TerritoryId": 612, + "InteractionType": "UseItem", + "GroundTarget": true, + "ItemId": 2002429 + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1024915, + "Position": { + "X": -127.45862, + "Y": 41.197662, + "Z": 7.248047 + }, + "TerritoryId": 612, + "InteractionType": "UseItem", + "GroundTarget": true, + "ItemId": 2002429 + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1024915, + "Position": { + "X": -127.45862, + "Y": 41.197662, + "Z": 7.248047 + }, + "TerritoryId": 612, + "InteractionType": "UseItem", + "GroundTarget": true, + "ItemId": 2002429 + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1019486, + "Position": { + "X": -116.746826, + "Y": 0.6342248, + "Z": -55.832825 + }, + "TerritoryId": 635, + "InteractionType": "Interact", + "Mount": true, + "AetheryteShortcut": "Rhalgr's Reach", + "AethernetShortcut": [ + "[Rhalgr's Reach] Aetheryte Plaza", + "[Rhalgr's Reach] Western Rhalgr's Reach" + ] + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "Position": { + "X": -496.6736, + "Y": 118.65279, + "Z": -424.7939 + }, + "TerritoryId": 612, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [8577], + "Fly": true, + "Land": true, + "AetheryteShortcut": "Fringes - Castrum Oriens" + } + ] + }, + { + "Sequence": 7, + "Steps": [ + { + "DataId": 1024920, + "Position": { + "X": -495.01794, + "Y": 118.79865, + "Z": -427.1153 + }, + "TerritoryId": 612, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1024952, + "Position": { + "X": 12.008789, + "Y": 55.97821, + "Z": 237.96448 + }, + "TerritoryId": 612, + "InteractionType": "CompleteQuest", + "Fly": true, + "AetheryteShortcut": "Fringes - Peering Stones" + } + ] + } + ] +} From 8100017a165aa93a2bbb298bf91396449dd01794 Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Mon, 9 Sep 2024 01:38:18 +0800 Subject: [PATCH 224/450] Added new daily quests: - A Grebuloff Out of Water - Mush for Miw Miisv --- .../4619_A Grebuloff Out of Water.json | 37 +++++++- .../Dailies/4626_Mush for Miw Miisv.json | 87 ++++++++++++++++++- 2 files changed, 118 insertions(+), 6 deletions(-) diff --git a/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4619_A Grebuloff Out of Water.json b/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4619_A Grebuloff Out of Water.json index 368803c3..064a2593 100644 --- a/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4619_A Grebuloff Out of Water.json +++ b/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4619_A Grebuloff Out of Water.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,9 +17,40 @@ } ] }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1044058, + "Position": { + "X": 371.9386, + "Y": 288.95316, + "Z": -627.7409 + }, + "TerritoryId": 960, + "InteractionType": "UseItem", + "ItemId": 2003441, + "Fly": true, + "AetheryteShortcut": "Ultima Thule - Abode of the Ea" + } + ] + }, { "Sequence": 255, "Steps": [ + { + "DataId": 2013072, + "Position": { + "X": 456.65674, + "Y": 438.04077, + "Z": 310.2312 + }, + "TerritoryId": 960, + "InteractionType": "Interact", + "TargetTerritoryId": 960, + "AetheryteShortcut": "Ultima Thule - Base Omicron", + "Mount": true + }, { "DataId": 1043417, "Position": { @@ -29,7 +59,8 @@ "Z": 148.11926 }, "TerritoryId": 960, - "InteractionType": "CompleteQuest" + "InteractionType": "CompleteQuest", + "Fly": true } ] } 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 368803c3..940950de 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 @@ -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,9 +17,90 @@ } ] }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2013074, + "Position": { + "X": 304.3412, + "Y": 483.4821, + "Z": 143.1448 + }, + "TerritoryId": 960, + "InteractionType": "Interact", + "TargetTerritoryId": 1073 + }, + { + "TerritoryId": 1073, + "InteractionType": "None", + "RequiredGatheredItems": [ + { + "QuestAcceptedAsClass": "Miner", + "ItemId": 38293, + "ItemCount": 3 + }, + { + "QuestAcceptedAsClass": "Botanist", + "ItemId": 38317, + "ItemCount": 3 + } + ] + }, + { + "DataId": 2013072, + "Position": { + "X": 456.65674, + "Y": 438.04077, + "Z": 310.2312 + }, + "TerritoryId": 960, + "InteractionType": "Interact", + "TargetTerritoryId": 960, + "AetheryteShortcut": "Ultima Thule - Base Omicron", + "Mount": true + }, + { + "DataId": 1043865, + "Position": { + "X": 301.8081, + "Y": 482.13644, + "Z": 165.02625 + }, + "TerritoryId": 960, + "InteractionType": "Interact", + "Mount": true, + "TargetTerritoryId": 960, + "Fly": true + }, + { + "DataId": 1043936, + "Position": { + "X": 194.56775, + "Y": 567.4998, + "Z": 250.93457 + }, + "TerritoryId": 960, + "InteractionType": "Interact", + "Fly": true + } + ] + }, { "Sequence": 255, "Steps": [ + { + "DataId": 1043864, + "Position": { + "X": 244.83093, + "Y": 564.8203, + "Z": 261.76843 + }, + "TerritoryId": 960, + "InteractionType": "Interact", + "TargetTerritoryId": 960, + "Fly": true + }, { "DataId": 1043417, "Position": { @@ -29,7 +109,8 @@ "Z": 148.11926 }, "TerritoryId": 960, - "InteractionType": "CompleteQuest" + "InteractionType": "CompleteQuest", + "Fly": true } ] } From b3b1ceb9622f7811336969c81ab3e2216c079438 Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Mon, 9 Sep 2024 01:38:36 +0800 Subject: [PATCH 225/450] Cleaned-up accept step --- ...estaurateur's Guide to the Dragonstar.json | 21 +------------------ 1 file changed, 1 insertion(+), 20 deletions(-) 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 6517000d..79596457 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 @@ -5,24 +5,6 @@ { "Sequence": 0, "Steps": [ - { - "DataId": 2013072, - "Position": { - "X": 456.65674, - "Y": 438.04077, - "Z": 310.2312 - }, - "TerritoryId": 960, - "InteractionType": "Interact", - "TargetTerritoryId": 960, - "Mount": true, - "AetheryteShortcut": "Ultima Thule - Base Omicron", - "SkipConditions": { - "AetheryteShortcutIf": { - "InSameTerritory": true - } - } - }, { "DataId": 1043951, "Position": { @@ -31,8 +13,7 @@ "Z": 154.83325 }, "TerritoryId": 960, - "InteractionType": "AcceptQuest", - "Fly": true + "InteractionType": "AcceptQuest" } ] }, From 67c8cd2c990816e0f114b1dbfa94edf9098e44ba Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Mon, 9 Sep 2024 01:38:57 +0800 Subject: [PATCH 226/450] Added new story quest Mostly Heartless. Added relevant gathering points. --- .../Ultima Thule/910__MIN.json | 61 +++++ .../Ultima Thule/913__BTN.json | 61 +++++ .../Omicrons/Story/4605_Mostly Heartless.json | 246 ++++++++++++++++++ 3 files changed, 368 insertions(+) create mode 100644 GatheringPaths/6.x - Endwalker/Ultima Thule/910__MIN.json create mode 100644 GatheringPaths/6.x - Endwalker/Ultima Thule/913__BTN.json create mode 100644 QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Story/4605_Mostly Heartless.json diff --git a/GatheringPaths/6.x - Endwalker/Ultima Thule/910__MIN.json b/GatheringPaths/6.x - Endwalker/Ultima Thule/910__MIN.json new file mode 100644 index 00000000..2dcf507a --- /dev/null +++ b/GatheringPaths/6.x - Endwalker/Ultima Thule/910__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": 960, + "InteractionType": "None", + "AetheryteShortcut": "Ultima Thule - Abode of the Ea" + } + ], + "Groups": [ + { + "Nodes": [ + { + "DataId": 34379, + "Locations": [ + { + "Position": { + "X": 454.8535, + "Y": 307.5555, + "Z": -590.8547 + } + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 34380, + "Locations": [ + { + "Position": { + "X": 447.787, + "Y": 300.8405, + "Z": -597.8972 + } + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 34381, + "Locations": [ + { + "Position": { + "X": 448.707, + "Y": 305.0525, + "Z": -591.1053 + } + } + ] + } + ] + } + ] +} diff --git a/GatheringPaths/6.x - Endwalker/Ultima Thule/913__BTN.json b/GatheringPaths/6.x - Endwalker/Ultima Thule/913__BTN.json new file mode 100644 index 00000000..b35a276d --- /dev/null +++ b/GatheringPaths/6.x - Endwalker/Ultima Thule/913__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": 960, + "InteractionType": "None", + "AetheryteShortcut": "Ultima Thule - Abode of the Ea" + } + ], + "Groups": [ + { + "Nodes": [ + { + "DataId": 34388, + "Locations": [ + { + "Position": { + "X": 398.7177, + "Y": 292.5112, + "Z": -462.82 + } + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 34389, + "Locations": [ + { + "Position": { + "X": 373.1678, + "Y": 290.8189, + "Z": -442.4228 + } + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 34390, + "Locations": [ + { + "Position": { + "X": 383.5671, + "Y": 289.9682, + "Z": -392.3997 + } + } + ] + } + ] + } + ] +} 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 new file mode 100644 index 00000000..0fc6c53a --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Story/4605_Mostly Heartless.json @@ -0,0 +1,246 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "plogon_enjoyer", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1043951, + "Position": { + "X": 303.8529, + "Y": 481.99442, + "Z": 154.83325 + }, + "TerritoryId": 960, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1043865, + "Position": { + "X": 301.8081, + "Y": 482.13644, + "Z": 165.02625 + }, + "TerritoryId": 960, + "InteractionType": "Interact", + "TargetTerritoryId": 960, + "DialogueChoices": [ + { + "Prompt": "TEXT_BANOMI005_04605_Q5_000_000", + "Type": "YesNo", + "Yes": true + } + ] + }, + { + "DataId": 1043586, + "Position": { + "X": 205.3711, + "Y": 567.4998, + "Z": 246.72314 + }, + "TerritoryId": 960, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1043530, + "Position": { + "X": 475.0896, + "Y": 437.00183, + "Z": 319.53918 + }, + "TerritoryId": 960, + "InteractionType": "Interact", + "Fly": true, + "AetheryteShortcut": "Ultima Thule - Base Omicron" + }, + { + "DataId": 1043529, + "Position": { + "X": 504.90576, + "Y": 436.9996, + "Z": 341.5122 + }, + "TerritoryId": 960, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1043584, + "Position": { + "X": 803.7993, + "Y": 478.7742, + "Z": 200.73242 + }, + "TerritoryId": 960, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 2013072, + "Position": { + "X": 456.65674, + "Y": 438.04077, + "Z": 310.2312 + }, + "TerritoryId": 960, + "InteractionType": "Interact", + "TargetTerritoryId": 960, + "Mount": true, + "AetheryteShortcut": "Ultima Thule - Base Omicron" + }, + { + "DataId": 1043865, + "Position": { + "X": 301.8081, + "Y": 482.13644, + "Z": 165.02625 + }, + "TerritoryId": 960, + "InteractionType": "Interact", + "TargetTerritoryId": 960, + "Fly": true + }, + { + "DataId": 1043586, + "Position": { + "X": 205.3711, + "Y": 567.4998, + "Z": 246.72314 + }, + "TerritoryId": 960, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 2013033, + "Position": { + "X": 203.50952, + "Y": 567.4983, + "Z": 244.2511 + }, + "TerritoryId": 960, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "TerritoryId": 1073, + "InteractionType": "None", + "RequiredGatheredItems": [ + { + "QuestAcceptedAsClass": "Miner", + "ItemId": 38280, + "ItemCount": 3 + }, + { + "QuestAcceptedAsClass": "Botanist", + "ItemId": 38304, + "ItemCount": 3 + } + ] + }, + { + "DataId": 2013072, + "Position": { + "X": 456.65674, + "Y": 438.04077, + "Z": 310.2312 + }, + "TerritoryId": 960, + "InteractionType": "Interact", + "TargetTerritoryId": 960, + "Mount": true, + "AetheryteShortcut": "Ultima Thule - Base Omicron" + }, + { + "DataId": 1043865, + "Position": { + "X": 301.8081, + "Y": 482.13644, + "Z": 165.02625 + }, + "TerritoryId": 960, + "InteractionType": "Interact", + "Fly": true, + "TargetTerritoryId": 960 + }, + { + "DataId": 1043586, + "Position": { + "X": 205.3711, + "Y": 567.4998, + "Z": 246.72314 + }, + "TerritoryId": 960, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1043864, + "Position": { + "X": 244.83093, + "Y": 564.8203, + "Z": 261.76843 + }, + "TerritoryId": 960, + "InteractionType": "Interact", + "TargetTerritoryId": 960, + "DialogueChoices": [ + { + "Prompt": "TEXT_BANOMI005_04605_Q6_000_000", + "Type": "YesNo", + "Yes": true + } + ], + "Fly": true + }, + { + "DataId": 1043515, + "Position": { + "X": 303.39502, + "Y": 481.99442, + "Z": 152.81909 + }, + "TerritoryId": 960, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} From 824285aefd7bf29c6b3ffde0461fb099a7ac739b Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Tue, 10 Sep 2024 00:00:03 +0800 Subject: [PATCH 227/450] Updated daily quest "The Lost World" --- .../Omicrons/Dailies/4634_The Lost World.json | 58 ++++++++++++++++++- 1 file changed, 56 insertions(+), 2 deletions(-) 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 368803c3..7825c3cb 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 @@ -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,9 +17,64 @@ } ] }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2013074, + "Position": { + "X": 304.3412, + "Y": 483.4821, + "Z": 143.1448 + }, + "TerritoryId": 960, + "InteractionType": "Interact", + "TargetTerritoryId": 1073 + }, + { + "TerritoryId": 1073, + "InteractionType": "None", + "RequiredGatheredItems": [ + { + "QuestAcceptedAsClass": "Miner", + "ItemId": 38298, + "ItemCount": 3 + }, + { + "QuestAcceptedAsClass": "Botanist", + "ItemId": 38322, + "ItemCount": 3 + } + ] + }, + { + "DataId": 1044077, + "Position": { + "X": 474.9674, + "Y": 437.00165, + "Z": 338.094 + }, + "TerritoryId": 960, + "InteractionType": "Interact", + "AetheryteShortcut": "Ultima Thule - Base Omicron" + } + ] + }, { "Sequence": 255, "Steps": [ + { + "DataId": 2013072, + "Position": { + "X": 456.65674, + "Y": 438.04077, + "Z": 310.2312 + }, + "TerritoryId": 960, + "InteractionType": "Interact", + "TargetTerritoryId": 960, + "Mount": true + }, { "DataId": 1043417, "Position": { From 35a42ec54df37dbf917c9429498a44ccb9cd4421 Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Thu, 12 Sep 2024 01:15:41 +0800 Subject: [PATCH 228/450] Updated the following daily quests: - The Antlion's Share - Hears of Precious Stone --- .../Dailies/3059_The Antlion's Share.json | 34 +++++++++++-- .../3060_Hearts of Precious Stone.json | 48 +++++++++++++++++-- 2 files changed, 76 insertions(+), 6 deletions(-) diff --git a/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Dailies/3059_The Antlion's Share.json b/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Dailies/3059_The Antlion's Share.json index 2ff0c260..d28107ac 100644 --- a/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Dailies/3059_The Antlion's Share.json +++ b/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Dailies/3059_The Antlion's Share.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, @@ -22,7 +21,36 @@ { "Sequence": 1, "Steps": [ - + { + "DataId": 2009348, + "Position": { + "X": 798.2451, + "Y": 78.93494, + "Z": 345.26575 + }, + "TerritoryId": 612, + "InteractionType": "UseItem", + "ItemId": 2002441, + "Fly": true, + "$": "Adding another step to try to move away from the explosion won't work. It's stuck in this step until the explosion." + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2009349, + "Position": { + "X": 798.2451, + "Y": 78.93494, + "Z": 345.26575 + }, + "TerritoryId": 612, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [8592] + } ] }, { diff --git a/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Dailies/3060_Hearts of Precious Stone.json b/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Dailies/3060_Hearts of Precious Stone.json index 2ff0c260..79b3ff21 100644 --- a/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Dailies/3060_Hearts of Precious Stone.json +++ b/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Dailies/3060_Hearts of Precious Stone.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, @@ -22,7 +21,50 @@ { "Sequence": 1, "Steps": [ - + { + "DataId": 1025092, + "Position": { + "X": 693.6294, + "Y": 76.575005, + "Z": 479.51465 + }, + "TerritoryId": 612, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2009350, + "Position": { + "X": 620.29456, + "Y": 48.599854, + "Z": 349.87402 + }, + "TerritoryId": 612, + "InteractionType": "Snipe", + "Comment": "Shoot the Crazed Dharas", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1025092, + "Position": { + "X": 693.6294, + "Y": 76.575005, + "Z": 479.51465 + }, + "TerritoryId": 612, + "InteractionType": "Interact", + "Fly": true + } ] }, { From f2591790f7f2bfdac742bbfeb1352b6300177049 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Wed, 11 Sep 2024 21:02:38 +0200 Subject: [PATCH 229/450] Show previous quests for custom deliveries --- Questionable/Data/QuestData.cs | 4 +- Questionable/Functions/QuestFunctions.cs | 30 ++-- Questionable/Model/EQuestJoin.cs | 13 ++ Questionable/Model/IQuestInfo.cs | 5 +- Questionable/Model/LeveInfo.cs | 3 + Questionable/Model/PreviousQuestInfo.cs | 5 + Questionable/Model/QuestInfo.cs | 24 +-- Questionable/Model/SatisfactionSupplyInfo.cs | 4 + .../QuestComponents/QuestTooltipComponent.cs | 144 +++++++++--------- 9 files changed, 127 insertions(+), 105 deletions(-) create mode 100644 Questionable/Model/EQuestJoin.cs create mode 100644 Questionable/Model/PreviousQuestInfo.cs diff --git a/Questionable/Data/QuestData.cs b/Questionable/Data/QuestData.cs index 6843b84c..ed3a1c29 100644 --- a/Questionable/Data/QuestData.cs +++ b/Questionable/Data/QuestData.cs @@ -172,7 +172,7 @@ internal sealed class QuestData private void AddPreviousQuest(QuestId questToUpdate, QuestId requiredQuestId) { QuestInfo quest = (QuestInfo)_quests[questToUpdate]; - quest.AddPreviousQuest(new QuestInfo.PreviousQuestInfo(requiredQuestId)); + quest.AddPreviousQuest(new PreviousQuestInfo(requiredQuestId)); } private void AddGcFollowUpQuests() @@ -181,7 +181,7 @@ internal sealed class QuestData foreach (QuestId questId in questIds) { QuestInfo quest = (QuestInfo)_quests[questId]; - quest.AddQuestLocks(QuestInfo.QuestJoin.AtLeastOne, questIds.Where(x => x != questId).ToArray()); + quest.AddQuestLocks(EQuestJoin.AtLeastOne, questIds.Where(x => x != questId).ToArray()); } } diff --git a/Questionable/Functions/QuestFunctions.cs b/Questionable/Functions/QuestFunctions.cs index 46f52f8f..b0a92395 100644 --- a/Questionable/Functions/QuestFunctions.cs +++ b/Questionable/Functions/QuestFunctions.cs @@ -435,13 +435,13 @@ internal sealed unsafe class QuestFunctions return IsQuestLocked(questId, extraCompletedQuest); else if (elementId is LeveId leveId) return IsQuestLocked(leveId); - else if (elementId is SatisfactionSupplyNpcId) - return false; + else if (elementId is SatisfactionSupplyNpcId satisfactionSupplyNpcId) + return IsQuestLocked(satisfactionSupplyNpcId); else throw new ArgumentOutOfRangeException(nameof(elementId)); } - public bool IsQuestLocked(QuestId questId, ElementId? extraCompletedQuest = null) + private bool IsQuestLocked(QuestId questId, ElementId? extraCompletedQuest = null) { if (IsQuestUnobtainable(questId, extraCompletedQuest)) return true; @@ -453,7 +453,7 @@ internal sealed unsafe class QuestFunctions return !HasCompletedPreviousQuests(questInfo, extraCompletedQuest) || !HasCompletedPreviousInstances(questInfo); } - public bool IsQuestLocked(LeveId leveId) + private bool IsQuestLocked(LeveId leveId) { if (IsQuestUnobtainable(leveId)) return true; @@ -467,6 +467,12 @@ internal sealed unsafe class QuestFunctions return !IsQuestAccepted(leveId) && QuestManager.Instance()->NumLeveAllowances == 0; } + private bool IsQuestLocked(SatisfactionSupplyNpcId satisfactionSupplyNpcId) + { + SatisfactionSupplyInfo questInfo = (SatisfactionSupplyInfo)_questData.GetQuestInfo(satisfactionSupplyNpcId); + return !HasCompletedPreviousQuests(questInfo, null); + } + public bool IsQuestUnobtainable(ElementId elementId, ElementId? extraCompletedQuest = null) { if (elementId is QuestId questId) @@ -486,9 +492,9 @@ internal sealed unsafe class QuestFunctions if (questInfo.QuestLocks.Count > 0) { var completedQuests = questInfo.QuestLocks.Count(x => IsQuestComplete(x) || x.Equals(extraCompletedQuest)); - if (questInfo.QuestLockJoin == QuestInfo.QuestJoin.All && questInfo.QuestLocks.Count == completedQuests) + if (questInfo.QuestLockJoin == EQuestJoin.All && questInfo.QuestLocks.Count == completedQuests) return true; - else if (questInfo.QuestLockJoin == QuestInfo.QuestJoin.AtLeastOne && completedQuests > 0) + else if (questInfo.QuestLockJoin == EQuestJoin.AtLeastOne && completedQuests > 0) return true; } @@ -543,23 +549,23 @@ internal sealed unsafe class QuestFunctions return false; } - private bool HasCompletedPreviousQuests(QuestInfo questInfo, ElementId? extraCompletedQuest) + private bool HasCompletedPreviousQuests(IQuestInfo questInfo, ElementId? extraCompletedQuest) { if (questInfo.PreviousQuests.Count == 0) return true; var completedQuests = questInfo.PreviousQuests.Count(x => HasEnoughProgressOnPreviousQuest(x) || x.QuestId.Equals(extraCompletedQuest)); - if (questInfo.PreviousQuestJoin == QuestInfo.QuestJoin.All && + if (questInfo.PreviousQuestJoin == EQuestJoin.All && questInfo.PreviousQuests.Count == completedQuests) return true; - else if (questInfo.PreviousQuestJoin == QuestInfo.QuestJoin.AtLeastOne && completedQuests > 0) + else if (questInfo.PreviousQuestJoin == EQuestJoin.AtLeastOne && completedQuests > 0) return true; else return false; } - private bool HasEnoughProgressOnPreviousQuest(QuestInfo.PreviousQuestInfo previousQuestInfo) + private bool HasEnoughProgressOnPreviousQuest(PreviousQuestInfo previousQuestInfo) { if (IsQuestComplete(previousQuestInfo.QuestId)) return true; @@ -579,10 +585,10 @@ internal sealed unsafe class QuestFunctions return true; var completedInstances = questInfo.PreviousInstanceContent.Count(x => UIState.IsInstanceContentCompleted(x)); - if (questInfo.PreviousInstanceContentJoin == QuestInfo.QuestJoin.All && + if (questInfo.PreviousInstanceContentJoin == EQuestJoin.All && questInfo.PreviousInstanceContent.Count == completedInstances) return true; - else if (questInfo.PreviousInstanceContentJoin == QuestInfo.QuestJoin.AtLeastOne && completedInstances > 0) + else if (questInfo.PreviousInstanceContentJoin == EQuestJoin.AtLeastOne && completedInstances > 0) return true; else return false; diff --git a/Questionable/Model/EQuestJoin.cs b/Questionable/Model/EQuestJoin.cs new file mode 100644 index 00000000..61abf423 --- /dev/null +++ b/Questionable/Model/EQuestJoin.cs @@ -0,0 +1,13 @@ +using System.Diagnostics.CodeAnalysis; +using JetBrains.Annotations; + +namespace Questionable.Model; + +[SuppressMessage("Design", "CA1028", Justification = "Game type")] +[UsedImplicitly(ImplicitUseKindFlags.Assign, ImplicitUseTargetFlags.Members)] +internal enum EQuestJoin : byte +{ + None = 0, + All = 1, + AtLeastOne = 2, +} diff --git a/Questionable/Model/IQuestInfo.cs b/Questionable/Model/IQuestInfo.cs index 5bc8d5f9..d2c0e386 100644 --- a/Questionable/Model/IQuestInfo.cs +++ b/Questionable/Model/IQuestInfo.cs @@ -1,17 +1,20 @@ using System; using System.Collections.Generic; +using System.Collections.Immutable; using Dalamud.Game.Text; using LLib.GameData; using Questionable.Model.Questing; namespace Questionable.Model; -public interface IQuestInfo +internal interface IQuestInfo { public ElementId QuestId { get; } public string Name { get; } public uint IssuerDataId { get; } public bool IsRepeatable { get; } + public ImmutableList PreviousQuests { get; } + public EQuestJoin PreviousQuestJoin { get; } public ushort Level { get; } public EAlliedSociety AlliedSociety { get; } public uint? JournalGenre { get; } diff --git a/Questionable/Model/LeveInfo.cs b/Questionable/Model/LeveInfo.cs index d50ac82e..14878f71 100644 --- a/Questionable/Model/LeveInfo.cs +++ b/Questionable/Model/LeveInfo.cs @@ -1,4 +1,5 @@ using System.Collections.Generic; +using System.Collections.Immutable; using LLib.GameData; using Lumina.Excel.GeneratedSheets2; using Questionable.Model.Questing; @@ -22,6 +23,8 @@ internal sealed class LeveInfo : IQuestInfo public ElementId QuestId { get; } public string Name { get; } public uint IssuerDataId { get; } + public ImmutableList PreviousQuests { get; } = []; + public EQuestJoin PreviousQuestJoin => EQuestJoin.All; public bool IsRepeatable => true; public ushort Level { get; } public EAlliedSociety AlliedSociety => EAlliedSociety.None; diff --git a/Questionable/Model/PreviousQuestInfo.cs b/Questionable/Model/PreviousQuestInfo.cs new file mode 100644 index 00000000..302a32e8 --- /dev/null +++ b/Questionable/Model/PreviousQuestInfo.cs @@ -0,0 +1,5 @@ +using Questionable.Model.Questing; + +namespace Questionable.Model; + +internal sealed record PreviousQuestInfo(QuestId QuestId, byte Sequence = 0); diff --git a/Questionable/Model/QuestInfo.cs b/Questionable/Model/QuestInfo.cs index 05603009..6149209a 100644 --- a/Questionable/Model/QuestInfo.cs +++ b/Questionable/Model/QuestInfo.cs @@ -47,18 +47,18 @@ internal sealed class QuestInfo : IQuestInfo } .Where(x => x.QuestId.Value != 0) .ToImmutableList(); - PreviousQuestJoin = (QuestJoin)quest.PreviousQuestJoin; + PreviousQuestJoin = (EQuestJoin)quest.PreviousQuestJoin; QuestLocks = quest.QuestLock .Select(x => new QuestId((ushort)(x.Row & 0xFFFFF))) .Where(x => x.Value != 0) .ToImmutableList(); - QuestLockJoin = (QuestJoin)quest.QuestLockJoin; + QuestLockJoin = (EQuestJoin)quest.QuestLockJoin; JournalGenre = quest.JournalGenre?.Row; 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(); - PreviousInstanceContentJoin = (QuestJoin)quest.InstanceContentJoin; + PreviousInstanceContentJoin = (EQuestJoin)quest.InstanceContentJoin; GrandCompany = (GrandCompany)quest.GrandCompany.Row; AlliedSociety = (EAlliedSociety)quest.BeastTribe.Row; ClassJobs = QuestInfoUtils.AsList(quest.ClassJobCategory0.Value!); @@ -75,11 +75,11 @@ internal sealed class QuestInfo : IQuestInfo public uint IssuerDataId { get; } public bool IsRepeatable { get; } public ImmutableList PreviousQuests { get; private set; } - public QuestJoin PreviousQuestJoin { get; } + public EQuestJoin PreviousQuestJoin { get; } public ImmutableList QuestLocks { get; private set; } - public QuestJoin QuestLockJoin { get; private set; } + public EQuestJoin QuestLockJoin { get; private set; } public List PreviousInstanceContent { get; } - public QuestJoin PreviousInstanceContentJoin { get; } + public EQuestJoin PreviousInstanceContentJoin { get; } public uint? JournalGenre { get; } public ushort SortKey { get; } public bool IsMainScenarioQuest { get; } @@ -92,20 +92,12 @@ internal sealed class QuestInfo : IQuestInfo public byte StartingCity { get; set; } public EExpansionVersion Expansion { get; } - [UsedImplicitly(ImplicitUseKindFlags.Assign, ImplicitUseTargetFlags.Members)] - public enum QuestJoin : byte - { - None = 0, - All = 1, - AtLeastOne = 2, - } - public void AddPreviousQuest(PreviousQuestInfo questId) { PreviousQuests = [..PreviousQuests, questId]; } - public void AddQuestLocks(QuestJoin questJoin, params QuestId[] questId) + public void AddQuestLocks(EQuestJoin questJoin, params QuestId[] questId) { if (QuestLocks.Count > 0 && QuestLockJoin != questJoin) throw new InvalidOperationException(); @@ -113,6 +105,4 @@ internal sealed class QuestInfo : IQuestInfo QuestLockJoin = questJoin; QuestLocks = [..QuestLocks, ..questId]; } - - public sealed record PreviousQuestInfo(QuestId QuestId, byte Sequence = 0); } diff --git a/Questionable/Model/SatisfactionSupplyInfo.cs b/Questionable/Model/SatisfactionSupplyInfo.cs index 9b3a7a6d..41f6d5e2 100644 --- a/Questionable/Model/SatisfactionSupplyInfo.cs +++ b/Questionable/Model/SatisfactionSupplyInfo.cs @@ -1,4 +1,5 @@ using System.Collections.Generic; +using System.Collections.Immutable; using LLib.GameData; using Lumina.Excel.GeneratedSheets; using Questionable.Model.Questing; @@ -15,12 +16,15 @@ internal sealed class SatisfactionSupplyInfo : IQuestInfo Level = npc.LevelUnlock; SortKey = QuestId.Value; Expansion = (EExpansionVersion)npc.QuestRequired.Value!.Expansion.Row; + PreviousQuests = [new PreviousQuestInfo(new QuestId((ushort)(npc.QuestRequired.Row & 0xFFFF)))]; } public ElementId QuestId { get; } public string Name { get; } public uint IssuerDataId { get; } public bool IsRepeatable => true; + public ImmutableList PreviousQuests { get; } + public EQuestJoin PreviousQuestJoin => EQuestJoin.All; public ushort Level { get; } public EAlliedSociety AlliedSociety => EAlliedSociety.None; public uint? JournalGenre => null; diff --git a/Questionable/Windows/QuestComponents/QuestTooltipComponent.cs b/Questionable/Windows/QuestComponents/QuestTooltipComponent.cs index 4fac3f95..702541b6 100644 --- a/Questionable/Windows/QuestComponents/QuestTooltipComponent.cs +++ b/Questionable/Windows/QuestComponents/QuestTooltipComponent.cs @@ -8,7 +8,6 @@ using Questionable.Controller; using Questionable.Data; using Questionable.Functions; using Questionable.Model; -using Questionable.Model.Questing; namespace Questionable.Windows.QuestComponents; @@ -37,40 +36,34 @@ internal sealed class QuestTooltipComponent _configuration = configuration; } - public void Draw(IQuestInfo quest) - { - if (quest is QuestInfo questInfo) - Draw(questInfo); - } - - public void Draw(QuestInfo quest) + public void Draw(IQuestInfo questInfo) { using var tooltip = ImRaii.Tooltip(); if (tooltip) { - ImGui.Text($"{SeIconChar.LevelEn.ToIconString()}{quest.Level}"); + ImGui.Text($"{SeIconChar.LevelEn.ToIconString()}{questInfo.Level}"); ImGui.SameLine(); - var (color, _, tooltipText) = _uiUtils.GetQuestStyle(quest.QuestId); + var (color, _, tooltipText) = _uiUtils.GetQuestStyle(questInfo.QuestId); ImGui.TextColored(color, tooltipText); - if (quest.IsRepeatable) + if (questInfo.IsRepeatable) { ImGui.SameLine(); ImGui.TextUnformatted("Repeatable"); } - if (quest.CompletesInstantly) + if (questInfo is QuestInfo { CompletesInstantly: true }) { ImGui.SameLine(); ImGui.TextUnformatted("Instant"); } - if (_questRegistry.TryGetQuest(quest.QuestId, out Quest? knownQuest)) + if (_questRegistry.TryGetQuest(questInfo.QuestId, out Quest? quest)) { - if (knownQuest.Root.Author.Count == 1) - ImGui.Text($"Author: {knownQuest.Root.Author[0]}"); + if (quest.Root.Author.Count == 1) + ImGui.Text($"Author: {quest.Root.Author[0]}"); else - ImGui.Text($"Authors: {string.Join(", ", knownQuest.Root.Author)}"); + ImGui.Text($"Authors: {string.Join(", ", quest.Root.Author)}"); } else { @@ -78,35 +71,35 @@ internal sealed class QuestTooltipComponent ImGui.TextUnformatted("NoQuestPath"); } - DrawQuestUnlocks(quest, 0); + DrawQuestUnlocks(questInfo, 0); } } - private void DrawQuestUnlocks(QuestInfo quest, int counter) + private void DrawQuestUnlocks(IQuestInfo questInfo, int counter) { if (counter >= 10) return; - if (counter != 0 && quest.IsMainScenarioQuest) + if (counter != 0 && questInfo.IsMainScenarioQuest) return; if (counter > 0) ImGui.Indent(); - if (quest.PreviousQuests.Count > 0) + if (questInfo.PreviousQuests.Count > 0) { if (counter == 0) ImGui.Separator(); - if (quest.PreviousQuests.Count > 1) + if (questInfo.PreviousQuests.Count > 1) { - if (quest.PreviousQuestJoin == QuestInfo.QuestJoin.All) + if (questInfo.PreviousQuestJoin == EQuestJoin.All) ImGui.Text("Requires all:"); - else if (quest.PreviousQuestJoin == QuestInfo.QuestJoin.AtLeastOne) + else if (questInfo.PreviousQuestJoin == EQuestJoin.AtLeastOne) ImGui.Text("Requires one:"); } - foreach (var q in quest.PreviousQuests) + foreach (var q in questInfo.PreviousQuests) { if (_questData.TryGetQuestInfo(q.QuestId, out var qInfo)) { @@ -114,7 +107,9 @@ internal sealed class QuestTooltipComponent if (!_questRegistry.IsKnownQuest(qInfo.QuestId)) iconColor = ImGuiColors.DalamudGrey; - _uiUtils.ChecklistItem(FormatQuestUnlockName(qInfo, _questFunctions.IsQuestComplete(q.QuestId) ? byte.MinValue : q.Sequence), iconColor, icon); + _uiUtils.ChecklistItem( + FormatQuestUnlockName(qInfo, + _questFunctions.IsQuestComplete(q.QuestId) ? byte.MinValue : q.Sequence), iconColor, icon); if (qInfo is QuestInfo qstInfo && (counter <= 2 || icon != FontAwesomeIcon.Check)) DrawQuestUnlocks(qstInfo, counter + 1); @@ -127,64 +122,67 @@ internal sealed class QuestTooltipComponent } } - if (counter == 0 && quest.QuestLocks.Count > 0) + if (questInfo is QuestInfo actualQuestInfo) { - ImGui.Separator(); - if (quest.QuestLocks.Count > 1) + if (counter == 0 && actualQuestInfo.QuestLocks.Count > 0) { - if (quest.QuestLockJoin == QuestInfo.QuestJoin.All) - ImGui.Text("Blocked by (if all completed):"); - else if (quest.QuestLockJoin == QuestInfo.QuestJoin.AtLeastOne) - ImGui.Text("Blocked by (if at least completed):"); + ImGui.Separator(); + if (actualQuestInfo.QuestLocks.Count > 1) + { + if (actualQuestInfo.QuestLockJoin == EQuestJoin.All) + ImGui.Text("Blocked by (if all completed):"); + else if (actualQuestInfo.QuestLockJoin == EQuestJoin.AtLeastOne) + ImGui.Text("Blocked by (if at least completed):"); + } + else + ImGui.Text("Blocked by (if completed):"); + + foreach (var q in actualQuestInfo.QuestLocks) + { + var qInfo = _questData.GetQuestInfo(q); + var (iconColor, icon, _) = _uiUtils.GetQuestStyle(q); + if (!_questRegistry.IsKnownQuest(qInfo.QuestId)) + iconColor = ImGuiColors.DalamudGrey; + + _uiUtils.ChecklistItem(FormatQuestUnlockName(qInfo), iconColor, icon); + } } - else - ImGui.Text("Blocked by (if completed):"); - foreach (var q in quest.QuestLocks) + if (counter == 0 && actualQuestInfo.PreviousInstanceContent.Count > 0) { - var qInfo = _questData.GetQuestInfo(q); - var (iconColor, icon, _) = _uiUtils.GetQuestStyle(q); - if (!_questRegistry.IsKnownQuest(qInfo.QuestId)) - iconColor = ImGuiColors.DalamudGrey; + ImGui.Separator(); + if (actualQuestInfo.PreviousInstanceContent.Count > 1) + { + if (questInfo.PreviousQuestJoin == EQuestJoin.All) + ImGui.Text("Requires all:"); + else if (questInfo.PreviousQuestJoin == EQuestJoin.AtLeastOne) + ImGui.Text("Requires one:"); + } + else + ImGui.Text("Requires:"); - _uiUtils.ChecklistItem(FormatQuestUnlockName(qInfo), iconColor, icon); + foreach (var instanceId in actualQuestInfo.PreviousInstanceContent) + { + string instanceName = _territoryData.GetInstanceName(instanceId) ?? "?"; + var (iconColor, icon) = UiUtils.GetInstanceStyle(instanceId); + _uiUtils.ChecklistItem(instanceName, iconColor, icon); + } } - } - if (counter == 0 && quest.PreviousInstanceContent.Count > 0) - { - ImGui.Separator(); - if (quest.PreviousInstanceContent.Count > 1) + if (counter == 0 && actualQuestInfo.GrandCompany != GrandCompany.None) { - if (quest.PreviousQuestJoin == QuestInfo.QuestJoin.All) - ImGui.Text("Requires all:"); - else if (quest.PreviousQuestJoin == QuestInfo.QuestJoin.AtLeastOne) - ImGui.Text("Requires one:"); + ImGui.Separator(); + string gcName = actualQuestInfo.GrandCompany switch + { + GrandCompany.Maelstrom => "Maelstrom", + GrandCompany.TwinAdder => "Twin Adder", + GrandCompany.ImmortalFlames => "Immortal Flames", + _ => "None", + }; + + GrandCompany currentGrandCompany = ~_questFunctions.GetGrandCompany(); + _uiUtils.ChecklistItem($"Grand Company: {gcName}", actualQuestInfo.GrandCompany == currentGrandCompany); } - else - ImGui.Text("Requires:"); - - foreach (var instanceId in quest.PreviousInstanceContent) - { - string instanceName = _territoryData.GetInstanceName(instanceId) ?? "?"; - var (iconColor, icon) = UiUtils.GetInstanceStyle(instanceId); - _uiUtils.ChecklistItem(instanceName, iconColor, icon); - } - } - - if (counter == 0 && quest.GrandCompany != GrandCompany.None) - { - ImGui.Separator(); - string gcName = quest.GrandCompany switch - { - GrandCompany.Maelstrom => "Maelstrom", - GrandCompany.TwinAdder => "Twin Adder", - GrandCompany.ImmortalFlames => "Immortal Flames", - _ => "None", - }; - - GrandCompany currentGrandCompany = ~_questFunctions.GetGrandCompany(); - _uiUtils.ChecklistItem($"Grand Company: {gcName}", quest.GrandCompany == currentGrandCompany); } if (counter > 0) From 3c219ae7d0c970497a1ef4120b011788a4012ce6 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Wed, 11 Sep 2024 21:10:48 +0200 Subject: [PATCH 230/450] Exclude custom delivery quests from priority window (as they can't be started this way) --- Questionable/Windows/PriorityWindow.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/Questionable/Windows/PriorityWindow.cs b/Questionable/Windows/PriorityWindow.cs index 60428f1c..346ca0eb 100644 --- a/Questionable/Windows/PriorityWindow.cs +++ b/Questionable/Windows/PriorityWindow.cs @@ -80,6 +80,7 @@ internal sealed class PriorityWindow : LWindow if (!string.IsNullOrEmpty(_searchString)) { foundQuests = _questRegistry.AllQuests + .Where(x => x.Id is not SatisfactionSupplyNpcId) .Where(x => x.Info.Name.Contains(_searchString, StringComparison.CurrentCultureIgnoreCase)) .Where(x => !_questFunctions.IsQuestUnobtainable(x.Id)); } From b8080ae1ff780eac87c65610defa8d25b3edc7be Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Wed, 11 Sep 2024 21:33:30 +0200 Subject: [PATCH 231/450] Add extra Return to Ivalice quests --- .../3090_My Power, My Pleasure, My Pain.json | 240 ++++++++++++++++++ .../3190_In Bad Taste.json | 127 +++++++++ 2 files changed, 367 insertions(+) create mode 100644 QuestPaths/4.x - Stormblood/Alliance Raid Quests/3090_My Power, My Pleasure, My Pain.json create mode 100644 QuestPaths/4.x - Stormblood/Alliance Raid Quests/3190_In Bad Taste.json diff --git a/QuestPaths/4.x - Stormblood/Alliance Raid Quests/3090_My Power, My Pleasure, My Pain.json b/QuestPaths/4.x - Stormblood/Alliance Raid Quests/3090_My Power, My Pleasure, My Pain.json new file mode 100644 index 00000000..b3af8ca8 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Alliance Raid Quests/3090_My Power, My Pleasure, My Pain.json @@ -0,0 +1,240 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1026029, + "Position": { + "X": 1.3274536, + "Y": 0.05124623, + "Z": 1.9683228 + }, + "TerritoryId": 735, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1006305, + "Position": { + "X": 10.60498, + "Y": 71.47817, + "Z": -16.617126 + }, + "TerritoryId": 137, + "InteractionType": "Interact", + "AetheryteShortcut": "Eastern La Noscea - Wineport" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1006306, + "Position": { + "X": -25.864075, + "Y": 71.787285, + "Z": -36.78955 + }, + "TerritoryId": 137, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "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": 4, + "Steps": [ + { + "DataId": 1006305, + "Position": { + "X": 10.60498, + "Y": 71.47817, + "Z": -16.617126 + }, + "TerritoryId": 137, + "InteractionType": "Interact", + "AetheryteShortcut": "Eastern La Noscea - Wineport" + } + ] + }, + { + "Sequence": 5, + "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": 6, + "Steps": [ + { + "DataId": 1006312, + "Position": { + "X": -369.0395, + "Y": 54.28071, + "Z": 441.24512 + }, + "TerritoryId": 137, + "InteractionType": "Emote", + "Emote": "soothe" + } + ] + }, + { + "Sequence": 7, + "Steps": [ + { + "DataId": 1006312, + "Position": { + "X": -369.0395, + "Y": 54.28071, + "Z": 441.24512 + }, + "TerritoryId": 137, + "InteractionType": "Emote", + "Emote": "comfort" + } + ] + }, + { + "Sequence": 8, + "Steps": [ + { + "DataId": 2009478, + "Position": { + "X": -372.12183, + "Y": 48.874634, + "Z": 431.75403 + }, + "TerritoryId": 137, + "InteractionType": "Interact", + "Mount": true + } + ] + }, + { + "Sequence": 9, + "Steps": [ + { + "DataId": 1006305, + "Position": { + "X": 10.60498, + "Y": 71.47817, + "Z": -16.617126 + }, + "TerritoryId": 137, + "InteractionType": "Interact", + "AetheryteShortcut": "Eastern La Noscea - Wineport" + } + ] + }, + { + "Sequence": 10, + "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": 11, + "Steps": [ + { + "DataId": 1024156, + "Position": { + "X": -59.098206, + "Y": 79.05602, + "Z": 45.303955 + }, + "StopDistance": 7, + "TerritoryId": 628, + "InteractionType": "Interact", + "TargetTerritoryId": 735, + "AetheryteShortcut": "Kugane", + "AethernetShortcut": [ + "[Kugane] Aetheryte Plaza", + "[Kugane] Airship Landing" + ] + }, + { + "DataId": 1026029, + "Position": { + "X": 1.3274536, + "Y": 0.05124623, + "Z": 1.9683228 + }, + "TerritoryId": 735, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1026029, + "Position": { + "X": 1.3274536, + "Y": 0.05124623, + "Z": 1.9683228 + }, + "TerritoryId": 735, + "InteractionType": "CompleteQuest", + "NextQuestId": 3190 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Alliance Raid Quests/3190_In Bad Taste.json b/QuestPaths/4.x - Stormblood/Alliance Raid Quests/3190_In Bad Taste.json new file mode 100644 index 00000000..fe7dc876 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Alliance Raid Quests/3190_In Bad Taste.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": 1026029, + "Position": { + "X": 1.3274536, + "Y": 0.05124623, + "Z": 1.9683228 + }, + "TerritoryId": 735, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1 + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1026029, + "Position": { + "X": 1.3274536, + "Y": 0.05124623, + "Z": 1.9683228 + }, + "TerritoryId": 735, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1006305, + "Position": { + "X": 10.60498, + "Y": 71.47817, + "Z": -16.617126 + }, + "TerritoryId": 137, + "InteractionType": "Interact", + "AetheryteShortcut": "Eastern La Noscea - Wineport" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1006305, + "Position": { + "X": 10.60498, + "Y": 71.47817, + "Z": -16.617126 + }, + "TerritoryId": 137, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 5, + "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": 255, + "Steps": [ + { + "DataId": 1024156, + "Position": { + "X": -59.098206, + "Y": 79.05602, + "Z": 45.303955 + }, + "StopDistance": 7, + "TerritoryId": 628, + "InteractionType": "Interact", + "TargetTerritoryId": 735, + "AetheryteShortcut": "Kugane", + "AethernetShortcut": [ + "[Kugane] Aetheryte Plaza", + "[Kugane] Airship Landing" + ] + }, + { + "DataId": 1026029, + "Position": { + "X": 1.3274536, + "Y": 0.05124623, + "Z": 1.9683228 + }, + "TerritoryId": 735, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} From 6b03ff30dc98aa9e1e22daa5967e1b2073da0a77 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Wed, 11 Sep 2024 21:43:29 +0200 Subject: [PATCH 232/450] Tweak gathering location angles --- .../6.x - Endwalker/Ultima Thule/910__MIN.json | 16 ++++++++++++---- .../6.x - Endwalker/Ultima Thule/913__BTN.json | 16 ++++++++++++---- 2 files changed, 24 insertions(+), 8 deletions(-) diff --git a/GatheringPaths/6.x - Endwalker/Ultima Thule/910__MIN.json b/GatheringPaths/6.x - Endwalker/Ultima Thule/910__MIN.json index 2dcf507a..d8c5cbdb 100644 --- a/GatheringPaths/6.x - Endwalker/Ultima Thule/910__MIN.json +++ b/GatheringPaths/6.x - Endwalker/Ultima Thule/910__MIN.json @@ -19,7 +19,11 @@ "X": 454.8535, "Y": 307.5555, "Z": -590.8547 - } + }, + "MinimumAngle": -105, + "MaximumAngle": -25, + "MinimumDistance": 1, + "MaximumDistance": 1.6 } ] } @@ -35,7 +39,9 @@ "X": 447.787, "Y": 300.8405, "Z": -597.8972 - } + }, + "MinimumAngle": 45, + "MaximumAngle": 185 } ] } @@ -51,11 +57,13 @@ "X": 448.707, "Y": 305.0525, "Z": -591.1053 - } + }, + "MinimumAngle": 30, + "MaximumAngle": 70 } ] } ] } ] -} +} \ No newline at end of file diff --git a/GatheringPaths/6.x - Endwalker/Ultima Thule/913__BTN.json b/GatheringPaths/6.x - Endwalker/Ultima Thule/913__BTN.json index b35a276d..65e71a56 100644 --- a/GatheringPaths/6.x - Endwalker/Ultima Thule/913__BTN.json +++ b/GatheringPaths/6.x - Endwalker/Ultima Thule/913__BTN.json @@ -19,7 +19,9 @@ "X": 398.7177, "Y": 292.5112, "Z": -462.82 - } + }, + "MinimumAngle": -65, + "MaximumAngle": 65 } ] } @@ -35,7 +37,9 @@ "X": 373.1678, "Y": 290.8189, "Z": -442.4228 - } + }, + "MinimumAngle": 160, + "MaximumAngle": 305 } ] } @@ -51,11 +55,15 @@ "X": 383.5671, "Y": 289.9682, "Z": -392.3997 - } + }, + "MinimumAngle": 65, + "MaximumAngle": 165, + "MinimumDistance": 1, + "MaximumDistance": 3 } ] } ] } ] -} +} \ No newline at end of file From cc4a573b2d16d336edb3031ae244fe4f7d5c272c Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Wed, 11 Sep 2024 21:49:14 +0200 Subject: [PATCH 233/450] Reformat quests (whitespace/line break-only changes) --- .../BRD/67_School of Hard Nocks.json | 67 ++- .../MNK/1062_Insulted Intelligence.json | 9 +- .../MNK/1063_A Slave to the Aether.json | 9 +- .../MNK/1064_The Pursuit of Power.json | 9 +- .../MNK/1065_Good Vibrations.json | 11 +- .../MNK/1066_Five Easy Pieces.json | 5 +- .../MNK/554_Harder than Rock.json | 16 +- .../MNK/698_Burning Up the Quarter Malm.json | 4 +- .../SMN/452_Way of the Arcanist.json | 84 +-- .../Class Quests/WHM/147_Trial by Wind.json | 5 +- .../Class Quests/WHM/48_Trial by Earth.json | 8 +- .../Class Quests/WHM/91_Trial by Wind.json | 312 +++++------ ...1204_The Rise and Fall of a Gentlemen.json | 222 ++++---- .../1205_Back in the Saddle.json | 138 ++--- .../1206_After Her Own Heart.json | 246 ++++---- .../1207_The Immaculate Deception.json | 524 +++++++++--------- .../1315_The Science of Deduction.json | 344 ++++++------ .../Hildibrand Quests/1316_The Hammer.json | 144 ++--- .../1317_Manderville Men.json | 132 ++--- .../1318_The Three Collectors.json | 302 +++++----- .../1438_The Business of Betrothal.json | 302 +++++----- .../1439_A Burst of Inspiration.json | 160 +++--- .../1440_Seeds of Rebellion.json | 294 +++++----- .../1441_A Case of Indecency.json | 196 +++---- .../166_Eight-armed and Dangerous.json | 270 ++++----- .../202_What Price Victory.json | 216 ++++---- .../203_The Trouble with Truffles.json | 264 ++++----- .../204_The Coliseum Conundrum.json | 244 ++++---- .../490_Shades of Sil'dih.json | 182 +++--- .../Hildibrand Quests/491_Sibling Strife.json | 268 ++++----- .../492_Beneath the Mask.json | 256 ++++----- .../Hildibrand Quests/493_Truths Untold.json | 172 +++--- .../Hildibrand Quests/502_Her Last Vow.json | 202 +++---- .../3853_Heir Today, Gone Tomorrow.json | 29 +- .../3856_We Come in Peace.json | 5 +- .../956_With the Utmost Care.json | 1 - .../1190_You Have Selected Regicide.json | 5 +- ...1433_An Ill-conceived Venture (Limsa).json | 134 ++--- .../MNK/2026_The Legend Continues.json | 13 +- .../MNK/2027_Let's Talk about Sects.json | 12 +- .../MNK/2029_Fight the Battle to Win.json | 4 +- .../MNK/2030_Stop the Senseless Killing.json | 4 +- .../WHM/1719_Taint Misbehaving.json | 4 +- .../WHM/1722_The Dark Blight Writhes.json | 4 +- .../WHM/1723_In the Wake of Death.json | 10 +- .../3090_My Power, My Pleasure, My Pain.json | 1 - .../Dailies/3051_Criminal Crossings.json | 87 ++- .../Ananta/Dailies/3053_Sparring Lesson.json | 4 +- .../Ananta/Dailies/3054_Funnel and Games.json | 45 +- .../Dailies/3059_The Antlion's Share.json | 4 +- .../Dailies/3061_Ants in the Pants.json | 1 - .../Dailies/3069_Catching and Fletching.md | 4 +- .../Story/3039_It Can Be Cruel Sometimes.json | 4 +- .../MNK/2426_A Fistful of Resolve.json | 5 +- .../MNK/2428_Cross-fist Training.json | 4 +- .../WHM/2415_An Aura for Trouble.json | 4 +- .../WHM/2417_The Problem with Padjals.json | 4 +- .../WHM/2418_What She Always Wanted.json | 4 +- .../2486_In Darkness the Magatama Dreams.json | 36 +- .../MSQ/A6.2-Peaks 2/2536_Hells Open.json | 5 +- .../3152_The Fire-bird Down Below.json | 2 +- .../Dailies/3907_A Blueprint a Day.json | 2 - .../Dailies/3908_Foundations of Steel.json | 2 - .../3909_How Do You Do, Fellow Dwarves.json | 2 - .../Dailies/3910_Wood for What Ales You.json | 2 - .../Dailies/3911_The Heart of Tankiness.json | 2 - .../Dwarves/Dailies/3912_Boom and Dust.json | 2 - ...3913_One Hundred Tankards of Solitude.json | 2 - .../Dailies/3914_Cooler Tanks Prevail.json | 2 - .../Dailies/3918_Sealing the Deal.json | 2 - .../Dailies/3919_Spreading the Word.json | 2 - .../Dailies/3920_Targets Required.json | 2 - .../Dailies/3921_Unbreakable Plate.json | 2 - .../Dailies/3924_A Crude Awakening.json | 1 - .../Dailies/3929_Substitute Tester.json | 2 - .../Pixies/Dailies/3691_Sharing Is Caring.md | 1 + .../3692_The Aesthetician of Il Mheg.md | 1 + .../Dailies/3694_I Dream of Shinies.json | 12 +- .../Pixies/Dailies/3698_Porxine Perfection.md | 1 + .../Pixies/Dailies/3699_The Big Sleep.json | 12 +- .../Pixies/Dailies/3701_Amazing Graze.md | 1 + .../Pixies/Dailies/3702_Pure Imagination.json | 12 +- .../Pixies/Dailies/3702_Pure Imagination.md | 1 + .../Dailies/3703_Raiders of the Lost Pork.md | 1 + .../Dailies/3704_Pebble without a Cause.json | 12 +- .../3705_There's Always a Stupider Fish.json | 12 +- .../Pixies/Dailies/3716_The Chaser.json | 8 +- .../Pixies/Dailies/3716_The Chaser.md | 4 +- .../Dailies/3810_Power to the Vegetables.json | 3 - .../Dailies/3813_Marks of Friendship.json | 3 - .../Dailies/3814_Prayers and Poison.json | 3 - .../Qitari/Dailies/3815_Salve Our Souls.json | 3 - .../Qitari/Dailies/3816_Rings of Pattern.json | 3 - .../Qitari/Dailies/3817_You Dirty Rats.json | 3 - .../Dailies/3818_If It's Broke, Fix It.json | 3 - .../3820_The Qitari Book of Records.json | 2 - .../Dailies/3822_I Have Never Exploded.json | 3 - .../3823_By the Power Invested in Scree.json | 3 - .../Qitari/Dailies/3824_Rock 'n Ronka.json | 3 - ...5_There's No Clean Like Qhoterl Clean.json | 3 - .../Dailies/3832_Serpent's Will Be Done.json | 3 - .../Dailies/3833_Qhoterl's Chronicles.json | 3 - .../DNC/3251_A Soirée in the Sultanate.json | 4 +- .../DNC/3252_Dances with Duskwights.json | 4 +- .../B-Il Mheg/3305_The Oracle of Light.json | 3 +- .../MSQ/D-Amh Araeng 2/3613_On Track.json | 12 +- .../E-Kholusia 2/3631_A Feast of Lies.json | 4 +- .../Healer/3267_Traditions and Travails.json | 12 +- .../Healer/3268_Affronts and Allies.json | 16 +- .../Healer/3269_The Scientific Method.json | 8 +- .../Healer/3270_The Lost and the Found.json | 16 +- .../Healer/3271_Never to Return.json | 4 +- .../Healer/3272_The Soul of Temperance.json | 16 +- .../Physical/3273_No Greater Sport.json | 4 +- .../Physical/3274_Vengeance in Defeat.json | 4 +- .../Physical/3278_Courage Born of Fear.json | 5 +- .../Arkasodara/Dailies/4563_Seedy Affair.json | 24 +- .../Arkasodara/Dailies/4563_Seedy Affair.md | 2 + .../Dailies/4707_Lunar Beats for Hopping.json | 3 +- .../Dailies/4711_By the Muse Forsaken.json | 3 +- .../Dailies/4712_Art Is an Explosion!.json | 3 +- .../4713_Craft, Craft, Fashion, Baby.json | 3 +- .../Dailies/4714_Sparking Artist.json | 3 +- .../Dailies/4613_The Hunger Pangs.json | 1 - .../4602_Longing So for All the Fish.json | 514 ++++++++--------- .../4407_Heart of the Matter.json | 4 +- .../PCT/4857_The Crate Beyond.json | 5 +- .../5182_Fire Red, Beast Green.json | 4 +- 128 files changed, 3589 insertions(+), 3294 deletions(-) diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/67_School of Hard Nocks.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/67_School of Hard Nocks.json index 23046faa..092de9a8 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/67_School of Hard Nocks.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/BRD/67_School of Hard Nocks.json @@ -68,7 +68,14 @@ "StopDistance": 15, "InteractionType": "Action", "Action": "Heavy Shot", - "CompletionQuestVariablesFlags": [null, null, null, null, null, 2] + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 2 + ] }, { "Position": { @@ -80,7 +87,14 @@ "InteractionType": "WalkTo", "SkipConditions": { "StepIf": { - "CompletionQuestVariablesFlags": [null, null, null, null, null, 4] + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 4 + ] } } }, @@ -95,7 +109,14 @@ "StopDistance": 15, "InteractionType": "Action", "Action": "Heavy Shot", - "CompletionQuestVariablesFlags": [null, null, null, null, null, 4] + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 4 + ] }, { "Position": { @@ -107,7 +128,14 @@ "InteractionType": "WalkTo", "SkipConditions": { "StepIf": { - "CompletionQuestVariablesFlags": [null, null, null, null, null, 8] + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 8 + ] } } }, @@ -122,7 +150,14 @@ "StopDistance": 15, "InteractionType": "Action", "Action": "Heavy Shot", - "CompletionQuestVariablesFlags": [null, null, null, null, null, 8] + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 8 + ] }, { "Position": { @@ -156,7 +191,14 @@ "StopDistance": 15, "InteractionType": "Action", "Action": "Heavy Shot", - "CompletionQuestVariablesFlags": [null, null, null, null, null, 16] + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 16 + ] }, { "Position": { @@ -190,7 +232,14 @@ "StopDistance": 15, "InteractionType": "Action", "Action": "Heavy Shot", - "CompletionQuestVariablesFlags": [null, null, null, null, null, 32] + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] }, { "Position": { @@ -253,7 +302,9 @@ "[Gridania] Lancers' Guild" ], "SkipConditions": { - "StepIf": { "AetheryteUnlocked": "East Shroud - Hawthorne Hut" } + "StepIf": { + "AetheryteUnlocked": "East Shroud - Hawthorne Hut" + } } }, { diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/1062_Insulted Intelligence.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/1062_Insulted Intelligence.json index 9e70c0f0..c0b8f5fc 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/1062_Insulted Intelligence.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/1062_Insulted Intelligence.json @@ -16,7 +16,10 @@ ], "SkipConditions": { "AetheryteShortcutIf": { - "InTerritory": [130, 131] + "InTerritory": [ + 130, + 131 + ] }, "AethernetShortcutIf": { "InSameTerritory": true @@ -49,7 +52,9 @@ "InteractionType": "Combat", "EnemySpawnType": "AfterItemUse", "ItemId": 2000817, - "KillEnemyDataIds": [1925], + "KillEnemyDataIds": [ + 1925 + ], "AetheryteShortcut": "Eastern La Noscea - Costa Del Sol", "Fly": true } diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/1063_A Slave to the Aether.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/1063_A Slave to the Aether.json index eb73c689..78b07f3d 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/1063_A Slave to the Aether.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/1063_A Slave to the Aether.json @@ -21,7 +21,10 @@ ], "SkipConditions": { "AetheryteShortcutIf": { - "InTerritory": [130, 131] + "InTerritory": [ + 130, + 131 + ] }, "AethernetShortcutIf": { "InSameTerritory": true @@ -73,7 +76,9 @@ "InteractionType": "Combat", "EnemySpawnType": "OverworldEnemies", "DelaySecondsAtStart": 0, - "KillEnemyDataIds": [1926] + "KillEnemyDataIds": [ + 1926 + ] } ] }, diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/1064_The Pursuit of Power.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/1064_The Pursuit of Power.json index 234cb1a6..faee5674 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/1064_The Pursuit of Power.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/1064_The Pursuit of Power.json @@ -21,7 +21,10 @@ ], "SkipConditions": { "AetheryteShortcutIf": { - "InTerritory": [130, 131] + "InTerritory": [ + 130, + 131 + ] }, "AethernetShortcutIf": { "InSameTerritory": true @@ -56,7 +59,9 @@ "InteractionType": "Combat", "EnemySpawnType": "OverworldEnemies", "CombatDelaySecondsAtStart": 0, - "KillEnemyDataIds": [1927] + "KillEnemyDataIds": [ + 1927 + ] } ] }, diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/1065_Good Vibrations.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/1065_Good Vibrations.json index 960c27cf..b359f9e7 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/1065_Good Vibrations.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/1065_Good Vibrations.json @@ -21,7 +21,10 @@ ], "SkipConditions": { "AetheryteShortcutIf": { - "InTerritory": [130, 131] + "InTerritory": [ + 130, + 131 + ] }, "AethernetShortcutIf": { "InSameTerritory": true @@ -180,7 +183,11 @@ "InteractionType": "Combat", "EnemySpawnType": "AfterInteraction", "CombatDelaySecondsAtStart": 0, - "KillEnemyDataIds": [81,345,348] + "KillEnemyDataIds": [ + 81, + 345, + 348 + ] } ] }, diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/1066_Five Easy Pieces.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/1066_Five Easy Pieces.json index f722c1bf..7a8ef395 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/1066_Five Easy Pieces.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/1066_Five Easy Pieces.json @@ -21,7 +21,10 @@ ], "SkipConditions": { "AetheryteShortcutIf": { - "InTerritory": [130, 131] + "InTerritory": [ + 130, + 131 + ] }, "AethernetShortcutIf": { "InSameTerritory": true diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/554_Harder than Rock.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/554_Harder than Rock.json index 31c22487..05bbdddb 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/554_Harder than Rock.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/554_Harder than Rock.json @@ -179,7 +179,9 @@ "TerritoryId": 140, "InteractionType": "Combat", "EnemySpawnType": "OverworldEnemies", - "KillEnemyDataIds": [131], + "KillEnemyDataIds": [ + 131 + ], "CombatDelaySecondsAtStart": 1 }, { @@ -203,7 +205,9 @@ "TerritoryId": 140, "InteractionType": "Combat", "EnemySpawnType": "OverworldEnemies", - "KillEnemyDataIds": [131], + "KillEnemyDataIds": [ + 131 + ], "CombatDelaySecondsAtStart": 1 }, { @@ -227,7 +231,9 @@ "TerritoryId": 140, "InteractionType": "Combat", "EnemySpawnType": "OverworldEnemies", - "KillEnemyDataIds": [131], + "KillEnemyDataIds": [ + 131 + ], "CombatDelaySecondsAtStart": 1 }, { @@ -251,7 +257,9 @@ "TerritoryId": 140, "InteractionType": "Combat", "EnemySpawnType": "OverworldEnemies", - "KillEnemyDataIds": [131], + "KillEnemyDataIds": [ + 131 + ], "CombatDelaySecondsAtStart": 1 } ] diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/698_Burning Up the Quarter Malm.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/698_Burning Up the Quarter Malm.json index e5c5d898..236a6c7a 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/698_Burning Up the Quarter Malm.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/698_Burning Up the Quarter Malm.json @@ -110,7 +110,9 @@ "TerritoryId": 141, "InteractionType": "Combat", "EnemySpawnType": "OverworldEnemies", - "KillEnemyDataIds": [771], + "KillEnemyDataIds": [ + 771 + ], "Fly": true, "AetheryteShortcut": "Central Thanalan - Black Brush Station", "CombatDelaySecondsAtStart": 0, 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 a20b24e0..4faf9f21 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 @@ -1,42 +1,44 @@ { - "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "Cacahuetes", - "QuestSequence": [ - { - "Sequence": 0, - "Steps": [ - { "DataId": 1000895, -"Position": { - "X": -335.74432, - "Y": 12.899764, - "Z": 1.3884888 -}, -"TerritoryId": 129, -"InteractionType": "AcceptQuest"} - ] - }, - { - "Sequence": 255, - "Steps": [ - { "DataId": 1000909, -"Position": { - "X": -326.37524, - "Y": 12.899658, - "Z": 9.994568 -}, -"TerritoryId": 129, -"InteractionType": "CompleteQuest", - "DialogueChoices": [ - { - "Type": "YesNo", - "Prompt": "TEXT_CLSACN011_00452_Q1_000_000", - "Yes": true - } - ], - "NextQuestId": 454 - } - ] - } - ] - } - \ No newline at end of file + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Cacahuetes", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1000895, + "Position": { + "X": -335.74432, + "Y": 12.899764, + "Z": 1.3884888 + }, + "TerritoryId": 129, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1000909, + "Position": { + "X": -326.37524, + "Y": 12.899658, + "Z": 9.994568 + }, + "TerritoryId": 129, + "InteractionType": "CompleteQuest", + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_CLSACN011_00452_Q1_000_000", + "Yes": true + } + ], + "NextQuestId": 454 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/WHM/147_Trial by Wind.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/WHM/147_Trial by Wind.json index 6ecee3c5..0dfda145 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/WHM/147_Trial by Wind.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/WHM/147_Trial by Wind.json @@ -1,6 +1,9 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": ["Cacahuetes", "liza"], + "Author": [ + "Cacahuetes", + "liza" + ], "QuestSequence": [ { "Sequence": 0, diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/WHM/48_Trial by Earth.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/WHM/48_Trial by Earth.json index 58ff4f0d..22f33570 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/WHM/48_Trial by Earth.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/WHM/48_Trial by Earth.json @@ -22,7 +22,9 @@ "SkipConditions": { "AetheryteShortcutIf": { "InSameTerritory": true, - "InTerritory": [133] + "InTerritory": [ + 133 + ] } } } @@ -70,7 +72,9 @@ "TerritoryId": 154, "InteractionType": "Combat", "EnemySpawnType": "AfterInteraction", - "KillEnemyDataIds": [294], + "KillEnemyDataIds": [ + 294 + ], "Fly": true } ] diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/WHM/91_Trial by Wind.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/WHM/91_Trial by Wind.json index cdcebb9f..a176c3b2 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/WHM/91_Trial by Wind.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/WHM/91_Trial by Wind.json @@ -1,158 +1,160 @@ { - "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "Cacahuetes", - "QuestSequence": [ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Cacahuetes", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ { - "Sequence": 0, - "Steps": [ - { - "DataId": 1000692, - "Position": { - "X": -258.8083, - "Y": -5.7735243, - "Z": -27.267883 - }, - "TerritoryId": 133, - "AetheryteShortcut": "Gridania", - "AethernetShortcut": [ - "[Gridania] Aetheryte Plaza", - "[Gridania] Conjurers' Guild" - ], - "InteractionType": "AcceptQuest", - "SkipConditions": { - "AetheryteShortcutIf": { - "InSameTerritory": true, - "InTerritory": [ - 133 - ] - } - } - } - ] - }, - { - "Sequence": 1, - "Steps": [ - { - "DataId": 1001263, - "Position": { - "X": 181.41443, - "Y": -2.3519497, - "Z": -240.40594 - }, - "TerritoryId": 133, - "InteractionType": "Interact", - "TargetTerritoryId": 152, - "AethernetShortcut": [ - "[Gridania] Conjurers' Guild", - "[Gridania] Lancers' Guild" - ], - "SkipConditions": { - "StepIf": {"AetheryteUnlocked": "East Shroud - Hawthorne Hut"} - } - }, - { - "DataId": 1000767, - "Position": { - "X": -483.42108, - "Y": 10.130882, - "Z": 209.46057 - }, - "TerritoryId": 152, - "InteractionType": "Interact", - "AetheryteShortcut": "East Shroud - Hawthorne Hut", - "SkipConditions": { - "AetheryteShortcutIf": { - "InSameTerritory": true - } - } - } - ] - }, - { - "Sequence": 2, - "Steps": [ - { - "DataId": 2000885, - "Position": { - "X": -510.6655, - "Y": 5.8422394, - "Z": 35.87895 - }, - "TerritoryId": 152, - "InteractionType": "Combat", - "EnemySpawnType": "AfterInteraction", - "KillEnemyDataIds": [ - 295 - ] - } - ] - }, - { - "Sequence": 3, - "Steps": [ - { - "DataId": 1000767, - "Position": { - "X": -483.42108, - "Y": 10.130882, - "Z": 209.46057 - }, - "TerritoryId": 152, - "InteractionType": "Interact" - } - ] - }, - { - "Sequence": 4, - "Steps": [ - { - "DataId": 2000887, - "Position": { - "X": -510.76526, - "Y": 6.1798096, - "Z": 35.568726 - }, - "TerritoryId": 152, - "InteractionType": "SinglePlayerDuty" - } - ] - }, - { - "Sequence": 5, - "Steps": [ - { - "DataId": 1000767, - "Position": { - "X": -483.42108, - "Y": 10.130882, - "Z": 209.46057 - }, - "TerritoryId": 152, - "InteractionType": "Interact" - } - ] - }, - { - "Sequence": 255, - "Steps": [ - { - "DataId": 1000692, - "Position": { - "X": -258.8083, - "Y": -5.7735243, - "Z": -27.267883 - }, - "TerritoryId": 133, - "InteractionType": "CompleteQuest", - "AetheryteShortcut": "Gridania", - "AethernetShortcut": [ - "[Gridania] Aetheryte Plaza", - "[Gridania] Conjurers' Guild" - ], - "NextQuestId": 92 - } - ] + "DataId": 1000692, + "Position": { + "X": -258.8083, + "Y": -5.7735243, + "Z": -27.267883 + }, + "TerritoryId": 133, + "AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Conjurers' Guild" + ], + "InteractionType": "AcceptQuest", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true, + "InTerritory": [ + 133 + ] + } + } } - ] -} \ No newline at end of file + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1001263, + "Position": { + "X": 181.41443, + "Y": -2.3519497, + "Z": -240.40594 + }, + "TerritoryId": 133, + "InteractionType": "Interact", + "TargetTerritoryId": 152, + "AethernetShortcut": [ + "[Gridania] Conjurers' Guild", + "[Gridania] Lancers' Guild" + ], + "SkipConditions": { + "StepIf": { + "AetheryteUnlocked": "East Shroud - Hawthorne Hut" + } + } + }, + { + "DataId": 1000767, + "Position": { + "X": -483.42108, + "Y": 10.130882, + "Z": 209.46057 + }, + "TerritoryId": 152, + "InteractionType": "Interact", + "AetheryteShortcut": "East Shroud - Hawthorne Hut", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2000885, + "Position": { + "X": -510.6655, + "Y": 5.8422394, + "Z": 35.87895 + }, + "TerritoryId": 152, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 295 + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1000767, + "Position": { + "X": -483.42108, + "Y": 10.130882, + "Z": 209.46057 + }, + "TerritoryId": 152, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 2000887, + "Position": { + "X": -510.76526, + "Y": 6.1798096, + "Z": 35.568726 + }, + "TerritoryId": 152, + "InteractionType": "SinglePlayerDuty" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1000767, + "Position": { + "X": -483.42108, + "Y": 10.130882, + "Z": 209.46057 + }, + "TerritoryId": 152, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1000692, + "Position": { + "X": -258.8083, + "Y": -5.7735243, + "Z": -27.267883 + }, + "TerritoryId": 133, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Gridania", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Conjurers' Guild" + ], + "NextQuestId": 92 + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1204_The Rise and Fall of a Gentlemen.json b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1204_The Rise and Fall of a Gentlemen.json index ae051bb2..5e7b072f 100644 --- a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1204_The Rise and Fall of a Gentlemen.json +++ b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1204_The Rise and Fall of a Gentlemen.json @@ -1,114 +1,114 @@ { - "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "FalconTaterz", - "QuestSequence": [ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "FalconTaterz", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ { - "Sequence": 0, - "Steps": [ - { - "AetheryteShortcut": "Ul'dah", - "SkipConditions": { - "AetheryteShortcutIf": { - "InSameTerritory": true - } - }, - "DataId": 1001285, - "Position": { - "X": -68.77246, - "Y": 4.0411124, - "Z": -126.51257 - }, - "TerritoryId": 130, - "InteractionType": "AcceptQuest", - "DialogueChoices": [ - { - "Type": "YesNo", - "Prompt": "TEXT_CHRHDB101_01204_Q1_000_1", - "Yes": true - } - ] - } - ] - }, - { - "Sequence": 1, - "Steps": [ - { - "AetheryteShortcut": "Eastern Thanalan - Camp Drybone", - "Mount": true, - "Fly": true, - "DataId": 1005709, - "Position": { - "X": -464.16425, - "Y": -26.945036, - "Z": 85.40466 - }, - "TerritoryId": 145, - "InteractionType": "Interact" - } - ] - }, - { - "Sequence": 2, - "Steps": [ - { - "AetheryteShortcut": "Southern Thanalan - Forgotten Springs", - "Mount": true, - "Fly": true, - "Position": { - "X": -273.9414, - "Y": 9.756445, - "Z": 222.65837 - }, - "TerritoryId": 146, - "InteractionType": "Combat", - "EnemySpawnType": "OverworldEnemies", - "KillEnemyDataIds": [] - } - ] - }, - { - "Sequence": 3, - "Steps": [ - { - "AetheryteShortcut": "Eastern Thanalan - Camp Drybone", - "Mount": true, - "Fly": true, - "DataId": 1005709, - "Position": { - "X": -464.16425, - "Y": -26.945036, - "Z": 85.40466 - }, - "TerritoryId": 145, - "InteractionType": "Interact" - } - ] - }, - { - "Sequence": 255, - "Steps": [ - { - "AetheryteShortcut": "Southern Thanalan - Forgotten Springs", - "Mount": true, - "Fly": true, - "DataId": 1005710, - "Position": { - "X": 4.4403076, - "Y": 7.2767544, - "Z": 885.55725 - }, - "TerritoryId": 146, - "InteractionType": "CompleteQuest", - "DialogueChoices": [ - { - "Type": "List", - "Prompt": "TEXT_CHRHDB101_01204_Q2_000_1", - "Answer": "TEXT_CHRHDB101_01204_Q2A2_000_2" - } - ] - } - ] + "AetheryteShortcut": "Ul'dah", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + }, + "DataId": 1001285, + "Position": { + "X": -68.77246, + "Y": 4.0411124, + "Z": -126.51257 + }, + "TerritoryId": 130, + "InteractionType": "AcceptQuest", + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_CHRHDB101_01204_Q1_000_1", + "Yes": true + } + ] } - ] -} \ No newline at end of file + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "AetheryteShortcut": "Eastern Thanalan - Camp Drybone", + "Mount": true, + "Fly": true, + "DataId": 1005709, + "Position": { + "X": -464.16425, + "Y": -26.945036, + "Z": 85.40466 + }, + "TerritoryId": 145, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "AetheryteShortcut": "Southern Thanalan - Forgotten Springs", + "Mount": true, + "Fly": true, + "Position": { + "X": -273.9414, + "Y": 9.756445, + "Z": 222.65837 + }, + "TerritoryId": 146, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "KillEnemyDataIds": [] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "AetheryteShortcut": "Eastern Thanalan - Camp Drybone", + "Mount": true, + "Fly": true, + "DataId": 1005709, + "Position": { + "X": -464.16425, + "Y": -26.945036, + "Z": 85.40466 + }, + "TerritoryId": 145, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "AetheryteShortcut": "Southern Thanalan - Forgotten Springs", + "Mount": true, + "Fly": true, + "DataId": 1005710, + "Position": { + "X": 4.4403076, + "Y": 7.2767544, + "Z": 885.55725 + }, + "TerritoryId": 146, + "InteractionType": "CompleteQuest", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_CHRHDB101_01204_Q2_000_1", + "Answer": "TEXT_CHRHDB101_01204_Q2A2_000_2" + } + ] + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1205_Back in the Saddle.json b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1205_Back in the Saddle.json index dabe7d3b..5cecd971 100644 --- a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1205_Back in the Saddle.json +++ b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1205_Back in the Saddle.json @@ -1,72 +1,72 @@ { - "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "FalconTaterz", - "QuestSequence": [ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "FalconTaterz", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ { - "Sequence": 0, - "Steps": [ - { - "DataId": 1005711, - "Position": { - "X": 4.837097, - "Y": 7.4445505, - "Z": 884.70276 - }, - "TerritoryId": 146, - "InteractionType": "AcceptQuest" - } - ] - }, - { - "Sequence": 1, - "Steps": [ - { - "AetheryteShortcut": "Ul'dah", - "DataId": 1004333, - "Position": { - "X": -101.854004, - "Y": 4.0131226, - "Z": -98.95477 - }, - "TerritoryId": 130, - "InteractionType": "Interact" - }, - { - "DataId": 1004331, - "Position": { - "X": -20.096191, - "Y": 4.9999676, - "Z": -133.22656 - }, - "TerritoryId": 130, - "InteractionType": "Interact" - }, - { - "DataId": 1001313, - "Position": { - "X": 16.372864, - "Y": 7.9999795, - "Z": -106.21808 - }, - "TerritoryId": 130, - "InteractionType": "Interact" - } - ] - }, - { - "Sequence": 255, - "Steps": [ - { - "DataId": 1001285, - "Position": { - "X": -68.77246, - "Y": 4.0411124, - "Z": -126.51257 - }, - "TerritoryId": 130, - "InteractionType": "CompleteQuest" - } - ] + "DataId": 1005711, + "Position": { + "X": 4.837097, + "Y": 7.4445505, + "Z": 884.70276 + }, + "TerritoryId": 146, + "InteractionType": "AcceptQuest" } - ] -} \ No newline at end of file + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "AetheryteShortcut": "Ul'dah", + "DataId": 1004333, + "Position": { + "X": -101.854004, + "Y": 4.0131226, + "Z": -98.95477 + }, + "TerritoryId": 130, + "InteractionType": "Interact" + }, + { + "DataId": 1004331, + "Position": { + "X": -20.096191, + "Y": 4.9999676, + "Z": -133.22656 + }, + "TerritoryId": 130, + "InteractionType": "Interact" + }, + { + "DataId": 1001313, + "Position": { + "X": 16.372864, + "Y": 7.9999795, + "Z": -106.21808 + }, + "TerritoryId": 130, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1001285, + "Position": { + "X": -68.77246, + "Y": 4.0411124, + "Z": -126.51257 + }, + "TerritoryId": 130, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1206_After Her Own Heart.json b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1206_After Her Own Heart.json index efc214dd..c2722df6 100644 --- a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1206_After Her Own Heart.json +++ b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1206_After Her Own Heart.json @@ -1,126 +1,126 @@ { - "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "FalconTaterz", - "QuestSequence": [ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "FalconTaterz", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ { - "Sequence": 0, - "Steps": [ - { - "AetheryteShortcut": "Ul'dah", - "SkipConditions": { - "AetheryteShortcutIf": { - "InSameTerritory": true - } - }, - "DataId": 1001285, - "Position": { - "X": -68.77246, - "Y": 4.0411124, - "Z": -126.51257 - }, - "TerritoryId": 130, - "InteractionType": "AcceptQuest" - } - ] - }, - { - "Sequence": 1, - "Steps": [ - { - "AethernetShortcut": [ - "[Ul'dah] Aetheryte Plaza", - "[Ul'dah] Weavers' Guild" - ], - "DataId": 1001691, - "Position": { - "X": 142.16821, - "Y": 7.4920034, - "Z": 104.72266 - }, - "TerritoryId": 131, - "InteractionType": "Interact" - } - ] - }, - { - "Sequence": 2, - "Steps": [ - { - "AethernetShortcut": [ - "[Ul'dah] Weavers' Guild", - "[Ul'dah] Aetheryte Plaza" - ], - "DataId": 1005713, - "Position": { - "X": -72.98395, - "Y": 3.9999995, - "Z": -113.02362 - }, - "TerritoryId": 130, - "InteractionType": "Interact" - } - ] - }, - { - "Sequence": 3, - "Steps": [ - { - "DataId": 1005716, - "Position": { - "X": -144.76239, - "Y": 12, - "Z": 0.99176025 - }, - "TerritoryId": 130, - "InteractionType": "Interact" - } - ] - }, - { - "Sequence": 4, - "Steps": [ - { - "DataId": 1005717, - "Position": { - "X": -147.17328, - "Y": 12, - "Z": -3.6469727 - }, - "TerritoryId": 130, - "InteractionType": "Interact" - } - ] - }, - { - "Sequence": 5, - "Steps": [ - { - "DataId": 2003001, - "Position": { - "X": -144.79291, - "Y": 11.9782715, - "Z": -3.4943848 - }, - "TerritoryId": 130, - "InteractionType": "UseItem", - "ItemId": 2001126 - } - ] - }, - { - "Sequence": 255, - "Steps": [ - { - "DataId": 1005716, - "Position": { - "X": -144.76239, - "Y": 12, - "Z": 0.99176025 - }, - "TerritoryId": 130, - "InteractionType": "CompleteQuest" - } - ] + "AetheryteShortcut": "Ul'dah", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + }, + "DataId": 1001285, + "Position": { + "X": -68.77246, + "Y": 4.0411124, + "Z": -126.51257 + }, + "TerritoryId": 130, + "InteractionType": "AcceptQuest" } - ] -} \ No newline at end of file + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ], + "DataId": 1001691, + "Position": { + "X": 142.16821, + "Y": 7.4920034, + "Z": 104.72266 + }, + "TerritoryId": 131, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "AethernetShortcut": [ + "[Ul'dah] Weavers' Guild", + "[Ul'dah] Aetheryte Plaza" + ], + "DataId": 1005713, + "Position": { + "X": -72.98395, + "Y": 3.9999995, + "Z": -113.02362 + }, + "TerritoryId": 130, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1005716, + "Position": { + "X": -144.76239, + "Y": 12, + "Z": 0.99176025 + }, + "TerritoryId": 130, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1005717, + "Position": { + "X": -147.17328, + "Y": 12, + "Z": -3.6469727 + }, + "TerritoryId": 130, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 2003001, + "Position": { + "X": -144.79291, + "Y": 11.9782715, + "Z": -3.4943848 + }, + "TerritoryId": 130, + "InteractionType": "UseItem", + "ItemId": 2001126 + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1005716, + "Position": { + "X": -144.76239, + "Y": 12, + "Z": 0.99176025 + }, + "TerritoryId": 130, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1207_The Immaculate Deception.json b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1207_The Immaculate Deception.json index 540ab83e..c71f1ca2 100644 --- a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1207_The Immaculate Deception.json +++ b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1207_The Immaculate Deception.json @@ -1,265 +1,265 @@ { - "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "FalconTaterz", - "QuestSequence": [ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "FalconTaterz", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ { - "Sequence": 0, - "Steps": [ - { - "AetheryteShortcut": "Ul'dah", - "SkipConditions": { - "AetheryteShortcutIf": { - "InSameTerritory": true - } - }, - "DataId": 1005721, - "Position": { - "X": -144.06049, - "Y": 12, - "Z": -5.5390625 - }, - "TerritoryId": 130, - "InteractionType": "AcceptQuest" - } - ] - }, - { - "Sequence": 1, - "Steps": [ - { - "AetheryteShortcut": "Eastern Thanalan - Camp Drybone", - "Mount": true, - "Fly": true, - "DataId": 1005722, - "Position": { - "X": -550.4387, - "Y": -5.5688405, - "Z": -176.71478 - }, - "TerritoryId": 145, - "InteractionType": "Interact" - } - ] - }, - { - "Sequence": 2, - "Steps": [ - { - "Mount": true, - "Fly": true, - "DataId": 1004042, - "Position": { - "X": -568.4138, - "Y": 5.893569, - "Z": -221.27112 - }, - "TerritoryId": 145, - "InteractionType": "Interact" - }, - { - "DataId": 1003940, - "Position": { - "X": -540.94763, - "Y": 4.134529, - "Z": -241.07733 - }, - "TerritoryId": 145, - "InteractionType": "Interact" - }, - { - "DataId": 1003939, - "Position": { - "X": -540.09314, - "Y": 4.137387, - "Z": -240.98578 - }, - "TerritoryId": 145, - "InteractionType": "Interact" - } - ] - }, - { - "Sequence": 3, - "Steps": [ - { - "Mount": true, - "Fly": true, - "DataId": 1005724, - "Position": { - "X": -490.44025, - "Y": 2.8072534, - "Z": -274.34198 - }, - "TerritoryId": 145, - "InteractionType": "Interact" - } - ] - }, - { - "Sequence": 4, - "Steps": [ - { - "AetheryteShortcut": "Eastern Thanalan - Camp Drybone", - "Mount": true, - "Fly": true, - "DataId": 1005727, - "Position": { - "X": -221.11853, - "Y": -37.79669, - "Z": 149.67566 - }, - "TerritoryId": 145, - "InteractionType": "Interact" - } - ] - }, - { - "Sequence": 5, - "Steps": [ - { - "AetheryteShortcut": "Eastern Thanalan - Camp Drybone", - "DataId": 1005727, - "Position": { - "X": -221.11853, - "Y": -37.79669, - "Z": 149.67566 - }, - "TerritoryId": 145, - "InteractionType": "UseItem", - "ItemId": 2001150 - } - ] - }, - { - "Sequence": 6, - "Steps": [ - { - "AetheryteShortcut": "Eastern Thanalan - Camp Drybone", - "DataId": 1005727, - "Position": { - "X": -221.11853, - "Y": -37.79669, - "Z": 149.67566 - }, - "TerritoryId": 145, - "InteractionType": "Interact" - } - ] - }, - { - "Sequence": 7, - "Steps": [ - { - "AetheryteShortcut": "Eastern Thanalan - Camp Drybone", - "DataId": 1005727, - "Position": { - "X": -221.11853, - "Y": -37.79669, - "Z": 149.67566 - }, - "TerritoryId": 145, - "InteractionType": "Interact" - } - ] - }, - { - "Sequence": 8, - "Steps": [ - { - "AetheryteShortcut": "Eastern Thanalan - Camp Drybone", - "DataId": 1005727, - "Position": { - "X": -221.11853, - "Y": -37.79669, - "Z": 149.67566 - }, - "TerritoryId": 145, - "InteractionType": "Interact" - } - ] - }, - { - "Sequence": 9, - "Steps": [ - { - "AetheryteShortcut": "Eastern Thanalan - Camp Drybone", - "DataId": 1005727, - "Position": { - "X": -221.11853, - "Y": -37.79669, - "Z": 149.67566 - }, - "TerritoryId": 145, - "InteractionType": "Interact" - } - ] - }, - { - "Sequence": 10, - "Steps": [ - { - "DataId": 2003006, - "Position": { - "X": -208.5451, - "Y": -37.9187, - "Z": 151.87305 - }, - "TerritoryId": 145, - "InteractionType": "Interact" - }, - { - "DataId": 2003005, - "Position": { - "X": -220.87439, - "Y": -37.857666, - "Z": 166.0028 - }, - "TerritoryId": 145, - "InteractionType": "Interact" - }, - { - "DataId": 2003004, - "Position": { - "X": -206.46985, - "Y": -37.644104, - "Z": 187.36548 - }, - "TerritoryId": 145, - "InteractionType": "Interact" - } - ] - }, - { - "Sequence": 11, - "Steps": [ - { - "DataId": 1005730, - "Position": { - "X": -222.49182, - "Y": -37.896374, - "Z": 159.3805 - }, - "TerritoryId": 145, - "InteractionType": "Interact" - } - ] - }, - { - "Sequence": 255, - "Steps": [ - { - "Mount": true, - "Fly": true, - "DataId": 1005731, - "Position": { - "X": -526.8788, - "Y": 5.404997, - "Z": -246.50952 - }, - "TerritoryId": 145, - "InteractionType": "CompleteQuest" - } - ] + "AetheryteShortcut": "Ul'dah", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + }, + "DataId": 1005721, + "Position": { + "X": -144.06049, + "Y": 12, + "Z": -5.5390625 + }, + "TerritoryId": 130, + "InteractionType": "AcceptQuest" } - ] -} \ No newline at end of file + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "AetheryteShortcut": "Eastern Thanalan - Camp Drybone", + "Mount": true, + "Fly": true, + "DataId": 1005722, + "Position": { + "X": -550.4387, + "Y": -5.5688405, + "Z": -176.71478 + }, + "TerritoryId": 145, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Mount": true, + "Fly": true, + "DataId": 1004042, + "Position": { + "X": -568.4138, + "Y": 5.893569, + "Z": -221.27112 + }, + "TerritoryId": 145, + "InteractionType": "Interact" + }, + { + "DataId": 1003940, + "Position": { + "X": -540.94763, + "Y": 4.134529, + "Z": -241.07733 + }, + "TerritoryId": 145, + "InteractionType": "Interact" + }, + { + "DataId": 1003939, + "Position": { + "X": -540.09314, + "Y": 4.137387, + "Z": -240.98578 + }, + "TerritoryId": 145, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "Mount": true, + "Fly": true, + "DataId": 1005724, + "Position": { + "X": -490.44025, + "Y": 2.8072534, + "Z": -274.34198 + }, + "TerritoryId": 145, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "AetheryteShortcut": "Eastern Thanalan - Camp Drybone", + "Mount": true, + "Fly": true, + "DataId": 1005727, + "Position": { + "X": -221.11853, + "Y": -37.79669, + "Z": 149.67566 + }, + "TerritoryId": 145, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "AetheryteShortcut": "Eastern Thanalan - Camp Drybone", + "DataId": 1005727, + "Position": { + "X": -221.11853, + "Y": -37.79669, + "Z": 149.67566 + }, + "TerritoryId": 145, + "InteractionType": "UseItem", + "ItemId": 2001150 + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "AetheryteShortcut": "Eastern Thanalan - Camp Drybone", + "DataId": 1005727, + "Position": { + "X": -221.11853, + "Y": -37.79669, + "Z": 149.67566 + }, + "TerritoryId": 145, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 7, + "Steps": [ + { + "AetheryteShortcut": "Eastern Thanalan - Camp Drybone", + "DataId": 1005727, + "Position": { + "X": -221.11853, + "Y": -37.79669, + "Z": 149.67566 + }, + "TerritoryId": 145, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 8, + "Steps": [ + { + "AetheryteShortcut": "Eastern Thanalan - Camp Drybone", + "DataId": 1005727, + "Position": { + "X": -221.11853, + "Y": -37.79669, + "Z": 149.67566 + }, + "TerritoryId": 145, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 9, + "Steps": [ + { + "AetheryteShortcut": "Eastern Thanalan - Camp Drybone", + "DataId": 1005727, + "Position": { + "X": -221.11853, + "Y": -37.79669, + "Z": 149.67566 + }, + "TerritoryId": 145, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 10, + "Steps": [ + { + "DataId": 2003006, + "Position": { + "X": -208.5451, + "Y": -37.9187, + "Z": 151.87305 + }, + "TerritoryId": 145, + "InteractionType": "Interact" + }, + { + "DataId": 2003005, + "Position": { + "X": -220.87439, + "Y": -37.857666, + "Z": 166.0028 + }, + "TerritoryId": 145, + "InteractionType": "Interact" + }, + { + "DataId": 2003004, + "Position": { + "X": -206.46985, + "Y": -37.644104, + "Z": 187.36548 + }, + "TerritoryId": 145, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 11, + "Steps": [ + { + "DataId": 1005730, + "Position": { + "X": -222.49182, + "Y": -37.896374, + "Z": 159.3805 + }, + "TerritoryId": 145, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Mount": true, + "Fly": true, + "DataId": 1005731, + "Position": { + "X": -526.8788, + "Y": 5.404997, + "Z": -246.50952 + }, + "TerritoryId": 145, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1315_The Science of Deduction.json b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1315_The Science of Deduction.json index 03f940e2..24ca8f72 100644 --- a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1315_The Science of Deduction.json +++ b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1315_The Science of Deduction.json @@ -1,173 +1,177 @@ { - "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "FalconTaterz", - "QuestSequence": [ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "FalconTaterz", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ { - "Sequence": 0, - "Steps": [ - { - "AetheryteShortcut": "Eastern Thanalan - Camp Drybone", - "SkipConditions": {"AetheryteShortcutIf": {"InSameTerritory": true}}, - "DataId": 1005884, - "Position": { - "X": -526.26843, - "Y": 5.4049973, - "Z": -249.25616 - }, - "TerritoryId": 145, - "InteractionType": "AcceptQuest" - } - ] - }, - { - "Sequence": 1, - "Steps": [ - { - "AetheryteShortcut": "Eastern Thanalan - Camp Drybone", - "DataId": 1003931, - "Position": { - "X": -379.6292, - "Y": -55.85506, - "Z": 95.04846 - }, - "TerritoryId": 145, - "InteractionType": "Interact" - } - ] - }, - { - "Sequence": 2, - "Steps": [ - { - "AetheryteShortcut": "Western Thanalan - Horizon", - "Mount": true, - "DataId": 1008709, - "Position": { - "X": -431.7846, - "Y": 28.038658, - "Z": -383.1693 - }, - "TerritoryId": 140, - "InteractionType": "Interact" - } - ] - }, - { - "Sequence": 3, - "Steps": [ - { - "AetheryteShortcut": "Western Thanalan - Horizon", - "Mount": true, - "Fly": true, - "DataId": 1008713, - "Position": { - "X": 108.99512, - "Y": 57.816406, - "Z": 12.191956 - }, - "TerritoryId": 140, - "InteractionType": "Interact" - }, - { - "Mount": true, - "Fly": true, - "DataId": 1002022, - "Position": { - "X": 12.039368, - "Y": 22.144684, - "Z": 65.384766 - }, - "TerritoryId": 140, - "InteractionType": "Interact" - }, - { - "Mount": true, - "Fly": true, - "DataId": 1008715, - "Position": { - "X": -69.90167, - "Y": 13.38208, - "Z": 158.73962 - }, - "TerritoryId": 140, - "InteractionType": "Interact" - } - ] - }, - { - "Sequence": 4, - "Steps": [ - { - "DataId": 2003654, - "Position": { - "X": -68.55884, - "Y": 13.809326, - "Z": 159.16675 - }, - "TerritoryId": 140, - "InteractionType": "Interact" - } - ] - }, - { - "Sequence": 5, - "Steps": [ - { - "DataId": 2003658, - "Position": { - "X": -71.06128, - "Y": 13.443176, - "Z": 155.9624 - }, - "TerritoryId": 140, - "InteractionType": "Interact" - }, - { - "DataId": 2003656, - "Position": { - "X": -72.95343, - "Y": 13.504211, - "Z": 159.19727 - }, - "TerritoryId": 140, - "InteractionType": "Interact" - }, - { - "DataId": 2003659, - "Position": { - "X": -76.15784, - "Y": 13.443176, - "Z": 155.90137 - }, - "TerritoryId": 140, - "InteractionType": "Interact" - }, - { - "DataId": 2003657, - "Position": { - "X": -80.18622, - "Y": 13.412659, - "Z": 158.12915 - }, - "TerritoryId": 140, - "InteractionType": "Interact" - } - ] - }, - { - "Sequence": 255, - "Steps": [ - { - "DataId": 1008716, - "Position": { - "X": -68.00946, - "Y": 13.443176, - "Z": 157.5188 - }, - "TerritoryId": 140, - "InteractionType": "CompleteQuest" - } - ] + "AetheryteShortcut": "Eastern Thanalan - Camp Drybone", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + }, + "DataId": 1005884, + "Position": { + "X": -526.26843, + "Y": 5.4049973, + "Z": -249.25616 + }, + "TerritoryId": 145, + "InteractionType": "AcceptQuest" } - ] -} \ No newline at end of file + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "AetheryteShortcut": "Eastern Thanalan - Camp Drybone", + "DataId": 1003931, + "Position": { + "X": -379.6292, + "Y": -55.85506, + "Z": 95.04846 + }, + "TerritoryId": 145, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "AetheryteShortcut": "Western Thanalan - Horizon", + "Mount": true, + "DataId": 1008709, + "Position": { + "X": -431.7846, + "Y": 28.038658, + "Z": -383.1693 + }, + "TerritoryId": 140, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "AetheryteShortcut": "Western Thanalan - Horizon", + "Mount": true, + "Fly": true, + "DataId": 1008713, + "Position": { + "X": 108.99512, + "Y": 57.816406, + "Z": 12.191956 + }, + "TerritoryId": 140, + "InteractionType": "Interact" + }, + { + "Mount": true, + "Fly": true, + "DataId": 1002022, + "Position": { + "X": 12.039368, + "Y": 22.144684, + "Z": 65.384766 + }, + "TerritoryId": 140, + "InteractionType": "Interact" + }, + { + "Mount": true, + "Fly": true, + "DataId": 1008715, + "Position": { + "X": -69.90167, + "Y": 13.38208, + "Z": 158.73962 + }, + "TerritoryId": 140, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 2003654, + "Position": { + "X": -68.55884, + "Y": 13.809326, + "Z": 159.16675 + }, + "TerritoryId": 140, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 2003658, + "Position": { + "X": -71.06128, + "Y": 13.443176, + "Z": 155.9624 + }, + "TerritoryId": 140, + "InteractionType": "Interact" + }, + { + "DataId": 2003656, + "Position": { + "X": -72.95343, + "Y": 13.504211, + "Z": 159.19727 + }, + "TerritoryId": 140, + "InteractionType": "Interact" + }, + { + "DataId": 2003659, + "Position": { + "X": -76.15784, + "Y": 13.443176, + "Z": 155.90137 + }, + "TerritoryId": 140, + "InteractionType": "Interact" + }, + { + "DataId": 2003657, + "Position": { + "X": -80.18622, + "Y": 13.412659, + "Z": 158.12915 + }, + "TerritoryId": 140, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1008716, + "Position": { + "X": -68.00946, + "Y": 13.443176, + "Z": 157.5188 + }, + "TerritoryId": 140, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1316_The Hammer.json b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1316_The Hammer.json index b0d8c5e0..926b05fe 100644 --- a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1316_The Hammer.json +++ b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1316_The Hammer.json @@ -1,75 +1,75 @@ { - "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "FalconTaterz", - "QuestSequence": [ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "FalconTaterz", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ { - "Sequence": 0, - "Steps": [ - { - "DataId": 1008716, - "Position": { - "X": -68.00946, - "Y": 13.443176, - "Z": 157.5188 - }, - "TerritoryId": 140, - "InteractionType": "AcceptQuest" - } - ] - }, - { - "Sequence": 1, - "Steps": [ - { - "AetheryteShortcut": "Northern Thanalan - Camp Bluefog", - "Mount": true, - "Fly": true, - "DataId": 2003664, - "Position": { - "X": 11.337402, - "Y": 2.670288, - "Z": 320.943 - }, - "TerritoryId": 147, - "InteractionType": "Interact" - } - ] - }, - { - "Sequence": 2, - "Steps": [ - { - "Mount": true, - "DataId": 2003665, - "Position": { - "X": 34.50061, - "Y": 12.191956, - "Z": 254.13892 - }, - "TerritoryId": 147, - "InteractionType": "Interact" - } - ] - }, - { - "Sequence": 255, - "Steps": [ - { - "Mount": true, - "DataId": 2003666, - "Position": { - "X": 111.192505, - "Y": 19.424683, - "Z": 121.20239 - }, - "TerritoryId": 147, - "InteractionType": "Interact" - }, - { - "TerritoryId": 147, - "InteractionType": "CompleteQuest" - } - ] + "DataId": 1008716, + "Position": { + "X": -68.00946, + "Y": 13.443176, + "Z": 157.5188 + }, + "TerritoryId": 140, + "InteractionType": "AcceptQuest" } - ] -} \ No newline at end of file + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "AetheryteShortcut": "Northern Thanalan - Camp Bluefog", + "Mount": true, + "Fly": true, + "DataId": 2003664, + "Position": { + "X": 11.337402, + "Y": 2.670288, + "Z": 320.943 + }, + "TerritoryId": 147, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Mount": true, + "DataId": 2003665, + "Position": { + "X": 34.50061, + "Y": 12.191956, + "Z": 254.13892 + }, + "TerritoryId": 147, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Mount": true, + "DataId": 2003666, + "Position": { + "X": 111.192505, + "Y": 19.424683, + "Z": 121.20239 + }, + "TerritoryId": 147, + "InteractionType": "Interact" + }, + { + "TerritoryId": 147, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1317_Manderville Men.json b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1317_Manderville Men.json index c4be6b52..ea824bb2 100644 --- a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1317_Manderville Men.json +++ b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1317_Manderville Men.json @@ -1,69 +1,69 @@ { - "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "FalconTaterz", - "QuestSequence": [ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "FalconTaterz", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ { - "Sequence": 0, - "Steps": [ - { - "DataId": 1008722, - "Position": { - "X": 109.7887, - "Y": 18.36741, - "Z": 121.72119 - }, - "TerritoryId": 147, - "InteractionType": "AcceptQuest" - } - ] - }, - { - "Sequence": 1, - "Steps": [ - { - "DataId": 2003667, - "Position": { - "X": 139.48267, - "Y": 20.279175, - "Z": 102.92212 - }, - "TerritoryId": 147, - "InteractionType": "Interact" - } - ] - }, - { - "Sequence": 2, - "Steps": [ - { - "AetheryteShortcut": "Western Thanalan - Horizon", - "Mount": true, - "Fly": true, - "DataId": 1008730, - "Position": { - "X": -431.26575, - "Y": 28.038658, - "Z": -381.4298 - }, - "TerritoryId": 140, - "InteractionType": "Interact" - } - ] - }, - { - "Sequence": 255, - "Steps": [ - { - "DataId": 1008735, - "Position": { - "X": -420.2793, - "Y": 23.113977, - "Z": -367.17786 - }, - "TerritoryId": 140, - "InteractionType": "CompleteQuest" - } - ] + "DataId": 1008722, + "Position": { + "X": 109.7887, + "Y": 18.36741, + "Z": 121.72119 + }, + "TerritoryId": 147, + "InteractionType": "AcceptQuest" } - ] -} \ No newline at end of file + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2003667, + "Position": { + "X": 139.48267, + "Y": 20.279175, + "Z": 102.92212 + }, + "TerritoryId": 147, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "AetheryteShortcut": "Western Thanalan - Horizon", + "Mount": true, + "Fly": true, + "DataId": 1008730, + "Position": { + "X": -431.26575, + "Y": 28.038658, + "Z": -381.4298 + }, + "TerritoryId": 140, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1008735, + "Position": { + "X": -420.2793, + "Y": 23.113977, + "Z": -367.17786 + }, + "TerritoryId": 140, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1318_The Three Collectors.json b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1318_The Three Collectors.json index 1b97397a..ae735c2a 100644 --- a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1318_The Three Collectors.json +++ b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1318_The Three Collectors.json @@ -1,154 +1,154 @@ { - "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "FalconTaterz", - "QuestSequence": [ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "FalconTaterz", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ { - "Sequence": 0, - "Steps": [ - { - "DataId": 1008736, - "Position": { - "X": -418.44818, - "Y": 23.113976, - "Z": -367.8188 - }, - "TerritoryId": 140, - "InteractionType": "AcceptQuest" - } - ] - }, - { - "Sequence": 1, - "Steps": [ - { - "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", - "Mount": true, - "Fly": true, - "DataId": 1008739, - "Position": { - "X": 176.71472, - "Y": 222.1357, - "Z": 347.219 - }, - "TerritoryId": 155, - "InteractionType": "Interact" - } - ] - }, - { - "Sequence": 2, - "Steps": [ - { - "DataId": 1008741, - "Position": { - "X": 249.50024, - "Y": 222.36392, - "Z": 353.6278 - }, - "TerritoryId": 155, - "InteractionType": "Interact" - } - ] - }, - { - "Sequence": 3, - "Steps": [ - { - "DataId": 1008746, - "Position": { - "X": 261.46326, - "Y": 222.27127, - "Z": 320.2411 - }, - "TerritoryId": 155, - "InteractionType": "Interact" - } - ] - }, - { - "Sequence": 4, - "Steps": [ - { - "Mount": true, - "DataId": 2003741, - "Position": { - "X": 394.7965, - "Y": 225.0553, - "Z": 378.80518 - }, - "TerritoryId": 155, - "InteractionType": "Interact" - } - ] - }, - { - "Sequence": 5, - "Steps": [ - { - "Mount": true, - "DataId": 1008752, - "Position": { - "X": 487.81555, - "Y": 206.95914, - "Z": 479.69775 - }, - "TerritoryId": 155, - "InteractionType": "Interact" - } - ] - }, - { - "Sequence": 6, - "Steps": [ - { - "DataId": 2003671, - "Position": { - "X": 489.181, - "Y": 206.8937, - "Z": 479.662 - }, - "TerritoryId": 155, - "InteractionType": "Interact" - }, - { - "TerritoryId": 155, - "InteractionType": "Duty", - "ContentFinderConditionId": 76 - } - ] - }, - { - "Sequence": 7, - "Steps": [ - { - "DataId": 1008756, - "Position": { - "X": 480.12512, - "Y": 207.33582, - "Z": 475.33374 - }, - "TerritoryId": 155, - "InteractionType": "Interact" - } - ] - }, - { - "Sequence": 255, - "Steps": [ - { - "AetheryteShortcut": "Western Thanalan - Horizon", - "Mount": true, - "Fly": true, - "DataId": 1008788, - "Position": { - "X": -421.46948, - "Y": 23.113977, - "Z": -367.57465 - }, - "TerritoryId": 140, - "InteractionType": "CompleteQuest" - } - ] + "DataId": 1008736, + "Position": { + "X": -418.44818, + "Y": 23.113976, + "Z": -367.8188 + }, + "TerritoryId": 140, + "InteractionType": "AcceptQuest" } - ] -} \ No newline at end of file + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", + "Mount": true, + "Fly": true, + "DataId": 1008739, + "Position": { + "X": 176.71472, + "Y": 222.1357, + "Z": 347.219 + }, + "TerritoryId": 155, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1008741, + "Position": { + "X": 249.50024, + "Y": 222.36392, + "Z": 353.6278 + }, + "TerritoryId": 155, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1008746, + "Position": { + "X": 261.46326, + "Y": 222.27127, + "Z": 320.2411 + }, + "TerritoryId": 155, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "Mount": true, + "DataId": 2003741, + "Position": { + "X": 394.7965, + "Y": 225.0553, + "Z": 378.80518 + }, + "TerritoryId": 155, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "Mount": true, + "DataId": 1008752, + "Position": { + "X": 487.81555, + "Y": 206.95914, + "Z": 479.69775 + }, + "TerritoryId": 155, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 2003671, + "Position": { + "X": 489.181, + "Y": 206.8937, + "Z": 479.662 + }, + "TerritoryId": 155, + "InteractionType": "Interact" + }, + { + "TerritoryId": 155, + "InteractionType": "Duty", + "ContentFinderConditionId": 76 + } + ] + }, + { + "Sequence": 7, + "Steps": [ + { + "DataId": 1008756, + "Position": { + "X": 480.12512, + "Y": 207.33582, + "Z": 475.33374 + }, + "TerritoryId": 155, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "AetheryteShortcut": "Western Thanalan - Horizon", + "Mount": true, + "Fly": true, + "DataId": 1008788, + "Position": { + "X": -421.46948, + "Y": 23.113977, + "Z": -367.57465 + }, + "TerritoryId": 140, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1438_The Business of Betrothal.json b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1438_The Business of Betrothal.json index e7abc878..a210caa3 100644 --- a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1438_The Business of Betrothal.json +++ b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1438_The Business of Betrothal.json @@ -1,154 +1,154 @@ { - "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "FalconTaterz", - "QuestSequence": [ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "FalconTaterz", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ { - "Sequence": 0, - "Steps": [ - { - "AetheryteShortcut": "Western Thanalan - Horizon", - "SkipConditions": { - "AetheryteShortcutIf": { - "InSameTerritory": true - } - }, - "DataId": 1008757, - "Position": { - "X": -422.5376, - "Y": 23.113976, - "Z": -367.7882 - }, - "TerritoryId": 140, - "InteractionType": "AcceptQuest" - } - ] - }, - { - "Sequence": 1, - "Steps": [ - { - "AetheryteShortcut": "Eastern La Noscea - Costa Del Sol", - "Mount": true, - "Fly": true, - "DataId": 1009305, - "Position": { - "X": 562.4321, - "Y": 17.654663, - "Z": 421.7135 - }, - "TerritoryId": 137, - "InteractionType": "Interact" - } - ] - }, - { - "Sequence": 2, - "Steps": [ - { - "DataId": 1009307, - "Position": { - "X": 498.89368, - "Y": 10.079935, - "Z": 418.265 - }, - "TerritoryId": 137, - "InteractionType": "Interact", - "DialogueChoices": [ - { - "Type": "List", - "Prompt": "TEXT_CHRHDB301_01438_Q1_000_000", - "Answer": "TEXT_CHRHDB301_01438_A1_000_030" - }, - { - "Type": "List", - "Prompt": "TEXT_CHRHDB301_01438_Q2_000_000", - "Answer": "TEXT_CHRHDB301_01438_A2_000_030" - } - ] - } - ] - }, - { - "Sequence": 3, - "Steps": [ - { - "Mount": true, - "Fly": true, - "DataId": 1009310, - "Position": { - "X": 471.18323, - "Y": 9.96334, - "Z": 794.6135 - }, - "TerritoryId": 137, - "InteractionType": "Interact" - } - ] - }, - { - "Sequence": 4, - "Steps": [ - { - "AetheryteShortcut": "Eastern La Noscea - Costa Del Sol", - "DataId": 1009308, - "Position": { - "X": 560.32654, - "Y": 17.707417, - "Z": 421.01147 - }, - "TerritoryId": 137, - "InteractionType": "Interact" - } - ] - }, - { - "Sequence": 5, - "Steps": [ - { - "DataId": 1009311, - "Position": { - "X": 531.2123, - "Y": 17.448051, - "Z": 454.1847 - }, - "TerritoryId": 137, - "InteractionType": "Interact" - } - ] - }, - { - "Sequence": 6, - "Steps": [ - { - "DataId": 1009317, - "Position": { - "X": 583.88635, - "Y": 14.587067, - "Z": 394.70508 - }, - "TerritoryId": 137, - "InteractionType": "Interact" - } - ] - }, - { - "Sequence": 255, - "Steps": [ - { - "DataId": 2004317, - "Position": { - "X": 515.98376, - "Y": 9.384277, - "Z": 525.81055 - }, - "TerritoryId": 137, - "InteractionType": "Interact" - }, - { - "TerritoryId": 137, - "InteractionType": "CompleteQuest" - } - ] + "AetheryteShortcut": "Western Thanalan - Horizon", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + }, + "DataId": 1008757, + "Position": { + "X": -422.5376, + "Y": 23.113976, + "Z": -367.7882 + }, + "TerritoryId": 140, + "InteractionType": "AcceptQuest" } - ] -} \ No newline at end of file + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "AetheryteShortcut": "Eastern La Noscea - Costa Del Sol", + "Mount": true, + "Fly": true, + "DataId": 1009305, + "Position": { + "X": 562.4321, + "Y": 17.654663, + "Z": 421.7135 + }, + "TerritoryId": 137, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1009307, + "Position": { + "X": 498.89368, + "Y": 10.079935, + "Z": 418.265 + }, + "TerritoryId": 137, + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_CHRHDB301_01438_Q1_000_000", + "Answer": "TEXT_CHRHDB301_01438_A1_000_030" + }, + { + "Type": "List", + "Prompt": "TEXT_CHRHDB301_01438_Q2_000_000", + "Answer": "TEXT_CHRHDB301_01438_A2_000_030" + } + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "Mount": true, + "Fly": true, + "DataId": 1009310, + "Position": { + "X": 471.18323, + "Y": 9.96334, + "Z": 794.6135 + }, + "TerritoryId": 137, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "AetheryteShortcut": "Eastern La Noscea - Costa Del Sol", + "DataId": 1009308, + "Position": { + "X": 560.32654, + "Y": 17.707417, + "Z": 421.01147 + }, + "TerritoryId": 137, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1009311, + "Position": { + "X": 531.2123, + "Y": 17.448051, + "Z": 454.1847 + }, + "TerritoryId": 137, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1009317, + "Position": { + "X": 583.88635, + "Y": 14.587067, + "Z": 394.70508 + }, + "TerritoryId": 137, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 2004317, + "Position": { + "X": 515.98376, + "Y": 9.384277, + "Z": 525.81055 + }, + "TerritoryId": 137, + "InteractionType": "Interact" + }, + { + "TerritoryId": 137, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1439_A Burst of Inspiration.json b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1439_A Burst of Inspiration.json index 6b104573..0ee913ab 100644 --- a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1439_A Burst of Inspiration.json +++ b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1439_A Burst of Inspiration.json @@ -1,83 +1,83 @@ { - "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "FalconTaterz", - "QuestSequence": [ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "FalconTaterz", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ { - "Sequence": 0, - "Steps": [ - { - "DataId": 1009326, - "Position": { - "X": 526.2073, - "Y": 8.84578, - "Z": 556.54236 - }, - "TerritoryId": 137, - "InteractionType": "AcceptQuest" - } - ] - }, - { - "Sequence": 1, - "Steps": [ - { - "DataId": 1009328, - "Position": { - "X": 515.0376, - "Y": 9.192075, - "Z": 524.834 - }, - "TerritoryId": 137, - "InteractionType": "Interact" - } - ] - }, - { - "Sequence": 2, - "Steps": [ - { - "DataId": 1009319, - "Position": { - "X": 581.3534, - "Y": 14.587067, - "Z": 395.8037 - }, - "TerritoryId": 137, - "InteractionType": "Interact" - } - ] - }, - { - "Sequence": 3, - "Steps": [ - { - "AetheryteShortcut": "Limsa Lominsa", - "DataId": 1001023, - "Position": { - "X": -78.62976, - "Y": 18.000334, - "Z": -22.62915 - }, - "TerritoryId": 129, - "InteractionType": "Interact" - } - ] - }, - { - "Sequence": 255, - "Steps": [ - { - "AetheryteShortcut": "Western La Noscea - Aleport", - "DataId": 1009331, - "Position": { - "X": 311.54346, - "Y": -36.405907, - "Z": 344.71655 - }, - "TerritoryId": 138, - "InteractionType": "CompleteQuest" - } - ] + "DataId": 1009326, + "Position": { + "X": 526.2073, + "Y": 8.84578, + "Z": 556.54236 + }, + "TerritoryId": 137, + "InteractionType": "AcceptQuest" } - ] -} \ No newline at end of file + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1009328, + "Position": { + "X": 515.0376, + "Y": 9.192075, + "Z": 524.834 + }, + "TerritoryId": 137, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1009319, + "Position": { + "X": 581.3534, + "Y": 14.587067, + "Z": 395.8037 + }, + "TerritoryId": 137, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "AetheryteShortcut": "Limsa Lominsa", + "DataId": 1001023, + "Position": { + "X": -78.62976, + "Y": 18.000334, + "Z": -22.62915 + }, + "TerritoryId": 129, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "AetheryteShortcut": "Western La Noscea - Aleport", + "DataId": 1009331, + "Position": { + "X": 311.54346, + "Y": -36.405907, + "Z": 344.71655 + }, + "TerritoryId": 138, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1440_Seeds of Rebellion.json b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1440_Seeds of Rebellion.json index ca534efe..8e1968e8 100644 --- a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1440_Seeds of Rebellion.json +++ b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1440_Seeds of Rebellion.json @@ -1,150 +1,150 @@ { - "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "FalconTaterz", - "QuestSequence": [ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "FalconTaterz", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ { - "Sequence": 0, - "Steps": [ - { - "DataId": 1009331, - "Position": { - "X": 311.54346, - "Y": -36.405907, - "Z": 344.71655 - }, - "TerritoryId": 138, - "InteractionType": "AcceptQuest", - "DialogueChoices": [ - { - "Type": "YesNo", - "Prompt": "TEXT_CHRHDB303_01440_Q1_000_010", - "Yes": true - } - ] - } - ] - }, - { - "Sequence": 1, - "Steps": [ - { - "Mount": true, - "Fly": true, - "DataId": 2004324, - "Position": { - "X": -283.0091, - "Y": -40.634766, - "Z": 425.58936 - }, - "TerritoryId": 138, - "InteractionType": "Interact" - }, - { - "DataId": 2004325, - "Position": { - "X": -242.60321, - "Y": -38.68164, - "Z": 514.7324 - }, - "TerritoryId": 138, - "InteractionType": "Interact" - }, - { - "DataId": 2004326, - "Position": { - "X": -291.06586, - "Y": -38.07129, - "Z": 596.765 - }, - "TerritoryId": 138, - "InteractionType": "Interact" - } - ] - }, - { - "Sequence": 2, - "Steps": [ - { - "Comment": "Commence \"The Mandragoras\"", - "DataId": 1009335, - "Position": { - "X": -256.70258, - "Y": -40.18569, - "Z": 684.1992 - }, - "TerritoryId": 138, - "InteractionType": "Interact" - }, - { - "Comment": "Fight some Mandragoras", - "Position": { - "X": -256.70258, - "Y": -40.18569, - "Z": 684.1992 - }, - "TerritoryId": 138, - "InteractionType": "Combat", - "EnemySpawnType": "OverworldEnemies", - "KillEnemyDataIds": [ - 2950, - 2951, - 2952, - 2953, - 2954 - ] - } - ] - }, - { - "Sequence": 3, - "Steps": [ - { - "AetheryteShortcut": "Eastern La Noscea - Costa Del Sol", - "Mount": true, - "Fly": true, - "DataId": 1009319, - "Position": { - "X": 581.3534, - "Y": 14.587067, - "Z": 395.8037 - }, - "TerritoryId": 137, - "InteractionType": "Interact" - } - ] - }, - { - "Sequence": 4, - "Steps": [ - { - "Mount": true, - "Fly": true, - "DataId": 1009336, - "Position": { - "X": 494.49902, - "Y": 11.323204, - "Z": 210.3761 - }, - "TerritoryId": 137, - "InteractionType": "Interact" - } - ] - }, - { - "Sequence": 255, - "Steps": [ - { - "AetheryteShortcut": "Eastern La Noscea - Wineport", - "DataId": 1009337, - "Position": { - "X": -46.860474, - "Y": 75.95114, - "Z": 10.879639 - }, - "TerritoryId": 137, - "InteractionType": "CompleteQuest" - } - ] + "DataId": 1009331, + "Position": { + "X": 311.54346, + "Y": -36.405907, + "Z": 344.71655 + }, + "TerritoryId": 138, + "InteractionType": "AcceptQuest", + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_CHRHDB303_01440_Q1_000_010", + "Yes": true + } + ] } - ] -} \ No newline at end of file + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Mount": true, + "Fly": true, + "DataId": 2004324, + "Position": { + "X": -283.0091, + "Y": -40.634766, + "Z": 425.58936 + }, + "TerritoryId": 138, + "InteractionType": "Interact" + }, + { + "DataId": 2004325, + "Position": { + "X": -242.60321, + "Y": -38.68164, + "Z": 514.7324 + }, + "TerritoryId": 138, + "InteractionType": "Interact" + }, + { + "DataId": 2004326, + "Position": { + "X": -291.06586, + "Y": -38.07129, + "Z": 596.765 + }, + "TerritoryId": 138, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Comment": "Commence \"The Mandragoras\"", + "DataId": 1009335, + "Position": { + "X": -256.70258, + "Y": -40.18569, + "Z": 684.1992 + }, + "TerritoryId": 138, + "InteractionType": "Interact" + }, + { + "Comment": "Fight some Mandragoras", + "Position": { + "X": -256.70258, + "Y": -40.18569, + "Z": 684.1992 + }, + "TerritoryId": 138, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "KillEnemyDataIds": [ + 2950, + 2951, + 2952, + 2953, + 2954 + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "AetheryteShortcut": "Eastern La Noscea - Costa Del Sol", + "Mount": true, + "Fly": true, + "DataId": 1009319, + "Position": { + "X": 581.3534, + "Y": 14.587067, + "Z": 395.8037 + }, + "TerritoryId": 137, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "Mount": true, + "Fly": true, + "DataId": 1009336, + "Position": { + "X": 494.49902, + "Y": 11.323204, + "Z": 210.3761 + }, + "TerritoryId": 137, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "AetheryteShortcut": "Eastern La Noscea - Wineport", + "DataId": 1009337, + "Position": { + "X": -46.860474, + "Y": 75.95114, + "Z": 10.879639 + }, + "TerritoryId": 137, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1441_A Case of Indecency.json b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1441_A Case of Indecency.json index 38f5b7e9..28200b4d 100644 --- a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1441_A Case of Indecency.json +++ b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1441_A Case of Indecency.json @@ -1,101 +1,101 @@ { - "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "FalconTaterz", - "QuestSequence": [ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "FalconTaterz", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ { - "Sequence": 0, - "Steps": [ - { - "DataId": 1009341, - "Position": { - "X": -48.44745, - "Y": 75.95115, - "Z": 9.079041 - }, - "TerritoryId": 137, - "InteractionType": "AcceptQuest" - } - ] - }, - { - "Sequence": 1, - "Steps": [ - { - "AetheryteShortcut": "Eastern La Noscea - Costa Del Sol", - "DataId": 1009351, - "Position": { - "X": 524.28467, - "Y": 17.448048, - "Z": 449.08826 - }, - "TerritoryId": 137, - "InteractionType": "Interact" - } - ] - }, - { - "Sequence": 2, - "Steps": [ - { - "DataId": 1009347, - "Position": { - "X": 442.77087, - "Y": 15.823447, - "Z": 375.17358 - }, - "TerritoryId": 137, - "InteractionType": "Interact" - } - ] - }, - { - "Sequence": 3, - "Steps": [ - { - "DataId": 1009348, - "Position": { - "X": 386.19055, - "Y": 29.58076, - "Z": 350.3623 - }, - "TerritoryId": 137, - "InteractionType": "Interact" - } - ] - }, - { - "Sequence": 4, - "Steps": [ - { - "DataId": 1009345, - "Position": { - "X": 523.76587, - "Y": 17.448044, - "Z": 447.13513 - }, - "TerritoryId": 137, - "InteractionType": "Interact" - } - ] - }, - { - "Sequence": 255, - "Steps": [ - { - "DataId": 2004328, - "Position": { - "X": 523.4607, - "Y": 17.837708, - "Z": 455.2528 - }, - "TerritoryId": 137, - "InteractionType": "Interact" - }, - { - "TerritoryId": 137, - "InteractionType": "CompleteQuest" - } - ] + "DataId": 1009341, + "Position": { + "X": -48.44745, + "Y": 75.95115, + "Z": 9.079041 + }, + "TerritoryId": 137, + "InteractionType": "AcceptQuest" } - ] -} \ No newline at end of file + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "AetheryteShortcut": "Eastern La Noscea - Costa Del Sol", + "DataId": 1009351, + "Position": { + "X": 524.28467, + "Y": 17.448048, + "Z": 449.08826 + }, + "TerritoryId": 137, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1009347, + "Position": { + "X": 442.77087, + "Y": 15.823447, + "Z": 375.17358 + }, + "TerritoryId": 137, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1009348, + "Position": { + "X": 386.19055, + "Y": 29.58076, + "Z": 350.3623 + }, + "TerritoryId": 137, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1009345, + "Position": { + "X": 523.76587, + "Y": 17.448044, + "Z": 447.13513 + }, + "TerritoryId": 137, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 2004328, + "Position": { + "X": 523.4607, + "Y": 17.837708, + "Z": 455.2528 + }, + "TerritoryId": 137, + "InteractionType": "Interact" + }, + { + "TerritoryId": 137, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/166_Eight-armed and Dangerous.json b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/166_Eight-armed and Dangerous.json index a5774909..3884020a 100644 --- a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/166_Eight-armed and Dangerous.json +++ b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/166_Eight-armed and Dangerous.json @@ -1,138 +1,138 @@ { - "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "FalconTaterz", - "QuestSequence": [ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "FalconTaterz", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ { - "Sequence": 0, - "Steps": [ - { - "AetheryteShortcut": "Eastern La Noscea - Costa Del Sol", - "SkipConditions": { - "AetheryteShortcutIf": { - "InSameTerritory": true - } - }, - "DataId": 1009357, - "Position": { - "X": 528.95386, - "Y": 17.44805, - "Z": 448.69153 - }, - "TerritoryId": 137, - "InteractionType": "AcceptQuest" - } - ] - }, - { - "Sequence": 1, - "Steps": [ - { - "AetheryteShortcut": "Ul'dah", - "AethernetShortcut": [ - "[Ul'dah] Aetheryte Plaza", - "[Ul'dah] Thaumaturges' Guild" - ], - "DataId": 1010160, - "Position": { - "X": -144.64032, - "Y": 12, - "Z": -5.6916504 - }, - "TerritoryId": 130, - "InteractionType": "Interact" - } - ] - }, - { - "Sequence": 2, - "Steps": [ - { - "AethernetShortcut": [ - "[Ul'dah] Thaumaturges' Guild", - "[Ul'dah] Gladiators' Guild" - ], - "DataId": 1001857, - "Position": { - "X": -46.76892, - "Y": 10, - "Z": -12.741333 - }, - "TerritoryId": 131, - "InteractionType": "Interact" - } - ] - }, - { - "Sequence": 3, - "Steps": [ - { - "AethernetShortcut": [ - "[Ul'dah] Gladiators' Guild", - "[Ul'dah] Thaumaturges' Guild" - ], - "DataId": 1010160, - "Position": { - "X": -144.64032, - "Y": 12, - "Z": -5.6916504 - }, - "TerritoryId": 130, - "InteractionType": "Interact" - } - ] - }, - { - "Sequence": 4, - "Steps": [ - { - "DataId": 1010188, - "Position": { - "X": -106.523315, - "Y": 4.2265673, - "Z": -82.16986 - }, - "TerritoryId": 130, - "InteractionType": "Interact" - } - ] - }, - { - "Sequence": 5, - "Steps": [ - { - "AethernetShortcut": [ - "[Ul'dah] Aetheryte Plaza", - "[Ul'dah] Gladiators' Guild" - ], - "DataId": 1010281, - "Position": { - "X": -70.96979, - "Y": 6.9839683, - "Z": 3.982544 - }, - "TerritoryId": 131, - "InteractionType": "Interact" - } - ] - }, - { - "Sequence": 255, - "Steps": [ - { - "AethernetShortcut": [ - "[Ul'dah] Gladiators' Guild", - "[Ul'dah] Thaumaturges' Guild" - ], - "DataId": 1010287, - "Position": { - "X": -142.71765, - "Y": 12, - "Z": -3.9215698 - }, - "TerritoryId": 130, - "InteractionType": "CompleteQuest" - } - ] + "AetheryteShortcut": "Eastern La Noscea - Costa Del Sol", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + }, + "DataId": 1009357, + "Position": { + "X": 528.95386, + "Y": 17.44805, + "Z": 448.69153 + }, + "TerritoryId": 137, + "InteractionType": "AcceptQuest" } - ] -} \ No newline at end of file + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Thaumaturges' Guild" + ], + "DataId": 1010160, + "Position": { + "X": -144.64032, + "Y": 12, + "Z": -5.6916504 + }, + "TerritoryId": 130, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "AethernetShortcut": [ + "[Ul'dah] Thaumaturges' Guild", + "[Ul'dah] Gladiators' Guild" + ], + "DataId": 1001857, + "Position": { + "X": -46.76892, + "Y": 10, + "Z": -12.741333 + }, + "TerritoryId": 131, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "AethernetShortcut": [ + "[Ul'dah] Gladiators' Guild", + "[Ul'dah] Thaumaturges' Guild" + ], + "DataId": 1010160, + "Position": { + "X": -144.64032, + "Y": 12, + "Z": -5.6916504 + }, + "TerritoryId": 130, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1010188, + "Position": { + "X": -106.523315, + "Y": 4.2265673, + "Z": -82.16986 + }, + "TerritoryId": 130, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Gladiators' Guild" + ], + "DataId": 1010281, + "Position": { + "X": -70.96979, + "Y": 6.9839683, + "Z": 3.982544 + }, + "TerritoryId": 131, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "AethernetShortcut": [ + "[Ul'dah] Gladiators' Guild", + "[Ul'dah] Thaumaturges' Guild" + ], + "DataId": 1010287, + "Position": { + "X": -142.71765, + "Y": 12, + "Z": -3.9215698 + }, + "TerritoryId": 130, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/202_What Price Victory.json b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/202_What Price Victory.json index 74e482e6..2552df26 100644 --- a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/202_What Price Victory.json +++ b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/202_What Price Victory.json @@ -1,111 +1,111 @@ { - "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "FalconTaterz", - "QuestSequence": [ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "FalconTaterz", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ { - "Sequence": 0, - "Steps": [ - { - "DataId": 1010279, - "Position": { - "X": -143.60266, - "Y": 11.999999, - "Z": -3.8911133 - }, - "TerritoryId": 130, - "InteractionType": "AcceptQuest" - } - ] - }, - { - "Sequence": 1, - "Steps": [ - { - "AethernetShortcut": [ - "[Ul'dah] Thaumaturges' Guild", - "[Ul'dah] Gladiators' Guild" - ], - "DataId": 1010523, - "Position": { - "X": -53.48291, - "Y": 9.999997, - "Z": -4.0742188 - }, - "TerritoryId": 131, - "InteractionType": "Interact" - } - ] - }, - { - "Sequence": 2, - "Steps": [ - { - "Mount": true, - "AetheryteShortcut": "Central Thanalan - Black Brush Station", - "DataId": 1010293, - "Position": { - "X": -61.387024, - "Y": -11.84896, - "Z": -63.126587 - }, - "TerritoryId": 141, - "InteractionType": "Interact" - } - ] - }, - { - "Sequence": 3, - "Steps": [ - { - "Mount": true, - "Fly": true, - "DataId": 1010298, - "Position": { - "X": 19.851929, - "Y": 19.020214, - "Z": -421.37793 - }, - "TerritoryId": 141, - "InteractionType": "Interact" - } - ] - }, - { - "Sequence": 4, - "Steps": [ - { - "Mount": true, - "Fly": true, - "DataId": 1010310, - "Position": { - "X": -55.436035, - "Y": 3.4680986, - "Z": 260.57825 - }, - "TerritoryId": 141, - "InteractionType": "Interact" - } - ] - }, - { - "Sequence": 255, - "Steps": [ - { - "AetheryteShortcut": "Ul'dah", - "AethernetShortcut": [ - "[Ul'dah] Aetheryte Plaza", - "[Ul'dah] Thaumaturges' Guild" - ], - "DataId": 1010290, - "Position": { - "X": -144.73187, - "Y": 11.999999, - "Z": -5.661133 - }, - "TerritoryId": 130, - "InteractionType": "CompleteQuest" - } - ] + "DataId": 1010279, + "Position": { + "X": -143.60266, + "Y": 11.999999, + "Z": -3.8911133 + }, + "TerritoryId": 130, + "InteractionType": "AcceptQuest" } - ] -} \ No newline at end of file + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "AethernetShortcut": [ + "[Ul'dah] Thaumaturges' Guild", + "[Ul'dah] Gladiators' Guild" + ], + "DataId": 1010523, + "Position": { + "X": -53.48291, + "Y": 9.999997, + "Z": -4.0742188 + }, + "TerritoryId": 131, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Mount": true, + "AetheryteShortcut": "Central Thanalan - Black Brush Station", + "DataId": 1010293, + "Position": { + "X": -61.387024, + "Y": -11.84896, + "Z": -63.126587 + }, + "TerritoryId": 141, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "Mount": true, + "Fly": true, + "DataId": 1010298, + "Position": { + "X": 19.851929, + "Y": 19.020214, + "Z": -421.37793 + }, + "TerritoryId": 141, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "Mount": true, + "Fly": true, + "DataId": 1010310, + "Position": { + "X": -55.436035, + "Y": 3.4680986, + "Z": 260.57825 + }, + "TerritoryId": 141, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Thaumaturges' Guild" + ], + "DataId": 1010290, + "Position": { + "X": -144.73187, + "Y": 11.999999, + "Z": -5.661133 + }, + "TerritoryId": 130, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/203_The Trouble with Truffles.json b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/203_The Trouble with Truffles.json index 2465078a..cda4ab0c 100644 --- a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/203_The Trouble with Truffles.json +++ b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/203_The Trouble with Truffles.json @@ -1,135 +1,135 @@ { - "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "FalconTaterz", - "QuestSequence": [ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "FalconTaterz", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ { - "Sequence": 0, - "Steps": [ - { - "DataId": 1010290, - "Position": { - "X": -144.73187, - "Y": 11.999999, - "Z": -5.661133 - }, - "TerritoryId": 130, - "InteractionType": "AcceptQuest" - } - ] - }, - { - "Sequence": 1, - "Steps": [ - { - "AethernetShortcut": [ - "[Ul'dah] Thaumaturges' Guild", - "[Ul'dah] Gladiators' Guild" - ], - "DataId": 1010169, - "Position": { - "X": -47.501343, - "Y": 9.999995, - "Z": -11.886841 - }, - "TerritoryId": 131, - "InteractionType": "Interact" - } - ] - }, - { - "Sequence": 2, - "Steps": [ - { - "DataId": 1010316, - "Position": { - "X": -54.581604, - "Y": 9.999972, - "Z": -12.64978 - }, - "StopDistance": 6, - "TerritoryId": 131, - "InteractionType": "Interact" - } - ] - }, - { - "Sequence": 3, - "Steps": [ - { - "Comment": "This teleport is because I couldn't figure out jumping", - "AetheryteShortcut": "Ul'dah", - "AethernetShortcut": [ - "[Ul'dah] Aetheryte Plaza", - "[Ul'dah] Weavers' Guild" - ], - "DataId": 2004901, - "Position": { - "X": 103.50195, - "Y": 7.9804688, - "Z": 8.255066 - }, - "TerritoryId": 131, - "InteractionType": "Interact" - }, - { - "DataId": 2004900, - "Position": { - "X": 103.715576, - "Y": 7.9804688, - "Z": -35.233154 - }, - "TerritoryId": 131, - "InteractionType": "Interact" - }, - { - "DataId": 2004899, - "Position": { - "X": 68.0094, - "Y": 7.9804688, - "Z": -74.05206 - }, - "TerritoryId": 131, - "InteractionType": "Interact" - } - ] - }, - { - "Sequence": 4, - "Steps": [ - { - "AethernetShortcut": [ - "[Ul'dah] Sapphire Avenue Exchange", - "[Ul'dah] Gladiators' Guild" - ], - "DataId": 1010316, - "Position": { - "X": -54.581604, - "Y": 9.999972, - "Z": -12.64978 - }, - "TerritoryId": 131, - "InteractionType": "Interact" - } - ] - }, - { - "Sequence": 255, - "Steps": [ - { - "AethernetShortcut": [ - "[Ul'dah] Gladiators' Guild", - "[Ul'dah] Sapphire Avenue Exchange" - ], - "DataId": 1001679, - "Position": { - "X": 140.48975, - "Y": 4.0099983, - "Z": -59.80017 - }, - "TerritoryId": 131, - "InteractionType": "CompleteQuest" - } - ] + "DataId": 1010290, + "Position": { + "X": -144.73187, + "Y": 11.999999, + "Z": -5.661133 + }, + "TerritoryId": 130, + "InteractionType": "AcceptQuest" } - ] -} \ No newline at end of file + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "AethernetShortcut": [ + "[Ul'dah] Thaumaturges' Guild", + "[Ul'dah] Gladiators' Guild" + ], + "DataId": 1010169, + "Position": { + "X": -47.501343, + "Y": 9.999995, + "Z": -11.886841 + }, + "TerritoryId": 131, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1010316, + "Position": { + "X": -54.581604, + "Y": 9.999972, + "Z": -12.64978 + }, + "StopDistance": 6, + "TerritoryId": 131, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "Comment": "This teleport is because I couldn't figure out jumping", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Weavers' Guild" + ], + "DataId": 2004901, + "Position": { + "X": 103.50195, + "Y": 7.9804688, + "Z": 8.255066 + }, + "TerritoryId": 131, + "InteractionType": "Interact" + }, + { + "DataId": 2004900, + "Position": { + "X": 103.715576, + "Y": 7.9804688, + "Z": -35.233154 + }, + "TerritoryId": 131, + "InteractionType": "Interact" + }, + { + "DataId": 2004899, + "Position": { + "X": 68.0094, + "Y": 7.9804688, + "Z": -74.05206 + }, + "TerritoryId": 131, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "AethernetShortcut": [ + "[Ul'dah] Sapphire Avenue Exchange", + "[Ul'dah] Gladiators' Guild" + ], + "DataId": 1010316, + "Position": { + "X": -54.581604, + "Y": 9.999972, + "Z": -12.64978 + }, + "TerritoryId": 131, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "AethernetShortcut": [ + "[Ul'dah] Gladiators' Guild", + "[Ul'dah] Sapphire Avenue Exchange" + ], + "DataId": 1001679, + "Position": { + "X": 140.48975, + "Y": 4.0099983, + "Z": -59.80017 + }, + "TerritoryId": 131, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/204_The Coliseum Conundrum.json b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/204_The Coliseum Conundrum.json index 58ef5717..1dcb5424 100644 --- a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/204_The Coliseum Conundrum.json +++ b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/204_The Coliseum Conundrum.json @@ -1,125 +1,125 @@ { - "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "FalconTaterz", - "QuestSequence": [ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "FalconTaterz", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ { - "Sequence": 0, - "Steps": [ - { - "DataId": 1010317, - "Position": { - "X": 139.78784, - "Y": 4.0099993, - "Z": -57.114563 - }, - "TerritoryId": 131, - "InteractionType": "AcceptQuest" - } - ] - }, - { - "Sequence": 1, - "Steps": [ - { - "AethernetShortcut": [ - "[Ul'dah] Sapphire Avenue Exchange", - "[Ul'dah] Gladiators' Guild" - ], - "DataId": 1010330, - "Position": { - "X": -69.5354, - "Y": 6.9839687, - "Z": 0.07623291 - }, - "TerritoryId": 131, - "InteractionType": "Interact", - "DialogueChoices": [ - { - "Type": "YesNo", - "Prompt": "TEXT_CHRHDB404_00204_Q1_000_000", - "Yes": true - } - ] - } - ] - }, - { - "Sequence": 2, - "Steps": [ - { - "DataId": 1010772, - "Position": { - "X": -72.40405, - "Y": 6.9839687, - "Z": -0.045776367 - }, - "TerritoryId": 131, - "InteractionType": "Interact" - } - ] - }, - { - "Sequence": 3, - "Steps": [ - { - "AetheryteShortcut": "Eastern Thanalan - Camp Drybone", - "Mount": true, - "Fly": true, - "DataId": 1010161, - "Position": { - "X": -338.3994, - "Y": -22.360315, - "Z": 434.3175 - }, - "TerritoryId": 145, - "InteractionType": "Interact" - } - ] - }, - { - "Sequence": 4, - "Steps": [ - { - "TerritoryId": 145, - "InteractionType": "Duty", - "ContentFinderConditionId": 81 - } - ] - }, - { - "Sequence": 5, - "Steps": [ - { - "DataId": 1010329, - "Position": { - "X": -334.21838, - "Y": -22.463528, - "Z": 432.9746 - }, - "TerritoryId": 145, - "InteractionType": "Interact" - } - ] - }, - { - "Sequence": 255, - "Steps": [ - { - "AetheryteShortcut": "Ul'dah", - "AethernetShortcut": [ - "[Ul'dah] Aetheryte Plaza", - "[Ul'dah] Gladiators' Guild" - ], - "DataId": 1010330, - "Position": { - "X": -69.5354, - "Y": 6.9839687, - "Z": 0.07623291 - }, - "TerritoryId": 131, - "InteractionType": "CompleteQuest" - } - ] + "DataId": 1010317, + "Position": { + "X": 139.78784, + "Y": 4.0099993, + "Z": -57.114563 + }, + "TerritoryId": 131, + "InteractionType": "AcceptQuest" } - ] -} \ No newline at end of file + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "AethernetShortcut": [ + "[Ul'dah] Sapphire Avenue Exchange", + "[Ul'dah] Gladiators' Guild" + ], + "DataId": 1010330, + "Position": { + "X": -69.5354, + "Y": 6.9839687, + "Z": 0.07623291 + }, + "TerritoryId": 131, + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_CHRHDB404_00204_Q1_000_000", + "Yes": true + } + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1010772, + "Position": { + "X": -72.40405, + "Y": 6.9839687, + "Z": -0.045776367 + }, + "TerritoryId": 131, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "AetheryteShortcut": "Eastern Thanalan - Camp Drybone", + "Mount": true, + "Fly": true, + "DataId": 1010161, + "Position": { + "X": -338.3994, + "Y": -22.360315, + "Z": 434.3175 + }, + "TerritoryId": 145, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "TerritoryId": 145, + "InteractionType": "Duty", + "ContentFinderConditionId": 81 + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1010329, + "Position": { + "X": -334.21838, + "Y": -22.463528, + "Z": 432.9746 + }, + "TerritoryId": 145, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Gladiators' Guild" + ], + "DataId": 1010330, + "Position": { + "X": -69.5354, + "Y": 6.9839687, + "Z": 0.07623291 + }, + "TerritoryId": 131, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/490_Shades of Sil'dih.json b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/490_Shades of Sil'dih.json index e7108cea..195aca4d 100644 --- a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/490_Shades of Sil'dih.json +++ b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/490_Shades of Sil'dih.json @@ -1,94 +1,94 @@ { - "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "FalconTaterz", - "QuestSequence": [ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "FalconTaterz", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ { - "Sequence": 0, - "Steps": [ - { - "DataId": 1010708, - "Position": { - "X": -70.237305, - "Y": 6.9839683, - "Z": 1.9073486 - }, - "TerritoryId": 131, - "InteractionType": "AcceptQuest" - } - ] - }, - { - "Sequence": 1, - "Steps": [ - { - "AethernetShortcut": [ - "[Ul'dah] Gladiators' Guild", - "[Ul'dah] Aetheryte Plaza" - ], - "DataId": 1001285, - "Position": { - "X": -68.77246, - "Y": 4.0411124, - "Z": -126.51257 - }, - "TerritoryId": 130, - "InteractionType": "Interact" - } - ] - }, - { - "Sequence": 2, - "Steps": [ - { - "AethernetShortcut": [ - "[Ul'dah] Aetheryte Plaza", - "[Ul'dah] Alchemists' Guild" - ], - "DataId": 1011620, - "Position": { - "X": -118.69995, - "Y": 40, - "Z": 95.23157 - }, - "TerritoryId": 131, - "InteractionType": "Interact" - } - ] - }, - { - "Sequence": 3, - "Steps": [ - { - "DataId": 1011672, - "Position": { - "X": -118.21167, - "Y": 40, - "Z": 92.11865 - }, - "TerritoryId": 131, - "InteractionType": "Interact" - } - ] - }, - { - "Sequence": 255, - "Steps": [ - { - "AethernetShortcut": [ - "[Ul'dah] Alchemists' Guild", - "[Ul'dah] Gate of the Sultana (Western Thanalan)" - ], - "Mount": true, - "DataId": 1011677, - "Position": { - "X": 363.54602, - "Y": 74.743355, - "Z": 171.12988 - }, - "TerritoryId": 140, - "InteractionType": "CompleteQuest" - } - ] + "DataId": 1010708, + "Position": { + "X": -70.237305, + "Y": 6.9839683, + "Z": 1.9073486 + }, + "TerritoryId": 131, + "InteractionType": "AcceptQuest" } - ] -} \ No newline at end of file + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "AethernetShortcut": [ + "[Ul'dah] Gladiators' Guild", + "[Ul'dah] Aetheryte Plaza" + ], + "DataId": 1001285, + "Position": { + "X": -68.77246, + "Y": 4.0411124, + "Z": -126.51257 + }, + "TerritoryId": 130, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Alchemists' Guild" + ], + "DataId": 1011620, + "Position": { + "X": -118.69995, + "Y": 40, + "Z": 95.23157 + }, + "TerritoryId": 131, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1011672, + "Position": { + "X": -118.21167, + "Y": 40, + "Z": 92.11865 + }, + "TerritoryId": 131, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "AethernetShortcut": [ + "[Ul'dah] Alchemists' Guild", + "[Ul'dah] Gate of the Sultana (Western Thanalan)" + ], + "Mount": true, + "DataId": 1011677, + "Position": { + "X": 363.54602, + "Y": 74.743355, + "Z": 171.12988 + }, + "TerritoryId": 140, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/491_Sibling Strife.json b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/491_Sibling Strife.json index a425d7cf..b5559847 100644 --- a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/491_Sibling Strife.json +++ b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/491_Sibling Strife.json @@ -1,137 +1,137 @@ { - "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "FalconTaterz", - "QuestSequence": [ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "FalconTaterz", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ { - "Sequence": 0, - "Steps": [ - { - "DataId": 1011677, - "Position": { - "X": 363.54602, - "Y": 74.743355, - "Z": 171.12988 - }, - "TerritoryId": 140, - "InteractionType": "AcceptQuest" - } - ] - }, - { - "Sequence": 1, - "Steps": [ - { - "AetheryteShortcut": "Ul'dah", - "AethernetShortcut": [ - "[Ul'dah] Aetheryte Plaza", - "[Ul'dah] Thaumaturges' Guild" - ], - "DataId": 1011681, - "Position": { - "X": -182.29956, - "Y": 18, - "Z": 56.90088 - }, - "TerritoryId": 130, - "InteractionType": "Interact" - }, - { - "DataId": 1003897, - "Position": { - "X": -195.45282, - "Y": 18, - "Z": 60.53247 - }, - "TerritoryId": 130, - "InteractionType": "Interact" - }, - { - "DataId": 1001294, - "Position": { - "X": -214.22144, - "Y": 18.5, - "Z": 72.129395 - }, - "TerritoryId": 130, - "InteractionType": "Interact" - }, - { - "DataId": 1001708, - "Position": { - "X": -250.3548, - "Y": 18, - "Z": 80.88806 - }, - "TerritoryId": 130, - "InteractionType": "Interact" - } - ] - }, - { - "Sequence": 2, - "Steps": [ - { - "DataId": 1011682, - "Position": { - "X": -200.763, - "Y": 17.999998, - "Z": 59.189697 - }, - "TerritoryId": 130, - "InteractionType": "Interact" - } - ] - }, - { - "Sequence": 3, - "Steps": [ - { - "AetheryteShortcut": "Western Thanalan - Horizon", - "DataId": 1011683, - "Position": { - "X": 76.8291, - "Y": 45, - "Z": -218.28033 - }, - "TerritoryId": 140, - "InteractionType": "Interact" - } - ] - }, - { - "Sequence": 4, - "Steps": [ - { - "Mount": true, - "Position": { - "X": -345.65482, - "Y": 23, - "Z": -352.02484 - }, - "TerritoryId": 140, - "InteractionType": "WalkTo" - } - ] - }, - { - "Sequence": 255, - "Steps": [ - { - "AetheryteShortcut": "Ul'dah", - "AethernetShortcut": [ - "[Ul'dah] Aetheryte Plaza", - "[Ul'dah] Alchemists' Guild" - ], - "DataId": 1011675, - "Position": { - "X": -118.150635, - "Y": 40, - "Z": 96.29968 - }, - "TerritoryId": 131, - "InteractionType": "CompleteQuest" - } - ] + "DataId": 1011677, + "Position": { + "X": 363.54602, + "Y": 74.743355, + "Z": 171.12988 + }, + "TerritoryId": 140, + "InteractionType": "AcceptQuest" } - ] -} \ No newline at end of file + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Thaumaturges' Guild" + ], + "DataId": 1011681, + "Position": { + "X": -182.29956, + "Y": 18, + "Z": 56.90088 + }, + "TerritoryId": 130, + "InteractionType": "Interact" + }, + { + "DataId": 1003897, + "Position": { + "X": -195.45282, + "Y": 18, + "Z": 60.53247 + }, + "TerritoryId": 130, + "InteractionType": "Interact" + }, + { + "DataId": 1001294, + "Position": { + "X": -214.22144, + "Y": 18.5, + "Z": 72.129395 + }, + "TerritoryId": 130, + "InteractionType": "Interact" + }, + { + "DataId": 1001708, + "Position": { + "X": -250.3548, + "Y": 18, + "Z": 80.88806 + }, + "TerritoryId": 130, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1011682, + "Position": { + "X": -200.763, + "Y": 17.999998, + "Z": 59.189697 + }, + "TerritoryId": 130, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "AetheryteShortcut": "Western Thanalan - Horizon", + "DataId": 1011683, + "Position": { + "X": 76.8291, + "Y": 45, + "Z": -218.28033 + }, + "TerritoryId": 140, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "Mount": true, + "Position": { + "X": -345.65482, + "Y": 23, + "Z": -352.02484 + }, + "TerritoryId": 140, + "InteractionType": "WalkTo" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Alchemists' Guild" + ], + "DataId": 1011675, + "Position": { + "X": -118.150635, + "Y": 40, + "Z": 96.29968 + }, + "TerritoryId": 131, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/492_Beneath the Mask.json b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/492_Beneath the Mask.json index 58a4bc4d..2c07c416 100644 --- a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/492_Beneath the Mask.json +++ b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/492_Beneath the Mask.json @@ -1,131 +1,131 @@ { - "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "FalconTaterz", - "QuestSequence": [ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "FalconTaterz", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ { - "Sequence": 0, - "Steps": [ - { - "DataId": 1011691, - "Position": { - "X": 40.878906, - "Y": 33.999985, - "Z": 27.939209 - }, - "TerritoryId": 131, - "InteractionType": "AcceptQuest" - } - ] - }, - { - "Sequence": 1, - "Steps": [ - { - "DataId": 2005164, - "Position": { - "X": 43.07617, - "Y": 33.98181, - "Z": -13.962036 - }, - "TerritoryId": 131, - "InteractionType": "Interact" - } - ] - }, - { - "Sequence": 2, - "Steps": [ - { - "DataId": 2005165, - "Position": { - "X": 60.16626, - "Y": 33.98181, - "Z": -21.316895 - }, - "TerritoryId": 131, - "InteractionType": "Interact" - } - ] - }, - { - "Sequence": 3, - "Steps": [ - { - "DataId": 2005166, - "Position": { - "X": 74.96753, - "Y": 28.976807, - "Z": -29.007446 - }, - "TerritoryId": 131, - "InteractionType": "Interact" - } - ] - }, - { - "Sequence": 4, - "Steps": [ - { - "DataId": 1011697, - "Position": { - "X": 39.07837, - "Y": 33.999985, - "Z": 27.237305 - }, - "TerritoryId": 131, - "InteractionType": "Interact" - } - ] - }, - { - "Sequence": 5, - "Steps": [ - { - "DataId": 1011693, - "Position": { - "X": 39.444458, - "Y": 34, - "Z": 29.984009 - }, - "TerritoryId": 131, - "InteractionType": "Interact" - }, - { - "DataId": 1011694, - "Position": { - "X": 41.367188, - "Y": 33.999992, - "Z": 29.43457 - }, - "TerritoryId": 131, - "InteractionType": "Interact" - }, - { - "DataId": 1011695, - "Position": { - "X": 41.916504, - "Y": 33.999992, - "Z": 30.044922 - }, - "TerritoryId": 131, - "InteractionType": "Interact" - } - ] - }, - { - "Sequence": 255, - "Steps": [ - { - "DataId": 1011697, - "Position": { - "X": 39.07837, - "Y": 33.999985, - "Z": 27.237305 - }, - "TerritoryId": 131, - "InteractionType": "CompleteQuest" - } - ] + "DataId": 1011691, + "Position": { + "X": 40.878906, + "Y": 33.999985, + "Z": 27.939209 + }, + "TerritoryId": 131, + "InteractionType": "AcceptQuest" } - ] -} \ No newline at end of file + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2005164, + "Position": { + "X": 43.07617, + "Y": 33.98181, + "Z": -13.962036 + }, + "TerritoryId": 131, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2005165, + "Position": { + "X": 60.16626, + "Y": 33.98181, + "Z": -21.316895 + }, + "TerritoryId": 131, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2005166, + "Position": { + "X": 74.96753, + "Y": 28.976807, + "Z": -29.007446 + }, + "TerritoryId": 131, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1011697, + "Position": { + "X": 39.07837, + "Y": 33.999985, + "Z": 27.237305 + }, + "TerritoryId": 131, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1011693, + "Position": { + "X": 39.444458, + "Y": 34, + "Z": 29.984009 + }, + "TerritoryId": 131, + "InteractionType": "Interact" + }, + { + "DataId": 1011694, + "Position": { + "X": 41.367188, + "Y": 33.999992, + "Z": 29.43457 + }, + "TerritoryId": 131, + "InteractionType": "Interact" + }, + { + "DataId": 1011695, + "Position": { + "X": 41.916504, + "Y": 33.999992, + "Z": 30.044922 + }, + "TerritoryId": 131, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1011697, + "Position": { + "X": 39.07837, + "Y": 33.999985, + "Z": 27.237305 + }, + "TerritoryId": 131, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/493_Truths Untold.json b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/493_Truths Untold.json index ad2f92ca..d1ae76f6 100644 --- a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/493_Truths Untold.json +++ b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/493_Truths Untold.json @@ -1,89 +1,89 @@ { - "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "FalconTaterz", - "QuestSequence": [ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "FalconTaterz", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ { - "Sequence": 0, - "Steps": [ - { - "DataId": 1011699, - "Position": { - "X": 39.81079, - "Y": 34, - "Z": 30.22815 - }, - "TerritoryId": 131, - "InteractionType": "AcceptQuest" - } - ] - }, - { - "Sequence": 1, - "Steps": [ - { - "DataId": 1011707, - "Position": { - "X": 42.893066, - "Y": 33.99998, - "Z": 29.343018 - }, - "TerritoryId": 131, - "InteractionType": "Interact" - } - ] - }, - { - "Sequence": 2, - "Steps": [ - { - "AethernetShortcut": [ - "[Ul'dah] The Chamber of Rule", - "[Ul'dah] Sapphire Avenue Exchange" - ], - "DataId": 1001679, - "Position": { - "X": 140.48975, - "Y": 4.0099983, - "Z": -59.80017 - }, - "TerritoryId": 131, - "InteractionType": "Interact" - } - ] - }, - { - "Sequence": 3, - "Steps": [ - { - "AethernetShortcut": [ - "[Ul'dah] Sapphire Avenue Exchange", - "[Ul'dah] The Chamber of Rule" - ], - "DataId": 1011712, - "Position": { - "X": -43.86969, - "Y": 30.000008, - "Z": 7.8583374 - }, - "TerritoryId": 131, - "InteractionType": "Interact" - } - ] - }, - { - "Sequence": 255, - "Steps": [ - { - "DataId": 1011707, - "Position": { - "X": 42.893066, - "Y": 33.99998, - "Z": 29.343018 - }, - "TerritoryId": 131, - "InteractionType": "CompleteQuest" - } - ] + "DataId": 1011699, + "Position": { + "X": 39.81079, + "Y": 34, + "Z": 30.22815 + }, + "TerritoryId": 131, + "InteractionType": "AcceptQuest" } - ] -} \ No newline at end of file + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1011707, + "Position": { + "X": 42.893066, + "Y": 33.99998, + "Z": 29.343018 + }, + "TerritoryId": 131, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "AethernetShortcut": [ + "[Ul'dah] The Chamber of Rule", + "[Ul'dah] Sapphire Avenue Exchange" + ], + "DataId": 1001679, + "Position": { + "X": 140.48975, + "Y": 4.0099983, + "Z": -59.80017 + }, + "TerritoryId": 131, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "AethernetShortcut": [ + "[Ul'dah] Sapphire Avenue Exchange", + "[Ul'dah] The Chamber of Rule" + ], + "DataId": 1011712, + "Position": { + "X": -43.86969, + "Y": 30.000008, + "Z": 7.8583374 + }, + "TerritoryId": 131, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1011707, + "Position": { + "X": 42.893066, + "Y": 33.99998, + "Z": 29.343018 + }, + "TerritoryId": 131, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/502_Her Last Vow.json b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/502_Her Last Vow.json index 4f18857a..156313e1 100644 --- a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/502_Her Last Vow.json +++ b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/502_Her Last Vow.json @@ -1,104 +1,104 @@ { - "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "FalconTaterz", - "QuestSequence": [ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "FalconTaterz", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ { - "Sequence": 0, - "Steps": [ - { - "DataId": 1011707, - "Position": { - "X": 42.893066, - "Y": 33.99998, - "Z": 29.343018 - }, - "TerritoryId": 131, - "InteractionType": "AcceptQuest" - } - ] - }, - { - "Sequence": 1, - "Steps": [ - { - "AetheryteShortcut": "Central Thanalan - Black Brush Station", - "Mount": true, - "Fly": true, - "DataId": 1011714, - "Position": { - "X": -223.19379, - "Y": -3.7199955, - "Z": 52.32312 - }, - "TerritoryId": 141, - "InteractionType": "Interact" - } - ] - }, - { - "Sequence": 2, - "Steps": [ - { - "DataId": 2005188, - "Position": { - "X": -314.07648, - "Y": -1.083435, - "Z": 43.9917 - }, - "TerritoryId": 141, - "InteractionType": "Interact" - }, - { - "ChatMessage": { - "Key": "TEXT_CHRHDB505_00502_SAYTODO_000_000" - }, - "TerritoryId": 141, - "InteractionType": "Say" - } - ] - }, - { - "Sequence": 3, - "Steps": [ - { - "AetheryteShortcut": "South Shroud - Quarrymill", - "Mount": true, - "Fly": true, - "DataId": 1011722, - "Position": { - "X": 159.68555, - "Y": 37.432796, - "Z": 177.69128 - }, - "TerritoryId": 153, - "InteractionType": "Interact" - } - ] - }, - { - "Sequence": 4, - "Steps": [ - { - "TerritoryId": 153, - "InteractionType": "Duty", - "ContentFinderConditionId": 85 - } - ] - }, - { - "Sequence": 255, - "Steps": [ - { - "DataId": 1011723, - "Position": { - "X": 141.06958, - "Y": 29.64365, - "Z": 173.72388 - }, - "TerritoryId": 153, - "InteractionType": "CompleteQuest" - } - ] + "DataId": 1011707, + "Position": { + "X": 42.893066, + "Y": 33.99998, + "Z": 29.343018 + }, + "TerritoryId": 131, + "InteractionType": "AcceptQuest" } - ] -} \ No newline at end of file + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "AetheryteShortcut": "Central Thanalan - Black Brush Station", + "Mount": true, + "Fly": true, + "DataId": 1011714, + "Position": { + "X": -223.19379, + "Y": -3.7199955, + "Z": 52.32312 + }, + "TerritoryId": 141, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2005188, + "Position": { + "X": -314.07648, + "Y": -1.083435, + "Z": 43.9917 + }, + "TerritoryId": 141, + "InteractionType": "Interact" + }, + { + "ChatMessage": { + "Key": "TEXT_CHRHDB505_00502_SAYTODO_000_000" + }, + "TerritoryId": 141, + "InteractionType": "Say" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "AetheryteShortcut": "South Shroud - Quarrymill", + "Mount": true, + "Fly": true, + "DataId": 1011722, + "Position": { + "X": 159.68555, + "Y": 37.432796, + "Z": 177.69128 + }, + "TerritoryId": 153, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "TerritoryId": 153, + "InteractionType": "Duty", + "ContentFinderConditionId": 85 + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1011723, + "Position": { + "X": 141.06958, + "Y": 29.64365, + "Z": 173.72388 + }, + "TerritoryId": 153, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/MSQ-1/Ul'dah/3853_Heir Today, Gone Tomorrow.json b/QuestPaths/2.x - A Realm Reborn/MSQ-1/Ul'dah/3853_Heir Today, Gone Tomorrow.json index fd3d1dcd..14305617 100644 --- a/QuestPaths/2.x - A Realm Reborn/MSQ-1/Ul'dah/3853_Heir Today, Gone Tomorrow.json +++ b/QuestPaths/2.x - A Realm Reborn/MSQ-1/Ul'dah/3853_Heir Today, Gone Tomorrow.json @@ -17,25 +17,24 @@ } ] }, - - - { "Sequence": 1, "Steps": [ - { -"DataId": 353, -"Position": { - "X": 112.41321, - "Y": 28.93967, - "Z": -37.277832 -}, -"TerritoryId": 141, -"InteractionType": "Combat", -"EnemySpawnType": "OverworldEnemies", -"KillEnemyDataIds": [352,353] -}, + "DataId": 353, + "Position": { + "X": 112.41321, + "Y": 28.93967, + "Z": -37.277832 + }, + "TerritoryId": 141, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "KillEnemyDataIds": [ + 352, + 353 + ] + }, { "Position": { "X": 125.61467, diff --git a/QuestPaths/2.x - A Realm Reborn/MSQ-2/A0-Gridania to East Shroud/3856_We Come in Peace.json b/QuestPaths/2.x - A Realm Reborn/MSQ-2/A0-Gridania to East Shroud/3856_We Come in Peace.json index cc54a28b..a7fddd2e 100644 --- a/QuestPaths/2.x - A Realm Reborn/MSQ-2/A0-Gridania to East Shroud/3856_We Come in Peace.json +++ b/QuestPaths/2.x - A Realm Reborn/MSQ-2/A0-Gridania to East Shroud/3856_We Come in Peace.json @@ -1,6 +1,9 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": ["liza", "JerryWester"], + "Author": [ + "liza", + "JerryWester" + ], "QuestSequence": [ { "Sequence": 0, diff --git a/QuestPaths/2.x - A Realm Reborn/MSQ-2/C1-Coerthas Central Highlands, The Enterprise/956_With the Utmost Care.json b/QuestPaths/2.x - A Realm Reborn/MSQ-2/C1-Coerthas Central Highlands, The Enterprise/956_With the Utmost Care.json index 12c69c23..d88fe04c 100644 --- a/QuestPaths/2.x - A Realm Reborn/MSQ-2/C1-Coerthas Central Highlands, The Enterprise/956_With the Utmost Care.json +++ b/QuestPaths/2.x - A Realm Reborn/MSQ-2/C1-Coerthas Central Highlands, The Enterprise/956_With the Utmost Care.json @@ -27,7 +27,6 @@ "Sequence": 1, "Steps": [ { - "DataId": 2002327, "Position": { "X": 423.17834, diff --git a/QuestPaths/2.x - A Realm Reborn/MSQ-2/E1-2.1/1190_You Have Selected Regicide.json b/QuestPaths/2.x - A Realm Reborn/MSQ-2/E1-2.1/1190_You Have Selected Regicide.json index 60dec44a..bf6395ce 100644 --- a/QuestPaths/2.x - A Realm Reborn/MSQ-2/E1-2.1/1190_You Have Selected Regicide.json +++ b/QuestPaths/2.x - A Realm Reborn/MSQ-2/E1-2.1/1190_You Have Selected Regicide.json @@ -1,6 +1,9 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": ["JerryWester", "liza"], + "Author": [ + "JerryWester", + "liza" + ], "QuestSequence": [ { "Sequence": 0, diff --git a/QuestPaths/2.x - A Realm Reborn/Unlocks/Misc/1433_An Ill-conceived Venture (Limsa).json b/QuestPaths/2.x - A Realm Reborn/Unlocks/Misc/1433_An Ill-conceived Venture (Limsa).json index 409ae27d..f8038faf 100644 --- a/QuestPaths/2.x - A Realm Reborn/Unlocks/Misc/1433_An Ill-conceived Venture (Limsa).json +++ b/QuestPaths/2.x - A Realm Reborn/Unlocks/Misc/1433_An Ill-conceived Venture (Limsa).json @@ -1,70 +1,72 @@ { - "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "Cacahuetes", - "QuestSequence": [ - { - "Sequence": 0, - "Steps": [ - { - "DataId": 1005412, -"Position": { - "X": -108.14075, - "Y": 18.000334, - "Z": -0.22894287 -}, -"TerritoryId": 129, - "AetheryteShortcut": "Limsa Lominsa", - "InteractionType": "AcceptQuest", - "SkipConditions": { - "AetheryteShortcutIf": { - "InSameTerritory": true - } + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "Cacahuetes", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1005412, + "Position": { + "X": -108.14075, + "Y": 18.000334, + "Z": -0.22894287 + }, + "TerritoryId": 129, + "AetheryteShortcut": "Limsa Lominsa", + "InteractionType": "AcceptQuest", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true } } - ] - }, - { - "Sequence": 1, - "Steps": [ - { - "Position": { - "X": 248.49304, - "Y": -11.838913, - "Z": 97.45935 - }, - "TerritoryId": 138, - "InteractionType": "Combat", - "AetheryteShortcut": "Western La Noscea - Aleport", - "EnemySpawnType": "AutoOnEnterArea", - "KillEnemyDataIds": [ - 397 - ] + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": 248.49304, + "Y": -11.838913, + "Z": 97.45935 }, - {"DataId": 1005413, -"Position": { - "X": 248.49304, - "Y": -11.838913, - "Z": 97.45935 -}, -"TerritoryId": 138, -"InteractionType": "Interact"} - ] - }, - { - "Sequence": 255, - "Steps": [ - { - "DataId": 1003275, -"Position": { - "X": -147.1123, - "Y": 18.2, - "Z": 14.358704 -}, -"TerritoryId": 129, -"InteractionType": "CompleteQuest", - "AetheryteShortcut": "Limsa Lominsa" - } - ] - } - ] - } + "TerritoryId": 138, + "InteractionType": "Combat", + "AetheryteShortcut": "Western La Noscea - Aleport", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [ + 397 + ] + }, + { + "DataId": 1005413, + "Position": { + "X": 248.49304, + "Y": -11.838913, + "Z": 97.45935 + }, + "TerritoryId": 138, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1003275, + "Position": { + "X": -147.1123, + "Y": 18.2, + "Z": 14.358704 + }, + "TerritoryId": 129, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Limsa Lominsa" + } + ] + } + ] +} diff --git a/QuestPaths/3.x - Heavensward/Class Quests/MNK/2026_The Legend Continues.json b/QuestPaths/3.x - Heavensward/Class Quests/MNK/2026_The Legend Continues.json index c65033bc..aacbeb62 100644 --- a/QuestPaths/3.x - Heavensward/Class Quests/MNK/2026_The Legend Continues.json +++ b/QuestPaths/3.x - Heavensward/Class Quests/MNK/2026_The Legend Continues.json @@ -21,7 +21,10 @@ ], "SkipConditions": { "AetheryteShortcutIf": { - "InTerritory": [130, 131] + "InTerritory": [ + 130, + 131 + ] }, "AethernetShortcutIf": { "InSameTerritory": true @@ -76,7 +79,9 @@ "TerritoryId": 156, "InteractionType": "Combat", "EnemySpawnType": "AfterInteraction", - "KillEnemyDataIds": [777], + "KillEnemyDataIds": [ + 777 + ], "Fly": true } ] @@ -109,7 +114,9 @@ "TerritoryId": 156, "InteractionType": "Combat", "EnemySpawnType": "AfterInteraction", - "KillEnemyDataIds": [4615], + "KillEnemyDataIds": [ + 4615 + ], "Fly": true } ] diff --git a/QuestPaths/3.x - Heavensward/Class Quests/MNK/2027_Let's Talk about Sects.json b/QuestPaths/3.x - Heavensward/Class Quests/MNK/2027_Let's Talk about Sects.json index 79357b67..06cd8ffb 100644 --- a/QuestPaths/3.x - Heavensward/Class Quests/MNK/2027_Let's Talk about Sects.json +++ b/QuestPaths/3.x - Heavensward/Class Quests/MNK/2027_Let's Talk about Sects.json @@ -76,7 +76,9 @@ "TerritoryId": 156, "InteractionType": "Combat", "EnemySpawnType": "AutoOnEnterArea", - "KillEnemyDataIds": [5047] + "KillEnemyDataIds": [ + 5047 + ] } ] }, @@ -117,7 +119,9 @@ "TerritoryId": 156, "InteractionType": "Combat", "EnemySpawnType": "AutoOnEnterArea", - "KillEnemyDataIds": [5047] + "KillEnemyDataIds": [ + 5047 + ] } ] }, @@ -158,7 +162,9 @@ "TerritoryId": 156, "InteractionType": "Combat", "EnemySpawnType": "AutoOnEnterArea", - "KillEnemyDataIds": [5043] + "KillEnemyDataIds": [ + 5043 + ] } ] }, diff --git a/QuestPaths/3.x - Heavensward/Class Quests/MNK/2029_Fight the Battle to Win.json b/QuestPaths/3.x - Heavensward/Class Quests/MNK/2029_Fight the Battle to Win.json index 521faefa..e34d7d8a 100644 --- a/QuestPaths/3.x - Heavensward/Class Quests/MNK/2029_Fight the Battle to Win.json +++ b/QuestPaths/3.x - Heavensward/Class Quests/MNK/2029_Fight the Battle to Win.json @@ -53,7 +53,9 @@ "TerritoryId": 154, "InteractionType": "Combat", "EnemySpawnType": "AfterInteraction", - "KillEnemyDataIds": [5043], + "KillEnemyDataIds": [ + 5043 + ], "Fly": true } ] diff --git a/QuestPaths/3.x - Heavensward/Class Quests/MNK/2030_Stop the Senseless Killing.json b/QuestPaths/3.x - Heavensward/Class Quests/MNK/2030_Stop the Senseless Killing.json index 38585e24..178c6859 100644 --- a/QuestPaths/3.x - Heavensward/Class Quests/MNK/2030_Stop the Senseless Killing.json +++ b/QuestPaths/3.x - Heavensward/Class Quests/MNK/2030_Stop the Senseless Killing.json @@ -63,7 +63,9 @@ "TerritoryId": 397, "InteractionType": "Combat", "EnemySpawnType": "AfterInteraction", - "KillEnemyDataIds": [4627], + "KillEnemyDataIds": [ + 4627 + ], "Fly": true } ] diff --git a/QuestPaths/3.x - Heavensward/Class Quests/WHM/1719_Taint Misbehaving.json b/QuestPaths/3.x - Heavensward/Class Quests/WHM/1719_Taint Misbehaving.json index 7843c2cf..d755cd05 100644 --- a/QuestPaths/3.x - Heavensward/Class Quests/WHM/1719_Taint Misbehaving.json +++ b/QuestPaths/3.x - Heavensward/Class Quests/WHM/1719_Taint Misbehaving.json @@ -158,7 +158,9 @@ "TerritoryId": 154, "InteractionType": "Combat", "EnemySpawnType": "AutoOnEnterArea", - "KillEnemyDataIds": [4683], + "KillEnemyDataIds": [ + 4683 + ], "CompletionQuestVariablesFlags": [ 2, null, diff --git a/QuestPaths/3.x - Heavensward/Class Quests/WHM/1722_The Dark Blight Writhes.json b/QuestPaths/3.x - Heavensward/Class Quests/WHM/1722_The Dark Blight Writhes.json index 8cc13327..cc6a8f04 100644 --- a/QuestPaths/3.x - Heavensward/Class Quests/WHM/1722_The Dark Blight Writhes.json +++ b/QuestPaths/3.x - Heavensward/Class Quests/WHM/1722_The Dark Blight Writhes.json @@ -69,7 +69,9 @@ "TerritoryId": 397, "InteractionType": "Combat", "EnemySpawnType": "AutoOnEnterArea", - "KillEnemyDataIds": [4690], + "KillEnemyDataIds": [ + 4690 + ], "Fly": true, "CompletionQuestVariablesFlags": [ 4, diff --git a/QuestPaths/3.x - Heavensward/Class Quests/WHM/1723_In the Wake of Death.json b/QuestPaths/3.x - Heavensward/Class Quests/WHM/1723_In the Wake of Death.json index d96e1d70..a278beb4 100644 --- a/QuestPaths/3.x - Heavensward/Class Quests/WHM/1723_In the Wake of Death.json +++ b/QuestPaths/3.x - Heavensward/Class Quests/WHM/1723_In the Wake of Death.json @@ -51,7 +51,10 @@ "TerritoryId": 398, "InteractionType": "Combat", "EnemySpawnType": "AutoOnEnterArea", - "KillEnemyDataIds": [4691, 4692], + "KillEnemyDataIds": [ + 4691, + 4692 + ], "Fly": true, "CompletionQuestVariablesFlags": [ 4, @@ -103,7 +106,10 @@ "TerritoryId": 398, "InteractionType": "Combat", "EnemySpawnType": "AutoOnEnterArea", - "KillEnemyDataIds": [4690, 4691] + "KillEnemyDataIds": [ + 4690, + 4691 + ] }, { "DataId": 2005861, diff --git a/QuestPaths/4.x - Stormblood/Alliance Raid Quests/3090_My Power, My Pleasure, My Pain.json b/QuestPaths/4.x - Stormblood/Alliance Raid Quests/3090_My Power, My Pleasure, My Pain.json index b3af8ca8..165c36a0 100644 --- a/QuestPaths/4.x - Stormblood/Alliance Raid Quests/3090_My Power, My Pleasure, My Pain.json +++ b/QuestPaths/4.x - Stormblood/Alliance Raid Quests/3090_My Power, My Pleasure, My Pain.json @@ -174,7 +174,6 @@ "Sequence": 10, "Steps": [ { - "DataId": 1006273, "Position": { "X": 619.0126, diff --git a/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Dailies/3051_Criminal Crossings.json b/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Dailies/3051_Criminal Crossings.json index e4901bb9..e6b6823c 100644 --- a/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Dailies/3051_Criminal Crossings.json +++ b/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Dailies/3051_Criminal Crossings.json @@ -36,7 +36,17 @@ }, "TerritoryId": 612, "InteractionType": "Interact", - "RequiredQuestVariables": [null, null, null, [2, 4], null, null], + "RequiredQuestVariables": [ + null, + null, + null, + [ + 2, + 4 + ], + null, + null + ], "Fly": true, "DialogueChoices": [ { @@ -55,7 +65,18 @@ }, "TerritoryId": 612, "InteractionType": "Combat", - "RequiredQuestVariables": [null, null, null, [1, 3, 5], null, null], + "RequiredQuestVariables": [ + null, + null, + null, + [ + 1, + 3, + 5 + ], + null, + null + ], "Fly": true, "DialogueChoices": [ { @@ -65,7 +86,9 @@ } ], "EnemySpawnType": "AfterInteraction", - "KillEnemyDataIds": [8587] + "KillEnemyDataIds": [ + 8587 + ] }, { "DataId": 1025119, @@ -76,7 +99,18 @@ }, "TerritoryId": 612, "InteractionType": "Interact", - "RequiredQuestVariables": [null, null, null, [1, 2, 5], null, null], + "RequiredQuestVariables": [ + null, + null, + null, + [ + 1, + 2, + 5 + ], + null, + null + ], "Fly": true, "DialogueChoices": [ { @@ -95,7 +129,17 @@ }, "TerritoryId": 612, "InteractionType": "Combat", - "RequiredQuestVariables": [null, null, null, [3, 4], null, null], + "RequiredQuestVariables": [ + null, + null, + null, + [ + 3, + 4 + ], + null, + null + ], "Fly": true, "DialogueChoices": [ { @@ -105,7 +149,9 @@ } ], "EnemySpawnType": "AfterInteraction", - "KillEnemyDataIds": [8586] + "KillEnemyDataIds": [ + 8586 + ] }, { "DataId": 1025060, @@ -116,7 +162,17 @@ }, "TerritoryId": 612, "InteractionType": "Combat", - "RequiredQuestVariables": [null, null, null, [2, 4], null, null], + "RequiredQuestVariables": [ + null, + null, + null, + [ + 2, + 4 + ], + null, + null + ], "Fly": true, "DialogueChoices": [ { @@ -126,7 +182,9 @@ } ], "EnemySpawnType": "AfterInteraction", - "KillEnemyDataIds": [8585] + "KillEnemyDataIds": [ + 8585 + ] }, { "DataId": 1025118, @@ -137,7 +195,18 @@ }, "TerritoryId": 612, "InteractionType": "Interact", - "RequiredQuestVariables": [null, null, null, [1, 3, 5], null, null], + "RequiredQuestVariables": [ + null, + null, + null, + [ + 1, + 3, + 5 + ], + null, + null + ], "Fly": true, "DialogueChoices": [ { diff --git a/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Dailies/3053_Sparring Lesson.json b/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Dailies/3053_Sparring Lesson.json index 6ce1349f..5d4ae762 100644 --- a/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Dailies/3053_Sparring Lesson.json +++ b/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Dailies/3053_Sparring Lesson.json @@ -31,7 +31,9 @@ "TerritoryId": 612, "InteractionType": "Combat", "EnemySpawnType": "AfterInteraction", - "KillEnemyDataIds": [8588], + "KillEnemyDataIds": [ + 8588 + ], "Fly": true } ] diff --git a/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Dailies/3054_Funnel and Games.json b/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Dailies/3054_Funnel and Games.json index abb37aa1..50faf77f 100644 --- a/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Dailies/3054_Funnel and Games.json +++ b/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Dailies/3054_Funnel and Games.json @@ -30,10 +30,21 @@ "TerritoryId": 612, "InteractionType": "Combat", "EnemySpawnType": "OverworldEnemies", - "KillEnemyDataIds": [8589], + "KillEnemyDataIds": [ + 8589 + ], "Fly": true, "Land": true, - "RequiredQuestVariables": [null, null, [16], null, null, null], + "RequiredQuestVariables": [ + null, + null, + [ + 16 + ], + null, + null, + null + ], "CombatDelaySecondsAtStart": 1 }, { @@ -45,10 +56,21 @@ "TerritoryId": 612, "InteractionType": "Combat", "EnemySpawnType": "OverworldEnemies", - "KillEnemyDataIds": [8589], + "KillEnemyDataIds": [ + 8589 + ], "Fly": true, "Land": true, - "RequiredQuestVariables": [null, null, [32], null, null, null], + "RequiredQuestVariables": [ + null, + null, + [ + 32 + ], + null, + null, + null + ], "CombatDelaySecondsAtStart": 1 }, { @@ -60,10 +82,21 @@ "TerritoryId": 612, "InteractionType": "Combat", "EnemySpawnType": "OverworldEnemies", - "KillEnemyDataIds": [8589], + "KillEnemyDataIds": [ + 8589 + ], "Fly": true, "Land": true, - "RequiredQuestVariables": [null, null, [48], null, null, null], + "RequiredQuestVariables": [ + null, + null, + [ + 48 + ], + null, + null, + null + ], "CombatDelaySecondsAtStart": 1 } ] diff --git a/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Dailies/3059_The Antlion's Share.json b/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Dailies/3059_The Antlion's Share.json index d28107ac..ee2a7741 100644 --- a/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Dailies/3059_The Antlion's Share.json +++ b/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Dailies/3059_The Antlion's Share.json @@ -49,7 +49,9 @@ "TerritoryId": 612, "InteractionType": "Combat", "EnemySpawnType": "AfterInteraction", - "KillEnemyDataIds": [8592] + "KillEnemyDataIds": [ + 8592 + ] } ] }, 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 2ff0c260..48f32de4 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 @@ -22,7 +22,6 @@ { "Sequence": 1, "Steps": [ - ] }, { diff --git a/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Dailies/3069_Catching and Fletching.md b/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Dailies/3069_Catching and Fletching.md index 989bda00..d701d087 100644 --- a/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Dailies/3069_Catching and Fletching.md +++ b/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Dailies/3069_Catching and Fletching.md @@ -1,3 +1,3 @@ 0 0 x 0 0 0 2009375 2009376 2009377 - 1 | x x - 2 | x x +1 | x x +2 | x x diff --git a/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Story/3039_It Can Be Cruel Sometimes.json b/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Story/3039_It Can Be Cruel Sometimes.json index 4f27aeba..e1958ab9 100644 --- a/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Story/3039_It Can Be Cruel Sometimes.json +++ b/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Story/3039_It Can Be Cruel Sometimes.json @@ -117,7 +117,9 @@ "TerritoryId": 612, "InteractionType": "Combat", "EnemySpawnType": "AutoOnEnterArea", - "KillEnemyDataIds": [8577], + "KillEnemyDataIds": [ + 8577 + ], "Fly": true, "Land": true, "AetheryteShortcut": "Fringes - Castrum Oriens" diff --git a/QuestPaths/4.x - Stormblood/Class Quests/MNK/2426_A Fistful of Resolve.json b/QuestPaths/4.x - Stormblood/Class Quests/MNK/2426_A Fistful of Resolve.json index 98b71b8b..262b5ec4 100644 --- a/QuestPaths/4.x - Stormblood/Class Quests/MNK/2426_A Fistful of Resolve.json +++ b/QuestPaths/4.x - Stormblood/Class Quests/MNK/2426_A Fistful of Resolve.json @@ -24,7 +24,10 @@ "InSameTerritory": true }, "AetheryteShortcutIf": { - "InTerritory": [130, 131] + "InTerritory": [ + 130, + 131 + ] } } } diff --git a/QuestPaths/4.x - Stormblood/Class Quests/MNK/2428_Cross-fist Training.json b/QuestPaths/4.x - Stormblood/Class Quests/MNK/2428_Cross-fist Training.json index 5adc1fae..75a2a8d1 100644 --- a/QuestPaths/4.x - Stormblood/Class Quests/MNK/2428_Cross-fist Training.json +++ b/QuestPaths/4.x - Stormblood/Class Quests/MNK/2428_Cross-fist Training.json @@ -100,7 +100,9 @@ "TerritoryId": 612, "InteractionType": "Combat", "EnemySpawnType": "AutoOnEnterArea", - "KillEnemyDataIds": [7217], + "KillEnemyDataIds": [ + 7217 + ], "CombatDelaySecondsAtStart": 0, "Mount": false }, diff --git a/QuestPaths/4.x - Stormblood/Class Quests/WHM/2415_An Aura for Trouble.json b/QuestPaths/4.x - Stormblood/Class Quests/WHM/2415_An Aura for Trouble.json index ce6f9b65..1e0614ff 100644 --- a/QuestPaths/4.x - Stormblood/Class Quests/WHM/2415_An Aura for Trouble.json +++ b/QuestPaths/4.x - Stormblood/Class Quests/WHM/2415_An Aura for Trouble.json @@ -52,7 +52,9 @@ "TerritoryId": 612, "InteractionType": "Combat", "EnemySpawnType": "AutoOnEnterArea", - "KillEnemyDataIds": [7214], + "KillEnemyDataIds": [ + 7214 + ], "Fly": true }, { diff --git a/QuestPaths/4.x - Stormblood/Class Quests/WHM/2417_The Problem with Padjals.json b/QuestPaths/4.x - Stormblood/Class Quests/WHM/2417_The Problem with Padjals.json index b34f17f2..42ca1d5a 100644 --- a/QuestPaths/4.x - Stormblood/Class Quests/WHM/2417_The Problem with Padjals.json +++ b/QuestPaths/4.x - Stormblood/Class Quests/WHM/2417_The Problem with Padjals.json @@ -51,7 +51,9 @@ "TerritoryId": 612, "InteractionType": "Combat", "EnemySpawnType": "AutoOnEnterArea", - "KillEnemyDataIds": [7215], + "KillEnemyDataIds": [ + 7215 + ], "AetheryteShortcut": "Fringes - Castrum Oriens", "Fly": true }, diff --git a/QuestPaths/4.x - Stormblood/Class Quests/WHM/2418_What She Always Wanted.json b/QuestPaths/4.x - Stormblood/Class Quests/WHM/2418_What She Always Wanted.json index eec344e8..6d49d91a 100644 --- a/QuestPaths/4.x - Stormblood/Class Quests/WHM/2418_What She Always Wanted.json +++ b/QuestPaths/4.x - Stormblood/Class Quests/WHM/2418_What She Always Wanted.json @@ -99,7 +99,9 @@ "TerritoryId": 612, "InteractionType": "Combat", "EnemySpawnType": "AutoOnEnterArea", - "KillEnemyDataIds": [7216], + "KillEnemyDataIds": [ + 7216 + ], "Fly": true } ] diff --git a/QuestPaths/4.x - Stormblood/MSQ/A3.1-Ruby Sea/2486_In Darkness the Magatama Dreams.json b/QuestPaths/4.x - Stormblood/MSQ/A3.1-Ruby Sea/2486_In Darkness the Magatama Dreams.json index a3179dd5..ed55fbaa 100644 --- a/QuestPaths/4.x - Stormblood/MSQ/A3.1-Ruby Sea/2486_In Darkness the Magatama Dreams.json +++ b/QuestPaths/4.x - Stormblood/MSQ/A3.1-Ruby Sea/2486_In Darkness the Magatama Dreams.json @@ -20,25 +20,25 @@ { "Sequence": 1, "Steps": [ - { - "DataId": 1023280, - "Position": { - "X": -62.790894, - "Y": -198.96509, - "Z": -64.34735 - }, - "TerritoryId": 613, - "InteractionType": "AcceptQuest", - "PickUpQuestId": 2632, - "DialogueChoices": [ - { - "ExcelSheet": "quest/026/StmBdy001_02632", - "Type": "List", - "Prompt": "TEXT_STMBDY001_02632_Q1_000_050", - "Answer": "TEXT_STMBDY001_02632_A1_000_051" - } - ] + { + "DataId": 1023280, + "Position": { + "X": -62.790894, + "Y": -198.96509, + "Z": -64.34735 }, + "TerritoryId": 613, + "InteractionType": "AcceptQuest", + "PickUpQuestId": 2632, + "DialogueChoices": [ + { + "ExcelSheet": "quest/026/StmBdy001_02632", + "Type": "List", + "Prompt": "TEXT_STMBDY001_02632_Q1_000_050", + "Answer": "TEXT_STMBDY001_02632_A1_000_051" + } + ] + }, { "Position": { "X": 21.067955, diff --git a/QuestPaths/4.x - Stormblood/MSQ/A6.2-Peaks 2/2536_Hells Open.json b/QuestPaths/4.x - Stormblood/MSQ/A6.2-Peaks 2/2536_Hells Open.json index 4a38f239..b619887a 100644 --- a/QuestPaths/4.x - Stormblood/MSQ/A6.2-Peaks 2/2536_Hells Open.json +++ b/QuestPaths/4.x - Stormblood/MSQ/A6.2-Peaks 2/2536_Hells Open.json @@ -1,6 +1,9 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": ["JerryWester", "ewlame"], + "Author": [ + "JerryWester", + "ewlame" + ], "QuestSequence": [ { "Sequence": 0, diff --git a/QuestPaths/4.x - Stormblood/Trial Quests/3152_The Fire-bird Down Below.json b/QuestPaths/4.x - Stormblood/Trial Quests/3152_The Fire-bird Down Below.json index efe4807b..a623aa64 100644 --- a/QuestPaths/4.x - Stormblood/Trial Quests/3152_The Fire-bird Down Below.json +++ b/QuestPaths/4.x - Stormblood/Trial Quests/3152_The Fire-bird Down Below.json @@ -18,7 +18,7 @@ ] }, { - "Sequence":1, + "Sequence": 1, "Steps": [ { "DataId": 1025137, 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 d73c93ee..24aad0b4 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 @@ -30,8 +30,6 @@ { "Sequence": 1, "Steps": [ - - ] }, { 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 d73c93ee..24aad0b4 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 @@ -30,8 +30,6 @@ { "Sequence": 1, "Steps": [ - - ] }, { diff --git a/QuestPaths/5.x - Shadowbringers/Allied Societies/Dwarves/Dailies/3909_How Do You Do, Fellow Dwarves.json b/QuestPaths/5.x - Shadowbringers/Allied Societies/Dwarves/Dailies/3909_How Do You Do, Fellow Dwarves.json index d73c93ee..24aad0b4 100644 --- a/QuestPaths/5.x - Shadowbringers/Allied Societies/Dwarves/Dailies/3909_How Do You Do, Fellow Dwarves.json +++ b/QuestPaths/5.x - Shadowbringers/Allied Societies/Dwarves/Dailies/3909_How Do You Do, Fellow Dwarves.json @@ -30,8 +30,6 @@ { "Sequence": 1, "Steps": [ - - ] }, { diff --git a/QuestPaths/5.x - Shadowbringers/Allied Societies/Dwarves/Dailies/3910_Wood for What Ales You.json b/QuestPaths/5.x - Shadowbringers/Allied Societies/Dwarves/Dailies/3910_Wood for What Ales You.json index d73c93ee..24aad0b4 100644 --- a/QuestPaths/5.x - Shadowbringers/Allied Societies/Dwarves/Dailies/3910_Wood for What Ales You.json +++ b/QuestPaths/5.x - Shadowbringers/Allied Societies/Dwarves/Dailies/3910_Wood for What Ales You.json @@ -30,8 +30,6 @@ { "Sequence": 1, "Steps": [ - - ] }, { diff --git a/QuestPaths/5.x - Shadowbringers/Allied Societies/Dwarves/Dailies/3911_The Heart of Tankiness.json b/QuestPaths/5.x - Shadowbringers/Allied Societies/Dwarves/Dailies/3911_The Heart of Tankiness.json index d73c93ee..24aad0b4 100644 --- a/QuestPaths/5.x - Shadowbringers/Allied Societies/Dwarves/Dailies/3911_The Heart of Tankiness.json +++ b/QuestPaths/5.x - Shadowbringers/Allied Societies/Dwarves/Dailies/3911_The Heart of Tankiness.json @@ -30,8 +30,6 @@ { "Sequence": 1, "Steps": [ - - ] }, { diff --git a/QuestPaths/5.x - Shadowbringers/Allied Societies/Dwarves/Dailies/3912_Boom and Dust.json b/QuestPaths/5.x - Shadowbringers/Allied Societies/Dwarves/Dailies/3912_Boom and Dust.json index d73c93ee..24aad0b4 100644 --- a/QuestPaths/5.x - Shadowbringers/Allied Societies/Dwarves/Dailies/3912_Boom and Dust.json +++ b/QuestPaths/5.x - Shadowbringers/Allied Societies/Dwarves/Dailies/3912_Boom and Dust.json @@ -30,8 +30,6 @@ { "Sequence": 1, "Steps": [ - - ] }, { diff --git a/QuestPaths/5.x - Shadowbringers/Allied Societies/Dwarves/Dailies/3913_One Hundred Tankards of Solitude.json b/QuestPaths/5.x - Shadowbringers/Allied Societies/Dwarves/Dailies/3913_One Hundred Tankards of Solitude.json index d73c93ee..24aad0b4 100644 --- a/QuestPaths/5.x - Shadowbringers/Allied Societies/Dwarves/Dailies/3913_One Hundred Tankards of Solitude.json +++ b/QuestPaths/5.x - Shadowbringers/Allied Societies/Dwarves/Dailies/3913_One Hundred Tankards of Solitude.json @@ -30,8 +30,6 @@ { "Sequence": 1, "Steps": [ - - ] }, { diff --git a/QuestPaths/5.x - Shadowbringers/Allied Societies/Dwarves/Dailies/3914_Cooler Tanks Prevail.json b/QuestPaths/5.x - Shadowbringers/Allied Societies/Dwarves/Dailies/3914_Cooler Tanks Prevail.json index d73c93ee..24aad0b4 100644 --- a/QuestPaths/5.x - Shadowbringers/Allied Societies/Dwarves/Dailies/3914_Cooler Tanks Prevail.json +++ b/QuestPaths/5.x - Shadowbringers/Allied Societies/Dwarves/Dailies/3914_Cooler Tanks Prevail.json @@ -30,8 +30,6 @@ { "Sequence": 1, "Steps": [ - - ] }, { diff --git a/QuestPaths/5.x - Shadowbringers/Allied Societies/Dwarves/Dailies/3918_Sealing the Deal.json b/QuestPaths/5.x - Shadowbringers/Allied Societies/Dwarves/Dailies/3918_Sealing the Deal.json index d73c93ee..24aad0b4 100644 --- a/QuestPaths/5.x - Shadowbringers/Allied Societies/Dwarves/Dailies/3918_Sealing the Deal.json +++ b/QuestPaths/5.x - Shadowbringers/Allied Societies/Dwarves/Dailies/3918_Sealing the Deal.json @@ -30,8 +30,6 @@ { "Sequence": 1, "Steps": [ - - ] }, { diff --git a/QuestPaths/5.x - Shadowbringers/Allied Societies/Dwarves/Dailies/3919_Spreading the Word.json b/QuestPaths/5.x - Shadowbringers/Allied Societies/Dwarves/Dailies/3919_Spreading the Word.json index d73c93ee..24aad0b4 100644 --- a/QuestPaths/5.x - Shadowbringers/Allied Societies/Dwarves/Dailies/3919_Spreading the Word.json +++ b/QuestPaths/5.x - Shadowbringers/Allied Societies/Dwarves/Dailies/3919_Spreading the Word.json @@ -30,8 +30,6 @@ { "Sequence": 1, "Steps": [ - - ] }, { 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 d73c93ee..24aad0b4 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 @@ -30,8 +30,6 @@ { "Sequence": 1, "Steps": [ - - ] }, { 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 d73c93ee..24aad0b4 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 @@ -30,8 +30,6 @@ { "Sequence": 1, "Steps": [ - - ] }, { diff --git a/QuestPaths/5.x - Shadowbringers/Allied Societies/Dwarves/Dailies/3924_A Crude Awakening.json b/QuestPaths/5.x - Shadowbringers/Allied Societies/Dwarves/Dailies/3924_A Crude Awakening.json index 6831c8ea..53df293d 100644 --- a/QuestPaths/5.x - Shadowbringers/Allied Societies/Dwarves/Dailies/3924_A Crude Awakening.json +++ b/QuestPaths/5.x - Shadowbringers/Allied Societies/Dwarves/Dailies/3924_A Crude Awakening.json @@ -39,7 +39,6 @@ "TerritoryId": 813, "InteractionType": "Interact" } - ] }, { diff --git a/QuestPaths/5.x - Shadowbringers/Allied Societies/Dwarves/Dailies/3929_Substitute Tester.json b/QuestPaths/5.x - Shadowbringers/Allied Societies/Dwarves/Dailies/3929_Substitute Tester.json index d73c93ee..24aad0b4 100644 --- a/QuestPaths/5.x - Shadowbringers/Allied Societies/Dwarves/Dailies/3929_Substitute Tester.json +++ b/QuestPaths/5.x - Shadowbringers/Allied Societies/Dwarves/Dailies/3929_Substitute Tester.json @@ -30,8 +30,6 @@ { "Sequence": 1, "Steps": [ - - ] }, { diff --git a/QuestPaths/5.x - Shadowbringers/Allied Societies/Pixies/Dailies/3691_Sharing Is Caring.md b/QuestPaths/5.x - Shadowbringers/Allied Societies/Pixies/Dailies/3691_Sharing Is Caring.md index b265144d..b3a5b92a 100644 --- a/QuestPaths/5.x - Shadowbringers/Allied Societies/Pixies/Dailies/3691_Sharing Is Caring.md +++ b/QuestPaths/5.x - Shadowbringers/Allied Societies/Pixies/Dailies/3691_Sharing Is Caring.md @@ -1,6 +1,7 @@ ## Sharing is Caring QuestWork: + ``` 0 0 0 x 0 0 1 → 1032140 diff --git a/QuestPaths/5.x - Shadowbringers/Allied Societies/Pixies/Dailies/3692_The Aesthetician of Il Mheg.md b/QuestPaths/5.x - Shadowbringers/Allied Societies/Pixies/Dailies/3692_The Aesthetician of Il Mheg.md index 5192727e..d699509d 100644 --- a/QuestPaths/5.x - Shadowbringers/Allied Societies/Pixies/Dailies/3692_The Aesthetician of Il Mheg.md +++ b/QuestPaths/5.x - Shadowbringers/Allied Societies/Pixies/Dailies/3692_The Aesthetician of Il Mheg.md @@ -1,6 +1,7 @@ ## The Aesthetician of Il Mheg QuestWork: + ``` 0 x 0 0 0 0 | QW after first 1 → 2010860 2010863 | 1 18 0 0 0 128 diff --git a/QuestPaths/5.x - Shadowbringers/Allied Societies/Pixies/Dailies/3694_I Dream of Shinies.json b/QuestPaths/5.x - Shadowbringers/Allied Societies/Pixies/Dailies/3694_I Dream of Shinies.json index 39d0bba5..942f83aa 100644 --- a/QuestPaths/5.x - Shadowbringers/Allied Societies/Pixies/Dailies/3694_I Dream of Shinies.json +++ b/QuestPaths/5.x - Shadowbringers/Allied Societies/Pixies/Dailies/3694_I Dream of Shinies.json @@ -55,7 +55,9 @@ null, null, null, - [1], + [ + 1 + ], null, null ] @@ -74,7 +76,9 @@ null, null, null, - [2], + [ + 2 + ], null, null ] @@ -93,7 +97,9 @@ null, null, null, - [3], + [ + 3 + ], null, null ] diff --git a/QuestPaths/5.x - Shadowbringers/Allied Societies/Pixies/Dailies/3698_Porxine Perfection.md b/QuestPaths/5.x - Shadowbringers/Allied Societies/Pixies/Dailies/3698_Porxine Perfection.md index 60f64cd9..11a80286 100644 --- a/QuestPaths/5.x - Shadowbringers/Allied Societies/Pixies/Dailies/3698_Porxine Perfection.md +++ b/QuestPaths/5.x - Shadowbringers/Allied Societies/Pixies/Dailies/3698_Porxine Perfection.md @@ -1,6 +1,7 @@ ## Porxine Perfection QuestWork: + ``` 0 0 xx 0 0 0 16 → 2010891 2010892 diff --git a/QuestPaths/5.x - Shadowbringers/Allied Societies/Pixies/Dailies/3699_The Big Sleep.json b/QuestPaths/5.x - Shadowbringers/Allied Societies/Pixies/Dailies/3699_The Big Sleep.json index 0598b925..4afb31d4 100644 --- a/QuestPaths/5.x - Shadowbringers/Allied Societies/Pixies/Dailies/3699_The Big Sleep.json +++ b/QuestPaths/5.x - Shadowbringers/Allied Societies/Pixies/Dailies/3699_The Big Sleep.json @@ -34,7 +34,9 @@ "RequiredQuestVariables": [ null, null, - [16], + [ + 16 + ], null, null, null @@ -53,7 +55,9 @@ "RequiredQuestVariables": [ null, null, - [32], + [ + 32 + ], null, null, null @@ -72,7 +76,9 @@ "RequiredQuestVariables": [ null, null, - [48], + [ + 48 + ], null, null, null diff --git a/QuestPaths/5.x - Shadowbringers/Allied Societies/Pixies/Dailies/3701_Amazing Graze.md b/QuestPaths/5.x - Shadowbringers/Allied Societies/Pixies/Dailies/3701_Amazing Graze.md index e17235aa..8c708cbf 100644 --- a/QuestPaths/5.x - Shadowbringers/Allied Societies/Pixies/Dailies/3701_Amazing Graze.md +++ b/QuestPaths/5.x - Shadowbringers/Allied Societies/Pixies/Dailies/3701_Amazing Graze.md @@ -1,6 +1,7 @@ ## Amazing Graze Sequence 2: + ``` 0 x 0 0 0 0 1 → 2010896 2010897 diff --git a/QuestPaths/5.x - Shadowbringers/Allied Societies/Pixies/Dailies/3702_Pure Imagination.json b/QuestPaths/5.x - Shadowbringers/Allied Societies/Pixies/Dailies/3702_Pure Imagination.json index 3ecf56b4..5c158143 100644 --- a/QuestPaths/5.x - Shadowbringers/Allied Societies/Pixies/Dailies/3702_Pure Imagination.json +++ b/QuestPaths/5.x - Shadowbringers/Allied Societies/Pixies/Dailies/3702_Pure Imagination.json @@ -34,7 +34,9 @@ null, null, null, - [2], + [ + 2 + ], null, null ] @@ -53,7 +55,9 @@ null, null, null, - [1], + [ + 1 + ], null, null ] @@ -72,7 +76,9 @@ null, null, null, - [3], + [ + 3 + ], null, null ] diff --git a/QuestPaths/5.x - Shadowbringers/Allied Societies/Pixies/Dailies/3702_Pure Imagination.md b/QuestPaths/5.x - Shadowbringers/Allied Societies/Pixies/Dailies/3702_Pure Imagination.md index d524188b..5245b240 100644 --- a/QuestPaths/5.x - Shadowbringers/Allied Societies/Pixies/Dailies/3702_Pure Imagination.md +++ b/QuestPaths/5.x - Shadowbringers/Allied Societies/Pixies/Dailies/3702_Pure Imagination.md @@ -1,6 +1,7 @@ ## Pure Imagination QuestWork: + ``` 0 0 0 x 0 0 1 → 2010899 diff --git a/QuestPaths/5.x - Shadowbringers/Allied Societies/Pixies/Dailies/3703_Raiders of the Lost Pork.md b/QuestPaths/5.x - Shadowbringers/Allied Societies/Pixies/Dailies/3703_Raiders of the Lost Pork.md index fd1f8a87..ad58c18e 100644 --- a/QuestPaths/5.x - Shadowbringers/Allied Societies/Pixies/Dailies/3703_Raiders of the Lost Pork.md +++ b/QuestPaths/5.x - Shadowbringers/Allied Societies/Pixies/Dailies/3703_Raiders of the Lost Pork.md @@ -1,6 +1,7 @@ ## Raiders of the Lost Pork QuestWork: + ``` 0 x 0 0 0 0 16 → Tall Fuath (1032167) diff --git a/QuestPaths/5.x - Shadowbringers/Allied Societies/Pixies/Dailies/3704_Pebble without a Cause.json b/QuestPaths/5.x - Shadowbringers/Allied Societies/Pixies/Dailies/3704_Pebble without a Cause.json index 7f2d3d48..057aee7d 100644 --- a/QuestPaths/5.x - Shadowbringers/Allied Societies/Pixies/Dailies/3704_Pebble without a Cause.json +++ b/QuestPaths/5.x - Shadowbringers/Allied Societies/Pixies/Dailies/3704_Pebble without a Cause.json @@ -33,7 +33,9 @@ "RequiredQuestVariables": [ null, null, - [3], + [ + 3 + ], null, null, null @@ -52,7 +54,9 @@ "RequiredQuestVariables": [ null, null, - [1], + [ + 1 + ], null, null, null @@ -71,7 +75,9 @@ "RequiredQuestVariables": [ null, null, - [2], + [ + 2 + ], null, null, null diff --git a/QuestPaths/5.x - Shadowbringers/Allied Societies/Pixies/Dailies/3705_There's Always a Stupider Fish.json b/QuestPaths/5.x - Shadowbringers/Allied Societies/Pixies/Dailies/3705_There's Always a Stupider Fish.json index 5ca7c634..1954a0ed 100644 --- a/QuestPaths/5.x - Shadowbringers/Allied Societies/Pixies/Dailies/3705_There's Always a Stupider Fish.json +++ b/QuestPaths/5.x - Shadowbringers/Allied Societies/Pixies/Dailies/3705_There's Always a Stupider Fish.json @@ -42,7 +42,9 @@ "DisableNavmesh": true, "RequiredQuestVariables": [ null, - [2], + [ + 2 + ], null, null, null, @@ -61,7 +63,9 @@ "DisableNavmesh": true, "RequiredQuestVariables": [ null, - [3], + [ + 3 + ], null, null, null, @@ -80,7 +84,9 @@ "DisableNavmesh": true, "RequiredQuestVariables": [ null, - [1], + [ + 1 + ], null, null, null, diff --git a/QuestPaths/5.x - Shadowbringers/Allied Societies/Pixies/Dailies/3716_The Chaser.json b/QuestPaths/5.x - Shadowbringers/Allied Societies/Pixies/Dailies/3716_The Chaser.json index 177e155a..790020cd 100644 --- a/QuestPaths/5.x - Shadowbringers/Allied Societies/Pixies/Dailies/3716_The Chaser.json +++ b/QuestPaths/5.x - Shadowbringers/Allied Societies/Pixies/Dailies/3716_The Chaser.json @@ -35,7 +35,9 @@ "RequiredQuestVariables": [ null, null, - [1], + [ + 1 + ], null, null, null @@ -55,7 +57,9 @@ "RequiredQuestVariables": [ null, null, - [2], + [ + 2 + ], null, null, null diff --git a/QuestPaths/5.x - Shadowbringers/Allied Societies/Pixies/Dailies/3716_The Chaser.md b/QuestPaths/5.x - Shadowbringers/Allied Societies/Pixies/Dailies/3716_The Chaser.md index 352f3b22..3242d75e 100644 --- a/QuestPaths/5.x - Shadowbringers/Allied Societies/Pixies/Dailies/3716_The Chaser.md +++ b/QuestPaths/5.x - Shadowbringers/Allied Societies/Pixies/Dailies/3716_The Chaser.md @@ -1,3 +1,3 @@ 0 0 ? 0 0 0 - 1 → 1032203 - 2 → 1032202 +1 → 1032203 +2 → 1032202 diff --git a/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Dailies/3810_Power to the Vegetables.json b/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Dailies/3810_Power to the Vegetables.json index e7718beb..d88da9c8 100644 --- a/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Dailies/3810_Power to the Vegetables.json +++ b/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Dailies/3810_Power to the Vegetables.json @@ -90,9 +90,6 @@ "AetheryteShortcut": "Rak'tika - Fanow", "Fly": true, "RequiredGatheredItems": [ - - - ] }, { diff --git a/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Dailies/3813_Marks of Friendship.json b/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Dailies/3813_Marks of Friendship.json index 5b359ba6..76b7a64a 100644 --- a/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Dailies/3813_Marks of Friendship.json +++ b/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Dailies/3813_Marks of Friendship.json @@ -32,9 +32,6 @@ "AetheryteShortcut": "Rak'tika - Fanow", "Fly": true, "RequiredGatheredItems": [ - - - ] }, { 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 5b359ba6..76b7a64a 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 @@ -32,9 +32,6 @@ "AetheryteShortcut": "Rak'tika - Fanow", "Fly": true, "RequiredGatheredItems": [ - - - ] }, { 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 5b359ba6..76b7a64a 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 @@ -32,9 +32,6 @@ "AetheryteShortcut": "Rak'tika - Fanow", "Fly": true, "RequiredGatheredItems": [ - - - ] }, { 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 5b359ba6..76b7a64a 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 @@ -32,9 +32,6 @@ "AetheryteShortcut": "Rak'tika - Fanow", "Fly": true, "RequiredGatheredItems": [ - - - ] }, { 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 5b359ba6..76b7a64a 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 @@ -32,9 +32,6 @@ "AetheryteShortcut": "Rak'tika - Fanow", "Fly": true, "RequiredGatheredItems": [ - - - ] }, { 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 5b359ba6..76b7a64a 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 @@ -32,9 +32,6 @@ "AetheryteShortcut": "Rak'tika - Fanow", "Fly": true, "RequiredGatheredItems": [ - - - ] }, { 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 1a56d60e..9282be65 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 @@ -41,8 +41,6 @@ "ItemId": 29554, "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 5b359ba6..76b7a64a 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 @@ -32,9 +32,6 @@ "AetheryteShortcut": "Rak'tika - Fanow", "Fly": true, "RequiredGatheredItems": [ - - - ] }, { diff --git a/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Dailies/3823_By the Power Invested in Scree.json b/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Dailies/3823_By the Power Invested in Scree.json index 5b359ba6..76b7a64a 100644 --- a/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Dailies/3823_By the Power Invested in Scree.json +++ b/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Dailies/3823_By the Power Invested in Scree.json @@ -32,9 +32,6 @@ "AetheryteShortcut": "Rak'tika - Fanow", "Fly": true, "RequiredGatheredItems": [ - - - ] }, { 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 5b359ba6..76b7a64a 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 @@ -32,9 +32,6 @@ "AetheryteShortcut": "Rak'tika - Fanow", "Fly": true, "RequiredGatheredItems": [ - - - ] }, { 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 5b359ba6..76b7a64a 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 @@ -32,9 +32,6 @@ "AetheryteShortcut": "Rak'tika - Fanow", "Fly": true, "RequiredGatheredItems": [ - - - ] }, { 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 5b359ba6..76b7a64a 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 @@ -32,9 +32,6 @@ "AetheryteShortcut": "Rak'tika - Fanow", "Fly": true, "RequiredGatheredItems": [ - - - ] }, { diff --git a/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Dailies/3833_Qhoterl's Chronicles.json b/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Dailies/3833_Qhoterl's Chronicles.json index 5b359ba6..76b7a64a 100644 --- a/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Dailies/3833_Qhoterl's Chronicles.json +++ b/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Dailies/3833_Qhoterl's Chronicles.json @@ -32,9 +32,6 @@ "AetheryteShortcut": "Rak'tika - Fanow", "Fly": true, "RequiredGatheredItems": [ - - - ] }, { diff --git a/QuestPaths/5.x - Shadowbringers/Class Quests/DNC/3251_A Soirée in the Sultanate.json b/QuestPaths/5.x - Shadowbringers/Class Quests/DNC/3251_A Soirée in the Sultanate.json index a9e4e18a..b733ba9f 100644 --- a/QuestPaths/5.x - Shadowbringers/Class Quests/DNC/3251_A Soirée in the Sultanate.json +++ b/QuestPaths/5.x - Shadowbringers/Class Quests/DNC/3251_A Soirée in the Sultanate.json @@ -134,7 +134,9 @@ "TerritoryId": 141, "InteractionType": "Combat", "EnemySpawnType": "AutoOnEnterArea", - "KillEnemyDataIds": [10849], + "KillEnemyDataIds": [ + 10849 + ], "Fly": true } ] diff --git a/QuestPaths/5.x - Shadowbringers/Class Quests/DNC/3252_Dances with Duskwights.json b/QuestPaths/5.x - Shadowbringers/Class Quests/DNC/3252_Dances with Duskwights.json index 376c3afa..536643b0 100644 --- a/QuestPaths/5.x - Shadowbringers/Class Quests/DNC/3252_Dances with Duskwights.json +++ b/QuestPaths/5.x - Shadowbringers/Class Quests/DNC/3252_Dances with Duskwights.json @@ -88,7 +88,9 @@ "TerritoryId": 153, "InteractionType": "Combat", "EnemySpawnType": "AutoOnEnterArea", - "KillEnemyDataIds": [10851] + "KillEnemyDataIds": [ + 10851 + ] } ] }, 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 317653d7..92bd076b 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,5 +1,4 @@ - -{ +{ "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", "TerritoryBlacklist": [ diff --git a/QuestPaths/5.x - Shadowbringers/MSQ/D-Amh Araeng 2/3613_On Track.json b/QuestPaths/5.x - Shadowbringers/MSQ/D-Amh Araeng 2/3613_On Track.json index 32a56078..90c17979 100644 --- a/QuestPaths/5.x - Shadowbringers/MSQ/D-Amh Araeng 2/3613_On Track.json +++ b/QuestPaths/5.x - Shadowbringers/MSQ/D-Amh Araeng 2/3613_On Track.json @@ -127,7 +127,9 @@ "TerritoryId": 815, "InteractionType": "Combat", "EnemySpawnType": "AfterInteraction", - "KillEnemyDataIds": [10883], + "KillEnemyDataIds": [ + 10883 + ], "CompletionQuestVariablesFlags": [ null, null, @@ -147,7 +149,9 @@ "TerritoryId": 815, "InteractionType": "Combat", "EnemySpawnType": "AfterInteraction", - "KillEnemyDataIds": [10883], + "KillEnemyDataIds": [ + 10883 + ], "CompletionQuestVariablesFlags": [ null, null, @@ -167,7 +171,9 @@ "TerritoryId": 815, "InteractionType": "Combat", "EnemySpawnType": "AfterInteraction", - "KillEnemyDataIds": [10883], + "KillEnemyDataIds": [ + 10883 + ], "CompletionQuestVariablesFlags": [ null, null, 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 4967fd04..0060a088 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,7 +1,9 @@ { "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", - "TerritoryBlacklist": [863], + "TerritoryBlacklist": [ + 863 + ], "QuestSequence": [ { "Sequence": 0, diff --git a/QuestPaths/5.x - Shadowbringers/Role Quests/Healer/3267_Traditions and Travails.json b/QuestPaths/5.x - Shadowbringers/Role Quests/Healer/3267_Traditions and Travails.json index 15fc4534..3739e9d0 100644 --- a/QuestPaths/5.x - Shadowbringers/Role Quests/Healer/3267_Traditions and Travails.json +++ b/QuestPaths/5.x - Shadowbringers/Role Quests/Healer/3267_Traditions and Travails.json @@ -20,7 +20,9 @@ "[Crystarium] Musica Universalis Markets" ], "SkipConditions": { - "AetheryteShortcutIf": { "InSameTerritory": true } + "AetheryteShortcutIf": { + "InSameTerritory": true + } } } ] @@ -54,7 +56,9 @@ "TerritoryId": 813, "InteractionType": "Combat", "EnemySpawnType": "AutoOnEnterArea", - "KillEnemyDataIds": [10865] + "KillEnemyDataIds": [ + 10865 + ] } ] }, @@ -91,7 +95,9 @@ "[Crystarium] Musica Universalis Markets" ], "SkipConditions": { - "AetheryteShortcutIf": { "InSameTerritory": true } + "AetheryteShortcutIf": { + "InSameTerritory": true + } }, "NextQuestId": 3268 } diff --git a/QuestPaths/5.x - Shadowbringers/Role Quests/Healer/3268_Affronts and Allies.json b/QuestPaths/5.x - Shadowbringers/Role Quests/Healer/3268_Affronts and Allies.json index ad7d1e23..45951587 100644 --- a/QuestPaths/5.x - Shadowbringers/Role Quests/Healer/3268_Affronts and Allies.json +++ b/QuestPaths/5.x - Shadowbringers/Role Quests/Healer/3268_Affronts and Allies.json @@ -20,7 +20,9 @@ "[Crystarium] Musica Universalis Markets" ], "SkipConditions": { - "AetheryteShortcutIf": { "InSameTerritory": true } + "AetheryteShortcutIf": { + "InSameTerritory": true + } } } ] @@ -54,7 +56,9 @@ "TerritoryId": 814, "InteractionType": "Combat", "EnemySpawnType": "AfterInteraction", - "KillEnemyDataIds": [10866], + "KillEnemyDataIds": [ + 10866 + ], "Fly": true } ] @@ -72,7 +76,9 @@ "TerritoryId": 814, "InteractionType": "Combat", "EnemySpawnType": "AfterInteraction", - "KillEnemyDataIds": [10867], + "KillEnemyDataIds": [ + 10867 + ], "Fly": true } ] @@ -111,7 +117,9 @@ "[Crystarium] Musica Universalis Markets" ], "SkipConditions": { - "AetheryteShortcutIf": { "InSameTerritory": true } + "AetheryteShortcutIf": { + "InSameTerritory": true + } }, "NextQuestId": 3269 } diff --git a/QuestPaths/5.x - Shadowbringers/Role Quests/Healer/3269_The Scientific Method.json b/QuestPaths/5.x - Shadowbringers/Role Quests/Healer/3269_The Scientific Method.json index a1c6b7cb..455b0938 100644 --- a/QuestPaths/5.x - Shadowbringers/Role Quests/Healer/3269_The Scientific Method.json +++ b/QuestPaths/5.x - Shadowbringers/Role Quests/Healer/3269_The Scientific Method.json @@ -20,7 +20,9 @@ "[Crystarium] Musica Universalis Markets" ], "SkipConditions": { - "AetheryteShortcutIf": { "InSameTerritory": true } + "AetheryteShortcutIf": { + "InSameTerritory": true + } } } ] @@ -114,7 +116,9 @@ "[Crystarium] Musica Universalis Markets" ], "SkipConditions": { - "AetheryteShortcutIf": { "InSameTerritory": true } + "AetheryteShortcutIf": { + "InSameTerritory": true + } }, "NextQuestId": 3270 } diff --git a/QuestPaths/5.x - Shadowbringers/Role Quests/Healer/3270_The Lost and the Found.json b/QuestPaths/5.x - Shadowbringers/Role Quests/Healer/3270_The Lost and the Found.json index 9fbd36cd..ed82d676 100644 --- a/QuestPaths/5.x - Shadowbringers/Role Quests/Healer/3270_The Lost and the Found.json +++ b/QuestPaths/5.x - Shadowbringers/Role Quests/Healer/3270_The Lost and the Found.json @@ -20,7 +20,9 @@ "[Crystarium] Musica Universalis Markets" ], "SkipConditions": { - "AetheryteShortcutIf": { "InSameTerritory": true } + "AetheryteShortcutIf": { + "InSameTerritory": true + } } } ] @@ -54,7 +56,9 @@ "TerritoryId": 817, "InteractionType": "Combat", "EnemySpawnType": "AfterInteraction", - "KillEnemyDataIds": [10950], + "KillEnemyDataIds": [ + 10950 + ], "Fly": true } ] @@ -72,7 +76,9 @@ "TerritoryId": 817, "InteractionType": "Combat", "EnemySpawnType": "AfterInteraction", - "KillEnemyDataIds": [10869], + "KillEnemyDataIds": [ + 10869 + ], "Fly": true } ] @@ -111,7 +117,9 @@ "[Crystarium] Musica Universalis Markets" ], "SkipConditions": { - "AetheryteShortcutIf": { "InSameTerritory": true } + "AetheryteShortcutIf": { + "InSameTerritory": true + } }, "NextQuestId": 3271 } diff --git a/QuestPaths/5.x - Shadowbringers/Role Quests/Healer/3271_Never to Return.json b/QuestPaths/5.x - Shadowbringers/Role Quests/Healer/3271_Never to Return.json index 5e306be5..193007ed 100644 --- a/QuestPaths/5.x - Shadowbringers/Role Quests/Healer/3271_Never to Return.json +++ b/QuestPaths/5.x - Shadowbringers/Role Quests/Healer/3271_Never to Return.json @@ -20,7 +20,9 @@ "[Crystarium] Musica Universalis Markets" ], "SkipConditions": { - "AetheryteShortcutIf": { "InSameTerritory": true } + "AetheryteShortcutIf": { + "InSameTerritory": true + } } } ] diff --git a/QuestPaths/5.x - Shadowbringers/Role Quests/Healer/3272_The Soul of Temperance.json b/QuestPaths/5.x - Shadowbringers/Role Quests/Healer/3272_The Soul of Temperance.json index f951018d..97c96a65 100644 --- a/QuestPaths/5.x - Shadowbringers/Role Quests/Healer/3272_The Soul of Temperance.json +++ b/QuestPaths/5.x - Shadowbringers/Role Quests/Healer/3272_The Soul of Temperance.json @@ -16,7 +16,9 @@ "InteractionType": "AcceptQuest", "AetheryteShortcut": "Kholusia - Tomra", "SkipConditions": { - "AethernetShortcutIf": { "InSameTerritory": true } + "AethernetShortcutIf": { + "InSameTerritory": true + } } } ] @@ -34,7 +36,9 @@ "TerritoryId": 814, "InteractionType": "Combat", "EnemySpawnType": "AfterInteraction", - "KillEnemyDataIds": [10870], + "KillEnemyDataIds": [ + 10870 + ], "Fly": true } ] @@ -52,7 +56,9 @@ "TerritoryId": 814, "InteractionType": "Combat", "EnemySpawnType": "AfterInteraction", - "KillEnemyDataIds": [10871], + "KillEnemyDataIds": [ + 10871 + ], "Fly": true } ] @@ -121,7 +127,9 @@ "[Crystarium] Musica Universalis Markets" ], "SkipConditions": { - "AetheryteShortcutIf": { "InSameTerritory": true } + "AetheryteShortcutIf": { + "InSameTerritory": true + } } } ] diff --git a/QuestPaths/5.x - Shadowbringers/Role Quests/Physical/3273_No Greater Sport.json b/QuestPaths/5.x - Shadowbringers/Role Quests/Physical/3273_No Greater Sport.json index 7d69c7c5..e839a530 100644 --- a/QuestPaths/5.x - Shadowbringers/Role Quests/Physical/3273_No Greater Sport.json +++ b/QuestPaths/5.x - Shadowbringers/Role Quests/Physical/3273_No Greater Sport.json @@ -76,7 +76,9 @@ "TerritoryId": 813, "InteractionType": "Combat", "EnemySpawnType": "AfterInteraction", - "KillEnemyDataIds": [10872] + "KillEnemyDataIds": [ + 10872 + ] } ] }, diff --git a/QuestPaths/5.x - Shadowbringers/Role Quests/Physical/3274_Vengeance in Defeat.json b/QuestPaths/5.x - Shadowbringers/Role Quests/Physical/3274_Vengeance in Defeat.json index b99fbbff..d357defc 100644 --- a/QuestPaths/5.x - Shadowbringers/Role Quests/Physical/3274_Vengeance in Defeat.json +++ b/QuestPaths/5.x - Shadowbringers/Role Quests/Physical/3274_Vengeance in Defeat.json @@ -73,7 +73,9 @@ "TerritoryId": 815, "InteractionType": "Combat", "EnemySpawnType": "AfterInteraction", - "KillEnemyDataIds": [10873], + "KillEnemyDataIds": [ + 10873 + ], "Fly": true } ] diff --git a/QuestPaths/5.x - Shadowbringers/Role Quests/Physical/3278_Courage Born of Fear.json b/QuestPaths/5.x - Shadowbringers/Role Quests/Physical/3278_Courage Born of Fear.json index 342e2ade..51533dbb 100644 --- a/QuestPaths/5.x - Shadowbringers/Role Quests/Physical/3278_Courage Born of Fear.json +++ b/QuestPaths/5.x - Shadowbringers/Role Quests/Physical/3278_Courage Born of Fear.json @@ -80,7 +80,10 @@ } ] }, - { "Sequence": 4, "Steps": [] }, + { + "Sequence": 4, + "Steps": [] + }, { "Sequence": 5, "Steps": [ diff --git a/QuestPaths/6.x - Endwalker/Allied Societies/Arkasodara/Dailies/4563_Seedy Affair.json b/QuestPaths/6.x - Endwalker/Allied Societies/Arkasodara/Dailies/4563_Seedy Affair.json index 077c6da6..db0beb8f 100644 --- a/QuestPaths/6.x - Endwalker/Allied Societies/Arkasodara/Dailies/4563_Seedy Affair.json +++ b/QuestPaths/6.x - Endwalker/Allied Societies/Arkasodara/Dailies/4563_Seedy Affair.json @@ -34,7 +34,9 @@ "AetheryteShortcut": "Thavnair - Palaka's Stand", "RequiredQuestVariables": [ null, - [19], + [ + 19 + ], null, null, null, @@ -54,7 +56,9 @@ "Fly": true, "RequiredQuestVariables": [ null, - [18], + [ + 18 + ], null, null, null, @@ -74,7 +78,9 @@ "Fly": true, "RequiredQuestVariables": [ null, - [17], + [ + 17 + ], null, null, null, @@ -98,7 +104,9 @@ "RequiredQuestVariables": [ null, null, - [0], + [ + 0 + ], null, null, null @@ -116,7 +124,9 @@ "RequiredQuestVariables": [ null, null, - [64], + [ + 64 + ], null, null, null @@ -134,7 +144,9 @@ "RequiredQuestVariables": [ null, null, - [128], + [ + 128 + ], null, null, null diff --git a/QuestPaths/6.x - Endwalker/Allied Societies/Arkasodara/Dailies/4563_Seedy Affair.md b/QuestPaths/6.x - Endwalker/Allied Societies/Arkasodara/Dailies/4563_Seedy Affair.md index db23cef7..da5f2161 100644 --- a/QuestPaths/6.x - Endwalker/Allied Societies/Arkasodara/Dailies/4563_Seedy Affair.md +++ b/QuestPaths/6.x - Endwalker/Allied Societies/Arkasodara/Dailies/4563_Seedy Affair.md @@ -1,6 +1,7 @@ ## Seedy Affair Step 1: + ``` 0 ?? 0 0 0 0 17 → 2012886 @@ -9,6 +10,7 @@ Step 1: ``` Step 2 + ``` 0 0 ?? 0 0 0 128 → 2012886 diff --git a/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Dailies/4707_Lunar Beats for Hopping.json b/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Dailies/4707_Lunar Beats for Hopping.json index 185e6156..59172782 100644 --- a/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Dailies/4707_Lunar Beats for Hopping.json +++ b/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Dailies/4707_Lunar Beats for Hopping.json @@ -1,5 +1,4 @@ - -{ +{ "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", "QuestSequence": [ diff --git a/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Dailies/4711_By the Muse Forsaken.json b/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Dailies/4711_By the Muse Forsaken.json index c917dfce..089db821 100644 --- a/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Dailies/4711_By the Muse Forsaken.json +++ b/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Dailies/4711_By the Muse Forsaken.json @@ -1,5 +1,4 @@ - -{ +{ "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", "QuestSequence": [ diff --git a/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Dailies/4712_Art Is an Explosion!.json b/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Dailies/4712_Art Is an Explosion!.json index 2706bc50..61480268 100644 --- a/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Dailies/4712_Art Is an Explosion!.json +++ b/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Dailies/4712_Art Is an Explosion!.json @@ -1,5 +1,4 @@ - -{ +{ "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", "QuestSequence": [ diff --git a/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Dailies/4713_Craft, Craft, Fashion, Baby.json b/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Dailies/4713_Craft, Craft, Fashion, Baby.json index 02199766..baa716af 100644 --- a/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Dailies/4713_Craft, Craft, Fashion, Baby.json +++ b/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Dailies/4713_Craft, Craft, Fashion, Baby.json @@ -1,5 +1,4 @@ - -{ +{ "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", "QuestSequence": [ 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 f0656089..d731dcbc 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,5 +1,4 @@ - -{ +{ "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "liza", "Disabled": true, diff --git a/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4613_The Hunger Pangs.json b/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4613_The Hunger Pangs.json index e8779c33..d6cab90b 100644 --- a/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4613_The Hunger Pangs.json +++ b/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Dailies/4613_The Hunger Pangs.json @@ -65,7 +65,6 @@ "Sequence": 255, "Steps": [ { - "DataId": 2013072, "Position": { "X": 456.65674, 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 6745e7d5..af25f7e6 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 @@ -1,260 +1,260 @@ { - "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", - "Author": "plogon_enjoyer", - "QuestSequence": [ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "plogon_enjoyer", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ { - "Sequence": 0, - "Steps": [ - { - "DataId": 1043951, - "Position": { - "X": 303.8529, - "Y": 481.99442, - "Z": 154.83325 - }, - "TerritoryId": 960, - "InteractionType": "AcceptQuest" - } - ] - }, - { - "Sequence": 1, - "Steps": [ - { - "DataId": 1043865, - "Position": { - "X": 301.8081, - "Y": 482.13644, - "Z": 165.02625 - }, - "TerritoryId": 960, - "InteractionType": "Interact", - "DialogueChoices": [ - { - "Type": "YesNo", - "Prompt": "TEXT_BANOMI002_04602_Q5_000_000", - "Yes": true - } - ], - "Mount": true - }, - { - "DataId": 1043586, - "Position": { - "X": 205.3711, - "Y": 567.4998, - "Z": 246.72314 - }, - "TerritoryId": 960, - "InteractionType": "Interact", - "Fly": true - } - ] - }, - { - "Sequence": 2, - "Steps": [ - { - "DataId": 2012484, - "Position": { - "X": 492.48486, - "Y": 438.04077, - "Z": 365.43823 - }, - "TerritoryId": 960, - "InteractionType": "Interact", - "AetheryteShortcut": "Ultima Thule - Base Omicron", - "TargetTerritoryId": 960, - "Fly": true - }, - { - "DataId": 1043527, - "Position": { - "X": 463.5537, - "Y": 417.06747, - "Z": 407.12585 - }, - "TerritoryId": 960, - "InteractionType": "Interact" - } - ] - }, - { - "Sequence": 3, - "Steps": [ - { - "DataId": 2012485, - "Position": { - "X": 469.3828, - "Y": 418.14294, - "Z": 403.3722 - }, - "TerritoryId": 960, - "InteractionType": "Interact", - "TargetTerritoryId": 960 - }, - { - "DataId": 1043529, - "Position": { - "X": 504.90576, - "Y": 436.9996, - "Z": 341.5122 - }, - "TerritoryId": 960, - "InteractionType": "Interact", - "Mount": true - }, - { - "DataId": 1043530, - "Position": { - "X": 475.0896, - "Y": 437.00183, - "Z": 319.53918 - }, - "TerritoryId": 960, - "InteractionType": "Interact", - "Mount": true - } - ] - }, - { - "Sequence": 4, - "Steps": [ - { - "DataId": 1043531, - "Position": { - "X": 502.49475, - "Y": 436.99988, - "Z": 324.84924 - }, - "TerritoryId": 960, - "InteractionType": "Interact", - "Mount": true - } - ] - }, - { - "Sequence": 5, - "Steps": [ - { - "DataId": 1043533, - "Position": { - "X": 77.3479, - "Y": 269.00006, - "Z": -607.72107 - }, - "TerritoryId": 960, - "InteractionType": "Interact", - "AetheryteShortcut": "Ultima Thule - Abode of the Ea", - "Fly": true - } - ] - }, - { - "Sequence": 6, - "Steps": [ - { - "DataId": 1043537, - "Position": { - "X": -321.24823, - "Y": 263.2611, - "Z": -523.7049 - }, - "TerritoryId": 960, - "InteractionType": "Interact", - "Fly": true - } - ] - }, - { - "Sequence": 7, - "Steps": [ - { - "TerritoryId": 960, - "InteractionType": "None", - "RequiredGatheredItems": [ - { - "QuestAcceptedAsClass": "Miner", - "ItemId": 38277, - "ItemCount": 3 - }, - { - "QuestAcceptedAsClass": "Botanist", - "ItemId": 38301, - "ItemCount": 3 - } - ] - }, - { - "DataId": 2013072, - "Position": { - "X": 456.65674, - "Y": 438.04077, - "Z": 310.2312 - }, - "TerritoryId": 960, - "InteractionType": "Interact", - "AetheryteShortcut": "Ultima Thule - Base Omicron", - "TargetTerritoryId": 960, - "Mount": true - }, - { - "DataId": 1043865, - "Position": { - "X": 301.8081, - "Y": 482.13644, - "Z": 165.02625 - }, - "TerritoryId": 960, - "InteractionType": "Interact", - "TargetTerritoryId": 960, - "Fly": true - }, - { - "DataId": 1043585, - "Position": { - "X": 203.84521, - "Y": 567.4998, - "Z": 246.87573 - }, - "TerritoryId": 960, - "InteractionType": "Interact", - "Fly": true - } - ] - }, - { - "Sequence": 255, - "Steps": [ - { - "DataId": 1043864, - "Position": { - "X": 244.83093, - "Y": 564.8203, - "Z": 261.76843 - }, - "TerritoryId": 960, - "InteractionType": "Interact", - "DialogueChoices": [ - { - "Type": "YesNo", - "Prompt": "TEXT_BANOMI002_04602_Q2_000_000", - "Yes": true - } - ], - "Fly": true - }, - { - "DataId": 1043951, - "Position": { - "X": 303.8529, - "Y": 481.99442, - "Z": 154.83325 - }, - "TerritoryId": 960, - "InteractionType": "CompleteQuest" - } - ] + "DataId": 1043951, + "Position": { + "X": 303.8529, + "Y": 481.99442, + "Z": 154.83325 + }, + "TerritoryId": 960, + "InteractionType": "AcceptQuest" } - ] -} \ No newline at end of file + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1043865, + "Position": { + "X": 301.8081, + "Y": 482.13644, + "Z": 165.02625 + }, + "TerritoryId": 960, + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_BANOMI002_04602_Q5_000_000", + "Yes": true + } + ], + "Mount": true + }, + { + "DataId": 1043586, + "Position": { + "X": 205.3711, + "Y": 567.4998, + "Z": 246.72314 + }, + "TerritoryId": 960, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2012484, + "Position": { + "X": 492.48486, + "Y": 438.04077, + "Z": 365.43823 + }, + "TerritoryId": 960, + "InteractionType": "Interact", + "AetheryteShortcut": "Ultima Thule - Base Omicron", + "TargetTerritoryId": 960, + "Fly": true + }, + { + "DataId": 1043527, + "Position": { + "X": 463.5537, + "Y": 417.06747, + "Z": 407.12585 + }, + "TerritoryId": 960, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2012485, + "Position": { + "X": 469.3828, + "Y": 418.14294, + "Z": 403.3722 + }, + "TerritoryId": 960, + "InteractionType": "Interact", + "TargetTerritoryId": 960 + }, + { + "DataId": 1043529, + "Position": { + "X": 504.90576, + "Y": 436.9996, + "Z": 341.5122 + }, + "TerritoryId": 960, + "InteractionType": "Interact", + "Mount": true + }, + { + "DataId": 1043530, + "Position": { + "X": 475.0896, + "Y": 437.00183, + "Z": 319.53918 + }, + "TerritoryId": 960, + "InteractionType": "Interact", + "Mount": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1043531, + "Position": { + "X": 502.49475, + "Y": 436.99988, + "Z": 324.84924 + }, + "TerritoryId": 960, + "InteractionType": "Interact", + "Mount": true + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1043533, + "Position": { + "X": 77.3479, + "Y": 269.00006, + "Z": -607.72107 + }, + "TerritoryId": 960, + "InteractionType": "Interact", + "AetheryteShortcut": "Ultima Thule - Abode of the Ea", + "Fly": true + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1043537, + "Position": { + "X": -321.24823, + "Y": 263.2611, + "Z": -523.7049 + }, + "TerritoryId": 960, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 7, + "Steps": [ + { + "TerritoryId": 960, + "InteractionType": "None", + "RequiredGatheredItems": [ + { + "QuestAcceptedAsClass": "Miner", + "ItemId": 38277, + "ItemCount": 3 + }, + { + "QuestAcceptedAsClass": "Botanist", + "ItemId": 38301, + "ItemCount": 3 + } + ] + }, + { + "DataId": 2013072, + "Position": { + "X": 456.65674, + "Y": 438.04077, + "Z": 310.2312 + }, + "TerritoryId": 960, + "InteractionType": "Interact", + "AetheryteShortcut": "Ultima Thule - Base Omicron", + "TargetTerritoryId": 960, + "Mount": true + }, + { + "DataId": 1043865, + "Position": { + "X": 301.8081, + "Y": 482.13644, + "Z": 165.02625 + }, + "TerritoryId": 960, + "InteractionType": "Interact", + "TargetTerritoryId": 960, + "Fly": true + }, + { + "DataId": 1043585, + "Position": { + "X": 203.84521, + "Y": 567.4998, + "Z": 246.87573 + }, + "TerritoryId": 960, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1043864, + "Position": { + "X": 244.83093, + "Y": 564.8203, + "Z": 261.76843 + }, + "TerritoryId": 960, + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_BANOMI002_04602_Q2_000_000", + "Yes": true + } + ], + "Fly": true + }, + { + "DataId": 1043951, + "Position": { + "X": 303.8529, + "Y": 481.99442, + "Z": 154.83325 + }, + "TerritoryId": 960, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/6.x - Endwalker/MSQ/C-MareLamentorum/4407_Heart of the Matter.json b/QuestPaths/6.x - Endwalker/MSQ/C-MareLamentorum/4407_Heart of the Matter.json index 7d71fa7a..416eef1e 100644 --- a/QuestPaths/6.x - Endwalker/MSQ/C-MareLamentorum/4407_Heart of the Matter.json +++ b/QuestPaths/6.x - Endwalker/MSQ/C-MareLamentorum/4407_Heart of the Matter.json @@ -34,7 +34,9 @@ "AetheryteShortcut": "Mare Lamentorum - Bestways Burrow", "SkipConditions": { "AetheryteShortcutIf": { - "QuestsCompleted": [4516] + "QuestsCompleted": [ + 4516 + ] } } }, diff --git a/QuestPaths/7.x - Dawntrail/Class Quests/PCT/4857_The Crate Beyond.json b/QuestPaths/7.x - Dawntrail/Class Quests/PCT/4857_The Crate Beyond.json index 5f93e550..504a1e9e 100644 --- a/QuestPaths/7.x - Dawntrail/Class Quests/PCT/4857_The Crate Beyond.json +++ b/QuestPaths/7.x - Dawntrail/Class Quests/PCT/4857_The Crate Beyond.json @@ -38,7 +38,10 @@ "InteractionType": "UseItem", "ItemId": 2003500, "AetheryteShortcut": "Kugane", - "AethernetShortcut": ["[Kugane] Aetheryte Plaza", "[Kugane] Sekiseigumi Barracks"] + "AethernetShortcut": [ + "[Kugane] Aetheryte Plaza", + "[Kugane] Sekiseigumi Barracks" + ] } ] }, diff --git a/QuestPaths/7.x - Dawntrail/Seasonal Events/Moonfire Faire (2024)/5182_Fire Red, Beast Green.json b/QuestPaths/7.x - Dawntrail/Seasonal Events/Moonfire Faire (2024)/5182_Fire Red, Beast Green.json index 9125f550..b99f6929 100644 --- a/QuestPaths/7.x - Dawntrail/Seasonal Events/Moonfire Faire (2024)/5182_Fire Red, Beast Green.json +++ b/QuestPaths/7.x - Dawntrail/Seasonal Events/Moonfire Faire (2024)/5182_Fire Red, Beast Green.json @@ -49,7 +49,9 @@ "SkipConditions": { "StepIf": { "AetheryteUnlocked": "Eastern La Noscea - Costa Del Sol", - "InTerritory": [137] + "InTerritory": [ + 137 + ] }, "AethernetShortcutIf": { "AetheryteUnlocked": "Eastern La Noscea - Costa Del Sol" From b590390b5cd5ce765416d85e819d09aee3d2a7e9 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Wed, 11 Sep 2024 23:17:39 +0200 Subject: [PATCH 234/450] Rough Hildibrand pass --- .../DialogueChoiceExtensions.cs | 4 + ...1204_The Rise and Fall of a Gentlemen.json | 9 ++- .../1205_Back in the Saddle.json | 34 +++++++- .../1206_After Her Own Heart.json | 4 +- .../1207_The Immaculate Deception.json | 77 +++++++++++++++--- .../1315_The Science of Deduction.json | 81 ++++++++++++++++--- .../Hildibrand Quests/1316_The Hammer.json | 11 ++- .../1317_Manderville Men.json | 11 ++- .../1318_The Three Collectors.json | 28 +++---- .../1438_The Business of Betrothal.json | 7 +- .../1439_A Burst of Inspiration.json | 13 ++- .../1440_Seeds of Rebellion.json | 56 +++++++++++-- .../1441_A Case of Indecency.json | 7 +- .../166_Eight-armed and Dangerous.json | 15 +++- .../202_What Price Victory.json | 19 ++++- .../203_The Trouble with Truffles.json | 61 +++++++++++++- .../204_The Coliseum Conundrum.json | 14 +++- .../490_Shades of Sil'dih.json | 3 +- .../Hildibrand Quests/491_Sibling Strife.json | 3 +- .../492_Beneath the Mask.json | 3 +- .../Hildibrand Quests/493_Truths Untold.json | 3 +- QuestPaths/quest-v1.json | 12 ++- .../Converter/EnemySpawnTypeConverter.cs | 1 + Questionable.Model/Questing/DialogueChoice.cs | 1 + .../Questing/EEnemySpawnType.cs | 1 + Questionable/Controller/CombatController.cs | 12 ++- .../GameUi/InteractionUiController.cs | 14 ++-- .../Controller/Steps/Interactions/Combat.cs | 1 + 28 files changed, 415 insertions(+), 90 deletions(-) diff --git a/QuestPathGenerator/RoslynElements/DialogueChoiceExtensions.cs b/QuestPathGenerator/RoslynElements/DialogueChoiceExtensions.cs index 18de00c1..92f6ab87 100644 --- a/QuestPathGenerator/RoslynElements/DialogueChoiceExtensions.cs +++ b/QuestPathGenerator/RoslynElements/DialogueChoiceExtensions.cs @@ -32,6 +32,10 @@ internal static class DialogueChoiceExtensions Assignment(nameof(DialogueChoice.Answer), dialogueChoice.Answer, emptyChoice.Answer) .AsSyntaxNodeOrToken(), + Assignment(nameof(DialogueChoice.PromptIsRegularExpression), + dialogueChoice.PromptIsRegularExpression, + emptyChoice.PromptIsRegularExpression) + .AsSyntaxNodeOrToken(), Assignment(nameof(DialogueChoice.AnswerIsRegularExpression), dialogueChoice.AnswerIsRegularExpression, emptyChoice.AnswerIsRegularExpression) diff --git a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1204_The Rise and Fall of a Gentlemen.json b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1204_The Rise and Fall of a Gentlemen.json index 5e7b072f..32dc374c 100644 --- a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1204_The Rise and Fall of a Gentlemen.json +++ b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1204_The Rise and Fall of a Gentlemen.json @@ -62,8 +62,10 @@ }, "TerritoryId": 146, "InteractionType": "Combat", - "EnemySpawnType": "OverworldEnemies", - "KillEnemyDataIds": [] + "EnemySpawnType": "FateEnemies", + "KillEnemyDataIds": [ + 2390 + ] } ] }, @@ -106,7 +108,8 @@ "Prompt": "TEXT_CHRHDB101_01204_Q2_000_1", "Answer": "TEXT_CHRHDB101_01204_Q2A2_000_2" } - ] + ], + "NextQuestId": 1205 } ] } diff --git a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1205_Back in the Saddle.json b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1205_Back in the Saddle.json index 5cecd971..77cd8009 100644 --- a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1205_Back in the Saddle.json +++ b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1205_Back in the Saddle.json @@ -28,8 +28,17 @@ "Y": 4.0131226, "Z": -98.95477 }, + "StopDistance": 7, "TerritoryId": 130, - "InteractionType": "Interact" + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] }, { "DataId": 1004331, @@ -39,7 +48,15 @@ "Z": -133.22656 }, "TerritoryId": 130, - "InteractionType": "Interact" + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] }, { "DataId": 1001313, @@ -49,7 +66,15 @@ "Z": -106.21808 }, "TerritoryId": 130, - "InteractionType": "Interact" + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] } ] }, @@ -64,7 +89,8 @@ "Z": -126.51257 }, "TerritoryId": 130, - "InteractionType": "CompleteQuest" + "InteractionType": "CompleteQuest", + "NextQuestId": 1206 } ] } diff --git a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1206_After Her Own Heart.json b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1206_After Her Own Heart.json index c2722df6..39548b26 100644 --- a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1206_After Her Own Heart.json +++ b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1206_After Her Own Heart.json @@ -117,8 +117,10 @@ "Y": 12, "Z": 0.99176025 }, + "StopDistance": 4, "TerritoryId": 130, - "InteractionType": "CompleteQuest" + "InteractionType": "CompleteQuest", + "NextQuestId": 1207 } ] } diff --git a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1207_The Immaculate Deception.json b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1207_The Immaculate Deception.json index c71f1ca2..1cad0dd0 100644 --- a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1207_The Immaculate Deception.json +++ b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1207_The Immaculate Deception.json @@ -18,6 +18,7 @@ "Y": 12, "Z": -5.5390625 }, + "StopDistance": 4, "TerritoryId": 130, "InteractionType": "AcceptQuest" } @@ -54,7 +55,15 @@ "Z": -221.27112 }, "TerritoryId": 145, - "InteractionType": "Interact" + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] }, { "DataId": 1003940, @@ -64,7 +73,15 @@ "Z": -241.07733 }, "TerritoryId": 145, - "InteractionType": "Interact" + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] }, { "DataId": 1003939, @@ -73,8 +90,17 @@ "Y": 4.137387, "Z": -240.98578 }, + "StopDistance": 4, "TerritoryId": 145, - "InteractionType": "Interact" + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] } ] }, @@ -205,7 +231,15 @@ "Z": 151.87305 }, "TerritoryId": 145, - "InteractionType": "Interact" + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] }, { "DataId": 2003005, @@ -215,7 +249,15 @@ "Z": 166.0028 }, "TerritoryId": 145, - "InteractionType": "Interact" + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] }, { "DataId": 2003004, @@ -225,7 +267,15 @@ "Z": 187.36548 }, "TerritoryId": 145, - "InteractionType": "Interact" + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] } ] }, @@ -248,8 +298,16 @@ "Sequence": 255, "Steps": [ { - "Mount": true, - "Fly": true, + "Position": { + "X": -535.8004, + "Y": 5.3931885, + "Z": -252.96324 + }, + "TerritoryId": 145, + "InteractionType": "WalkTo", + "Fly": true + }, + { "DataId": 1005731, "Position": { "X": -526.8788, @@ -257,7 +315,8 @@ "Z": -246.50952 }, "TerritoryId": 145, - "InteractionType": "CompleteQuest" + "InteractionType": "CompleteQuest", + "NextQuestId": 1315 } ] } diff --git a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1315_The Science of Deduction.json b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1315_The Science of Deduction.json index 24ca8f72..92e45cfe 100644 --- a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1315_The Science of Deduction.json +++ b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1315_The Science of Deduction.json @@ -18,6 +18,7 @@ "Y": 5.4049973, "Z": -249.25616 }, + "StopDistance": 4, "TerritoryId": 145, "InteractionType": "AcceptQuest" } @@ -43,7 +44,12 @@ "Sequence": 2, "Steps": [ { - "AetheryteShortcut": "Western Thanalan - Horizon", + "TerritoryId": 145, + "InteractionType": "UseItem", + "ItemId": 30362, + "TargetTerritoryId": 140 + }, + { "Mount": true, "DataId": 1008709, "Position": { @@ -70,7 +76,15 @@ "Z": 12.191956 }, "TerritoryId": 140, - "InteractionType": "Interact" + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] }, { "Mount": true, @@ -82,7 +96,15 @@ "Z": 65.384766 }, "TerritoryId": 140, - "InteractionType": "Interact" + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] }, { "Mount": true, @@ -94,7 +116,15 @@ "Z": 158.73962 }, "TerritoryId": 140, - "InteractionType": "Interact" + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] } ] }, @@ -124,7 +154,15 @@ "Z": 155.9624 }, "TerritoryId": 140, - "InteractionType": "Interact" + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] }, { "DataId": 2003656, @@ -134,7 +172,15 @@ "Z": 159.19727 }, "TerritoryId": 140, - "InteractionType": "Interact" + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] }, { "DataId": 2003659, @@ -144,7 +190,15 @@ "Z": 155.90137 }, "TerritoryId": 140, - "InteractionType": "Interact" + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 16 + ] }, { "DataId": 2003657, @@ -154,7 +208,15 @@ "Z": 158.12915 }, "TerritoryId": 140, - "InteractionType": "Interact" + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] } ] }, @@ -169,7 +231,8 @@ "Z": 157.5188 }, "TerritoryId": 140, - "InteractionType": "CompleteQuest" + "InteractionType": "CompleteQuest", + "NextQuestId": 1316 } ] } diff --git a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1316_The Hammer.json b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1316_The Hammer.json index 926b05fe..2d1bdd04 100644 --- a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1316_The Hammer.json +++ b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1316_The Hammer.json @@ -47,7 +47,8 @@ "Z": 254.13892 }, "TerritoryId": 147, - "InteractionType": "Interact" + "InteractionType": "Interact", + "Fly": true } ] }, @@ -63,11 +64,9 @@ "Z": 121.20239 }, "TerritoryId": 147, - "InteractionType": "Interact" - }, - { - "TerritoryId": 147, - "InteractionType": "CompleteQuest" + "InteractionType": "CompleteQuest", + "Fly": true, + "NextQuestId": 1317 } ] } diff --git a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1317_Manderville Men.json b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1317_Manderville Men.json index ea824bb2..89a9660d 100644 --- a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1317_Manderville Men.json +++ b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1317_Manderville Men.json @@ -36,9 +36,13 @@ "Sequence": 2, "Steps": [ { - "AetheryteShortcut": "Western Thanalan - Horizon", + "TerritoryId": 145, + "InteractionType": "UseItem", + "ItemId": 30362, + "TargetTerritoryId": 140 + }, + { "Mount": true, - "Fly": true, "DataId": 1008730, "Position": { "X": -431.26575, @@ -61,7 +65,8 @@ "Z": -367.17786 }, "TerritoryId": 140, - "InteractionType": "CompleteQuest" + "InteractionType": "CompleteQuest", + "NextQuestId": 1318 } ] } diff --git a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1318_The Three Collectors.json b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1318_The Three Collectors.json index ae735c2a..aca0ffc4 100644 --- a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1318_The Three Collectors.json +++ b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1318_The Three Collectors.json @@ -12,6 +12,7 @@ "Y": 23.113976, "Z": -367.8188 }, + "StopDistance": 5, "TerritoryId": 140, "InteractionType": "AcceptQuest" } @@ -77,7 +78,8 @@ "Z": 378.80518 }, "TerritoryId": 155, - "InteractionType": "Interact" + "InteractionType": "Interact", + "Fly": true } ] }, @@ -93,23 +95,14 @@ "Z": 479.69775 }, "TerritoryId": 155, - "InteractionType": "Interact" + "InteractionType": "Interact", + "Fly": true } ] }, { "Sequence": 6, "Steps": [ - { - "DataId": 2003671, - "Position": { - "X": 489.181, - "Y": 206.8937, - "Z": 479.662 - }, - "TerritoryId": 155, - "InteractionType": "Interact" - }, { "TerritoryId": 155, "InteractionType": "Duty", @@ -127,6 +120,7 @@ "Y": 207.33582, "Z": 475.33374 }, + "StopDistance": 7, "TerritoryId": 155, "InteractionType": "Interact" } @@ -136,7 +130,12 @@ "Sequence": 255, "Steps": [ { - "AetheryteShortcut": "Western Thanalan - Horizon", + "TerritoryId": 145, + "InteractionType": "UseItem", + "ItemId": 30362, + "TargetTerritoryId": 140 + }, + { "Mount": true, "Fly": true, "DataId": 1008788, @@ -146,7 +145,8 @@ "Z": -367.57465 }, "TerritoryId": 140, - "InteractionType": "CompleteQuest" + "InteractionType": "CompleteQuest", + "NextQuestId": 1438 } ] } diff --git a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1438_The Business of Betrothal.json b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1438_The Business of Betrothal.json index a210caa3..b14136e8 100644 --- a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1438_The Business of Betrothal.json +++ b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1438_The Business of Betrothal.json @@ -142,11 +142,8 @@ "Z": 525.81055 }, "TerritoryId": 137, - "InteractionType": "Interact" - }, - { - "TerritoryId": 137, - "InteractionType": "CompleteQuest" + "InteractionType": "CompleteQuest", + "NextQuestId": 1439 } ] } diff --git a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1439_A Burst of Inspiration.json b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1439_A Burst of Inspiration.json index 0ee913ab..73d05f99 100644 --- a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1439_A Burst of Inspiration.json +++ b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1439_A Burst of Inspiration.json @@ -35,6 +35,16 @@ { "Sequence": 2, "Steps": [ + { + "Position": { + "X": 581.1095, + "Y": 14.587067, + "Z": 394.20828 + }, + "TerritoryId": 137, + "InteractionType": "WalkTo", + "Fly": true + }, { "DataId": 1009319, "Position": { @@ -75,7 +85,8 @@ "Z": 344.71655 }, "TerritoryId": 138, - "InteractionType": "CompleteQuest" + "InteractionType": "CompleteQuest", + "NextQuestId": 1440 } ] } diff --git a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1440_Seeds of Rebellion.json b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1440_Seeds of Rebellion.json index 8e1968e8..45f4a820 100644 --- a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1440_Seeds of Rebellion.json +++ b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1440_Seeds of Rebellion.json @@ -37,7 +37,15 @@ "Z": 425.58936 }, "TerritoryId": 138, - "InteractionType": "Interact" + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] }, { "DataId": 2004325, @@ -47,7 +55,15 @@ "Z": 514.7324 }, "TerritoryId": 138, - "InteractionType": "Interact" + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] }, { "DataId": 2004326, @@ -57,7 +73,15 @@ "Z": 596.765 }, "TerritoryId": 138, - "InteractionType": "Interact" + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] } ] }, @@ -73,7 +97,16 @@ "Z": 684.1992 }, "TerritoryId": 138, - "InteractionType": "Interact" + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Type": "YesNo", + "ExcelSheet": "Addon", + "Prompt": 102445, + "PromptIsRegularExpression": true, + "Yes": true + } + ] }, { "Comment": "Fight some Mandragoras", @@ -84,7 +117,7 @@ }, "TerritoryId": 138, "InteractionType": "Combat", - "EnemySpawnType": "OverworldEnemies", + "EnemySpawnType": "FateEnemies", "KillEnemyDataIds": [ 2950, 2951, @@ -100,8 +133,16 @@ "Steps": [ { "AetheryteShortcut": "Eastern La Noscea - Costa Del Sol", - "Mount": true, "Fly": true, + "Position": { + "X": 581.46533, + "Y": 14.587067, + "Z": 393.86594 + }, + "TerritoryId": 137, + "InteractionType": "WalkTo" + }, + { "DataId": 1009319, "Position": { "X": 581.3534, @@ -142,7 +183,8 @@ "Z": 10.879639 }, "TerritoryId": 137, - "InteractionType": "CompleteQuest" + "InteractionType": "CompleteQuest", + "NextQuestId": 1441 } ] } diff --git a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1441_A Case of Indecency.json b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1441_A Case of Indecency.json index 28200b4d..36c6a866 100644 --- a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1441_A Case of Indecency.json +++ b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1441_A Case of Indecency.json @@ -89,11 +89,8 @@ "Z": 455.2528 }, "TerritoryId": 137, - "InteractionType": "Interact" - }, - { - "TerritoryId": 137, - "InteractionType": "CompleteQuest" + "InteractionType": "CompleteQuest", + "NextQuestId": 166 } ] } diff --git a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/166_Eight-armed and Dangerous.json b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/166_Eight-armed and Dangerous.json index 3884020a..f191b9fc 100644 --- a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/166_Eight-armed and Dangerous.json +++ b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/166_Eight-armed and Dangerous.json @@ -104,6 +104,15 @@ "[Ul'dah] Aetheryte Plaza", "[Ul'dah] Gladiators' Guild" ], + "Position": { + "X": -71.1609, + "Y": 6.9845705, + "Z": 9.066199 + }, + "TerritoryId": 131, + "InteractionType": "WalkTo" + }, + { "DataId": 1010281, "Position": { "X": -70.96979, @@ -111,7 +120,8 @@ "Z": 3.982544 }, "TerritoryId": 131, - "InteractionType": "Interact" + "InteractionType": "Interact", + "DisableNavmesh": true } ] }, @@ -130,7 +140,8 @@ "Z": -3.9215698 }, "TerritoryId": 130, - "InteractionType": "CompleteQuest" + "InteractionType": "CompleteQuest", + "NextQuestId": 202 } ] } diff --git a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/202_What Price Victory.json b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/202_What Price Victory.json index 2552df26..be98277a 100644 --- a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/202_What Price Victory.json +++ b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/202_What Price Victory.json @@ -20,6 +20,15 @@ { "Sequence": 1, "Steps": [ + { + "Position": { + "X": -153.18225, + "Y": 14.005, + "Z": 43.458076 + }, + "TerritoryId": 130, + "InteractionType": "WalkTo" + }, { "AethernetShortcut": [ "[Ul'dah] Thaumaturges' Guild", @@ -83,7 +92,12 @@ "Z": 260.57825 }, "TerritoryId": 141, - "InteractionType": "Interact" + "InteractionType": "Interact", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": [ + "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Gate of Nald (Central Thanalan)" + ] } ] }, @@ -103,7 +117,8 @@ "Z": -5.661133 }, "TerritoryId": 130, - "InteractionType": "CompleteQuest" + "InteractionType": "CompleteQuest", + "NextQuestId": 203 } ] } diff --git a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/203_The Trouble with Truffles.json b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/203_The Trouble with Truffles.json index cda4ab0c..56522def 100644 --- a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/203_The Trouble with Truffles.json +++ b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/203_The Trouble with Truffles.json @@ -20,6 +20,15 @@ { "Sequence": 1, "Steps": [ + { + "Position": { + "X": -153.18225, + "Y": 14.005, + "Z": 43.458076 + }, + "TerritoryId": 130, + "InteractionType": "WalkTo" + }, { "AethernetShortcut": [ "[Ul'dah] Thaumaturges' Guild", @@ -69,7 +78,24 @@ "Z": 8.255066 }, "TerritoryId": 131, - "InteractionType": "Interact" + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, + { + "Position": { + "X": 109.42333, + "Y": 8, + "Z": 8.92655 + }, + "TerritoryId": 131, + "InteractionType": "WalkTo" }, { "DataId": 2004900, @@ -79,7 +105,15 @@ "Z": -35.233154 }, "TerritoryId": 131, - "InteractionType": "Interact" + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] }, { "DataId": 2004899, @@ -89,7 +123,15 @@ "Z": -74.05206 }, "TerritoryId": 131, - "InteractionType": "Interact" + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] } ] }, @@ -120,14 +162,25 @@ "[Ul'dah] Gladiators' Guild", "[Ul'dah] Sapphire Avenue Exchange" ], + "Position": { + "X": 137.68585, + "Y": 3.9999998, + "Z": -58.555218 + }, + "TerritoryId": 131, + "InteractionType": "WalkTo" + }, + { "DataId": 1001679, "Position": { "X": 140.48975, "Y": 4.0099983, "Z": -59.80017 }, + "StopDistance": 5, "TerritoryId": 131, - "InteractionType": "CompleteQuest" + "InteractionType": "CompleteQuest", + "NextQuestId": 204 } ] } diff --git a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/204_The Coliseum Conundrum.json b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/204_The Coliseum Conundrum.json index 1dcb5424..c7482915 100644 --- a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/204_The Coliseum Conundrum.json +++ b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/204_The Coliseum Conundrum.json @@ -25,6 +25,15 @@ "[Ul'dah] Sapphire Avenue Exchange", "[Ul'dah] Gladiators' Guild" ], + "Position": { + "X": -71.1609, + "Y": 6.9845705, + "Z": 9.066199 + }, + "TerritoryId": 131, + "InteractionType": "WalkTo" + }, + { "DataId": 1010330, "Position": { "X": -69.5354, @@ -33,6 +42,7 @@ }, "TerritoryId": 131, "InteractionType": "Interact", + "DisableNavmesh": true, "DialogueChoices": [ { "Type": "YesNo", @@ -53,6 +63,7 @@ "Y": 6.9839687, "Z": -0.045776367 }, + "StopDistance": 5, "TerritoryId": 131, "InteractionType": "Interact" } @@ -117,7 +128,8 @@ "Z": 0.07623291 }, "TerritoryId": 131, - "InteractionType": "CompleteQuest" + "InteractionType": "CompleteQuest", + "NextQuestId": 490 } ] } diff --git a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/490_Shades of Sil'dih.json b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/490_Shades of Sil'dih.json index 195aca4d..7a67a928 100644 --- a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/490_Shades of Sil'dih.json +++ b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/490_Shades of Sil'dih.json @@ -86,7 +86,8 @@ "Z": 171.12988 }, "TerritoryId": 140, - "InteractionType": "CompleteQuest" + "InteractionType": "CompleteQuest", + "NextQuestId": 491 } ] } diff --git a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/491_Sibling Strife.json b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/491_Sibling Strife.json index b5559847..6faca692 100644 --- a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/491_Sibling Strife.json +++ b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/491_Sibling Strife.json @@ -129,7 +129,8 @@ "Z": 96.29968 }, "TerritoryId": 131, - "InteractionType": "CompleteQuest" + "InteractionType": "CompleteQuest", + "NextQuestId": 492 } ] } diff --git a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/492_Beneath the Mask.json b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/492_Beneath the Mask.json index 2c07c416..8ec8a564 100644 --- a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/492_Beneath the Mask.json +++ b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/492_Beneath the Mask.json @@ -123,7 +123,8 @@ "Z": 27.237305 }, "TerritoryId": 131, - "InteractionType": "CompleteQuest" + "InteractionType": "CompleteQuest", + "NextQuestId": 493 } ] } diff --git a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/493_Truths Untold.json b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/493_Truths Untold.json index d1ae76f6..b494762b 100644 --- a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/493_Truths Untold.json +++ b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/493_Truths Untold.json @@ -81,7 +81,8 @@ "Z": 29.343018 }, "TerritoryId": 131, - "InteractionType": "CompleteQuest" + "InteractionType": "CompleteQuest", + "NextQuestId": 502 } ] } diff --git a/QuestPaths/quest-v1.json b/QuestPaths/quest-v1.json index a3bfd6f9..6a00bb26 100644 --- a/QuestPaths/quest-v1.json +++ b/QuestPaths/quest-v1.json @@ -594,7 +594,8 @@ "AfterInteraction", "AfterItemUse", "AfterAction", - "OverworldEnemies" + "OverworldEnemies", + "FateEnemies" ] }, "KillEnemyDataIds": { @@ -1020,6 +1021,9 @@ "integer" ] }, + "PromptIsRegularExpression": { + "type": "boolean" + }, "Yes": { "type": "boolean", "default": true @@ -1048,11 +1052,17 @@ "null" ] }, + "PromptIsRegularExpression": { + "type": "boolean" + }, "Answer": { "type": [ "string", "integer" ] + }, + "AnswerIsRegularExpression": { + "type": "boolean" } }, "required": [ diff --git a/Questionable.Model/Questing/Converter/EnemySpawnTypeConverter.cs b/Questionable.Model/Questing/Converter/EnemySpawnTypeConverter.cs index d37c5b7c..4abc2739 100644 --- a/Questionable.Model/Questing/Converter/EnemySpawnTypeConverter.cs +++ b/Questionable.Model/Questing/Converter/EnemySpawnTypeConverter.cs @@ -12,5 +12,6 @@ public sealed class EnemySpawnTypeConverter() : EnumConverter(V { EEnemySpawnType.AfterAction, "AfterAction" }, { EEnemySpawnType.AutoOnEnterArea, "AutoOnEnterArea" }, { EEnemySpawnType.OverworldEnemies, "OverworldEnemies" }, + { EEnemySpawnType.FateEnemies, "FateEnemies" }, }; } diff --git a/Questionable.Model/Questing/DialogueChoice.cs b/Questionable.Model/Questing/DialogueChoice.cs index 41cb2519..a43a335c 100644 --- a/Questionable.Model/Questing/DialogueChoice.cs +++ b/Questionable.Model/Questing/DialogueChoice.cs @@ -16,6 +16,7 @@ public sealed class DialogueChoice [JsonConverter(typeof(ExcelRefConverter))] public ExcelRef? Answer { get; set; } + public bool PromptIsRegularExpression { get; set; } public bool AnswerIsRegularExpression { get; set; } /// diff --git a/Questionable.Model/Questing/EEnemySpawnType.cs b/Questionable.Model/Questing/EEnemySpawnType.cs index f119ea08..aaf9d789 100644 --- a/Questionable.Model/Questing/EEnemySpawnType.cs +++ b/Questionable.Model/Questing/EEnemySpawnType.cs @@ -12,4 +12,5 @@ public enum EEnemySpawnType AfterAction, AutoOnEnterArea, OverworldEnemies, + FateEnemies, } diff --git a/Questionable/Controller/CombatController.cs b/Questionable/Controller/CombatController.cs index d1ff66be..821dcf02 100644 --- a/Questionable/Controller/CombatController.cs +++ b/Questionable/Controller/CombatController.cs @@ -196,8 +196,9 @@ internal sealed class CombatController : IDisposable // TODO this works as somewhat of a delay between killing enemies if certain items/flags are checked // but also delays killing the next enemy a little - if (_currentFight == null || _currentFight.Data.SpawnType != EEnemySpawnType.OverworldEnemies || - _currentFight.Data.ComplexCombatDatas.Count == 0) + if (_currentFight == null || + _currentFight.Data.SpawnType == EEnemySpawnType.OverworldEnemies || + (_currentFight.Data.SpawnType != EEnemySpawnType.FateEnemies && _currentFight.Data.KillEnemyDataIds.Count > 0)) { if (battleNpc.IsDead) return 0; @@ -262,6 +263,13 @@ internal sealed class CombatController : IDisposable } } + if (_currentFight?.Data.SpawnType == EEnemySpawnType.FateEnemies) + { + var gameObjectStruct = (GameObject*)gameObject.Address; + if (gameObjectStruct->FateId != 0) + return 15; + } + // stuff trying to kill us if (battleNpc.TargetObjectId == _clientState.LocalPlayer?.GameObjectId) return 10; diff --git a/Questionable/Controller/GameUi/InteractionUiController.cs b/Questionable/Controller/GameUi/InteractionUiController.cs index 21c95d29..35f89d06 100644 --- a/Questionable/Controller/GameUi/InteractionUiController.cs +++ b/Questionable/Controller/GameUi/InteractionUiController.cs @@ -428,19 +428,19 @@ internal sealed class InteractionUiController : IDisposable continue; } - string? excelPrompt = ResolveReference(quest, dialogueChoice.ExcelSheet, dialogueChoice.Prompt, false) - ?.GetString(); + StringOrRegex? excelPrompt = ResolveReference(quest, dialogueChoice.ExcelSheet, dialogueChoice.Prompt, + dialogueChoice.PromptIsRegularExpression); StringOrRegex? excelAnswer = ResolveReference(quest, dialogueChoice.ExcelSheet, dialogueChoice.Answer, dialogueChoice.AnswerIsRegularExpression); - if (actualPrompt == null && !string.IsNullOrEmpty(excelPrompt)) + if (actualPrompt == null && excelPrompt != null) { _logger.LogInformation("Unexpected excelPrompt: {ExcelPrompt}", excelPrompt); continue; } if (actualPrompt != null && - (excelPrompt == null || !GameFunctions.GameStringEquals(actualPrompt, excelPrompt))) + (excelPrompt == null || !IsMatch(actualPrompt, excelPrompt))) { _logger.LogInformation("Unexpected excelPrompt: {ExcelPrompt}, actualPrompt: {ActualPrompt}", excelPrompt, actualPrompt); @@ -597,9 +597,9 @@ internal sealed class InteractionUiController : IDisposable continue; } - string? excelPrompt = ResolveReference(quest, dialogueChoice.ExcelSheet, dialogueChoice.Prompt, false) - ?.GetString(); - if (excelPrompt == null || !GameFunctions.GameStringEquals(actualPrompt, excelPrompt)) + StringOrRegex? excelPrompt = ResolveReference(quest, dialogueChoice.ExcelSheet, dialogueChoice.Prompt, + dialogueChoice.PromptIsRegularExpression); + if (excelPrompt == null || !IsMatch(actualPrompt, excelPrompt)) { _logger.LogInformation("Unexpected excelPrompt: {ExcelPrompt}, actualPrompt: {ActualPrompt}", excelPrompt, actualPrompt); diff --git a/Questionable/Controller/Steps/Interactions/Combat.cs b/Questionable/Controller/Steps/Interactions/Combat.cs index eab500dd..38b62286 100644 --- a/Questionable/Controller/Steps/Interactions/Combat.cs +++ b/Questionable/Controller/Steps/Interactions/Combat.cs @@ -83,6 +83,7 @@ internal static class Combat break; case EEnemySpawnType.OverworldEnemies: + case EEnemySpawnType.FateEnemies: yield return CreateTask(quest, sequence, step); break; From 4ad101b8ed9282df577247e0a7e45d390c04d1d0 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Thu, 12 Sep 2024 19:11:32 +0200 Subject: [PATCH 235/450] Second Hildibrand pass --- ...1204_The Rise and Fall of a Gentlemen.json | 13 +-- .../1206_After Her Own Heart.json | 11 ++- .../1207_The Immaculate Deception.json | 25 ++++- .../1315_The Science of Deduction.json | 44 ++++----- .../Hildibrand Quests/1316_The Hammer.json | 14 ++- .../1317_Manderville Men.json | 1 - .../1318_The Three Collectors.json | 4 - .../1438_The Business of Betrothal.json | 19 +++- .../1439_A Burst of Inspiration.json | 1 + .../1440_Seeds of Rebellion.json | 29 +++++- .../1441_A Case of Indecency.json | 9 +- .../166_Eight-armed and Dangerous.json | 62 +++++++++++- .../202_What Price Victory.json | 22 ++++- .../203_The Trouble with Truffles.json | 36 +++++-- .../204_The Coliseum Conundrum.json | 17 +++- .../490_Shades of Sil'dih.json | 11 ++- .../Hildibrand Quests/491_Sibling Strife.json | 53 ++++++++-- .../492_Beneath the Mask.json | 99 ++++++++++++++++++- .../Hildibrand Quests/493_Truths Untold.json | 30 ++++++ .../Hildibrand Quests/502_Her Last Vow.json | 21 ++-- Questionable/Controller/CombatController.cs | 10 +- .../Steps/Shared/AethernetShortcut.cs | 13 ++- Questionable/Windows/DebugOverlay.cs | 7 +- 23 files changed, 448 insertions(+), 103 deletions(-) diff --git a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1204_The Rise and Fall of a Gentlemen.json b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1204_The Rise and Fall of a Gentlemen.json index 32dc374c..c945779e 100644 --- a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1204_The Rise and Fall of a Gentlemen.json +++ b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1204_The Rise and Fall of a Gentlemen.json @@ -35,7 +35,6 @@ "Steps": [ { "AetheryteShortcut": "Eastern Thanalan - Camp Drybone", - "Mount": true, "Fly": true, "DataId": 1005709, "Position": { @@ -53,7 +52,6 @@ "Steps": [ { "AetheryteShortcut": "Southern Thanalan - Forgotten Springs", - "Mount": true, "Fly": true, "Position": { "X": -273.9414, @@ -63,8 +61,13 @@ "TerritoryId": 146, "InteractionType": "Combat", "EnemySpawnType": "FateEnemies", - "KillEnemyDataIds": [ - 2390 + "ComplexCombatData": [ + { + "DataId": 2390 + }, + { + "DataId": 2391 + } ] } ] @@ -74,7 +77,6 @@ "Steps": [ { "AetheryteShortcut": "Eastern Thanalan - Camp Drybone", - "Mount": true, "Fly": true, "DataId": 1005709, "Position": { @@ -92,7 +94,6 @@ "Steps": [ { "AetheryteShortcut": "Southern Thanalan - Forgotten Springs", - "Mount": true, "Fly": true, "DataId": 1005710, "Position": { diff --git a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1206_After Her Own Heart.json b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1206_After Her Own Heart.json index 39548b26..9ad69626 100644 --- a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1206_After Her Own Heart.json +++ b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1206_After Her Own Heart.json @@ -64,6 +64,15 @@ { "Sequence": 3, "Steps": [ + { + "Position": { + "X": -147.13564, + "Y": 11.999999, + "Z": -5.086131 + }, + "TerritoryId": 130, + "InteractionType": "WalkTo" + }, { "DataId": 1005716, "Position": { @@ -117,7 +126,7 @@ "Y": 12, "Z": 0.99176025 }, - "StopDistance": 4, + "StopDistance": 7, "TerritoryId": 130, "InteractionType": "CompleteQuest", "NextQuestId": 1207 diff --git a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1207_The Immaculate Deception.json b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1207_The Immaculate Deception.json index 1cad0dd0..0ffd60e7 100644 --- a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1207_The Immaculate Deception.json +++ b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1207_The Immaculate Deception.json @@ -29,7 +29,6 @@ "Steps": [ { "AetheryteShortcut": "Eastern Thanalan - Camp Drybone", - "Mount": true, "Fly": true, "DataId": 1005722, "Position": { @@ -46,8 +45,28 @@ "Sequence": 2, "Steps": [ { - "Mount": true, + "Position": { + "X": -567.424, + "Y": 5.893569, + "Z": -221.67596 + }, + "TerritoryId": 145, + "InteractionType": "WalkTo", "Fly": true, + "SkipConditions": { + "StepIf": { + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + } + } + }, + { "DataId": 1004042, "Position": { "X": -568.4138, @@ -108,7 +127,6 @@ "Sequence": 3, "Steps": [ { - "Mount": true, "Fly": true, "DataId": 1005724, "Position": { @@ -126,7 +144,6 @@ "Steps": [ { "AetheryteShortcut": "Eastern Thanalan - Camp Drybone", - "Mount": true, "Fly": true, "DataId": 1005727, "Position": { diff --git a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1315_The Science of Deduction.json b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1315_The Science of Deduction.json index 92e45cfe..db0936c9 100644 --- a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1315_The Science of Deduction.json +++ b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1315_The Science of Deduction.json @@ -18,7 +18,7 @@ "Y": 5.4049973, "Z": -249.25616 }, - "StopDistance": 4, + "StopDistance": 5, "TerritoryId": 145, "InteractionType": "AcceptQuest" } @@ -50,7 +50,6 @@ "TargetTerritoryId": 140 }, { - "Mount": true, "DataId": 1008709, "Position": { "X": -431.7846, @@ -67,7 +66,6 @@ "Steps": [ { "AetheryteShortcut": "Western Thanalan - Horizon", - "Mount": true, "Fly": true, "DataId": 1008713, "Position": { @@ -87,7 +85,6 @@ ] }, { - "Mount": true, "Fly": true, "DataId": 1002022, "Position": { @@ -107,7 +104,6 @@ ] }, { - "Mount": true, "Fly": true, "DataId": 1008715, "Position": { @@ -171,6 +167,7 @@ "Y": 13.504211, "Z": 159.19727 }, + "StopDistance": 4.5, "TerritoryId": 140, "InteractionType": "Interact", "CompletionQuestVariablesFlags": [ @@ -182,6 +179,25 @@ 128 ] }, + { + "DataId": 2003657, + "Position": { + "X": -80.18622, + "Y": 13.412659, + "Z": 158.12915 + }, + "StopDistance": 4.5, + "TerritoryId": 140, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, { "DataId": 2003659, "Position": { @@ -199,24 +215,6 @@ null, 16 ] - }, - { - "DataId": 2003657, - "Position": { - "X": -80.18622, - "Y": 13.412659, - "Z": 158.12915 - }, - "TerritoryId": 140, - "InteractionType": "Interact", - "CompletionQuestVariablesFlags": [ - null, - null, - null, - null, - null, - 64 - ] } ] }, diff --git a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1316_The Hammer.json b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1316_The Hammer.json index 2d1bdd04..56da32e8 100644 --- a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1316_The Hammer.json +++ b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1316_The Hammer.json @@ -22,7 +22,6 @@ "Steps": [ { "AetheryteShortcut": "Northern Thanalan - Camp Bluefog", - "Mount": true, "Fly": true, "DataId": 2003664, "Position": { @@ -39,7 +38,6 @@ "Sequence": 2, "Steps": [ { - "Mount": true, "DataId": 2003665, "Position": { "X": 34.50061, @@ -56,7 +54,16 @@ "Sequence": 255, "Steps": [ { - "Mount": true, + "Position": { + "X": 110.67165, + "Y": 18.372795, + "Z": 122.4577 + }, + "TerritoryId": 147, + "InteractionType": "WalkTo", + "Fly": true + }, + { "DataId": 2003666, "Position": { "X": 111.192505, @@ -65,7 +72,6 @@ }, "TerritoryId": 147, "InteractionType": "CompleteQuest", - "Fly": true, "NextQuestId": 1317 } ] diff --git a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1317_Manderville Men.json b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1317_Manderville Men.json index 89a9660d..da8f1b2d 100644 --- a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1317_Manderville Men.json +++ b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1317_Manderville Men.json @@ -42,7 +42,6 @@ "TargetTerritoryId": 140 }, { - "Mount": true, "DataId": 1008730, "Position": { "X": -431.26575, diff --git a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1318_The Three Collectors.json b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1318_The Three Collectors.json index aca0ffc4..a11c615b 100644 --- a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1318_The Three Collectors.json +++ b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1318_The Three Collectors.json @@ -23,7 +23,6 @@ "Steps": [ { "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", - "Mount": true, "Fly": true, "DataId": 1008739, "Position": { @@ -70,7 +69,6 @@ "Sequence": 4, "Steps": [ { - "Mount": true, "DataId": 2003741, "Position": { "X": 394.7965, @@ -87,7 +85,6 @@ "Sequence": 5, "Steps": [ { - "Mount": true, "DataId": 1008752, "Position": { "X": 487.81555, @@ -136,7 +133,6 @@ "TargetTerritoryId": 140 }, { - "Mount": true, "Fly": true, "DataId": 1008788, "Position": { diff --git a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1438_The Business of Betrothal.json b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1438_The Business of Betrothal.json index b14136e8..8790f51d 100644 --- a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1438_The Business of Betrothal.json +++ b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1438_The Business of Betrothal.json @@ -28,7 +28,6 @@ "Steps": [ { "AetheryteShortcut": "Eastern La Noscea - Costa Del Sol", - "Mount": true, "Fly": true, "DataId": 1009305, "Position": { @@ -64,7 +63,8 @@ "Prompt": "TEXT_CHRHDB301_01438_Q2_000_000", "Answer": "TEXT_CHRHDB301_01438_A2_000_030" } - ] + ], + "Fly": true } ] }, @@ -72,7 +72,6 @@ "Sequence": 3, "Steps": [ { - "Mount": true, "Fly": true, "DataId": 1009310, "Position": { @@ -97,7 +96,8 @@ "Z": 421.01147 }, "TerritoryId": 137, - "InteractionType": "Interact" + "InteractionType": "Interact", + "Fly": true } ] }, @@ -119,6 +119,16 @@ { "Sequence": 6, "Steps": [ + { + "Position": { + "X": 582.44116, + "Y": 14.587065, + "Z": 394.23407 + }, + "TerritoryId": 137, + "InteractionType": "WalkTo", + "Fly": true + }, { "DataId": 1009317, "Position": { @@ -143,6 +153,7 @@ }, "TerritoryId": 137, "InteractionType": "CompleteQuest", + "Fly": true, "NextQuestId": 1439 } ] diff --git a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1439_A Burst of Inspiration.json b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1439_A Burst of Inspiration.json index 73d05f99..ad3c659d 100644 --- a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1439_A Burst of Inspiration.json +++ b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1439_A Burst of Inspiration.json @@ -86,6 +86,7 @@ }, "TerritoryId": 138, "InteractionType": "CompleteQuest", + "Fly": true, "NextQuestId": 1440 } ] diff --git a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1440_Seeds of Rebellion.json b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1440_Seeds of Rebellion.json index 45f4a820..9305f383 100644 --- a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1440_Seeds of Rebellion.json +++ b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1440_Seeds of Rebellion.json @@ -28,8 +28,29 @@ "Sequence": 1, "Steps": [ { - "Mount": true, - "Fly": true, + "DataId": 1003584, + "Position": { + "X": 317.43335, + "Y": -36.325005, + "Z": 352.86487 + }, + "TerritoryId": 138, + "InteractionType": "Interact", + "TargetTerritoryId": 138, + "SkipConditions": { + "StepIf": { + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + } + } + }, + { "DataId": 2004324, "Position": { "X": -283.0091, @@ -56,6 +77,7 @@ }, "TerritoryId": 138, "InteractionType": "Interact", + "Fly": true, "CompletionQuestVariablesFlags": [ null, null, @@ -74,6 +96,7 @@ }, "TerritoryId": 138, "InteractionType": "Interact", + "Fly": true, "CompletionQuestVariablesFlags": [ null, null, @@ -98,6 +121,7 @@ }, "TerritoryId": 138, "InteractionType": "Interact", + "Fly": true, "DialogueChoices": [ { "Type": "YesNo", @@ -158,7 +182,6 @@ "Sequence": 4, "Steps": [ { - "Mount": true, "Fly": true, "DataId": 1009336, "Position": { diff --git a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1441_A Case of Indecency.json b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1441_A Case of Indecency.json index 36c6a866..a29c28f2 100644 --- a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1441_A Case of Indecency.json +++ b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1441_A Case of Indecency.json @@ -44,7 +44,8 @@ "Z": 375.17358 }, "TerritoryId": 137, - "InteractionType": "Interact" + "InteractionType": "Interact", + "Fly": true } ] }, @@ -59,7 +60,8 @@ "Z": 350.3623 }, "TerritoryId": 137, - "InteractionType": "Interact" + "InteractionType": "Interact", + "Fly": true } ] }, @@ -74,7 +76,8 @@ "Z": 447.13513 }, "TerritoryId": 137, - "InteractionType": "Interact" + "InteractionType": "Interact", + "Fly": true } ] }, diff --git a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/166_Eight-armed and Dangerous.json b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/166_Eight-armed and Dangerous.json index f191b9fc..55f5271e 100644 --- a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/166_Eight-armed and Dangerous.json +++ b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/166_Eight-armed and Dangerous.json @@ -18,6 +18,7 @@ "Y": 17.44805, "Z": 448.69153 }, + "StopDistance": 7, "TerritoryId": 137, "InteractionType": "AcceptQuest" } @@ -32,6 +33,15 @@ "[Ul'dah] Aetheryte Plaza", "[Ul'dah] Thaumaturges' Guild" ], + "Position": { + "X": -153.18225, + "Y": 14.005, + "Z": 43.458076 + }, + "TerritoryId": 130, + "InteractionType": "WalkTo" + }, + { "DataId": 1010160, "Position": { "X": -144.64032, @@ -46,6 +56,15 @@ { "Sequence": 2, "Steps": [ + { + "Position": { + "X": -153.18225, + "Y": 14.005, + "Z": 43.458076 + }, + "TerritoryId": 130, + "InteractionType": "WalkTo" + }, { "AethernetShortcut": [ "[Ul'dah] Thaumaturges' Guild", @@ -70,6 +89,15 @@ "[Ul'dah] Gladiators' Guild", "[Ul'dah] Thaumaturges' Guild" ], + "Position": { + "X": -153.18225, + "Y": 14.005, + "Z": 43.458076 + }, + "TerritoryId": 130, + "InteractionType": "WalkTo" + }, + { "DataId": 1010160, "Position": { "X": -144.64032, @@ -84,6 +112,15 @@ { "Sequence": 4, "Steps": [ + { + "Position": { + "X": -127.24249, + "Y": 7.999999, + "Z": -55.6639 + }, + "TerritoryId": 130, + "InteractionType": "WalkTo" + }, { "DataId": 1010188, "Position": { @@ -99,15 +136,24 @@ { "Sequence": 5, "Steps": [ + { + "Position": { + "X": -123.05803, + "Y": 1.363661, + "Z": -142.65125 + }, + "TerritoryId": 130, + "InteractionType": "WalkTo" + }, { "AethernetShortcut": [ "[Ul'dah] Aetheryte Plaza", "[Ul'dah] Gladiators' Guild" ], "Position": { - "X": -71.1609, - "Y": 6.9845705, - "Z": 9.066199 + "X": -72.12142, + "Y": 6.9845715, + "Z": 8.82207 }, "TerritoryId": 131, "InteractionType": "WalkTo" @@ -119,6 +165,7 @@ "Y": 6.9839683, "Z": 3.982544 }, + "StopDistance": 7, "TerritoryId": 131, "InteractionType": "Interact", "DisableNavmesh": true @@ -133,6 +180,15 @@ "[Ul'dah] Gladiators' Guild", "[Ul'dah] Thaumaturges' Guild" ], + "Position": { + "X": -153.18225, + "Y": 14.005, + "Z": 43.458076 + }, + "TerritoryId": 130, + "InteractionType": "WalkTo" + }, + { "DataId": 1010287, "Position": { "X": -142.71765, diff --git a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/202_What Price Victory.json b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/202_What Price Victory.json index be98277a..d01258b6 100644 --- a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/202_What Price Victory.json +++ b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/202_What Price Victory.json @@ -49,8 +49,17 @@ "Sequence": 2, "Steps": [ { - "Mount": true, "AetheryteShortcut": "Central Thanalan - Black Brush Station", + "Position": { + "X": -60.649715, + "Y": -11.872707, + "Z": -61.934204 + }, + "TerritoryId": 141, + "InteractionType": "WalkTo", + "Fly": true + }, + { "DataId": 1010293, "Position": { "X": -61.387024, @@ -66,7 +75,6 @@ "Sequence": 3, "Steps": [ { - "Mount": true, "Fly": true, "DataId": 1010298, "Position": { @@ -83,7 +91,6 @@ "Sequence": 4, "Steps": [ { - "Mount": true, "Fly": true, "DataId": 1010310, "Position": { @@ -110,6 +117,15 @@ "[Ul'dah] Aetheryte Plaza", "[Ul'dah] Thaumaturges' Guild" ], + "Position": { + "X": -153.18225, + "Y": 14.005, + "Z": 43.458076 + }, + "TerritoryId": 130, + "InteractionType": "WalkTo" + }, + { "DataId": 1010290, "Position": { "X": -144.73187, diff --git a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/203_The Trouble with Truffles.json b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/203_The Trouble with Truffles.json index 56522def..cd2b096b 100644 --- a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/203_The Trouble with Truffles.json +++ b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/203_The Trouble with Truffles.json @@ -48,6 +48,23 @@ { "Sequence": 2, "Steps": [ + { + "Position": { + "X": -45.67461, + "Y": 11.927631, + "Z": -16.919664 + }, + "StopDistance": 0.25, + "TerritoryId": 131, + "InteractionType": "Jump", + "JumpDestination": { + "Position": { + "X": -48.14437, + "Y": 9.999995, + "Z": -10.52473 + } + } + }, { "DataId": 1010316, "Position": { @@ -55,7 +72,7 @@ "Y": 9.999972, "Z": -12.64978 }, - "StopDistance": 6, + "StopDistance": 7, "TerritoryId": 131, "InteractionType": "Interact" } @@ -65,10 +82,8 @@ "Sequence": 3, "Steps": [ { - "Comment": "This teleport is because I couldn't figure out jumping", - "AetheryteShortcut": "Ul'dah", "AethernetShortcut": [ - "[Ul'dah] Aetheryte Plaza", + "[Ul'dah] Gladiators' Guild", "[Ul'dah] Weavers' Guild" ], "DataId": 2004901, @@ -90,9 +105,9 @@ }, { "Position": { - "X": 109.42333, + "X": 108.07826, "Y": 8, - "Z": 8.92655 + "Z": 8.036793 }, "TerritoryId": 131, "InteractionType": "WalkTo" @@ -138,6 +153,15 @@ { "Sequence": 4, "Steps": [ + { + "Position": { + "X": 98.252335, + "Y": 8.000075, + "Z": -38.319664 + }, + "TerritoryId": 131, + "InteractionType": "WalkTo" + }, { "AethernetShortcut": [ "[Ul'dah] Sapphire Avenue Exchange", diff --git a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/204_The Coliseum Conundrum.json b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/204_The Coliseum Conundrum.json index c7482915..e3077813 100644 --- a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/204_The Coliseum Conundrum.json +++ b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/204_The Coliseum Conundrum.json @@ -26,9 +26,9 @@ "[Ul'dah] Gladiators' Guild" ], "Position": { - "X": -71.1609, - "Y": 6.9845705, - "Z": 9.066199 + "X": -72.12142, + "Y": 6.9845715, + "Z": 8.82207 }, "TerritoryId": 131, "InteractionType": "WalkTo" @@ -74,7 +74,6 @@ "Steps": [ { "AetheryteShortcut": "Eastern Thanalan - Camp Drybone", - "Mount": true, "Fly": true, "DataId": 1010161, "Position": { @@ -121,6 +120,15 @@ "[Ul'dah] Aetheryte Plaza", "[Ul'dah] Gladiators' Guild" ], + "Position": { + "X": -72.12142, + "Y": 6.9845715, + "Z": 8.82207 + }, + "TerritoryId": 131, + "InteractionType": "WalkTo" + }, + { "DataId": 1010330, "Position": { "X": -69.5354, @@ -129,6 +137,7 @@ }, "TerritoryId": 131, "InteractionType": "CompleteQuest", + "DisableNavmesh": true, "NextQuestId": 490 } ] diff --git a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/490_Shades of Sil'dih.json b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/490_Shades of Sil'dih.json index 7a67a928..c8403533 100644 --- a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/490_Shades of Sil'dih.json +++ b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/490_Shades of Sil'dih.json @@ -20,6 +20,15 @@ { "Sequence": 1, "Steps": [ + { + "Position": { + "X": -72.76394, + "Y": 6.9845715, + "Z": 6.476269 + }, + "TerritoryId": 131, + "InteractionType": "WalkTo" + }, { "AethernetShortcut": [ "[Ul'dah] Gladiators' Guild", @@ -65,6 +74,7 @@ "Y": 40, "Z": 92.11865 }, + "StopDistance": 5, "TerritoryId": 131, "InteractionType": "Interact" } @@ -78,7 +88,6 @@ "[Ul'dah] Alchemists' Guild", "[Ul'dah] Gate of the Sultana (Western Thanalan)" ], - "Mount": true, "DataId": 1011677, "Position": { "X": 363.54602, diff --git a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/491_Sibling Strife.json b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/491_Sibling Strife.json index 6faca692..cf1e140c 100644 --- a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/491_Sibling Strife.json +++ b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/491_Sibling Strife.json @@ -26,6 +26,15 @@ "[Ul'dah] Aetheryte Plaza", "[Ul'dah] Thaumaturges' Guild" ], + "Position": { + "X": -171.53638, + "Y": 17.999998, + "Z": 66.511505 + }, + "TerritoryId": 130, + "InteractionType": "WalkTo" + }, + { "DataId": 1011681, "Position": { "X": -182.29956, @@ -33,7 +42,15 @@ "Z": 56.90088 }, "TerritoryId": 130, - "InteractionType": "Interact" + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 16 + ] }, { "DataId": 1003897, @@ -43,7 +60,15 @@ "Z": 60.53247 }, "TerritoryId": 130, - "InteractionType": "Interact" + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] }, { "DataId": 1001294, @@ -53,7 +78,15 @@ "Z": 72.129395 }, "TerritoryId": 130, - "InteractionType": "Interact" + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] }, { "DataId": 1001708, @@ -63,7 +96,15 @@ "Z": 80.88806 }, "TerritoryId": 130, - "InteractionType": "Interact" + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] } ] }, @@ -102,14 +143,14 @@ "Sequence": 4, "Steps": [ { - "Mount": true, "Position": { "X": -345.65482, "Y": 23, "Z": -352.02484 }, "TerritoryId": 140, - "InteractionType": "WalkTo" + "InteractionType": "WalkTo", + "Fly": true } ] }, diff --git a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/492_Beneath the Mask.json b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/492_Beneath the Mask.json index 8ec8a564..a4977fd6 100644 --- a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/492_Beneath the Mask.json +++ b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/492_Beneath the Mask.json @@ -20,6 +20,15 @@ { "Sequence": 1, "Steps": [ + { + "Position": { + "X": 44.860275, + "Y": 34.02289, + "Z": -12.268097 + }, + "TerritoryId": 131, + "InteractionType": "WalkTo" + }, { "DataId": 2005164, "Position": { @@ -35,6 +44,25 @@ { "Sequence": 2, "Steps": [ + { + "Position": { + "X": 45.576427, + "Y": 34, + "Z": -23.220316 + }, + "TerritoryId": 131, + "InteractionType": "WalkTo" + }, + { + "Position": { + "X": 49.565746, + "Y": 33.999992, + "Z": -25.594622 + }, + "TerritoryId": 131, + "InteractionType": "WalkTo", + "DisableNavmesh": true + }, { "DataId": 2005165, "Position": { @@ -50,6 +78,25 @@ { "Sequence": 3, "Steps": [ + { + "Position": { + "X": 53.15642, + "Y": 33.999992, + "Z": -25.133741 + }, + "TerritoryId": 131, + "InteractionType": "WalkTo" + }, + { + "Position": { + "X": 62.437984, + "Y": 28.992012, + "Z": -34.336155 + }, + "TerritoryId": 131, + "InteractionType": "WalkTo", + "DisableNavmesh": true + }, { "DataId": 2005166, "Position": { @@ -65,6 +112,25 @@ { "Sequence": 4, "Steps": [ + { + "Position": { + "X": 62.437984, + "Y": 28.992012, + "Z": -34.336155 + }, + "TerritoryId": 131, + "InteractionType": "WalkTo" + }, + { + "Position": { + "X": 45.576427, + "Y": 34, + "Z": -23.220316 + }, + "TerritoryId": 131, + "InteractionType": "WalkTo", + "DisableNavmesh": true + }, { "DataId": 1011697, "Position": { @@ -87,8 +153,17 @@ "Y": 34, "Z": 29.984009 }, + "StopDistance": 7, "TerritoryId": 131, - "InteractionType": "Interact" + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] }, { "DataId": 1011694, @@ -97,8 +172,17 @@ "Y": 33.999992, "Z": 29.43457 }, + "StopDistance": 7, "TerritoryId": 131, - "InteractionType": "Interact" + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] }, { "DataId": 1011695, @@ -107,8 +191,17 @@ "Y": 33.999992, "Z": 30.044922 }, + "StopDistance": 7, "TerritoryId": 131, - "InteractionType": "Interact" + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] } ] }, diff --git a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/493_Truths Untold.json b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/493_Truths Untold.json index b494762b..b8673317 100644 --- a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/493_Truths Untold.json +++ b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/493_Truths Untold.json @@ -12,6 +12,7 @@ "Y": 34, "Z": 30.22815 }, + "StopDistance": 7, "TerritoryId": 131, "InteractionType": "AcceptQuest" } @@ -27,6 +28,7 @@ "Y": 33.99998, "Z": 29.343018 }, + "StopDistance": 7, "TerritoryId": 131, "InteractionType": "Interact" } @@ -40,12 +42,22 @@ "[Ul'dah] The Chamber of Rule", "[Ul'dah] Sapphire Avenue Exchange" ], + "Position": { + "X": 137.68585, + "Y": 3.9999998, + "Z": -58.555218 + }, + "TerritoryId": 131, + "InteractionType": "WalkTo" + }, + { "DataId": 1001679, "Position": { "X": 140.48975, "Y": 4.0099983, "Z": -59.80017 }, + "StopDistance": 5, "TerritoryId": 131, "InteractionType": "Interact" } @@ -73,6 +85,24 @@ { "Sequence": 255, "Steps": [ + { + "Position": { + "X": 22.47297, + "Y": 33.999996, + "Z": -40.833565 + }, + "TerritoryId": 131, + "InteractionType": "WalkTo" + }, + { + "Position": { + "X": 33.41606, + "Y": 34, + "Z": -32.54854 + }, + "TerritoryId": 131, + "InteractionType": "WalkTo" + }, { "DataId": 1011707, "Position": { diff --git a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/502_Her Last Vow.json b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/502_Her Last Vow.json index 156313e1..4fb68ddd 100644 --- a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/502_Her Last Vow.json +++ b/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/502_Her Last Vow.json @@ -22,7 +22,6 @@ "Steps": [ { "AetheryteShortcut": "Central Thanalan - Black Brush Station", - "Mount": true, "Fly": true, "DataId": 1011714, "Position": { @@ -46,14 +45,10 @@ "Z": 43.9917 }, "TerritoryId": 141, - "InteractionType": "Interact" - }, - { + "InteractionType": "Say", "ChatMessage": { "Key": "TEXT_CHRHDB505_00502_SAYTODO_000_000" - }, - "TerritoryId": 141, - "InteractionType": "Say" + } } ] }, @@ -61,9 +56,17 @@ "Sequence": 3, "Steps": [ { + "Position": { + "X": 159.84998, + "Y": 37.381317, + "Z": 174.60776 + }, + "TerritoryId": 153, + "InteractionType": "WalkTo", "AetheryteShortcut": "South Shroud - Quarrymill", - "Mount": true, - "Fly": true, + "Fly": true + }, + { "DataId": 1011722, "Position": { "X": 159.68555, diff --git a/Questionable/Controller/CombatController.cs b/Questionable/Controller/CombatController.cs index 821dcf02..26c4fa5c 100644 --- a/Questionable/Controller/CombatController.cs +++ b/Questionable/Controller/CombatController.cs @@ -198,7 +198,8 @@ internal sealed class CombatController : IDisposable // but also delays killing the next enemy a little if (_currentFight == null || _currentFight.Data.SpawnType == EEnemySpawnType.OverworldEnemies || - (_currentFight.Data.SpawnType != EEnemySpawnType.FateEnemies && _currentFight.Data.KillEnemyDataIds.Count > 0)) + _currentFight.Data.SpawnType == EEnemySpawnType.FateEnemies || + _currentFight.Data.KillEnemyDataIds.Count > 0) { if (battleNpc.IsDead) return 0; @@ -263,13 +264,6 @@ internal sealed class CombatController : IDisposable } } - if (_currentFight?.Data.SpawnType == EEnemySpawnType.FateEnemies) - { - var gameObjectStruct = (GameObject*)gameObject.Address; - if (gameObjectStruct->FateId != 0) - return 15; - } - // stuff trying to kill us if (battleNpc.TargetObjectId == _clientState.LocalPlayer?.GameObjectId) return 10; diff --git a/Questionable/Controller/Steps/Shared/AethernetShortcut.cs b/Questionable/Controller/Steps/Shared/AethernetShortcut.cs index 8df6c49a..25110ca8 100644 --- a/Questionable/Controller/Steps/Shared/AethernetShortcut.cs +++ b/Questionable/Controller/Steps/Shared/AethernetShortcut.cs @@ -185,13 +185,16 @@ internal static class AethernetShortcut { logger.LogInformation("Moving to aethernet shortcut"); _moving = true; + float distance = from switch + { + _ when from.IsFirmamentAetheryte() => 4.4f, + EAetheryteLocation.UldahChamberOfRule => 5f, + _ when AetheryteConverter.IsLargeAetheryte(from) => 10.9f, + _ => 6.9f, + }; movementController.NavigateTo(EMovementType.Quest, (uint)from, aetheryteData.Locations[from], false, true, - from.IsFirmamentAetheryte() - ? 4.4f - : AetheryteConverter.IsLargeAetheryte(from) - ? 10.9f - : 6.9f); + distance); } private void DoTeleport() diff --git a/Questionable/Windows/DebugOverlay.cs b/Questionable/Windows/DebugOverlay.cs index c41daf60..2f5f8916 100644 --- a/Questionable/Windows/DebugOverlay.cs +++ b/Questionable/Windows/DebugOverlay.cs @@ -25,7 +25,8 @@ internal sealed class DebugOverlay : Window private readonly Configuration _configuration; public DebugOverlay(QuestController questController, QuestRegistry questRegistry, IGameGui gameGui, - IClientState clientState, ICondition condition, AetheryteData aetheryteData, IObjectTable objectTable, CombatController combatController, Configuration configuration) + IClientState clientState, ICondition condition, AetheryteData aetheryteData, IObjectTable objectTable, + CombatController combatController, Configuration configuration) : base("Questionable Debug Overlay###QuestionableDebugOverlay", ImGuiWindowFlags.NoTitleBar | ImGuiWindowFlags.NoScrollbar | ImGuiWindowFlags.NoBackground | ImGuiWindowFlags.NoInputs | ImGuiWindowFlags.NoSavedSettings, true) @@ -136,7 +137,9 @@ internal sealed class DebugOverlay : Window if (!visible) continue; - ImGui.GetWindowDrawList() .AddText(screenPos + new Vector2(10, -8), 0xFFFFFFFF, $"{x.Name}/{x.GameObjectId:X}, {_combatController.GetKillPriority(x)}, {Vector3.Distance(x.Position, _clientState.LocalPlayer!.Position):N2}, {x.IsTargetable}"); + int priority = _combatController.GetKillPriority(x); + ImGui.GetWindowDrawList().AddText(screenPos + new Vector2(10, -8), priority > 0 ? 0xFF00FF00 : 0xFFFFFFFF, + $"{x.Name}/{x.GameObjectId:X}, {x.DataId}, {priority}, {Vector3.Distance(x.Position, _clientState.LocalPlayer!.Position):N2}, {x.IsTargetable}"); } } From e5d0660d7eb8d3add8e814f683fe3f8a35e06b19 Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Mon, 9 Sep 2024 01:45:51 +0800 Subject: [PATCH 236/450] Added new story quest "As the Heart Bids" --- .../Pixies/Story/3687_As the Heart Bids.json | 201 ++++++++++++++++++ 1 file changed, 201 insertions(+) create mode 100644 QuestPaths/5.x - Shadowbringers/Allied Societies/Pixies/Story/3687_As the Heart Bids.json diff --git a/QuestPaths/5.x - Shadowbringers/Allied Societies/Pixies/Story/3687_As the Heart Bids.json b/QuestPaths/5.x - Shadowbringers/Allied Societies/Pixies/Story/3687_As the Heart Bids.json new file mode 100644 index 00000000..67d54c0a --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Allied Societies/Pixies/Story/3687_As the Heart Bids.json @@ -0,0 +1,201 @@ +{ + "$schema": "https://git.carvel.li/plogon_enjoyer/Questionable/raw/branch/temp/QuestPaths/quest-v1.json", + "Author": "plogon_enjoyer", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1031806, + "Position": { + "X": -464.59143, + "Y": 71.76874, + "Z": 573.8766 + }, + "TerritoryId": 816, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1031892, + "Position": { + "X": -461.5702, + "Y": 72.51754, + "Z": 586.48047 + }, + "TerritoryId": 816, + "InteractionType": "Interact", + "TargetTerritoryId": 891 + }, + { + "DataId": 1031883, + "Position": { + "X": -116.07544, + "Y": 9.440084, + "Z": -41.428284 + }, + "TerritoryId": 891, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1031881, + "Position": { + "X": -115.03784, + "Y": 9.440084, + "Z": -38.651123 + }, + "TerritoryId": 891, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1031204, + "Position": { + "X": 481.95605, + "Y": 90.43779, + "Z": -656.09216 + }, + "TerritoryId": 816, + "InteractionType": "Interact", + "Fly": true, + "AetheryteShortcut": "Il Mheg - Wolekdorf" + }, + { + "Position": { + "X": -107.78667, + "Y": 108.39998, + "Z": -840.88965 + }, + "TerritoryId": 816, + "InteractionType": "WalkTo", + "Fly": true, + "AetheryteShortcut": "Il Mheg - Pla Enni" + }, + { + "DataId": 1027673, + "Position": { + "X": -106.06549, + "Y": 108.39998, + "Z": -841.7639 + }, + "TerritoryId": 816, + "InteractionType": "Interact" + }, + { + "DataId": 1027656, + "Position": { + "X": -291.61517, + "Y": 40.324036, + "Z": 456.65674 + }, + "TerritoryId": 816, + "InteractionType": "Interact", + "Fly": true, + "AetheryteShortcut": "Il Mheg - Lydha Lran" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1031807, + "Position": { + "X": -465.93427, + "Y": 71.48343, + "Z": 571.8623 + }, + "TerritoryId": 816, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1031808, + "Position": { + "X": -461.53967, + "Y": 72.51729, + "Z": 586.48047 + }, + "TerritoryId": 816, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1031808, + "Position": { + "X": -461.53967, + "Y": 72.51729, + "Z": 586.48047 + }, + "TerritoryId": 816, + "InteractionType": "SinglePlayerDuty", + "$": "Sequence 7 is the duty itself" + } + ] + }, + { + "Sequence": 8, + "Steps": [ + { + "DataId": 1031886, + "Position": { + "X": 38.345825, + "Y": -4.6399317, + "Z": 24.76538 + }, + "TerritoryId": 892, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1032365, + "Position": { + "X": 56.412598, + "Y": 5.5911026, + "Z": 116.16687 + }, + "TerritoryId": 892, + "InteractionType": "Interact", + "TargetTerritoryId": 816 + }, + { + "DataId": 1031806, + "Position": { + "X": -464.59143, + "Y": 71.76874, + "Z": 573.8766 + }, + "TerritoryId": 816, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} From f8247491726f991dd7e772221b0709fbdfb9b2fa Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Fri, 13 Sep 2024 01:19:29 +0800 Subject: [PATCH 237/450] Added story quest "Forever and a Dream" --- .../Story/3688_Forever and a Dream.json | 73 +++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 QuestPaths/5.x - Shadowbringers/Allied Societies/Pixies/Story/3688_Forever and a Dream.json diff --git a/QuestPaths/5.x - Shadowbringers/Allied Societies/Pixies/Story/3688_Forever and a Dream.json b/QuestPaths/5.x - Shadowbringers/Allied Societies/Pixies/Story/3688_Forever and a Dream.json new file mode 100644 index 00000000..a8054e2f --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Allied Societies/Pixies/Story/3688_Forever and a Dream.json @@ -0,0 +1,73 @@ +{ + "$schema": "https://git.carvel.li/plogon_enjoyer/Questionable/raw/branch/temp/QuestPaths/quest-v1.json", + "Author": "plogon_enjoyer", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1031806, + "Position": { + "X": -464.59143, + "Y": 71.76874, + "Z": 573.8766 + }, + "TerritoryId": 816, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1031893, + "Position": { + "X": -461.53967, + "Y": 72.51729, + "Z": 586.48047 + }, + "TerritoryId": 816, + "InteractionType": "Interact", + "TargetTerritoryId": 892 + }, + { + "DataId": 1031890, + "Position": { + "X": 55.649536, + "Y": -6.167951, + "Z": 8.041443 + }, + "TerritoryId": 892, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1032365, + "Position": { + "X": 56.412598, + "Y": 5.5911026, + "Z": 116.16687 + }, + "TerritoryId": 892, + "InteractionType": "Interact", + "TargetTerritoryId": 816 + }, + { + "DataId": 1031806, + "Position": { + "X": -464.59143, + "Y": 71.76874, + "Z": 573.8766 + }, + "TerritoryId": 816, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} From 6f8693340ce35e51c52a7ddd2c6bfd2199ca39cc Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Fri, 13 Sep 2024 14:49:08 +0800 Subject: [PATCH 238/450] Updated "As the Heart Bids". Added Sequence 7 with no steps. --- .../Pixies/Story/3687_As the Heart Bids.json | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/QuestPaths/5.x - Shadowbringers/Allied Societies/Pixies/Story/3687_As the Heart Bids.json b/QuestPaths/5.x - Shadowbringers/Allied Societies/Pixies/Story/3687_As the Heart Bids.json index 67d54c0a..ed481436 100644 --- a/QuestPaths/5.x - Shadowbringers/Allied Societies/Pixies/Story/3687_As the Heart Bids.json +++ b/QuestPaths/5.x - Shadowbringers/Allied Societies/Pixies/Story/3687_As the Heart Bids.json @@ -151,11 +151,13 @@ "Z": 586.48047 }, "TerritoryId": 816, - "InteractionType": "SinglePlayerDuty", - "$": "Sequence 7 is the duty itself" + "InteractionType": "SinglePlayerDuty" } ] }, + { + "Sequence": 7 + }, { "Sequence": 8, "Steps": [ From affe5a1168b0df6d6fb5dcd9eb1c9faa978ea5a4 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Thu, 12 Sep 2024 23:45:38 +0200 Subject: [PATCH 239/450] Fix Shadows Uncast (Twin Adders) --- .../Unlocks/Dungeons/1129_Shadows Uncast (Twin Adder).json | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) 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 e3084080..b1b7beb3 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 @@ -58,11 +58,7 @@ }, "TerritoryId": 132, "InteractionType": "CompleteQuest", - "AetheryteShortcut": "Limsa Lominsa", - "AethernetShortcut": [ - "[Limsa Lominsa] Aetheryte Plaza", - "[Limsa Lominsa] The Aftcastle" - ] + "AetheryteShortcut": "Gridania" } ] } From c268256ce38acdf5a658333756f1de2f3f7424ab Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Fri, 13 Sep 2024 16:03:07 +0200 Subject: [PATCH 240/450] Add Sorrow of Werlyt quests --- .../Trial Quests/3783_Ruby Doomsday.json | 152 ++++++++++++ .../Trial Quests/3842_Weapon of Choice.json | 28 +++ .../3895_Sleep Now in Sapphire.json | 216 ++++++++++++++++++ .../Trial Quests/3980_Blood of Emerald.json | 187 +++++++++++++++ .../Trial Quests/3981_In Memory.json | 130 +++++++++++ .../4031_Duty in the Sky with Diamond.json | 150 ++++++++++++ .../4032_Forever at Your Side.json | 164 +++++++++++++ 7 files changed, 1027 insertions(+) create mode 100644 QuestPaths/5.x - Shadowbringers/Trial Quests/3783_Ruby Doomsday.json create mode 100644 QuestPaths/5.x - Shadowbringers/Trial Quests/3842_Weapon of Choice.json create mode 100644 QuestPaths/5.x - Shadowbringers/Trial Quests/3895_Sleep Now in Sapphire.json create mode 100644 QuestPaths/5.x - Shadowbringers/Trial Quests/3980_Blood of Emerald.json create mode 100644 QuestPaths/5.x - Shadowbringers/Trial Quests/3981_In Memory.json create mode 100644 QuestPaths/5.x - Shadowbringers/Trial Quests/4031_Duty in the Sky with Diamond.json create mode 100644 QuestPaths/5.x - Shadowbringers/Trial Quests/4032_Forever at Your Side.json diff --git a/QuestPaths/5.x - Shadowbringers/Trial Quests/3783_Ruby Doomsday.json b/QuestPaths/5.x - Shadowbringers/Trial Quests/3783_Ruby Doomsday.json new file mode 100644 index 00000000..00dc1b44 --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Trial Quests/3783_Ruby Doomsday.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": 1032581, + "Position": { + "X": 750.1792, + "Y": 69.99991, + "Z": 518.9136 + }, + "TerritoryId": 621, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Lochs - Ala Mhigan Quarter", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1026804, + "Position": { + "X": -524.55945, + "Y": 8.698304, + "Z": -15.487976 + }, + "TerritoryId": 621, + "InteractionType": "Interact", + "AetheryteShortcut": "Lochs - Porta Praetoria", + "Fly": true, + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_LUCKYW101_03783_Q3_000_000", + "Yes": true + } + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1032582, + "Position": { + "X": -482.0478, + "Y": 107.63, + "Z": 121.934814 + }, + "TerritoryId": 829, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1032585, + "Position": { + "X": -465.53754, + "Y": 107.63, + "Z": 130.35779 + }, + "TerritoryId": 829, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "TerritoryId": 829, + "InteractionType": "Duty", + "ContentFinderConditionId": 717 + } + ] + }, + { + "Sequence": 5 + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1032861, + "Position": { + "X": -473.89948, + "Y": 107.63, + "Z": 132.86023 + }, + "StopDistance": 4, + "TerritoryId": 829, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 7, + "Steps": [ + { + "DataId": 1032851, + "Position": { + "X": -481.3764, + "Y": 107.63, + "Z": 122.78931 + }, + "TerritoryId": 829, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": -507.93283, + "Y": 7.6638765, + "Z": 52.09985 + }, + "TerritoryId": 621, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 1032586, + "Position": { + "X": -505.42462, + "Y": 7.68313, + "Z": 51.621216 + }, + "TerritoryId": 621, + "InteractionType": "CompleteQuest", + "NextQuestId": 3895 + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Trial Quests/3842_Weapon of Choice.json b/QuestPaths/5.x - Shadowbringers/Trial Quests/3842_Weapon of Choice.json new file mode 100644 index 00000000..44219720 --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Trial Quests/3842_Weapon of Choice.json @@ -0,0 +1,28 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1032764, + "Position": { + "X": -496.51334, + "Y": 7.681107, + "Z": 53.147095 + }, + "TerritoryId": 621, + "InteractionType": "AcceptQuest", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_LUCKYB007_03842_Q1_000_000", + "Answer": "TEXT_LUCKYB007_03842_A1_000_002" + } + ] + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Trial Quests/3895_Sleep Now in Sapphire.json b/QuestPaths/5.x - Shadowbringers/Trial Quests/3895_Sleep Now in Sapphire.json new file mode 100644 index 00000000..2c5cc516 --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Trial Quests/3895_Sleep Now in Sapphire.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": 1032586, + "Position": { + "X": -505.42462, + "Y": 7.68313, + "Z": 51.621216 + }, + "TerritoryId": 621, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Lochs - Porta Praetoria", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1026804, + "Position": { + "X": -524.55945, + "Y": 8.698304, + "Z": -15.487976 + }, + "TerritoryId": 621, + "InteractionType": "Interact", + "Fly": true, + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_LUCKYW201_03895_Q1_000_011", + "Yes": true + } + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1033626, + "Position": { + "X": -484.42816, + "Y": 107.63, + "Z": 136.5835 + }, + "TerritoryId": 829, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1032851, + "Position": { + "X": -481.3764, + "Y": 107.63, + "Z": 122.78931 + }, + "TerritoryId": 829, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1032851, + "Position": { + "X": -481.3764, + "Y": 107.63, + "Z": 122.78931 + }, + "TerritoryId": 829, + "InteractionType": "SinglePlayerDuty" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1032851, + "Position": { + "X": -481.3764, + "Y": 107.63, + "Z": 122.78931 + }, + "StopDistance": 5, + "TerritoryId": 829, + "InteractionType": "SinglePlayerDuty", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_LUCKYW201_03895_Q6_000_000", + "Answer": "TEXT_LUCKYW201_03895_A6_000_001" + } + ] + } + ] + }, + { + "Sequence": 6 + }, + { + "Sequence": 7, + "Steps": [ + { + "DataId": 1033629, + "Position": { + "X": -0.3204956, + "Y": 41, + "Z": 17.56311 + }, + "TerritoryId": 919, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 8, + "Steps": [ + { + "DataId": 1033632, + "Position": { + "X": 50.94983, + "Y": 35, + "Z": 60.440918 + }, + "TerritoryId": 919, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 9, + "Steps": [ + { + "DataId": 1033635, + "Position": { + "X": 5.2643433, + "Y": 41, + "Z": 9.811523 + }, + "TerritoryId": 919, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1033636, + "Position": { + "X": -5.5390625, + "Y": 41.019974, + "Z": 25.680908 + }, + "TerritoryId": 919, + "InteractionType": "Interact", + "TargetTerritoryId": 621, + "SkipConditions": { + "StepIf": { + "NotInTerritory": [ + 919 + ] + } + } + }, + { + "Position": { + "X": -507.93283, + "Y": 7.6638765, + "Z": 52.09985 + }, + "TerritoryId": 621, + "InteractionType": "WalkTo", + "Fly": true, + "AetheryteShortcut": "Lochs - Porta Praetoria", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + }, + { + "DataId": 1032586, + "Position": { + "X": -505.42462, + "Y": 7.68313, + "Z": 51.621216 + }, + "TerritoryId": 621, + "InteractionType": "CompleteQuest", + "NextQuestId": 3980 + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Trial Quests/3980_Blood of Emerald.json b/QuestPaths/5.x - Shadowbringers/Trial Quests/3980_Blood of Emerald.json new file mode 100644 index 00000000..81578f11 --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Trial Quests/3980_Blood of Emerald.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": 1032586, + "Position": { + "X": -505.42462, + "Y": 7.68313, + "Z": 51.621216 + }, + "TerritoryId": 621, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Lochs - Porta Praetoria", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1035243, + "Position": { + "X": -533.4402, + "Y": 8.187748, + "Z": -46.341675 + }, + "TerritoryId": 621, + "InteractionType": "Interact", + "Fly": true, + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_LUCKYW301_03980_Q2_000_000", + "Yes": true + } + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1033629, + "Position": { + "X": -0.3204956, + "Y": 41, + "Z": 17.56311 + }, + "TerritoryId": 919, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1035319, + "Position": { + "X": -467.0329, + "Y": 22.94018, + "Z": -416.89178 + }, + "TerritoryId": 140, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "TerritoryId": 140, + "InteractionType": "Duty", + "ContentFinderConditionId": 762 + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1035321, + "Position": { + "X": 98.802124, + "Y": 3.9999998, + "Z": 25.558838 + }, + "StopDistance": 5, + "TerritoryId": 967, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1033629, + "Position": { + "X": -0.3204956, + "Y": 41, + "Z": 17.56311 + }, + "TerritoryId": 919, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 7, + "Steps": [ + { + "DataId": 1035322, + "Position": { + "X": -37.1557, + "Y": 41, + "Z": -2.02948 + }, + "TerritoryId": 919, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1033636, + "Position": { + "X": -5.5390625, + "Y": 41.019974, + "Z": 25.680908 + }, + "StopDistance": 7, + "TerritoryId": 919, + "InteractionType": "Interact", + "TargetTerritoryId": 621, + "SkipConditions": { + "StepIf": { + "NotInTerritory": [ + 919 + ] + } + } + }, + { + "Position": { + "X": -507.93283, + "Y": 7.6638765, + "Z": 52.09985 + }, + "TerritoryId": 621, + "InteractionType": "WalkTo", + "Fly": true, + "AetheryteShortcut": "Lochs - Porta Praetoria", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + }, + { + "DataId": 1032586, + "Position": { + "X": -505.42462, + "Y": 7.68313, + "Z": 51.621216 + }, + "TerritoryId": 621, + "InteractionType": "CompleteQuest", + "NextQuestId": 3981 + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Trial Quests/3981_In Memory.json b/QuestPaths/5.x - Shadowbringers/Trial Quests/3981_In Memory.json new file mode 100644 index 00000000..04ce47ca --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Trial Quests/3981_In Memory.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": 1032586, + "Position": { + "X": -505.42462, + "Y": 7.68313, + "Z": 51.621216 + }, + "TerritoryId": 621, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Lochs - Porta Praetoria", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1035243, + "Position": { + "X": -533.4402, + "Y": 8.187748, + "Z": -46.341675 + }, + "TerritoryId": 621, + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_LUCKYW311_03981_Q3_000_000", + "Yes": true + } + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1035120, + "Position": { + "X": 52.140015, + "Y": 41, + "Z": 28.335938 + }, + "TerritoryId": 919, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1035323, + "Position": { + "X": 1.1443481, + "Y": 41.01995, + "Z": 24.917969 + }, + "TerritoryId": 919, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1033636, + "Position": { + "X": -5.5390625, + "Y": 41.019974, + "Z": 25.680908 + }, + "StopDistance": 7, + "TerritoryId": 919, + "InteractionType": "Interact", + "TargetTerritoryId": 621, + "SkipConditions": { + "StepIf": { + "NotInTerritory": [ + 919 + ] + } + } + }, + { + "Position": { + "X": -507.93283, + "Y": 7.6638765, + "Z": 52.09985 + }, + "TerritoryId": 621, + "InteractionType": "WalkTo", + "Fly": true, + "AetheryteShortcut": "Lochs - Porta Praetoria", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + }, + { + "DataId": 1032586, + "Position": { + "X": -505.42462, + "Y": 7.68313, + "Z": 51.621216 + }, + "TerritoryId": 621, + "InteractionType": "CompleteQuest", + "NextQuestId": 4031 + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Trial Quests/4031_Duty in the Sky with Diamond.json b/QuestPaths/5.x - Shadowbringers/Trial Quests/4031_Duty in the Sky with Diamond.json new file mode 100644 index 00000000..52770ec5 --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Trial Quests/4031_Duty in the Sky with Diamond.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": 1032586, + "Position": { + "X": -505.42462, + "Y": 7.68313, + "Z": 51.621216 + }, + "TerritoryId": 621, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Lochs - Porta Praetoria", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1035243, + "Position": { + "X": -533.4402, + "Y": 8.187748, + "Z": -46.341675 + }, + "TerritoryId": 621, + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_LUCKYW401_04031_Q9_000_000", + "Yes": true + } + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1033633, + "Position": { + "X": 7.2785034, + "Y": 41, + "Z": 8.255066 + }, + "TerritoryId": 919, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1036280, + "Position": { + "X": 45.88379, + "Y": 35, + "Z": 68.22302 + }, + "TerritoryId": 919, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1036281, + "Position": { + "X": -1.3580933, + "Y": 41, + "Z": 19.394226 + }, + "TerritoryId": 919, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1036283, + "Position": { + "X": 79.9115, + "Y": -1.4320341E-12, + "Z": 85.83191 + }, + "TerritoryId": 991, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "TerritoryId": 991, + "InteractionType": "Duty", + "ContentFinderConditionId": 781 + } + ] + }, + { + "Sequence": 7, + "Steps": [ + { + "DataId": 1036283, + "Position": { + "X": 79.9115, + "Y": -1.4320341E-12, + "Z": 85.83191 + }, + "TerritoryId": 991, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1036286, + "Position": { + "X": -15.610046, + "Y": 41, + "Z": 5.3864136 + }, + "TerritoryId": 919, + "InteractionType": "CompleteQuest", + "NextQuestId": 4032 + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Trial Quests/4032_Forever at Your Side.json b/QuestPaths/5.x - Shadowbringers/Trial Quests/4032_Forever at Your Side.json new file mode 100644 index 00000000..cab7f1dc --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Trial Quests/4032_Forever at Your Side.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": 1036286, + "Position": { + "X": -15.610046, + "Y": 41, + "Z": 5.3864136 + }, + "TerritoryId": 919, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": -11.236769, + "Y": 40.999996, + "Z": 15.472222 + }, + "TerritoryId": 919, + "InteractionType": "WalkTo" + }, + { + "DataId": 1036412, + "Position": { + "X": 53.391357, + "Y": 34.999996, + "Z": 80.094604 + }, + "TerritoryId": 919, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": -11.236769, + "Y": 40.999996, + "Z": 15.472222 + }, + "TerritoryId": 919, + "InteractionType": "WalkTo" + }, + { + "DataId": 1036286, + "Position": { + "X": -15.610046, + "Y": 41, + "Z": 5.3864136 + }, + "TerritoryId": 919, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2011480, + "Position": { + "X": -17.227417, + "Y": 40.97046, + "Z": 5.2948 + }, + "StopDistance": 4.5, + "TerritoryId": 919, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1036286, + "Position": { + "X": -15.610046, + "Y": 41, + "Z": 5.3864136 + }, + "TerritoryId": 919, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1036285, + "Position": { + "X": -16.372986, + "Y": 40.999996, + "Z": 3.8909912 + }, + "StopDistance": 5, + "TerritoryId": 919, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1036287, + "Position": { + "X": -19.089111, + "Y": 41, + "Z": 3.768982 + }, + "StopDistance": 7, + "TerritoryId": 919, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + + "Position": { + "X": -507.93283, + "Y": 7.6638765, + "Z": 52.09985 + }, + "TerritoryId": 621, + "InteractionType": "WalkTo", + "Fly": true, + "AetheryteShortcut": "Lochs - Porta Praetoria", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + }, + { + "DataId": 1032586, + "Position": { + "X": -505.42462, + "Y": 7.68313, + "Z": 51.621216 + }, + "TerritoryId": 621, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} From 8e2098caefcc3353f635f101cc16fd8a522ebd41 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Fri, 13 Sep 2024 17:25:02 +0200 Subject: [PATCH 241/450] Add Myths of the Realm quests --- .../4536_A Mission in Mor Dhona.json | 158 ++++++++++++++++ .../4537_The Realm of the Gods.json | 64 +++++++ .../4538_A Divine Dilemma.json | 150 +++++++++++++++ .../4539_The Face of an Explorer.json | 174 ++++++++++++++++++ .../4666_Return to the Phantom Realm.json | 87 +++++++++ .../4667_In Heavenly Company.json | 139 ++++++++++++++ .../4668_Divine Nonintervention.json | 124 +++++++++++++ .../4669_The Secret of the Twelve.json | 80 ++++++++ .../4791_The Heart of the Myth.json | 155 ++++++++++++++++ .../4792_Embraced by Gods.json | 146 +++++++++++++++ 10 files changed, 1277 insertions(+) create mode 100644 QuestPaths/6.x - Endwalker/Alliance Raid Quests/4536_A Mission in Mor Dhona.json create mode 100644 QuestPaths/6.x - Endwalker/Alliance Raid Quests/4537_The Realm of the Gods.json create mode 100644 QuestPaths/6.x - Endwalker/Alliance Raid Quests/4538_A Divine Dilemma.json create mode 100644 QuestPaths/6.x - Endwalker/Alliance Raid Quests/4539_The Face of an Explorer.json create mode 100644 QuestPaths/6.x - Endwalker/Alliance Raid Quests/4666_Return to the Phantom Realm.json create mode 100644 QuestPaths/6.x - Endwalker/Alliance Raid Quests/4667_In Heavenly Company.json create mode 100644 QuestPaths/6.x - Endwalker/Alliance Raid Quests/4668_Divine Nonintervention.json create mode 100644 QuestPaths/6.x - Endwalker/Alliance Raid Quests/4669_The Secret of the Twelve.json create mode 100644 QuestPaths/6.x - Endwalker/Alliance Raid Quests/4791_The Heart of the Myth.json create mode 100644 QuestPaths/6.x - Endwalker/Alliance Raid Quests/4792_Embraced by Gods.json diff --git a/QuestPaths/6.x - Endwalker/Alliance Raid Quests/4536_A Mission in Mor Dhona.json b/QuestPaths/6.x - Endwalker/Alliance Raid Quests/4536_A Mission in Mor Dhona.json new file mode 100644 index 00000000..75002313 --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Alliance Raid Quests/4536_A Mission in Mor Dhona.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": 1042267, + "Position": { + "X": -104.997375, + "Y": 3.8989396, + "Z": 13.290527 + }, + "TerritoryId": 962, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Old Sharlayan", + "AethernetShortcut": [ + "[Old Sharlayan] Aetheryte Plaza", + "[Old Sharlayan] The Baldesion Annex" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2012860, + "Position": { + "X": 42.160645, + "Y": 20.462341, + "Z": -683.1617 + }, + "TerritoryId": 156, + "InteractionType": "Interact", + "AetheryteShortcut": "Mor Dhona" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1042268, + "Position": { + "X": 178.5763, + "Y": -15.5223675, + "Z": -496.14713 + }, + "TerritoryId": 156, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 3 + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1042269, + "Position": { + "X": 1.449585, + "Y": 0.05000399, + "Z": -18.661804 + }, + "TerritoryId": 1061, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 2012863, + "Position": { + "X": 0.1327076, + "Y": 2.960754, + "Z": 6.778096 + }, + "StopDistance": 5, + "TerritoryId": 1061, + "InteractionType": "Interact", + "IgnoreDistanceToObject": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 2012865, + "Position": { + "X": -21.21936, + "Y": 0.7837547, + "Z": -58.66461 + }, + "TerritoryId": 1061, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, + { + "DataId": 2012864, + "Position": { + "X": 59.830566, + "Y": 5.0201416, + "Z": 69.10803 + }, + "TerritoryId": 1061, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1042273, + "Position": { + "X": 3.5248413, + "Y": 0.0999997, + "Z": 14.145081 + }, + "TerritoryId": 1061, + "InteractionType": "CompleteQuest", + "NextQuestId": 4537 + } + ] + } + ] +} diff --git a/QuestPaths/6.x - Endwalker/Alliance Raid Quests/4537_The Realm of the Gods.json b/QuestPaths/6.x - Endwalker/Alliance Raid Quests/4537_The Realm of the Gods.json new file mode 100644 index 00000000..ecf1ca77 --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Alliance Raid Quests/4537_The Realm of the Gods.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": 1042275, + "Position": { + "X": 5.7526245, + "Y": 0.0999997, + "Z": 11.703674 + }, + "StopDistance": 5, + "TerritoryId": 1061, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1042276, + "Position": { + "X": 45.76172, + "Y": 0.05, + "Z": 6.9733276 + }, + "TerritoryId": 1061, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "TerritoryId": 1061, + "InteractionType": "Duty", + "ContentFinderConditionId": 866 + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1042278, + "Position": { + "X": 12.130859, + "Y": 0.0999997, + "Z": -0.83929443 + }, + "StopDistance": 5, + "TerritoryId": 1061, + "InteractionType": "CompleteQuest", + "NextQuestId": 4538 + } + ] + } + ] +} diff --git a/QuestPaths/6.x - Endwalker/Alliance Raid Quests/4538_A Divine Dilemma.json b/QuestPaths/6.x - Endwalker/Alliance Raid Quests/4538_A Divine Dilemma.json new file mode 100644 index 00000000..cebc6abc --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Alliance Raid Quests/4538_A Divine Dilemma.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": 1042278, + "Position": { + "X": 12.130859, + "Y": 0.0999997, + "Z": -0.83929443 + }, + "StopDistance": 5, + "TerritoryId": 1061, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1042279, + "Position": { + "X": 13.290527, + "Y": 0.099999696, + "Z": -2.243164 + }, + "TerritoryId": 1061, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2012867, + "Position": { + "X": -3.2197266, + "Y": 2.7313232, + "Z": -40.665344 + }, + "TerritoryId": 635, + "InteractionType": "Interact", + "AetheryteShortcut": "Rhalgr's Reach" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2012866, + "Position": { + "X": -0.015319824, + "Y": 6.6376343, + "Z": -78.81293 + }, + "StopDistance": 5, + "TerritoryId": 635, + "InteractionType": "Interact", + "IgnoreDistanceToObject": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 1042283, + "Position": { + "X": -59.250793, + "Y": -4.6778445E-15, + "Z": -29.984009 + }, + "TerritoryId": 635, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 1042284, + "Position": { + "X": 208.69751, + "Y": 13.5620365, + "Z": -140.30676 + }, + "TerritoryId": 635, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Rhalgr's Reach] Western Rhalgr's Reach", + "[Rhalgr's Reach] Northeastern Rhalgr's Reach" + ], + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 2012867, + "Position": { + "X": -3.2197266, + "Y": 2.7313232, + "Z": -40.665344 + }, + "TerritoryId": 635, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1042285, + "Position": { + "X": -4.623535, + "Y": 2.745737, + "Z": -39.505676 + }, + "StopDistance": 5, + "TerritoryId": 635, + "InteractionType": "CompleteQuest", + "NextQuestId": 4539 + } + ] + } + ] +} diff --git a/QuestPaths/6.x - Endwalker/Alliance Raid Quests/4539_The Face of an Explorer.json b/QuestPaths/6.x - Endwalker/Alliance Raid Quests/4539_The Face of an Explorer.json new file mode 100644 index 00000000..b195676b --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Alliance Raid Quests/4539_The Face of an Explorer.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": [ + { + "DataId": 1042285, + "Position": { + "X": -4.623535, + "Y": 2.745737, + "Z": -39.505676 + }, + "StopDistance": 5, + "TerritoryId": 635, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Rhalgr's Reach", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1042286, + "Position": { + "X": -207.04968, + "Y": 18, + "Z": 87.84619 + }, + "TerritoryId": 130, + "InteractionType": "Interact", + "AetheryteShortcut": "Ul'dah", + "AethernetShortcut": ["[Ul'dah] Aetheryte Plaza","[Ul'dah] Thaumaturges' Guild"] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1042287, + "Position": { + "X": -164.47705, + "Y": 14.004999, + "Z": 49.576538 + }, + "TerritoryId": 130, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "Position": { + "X": -157.07425, + "Y": 24.884384, + "Z": -354.37775 + }, + "TerritoryId": 146, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Southern Thanalan - Little Ala Mhigo", + "Fly": true + }, + { + "DataId": 1042288, + "Position": { + "X": 153.09375, + "Y": 10.362769, + "Z": -436.88104 + }, + "TerritoryId": 146, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "Position": { + "X": 135.51227, + "Y": 10.850319, + "Z": -487.7127 + }, + "TerritoryId": 146, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 2012869, + "Position": { + "X": 137.4685, + "Y": 10.696533, + "Z": -488.36502 + }, + "TerritoryId": 146, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1042288, + "Position": { + "X": 153.09375, + "Y": 10.362769, + "Z": -436.88104 + }, + "TerritoryId": 146, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 2012870, + "Position": { + "X": 154.46704, + "Y": -26.29132, + "Z": -437.46094 + }, + "StopDistance": 1, + "TerritoryId": 156, + "InteractionType": "Interact", + "AetheryteShortcut": "Mor Dhona", + "Fly": true, + "TargetTerritoryId": 1061 + }, + { + "DataId": 1042281, + "Position": { + "X": 1.9378662, + "Y": 0.099999696, + "Z": -0.44250488 + }, + "TerritoryId": 1061, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1042264, + "Position": { + "X": 124.22363, + "Y": 19.32629, + "Z": -617.42584 + }, + "TerritoryId": 156, + "InteractionType": "CompleteQuest", + "Fly": true, + "NextQuestId": 4666 + } + ] + } + ] +} diff --git a/QuestPaths/6.x - Endwalker/Alliance Raid Quests/4666_Return to the Phantom Realm.json b/QuestPaths/6.x - Endwalker/Alliance Raid Quests/4666_Return to the Phantom Realm.json new file mode 100644 index 00000000..7dd95c4d --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Alliance Raid Quests/4666_Return to the Phantom Realm.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": 1042264, + "Position": { + "X": 124.22363, + "Y": 19.32629, + "Z": -617.42584 + }, + "TerritoryId": 156, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Mor Dhona", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2012870, + "Position": { + "X": 154.46704, + "Y": -26.29132, + "Z": -437.46094 + }, + "StopDistance": 1, + "TerritoryId": 156, + "InteractionType": "Interact", + "Fly": true, + "TargetTerritoryId": 1061 + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1044299, + "Position": { + "X": -85.89307, + "Y": 3, + "Z": 84.58069 + }, + "StopDistance": 5, + "TerritoryId": 1061, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "TerritoryId": 1061, + "InteractionType": "Duty", + "ContentFinderConditionId": 911 + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1044303, + "Position": { + "X": -7.2786255, + "Y": 0.0999997, + "Z": 5.874695 + }, + "TerritoryId": 1061, + "InteractionType": "CompleteQuest", + "NextQuestId": 4667 + } + ] + } + ] +} diff --git a/QuestPaths/6.x - Endwalker/Alliance Raid Quests/4667_In Heavenly Company.json b/QuestPaths/6.x - Endwalker/Alliance Raid Quests/4667_In Heavenly Company.json new file mode 100644 index 00000000..24f793c8 --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Alliance Raid Quests/4667_In Heavenly Company.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": 1044304, + "Position": { + "X": -6.6377563, + "Y": 0.0999997, + "Z": 7.2785034 + }, + "TerritoryId": 1061, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2012871, + "Position": { + "X": 15.945618, + "Y": 1.7547607, + "Z": -61.600708 + }, + "TerritoryId": 1061, + "InteractionType": "Interact", + "TargetTerritoryId": 156, + "SkipConditions": { + "StepIf": { + "NotInTerritory": [ + 1061 + ] + } + } + }, + { + "DataId": 1044306, + "Position": { + "X": -149.58423, + "Y": 42.86022, + "Z": -182.8794 + }, + "TerritoryId": 156, + "InteractionType": "Interact", + "AetheryteShortcut": "Mor Dhona", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": 126.23871, + "Y": 31.274973, + "Z": -772.4912 + }, + "TerritoryId": 156, + "InteractionType": "WalkTo", + "Fly": true, + "AetheryteShortcut": "Mor Dhona" + }, + { + "Position": { + "X": -693.9247, + "Y": 261.1125, + "Z": 436.2933 + }, + "TerritoryId": 155, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 1044310, + "Position": { + "X": -674.21985, + "Y": 254.80737, + "Z": 490.77588 + }, + "TerritoryId": 155, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "Position": { + "X": 180.50424, + "Y": 360.59534, + "Z": -609.197 + }, + "TerritoryId": 155, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", + "Fly": true + }, + { + "DataId": 1044314, + "Position": { + "X": 182.5741, + "Y": 360.90265, + "Z": -610.2846 + }, + "TerritoryId": 155, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1044315, + "Position": { + "X": 80.24719, + "Y": 373.73154, + "Z": -674.49457 + }, + "TerritoryId": 155, + "InteractionType": "CompleteQuest", + "NextQuestId": 4668 + } + ] + } + ] +} diff --git a/QuestPaths/6.x - Endwalker/Alliance Raid Quests/4668_Divine Nonintervention.json b/QuestPaths/6.x - Endwalker/Alliance Raid Quests/4668_Divine Nonintervention.json new file mode 100644 index 00000000..f92e20a4 --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Alliance Raid Quests/4668_Divine Nonintervention.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": 1044315, + "Position": { + "X": 80.24719, + "Y": 373.73154, + "Z": -674.49457 + }, + "TerritoryId": 155, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1044319, + "Position": { + "X": -45.91449, + "Y": -4.1435657, + "Z": 8.8349 + }, + "TerritoryId": 132, + "InteractionType": "Interact", + "AetheryteShortcut": "Gridania" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": -105.23065, + "Y": 1.2987103, + "Z": 6.734147 + }, + "TerritoryId": 132, + "InteractionType": "WalkTo", + "TargetTerritoryId": 133 + }, + { + "DataId": 1044323, + "Position": { + "X": -140.45929, + "Y": 5.046544, + "Z": -40.48224 + }, + "TerritoryId": 133, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1043024, + "Position": { + "X": -239.94812, + "Y": 0.8012663, + "Z": 384.60352 + }, + "TerritoryId": 153, + "InteractionType": "Interact", + "AetheryteShortcut": "South Shroud - Camp Tranquil", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1044328, + "Position": { + "X": -246.08228, + "Y": 0.7061289, + "Z": 384.08484 + }, + "StopDistance": 7, + "TerritoryId": 153, + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_AKTKEA203_04668_SYSTEM_000_122", + "Yes": true + } + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1044331, + "Position": { + "X": 204.05884, + "Y": 6.2006326, + "Z": -32.059265 + }, + "TerritoryId": 153, + "InteractionType": "CompleteQuest", + "NextQuestId": 4669 + } + ] + } + ] +} diff --git a/QuestPaths/6.x - Endwalker/Alliance Raid Quests/4669_The Secret of the Twelve.json b/QuestPaths/6.x - Endwalker/Alliance Raid Quests/4669_The Secret of the Twelve.json new file mode 100644 index 00000000..b4384e8f --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Alliance Raid Quests/4669_The Secret of the Twelve.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": 1044331, + "Position": { + "X": 204.05884, + "Y": 6.2006326, + "Z": -32.059265 + }, + "TerritoryId": 153, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "South Shroud - Quarrymill", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2012870, + "Position": { + "X": 154.46704, + "Y": -26.29132, + "Z": -437.46094 + }, + "StopDistance": 1, + "TerritoryId": 156, + "InteractionType": "Interact", + "AetheryteShortcut": "Mor Dhona", + "Fly": true, + "TargetTerritoryId": 1061 + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1044335, + "Position": { + "X": -1.3886108, + "Y": 0.0999997, + "Z": 0.59503174 + }, + "StopDistance": 5, + "TerritoryId": 1061, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1042264, + "Position": { + "X": 124.22363, + "Y": 19.32629, + "Z": -617.42584 + }, + "TerritoryId": 156, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Mor Dhona", + "Fly": true, + "NextQuestId": 4791 + } + ] + } + ] +} diff --git a/QuestPaths/6.x - Endwalker/Alliance Raid Quests/4791_The Heart of the Myth.json b/QuestPaths/6.x - Endwalker/Alliance Raid Quests/4791_The Heart of the Myth.json new file mode 100644 index 00000000..395cd5e7 --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Alliance Raid Quests/4791_The Heart of the Myth.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": 1042264, + "Position": { + "X": 124.22363, + "Y": 19.32629, + "Z": -617.42584 + }, + "TerritoryId": 156, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Mor Dhona", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2012870, + "Position": { + "X": 154.46704, + "Y": -26.29132, + "Z": -437.46094 + }, + "StopDistance": 1, + "TerritoryId": 156, + "InteractionType": "Interact", + "Fly": true, + "TargetTerritoryId": 1061 + }, + { + "DataId": 1045968, + "Position": { + "X": 5.661072, + "Y": 0.099999696, + "Z": 5.8441772 + }, + "TerritoryId": 1061, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1045971, + "Position": { + "X": 1.3580322, + "Y": 0.099999696, + "Z": 27.237305 + }, + "TerritoryId": 1061, + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_AKTKEA301_04791_Q1_100_000", + "Yes": true + } + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2013455, + "Position": { + "X": -510.1244, + "Y": 128.64868, + "Z": 607.9956 + }, + "TerritoryId": 959, + "InteractionType": "Interact", + "AetheryteShortcut": "Mare Lamentorum - Sinus Lacrimarum", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 2012870, + "Position": { + "X": 154.46704, + "Y": -26.29132, + "Z": -437.46094 + }, + "StopDistance": 1, + "TerritoryId": 156, + "InteractionType": "Interact", + "AetheryteShortcut": "Mor Dhona", + "Fly": true, + "TargetTerritoryId": 1061 + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1045974, + "Position": { + "X": 2.3651123, + "Y": 0.099999696, + "Z": -11.215393 + }, + "StopDistance": 5, + "TerritoryId": 1061, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "TerritoryId": 1061, + "InteractionType": "Duty", + "ContentFinderConditionId": 962 + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1045982, + "Position": { + "X": 945.2506, + "Y": -950, + "Z": -940.55084 + }, + "TerritoryId": 1182, + "InteractionType": "CompleteQuest", + "NextQuestId": 4792 + } + ] + } + ] +} diff --git a/QuestPaths/6.x - Endwalker/Alliance Raid Quests/4792_Embraced by Gods.json b/QuestPaths/6.x - Endwalker/Alliance Raid Quests/4792_Embraced by Gods.json new file mode 100644 index 00000000..025ac172 --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Alliance Raid Quests/4792_Embraced by Gods.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": 1045985, + "Position": { + "X": 945.18945, + "Y": -950, + "Z": -937.8042 + }, + "StopDistance": 4, + "TerritoryId": 1182, + "InteractionType": "AcceptQuest" } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2013456, + "Position": { + "X": -192.6452, + "Y": 18.32605, + "Z": 24.36853 + }, + "TerritoryId": 152, + "InteractionType": "Interact", + "AetheryteShortcut": "East Shroud - Hawthorne Hut", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1045992, + "Position": { + "X": -277.45483, + "Y": 16.000862, + "Z": 50.461548 + }, + "TerritoryId": 129, + "InteractionType": "Interact", + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] Arcanists' Guild" + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1045994, + "Position": { + "X": -13.7178955, + "Y": 68.37596, + "Z": 125.65808 + }, + "TerritoryId": 135, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Limsa Lominsa] Arcanists' Guild", + "[Limsa Lominsa] Tempest Gate (Lower La Noscea)" + ] + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1045996, + "Position": { + "X": 85.9845, + "Y": 68.34592, + "Z": 348.989 + }, + "TerritoryId": 135, + "InteractionType": "Interact", + "Fly": true + }, + { + "DataId": 1045996, + "Position": { + "X": 45.021595, + "Y": 71.30157, + "Z": 376.23453 + }, + "TerritoryId": 135, + "InteractionType": "WaitForNpcAtPosition", + "Mount": false, + "Sprint": false + }, + { + "DataId": 1045996, + "Position": { + "X": 43.50745, + "Y": 71.30162, + "Z": 379.11874 + }, + "StopDistance": 10, + "TerritoryId": 135, + "InteractionType": "WaitForNpcAtPosition", + "Mount": false, + "Sprint": false + }, + { + "DataId": 1045998, + "Position": { + "X": 9.048584, + "Y": 66.55368, + "Z": 409.53687 + }, + "StopDistance": 1, + "TerritoryId": 135, + "InteractionType": "WalkTo", + "Mount": false, + "Sprint": false + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1045998, + "Position": { + "X": 9.048584, + "Y": 66.55368, + "Z": 409.53687 + }, + "TerritoryId": 135, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} From 0a37d129b93df75d51aaf040a95264c1a7bcf0d5 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Fri, 13 Sep 2024 19:27:23 +0200 Subject: [PATCH 242/450] Add Pandaemonium quests --- .../Story/3898_I Heard You Like Tanks.json | 21 +++ .../4475_The Crystal from Beyond.json | 89 ++++++++++++ .../4476_Where Familiars Dare.json | 88 ++++++++++++ .../Raid Quests/4477_Under the Surface.json | 48 +++++++ .../4478_The Fires of Creation.json | 49 +++++++ .../4479_Who Wards the Warders.json | 83 ++++++++++++ .../4635_An Unwelcome Visitor.json | 94 +++++++++++++ .../Raid Quests/4636_Masks of the Father.json | 49 +++++++ .../Raid Quests/4637_A Keyward's Gaol.json | 78 +++++++++++ .../Raid Quests/4638_Servant of Violence.json | 65 +++++++++ .../Raid Quests/4639_One Final Wish.json | 49 +++++++ .../Raid Quests/4640_Truth Imperfect.json | 95 +++++++++++++ .../Raid Quests/4756_Eater of Souls.json | 101 ++++++++++++++ .../Raid Quests/4757_Pandæmonium Awakens.json | 67 +++++++++ .../4758_The Emissary's Judgment.json | 48 +++++++ .../Raid Quests/4759_A Mother's Touch.json | 48 +++++++ .../Raid Quests/4760_Guided by the Past.json | 128 ++++++++++++++++++ 17 files changed, 1200 insertions(+) create mode 100644 QuestPaths/5.x - Shadowbringers/Allied Societies/Dwarves/Story/3898_I Heard You Like Tanks.json create mode 100644 QuestPaths/6.x - Endwalker/Raid Quests/4475_The Crystal from Beyond.json create mode 100644 QuestPaths/6.x - Endwalker/Raid Quests/4476_Where Familiars Dare.json create mode 100644 QuestPaths/6.x - Endwalker/Raid Quests/4477_Under the Surface.json create mode 100644 QuestPaths/6.x - Endwalker/Raid Quests/4478_The Fires of Creation.json create mode 100644 QuestPaths/6.x - Endwalker/Raid Quests/4479_Who Wards the Warders.json create mode 100644 QuestPaths/6.x - Endwalker/Raid Quests/4635_An Unwelcome Visitor.json create mode 100644 QuestPaths/6.x - Endwalker/Raid Quests/4636_Masks of the Father.json create mode 100644 QuestPaths/6.x - Endwalker/Raid Quests/4637_A Keyward's Gaol.json create mode 100644 QuestPaths/6.x - Endwalker/Raid Quests/4638_Servant of Violence.json create mode 100644 QuestPaths/6.x - Endwalker/Raid Quests/4639_One Final Wish.json create mode 100644 QuestPaths/6.x - Endwalker/Raid Quests/4640_Truth Imperfect.json create mode 100644 QuestPaths/6.x - Endwalker/Raid Quests/4756_Eater of Souls.json create mode 100644 QuestPaths/6.x - Endwalker/Raid Quests/4757_Pandæmonium Awakens.json create mode 100644 QuestPaths/6.x - Endwalker/Raid Quests/4758_The Emissary's Judgment.json create mode 100644 QuestPaths/6.x - Endwalker/Raid Quests/4759_A Mother's Touch.json create mode 100644 QuestPaths/6.x - Endwalker/Raid Quests/4760_Guided by the Past.json diff --git a/QuestPaths/5.x - Shadowbringers/Allied Societies/Dwarves/Story/3898_I Heard You Like Tanks.json b/QuestPaths/5.x - Shadowbringers/Allied Societies/Dwarves/Story/3898_I Heard You Like Tanks.json new file mode 100644 index 00000000..63fc007c --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Allied Societies/Dwarves/Story/3898_I Heard You Like Tanks.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": 1033710, + "Position": { + "X": -607.72107, + "Y": 65.60101, + "Z": -412.71082 + }, + "TerritoryId": 813, + "InteractionType": "AcceptQuest" + } + ] + } + ] +} diff --git a/QuestPaths/6.x - Endwalker/Raid Quests/4475_The Crystal from Beyond.json b/QuestPaths/6.x - Endwalker/Raid Quests/4475_The Crystal from Beyond.json new file mode 100644 index 00000000..800ee118 --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Raid Quests/4475_The Crystal from Beyond.json @@ -0,0 +1,89 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1041268, + "Position": { + "X": -81.1933, + "Y": 1.0795165, + "Z": 36.51477 + }, + "TerritoryId": 962, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Old Sharlayan", + "AethernetShortcut": [ + "[Old Sharlayan] Aetheryte Plaza", + "[Old Sharlayan] The Baldesion Annex" + ] + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1039508, + "Position": { + "X": -639.704, + "Y": -27.175835, + "Z": 301.07568 + }, + "TerritoryId": 956, + "InteractionType": "Interact", + "AetheryteShortcut": "Labyrinthos - Aporia" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1033863, + "Position": { + "X": 118.02844, + "Y": 14.649026, + "Z": 7.156433 + }, + "TerritoryId": 819, + "InteractionType": "Interact", + "AetheryteShortcut": "Crystarium", + "AethernetShortcut": [ + "[Crystarium] Aetheryte Plaza", + "[Crystarium] The Dossal Gate" + ], + "TargetTerritoryId": 844 + }, + { + "DataId": 2012425, + "Position": { + "X": 0.10675049, + "Y": -0.015319824, + "Z": -8.163635 + }, + "TerritoryId": 844, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1041271, + "Position": { + "X": 542.5039, + "Y": 7.6627564, + "Z": 50.91931 + }, + "TerritoryId": 961, + "InteractionType": "CompleteQuest", + "NextQuestId": 4476 + } + ] + } + ] +} diff --git a/QuestPaths/6.x - Endwalker/Raid Quests/4476_Where Familiars Dare.json b/QuestPaths/6.x - Endwalker/Raid Quests/4476_Where Familiars Dare.json new file mode 100644 index 00000000..988e52cb --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Raid Quests/4476_Where Familiars Dare.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": 1041271, + "Position": { + "X": 542.5039, + "Y": 7.6627564, + "Z": 50.91931 + }, + "TerritoryId": 961, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1041272, + "Position": { + "X": 228.19861, + "Y": 7.3858566, + "Z": 239.94812 + }, + "TerritoryId": 961, + "InteractionType": "Interact", + "AetheryteShortcut": "Elpis - Anagnorisis", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1041273, + "Position": { + "X": 808.3772, + "Y": 152.22246, + "Z": -240.4975 + }, + "TerritoryId": 961, + "InteractionType": "Interact", + "Fly": true, + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_AKTKRA102_04476_SYSTEM_046", + "Yes": true + } + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "TerritoryId": 1025, + "InteractionType": "Duty", + "ContentFinderConditionId": 808 + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1041501, + "Position": { + "X": 101.51831, + "Y": -9.999997E-12, + "Z": 101.60974 + }, + "StopDistance": 5, + "TerritoryId": 1025, + "InteractionType": "CompleteQuest", + "NextQuestId": 4477 + } + ] + } + ] +} diff --git a/QuestPaths/6.x - Endwalker/Raid Quests/4477_Under the Surface.json b/QuestPaths/6.x - Endwalker/Raid Quests/4477_Under the Surface.json new file mode 100644 index 00000000..1c783ea6 --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Raid Quests/4477_Under the Surface.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": 1041276, + "Position": { + "X": 99.07678, + "Y": 7.6875, + "Z": -66.971924 + }, + "TerritoryId": 1025, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "TerritoryId": 1025, + "InteractionType": "Duty", + "ContentFinderConditionId": 810 + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1041502, + "Position": { + "X": 99.22937, + "Y": 7.6875, + "Z": -67.88745 + }, + "StopDistance": 4, + "TerritoryId": 1025, + "InteractionType": "CompleteQuest", + "NextQuestId": 4478 + } + ] + } + ] +} diff --git a/QuestPaths/6.x - Endwalker/Raid Quests/4478_The Fires of Creation.json b/QuestPaths/6.x - Endwalker/Raid Quests/4478_The Fires of Creation.json new file mode 100644 index 00000000..66b084ef --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Raid Quests/4478_The Fires of Creation.json @@ -0,0 +1,49 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1041503, + "Position": { + "X": 100.87732, + "Y": 7.6875, + "Z": -67.61273 + }, + "StopDistance": 4, + "TerritoryId": 1025, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "TerritoryId": 1025, + "InteractionType": "Duty", + "ContentFinderConditionId": 806 + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1041278, + "Position": { + "X": 98.34436, + "Y": -1E-11, + "Z": -29.678833 + }, + "StopDistance": 5, + "TerritoryId": 1025, + "InteractionType": "CompleteQuest", + "NextQuestId": 4479 + } + ] + } + ] +} diff --git a/QuestPaths/6.x - Endwalker/Raid Quests/4479_Who Wards the Warders.json b/QuestPaths/6.x - Endwalker/Raid Quests/4479_Who Wards the Warders.json new file mode 100644 index 00000000..e59a44c0 --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Raid Quests/4479_Who Wards the Warders.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": 1041278, + "Position": { + "X": 98.34436, + "Y": -1E-11, + "Z": -29.678833 + }, + "StopDistance": 5, + "TerritoryId": 1025, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1041279, + "Position": { + "X": 114.54944, + "Y": -9.999999E-12, + "Z": -25.742065 + }, + "TerritoryId": 1025, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "TerritoryId": 1025, + "InteractionType": "Duty", + "ContentFinderConditionId": 800 + } + ] + }, + { + "Sequence": 3 + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1041280, + "Position": { + "X": 98.95471, + "Y": -1E-11, + "Z": -29.953552 + }, + "StopDistance": 5, + "TerritoryId": 1025, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1041934, + "Position": { + "X": -639.765, + "Y": -27.175016, + "Z": 301.1062 + }, + "TerritoryId": 956, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Labyrinthos - Aporia", + "NextQuestId": 4635 + } + ] + } + ] +} diff --git a/QuestPaths/6.x - Endwalker/Raid Quests/4635_An Unwelcome Visitor.json b/QuestPaths/6.x - Endwalker/Raid Quests/4635_An Unwelcome Visitor.json new file mode 100644 index 00000000..b323071b --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Raid Quests/4635_An Unwelcome Visitor.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": 1041258, + "Position": { + "X": -639.704, + "Y": -27.175835, + "Z": 301.07568 + }, + "TerritoryId": 956, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Labyrinthos - Aporia", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1041270, + "Position": { + "X": -830.5333, + "Y": 169.52928, + "Z": -56.809387 + }, + "TerritoryId": 961, + "InteractionType": "Interact", + "AetheryteShortcut": "Elpis - Poieten Oikos", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1043488, + "Position": { + "X": 643.48804, + "Y": 158.6388, + "Z": -254.35266 + }, + "TerritoryId": 961, + "InteractionType": "Interact", + "AetheryteShortcut": "Elpis - Anagnorisis", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1041273, + "Position": { + "X": 808.3772, + "Y": 152.22246, + "Z": -240.4975 + }, + "TerritoryId": 961, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1043489, + "Position": { + "X": 99.99231, + "Y": -9.999999E-12, + "Z": -22.171448 + }, + "StopDistance": 4, + "TerritoryId": 1025, + "InteractionType": "CompleteQuest", + "NextQuestId": 4636 + } + ] + } + ] +} diff --git a/QuestPaths/6.x - Endwalker/Raid Quests/4636_Masks of the Father.json b/QuestPaths/6.x - Endwalker/Raid Quests/4636_Masks of the Father.json new file mode 100644 index 00000000..f3528230 --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Raid Quests/4636_Masks of the Father.json @@ -0,0 +1,49 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1043489, + "Position": { + "X": 99.99231, + "Y": -9.999999E-12, + "Z": -22.171448 + }, + "StopDistance": 4, + "TerritoryId": 1025, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "TerritoryId": 1025, + "InteractionType": "Duty", + "ContentFinderConditionId": 872 + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1043492, + "Position": { + "X": 100.175415, + "Y": -9.999999E-12, + "Z": -25.833557 + }, + "StopDistance": 4, + "TerritoryId": 1025, + "InteractionType": "CompleteQuest", + "NextQuestId": 4637 + } + ] + } + ] +} diff --git a/QuestPaths/6.x - Endwalker/Raid Quests/4637_A Keyward's Gaol.json b/QuestPaths/6.x - Endwalker/Raid Quests/4637_A Keyward's Gaol.json new file mode 100644 index 00000000..660abf5d --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Raid Quests/4637_A Keyward's Gaol.json @@ -0,0 +1,78 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1043491, + "Position": { + "X": 101.79285, + "Y": -1E-11, + "Z": -26.901672 + }, + "TerritoryId": 1025, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1043494, + "Position": { + "X": 99.99231, + "Y": -9.999997E-12, + "Z": 99.83972 + }, + "TerritoryId": 1025, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1043493, + "Position": { + "X": 98.31384, + "Y": -9.999999E-12, + "Z": -26.901672 + }, + "TerritoryId": 1025, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "TerritoryId": 1025, + "InteractionType": "Duty", + "ContentFinderConditionId": 880 + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1043506, + "Position": { + "X": 102.12854, + "Y": -9.999999E-12, + "Z": -26.56604 + }, + "StopDistance": 4, + "TerritoryId": 1025, + "InteractionType": "CompleteQuest", + "NextQuestId": 4638 + } + ] + } + ] +} diff --git a/QuestPaths/6.x - Endwalker/Raid Quests/4638_Servant of Violence.json b/QuestPaths/6.x - Endwalker/Raid Quests/4638_Servant of Violence.json new file mode 100644 index 00000000..d22994a2 --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Raid Quests/4638_Servant of Violence.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": 1043506, + "Position": { + "X": 102.12854, + "Y": -9.999999E-12, + "Z": -26.56604 + }, + "StopDistance": 4, + "TerritoryId": 1025, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1043785, + "Position": { + "X": 98.55798, + "Y": -1E-11, + "Z": -26.474487 + }, + "StopDistance": 4, + "TerritoryId": 1025, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "TerritoryId": 1025, + "InteractionType": "Duty", + "ContentFinderConditionId": 876 + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1043495, + "Position": { + "X": 98.71057, + "Y": -9.999999E-12, + "Z": -26.260803 + }, + "StopDistance": 4, + "TerritoryId": 1025, + "InteractionType": "CompleteQuest", + "NextQuestId": 4639 + } + ] + } + ] +} diff --git a/QuestPaths/6.x - Endwalker/Raid Quests/4639_One Final Wish.json b/QuestPaths/6.x - Endwalker/Raid Quests/4639_One Final Wish.json new file mode 100644 index 00000000..25697380 --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Raid Quests/4639_One Final Wish.json @@ -0,0 +1,49 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1043495, + "Position": { + "X": 98.71057, + "Y": -9.999999E-12, + "Z": -26.260803 + }, + "StopDistance": 4, + "TerritoryId": 1025, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "TerritoryId": 1025, + "InteractionType": "Duty", + "ContentFinderConditionId": 883 + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1043497, + "Position": { + "X": 95.93347, + "Y": -4.4899712E-13, + "Z": 95.59766 + }, + "StopDistance": 6, + "TerritoryId": 1093, + "InteractionType": "CompleteQuest", + "NextQuestId": 4640 + } + ] + } + ] +} diff --git a/QuestPaths/6.x - Endwalker/Raid Quests/4640_Truth Imperfect.json b/QuestPaths/6.x - Endwalker/Raid Quests/4640_Truth Imperfect.json new file mode 100644 index 00000000..f28a8e9e --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Raid Quests/4640_Truth Imperfect.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": 1043497, + "Position": { + "X": 95.93347, + "Y": -4.4899712E-13, + "Z": 95.59766 + }, + "StopDistance": 6, + "TerritoryId": 1093, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1043499, + "Position": { + "X": 100.35852, + "Y": 0, + "Z": 94.71277 + }, + "TerritoryId": 1093, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2013032, + "Position": { + "X": 99.9981, + "Y": 1.1515, + "Z": 120.2372 + }, + "TerritoryId": 1093, + "InteractionType": "Interact", + "TargetTerritoryId": 1025 + }, + { + "DataId": 1043500, + "Position": { + "X": 99.809204, + "Y": -1E-11, + "Z": -25.68097 + }, + "TerritoryId": 1025, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1043503, + "Position": { + "X": -639.704, + "Y": -27.177149, + "Z": 301.9912 + }, + "TerritoryId": 956, + "InteractionType": "Interact", + "AetheryteShortcut": "Labyrinthos - Aporia" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1043504, + "Position": { + "X": -639.704, + "Y": -27.177149, + "Z": 301.9912 + }, + "TerritoryId": 956, + "InteractionType": "CompleteQuest", + "NextQuestId": 4756 + } + ] + } + ] +} diff --git a/QuestPaths/6.x - Endwalker/Raid Quests/4756_Eater of Souls.json b/QuestPaths/6.x - Endwalker/Raid Quests/4756_Eater of Souls.json new file mode 100644 index 00000000..b0c28096 --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Raid Quests/4756_Eater of Souls.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": 1043504, + "Position": { + "X": -639.704, + "Y": -27.177149, + "Z": 301.9912 + }, + "TerritoryId": 956, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Labyrinthos - Aporia", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1039550, + "Position": { + "X": -620.7218, + "Y": -27.670597, + "Z": 302.17432 + }, + "TerritoryId": 956, + "InteractionType": "Interact", + "TargetTerritoryId": 956 + }, + { + "Position": { + "X": -431.53903, + "Y": -220.1193, + "Z": 301.76364 + }, + "TerritoryId": 956, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 2013029, + "Position": { + "X": -238.97156, + "Y": -220.41656, + "Z": 340.6272 + }, + "TerritoryId": 956, + "InteractionType": "Interact", + "TargetTerritoryId": 1079 + }, + { + "DataId": 2013338, + "Position": { + "X": 18.753235, + "Y": 197.52808, + "Z": 519.06604 + }, + "TerritoryId": 1079, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "TerritoryId": 1079, + "InteractionType": "Duty", + "ContentFinderConditionId": 936 + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1045330, + "Position": { + "X": 19.272095, + "Y": 197.41248, + "Z": 503.59338 + }, + "StopDistance": 5, + "TerritoryId": 1079, + "InteractionType": "CompleteQuest", + "NextQuestId": 4757 + } + ] + } + ] +} diff --git a/QuestPaths/6.x - Endwalker/Raid Quests/4757_Pandæmonium Awakens.json b/QuestPaths/6.x - Endwalker/Raid Quests/4757_Pandæmonium Awakens.json new file mode 100644 index 00000000..3a06fa86 --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Raid Quests/4757_Pandæmonium Awakens.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": 1045335, + "Position": { + "X": 18.20398, + "Y": 197.41248, + "Z": 504.75305 + }, + "StopDistance": 4, + "TerritoryId": 1079, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1045338, + "Position": { + "X": 32.181274, + "Y": 197.55081, + "Z": 506.98096 + }, + "TerritoryId": 1079, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2 + }, + { + "Sequence": 3, + "Steps": [ + { + "TerritoryId": 1079, + "InteractionType": "Duty", + "ContentFinderConditionId": 938 + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1045347, + "Position": { + "X": 98.98523, + "Y": 0, + "Z": 103.74609 + }, + "StopDistance": 4, + "TerritoryId": 1158, + "InteractionType": "CompleteQuest", + "NextQuestId": 4758 + } + ] + } + ] +} diff --git a/QuestPaths/6.x - Endwalker/Raid Quests/4758_The Emissary's Judgment.json b/QuestPaths/6.x - Endwalker/Raid Quests/4758_The Emissary's Judgment.json new file mode 100644 index 00000000..50f9d67d --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Raid Quests/4758_The Emissary's Judgment.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": 1045347, + "Position": { + "X": 98.98523, + "Y": 0, + "Z": 103.74609 + }, + "StopDistance": 4, + "TerritoryId": 1158, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "TerritoryId": 1158, + "InteractionType": "Duty", + "ContentFinderConditionId": 940 + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1045348, + "Position": { + "X": 99.90076, + "Y": 0, + "Z": 104.478516 + }, + "TerritoryId": 1158, + "InteractionType": "CompleteQuest", + "NextQuestId": 4759 + } + ] + } + ] +} diff --git a/QuestPaths/6.x - Endwalker/Raid Quests/4759_A Mother's Touch.json b/QuestPaths/6.x - Endwalker/Raid Quests/4759_A Mother's Touch.json new file mode 100644 index 00000000..92b7964b --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Raid Quests/4759_A Mother's Touch.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": 1045383, + "Position": { + "X": 98.10022, + "Y": 0, + "Z": 103.837524 + }, + "TerritoryId": 1158, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "TerritoryId": 1158, + "InteractionType": "Duty", + "ContentFinderConditionId": 942 + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1045357, + "Position": { + "X": 28.610596, + "Y": 197.55505, + "Z": 509.72766 + }, + "StopDistance": 5, + "TerritoryId": 1079, + "InteractionType": "CompleteQuest", + "NextQuestId": 4760 + } + ] + } + ] +} 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 new file mode 100644 index 00000000..3a34daf7 --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Raid Quests/4760_Guided by the Past.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": 1045356, + "Position": { + "X": 28.42749, + "Y": 197.55338, + "Z": 508.23218 + }, + "StopDistance": 4, + "TerritoryId": 1079, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2012293, + "Position": { + "X": 809.9336, + "Y": 151.81189, + "Z": -243.42719 + }, + "TerritoryId": 961, + "InteractionType": "Interact", + "AetheryteShortcut": "Elpis - Anagnorisis", + "Fly": true, + "TargetTerritoryId": 1025 + }, + { + "DataId": 2013031, + "Position": { + "X": 99.96179, + "Y": 8.8349, + "Z": -71.03082 + }, + "TerritoryId": 1025, + "InteractionType": "Interact", + "TargetTerritoryId": 1093 + }, + { + "DataId": 1045364, + "Position": { + "X": 96.36072, + "Y": -4.5494874E-13, + "Z": 85.43518 + }, + "TerritoryId": 1093, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": -431.53903, + "Y": -220.1193, + "Z": 301.76364 + }, + "TerritoryId": 956, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Labyrinthos - Aporia", + "Fly": true + }, + { + "DataId": 2013029, + "Position": { + "X": -238.97156, + "Y": -220.41656, + "Z": 340.6272 + }, + "TerritoryId": 956, + "InteractionType": "Interact", + "TargetTerritoryId": 1079 + }, + { + "DataId": 1045371, + "Position": { + "X": 29.404175, + "Y": 197.55386, + "Z": 508.8424 + }, + "TerritoryId": 1079, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1045372, + "Position": { + "X": 28.030762, + "Y": 197.55408, + "Z": 508.87305 + }, + "TerritoryId": 1079, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1045332, + "Position": { + "X": -639.704, + "Y": -27.177149, + "Z": 301.9912 + }, + "TerritoryId": 956, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} From 8243d149936aa8e38ed47c6ecebda439e77707c9 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Fri, 13 Sep 2024 19:27:41 +0200 Subject: [PATCH 243/450] Daily quest updates --- .../3909_How Do You Do, Fellow Dwarves.json | 73 +++++++++- .../Dailies/3910_Wood for What Ales You.json | 33 ++++- .../Dailies/3911_The Heart of Tankiness.json | 20 ++- .../Dailies/3918_Sealing the Deal.json | 35 ++++- .../Story/3898_I Heard You Like Tanks.json | 137 ++++++++++++++++++ 5 files changed, 292 insertions(+), 6 deletions(-) diff --git a/QuestPaths/5.x - Shadowbringers/Allied Societies/Dwarves/Dailies/3909_How Do You Do, Fellow Dwarves.json b/QuestPaths/5.x - Shadowbringers/Allied Societies/Dwarves/Dailies/3909_How Do You Do, Fellow Dwarves.json index 24aad0b4..d94c7315 100644 --- a/QuestPaths/5.x - Shadowbringers/Allied Societies/Dwarves/Dailies/3909_How Do You Do, Fellow Dwarves.json +++ b/QuestPaths/5.x - Shadowbringers/Allied Societies/Dwarves/Dailies/3909_How Do You Do, Fellow Dwarves.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,6 +29,78 @@ { "Sequence": 1, "Steps": [ + { + "DataId": 1033770, + "Position": { + "X": -410.11676, + "Y": 91.978714, + "Z": -426.71857 + }, + "TerritoryId": 813, + "InteractionType": "Say", + "ChatMessage": { + "Key": "TEXT_BANDWA108_03909_SAYTODO_000_030" + }, + "Fly": true, + "RequiredQuestVariables": [ + null, + null, + [ + 16 + ], + null, + null, + null + ] + }, + { + "DataId": 1033771, + "Position": { + "X": -396.07843, + "Y": 93.51564, + "Z": -419.11957 + }, + "TerritoryId": 813, + "InteractionType": "Say", + "ChatMessage": { + "Key": "TEXT_BANDWA108_03909_SAYTODO_000_030" + }, + "Fly": true, + "RequiredQuestVariables": [ + null, + null, + [ + 32 + ], + null, + null, + null + ] + }, + { + "DataId": 1033772, + "Position": { + "X": -399.80164, + "Y": 91.33075, + "Z": -441.42828 + }, + "TerritoryId": 813, + "InteractionType": "Say", + "ChatMessage": { + "Key": "TEXT_BANDWA108_03909_SAYTODO_000_030" + }, + "Fly": true, + "RequiredQuestVariables": [ + null, + null, + [ + 48 + ], + null, + null, + null + ] + } ] }, { diff --git a/QuestPaths/5.x - Shadowbringers/Allied Societies/Dwarves/Dailies/3910_Wood for What Ales You.json b/QuestPaths/5.x - Shadowbringers/Allied Societies/Dwarves/Dailies/3910_Wood for What Ales You.json index 24aad0b4..45a43271 100644 --- a/QuestPaths/5.x - Shadowbringers/Allied Societies/Dwarves/Dailies/3910_Wood for What Ales You.json +++ b/QuestPaths/5.x - Shadowbringers/Allied Societies/Dwarves/Dailies/3910_Wood for What Ales You.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,6 +29,38 @@ { "Sequence": 1, "Steps": [ + { + "DataId": 1033767, + "Position": { + "X": -608.6061, + "Y": 65.60085, + "Z": -431.81506 + }, + "TerritoryId": 813, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "TerritoryId": 813, + "InteractionType": "Craft", + "ItemId": 31159, + "ItemCount": 3 + }, + { + "DataId": 1033773, + "Position": { + "X": -629.3279, + "Y": 56.201706, + "Z": -139.29962 + }, + "TerritoryId": 813, + "InteractionType": "Interact", + "Fly": true + } ] }, { diff --git a/QuestPaths/5.x - Shadowbringers/Allied Societies/Dwarves/Dailies/3911_The Heart of Tankiness.json b/QuestPaths/5.x - Shadowbringers/Allied Societies/Dwarves/Dailies/3911_The Heart of Tankiness.json index 24aad0b4..24d97f94 100644 --- a/QuestPaths/5.x - Shadowbringers/Allied Societies/Dwarves/Dailies/3911_The Heart of Tankiness.json +++ b/QuestPaths/5.x - Shadowbringers/Allied Societies/Dwarves/Dailies/3911_The Heart of Tankiness.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,27 @@ { "Sequence": 1, "Steps": [ + { + "DataId": 1033767, + "Position": { + "X": -608.6061, + "Y": 65.60085, + "Z": -431.81506 + }, + "TerritoryId": 813, + "InteractionType": "Interact" + } ] }, { "Sequence": 255, "Steps": [ + { + "TerritoryId": 813, + "InteractionType": "Craft", + "ItemId": 31161, + "ItemCount": 1 + }, { "Position": { "X": -615.73865, @@ -42,8 +57,7 @@ "Z": -423.84705 }, "TerritoryId": 813, - "InteractionType": "WalkTo", - "Fly": true + "InteractionType": "WalkTo" }, { "DataId": 1033712, diff --git a/QuestPaths/5.x - Shadowbringers/Allied Societies/Dwarves/Dailies/3918_Sealing the Deal.json b/QuestPaths/5.x - Shadowbringers/Allied Societies/Dwarves/Dailies/3918_Sealing the Deal.json index 24aad0b4..42390281 100644 --- a/QuestPaths/5.x - Shadowbringers/Allied Societies/Dwarves/Dailies/3918_Sealing the Deal.json +++ b/QuestPaths/5.x - Shadowbringers/Allied Societies/Dwarves/Dailies/3918_Sealing the Deal.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,6 +29,39 @@ { "Sequence": 1, "Steps": [ + { + "DataId": 1033695, + "Position": { + "X": 117.05188, + "Y": 7.07016, + "Z": 667.38367 + }, + "TerritoryId": 813, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "TerritoryId": 813, + "InteractionType": "Craft", + "ItemId": 31171, + "ItemCount": 1 + }, + { + "DataId": 1033696, + "Position": { + "X": 119.035645, + "Y": 7.096028, + "Z": 667.5974 + }, + "StopDistance": 5, + "TerritoryId": 813, + "InteractionType": "Interact" + } ] }, { @@ -43,6 +75,7 @@ }, "TerritoryId": 813, "InteractionType": "WalkTo", + "AetheryteShortcut": "Lakeland - Ostall Imperative", "Fly": true }, { diff --git a/QuestPaths/5.x - Shadowbringers/Allied Societies/Dwarves/Story/3898_I Heard You Like Tanks.json b/QuestPaths/5.x - Shadowbringers/Allied Societies/Dwarves/Story/3898_I Heard You Like Tanks.json index 63fc007c..7fe3677c 100644 --- a/QuestPaths/5.x - Shadowbringers/Allied Societies/Dwarves/Story/3898_I Heard You Like Tanks.json +++ b/QuestPaths/5.x - Shadowbringers/Allied Societies/Dwarves/Story/3898_I Heard You Like Tanks.json @@ -16,6 +16,143 @@ "InteractionType": "AcceptQuest" } ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": -357.15628, + "Y": 108.72211, + "Z": -680.6214 + }, + "TerritoryId": 813, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 1033732, + "Position": { + "X": -356.22186, + "Y": 108.722115, + "Z": -682.3072 + }, + "TerritoryId": 813, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1033733, + "Position": { + "X": -357.16797, + "Y": 108.722115, + "Z": -683.1922 + }, + "StopDistance": 5, + "TerritoryId": 813, + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_BANDWA003_03898_SYSTEM_000_046", + "Yes": true + } + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1033769, + "Position": { + "X": -358.114, + "Y": 108.722115, + "Z": -683.43634 + }, + "StopDistance": 5, + "TerritoryId": 813, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1027826, + "Position": { + "X": 89.15845, + "Y": 0.49999997, + "Z": -145.4643 + }, + "TerritoryId": 819, + "InteractionType": "Interact", + "AetheryteShortcut": "Crystarium", + "AethernetShortcut": [ + "[Crystarium] Aetheryte Plaza", + "[Crystarium] The Dossal Gate" + ] + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1033710, + "Position": { + "X": -607.72107, + "Y": 65.60101, + "Z": -412.71082 + }, + "TerritoryId": 813, + "InteractionType": "Interact", + "AetheryteShortcut": "Lakeland - Ostall Imperative", + "Fly": true + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1033749, + "Position": { + "X": -628.04614, + "Y": 65.60091, + "Z": -414.66394 + }, + "TerritoryId": 813, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "TerritoryId": 813, + "InteractionType": "Craft", + "ItemId": 31141, + "ItemCount": 1 + }, + { + "DataId": 1033710, + "Position": { + "X": -607.72107, + "Y": 65.60101, + "Z": -412.71082 + }, + "TerritoryId": 813, + "InteractionType": "CompleteQuest" + } + ] } ] } From bbd3c16516403ccb21bdf65f1f0b254b81a681fe Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Fri, 13 Sep 2024 23:29:07 +0200 Subject: [PATCH 244/450] Update nier quests --- .../3671_Word about Komra.json | 8 ++- .../3720_Tails, You Lose.json | 3 +- .../3721_Heads, I Win.json | 3 +- .../3952_We Can Rebuild Her.json | 3 +- .../3953_Everything You Know Is Wrong.json | 7 ++- .../3998_To Make Amends.json | 53 +++++++++++++++- .../4035_Brave New World.json | 25 ++++++-- .../4045_Dwarves of a Beard.json | 21 +++++++ .../4046_Strange Glagg.json | 21 +++++++ .../4047_Dwarves of a Beard Freshened.json | 21 +++++++ .../4048_Stranger Glagg.json | 21 +++++++ .../4049_All's Well That Ends with Ale.json | 21 +++++++ .../4050_All That Grinds Is Not Gloom.json | 9 ++- .../4053_Whence the Heart Leads.json | 61 +++++++++++++++++++ .../Controller/Steps/Interactions/Interact.cs | 21 +++++-- .../QuestComponents/QuestTooltipComponent.cs | 4 +- 16 files changed, 281 insertions(+), 21 deletions(-) create mode 100644 QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/4045_Dwarves of a Beard.json create mode 100644 QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/4046_Strange Glagg.json create mode 100644 QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/4047_Dwarves of a Beard Freshened.json create mode 100644 QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/4048_Stranger Glagg.json create mode 100644 QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/4049_All's Well That Ends with Ale.json create mode 100644 QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/4053_Whence the Heart Leads.json diff --git a/QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/3671_Word about Komra.json b/QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/3671_Word about Komra.json index 4e46eb25..89d9d74e 100644 --- a/QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/3671_Word about Komra.json +++ b/QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/3671_Word about Komra.json @@ -13,7 +13,13 @@ "Z": -636.7438 }, "TerritoryId": 814, - "InteractionType": "AcceptQuest" + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Kholusia - Tomra", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } } ] }, diff --git a/QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/3720_Tails, You Lose.json b/QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/3720_Tails, You Lose.json index 3d9d3ca8..22f98486 100644 --- a/QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/3720_Tails, You Lose.json +++ b/QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/3720_Tails, You Lose.json @@ -123,7 +123,8 @@ "Z": -264.0879 }, "TerritoryId": 896, - "InteractionType": "Interact" + "InteractionType": "Interact", + "DelaySecondsAtStart": 5 } ] }, diff --git a/QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/3721_Heads, I Win.json b/QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/3721_Heads, I Win.json index ba6db5e5..dcc1a8d6 100644 --- a/QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/3721_Heads, I Win.json +++ b/QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/3721_Heads, I Win.json @@ -124,7 +124,8 @@ "Z": -264.0879 }, "TerritoryId": 896, - "InteractionType": "Interact" + "InteractionType": "Interact", + "DelaySecondsAtStart": 5 } ] }, diff --git a/QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/3952_We Can Rebuild Her.json b/QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/3952_We Can Rebuild Her.json index 7c7853d5..9f73fa53 100644 --- a/QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/3952_We Can Rebuild Her.json +++ b/QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/3952_We Can Rebuild Her.json @@ -174,7 +174,8 @@ "InteractionType": "Say", "ChatMessage": { "Key": "TEXT_LUCKTA301_03952_SAYTODO_000_220" - } + }, + "DelaySecondsAtStart": 5 } ] }, diff --git a/QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/3953_Everything You Know Is Wrong.json b/QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/3953_Everything You Know Is Wrong.json index c12c26f5..f0217cd8 100644 --- a/QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/3953_Everything You Know Is Wrong.json +++ b/QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/3953_Everything You Know Is Wrong.json @@ -53,7 +53,12 @@ "Z": 375.69226 }, "TerritoryId": 928, - "InteractionType": "Interact" + "InteractionType": "Interact", + "SkipConditions": { + "StepIf": { + "NotTargetable": true + } + } }, { "DataId": 2011155, diff --git a/QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/3998_To Make Amends.json b/QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/3998_To Make Amends.json index d5b6ce28..1eae4da6 100644 --- a/QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/3998_To Make Amends.json +++ b/QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/3998_To Make Amends.json @@ -202,6 +202,23 @@ { "Sequence": 12, "Steps": [ + { + "Position": { + "X": 702.07294, + "Y": 293.53958, + "Z": -159.18176 + }, + "TerritoryId": 814, + "InteractionType": "WalkTo", + "Fly": true, + "SkipConditions": { + "StepIf": { + "InTerritory": [ + 928 + ] + } + } + }, { "DataId": 2011154, "Position": { @@ -212,7 +229,6 @@ "TerritoryId": 814, "InteractionType": "Interact", "TargetTerritoryId": 928, - "Fly": true, "SkipConditions": { "StepIf": { "InTerritory": [ @@ -239,7 +255,8 @@ "Z": 274.00623 }, "TerritoryId": 928, - "InteractionType": "Interact" + "InteractionType": "Interact", + "DelaySecondsAtStart": 5 } ] }, @@ -256,6 +273,11 @@ "InteractionType": "WalkTo", "RestartNavigationIfCancelled": false }, + { + "TerritoryId": 928, + "InteractionType": "None", + "DelaySecondsAtStart": 2 + }, { "DataId": 2011109, "Position": { @@ -271,6 +293,15 @@ } } }, + { + "Position": { + "X": -234.40671, + "Y": 30, + "Z": 168.78214 + }, + "TerritoryId": 928, + "InteractionType": "WalkTo" + }, { "Position": { "X": -237.90593, @@ -321,6 +352,11 @@ "InteractionType": "WalkTo", "RestartNavigationIfCancelled": false }, + { + "TerritoryId": 928, + "InteractionType": "None", + "DelaySecondsAtStart": 2 + }, { "DataId": 2011110, "Position": { @@ -379,7 +415,13 @@ }, "TerritoryId": 928, "InteractionType": "WalkTo", - "RestartNavigationIfCancelled": false + "RestartNavigationIfCancelled": false, + "DelaySecondsAtStart": 2 + }, + { + "TerritoryId": 928, + "InteractionType": "None", + "DelaySecondsAtStart": 2 }, { "DataId": 2011118, @@ -406,6 +448,11 @@ "InteractionType": "WalkTo", "RestartNavigationIfCancelled": false }, + { + "TerritoryId": 928, + "InteractionType": "None", + "DelaySecondsAtStart": 2 + }, { "DataId": 2011115, "Position": { diff --git a/QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/4035_Brave New World.json b/QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/4035_Brave New World.json index 3ebdc6af..60d858be 100644 --- a/QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/4035_Brave New World.json +++ b/QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/4035_Brave New World.json @@ -46,7 +46,18 @@ }, "TerritoryId": 928, "InteractionType": "WalkTo", - "RestartNavigationIfCancelled": false + "RestartNavigationIfCancelled": false, + "DelaySecondsAtStart": 2 + }, + { + "Position": { + "X": -234.40671, + "Y": 30, + "Z": 168.78214 + }, + "TerritoryId": 928, + "InteractionType": "WalkTo", + "DelaySecondsAtStart": 2 }, { "Position": { @@ -106,7 +117,8 @@ }, "TerritoryId": 928, "InteractionType": "WalkTo", - "DisableNavmesh": true + "DisableNavmesh": true, + "DelaySecondsAtStart": 2 }, { "Position": { @@ -116,7 +128,8 @@ }, "TerritoryId": 928, "InteractionType": "WalkTo", - "RestartNavigationIfCancelled": false + "RestartNavigationIfCancelled": false, + "DelaySecondsAtStart": 2 }, { "Position": { @@ -126,7 +139,8 @@ }, "TerritoryId": 928, "InteractionType": "WalkTo", - "RestartNavigationIfCancelled": false + "RestartNavigationIfCancelled": false, + "DelaySecondsAtStart": 2 }, { "Position": { @@ -144,7 +158,8 @@ "Y": -249.74661, "Z": -301.74612 } - } + }, + "DelaySecondsAtStart": 2 }, { "DataId": 2011269, diff --git a/QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/4045_Dwarves of a Beard.json b/QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/4045_Dwarves of a Beard.json new file mode 100644 index 00000000..65ec863d --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/4045_Dwarves of a Beard.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": 1032227, + "Position": { + "X": 665.8884, + "Y": 297.47797, + "Z": -160.57074 + }, + "TerritoryId": 814, + "InteractionType": "AcceptQuest" + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/4046_Strange Glagg.json b/QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/4046_Strange Glagg.json new file mode 100644 index 00000000..65ec863d --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/4046_Strange Glagg.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": 1032227, + "Position": { + "X": 665.8884, + "Y": 297.47797, + "Z": -160.57074 + }, + "TerritoryId": 814, + "InteractionType": "AcceptQuest" + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/4047_Dwarves of a Beard Freshened.json b/QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/4047_Dwarves of a Beard Freshened.json new file mode 100644 index 00000000..65ec863d --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/4047_Dwarves of a Beard Freshened.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": 1032227, + "Position": { + "X": 665.8884, + "Y": 297.47797, + "Z": -160.57074 + }, + "TerritoryId": 814, + "InteractionType": "AcceptQuest" + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/4048_Stranger Glagg.json b/QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/4048_Stranger Glagg.json new file mode 100644 index 00000000..65ec863d --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/4048_Stranger Glagg.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": 1032227, + "Position": { + "X": 665.8884, + "Y": 297.47797, + "Z": -160.57074 + }, + "TerritoryId": 814, + "InteractionType": "AcceptQuest" + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/4049_All's Well That Ends with Ale.json b/QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/4049_All's Well That Ends with Ale.json new file mode 100644 index 00000000..65ec863d --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/4049_All's Well That Ends with Ale.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": 1032227, + "Position": { + "X": 665.8884, + "Y": 297.47797, + "Z": -160.57074 + }, + "TerritoryId": 814, + "InteractionType": "AcceptQuest" + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/4050_All That Grinds Is Not Gloom.json b/QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/4050_All That Grinds Is Not Gloom.json index 318f37c0..4c16a443 100644 --- a/QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/4050_All That Grinds Is Not Gloom.json +++ b/QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/4050_All That Grinds Is Not Gloom.json @@ -26,6 +26,11 @@ "Type": "List", "Prompt": "TEXT_LUCKTA521_04050_Q1_000_000", "Answer": "TEXT_LUCKTA521_04050_A1_000_002" + }, + { + "Type": "List", + "Prompt": "TEXT_LUCKTA521_04050_Q2_000_000", + "Answer": "TEXT_LUCKTA521_04050_A2_000_001" } ] } @@ -43,7 +48,8 @@ }, "TerritoryId": 814, "InteractionType": "Interact", - "TargetTerritoryId": 895 + "TargetTerritoryId": 895, + "Fly": true }, { "DataId": 2010830, @@ -93,6 +99,7 @@ }, "TerritoryId": 896, "InteractionType": "Interact", + "DelaySecondsAtStart": 2, "CompletionQuestVariablesFlags": [ null, null, diff --git a/QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/4053_Whence the Heart Leads.json b/QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/4053_Whence the Heart Leads.json new file mode 100644 index 00000000..8480e069 --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Alliance Raid Quests/4053_Whence the Heart Leads.json @@ -0,0 +1,61 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1032227, + "Position": { + "X": 665.8884, + "Y": 297.47797, + "Z": -160.57074 + }, + "TerritoryId": 814, + "InteractionType": "AcceptQuest", + "Fly": true, + "AetheryteShortcut": "Kholusia - Stilltide", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1036045, + "Position": { + "X": 10.0251465, + "Y": 82.83513, + "Z": -53.60504 + }, + "TerritoryId": 820, + "InteractionType": "Interact", + "AetheryteShortcut": "Eulmore" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1032227, + "Position": { + "X": 665.8884, + "Y": 297.47797, + "Z": -160.57074 + }, + "TerritoryId": 814, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Kholusia - Stilltide", + "Fly": true + } + ] + } + ] +} diff --git a/Questionable/Controller/Steps/Interactions/Interact.cs b/Questionable/Controller/Steps/Interactions/Interact.cs index b048b7ff..e233bfde 100644 --- a/Questionable/Controller/Steps/Interactions/Interact.cs +++ b/Questionable/Controller/Steps/Interactions/Interact.cs @@ -16,7 +16,10 @@ namespace Questionable.Controller.Steps.Interactions; internal static class Interact { - internal sealed class Factory(GameFunctions gameFunctions, Configuration configuration, ICondition condition, + internal sealed class Factory( + GameFunctions gameFunctions, + Configuration configuration, + ICondition condition, ILoggerFactory loggerFactory) : ITaskFactory { @@ -54,14 +57,14 @@ internal static class Interact yield return Interact(step.DataId.Value, quest, step.InteractionType, step.TargetTerritoryId != null || quest.Id is SatisfactionSupplyNpcId || - step.SkipConditions is { StepIf.Never: true }, step.PickUpItemId); + step.SkipConditions is { StepIf.Never: true }, step.PickUpItemId, step.SkipConditions?.StepIf); } internal ITask Interact(uint dataId, Quest? quest, EInteractionType interactionType, - bool skipMarkerCheck = false, uint? pickUpItemId = null) + bool skipMarkerCheck = false, uint? pickUpItemId = null, SkipStepConditions? skipConditions = null) { - return new DoInteract(dataId, quest, interactionType, skipMarkerCheck, pickUpItemId, gameFunctions, - condition, loggerFactory.CreateLogger()); + return new DoInteract(dataId, quest, interactionType, skipMarkerCheck, pickUpItemId, skipConditions, + gameFunctions, condition, loggerFactory.CreateLogger()); } } @@ -71,6 +74,7 @@ internal static class Interact EInteractionType interactionType, bool skipMarkerCheck, uint? pickUpItemId, + SkipStepConditions? skipConditions, GameFunctions gameFunctions, ICondition condition, ILogger logger) @@ -97,6 +101,13 @@ internal static class Interact return false; } + if (!gameObject.IsTargetable && skipConditions is { Never: false, NotTargetable: true }) + { + logger.LogInformation("Not interacting with {DataId} because it is not targetable (but skippable)", + dataId); + return false; + } + // this is only relevant for followers on quests if (!gameObject.IsTargetable && condition[ConditionFlag.Mounted] && gameObject.ObjectKind != ObjectKind.GatheringPoint) diff --git a/Questionable/Windows/QuestComponents/QuestTooltipComponent.cs b/Questionable/Windows/QuestComponents/QuestTooltipComponent.cs index 702541b6..3f426f6c 100644 --- a/Questionable/Windows/QuestComponents/QuestTooltipComponent.cs +++ b/Questionable/Windows/QuestComponents/QuestTooltipComponent.cs @@ -117,7 +117,7 @@ internal sealed class QuestTooltipComponent else { using var _ = ImRaii.Disabled(); - _uiUtils.ChecklistItem($"Unknown Quest ({q})", ImGuiColors.DalamudGrey, FontAwesomeIcon.Question); + _uiUtils.ChecklistItem($"Unknown Quest ({q.QuestId})", ImGuiColors.DalamudGrey, FontAwesomeIcon.Question); } } } @@ -180,7 +180,7 @@ internal sealed class QuestTooltipComponent _ => "None", }; - GrandCompany currentGrandCompany = ~_questFunctions.GetGrandCompany(); + GrandCompany currentGrandCompany = _questFunctions.GetGrandCompany(); _uiUtils.ChecklistItem($"Grand Company: {gcName}", actualQuestInfo.GrandCompany == currentGrandCompany); } } From 9671e08afd910bb148cacf8f22c1d27a407e49f3 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Fri, 13 Sep 2024 23:29:19 +0200 Subject: [PATCH 245/450] Update schema URLs --- .../Allied Societies/Pixies/Story/3687_As the Heart Bids.json | 2 +- .../Allied Societies/Pixies/Story/3688_Forever and a Dream.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/QuestPaths/5.x - Shadowbringers/Allied Societies/Pixies/Story/3687_As the Heart Bids.json b/QuestPaths/5.x - Shadowbringers/Allied Societies/Pixies/Story/3687_As the Heart Bids.json index ed481436..d5c95707 100644 --- a/QuestPaths/5.x - Shadowbringers/Allied Societies/Pixies/Story/3687_As the Heart Bids.json +++ b/QuestPaths/5.x - Shadowbringers/Allied Societies/Pixies/Story/3687_As the Heart Bids.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": [ { diff --git a/QuestPaths/5.x - Shadowbringers/Allied Societies/Pixies/Story/3688_Forever and a Dream.json b/QuestPaths/5.x - Shadowbringers/Allied Societies/Pixies/Story/3688_Forever and a Dream.json index a8054e2f..44ec1f14 100644 --- a/QuestPaths/5.x - Shadowbringers/Allied Societies/Pixies/Story/3688_Forever and a Dream.json +++ b/QuestPaths/5.x - Shadowbringers/Allied Societies/Pixies/Story/3688_Forever and a Dream.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": [ { From 800799ddba31cb84243bac045bb3e1fe4adf4114 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Fri, 13 Sep 2024 23:53:40 +0200 Subject: [PATCH 246/450] ARR journal adjustments + some basic gridania quests --- .../3860_Never Forget.json | 67 ++++++-- .../Gridania/24_Coarse Correspondence.json | 40 +++++ .../Gridania/25_Quarrels with Squirrels.json | 85 ++++++++++ .../Gridania/38_Parsemontrenomics.json | 142 +++++++++++++++++ .../Gridania/42_Sylphic Gratitude.json | 149 ++++++++++++++++++ .../49_I Am Millicent, Hear Me Roar.json | 36 +++++ Questionable/Data/QuestData.cs | 22 ++- 7 files changed, 526 insertions(+), 15 deletions(-) create mode 100644 QuestPaths/2.x - A Realm Reborn/Side Quests/Black Shroud/Gridania/24_Coarse Correspondence.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Side Quests/Black Shroud/Gridania/25_Quarrels with Squirrels.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Side Quests/Black Shroud/Gridania/38_Parsemontrenomics.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Side Quests/Black Shroud/Gridania/42_Sylphic Gratitude.json create mode 100644 QuestPaths/2.x - A Realm Reborn/Side Quests/Black Shroud/Gridania/49_I Am Millicent, Hear Me Roar.json diff --git a/QuestPaths/2.x - A Realm Reborn/MSQ-2/A3-South Shroud, Buscarron’s Druthers/3860_Never Forget.json b/QuestPaths/2.x - A Realm Reborn/MSQ-2/A3-South Shroud, Buscarron’s Druthers/3860_Never Forget.json index 02861da3..c54a4a62 100644 --- a/QuestPaths/2.x - A Realm Reborn/MSQ-2/A3-South Shroud, Buscarron’s Druthers/3860_Never Forget.json +++ b/QuestPaths/2.x - A Realm Reborn/MSQ-2/A3-South Shroud, Buscarron’s Druthers/3860_Never Forget.json @@ -80,16 +80,60 @@ "Sequence": 4, "Steps": [ { - "DataId": 1000868, - "Position": { - "X": -192.00433, - "Y": 0.9999907, - "Z": 211.68835 - }, - "StopDistance": 7, - "TerritoryId": 129, - "InteractionType": "Interact", - "TargetTerritoryId": 138 + "TerritoryId": 135, + "InteractionType": "AttuneAetheryte", + "Aetheryte": "Lower La Noscea - Moraby Drydocks", + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] Tempest Gate (Lower La Noscea)" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "AetheryteUnlocked": "Lower La Noscea - Moraby Drydocks" + }, + "AethernetShortcutIf": { + "AetheryteUnlocked": "Lower La Noscea - Moraby Drydocks" + }, + "StepIf": { + "AetheryteUnlocked": "Lower La Noscea - Moraby Drydocks" + } + } + }, + { + "TerritoryId": 134, + "InteractionType": "AttuneAetheryte", + "Aetheryte": "Middle La Noscea - Summerford Farms", + "AetheryteShortcut": "Limsa Lominsa", + "AethernetShortcut": [ + "[Limsa Lominsa] Aetheryte Plaza", + "[Limsa Lominsa] Zephyr Gate (Middle La Noscea)" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "AetheryteUnlocked": "Middle La Noscea - Summerford Farms" + }, + "AethernetShortcutIf": { + "AetheryteUnlocked": "Middle La Noscea - Summerford Farms" + }, + "StepIf": { + "AetheryteUnlocked": "Middle La Noscea - Summerford Farms" + } + } + }, + { + "TerritoryId": 138, + "InteractionType": "AttuneAetheryte", + "Aetheryte": "Western La Noscea - Swiftperch", + "AetheryteShortcut": "Western La Noscea - Aleport", + "SkipConditions": { + "AetheryteShortcutIf": { + "AetheryteUnlocked": "Western La Noscea - Swiftperch" + }, + "StepIf": { + "AetheryteUnlocked": "Western La Noscea - Swiftperch" + } + } }, { "DataId": 1003393, @@ -99,7 +143,8 @@ "Z": 351.76624 }, "TerritoryId": 138, - "InteractionType": "Interact" + "InteractionType": "Interact", + "AetheryteShortcut": "Western La Noscea - Aleport" } ] }, diff --git a/QuestPaths/2.x - A Realm Reborn/Side Quests/Black Shroud/Gridania/24_Coarse Correspondence.json b/QuestPaths/2.x - A Realm Reborn/Side Quests/Black Shroud/Gridania/24_Coarse Correspondence.json new file mode 100644 index 00000000..d6260666 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Side Quests/Black Shroud/Gridania/24_Coarse Correspondence.json @@ -0,0 +1,40 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1000206, + "Position": { + "X": 193.59119, + "Y": -0.015319824, + "Z": 42.160645 + }, + "TerritoryId": 132, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1000233, + "Position": { + "X": 168.65796, + "Y": 15.5, + "Z": -95.99457 + }, + "TerritoryId": 133, + "InteractionType": "CompleteQuest", + "AethernetShortcut": [ + "[Gridania] Archers' Guild", + "[Gridania] Leatherworkers' Guild & Shaded Bower" + ] + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Side Quests/Black Shroud/Gridania/25_Quarrels with Squirrels.json b/QuestPaths/2.x - A Realm Reborn/Side Quests/Black Shroud/Gridania/25_Quarrels with Squirrels.json new file mode 100644 index 00000000..716e2012 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Side Quests/Black Shroud/Gridania/25_Quarrels with Squirrels.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": 1000263, + "Position": { + "X": 141.55786, + "Y": 15.5, + "Z": -274.43353 + }, + "TerritoryId": 133, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": 112.12561, + "Y": 16.504576, + "Z": -268.8553 + }, + "TerritoryId": 148, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "ComplexCombatData": [ + { + "DataId": 37, + "MinimumKillCount": 6, + "CompletionQuestVariablesFlags": [ + { + "Low": 6 + }, + null, + null, + null, + null, + null + ] + } + ], + "AethernetShortcut": [ + "[Gridania] Lancers' Guild", + "[Gridania] Blue Badger Gate (Central Shroud)" + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": 129.21268, + "Y": 25.16017, + "Z": -318.4288 + }, + "TerritoryId": 148, + "InteractionType": "WalkTo", + "TargetTerritoryId": 132 + }, + { + "DataId": 1000263, + "Position": { + "X": 141.55786, + "Y": 15.5, + "Z": -274.43353 + }, + "TerritoryId": 133, + "InteractionType": "CompleteQuest", + "AethernetShortcut": [ + "[Gridania] Aetheryte Plaza", + "[Gridania] Lancers' Guild" + ] + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Side Quests/Black Shroud/Gridania/38_Parsemontrenomics.json b/QuestPaths/2.x - A Realm Reborn/Side Quests/Black Shroud/Gridania/38_Parsemontrenomics.json new file mode 100644 index 00000000..2cc4b90e --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Side Quests/Black Shroud/Gridania/38_Parsemontrenomics.json @@ -0,0 +1,142 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1000768, + "Position": { + "X": 172.35059, + "Y": 15.5, + "Z": -89.951965 + }, + "TerritoryId": 133, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": 157.92119, + "Y": 15.700001, + "Z": -122.177925 + }, + "TerritoryId": 133, + "InteractionType": "WalkTo", + "SkipConditions": { + "StepIf": { + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + } + } + }, + { + "DataId": 1000238, + "Position": { + "X": 155.41309, + "Y": 15.700001, + "Z": -121.812805 + }, + "TerritoryId": 133, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, + { + "Position": { + "X": 162.74281, + "Y": 15.699926, + "Z": -59.43834 + }, + "TerritoryId": 133, + "InteractionType": "WalkTo", + "SkipConditions": { + "StepIf": { + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + } + } + }, + { + "DataId": 1000218, + "Position": { + "X": 164.72107, + "Y": 15.699947, + "Z": -58.18268 + }, + "TerritoryId": 133, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 1000214, + "Position": { + "X": 151.4762, + "Y": 15.699964, + "Z": -63.920105 + }, + "StopDistance": 5, + "TerritoryId": 133, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1000248, + "Position": { + "X": 143.05322, + "Y": 14.250365, + "Z": -250.72101 + }, + "TerritoryId": 133, + "InteractionType": "CompleteQuest", + "AethernetShortcut": [ + "[Gridania] Leatherworkers' Guild & Shaded Bower", + "[Gridania] Lancers' Guild" + ] + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Side Quests/Black Shroud/Gridania/42_Sylphic Gratitude.json b/QuestPaths/2.x - A Realm Reborn/Side Quests/Black Shroud/Gridania/42_Sylphic Gratitude.json new file mode 100644 index 00000000..7118b6c8 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Side Quests/Black Shroud/Gridania/42_Sylphic Gratitude.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": 1000286, + "Position": { + "X": -53.574463, + "Y": 7.2025366, + "Z": -118.36426 + }, + "TerritoryId": 133, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2000022, + "Position": { + "X": -52.71997, + "Y": 6.7596436, + "Z": -109.9718 + }, + "TerritoryId": 133, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, + { + "DataId": 2000020, + "Position": { + "X": -63.09613, + "Y": 6.94281, + "Z": -110.85681 + }, + "TerritoryId": 133, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 2000021, + "Position": { + "X": -37.979797, + "Y": 5.996765, + "Z": -101.76245 + }, + "TerritoryId": 133, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 2000025, + "Position": { + "X": -47.80658, + "Y": 5.722107, + "Z": -99.4126 + }, + "TerritoryId": 133, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 4 + ] + }, + { + "DataId": 2000024, + "Position": { + "X": -53.75763, + "Y": 6.4850464, + "Z": -89.52472 + }, + "TerritoryId": 133, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 8 + ] + }, + { + "DataId": 2000023, + "Position": { + "X": -43.808716, + "Y": 6.4850464, + "Z": -85.80151 + }, + "TerritoryId": 133, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 16 + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1000286, + "Position": { + "X": -53.574463, + "Y": 7.2025366, + "Z": -118.36426 + }, + "TerritoryId": 133, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/2.x - A Realm Reborn/Side Quests/Black Shroud/Gridania/49_I Am Millicent, Hear Me Roar.json b/QuestPaths/2.x - A Realm Reborn/Side Quests/Black Shroud/Gridania/49_I Am Millicent, Hear Me Roar.json new file mode 100644 index 00000000..a7260e22 --- /dev/null +++ b/QuestPaths/2.x - A Realm Reborn/Side Quests/Black Shroud/Gridania/49_I Am Millicent, Hear Me Roar.json @@ -0,0 +1,36 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1000788, + "Position": { + "X": -43.90027, + "Y": 7.0877223, + "Z": -136.70563 + }, + "TerritoryId": 133, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1000429, + "Position": { + "X": 56.50415, + "Y": 7.9990244, + "Z": -132.12793 + }, + "TerritoryId": 133, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/Questionable/Data/QuestData.cs b/Questionable/Data/QuestData.cs index ed3a1c29..e74f28e5 100644 --- a/Questionable/Data/QuestData.cs +++ b/Questionable/Data/QuestData.cs @@ -59,7 +59,8 @@ internal sealed class QuestData .Where(x => x.RowId > 0) .Where(x => x.IssuerLocation.Row > 0) .Select(x => new QuestInfo(x, questChapters.GetValueOrDefault(x.RowId), - startingCities.GetValueOrDefault(x.RowId))), + startingCities.GetValueOrDefault(x.RowId))) + .Where(x => x.QuestId.Value != 1428), ..dataManager.GetExcelSheet()! .Where(x => x.RowId > 0) .Select(x => new SatisfactionSupplyInfo(x)), @@ -161,9 +162,22 @@ internal sealed class QuestData */ // initial city quests are side quests - ((QuestInfo)_quests[new QuestId(107)]).StartingCity = 1; - ((QuestInfo)_quests[new QuestId(39)]).StartingCity = 2; - ((QuestInfo)_quests[new QuestId(594)]).StartingCity = 3; + // 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]; + foreach (var questId in limsaSideQuests) + ((QuestInfo)_quests[new QuestId(questId)]).StartingCity = 1; + + ushort[] gridaniaQuests = + [39, 1, 32, 34, 37, 172, 127, 130, 60, 220, 378]; + foreach (var questId in gridaniaQuests) + ((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]; + foreach (var questId in uldahSideQuests) + ((QuestInfo)_quests[new QuestId(questId)]).StartingCity = 3; + // follow-up quests to picking a GC AddGcFollowUpQuests(); From 01d120efe870d5292c246dc81f86231a41d0f748 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sat, 14 Sep 2024 00:14:27 +0200 Subject: [PATCH 247/450] Whitebrim stairs rework --- .../3869_The Best Inventions.json | 81 +++++++++++++++++-- .../924_Ye of Little Faith.json | 81 +++++++++++++++++-- .../927_Factual Folklore.json | 37 +++++++-- .../938_Influencing Inquisitors.json | 40 +++++++-- QuestPaths/Reusable Paths.md | 46 +++++++++++ 5 files changed, 256 insertions(+), 29 deletions(-) diff --git a/QuestPaths/2.x - A Realm Reborn/MSQ-2/B9-Coerthas Central Highlands, Whitebrim Front/3869_The Best Inventions.json b/QuestPaths/2.x - A Realm Reborn/MSQ-2/B9-Coerthas Central Highlands, Whitebrim Front/3869_The Best Inventions.json index 5d05d1dc..af03074f 100644 --- a/QuestPaths/2.x - A Realm Reborn/MSQ-2/B9-Coerthas Central Highlands, Whitebrim Front/3869_The Best Inventions.json +++ b/QuestPaths/2.x - A Realm Reborn/MSQ-2/B9-Coerthas Central Highlands, Whitebrim Front/3869_The Best Inventions.json @@ -26,6 +26,50 @@ { "Sequence": 1, "Steps": [ + { + "Position": { + "X": -417.37885, + "Y": 224.99997, + "Z": -295.45523 + }, + "TerritoryId": 155, + "InteractionType": "WalkTo", + "Comment": "North Whitebrim, Stairs (top)", + "Mount": true + }, + { + "Position": { + "X": -417.70758, + "Y": 221.5, + "Z": -287.7873 + }, + "TerritoryId": 155, + "InteractionType": "WalkTo", + "Comment": "North Whitebrim, Stairs (middle/top)", + "DisableNavmesh": true + }, + { + "Position": { + "X": -421.45218, + "Y": 221.5, + "Z": -287.28427 + }, + "TerritoryId": 155, + "InteractionType": "WalkTo", + "Comment": "North Whitebrim, Stairs (middle/bottom)", + "DisableNavmesh": true + }, + { + "Position": { + "X": -421.5105, + "Y": 218.1, + "Z": -297.2496 + }, + "TerritoryId": 155, + "InteractionType": "WalkTo", + "Comment": "North Whitebrim, Stairs (bottom)", + "DisableNavmesh": true + }, { "Position": { "X": -491.4813, @@ -60,9 +104,9 @@ "Steps": [ { "Position": { - "X": -421.5307, - "Y": 219.52408, - "Z": -292.88748 + "X": -421.5105, + "Y": 218.1, + "Z": -297.2496 }, "TerritoryId": 155, "InteractionType": "WalkTo", @@ -70,13 +114,36 @@ }, { "Position": { - "X": -417.45395, - "Y": 223.30249, - "Z": -291.59283 + "X": -421.45218, + "Y": 221.5, + "Z": -287.28427 }, "TerritoryId": 155, "InteractionType": "WalkTo", - "Comment": "North Whitebrim, Stairs (top)" + "Comment": "North Whitebrim, Stairs (middle/bottom)", + "DisableNavmesh": true + }, + { + "Position": { + "X": -417.70758, + "Y": 221.5, + "Z": -287.7873 + }, + "TerritoryId": 155, + "InteractionType": "WalkTo", + "Comment": "North Whitebrim, Stairs (middle/top)", + "DisableNavmesh": true + }, + { + "Position": { + "X": -417.37885, + "Y": 224.99997, + "Z": -295.45523 + }, + "TerritoryId": 155, + "InteractionType": "WalkTo", + "Comment": "North Whitebrim, Stairs (top)", + "DisableNavmesh": true }, { "DataId": 1006461, diff --git a/QuestPaths/2.x - A Realm Reborn/MSQ-2/B9-Coerthas Central Highlands, Whitebrim Front/924_Ye of Little Faith.json b/QuestPaths/2.x - A Realm Reborn/MSQ-2/B9-Coerthas Central Highlands, Whitebrim Front/924_Ye of Little Faith.json index 0dc1d448..f3401f9b 100644 --- a/QuestPaths/2.x - A Realm Reborn/MSQ-2/B9-Coerthas Central Highlands, Whitebrim Front/924_Ye of Little Faith.json +++ b/QuestPaths/2.x - A Realm Reborn/MSQ-2/B9-Coerthas Central Highlands, Whitebrim Front/924_Ye of Little Faith.json @@ -43,9 +43,9 @@ "Steps": [ { "Position": { - "X": -421.5307, - "Y": 219.52408, - "Z": -292.88748 + "X": -421.5105, + "Y": 218.1, + "Z": -297.2496 }, "TerritoryId": 155, "InteractionType": "WalkTo", @@ -53,13 +53,36 @@ }, { "Position": { - "X": -417.45395, - "Y": 223.30249, - "Z": -291.59283 + "X": -421.45218, + "Y": 221.5, + "Z": -287.28427 }, "TerritoryId": 155, "InteractionType": "WalkTo", - "Comment": "North Whitebrim, Stairs (top)" + "Comment": "North Whitebrim, Stairs (middle/bottom)", + "DisableNavmesh": true + }, + { + "Position": { + "X": -417.70758, + "Y": 221.5, + "Z": -287.7873 + }, + "TerritoryId": 155, + "InteractionType": "WalkTo", + "Comment": "North Whitebrim, Stairs (middle/top)", + "DisableNavmesh": true + }, + { + "Position": { + "X": -417.37885, + "Y": 224.99997, + "Z": -295.45523 + }, + "TerritoryId": 155, + "InteractionType": "WalkTo", + "Comment": "North Whitebrim, Stairs (top)", + "DisableNavmesh": true }, { "DataId": 1006442, @@ -76,6 +99,50 @@ { "Sequence": 3, "Steps": [ + { + "Position": { + "X": -417.37885, + "Y": 224.99997, + "Z": -295.45523 + }, + "TerritoryId": 155, + "InteractionType": "WalkTo", + "Comment": "North Whitebrim, Stairs (top)", + "Mount": true + }, + { + "Position": { + "X": -417.70758, + "Y": 221.5, + "Z": -287.7873 + }, + "TerritoryId": 155, + "InteractionType": "WalkTo", + "Comment": "North Whitebrim, Stairs (middle/top)", + "DisableNavmesh": true + }, + { + "Position": { + "X": -421.45218, + "Y": 221.5, + "Z": -287.28427 + }, + "TerritoryId": 155, + "InteractionType": "WalkTo", + "Comment": "North Whitebrim, Stairs (middle/bottom)", + "DisableNavmesh": true + }, + { + "Position": { + "X": -421.5105, + "Y": 218.1, + "Z": -297.2496 + }, + "TerritoryId": 155, + "InteractionType": "WalkTo", + "Comment": "North Whitebrim, Stairs (bottom)", + "DisableNavmesh": true + }, { "DataId": 1006443, "Position": { diff --git a/QuestPaths/2.x - A Realm Reborn/MSQ-2/B9-Coerthas Central Highlands, Whitebrim Front/927_Factual Folklore.json b/QuestPaths/2.x - A Realm Reborn/MSQ-2/B9-Coerthas Central Highlands, Whitebrim Front/927_Factual Folklore.json index 27b1f566..b9550d58 100644 --- a/QuestPaths/2.x - A Realm Reborn/MSQ-2/B9-Coerthas Central Highlands, Whitebrim Front/927_Factual Folklore.json +++ b/QuestPaths/2.x - A Realm Reborn/MSQ-2/B9-Coerthas Central Highlands, Whitebrim Front/927_Factual Folklore.json @@ -142,9 +142,9 @@ "Steps": [ { "Position": { - "X": -421.5307, - "Y": 219.52408, - "Z": -292.88748 + "X": -421.5105, + "Y": 218.1, + "Z": -297.2496 }, "TerritoryId": 155, "InteractionType": "WalkTo", @@ -152,13 +152,36 @@ }, { "Position": { - "X": -417.45395, - "Y": 223.30249, - "Z": -291.59283 + "X": -421.45218, + "Y": 221.5, + "Z": -287.28427 }, "TerritoryId": 155, "InteractionType": "WalkTo", - "Comment": "North Whitebrim, Stairs (top)" + "Comment": "North Whitebrim, Stairs (middle/bottom)", + "DisableNavmesh": true + }, + { + "Position": { + "X": -417.70758, + "Y": 221.5, + "Z": -287.7873 + }, + "TerritoryId": 155, + "InteractionType": "WalkTo", + "Comment": "North Whitebrim, Stairs (middle/top)", + "DisableNavmesh": true + }, + { + "Position": { + "X": -417.37885, + "Y": 224.99997, + "Z": -295.45523 + }, + "TerritoryId": 155, + "InteractionType": "WalkTo", + "Comment": "North Whitebrim, Stairs (top)", + "DisableNavmesh": true }, { "DataId": 1007567, diff --git a/QuestPaths/2.x - A Realm Reborn/MSQ-2/C0-Coerthas Central Highlands, Whitebrim Front/938_Influencing Inquisitors.json b/QuestPaths/2.x - A Realm Reborn/MSQ-2/C0-Coerthas Central Highlands, Whitebrim Front/938_Influencing Inquisitors.json index fdfa9425..582ebcbd 100644 --- a/QuestPaths/2.x - A Realm Reborn/MSQ-2/C0-Coerthas Central Highlands, Whitebrim Front/938_Influencing Inquisitors.json +++ b/QuestPaths/2.x - A Realm Reborn/MSQ-2/C0-Coerthas Central Highlands, Whitebrim Front/938_Influencing Inquisitors.json @@ -28,23 +28,47 @@ "Steps": [ { "Position": { - "X": -417.45395, - "Y": 223.30249, - "Z": -291.59283 + "X": -417.37885, + "Y": 224.99997, + "Z": -295.45523 }, "TerritoryId": 155, "InteractionType": "WalkTo", - "Comment": "North Whitebrim, Stairs (top)" + "Comment": "North Whitebrim, Stairs (top)", + "Mount": true }, { "Position": { - "X": -421.5307, - "Y": 219.52408, - "Z": -292.88748 + "X": -417.70758, + "Y": 221.5, + "Z": -287.7873 }, "TerritoryId": 155, "InteractionType": "WalkTo", - "Comment": "North Whitebrim, Stairs (bottom)" + "Comment": "North Whitebrim, Stairs (middle/top)", + "DisableNavmesh": true + }, + { + "Position": { + "X": -421.45218, + "Y": 221.5, + "Z": -287.28427 + }, + "TerritoryId": 155, + "InteractionType": "WalkTo", + "Comment": "North Whitebrim, Stairs (middle/bottom)", + "DisableNavmesh": true + }, + { + "Position": { + "X": -421.5105, + "Y": 218.1, + "Z": -297.2496 + }, + "TerritoryId": 155, + "InteractionType": "WalkTo", + "Comment": "North Whitebrim, Stairs (bottom)", + "DisableNavmesh": true }, { "DataId": 1006466, diff --git a/QuestPaths/Reusable Paths.md b/QuestPaths/Reusable Paths.md index fca80551..e8b217ef 100644 --- a/QuestPaths/Reusable Paths.md +++ b/QuestPaths/Reusable Paths.md @@ -77,6 +77,52 @@ Horizon side of the gate: } ``` +```json + { + "Position": { + "X": -421.5105, + "Y": 218.1, + "Z": -297.2496 + }, + "TerritoryId": 155, + "InteractionType": "WalkTo", + "Comment": "North Whitebrim, Stairs (bottom)" + }, + { + "Position": { + "X": -421.45218, + "Y": 221.5, + "Z": -287.28427 + }, + "TerritoryId": 155, + "InteractionType": "WalkTo", + "Comment": "North Whitebrim, Stairs (middle/bottom)", + "DisableNavmesh": true + }, + { + "Position": { + "X": -417.70758, + "Y": 221.5, + "Z": -287.7873 + }, + "TerritoryId": 155, + "InteractionType": "WalkTo", + "Comment": "North Whitebrim, Stairs (middle/top)", + "DisableNavmesh": true + }, + { + "Position": { + "X": -417.37885, + "Y": 224.99997, + "Z": -295.45523 + }, + "TerritoryId": 155, + "InteractionType": "WalkTo", + "Comment": "North Whitebrim, Stairs (top)", + "DisableNavmesh": true + } +``` + ## Coerthas Western Highlands ```json From 412d157f0d8a233495caefb7a2506a235e0f2d13 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sat, 14 Sep 2024 00:18:02 +0200 Subject: [PATCH 248/450] Add hint for snipe setting --- Directory.Build.targets | 2 +- Questionable/Windows/ConfigWindow.cs | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/Directory.Build.targets b/Directory.Build.targets index c74d3461..aa6b3b27 100644 --- a/Directory.Build.targets +++ b/Directory.Build.targets @@ -1,5 +1,5 @@ - 3.2 + 3.3 diff --git a/Questionable/Windows/ConfigWindow.cs b/Questionable/Windows/ConfigWindow.cs index e69a7c37..0b278c04 100644 --- a/Questionable/Windows/ConfigWindow.cs +++ b/Questionable/Windows/ConfigWindow.cs @@ -92,6 +92,7 @@ internal sealed class ConfigWindow : LWindow, IPersistableWindowConfig 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)) { From c23ba271038a8f248e5b9e2a2ba8b9b5a240c5ba Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sat, 14 Sep 2024 00:20:46 +0200 Subject: [PATCH 249/450] Fix warnings --- .../QuestComponents/CreationUtilsComponent.cs | 78 ++++++++++--------- .../QuestComponents/EventInfoComponent.cs | 3 + 2 files changed, 45 insertions(+), 36 deletions(-) diff --git a/Questionable/Windows/QuestComponents/CreationUtilsComponent.cs b/Questionable/Windows/QuestComponents/CreationUtilsComponent.cs index 8c7cb09b..715bc089 100644 --- a/Questionable/Windows/QuestComponents/CreationUtilsComponent.cs +++ b/Questionable/Windows/QuestComponents/CreationUtilsComponent.cs @@ -70,7 +70,7 @@ internal sealed class CreationUtilsComponent _logger = logger; } - public unsafe void Draw() + public void Draw() { Debug.Assert(_clientState.LocalPlayer != null, "_clientState.LocalPlayer != null"); @@ -90,58 +90,64 @@ internal sealed class CreationUtilsComponent } #if false - var questManager = QuestManager.Instance(); - if (questManager != null) - { - for (int i = questManager->TrackedQuests.Length - 1; i >= 0; --i) + unsafe { + var questManager = QuestManager.Instance(); + if (questManager != null) { - var trackedQuest = questManager->TrackedQuests[i]; - switch (trackedQuest.QuestType) + for (int i = questManager->TrackedQuests.Length - 1; i >= 0; --i) { - default: - ImGui.Text($"Tracked quest {i}: {trackedQuest.QuestType}, {trackedQuest.Index}"); - break; + var trackedQuest = questManager->TrackedQuests[i]; + switch (trackedQuest.QuestType) + { + default: + ImGui.Text($"Tracked quest {i}: {trackedQuest.QuestType}, {trackedQuest.Index}"); + break; - case 1: - //_questRegistry.TryGetQuest(questManager->NormalQuests[trackedQuest.Index].QuestId, - // out var quest); - ImGui.Text( - $"Quest: {questManager->NormalQuests[trackedQuest.Index].QuestId}, {trackedQuest.Index}"); - break; + case 1: + //_questRegistry.TryGetQuest(questManager->NormalQuests[trackedQuest.Index].QuestId, + // out var quest); + ImGui.Text( + $"Quest: {questManager->NormalQuests[trackedQuest.Index].QuestId}, {trackedQuest.Index}"); + break; - case 2: - ImGui.Text($"Leve: {questManager->LeveQuests[trackedQuest.Index].LeveId}, {trackedQuest.Index}"); - break; + case 2: + ImGui.Text($"Leve: {questManager->LeveQuests[trackedQuest.Index].LeveId}, {trackedQuest.Index}"); + break; + } } } } #endif #if false - var questManager = QuestManager.Instance(); - if (questManager != null) - { - for (int i = 0; i < questManager->DailyQuests.Length; ++i) + unsafe { + var questManager = QuestManager.Instance(); + if (questManager != null) { - var dailyQuest = questManager->DailyQuests[i]; - ImGui.Text($"Daily Quest {i}: {dailyQuest.QuestId}, {dailyQuest.IsCompleted}"); + for (int i = 0; i < questManager->DailyQuests.Length; ++i) + { + var dailyQuest = questManager->DailyQuests[i]; + ImGui.Text($"Daily Quest {i}: {dailyQuest.QuestId}, {dailyQuest.IsCompleted}"); + } } } #endif #if false - var director = UIState.Instance()->DirectorTodo.Director; - if (director != null) - { - ImGui.Text($"Director: {director->ContentId}"); - ImGui.Text($"Seq: {director->Sequence}"); - ImGui.Text($"Ico: {director->IconId}"); - if (director->EventHandlerInfo != null) + unsafe { + var director = UIState.Instance()->DirectorTodo.Director; + if (director != null) { - ImGui.Text($" EHI CI: {director->EventHandlerInfo->EventId.ContentId}"); - ImGui.Text($" EHI EI: {director->EventHandlerInfo->EventId.Id}"); - ImGui.Text($" EHI EEI: {director->EventHandlerInfo->EventId.EntryId}"); - ImGui.Text($" EHI F: {director->EventHandlerInfo->Flags}"); + ImGui.Text($"Director: {director->ContentId}"); + ImGui.Text($"Seq: {director->Sequence}"); + ImGui.Text($"Ico: {director->IconId}"); + if (director->EventHandlerInfo != null) + { + ImGui.Text($" EHI CI: {director->EventHandlerInfo->EventId.ContentId}"); + ImGui.Text($" EHI EI: {director->EventHandlerInfo->EventId.Id}"); + ImGui.Text($" EHI EEI: {director->EventHandlerInfo->EventId.EntryId}"); + ImGui.Text($" EHI F: {director->EventHandlerInfo->Flags}"); + } } } #endif diff --git a/Questionable/Windows/QuestComponents/EventInfoComponent.cs b/Questionable/Windows/QuestComponents/EventInfoComponent.cs index c0d84bc4..d85e1f70 100644 --- a/Questionable/Windows/QuestComponents/EventInfoComponent.cs +++ b/Questionable/Windows/QuestComponents/EventInfoComponent.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using Dalamud.Interface; @@ -18,6 +19,7 @@ namespace Questionable.Windows.QuestComponents; internal sealed class EventInfoComponent { + [SuppressMessage("ReSharper", "CollectionNeverUpdated.Local")] private readonly List _eventQuests = [ ]; @@ -45,6 +47,7 @@ internal sealed class EventInfoComponent _pluginInterface = pluginInterface; } + [SuppressMessage("ReSharper", "UnusedMember.Local")] private static DateTime AtDailyReset(DateOnly date) { return new DateTime(date, new TimeOnly(14, 59), DateTimeKind.Utc); From f0ae8701c02f01e19d00ee00fb8e6b758fb9c5b8 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sat, 14 Sep 2024 00:22:35 +0200 Subject: [PATCH 250/450] Dependency update --- vendor/ECommons | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vendor/ECommons b/vendor/ECommons index ac744e72..1038f5ae 160000 --- a/vendor/ECommons +++ b/vendor/ECommons @@ -1 +1 @@ -Subproject commit ac744e72d99da3f3b4efc64bcadcfd40de7c21eb +Subproject commit 1038f5ae8964c7ea57aea6f0fe2aef7c9be50848 From ba12a34523bc04e83af66c03ed8c77d5cda00bf2 Mon Sep 17 00:00:00 2001 From: kaiser Date: Sun, 15 Sep 2024 10:20:14 +1000 Subject: [PATCH 251/450] feat: added SGE job quests. Only managed to add last 3 as I did the first 3 already. --- .../SGE/4070_A Poisoned Gift.json | 135 +++++++++++++ .../Class Quests/SGE/4071_Pledge of Hope.json | 182 ++++++++++++++++++ .../4072_Life Ephemeral, Path Eternal.json | 92 +++++++++ 3 files changed, 409 insertions(+) create mode 100644 QuestPaths/6.x - Endwalker/Class Quests/SGE/4070_A Poisoned Gift.json create mode 100644 QuestPaths/6.x - Endwalker/Class Quests/SGE/4071_Pledge of Hope.json create mode 100644 QuestPaths/6.x - Endwalker/Class Quests/SGE/4072_Life Ephemeral, Path Eternal.json diff --git a/QuestPaths/6.x - Endwalker/Class Quests/SGE/4070_A Poisoned Gift.json b/QuestPaths/6.x - Endwalker/Class Quests/SGE/4070_A Poisoned Gift.json new file mode 100644 index 00000000..102db672 --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Class Quests/SGE/4070_A Poisoned Gift.json @@ -0,0 +1,135 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "kaiser", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1039249, + "Position": { + "X": 0.3508911, + "Y": 210.99998, + "Z": -17.746277 + }, + "TerritoryId": 478, + "InteractionType": "AcceptQuest", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_AKTKBB121_04070_Q1_000_000", + "Answer": "TEXT_AKTKBB121_04070_A1_000_001" + } + ], + "AetheryteShortcut": "Idyllshire", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1039274, + "Position": { + "X": 246.93665, + "Y": -24.995794, + "Z": 235.4314 + }, + "TerritoryId": 138, + "InteractionType": "Interact", + "AetheryteShortcut": "Western La Noscea - Aleport" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1039275, + "Position": { + "X": 236.9878, + "Y": -24.792122, + "Z": 202.594 + }, + "TerritoryId": 138, + "InteractionType": "Interact", + "AetheryteShortcut": "Western La Noscea - Aleport", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1039276, + "Position": { + "X": 239.79541, + "Y": -24.721268, + "Z": 205.34058 + }, + "TerritoryId": 138, + "InteractionType": "Action", + "AetheryteShortcut": "Western La Noscea - Aleport", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + }, + "Action": "Diagnosis" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1039279, + "Position": { + "X": 239.9176, + "Y": -24.724764, + "Z": 205.24902 + }, + "TerritoryId": 138, + "InteractionType": "Interact", + "AetheryteShortcut": "Western La Noscea - Aleport", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1039249, + "Position": { + "X": 0.3508911, + "Y": 210.99998, + "Z": -17.746277 + }, + "TerritoryId": 478, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Idyllshire", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + } + ] +} diff --git a/QuestPaths/6.x - Endwalker/Class Quests/SGE/4071_Pledge of Hope.json b/QuestPaths/6.x - Endwalker/Class Quests/SGE/4071_Pledge of Hope.json new file mode 100644 index 00000000..f04e5af2 --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Class Quests/SGE/4071_Pledge of Hope.json @@ -0,0 +1,182 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "kaiser", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1039249, + "Position": { + "X": 0.3508911, + "Y": 210.99998, + "Z": -17.746277 + }, + "TerritoryId": 478, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Idyllshire", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1012133, + "Position": { + "X": -26.840637, + "Y": 206.49944, + "Z": 28.67163 + }, + "TerritoryId": 478, + "InteractionType": "Interact", + "AetheryteShortcut": "Idyllshire", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": -501.8255, + "Y": 147.54488, + "Z": -191.78416 + }, + "TerritoryId": 399, + "Fly": true, + "InteractionType": "Combat", + "AethernetShortcut": [ + "[Idyllshire] Aetheryte Plaza", + "[Idyllshire] Prologue Gate (Western Hinterlands)" + ], + "SkipConditions": { + "AethernetShortcutIf": { + "InSameTerritory": true + } + }, + "EnemySpawnType": "AutoOnEnterArea", + "ComplexCombatData": [ + { + "DataId": 14030, + "MinimumKillCount": 1 + } + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1039282, + "Position": { + "X": -504.87527, + "Y": 147.53165, + "Z": -199.17603 + }, + "TerritoryId": 399, + "InteractionType": "Action", + "AethernetShortcut": [ + "[Idyllshire] Aetheryte Plaza", + "[Idyllshire] Prologue Gate (Western Hinterlands)" + ], + "SkipConditions": { + "AethernetShortcutIf": { + "InSameTerritory": true + } + }, + "Action": "Diagnosis", + "Comment": "This might get stuck if we are high level and killed the mob too fast?, we ended up locking ourselves on eukrasia aura, Diagnosis can't be casted!" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "Position": { + "X": -383.24777, + "Y": 147.98257, + "Z": 52.931572 + }, + "TerritoryId": 399, + "Fly": true, + "InteractionType": "Combat", + "AethernetShortcut": [ + "[Idyllshire] Aetheryte Plaza", + "[Idyllshire] Prologue Gate (Western Hinterlands)" + ], + "SkipConditions": { + "AethernetShortcutIf": { + "InSameTerritory": true + } + }, + "EnemySpawnType": "AutoOnEnterArea", + "ComplexCombatData": [ + { + "DataId": 14029, + "MinimumKillCount": 2 + } + ] + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1039284, + "Position": { + "X": -382.49792, + "Y": 147.96011, + "Z": 47.53174 + }, + "TerritoryId": 399, + "Fly": false, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Idyllshire] Aetheryte Plaza", + "[Idyllshire] Prologue Gate (Western Hinterlands)" + ], + "SkipConditions": { + "AethernetShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1039249, + "Position": { + "X": 0.3508911, + "Y": 210.99998, + "Z": -17.746277 + }, + "TerritoryId": 478, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Idyllshire", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + } + ] +} diff --git a/QuestPaths/6.x - Endwalker/Class Quests/SGE/4072_Life Ephemeral, Path Eternal.json b/QuestPaths/6.x - Endwalker/Class Quests/SGE/4072_Life Ephemeral, Path Eternal.json new file mode 100644 index 00000000..c600f2e4 --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Class Quests/SGE/4072_Life Ephemeral, Path Eternal.json @@ -0,0 +1,92 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "kaiser", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1039249, + "Position": { + "X": 0.3508911, + "Y": 210.99998, + "Z": -17.746277 + }, + "TerritoryId": 478, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Idyllshire", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1039288, + "Position": { + "X": 212.9701, + "Y": 52.213486, + "Z": -787.50287 + }, + "TerritoryId": 398, + "InteractionType": "SinglePlayerDuty", + "Fly": true, + "AetheryteShortcut": "The Dravanian Forelands - Tailfeather", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1039288, + "Position": { + "X": 212.9701, + "Y": 52.213486, + "Z": -787.50287 + }, + "TerritoryId": 398, + "InteractionType": "Interact", + "Fly": true, + "AetheryteShortcut": "The Dravanian Forelands - Tailfeather", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1039280, + "Position": { + "X": 1.2054443, + "Y": 210.99997, + "Z": -16.494995 + }, + "TerritoryId": 478, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Idyllshire", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + } + ] +} From 2a2e3cafb9ce7713ce218d64eb5d515691349000 Mon Sep 17 00:00:00 2001 From: kaiser Date: Sun, 15 Sep 2024 10:22:29 +1000 Subject: [PATCH 252/450] chore: add SGE actions --- QuestPaths/quest-v1.json | 3 +++ Questionable.Model/Questing/Converter/ActionConverter.cs | 3 +++ Questionable.Model/Questing/EAction.cs | 3 +++ 3 files changed, 9 insertions(+) diff --git a/QuestPaths/quest-v1.json b/QuestPaths/quest-v1.json index f4754382..2f06454f 100644 --- a/QuestPaths/quest-v1.json +++ b/QuestPaths/quest-v1.json @@ -875,6 +875,9 @@ "Heavy Shot", "Cure", "Cure II", + "Eukrasia", + "Diagnosis", + "Eukrasian Diagnosis", "Esuna", "Physick", "Aspected Benefic", diff --git a/Questionable.Model/Questing/Converter/ActionConverter.cs b/Questionable.Model/Questing/Converter/ActionConverter.cs index d5de1fc1..3f371494 100644 --- a/Questionable.Model/Questing/Converter/ActionConverter.cs +++ b/Questionable.Model/Questing/Converter/ActionConverter.cs @@ -15,6 +15,9 @@ public sealed class ActionConverter() : EnumConverter(Values) { EAction.HeavyShot, "Heavy Shot" }, { EAction.Cure, "Cure" }, { EAction.Cure2, "Cure II" }, + { EAction.Eukrasia, "Eukrasia"}, + { EAction.Diagnosis, "Diagnosis"}, + { EAction.EukrasianDiagnosis, "Eukrasian Diagnosis"}, { EAction.Esuna, "Esuna" }, { EAction.Physick, "Physick" }, { EAction.AspectedBenefic, "Aspected Benefic" }, diff --git a/Questionable.Model/Questing/EAction.cs b/Questionable.Model/Questing/EAction.cs index fc4afa38..f0d2ea8b 100644 --- a/Questionable.Model/Questing/EAction.cs +++ b/Questionable.Model/Questing/EAction.cs @@ -14,6 +14,9 @@ public enum EAction HeavyShot = 97, Cure = 120, Cure2 = 135, + Eukrasia = 24290, + Diagnosis = 24284, + EukrasianDiagnosis = 24291, Esuna = 7568, Physick = 190, AspectedBenefic = 3595, From b1572f583298f56fa5b109efef1dfdd70138bc61 Mon Sep 17 00:00:00 2001 From: kaiser Date: Sun, 15 Sep 2024 10:23:43 +1000 Subject: [PATCH 253/450] feat: added a way to remove status for gameFunctions. Also updated the Action a bit, that way SGE doesn't get stuck when using diagnosis. --- .../Controller/Steps/Interactions/Action.cs | 20 +++++++++++++++---- Questionable/Functions/GameFunctions.cs | 5 +++++ 2 files changed, 21 insertions(+), 4 deletions(-) diff --git a/Questionable/Controller/Steps/Interactions/Action.cs b/Questionable/Controller/Steps/Interactions/Action.cs index 6d4da220..a39bded4 100644 --- a/Questionable/Controller/Steps/Interactions/Action.cs +++ b/Questionable/Controller/Steps/Interactions/Action.cs @@ -1,9 +1,6 @@ using System; using System.Collections.Generic; -using Dalamud.Game.ClientState.Conditions; using Dalamud.Game.ClientState.Objects.Types; -using FFXIVClientStructs.FFXIV.Client.Game; -using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; using Questionable.Controller.Steps.Common; using Questionable.Functions; @@ -60,6 +57,21 @@ internal static class Action if (gameObject.IsTargetable) { + if (action == EAction.Diagnosis) + { + uint eukrasiaAura = 2606; + // If SGE have Eukrasia status, we need to remove it. + if (gameFunctions.HasStatus(eukrasiaAura)) + { + if (GameFunctions.RemoveStatus(eukrasiaAura)) + { + // 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; + } + } + } + _usedAction = gameFunctions.UseAction(gameObject, action); _continueAt = DateTime.Now.AddSeconds(0.5); return true; @@ -105,4 +117,4 @@ internal static class Action public override string ToString() => $"Action({action})"; } -} +} \ No newline at end of file diff --git a/Questionable/Functions/GameFunctions.cs b/Questionable/Functions/GameFunctions.cs index 07fb8c37..2cc2e122 100644 --- a/Questionable/Functions/GameFunctions.cs +++ b/Questionable/Functions/GameFunctions.cs @@ -308,6 +308,11 @@ internal sealed unsafe class GameFunctions StatusManager* statusManager = battleChara->GetStatusManager(); return statusManager->HasStatus(statusId); } + + public static bool RemoveStatus(uint statusId) + { + return StatusManager.ExecuteStatusOff(statusId); + } public bool Mount() { From 9e65a7aa547683ae5ddb3b31ec1c72d86cd7a1d0 Mon Sep 17 00:00:00 2001 From: kaiser Date: Sun, 15 Sep 2024 10:36:54 +1000 Subject: [PATCH 254/450] chore: remove BOM --- .../6.x - Endwalker/Class Quests/SGE/4070_A Poisoned Gift.json | 2 +- .../6.x - Endwalker/Class Quests/SGE/4071_Pledge of Hope.json | 2 +- .../Class Quests/SGE/4072_Life Ephemeral, Path Eternal.json | 2 +- Questionable/Controller/Steps/Interactions/Action.cs | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/QuestPaths/6.x - Endwalker/Class Quests/SGE/4070_A Poisoned Gift.json b/QuestPaths/6.x - Endwalker/Class Quests/SGE/4070_A Poisoned Gift.json index 102db672..a47ebf05 100644 --- a/QuestPaths/6.x - Endwalker/Class Quests/SGE/4070_A Poisoned Gift.json +++ b/QuestPaths/6.x - Endwalker/Class Quests/SGE/4070_A Poisoned Gift.json @@ -1,4 +1,4 @@ -{ +{ "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "kaiser", "QuestSequence": [ diff --git a/QuestPaths/6.x - Endwalker/Class Quests/SGE/4071_Pledge of Hope.json b/QuestPaths/6.x - Endwalker/Class Quests/SGE/4071_Pledge of Hope.json index f04e5af2..c22655dd 100644 --- a/QuestPaths/6.x - Endwalker/Class Quests/SGE/4071_Pledge of Hope.json +++ b/QuestPaths/6.x - Endwalker/Class Quests/SGE/4071_Pledge of Hope.json @@ -1,4 +1,4 @@ -{ +{ "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "kaiser", "QuestSequence": [ diff --git a/QuestPaths/6.x - Endwalker/Class Quests/SGE/4072_Life Ephemeral, Path Eternal.json b/QuestPaths/6.x - Endwalker/Class Quests/SGE/4072_Life Ephemeral, Path Eternal.json index c600f2e4..e7405f3c 100644 --- a/QuestPaths/6.x - Endwalker/Class Quests/SGE/4072_Life Ephemeral, Path Eternal.json +++ b/QuestPaths/6.x - Endwalker/Class Quests/SGE/4072_Life Ephemeral, Path Eternal.json @@ -1,4 +1,4 @@ -{ +{ "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "kaiser", "QuestSequence": [ diff --git a/Questionable/Controller/Steps/Interactions/Action.cs b/Questionable/Controller/Steps/Interactions/Action.cs index a39bded4..f50f6697 100644 --- a/Questionable/Controller/Steps/Interactions/Action.cs +++ b/Questionable/Controller/Steps/Interactions/Action.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using Dalamud.Game.ClientState.Objects.Types; using Microsoft.Extensions.Logging; From 870b103e367fbf50fabd62744cc2f4477389c5b1 Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Mon, 16 Sep 2024 01:22:31 +0800 Subject: [PATCH 255/450] Updated a few daily quests: - Marks of Friendship - Prayers and Poison - Salve Our Souls --- .../Dailies/3813_Marks of Friendship.json | 47 ++++++++++++++++--- .../Dailies/3814_Prayers and Poison.json | 13 ++++- .../Qitari/Dailies/3815_Salve Our Souls.json | 13 ++++- 3 files changed, 63 insertions(+), 10 deletions(-) diff --git a/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Dailies/3813_Marks of Friendship.json b/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Dailies/3813_Marks of Friendship.json index 76b7a64a..165063fb 100644 --- a/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Dailies/3813_Marks of Friendship.json +++ b/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Dailies/3813_Marks of Friendship.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,45 @@ } ] }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1027719, + "Position": { + "X": 303.5172, + "Y": 34.242825, + "Z": -146.65448 + }, + "TerritoryId": 817, + "InteractionType": "Interact", + "AetheryteShortcut": "Rak'tika - Fanow", + "Fly": true + }, + { + "DataId": 1027715, + "Position": { + "X": 411.21533, + "Y": 33.637783, + "Z": -128.5268 + }, + "TerritoryId": 817, + "InteractionType": "Interact", + "Fly": true + }, + { + "DataId": 1027713, + "Position": { + "X": 446.70776, + "Y": 34.051743, + "Z": -117.17407 + }, + "TerritoryId": 817, + "InteractionType": "Interact", + "Fly": true + } + ] + }, { "Sequence": 255, "Steps": [ @@ -29,10 +67,7 @@ }, "TerritoryId": 817, "InteractionType": "WalkTo", - "AetheryteShortcut": "Rak'tika - Fanow", - "Fly": true, - "RequiredGatheredItems": [ - ] + "Fly": true }, { "DataId": 1032643, 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 76b7a64a..23a2829e 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 @@ -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, @@ -32,6 +31,16 @@ "AetheryteShortcut": "Rak'tika - Fanow", "Fly": true, "RequiredGatheredItems": [ + { + "QuestAcceptedAsClass": "Miner", + "ItemId": 29523, + "ItemCount": 3 + }, + { + "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 76b7a64a..3fda4f2d 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 @@ -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, @@ -32,6 +31,16 @@ "AetheryteShortcut": "Rak'tika - Fanow", "Fly": true, "RequiredGatheredItems": [ + { + "QuestAcceptedAsClass": "Miner", + "ItemId": 29524, + "ItemCount": 3 + }, + { + "QuestAcceptedAsClass": "Botanist", + "ItemId": 29550, + "ItemCount": 3 + } ] }, { From 2601c1ef73248cfaff017afcf85623876789998a Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Mon, 16 Sep 2024 01:23:24 +0800 Subject: [PATCH 256/450] Added new story quests: - Wisdom of the Night - The First Stela: Of Ronkan Might - The First Stela: Of Ronkan Benevolence --- .../Story/3795_Wisdom of the Night.json | 82 +++++++++++++++++++ .../3800_The First Stela Of Ronkan Might.json | 36 ++++++++ ...The First Stela Of Ronkan Benevolence.json | 36 ++++++++ 3 files changed, 154 insertions(+) create mode 100644 QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Story/3795_Wisdom of the Night.json create mode 100644 QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Story/3800_The First Stela Of Ronkan Might.json create mode 100644 QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Story/3801_The First Stela Of Ronkan Benevolence.json 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 new file mode 100644 index 00000000..1b2c8f55 --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Story/3795_Wisdom of the Night.json @@ -0,0 +1,82 @@ +{ + "$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": 1032731, + "Position": { + "X": -28.732727, + "Y": -24.68478, + "Z": 318.28796 + }, + "TerritoryId": 817, + "InteractionType": "Interact", + "AetheryteShortcut": "Rak'tika - Slitherbough", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1032734, + "Position": { + "X": 802.6703, + "Y": -45.915627, + "Z": -214.70972 + }, + "TerritoryId": 817, + "InteractionType": "Interact", + "AetheryteShortcut": "Rak'tika - Fanow", + "Fly": true, + "RequiredGatheredItems": [ + { + "QuestAcceptedAsClass": "Miner", + "ItemId": 29513, + "ItemCount": 1 + }, + { + "QuestAcceptedAsClass": "Botanist", + "ItemId": 29539, + "ItemCount": 1 + } + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1032659, + "Position": { + "X": 802.79236, + "Y": -45.91779, + "Z": -218.58557 + }, + "TerritoryId": 817, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Story/3800_The First Stela Of Ronkan Might.json b/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Story/3800_The First Stela Of Ronkan Might.json new file mode 100644 index 00000000..96d75a52 --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Story/3800_The First Stela Of Ronkan Might.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": 1032660, + "Position": { + "X": 804.4098, + "Y": -45.9255, + "Z": -216.41876 + }, + "TerritoryId": 817, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1032660, + "Position": { + "X": 804.4098, + "Y": -45.9255, + "Z": -216.41876 + }, + "TerritoryId": 817, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Story/3801_The First Stela Of Ronkan Benevolence.json b/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Story/3801_The First Stela Of Ronkan Benevolence.json new file mode 100644 index 00000000..9f606918 --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Story/3801_The First Stela Of Ronkan Benevolence.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": 1032659, + "Position": { + "X": 802.79236, + "Y": -45.91779, + "Z": -218.58557 + }, + "TerritoryId": 817, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1032659, + "Position": { + "X": 802.79236, + "Y": -45.91779, + "Z": -218.58557 + }, + "TerritoryId": 817, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} From 07de5666f531fe13c026027b00a826daa0edb817 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Mon, 16 Sep 2024 01:18:57 +0200 Subject: [PATCH 257/450] Post-ShB updates --- .../MSQ/G-5.1/3674_A Grand Adventure.json | 54 ++++- .../MSQ/G-5.1/3676_Good for the Soul.json | 14 ++ .../MSQ/G-5.1/3679_For the People.json | 16 ++ .../MSQ/H-5.2/3767_Deep Designs.json | 43 ++++ .../MSQ/H-5.2/3768_A Whale's Tale.json | 206 +++++++++++++++++- .../MSQ/I-5.3/3779_Nothing Unsaid.json | 2 +- .../MSQ/I-5.3/3780_The Journey Continues.json | 14 ++ .../Thavnair/4489_Steppe Child.json | 2 +- .../MovementOverrideController.cs | 1 + 9 files changed, 342 insertions(+), 10 deletions(-) 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 8913f750..bee1224a 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 @@ -23,6 +23,59 @@ { "Sequence": 1, "Steps": [ + { + "TerritoryId": 819, + "AetheryteShortcut": "Crystarium", + "AethernetShortcut": [ + "[Crystarium] Aetheryte Plaza", + "[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": -54.93826, + "Y": 3.1323283, + "Z": 690.1962 + }, + "TerritoryId": 813, + "InteractionType": "WalkTo", + "SkipConditions": { + "StepIf": { + "Flying": "Unlocked" + } + } + }, { "Position": { "X": -115.65658, @@ -32,7 +85,6 @@ "StopDistance": 0.5, "TerritoryId": 813, "InteractionType": "WalkTo", - "AetheryteShortcut": "Lakeland - Fort Jobb", "Fly": true }, { diff --git a/QuestPaths/5.x - Shadowbringers/MSQ/G-5.1/3676_Good for the Soul.json b/QuestPaths/5.x - Shadowbringers/MSQ/G-5.1/3676_Good for the Soul.json index 44e0a9ef..bdc83665 100644 --- a/QuestPaths/5.x - Shadowbringers/MSQ/G-5.1/3676_Good for the Soul.json +++ b/QuestPaths/5.x - Shadowbringers/MSQ/G-5.1/3676_Good for the Soul.json @@ -58,6 +58,20 @@ { "Sequence": 3, "Steps": [ + { + "Position": { + "X": -27.96634, + "Y": 41.707367, + "Z": -482.99057 + }, + "TerritoryId": 815, + "InteractionType": "WalkTo", + "SkipConditions": { + "StepIf": { + "Flying": "Unlocked" + } + } + }, { "DataId": 2010811, "Position": { diff --git a/QuestPaths/5.x - Shadowbringers/MSQ/G-5.1/3679_For the People.json b/QuestPaths/5.x - Shadowbringers/MSQ/G-5.1/3679_For the People.json index 3b3d2587..0d7a977a 100644 --- a/QuestPaths/5.x - Shadowbringers/MSQ/G-5.1/3679_For the People.json +++ b/QuestPaths/5.x - Shadowbringers/MSQ/G-5.1/3679_For the People.json @@ -36,6 +36,22 @@ { "Sequence": 2, "Steps": [ + { + "DataId": 1028319, + "Position": { + "X": -454.7036, + "Y": 65.77815, + "Z": 58.27417 + }, + "TerritoryId": 814, + "InteractionType": "Interact", + "TargetTerritoryId": 814, + "SkipConditions": { + "StepIf": { + "Flying": "Unlocked" + } + } + }, { "DataId": 1031751, "Position": { diff --git a/QuestPaths/5.x - Shadowbringers/MSQ/H-5.2/3767_Deep Designs.json b/QuestPaths/5.x - Shadowbringers/MSQ/H-5.2/3767_Deep Designs.json index ba1d3b18..b63b800c 100644 --- a/QuestPaths/5.x - Shadowbringers/MSQ/H-5.2/3767_Deep Designs.json +++ b/QuestPaths/5.x - Shadowbringers/MSQ/H-5.2/3767_Deep Designs.json @@ -51,6 +51,49 @@ } } }, + { + "Position": { + "X": -559.0543, + "Y": 394.95718, + "Z": -611.97614 + }, + "TerritoryId": 818, + "InteractionType": "WalkTo", + "SkipConditions": { + "StepIf": { + "Flying": "Unlocked" + } + } + }, + { + "Position": { + "X": -681.43286, + "Y": 404.5379, + "Z": -693.3609 + }, + "TerritoryId": 818, + "InteractionType": "WalkTo", + "SkipConditions": { + "StepIf": { + "Flying": "Unlocked" + } + } + }, + { + "Position": { + "X": -675.946, + "Y": 408.10754, + "Z": -711.8061 + }, + "TerritoryId": 818, + "InteractionType": "WalkTo", + "DisableNavmesh": true, + "SkipConditions": { + "StepIf": { + "Flying": "Unlocked" + } + } + }, { "Position": { "X": -423.6145, diff --git a/QuestPaths/5.x - Shadowbringers/MSQ/H-5.2/3768_A Whale's Tale.json b/QuestPaths/5.x - Shadowbringers/MSQ/H-5.2/3768_A Whale's Tale.json index 92f7c836..546fe9cc 100644 --- a/QuestPaths/5.x - Shadowbringers/MSQ/H-5.2/3768_A Whale's Tale.json +++ b/QuestPaths/5.x - Shadowbringers/MSQ/H-5.2/3768_A Whale's Tale.json @@ -20,6 +20,73 @@ { "Sequence": 1, "Steps": [ + { + "TerritoryId": 819, + "AetheryteShortcut": "Crystarium", + "AethernetShortcut": [ + "[Crystarium] Aetheryte Plaza", + "[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" + } + } + }, + { + "Position": { + "X": -234.70464, + "Y": 1.0942776, + "Z": 738.40204 + }, + "TerritoryId": 813, + "InteractionType": "WalkTo", + "SkipConditions": { + "StepIf": { + "Flying": "Unlocked" + } + } + }, { "Position": { "X": -269.44116, @@ -28,7 +95,6 @@ }, "TerritoryId": 813, "InteractionType": "WalkTo", - "AetheryteShortcut": "Lakeland - Fort Jobb", "Fly": true }, { @@ -72,7 +138,12 @@ "InteractionType": "WalkTo", "Mount": true, "Fly": true, - "DisableNavmesh": true + "DisableNavmesh": true, + "SkipConditions": { + "StepIf": { + "Flying": "Locked" + } + } }, { "Position": { @@ -83,7 +154,44 @@ "TerritoryId": 813, "InteractionType": "WalkTo", "Fly": true, - "DisableNavmesh": true + "DisableNavmesh": true, + "SkipConditions": { + "StepIf": { + "Flying": "Locked" + } + } + }, + { + "Position": { + "X": -565.32196, + "Y": -1.9743931, + "Z": 799.9003 + }, + "StopDistance": 1, + "TerritoryId": 813, + "InteractionType": "Dive", + "DisableNavmesh": true, + "SkipConditions": { + "StepIf": { + "Flying": "Unlocked" + } + } + }, + { + + "Position": { + "X": -630.4265, + "Y": -29.862, + "Z": 752.5597 + }, + "TerritoryId": 813, + "InteractionType": "WalkTo", + "Mount": true, + "SkipConditions": { + "StepIf": { + "Flying": "Unlocked" + } + } }, { "DataId": 2010280, @@ -105,6 +213,16 @@ 64 ] }, + { + "Position": { + "X": -654.167, + "Y": -41.328938, + "Z": 741.29126 + }, + "TerritoryId": 813, + "InteractionType": "WalkTo", + "Mount": true + }, { "DataId": 2010278, "Position": { @@ -133,6 +251,7 @@ }, "TerritoryId": 813, "InteractionType": "Interact", + "Mount": true, "CompletionQuestVariablesFlags": [ null, null, @@ -140,8 +259,7 @@ null, null, 32 - ], - "Comment": "TODO Check if pathfinding works automatically now" + ] } ] }, @@ -151,14 +269,44 @@ { "Position": { "X": -643.2488, - "Y": 4.133975, + "Y": -1.974393, "Z": 714.8211 }, "TerritoryId": 813, "InteractionType": "WalkTo", "Mount": true, "Fly": true, - "DisableNavmesh": true + "DisableNavmesh": true, + "RestartNavigationIfCancelled": false + }, + { + "Position": { + "X": -573.45654, + "Y": 0.39776123, + "Z": 810.7269 + }, + "TerritoryId": 813, + "InteractionType": "WalkTo", + "SkipConditions": { + "StepIf": { + "Flying": "Unlocked" + } + } + }, + { + "Position": { + "X": -619.98676, + "Y": 24.866888, + "Z": 794.4714 + }, + "TerritoryId": 813, + "InteractionType": "WalkTo", + "Mount": true, + "SkipConditions": { + "StepIf": { + "Flying": "Unlocked" + } + } }, { "DataId": 1030333, @@ -191,6 +339,50 @@ { "Sequence": 255, "Steps": [ + { + "Position": { + "X": -82.79376, + "Y": 11.970126, + "Z": 765.8721 + }, + "TerritoryId": 813, + "InteractionType": "WalkTo", + "SkipConditions": { + "StepIf": { + "Flying": "Unlocked" + } + } + }, + { + "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" + }, { "DataId": 1032554, "Position": { diff --git a/QuestPaths/5.x - Shadowbringers/MSQ/I-5.3/3779_Nothing Unsaid.json b/QuestPaths/5.x - Shadowbringers/MSQ/I-5.3/3779_Nothing Unsaid.json index 7510d8d5..bae145ef 100644 --- a/QuestPaths/5.x - Shadowbringers/MSQ/I-5.3/3779_Nothing Unsaid.json +++ b/QuestPaths/5.x - Shadowbringers/MSQ/I-5.3/3779_Nothing Unsaid.json @@ -28,7 +28,7 @@ "Y": -2.59839E-07, "Z": -1.4801636 }, - "StopDistance": 5, + "StopDistance": 7, "TerritoryId": 819, "InteractionType": "Interact" } diff --git a/QuestPaths/5.x - Shadowbringers/MSQ/I-5.3/3780_The Journey Continues.json b/QuestPaths/5.x - Shadowbringers/MSQ/I-5.3/3780_The Journey Continues.json index 5911a4f3..1b46d4a4 100644 --- a/QuestPaths/5.x - Shadowbringers/MSQ/I-5.3/3780_The Journey Continues.json +++ b/QuestPaths/5.x - Shadowbringers/MSQ/I-5.3/3780_The Journey Continues.json @@ -54,6 +54,20 @@ { "Sequence": 255, "Steps": [ + { + "Position": { + "X": -221.27931, + "Y": 55.081436, + "Z": -553.9665 + }, + "TerritoryId": 816, + "InteractionType": "WalkTo", + "SkipConditions": { + "StepIf": { + "Flying": "Unlocked" + } + } + }, { "DataId": 1033872, "Position": { diff --git a/QuestPaths/6.x - Endwalker/Aether Currents/Thavnair/4489_Steppe Child.json b/QuestPaths/6.x - Endwalker/Aether Currents/Thavnair/4489_Steppe Child.json index d1639225..9477c821 100644 --- a/QuestPaths/6.x - Endwalker/Aether Currents/Thavnair/4489_Steppe Child.json +++ b/QuestPaths/6.x - Endwalker/Aether Currents/Thavnair/4489_Steppe Child.json @@ -83,7 +83,7 @@ "Y": 41.614826, "Z": 409.53687 }, - "StopDistance": 5, + "StopDistance": 7, "TerritoryId": 957, "InteractionType": "Interact" } diff --git a/Questionable/Controller/NavigationOverrides/MovementOverrideController.cs b/Questionable/Controller/NavigationOverrides/MovementOverrideController.cs index 451c4bfc..7b7186ef 100644 --- a/Questionable/Controller/NavigationOverrides/MovementOverrideController.cs +++ b/Questionable/Controller/NavigationOverrides/MovementOverrideController.cs @@ -60,6 +60,7 @@ internal sealed class MovementOverrideController // leaving Idyllshire through the west gate attempts to run into this wall new BlacklistedPoint(399, new(-514.4851f, 149.63762f, -480.58087f), new(-528.78656f, 151.17374f, -473.07077f), 5, true), + new BlacklistedPoint(399, new(-534.5f, 153, -476.75f), new(-528.78656f, 151.17374f, -473.07077f), 5, true), // Idyllshire: random rocks in the north, passable one way only new BlacklistedPoint(478, new(14.5f, 215.25f, -101.5f), new(18.133032f, 215.44998f, -107.83075f), 5), From 3ba10fae3462c642a3af1feec2ccf92be6d6a74c Mon Sep 17 00:00:00 2001 From: kaiser Date: Mon, 16 Sep 2024 09:28:13 +1000 Subject: [PATCH 258/450] feat: added first quest of SGE Unlock! --- .../Class Quests/SGE/4067_Sage's Path.json | 79 +++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 QuestPaths/6.x - Endwalker/Class Quests/SGE/4067_Sage's Path.json 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 new file mode 100644 index 00000000..1c67ae48 --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Class Quests/SGE/4067_Sage's Path.json @@ -0,0 +1,79 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "kaiser", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1039243, + "Position": { + "X": -90.28766, + "Y": 20, + "Z": 85.55737 + }, + "TerritoryId": 129, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Limsa Lominsa", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1039265, + "Position": { + "X": -27.542603, + "Y": 42.597717, + "Z": 163.7445 + }, + "TerritoryId": 134, + "InteractionType": "Interact", + "AetheryteShortcut": "Middle La Noscea - Summerford Farms", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1039265, + "Position": { + "X": -27.542603, + "Y": 42.597717, + "Z": 163.7445 + }, + "TerritoryId": 134, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Middle La Noscea - Summerford Farms", + "Fly": true, + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_AKTKBB101_04067_Q3_000_000", + "ExcelSheet": "quest/040/AktKbb101_04067", + "Yes": true + } + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + } + ] +} From 3efaa9de8b241db3da4aeb1b2b61c47682a45c37 Mon Sep 17 00:00:00 2001 From: kaiser Date: Mon, 16 Sep 2024 10:23:13 +1000 Subject: [PATCH 259/450] feat: added the rest of SGE job quests! --- .../Class Quests/SGE/4068_Sage's Focus.json | 269 ++++++++++++++++++ .../SGE/4069_Sands of Despair.json | 199 +++++++++++++ 2 files changed, 468 insertions(+) create mode 100644 QuestPaths/6.x - Endwalker/Class Quests/SGE/4068_Sage's Focus.json create mode 100644 QuestPaths/6.x - Endwalker/Class Quests/SGE/4069_Sands of Despair.json 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 new file mode 100644 index 00000000..c3e2f94b --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Class Quests/SGE/4068_Sage's Focus.json @@ -0,0 +1,269 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "kaiser", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "InteractionType": "UseItem", + "ItemId": 35873, + "Position": { + "X": -25.441345, + "Y": 42.597717, + "Z": 162.65016 + }, + "TerritoryId": 134, + "AetheryteShortcut": "Middle La Noscea - Summerford Farms", + "Fly": true, + "Comment": "Try to use the coffer Bookwyrm's Attire Coffer (IL 385)", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + }, + "StepIf": { + "Item": { + "NotInInventory": true + } + } + } + }, + { + "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 + } + } + } + }, + { + "TerritoryId": 131, + "InteractionType": "EquipRecommended" + }, + { + "DataId": 1039265, + "Position": { + "X": -27.542603, + "Y": 42.597717, + "Z": 163.7445 + }, + "TerritoryId": 134, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Middle La Noscea - Summerford Farms", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1039244, + "Position": { + "X": 62.05847, + "Y": 207, + "Z": 49.332397 + }, + "TerritoryId": 478, + "InteractionType": "Interact", + "AetheryteShortcut": "Idyllshire", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2011759, + "Position": { + "X": 20.065613, + "Y": 215.44214, + "Z": -108.171265 + }, + "TerritoryId": 478, + "InteractionType": "Interact", + "AetheryteShortcut": "Idyllshire", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1039246, + "Position": { + "X": 71.64111, + "Y": 213.03185, + "Z": -110.7348 + }, + "TerritoryId": 478, + "InteractionType": "Interact", + "AetheryteShortcut": "Idyllshire", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1039247, + "Position": { + "X": 68.7113, + "Y": 212.84532, + "Z": -109.9718 + }, + "TerritoryId": 478, + "InteractionType": "Interact", + "AetheryteShortcut": "Idyllshire", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1039248, + "Position": { + "X": -612.2988, + "Y": 146.86842, + "Z": 42.435303 + }, + "TerritoryId": 399, + "InteractionType": "Interact", + "Fly": true, + "AetheryteShortcut": "Idyllshire", + "AethernetShortcut": [ + "[Idyllshire] Aetheryte Plaza", + "[Idyllshire] Prologue Gate (Western Hinterlands)" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + }, + "AethernetShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1039248, + "Position": { + "X": -612.2988, + "Y": 146.86842, + "Z": 42.435303 + }, + "StopDistance": 5, + "TerritoryId": 399, + "InteractionType": "SinglePlayerDuty", + "Fly": true, + "AetheryteShortcut": "Idyllshire", + "AethernetShortcut": [ + "[Idyllshire] Aetheryte Plaza", + "[Idyllshire] Prologue Gate (Western Hinterlands)" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InTerritory": [399], + "InSameTerritory": true + }, + "AethernetShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 8, + "Steps": [ + { + "DataId": 1039248, + "Position": { + "X": -612.2988, + "Y": 146.86842, + "Z": 42.435303 + }, + "TerritoryId": 399, + "InteractionType": "Interact", + "StopDistance": 5, + "Fly": true, + "AetheryteShortcut": "Idyllshire", + "AethernetShortcut": [ + "[Idyllshire] Aetheryte Plaza", + "[Idyllshire] Prologue Gate (Western Hinterlands)" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InTerritory": [399], + "InSameTerritory": true + }, + "AethernetShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1039249, + "Position": { + "X": 0.3508911, + "Y": 210.99998, + "Z": -17.746277 + }, + "TerritoryId": 478, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Idyllshire", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + } + ] +} diff --git a/QuestPaths/6.x - Endwalker/Class Quests/SGE/4069_Sands of Despair.json b/QuestPaths/6.x - Endwalker/Class Quests/SGE/4069_Sands of Despair.json new file mode 100644 index 00000000..5f47f2b0 --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Class Quests/SGE/4069_Sands of Despair.json @@ -0,0 +1,199 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "kaiser", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1039249, + "Position": { + "X": 0.3508911, + "Y": 210.99998, + "Z": -17.746277 + }, + "TerritoryId": 478, + "InteractionType": "AcceptQuest", + "StopDistance": 5, + "AetheryteShortcut": "Idyllshire", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1039250, + "Position": { + "X": -29.251587, + "Y": -2.0576189, + "Z": -161.08954 + }, + "TerritoryId": 141, + "InteractionType": "Interact", + "AetheryteShortcut": "Central Thanalan - Black Brush Station" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1039256, + "Position": { + "X": 59.03711, + "Y": 2.9501379, + "Z": -225.97089 + }, + "TerritoryId": 141, + "InteractionType": "Interact", + "Fly": true, + "AetheryteShortcut": "Central Thanalan - Black Brush Station", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "Position": { + "X": 177.52213, + "Y": -3.5157094, + "Z": -133.6495 + }, + "TerritoryId": 141, + "Fly": true, + "InteractionType": "Combat", + "AetheryteShortcut": "Central Thanalan - Black Brush Station", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + }, + "EnemySpawnType": "AutoOnEnterArea", + "ComplexCombatData": [ + { + "DataId": 14031, + "MinimumKillCount": 1 + } + ] + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1039263, + "Position": { + "X": 185.25977, + "Y": -4.128851, + "Z": -126.78729 + }, + "TerritoryId": 141, + "InteractionType": "Interact", + "AetheryteShortcut": "Central Thanalan - Black Brush Station", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1039258, + "Position": { + "X": 122.72827, + "Y": 0.111846395, + "Z": -215.22852 + }, + "TerritoryId": 141, + "InteractionType": "Interact", + "AetheryteShortcut": "Central Thanalan - Black Brush Station", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1039271, + "Position": { + "X": 122.819824, + "Y": 0.10310017, + "Z": -215.2591 + }, + "TerritoryId": 141, + "InteractionType": "Interact", + "AetheryteShortcut": "Central Thanalan - Black Brush Station", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 7, + "Steps": [ + { + "DataId": 1039271, + "Position": { + "X": 122.819824, + "Y": 0.10310017, + "Z": -215.2591 + }, + "TerritoryId": 141, + "InteractionType": "Interact", + "AetheryteShortcut": "Central Thanalan - Black Brush Station", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1039249, + "Position": { + "X": 0.3508911, + "Y": 210.99998, + "Z": -17.746277 + }, + "TerritoryId": 478, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Idyllshire", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + } + ] +} From a45bf3f95022de4131d2bb13a4be0926013edae0 Mon Sep 17 00:00:00 2001 From: kaiser Date: Mon, 16 Sep 2024 10:31:22 +1000 Subject: [PATCH 260/450] fix: This way we can start the quest and doesn't get stuck accepting quest the first time. --- .../4960_A New Challenger Appears.json | 12 +++++- .../4961_The Claw in the Dark.json | 42 +++++++++++++++++++ 2 files changed, 53 insertions(+), 1 deletion(-) diff --git a/QuestPaths/7.x - Dawntrail/Raid Quests/4960_A New Challenger Appears.json b/QuestPaths/7.x - Dawntrail/Raid Quests/4960_A New Challenger Appears.json index f36d1d26..37d6b324 100644 --- a/QuestPaths/7.x - Dawntrail/Raid Quests/4960_A New Challenger Appears.json +++ b/QuestPaths/7.x - Dawntrail/Raid Quests/4960_A New Challenger Appears.json @@ -13,7 +13,17 @@ "Z": 231.37244 }, "TerritoryId": 1186, - "InteractionType": "AcceptQuest" + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Solution Nine", + "AethernetShortcut": [ + "[Solution Nine] Aetheryte Plaza", + "[Solution Nine] The Arcadion" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } } ] }, 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 e8f21737..185f3bff 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 @@ -8,6 +8,48 @@ { "Sequence": 0, "Steps": [ + { + "DataId": 1049793, + "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 + } + ], + "AetheryteShortcut": "Solution Nine", + "AethernetShortcut": [ + "[Solution Nine] Aetheryte Plaza", + "[Solution Nine] The Arcadion" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InTerritory": [1224] + }, + "StepIf": { + "NearPosition": { + "Position": { + "X": 1.6021729, + "Y": 0, + "Z": -6.088379 + }, + "MaximumDistance": 100, + "TerritoryId": 1224 + }, + "InTerritory": [ + 1224 + ] + } + } + }, { "DataId": 1049788, "Position": { From 338ca335acfa0f486421960553451b6cb23bc084 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Mon, 16 Sep 2024 02:32:21 +0200 Subject: [PATCH 261/450] Minor lv80 quest tweaks --- .../AST/3222_Love, Astrologically.json | 18 ++++++-- .../BLM/3216_A Home for a Tome.json | 1 + .../BRD/3214_A Harmony from the Heavens.json | 2 + .../DRG/3213_Gone but Not Forgiven.json | 26 +++++++---- .../Class Quests/DRK/3221_Our Closure.json | 12 ++++- .../MCH/3220_Machinists for the Morrow.json | 1 - .../Class Quests/SCH/3218_True Beauty.json | 45 +++++++++++++++---- .../SMN/4033_To Be Second Best.json | 2 +- ...12_Once, Twice, Three Times a Warrior.json | 44 +++++++++++------- .../WHM/3215_Whence the Healing Springs.json | 3 ++ 10 files changed, 115 insertions(+), 39 deletions(-) diff --git a/QuestPaths/5.x - Shadowbringers/Class Quests/AST/3222_Love, Astrologically.json b/QuestPaths/5.x - Shadowbringers/Class Quests/AST/3222_Love, Astrologically.json index aa2a6fed..6396b352 100644 --- a/QuestPaths/5.x - Shadowbringers/Class Quests/AST/3222_Love, Astrologically.json +++ b/QuestPaths/5.x - Shadowbringers/Class Quests/AST/3222_Love, Astrologically.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": [ { @@ -101,6 +101,18 @@ { "Sequence": 5, "Steps": [ + { + "Position": { + "X": 243.48306, + "Y": 324.1, + "Z": -301.10074 + }, + "TerritoryId": 155, + "InteractionType": "WalkTo", + "Fly": true, + "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", + "$": "Y is slightly off the ground; else vnav would pathfind -through- the ground" + }, { "DataId": 1028390, "Position": { @@ -109,9 +121,7 @@ "Z": -303.3036 }, "TerritoryId": 155, - "InteractionType": "Interact", - "Fly": true, - "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead" + "InteractionType": "Interact" } ] }, diff --git a/QuestPaths/5.x - Shadowbringers/Class Quests/BLM/3216_A Home for a Tome.json b/QuestPaths/5.x - Shadowbringers/Class Quests/BLM/3216_A Home for a Tome.json index 11559228..8a0d53ec 100644 --- a/QuestPaths/5.x - Shadowbringers/Class Quests/BLM/3216_A Home for a Tome.json +++ b/QuestPaths/5.x - Shadowbringers/Class Quests/BLM/3216_A Home for a Tome.json @@ -93,6 +93,7 @@ "Y": 39.99999, "Z": 106.98096 }, + "StopDistance": 4, "TerritoryId": 131, "InteractionType": "Interact" } diff --git a/QuestPaths/5.x - Shadowbringers/Class Quests/BRD/3214_A Harmony from the Heavens.json b/QuestPaths/5.x - Shadowbringers/Class Quests/BRD/3214_A Harmony from the Heavens.json index 49db76ef..2e2cbff6 100644 --- a/QuestPaths/5.x - Shadowbringers/Class Quests/BRD/3214_A Harmony from the Heavens.json +++ b/QuestPaths/5.x - Shadowbringers/Class Quests/BRD/3214_A Harmony from the Heavens.json @@ -109,6 +109,7 @@ "Y": -18.800003, "Z": 95.26196 }, + "StopDistance": 7, "TerritoryId": 132, "InteractionType": "Interact", "AetheryteShortcut": "Gridania", @@ -129,6 +130,7 @@ "Y": -18.800003, "Z": 95.26196 }, + "StopDistance": 7, "TerritoryId": 132, "InteractionType": "CompleteQuest" } diff --git a/QuestPaths/5.x - Shadowbringers/Class Quests/DRG/3213_Gone but Not Forgiven.json b/QuestPaths/5.x - Shadowbringers/Class Quests/DRG/3213_Gone but Not Forgiven.json index bb270717..025d4400 100644 --- a/QuestPaths/5.x - Shadowbringers/Class Quests/DRG/3213_Gone but Not Forgiven.json +++ b/QuestPaths/5.x - Shadowbringers/Class Quests/DRG/3213_Gone but Not Forgiven.json @@ -5,6 +5,23 @@ { "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": { @@ -13,14 +30,7 @@ "Z": 345.3269 }, "TerritoryId": 155, - "InteractionType": "AcceptQuest", - "Fly": true, - "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead", - "SkipConditions": { - "AetheryteShortcutIf": { - "InSameTerritory": true - } - } + "InteractionType": "AcceptQuest" } ] }, diff --git a/QuestPaths/5.x - Shadowbringers/Class Quests/DRK/3221_Our Closure.json b/QuestPaths/5.x - Shadowbringers/Class Quests/DRK/3221_Our Closure.json index 8be2d12b..ed7a4d15 100644 --- a/QuestPaths/5.x - Shadowbringers/Class Quests/DRK/3221_Our Closure.json +++ b/QuestPaths/5.x - Shadowbringers/Class Quests/DRK/3221_Our Closure.json @@ -14,13 +14,23 @@ }, "TerritoryId": 418, "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] The Forgotten Knight" + ], "DialogueChoices": [ { "Prompt": "TEXT_LUCKBC012_03221_Q1_000_002", "Type": "List", "Answer": "TEXT_LUCKBC012_03221_A1_000_003" } - ] + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } } ] }, diff --git a/QuestPaths/5.x - Shadowbringers/Class Quests/MCH/3220_Machinists for the Morrow.json b/QuestPaths/5.x - Shadowbringers/Class Quests/MCH/3220_Machinists for the Morrow.json index 10f1a8c6..43cf0fd6 100644 --- a/QuestPaths/5.x - Shadowbringers/Class Quests/MCH/3220_Machinists for the Morrow.json +++ b/QuestPaths/5.x - Shadowbringers/Class Quests/MCH/3220_Machinists for the Morrow.json @@ -69,7 +69,6 @@ }, "TerritoryId": 397, "InteractionType": "Interact", - "Fly": true, "AetheryteShortcut": "Coerthas Western Highlands - Falcon's Nest" } ] diff --git a/QuestPaths/5.x - Shadowbringers/Class Quests/SCH/3218_True Beauty.json b/QuestPaths/5.x - Shadowbringers/Class Quests/SCH/3218_True Beauty.json index 444f7ac0..9ad1458e 100644 --- a/QuestPaths/5.x - Shadowbringers/Class Quests/SCH/3218_True Beauty.json +++ b/QuestPaths/5.x - Shadowbringers/Class Quests/SCH/3218_True Beauty.json @@ -25,6 +25,17 @@ { "Sequence": 1, "Steps": [ + { + "Position": { + "X": 207.67957, + "Y": -3.224134, + "Z": 42.683086 + }, + "TerritoryId": 139, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Upper La Noscea - Camp Bronze Lake", + "Fly": true + }, { "DataId": 1043098, "Position": { @@ -33,9 +44,7 @@ "Z": 41.94702 }, "TerritoryId": 139, - "InteractionType": "Interact", - "AetheryteShortcut": "Upper La Noscea - Camp Bronze Lake", - "Fly": true + "InteractionType": "Interact" } ] }, @@ -61,6 +70,17 @@ { "Sequence": 3, "Steps": [ + { + "Position": { + "X": 207.67957, + "Y": -3.224134, + "Z": 42.683086 + }, + "TerritoryId": 139, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Upper La Noscea - Camp Bronze Lake", + "Fly": true + }, { "DataId": 1043098, "Position": { @@ -69,9 +89,7 @@ "Z": 41.94702 }, "TerritoryId": 139, - "InteractionType": "Interact", - "AetheryteShortcut": "Upper La Noscea - Camp Bronze Lake", - "Fly": true + "InteractionType": "Interact" } ] }, @@ -119,6 +137,17 @@ { "Sequence": 6, "Steps": [ + { + "Position": { + "X": 207.67957, + "Y": -3.224134, + "Z": 42.683086 + }, + "TerritoryId": 139, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Upper La Noscea - Camp Bronze Lake", + "Fly": true + }, { "DataId": 1043098, "Position": { @@ -127,9 +156,7 @@ "Z": 41.94702 }, "TerritoryId": 139, - "InteractionType": "Interact", - "AetheryteShortcut": "Upper La Noscea - Camp Bronze Lake", - "Fly": true + "InteractionType": "Interact" } ] }, diff --git a/QuestPaths/5.x - Shadowbringers/Class Quests/SMN/4033_To Be Second Best.json b/QuestPaths/5.x - Shadowbringers/Class Quests/SMN/4033_To Be Second Best.json index 141e238f..d7b5e0de 100644 --- a/QuestPaths/5.x - Shadowbringers/Class Quests/SMN/4033_To Be Second Best.json +++ b/QuestPaths/5.x - Shadowbringers/Class Quests/SMN/4033_To Be Second Best.json @@ -99,7 +99,7 @@ "Z": -246.87573 }, "TerritoryId": 133, - "InteractionType": "AcceptQuest", + "InteractionType": "CompleteQuest", "AethernetShortcut": [ "[Gridania] Aetheryte Plaza", "[Gridania] Mih Khetto's Amphitheatre" diff --git a/QuestPaths/5.x - Shadowbringers/Class Quests/WAR/3212_Once, Twice, Three Times a Warrior.json b/QuestPaths/5.x - Shadowbringers/Class Quests/WAR/3212_Once, Twice, Three Times a Warrior.json index 79403bfe..5d81d86e 100644 --- a/QuestPaths/5.x - Shadowbringers/Class Quests/WAR/3212_Once, Twice, Three Times a Warrior.json +++ b/QuestPaths/5.x - Shadowbringers/Class Quests/WAR/3212_Once, Twice, Three Times a Warrior.json @@ -34,17 +34,6 @@ { "Sequence": 1, "Steps": [ - { - "Position": { - "X": 219.98953, - "Y": 7.9999647, - "Z": 683.2227 - }, - "TerritoryId": 135, - "InteractionType": "WalkTo", - "AetheryteShortcut": "Lower La Noscea - Moraby Drydocks", - "Fly": true - }, { "DataId": 1023885, "Position": { @@ -53,7 +42,8 @@ "Z": 686.427 }, "TerritoryId": 135, - "InteractionType": "Interact" + "InteractionType": "Interact", + "AetheryteShortcut": "Lower La Noscea - Moraby Drydocks" } ] }, @@ -96,7 +86,15 @@ "TerritoryId": 135, "InteractionType": "Action", "Action": "Heavy Swing", - "Fly": true + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] }, { "DataId": 2010150, @@ -108,7 +106,15 @@ "TerritoryId": 135, "InteractionType": "Action", "Action": "Heavy Swing", - "Fly": true + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] }, { "DataId": 2010151, @@ -120,7 +126,15 @@ "TerritoryId": 135, "InteractionType": "Action", "Action": "Heavy Swing", - "Fly": true + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] } ] }, diff --git a/QuestPaths/5.x - Shadowbringers/Class Quests/WHM/3215_Whence the Healing Springs.json b/QuestPaths/5.x - Shadowbringers/Class Quests/WHM/3215_Whence the Healing Springs.json index 7ce4fb3f..791de71d 100644 --- a/QuestPaths/5.x - Shadowbringers/Class Quests/WHM/3215_Whence the Healing Springs.json +++ b/QuestPaths/5.x - Shadowbringers/Class Quests/WHM/3215_Whence the Healing Springs.json @@ -23,6 +23,7 @@ "Y": 8.712891, "Z": 281.69678 }, + "StopDistance": 4, "TerritoryId": 153, "InteractionType": "AcceptQuest" } @@ -91,6 +92,7 @@ "Y": -34.365856, "Z": 416.76965 }, + "StopDistance": 7, "TerritoryId": 148, "InteractionType": "Interact" } @@ -117,6 +119,7 @@ "Y": 8.712891, "Z": 281.69678 }, + "StopDistance": 4, "TerritoryId": 153, "InteractionType": "CompleteQuest" } From 251cd2ebfd68cb56a71f25a3da508021d4c97ed3 Mon Sep 17 00:00:00 2001 From: kaiser Date: Mon, 16 Sep 2024 10:35:34 +1000 Subject: [PATCH 262/450] chore: remove BOM --- .../6.x - Endwalker/Class Quests/SGE/4067_Sage's Path.json | 2 +- .../6.x - Endwalker/Class Quests/SGE/4068_Sage's Focus.json | 2 +- .../6.x - Endwalker/Class Quests/SGE/4069_Sands of Despair.json | 2 +- 3 files changed, 3 insertions(+), 3 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 1c67ae48..64b7fe95 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 @@ -1,4 +1,4 @@ -{ +{ "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "kaiser", "QuestSequence": [ 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 c3e2f94b..58c0ff77 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 @@ -1,4 +1,4 @@ -{ +{ "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "kaiser", "QuestSequence": [ diff --git a/QuestPaths/6.x - Endwalker/Class Quests/SGE/4069_Sands of Despair.json b/QuestPaths/6.x - Endwalker/Class Quests/SGE/4069_Sands of Despair.json index 5f47f2b0..bbf573ed 100644 --- a/QuestPaths/6.x - Endwalker/Class Quests/SGE/4069_Sands of Despair.json +++ b/QuestPaths/6.x - Endwalker/Class Quests/SGE/4069_Sands of Despair.json @@ -1,4 +1,4 @@ -{ +{ "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "Author": "kaiser", "QuestSequence": [ From b65beb1bb820712b09d081c256739aecfbc4e6da Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Mon, 16 Sep 2024 04:42:35 +0200 Subject: [PATCH 263/450] Add Crystarium + Eulmore side quests --- .../Crystarium/3343_A Cry for Help.json | 115 ++++++++++++++ .../Crystarium/3344_Rate and Review.json | 149 ++++++++++++++++++ .../Crystarium/3345_Pour One Out.json | 84 ++++++++++ .../Crystarium/3346_A Dirty Trick.json | 125 +++++++++++++++ .../Crystarium/3347_From a Distance.json | 68 ++++++++ .../Crystarium/3348_A Fitting Challenge.json | 53 +++++++ .../3379_Do You Believe in Magic.json | 58 +++++++ .../Crystarium/3533_Scars of War.json | 98 ++++++++++++ .../Crystarium/3564_Simple Gifts.json | 103 ++++++++++++ .../Crystarium/3565_His Own Medicine.json | 81 ++++++++++ .../3566_Welcome to the Future.json | 66 ++++++++ .../Crystarium/3567_Made, Not Born.json | 67 ++++++++ .../3568_The Poet Doesn't Know It.json | 123 +++++++++++++++ .../3516_My Heart Will (Not) Go On.json | 79 ++++++++++ .../3517_Near, Far, Wherever You Are.json | 78 +++++++++ .../Eulmore/3518_The Invisible Hand.json | 107 +++++++++++++ .../Eulmore/3519_Scattered to the Winds.json | 103 ++++++++++++ .../Eulmore/3520_One Good Meal.json | 108 +++++++++++++ .../Eulmore/3521_Little and Late.json | 59 +++++++ .../3522_Children of the Derelicts.json | 117 ++++++++++++++ .../Eulmore/3523_Rebuild, Reuse, Recycle.json | 121 ++++++++++++++ .../3524_Of Legacies Lost and Reclaimed.json | 99 ++++++++++++ .../Lakeland/3534_His Secret Shame.json | 81 ++++++++++ .../Lakeland/3535_A Much-needed Respite.json | 93 +++++++++++ .../Lakeland/3536_Resolve Regained.json | 108 +++++++++++++ .../3479_Seeing Eye to Eye.json | 0 .../3480_Mending Fences.json | 0 .../3481_Hearts as One.json | 0 .../3482_Protectors of the Wood.json | 0 .../3657_Slither Along.json | 0 .../3658_Snake the Lead.json | 0 .../3659_Snakes in the Grass.json | 0 .../3595_By the Time You Hear This.json | 65 ++++++++ .../Dungeons/3596_Akadaemia Anyder.json | 129 +++++++++++++++ QuestPaths/quest-v1.json | 3 +- .../Questing/Converter/EmoteConverter.cs | 1 + Questionable.Model/Questing/EEmote.cs | 1 + 37 files changed, 2541 insertions(+), 1 deletion(-) create mode 100644 QuestPaths/5.x - Shadowbringers/Side Quests/Crystarium/3343_A Cry for Help.json create mode 100644 QuestPaths/5.x - Shadowbringers/Side Quests/Crystarium/3344_Rate and Review.json create mode 100644 QuestPaths/5.x - Shadowbringers/Side Quests/Crystarium/3345_Pour One Out.json create mode 100644 QuestPaths/5.x - Shadowbringers/Side Quests/Crystarium/3346_A Dirty Trick.json create mode 100644 QuestPaths/5.x - Shadowbringers/Side Quests/Crystarium/3347_From a Distance.json create mode 100644 QuestPaths/5.x - Shadowbringers/Side Quests/Crystarium/3348_A Fitting Challenge.json create mode 100644 QuestPaths/5.x - Shadowbringers/Side Quests/Crystarium/3379_Do You Believe in Magic.json create mode 100644 QuestPaths/5.x - Shadowbringers/Side Quests/Crystarium/3533_Scars of War.json create mode 100644 QuestPaths/5.x - Shadowbringers/Side Quests/Crystarium/3564_Simple Gifts.json create mode 100644 QuestPaths/5.x - Shadowbringers/Side Quests/Crystarium/3565_His Own Medicine.json create mode 100644 QuestPaths/5.x - Shadowbringers/Side Quests/Crystarium/3566_Welcome to the Future.json create mode 100644 QuestPaths/5.x - Shadowbringers/Side Quests/Crystarium/3567_Made, Not Born.json create mode 100644 QuestPaths/5.x - Shadowbringers/Side Quests/Crystarium/3568_The Poet Doesn't Know It.json create mode 100644 QuestPaths/5.x - Shadowbringers/Side Quests/Eulmore/3516_My Heart Will (Not) Go On.json create mode 100644 QuestPaths/5.x - Shadowbringers/Side Quests/Eulmore/3517_Near, Far, Wherever You Are.json create mode 100644 QuestPaths/5.x - Shadowbringers/Side Quests/Eulmore/3518_The Invisible Hand.json create mode 100644 QuestPaths/5.x - Shadowbringers/Side Quests/Eulmore/3519_Scattered to the Winds.json create mode 100644 QuestPaths/5.x - Shadowbringers/Side Quests/Eulmore/3520_One Good Meal.json create mode 100644 QuestPaths/5.x - Shadowbringers/Side Quests/Eulmore/3521_Little and Late.json create mode 100644 QuestPaths/5.x - Shadowbringers/Side Quests/Eulmore/3522_Children of the Derelicts.json create mode 100644 QuestPaths/5.x - Shadowbringers/Side Quests/Eulmore/3523_Rebuild, Reuse, Recycle.json create mode 100644 QuestPaths/5.x - Shadowbringers/Side Quests/Eulmore/3524_Of Legacies Lost and Reclaimed.json create mode 100644 QuestPaths/5.x - Shadowbringers/Side Quests/Lakeland/3534_His Secret Shame.json create mode 100644 QuestPaths/5.x - Shadowbringers/Side Quests/Lakeland/3535_A Much-needed Respite.json create mode 100644 QuestPaths/5.x - Shadowbringers/Side Quests/Lakeland/3536_Resolve Regained.json rename QuestPaths/5.x - Shadowbringers/Side Quests/{Rak'tika => The Rak'tika Greatwood}/3479_Seeing Eye to Eye.json (100%) rename QuestPaths/5.x - Shadowbringers/Side Quests/{Rak'tika => The Rak'tika Greatwood}/3480_Mending Fences.json (100%) rename QuestPaths/5.x - Shadowbringers/Side Quests/{Rak'tika => The Rak'tika Greatwood}/3481_Hearts as One.json (100%) rename QuestPaths/5.x - Shadowbringers/Side Quests/{Rak'tika => The Rak'tika Greatwood}/3482_Protectors of the Wood.json (100%) rename QuestPaths/5.x - Shadowbringers/Side Quests/{Rak'tika => The Rak'tika Greatwood}/3657_Slither Along.json (100%) rename QuestPaths/5.x - Shadowbringers/Side Quests/{Rak'tika => The Rak'tika Greatwood}/3658_Snake the Lead.json (100%) rename QuestPaths/5.x - Shadowbringers/Side Quests/{Rak'tika => The Rak'tika Greatwood}/3659_Snakes in the Grass.json (100%) create mode 100644 QuestPaths/5.x - Shadowbringers/Unlocks/Dungeons/3595_By the Time You Hear This.json create mode 100644 QuestPaths/5.x - Shadowbringers/Unlocks/Dungeons/3596_Akadaemia Anyder.json diff --git a/QuestPaths/5.x - Shadowbringers/Side Quests/Crystarium/3343_A Cry for Help.json b/QuestPaths/5.x - Shadowbringers/Side Quests/Crystarium/3343_A Cry for Help.json new file mode 100644 index 00000000..30780187 --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Side Quests/Crystarium/3343_A Cry for Help.json @@ -0,0 +1,115 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1027827, + "Position": { + "X": 105.02783, + "Y": 0.49999997, + "Z": -145.70844 + }, + "TerritoryId": 819, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1027254, + "Position": { + "X": -37.857666, + "Y": -0.5500218, + "Z": -61.20398 + }, + "TerritoryId": 819, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1027817, + "Position": { + "X": -118.425354, + "Y": -47.50666, + "Z": -181.17041 + }, + "TerritoryId": 819, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Crystarium] The Dossal Gate", + "[Crystarium] The Cabinet of Curiosity" + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2010022, + "Position": { + "X": -152.08673, + "Y": -45.88391, + "Z": -185.0462 + }, + "TerritoryId": 819, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 1030257, + "Position": { + "X": -169.3294, + "Y": -45.8779, + "Z": -209.85736 + }, + "TerritoryId": 819, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1027254, + "Position": { + "X": -37.857666, + "Y": -0.5500218, + "Z": -61.20398 + }, + "TerritoryId": 819, + "InteractionType": "CompleteQuest", + "AethernetShortcut": [ + "[Crystarium] The Cabinet of Curiosity", + "[Crystarium] The Dossal Gate" + ] + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Side Quests/Crystarium/3344_Rate and Review.json b/QuestPaths/5.x - Shadowbringers/Side Quests/Crystarium/3344_Rate and Review.json new file mode 100644 index 00000000..249b9eef --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Side Quests/Crystarium/3344_Rate and Review.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": 1027244, + "Position": { + "X": 76.157715, + "Y": 0.0889954, + "Z": -44.26648 + }, + "TerritoryId": 819, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1027316, + "Position": { + "X": -127.30603, + "Y": 0, + "Z": -109.48352 + }, + "TerritoryId": 819, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Crystarium] The Dossal Gate", + "[Crystarium] Temenos Rookery" + ], + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, + { + "DataId": 1027227, + "Position": { + "X": -65.78168, + "Y": -27.23603, + "Z": -272.99915 + }, + "TerritoryId": 819, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Crystarium] Temenos Rookery", + "[Crystarium] The Cabinet of Curiosity" + ], + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 16 + ] + }, + { + "DataId": 1030258, + "Position": { + "X": 65.659546, + "Y": 36.197685, + "Z": -148.54657 + }, + "TerritoryId": 819, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Crystarium] The Cabinet of Curiosity", + "[Crystarium] The Amaro Launch" + ], + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "Position": { + "X": 80.6178, + "Y": 35.999687, + "Z": -146.81993 + }, + "StopDistance": 0.5, + "TerritoryId": 819, + "InteractionType": "Jump", + "JumpDestination": { + "Position": { + "X": 98.63616, + "Y": 0.5, + "Z": -153.71947 + } + } + }, + { + "DataId": 1027826, + "Position": { + "X": 89.15845, + "Y": 0.49999997, + "Z": -145.4643 + }, + "TerritoryId": 819, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1027244, + "Position": { + "X": 76.157715, + "Y": 0.0889954, + "Z": -44.26648 + }, + "TerritoryId": 819, + "InteractionType": "CompleteQuest", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_LUCKZA002_03344_Q1_000_051", + "Answer": "TEXT_LUCKZA002_03344_A1_000_052" + } + ] + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Side Quests/Crystarium/3345_Pour One Out.json b/QuestPaths/5.x - Shadowbringers/Side Quests/Crystarium/3345_Pour One Out.json new file mode 100644 index 00000000..2859c732 --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Side Quests/Crystarium/3345_Pour One Out.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": [ + { + "Position": { + "X": -41.33571, + "Y": 3.9998171, + "Z": 239.88663 + }, + "TerritoryId": 819, + "InteractionType": "WalkTo" + }, + { + "DataId": 1027323, + "Position": { + "X": -42.893127, + "Y": 3.9998171, + "Z": 242.08435 + }, + "TerritoryId": 819, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1027816, + "Position": { + "X": -20.676025, + "Y": -7.700001, + "Z": 111.77234 + }, + "TerritoryId": 819, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1029146, + "Position": { + "X": 86.74744, + "Y": 0.74016255, + "Z": 147.11218 + }, + "TerritoryId": 819, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": -41.33571, + "Y": 3.9998171, + "Z": 239.88663 + }, + "TerritoryId": 819, + "InteractionType": "WalkTo" + }, + { + "DataId": 1027323, + "Position": { + "X": -42.893127, + "Y": 3.9998171, + "Z": 242.08435 + }, + "TerritoryId": 819, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Side Quests/Crystarium/3346_A Dirty Trick.json b/QuestPaths/5.x - Shadowbringers/Side Quests/Crystarium/3346_A Dirty Trick.json new file mode 100644 index 00000000..350bf6db --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Side Quests/Crystarium/3346_A Dirty Trick.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": 1027316, + "Position": { + "X": -127.30603, + "Y": 0, + "Z": -109.48352 + }, + "TerritoryId": 819, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2009995, + "Position": { + "X": -130.38837, + "Y": 1.1138916, + "Z": -82.84125 + }, + "TerritoryId": 819, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 2009994, + "Position": { + "X": -155.29114, + "Y": -0.015319824, + "Z": -99.38208 + }, + "TerritoryId": 819, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 2009996, + "Position": { + "X": -145.00653, + "Y": -0.045776367, + "Z": -130.5105 + }, + "TerritoryId": 819, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1027316, + "Position": { + "X": -127.30603, + "Y": 0, + "Z": -109.48352 + }, + "TerritoryId": 819, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1028334, + "Position": { + "X": -135.33228, + "Y": -6.193295E-07, + "Z": 59.464355 + }, + "TerritoryId": 819, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1027316, + "Position": { + "X": -127.30603, + "Y": 0, + "Z": -109.48352 + }, + "TerritoryId": 819, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Side Quests/Crystarium/3347_From a Distance.json b/QuestPaths/5.x - Shadowbringers/Side Quests/Crystarium/3347_From a Distance.json new file mode 100644 index 00000000..ac694571 --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Side Quests/Crystarium/3347_From a Distance.json @@ -0,0 +1,68 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1027846, + "Position": { + "X": -68.65039, + "Y": -36.750023, + "Z": -264.39313 + }, + "TerritoryId": 819, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1030259, + "Position": { + "X": -68.55884, + "Y": -27.236004, + "Z": -269.58118 + }, + "TerritoryId": 819, + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_LUCKZA005_03347_Q1_000_012", + "Answer": "TEXT_LUCKZA005_03347_A1_000_013" + }, + { + "Type": "List", + "Prompt": "TEXT_LUCKZA005_03347_Q2_000_017", + "Answer": "TEXT_LUCKZA005_03347_A2_000_019" + }, + { + "Type": "List", + "Prompt": "TEXT_LUCKZA005_03347_Q3_000_022", + "Answer": "TEXT_LUCKZA005_03347_A3_000_023" + } + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1027846, + "Position": { + "X": -68.65039, + "Y": -36.750023, + "Z": -264.39313 + }, + "TerritoryId": 819, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Side Quests/Crystarium/3348_A Fitting Challenge.json b/QuestPaths/5.x - Shadowbringers/Side Quests/Crystarium/3348_A Fitting Challenge.json new file mode 100644 index 00000000..9d48bc66 --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Side Quests/Crystarium/3348_A Fitting Challenge.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": 1029884, + "Position": { + "X": 52.96399, + "Y": 35.999683, + "Z": -109.14783 + }, + "TerritoryId": 819, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1029884, + "Position": { + "X": 52.96399, + "Y": 35.999683, + "Z": -109.14783 + }, + "TerritoryId": 819, + "InteractionType": "Emote", + "Emote": "battlestance" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1029884, + "Position": { + "X": 52.96399, + "Y": 35.999683, + "Z": -109.14783 + }, + "TerritoryId": 819, + "InteractionType": "CompleteQuest", + "Emote": "box" + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Side Quests/Crystarium/3379_Do You Believe in Magic.json b/QuestPaths/5.x - Shadowbringers/Side Quests/Crystarium/3379_Do You Believe in Magic.json new file mode 100644 index 00000000..f97bd0e7 --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Side Quests/Crystarium/3379_Do You Believe in Magic.json @@ -0,0 +1,58 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1031104, + "Position": { + "X": 41.397705, + "Y": 1.7633697, + "Z": 268.635 + }, + "TerritoryId": 819, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2010499, + "Position": { + "X": 655.1765, + "Y": 57.724854, + "Z": -436.51483 + }, + "TerritoryId": 813, + "InteractionType": "Interact", + "AetheryteShortcut": "Lakeland - Fort Jobb", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1031104, + "Position": { + "X": 41.397705, + "Y": 1.7633697, + "Z": 268.635 + }, + "TerritoryId": 819, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Crystarium", + "AethernetShortcut": [ + "[Crystarium] Aetheryte Plaza", + "[Crystarium] The Pendants" + ] + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Side Quests/Crystarium/3533_Scars of War.json b/QuestPaths/5.x - Shadowbringers/Side Quests/Crystarium/3533_Scars of War.json new file mode 100644 index 00000000..1a3184b7 --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Side Quests/Crystarium/3533_Scars of War.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": 1030679, + "Position": { + "X": 64.07251, + "Y": 1.7078, + "Z": 231.40308 + }, + "TerritoryId": 819, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1030689, + "Position": { + "X": -657.5875, + "Y": 50.950245, + "Z": -217.76147 + }, + "TerritoryId": 813, + "InteractionType": "Interact", + "AetheryteShortcut": "Lakeland - Ostall Imperative", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1027411, + "Position": { + "X": -771.1452, + "Y": 51.501152, + "Z": -212.32928 + }, + "TerritoryId": 813, + "InteractionType": "Interact", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 1027382, + "Position": { + "X": -765.92664, + "Y": 61.720478, + "Z": -304.1886 + }, + "TerritoryId": 813, + "InteractionType": "Interact", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1030689, + "Position": { + "X": -657.5875, + "Y": 50.950245, + "Z": -217.76147 + }, + "TerritoryId": 813, + "InteractionType": "CompleteQuest", + "Fly": true, + "NextQuestId": 3534 + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Side Quests/Crystarium/3564_Simple Gifts.json b/QuestPaths/5.x - Shadowbringers/Side Quests/Crystarium/3564_Simple Gifts.json new file mode 100644 index 00000000..970917ae --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Side Quests/Crystarium/3564_Simple Gifts.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": 1028024, + "Position": { + "X": 78.96533, + "Y": 35.999687, + "Z": -153.27692 + }, + "TerritoryId": 819, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1031119, + "Position": { + "X": 80.125, + "Y": 1.4901161E-08, + "Z": 190.44775 + }, + "TerritoryId": 819, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Crystarium] The Amaro Launch", + "[Crystarium] The Pendants" + ], + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, + { + "DataId": 1027799, + "Position": { + "X": -74.6319, + "Y": -4.200001, + "Z": 170.00073 + }, + "TerritoryId": 819, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 1028333, + "Position": { + "X": -168.07812, + "Y": 1.490116E-08, + "Z": 96.14697 + }, + "TerritoryId": 819, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1028024, + "Position": { + "X": 78.96533, + "Y": 35.999687, + "Z": -153.27692 + }, + "TerritoryId": 819, + "InteractionType": "CompleteQuest", + "AethernetShortcut": [ + "[Crystarium] Aetheryte Plaza", + "[Crystarium] The Amaro Launch" + ] + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Side Quests/Crystarium/3565_His Own Medicine.json b/QuestPaths/5.x - Shadowbringers/Side Quests/Crystarium/3565_His Own Medicine.json new file mode 100644 index 00000000..a4f0cb77 --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Side Quests/Crystarium/3565_His Own Medicine.json @@ -0,0 +1,81 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1027263, + "Position": { + "X": -69.5354, + "Y": -36.726383, + "Z": -282.79547 + }, + "TerritoryId": 819, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1027254, + "Position": { + "X": -37.857666, + "Y": -0.5500218, + "Z": -61.20398 + }, + "TerritoryId": 819, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Crystarium] The Cabinet of Curiosity", + "[Crystarium] The Dossal Gate" + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": -37.857666, + "Y": -0.5500218, + "Z": -61.20398 + }, + "TerritoryId": 819, + "InteractionType": "UseItem", + "ItemId": 2002756 + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1027263, + "Position": { + "X": -69.5354, + "Y": -36.726383, + "Z": -282.79547 + }, + "TerritoryId": 819, + "InteractionType": "CompleteQuest", + "AethernetShortcut": [ + "[Crystarium] The Dossal Gate", + "[Crystarium] The Cabinet of Curiosity" + ], + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_LUCKZJ002_03565_Q1_000_000", + "Answer": "TEXT_LUCKZJ002_03565_A1_000_001" + } + ] + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Side Quests/Crystarium/3566_Welcome to the Future.json b/QuestPaths/5.x - Shadowbringers/Side Quests/Crystarium/3566_Welcome to the Future.json new file mode 100644 index 00000000..ab66ad7b --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Side Quests/Crystarium/3566_Welcome to the Future.json @@ -0,0 +1,66 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1031036, + "Position": { + "X": 35.721313, + "Y": -4.2178183, + "Z": 150.80493 + }, + "TerritoryId": 819, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1031037, + "Position": { + "X": 65.32385, + "Y": 31.22887, + "Z": 151.7815 + }, + "TerritoryId": 819, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": 65.23219, + "Y": 31.253508, + "Z": 150.2689 + }, + "TerritoryId": 819, + "InteractionType": "Emote", + "Emote": "welcome" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1031038, + "Position": { + "X": 71.30542, + "Y": 30.758999, + "Z": 141.95471 + }, + "TerritoryId": 819, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Side Quests/Crystarium/3567_Made, Not Born.json b/QuestPaths/5.x - Shadowbringers/Side Quests/Crystarium/3567_Made, Not Born.json new file mode 100644 index 00000000..87baaddb --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Side Quests/Crystarium/3567_Made, Not Born.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": 1031059, + "Position": { + "X": 108.781494, + "Y": -3.1728092E-11, + "Z": -105.760315 + }, + "TerritoryId": 819, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1031060, + "Position": { + "X": -148.36353, + "Y": 1.4901161E-08, + "Z": 200.42712 + }, + "TerritoryId": 819, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Crystarium] The Dossal Gate", + "[Crystarium] The Pendants" + ], + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_LUCKZJ004_03567_Q1_000_000", + "Answer": "TEXT_LUCKZJ004_03567_A1_000_002" + } + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1031059, + "Position": { + "X": 108.781494, + "Y": -3.1728092E-11, + "Z": -105.760315 + }, + "TerritoryId": 819, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Crystarium", + "AethernetShortcut": [ + "[Crystarium] Aetheryte Plaza", + "[Crystarium] The Dossal Gate" + ] + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Side Quests/Crystarium/3568_The Poet Doesn't Know It.json b/QuestPaths/5.x - Shadowbringers/Side Quests/Crystarium/3568_The Poet Doesn't Know It.json new file mode 100644 index 00000000..a99380e6 --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Side Quests/Crystarium/3568_The Poet Doesn't Know It.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": 1031064, + "Position": { + "X": 62.42456, + "Y": 27.999973, + "Z": -113.75604 + }, + "TerritoryId": 819, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1031427, + "Position": { + "X": 10.8185425, + "Y": -1.4707987E-11, + "Z": -56.26001 + }, + "TerritoryId": 819, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Crystarium] The Amaro Launch", + "[Crystarium] The Dossal Gate" + ], + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 1027252, + "Position": { + "X": -117.60132, + "Y": 38.614765, + "Z": 236.04175 + }, + "TerritoryId": 819, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Crystarium] The Dossal Gate", + "[Crystarium] The Pendants" + ], + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 1027260, + "Position": { + "X": -49.515564, + "Y": -36.72638, + "Z": -271.4123 + }, + "TerritoryId": 819, + "InteractionType": "Interact", + "AetheryteShortcut": "Crystarium", + "AethernetShortcut": [ + "[Crystarium] Aetheryte Plaza", + "[Crystarium] The Cabinet of Curiosity" + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1031064, + "Position": { + "X": 62.42456, + "Y": 27.999973, + "Z": -113.75604 + }, + "TerritoryId": 819, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Crystarium] The Cabinet of Curiosity", + "[Crystarium] The Amaro Launch" + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1031065, + "Position": { + "X": 101.426636, + "Y": 20.728992, + "Z": 101.8844 + }, + "TerritoryId": 819, + "InteractionType": "CompleteQuest", + "AethernetShortcut": [ + "[Crystarium] The Amaro Launch", + "[Crystarium] Musica Universalis Markets" + ] + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Side Quests/Eulmore/3516_My Heart Will (Not) Go On.json b/QuestPaths/5.x - Shadowbringers/Side Quests/Eulmore/3516_My Heart Will (Not) Go On.json new file mode 100644 index 00000000..0b6d8245 --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Side Quests/Eulmore/3516_My Heart Will (Not) Go On.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": 1030455, + "Position": { + "X": 54.09314, + "Y": 83.001076, + "Z": -74.540344 + }, + "TerritoryId": 820, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1030456, + "Position": { + "X": 63.279175, + "Y": -4.0096626, + "Z": 145.28113 + }, + "TerritoryId": 820, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Eulmore] Aetheryte Plaza", + "[Eulmore] Southeast Derelicts" + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1030455, + "Position": { + "X": 54.09314, + "Y": 83.001076, + "Z": -74.540344 + }, + "TerritoryId": 820, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Eulmore] Southeast Derelicts", + "[Eulmore] Aetheryte Plaza" + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1030457, + "Position": { + "X": 63.370728, + "Y": -4.158061, + "Z": 143.93835 + }, + "TerritoryId": 820, + "InteractionType": "CompleteQuest", + "AethernetShortcut": [ + "[Eulmore] Aetheryte Plaza", + "[Eulmore] Southeast Derelicts" + ], + "NextQuestId": 3517 + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Side Quests/Eulmore/3517_Near, Far, Wherever You Are.json b/QuestPaths/5.x - Shadowbringers/Side Quests/Eulmore/3517_Near, Far, Wherever You Are.json new file mode 100644 index 00000000..e704f0ac --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Side Quests/Eulmore/3517_Near, Far, Wherever You Are.json @@ -0,0 +1,78 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1030456, + "Position": { + "X": 63.279175, + "Y": -4.0096626, + "Z": 145.28113 + }, + "TerritoryId": 820, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": 383.55106, + "Y": 4.5417395, + "Z": 602.9981 + }, + "StopDistance": 0.5, + "TerritoryId": 814, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [ + 11087 + ], + "AetheryteShortcut": "Kholusia - Stilltide", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1030458, + "Position": { + "X": 379.84277, + "Y": 5.363723, + "Z": 600.3967 + }, + "StopDistance": 7, + "TerritoryId": 814, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1030463, + "Position": { + "X": -14.847046, + "Y": -6.9869757, + "Z": -124.4068 + }, + "TerritoryId": 820, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Eulmore", + "AethernetShortcut": [ + "[Eulmore] Aetheryte Plaza", + "[Eulmore] The Glory Gate" + ] + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Side Quests/Eulmore/3518_The Invisible Hand.json b/QuestPaths/5.x - Shadowbringers/Side Quests/Eulmore/3518_The Invisible Hand.json new file mode 100644 index 00000000..512db317 --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Side Quests/Eulmore/3518_The Invisible Hand.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": 1029983, + "Position": { + "X": -56.565247, + "Y": -4.821, + "Z": -88.059875 + }, + "TerritoryId": 820, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1027606, + "Position": { + "X": -50.247986, + "Y": -4.820967, + "Z": -94.65173 + }, + "StopDistance": 7, + "TerritoryId": 820, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, + { + "DataId": 1029980, + "Position": { + "X": -81.59003, + "Y": -0.80081946, + "Z": 40.878906 + }, + "TerritoryId": 820, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 1027604, + "Position": { + "X": 76.3103, + "Y": -8.115, + "Z": -46.219604 + }, + "TerritoryId": 820, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Eulmore] Nightsoil Pots", + "[Eulmore] The Glory Gate" + ], + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1029983, + "Position": { + "X": -56.565247, + "Y": -4.821, + "Z": -88.059875 + }, + "TerritoryId": 820, + "InteractionType": "CompleteQuest", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_LUCKZH008_03518_Q1_000_000", + "Answer": "TEXT_LUCKZH008_03518_A1_000_003" + } + ] + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Side Quests/Eulmore/3519_Scattered to the Winds.json b/QuestPaths/5.x - Shadowbringers/Side Quests/Eulmore/3519_Scattered to the Winds.json new file mode 100644 index 00000000..0c28ea91 --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Side Quests/Eulmore/3519_Scattered to the Winds.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": 1027550, + "Position": { + "X": 52.536743, + "Y": 82.8351, + "Z": 13.595764 + }, + "TerritoryId": 820, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2010114, + "Position": { + "X": 81.19324, + "Y": -10.421997, + "Z": 48.8136 + }, + "TerritoryId": 820, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Eulmore] Aetheryte Plaza", + "[Eulmore] Southeast Derelicts" + ], + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 2010116, + "Position": { + "X": 94.40759, + "Y": -8.377258, + "Z": -57.358704 + }, + "TerritoryId": 820, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, + { + "DataId": 2010115, + "Position": { + "X": -30.167114, + "Y": -11.917358, + "Z": 106.43164 + }, + "TerritoryId": 820, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1027550, + "Position": { + "X": 52.536743, + "Y": 82.8351, + "Z": 13.595764 + }, + "TerritoryId": 820, + "InteractionType": "CompleteQuest", + "AethernetShortcut": [ + "[Eulmore] Nightsoil Pots", + "[Eulmore] Aetheryte Plaza" + ] + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Side Quests/Eulmore/3520_One Good Meal.json b/QuestPaths/5.x - Shadowbringers/Side Quests/Eulmore/3520_One Good Meal.json new file mode 100644 index 00000000..f426d35d --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Side Quests/Eulmore/3520_One Good Meal.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": 1030465, + "Position": { + "X": 19.272095, + "Y": 36, + "Z": -4.409851 + }, + "TerritoryId": 820, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1027537, + "Position": { + "X": -3.982666, + "Y": 23.1, + "Z": 27.145752 + }, + "TerritoryId": 820, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, + { + "DataId": 1027554, + "Position": { + "X": 27.54248, + "Y": 82.78693, + "Z": 32.303345 + }, + "StopDistance": 7, + "TerritoryId": 820, + "InteractionType": "Interact", + "AetheryteShortcut": "Eulmore", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 1027593, + "Position": { + "X": 78.11096, + "Y": -10.682121, + "Z": 73.28906 + }, + "TerritoryId": 820, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Eulmore] Aetheryte Plaza", + "[Eulmore] Southeast Derelicts" + ], + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1030465, + "Position": { + "X": 19.272095, + "Y": 36, + "Z": -4.409851 + }, + "TerritoryId": 820, + "InteractionType": "CompleteQuest", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_LUCKZH010_03520_Q1_000_000", + "Answer": "TEXT_LUCKZH010_03520_A1_000_001" + } + ] + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Side Quests/Eulmore/3521_Little and Late.json b/QuestPaths/5.x - Shadowbringers/Side Quests/Eulmore/3521_Little and Late.json new file mode 100644 index 00000000..22f7ba42 --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Side Quests/Eulmore/3521_Little and Late.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": 1030467, + "Position": { + "X": -4.348877, + "Y": 6, + "Z": -30.319702 + }, + "TerritoryId": 820, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1030466, + "Position": { + "X": 40.05493, + "Y": -10.468191, + "Z": 73.258545 + }, + "TerritoryId": 820, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Eulmore] The Glory Gate", + "[Eulmore] Southeast Derelicts" + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1030467, + "Position": { + "X": -4.348877, + "Y": 6, + "Z": -30.319702 + }, + "TerritoryId": 820, + "InteractionType": "CompleteQuest", + "AethernetShortcut": [ + "[Eulmore] Southeast Derelicts", + "[Eulmore] The Glory Gate" + ] + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Side Quests/Eulmore/3522_Children of the Derelicts.json b/QuestPaths/5.x - Shadowbringers/Side Quests/Eulmore/3522_Children of the Derelicts.json new file mode 100644 index 00000000..49bac156 --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Side Quests/Eulmore/3522_Children of the Derelicts.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": [ + { + "DataId": 1027617, + "Position": { + "X": 45.944946, + "Y": -13.795549, + "Z": -118.0896 + }, + "TerritoryId": 820, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1030471, + "Position": { + "X": 88.05969, + "Y": -7.2009244, + "Z": -73.71637 + }, + "TerritoryId": 820, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 16 + ] + }, + { + "DataId": 1030470, + "Position": { + "X": 98.039185, + "Y": -17.955051, + "Z": -77.10382 + }, + "TerritoryId": 820, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, + { + "DataId": 1030468, + "Position": { + "X": 39.53601, + "Y": -23.440458, + "Z": 102.4032 + }, + "TerritoryId": 820, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 1030469, + "Position": { + "X": -112.16907, + "Y": -14.506645, + "Z": -49.515564 + }, + "TerritoryId": 820, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Eulmore] Southeast Derelicts", + "[Eulmore] Nightsoil Pots" + ], + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1027617, + "Position": { + "X": 45.944946, + "Y": -13.795549, + "Z": -118.0896 + }, + "TerritoryId": 820, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Side Quests/Eulmore/3523_Rebuild, Reuse, Recycle.json b/QuestPaths/5.x - Shadowbringers/Side Quests/Eulmore/3523_Rebuild, Reuse, Recycle.json new file mode 100644 index 00000000..f2f58b4b --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Side Quests/Eulmore/3523_Rebuild, Reuse, Recycle.json @@ -0,0 +1,121 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1027595, + "Position": { + "X": 41.58081, + "Y": -7.639986, + "Z": -109.57507 + }, + "TerritoryId": 820, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2010119, + "Position": { + "X": 23.697266, + "Y": -23.361572, + "Z": 121.23291 + }, + "TerritoryId": 820, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Eulmore] The Glory Gate", + "[Eulmore] Southeast Derelicts" + ], + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 16 + ] + }, + { + "DataId": 2010117, + "Position": { + "X": 26.596436, + "Y": -21.957764, + "Z": 130.81555 + }, + "TerritoryId": 820, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 2010118, + "Position": { + "X": 46.860474, + "Y": -15.884705, + "Z": 132.21936 + }, + "TerritoryId": 820, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, + { + "DataId": 2010120, + "Position": { + "X": 45.76172, + "Y": -8.773987, + "Z": 139.05542 + }, + "TerritoryId": 820, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1027595, + "Position": { + "X": 41.58081, + "Y": -7.639986, + "Z": -109.57507 + }, + "TerritoryId": 820, + "InteractionType": "CompleteQuest", + "AethernetShortcut": [ + "[Eulmore] Southeast Derelicts", + "[Eulmore] The Glory Gate" + ] + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Side Quests/Eulmore/3524_Of Legacies Lost and Reclaimed.json b/QuestPaths/5.x - Shadowbringers/Side Quests/Eulmore/3524_Of Legacies Lost and Reclaimed.json new file mode 100644 index 00000000..7e5b3281 --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Side Quests/Eulmore/3524_Of Legacies Lost and Reclaimed.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": 1030472, + "Position": { + "X": -3.55542, + "Y": 6.800003, + "Z": 47.501343 + }, + "TerritoryId": 820, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2010123, + "Position": { + "X": -56.199036, + "Y": -5.2339478, + "Z": -28.122437 + }, + "TerritoryId": 820, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, + { + "DataId": 2010121, + "Position": { + "X": -5.56958, + "Y": 82.90222, + "Z": -35.446716 + }, + "TerritoryId": 820, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Eulmore] The Glory Gate", + "[Eulmore] Aetheryte Plaza" + ], + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 2010122, + "Position": { + "X": -14.114624, + "Y": 50.980347, + "Z": 33.920776 + }, + "TerritoryId": 820, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1030472, + "Position": { + "X": -3.55542, + "Y": 6.800003, + "Z": 47.501343 + }, + "TerritoryId": 820, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Side Quests/Lakeland/3534_His Secret Shame.json b/QuestPaths/5.x - Shadowbringers/Side Quests/Lakeland/3534_His Secret Shame.json new file mode 100644 index 00000000..38783dfd --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Side Quests/Lakeland/3534_His Secret Shame.json @@ -0,0 +1,81 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1030689, + "Position": { + "X": -657.5875, + "Y": 50.950245, + "Z": -217.76147 + }, + "TerritoryId": 813, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": -506.45068, + "Y": 3.7609627, + "Z": -19.921053 + }, + "StopDistance": 0.5, + "TerritoryId": 813, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [ + 11147 + ], + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1030682, + "Position": { + "X": -506.4317, + "Y": 3.7609625, + "Z": -22.01886 + }, + "StopDistance": 7, + "TerritoryId": 813, + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_LUCKZH302_03534_Q1_000_000", + "Answer": "TEXT_LUCKZH302_03534_A1_000_001" + } + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1030681, + "Position": { + "X": -641.1383, + "Y": 55.757515, + "Z": -141.92426 + }, + "TerritoryId": 813, + "InteractionType": "CompleteQuest", + "Fly": true, + "NextQuestId": 3535 + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Side Quests/Lakeland/3535_A Much-needed Respite.json b/QuestPaths/5.x - Shadowbringers/Side Quests/Lakeland/3535_A Much-needed Respite.json new file mode 100644 index 00000000..93910e6e --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Side Quests/Lakeland/3535_A Much-needed Respite.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": [ + { + "DataId": 1030681, + "Position": { + "X": -641.1383, + "Y": 55.757515, + "Z": -141.92426 + }, + "TerritoryId": 813, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1030683, + "Position": { + "X": -689.6925, + "Y": 52.037113, + "Z": -168.5664 + }, + "TerritoryId": 813, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1030706, + "Position": { + "X": -375.32617, + "Y": 105.92186, + "Z": -618.92126 + }, + "StopDistance": 2, + "TerritoryId": 813, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2010210, + "Position": { + "X": -370.38226, + "Y": 103.37976, + "Z": -661.1887 + }, + "TerritoryId": 813, + "InteractionType": "Interact", + "Fly": true, + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_LUCKZH303_03535_Q3_000_000", + "Yes": true + } + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1030684, + "Position": { + "X": -351.91882, + "Y": 100.1054, + "Z": -629.0227 + }, + "TerritoryId": 813, + "InteractionType": "CompleteQuest", + "NextQuestId": 3536 + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Side Quests/Lakeland/3536_Resolve Regained.json b/QuestPaths/5.x - Shadowbringers/Side Quests/Lakeland/3536_Resolve Regained.json new file mode 100644 index 00000000..d5a04f61 --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Side Quests/Lakeland/3536_Resolve Regained.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": 1030684, + "Position": { + "X": -351.91882, + "Y": 100.1054, + "Z": -629.0227 + }, + "TerritoryId": 813, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1030685, + "Position": { + "X": -443.68658, + "Y": 9.218739, + "Z": -150.53027 + }, + "TerritoryId": 813, + "InteractionType": "Interact", + "AetheryteShortcut": "Lakeland - Ostall Imperative", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2010212, + "Position": { + "X": -395.8648, + "Y": 6.210388, + "Z": -51.895935 + }, + "TerritoryId": 813, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 11148 + ], + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2010213, + "Position": { + "X": -298.11554, + "Y": 4.348816, + "Z": 16.189758 + }, + "StopDistance": 0.5, + "TerritoryId": 813, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 2010510, + "Position": { + "X": -239.9787, + "Y": 15.030029, + "Z": -196.73462 + }, + "TerritoryId": 813, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1030688, + "Position": { + "X": -659.26605, + "Y": 51.002872, + "Z": -217.30377 + }, + "TerritoryId": 813, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Lakeland - Ostall Imperative", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Side Quests/Rak'tika/3479_Seeing Eye to Eye.json b/QuestPaths/5.x - Shadowbringers/Side Quests/The Rak'tika Greatwood/3479_Seeing Eye to Eye.json similarity index 100% rename from QuestPaths/5.x - Shadowbringers/Side Quests/Rak'tika/3479_Seeing Eye to Eye.json rename to QuestPaths/5.x - Shadowbringers/Side Quests/The Rak'tika Greatwood/3479_Seeing Eye to Eye.json diff --git a/QuestPaths/5.x - Shadowbringers/Side Quests/Rak'tika/3480_Mending Fences.json b/QuestPaths/5.x - Shadowbringers/Side Quests/The Rak'tika Greatwood/3480_Mending Fences.json similarity index 100% rename from QuestPaths/5.x - Shadowbringers/Side Quests/Rak'tika/3480_Mending Fences.json rename to QuestPaths/5.x - Shadowbringers/Side Quests/The Rak'tika Greatwood/3480_Mending Fences.json diff --git a/QuestPaths/5.x - Shadowbringers/Side Quests/Rak'tika/3481_Hearts as One.json b/QuestPaths/5.x - Shadowbringers/Side Quests/The Rak'tika Greatwood/3481_Hearts as One.json similarity index 100% rename from QuestPaths/5.x - Shadowbringers/Side Quests/Rak'tika/3481_Hearts as One.json rename to QuestPaths/5.x - Shadowbringers/Side Quests/The Rak'tika Greatwood/3481_Hearts as One.json diff --git a/QuestPaths/5.x - Shadowbringers/Side Quests/Rak'tika/3482_Protectors of the Wood.json b/QuestPaths/5.x - Shadowbringers/Side Quests/The Rak'tika Greatwood/3482_Protectors of the Wood.json similarity index 100% rename from QuestPaths/5.x - Shadowbringers/Side Quests/Rak'tika/3482_Protectors of the Wood.json rename to QuestPaths/5.x - Shadowbringers/Side Quests/The Rak'tika Greatwood/3482_Protectors of the Wood.json diff --git a/QuestPaths/5.x - Shadowbringers/Side Quests/Rak'tika/3657_Slither Along.json b/QuestPaths/5.x - Shadowbringers/Side Quests/The Rak'tika Greatwood/3657_Slither Along.json similarity index 100% rename from QuestPaths/5.x - Shadowbringers/Side Quests/Rak'tika/3657_Slither Along.json rename to QuestPaths/5.x - Shadowbringers/Side Quests/The Rak'tika Greatwood/3657_Slither Along.json diff --git a/QuestPaths/5.x - Shadowbringers/Side Quests/Rak'tika/3658_Snake the Lead.json b/QuestPaths/5.x - Shadowbringers/Side Quests/The Rak'tika Greatwood/3658_Snake the Lead.json similarity index 100% rename from QuestPaths/5.x - Shadowbringers/Side Quests/Rak'tika/3658_Snake the Lead.json rename to QuestPaths/5.x - Shadowbringers/Side Quests/The Rak'tika Greatwood/3658_Snake the Lead.json diff --git a/QuestPaths/5.x - Shadowbringers/Side Quests/Rak'tika/3659_Snakes in the Grass.json b/QuestPaths/5.x - Shadowbringers/Side Quests/The Rak'tika Greatwood/3659_Snakes in the Grass.json similarity index 100% rename from QuestPaths/5.x - Shadowbringers/Side Quests/Rak'tika/3659_Snakes in the Grass.json rename to QuestPaths/5.x - Shadowbringers/Side Quests/The Rak'tika Greatwood/3659_Snakes in the Grass.json diff --git a/QuestPaths/5.x - Shadowbringers/Unlocks/Dungeons/3595_By the Time You Hear This.json b/QuestPaths/5.x - Shadowbringers/Unlocks/Dungeons/3595_By the Time You Hear This.json new file mode 100644 index 00000000..d3773ed5 --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Unlocks/Dungeons/3595_By the Time You Hear This.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": 1028898, + "Position": { + "X": -132.58563, + "Y": 0, + "Z": -14.023071 + }, + "TerritoryId": 819, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1028899, + "Position": { + "X": 77.04285, + "Y": 0.0889954, + "Z": -31.784546 + }, + "TerritoryId": 819, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Crystarium] Aetheryte Plaza", + "[Crystarium] The Dossal Gate" + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "TerritoryId": 819, + "InteractionType": "Duty", + "ContentFinderConditionId": 655 + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1028899, + "Position": { + "X": 77.04285, + "Y": 0.0889954, + "Z": -31.784546 + }, + "TerritoryId": 819, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Unlocks/Dungeons/3596_Akadaemia Anyder.json b/QuestPaths/5.x - Shadowbringers/Unlocks/Dungeons/3596_Akadaemia Anyder.json new file mode 100644 index 00000000..0f402c80 --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Unlocks/Dungeons/3596_Akadaemia Anyder.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": 1031144, + "Position": { + "X": 84.33655, + "Y": -10.490669, + "Z": 59.494873 + }, + "TerritoryId": 820, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": -0.41547322, + "Y": -276.906, + "Z": 269.2778 + }, + "TerritoryId": 818, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Tempest - Macarenses Angle", + "Fly": true + }, + { + "DataId": 1027772, + "Position": { + "X": 5.3864136, + "Y": -276.906, + "Z": 271.59534 + }, + "StopDistance": 7, + "TerritoryId": 818, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": -71.42122, + "Y": -274.33163, + "Z": 584.8395 + }, + "TerritoryId": 818, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 1028056, + "Position": { + "X": -68.37573, + "Y": -274.33163, + "Z": 579.33923 + }, + "StopDistance": 7, + "TerritoryId": 818, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "TerritoryId": 818, + "InteractionType": "Duty", + "ContentFinderConditionId": 661 + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "Position": { + "X": -71.42122, + "Y": -274.33163, + "Z": 584.8395 + }, + "TerritoryId": 818, + "InteractionType": "WalkTo" + }, + { + "DataId": 1028056, + "Position": { + "X": -68.37573, + "Y": -274.33163, + "Z": 579.33923 + }, + "StopDistance": 7, + "TerritoryId": 818, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1031144, + "Position": { + "X": 84.33655, + "Y": -10.490669, + "Z": 59.494873 + }, + "TerritoryId": 820, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Eulmore", + "AethernetShortcut": [ + "[Eulmore] Aetheryte Plaza", + "[Eulmore] Southeast Derelicts" + ] + } + ] + } + ] +} diff --git a/QuestPaths/quest-v1.json b/QuestPaths/quest-v1.json index f4754382..69e3cc54 100644 --- a/QuestPaths/quest-v1.json +++ b/QuestPaths/quest-v1.json @@ -783,7 +783,8 @@ "victorypose", "comfort", "battlestance", - "doze" + "doze", + "box" ] } } diff --git a/Questionable.Model/Questing/Converter/EmoteConverter.cs b/Questionable.Model/Questing/Converter/EmoteConverter.cs index 629a0f4f..183bf480 100644 --- a/Questionable.Model/Questing/Converter/EmoteConverter.cs +++ b/Questionable.Model/Questing/Converter/EmoteConverter.cs @@ -35,5 +35,6 @@ public sealed class EmoteConverter() : EnumConverter(Values) { EEmote.Comfort, "comfort" }, { EEmote.BattleStance, "battlestance" }, { EEmote.Doze, "doze" }, + { EEmote.Box, "box" }, }; } diff --git a/Questionable.Model/Questing/EEmote.cs b/Questionable.Model/Questing/EEmote.cs index 424a2ebc..60e9661a 100644 --- a/Questionable.Model/Questing/EEmote.cs +++ b/Questionable.Model/Questing/EEmote.cs @@ -36,4 +36,5 @@ public enum EEmote Comfort = 9, BattleStance = 121, Doze = 13, + Box = 166, } From 5d49096325aefab18a7b7b4b255ca3da950dc61a Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Mon, 16 Sep 2024 17:46:37 +0200 Subject: [PATCH 264/450] Minor SGE tweaks --- .../Class Quests/SGE/4068_Sage's Focus.json | 7 +++++-- .../Class Quests/SGE/4069_Sands of Despair.json | 1 + .../Class Quests/SGE/4070_A Poisoned Gift.json | 2 ++ .../SGE/4072_Life Ephemeral, Path Eternal.json | 15 +++++++++++++++ 4 files changed, 23 insertions(+), 2 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 58c0ff77..38e37f32 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 @@ -121,6 +121,7 @@ "Y": 213.03185, "Z": -110.7348 }, + "StopDistance": 7, "TerritoryId": 478, "InteractionType": "Interact", "AetheryteShortcut": "Idyllshire", @@ -142,6 +143,7 @@ "Y": 212.84532, "Z": -109.9718 }, + "StopDistance": 5, "TerritoryId": 478, "InteractionType": "Interact", "AetheryteShortcut": "Idyllshire", @@ -195,7 +197,6 @@ "StopDistance": 5, "TerritoryId": 399, "InteractionType": "SinglePlayerDuty", - "Fly": true, "AetheryteShortcut": "Idyllshire", "AethernetShortcut": [ "[Idyllshire] Aetheryte Plaza", @@ -213,6 +214,9 @@ } ] }, + { + "Sequence": 7 + }, { "Sequence": 8, "Steps": [ @@ -226,7 +230,6 @@ "TerritoryId": 399, "InteractionType": "Interact", "StopDistance": 5, - "Fly": true, "AetheryteShortcut": "Idyllshire", "AethernetShortcut": [ "[Idyllshire] Aetheryte Plaza", diff --git a/QuestPaths/6.x - Endwalker/Class Quests/SGE/4069_Sands of Despair.json b/QuestPaths/6.x - Endwalker/Class Quests/SGE/4069_Sands of Despair.json index bbf573ed..c90fe9ec 100644 --- a/QuestPaths/6.x - Endwalker/Class Quests/SGE/4069_Sands of Despair.json +++ b/QuestPaths/6.x - Endwalker/Class Quests/SGE/4069_Sands of Despair.json @@ -122,6 +122,7 @@ "Z": -215.22852 }, "TerritoryId": 141, + "Fly": true, "InteractionType": "Interact", "AetheryteShortcut": "Central Thanalan - Black Brush Station", "SkipConditions": { diff --git a/QuestPaths/6.x - Endwalker/Class Quests/SGE/4070_A Poisoned Gift.json b/QuestPaths/6.x - Endwalker/Class Quests/SGE/4070_A Poisoned Gift.json index a47ebf05..c9cb488c 100644 --- a/QuestPaths/6.x - Endwalker/Class Quests/SGE/4070_A Poisoned Gift.json +++ b/QuestPaths/6.x - Endwalker/Class Quests/SGE/4070_A Poisoned Gift.json @@ -77,6 +77,7 @@ "Y": -24.721268, "Z": 205.34058 }, + "StopDistance": 6, "TerritoryId": 138, "InteractionType": "Action", "AetheryteShortcut": "Western La Noscea - Aleport", @@ -99,6 +100,7 @@ "Y": -24.724764, "Z": 205.24902 }, + "StopDistance": 6, "TerritoryId": 138, "InteractionType": "Interact", "AetheryteShortcut": "Western La Noscea - Aleport", diff --git a/QuestPaths/6.x - Endwalker/Class Quests/SGE/4072_Life Ephemeral, Path Eternal.json b/QuestPaths/6.x - Endwalker/Class Quests/SGE/4072_Life Ephemeral, Path Eternal.json index e7405f3c..f1fbd031 100644 --- a/QuestPaths/6.x - Endwalker/Class Quests/SGE/4072_Life Ephemeral, Path Eternal.json +++ b/QuestPaths/6.x - Endwalker/Class Quests/SGE/4072_Life Ephemeral, Path Eternal.json @@ -67,6 +67,21 @@ } ] }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1039288, + "Position": { + "X": 212.9701, + "Y": 52.213486, + "Z": -787.50287 + }, + "TerritoryId": 398, + "InteractionType": "Interact" + } + ] + }, { "Sequence": 255, "Steps": [ From dd98352a0c3f1b0155709b88c6846de071927108 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Mon, 16 Sep 2024 18:21:34 +0200 Subject: [PATCH 265/450] Daily quest updates --- .../Dailies/3919_Spreading the Word.json | 30 ++++++- .../Dailies/3822_I Have Never Exploded.json | 11 ++- .../3823_By the Power Invested in Scree.json | 65 +++++++++++++++- .../Dailies/4703_Fungi Frustrations.json | 38 ++++++++- .../4704_For Every Mouth, a Carrot.json | 78 ++++++++++++++++++- QuestPaths/quest-v1.json | 1 + .../Questing/Converter/ActionConverter.cs | 7 +- Questionable.Model/Questing/EAction.cs | 2 + 8 files changed, 219 insertions(+), 13 deletions(-) diff --git a/QuestPaths/5.x - Shadowbringers/Allied Societies/Dwarves/Dailies/3919_Spreading the Word.json b/QuestPaths/5.x - Shadowbringers/Allied Societies/Dwarves/Dailies/3919_Spreading the Word.json index 24aad0b4..1de2f73f 100644 --- a/QuestPaths/5.x - Shadowbringers/Allied Societies/Dwarves/Dailies/3919_Spreading the Word.json +++ b/QuestPaths/5.x - Shadowbringers/Allied Societies/Dwarves/Dailies/3919_Spreading the Word.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,6 +29,34 @@ { "Sequence": 1, "Steps": [ + { + "DataId": 1033697, + "Position": { + "X": 705.2262, + "Y": 20.93061, + "Z": 29.007324 + }, + "TerritoryId": 813, + "InteractionType": "Interact", + "AetheryteShortcut": "Lakeland - Fort Jobb", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1033697, + "Position": { + "X": 705.2262, + "Y": 20.93061, + "Z": 29.007324 + }, + "TerritoryId": 813, + "InteractionType": "Emote", + "Emote": "psych" + } ] }, { @@ -43,6 +70,7 @@ }, "TerritoryId": 813, "InteractionType": "WalkTo", + "AetheryteShortcut": "Lakeland - Ostall Imperative", "Fly": true }, { 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 76b7a64a..49588dea 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 @@ -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, @@ -32,6 +31,16 @@ "AetheryteShortcut": "Rak'tika - Fanow", "Fly": true, "RequiredGatheredItems": [ + { + "QuestAcceptedAsClass": "Miner", + "ItemId": 29530, + "ItemCount": 3 + }, + { + "QuestAcceptedAsClass": "Botanist", + "ItemId": 29556, + "ItemCount": 3 + } ] }, { diff --git a/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Dailies/3823_By the Power Invested in Scree.json b/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Dailies/3823_By the Power Invested in Scree.json index 76b7a64a..e0b0d590 100644 --- a/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Dailies/3823_By the Power Invested in Scree.json +++ b/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Dailies/3823_By the Power Invested in Scree.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,66 @@ } ] }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1032663, + "Position": { + "X": 793.97266, + "Y": -45.811764, + "Z": -188.03699 + }, + "TerritoryId": 817, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1032829, + "Position": { + "X": 488.3954, + "Y": 34.798103, + "Z": 232.37964 + }, + "TerritoryId": 817, + "InteractionType": "Action", + "Action": "Peculiar Light", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 1032828, + "Position": { + "X": 352.16296, + "Y": 28.242743, + "Z": 303.2119 + }, + "TerritoryId": 817, + "InteractionType": "Action", + "Action": "Peculiar Light", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + } + ] + }, { "Sequence": 255, "Steps": [ @@ -30,9 +89,7 @@ "TerritoryId": 817, "InteractionType": "WalkTo", "AetheryteShortcut": "Rak'tika - Fanow", - "Fly": true, - "RequiredGatheredItems": [ - ] + "Fly": true }, { "DataId": 1032643, diff --git a/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Dailies/4703_Fungi Frustrations.json b/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Dailies/4703_Fungi Frustrations.json index d731dcbc..3ec1809c 100644 --- a/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Dailies/4703_Fungi Frustrations.json +++ b/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Dailies/4703_Fungi Frustrations.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,6 +29,39 @@ { "Sequence": 1, "Steps": [ + { + "DataId": 1044587, + "Position": { + "X": 354.02454, + "Y": 91.97786, + "Z": 509.14783 + }, + "TerritoryId": 959, + "InteractionType": "Interact", + "AetheryteShortcut": "Mare Lamentorum - Sinus Lacrimarum", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "TerritoryId": 959, + "InteractionType": "Craft", + "ItemId": 38877, + "ItemCount": 2 + }, + { + "DataId": 1044587, + "Position": { + "X": 354.02454, + "Y": 91.97786, + "Z": 509.14783 + }, + "TerritoryId": 959, + "InteractionType": "Interact" + } ] }, { @@ -42,7 +74,9 @@ "Z": -273.68756 }, "TerritoryId": 959, - "InteractionType": "WalkTo" + "InteractionType": "WalkTo", + "AetheryteShortcut": "Mare Lamentorum - Bestways Burrow", + "Fly": true }, { "DataId": 1044403, diff --git a/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Dailies/4704_For Every Mouth, a Carrot.json b/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Dailies/4704_For Every Mouth, a Carrot.json index d731dcbc..f547e2f9 100644 --- a/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Dailies/4704_For Every Mouth, a Carrot.json +++ b/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Dailies/4704_For Every Mouth, a Carrot.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,6 +29,79 @@ { "Sequence": 1, "Steps": [ + { + "DataId": 1044412, + "Position": { + "X": -181.56714, + "Y": -49.19972, + "Z": -304.76843 + }, + "TerritoryId": 959, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1044590, + "Position": { + "X": -536.9497, + "Y": -157.99246, + "Z": -693.75146 + }, + "StopDistance": 1, + "TerritoryId": 959, + "InteractionType": "Interact", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 1044591, + "Position": { + "X": -502.58643, + "Y": -161.38867, + "Z": -773.251 + }, + "TerritoryId": 959, + "InteractionType": "Interact", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, + { + "DataId": 1044589, + "Position": { + "X": -433.03577, + "Y": -167.50002, + "Z": -741.7258 + }, + "TerritoryId": 959, + "InteractionType": "Interact", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + } ] }, { @@ -42,7 +114,9 @@ "Z": -273.68756 }, "TerritoryId": 959, - "InteractionType": "WalkTo" + "InteractionType": "WalkTo", + "AetheryteShortcut": "Mare Lamentorum - Bestways Burrow", + "Fly": true }, { "DataId": 1044403, diff --git a/QuestPaths/quest-v1.json b/QuestPaths/quest-v1.json index 07f1cd9a..4c271e1a 100644 --- a/QuestPaths/quest-v1.json +++ b/QuestPaths/quest-v1.json @@ -888,6 +888,7 @@ "Trample", "Fumigate", "Siphon Snout", + "Peculiar Light", "Cannonfire", "Red Gulal", "Yellow Gulal", diff --git a/Questionable.Model/Questing/Converter/ActionConverter.cs b/Questionable.Model/Questing/Converter/ActionConverter.cs index 3f371494..32a6654f 100644 --- a/Questionable.Model/Questing/Converter/ActionConverter.cs +++ b/Questionable.Model/Questing/Converter/ActionConverter.cs @@ -15,9 +15,9 @@ public sealed class ActionConverter() : EnumConverter(Values) { EAction.HeavyShot, "Heavy Shot" }, { EAction.Cure, "Cure" }, { EAction.Cure2, "Cure II" }, - { EAction.Eukrasia, "Eukrasia"}, - { EAction.Diagnosis, "Diagnosis"}, - { EAction.EukrasianDiagnosis, "Eukrasian Diagnosis"}, + { EAction.Eukrasia, "Eukrasia" }, + { EAction.Diagnosis, "Diagnosis" }, + { EAction.EukrasianDiagnosis, "Eukrasian Diagnosis" }, { EAction.Esuna, "Esuna" }, { EAction.Physick, "Physick" }, { EAction.AspectedBenefic, "Aspected Benefic" }, @@ -27,6 +27,7 @@ public sealed class ActionConverter() : EnumConverter(Values) { EAction.Trample, "Trample" }, { EAction.Fumigate, "Fumigate" }, { EAction.SiphonSnout, "Siphon Snout" }, + { EAction.PeculiarLight, "Peculiar Light" }, { EAction.Cannonfire, "Cannonfire" }, { EAction.RedGulal, "Red Gulal" }, { EAction.YellowGulal, "Yellow Gulal" }, diff --git a/Questionable.Model/Questing/EAction.cs b/Questionable.Model/Questing/EAction.cs index f0d2ea8b..bcc676e4 100644 --- a/Questionable.Model/Questing/EAction.cs +++ b/Questionable.Model/Questing/EAction.cs @@ -28,6 +28,7 @@ public enum EAction MagitekPulse = 8624, MagitekThunder = 8625, SiphonSnout = 18187, + PeculiarLight = 20030, Cannonfire = 20121, RedGulal = 29382, YellowGulal = 29383, @@ -63,6 +64,7 @@ public static class EActionExtensions or EAction.Trample or EAction.Fumigate or EAction.SiphonSnout + or EAction.PeculiarLight or EAction.Cannonfire or EAction.RedGulal or EAction.YellowGulal From 5c516895088033a04503a1f7b0a213a4c0df9569 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Mon, 16 Sep 2024 18:24:49 +0200 Subject: [PATCH 266/450] Reorganize side story locations --- .../Hildibrand}/1204_The Rise and Fall of a Gentlemen.json | 0 .../Hildibrand}/1205_Back in the Saddle.json | 0 .../Hildibrand}/1206_After Her Own Heart.json | 0 .../Hildibrand}/1207_The Immaculate Deception.json | 0 .../Hildibrand}/1315_The Science of Deduction.json | 0 .../Hildibrand}/1316_The Hammer.json | 0 .../Hildibrand}/1317_Manderville Men.json | 0 .../Hildibrand}/1318_The Three Collectors.json | 0 .../Hildibrand}/1438_The Business of Betrothal.json | 0 .../Hildibrand}/1439_A Burst of Inspiration.json | 0 .../Hildibrand}/1440_Seeds of Rebellion.json | 0 .../Hildibrand}/1441_A Case of Indecency.json | 0 .../Hildibrand}/166_Eight-armed and Dangerous.json | 0 .../Hildibrand}/202_What Price Victory.json | 0 .../Hildibrand}/203_The Trouble with Truffles.json | 0 .../Hildibrand}/204_The Coliseum Conundrum.json | 0 .../Hildibrand}/490_Shades of Sil'dih.json | 0 .../Hildibrand}/491_Sibling Strife.json | 0 .../Hildibrand}/492_Beneath the Mask.json | 0 .../Hildibrand}/493_Truths Untold.json | 0 .../Hildibrand}/502_Her Last Vow.json | 0 .../Omega - Beyond the Rift/4586_A Heartless Hypothesis.json | 0 .../Omega - Beyond the Rift/4587_Good-bye, x.json | 0 .../Tataru's Grand Endeavor/4761_Aggressive Expansion.json | 0 .../Tataru's Grand Endeavor/4762_Forever in Our Hearts.json | 0 25 files changed, 0 insertions(+), 0 deletions(-) rename QuestPaths/2.x - A Realm Reborn/{Hildibrand Quests => Side Stories/Hildibrand}/1204_The Rise and Fall of a Gentlemen.json (100%) rename QuestPaths/2.x - A Realm Reborn/{Hildibrand Quests => Side Stories/Hildibrand}/1205_Back in the Saddle.json (100%) rename QuestPaths/2.x - A Realm Reborn/{Hildibrand Quests => Side Stories/Hildibrand}/1206_After Her Own Heart.json (100%) rename QuestPaths/2.x - A Realm Reborn/{Hildibrand Quests => Side Stories/Hildibrand}/1207_The Immaculate Deception.json (100%) rename QuestPaths/2.x - A Realm Reborn/{Hildibrand Quests => Side Stories/Hildibrand}/1315_The Science of Deduction.json (100%) rename QuestPaths/2.x - A Realm Reborn/{Hildibrand Quests => Side Stories/Hildibrand}/1316_The Hammer.json (100%) rename QuestPaths/2.x - A Realm Reborn/{Hildibrand Quests => Side Stories/Hildibrand}/1317_Manderville Men.json (100%) rename QuestPaths/2.x - A Realm Reborn/{Hildibrand Quests => Side Stories/Hildibrand}/1318_The Three Collectors.json (100%) rename QuestPaths/2.x - A Realm Reborn/{Hildibrand Quests => Side Stories/Hildibrand}/1438_The Business of Betrothal.json (100%) rename QuestPaths/2.x - A Realm Reborn/{Hildibrand Quests => Side Stories/Hildibrand}/1439_A Burst of Inspiration.json (100%) rename QuestPaths/2.x - A Realm Reborn/{Hildibrand Quests => Side Stories/Hildibrand}/1440_Seeds of Rebellion.json (100%) rename QuestPaths/2.x - A Realm Reborn/{Hildibrand Quests => Side Stories/Hildibrand}/1441_A Case of Indecency.json (100%) rename QuestPaths/2.x - A Realm Reborn/{Hildibrand Quests => Side Stories/Hildibrand}/166_Eight-armed and Dangerous.json (100%) rename QuestPaths/2.x - A Realm Reborn/{Hildibrand Quests => Side Stories/Hildibrand}/202_What Price Victory.json (100%) rename QuestPaths/2.x - A Realm Reborn/{Hildibrand Quests => Side Stories/Hildibrand}/203_The Trouble with Truffles.json (100%) rename QuestPaths/2.x - A Realm Reborn/{Hildibrand Quests => Side Stories/Hildibrand}/204_The Coliseum Conundrum.json (100%) rename QuestPaths/2.x - A Realm Reborn/{Hildibrand Quests => Side Stories/Hildibrand}/490_Shades of Sil'dih.json (100%) rename QuestPaths/2.x - A Realm Reborn/{Hildibrand Quests => Side Stories/Hildibrand}/491_Sibling Strife.json (100%) rename QuestPaths/2.x - A Realm Reborn/{Hildibrand Quests => Side Stories/Hildibrand}/492_Beneath the Mask.json (100%) rename QuestPaths/2.x - A Realm Reborn/{Hildibrand Quests => Side Stories/Hildibrand}/493_Truths Untold.json (100%) rename QuestPaths/2.x - A Realm Reborn/{Hildibrand Quests => Side Stories/Hildibrand}/502_Her Last Vow.json (100%) rename QuestPaths/6.x - Endwalker/{Side Quests => Side Stories}/Omega - Beyond the Rift/4586_A Heartless Hypothesis.json (100%) rename QuestPaths/6.x - Endwalker/{Side Quests => Side Stories}/Omega - Beyond the Rift/4587_Good-bye, x.json (100%) rename QuestPaths/6.x - Endwalker/{Side Quests => Side Stories}/Tataru's Grand Endeavor/4761_Aggressive Expansion.json (100%) rename QuestPaths/6.x - Endwalker/{Side Quests => Side Stories}/Tataru's Grand Endeavor/4762_Forever in Our Hearts.json (100%) diff --git a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1204_The Rise and Fall of a Gentlemen.json b/QuestPaths/2.x - A Realm Reborn/Side Stories/Hildibrand/1204_The Rise and Fall of a Gentlemen.json similarity index 100% rename from QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1204_The Rise and Fall of a Gentlemen.json rename to QuestPaths/2.x - A Realm Reborn/Side Stories/Hildibrand/1204_The Rise and Fall of a Gentlemen.json diff --git a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1205_Back in the Saddle.json b/QuestPaths/2.x - A Realm Reborn/Side Stories/Hildibrand/1205_Back in the Saddle.json similarity index 100% rename from QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1205_Back in the Saddle.json rename to QuestPaths/2.x - A Realm Reborn/Side Stories/Hildibrand/1205_Back in the Saddle.json diff --git a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1206_After Her Own Heart.json b/QuestPaths/2.x - A Realm Reborn/Side Stories/Hildibrand/1206_After Her Own Heart.json similarity index 100% rename from QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1206_After Her Own Heart.json rename to QuestPaths/2.x - A Realm Reborn/Side Stories/Hildibrand/1206_After Her Own Heart.json diff --git a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1207_The Immaculate Deception.json b/QuestPaths/2.x - A Realm Reborn/Side Stories/Hildibrand/1207_The Immaculate Deception.json similarity index 100% rename from QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1207_The Immaculate Deception.json rename to QuestPaths/2.x - A Realm Reborn/Side Stories/Hildibrand/1207_The Immaculate Deception.json diff --git a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1315_The Science of Deduction.json b/QuestPaths/2.x - A Realm Reborn/Side Stories/Hildibrand/1315_The Science of Deduction.json similarity index 100% rename from QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1315_The Science of Deduction.json rename to QuestPaths/2.x - A Realm Reborn/Side Stories/Hildibrand/1315_The Science of Deduction.json diff --git a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1316_The Hammer.json b/QuestPaths/2.x - A Realm Reborn/Side Stories/Hildibrand/1316_The Hammer.json similarity index 100% rename from QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1316_The Hammer.json rename to QuestPaths/2.x - A Realm Reborn/Side Stories/Hildibrand/1316_The Hammer.json diff --git a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1317_Manderville Men.json b/QuestPaths/2.x - A Realm Reborn/Side Stories/Hildibrand/1317_Manderville Men.json similarity index 100% rename from QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1317_Manderville Men.json rename to QuestPaths/2.x - A Realm Reborn/Side Stories/Hildibrand/1317_Manderville Men.json diff --git a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1318_The Three Collectors.json b/QuestPaths/2.x - A Realm Reborn/Side Stories/Hildibrand/1318_The Three Collectors.json similarity index 100% rename from QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1318_The Three Collectors.json rename to QuestPaths/2.x - A Realm Reborn/Side Stories/Hildibrand/1318_The Three Collectors.json diff --git a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1438_The Business of Betrothal.json b/QuestPaths/2.x - A Realm Reborn/Side Stories/Hildibrand/1438_The Business of Betrothal.json similarity index 100% rename from QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1438_The Business of Betrothal.json rename to QuestPaths/2.x - A Realm Reborn/Side Stories/Hildibrand/1438_The Business of Betrothal.json diff --git a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1439_A Burst of Inspiration.json b/QuestPaths/2.x - A Realm Reborn/Side Stories/Hildibrand/1439_A Burst of Inspiration.json similarity index 100% rename from QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1439_A Burst of Inspiration.json rename to QuestPaths/2.x - A Realm Reborn/Side Stories/Hildibrand/1439_A Burst of Inspiration.json diff --git a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1440_Seeds of Rebellion.json b/QuestPaths/2.x - A Realm Reborn/Side Stories/Hildibrand/1440_Seeds of Rebellion.json similarity index 100% rename from QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1440_Seeds of Rebellion.json rename to QuestPaths/2.x - A Realm Reborn/Side Stories/Hildibrand/1440_Seeds of Rebellion.json diff --git a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1441_A Case of Indecency.json b/QuestPaths/2.x - A Realm Reborn/Side Stories/Hildibrand/1441_A Case of Indecency.json similarity index 100% rename from QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/1441_A Case of Indecency.json rename to QuestPaths/2.x - A Realm Reborn/Side Stories/Hildibrand/1441_A Case of Indecency.json diff --git a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/166_Eight-armed and Dangerous.json b/QuestPaths/2.x - A Realm Reborn/Side Stories/Hildibrand/166_Eight-armed and Dangerous.json similarity index 100% rename from QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/166_Eight-armed and Dangerous.json rename to QuestPaths/2.x - A Realm Reborn/Side Stories/Hildibrand/166_Eight-armed and Dangerous.json diff --git a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/202_What Price Victory.json b/QuestPaths/2.x - A Realm Reborn/Side Stories/Hildibrand/202_What Price Victory.json similarity index 100% rename from QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/202_What Price Victory.json rename to QuestPaths/2.x - A Realm Reborn/Side Stories/Hildibrand/202_What Price Victory.json diff --git a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/203_The Trouble with Truffles.json b/QuestPaths/2.x - A Realm Reborn/Side Stories/Hildibrand/203_The Trouble with Truffles.json similarity index 100% rename from QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/203_The Trouble with Truffles.json rename to QuestPaths/2.x - A Realm Reborn/Side Stories/Hildibrand/203_The Trouble with Truffles.json diff --git a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/204_The Coliseum Conundrum.json b/QuestPaths/2.x - A Realm Reborn/Side Stories/Hildibrand/204_The Coliseum Conundrum.json similarity index 100% rename from QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/204_The Coliseum Conundrum.json rename to QuestPaths/2.x - A Realm Reborn/Side Stories/Hildibrand/204_The Coliseum Conundrum.json diff --git a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/490_Shades of Sil'dih.json b/QuestPaths/2.x - A Realm Reborn/Side Stories/Hildibrand/490_Shades of Sil'dih.json similarity index 100% rename from QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/490_Shades of Sil'dih.json rename to QuestPaths/2.x - A Realm Reborn/Side Stories/Hildibrand/490_Shades of Sil'dih.json diff --git a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/491_Sibling Strife.json b/QuestPaths/2.x - A Realm Reborn/Side Stories/Hildibrand/491_Sibling Strife.json similarity index 100% rename from QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/491_Sibling Strife.json rename to QuestPaths/2.x - A Realm Reborn/Side Stories/Hildibrand/491_Sibling Strife.json diff --git a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/492_Beneath the Mask.json b/QuestPaths/2.x - A Realm Reborn/Side Stories/Hildibrand/492_Beneath the Mask.json similarity index 100% rename from QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/492_Beneath the Mask.json rename to QuestPaths/2.x - A Realm Reborn/Side Stories/Hildibrand/492_Beneath the Mask.json diff --git a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/493_Truths Untold.json b/QuestPaths/2.x - A Realm Reborn/Side Stories/Hildibrand/493_Truths Untold.json similarity index 100% rename from QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/493_Truths Untold.json rename to QuestPaths/2.x - A Realm Reborn/Side Stories/Hildibrand/493_Truths Untold.json diff --git a/QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/502_Her Last Vow.json b/QuestPaths/2.x - A Realm Reborn/Side Stories/Hildibrand/502_Her Last Vow.json similarity index 100% rename from QuestPaths/2.x - A Realm Reborn/Hildibrand Quests/502_Her Last Vow.json rename to QuestPaths/2.x - A Realm Reborn/Side Stories/Hildibrand/502_Her Last Vow.json diff --git a/QuestPaths/6.x - Endwalker/Side Quests/Omega - Beyond the Rift/4586_A Heartless Hypothesis.json b/QuestPaths/6.x - Endwalker/Side Stories/Omega - Beyond the Rift/4586_A Heartless Hypothesis.json similarity index 100% rename from QuestPaths/6.x - Endwalker/Side Quests/Omega - Beyond the Rift/4586_A Heartless Hypothesis.json rename to QuestPaths/6.x - Endwalker/Side Stories/Omega - Beyond the Rift/4586_A Heartless Hypothesis.json diff --git a/QuestPaths/6.x - Endwalker/Side Quests/Omega - Beyond the Rift/4587_Good-bye, x.json b/QuestPaths/6.x - Endwalker/Side Stories/Omega - Beyond the Rift/4587_Good-bye, x.json similarity index 100% rename from QuestPaths/6.x - Endwalker/Side Quests/Omega - Beyond the Rift/4587_Good-bye, x.json rename to QuestPaths/6.x - Endwalker/Side Stories/Omega - Beyond the Rift/4587_Good-bye, x.json diff --git a/QuestPaths/6.x - Endwalker/Side Quests/Tataru's Grand Endeavor/4761_Aggressive Expansion.json b/QuestPaths/6.x - Endwalker/Side Stories/Tataru's Grand Endeavor/4761_Aggressive Expansion.json similarity index 100% rename from QuestPaths/6.x - Endwalker/Side Quests/Tataru's Grand Endeavor/4761_Aggressive Expansion.json rename to QuestPaths/6.x - Endwalker/Side Stories/Tataru's Grand Endeavor/4761_Aggressive Expansion.json diff --git a/QuestPaths/6.x - Endwalker/Side Quests/Tataru's Grand Endeavor/4762_Forever in Our Hearts.json b/QuestPaths/6.x - Endwalker/Side Stories/Tataru's Grand Endeavor/4762_Forever in Our Hearts.json similarity index 100% rename from QuestPaths/6.x - Endwalker/Side Quests/Tataru's Grand Endeavor/4762_Forever in Our Hearts.json rename to QuestPaths/6.x - Endwalker/Side Stories/Tataru's Grand Endeavor/4762_Forever in Our Hearts.json From fc72f52ee3feca4409bb1c492ed4e7bc852b1705 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Mon, 16 Sep 2024 19:20:54 +0200 Subject: [PATCH 267/450] Add Omicron/Loporrit unlock quests --- .../4689_Money Makes the Moon Go Round.json | 3 +- .../Story/4681_Must Be Dreaming(way).json | 176 ++++++++++ ...1_The Café at the End of the Universe.json | 250 +++++++++++++ .../4517_A Way to Make a Living.json | 140 ++++++++ .../4518_One Way or Another.json | 123 +++++++ .../4519_Dream a Little Dream.json | 328 ++++++++++++++++++ 6 files changed, 1019 insertions(+), 1 deletion(-) create mode 100644 QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Story/4681_Must Be Dreaming(way).json create mode 100644 QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Story/4601_The Café at the End of the Universe.json create mode 100644 QuestPaths/6.x - Endwalker/Side Quests/Mare Lamentorum/4517_A Way to Make a Living.json create mode 100644 QuestPaths/6.x - Endwalker/Side Quests/Mare Lamentorum/4518_One Way or Another.json create mode 100644 QuestPaths/6.x - Endwalker/Side Quests/Mare Lamentorum/4519_Dream a Little Dream.json 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 b1d281b4..e72b91fd 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,8 @@ "Z": -513.0846 }, "TerritoryId": 959, - "InteractionType": "Interact" + "InteractionType": "Interact", + "Fly": true } ] }, diff --git a/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Story/4681_Must Be Dreaming(way).json b/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Story/4681_Must Be Dreaming(way).json new file mode 100644 index 00000000..290765e6 --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Story/4681_Must Be Dreaming(way).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": 1044910, + "Position": { + "X": 23.75824, + "Y": 2.453333, + "Z": -12.680237 + }, + "TerritoryId": 962, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Old Sharlayan", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1044911, + "Position": { + "X": 0.38146973, + "Y": -127.50014, + "Z": -457.14508 + }, + "TerritoryId": 959, + "InteractionType": "Interact", + "AetheryteShortcut": "Mare Lamentorum - Bestways Burrow", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1044914, + "Position": { + "X": -120.409, + "Y": -137.41672, + "Z": -526.63464 + }, + "TerritoryId": 959, + "InteractionType": "Interact", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, + { + "DataId": 1044913, + "Position": { + "X": 55.161255, + "Y": -129.40565, + "Z": -636.8048 + }, + "TerritoryId": 959, + "InteractionType": "Interact", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 1044912, + "Position": { + "X": 61.41748, + "Y": -137.4167, + "Z": -606.28674 + }, + "TerritoryId": 959, + "InteractionType": "Interact", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1044911, + "Position": { + "X": 0.38146973, + "Y": -127.50014, + "Z": -457.14508 + }, + "TerritoryId": 959, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1044919, + "Position": { + "X": 148.30237, + "Y": -49.589592, + "Z": -361.77618 + }, + "TerritoryId": 959, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1044920, + "Position": { + "X": -170.42804, + "Y": -49.399723, + "Z": -289.5705 + }, + "TerritoryId": 959, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "TerritoryId": 959, + "InteractionType": "Craft", + "ItemId": 38843, + "ItemCount": 3 + }, + { + "DataId": 1044921, + "Position": { + "X": -170.0008, + "Y": -49.34972, + "Z": -287.22064 + }, + "StopDistance": 5, + "TerritoryId": 959, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} 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 new file mode 100644 index 00000000..34b28d3d --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Story/4601_The Café at the End of the Universe.json @@ -0,0 +1,250 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1042192, + "Position": { + "X": 200.48828, + "Y": 567.50006, + "Z": 242.78625 + }, + "TerritoryId": 960, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Ultima Thule - Base Omicron", + "Fly": true + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1043518, + "Position": { + "X": 456.32092, + "Y": 437.00073, + "Z": 315.69385 + }, + "TerritoryId": 960, + "InteractionType": "Interact", + "AetheryteShortcut": "Ultima Thule - Base Omicron" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2013076, + "Position": { + "X": 456.65674, + "Y": 438.04077, + "Z": 310.2616 + }, + "TerritoryId": 960, + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_BANOMI001_04601_Q5_000_000", + "Yes": true + } + ] + }, + { + "DataId": 2013034, + "Position": { + "X": 304.37158, + "Y": 483.48206, + "Z": 143.14478 + }, + "TerritoryId": 960, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1043421, + "Position": { + "X": 2.4261475, + "Y": 499.87805, + "Z": 46.036377 + }, + "TerritoryId": 1073, + "InteractionType": "Interact", + "TargetTerritoryId": 960 + }, + { + "DataId": 1043865, + "Position": { + "X": 301.8081, + "Y": 482.13644, + "Z": 165.02625 + }, + "TerritoryId": 960, + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_BANOMI001_04601_Q6_000_000", + "Yes": true + } + ] + }, + { + "DataId": 1043586, + "Position": { + "X": 205.3711, + "Y": 567.50006, + "Z": 246.72314 + }, + "TerritoryId": 960, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 2013072, + "Position": { + "X": 456.65674, + "Y": 438.04077, + "Z": 310.2312 + }, + "TerritoryId": 960, + "InteractionType": "Interact", + "AetheryteShortcut": "Ultima Thule - Base Omicron", + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_BANOMI001_04601_Q5_000_000", + "Yes": true + } + ], + "RequiredGatheredItems": [ + { + "QuestAcceptedAsClass": "Miner", + "ItemId": 38276, + "ItemCount": 3 + }, + { + "QuestAcceptedAsClass": "Botanist", + "ItemId": 38300, + "ItemCount": 3 + } + ] + }, + { + "DataId": 1043865, + "Position": { + "X": 301.8081, + "Y": 482.13644, + "Z": 165.02625 + }, + "TerritoryId": 960, + "InteractionType": "Interact", + "TargetTerritoryId": 960, + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_BANOMI001_04601_Q6_000_000", + "Yes": true + } + ] + }, + { + "DataId": 1044190, + "Position": { + "X": 203.84521, + "Y": 567.50006, + "Z": 246.87573 + }, + "TerritoryId": 960, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1043864, + "Position": { + "X": 244.83093, + "Y": 564.8203, + "Z": 261.76843 + }, + "TerritoryId": 960, + "InteractionType": "Interact", + "DialogueChoices": [ + { + "Type": "YesNo", + "Prompt": "TEXT_BANOMI001_04601_Q5_000_000", + "Yes": true + } + ] + }, + { + "DataId": 1043514, + "Position": { + "X": 303.82227, + "Y": 481.99442, + "Z": 154.83325 + }, + "TerritoryId": 960, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "DataId": 1043521, + "Position": { + "X": 3.3721924, + "Y": 499.6105, + "Z": 34.195435 + }, + "TerritoryId": 1073, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1043421, + "Position": { + "X": 2.4261475, + "Y": 499.87805, + "Z": 46.036377 + }, + "TerritoryId": 1073, + "InteractionType": "Interact", + "TargetTerritoryId": 960 + }, + { + "DataId": 1043514, + "Position": { + "X": 303.82227, + "Y": 481.99442, + "Z": 154.83325 + }, + "TerritoryId": 960, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/6.x - Endwalker/Side Quests/Mare Lamentorum/4517_A Way to Make a Living.json b/QuestPaths/6.x - Endwalker/Side Quests/Mare Lamentorum/4517_A Way to Make a Living.json new file mode 100644 index 00000000..1c5aad21 --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Side Quests/Mare Lamentorum/4517_A Way to Make a Living.json @@ -0,0 +1,140 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1041556, + "Position": { + "X": 113.14563, + "Y": -133.07352, + "Z": -465.17133 + }, + "TerritoryId": 959, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1041557, + "Position": { + "X": 292.2865, + "Y": -143.99998, + "Z": -477.8363 + }, + "TerritoryId": 959, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1041559, + "Position": { + "X": 8.743347, + "Y": 27.418339, + "Z": 447.74548 + }, + "TerritoryId": 959, + "InteractionType": "Interact", + "AetheryteShortcut": "Mare Lamentorum - Sinus Lacrimarum", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2012508, + "Position": { + "X": -7.4312134, + "Y": 42.61841, + "Z": 428.27502 + }, + "TerritoryId": 959, + "InteractionType": "Interact", + "Fly": true, + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "Position": { + "X": -54.65185, + "Y": 40.539097, + "Z": 458.56393 + }, + "TerritoryId": 959, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 2012509, + "Position": { + "X": -56.50421, + "Y": 40.299072, + "Z": 459.64746 + }, + "TerritoryId": 959, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1041559, + "Position": { + "X": 8.743347, + "Y": 27.418339, + "Z": 447.74548 + }, + "TerritoryId": 959, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1041557, + "Position": { + "X": 292.2865, + "Y": -143.99998, + "Z": -477.8363 + }, + "TerritoryId": 959, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Mare Lamentorum - Bestways Burrow", + "Fly": true, + "NextQuestId": 4518 + } + ] + } + ] +} diff --git a/QuestPaths/6.x - Endwalker/Side Quests/Mare Lamentorum/4518_One Way or Another.json b/QuestPaths/6.x - Endwalker/Side Quests/Mare Lamentorum/4518_One Way or Another.json new file mode 100644 index 00000000..ce24c385 --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Side Quests/Mare Lamentorum/4518_One Way or Another.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": 1041558, + "Position": { + "X": 291.2489, + "Y": -144, + "Z": -477.95837 + }, + "TerritoryId": 959, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1041560, + "Position": { + "X": 304.219, + "Y": 106.43858, + "Z": 37.00305 + }, + "TerritoryId": 959, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1041817, + "Position": { + "X": 477.37842, + "Y": 140.67236, + "Z": 109.453 + }, + "TerritoryId": 959, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2012510, + "Position": { + "X": 477.28687, + "Y": 140.64233, + "Z": 109.42236 + }, + "TerritoryId": 959, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "Position": { + "X": 626.34064, + "Y": 143.6347, + "Z": 58.013206 + }, + "StopDistance": 0.5, + "TerritoryId": 959, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [ + 14098, + 14099 + ], + "Fly": true + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1041561, + "Position": { + "X": 625.0857, + "Y": 143.85222, + "Z": 56.321045 + }, + "StopDistance": 5, + "TerritoryId": 959, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1041564, + "Position": { + "X": -338.36884, + "Y": -168, + "Z": -613.7637 + }, + "TerritoryId": 959, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Mare Lamentorum - Bestways Burrow", + "Fly": true, + "NextQuestId": 4519 + } + ] + } + ] +} diff --git a/QuestPaths/6.x - Endwalker/Side Quests/Mare Lamentorum/4519_Dream a Little Dream.json b/QuestPaths/6.x - Endwalker/Side Quests/Mare Lamentorum/4519_Dream a Little Dream.json new file mode 100644 index 00000000..a05d0649 --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Side Quests/Mare Lamentorum/4519_Dream a Little Dream.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": 1041903, + "Position": { + "X": -332.02112, + "Y": -168, + "Z": -609.91833 + }, + "StopDistance": 6.5, + "TerritoryId": 959, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2012512, + "Position": { + "X": -457.29767, + "Y": -158.12933, + "Z": -585.77856 + }, + "TerritoryId": 959, + "InteractionType": "UseItem", + "ItemId": 2003328, + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": -325.3802, + "Y": -152.73842, + "Z": -746.0951 + }, + "TerritoryId": 959, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 2012513, + "Position": { + "X": -326.8025, + "Y": -151.26276, + "Z": -748.5008 + }, + "TerritoryId": 959, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "Position": { + "X": -356.33234, + "Y": -161.8501, + "Z": -738.81055 + }, + "TerritoryId": 959, + "InteractionType": "WalkTo" + }, + { + "Position": { + "X": -428.4264, + "Y": -168, + "Z": -676.6854 + }, + "StopDistance": 1, + "TerritoryId": 959, + "InteractionType": "Jump", + "JumpDestination": { + "Position": { + "X": -431.76593, + "Y": -166.55412, + "Z": -679.5478 + }, + "DelaySeconds": 0.1 + }, + "Comment": "Platform 1" + }, + { + "Position": { + "X": -431.76593, + "Y": -166.55412, + "Z": -679.5478 + }, + "StopDistance": 1, + "TerritoryId": 959, + "InteractionType": "Jump", + "JumpDestination": { + "Position": { + "X": -430.03564, + "Y": -165.05414, + "Z": -682.2485 + }, + "DelaySeconds": 0.1 + }, + "Comment": "Platform 2" + }, + { + "Position": { + "X": -430.03564, + "Y": -165.05414, + "Z": -682.2485 + }, + "StopDistance": 1, + "TerritoryId": 959, + "InteractionType": "Jump", + "JumpDestination": { + "Position": { + "X": -428.49857, + "Y": -163.55414, + "Z": -684.8062 + }, + "DelaySeconds": 0.1 + }, + "Comment": "Platform 3" + }, + { + "Position": { + "X": -428.49857, + "Y": -163.55414, + "Z": -684.8062 + }, + "StopDistance": 1, + "TerritoryId": 959, + "InteractionType": "Jump", + "JumpDestination": { + "Position": { + "X": -427.48633, + "Y": -162.05414, + "Z": -687.71533 + }, + "DelaySeconds": 0.1 + }, + "Comment": "Platform 4" + }, + { + "Position": { + "X": -427.48633, + "Y": -162.05414, + "Z": -687.71533 + }, + "StopDistance": 1, + "TerritoryId": 959, + "InteractionType": "Jump", + "JumpDestination": { + "Position": { + "X": -427.7118, + "Y": -160.55414, + "Z": -691.17804 + }, + "DelaySeconds": 0.1 + }, + "Comment": "Platform 5" + }, + { + "Position": { + "X": -427.7118, + "Y": -160.55414, + "Z": -691.17804 + }, + "StopDistance": 1, + "TerritoryId": 959, + "InteractionType": "Jump", + "JumpDestination": { + "Position": { + "X": -428.33154, + "Y": -159.05412, + "Z": -694.7048 + }, + "DelaySeconds": 0.1 + }, + "Comment": "Platform 6" + }, + { + "Position": { + "X": -434.91986, + "Y": -158.88745, + "Z": -693.17865 + }, + "TerritoryId": 959, + "InteractionType": "WalkTo", + "DisableNavmesh": true + }, + { + "DataId": 2012611, + "Position": { + "X": -450.33954, + "Y": -158.12933, + "Z": -694.42285 + }, + "TerritoryId": 959, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "Position": { + "X": -548.9189, + "Y": -158.88948, + "Z": -651.8319 + }, + "TerritoryId": 959, + "InteractionType": "WalkTo", + "Fly": true, + "SkipConditions": { + "StepIf": { + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + } + } + }, + { + "DataId": 2012514, + "Position": { + "X": -549.12646, + "Y": -158.86176, + "Z": -649.2866 + }, + "TerritoryId": 959, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "Position": { + "X": -549.3165, + "Y": -158.89796, + "Z": -468.4637 + }, + "TerritoryId": 959, + "InteractionType": "WalkTo", + "Fly": true, + "SkipConditions": { + "StepIf": { + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + } + } + }, + { + "DataId": 2012515, + "Position": { + "X": -549.157, + "Y": -158.89221, + "Z": -465.87323 + }, + "TerritoryId": 959, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1041818, + "Position": { + "X": -295.76562, + "Y": -144, + "Z": -547.0817 + }, + "TerritoryId": 959, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1041819, + "Position": { + "X": -295.64362, + "Y": -144, + "Z": -546.2882 + }, + "TerritoryId": 959, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} From 9251111b05cdf7e5f0730fe745bfd73270e79072 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Mon, 16 Sep 2024 20:22:12 +0200 Subject: [PATCH 268/450] Update gathering from 'RequiredGatheredItems' to a dedicated InteractionType; updated movement logic to only evaluate distance to target after teleports and such --- .../RoslynElements/QuestStepExtensions.cs | 4 +- .../MIN/599_My First Pickaxe.json | 18 ++- .../Class Quests/MIN/600_Know Thy Land.json | 18 ++- .../Zhloe/S1_Zhloe Aliapoh.json | 6 +- .../BTN/2622_Walking for Walker's.json | 16 +- .../BTN/2623_The White Death.json | 18 ++- .../BTN/2624_Edgyth's Winning Streak.json | 18 ++- .../Adkiragh/S4_Adkiragh.json | 6 +- .../Custom Deliveries/Kurenai/S3_Kurenai.json | 6 +- .../Custom Deliveries/M'naago/S2_M'naago.json | 6 +- .../Qitari/Dailies/3806_A Tool's Errand.json | 22 +-- .../3807_Where the Sun Don't Shine.json | 20 ++- .../Qitari/Dailies/3808_A Touch of Home.json | 22 +-- .../Qitari/Dailies/3809_Mother's Recipe.json | 22 +-- .../Dailies/3810_Power to the Vegetables.json | 4 +- .../Dailies/3811_Rational Thinking.json | 22 +-- .../Qitari/Dailies/3812_Making Scents.json | 22 +-- .../Dailies/3814_Prayers and Poison.json | 22 +-- .../Qitari/Dailies/3815_Salve Our Souls.json | 22 +-- .../Qitari/Dailies/3816_Rings of Pattern.json | 4 +- .../Qitari/Dailies/3817_You Dirty Rats.json | 4 +- .../Dailies/3818_If It's Broke, Fix It.json | 4 +- .../3820_The Qitari Book of Records.json | 22 +-- .../Qitari/Dailies/3821_Meat and Greet.json | 22 +-- .../Dailies/3822_I Have Never Exploded.json | 22 +-- .../Qitari/Dailies/3824_Rock 'n Ronka.json | 4 +- ...5_There's No Clean Like Qhoterl Clean.json | 4 +- .../Dailies/3827_Her Splendid Materials.json | 22 +-- .../Qitari/Dailies/3828_Splendid Eats.json | 22 +-- .../Dailies/3830_Safety Is No Accident.json | 22 +-- ...Fish, Two Fish, Bread Fish, Stew Fish.json | 22 +-- .../Dailies/3832_Serpent's Will Be Done.json | 4 +- .../Dailies/3833_Qhoterl's Chronicles.json | 4 +- .../Story/3794_The Stewards of Note.json | 18 ++- .../Story/3795_Wisdom of the Night.json | 24 +-- .../Kai-Shirr/S5_Kai-Shirr.json | 6 +- .../Dailies/4607_Signs of the Past.json | 4 +- .../Dailies/4609_Well Below Standard.json | 26 ++-- .../Dailies/4611_Grounds for Improvement.json | 4 +- .../Dailies/4612_A Fertile Blend.json | 24 +-- .../Dailies/4614_The Robot and the Sea.json | 4 +- .../Dailies/4615_Using Their Heads.json | 4 +- .../Dailies/4617_I'll Fish It Myself.json | 4 +- .../Dailies/4620_A Taste of the Sea.json | 20 ++- .../Omicrons/Dailies/4622_Ea Epicurious.json | 24 +-- .../Omicrons/Dailies/4623_I, Omicron.json | 4 +- ...25_Corporeal Hand to Proverbial Mouth.json | 4 +- .../Dailies/4626_Mush for Miw Miisv.json | 4 +- .../Dailies/4627_Corporeal Comforts.json | 24 +-- .../Dailies/4629_A Light in the Dark.json | 22 +-- .../4630_Reclaiming the Taste of Home.json | 20 ++- .../Omicrons/Dailies/4631_Not Forgotten.json | 24 +-- .../Dailies/4632_Checking for Cavities.json | 20 ++- .../Omicrons/Dailies/4634_The Lost World.json | 4 +- ...1_The Café at the End of the Universe.json | 28 ++-- .../4602_Longing So for All the Fish.json | 4 +- .../Story/4603_And Another Question.json | 4 +- ...estaurateur's Guide to the Dragonstar.json | 4 +- .../Omicrons/Story/4605_Mostly Heartless.json | 4 +- .../Ameliance/S8_Ameliance.json | 6 +- .../Custom Deliveries/Anden/S9_Anden.json | 6 +- .../Margrat/S10_Margrat.json | 6 +- .../MIN, BTN/4154_Cooking Up a Culture.json | 18 ++- .../4155_The Culture of Ceruleum.json | 18 ++- .../MIN, BTN/4156_The Culture of Carrots.json | 18 ++- .../MIN, BTN/4157_Hinageshi in Hingashi.json | 16 +- .../4158_The Culture of the Past.json | 18 ++- .../MIN, BTN/4159_The Culture of Love.json | 16 +- .../MIN, BTN/4990_Test of Talents.json | 16 +- .../MIN, BTN/4991_A Discerning Eye.json | 16 +- .../MIN, BTN/4992_As Nature Intends.json | 16 +- .../MIN, BTN/4993_The Cycle of Life.json | 16 +- .../MIN, BTN/4994_Digging Up the Truth.json | 16 +- .../MIN, BTN/4995_Wellspring of Tears.json | 18 ++- .../Leves/BTN/L1770_All Stars.json | 4 +- .../L1779_New Start for the Cinderfield.json | 4 +- .../Leves/MIN/L1785_Old and Bubbly.json | 4 +- .../Leves/MIN/L1794_Vestiges of War.json | 4 +- QuestPaths/quest-v1.json | 115 +++++++++------ .../Converter/InteractionTypeConverter.cs | 1 + .../Questing/EInteractionType.cs | 4 +- Questionable.Model/Questing/QuestStep.cs | 2 +- .../Controller/ContextMenuController.cs | 4 +- .../GameUi/InteractionUiController.cs | 4 +- .../Controller/GatheringController.cs | 5 +- Questionable/Controller/MiniTaskController.cs | 2 +- .../Steps/Gathering/MoveToLandingLocation.cs | 4 +- .../Controller/Steps/Interactions/Interact.cs | 2 +- .../Controller/Steps/Interactions/UseItem.cs | 2 +- .../{GatheringRequiredItems.cs => Gather.cs} | 27 ++-- .../Controller/Steps/Shared/MoveTo.cs | 137 ++++++++++-------- Questionable/QuestionablePlugin.cs | 2 +- 92 files changed, 780 insertions(+), 575 deletions(-) rename Questionable/Controller/Steps/Shared/{GatheringRequiredItems.cs => Gather.cs} (87%) diff --git a/QuestPathGenerator/RoslynElements/QuestStepExtensions.cs b/QuestPathGenerator/RoslynElements/QuestStepExtensions.cs index e5b8eabb..6aca708a 100644 --- a/QuestPathGenerator/RoslynElements/QuestStepExtensions.cs +++ b/QuestPathGenerator/RoslynElements/QuestStepExtensions.cs @@ -118,8 +118,8 @@ internal static class QuestStepExtensions AssignmentList(nameof(QuestStep.RequiredQuestVariables), step.RequiredQuestVariables) .AsSyntaxNodeOrToken(), - AssignmentList(nameof(QuestStep.RequiredGatheredItems), - step.RequiredGatheredItems), + AssignmentList(nameof(QuestStep.ItemsToGather), + step.ItemsToGather), AssignmentList(nameof(QuestStep.CompletionQuestVariablesFlags), step.CompletionQuestVariablesFlags) .AsSyntaxNodeOrToken(), diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/MIN/599_My First Pickaxe.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/MIN/599_My First Pickaxe.json index 07dd8fbf..feff763b 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/MIN/599_My First Pickaxe.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/MIN/599_My First Pickaxe.json @@ -33,6 +33,16 @@ { "Sequence": 255, "Steps": [ + { + "TerritoryId": 131, + "InteractionType": "Gather", + "ItemsToGather": [ + { + "ItemId": 5106, + "ItemCount": 10 + } + ] + }, { "DataId": 1002298, "Position": { @@ -54,13 +64,7 @@ 131 ] } - }, - "RequiredGatheredItems": [ - { - "ItemId": 5106, - "ItemCount": 10 - } - ] + } } ] } diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/MIN/600_Know Thy Land.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/MIN/600_Know Thy Land.json index 50ff25c8..4d15185f 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/MIN/600_Know Thy Land.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/MIN/600_Know Thy Land.json @@ -33,6 +33,16 @@ { "Sequence": 255, "Steps": [ + { + "TerritoryId": 131, + "InteractionType": "Gather", + "ItemsToGather": [ + { + "ItemId": 5432, + "ItemCount": 10 + } + ] + }, { "DataId": 1002298, "Position": { @@ -54,13 +64,7 @@ 131 ] } - }, - "RequiredGatheredItems": [ - { - "ItemId": 5432, - "ItemCount": 10 - } - ] + } } ] } 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 c2154923..1422190e 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": "Gather", + "ItemsToGather": [] + }, { "Position": { "X": -71.31451, @@ -13,7 +18,6 @@ }, "TerritoryId": 478, "InteractionType": "WalkTo", - "RequiredGatheredItems": [], "AetheryteShortcut": "Idyllshire" }, { diff --git a/QuestPaths/4.x - Stormblood/Class Quests/BTN/2622_Walking for Walker's.json b/QuestPaths/4.x - Stormblood/Class Quests/BTN/2622_Walking for Walker's.json index c59687c6..185e3825 100644 --- a/QuestPaths/4.x - Stormblood/Class Quests/BTN/2622_Walking for Walker's.json +++ b/QuestPaths/4.x - Stormblood/Class Quests/BTN/2622_Walking for Walker's.json @@ -188,6 +188,16 @@ { "Sequence": 255, "Steps": [ + { + "TerritoryId": 478, + "InteractionType": "Gather", + "ItemsToGather": [ + { + "ItemId": 17946, + "ItemCount": 20 + } + ] + }, { "DataId": 1021349, "Position": { @@ -202,12 +212,6 @@ "[Idyllshire] Aetheryte Plaza", "[Idyllshire] West Idyllshire" ], - "RequiredGatheredItems": [ - { - "ItemId": 17946, - "ItemCount": 20 - } - ], "NextQuestId": 2623 } ] diff --git a/QuestPaths/4.x - Stormblood/Class Quests/BTN/2623_The White Death.json b/QuestPaths/4.x - Stormblood/Class Quests/BTN/2623_The White Death.json index fcc2e5f8..b2ef3384 100644 --- a/QuestPaths/4.x - Stormblood/Class Quests/BTN/2623_The White Death.json +++ b/QuestPaths/4.x - Stormblood/Class Quests/BTN/2623_The White Death.json @@ -122,6 +122,16 @@ { "Sequence": 6, "Steps": [ + { + "TerritoryId": 478, + "InteractionType": "Gather", + "ItemsToGather": [ + { + "ItemId": 17947, + "ItemCount": 20 + } + ] + }, { "DataId": 1017106, "Position": { @@ -131,13 +141,7 @@ }, "TerritoryId": 478, "InteractionType": "Interact", - "AetheryteShortcut": "Idyllshire", - "RequiredGatheredItems": [ - { - "ItemId": 17947, - "ItemCount": 20 - } - ] + "AetheryteShortcut": "Idyllshire" } ] }, diff --git a/QuestPaths/4.x - Stormblood/Class Quests/BTN/2624_Edgyth's Winning Streak.json b/QuestPaths/4.x - Stormblood/Class Quests/BTN/2624_Edgyth's Winning Streak.json index b682928e..5fc30c90 100644 --- a/QuestPaths/4.x - Stormblood/Class Quests/BTN/2624_Edgyth's Winning Streak.json +++ b/QuestPaths/4.x - Stormblood/Class Quests/BTN/2624_Edgyth's Winning Streak.json @@ -156,6 +156,16 @@ { "Sequence": 255, "Steps": [ + { + "TerritoryId": 478, + "InteractionType": "Gather", + "ItemsToGather": [ + { + "ItemId": 17948, + "ItemCount": 5 + } + ] + }, { "DataId": 1021349, "Position": { @@ -170,13 +180,7 @@ "[Idyllshire] Aetheryte Plaza", "[Idyllshire] West Idyllshire" ], - "Comment": "Eorzean Time: 4:00-5:59 AM/PM", - "RequiredGatheredItems": [ - { - "ItemId": 17948, - "ItemCount": 5 - } - ] + "Comment": "Eorzean Time: 4:00-5:59 AM/PM" } ] } 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 3912cfc6..99762b5b 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": "Gather", + "ItemsToGather": [] + }, { "DataId": 1018393, "Position": { @@ -14,7 +19,6 @@ }, "TerritoryId": 478, "InteractionType": "Interact", - "RequiredGatheredItems": [], "AetheryteShortcut": "Idyllshire", "DialogueChoices": [ { 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 3fef30be..9b1f82dc 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": "Gather", + "ItemsToGather": [] + }, { "DataId": 1025878, "Position": { @@ -14,7 +19,6 @@ }, "TerritoryId": 613, "InteractionType": "Interact", - "RequiredGatheredItems": [], "AetheryteShortcut": "Ruby Sea - Tamamizu", "DialogueChoices": [ { 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 1908b500..ba9858d8 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": "Gather", + "ItemsToGather": [] + }, { "DataId": 1020337, "Position": { @@ -14,7 +19,6 @@ }, "TerritoryId": 635, "InteractionType": "Interact", - "RequiredGatheredItems": [], "AetheryteShortcut": "Rhalgr's Reach", "AethernetShortcut": [ "[Rhalgr's Reach] Aetheryte Plaza", 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 d9625d0d..3a11c275 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 @@ -21,16 +21,9 @@ "Sequence": 255, "Steps": [ { - "Position": { - "X": 788.1569, - "Y": -45.82557, - "Z": -212.9306 - }, "TerritoryId": 817, - "InteractionType": "WalkTo", - "AetheryteShortcut": "Rak'tika - Fanow", - "Fly": true, - "RequiredGatheredItems": [ + "InteractionType": "Gather", + "ItemsToGather": [ { "QuestAcceptedAsClass": "Miner", "ItemId": 29517, @@ -43,6 +36,17 @@ } ] }, + { + "Position": { + "X": 788.1569, + "Y": -45.82557, + "Z": -212.9306 + }, + "TerritoryId": 817, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Rak'tika - Fanow", + "Fly": true + }, { "DataId": 1032643, "Position": { 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 45b2176d..194836db 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 @@ -21,15 +21,9 @@ "Sequence": 255, "Steps": [ { - "Position": { - "X": 788.1569, - "Y": -45.82557, - "Z": -212.9306 - }, "TerritoryId": 817, - "InteractionType": "WalkTo", - "Fly": true, - "RequiredGatheredItems": [ + "InteractionType": "Gather", + "ItemsToGather": [ { "QuestAcceptedAsClass": "Miner", "ItemId": 29518, @@ -42,6 +36,16 @@ } ] }, + { + "Position": { + "X": 788.1569, + "Y": -45.82557, + "Z": -212.9306 + }, + "TerritoryId": 817, + "InteractionType": "WalkTo", + "Fly": true + }, { "DataId": 1032643, "Position": { 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 5f67cc1d..5fa818a8 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 @@ -21,16 +21,9 @@ "Sequence": 255, "Steps": [ { - "Position": { - "X": 788.1569, - "Y": -45.82557, - "Z": -212.9306 - }, "TerritoryId": 817, - "InteractionType": "WalkTo", - "AetheryteShortcut": "Rak'tika - Fanow", - "Fly": true, - "RequiredGatheredItems": [ + "InteractionType": "Gather", + "ItemsToGather": [ { "QuestAcceptedAsClass": "Miner", "ItemId": 29519, @@ -43,6 +36,17 @@ } ] }, + { + "Position": { + "X": 788.1569, + "Y": -45.82557, + "Z": -212.9306 + }, + "TerritoryId": 817, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Rak'tika - Fanow", + "Fly": true + }, { "DataId": 1032643, "Position": { 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 158b9100..e0e1def3 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 @@ -21,16 +21,9 @@ "Sequence": 255, "Steps": [ { - "Position": { - "X": 788.1569, - "Y": -45.82557, - "Z": -212.9306 - }, "TerritoryId": 817, - "InteractionType": "WalkTo", - "AetheryteShortcut": "Rak'tika - Fanow", - "Fly": true, - "RequiredGatheredItems": [ + "InteractionType": "Gather", + "ItemsToGather": [ { "QuestAcceptedAsClass": "Miner", "ItemId": 29520, @@ -43,6 +36,17 @@ } ] }, + { + "Position": { + "X": 788.1569, + "Y": -45.82557, + "Z": -212.9306 + }, + "TerritoryId": 817, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Rak'tika - Fanow", + "Fly": true + }, { "DataId": 1032643, "Position": { diff --git a/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Dailies/3810_Power to the Vegetables.json b/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Dailies/3810_Power to the Vegetables.json index d88da9c8..ed0114e4 100644 --- a/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Dailies/3810_Power to the Vegetables.json +++ b/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Dailies/3810_Power to the Vegetables.json @@ -88,9 +88,7 @@ "TerritoryId": 817, "InteractionType": "WalkTo", "AetheryteShortcut": "Rak'tika - Fanow", - "Fly": true, - "RequiredGatheredItems": [ - ] + "Fly": true }, { "DataId": 1032643, 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 e81c302d..1e420bdf 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 @@ -21,16 +21,9 @@ "Sequence": 255, "Steps": [ { - "Position": { - "X": 788.1569, - "Y": -45.82557, - "Z": -212.9306 - }, "TerritoryId": 817, - "InteractionType": "WalkTo", - "AetheryteShortcut": "Rak'tika - Fanow", - "Fly": true, - "RequiredGatheredItems": [ + "InteractionType": "Gather", + "ItemsToGather": [ { "QuestAcceptedAsClass": "Miner", "ItemId": 29521, @@ -43,6 +36,17 @@ } ] }, + { + "Position": { + "X": 788.1569, + "Y": -45.82557, + "Z": -212.9306 + }, + "TerritoryId": 817, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Rak'tika - Fanow", + "Fly": true + }, { "DataId": 1032643, "Position": { 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 86de8b47..6b0ac904 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 @@ -21,16 +21,9 @@ "Sequence": 255, "Steps": [ { - "Position": { - "X": 788.1569, - "Y": -45.82557, - "Z": -212.9306 - }, "TerritoryId": 817, - "InteractionType": "WalkTo", - "AetheryteShortcut": "Rak'tika - Fanow", - "Fly": true, - "RequiredGatheredItems": [ + "InteractionType": "Gather", + "ItemsToGather": [ { "QuestAcceptedAsClass": "Miner", "ItemId": 29522, @@ -43,6 +36,17 @@ } ] }, + { + "Position": { + "X": 788.1569, + "Y": -45.82557, + "Z": -212.9306 + }, + "TerritoryId": 817, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Rak'tika - Fanow", + "Fly": true + }, { "DataId": 1032643, "Position": { 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 23a2829e..6fa2638b 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 @@ -21,16 +21,9 @@ "Sequence": 255, "Steps": [ { - "Position": { - "X": 788.1569, - "Y": -45.82557, - "Z": -212.9306 - }, "TerritoryId": 817, - "InteractionType": "WalkTo", - "AetheryteShortcut": "Rak'tika - Fanow", - "Fly": true, - "RequiredGatheredItems": [ + "InteractionType": "Gather", + "ItemsToGather": [ { "QuestAcceptedAsClass": "Miner", "ItemId": 29523, @@ -43,6 +36,17 @@ } ] }, + { + "Position": { + "X": 788.1569, + "Y": -45.82557, + "Z": -212.9306 + }, + "TerritoryId": 817, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Rak'tika - Fanow", + "Fly": true + }, { "DataId": 1032643, "Position": { 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 3fda4f2d..1a63219d 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 @@ -21,16 +21,9 @@ "Sequence": 255, "Steps": [ { - "Position": { - "X": 788.1569, - "Y": -45.82557, - "Z": -212.9306 - }, "TerritoryId": 817, - "InteractionType": "WalkTo", - "AetheryteShortcut": "Rak'tika - Fanow", - "Fly": true, - "RequiredGatheredItems": [ + "InteractionType": "Gather", + "ItemsToGather": [ { "QuestAcceptedAsClass": "Miner", "ItemId": 29524, @@ -43,6 +36,17 @@ } ] }, + { + "Position": { + "X": 788.1569, + "Y": -45.82557, + "Z": -212.9306 + }, + "TerritoryId": 817, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Rak'tika - Fanow", + "Fly": true + }, { "DataId": 1032643, "Position": { 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 76b7a64a..bdbb1696 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 @@ -30,9 +30,7 @@ "TerritoryId": 817, "InteractionType": "WalkTo", "AetheryteShortcut": "Rak'tika - Fanow", - "Fly": true, - "RequiredGatheredItems": [ - ] + "Fly": true }, { "DataId": 1032643, 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 76b7a64a..bdbb1696 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 @@ -30,9 +30,7 @@ "TerritoryId": 817, "InteractionType": "WalkTo", "AetheryteShortcut": "Rak'tika - Fanow", - "Fly": true, - "RequiredGatheredItems": [ - ] + "Fly": true }, { "DataId": 1032643, 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 76b7a64a..bdbb1696 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 @@ -30,9 +30,7 @@ "TerritoryId": 817, "InteractionType": "WalkTo", "AetheryteShortcut": "Rak'tika - Fanow", - "Fly": true, - "RequiredGatheredItems": [ - ] + "Fly": true }, { "DataId": 1032643, 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 9282be65..204ea239 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 @@ -21,16 +21,9 @@ "Sequence": 255, "Steps": [ { - "Position": { - "X": 788.1569, - "Y": -45.82557, - "Z": -212.9306 - }, "TerritoryId": 817, - "InteractionType": "WalkTo", - "AetheryteShortcut": "Rak'tika - Fanow", - "Fly": true, - "RequiredGatheredItems": [ + "InteractionType": "Gather", + "ItemsToGather": [ { "QuestAcceptedAsClass": "Miner", "ItemId": 29528, @@ -43,6 +36,17 @@ } ] }, + { + "Position": { + "X": 788.1569, + "Y": -45.82557, + "Z": -212.9306 + }, + "TerritoryId": 817, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Rak'tika - Fanow", + "Fly": true + }, { "DataId": 1032643, "Position": { 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 3d5f7dcb..ffa6ff83 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 @@ -21,16 +21,9 @@ "Sequence": 255, "Steps": [ { - "Position": { - "X": 788.1569, - "Y": -45.82557, - "Z": -212.9306 - }, "TerritoryId": 817, - "InteractionType": "WalkTo", - "AetheryteShortcut": "Rak'tika - Fanow", - "Fly": true, - "RequiredGatheredItems": [ + "InteractionType": "Gather", + "ItemsToGather": [ { "QuestAcceptedAsClass": "Miner", "ItemId": 29529, @@ -43,6 +36,17 @@ } ] }, + { + "Position": { + "X": 788.1569, + "Y": -45.82557, + "Z": -212.9306 + }, + "TerritoryId": 817, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Rak'tika - Fanow", + "Fly": true + }, { "DataId": 1032643, "Position": { 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 49588dea..dec082cd 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 @@ -21,16 +21,9 @@ "Sequence": 255, "Steps": [ { - "Position": { - "X": 788.1569, - "Y": -45.82557, - "Z": -212.9306 - }, "TerritoryId": 817, - "InteractionType": "WalkTo", - "AetheryteShortcut": "Rak'tika - Fanow", - "Fly": true, - "RequiredGatheredItems": [ + "InteractionType": "Gather", + "ItemsToGather": [ { "QuestAcceptedAsClass": "Miner", "ItemId": 29530, @@ -43,6 +36,17 @@ } ] }, + { + "Position": { + "X": 788.1569, + "Y": -45.82557, + "Z": -212.9306 + }, + "TerritoryId": 817, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Rak'tika - Fanow", + "Fly": true + }, { "DataId": 1032643, "Position": { 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 76b7a64a..bdbb1696 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 @@ -30,9 +30,7 @@ "TerritoryId": 817, "InteractionType": "WalkTo", "AetheryteShortcut": "Rak'tika - Fanow", - "Fly": true, - "RequiredGatheredItems": [ - ] + "Fly": true }, { "DataId": 1032643, 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 76b7a64a..bdbb1696 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 @@ -30,9 +30,7 @@ "TerritoryId": 817, "InteractionType": "WalkTo", "AetheryteShortcut": "Rak'tika - Fanow", - "Fly": true, - "RequiredGatheredItems": [ - ] + "Fly": true }, { "DataId": 1032643, 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 0ae024dc..6b71e791 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 @@ -21,16 +21,9 @@ "Sequence": 255, "Steps": [ { - "Position": { - "X": 788.1569, - "Y": -45.82557, - "Z": -212.9306 - }, "TerritoryId": 817, - "InteractionType": "WalkTo", - "AetheryteShortcut": "Rak'tika - Fanow", - "Fly": true, - "RequiredGatheredItems": [ + "InteractionType": "Gather", + "ItemsToGather": [ { "QuestAcceptedAsClass": "Miner", "ItemId": 29533, @@ -43,6 +36,17 @@ } ] }, + { + "Position": { + "X": 788.1569, + "Y": -45.82557, + "Z": -212.9306 + }, + "TerritoryId": 817, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Rak'tika - Fanow", + "Fly": true + }, { "DataId": 1032643, "Position": { 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 ce85c188..9442335f 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 @@ -21,16 +21,9 @@ "Sequence": 255, "Steps": [ { - "Position": { - "X": 788.1569, - "Y": -45.82557, - "Z": -212.9306 - }, "TerritoryId": 817, - "InteractionType": "WalkTo", - "AetheryteShortcut": "Rak'tika - Fanow", - "Fly": true, - "RequiredGatheredItems": [ + "InteractionType": "Gather", + "ItemsToGather": [ { "QuestAcceptedAsClass": "Miner", "ItemId": 29534, @@ -43,6 +36,17 @@ } ] }, + { + "Position": { + "X": 788.1569, + "Y": -45.82557, + "Z": -212.9306 + }, + "TerritoryId": 817, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Rak'tika - Fanow", + "Fly": true + }, { "DataId": 1032643, "Position": { 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 deded4f5..8f3976ed 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 @@ -21,16 +21,9 @@ "Sequence": 255, "Steps": [ { - "Position": { - "X": 788.1569, - "Y": -45.82557, - "Z": -212.9306 - }, "TerritoryId": 817, - "InteractionType": "WalkTo", - "AetheryteShortcut": "Rak'tika - Fanow", - "Fly": true, - "RequiredGatheredItems": [ + "InteractionType": "Gather", + "ItemsToGather": [ { "QuestAcceptedAsClass": "Miner", "ItemId": 29535, @@ -43,6 +36,17 @@ } ] }, + { + "Position": { + "X": 788.1569, + "Y": -45.82557, + "Z": -212.9306 + }, + "TerritoryId": 817, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Rak'tika - Fanow", + "Fly": true + }, { "DataId": 1032643, "Position": { 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 17c44e90..f2761f62 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 @@ -21,16 +21,9 @@ "Sequence": 255, "Steps": [ { - "Position": { - "X": 788.1569, - "Y": -45.82557, - "Z": -212.9306 - }, "TerritoryId": 817, - "InteractionType": "WalkTo", - "AetheryteShortcut": "Rak'tika - Fanow", - "Fly": true, - "RequiredGatheredItems": [ + "InteractionType": "Gather", + "ItemsToGather": [ { "QuestAcceptedAsClass": "Miner", "ItemId": 29536, @@ -43,6 +36,17 @@ } ] }, + { + "Position": { + "X": 788.1569, + "Y": -45.82557, + "Z": -212.9306 + }, + "TerritoryId": 817, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Rak'tika - Fanow", + "Fly": true + }, { "DataId": 1032643, "Position": { 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 76b7a64a..bdbb1696 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 @@ -30,9 +30,7 @@ "TerritoryId": 817, "InteractionType": "WalkTo", "AetheryteShortcut": "Rak'tika - Fanow", - "Fly": true, - "RequiredGatheredItems": [ - ] + "Fly": true }, { "DataId": 1032643, diff --git a/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Dailies/3833_Qhoterl's Chronicles.json b/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Dailies/3833_Qhoterl's Chronicles.json index 76b7a64a..bdbb1696 100644 --- a/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Dailies/3833_Qhoterl's Chronicles.json +++ b/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Dailies/3833_Qhoterl's Chronicles.json @@ -30,9 +30,7 @@ "TerritoryId": 817, "InteractionType": "WalkTo", "AetheryteShortcut": "Rak'tika - Fanow", - "Fly": true, - "RequiredGatheredItems": [ - ] + "Fly": true }, { "DataId": 1032643, diff --git a/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Story/3794_The Stewards of Note.json b/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Story/3794_The Stewards of Note.json index e13c4ad3..9a9e070f 100644 --- a/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Story/3794_The Stewards of Note.json +++ b/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Story/3794_The Stewards of Note.json @@ -91,6 +91,16 @@ { "Sequence": 255, "Steps": [ + { + "TerritoryId": 817, + "InteractionType": "Gather", + "ItemsToGather": [ + { + "ItemId": 29512, + "ItemCount": 1 + } + ] + }, { "DataId": 1032724, "Position": { @@ -100,13 +110,7 @@ }, "TerritoryId": 817, "InteractionType": "CompleteQuest", - "Fly": true, - "RequiredGatheredItems": [ - { - "ItemId": 29512, - "ItemCount": 1 - } - ] + "Fly": true } ] } 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 1b2c8f55..84db90fd 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 @@ -38,17 +38,9 @@ "Sequence": 2, "Steps": [ { - "DataId": 1032734, - "Position": { - "X": 802.6703, - "Y": -45.915627, - "Z": -214.70972 - }, "TerritoryId": 817, - "InteractionType": "Interact", - "AetheryteShortcut": "Rak'tika - Fanow", - "Fly": true, - "RequiredGatheredItems": [ + "InteractionType": "Gather", + "ItemsToGather": [ { "QuestAcceptedAsClass": "Miner", "ItemId": 29513, @@ -60,6 +52,18 @@ "ItemCount": 1 } ] + }, + { + "DataId": 1032734, + "Position": { + "X": 802.6703, + "Y": -45.915627, + "Z": -214.70972 + }, + "TerritoryId": 817, + "InteractionType": "Interact", + "AetheryteShortcut": "Rak'tika - Fanow", + "Fly": true } ] }, 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 325c08cd..00702053 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": "Gather", + "ItemsToGather": [] + }, { "DataId": 1031801, "Position": { @@ -14,7 +19,6 @@ }, "TerritoryId": 820, "InteractionType": "Interact", - "RequiredGatheredItems": [], "AetheryteShortcut": "Eulmore", "DialogueChoices": [ { 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 e53d9af1..e70487a8 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 @@ -22,8 +22,8 @@ "Steps": [ { "TerritoryId": 960, - "InteractionType": "None", - "RequiredGatheredItems": [ + "InteractionType": "Gather", + "ItemsToGather": [ { "QuestAcceptedAsClass": "Miner", "ItemId": 38281, 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 8f588d76..c50c4a58 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 @@ -21,16 +21,9 @@ "Sequence": 255, "Steps": [ { - "DataId": 2013072, - "Position": { - "X": 456.65674, - "Y": 438.04077, - "Z": 310.2312 - }, "TerritoryId": 960, - "InteractionType": "Interact", - "TargetTerritoryId": 960, - "RequiredGatheredItems": [ + "InteractionType": "Gather", + "ItemsToGather": [ { "QuestAcceptedAsClass": "Miner", "ItemId": 38282, @@ -41,8 +34,19 @@ "ItemId": 38306, "ItemCount": 3 } - ], - "AetheryteShortcut": "Ultima Thule - Base Omicron" + ] + }, + { + "DataId": 2013072, + "Position": { + "X": 456.65674, + "Y": 438.04077, + "Z": 310.2312 + }, + "TerritoryId": 960, + "InteractionType": "Interact", + "AetheryteShortcut": "Ultima Thule - Base Omicron", + "TargetTerritoryId": 960 }, { "DataId": 1043417, 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 47d61f14..9cdb099a 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 @@ -33,8 +33,8 @@ }, { "TerritoryId": 1073, - "InteractionType": "None", - "RequiredGatheredItems": [ + "InteractionType": "Gather", + "ItemsToGather": [ { "QuestAcceptedAsClass": "Miner", "ItemId": 38284, 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 298df76d..0635180f 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 @@ -21,17 +21,9 @@ "Sequence": 255, "Steps": [ { - "DataId": 2013072, - "Position": { - "X": 456.65674, - "Y": 438.04077, - "Z": 310.2312 - }, "TerritoryId": 960, - "InteractionType": "Interact", - "TargetTerritoryId": 960, - "AetheryteShortcut": "Ultima Thule - Base Omicron", - "RequiredGatheredItems": [ + "InteractionType": "Gather", + "ItemsToGather": [ { "QuestAcceptedAsClass": "Miner", "ItemId": 38283, @@ -44,6 +36,18 @@ } ] }, + { + "DataId": 2013072, + "Position": { + "X": 456.65674, + "Y": 438.04077, + "Z": 310.2312 + }, + "TerritoryId": 960, + "InteractionType": "Interact", + "TargetTerritoryId": 960, + "AetheryteShortcut": "Ultima Thule - Base Omicron" + }, { "DataId": 1043417, "Position": { 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 70ae5932..71875e68 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 @@ -33,8 +33,8 @@ }, { "TerritoryId": 1073, - "InteractionType": "None", - "RequiredGatheredItems": [ + "InteractionType": "Gather", + "ItemsToGather": [ { "QuestAcceptedAsClass": "Miner", "ItemId": 38285, 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 88f3b658..dece67eb 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 @@ -22,8 +22,8 @@ "Steps": [ { "TerritoryId": 960, - "InteractionType": "None", - "RequiredGatheredItems": [ + "InteractionType": "Gather", + "ItemsToGather": [ { "QuestAcceptedAsClass": "Miner", "ItemId": 38286, 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 30a6cf2f..513129c6 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 @@ -34,8 +34,8 @@ }, { "TerritoryId": 1073, - "InteractionType": "None", - "RequiredGatheredItems": [ + "InteractionType": "Gather", + "ItemsToGather": [ { "QuestAcceptedAsClass": "Miner", "ItemId": 38287, 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 e06131ed..94328961 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 @@ -47,15 +47,9 @@ "Sequence": 2, "Steps": [ { - "DataId": 1044059, - "Position": { - "X": -15.304871, - "Y": 494.9991, - "Z": -68.16211 - }, "TerritoryId": 1073, - "InteractionType": "Interact", - "RequiredGatheredItems": [ + "InteractionType": "Gather", + "ItemsToGather": [ { "QuestAcceptedAsClass": "Miner", "ItemId": 38289, @@ -67,6 +61,16 @@ "ItemCount": 3 } ] + }, + { + "DataId": 1044059, + "Position": { + "X": -15.304871, + "Y": 494.9991, + "Z": -68.16211 + }, + "TerritoryId": 1073, + "InteractionType": "Interact" } ] }, 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 afa62fdd..9662a58c 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 @@ -21,17 +21,9 @@ "Sequence": 1, "Steps": [ { - "DataId": 1044064, - "Position": { - "X": 86.503296, - "Y": 269.08234, - "Z": -515.0683 - }, "TerritoryId": 960, - "InteractionType": "Interact", - "AetheryteShortcut": "Ultima Thule - Abode of the Ea", - "Fly": true, - "RequiredGatheredItems": [ + "InteractionType": "Gather", + "ItemsToGather": [ { "QuestAcceptedAsClass": "Miner", "ItemId": 38290, @@ -43,6 +35,18 @@ "ItemCount": 3 } ] + }, + { + "DataId": 1044064, + "Position": { + "X": 86.503296, + "Y": 269.08234, + "Z": -515.0683 + }, + "TerritoryId": 960, + "InteractionType": "Interact", + "AetheryteShortcut": "Ultima Thule - Abode of the Ea", + "Fly": true } ] }, 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 ee549563..6d818a49 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 @@ -34,8 +34,8 @@ }, { "TerritoryId": 1073, - "InteractionType": "None", - "RequiredGatheredItems": [ + "InteractionType": "Gather", + "ItemsToGather": [ { "QuestAcceptedAsClass": "Miner", "ItemId": 38291, 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 6e64ff1c..b1fc3e92 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 @@ -33,8 +33,8 @@ }, { "TerritoryId": 1073, - "InteractionType": "None", - "RequiredGatheredItems": [ + "InteractionType": "Gather", + "ItemsToGather": [ { "QuestAcceptedAsClass": "Miner", "ItemId": 38292, 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 940950de..1faf2416 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 @@ -33,8 +33,8 @@ }, { "TerritoryId": 1073, - "InteractionType": "None", - "RequiredGatheredItems": [ + "InteractionType": "Gather", + "ItemsToGather": [ { "QuestAcceptedAsClass": "Miner", "ItemId": 38293, 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 1c319fca..f8be57ec 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 @@ -21,17 +21,9 @@ "Sequence": 1, "Steps": [ { - "DataId": 1044071, - "Position": { - "X": 46.066895, - "Y": 268.99976, - "Z": -584.77155 - }, "TerritoryId": 960, - "InteractionType": "Interact", - "AetheryteShortcut": "Ultima Thule - Abode of the Ea", - "Fly": true, - "RequiredGatheredItems": [ + "InteractionType": "Gather", + "ItemsToGather": [ { "QuestAcceptedAsClass": "Miner", "ItemId": 38294, @@ -43,6 +35,18 @@ "ItemCount": 3 } ] + }, + { + "DataId": 1044071, + "Position": { + "X": 46.066895, + "Y": 268.99976, + "Z": -584.77155 + }, + "TerritoryId": 960, + "InteractionType": "Interact", + "AetheryteShortcut": "Ultima Thule - Abode of the Ea", + "Fly": true } ] }, 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 f1d2760b..9ba18a23 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 @@ -21,16 +21,9 @@ "Sequence": 1, "Steps": [ { - "DataId": 1044074, - "Position": { - "X": -585.90063, - "Y": 75.22713, - "Z": 256.67188 - }, "TerritoryId": 960, - "InteractionType": "Interact", - "AetheryteShortcut": "Ultima Thule - Reah Tahra", - "RequiredGatheredItems": [ + "InteractionType": "Gather", + "ItemsToGather": [ { "QuestAcceptedAsClass": "Miner", "ItemId": 38295, @@ -42,6 +35,17 @@ "ItemCount": 3 } ] + }, + { + "DataId": 1044074, + "Position": { + "X": -585.90063, + "Y": 75.22713, + "Z": 256.67188 + }, + "TerritoryId": 960, + "InteractionType": "Interact", + "AetheryteShortcut": "Ultima Thule - Reah Tahra" } ] }, 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 91ba26b4..6e075fa8 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 @@ -47,15 +47,9 @@ "Sequence": 2, "Steps": [ { - "DataId": 1044075, - "Position": { - "X": -64.4389, - "Y": 493.32922, - "Z": -4.409851 - }, "TerritoryId": 1073, - "InteractionType": "Interact", - "RequiredGatheredItems": [ + "InteractionType": "Gather", + "ItemsToGather": [ { "QuestAcceptedAsClass": "Miner", "ItemId": 38296, @@ -67,6 +61,16 @@ "ItemCount": 3 } ] + }, + { + "DataId": 1044075, + "Position": { + "X": -64.4389, + "Y": 493.32922, + "Z": -4.409851 + }, + "TerritoryId": 1073, + "InteractionType": "Interact" } ] }, 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 f68b76f5..f3eca745 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 @@ -21,17 +21,9 @@ "Sequence": 1, "Steps": [ { - "DataId": 1044076, - "Position": { - "X": -499.96188, - "Y": 77.00467, - "Z": 241.07727 - }, - "StopDistance": 9, "TerritoryId": 960, - "InteractionType": "Interact", - "AetheryteShortcut": "Ultima Thule - Reah Tahra", - "RequiredGatheredItems": [ + "InteractionType": "Gather", + "ItemsToGather": [ { "QuestAcceptedAsClass": "Miner", "ItemId": 38297, @@ -43,6 +35,18 @@ "ItemCount": 3 } ] + }, + { + "DataId": 1044076, + "Position": { + "X": -499.96188, + "Y": 77.00467, + "Z": 241.07727 + }, + "StopDistance": 9, + "TerritoryId": 960, + "InteractionType": "Interact", + "AetheryteShortcut": "Ultima Thule - Reah Tahra" } ] }, 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 fdec020c..bf720251 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 @@ -21,16 +21,10 @@ "Sequence": 1, "Steps": [ { - "DataId": 1044081, - "Position": { - "X": -503.99023, - "Y": 74.16917, - "Z": 261.82947 - }, "TerritoryId": 960, - "InteractionType": "Interact", + "InteractionType": "Gather", "AetheryteShortcut": "Ultima Thule - Reah Tahra", - "RequiredGatheredItems": [ + "ItemsToGather": [ { "QuestAcceptedAsClass": "Miner", "ItemId": 38299, @@ -42,6 +36,16 @@ "ItemCount": 3 } ] + }, + { + "DataId": 1044081, + "Position": { + "X": -503.99023, + "Y": 74.16917, + "Z": 261.82947 + }, + "TerritoryId": 960, + "InteractionType": "Interact" } ] }, 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 7825c3cb..89f6b44c 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 @@ -33,8 +33,8 @@ }, { "TerritoryId": 1073, - "InteractionType": "None", - "RequiredGatheredItems": [ + "InteractionType": "Gather", + "ItemsToGather": [ { "QuestAcceptedAsClass": "Miner", "ItemId": 38298, 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 34b28d3d..d1eb587c 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 @@ -113,6 +113,22 @@ { "Sequence": 4, "Steps": [ + { + "TerritoryId": 960, + "InteractionType": "Gather", + "ItemsToGather": [ + { + "QuestAcceptedAsClass": "Miner", + "ItemId": 38276, + "ItemCount": 3 + }, + { + "QuestAcceptedAsClass": "Botanist", + "ItemId": 38300, + "ItemCount": 3 + } + ] + }, { "DataId": 2013072, "Position": { @@ -129,18 +145,6 @@ "Prompt": "TEXT_BANOMI001_04601_Q5_000_000", "Yes": true } - ], - "RequiredGatheredItems": [ - { - "QuestAcceptedAsClass": "Miner", - "ItemId": 38276, - "ItemCount": 3 - }, - { - "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 af25f7e6..ffafc60f 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 @@ -171,8 +171,8 @@ "Steps": [ { "TerritoryId": 960, - "InteractionType": "None", - "RequiredGatheredItems": [ + "InteractionType": "Gather", + "ItemsToGather": [ { "QuestAcceptedAsClass": "Miner", "ItemId": 38277, 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 7d907484..9170a9ed 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 @@ -139,8 +139,8 @@ "Steps": [ { "TerritoryId": 960, - "InteractionType": "None", - "RequiredGatheredItems": [ + "InteractionType": "Gather", + "ItemsToGather": [ { "QuestAcceptedAsClass": "Miner", "ItemId": 38278, 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 79596457..0cdbce56 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 @@ -91,8 +91,8 @@ "Steps": [ { "TerritoryId": 398, - "InteractionType": "None", - "RequiredGatheredItems": [ + "InteractionType": "Gather", + "ItemsToGather": [ { "QuestAcceptedAsClass": "Miner", "ItemId": 38279, 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 0fc6c53a..32571b61 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 @@ -156,8 +156,8 @@ "Steps": [ { "TerritoryId": 1073, - "InteractionType": "None", - "RequiredGatheredItems": [ + "InteractionType": "Gather", + "ItemsToGather": [ { "QuestAcceptedAsClass": "Miner", "ItemId": 38280, 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 36229edd..9cd56890 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": "Gather", + "ItemsToGather": [] + }, { "DataId": 1042241, "Position": { @@ -14,7 +19,6 @@ }, "TerritoryId": 962, "InteractionType": "Interact", - "RequiredGatheredItems": [], "AetheryteShortcut": "Old Sharlayan", "AethernetShortcut": [ "[Old Sharlayan] Aetheryte Plaza", 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 1ac3ad73..b36972b0 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": "Gather", + "ItemsToGather": [] + }, { "DataId": 1044547, "Position": { @@ -14,7 +19,6 @@ }, "TerritoryId": 816, "InteractionType": "Interact", - "RequiredGatheredItems": [], "AetheryteShortcut": "Il Mheg - Lydha Lran", "Fly": true, "DialogueChoices": [ 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 1d5507af..e4d27b17 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": "Gather", + "ItemsToGather": [] + }, { "Position": { "X": -44.066154, @@ -14,7 +19,6 @@ "TerritoryId": 956, "InteractionType": "WalkTo", "AetheryteShortcut": "Labyrinthos - Sharlayan Hamlet", - "RequiredGatheredItems": [], "Fly": true }, { diff --git a/QuestPaths/6.x - Endwalker/Custom Deliveries/Studium/MIN, BTN/4154_Cooking Up a Culture.json b/QuestPaths/6.x - Endwalker/Custom Deliveries/Studium/MIN, BTN/4154_Cooking Up a Culture.json index 30720303..8139e0c2 100644 --- a/QuestPaths/6.x - Endwalker/Custom Deliveries/Studium/MIN, BTN/4154_Cooking Up a Culture.json +++ b/QuestPaths/6.x - Endwalker/Custom Deliveries/Studium/MIN, BTN/4154_Cooking Up a Culture.json @@ -20,6 +20,17 @@ { "Sequence": 255, "Steps": [ + { + "TerritoryId": 962, + "InteractionType": "Gather", + "ItemsToGather": [ + { + "ItemId": 35600, + "ItemCount": 6, + "Collectability": 600 + } + ] + }, { "DataId": 1038501, "Position": { @@ -34,13 +45,6 @@ "[Old Sharlayan] Aetheryte Plaza", "[Old Sharlayan] The Studium" ], - "RequiredGatheredItems": [ - { - "ItemId": 35600, - "ItemCount": 6, - "Collectability": 600 - } - ], "NextQuestId": 4155 } ] diff --git a/QuestPaths/6.x - Endwalker/Custom Deliveries/Studium/MIN, BTN/4155_The Culture of Ceruleum.json b/QuestPaths/6.x - Endwalker/Custom Deliveries/Studium/MIN, BTN/4155_The Culture of Ceruleum.json index ca598552..9e231382 100644 --- a/QuestPaths/6.x - Endwalker/Custom Deliveries/Studium/MIN, BTN/4155_The Culture of Ceruleum.json +++ b/QuestPaths/6.x - Endwalker/Custom Deliveries/Studium/MIN, BTN/4155_The Culture of Ceruleum.json @@ -20,6 +20,17 @@ { "Sequence": 255, "Steps": [ + { + "TerritoryId": 962, + "InteractionType": "Gather", + "ItemsToGather": [ + { + "ItemId": 35601, + "ItemCount": 6, + "Collectability": 600 + } + ] + }, { "DataId": 1038501, "Position": { @@ -34,13 +45,6 @@ "[Old Sharlayan] Aetheryte Plaza", "[Old Sharlayan] The Studium" ], - "RequiredGatheredItems": [ - { - "ItemId": 35601, - "ItemCount": 6, - "Collectability": 600 - } - ], "NextQuestId": 4156 } ] diff --git a/QuestPaths/6.x - Endwalker/Custom Deliveries/Studium/MIN, BTN/4156_The Culture of Carrots.json b/QuestPaths/6.x - Endwalker/Custom Deliveries/Studium/MIN, BTN/4156_The Culture of Carrots.json index d25034d3..1e533484 100644 --- a/QuestPaths/6.x - Endwalker/Custom Deliveries/Studium/MIN, BTN/4156_The Culture of Carrots.json +++ b/QuestPaths/6.x - Endwalker/Custom Deliveries/Studium/MIN, BTN/4156_The Culture of Carrots.json @@ -20,6 +20,17 @@ { "Sequence": 255, "Steps": [ + { + "TerritoryId": 962, + "InteractionType": "Gather", + "ItemsToGather": [ + { + "ItemId": 35602, + "ItemCount": 6, + "Collectability": 600 + } + ] + }, { "DataId": 1038501, "Position": { @@ -34,13 +45,6 @@ "[Old Sharlayan] Aetheryte Plaza", "[Old Sharlayan] The Studium" ], - "RequiredGatheredItems": [ - { - "ItemId": 35602, - "ItemCount": 6, - "Collectability": 600 - } - ], "NextQuestId": 4157 } ] diff --git a/QuestPaths/6.x - Endwalker/Custom Deliveries/Studium/MIN, BTN/4157_Hinageshi in Hingashi.json b/QuestPaths/6.x - Endwalker/Custom Deliveries/Studium/MIN, BTN/4157_Hinageshi in Hingashi.json index e2ebf553..3cf84c84 100644 --- a/QuestPaths/6.x - Endwalker/Custom Deliveries/Studium/MIN, BTN/4157_Hinageshi in Hingashi.json +++ b/QuestPaths/6.x - Endwalker/Custom Deliveries/Studium/MIN, BTN/4157_Hinageshi in Hingashi.json @@ -97,6 +97,16 @@ { "Sequence": 5, "Steps": [ + { + "TerritoryId": 628, + "InteractionType": "Gather", + "ItemsToGather": [ + { + "ItemId": 35847, + "ItemCount": 1 + } + ] + }, { "DataId": 1038508, "Position": { @@ -110,12 +120,6 @@ "AethernetShortcut": [ "[Kugane] Aetheryte Plaza", "[Kugane] The Ruby Bazaar" - ], - "RequiredGatheredItems": [ - { - "ItemId": 35847, - "ItemCount": 1 - } ] } ] diff --git a/QuestPaths/6.x - Endwalker/Custom Deliveries/Studium/MIN, BTN/4158_The Culture of the Past.json b/QuestPaths/6.x - Endwalker/Custom Deliveries/Studium/MIN, BTN/4158_The Culture of the Past.json index aa12eb80..65f4d7b1 100644 --- a/QuestPaths/6.x - Endwalker/Custom Deliveries/Studium/MIN, BTN/4158_The Culture of the Past.json +++ b/QuestPaths/6.x - Endwalker/Custom Deliveries/Studium/MIN, BTN/4158_The Culture of the Past.json @@ -20,6 +20,17 @@ { "Sequence": 255, "Steps": [ + { + "TerritoryId": 962, + "InteractionType": "Gather", + "ItemsToGather": [ + { + "ItemId": 35603, + "ItemCount": 6, + "Collectability": 600 + } + ] + }, { "DataId": 1038501, "Position": { @@ -34,13 +45,6 @@ "[Old Sharlayan] Aetheryte Plaza", "[Old Sharlayan] The Studium" ], - "RequiredGatheredItems": [ - { - "ItemId": 35603, - "ItemCount": 6, - "Collectability": 600 - } - ], "NextQuestId": 4159 } ] diff --git a/QuestPaths/6.x - Endwalker/Custom Deliveries/Studium/MIN, BTN/4159_The Culture of Love.json b/QuestPaths/6.x - Endwalker/Custom Deliveries/Studium/MIN, BTN/4159_The Culture of Love.json index a7dd1f4a..64daaad4 100644 --- a/QuestPaths/6.x - Endwalker/Custom Deliveries/Studium/MIN, BTN/4159_The Culture of Love.json +++ b/QuestPaths/6.x - Endwalker/Custom Deliveries/Studium/MIN, BTN/4159_The Culture of Love.json @@ -20,6 +20,16 @@ { "Sequence": 1, "Steps": [ + { + "TerritoryId": 962, + "InteractionType": "Gather", + "ItemsToGather": [ + { + "ItemId": 35848, + "ItemCount": 1 + } + ] + }, { "DataId": 1038503, "Position": { @@ -33,12 +43,6 @@ "AethernetShortcut": [ "[Old Sharlayan] Aetheryte Plaza", "[Old Sharlayan] The Studium" - ], - "RequiredGatheredItems": [ - { - "ItemId": 35848, - "ItemCount": 1 - } ] } ] diff --git a/QuestPaths/7.x - Dawntrail/Custom Deliveries/Wachumeqimeqi/MIN, BTN/4990_Test of Talents.json b/QuestPaths/7.x - Dawntrail/Custom Deliveries/Wachumeqimeqi/MIN, BTN/4990_Test of Talents.json index 6a72ac37..368326b8 100644 --- a/QuestPaths/7.x - Dawntrail/Custom Deliveries/Wachumeqimeqi/MIN, BTN/4990_Test of Talents.json +++ b/QuestPaths/7.x - Dawntrail/Custom Deliveries/Wachumeqimeqi/MIN, BTN/4990_Test of Talents.json @@ -22,18 +22,13 @@ "Steps": [ { "TerritoryId": 1185, - "InteractionType": "None", - "RequiredGatheredItems": [ + "InteractionType": "Gather", + "ItemsToGather": [ { "ItemId": 43899, "ItemCount": 6, "Collectability": 600 } - ], - "AetheryteShortcut": "Tuliyollal", - "AethernetShortcut": [ - "[Tuliyollal] Aetheryte Plaza", - "[Tuliyollal] Wachumeqimeqi" ] }, { @@ -45,7 +40,12 @@ }, "TerritoryId": 1185, "InteractionType": "CompleteQuest", - "NextQuestId": 4991 + "NextQuestId": 4991, + "AetheryteShortcut": "Tuliyollal", + "AethernetShortcut": [ + "[Tuliyollal] Aetheryte Plaza", + "[Tuliyollal] Wachumeqimeqi" + ] } ] } diff --git a/QuestPaths/7.x - Dawntrail/Custom Deliveries/Wachumeqimeqi/MIN, BTN/4991_A Discerning Eye.json b/QuestPaths/7.x - Dawntrail/Custom Deliveries/Wachumeqimeqi/MIN, BTN/4991_A Discerning Eye.json index 7150a44c..923cde19 100644 --- a/QuestPaths/7.x - Dawntrail/Custom Deliveries/Wachumeqimeqi/MIN, BTN/4991_A Discerning Eye.json +++ b/QuestPaths/7.x - Dawntrail/Custom Deliveries/Wachumeqimeqi/MIN, BTN/4991_A Discerning Eye.json @@ -22,18 +22,13 @@ "Steps": [ { "TerritoryId": 1185, - "InteractionType": "None", - "RequiredGatheredItems": [ + "InteractionType": "Gather", + "ItemsToGather": [ { "ItemId": 43900, "ItemCount": 6, "Collectability": 600 } - ], - "AetheryteShortcut": "Tuliyollal", - "AethernetShortcut": [ - "[Tuliyollal] Aetheryte Plaza", - "[Tuliyollal] Wachumeqimeqi" ] }, { @@ -45,7 +40,12 @@ }, "TerritoryId": 1185, "InteractionType": "CompleteQuest", - "NextQuestId": 4992 + "NextQuestId": 4992, + "AetheryteShortcut": "Tuliyollal", + "AethernetShortcut": [ + "[Tuliyollal] Aetheryte Plaza", + "[Tuliyollal] Wachumeqimeqi" + ] } ] } diff --git a/QuestPaths/7.x - Dawntrail/Custom Deliveries/Wachumeqimeqi/MIN, BTN/4992_As Nature Intends.json b/QuestPaths/7.x - Dawntrail/Custom Deliveries/Wachumeqimeqi/MIN, BTN/4992_As Nature Intends.json index dd99b09b..d0769b6e 100644 --- a/QuestPaths/7.x - Dawntrail/Custom Deliveries/Wachumeqimeqi/MIN, BTN/4992_As Nature Intends.json +++ b/QuestPaths/7.x - Dawntrail/Custom Deliveries/Wachumeqimeqi/MIN, BTN/4992_As Nature Intends.json @@ -22,18 +22,13 @@ "Steps": [ { "TerritoryId": 1185, - "InteractionType": "None", - "RequiredGatheredItems": [ + "InteractionType": "Gather", + "ItemsToGather": [ { "ItemId": 43901, "ItemCount": 6, "Collectability": 600 } - ], - "AetheryteShortcut": "Tuliyollal", - "AethernetShortcut": [ - "[Tuliyollal] Aetheryte Plaza", - "[Tuliyollal] Wachumeqimeqi" ] }, { @@ -45,7 +40,12 @@ }, "TerritoryId": 1185, "InteractionType": "CompleteQuest", - "NextQuestId": 4993 + "NextQuestId": 4993, + "AetheryteShortcut": "Tuliyollal", + "AethernetShortcut": [ + "[Tuliyollal] Aetheryte Plaza", + "[Tuliyollal] Wachumeqimeqi" + ] } ] } diff --git a/QuestPaths/7.x - Dawntrail/Custom Deliveries/Wachumeqimeqi/MIN, BTN/4993_The Cycle of Life.json b/QuestPaths/7.x - Dawntrail/Custom Deliveries/Wachumeqimeqi/MIN, BTN/4993_The Cycle of Life.json index 9b9155ff..80626854 100644 --- a/QuestPaths/7.x - Dawntrail/Custom Deliveries/Wachumeqimeqi/MIN, BTN/4993_The Cycle of Life.json +++ b/QuestPaths/7.x - Dawntrail/Custom Deliveries/Wachumeqimeqi/MIN, BTN/4993_The Cycle of Life.json @@ -41,17 +41,12 @@ "Steps": [ { "TerritoryId": 1185, - "InteractionType": "None", - "RequiredGatheredItems": [ + "InteractionType": "Gather", + "ItemsToGather": [ { "ItemId": 43913, "ItemCount": 1 } - ], - "AetheryteShortcut": "Tuliyollal", - "AethernetShortcut": [ - "[Tuliyollal] Aetheryte Plaza", - "[Tuliyollal] Wachumeqimeqi" ] }, { @@ -63,7 +58,12 @@ }, "TerritoryId": 1185, "InteractionType": "CompleteQuest", - "NextQuestId": 4994 + "NextQuestId": 4994, + "AetheryteShortcut": "Tuliyollal", + "AethernetShortcut": [ + "[Tuliyollal] Aetheryte Plaza", + "[Tuliyollal] Wachumeqimeqi" + ] } ] } diff --git a/QuestPaths/7.x - Dawntrail/Custom Deliveries/Wachumeqimeqi/MIN, BTN/4994_Digging Up the Truth.json b/QuestPaths/7.x - Dawntrail/Custom Deliveries/Wachumeqimeqi/MIN, BTN/4994_Digging Up the Truth.json index 1202151e..706b7190 100644 --- a/QuestPaths/7.x - Dawntrail/Custom Deliveries/Wachumeqimeqi/MIN, BTN/4994_Digging Up the Truth.json +++ b/QuestPaths/7.x - Dawntrail/Custom Deliveries/Wachumeqimeqi/MIN, BTN/4994_Digging Up the Truth.json @@ -22,18 +22,13 @@ "Steps": [ { "TerritoryId": 1185, - "InteractionType": "None", - "RequiredGatheredItems": [ + "InteractionType": "Gather", + "ItemsToGather": [ { "ItemId": 43902, "ItemCount": 6, "Collectability": 600 } - ], - "AetheryteShortcut": "Tuliyollal", - "AethernetShortcut": [ - "[Tuliyollal] Aetheryte Plaza", - "[Tuliyollal] Wachumeqimeqi" ] }, { @@ -45,7 +40,12 @@ }, "TerritoryId": 1185, "InteractionType": "CompleteQuest", - "NextQuestId": 4995 + "NextQuestId": 4995, + "AetheryteShortcut": "Tuliyollal", + "AethernetShortcut": [ + "[Tuliyollal] Aetheryte Plaza", + "[Tuliyollal] Wachumeqimeqi" + ] } ] } diff --git a/QuestPaths/7.x - Dawntrail/Custom Deliveries/Wachumeqimeqi/MIN, BTN/4995_Wellspring of Tears.json b/QuestPaths/7.x - Dawntrail/Custom Deliveries/Wachumeqimeqi/MIN, BTN/4995_Wellspring of Tears.json index 03be2b82..f79bfff6 100644 --- a/QuestPaths/7.x - Dawntrail/Custom Deliveries/Wachumeqimeqi/MIN, BTN/4995_Wellspring of Tears.json +++ b/QuestPaths/7.x - Dawntrail/Custom Deliveries/Wachumeqimeqi/MIN, BTN/4995_Wellspring of Tears.json @@ -205,6 +205,16 @@ } } }, + { + "TerritoryId": 1189, + "InteractionType": "Gather", + "ItemsToGather": [ + { + "ItemId": 43914, + "ItemCount": 1 + } + ] + }, { "Position": { "X": 674.17834, @@ -213,13 +223,7 @@ }, "TerritoryId": 1189, "InteractionType": "WalkTo", - "Fly": true, - "RequiredGatheredItems": [ - { - "ItemId": 43914, - "ItemCount": 1 - } - ] + "Fly": true }, { "Position": { diff --git a/QuestPaths/7.x - Dawntrail/Leves/BTN/L1770_All Stars.json b/QuestPaths/7.x - Dawntrail/Leves/BTN/L1770_All Stars.json index 293ab4d6..6ec5d961 100644 --- a/QuestPaths/7.x - Dawntrail/Leves/BTN/L1770_All Stars.json +++ b/QuestPaths/7.x - Dawntrail/Leves/BTN/L1770_All Stars.json @@ -23,8 +23,8 @@ }, { "TerritoryId": 1188, - "InteractionType": "None", - "RequiredGatheredItems": [ + "InteractionType": "Gather", + "ItemsToGather": [ { "ItemId": 2003516, "AlternativeItemId": 2003517, diff --git a/QuestPaths/7.x - Dawntrail/Leves/BTN/L1779_New Start for the Cinderfield.json b/QuestPaths/7.x - Dawntrail/Leves/BTN/L1779_New Start for the Cinderfield.json index d7abd609..c9d872c3 100644 --- a/QuestPaths/7.x - Dawntrail/Leves/BTN/L1779_New Start for the Cinderfield.json +++ b/QuestPaths/7.x - Dawntrail/Leves/BTN/L1779_New Start for the Cinderfield.json @@ -23,8 +23,8 @@ }, { "TerritoryId": 1189, - "InteractionType": "None", - "RequiredGatheredItems": [ + "InteractionType": "Gather", + "ItemsToGather": [ { "ItemId": 2003529, "AlternativeItemId": 2003530, diff --git a/QuestPaths/7.x - Dawntrail/Leves/MIN/L1785_Old and Bubbly.json b/QuestPaths/7.x - Dawntrail/Leves/MIN/L1785_Old and Bubbly.json index e5f1f299..dd7d68cd 100644 --- a/QuestPaths/7.x - Dawntrail/Leves/MIN/L1785_Old and Bubbly.json +++ b/QuestPaths/7.x - Dawntrail/Leves/MIN/L1785_Old and Bubbly.json @@ -23,8 +23,8 @@ }, { "TerritoryId": 1187, - "InteractionType": "None", - "RequiredGatheredItems": [ + "InteractionType": "Gather", + "ItemsToGather": [ { "ItemId": 2003539, "AlternativeItemId": 2003540, diff --git a/QuestPaths/7.x - Dawntrail/Leves/MIN/L1794_Vestiges of War.json b/QuestPaths/7.x - Dawntrail/Leves/MIN/L1794_Vestiges of War.json index 75e19368..38e43e0f 100644 --- a/QuestPaths/7.x - Dawntrail/Leves/MIN/L1794_Vestiges of War.json +++ b/QuestPaths/7.x - Dawntrail/Leves/MIN/L1794_Vestiges of War.json @@ -23,8 +23,8 @@ }, { "TerritoryId": 1189, - "InteractionType": "None", - "RequiredGatheredItems": [ + "InteractionType": "Gather", + "ItemsToGather": [ { "ItemId": 2003552, "AlternativeItemId": 2003553, diff --git a/QuestPaths/quest-v1.json b/QuestPaths/quest-v1.json index 4c271e1a..4282b7c9 100644 --- a/QuestPaths/quest-v1.json +++ b/QuestPaths/quest-v1.json @@ -130,6 +130,7 @@ "Jump", "Dive", "Craft", + "Gather", "Snipe", "Instruction", "AcceptQuest", @@ -239,13 +240,19 @@ "QuestsAccepted": { "type": "array", "items": { - "type": ["number", "string"] + "type": [ + "number", + "string" + ] } }, "QuestsCompleted": { "type": "array", "items": { - "type": ["number", "string"] + "type": [ + "number", + "string" + ] } }, "AetheryteLocked": { @@ -302,13 +309,19 @@ "QuestsAccepted": { "type": "array", "items": { - "type": ["number", "string"] + "type": [ + "number", + "string" + ] } }, "QuestsCompleted": { "type": "array", "items": { - "type": ["number", "string"] + "type": [ + "number", + "string" + ] } }, "AetheryteLocked": { @@ -405,41 +418,6 @@ } } }, - "RequiredGatheredItems": { - "type": "array", - "items": { - "type": "object", - "properties": { - "ItemId": { - "type": "number" - }, - "AlternativeItemId": { - "description": "For leves that allow you to gather two items with different chance percentage, this is the preferred item if the gathering chance is 100% (after buffs)", - "type": "number" - }, - "ItemCount": { - "type": "number", - "exclusiveMinimum": 0 - }, - "Collectability": { - "type": "number", - "minimum": 0, - "maximum": 1000 - }, - "QuestAcceptedAsClass": { - "type": "string", - "enum": [ - "Miner", - "Botanist" - ] - } - }, - "required": [ - "ItemId", - "ItemCount" - ] - } - }, "DelaySecondsAtStart": { "description": "Time to wait before starting", "type": [ @@ -1203,17 +1181,60 @@ "ItemCount" ] } - } - ], - "not": { - "anyOf": [ - { + }, + { + "if": { + "properties": { + "InteractionType": { + "const": "Gather" + } + } + }, + "then": { + "properties": { + "ItemsToGather": { + "type": "array", + "description": "Unlike crafting steps, which will always craft a single item id regardless of class, this allows for gathering different items depending on whether you've picked the quest up as miner or botanist", + "items": { + "type": "object", + "properties": { + "ItemId": { + "type": "number" + }, + "AlternativeItemId": { + "description": "For leves that allow you to gather two items with different chance percentage, this is the preferred item if the gathering chance is 100% (after buffs)", + "type": "number" + }, + "ItemCount": { + "type": "number", + "exclusiveMinimum": 0 + }, + "Collectability": { + "type": "number", + "minimum": 0, + "maximum": 1000 + }, + "QuestAcceptedAsClass": { + "type": "string", + "enum": [ + "Miner", + "Botanist" + ] + } + }, + "required": [ + "ItemId", + "ItemCount" + ] + } + } + }, "required": [ - "SkipIf" + "ItemsToGather" ] } - ] - } + } + ] } } } diff --git a/Questionable.Model/Questing/Converter/InteractionTypeConverter.cs b/Questionable.Model/Questing/Converter/InteractionTypeConverter.cs index bf856da9..34320633 100644 --- a/Questionable.Model/Questing/Converter/InteractionTypeConverter.cs +++ b/Questionable.Model/Questing/Converter/InteractionTypeConverter.cs @@ -27,6 +27,7 @@ public sealed class InteractionTypeConverter() : EnumConverter { EInteractionType.Jump, "Jump" }, { EInteractionType.Dive, "Dive" }, { EInteractionType.Craft, "Craft" }, + { EInteractionType.Gather, "Gather" }, { EInteractionType.Snipe, "Snipe" }, { EInteractionType.Instruction, "Instruction" }, { EInteractionType.AcceptQuest, "AcceptQuest" }, diff --git a/Questionable.Model/Questing/EInteractionType.cs b/Questionable.Model/Questing/EInteractionType.cs index f251b5ae..d9942ef4 100644 --- a/Questionable.Model/Questing/EInteractionType.cs +++ b/Questionable.Model/Questing/EInteractionType.cs @@ -26,6 +26,7 @@ public enum EInteractionType Jump, Dive, Craft, + Gather, Snipe, /// @@ -38,7 +39,4 @@ public enum EInteractionType AcceptLeve, InitiateLeve, CompleteLeve, - - // unmapped extra types below - InternalGather, } diff --git a/Questionable.Model/Questing/QuestStep.cs b/Questionable.Model/Questing/QuestStep.cs index 8ee496bf..da851c83 100644 --- a/Questionable.Model/Questing/QuestStep.cs +++ b/Questionable.Model/Questing/QuestStep.cs @@ -74,7 +74,7 @@ public sealed class QuestStep public SkipConditions? SkipConditions { get; set; } public List?> RequiredQuestVariables { get; set; } = new(); - public List RequiredGatheredItems { get; set; } = []; + public List ItemsToGather { get; set; } = []; public List CompletionQuestVariablesFlags { get; set; } = []; public List DialogueChoices { get; set; } = []; public List PointMenuChoices { get; set; } = []; diff --git a/Questionable/Controller/ContextMenuController.cs b/Questionable/Controller/ContextMenuController.cs index 509d8372..819d8b25 100644 --- a/Questionable/Controller/ContextMenuController.cs +++ b/Questionable/Controller/ContextMenuController.cs @@ -134,8 +134,8 @@ internal sealed class ContextMenuController : IDisposable .Single(x => x is SatisfactionSupplyInfo); if (_questRegistry.TryGetQuest(info.QuestId, out Quest? quest)) { - var step = quest.FindSequence(0)!.FindStep(0)!; - step.RequiredGatheredItems = + var step = quest.FindSequence(0)!.Steps.Single(x => x.InteractionType == EInteractionType.Gather); + step.ItemsToGather = [ new GatheredItem { diff --git a/Questionable/Controller/GameUi/InteractionUiController.cs b/Questionable/Controller/GameUi/InteractionUiController.cs index 35f89d06..ce083331 100644 --- a/Questionable/Controller/GameUi/InteractionUiController.cs +++ b/Questionable/Controller/GameUi/InteractionUiController.cs @@ -658,9 +658,9 @@ internal sealed class InteractionUiController : IDisposable step.TargetTerritoryId); if (step != null && (step.TerritoryId != _clientState.TerritoryType || step.TargetTerritoryId == null) && - step.RequiredGatheredItems.Count > 0) + step.InteractionType == EInteractionType.Gather) { - if (_gatheringData.TryGetGatheringPointId(step.RequiredGatheredItems[0].ItemId, + if (_gatheringData.TryGetGatheringPointId(step.ItemsToGather[0].ItemId, (EClassJob?)_clientState.LocalPlayer?.ClassJob.Id ?? EClassJob.Adventurer, out GatheringPointId? gatheringPointId) && _gatheringPointRegistry.TryGetGatheringPoint(gatheringPointId, out GatheringRoot? root)) diff --git a/Questionable/Controller/GatheringController.cs b/Questionable/Controller/GatheringController.cs index ffa01244..77860f7e 100644 --- a/Questionable/Controller/GatheringController.cs +++ b/Questionable/Controller/GatheringController.cs @@ -186,14 +186,13 @@ internal sealed unsafe class GatheringController : MiniTaskController())); _taskQueue.Enqueue(_mountFactory.Unmount()); - _taskQueue.Enqueue(_interactFactory.Interact(currentNode.DataId, null, EInteractionType.InternalGather, true)); + _taskQueue.Enqueue(_interactFactory.Interact(currentNode.DataId, null, EInteractionType.Gather, true)); QueueGatherNode(currentNode); } diff --git a/Questionable/Controller/MiniTaskController.cs b/Questionable/Controller/MiniTaskController.cs index 63dfba10..8d905b95 100644 --- a/Questionable/Controller/MiniTaskController.cs +++ b/Questionable/Controller/MiniTaskController.cs @@ -81,7 +81,7 @@ internal abstract class MiniTaskController while (_taskQueue.TryDequeue(out ITask? nextTask)) { - if (nextTask is ILastTask or GatheringRequiredItems.SkipMarker) + if (nextTask is ILastTask or Gather.SkipMarker) { _currentTask = nextTask; return; diff --git a/Questionable/Controller/Steps/Gathering/MoveToLandingLocation.cs b/Questionable/Controller/Steps/Gathering/MoveToLandingLocation.cs index 5694d65e..a9ebe4a5 100644 --- a/Questionable/Controller/Steps/Gathering/MoveToLandingLocation.cs +++ b/Questionable/Controller/Steps/Gathering/MoveToLandingLocation.cs @@ -41,8 +41,8 @@ internal sealed class MoveToLandingLocation( target.ToString("G", CultureInfo.InvariantCulture), degrees, range); bool fly = flyBetweenNodes && gameFunctions.IsFlyingUnlocked(territoryId); - _moveTask = moveFactory.Move(new MoveTo.MoveParams(territoryId, target, 0.25f, DataId: gatheringNode.DataId, - Fly: fly, IgnoreDistanceToObject: true)); + _moveTask = moveFactory.Move(new MoveTo.MoveParams(territoryId, target, null, 0.25f, + DataId: gatheringNode.DataId, Fly: fly, IgnoreDistanceToObject: true)); return _moveTask.Start(); } diff --git a/Questionable/Controller/Steps/Interactions/Interact.cs b/Questionable/Controller/Steps/Interactions/Interact.cs index e233bfde..a88e6dda 100644 --- a/Questionable/Controller/Steps/Interactions/Interact.cs +++ b/Questionable/Controller/Steps/Interactions/Interact.cs @@ -162,7 +162,7 @@ internal static class Interact if (_interactionState == EInteractionState.InteractionConfirmed) return ETaskResult.TaskComplete; - if (interactionType == EInteractionType.InternalGather && condition[ConditionFlag.Gathering]) + if (interactionType == EInteractionType.Gather && condition[ConditionFlag.Gathering]) return ETaskResult.TaskComplete; } diff --git a/Questionable/Controller/Steps/Interactions/UseItem.cs b/Questionable/Controller/Steps/Interactions/UseItem.cs index 358c30d9..8ca5f40a 100644 --- a/Questionable/Controller/Steps/Interactions/UseItem.cs +++ b/Questionable/Controller/Steps/Interactions/UseItem.cs @@ -72,7 +72,7 @@ internal static class UseItem mountFactory.Mount(140, nextPosition != null ? Mount.EMountIf.AwayFromPosition : Mount.EMountIf.Always, nextPosition), - moveFactory.Move(new MoveTo.MoveParams(140, new(-408.92343f, 23.167036f, -351.16223f), 0.25f, + moveFactory.Move(new MoveTo.MoveParams(140, new(-408.92343f, 23.167036f, -351.16223f), null, 0.25f, DataId: null, DisableNavMesh: true, Sprint: false, Fly: false)) ]; } diff --git a/Questionable/Controller/Steps/Shared/GatheringRequiredItems.cs b/Questionable/Controller/Steps/Shared/Gather.cs similarity index 87% rename from Questionable/Controller/Steps/Shared/GatheringRequiredItems.cs rename to Questionable/Controller/Steps/Shared/Gather.cs index 48ad33bb..cc5d9cfa 100644 --- a/Questionable/Controller/Steps/Shared/GatheringRequiredItems.cs +++ b/Questionable/Controller/Steps/Shared/Gather.cs @@ -16,7 +16,7 @@ using Questionable.Model.Questing; namespace Questionable.Controller.Steps.Shared; -internal static class GatheringRequiredItems +internal static class Gather { internal sealed class Factory( IServiceProvider serviceProvider, @@ -30,20 +30,23 @@ internal static class GatheringRequiredItems { public IEnumerable CreateAllTasks(Quest quest, QuestSequence sequence, QuestStep step) { - foreach (var requiredGatheredItems in step.RequiredGatheredItems) + if (step.InteractionType != EInteractionType.Gather) + yield break; + + foreach (var itemToGather in step.ItemsToGather) { EClassJob currentClassJob = (EClassJob)clientState.LocalPlayer!.ClassJob.Id; EClassJob classJob = currentClassJob; - if (requiredGatheredItems.QuestAcceptedAsClass != null) + if (itemToGather.QuestAcceptedAsClass != null) { - classJob = (EClassJob)requiredGatheredItems.QuestAcceptedAsClass.Value; + classJob = (EClassJob)itemToGather.QuestAcceptedAsClass.Value; if (!IsClassJobQuestWasAcceptedWith(quest.Id, classJob)) continue; } - if (!gatheringData.TryGetGatheringPointId(requiredGatheredItems.ItemId, classJob, + if (!gatheringData.TryGetGatheringPointId(itemToGather.ItemId, classJob, out GatheringPointId? gatheringPointId)) - throw new TaskException($"No gathering point found for item {requiredGatheredItems.ItemId}"); + 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}"); @@ -53,7 +56,7 @@ internal static class GatheringRequiredItems yield return new SwitchClassJob(classJob, clientState); } - if (HasRequiredItems(requiredGatheredItems)) + if (HasRequiredItems(itemToGather)) continue; using (var _ = logger.BeginScope("Gathering(inner)")) @@ -81,7 +84,7 @@ internal static class GatheringRequiredItems yield return new WaitConditionTask(() => movementController.IsNavmeshReady, "Wait(navmesh ready)"); - yield return CreateStartGatheringTask(gatheringPointId, requiredGatheredItems); + yield return CreateStartGatheringTask(gatheringPointId, itemToGather); yield return new WaitAtEnd.WaitDelay(); } } @@ -98,13 +101,13 @@ internal static class GatheringRequiredItems return true; } - private unsafe bool HasRequiredItems(GatheredItem requiredGatheredItems) + private unsafe bool HasRequiredItems(GatheredItem itemToGather) { InventoryManager* inventoryManager = InventoryManager.Instance(); return inventoryManager != null && - inventoryManager->GetInventoryItemCount(requiredGatheredItems.ItemId, - minCollectability: (short)requiredGatheredItems.Collectability) >= - requiredGatheredItems.ItemCount; + inventoryManager->GetInventoryItemCount(itemToGather.ItemId, + minCollectability: (short)itemToGather.Collectability) >= + itemToGather.ItemCount; } private StartGathering CreateStartGatheringTask(GatheringPointId gatheringPointId, GatheredItem gatheredItem) diff --git a/Questionable/Controller/Steps/Shared/MoveTo.cs b/Questionable/Controller/Steps/Shared/MoveTo.cs index ba76a687..cf905a65 100644 --- a/Questionable/Controller/Steps/Shared/MoveTo.cs +++ b/Questionable/Controller/Steps/Shared/MoveTo.cs @@ -67,7 +67,7 @@ internal static class MoveTo public ITask Move(MoveParams moveParams) { - return new MoveInternal(moveParams, movementController, gameFunctions, + return new MoveInternal(moveParams, movementController, mountFactory, gameFunctions, loggerFactory.CreateLogger(), clientState, dataManager); } @@ -95,74 +95,18 @@ internal static class MoveTo $"Wait(territory: {territoryData.GetNameAndId(step.TerritoryId)})"); if (!step.DisableNavmesh) + { yield return new WaitConditionTask(() => movementController.IsNavmeshReady, "Wait(navmesh ready)"); - float stopDistance = step.CalculateActualStopDistance(); - Vector3? position = clientState.LocalPlayer?.Position; - float actualDistance = position == null ? float.MaxValue : Vector3.Distance(position.Value, destination); - - // if we teleport to a different zone, assume we always need to move; this is primarily relevant for cases - // where you're e.g. in Lakeland, and the step navigates via Crystarium → Tesselation back into the same - // zone. - // - // Side effects of this check being broken include: - // - mounting when near the target npc (if you spawn close enough for the next step) - // - trying to fly when near the target npc (if close enough where no movement is required) - if (step.AetheryteShortcut != null && - aetheryteData.TerritoryIds[step.AetheryteShortcut.Value] != step.TerritoryId) - { - logger.LogDebug("Aetheryte: Changing distance to max, previous distance: {Distance}", actualDistance); - actualDistance = float.MaxValue; - } - - // Fixes a case where you're initiating the gathering step when standing next to the NPC already - // TODO maybe this should be delayed up until starting movement - if (questId is SatisfactionSupplyNpcId) - { - logger.LogDebug("SatisfactionSupply: Changing distance to max, previous distance: {Distance}", - actualDistance); - actualDistance = float.MaxValue; - } - - if (step.Mount == true) - yield return mountFactory.Mount(step.TerritoryId, Mount.EMountIf.Always); - else if (step.Mount == false) - yield return mountFactory.Unmount(); - - if (!step.DisableNavmesh) - { - if (step.Mount == null) - { - Mount.EMountIf mountIf = - actualDistance > stopDistance && step.Fly == true && - gameFunctions.IsFlyingUnlocked(step.TerritoryId) - ? Mount.EMountIf.Always - : Mount.EMountIf.AwayFromPosition; - yield return mountFactory.Mount(step.TerritoryId, mountIf, destination); - } - - if (actualDistance > stopDistance) - { - yield return Move(step, destination); - } - else - logger.LogInformation("Skipping move task, distance: {ActualDistance} < {StopDistance}", - actualDistance, stopDistance); + yield return Move(step, destination); } else { - // navmesh won't move close enough - if (actualDistance > stopDistance) - { - yield return Move(step, destination); - } - else - logger.LogInformation("Skipping move task, distance: {ActualDistance} < {StopDistance}", - actualDistance, stopDistance); + yield return Move(step, destination); } - if (step.Fly == true && step.Land == true) + if (step is { Fly: true, Land: true }) yield return Land(); } } @@ -171,6 +115,8 @@ internal static class MoveTo { private readonly string _cannotExecuteAtThisTime; private readonly MovementController _movementController; + private readonly Mount.Factory _mountFactory; + private readonly GameFunctions _gameFunctions; private readonly ILogger _logger; private readonly IClientState _clientState; @@ -178,15 +124,19 @@ internal static class MoveTo private readonly Vector3 _destination; private readonly MoveParams _moveParams; private bool _canRestart; + private ITask? _mountTask; public MoveInternal(MoveParams moveParams, MovementController movementController, + Mount.Factory mountFactory, GameFunctions gameFunctions, ILogger logger, IClientState clientState, IDataManager dataManager) { _movementController = movementController; + _mountFactory = mountFactory; + _gameFunctions = gameFunctions; _logger = logger; _clientState = clientState; _cannotExecuteAtThisTime = dataManager.GetString(579, x => x.Text)!; @@ -225,13 +175,65 @@ internal static class MoveTo public bool Start() { - _logger.LogInformation("Moving to {Destination}", _destination.ToString("G", CultureInfo.InvariantCulture)); - _startAction(); + float stopDistance = _moveParams.StopDistance ?? QuestStep.DefaultStopDistance; + Vector3? position = _clientState.LocalPlayer?.Position; + float actualDistance = position == null ? float.MaxValue : Vector3.Distance(position.Value, _destination); + + if (_moveParams.Mount == true) + { + var mountTask = _mountFactory.Mount(_moveParams.TerritoryId, Mount.EMountIf.Always); + if (mountTask.Start()) + { + _mountTask = mountTask; + return true; + } + } + else if (_moveParams.Mount == false) + { + var mountTask = _mountFactory.Unmount(); + if (mountTask.Start()) + { + _mountTask = mountTask; + return true; + } + } + + if (!_moveParams.DisableNavMesh) + { + if (_moveParams.Mount == null) + { + Mount.EMountIf mountIf = + actualDistance > stopDistance && _moveParams.Fly && + _gameFunctions.IsFlyingUnlocked(_moveParams.TerritoryId) + ? Mount.EMountIf.Always + : Mount.EMountIf.AwayFromPosition; + var mountTask = _mountFactory.Mount(_moveParams.TerritoryId, mountIf, _destination); + if (mountTask.Start()) + { + _mountTask = mountTask; + return true; + } + } + } + + _mountTask = new NoOpTask(); return true; } public ETaskResult Update() { + if (_mountTask != null) + { + if (_mountTask.Update() == ETaskResult.TaskComplete) + { + _mountTask = null; + + _logger.LogInformation("Moving to {Destination}", _destination.ToString("G", CultureInfo.InvariantCulture)); + _startAction(); + } + return ETaskResult.StillRunning; + } + if (_movementController.IsPathfinding || _movementController.IsPathRunning) return ETaskResult.StillRunning; @@ -269,9 +271,17 @@ internal static class MoveTo } } + private sealed class NoOpTask : ITask + { + public bool Start() => true; + + public ETaskResult Update() => ETaskResult.TaskComplete; + } + internal sealed record MoveParams( ushort TerritoryId, Vector3 Destination, + bool? Mount = null, float? StopDistance = null, uint? DataId = null, bool DisableNavMesh = false, @@ -284,6 +294,7 @@ internal static class MoveTo public MoveParams(QuestStep step, Vector3 destination) : this(step.TerritoryId, destination, + step.Mount, step.CalculateActualStopDistance(), step.DataId, step.DisableNavmesh, diff --git a/Questionable/QuestionablePlugin.cs b/Questionable/QuestionablePlugin.cs index b5be5760..b5878353 100644 --- a/Questionable/QuestionablePlugin.cs +++ b/Questionable/QuestionablePlugin.cs @@ -137,7 +137,7 @@ public sealed class QuestionablePlugin : IDalamudPlugin // task factories serviceCollection.AddTaskFactory(); serviceCollection.AddTaskFactory(); - serviceCollection.AddTaskFactory(); + serviceCollection.AddTaskFactory(); serviceCollection.AddTaskFactory(); serviceCollection.AddTaskFactory(); serviceCollection.AddTaskFactory(); From 0e54bfa9086976b17f57d9a43400e03916bee337 Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Tue, 17 Sep 2024 02:13:24 +0800 Subject: [PATCH 269/450] Updated a few daily quests: - Rings of Pattern - You Dirty Rats - If It's Broke, Fix It --- .../Qitari/Dailies/3816_Rings of Pattern.json | 17 ++++++++++++++--- .../Qitari/Dailies/3817_You Dirty Rats.json | 17 ++++++++++++++--- .../Dailies/3818_If It's Broke, Fix It.json | 17 ++++++++++++++--- 3 files changed, 42 insertions(+), 9 deletions(-) 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 bdbb1696..3ee1edb7 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 @@ -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,7 +29,19 @@ "TerritoryId": 817, "InteractionType": "WalkTo", "AetheryteShortcut": "Rak'tika - Fanow", - "Fly": true + "Fly": true, + "RequiredGatheredItems": [ + { + "QuestAcceptedAsClass": "Miner", + "ItemId": 29525, + "ItemCount": 3 + }, + { + "QuestAcceptedAsClass": "Botanist", + "ItemId": 29551, + "ItemCount": 3 + } + ] }, { "DataId": 1032643, 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 bdbb1696..ebee794c 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 @@ -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,7 +29,19 @@ "TerritoryId": 817, "InteractionType": "WalkTo", "AetheryteShortcut": "Rak'tika - Fanow", - "Fly": true + "Fly": true, + "RequiredGatheredItems": [ + { + "QuestAcceptedAsClass": "Miner", + "ItemId": 29526, + "ItemCount": 3 + }, + { + "QuestAcceptedAsClass": "Botanist", + "ItemId": 29552, + "ItemCount": 3 + } + ] }, { "DataId": 1032643, 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 bdbb1696..0b423721 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 @@ -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,7 +29,19 @@ "TerritoryId": 817, "InteractionType": "WalkTo", "AetheryteShortcut": "Rak'tika - Fanow", - "Fly": true + "Fly": true, + "RequiredGatheredItems": [ + { + "QuestAcceptedAsClass": "Miner", + "ItemId": 29527, + "ItemCount": 3 + }, + { + "QuestAcceptedAsClass": "Botanist", + "ItemId": 29553, + "ItemCount": 3 + } + ] }, { "DataId": 1032643, From 29a95329c7775259162475a22561bd230815fe70 Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Tue, 17 Sep 2024 02:34:16 +0800 Subject: [PATCH 270/450] Updated first step to use new Gather InteractionType --- .../Qitari/Dailies/3816_Rings of Pattern.json | 22 +++++++++++-------- .../Qitari/Dailies/3817_You Dirty Rats.json | 22 +++++++++++-------- .../Dailies/3818_If It's Broke, Fix It.json | 22 +++++++++++-------- 3 files changed, 39 insertions(+), 27 deletions(-) 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 3ee1edb7..bac8bfae 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 @@ -21,16 +21,9 @@ "Sequence": 255, "Steps": [ { - "Position": { - "X": 788.1569, - "Y": -45.82557, - "Z": -212.9306 - }, "TerritoryId": 817, - "InteractionType": "WalkTo", - "AetheryteShortcut": "Rak'tika - Fanow", - "Fly": true, - "RequiredGatheredItems": [ + "InteractionType": "Gather", + "ItemsToGather": [ { "QuestAcceptedAsClass": "Miner", "ItemId": 29525, @@ -43,6 +36,17 @@ } ] }, + { + "Position": { + "X": 788.1569, + "Y": -45.82557, + "Z": -212.9306 + }, + "TerritoryId": 817, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Rak'tika - Fanow", + "Fly": true + }, { "DataId": 1032643, "Position": { 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 ebee794c..f0198739 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 @@ -21,16 +21,9 @@ "Sequence": 255, "Steps": [ { - "Position": { - "X": 788.1569, - "Y": -45.82557, - "Z": -212.9306 - }, "TerritoryId": 817, - "InteractionType": "WalkTo", - "AetheryteShortcut": "Rak'tika - Fanow", - "Fly": true, - "RequiredGatheredItems": [ + "InteractionType": "Gather", + "ItemsToGather": [ { "QuestAcceptedAsClass": "Miner", "ItemId": 29526, @@ -43,6 +36,17 @@ } ] }, + { + "Position": { + "X": 788.1569, + "Y": -45.82557, + "Z": -212.9306 + }, + "TerritoryId": 817, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Rak'tika - Fanow", + "Fly": true + }, { "DataId": 1032643, "Position": { 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 0b423721..8d0ac16d 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 @@ -21,16 +21,9 @@ "Sequence": 255, "Steps": [ { - "Position": { - "X": 788.1569, - "Y": -45.82557, - "Z": -212.9306 - }, "TerritoryId": 817, - "InteractionType": "WalkTo", - "AetheryteShortcut": "Rak'tika - Fanow", - "Fly": true, - "RequiredGatheredItems": [ + "InteractionType": "Gather", + "ItemsToGather": [ { "QuestAcceptedAsClass": "Miner", "ItemId": 29527, @@ -43,6 +36,17 @@ } ] }, + { + "Position": { + "X": 788.1569, + "Y": -45.82557, + "Z": -212.9306 + }, + "TerritoryId": 817, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Rak'tika - Fanow", + "Fly": true + }, { "DataId": 1032643, "Position": { From 55e2cd300bcc3e97a1357476a44ab98e4e9e4e45 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Mon, 16 Sep 2024 21:46:10 +0200 Subject: [PATCH 271/450] Add gathering point for Kai-Shirr --- .../Il Mheg/651_Thysm Lran_BTN.json | 140 ++++++++++++++++ .../Il Mheg/652_Thysm Lran_MIN.json | 158 ++++++++++++++++++ 2 files changed, 298 insertions(+) create mode 100644 GatheringPaths/5.x - Shadowbringers/Il Mheg/651_Thysm Lran_BTN.json create mode 100644 GatheringPaths/5.x - Shadowbringers/Il Mheg/652_Thysm Lran_MIN.json diff --git a/GatheringPaths/5.x - Shadowbringers/Il Mheg/651_Thysm Lran_BTN.json b/GatheringPaths/5.x - Shadowbringers/Il Mheg/651_Thysm Lran_BTN.json new file mode 100644 index 00000000..717c814e --- /dev/null +++ b/GatheringPaths/5.x - Shadowbringers/Il Mheg/651_Thysm Lran_BTN.json @@ -0,0 +1,140 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/GatheringPaths/gatheringlocation-v1.json", + "Author": "liza", + "Steps": [ + { + "Position": { + "X": 329.38184, + "Y": 9.586891, + "Z": 749.2314 + }, + "TerritoryId": 816, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Il Mheg - Lydha Lran", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + }, + { + "Position": { + "X": 351.29465, + "Y": -38.275272, + "Z": 763.0457 + }, + "TerritoryId": 816, + "InteractionType": "WalkTo", + "Fly": true, + "DisableNavmesh": true + } + ], + "Groups": [ + { + "Nodes": [ + { + "DataId": 32832, + "Locations": [ + { + "Position": { + "X": 382.7488, + "Y": -72.47251, + "Z": 794.3513 + } + }, + { + "Position": { + "X": 388.7861, + "Y": -74.19925, + "Z": 801.0947 + } + }, + { + "Position": { + "X": 386.1797, + "Y": -73.5009, + "Z": 787.0967 + } + } + ] + }, + { + "DataId": 32831, + "Locations": [ + { + "Position": { + "X": 396.5799, + "Y": -76.29187, + "Z": 790.9022 + } + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 32830, + "Locations": [ + { + "Position": { + "X": 492.6384, + "Y": -82.73045, + "Z": 804.714 + } + }, + { + "Position": { + "X": 482.808, + "Y": -82.61642, + "Z": 802.591 + } + } + ] + }, + { + "DataId": 32829, + "Locations": [ + { + "Position": { + "X": 493.5814, + "Y": -82.43644, + "Z": 790.831 + } + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 32827, + "Locations": [ + { + "Position": { + "X": 490.9451, + "Y": -97.88062, + "Z": 636.6115 + } + } + ] + }, + { + "DataId": 32828, + "Locations": [ + { + "Position": { + "X": 491.5274, + "Y": -100.762, + "Z": 626.6958 + } + } + ] + } + ] + } + ] +} diff --git a/GatheringPaths/5.x - Shadowbringers/Il Mheg/652_Thysm Lran_MIN.json b/GatheringPaths/5.x - Shadowbringers/Il Mheg/652_Thysm Lran_MIN.json new file mode 100644 index 00000000..4612241a --- /dev/null +++ b/GatheringPaths/5.x - Shadowbringers/Il Mheg/652_Thysm Lran_MIN.json @@ -0,0 +1,158 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/GatheringPaths/gatheringlocation-v1.json", + "Author": "liza", + "Steps": [ + { + "Position": { + "X": 491.82068, + "Y": 3.9304812, + "Z": 487.9401 + }, + "TerritoryId": 816, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Il Mheg - Lydha Lran", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + }, + { + "Position": { + "X": 506.00256, + "Y": -37.76961, + "Z": 485.49347 + }, + "TerritoryId": 816, + "InteractionType": "WalkTo", + "Fly": true, + "DisableNavmesh": true + } + ], + "Groups": [ + { + "Nodes": [ + { + "DataId": 32836, + "Locations": [ + { + "Position": { + "X": 539.5437, + "Y": -81.62054, + "Z": 520.1647 + }, + "MinimumAngle": -30, + "MaximumAngle": 165 + }, + { + "Position": { + "X": 555.8599, + "Y": -73.65717, + "Z": 494.6164 + }, + "MinimumAngle": 35, + "MaximumAngle": 240 + }, + { + "Position": { + "X": 576.4164, + "Y": -69.75835, + "Z": 512.9263 + }, + "MinimumAngle": -75, + "MaximumAngle": 70 + } + ] + }, + { + "DataId": 32835, + "Locations": [ + { + "Position": { + "X": 552.5504, + "Y": -78.23183, + "Z": 512.429 + }, + "MinimumAngle": -30, + "MaximumAngle": 135 + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 32838, + "Locations": [ + { + "Position": { + "X": 652.7063, + "Y": -46.64378, + "Z": 488.4543 + }, + "MinimumAngle": 0, + "MaximumAngle": 120 + }, + { + "Position": { + "X": 669.2959, + "Y": -47.14824, + "Z": 513.9606 + }, + "MinimumAngle": -20, + "MaximumAngle": 105 + } + ] + }, + { + "DataId": 32837, + "Locations": [ + { + "Position": { + "X": 659.1685, + "Y": -46.65159, + "Z": 499.8015 + }, + "MinimumAngle": 0, + "MaximumAngle": 125 + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 32834, + "Locations": [ + { + "Position": { + "X": 576.1583, + "Y": -46.68682, + "Z": 375.5306 + }, + "MinimumAngle": -40, + "MaximumAngle": 150 + } + ] + }, + { + "DataId": 32833, + "Locations": [ + { + "Position": { + "X": 571.1834, + "Y": -46.41214, + "Z": 360.5112 + }, + "MinimumAngle": 0, + "MaximumAngle": 115 + } + ] + } + ] + } + ] +} From 21fde119ba513747b3a62de9bafac2bde420e5ea Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Mon, 16 Sep 2024 23:09:07 +0200 Subject: [PATCH 272/450] Attune to the High Crucible in Radz-at-Han when first visiting the city --- .../The Ruby Sea/533_The Turquoise Trench_MIN.json | 4 ++-- .../MSQ/A-Thavnair1-Labyrinthos1/4379_The Color of Joy.json | 5 +++++ .../Side Quests/Radz-at-Han/4269_A Bond Eternal.json | 6 ------ 3 files changed, 7 insertions(+), 8 deletions(-) diff --git a/GatheringPaths/4.x - Stormblood/The Ruby Sea/533_The Turquoise Trench_MIN.json b/GatheringPaths/4.x - Stormblood/The Ruby Sea/533_The Turquoise Trench_MIN.json index c3dd904a..2e69433a 100644 --- a/GatheringPaths/4.x - Stormblood/The Ruby Sea/533_The Turquoise Trench_MIN.json +++ b/GatheringPaths/4.x - Stormblood/The Ruby Sea/533_The Turquoise Trench_MIN.json @@ -40,7 +40,7 @@ "Z": 634.821 }, "MinimumAngle": 45, - "MaximumAngle": 90, + "MaximumAngle": 65, "MinimumDistance": 1.6, "MaximumDistance": 3 }, @@ -140,4 +140,4 @@ ] } ] -} +} \ No newline at end of file diff --git a/QuestPaths/6.x - Endwalker/MSQ/A-Thavnair1-Labyrinthos1/4379_The Color of Joy.json b/QuestPaths/6.x - Endwalker/MSQ/A-Thavnair1-Labyrinthos1/4379_The Color of Joy.json index 0ba09440..1ea30440 100644 --- a/QuestPaths/6.x - Endwalker/MSQ/A-Thavnair1-Labyrinthos1/4379_The Color of Joy.json +++ b/QuestPaths/6.x - Endwalker/MSQ/A-Thavnair1-Labyrinthos1/4379_The Color of Joy.json @@ -85,6 +85,11 @@ { "Sequence": 5, "Steps": [ + { + "TerritoryId": 963, + "InteractionType": "AttuneAethernetShard", + "AethernetShard": "[Radz-at-Han] The High Crucible of Al-Kimiya" + }, { "DataId": 1040276, "Position": { diff --git a/QuestPaths/6.x - Endwalker/Side Quests/Radz-at-Han/4269_A Bond Eternal.json b/QuestPaths/6.x - Endwalker/Side Quests/Radz-at-Han/4269_A Bond Eternal.json index ee958f79..c3934566 100644 --- a/QuestPaths/6.x - Endwalker/Side Quests/Radz-at-Han/4269_A Bond Eternal.json +++ b/QuestPaths/6.x - Endwalker/Side Quests/Radz-at-Han/4269_A Bond Eternal.json @@ -49,12 +49,6 @@ { "Sequence": 255, "Steps": [ - { - "TerritoryId": 963, - "InteractionType": "AttuneAethernetShard", - "AethernetShard": "[Radz-at-Han] The High Crucible of Al-Kimiya", - "$": "TODO This happens in Post-EW MSQ only; should maybe move this to when we're around the alchemist area earlier" - }, { "Position": { "X": -21.53136, From 5288cc6e31650d226c6019fe0ef6e67147027867 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Tue, 17 Sep 2024 19:37:28 +0200 Subject: [PATCH 273/450] Handle 'Action canceled, you are under attack' while e.g. talking to an NPC --- Directory.Build.targets | 2 +- .../Questing/EEnemySpawnType.cs | 1 + Questionable/Controller/CombatController.cs | 10 ++- Questionable/Controller/CommandHandler.cs | 4 + .../Controller/GatheringController.cs | 15 ++-- Questionable/Controller/MiniTaskController.cs | 40 +++++---- Questionable/Controller/MovementController.cs | 2 +- Questionable/Controller/QuestController.cs | 85 +++++++++++++------ Questionable/Controller/Steps/Common/Mount.cs | 4 + Questionable/Controller/Steps/ITask.cs | 2 + .../Controller/Steps/Interactions/Combat.cs | 15 ++-- .../Controller/Steps/Shared/MoveTo.cs | 6 ++ Questionable/Controller/Steps/TaskQueue.cs | 67 +++++++++++++++ 13 files changed, 187 insertions(+), 66 deletions(-) create mode 100644 Questionable/Controller/Steps/TaskQueue.cs diff --git a/Directory.Build.targets b/Directory.Build.targets index aa6b3b27..7a37148a 100644 --- a/Directory.Build.targets +++ b/Directory.Build.targets @@ -1,5 +1,5 @@ - 3.3 + 3.4 diff --git a/Questionable.Model/Questing/EEnemySpawnType.cs b/Questionable.Model/Questing/EEnemySpawnType.cs index aaf9d789..b7e5332e 100644 --- a/Questionable.Model/Questing/EEnemySpawnType.cs +++ b/Questionable.Model/Questing/EEnemySpawnType.cs @@ -13,4 +13,5 @@ public enum EEnemySpawnType AutoOnEnterArea, OverworldEnemies, FateEnemies, + QuestInterruption, } diff --git a/Questionable/Controller/CombatController.cs b/Questionable/Controller/CombatController.cs index 26c4fa5c..d3572780 100644 --- a/Questionable/Controller/CombatController.cs +++ b/Questionable/Controller/CombatController.cs @@ -75,6 +75,7 @@ internal sealed class CombatController : IDisposable Module = combatModule, Data = combatData, }; + _wasInCombat = combatData.SpawnType == EEnemySpawnType.QuestInterruption; return true; } else @@ -86,7 +87,9 @@ internal sealed class CombatController : IDisposable if (_currentFight == null) return EStatus.Complete; - if (_movementController.IsPathfinding || _movementController.IsPathRunning || _movementController.MovementStartedAt > DateTime.Now.AddSeconds(-1)) + if (_movementController.IsPathfinding || + _movementController.IsPathRunning || + _movementController.MovementStartedAt > DateTime.Now.AddSeconds(-1)) return EStatus.Moving; var target = _targetManager.Target; @@ -111,6 +114,8 @@ internal sealed class CombatController : IDisposable else { var nextTarget = FindNextTarget(); + _logger.LogInformation("NT → {NT}", nextTarget); + if (nextTarget is { IsDead: false }) SetTarget(nextTarget); } @@ -335,7 +340,7 @@ internal sealed class CombatController : IDisposable public sealed class CombatData { - public required ElementId ElementId { get; init; } + public required ElementId? ElementId { get; init; } public required EEnemySpawnType SpawnType { get; init; } public required List KillEnemyDataIds { get; init; } public required List ComplexCombatDatas { get; init; } @@ -345,6 +350,7 @@ internal sealed class CombatController : IDisposable public enum EStatus { + NotStarted, InCombat, Moving, Complete, diff --git a/Questionable/Controller/CommandHandler.cs b/Questionable/Controller/CommandHandler.cs index 776f615a..d532b0ea 100644 --- a/Questionable/Controller/CommandHandler.cs +++ b/Questionable/Controller/CommandHandler.cs @@ -122,6 +122,10 @@ internal sealed class CommandHandler : IDisposable PrintMountId(); break; + case "handle-interrupt": + _questController.InterruptQueueWithCombat(); + break; + case "": _questWindow.Toggle(); break; diff --git a/Questionable/Controller/GatheringController.cs b/Questionable/Controller/GatheringController.cs index 77860f7e..bbad03d3 100644 --- a/Questionable/Controller/GatheringController.cs +++ b/Questionable/Controller/GatheringController.cs @@ -129,7 +129,7 @@ internal sealed unsafe class GatheringController : MiniTaskController 0) + if (!_taskQueue.AllTasksComplete) return; var director = UIState.Instance()->DirectorTodo.Director; @@ -267,8 +266,8 @@ internal sealed unsafe class GatheringController : MiniTaskController GetRemainingTaskNames() { - if (_currentTask != null) - return [_currentTask.ToString() ?? "?", .. base.GetRemainingTaskNames()]; + if (_taskQueue.CurrentTask is {} currentTask) + return [currentTask.ToString() ?? "?", .. base.GetRemainingTaskNames()]; else return base.GetRemainingTaskNames(); } @@ -277,10 +276,10 @@ internal sealed unsafe class GatheringController : MiniTaskController { protected readonly IChatGui _chatGui; protected readonly ILogger _logger; + protected readonly TaskQueue _taskQueue = new(); - protected readonly Queue _taskQueue = new(); - protected ITask? _currentTask; - - public MiniTaskController(IChatGui chatGui, ILogger logger) + protected MiniTaskController(IChatGui chatGui, ILogger logger) { _chatGui = chatGui; _logger = logger; @@ -24,7 +22,7 @@ internal abstract class MiniTaskController protected virtual void UpdateCurrentTask() { - if (_currentTask == null) + if (_taskQueue.CurrentTask == null) { if (_taskQueue.TryDequeue(out ITask? upcomingTask)) { @@ -33,7 +31,7 @@ internal abstract class MiniTaskController _logger.LogInformation("Starting task {TaskName}", upcomingTask.ToString()); if (upcomingTask.Start()) { - _currentTask = upcomingTask; + _taskQueue.CurrentTask = upcomingTask; return; } else @@ -58,13 +56,13 @@ internal abstract class MiniTaskController ETaskResult result; try { - result = _currentTask.Update(); + result = _taskQueue.CurrentTask.Update(); } catch (Exception e) { - _logger.LogError(e, "Failed to update task {TaskName}", _currentTask.ToString()); + _logger.LogError(e, "Failed to update task {TaskName}", _taskQueue.CurrentTask.ToString()); _chatGui.PrintError( - $"[Questionable] Failed to update task '{_currentTask}', please check /xllog for details."); + $"[Questionable] Failed to update task '{_taskQueue.CurrentTask}', please check /xllog for details."); Stop("Task failed to update"); return; } @@ -76,14 +74,14 @@ internal abstract class MiniTaskController case ETaskResult.SkipRemainingTasksForStep: _logger.LogInformation("{Task} → {Result}, skipping remaining tasks for step", - _currentTask, result); - _currentTask = null; + _taskQueue.CurrentTask, result); + _taskQueue.CurrentTask = null; while (_taskQueue.TryDequeue(out ITask? nextTask)) { if (nextTask is ILastTask or Gather.SkipMarker) { - _currentTask = nextTask; + _taskQueue.CurrentTask = nextTask; return; } } @@ -92,27 +90,27 @@ internal abstract class MiniTaskController case ETaskResult.TaskComplete: _logger.LogInformation("{Task} → {Result}, remaining tasks: {RemainingTaskCount}", - _currentTask, result, _taskQueue.Count); + _taskQueue.CurrentTask, result, _taskQueue.RemainingTasks.Count()); - OnTaskComplete(_currentTask); + OnTaskComplete(_taskQueue.CurrentTask); - _currentTask = null; + _taskQueue.CurrentTask = null; // handled in next update return; case ETaskResult.NextStep: - _logger.LogInformation("{Task} → {Result}", _currentTask, result); + _logger.LogInformation("{Task} → {Result}", _taskQueue.CurrentTask, result); - var lastTask = (ILastTask)_currentTask; - _currentTask = null; + var lastTask = (ILastTask)_taskQueue.CurrentTask; + _taskQueue.CurrentTask = null; OnNextStep(lastTask); return; case ETaskResult.End: - _logger.LogInformation("{Task} → {Result}", _currentTask, result); - _currentTask = null; + _logger.LogInformation("{Task} → {Result}", _taskQueue.CurrentTask, result); + _taskQueue.CurrentTask = null; Stop("Task end"); return; } @@ -130,5 +128,5 @@ internal abstract class MiniTaskController public abstract void Stop(string label); public virtual IList GetRemainingTaskNames() => - _taskQueue.Select(x => x.ToString() ?? "?").ToList(); + _taskQueue.RemainingTasks.Select(x => x.ToString() ?? "?").ToList(); } diff --git a/Questionable/Controller/MovementController.cs b/Questionable/Controller/MovementController.cs index 95950e14..bf10142f 100644 --- a/Questionable/Controller/MovementController.cs +++ b/Questionable/Controller/MovementController.cs @@ -85,7 +85,7 @@ internal sealed class MovementController : IDisposable public bool IsPathfinding => _pathfindTask is { IsCompleted: false }; public DestinationData? Destination { get; set; } - public DateTime MovementStartedAt { get; private set; } = DateTime.MaxValue; + public DateTime MovementStartedAt { get; private set; } = DateTime.Now; public void Update() { diff --git a/Questionable/Controller/QuestController.cs b/Questionable/Controller/QuestController.cs index 6a0934aa..1b0988b9 100644 --- a/Questionable/Controller/QuestController.cs +++ b/Questionable/Controller/QuestController.cs @@ -8,7 +8,9 @@ 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; @@ -18,6 +20,8 @@ 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; @@ -36,6 +40,10 @@ internal sealed class QuestController : MiniTaskController, IDi private readonly Configuration _configuration; private readonly YesAlreadyIpc _yesAlreadyIpc; private readonly TaskCreator _taskCreator; + private readonly Mount.Factory _mountFactory; + private readonly Combat.Factory _combatFactory; + + private readonly string _actionCanceledText; private readonly object _progressLock = new(); @@ -73,7 +81,10 @@ internal sealed class QuestController : MiniTaskController, IDi IToastGui toastGui, Configuration configuration, YesAlreadyIpc yesAlreadyIpc, - TaskCreator taskCreator) + TaskCreator taskCreator, + Mount.Factory mountFactory, + Combat.Factory combatFactory, + IDataManager dataManager) : base(chatGui, logger) { _clientState = clientState; @@ -89,10 +100,14 @@ internal sealed class QuestController : MiniTaskController, IDi _configuration = configuration; _yesAlreadyIpc = yesAlreadyIpc; _taskCreator = taskCreator; + _mountFactory = mountFactory; + _combatFactory = combatFactory; _condition.ConditionChange += OnConditionChange; _toastGui.Toast += OnNormalToast; _toastGui.ErrorToast += OnErrorToast; + + _actionCanceledText = dataManager.GetString(1314, x => x.Text)!; } public EAutomationType AutomationType @@ -181,7 +196,7 @@ internal sealed class QuestController : MiniTaskController, IDi if (!_clientState.IsLoggedIn || _condition[ConditionFlag.Unconscious]) { - if (_currentTask != null || _taskQueue.Count > 0) + if (!_taskQueue.AllTasksComplete) { Stop("HP = 0"); _movementController.Stop(); @@ -191,7 +206,7 @@ internal sealed class QuestController : MiniTaskController, IDi } else if (_configuration.General.UseEscToCancelQuesting && _keyState[VirtualKey.ESCAPE]) { - if (_currentTask != null || _taskQueue.Count > 0) + if (!_taskQueue.AllTasksComplete) { Stop("ESC pressed"); _movementController.Stop(); @@ -204,8 +219,7 @@ internal sealed class QuestController : MiniTaskController, IDi return; if (AutomationType == EAutomationType.Automatic && - ((_currentTask == null && _taskQueue.Count == 0) || - _currentTask is WaitAtEnd.WaitQuestAccepted) + (_taskQueue.AllTasksComplete || _taskQueue.CurrentTask is WaitAtEnd.WaitQuestAccepted) && CurrentQuest is { Sequence: 0, Step: 0 } or { Sequence: 0, Step: 255 } && DateTime.Now >= CurrentQuest.StepProgress.StartedAt.AddSeconds(15)) { @@ -276,8 +290,7 @@ internal sealed class QuestController : MiniTaskController, IDi questToRun = _nextQuest; currentSequence = _nextQuest.Sequence; // by definition, this should always be 0 if (_nextQuest.Step == 0 && - _currentTask == null && - _taskQueue.Count == 0 && + _taskQueue.AllTasksComplete && AutomationType == EAutomationType.Automatic) ExecuteNextStep(); } @@ -286,8 +299,7 @@ internal sealed class QuestController : MiniTaskController, IDi questToRun = _gatheringQuest; currentSequence = _gatheringQuest.Sequence; if (_gatheringQuest.Step == 0 && - _currentTask == null && - _taskQueue.Count == 0 && + _taskQueue.AllTasksComplete && AutomationType == EAutomationType.Automatic) ExecuteNextStep(); } @@ -392,7 +404,7 @@ internal sealed class QuestController : MiniTaskController, IDi if (questToRun.Step == 255) { DebugState = "Step completed"; - if (_currentTask != null || _taskQueue.Count > 0) + if (!_taskQueue.AllTasksComplete) CheckNextTasks("Step complete"); return; } @@ -465,10 +477,7 @@ internal sealed class QuestController : MiniTaskController, IDi private void ClearTasksInternal() { //_logger.LogDebug("Clearing task (internally)"); - _currentTask = null; - - if (_taskQueue.Count > 0) - _taskQueue.Clear(); + _taskQueue.Reset(); _yesAlreadyIpc.RestoreYesAlready(); _combatController.Stop("ClearTasksInternal"); @@ -629,13 +638,15 @@ internal sealed class QuestController : MiniTaskController, IDi public string ToStatString() { - return _currentTask == null ? $"- (+{_taskQueue.Count})" : $"{_currentTask} (+{_taskQueue.Count})"; + return _taskQueue.CurrentTask is { } currentTask + ? $"{currentTask} (+{_taskQueue.RemainingTasks.Count()})" + : $"- (+{_taskQueue.RemainingTasks.Count()})"; } public bool HasCurrentTaskMatching([NotNullWhen(true)] out T? task) where T : class, ITask { - if (_currentTask is T t) + if (_taskQueue.CurrentTask is T t) { task = t; return true; @@ -647,7 +658,7 @@ internal sealed class QuestController : MiniTaskController, IDi } } - public bool IsRunning => _currentTask != null || _taskQueue.Count > 0; + public bool IsRunning => !_taskQueue.AllTasksComplete; public sealed class QuestProgress { @@ -687,19 +698,19 @@ internal sealed class QuestController : MiniTaskController, IDi { lock (_progressLock) { - if (_currentTask is ISkippableTask) - _currentTask = null; - else if (_currentTask != null) + if (_taskQueue.CurrentTask is ISkippableTask) + _taskQueue.CurrentTask = null; + else if (_taskQueue.CurrentTask != null) { - _currentTask = null; - while (_taskQueue.Count > 0) + _taskQueue.CurrentTask = null; + while (_taskQueue.TryPeek(out ITask? task)) { - var task = _taskQueue.Dequeue(); + _taskQueue.TryDequeue(out _); if (task is ISkippableTask) return; } - if (_taskQueue.Count == 0) + if (_taskQueue.AllTasksComplete) { Stop("Skip"); IncreaseStepCount(elementId, currentQuestSequence); @@ -715,7 +726,7 @@ internal sealed class QuestController : MiniTaskController, IDi public void SkipSimulatedTask() { - _currentTask = null; + _taskQueue.CurrentTask = null; } public bool IsInterruptible() @@ -774,7 +785,7 @@ internal sealed class QuestController : MiniTaskController, IDi private void OnConditionChange(ConditionFlag flag, bool value) { - if (_currentTask is IConditionChangeAware conditionChangeAware) + if (_taskQueue.CurrentTask is IConditionChangeAware conditionChangeAware) conditionChangeAware.OnConditionChange(flag, value); } @@ -785,13 +796,33 @@ internal sealed class QuestController : MiniTaskController, IDi private void OnErrorToast(ref SeString message, ref bool isHandled) { - if (_currentTask is IToastAware toastAware) + _logger.LogWarning("XXX {A} → {B} XXX", _actionCanceledText, message.TextValue); + if (_taskQueue.CurrentTask is IToastAware toastAware) { if (toastAware.OnErrorToast(message)) { isHandled = true; } } + + if (!isHandled) + { + if (GameFunctions.GameStringEquals(_actionCanceledText, message.TextValue) && + !_condition[ConditionFlag.InFlight]) + InterruptQueueWithCombat(); + } + } + + public void InterruptQueueWithCombat() + { + _logger.LogWarning("Interrupted with action canceled message, attempting to resolve"); + List tasks = []; + if (_condition[ConditionFlag.Mounted]) + tasks.Add(_mountFactory.Unmount()); + + tasks.Add(_combatFactory.CreateTask(null, false, EEnemySpawnType.QuestInterruption, [], [], [])); + tasks.Add(new WaitAtEnd.WaitDelay()); + _taskQueue.InterruptWith(tasks); } public void Dispose() diff --git a/Questionable/Controller/Steps/Common/Mount.cs b/Questionable/Controller/Steps/Common/Mount.cs index 9502455c..958bf2d7 100644 --- a/Questionable/Controller/Steps/Common/Mount.cs +++ b/Questionable/Controller/Steps/Common/Mount.cs @@ -46,6 +46,8 @@ internal static class Mount private bool _mountTriggered; private DateTime _retryAt = DateTime.MinValue; + public bool ShouldRedoOnInterrupt() => true; + public bool Start() { if (condition[ConditionFlag.Mounted]) @@ -129,6 +131,8 @@ internal static class Mount private bool _unmountTriggered; private DateTime _continueAt = DateTime.MinValue; + public bool ShouldRedoOnInterrupt() => true; + public bool Start() { if (!condition[ConditionFlag.Mounted]) diff --git a/Questionable/Controller/Steps/ITask.cs b/Questionable/Controller/Steps/ITask.cs index 8354406d..0ddc9621 100644 --- a/Questionable/Controller/Steps/ITask.cs +++ b/Questionable/Controller/Steps/ITask.cs @@ -5,6 +5,8 @@ namespace Questionable.Controller.Steps; internal interface ITask { + bool ShouldRedoOnInterrupt() => false; + bool Start(); ETaskResult Update(); diff --git a/Questionable/Controller/Steps/Interactions/Combat.cs b/Questionable/Controller/Steps/Interactions/Combat.cs index 38b62286..170883a3 100644 --- a/Questionable/Controller/Steps/Interactions/Combat.cs +++ b/Questionable/Controller/Steps/Interactions/Combat.cs @@ -101,7 +101,7 @@ internal static class Combat step.CompletionQuestVariablesFlags, step.ComplexCombatData); } - private HandleCombat CreateTask(ElementId elementId, bool isLastStep, EEnemySpawnType enemySpawnType, + internal HandleCombat CreateTask(ElementId? elementId, bool isLastStep, EEnemySpawnType enemySpawnType, IList killEnemyDataIds, IList completionQuestVariablesFlags, IList complexCombatData) { @@ -115,18 +115,21 @@ internal static class Combat } } - private sealed class HandleCombat( + internal sealed class HandleCombat( bool isLastStep, CombatController.CombatData combatData, IList completionQuestVariableFlags, CombatController combatController, QuestFunctions questFunctions) : ITask { + private CombatController.EStatus _status = CombatController.EStatus.NotStarted; + public bool Start() => combatController.Start(combatData); public ETaskResult Update() { - if (combatController.Update() != CombatController.EStatus.Complete) + _status = combatController.Update(); + if (_status != CombatController.EStatus.Complete) return ETaskResult.StillRunning; // if our quest step has any completion flags, we need to check if they are set @@ -157,11 +160,11 @@ internal static class Combat public override string ToString() { if (QuestWorkUtils.HasCompletionFlags(completionQuestVariableFlags)) - return "HandleCombat(wait: QW flags)"; + return $"HandleCombat(wait: QW flags, s: {_status})"; else if (isLastStep) - return "HandleCombat(wait: next sequence)"; + return $"HandleCombat(wait: next sequence, s: {_status})"; else - return "HandleCombat(wait: not in combat)"; + return $"HandleCombat(wait: not in combat, s: {_status})"; } } } diff --git a/Questionable/Controller/Steps/Shared/MoveTo.cs b/Questionable/Controller/Steps/Shared/MoveTo.cs index cf905a65..f3318e0e 100644 --- a/Questionable/Controller/Steps/Shared/MoveTo.cs +++ b/Questionable/Controller/Steps/Shared/MoveTo.cs @@ -173,6 +173,8 @@ internal static class MoveTo _canRestart = moveParams.RestartNavigation; } + public bool ShouldRedoOnInterrupt() => true; + public bool Start() { float stopDistance = _moveParams.StopDistance ?? QuestStep.DefaultStopDistance; @@ -313,6 +315,8 @@ internal static class MoveTo GameFunctions gameFunctions, IClientState clientState) : ITask { + public bool ShouldRedoOnInterrupt() => true; + public bool Start() => true; public ETaskResult Update() @@ -333,6 +337,8 @@ internal static class MoveTo private bool _landing; private DateTime _continueAt; + public bool ShouldRedoOnInterrupt() => true; + public bool Start() { if (!condition[ConditionFlag.InFlight]) diff --git a/Questionable/Controller/Steps/TaskQueue.cs b/Questionable/Controller/Steps/TaskQueue.cs new file mode 100644 index 00000000..142413c4 --- /dev/null +++ b/Questionable/Controller/Steps/TaskQueue.cs @@ -0,0 +1,67 @@ +using System.Collections.Generic; +using System.Diagnostics.CodeAnalysis; +using System.Linq; + +namespace Questionable.Controller.Steps; + +internal sealed class TaskQueue +{ + private readonly List _tasks = []; + private int _currentTaskIndex; + public ITask? CurrentTask { get; set; } + + public IEnumerable RemainingTasks => _tasks.Skip(_currentTaskIndex); + public bool AllTasksComplete => CurrentTask == null && _currentTaskIndex >= _tasks.Count; + + public void Enqueue(ITask task) + { + _tasks.Add(task); + } + + public bool TryDequeue([NotNullWhen(true)] out ITask? task) + { + if (_currentTaskIndex >= _tasks.Count) + { + task = null; + return false; + } + + task = _tasks[_currentTaskIndex]; + if (task.ShouldRedoOnInterrupt()) + _currentTaskIndex++; + else + _tasks.RemoveAt(0); + return true; + } + + public bool TryPeek([NotNullWhen(true)] out ITask? task) + { + if (_currentTaskIndex >= _tasks.Count) + { + task = null; + return false; + } + + task = _tasks[_currentTaskIndex]; + return true; + } + + public void Reset() + { + _tasks.Clear(); + _currentTaskIndex = 0; + CurrentTask = null; + } + + public void InterruptWith(List interruptionTasks) + { + if (CurrentTask != null) + { + _tasks.Insert(0, CurrentTask); + CurrentTask = null; + _currentTaskIndex = 0; + } + + _tasks.InsertRange(0, interruptionTasks); + } +} From 721f9617a303568c1fbfc5341cf62a40a61ed598 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Wed, 18 Sep 2024 00:30:56 +0200 Subject: [PATCH 274/450] Handle certain interaction interruptions --- Questionable/Controller/CombatController.cs | 2 - .../Controller/GatheringController.cs | 5 +- Questionable/Controller/MiniTaskController.cs | 42 +++++++- Questionable/Controller/QuestController.cs | 23 ++--- .../Steps/Common/AbstractDelayedTask.cs | 2 + Questionable/Controller/Steps/Common/Mount.cs | 6 +- Questionable/Controller/Steps/ITask.cs | 14 +++ .../Steps/InteractionProgressContext.cs | 97 +++++++++++++++++++ .../Steps/Interactions/AetherCurrent.cs | 16 ++- .../Steps/Interactions/AethernetShard.cs | 7 +- .../Steps/Interactions/Aetheryte.cs | 8 +- .../Controller/Steps/Interactions/Interact.cs | 46 ++------- .../Controller/Steps/Interactions/UseItem.cs | 7 +- .../Steps/Shared/AetheryteShortcut.cs | 23 +++-- .../Controller/Steps/Shared/MoveTo.cs | 2 + Questionable/Controller/Steps/TaskQueue.cs | 48 ++++----- 16 files changed, 244 insertions(+), 104 deletions(-) create mode 100644 Questionable/Controller/Steps/InteractionProgressContext.cs diff --git a/Questionable/Controller/CombatController.cs b/Questionable/Controller/CombatController.cs index d3572780..eaf311cb 100644 --- a/Questionable/Controller/CombatController.cs +++ b/Questionable/Controller/CombatController.cs @@ -114,8 +114,6 @@ internal sealed class CombatController : IDisposable else { var nextTarget = FindNextTarget(); - _logger.LogInformation("NT → {NT}", nextTarget); - if (nextTarget is { IsDead: false }) SetTarget(nextTarget); } diff --git a/Questionable/Controller/GatheringController.cs b/Questionable/Controller/GatheringController.cs index bbad03d3..48147fc7 100644 --- a/Questionable/Controller/GatheringController.cs +++ b/Questionable/Controller/GatheringController.cs @@ -43,6 +43,7 @@ internal sealed unsafe class GatheringController : MiniTaskController _logger; private readonly Regex _revisitRegex; private CurrentRequest? _currentRequest; @@ -51,6 +52,7 @@ internal sealed unsafe class GatheringController : MiniTaskController(5574, x => x.Text, pluginLog) ?? throw new InvalidDataException("No regex found for revisit message"); diff --git a/Questionable/Controller/MiniTaskController.cs b/Questionable/Controller/MiniTaskController.cs index 0ec7bd67..b3e6bd54 100644 --- a/Questionable/Controller/MiniTaskController.cs +++ b/Questionable/Controller/MiniTaskController.cs @@ -1,23 +1,35 @@ using System; using System.Collections.Generic; using System.Linq; +using Dalamud.Game.ClientState.Conditions; using Dalamud.Plugin.Services; using Microsoft.Extensions.Logging; using Questionable.Controller.Steps; +using Questionable.Controller.Steps.Common; +using Questionable.Controller.Steps.Interactions; using Questionable.Controller.Steps.Shared; +using Questionable.Model.Questing; namespace Questionable.Controller; internal abstract class MiniTaskController { - protected readonly IChatGui _chatGui; - protected readonly ILogger _logger; protected readonly TaskQueue _taskQueue = new(); - protected MiniTaskController(IChatGui chatGui, ILogger logger) + private readonly IChatGui _chatGui; + private readonly Mount.Factory _mountFactory; + private readonly Combat.Factory _combatFactory; + private readonly ICondition _condition; + private readonly ILogger _logger; + + protected MiniTaskController(IChatGui chatGui, Mount.Factory mountFactory, Combat.Factory combatFactory, + ICondition condition, ILogger logger) { _chatGui = chatGui; _logger = logger; + _mountFactory = mountFactory; + _combatFactory = combatFactory; + _condition = condition; } protected virtual void UpdateCurrentTask() @@ -56,6 +68,12 @@ internal abstract class MiniTaskController ETaskResult result; try { + if (_taskQueue.CurrentTask.WasInterrupted()) + { + InterruptQueueWithCombat(); + return; + } + result = _taskQueue.CurrentTask.Update(); } catch (Exception e) @@ -122,11 +140,27 @@ internal abstract class MiniTaskController protected virtual void OnNextStep(ILastTask task) { - } public abstract void Stop(string label); public virtual IList GetRemainingTaskNames() => _taskQueue.RemainingTasks.Select(x => x.ToString() ?? "?").ToList(); + + public void InterruptQueueWithCombat() + { + _logger.LogWarning("Interrupted, attempting to resolve (if in combat)"); + if (_condition[ConditionFlag.InCombat]) + { + List tasks = []; + if (_condition[ConditionFlag.Mounted]) + tasks.Add(_mountFactory.Unmount()); + + tasks.Add(_combatFactory.CreateTask(null, false, EEnemySpawnType.QuestInterruption, [], [], [])); + tasks.Add(new WaitAtEnd.WaitDelay()); + _taskQueue.InterruptWith(tasks); + } + else + _taskQueue.InterruptWith([new WaitAtEnd.WaitDelay()]); + } } diff --git a/Questionable/Controller/QuestController.cs b/Questionable/Controller/QuestController.cs index 1b0988b9..8ebf576d 100644 --- a/Questionable/Controller/QuestController.cs +++ b/Questionable/Controller/QuestController.cs @@ -35,13 +35,13 @@ internal sealed class QuestController : MiniTaskController, IDi private readonly GatheringController _gatheringController; private readonly QuestRegistry _questRegistry; private readonly IKeyState _keyState; + private readonly IChatGui _chatGui; private readonly ICondition _condition; private readonly IToastGui _toastGui; private readonly Configuration _configuration; private readonly YesAlreadyIpc _yesAlreadyIpc; private readonly TaskCreator _taskCreator; - private readonly Mount.Factory _mountFactory; - private readonly Combat.Factory _combatFactory; + private readonly ILogger _logger; private readonly string _actionCanceledText; @@ -85,7 +85,7 @@ internal sealed class QuestController : MiniTaskController, IDi Mount.Factory mountFactory, Combat.Factory combatFactory, IDataManager dataManager) - : base(chatGui, logger) + : base(chatGui, mountFactory, combatFactory, condition, logger) { _clientState = clientState; _gameFunctions = gameFunctions; @@ -95,13 +95,13 @@ internal sealed class QuestController : MiniTaskController, IDi _gatheringController = gatheringController; _questRegistry = questRegistry; _keyState = keyState; + _chatGui = chatGui; _condition = condition; _toastGui = toastGui; _configuration = configuration; _yesAlreadyIpc = yesAlreadyIpc; _taskCreator = taskCreator; - _mountFactory = mountFactory; - _combatFactory = combatFactory; + _logger = logger; _condition.ConditionChange += OnConditionChange; _toastGui.Toast += OnNormalToast; @@ -659,6 +659,7 @@ internal sealed class QuestController : MiniTaskController, IDi } public bool IsRunning => !_taskQueue.AllTasksComplete; + public TaskQueue TaskQueue => _taskQueue; public sealed class QuestProgress { @@ -813,18 +814,6 @@ internal sealed class QuestController : MiniTaskController, IDi } } - public void InterruptQueueWithCombat() - { - _logger.LogWarning("Interrupted with action canceled message, attempting to resolve"); - List tasks = []; - if (_condition[ConditionFlag.Mounted]) - tasks.Add(_mountFactory.Unmount()); - - tasks.Add(_combatFactory.CreateTask(null, false, EEnemySpawnType.QuestInterruption, [], [], [])); - tasks.Add(new WaitAtEnd.WaitDelay()); - _taskQueue.InterruptWith(tasks); - } - public void Dispose() { _toastGui.ErrorToast -= OnErrorToast; diff --git a/Questionable/Controller/Steps/Common/AbstractDelayedTask.cs b/Questionable/Controller/Steps/Common/AbstractDelayedTask.cs index e4586fb8..abd6514f 100644 --- a/Questionable/Controller/Steps/Common/AbstractDelayedTask.cs +++ b/Questionable/Controller/Steps/Common/AbstractDelayedTask.cs @@ -18,6 +18,8 @@ internal abstract class AbstractDelayedTask : ITask { } + public virtual InteractionProgressContext? ProgressContext() => null; + public bool Start() { _continueAt = DateTime.Now.Add(Delay); diff --git a/Questionable/Controller/Steps/Common/Mount.cs b/Questionable/Controller/Steps/Common/Mount.cs index 958bf2d7..f067066c 100644 --- a/Questionable/Controller/Steps/Common/Mount.cs +++ b/Questionable/Controller/Steps/Common/Mount.cs @@ -44,8 +44,11 @@ internal static class Mount ILogger logger) : ITask { private bool _mountTriggered; + private InteractionProgressContext? _progressContext; private DateTime _retryAt = DateTime.MinValue; + public InteractionProgressContext? ProgressContext() => _progressContext; + public bool ShouldRedoOnInterrupt() => true; public bool Start() @@ -108,7 +111,8 @@ internal static class Mount return ETaskResult.TaskComplete; } - _mountTriggered = gameFunctions.Mount(); + _progressContext = InteractionProgressContext.FromActionUse(() => _mountTriggered = gameFunctions.Mount()); + _retryAt = DateTime.Now.AddSeconds(5); return ETaskResult.StillRunning; } diff --git a/Questionable/Controller/Steps/ITask.cs b/Questionable/Controller/Steps/ITask.cs index 0ddc9621..a8442c76 100644 --- a/Questionable/Controller/Steps/ITask.cs +++ b/Questionable/Controller/Steps/ITask.cs @@ -5,6 +5,20 @@ namespace Questionable.Controller.Steps; internal interface ITask { + InteractionProgressContext? ProgressContext() => null; + + bool WasInterrupted() + { + var progressContext = ProgressContext(); + if (progressContext != null) + { + progressContext.Update(); + return progressContext.WasInterrupted(); + } + + return false; + } + bool ShouldRedoOnInterrupt() => false; bool Start(); diff --git a/Questionable/Controller/Steps/InteractionProgressContext.cs b/Questionable/Controller/Steps/InteractionProgressContext.cs new file mode 100644 index 00000000..a943ed5f --- /dev/null +++ b/Questionable/Controller/Steps/InteractionProgressContext.cs @@ -0,0 +1,97 @@ +using System; +using FFXIVClientStructs.FFXIV.Client.Game; + +namespace Questionable.Controller.Steps; + +internal sealed class InteractionProgressContext +{ + private bool _firstUpdateDone; + public bool CheckSequence { get; private set; } + public int CurrentSequence { get; private set; } + + private InteractionProgressContext(bool checkSequence, int currentSequence) + { + CheckSequence = checkSequence; + CurrentSequence = currentSequence; + } + + public static unsafe InteractionProgressContext Create(bool checkSequence) + { + if (!checkSequence) + { + // this is a silly hack; we assume that the previous cast was successful + // if not for this, we'd instantly be seen as interrupted + ActionManager.Instance()->CastTimeElapsed = ActionManager.Instance()->CastTimeTotal; + } + + return new InteractionProgressContext(checkSequence, ActionManager.Instance()->LastUsedActionSequence); + } + + private static unsafe (bool, InteractionProgressContext?) FromActionUseInternal(Func func) + { + int oldSequence = ActionManager.Instance()->LastUsedActionSequence; + if (!func()) + return (false, null); + int newSequence = ActionManager.Instance()->LastUsedActionSequence; + if (oldSequence == newSequence) + return (true, null); + return (true, Create(true)); + } + + public static InteractionProgressContext? FromActionUse(Func func) + { + return FromActionUseInternal(func).Item2; + } + + public static InteractionProgressContext? FromActionUseOrDefault(Func func) + { + var result = FromActionUseInternal(func); + if (!result.Item1) + return null; + return result.Item2 ?? Create(false); + } + + public unsafe void Update() + { + if (!_firstUpdateDone) + { + int lastSequence = ActionManager.Instance()->LastUsedActionSequence; + if (!CheckSequence && lastSequence > CurrentSequence) + { + CheckSequence = true; + CurrentSequence = lastSequence; + } + + _firstUpdateDone = true; + } + } + + public unsafe bool WasSuccessful() + { + if (CheckSequence) + { + if (CurrentSequence != ActionManager.Instance()->LastUsedActionSequence || + CurrentSequence != ActionManager.Instance()->LastHandledActionSequence) + return false; + } + + return ActionManager.Instance()->CastTimeElapsed > 0 && + Math.Abs(ActionManager.Instance()->CastTimeElapsed - ActionManager.Instance()->CastTimeTotal) < 0.001f; + } + + public unsafe bool WasInterrupted() + { + if (CheckSequence) + { + if (CurrentSequence == ActionManager.Instance()->LastHandledActionSequence && + CurrentSequence == ActionManager.Instance()->LastUsedActionSequence) + return false; + } + + return ActionManager.Instance()->CastTimeElapsed == 0 && + ActionManager.Instance()->CastTimeTotal > 0; + } + + public override string ToString() => + $"IPCtx({(CheckSequence ? CurrentSequence : "-")} - {WasSuccessful()}, {WasInterrupted()})"; +} diff --git a/Questionable/Controller/Steps/Interactions/AetherCurrent.cs b/Questionable/Controller/Steps/Interactions/AetherCurrent.cs index 45507e80..cbbe6868 100644 --- a/Questionable/Controller/Steps/Interactions/AetherCurrent.cs +++ b/Questionable/Controller/Steps/Interactions/AetherCurrent.cs @@ -32,19 +32,29 @@ internal static class AetherCurrent return null; } - return new DoAttune(step.DataId.Value, step.AetherCurrentId.Value, gameFunctions, loggerFactory.CreateLogger()); + return new DoAttune(step.DataId.Value, step.AetherCurrentId.Value, gameFunctions, + loggerFactory.CreateLogger()); } } - private sealed class DoAttune(uint dataId, uint aetherCurrentId, GameFunctions gameFunctions, ILogger logger) : ITask + private sealed class DoAttune( + uint dataId, + uint aetherCurrentId, + GameFunctions gameFunctions, + ILogger logger) : ITask { + private InteractionProgressContext? _progressContext; + + public InteractionProgressContext? ProgressContext() => _progressContext; + public bool Start() { if (!gameFunctions.IsAetherCurrentUnlocked(aetherCurrentId)) { logger.LogInformation("Attuning to aether current {AetherCurrentId} / {DataId}", aetherCurrentId, dataId); - gameFunctions.InteractWith(dataId); + _progressContext = + InteractionProgressContext.FromActionUseOrDefault(() => gameFunctions.InteractWith(dataId)); return true; } diff --git a/Questionable/Controller/Steps/Interactions/AethernetShard.cs b/Questionable/Controller/Steps/Interactions/AethernetShard.cs index edcf4720..ed5580c8 100644 --- a/Questionable/Controller/Steps/Interactions/AethernetShard.cs +++ b/Questionable/Controller/Steps/Interactions/AethernetShard.cs @@ -34,12 +34,17 @@ internal static class AethernetShard GameFunctions gameFunctions, ILogger logger) : ITask { + private InteractionProgressContext? _progressContext; + + public InteractionProgressContext? ProgressContext() => _progressContext; + public bool Start() { if (!aetheryteFunctions.IsAetheryteUnlocked(aetheryteLocation)) { logger.LogInformation("Attuning to aethernet shard {AethernetShard}", aetheryteLocation); - gameFunctions.InteractWith((uint)aetheryteLocation, ObjectKind.Aetheryte); + _progressContext = InteractionProgressContext.FromActionUseOrDefault(() => + gameFunctions.InteractWith((uint)aetheryteLocation, ObjectKind.Aetheryte)); return true; } diff --git a/Questionable/Controller/Steps/Interactions/Aetheryte.cs b/Questionable/Controller/Steps/Interactions/Aetheryte.cs index 5af0a6a3..eace6409 100644 --- a/Questionable/Controller/Steps/Interactions/Aetheryte.cs +++ b/Questionable/Controller/Steps/Interactions/Aetheryte.cs @@ -33,12 +33,18 @@ internal static class Aetheryte GameFunctions gameFunctions, ILogger logger) : ITask { + private InteractionProgressContext? _progressContext; + + public InteractionProgressContext? ProgressContext() => _progressContext; + public bool Start() { if (!aetheryteFunctions.IsAetheryteUnlocked(aetheryteLocation)) { logger.LogInformation("Attuning to aetheryte {Aetheryte}", aetheryteLocation); - gameFunctions.InteractWith((uint)aetheryteLocation); + _progressContext = + InteractionProgressContext.FromActionUseOrDefault(() => + gameFunctions.InteractWith((uint)aetheryteLocation)); return true; } diff --git a/Questionable/Controller/Steps/Interactions/Interact.cs b/Questionable/Controller/Steps/Interactions/Interact.cs index a88e6dda..020fc66e 100644 --- a/Questionable/Controller/Steps/Interactions/Interact.cs +++ b/Questionable/Controller/Steps/Interactions/Interact.cs @@ -78,10 +78,10 @@ internal static class Interact GameFunctions gameFunctions, ICondition condition, ILogger logger) - : ITask, IConditionChangeAware + : ITask { private bool _needsUnmount; - private EInteractionState _interactionState = EInteractionState.None; + private InteractionProgressContext? _progressContext; private DateTime _continueAt = DateTime.MinValue; public Quest? Quest => quest; @@ -92,6 +92,8 @@ internal static class Interact set => interactionType = value; } + public InteractionProgressContext? ProgressContext() => _progressContext; + public bool Start() { IGameObject? gameObject = gameFunctions.FindObjectByDataId(dataId); @@ -121,9 +123,8 @@ internal static class Interact if (gameObject.IsTargetable && HasAnyMarker(gameObject)) { - _interactionState = gameFunctions.InteractWith(gameObject) - ? EInteractionState.InteractionTriggered - : EInteractionState.None; + _progressContext = + InteractionProgressContext.FromActionUseOrDefault(() => gameFunctions.InteractWith(gameObject)); _continueAt = DateTime.Now.AddSeconds(0.5); return true; } @@ -159,7 +160,7 @@ internal static class Interact } else { - if (_interactionState == EInteractionState.InteractionConfirmed) + if (_progressContext != null && _progressContext.WasSuccessful()) return ETaskResult.TaskComplete; if (interactionType == EInteractionType.Gather && condition[ConditionFlag.Gathering]) @@ -170,9 +171,8 @@ internal static class Interact if (gameObject == null || !gameObject.IsTargetable || !HasAnyMarker(gameObject)) return ETaskResult.StillRunning; - _interactionState = gameFunctions.InteractWith(gameObject) - ? EInteractionState.InteractionTriggered - : EInteractionState.None; + _progressContext = + InteractionProgressContext.FromActionUseOrDefault(() => gameFunctions.InteractWith(gameObject)); _continueAt = DateTime.Now.AddSeconds(0.5); return ETaskResult.StillRunning; } @@ -187,33 +187,5 @@ internal static class Interact } public override string ToString() => $"Interact({dataId})"; - - public void OnConditionChange(ConditionFlag flag, bool value) - { - logger.LogDebug("Condition change: {Flag} = {Value}", flag, value); - if (_interactionState == EInteractionState.InteractionTriggered && - flag is ConditionFlag.OccupiedInQuestEvent or ConditionFlag.OccupiedInEvent && - value) - { - logger.LogInformation("Interaction was most likely triggered"); - _interactionState = EInteractionState.InteractionConfirmed; - } - else if (dataId is >= 1047901 and <= 1047905 && - condition[ConditionFlag.Disguised] && - flag == ConditionFlag - .Mounting71 && // why the fuck is this the flag that's used, instead of OccupiedIn[Quest]Event - value) - { - logger.LogInformation("(A Knight of Alexandria) Interaction was most likely triggered"); - _interactionState = EInteractionState.InteractionConfirmed; - } - } - - private enum EInteractionState - { - None, - InteractionTriggered, - InteractionConfirmed, - } } } diff --git a/Questionable/Controller/Steps/Interactions/UseItem.cs b/Questionable/Controller/Steps/Interactions/UseItem.cs index 8ca5f40a..e4f0de00 100644 --- a/Questionable/Controller/Steps/Interactions/UseItem.cs +++ b/Questionable/Controller/Steps/Interactions/UseItem.cs @@ -160,6 +160,9 @@ internal static class UseItem private bool _usedItem; private DateTime _continueAt; private int _itemCount; + private InteractionProgressContext? _progressContext; + + public InteractionProgressContext? ProgressContext() => _progressContext; public ElementId? QuestId => questId; public uint ItemId => itemId; @@ -178,7 +181,7 @@ internal static class UseItem if (_itemCount == 0) throw new TaskException($"Don't have any {ItemId} in inventory (checks NQ only)"); - _usedItem = UseItem(); + _progressContext = InteractionProgressContext.FromActionUseOrDefault(() => _usedItem = UseItem()); _continueAt = DateTime.Now.Add(GetRetryDelay()); return true; } @@ -221,7 +224,7 @@ internal static class UseItem if (!_usedItem) { - _usedItem = UseItem(); + _progressContext = InteractionProgressContext.FromActionUseOrDefault(() => _usedItem = UseItem()); _continueAt = DateTime.Now.Add(GetRetryDelay()); return ETaskResult.StillRunning; } diff --git a/Questionable/Controller/Steps/Shared/AetheryteShortcut.cs b/Questionable/Controller/Steps/Shared/AetheryteShortcut.cs index 0ac347a2..601c0c9e 100644 --- a/Questionable/Controller/Steps/Shared/AetheryteShortcut.cs +++ b/Questionable/Controller/Steps/Shared/AetheryteShortcut.cs @@ -60,6 +60,9 @@ internal static class AetheryteShortcut { private bool _teleported; private DateTime _continueAt; + private InteractionProgressContext? _progressContext; + + public InteractionProgressContext? ProgressContext() => _progressContext; public bool Start() => !ShouldSkipTeleport(); @@ -200,15 +203,21 @@ internal static class AetheryteShortcut chatGui.PrintError($"[Questionable] Aetheryte {targetAetheryte} is not unlocked."); throw new TaskException("Aetheryte is not unlocked"); } - else if (aetheryteFunctions.TeleportAetheryte(targetAetheryte)) - { - logger.LogInformation("Travelling via aetheryte..."); - return true; - } else { - chatGui.Print("[Questionable] Unable to teleport to aetheryte."); - throw new TaskException("Unable to teleport to aetheryte"); + _progressContext = + InteractionProgressContext.FromActionUseOrDefault(() => aetheryteFunctions.TeleportAetheryte(targetAetheryte)); + logger.LogInformation("Ctx = {C}", _progressContext); + if (_progressContext != null) + { + logger.LogInformation("Travelling via aetheryte..."); + return true; + } + else + { + chatGui.Print("[Questionable] Unable to teleport to aetheryte."); + throw new TaskException("Unable to teleport to aetheryte"); + } } } diff --git a/Questionable/Controller/Steps/Shared/MoveTo.cs b/Questionable/Controller/Steps/Shared/MoveTo.cs index f3318e0e..e6d0cc94 100644 --- a/Questionable/Controller/Steps/Shared/MoveTo.cs +++ b/Questionable/Controller/Steps/Shared/MoveTo.cs @@ -173,6 +173,8 @@ internal static class MoveTo _canRestart = moveParams.RestartNavigation; } + public InteractionProgressContext? ProgressContext() => _mountTask?.ProgressContext(); + public bool ShouldRedoOnInterrupt() => true; public bool Start() diff --git a/Questionable/Controller/Steps/TaskQueue.cs b/Questionable/Controller/Steps/TaskQueue.cs index 142413c4..ff12876f 100644 --- a/Questionable/Controller/Steps/TaskQueue.cs +++ b/Questionable/Controller/Steps/TaskQueue.cs @@ -6,12 +6,12 @@ namespace Questionable.Controller.Steps; internal sealed class TaskQueue { + private readonly List _completedTasks = []; private readonly List _tasks = []; - private int _currentTaskIndex; public ITask? CurrentTask { get; set; } - public IEnumerable RemainingTasks => _tasks.Skip(_currentTaskIndex); - public bool AllTasksComplete => CurrentTask == null && _currentTaskIndex >= _tasks.Count; + public IEnumerable RemainingTasks => _tasks; + public bool AllTasksComplete => CurrentTask == null && _tasks.Count == 0; public void Enqueue(ITask task) { @@ -20,48 +20,40 @@ internal sealed class TaskQueue public bool TryDequeue([NotNullWhen(true)] out ITask? task) { - if (_currentTaskIndex >= _tasks.Count) - { - task = null; + task = _tasks.FirstOrDefault(); + if (task == null) return false; - } - task = _tasks[_currentTaskIndex]; if (task.ShouldRedoOnInterrupt()) - _currentTaskIndex++; - else - _tasks.RemoveAt(0); + _completedTasks.Add(task); + + _tasks.RemoveAt(0); return true; } public bool TryPeek([NotNullWhen(true)] out ITask? task) { - if (_currentTaskIndex >= _tasks.Count) - { - task = null; - return false; - } - - task = _tasks[_currentTaskIndex]; - return true; + task = _tasks.FirstOrDefault(); + return task != null; } public void Reset() { _tasks.Clear(); - _currentTaskIndex = 0; + _completedTasks.Clear(); CurrentTask = null; } public void InterruptWith(List interruptionTasks) { - if (CurrentTask != null) - { - _tasks.Insert(0, CurrentTask); - CurrentTask = null; - _currentTaskIndex = 0; - } - - _tasks.InsertRange(0, interruptionTasks); + List newTasks = + [ + ..interruptionTasks, + .._completedTasks.Where(x => !ReferenceEquals(x, CurrentTask)).ToList(), + CurrentTask, + .._tasks + ]; + Reset(); + _tasks.AddRange(newTasks.Where(x => x != null).Cast()); } } From 7e9070950edc906567c3216f5fc7d701b284ac93 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Wed, 18 Sep 2024 22:40:12 +0200 Subject: [PATCH 275/450] Make task logic stateless to support rewind --- GatheringPathRenderer/RendererPlugin.cs | 2 +- .../GameUi/InteractionUiController.cs | 4 +- .../Controller/GatheringController.cs | 48 +-- .../Controller/GatheringPointRegistry.cs | 4 +- Questionable/Controller/MiniTaskController.cs | 56 +-- Questionable/Controller/QuestController.cs | 40 +- Questionable/Controller/QuestRegistry.cs | 6 +- ...Task.cs => AbstractDelayedTaskExecutor.cs} | 24 +- Questionable/Controller/Steps/Common/Mount.cs | 98 +++-- .../Controller/Steps/Common/NextQuest.cs | 31 +- .../Steps/Common/WaitConditionTask.cs | 34 +- .../Controller/Steps/Gathering/DoGather.cs | 348 +++++++++--------- .../Steps/Gathering/DoGatherCollectable.cs | 326 ++++++++-------- .../Steps/Gathering/MoveToLandingLocation.cs | 73 ++-- .../Steps/Gathering/TurnInDelivery.cs | 21 +- .../Controller/Steps/IConditionChangeAware.cs | 2 +- .../Controller/Steps/IRevisitAware.cs | 2 +- Questionable/Controller/Steps/ITask.cs | 23 +- Questionable/Controller/Steps/IToastAware.cs | 2 +- .../Controller/Steps/Interactions/Action.cs | 51 +-- .../Steps/Interactions/AetherCurrent.cs | 45 +-- .../Steps/Interactions/AethernetShard.cs | 40 +- .../Steps/Interactions/Aetheryte.cs | 41 +-- .../Controller/Steps/Interactions/Combat.cs | 71 ++-- .../Controller/Steps/Interactions/Dive.cs | 21 +- .../Controller/Steps/Interactions/Duty.cs | 25 +- .../Controller/Steps/Interactions/Emote.cs | 38 +- .../Steps/Interactions/EquipItem.cs | 78 ++-- .../Steps/Interactions/EquipRecommended.cs | 26 +- .../Controller/Steps/Interactions/Interact.cs | 78 ++-- .../Controller/Steps/Interactions/Jump.cs | 100 ++--- .../Controller/Steps/Interactions/Say.cs | 20 +- .../Controller/Steps/Interactions/UseItem.cs | 196 +++++----- .../Controller/Steps/Leves/InitiateLeve.cs | 78 ++-- .../Steps/Shared/AethernetShortcut.cs | 124 +++---- .../Steps/Shared/AetheryteShortcut.cs | 106 +++--- Questionable/Controller/Steps/Shared/Craft.cs | 51 ++- .../Controller/Steps/Shared/Gather.cs | 67 ++-- .../Controller/Steps/Shared/MoveTo.cs | 208 +++++------ .../Controller/Steps/Shared/SkipCondition.cs | 50 ++- .../Controller/Steps/Shared/StepDisabled.cs | 17 +- .../Controller/Steps/Shared/SwitchClassJob.cs | 50 +-- .../Controller/Steps/Shared/WaitAtEnd.cs | 143 ++++--- .../Controller/Steps/Shared/WaitAtStart.cs | 15 +- Questionable/Controller/Steps/TaskExecutor.cs | 51 +++ Questionable/Controller/Steps/TaskQueue.cs | 10 +- Questionable/QuestionablePlugin.cs | 96 +++-- Questionable/ServiceCollectionExtensions.cs | 31 +- 48 files changed, 1559 insertions(+), 1512 deletions(-) rename Questionable/Controller/Steps/Common/{AbstractDelayedTask.cs => AbstractDelayedTaskExecutor.cs} (61%) create mode 100644 Questionable/Controller/Steps/TaskExecutor.cs diff --git a/GatheringPathRenderer/RendererPlugin.cs b/GatheringPathRenderer/RendererPlugin.cs index b1ec7561..dbad1715 100644 --- a/GatheringPathRenderer/RendererPlugin.cs +++ b/GatheringPathRenderer/RendererPlugin.cs @@ -121,7 +121,7 @@ public sealed class RendererPlugin : IDalamudPlugin if (!directory.Exists) return; - _pluginLog.Information($"Loading locations from {directory}"); + //_pluginLog.Information($"Loading locations from {directory}"); foreach (FileInfo fileInfo in directory.GetFiles("*.json")) { try diff --git a/Questionable/Controller/GameUi/InteractionUiController.cs b/Questionable/Controller/GameUi/InteractionUiController.cs index ce083331..99b2dd51 100644 --- a/Questionable/Controller/GameUi/InteractionUiController.cs +++ b/Questionable/Controller/GameUi/InteractionUiController.cs @@ -285,7 +285,7 @@ internal sealed class InteractionUiController : IDisposable List dialogueChoices = []; // levequest choices have some vague sort of priority - if (_questController.HasCurrentTaskMatching(out var interact) && + if (_questController.HasCurrentTaskExecutorMatching(out var interact) && interact.Quest != null && interact.InteractionType is EInteractionType.AcceptLeve or EInteractionType.CompleteLeve) { @@ -799,7 +799,7 @@ internal sealed class InteractionUiController : IDisposable private void TeleportTownPostSetup(AddonEvent type, AddonArgs args) { if (ShouldHandleUiInteractions && - _questController.HasCurrentTaskMatching(out AethernetShortcut.UseAethernetShortcut? aethernetShortcut) && + _questController.HasCurrentTaskMatching(out AethernetShortcut.Task? aethernetShortcut) && aethernetShortcut.From.IsFirmamentAetheryte()) { // this might be better via atkvalues; but this works for now diff --git a/Questionable/Controller/GatheringController.cs b/Questionable/Controller/GatheringController.cs index 48147fc7..52541c09 100644 --- a/Questionable/Controller/GatheringController.cs +++ b/Questionable/Controller/GatheringController.cs @@ -13,16 +13,13 @@ using FFXIVClientStructs.FFXIV.Client.Game.Event; using FFXIVClientStructs.FFXIV.Client.Game.UI; using LLib; using Lumina.Excel.GeneratedSheets; -using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; using Questionable.Controller.Steps; -using Questionable.Controller.Steps.Common; using Questionable.Controller.Steps.Gathering; using Questionable.Controller.Steps.Interactions; using Questionable.Controller.Steps.Shared; using Questionable.External; using Questionable.Functions; -using Questionable.GatheringPaths; using Questionable.Model.Gathering; using Questionable.Model.Questing; using Mount = Questionable.Controller.Steps.Common.Mount; @@ -32,17 +29,11 @@ namespace Questionable.Controller; internal sealed unsafe class GatheringController : MiniTaskController { private readonly MovementController _movementController; - private readonly MoveTo.Factory _moveFactory; - private readonly Mount.Factory _mountFactory; - private readonly Interact.Factory _interactFactory; private readonly GatheringPointRegistry _gatheringPointRegistry; private readonly GameFunctions _gameFunctions; private readonly NavmeshIpc _navmeshIpc; private readonly IObjectTable _objectTable; private readonly ICondition _condition; - private readonly ILoggerFactory _loggerFactory; - private readonly IGameGui _gameGui; - private readonly IClientState _clientState; private readonly ILogger _logger; private readonly Regex _revisitRegex; @@ -50,10 +41,6 @@ internal sealed unsafe class GatheringController : MiniTaskController logger, ICondition condition, + IServiceProvider serviceProvider, IDataManager dataManager, - ILoggerFactory loggerFactory, - IGameGui gameGui, - IClientState clientState, IPluginLog pluginLog) - : base(chatGui, mountFactory, combatFactory, condition, logger) + : base(chatGui, condition, serviceProvider, logger) { _movementController = movementController; - _moveFactory = moveFactory; - _mountFactory = mountFactory; - _interactFactory = interactFactory; _gatheringPointRegistry = gatheringPointRegistry; _gameFunctions = gameFunctions; _navmeshIpc = navmeshIpc; _objectTable = objectTable; _condition = condition; - _loggerFactory = loggerFactory; - _gameGui = gameGui; - _clientState = clientState; _logger = logger; _revisitRegex = dataManager.GetRegex(5574, x => x.Text, pluginLog) @@ -170,7 +149,7 @@ internal sealed unsafe class GatheringController : MiniTaskController())); - _taskQueue.Enqueue(_mountFactory.Unmount()); - _taskQueue.Enqueue(_interactFactory.Interact(currentNode.DataId, null, EInteractionType.Gather, true)); + _taskQueue.Enqueue(new MoveToLandingLocation.Task(territoryId, fly, currentNode)); + _taskQueue.Enqueue(new Mount.UnmountTask()); + _taskQueue.Enqueue(new Interact.Task(currentNode.DataId, null, EInteractionType.Gather, true)); QueueGatherNode(currentNode); } @@ -203,12 +181,10 @@ internal sealed unsafe class GatheringController : MiniTaskController())); + _taskQueue.Enqueue(new DoGather.Task(_currentRequest!.Data, currentNode, revisitRequired)); if (_currentRequest.Data.Collectability > 0) { - _taskQueue.Enqueue(new DoGatherCollectable(_currentRequest.Data, currentNode, revisitRequired, this, - _gameFunctions, _clientState, _gameGui, _loggerFactory.CreateLogger())); + _taskQueue.Enqueue(new DoGatherCollectable.Task(_currentRequest.Data, currentNode, revisitRequired)); } } } @@ -269,7 +245,7 @@ internal sealed unsafe class GatheringController : MiniTaskController GetRemainingTaskNames() { - if (_taskQueue.CurrentTask is {} currentTask) + if (_taskQueue.CurrentTaskExecutor?.CurrentTask is {} currentTask) return [currentTask.ToString() ?? "?", .. base.GetRemainingTaskNames()]; else return base.GetRemainingTaskNames(); @@ -279,7 +255,7 @@ internal sealed unsafe class GatheringController : MiniTaskController protected readonly TaskQueue _taskQueue = new(); private readonly IChatGui _chatGui; - private readonly Mount.Factory _mountFactory; - private readonly Combat.Factory _combatFactory; private readonly ICondition _condition; + private readonly IServiceProvider _serviceProvider; private readonly ILogger _logger; - protected MiniTaskController(IChatGui chatGui, Mount.Factory mountFactory, Combat.Factory combatFactory, - ICondition condition, ILogger logger) + protected MiniTaskController(IChatGui chatGui, ICondition condition, IServiceProvider serviceProvider, + ILogger logger) { _chatGui = chatGui; _logger = logger; - _mountFactory = mountFactory; - _combatFactory = combatFactory; + _serviceProvider = serviceProvider; _condition = condition; } protected virtual void UpdateCurrentTask() { - if (_taskQueue.CurrentTask == null) + if (_taskQueue.CurrentTaskExecutor == null) { if (_taskQueue.TryDequeue(out ITask? upcomingTask)) { try { _logger.LogInformation("Starting task {TaskName}", upcomingTask.ToString()); - if (upcomingTask.Start()) + ITaskExecutor taskExecutor = + _serviceProvider.GetRequiredKeyedService(upcomingTask.GetType()); + if (taskExecutor.Start(upcomingTask)) { - _taskQueue.CurrentTask = upcomingTask; + _taskQueue.CurrentTaskExecutor = taskExecutor; return; } else @@ -68,19 +69,20 @@ internal abstract class MiniTaskController ETaskResult result; try { - if (_taskQueue.CurrentTask.WasInterrupted()) + if (_taskQueue.CurrentTaskExecutor.WasInterrupted()) { InterruptQueueWithCombat(); return; } - result = _taskQueue.CurrentTask.Update(); + result = _taskQueue.CurrentTaskExecutor.Update(); } catch (Exception e) { - _logger.LogError(e, "Failed to update task {TaskName}", _taskQueue.CurrentTask.ToString()); + _logger.LogError(e, "Failed to update task {TaskName}", + _taskQueue.CurrentTaskExecutor.CurrentTask.ToString()); _chatGui.PrintError( - $"[Questionable] Failed to update task '{_taskQueue.CurrentTask}', please check /xllog for details."); + $"[Questionable] Failed to update task '{_taskQueue.CurrentTaskExecutor.CurrentTask}', please check /xllog for details."); Stop("Task failed to update"); return; } @@ -92,14 +94,16 @@ internal abstract class MiniTaskController case ETaskResult.SkipRemainingTasksForStep: _logger.LogInformation("{Task} → {Result}, skipping remaining tasks for step", - _taskQueue.CurrentTask, result); - _taskQueue.CurrentTask = null; + _taskQueue.CurrentTaskExecutor.CurrentTask, result); + _taskQueue.CurrentTaskExecutor = null; while (_taskQueue.TryDequeue(out ITask? nextTask)) { if (nextTask is ILastTask or Gather.SkipMarker) { - _taskQueue.CurrentTask = nextTask; + ITaskExecutor taskExecutor = + _serviceProvider.GetRequiredKeyedService(nextTask.GetType()); + _taskQueue.CurrentTaskExecutor = taskExecutor; return; } } @@ -108,27 +112,27 @@ internal abstract class MiniTaskController case ETaskResult.TaskComplete: _logger.LogInformation("{Task} → {Result}, remaining tasks: {RemainingTaskCount}", - _taskQueue.CurrentTask, result, _taskQueue.RemainingTasks.Count()); + _taskQueue.CurrentTaskExecutor.CurrentTask, result, _taskQueue.RemainingTasks.Count()); - OnTaskComplete(_taskQueue.CurrentTask); + OnTaskComplete(_taskQueue.CurrentTaskExecutor.CurrentTask); - _taskQueue.CurrentTask = null; + _taskQueue.CurrentTaskExecutor = null; // handled in next update return; case ETaskResult.NextStep: - _logger.LogInformation("{Task} → {Result}", _taskQueue.CurrentTask, result); + _logger.LogInformation("{Task} → {Result}", _taskQueue.CurrentTaskExecutor.CurrentTask, result); - var lastTask = (ILastTask)_taskQueue.CurrentTask; - _taskQueue.CurrentTask = null; + var lastTask = (ILastTask)_taskQueue.CurrentTaskExecutor.CurrentTask; + _taskQueue.CurrentTaskExecutor = null; OnNextStep(lastTask); return; case ETaskResult.End: - _logger.LogInformation("{Task} → {Result}", _taskQueue.CurrentTask, result); - _taskQueue.CurrentTask = null; + _logger.LogInformation("{Task} → {Result}", _taskQueue.CurrentTaskExecutor.CurrentTask, result); + _taskQueue.CurrentTaskExecutor = null; Stop("Task end"); return; } @@ -154,9 +158,9 @@ internal abstract class MiniTaskController { List tasks = []; if (_condition[ConditionFlag.Mounted]) - tasks.Add(_mountFactory.Unmount()); + tasks.Add(new Mount.UnmountTask()); - tasks.Add(_combatFactory.CreateTask(null, false, EEnemySpawnType.QuestInterruption, [], [], [])); + tasks.Add(Combat.Factory.CreateTask(null, false, EEnemySpawnType.QuestInterruption, [], [], [])); tasks.Add(new WaitAtEnd.WaitDelay()); _taskQueue.InterruptWith(tasks); } diff --git a/Questionable/Controller/QuestController.cs b/Questionable/Controller/QuestController.cs index 8ebf576d..8a1ed773 100644 --- a/Questionable/Controller/QuestController.cs +++ b/Questionable/Controller/QuestController.cs @@ -82,10 +82,9 @@ internal sealed class QuestController : MiniTaskController, IDi Configuration configuration, YesAlreadyIpc yesAlreadyIpc, TaskCreator taskCreator, - Mount.Factory mountFactory, - Combat.Factory combatFactory, + IServiceProvider serviceProvider, IDataManager dataManager) - : base(chatGui, mountFactory, combatFactory, condition, logger) + : base(chatGui, condition, serviceProvider, logger) { _clientState = clientState; _gameFunctions = gameFunctions; @@ -219,7 +218,7 @@ internal sealed class QuestController : MiniTaskController, IDi return; if (AutomationType == EAutomationType.Automatic && - (_taskQueue.AllTasksComplete || _taskQueue.CurrentTask is WaitAtEnd.WaitQuestAccepted) + (_taskQueue.AllTasksComplete || _taskQueue.CurrentTaskExecutor?.CurrentTask is WaitAtEnd.WaitQuestAccepted) && CurrentQuest is { Sequence: 0, Step: 0 } or { Sequence: 0, Step: 255 } && DateTime.Now >= CurrentQuest.StepProgress.StartedAt.AddSeconds(15)) { @@ -638,15 +637,30 @@ internal sealed class QuestController : MiniTaskController, IDi public string ToStatString() { - return _taskQueue.CurrentTask is { } currentTask + return _taskQueue.CurrentTaskExecutor?.CurrentTask is { } currentTask ? $"{currentTask} (+{_taskQueue.RemainingTasks.Count()})" : $"- (+{_taskQueue.RemainingTasks.Count()})"; } + public bool HasCurrentTaskExecutorMatching([NotNullWhen(true)] out T? task) + where T : class, ITaskExecutor + { + if (_taskQueue.CurrentTaskExecutor is T t) + { + task = t; + return true; + } + else + { + task = null; + return false; + } + } + public bool HasCurrentTaskMatching([NotNullWhen(true)] out T? task) where T : class, ITask { - if (_taskQueue.CurrentTask is T t) + if (_taskQueue.CurrentTaskExecutor?.CurrentTask is T t) { task = t; return true; @@ -699,11 +713,11 @@ internal sealed class QuestController : MiniTaskController, IDi { lock (_progressLock) { - if (_taskQueue.CurrentTask is ISkippableTask) - _taskQueue.CurrentTask = null; - else if (_taskQueue.CurrentTask != null) + if (_taskQueue.CurrentTaskExecutor?.CurrentTask is ISkippableTask) + _taskQueue.CurrentTaskExecutor = null; + else if (_taskQueue.CurrentTaskExecutor != null) { - _taskQueue.CurrentTask = null; + _taskQueue.CurrentTaskExecutor = null; while (_taskQueue.TryPeek(out ITask? task)) { _taskQueue.TryDequeue(out _); @@ -727,7 +741,7 @@ internal sealed class QuestController : MiniTaskController, IDi public void SkipSimulatedTask() { - _taskQueue.CurrentTask = null; + _taskQueue.CurrentTaskExecutor = null; } public bool IsInterruptible() @@ -786,7 +800,7 @@ internal sealed class QuestController : MiniTaskController, IDi private void OnConditionChange(ConditionFlag flag, bool value) { - if (_taskQueue.CurrentTask is IConditionChangeAware conditionChangeAware) + if (_taskQueue.CurrentTaskExecutor is IConditionChangeAware conditionChangeAware) conditionChangeAware.OnConditionChange(flag, value); } @@ -798,7 +812,7 @@ internal sealed class QuestController : MiniTaskController, IDi private void OnErrorToast(ref SeString message, ref bool isHandled) { _logger.LogWarning("XXX {A} → {B} XXX", _actionCanceledText, message.TextValue); - if (_taskQueue.CurrentTask is IToastAware toastAware) + if (_taskQueue.CurrentTaskExecutor is IToastAware toastAware) { if (toastAware.OnErrorToast(message)) { diff --git a/Questionable/Controller/QuestRegistry.cs b/Questionable/Controller/QuestRegistry.cs index f1af0050..50263051 100644 --- a/Questionable/Controller/QuestRegistry.cs +++ b/Questionable/Controller/QuestRegistry.cs @@ -142,7 +142,8 @@ internal sealed class QuestRegistry private void LoadQuestFromStream(string fileName, Stream stream, Quest.ESource source) { - _logger.LogTrace("Loading quest from '{FileName}'", fileName); + if (source == Quest.ESource.UserDirectory) + _logger.LogTrace("Loading quest from '{FileName}'", fileName); ElementId? questId = ExtractQuestIdFromName(fileName); if (questId == null) return; @@ -173,7 +174,8 @@ internal sealed class QuestRegistry return; } - _logger.Log(logLevel, "Loading quests from {DirectoryName}", directory); + if (source == Quest.ESource.UserDirectory) + _logger.Log(logLevel, "Loading quests from {DirectoryName}", directory); foreach (FileInfo fileInfo in directory.GetFiles("*.json")) { try diff --git a/Questionable/Controller/Steps/Common/AbstractDelayedTask.cs b/Questionable/Controller/Steps/Common/AbstractDelayedTaskExecutor.cs similarity index 61% rename from Questionable/Controller/Steps/Common/AbstractDelayedTask.cs rename to Questionable/Controller/Steps/Common/AbstractDelayedTaskExecutor.cs index abd6514f..f5e95ca4 100644 --- a/Questionable/Controller/Steps/Common/AbstractDelayedTask.cs +++ b/Questionable/Controller/Steps/Common/AbstractDelayedTaskExecutor.cs @@ -2,33 +2,33 @@ namespace Questionable.Controller.Steps.Common; -internal abstract class AbstractDelayedTask : ITask +internal abstract class AbstractDelayedTaskExecutor : TaskExecutor + where T : class, ITask { private DateTime _continueAt; - protected AbstractDelayedTask(TimeSpan delay) + protected AbstractDelayedTaskExecutor() + : this(TimeSpan.FromSeconds(5)) + { + } + + protected AbstractDelayedTaskExecutor(TimeSpan delay) { Delay = delay; } protected TimeSpan Delay { get; set; } - protected AbstractDelayedTask() - : this(TimeSpan.FromSeconds(5)) - { - } - - public virtual InteractionProgressContext? ProgressContext() => null; - - public bool Start() + protected sealed override bool Start() { + bool started = StartInternal(); _continueAt = DateTime.Now.Add(Delay); - return StartInternal(); + return started; } protected abstract bool StartInternal(); - public virtual ETaskResult Update() + public override ETaskResult Update() { if (_continueAt >= DateTime.Now) return ETaskResult.StillRunning; diff --git a/Questionable/Controller/Steps/Common/Mount.cs b/Questionable/Controller/Steps/Common/Mount.cs index f067066c..d9d38ae2 100644 --- a/Questionable/Controller/Steps/Common/Mount.cs +++ b/Questionable/Controller/Steps/Common/Mount.cs @@ -11,54 +11,38 @@ namespace Questionable.Controller.Steps.Common; internal static class Mount { - internal sealed class Factory( - GameFunctions gameFunctions, - ICondition condition, - TerritoryData territoryData, - IClientState clientState, - ILoggerFactory loggerFactory) + internal sealed record MountTask( + ushort TerritoryId, + EMountIf MountIf, + Vector3? Position = null) : ITask { - public ITask Mount(ushort territoryId, EMountIf mountIf, Vector3? position = null) - { - if (mountIf == EMountIf.AwayFromPosition) - ArgumentNullException.ThrowIfNull(position); - - return new MountTask(territoryId, mountIf, position, gameFunctions, condition, territoryData, clientState, - loggerFactory.CreateLogger()); - } - - public ITask Unmount() - { - return new UnmountTask(condition, loggerFactory.CreateLogger(), gameFunctions, clientState); - } - } - - private sealed class MountTask( - ushort territoryId, - EMountIf mountIf, - Vector3? position, - GameFunctions gameFunctions, - ICondition condition, - TerritoryData territoryData, - IClientState clientState, - ILogger logger) : ITask - { - private bool _mountTriggered; - private InteractionProgressContext? _progressContext; - private DateTime _retryAt = DateTime.MinValue; - - public InteractionProgressContext? ProgressContext() => _progressContext; + public Vector3? Position { get; } = MountIf == EMountIf.AwayFromPosition + ? Position ?? throw new ArgumentNullException(nameof(Position)) + : null; public bool ShouldRedoOnInterrupt() => true; - public bool Start() + public override string ToString() => "Mount"; + } + + internal sealed class MountExecutor( + GameFunctions gameFunctions, + ICondition condition, + TerritoryData territoryData, + IClientState clientState, + ILogger logger) : TaskExecutor + { + private bool _mountTriggered; + private DateTime _retryAt = DateTime.MinValue; + + protected override bool Start() { if (condition[ConditionFlag.Mounted]) return false; - if (!territoryData.CanUseMount(territoryId)) + if (!territoryData.CanUseMount(Task.TerritoryId)) { - logger.LogInformation("Can't use mount in current territory {Id}", territoryId); + logger.LogInformation("Can't use mount in current territory {Id}", Task.TerritoryId); return false; } @@ -68,11 +52,11 @@ internal static class Mount return false; } - if (mountIf == EMountIf.AwayFromPosition) + if (Task.MountIf == EMountIf.AwayFromPosition) { Vector3 playerPosition = clientState.LocalPlayer?.Position ?? Vector3.Zero; - float distance = System.Numerics.Vector3.Distance(playerPosition, position.GetValueOrDefault()); - if (territoryId == clientState.TerritoryType && distance < 30f && !Conditions.IsDiving) + float distance = System.Numerics.Vector3.Distance(playerPosition, Task.Position.GetValueOrDefault()); + if (Task.TerritoryId == clientState.TerritoryType && distance < 30f && !Conditions.IsDiving) { logger.LogInformation("Not using mount, as we're close to the target"); return false; @@ -80,10 +64,10 @@ internal static class Mount logger.LogInformation( "Want to use mount if away from destination ({Distance} yalms), trying (in territory {Id})...", - distance, territoryId); + distance, Task.TerritoryId); } else - logger.LogInformation("Want to use mount, trying (in territory {Id})...", territoryId); + logger.LogInformation("Want to use mount, trying (in territory {Id})...", Task.TerritoryId); if (!condition[ConditionFlag.InCombat]) { @@ -94,7 +78,7 @@ internal static class Mount return false; } - public ETaskResult Update() + public override ETaskResult Update() { if (_mountTriggered && !condition[ConditionFlag.Mounted] && DateTime.Now > _retryAt) { @@ -111,7 +95,8 @@ internal static class Mount return ETaskResult.TaskComplete; } - _progressContext = InteractionProgressContext.FromActionUse(() => _mountTriggered = gameFunctions.Mount()); + ProgressContext = + InteractionProgressContext.FromActionUse(() => _mountTriggered = gameFunctions.Mount()); _retryAt = DateTime.Now.AddSeconds(5); return ETaskResult.StillRunning; @@ -121,23 +106,26 @@ internal static class Mount ? ETaskResult.TaskComplete : ETaskResult.StillRunning; } - - public override string ToString() => "Mount"; } - private sealed class UnmountTask( + internal sealed record UnmountTask : ITask + { + public bool ShouldRedoOnInterrupt() => true; + + public override string ToString() => "Unmount"; + } + + internal sealed class UnmountExecutor( ICondition condition, ILogger logger, GameFunctions gameFunctions, IClientState clientState) - : ITask + : TaskExecutor { private bool _unmountTriggered; private DateTime _continueAt = DateTime.MinValue; - public bool ShouldRedoOnInterrupt() => true; - - public bool Start() + protected override bool Start() { if (!condition[ConditionFlag.Mounted]) return false; @@ -155,7 +143,7 @@ internal static class Mount return true; } - public ETaskResult Update() + public override ETaskResult Update() { if (_continueAt >= DateTime.Now) return ETaskResult.StillRunning; @@ -188,8 +176,6 @@ internal static class Mount } private unsafe bool IsUnmounting() => **(byte**)(clientState.LocalPlayer!.Address + 1432) == 1; - - public override string ToString() => "Unmount"; } public enum EMountIf diff --git a/Questionable/Controller/Steps/Common/NextQuest.cs b/Questionable/Controller/Steps/Common/NextQuest.cs index 574c76ae..32aa7ad9 100644 --- a/Questionable/Controller/Steps/Common/NextQuest.cs +++ b/Questionable/Controller/Steps/Common/NextQuest.cs @@ -7,7 +7,7 @@ namespace Questionable.Controller.Steps.Common; internal static class NextQuest { - internal sealed class Factory(QuestRegistry questRegistry, QuestController questController, QuestFunctions questFunctions, ILoggerFactory loggerFactory) : SimpleTaskFactory + internal sealed class Factory(QuestFunctions questFunctions) : SimpleTaskFactory { public override ITask? CreateTask(Quest quest, QuestSequence sequence, QuestStep step) { @@ -24,34 +24,41 @@ internal static class NextQuest if (questFunctions.GetPriorityQuests().Contains(step.NextQuestId)) return null; - return new SetQuest(step.NextQuestId, quest.Id, questRegistry, questController, questFunctions, loggerFactory.CreateLogger()); + return new SetQuestTask(step.NextQuestId, quest.Id); } } - private sealed class SetQuest(ElementId nextQuestId, ElementId currentQuestId, QuestRegistry questRegistry, QuestController questController, QuestFunctions questFunctions, ILogger logger) : ITask + internal sealed record SetQuestTask(ElementId NextQuestId, ElementId CurrentQuestId) : ITask { - public bool Start() + public override string ToString() => $"SetNextQuest({NextQuestId})"; + } + + internal sealed class Executor( + QuestRegistry questRegistry, + QuestController questController, + QuestFunctions questFunctions, + ILogger logger) : TaskExecutor + { + protected override bool Start() { - if (questFunctions.IsQuestLocked(nextQuestId, currentQuestId)) + if (questFunctions.IsQuestLocked(Task.NextQuestId, Task.CurrentQuestId)) { - logger.LogInformation("Can't set next quest to {QuestId}, quest is locked", nextQuestId); + logger.LogInformation("Can't set next quest to {QuestId}, quest is locked", Task.NextQuestId); } - else if (questRegistry.TryGetQuest(nextQuestId, out Quest? quest)) + else if (questRegistry.TryGetQuest(Task.NextQuestId, out Quest? quest)) { - logger.LogInformation("Setting next quest to {QuestId}: '{QuestName}'", nextQuestId, quest.Info.Name); + logger.LogInformation("Setting next quest to {QuestId}: '{QuestName}'", Task.NextQuestId, quest.Info.Name); questController.SetNextQuest(quest); } else { - logger.LogInformation("Next quest with id {QuestId} not found", nextQuestId); + logger.LogInformation("Next quest with id {QuestId} not found", Task.NextQuestId); questController.SetNextQuest(null); } return true; } - public ETaskResult Update() => ETaskResult.TaskComplete; - - public override string ToString() => $"SetNextQuest({nextQuestId})"; + public override ETaskResult Update() => ETaskResult.TaskComplete; } } diff --git a/Questionable/Controller/Steps/Common/WaitConditionTask.cs b/Questionable/Controller/Steps/Common/WaitConditionTask.cs index 762904ff..9389bfb2 100644 --- a/Questionable/Controller/Steps/Common/WaitConditionTask.cs +++ b/Questionable/Controller/Steps/Common/WaitConditionTask.cs @@ -2,22 +2,28 @@ namespace Questionable.Controller.Steps.Common; -internal sealed class WaitConditionTask(Func predicate, string description) : ITask +internal static class WaitCondition { - private DateTime _continueAt = DateTime.MaxValue; - - public bool Start() => !predicate(); - - public ETaskResult Update() + internal sealed record Task(Func Predicate, string Description) : ITask { - if (_continueAt == DateTime.MaxValue) - { - if (predicate()) - _continueAt = DateTime.Now.AddSeconds(0.5); - } - - return DateTime.Now >= _continueAt ? ETaskResult.TaskComplete : ETaskResult.StillRunning; + public override string ToString() => Description; } - public override string ToString() => description; + internal sealed class Executor : TaskExecutor + { + private DateTime _continueAt = DateTime.MaxValue; + + protected override bool Start() => !Task.Predicate(); + + public override ETaskResult Update() + { + if (_continueAt == DateTime.MaxValue) + { + if (Task.Predicate()) + _continueAt = DateTime.Now.AddSeconds(0.5); + } + + return DateTime.Now >= _continueAt ? ETaskResult.TaskComplete : ETaskResult.StillRunning; + } + } } diff --git a/Questionable/Controller/Steps/Gathering/DoGather.cs b/Questionable/Controller/Steps/Gathering/DoGather.cs index bc405737..e0e05a94 100644 --- a/Questionable/Controller/Steps/Gathering/DoGather.cs +++ b/Questionable/Controller/Steps/Gathering/DoGather.cs @@ -15,227 +15,231 @@ using Questionable.Model.Questing; namespace Questionable.Controller.Steps.Gathering; -internal sealed class DoGather( - GatheringController.GatheringRequest currentRequest, - GatheringNode currentNode, - bool revisitRequired, - GatheringController gatheringController, - GameFunctions gameFunctions, - IGameGui gameGui, - IClientState clientState, - ICondition condition, - ILogger logger) : ITask, IRevisitAware +internal static class DoGather { - private const uint StatusGatheringRateUp = 218; - - private bool _revisitTriggered; - private bool _wasGathering; - private SlotInfo? _slotToGather; - private Queue? _actionQueue; - - public bool Start() => true; - - public unsafe ETaskResult Update() + internal sealed record Task( + GatheringController.GatheringRequest Request, + GatheringNode Node, + bool RevisitRequired) : ITask, IRevisitAware { - if (revisitRequired && !_revisitTriggered) + public bool RevisitTriggered { get; private set; } + + public void OnRevisit() => RevisitTriggered = true; + + public override string ToString() => $"DoGather{(RevisitRequired ? " if revist" : "")}"; + } + + internal sealed class Executor( + GatheringController gatheringController, + GameFunctions gameFunctions, + IGameGui gameGui, + IClientState clientState, + ICondition condition, + ILogger logger) : TaskExecutor + { + private const uint StatusGatheringRateUp = 218; + + private bool _wasGathering; + private SlotInfo? _slotToGather; + private Queue? _actionQueue; + + protected override bool Start() => true; + + public override unsafe ETaskResult Update() { - logger.LogInformation("No revisit"); - return ETaskResult.TaskComplete; - } - - if (gatheringController.HasNodeDisappeared(currentNode)) - { - logger.LogInformation("Node disappeared"); - return ETaskResult.TaskComplete; - } - - if (gameFunctions.GetFreeInventorySlots() == 0) - throw new TaskException("Inventory full"); - - if (condition[ConditionFlag.Gathering]) - { - if (gameGui.TryGetAddonByName("GatheringMasterpiece", out AtkUnitBase* _)) - return ETaskResult.TaskComplete; - - _wasGathering = true; - - if (gameGui.TryGetAddonByName("Gathering", out AddonGathering* addonGathering)) + if (Task is { RevisitRequired: true, RevisitTriggered: false }) { - if (gatheringController.HasRequestedItems()) + logger.LogInformation("No revisit"); + return ETaskResult.TaskComplete; + } + + if (gatheringController.HasNodeDisappeared(Task.Node)) + { + logger.LogInformation("Node disappeared"); + return ETaskResult.TaskComplete; + } + + if (gameFunctions.GetFreeInventorySlots() == 0) + throw new TaskException("Inventory full"); + + if (condition[ConditionFlag.Gathering]) + { + if (gameGui.TryGetAddonByName("GatheringMasterpiece", out AtkUnitBase* _)) + return ETaskResult.TaskComplete; + + _wasGathering = true; + + if (gameGui.TryGetAddonByName("Gathering", out AddonGathering* addonGathering)) { - addonGathering->FireCallbackInt(-1); - } - else - { - var slots = ReadSlots(addonGathering); - if (currentRequest.Collectability > 0) + if (gatheringController.HasRequestedItems()) { - var slot = slots.Single(x => x.ItemId == currentRequest.ItemId); - addonGathering->FireCallbackInt(slot.Index); + addonGathering->FireCallbackInt(-1); } else { - NodeCondition nodeCondition = new NodeCondition( - addonGathering->AtkValues[110].UInt, - addonGathering->AtkValues[111].UInt); - - if (_actionQueue != null && _actionQueue.TryPeek(out EAction nextAction)) + var slots = ReadSlots(addonGathering); + if (Task.Request.Collectability > 0) { - if (gameFunctions.UseAction(nextAction)) + var slot = slots.Single(x => x.ItemId == Task.Request.ItemId); + addonGathering->FireCallbackInt(slot.Index); + } + else + { + NodeCondition nodeCondition = new NodeCondition( + addonGathering->AtkValues[110].UInt, + addonGathering->AtkValues[111].UInt); + + if (_actionQueue != null && _actionQueue.TryPeek(out EAction nextAction)) { - logger.LogInformation("Used action {Action} on node", nextAction); - _actionQueue.Dequeue(); + if (gameFunctions.UseAction(nextAction)) + { + logger.LogInformation("Used action {Action} on node", nextAction); + _actionQueue.Dequeue(); + } + + return ETaskResult.StillRunning; } - return ETaskResult.StillRunning; - } - - _actionQueue = GetNextActions(nodeCondition, slots); - if (_actionQueue.Count == 0) - { - var slot = _slotToGather ?? slots.Single(x => x.ItemId == currentRequest.ItemId); - addonGathering->FireCallbackInt(slot.Index); + _actionQueue = GetNextActions(nodeCondition, slots); + if (_actionQueue.Count == 0) + { + var slot = _slotToGather ?? slots.Single(x => x.ItemId == Task.Request.ItemId); + addonGathering->FireCallbackInt(slot.Index); + } } } } } + + return _wasGathering && !condition[ConditionFlag.Gathering] + ? ETaskResult.TaskComplete + : ETaskResult.StillRunning; } - return _wasGathering && !condition[ConditionFlag.Gathering] - ? ETaskResult.TaskComplete - : ETaskResult.StillRunning; - } - - private unsafe List ReadSlots(AddonGathering* addonGathering) - { - var atkValues = addonGathering->AtkValues; - List slots = new List(); - for (int i = 0; i < 8; ++i) + private unsafe List ReadSlots(AddonGathering* addonGathering) { - // +8 = new item? - uint itemId = atkValues[i * 11 + 7].UInt; - if (itemId == 0) - continue; - - AtkComponentCheckBox* atkCheckbox = addonGathering->GatheredItemComponentCheckbox[i].Value; - - AtkTextNode* atkGatheringChance = atkCheckbox->UldManager.SearchNodeById(10)->GetAsAtkTextNode(); - if (!int.TryParse(atkGatheringChance->NodeText.ToString(), out int gatheringChance)) - gatheringChance = 0; - - AtkTextNode* atkBoonChance = atkCheckbox->UldManager.SearchNodeById(16)->GetAsAtkTextNode(); - if (!int.TryParse(atkBoonChance->NodeText.ToString(), out int boonChance)) - boonChance = 0; - - AtkComponentNode* atkImage = atkCheckbox->UldManager.SearchNodeById(31)->GetAsAtkComponentNode(); - AtkTextNode* atkQuantity = atkImage->Component->UldManager.SearchNodeById(7)->GetAsAtkTextNode(); - if (!atkQuantity->IsVisible() || !int.TryParse(atkQuantity->NodeText.ToString(), out int quantity)) - quantity = 1; - - var slot = new SlotInfo(i, itemId, gatheringChance, boonChance, quantity); - slots.Add(slot); - } - - return slots; - } - - [SuppressMessage("ReSharper", "UnusedParameter.Local")] - private Queue GetNextActions(NodeCondition nodeCondition, List slots) - { - //uint gp = clientState.LocalPlayer!.CurrentGp; - Queue actions = new(); - - if (!gameFunctions.HasStatus(StatusGatheringRateUp)) - { - // do we have an alternative item? only happens for 'evaluation' leve quests - if (currentRequest.AlternativeItemId != 0) + var atkValues = addonGathering->AtkValues; + List slots = new List(); + for (int i = 0; i < 8; ++i) { - var alternativeSlot = slots.Single(x => x.ItemId == currentRequest.AlternativeItemId); + // +8 = new item? + uint itemId = atkValues[i * 11 + 7].UInt; + if (itemId == 0) + continue; - if (alternativeSlot.GatheringChance == 100) - { - _slotToGather = alternativeSlot; - return actions; - } + AtkComponentCheckBox* atkCheckbox = addonGathering->GatheredItemComponentCheckbox[i].Value; - if (alternativeSlot.GatheringChance > 0) + AtkTextNode* atkGatheringChance = atkCheckbox->UldManager.SearchNodeById(10)->GetAsAtkTextNode(); + if (!int.TryParse(atkGatheringChance->NodeText.ToString(), out int gatheringChance)) + gatheringChance = 0; + + AtkTextNode* atkBoonChance = atkCheckbox->UldManager.SearchNodeById(16)->GetAsAtkTextNode(); + if (!int.TryParse(atkBoonChance->NodeText.ToString(), out int boonChance)) + boonChance = 0; + + AtkComponentNode* atkImage = atkCheckbox->UldManager.SearchNodeById(31)->GetAsAtkComponentNode(); + AtkTextNode* atkQuantity = atkImage->Component->UldManager.SearchNodeById(7)->GetAsAtkTextNode(); + if (!atkQuantity->IsVisible() || !int.TryParse(atkQuantity->NodeText.ToString(), out int quantity)) + quantity = 1; + + var slot = new SlotInfo(i, itemId, gatheringChance, boonChance, quantity); + slots.Add(slot); + } + + return slots; + } + + [SuppressMessage("ReSharper", "UnusedParameter.Local")] + private Queue GetNextActions(NodeCondition nodeCondition, List slots) + { + //uint gp = clientState.LocalPlayer!.CurrentGp; + Queue actions = new(); + + if (!gameFunctions.HasStatus(StatusGatheringRateUp)) + { + // do we have an alternative item? only happens for 'evaluation' leve quests + if (Task.Request.AlternativeItemId != 0) { - if (alternativeSlot.GatheringChance >= 95 && - CanUseAction(EAction.SharpVision1, EAction.FieldMastery1)) + var alternativeSlot = slots.Single(x => x.ItemId == Task.Request.AlternativeItemId); + + if (alternativeSlot.GatheringChance == 100) { _slotToGather = alternativeSlot; + return actions; + } + + if (alternativeSlot.GatheringChance > 0) + { + if (alternativeSlot.GatheringChance >= 95 && + CanUseAction(EAction.SharpVision1, EAction.FieldMastery1)) + { + _slotToGather = alternativeSlot; + actions.Enqueue(PickAction(EAction.SharpVision1, EAction.FieldMastery1)); + return actions; + } + + if (alternativeSlot.GatheringChance >= 85 && + CanUseAction(EAction.SharpVision2, EAction.FieldMastery2)) + { + _slotToGather = alternativeSlot; + actions.Enqueue(PickAction(EAction.SharpVision2, EAction.FieldMastery2)); + return actions; + } + + if (alternativeSlot.GatheringChance >= 50 && + CanUseAction(EAction.SharpVision3, EAction.FieldMastery3)) + { + _slotToGather = alternativeSlot; + actions.Enqueue(PickAction(EAction.SharpVision3, EAction.FieldMastery3)); + return actions; + } + } + } + + var slot = slots.Single(x => x.ItemId == Task.Request.ItemId); + if (slot.GatheringChance > 0 && slot.GatheringChance < 100) + { + if (slot.GatheringChance >= 95 && + CanUseAction(EAction.SharpVision1, EAction.FieldMastery1)) + { actions.Enqueue(PickAction(EAction.SharpVision1, EAction.FieldMastery1)); return actions; } - if (alternativeSlot.GatheringChance >= 85 && + if (slot.GatheringChance >= 85 && CanUseAction(EAction.SharpVision2, EAction.FieldMastery2)) { - _slotToGather = alternativeSlot; actions.Enqueue(PickAction(EAction.SharpVision2, EAction.FieldMastery2)); return actions; } - if (alternativeSlot.GatheringChance >= 50 && + if (slot.GatheringChance >= 50 && CanUseAction(EAction.SharpVision3, EAction.FieldMastery3)) { - _slotToGather = alternativeSlot; actions.Enqueue(PickAction(EAction.SharpVision3, EAction.FieldMastery3)); return actions; } } } - var slot = slots.Single(x => x.ItemId == currentRequest.ItemId); - if (slot.GatheringChance > 0 && slot.GatheringChance < 100) - { - if (slot.GatheringChance >= 95 && - CanUseAction(EAction.SharpVision1, EAction.FieldMastery1)) - { - actions.Enqueue(PickAction(EAction.SharpVision1, EAction.FieldMastery1)); - return actions; - } - - if (slot.GatheringChance >= 85 && - CanUseAction(EAction.SharpVision2, EAction.FieldMastery2)) - { - actions.Enqueue(PickAction(EAction.SharpVision2, EAction.FieldMastery2)); - return actions; - } - - if (slot.GatheringChance >= 50 && - CanUseAction(EAction.SharpVision3, EAction.FieldMastery3)) - { - actions.Enqueue(PickAction(EAction.SharpVision3, EAction.FieldMastery3)); - return actions; - } - } + return actions; } - return actions; - } + private EAction PickAction(EAction minerAction, EAction botanistAction) + { + if ((EClassJob?)clientState.LocalPlayer?.ClassJob.Id == EClassJob.Miner) + return minerAction; + else + return botanistAction; + } - private EAction PickAction(EAction minerAction, EAction botanistAction) - { - if ((EClassJob?)clientState.LocalPlayer?.ClassJob.Id == EClassJob.Miner) - return minerAction; - else - return botanistAction; + private unsafe bool CanUseAction(EAction minerAction, EAction botanistAction) + { + EAction action = PickAction(minerAction, botanistAction); + return ActionManager.Instance()->GetActionStatus(ActionType.Action, (uint)action) == 0; + } } - private unsafe bool CanUseAction(EAction minerAction, EAction botanistAction) - { - EAction action = PickAction(minerAction, botanistAction); - return ActionManager.Instance()->GetActionStatus(ActionType.Action, (uint)action) == 0; - } - - public void OnRevisit() - { - _revisitTriggered = true; - } - - public override string ToString() => $"DoGather{(revisitRequired ? " if revist" : "")}"; - [SuppressMessage("ReSharper", "NotAccessedPositionalProperty.Local")] private sealed record SlotInfo(int Index, uint ItemId, int GatheringChance, int BoonChance, int Quantity); diff --git a/Questionable/Controller/Steps/Gathering/DoGatherCollectable.cs b/Questionable/Controller/Steps/Gathering/DoGatherCollectable.cs index 99779c14..17376e10 100644 --- a/Questionable/Controller/Steps/Gathering/DoGatherCollectable.cs +++ b/Questionable/Controller/Steps/Gathering/DoGatherCollectable.cs @@ -1,5 +1,4 @@ -using System; -using System.Collections.Generic; +using System.Collections.Generic; using System.Diagnostics.CodeAnalysis; using Dalamud.Game.Text; using Dalamud.Plugin.Services; @@ -13,189 +12,194 @@ using Questionable.Model.Questing; namespace Questionable.Controller.Steps.Gathering; -internal sealed class DoGatherCollectable( - GatheringController.GatheringRequest currentRequest, - GatheringNode currentNode, - bool revisitRequired, - GatheringController gatheringController, - GameFunctions gameFunctions, - IClientState clientState, - IGameGui gameGui, - ILogger logger) : ITask, IRevisitAware +internal static class DoGatherCollectable { - private bool _revisitTriggered; - private Queue? _actionQueue; - - private bool? _expectedScrutiny; - - public bool Start() => true; - - public unsafe ETaskResult Update() + internal sealed record Task( + GatheringController.GatheringRequest Request, + GatheringNode Node, + bool RevisitRequired) : ITask, IRevisitAware { - if (revisitRequired && !_revisitTriggered) + public bool RevisitTriggered { get; private set; } + + public void OnRevisit() => RevisitTriggered = true; + + public override string ToString() => + $"DoGatherCollectable({SeIconChar.Collectible.ToIconString()}/{Request.Collectability}){(RevisitRequired ? " if revist" : "")}"; + } + + internal sealed class Executor( + GatheringController gatheringController, + GameFunctions gameFunctions, + IClientState clientState, + IGameGui gameGui, + ILogger logger) : TaskExecutor + { + private Queue? _actionQueue; + + private bool? _expectedScrutiny; + + protected override bool Start() => true; + + public override unsafe ETaskResult Update() { - logger.LogInformation("No revisit"); - return ETaskResult.TaskComplete; + if (Task.RevisitRequired && !Task.RevisitTriggered) + { + logger.LogInformation("No revisit"); + return ETaskResult.TaskComplete; + } + + if (gatheringController.HasNodeDisappeared(Task.Node)) + { + logger.LogInformation("Node disappeared"); + return ETaskResult.TaskComplete; + } + + if (gatheringController.HasRequestedItems()) + { + if (gameGui.TryGetAddonByName("GatheringMasterpiece", out AtkUnitBase* atkUnitBase)) + { + atkUnitBase->FireCallbackInt(1); + return ETaskResult.StillRunning; + } + + if (gameGui.TryGetAddonByName("Gathering", out atkUnitBase)) + { + atkUnitBase->FireCallbackInt(-1); + return ETaskResult.TaskComplete; + } + } + + if (gameFunctions.GetFreeInventorySlots() == 0) + throw new TaskException("Inventory full"); + + NodeCondition? nodeCondition = GetNodeCondition(); + if (nodeCondition == null) + return ETaskResult.TaskComplete; + + if (_expectedScrutiny != null) + { + if (nodeCondition.ScrutinyActive != _expectedScrutiny) + return ETaskResult.StillRunning; + + // continue on next frame + _expectedScrutiny = null; + return ETaskResult.StillRunning; + } + + if (_actionQueue != null && _actionQueue.TryPeek(out EAction nextAction)) + { + if (gameFunctions.UseAction(nextAction)) + { + _expectedScrutiny = nextAction switch + { + EAction.ScrutinyMiner or EAction.ScrutinyBotanist => true, + EAction.ScourMiner or EAction.ScourBotanist or EAction.MeticulousMiner + or EAction.MeticulousBotanist => false, + _ => null + }; + logger.LogInformation("Used action {Action} on node", nextAction); + _actionQueue.Dequeue(); + } + + return ETaskResult.StillRunning; + } + + if (nodeCondition.CollectabilityToGoal(Task.Request.Collectability) > 0) + { + _actionQueue = GetNextActions(nodeCondition); + if (_actionQueue != null) + { + foreach (var action in _actionQueue) + logger.LogInformation("Next Actions {Action}", action); + return ETaskResult.StillRunning; + } + } + + _actionQueue = new Queue(); + _actionQueue.Enqueue(PickAction(EAction.CollectMiner, EAction.CollectBotanist)); + return ETaskResult.StillRunning; } - if (gatheringController.HasNodeDisappeared(currentNode)) - { - logger.LogInformation("Node disappeared"); - return ETaskResult.TaskComplete; - } - - if (gatheringController.HasRequestedItems()) + private unsafe NodeCondition? GetNodeCondition() { if (gameGui.TryGetAddonByName("GatheringMasterpiece", out AtkUnitBase* atkUnitBase)) { - atkUnitBase->FireCallbackInt(1); - return ETaskResult.StillRunning; + var atkValues = atkUnitBase->AtkValues; + return new NodeCondition( + CurrentCollectability: atkValues[13].UInt, + MaxCollectability: atkValues[14].UInt, + CurrentIntegrity: atkValues[62].UInt, + MaxIntegrity: atkValues[63].UInt, + ScrutinyActive: atkValues[54].Bool, + CollectabilityFromScour: atkValues[48].UInt, + CollectabilityFromMeticulous: atkValues[51].UInt + ); } - if (gameGui.TryGetAddonByName("Gathering", out atkUnitBase)) + return null; + } + + private Queue GetNextActions(NodeCondition nodeCondition) + { + uint gp = clientState.LocalPlayer!.CurrentGp; + logger.LogTrace( + "Getting next actions (with {GP} GP, {MeticulousCollectability}~ meticulous, {ScourCollectability}~ scour)", + gp, nodeCondition.CollectabilityFromMeticulous, nodeCondition.CollectabilityFromScour); + + Queue actions = new(); + + uint neededCollectability = nodeCondition.CollectabilityToGoal(Task.Request.Collectability); + if (neededCollectability <= nodeCondition.CollectabilityFromMeticulous) { - atkUnitBase->FireCallbackInt(-1); - return ETaskResult.TaskComplete; + logger.LogTrace("Can get all needed {NeededCollectability} from {Collectability}~ meticulous", + neededCollectability, nodeCondition.CollectabilityFromMeticulous); + actions.Enqueue(PickAction(EAction.MeticulousMiner, EAction.MeticulousBotanist)); + return actions; } - } - if (gameFunctions.GetFreeInventorySlots() == 0) - throw new TaskException("Inventory full"); - - NodeCondition? nodeCondition = GetNodeCondition(); - if (nodeCondition == null) - return ETaskResult.TaskComplete; - - if (_expectedScrutiny != null) - { - if (nodeCondition.ScrutinyActive != _expectedScrutiny) - return ETaskResult.StillRunning; - - // continue on next frame - _expectedScrutiny = null; - return ETaskResult.StillRunning; - } - - if (_actionQueue != null && _actionQueue.TryPeek(out EAction nextAction)) - { - if (gameFunctions.UseAction(nextAction)) + if (neededCollectability <= nodeCondition.CollectabilityFromScour) { - _expectedScrutiny = nextAction switch - { - EAction.ScrutinyMiner or EAction.ScrutinyBotanist => true, - EAction.ScourMiner or EAction.ScourBotanist or EAction.MeticulousMiner - or EAction.MeticulousBotanist => false, - _ => null - }; - logger.LogInformation("Used action {Action} on node", nextAction); - _actionQueue.Dequeue(); + logger.LogTrace("Can get all needed {NeededCollectability} from {Collectability}~ scour", + neededCollectability, nodeCondition.CollectabilityFromScour); + actions.Enqueue(PickAction(EAction.ScourMiner, EAction.ScourBotanist)); + return actions; } - return ETaskResult.StillRunning; - } - - if (nodeCondition.CollectabilityToGoal(currentRequest.Collectability) > 0) - { - _actionQueue = GetNextActions(nodeCondition); - if (_actionQueue != null) + // neither action directly solves our problem + if (!nodeCondition.ScrutinyActive && gp >= 200) { - foreach (var action in _actionQueue) - logger.LogInformation("Next Actions {Action}", action); - return ETaskResult.StillRunning; + logger.LogTrace("Still missing {NeededCollectability} collectability, scrutiny inactive", + neededCollectability); + actions.Enqueue(PickAction(EAction.ScrutinyMiner, EAction.ScrutinyBotanist)); + return actions; + } + + if (nodeCondition.ScrutinyActive) + { + logger.LogTrace( + "Scrutiny active, need {NeededCollectability} and we expect {Collectability}~ meticulous", + neededCollectability, nodeCondition.CollectabilityFromMeticulous); + actions.Enqueue(PickAction(EAction.MeticulousMiner, EAction.MeticulousBotanist)); + return actions; + } + else + { + logger.LogTrace("Scrutiny active, need {NeededCollectability} and we expect {Collectability}~ scour", + neededCollectability, nodeCondition.CollectabilityFromScour); + actions.Enqueue(PickAction(EAction.ScourMiner, EAction.ScourBotanist)); + return actions; } } - _actionQueue = new Queue(); - _actionQueue.Enqueue(PickAction(EAction.CollectMiner, EAction.CollectBotanist)); - return ETaskResult.StillRunning; - } - - private unsafe NodeCondition? GetNodeCondition() - { - if (gameGui.TryGetAddonByName("GatheringMasterpiece", out AtkUnitBase* atkUnitBase)) + private EAction PickAction(EAction minerAction, EAction botanistAction) { - var atkValues = atkUnitBase->AtkValues; - return new NodeCondition( - CurrentCollectability: atkValues[13].UInt, - MaxCollectability: atkValues[14].UInt, - CurrentIntegrity: atkValues[62].UInt, - MaxIntegrity: atkValues[63].UInt, - ScrutinyActive: atkValues[54].Bool, - CollectabilityFromScour: atkValues[48].UInt, - CollectabilityFromMeticulous: atkValues[51].UInt - ); - } - - return null; - } - - private Queue GetNextActions(NodeCondition nodeCondition) - { - uint gp = clientState.LocalPlayer!.CurrentGp; - logger.LogTrace( - "Getting next actions (with {GP} GP, {MeticulousCollectability}~ meticulous, {ScourCollectability}~ scour)", - gp, nodeCondition.CollectabilityFromMeticulous, nodeCondition.CollectabilityFromScour); - - Queue actions = new(); - - uint neededCollectability = nodeCondition.CollectabilityToGoal(currentRequest.Collectability); - if (neededCollectability <= nodeCondition.CollectabilityFromMeticulous) - { - logger.LogTrace("Can get all needed {NeededCollectability} from {Collectability}~ meticulous", - neededCollectability, nodeCondition.CollectabilityFromMeticulous); - actions.Enqueue(PickAction(EAction.MeticulousMiner, EAction.MeticulousBotanist)); - return actions; - } - - if (neededCollectability <= nodeCondition.CollectabilityFromScour) - { - logger.LogTrace("Can get all needed {NeededCollectability} from {Collectability}~ scour", - neededCollectability, nodeCondition.CollectabilityFromScour); - actions.Enqueue(PickAction(EAction.ScourMiner, EAction.ScourBotanist)); - return actions; - } - - // neither action directly solves our problem - if (!nodeCondition.ScrutinyActive && gp >= 200) - { - logger.LogTrace("Still missing {NeededCollectability} collectability, scrutiny inactive", - neededCollectability); - actions.Enqueue(PickAction(EAction.ScrutinyMiner, EAction.ScrutinyBotanist)); - return actions; - } - - if (nodeCondition.ScrutinyActive) - { - logger.LogTrace("Scrutiny active, need {NeededCollectability} and we expect {Collectability}~ meticulous", - neededCollectability, nodeCondition.CollectabilityFromMeticulous); - actions.Enqueue(PickAction(EAction.MeticulousMiner, EAction.MeticulousBotanist)); - return actions; - } - else - { - logger.LogTrace("Scrutiny active, need {NeededCollectability} and we expect {Collectability}~ scour", - neededCollectability, nodeCondition.CollectabilityFromScour); - actions.Enqueue(PickAction(EAction.ScourMiner, EAction.ScourBotanist)); - return actions; + if ((EClassJob?)clientState.LocalPlayer?.ClassJob.Id == EClassJob.Miner) + return minerAction; + else + return botanistAction; } } - private EAction PickAction(EAction minerAction, EAction botanistAction) - { - if ((EClassJob?)clientState.LocalPlayer?.ClassJob.Id == EClassJob.Miner) - return minerAction; - else - return botanistAction; - } - - public void OnRevisit() - { - _revisitTriggered = true; - } - - public override string ToString() => - $"DoGatherCollectable({SeIconChar.Collectible.ToIconString()}/{_expectedScrutiny} {currentRequest.Collectability}){(revisitRequired ? " if revist" : "")}"; - [SuppressMessage("ReSharper", "NotAccessedPositionalProperty.Local")] private sealed record NodeCondition( uint CurrentCollectability, diff --git a/Questionable/Controller/Steps/Gathering/MoveToLandingLocation.cs b/Questionable/Controller/Steps/Gathering/MoveToLandingLocation.cs index a9ebe4a5..cc9f4d97 100644 --- a/Questionable/Controller/Steps/Gathering/MoveToLandingLocation.cs +++ b/Questionable/Controller/Steps/Gathering/MoveToLandingLocation.cs @@ -3,7 +3,6 @@ using System.Linq; using System.Numerics; using Dalamud.Game.ClientState.Objects.Enums; using Dalamud.Plugin.Services; -using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; using Questionable.Controller.Steps.Shared; using Questionable.Functions; @@ -12,41 +11,49 @@ using Questionable.Model.Gathering; namespace Questionable.Controller.Steps.Gathering; -internal sealed class MoveToLandingLocation( - ushort territoryId, - bool flyBetweenNodes, - GatheringNode gatheringNode, - MoveTo.Factory moveFactory, - GameFunctions gameFunctions, - IObjectTable objectTable, - ILogger logger) : ITask +internal static class MoveToLandingLocation { - private ITask _moveTask = null!; - - public bool Start() + internal sealed record Task( + ushort TerritoryId, + bool FlyBetweenNodes, + GatheringNode GatheringNode) : ITask { - var location = gatheringNode.Locations.First(); - if (gatheringNode.Locations.Count > 1) - { - var gameObject = objectTable.SingleOrDefault(x => - x.ObjectKind == ObjectKind.GatheringPoint && x.DataId == gatheringNode.DataId && x.IsTargetable); - if (gameObject == null) - return false; - - location = gatheringNode.Locations.Single(x => Vector3.Distance(x.Position, gameObject.Position) < 0.1f); - } - - var (target, degrees, range) = GatheringMath.CalculateLandingLocation(location); - logger.LogInformation("Preliminary landing location: {Location}, with degrees = {Degrees}, range = {Range}", - target.ToString("G", CultureInfo.InvariantCulture), degrees, range); - - bool fly = flyBetweenNodes && gameFunctions.IsFlyingUnlocked(territoryId); - _moveTask = moveFactory.Move(new MoveTo.MoveParams(territoryId, target, null, 0.25f, - DataId: gatheringNode.DataId, Fly: fly, IgnoreDistanceToObject: true)); - return _moveTask.Start(); + public override string ToString() => $"Land/{FlyBetweenNodes}"; } - public ETaskResult Update() => _moveTask.Update(); + internal sealed class Executor( + MoveTo.MoveExecutor moveExecutor, + GameFunctions gameFunctions, + IObjectTable objectTable, + ILogger logger) : TaskExecutor + { + private ITask _moveTask = null!; - public override string ToString() => $"Land/{_moveTask}/{flyBetweenNodes}"; + protected override bool Start() + { + var location = Task.GatheringNode.Locations.First(); + if (Task.GatheringNode.Locations.Count > 1) + { + var gameObject = objectTable.SingleOrDefault(x => + x.ObjectKind == ObjectKind.GatheringPoint && x.DataId == Task.GatheringNode.DataId && + x.IsTargetable); + if (gameObject == null) + return false; + + location = Task.GatheringNode.Locations.Single(x => + Vector3.Distance(x.Position, gameObject.Position) < 0.1f); + } + + var (target, degrees, range) = GatheringMath.CalculateLandingLocation(location); + logger.LogInformation("Preliminary landing location: {Location}, with degrees = {Degrees}, range = {Range}", + target.ToString("G", CultureInfo.InvariantCulture), degrees, range); + + bool fly = Task.FlyBetweenNodes && gameFunctions.IsFlyingUnlocked(Task.TerritoryId); + _moveTask = new MoveTo.MoveTask(Task.TerritoryId, target, null, 0.25f, + DataId: Task.GatheringNode.DataId, Fly: fly, IgnoreDistanceToObject: true); + return moveExecutor.Start(_moveTask); + } + + public override ETaskResult Update() => moveExecutor.Update(); + } } diff --git a/Questionable/Controller/Steps/Gathering/TurnInDelivery.cs b/Questionable/Controller/Steps/Gathering/TurnInDelivery.cs index 08da1440..caf2b0f4 100644 --- a/Questionable/Controller/Steps/Gathering/TurnInDelivery.cs +++ b/Questionable/Controller/Steps/Gathering/TurnInDelivery.cs @@ -1,9 +1,7 @@ -using System; -using FFXIVClientStructs.FFXIV.Client.Game; +using FFXIVClientStructs.FFXIV.Client.Game; using FFXIVClientStructs.FFXIV.Client.UI.Agent; using FFXIVClientStructs.FFXIV.Component.GUI; using LLib.GameUI; -using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; using Questionable.Model; using Questionable.Model.Questing; @@ -13,24 +11,29 @@ namespace Questionable.Controller.Steps.Gathering; internal static class TurnInDelivery { - internal sealed class Factory(ILoggerFactory loggerFactory) : SimpleTaskFactory + internal sealed class Factory : SimpleTaskFactory { public override ITask? CreateTask(Quest quest, QuestSequence sequence, QuestStep step) { if (quest.Id is not SatisfactionSupplyNpcId || sequence.Sequence != 1) return null; - return new SatisfactionSupplyTurnIn(loggerFactory.CreateLogger()); + return new Task(); } } - private sealed class SatisfactionSupplyTurnIn(ILogger logger) : ITask + internal sealed record Task : ITask + { + public override string ToString() => "WeeklyDeliveryTurnIn"; + } + + internal sealed class SatisfactionSupplyTurnIn(ILogger logger) : TaskExecutor { private ushort? _remainingAllowances; - public bool Start() => true; + protected override bool Start() => true; - public unsafe ETaskResult Update() + public override unsafe ETaskResult Update() { AgentSatisfactionSupply* agentSatisfactionSupply = AgentSatisfactionSupply.Instance(); if (agentSatisfactionSupply == null || !agentSatisfactionSupply->IsAgentActive()) @@ -77,7 +80,5 @@ internal static class TurnInDelivery addon->FireCallback(2, pickGatheringItem); return ETaskResult.StillRunning; } - - public override string ToString() => "WeeklyDeliveryTurnIn"; } } diff --git a/Questionable/Controller/Steps/IConditionChangeAware.cs b/Questionable/Controller/Steps/IConditionChangeAware.cs index 4e41d638..215106f6 100644 --- a/Questionable/Controller/Steps/IConditionChangeAware.cs +++ b/Questionable/Controller/Steps/IConditionChangeAware.cs @@ -2,7 +2,7 @@ namespace Questionable.Controller.Steps; -public interface IConditionChangeAware +internal interface IConditionChangeAware : ITaskExecutor { void OnConditionChange(ConditionFlag flag, bool value); } diff --git a/Questionable/Controller/Steps/IRevisitAware.cs b/Questionable/Controller/Steps/IRevisitAware.cs index 4faf1c0b..6af5d689 100644 --- a/Questionable/Controller/Steps/IRevisitAware.cs +++ b/Questionable/Controller/Steps/IRevisitAware.cs @@ -1,6 +1,6 @@ namespace Questionable.Controller.Steps; -public interface IRevisitAware +internal interface IRevisitAware : ITask { void OnRevisit(); } diff --git a/Questionable/Controller/Steps/ITask.cs b/Questionable/Controller/Steps/ITask.cs index a8442c76..60c22cf9 100644 --- a/Questionable/Controller/Steps/ITask.cs +++ b/Questionable/Controller/Steps/ITask.cs @@ -1,27 +1,6 @@ -using System.Threading; -using System.Threading.Tasks; - -namespace Questionable.Controller.Steps; +namespace Questionable.Controller.Steps; internal interface ITask { - InteractionProgressContext? ProgressContext() => null; - - bool WasInterrupted() - { - var progressContext = ProgressContext(); - if (progressContext != null) - { - progressContext.Update(); - return progressContext.WasInterrupted(); - } - - return false; - } - bool ShouldRedoOnInterrupt() => false; - - bool Start(); - - ETaskResult Update(); } diff --git a/Questionable/Controller/Steps/IToastAware.cs b/Questionable/Controller/Steps/IToastAware.cs index 67a1c7f6..49e09d50 100644 --- a/Questionable/Controller/Steps/IToastAware.cs +++ b/Questionable/Controller/Steps/IToastAware.cs @@ -2,7 +2,7 @@ namespace Questionable.Controller.Steps; -public interface IToastAware +internal interface IToastAware : ITaskExecutor { bool OnErrorToast(SeString message); } diff --git a/Questionable/Controller/Steps/Interactions/Action.cs b/Questionable/Controller/Steps/Interactions/Action.cs index f50f6697..e6c4f1f4 100644 --- a/Questionable/Controller/Steps/Interactions/Action.cs +++ b/Questionable/Controller/Steps/Interactions/Action.cs @@ -11,8 +11,7 @@ namespace Questionable.Controller.Steps.Interactions; internal static class Action { - internal sealed class Factory(GameFunctions gameFunctions, Mount.Factory mountFactory, ILoggerFactory loggerFactory) - : ITaskFactory + internal sealed class Factory : ITaskFactory { public IEnumerable CreateAllTasks(Quest quest, QuestSequence sequence, QuestStep step) { @@ -25,39 +24,43 @@ internal static class Action if (step.Action.Value.RequiresMount()) return [task]; else - return [mountFactory.Unmount(), task]; + return [new Mount.UnmountTask(), task]; } - public ITask OnObject(uint? dataId, EAction action) + public static ITask OnObject(uint? dataId, EAction action) { - return new UseOnObject(dataId, action, gameFunctions, - loggerFactory.CreateLogger()); + return new UseOnObject(dataId, action); } } - private sealed class UseOnObject( - uint? dataId, - EAction action, + internal sealed record UseOnObject( + uint? DataId, + EAction Action) : ITask + { + public override string ToString() => $"Action({Action})"; + } + + internal sealed class UseOnObjectExecutor( GameFunctions gameFunctions, - ILogger logger) : ITask + ILogger logger) : TaskExecutor { private bool _usedAction; private DateTime _continueAt = DateTime.MinValue; - public bool Start() + protected override bool Start() { - if (dataId != null) + if (Task.DataId != null) { - IGameObject? gameObject = gameFunctions.FindObjectByDataId(dataId.Value); + IGameObject? gameObject = gameFunctions.FindObjectByDataId(Task.DataId.Value); if (gameObject == null) { - logger.LogWarning("No game object with dataId {DataId}", dataId); + logger.LogWarning("No game object with dataId {DataId}", Task.DataId); return false; } if (gameObject.IsTargetable) { - if (action == EAction.Diagnosis) + if (Task.Action == EAction.Diagnosis) { uint eukrasiaAura = 2606; // If SGE have Eukrasia status, we need to remove it. @@ -72,14 +75,14 @@ internal static class Action } } - _usedAction = gameFunctions.UseAction(gameObject, action); + _usedAction = gameFunctions.UseAction(gameObject, Task.Action); _continueAt = DateTime.Now.AddSeconds(0.5); return true; } } else { - _usedAction = gameFunctions.UseAction(action); + _usedAction = gameFunctions.UseAction(Task.Action); _continueAt = DateTime.Now.AddSeconds(0.5); return true; } @@ -87,25 +90,25 @@ internal static class Action return true; } - public ETaskResult Update() + public override ETaskResult Update() { if (DateTime.Now <= _continueAt) return ETaskResult.StillRunning; if (!_usedAction) { - if (dataId != null) + if (Task.DataId != null) { - IGameObject? gameObject = gameFunctions.FindObjectByDataId(dataId.Value); + IGameObject? gameObject = gameFunctions.FindObjectByDataId(Task.DataId.Value); if (gameObject == null || !gameObject.IsTargetable) return ETaskResult.StillRunning; - _usedAction = gameFunctions.UseAction(gameObject, action); + _usedAction = gameFunctions.UseAction(gameObject, Task.Action); _continueAt = DateTime.Now.AddSeconds(0.5); } else { - _usedAction = gameFunctions.UseAction(action); + _usedAction = gameFunctions.UseAction(Task.Action); _continueAt = DateTime.Now.AddSeconds(0.5); } @@ -114,7 +117,5 @@ internal static class Action return ETaskResult.TaskComplete; } - - public override string ToString() => $"Action({action})"; } -} \ No newline at end of file +} diff --git a/Questionable/Controller/Steps/Interactions/AetherCurrent.cs b/Questionable/Controller/Steps/Interactions/AetherCurrent.cs index cbbe6868..e0f65c1a 100644 --- a/Questionable/Controller/Steps/Interactions/AetherCurrent.cs +++ b/Questionable/Controller/Steps/Interactions/AetherCurrent.cs @@ -12,10 +12,8 @@ namespace Questionable.Controller.Steps.Interactions; internal static class AetherCurrent { internal sealed class Factory( - GameFunctions gameFunctions, AetherCurrentData aetherCurrentData, - IChatGui chatGui, - ILoggerFactory loggerFactory) : SimpleTaskFactory + IChatGui chatGui) : SimpleTaskFactory { public override ITask? CreateTask(Quest quest, QuestSequence sequence, QuestStep step) { @@ -32,42 +30,39 @@ internal static class AetherCurrent return null; } - return new DoAttune(step.DataId.Value, step.AetherCurrentId.Value, gameFunctions, - loggerFactory.CreateLogger()); + return new Attune(step.DataId.Value, step.AetherCurrentId.Value); } } - private sealed class DoAttune( - uint dataId, - uint aetherCurrentId, - GameFunctions gameFunctions, - ILogger logger) : ITask + internal sealed record Attune(uint DataId, uint AetherCurrentId) : ITask { - private InteractionProgressContext? _progressContext; + public override string ToString() => $"AttuneAetherCurrent({AetherCurrentId})"; + } - public InteractionProgressContext? ProgressContext() => _progressContext; - - public bool Start() + internal sealed class DoAttune( + GameFunctions gameFunctions, + ILogger logger) : TaskExecutor + { + protected override bool Start() { - if (!gameFunctions.IsAetherCurrentUnlocked(aetherCurrentId)) + if (!gameFunctions.IsAetherCurrentUnlocked(Task.AetherCurrentId)) { - logger.LogInformation("Attuning to aether current {AetherCurrentId} / {DataId}", aetherCurrentId, - dataId); - _progressContext = - InteractionProgressContext.FromActionUseOrDefault(() => gameFunctions.InteractWith(dataId)); + logger.LogInformation("Attuning to aether current {AetherCurrentId} / {DataId}", Task.AetherCurrentId, + Task.DataId); + ProgressContext = + InteractionProgressContext.FromActionUseOrDefault(() => gameFunctions.InteractWith(Task.DataId)); return true; } - logger.LogInformation("Already attuned to aether current {AetherCurrentId} / {DataId}", aetherCurrentId, - dataId); + logger.LogInformation("Already attuned to aether current {AetherCurrentId} / {DataId}", + Task.AetherCurrentId, + Task.DataId); return false; } - public ETaskResult Update() => - gameFunctions.IsAetherCurrentUnlocked(aetherCurrentId) + public override ETaskResult Update() => + gameFunctions.IsAetherCurrentUnlocked(Task.AetherCurrentId) ? ETaskResult.TaskComplete : ETaskResult.StillRunning; - - public override string ToString() => $"AttuneAetherCurrent({aetherCurrentId})"; } } diff --git a/Questionable/Controller/Steps/Interactions/AethernetShard.cs b/Questionable/Controller/Steps/Interactions/AethernetShard.cs index ed5580c8..d7d09a0c 100644 --- a/Questionable/Controller/Steps/Interactions/AethernetShard.cs +++ b/Questionable/Controller/Steps/Interactions/AethernetShard.cs @@ -11,10 +11,7 @@ namespace Questionable.Controller.Steps.Interactions; internal static class AethernetShard { - internal sealed class Factory( - AetheryteFunctions aetheryteFunctions, - GameFunctions gameFunctions, - ILoggerFactory loggerFactory) : SimpleTaskFactory + internal sealed class Factory : SimpleTaskFactory { public override ITask? CreateTask(Quest quest, QuestSequence sequence, QuestStep step) { @@ -23,40 +20,37 @@ internal static class AethernetShard ArgumentNullException.ThrowIfNull(step.AethernetShard); - return new DoAttune(step.AethernetShard.Value, aetheryteFunctions, gameFunctions, - loggerFactory.CreateLogger()); + return new Attune(step.AethernetShard.Value); } } - private sealed class DoAttune( - EAetheryteLocation aetheryteLocation, + internal sealed record Attune(EAetheryteLocation AetheryteLocation) : ITask + { + public override string ToString() => $"AttuneAethernetShard({AetheryteLocation})"; + } + + internal sealed class DoAttune( AetheryteFunctions aetheryteFunctions, GameFunctions gameFunctions, - ILogger logger) : ITask + ILogger logger) : TaskExecutor { - private InteractionProgressContext? _progressContext; - - public InteractionProgressContext? ProgressContext() => _progressContext; - - public bool Start() + protected override bool Start() { - if (!aetheryteFunctions.IsAetheryteUnlocked(aetheryteLocation)) + if (!aetheryteFunctions.IsAetheryteUnlocked(Task.AetheryteLocation)) { - logger.LogInformation("Attuning to aethernet shard {AethernetShard}", aetheryteLocation); - _progressContext = InteractionProgressContext.FromActionUseOrDefault(() => - gameFunctions.InteractWith((uint)aetheryteLocation, ObjectKind.Aetheryte)); + logger.LogInformation("Attuning to aethernet shard {AethernetShard}", Task.AetheryteLocation); + ProgressContext = InteractionProgressContext.FromActionUseOrDefault(() => + gameFunctions.InteractWith((uint)Task.AetheryteLocation, ObjectKind.Aetheryte)); return true; } - logger.LogInformation("Already attuned to aethernet shard {AethernetShard}", aetheryteLocation); + logger.LogInformation("Already attuned to aethernet shard {AethernetShard}", Task.AetheryteLocation); return false; } - public ETaskResult Update() => - aetheryteFunctions.IsAetheryteUnlocked(aetheryteLocation) + public override ETaskResult Update() => + aetheryteFunctions.IsAetheryteUnlocked(Task.AetheryteLocation) ? ETaskResult.TaskComplete : ETaskResult.StillRunning; - - public override string ToString() => $"AttuneAethernetShard({aetheryteLocation})"; } } diff --git a/Questionable/Controller/Steps/Interactions/Aetheryte.cs b/Questionable/Controller/Steps/Interactions/Aetheryte.cs index eace6409..6d3cb54d 100644 --- a/Questionable/Controller/Steps/Interactions/Aetheryte.cs +++ b/Questionable/Controller/Steps/Interactions/Aetheryte.cs @@ -1,5 +1,4 @@ using System; -using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; using Questionable.Functions; using Questionable.Model; @@ -10,10 +9,7 @@ namespace Questionable.Controller.Steps.Interactions; internal static class Aetheryte { - internal sealed class Factory( - AetheryteFunctions aetheryteFunctions, - GameFunctions gameFunctions, - ILoggerFactory loggerFactory) : SimpleTaskFactory + internal sealed class Factory : SimpleTaskFactory { public override ITask? CreateTask(Quest quest, QuestSequence sequence, QuestStep step) { @@ -22,41 +18,38 @@ internal static class Aetheryte ArgumentNullException.ThrowIfNull(step.Aetheryte); - return new DoAttune(step.Aetheryte.Value, aetheryteFunctions, gameFunctions, - loggerFactory.CreateLogger()); + return new Attune(step.Aetheryte.Value); } } - private sealed class DoAttune( - EAetheryteLocation aetheryteLocation, + internal sealed record Attune(EAetheryteLocation AetheryteLocation) : ITask + { + public override string ToString() => $"AttuneAetheryte({AetheryteLocation})"; + } + + internal sealed class DoAttune( AetheryteFunctions aetheryteFunctions, GameFunctions gameFunctions, - ILogger logger) : ITask + ILogger logger) : TaskExecutor { - private InteractionProgressContext? _progressContext; - - public InteractionProgressContext? ProgressContext() => _progressContext; - - public bool Start() + protected override bool Start() { - if (!aetheryteFunctions.IsAetheryteUnlocked(aetheryteLocation)) + if (!aetheryteFunctions.IsAetheryteUnlocked(Task.AetheryteLocation)) { - logger.LogInformation("Attuning to aetheryte {Aetheryte}", aetheryteLocation); - _progressContext = + logger.LogInformation("Attuning to aetheryte {Aetheryte}", Task.AetheryteLocation); + ProgressContext = InteractionProgressContext.FromActionUseOrDefault(() => - gameFunctions.InteractWith((uint)aetheryteLocation)); + gameFunctions.InteractWith((uint)Task.AetheryteLocation)); return true; } - logger.LogInformation("Already attuned to aetheryte {Aetheryte}", aetheryteLocation); + logger.LogInformation("Already attuned to aetheryte {Aetheryte}", Task.AetheryteLocation); return false; } - public ETaskResult Update() => - aetheryteFunctions.IsAetheryteUnlocked(aetheryteLocation) + public override ETaskResult Update() => + aetheryteFunctions.IsAetheryteUnlocked(Task.AetheryteLocation) ? ETaskResult.TaskComplete : ETaskResult.StillRunning; - - public override string ToString() => $"AttuneAetheryte({aetheryteLocation})"; } } diff --git a/Questionable/Controller/Steps/Interactions/Combat.cs b/Questionable/Controller/Steps/Interactions/Combat.cs index 170883a3..514f1575 100644 --- a/Questionable/Controller/Steps/Interactions/Combat.cs +++ b/Questionable/Controller/Steps/Interactions/Combat.cs @@ -13,14 +13,7 @@ namespace Questionable.Controller.Steps.Interactions; internal static class Combat { - internal sealed class Factory( - CombatController combatController, - Interact.Factory interactFactory, - Mount.Factory mountFactory, - UseItem.Factory useItemFactory, - Action.Factory actionFactory, - QuestFunctions questFunctions, - GameFunctions gameFunctions) : ITaskFactory + internal sealed class Factory(GameFunctions gameFunctions) : ITaskFactory { public IEnumerable CreateAllTasks(Quest quest, QuestSequence sequence, QuestStep step) { @@ -30,7 +23,7 @@ internal static class Combat ArgumentNullException.ThrowIfNull(step.EnemySpawnType); if (gameFunctions.GetMountId() != Mount128Module.MountId) - yield return mountFactory.Unmount(); + yield return new Mount.UnmountTask(); if (step.CombatDelaySecondsAtStart != null) { @@ -43,7 +36,7 @@ internal static class Combat { ArgumentNullException.ThrowIfNull(step.DataId); - yield return interactFactory.Interact(step.DataId.Value, quest, EInteractionType.None, true); + yield return new Interact.Task(step.DataId.Value, quest, EInteractionType.None, true); yield return new WaitAtEnd.WaitDelay(TimeSpan.FromSeconds(1)); yield return CreateTask(quest, sequence, step); break; @@ -54,7 +47,7 @@ internal static class Combat ArgumentNullException.ThrowIfNull(step.DataId); ArgumentNullException.ThrowIfNull(step.ItemId); - yield return useItemFactory.OnObject(quest.Id, step.DataId.Value, step.ItemId.Value, + 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); @@ -67,8 +60,8 @@ internal static class Combat ArgumentNullException.ThrowIfNull(step.Action); if (!step.Action.Value.RequiresMount()) - yield return mountFactory.Unmount(); - yield return actionFactory.OnObject(step.DataId.Value, step.Action.Value); + yield return new Mount.UnmountTask(); + yield return new Action.UseOnObject(step.DataId.Value, step.Action.Value); yield return new WaitAtEnd.WaitDelay(TimeSpan.FromSeconds(1)); yield return CreateTask(quest, sequence, step); break; @@ -92,7 +85,7 @@ internal static class Combat } } - public ITask CreateTask(Quest quest, QuestSequence sequence, QuestStep step) + private static Task CreateTask(Quest quest, QuestSequence sequence, QuestStep step) { ArgumentNullException.ThrowIfNull(step.EnemySpawnType); @@ -101,46 +94,60 @@ internal static class Combat step.CompletionQuestVariablesFlags, step.ComplexCombatData); } - internal HandleCombat CreateTask(ElementId? elementId, bool isLastStep, EEnemySpawnType enemySpawnType, + internal static Task CreateTask(ElementId? elementId, bool isLastStep, EEnemySpawnType enemySpawnType, IList killEnemyDataIds, IList completionQuestVariablesFlags, IList complexCombatData) { - return new HandleCombat(isLastStep, new CombatController.CombatData + return new Task(new CombatController.CombatData { ElementId = elementId, SpawnType = enemySpawnType, KillEnemyDataIds = killEnemyDataIds.ToList(), ComplexCombatDatas = complexCombatData.ToList(), - }, completionQuestVariablesFlags, combatController, questFunctions); + }, completionQuestVariablesFlags, isLastStep); + } + } + + internal sealed record Task( + CombatController.CombatData CombatData, + IList CompletionQuestVariableFlags, + bool IsLastStep) : ITask + { + public override string ToString() + { + if (QuestWorkUtils.HasCompletionFlags(CompletionQuestVariableFlags)) + return $"HandleCombat(wait: QW flags)"; + else if (IsLastStep) + return $"HandleCombat(wait: next sequence)"; + else + return $"HandleCombat(wait: not in combat)"; } } internal sealed class HandleCombat( - bool isLastStep, - CombatController.CombatData combatData, - IList completionQuestVariableFlags, + CombatController combatController, - QuestFunctions questFunctions) : ITask + QuestFunctions questFunctions) : TaskExecutor { private CombatController.EStatus _status = CombatController.EStatus.NotStarted; - public bool Start() => combatController.Start(combatData); + protected override bool Start() => combatController.Start(Task.CombatData); - public ETaskResult Update() + public override ETaskResult Update() { _status = combatController.Update(); if (_status != CombatController.EStatus.Complete) return ETaskResult.StillRunning; // if our quest step has any completion flags, we need to check if they are set - if (QuestWorkUtils.HasCompletionFlags(completionQuestVariableFlags) && - combatData.ElementId is QuestId questId) + if (QuestWorkUtils.HasCompletionFlags(Task.CompletionQuestVariableFlags) && + Task.CombatData.ElementId is QuestId questId) { var questWork = questFunctions.GetQuestProgressInfo(questId); if (questWork == null) return ETaskResult.StillRunning; - if (QuestWorkUtils.MatchesQuestWork(completionQuestVariableFlags, questWork)) + if (QuestWorkUtils.MatchesQuestWork(Task.CompletionQuestVariableFlags, questWork)) return ETaskResult.TaskComplete; else return ETaskResult.StillRunning; @@ -148,7 +155,7 @@ internal static class Combat // the last step, by definition, can only be progressed by the game recognizing we're in a new sequence, // so this is an indefinite wait - if (isLastStep) + if (Task.IsLastStep) return ETaskResult.StillRunning; else { @@ -156,15 +163,5 @@ internal static class Combat return ETaskResult.TaskComplete; } } - - public override string ToString() - { - if (QuestWorkUtils.HasCompletionFlags(completionQuestVariableFlags)) - return $"HandleCombat(wait: QW flags, s: {_status})"; - else if (isLastStep) - return $"HandleCombat(wait: next sequence, s: {_status})"; - else - return $"HandleCombat(wait: not in combat, s: {_status})"; - } } } diff --git a/Questionable/Controller/Steps/Interactions/Dive.cs b/Questionable/Controller/Steps/Interactions/Dive.cs index 0fb2d3a6..b5389774 100644 --- a/Questionable/Controller/Steps/Interactions/Dive.cs +++ b/Questionable/Controller/Steps/Interactions/Dive.cs @@ -18,24 +18,25 @@ namespace Questionable.Controller.Steps.Interactions; internal static class Dive { - internal sealed class Factory(ICondition condition, ILoggerFactory loggerFactory) : SimpleTaskFactory + internal sealed class Factory : SimpleTaskFactory { public override ITask? CreateTask(Quest quest, QuestSequence sequence, QuestStep step) { if (step.InteractionType != EInteractionType.Dive) return null; - return Dive(); - } - - public ITask Dive() - { - return new DoDive(condition, loggerFactory.CreateLogger()); + return new Task(); } } - private sealed class DoDive(ICondition condition, ILogger logger) - : AbstractDelayedTask(TimeSpan.FromSeconds(5)) + internal sealed class Task : ITask + { + + public override string ToString() => "Dive"; + } + + internal sealed class DoDive(ICondition condition, ILogger logger) + : AbstractDelayedTaskExecutor(TimeSpan.FromSeconds(5)) { private readonly Queue<(uint Type, nint Key)> _keysToPress = []; private int _attempts; @@ -114,8 +115,6 @@ internal static class Dive foreach (var key in realKeys) _keysToPress.Enqueue((NativeMethods.WM_KEYUP, key)); } - - public override string ToString() => "Dive"; } private static List? GetKeysToPress(SeVirtualKey key, ModifierFlag modifier) diff --git a/Questionable/Controller/Steps/Interactions/Duty.cs b/Questionable/Controller/Steps/Interactions/Duty.cs index 975d107e..172eb961 100644 --- a/Questionable/Controller/Steps/Interactions/Duty.cs +++ b/Questionable/Controller/Steps/Interactions/Duty.cs @@ -1,7 +1,6 @@ using System; using Dalamud.Game.ClientState.Conditions; using Dalamud.Plugin.Services; -using Microsoft.Extensions.DependencyInjection; using Questionable.Functions; using Questionable.Model; using Questionable.Model.Questing; @@ -10,7 +9,7 @@ namespace Questionable.Controller.Steps.Interactions; internal static class Duty { - internal sealed class Factory(GameFunctions gameFunctions, ICondition condition) : SimpleTaskFactory + internal sealed class Factory : SimpleTaskFactory { public override ITask? CreateTask(Quest quest, QuestSequence sequence, QuestStep step) { @@ -18,26 +17,28 @@ internal static class Duty return null; ArgumentNullException.ThrowIfNull(step.ContentFinderConditionId); - return new OpenDutyFinder(step.ContentFinderConditionId.Value, gameFunctions, condition); + return new Task(step.ContentFinderConditionId.Value); } } - private sealed class OpenDutyFinder( - uint contentFinderConditionId, - GameFunctions gameFunctions, - ICondition condition) : ITask + internal sealed record Task(uint ContentFinderConditionId) : ITask { - public bool Start() + public override string ToString() => $"OpenDutyFinder({ContentFinderConditionId})"; + } + + internal sealed class Executor( + GameFunctions gameFunctions, + ICondition condition) : TaskExecutor + { + protected override bool Start() { if (condition[ConditionFlag.InDutyQueue]) return false; - gameFunctions.OpenDutyFinder(contentFinderConditionId); + gameFunctions.OpenDutyFinder(Task.ContentFinderConditionId); return true; } - public ETaskResult Update() => ETaskResult.TaskComplete; - - public override string ToString() => $"OpenDutyFinder({contentFinderConditionId})"; + public override ETaskResult Update() => ETaskResult.TaskComplete; } } diff --git a/Questionable/Controller/Steps/Interactions/Emote.cs b/Questionable/Controller/Steps/Interactions/Emote.cs index 8a5db80e..085b0356 100644 --- a/Questionable/Controller/Steps/Interactions/Emote.cs +++ b/Questionable/Controller/Steps/Interactions/Emote.cs @@ -1,6 +1,5 @@ using System; using System.Collections.Generic; -using Microsoft.Extensions.DependencyInjection; using Questionable.Controller.Steps.Common; using Questionable.Functions; using Questionable.Model; @@ -10,7 +9,7 @@ namespace Questionable.Controller.Steps.Interactions; internal static class Emote { - internal sealed class Factory(ChatFunctions chatFunctions, Mount.Factory mountFactory) : ITaskFactory + internal sealed class Factory : ITaskFactory { public IEnumerable CreateAllTasks(Quest quest, QuestSequence sequence, QuestStep step) { @@ -25,39 +24,46 @@ internal static class Emote ArgumentNullException.ThrowIfNull(step.Emote); - var unmount = mountFactory.Unmount(); + var unmount = new Mount.UnmountTask(); if (step.DataId != null) { - var task = new UseOnObject(step.Emote.Value, step.DataId.Value, chatFunctions); + var task = new UseOnObject(step.Emote.Value, step.DataId.Value); return [unmount, task]; } else { - var task = new UseOnSelf(step.Emote.Value, chatFunctions); + var task = new UseOnSelf(step.Emote.Value); return [unmount, task]; } } } - private sealed class UseOnObject(EEmote emote, uint dataId, ChatFunctions chatFunctions) : AbstractDelayedTask + internal sealed record UseOnObject(EEmote Emote, uint DataId) : ITask { - protected override bool StartInternal() - { - chatFunctions.UseEmote(dataId, emote); - return true; - } - - public override string ToString() => $"Emote({emote} on {dataId})"; + public override string ToString() => $"Emote({Emote} on {DataId})"; } - private sealed class UseOnSelf(EEmote emote, ChatFunctions chatFunctions) : AbstractDelayedTask + internal sealed class UseOnObjectExecutor(ChatFunctions chatFunctions) + : AbstractDelayedTaskExecutor { protected override bool StartInternal() { - chatFunctions.UseEmote(emote); + chatFunctions.UseEmote(Task.DataId, Task.Emote); return true; } + } - public override string ToString() => $"Emote({emote})"; + internal sealed record UseOnSelf(EEmote Emote) : ITask + { + public override string ToString() => $"Emote({Emote})"; + } + + internal sealed class UseOnSelfExecutor(ChatFunctions chatFunctions) : AbstractDelayedTaskExecutor + { + protected override bool StartInternal() + { + chatFunctions.UseEmote(Task.Emote); + return true; + } } } diff --git a/Questionable/Controller/Steps/Interactions/EquipItem.cs b/Questionable/Controller/Steps/Interactions/EquipItem.cs index 4adea079..d9cd3971 100644 --- a/Questionable/Controller/Steps/Interactions/EquipItem.cs +++ b/Questionable/Controller/Steps/Interactions/EquipItem.cs @@ -16,7 +16,7 @@ namespace Questionable.Controller.Steps.Interactions; internal static class EquipItem { - internal sealed class Factory(IDataManager dataManager, ILoggerFactory loggerFactory) : SimpleTaskFactory + internal sealed class Factory : SimpleTaskFactory { public override ITask? CreateTask(Quest quest, QuestSequence sequence, QuestStep step) { @@ -24,36 +24,18 @@ internal static class EquipItem return null; ArgumentNullException.ThrowIfNull(step.ItemId); - return Equip(step.ItemId.Value); - } - - private DoEquip Equip(uint itemId) - { - var item = dataManager.GetExcelSheet()!.GetRow(itemId) ?? - throw new ArgumentOutOfRangeException(nameof(itemId)); - var targetSlots = GetEquipSlot(item) ?? throw new InvalidOperationException("Not a piece of equipment"); - return new DoEquip(itemId, item, targetSlots, dataManager, loggerFactory.CreateLogger()); - } - - private static List? GetEquipSlot(Item item) - { - return item.EquipSlotCategory.Row switch - { - >= 1 and <= 11 => [(ushort)(item.EquipSlotCategory.Row - 1)], - 12 => [11, 12], // rings - 13 => [0], - 17 => [13], // soul crystal - _ => null - }; + return new Task(step.ItemId.Value); } } - private sealed class DoEquip( - uint itemId, - Item item, - List targetSlots, + internal sealed record Task(uint ItemId) : ITask + { + public override string ToString() => $"Equip({ItemId})"; + } + + internal sealed class Executor( IDataManager dataManager, - ILogger logger) : ITask, IToastAware + ILogger logger) : TaskExecutor, IToastAware { private const int MaxAttempts = 3; @@ -81,16 +63,22 @@ internal static class EquipItem ]; private int _attempts; + private Item _item = null!; + private List _targetSlots = null!; private DateTime _continueAt = DateTime.MaxValue; - public bool Start() + protected override bool Start() { + _item = dataManager.GetExcelSheet()!.GetRow(Task.ItemId) ?? + throw new ArgumentOutOfRangeException(nameof(Task.ItemId)); + _targetSlots = GetEquipSlot(_item) ?? throw new InvalidOperationException("Not a piece of equipment"); + Equip(); _continueAt = DateTime.Now.AddSeconds(1); return true; } - public unsafe ETaskResult Update() + public override unsafe ETaskResult Update() { if (DateTime.Now < _continueAt) return ETaskResult.StillRunning; @@ -99,10 +87,10 @@ internal static class EquipItem if (inventoryManager == null) return ETaskResult.StillRunning; - foreach (ushort x in targetSlots) + foreach (ushort x in _targetSlots) { var itemSlot = inventoryManager->GetInventorySlot(InventoryType.EquippedItems, x); - if (itemSlot != null && itemSlot->ItemId == itemId) + if (itemSlot != null && itemSlot->ItemId == Task.ItemId) return ETaskResult.TaskComplete; } @@ -125,12 +113,12 @@ internal static class EquipItem if (equippedContainer == null) return; - foreach (ushort slot in targetSlots) + foreach (ushort slot in _targetSlots) { var itemSlot = equippedContainer->GetInventorySlot(slot); - if (itemSlot != null && itemSlot->ItemId == itemId) + 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; } } @@ -141,24 +129,24 @@ internal static class EquipItem if (sourceContainer == null) continue; - if (inventoryManager->GetItemCountInContainer(itemId, sourceInventoryType, true) == 0 && - inventoryManager->GetItemCountInContainer(itemId, sourceInventoryType) == 0) + if (inventoryManager->GetItemCountInContainer(Task.ItemId, sourceInventoryType, true) == 0 && + inventoryManager->GetItemCountInContainer(Task.ItemId, sourceInventoryType) == 0) continue; for (ushort sourceSlot = 0; sourceSlot < sourceContainer->Size; sourceSlot++) { var sourceItem = sourceContainer->GetInventorySlot(sourceSlot); - if (sourceItem == null || sourceItem->ItemId != itemId) + if (sourceItem == null || sourceItem->ItemId != Task.ItemId) continue; // Move the item to the first available slot - ushort targetSlot = targetSlots + ushort targetSlot = _targetSlots .Where(x => { var itemSlot = inventoryManager->GetInventorySlot(InventoryType.EquippedItems, x); return itemSlot == null || itemSlot->ItemId == 0; }) - .Concat(targetSlots).First(); + .Concat(_targetSlots).First(); logger.LogInformation( "Equipping item from {SourceInventory}, {SourceSlot} to {TargetInventory}, {TargetSlot}", @@ -172,7 +160,17 @@ internal static class EquipItem } } - public override string ToString() => $"Equip({item.Name})"; + private static List? GetEquipSlot(Item item) + { + return item.EquipSlotCategory.Row switch + { + >= 1 and <= 11 => [(ushort)(item.EquipSlotCategory.Row - 1)], + 12 => [11, 12], // rings + 13 => [0], + 17 => [13], // soul crystal + _ => null + }; + } public bool OnErrorToast(SeString message) { diff --git a/Questionable/Controller/Steps/Interactions/EquipRecommended.cs b/Questionable/Controller/Steps/Interactions/EquipRecommended.cs index 5ff7ab35..cd4f7982 100644 --- a/Questionable/Controller/Steps/Interactions/EquipRecommended.cs +++ b/Questionable/Controller/Steps/Interactions/EquipRecommended.cs @@ -10,23 +10,18 @@ namespace Questionable.Controller.Steps.Interactions; internal static class EquipRecommended { - internal sealed class Factory(IClientState clientState, IChatGui chatGui) : SimpleTaskFactory + internal sealed class Factory : SimpleTaskFactory { public override ITask? CreateTask(Quest quest, QuestSequence sequence, QuestStep step) { if (step.InteractionType != EInteractionType.EquipRecommended) return null; - return DoEquip(); - } - - public ITask DoEquip() - { - return new DoEquipRecommended(clientState, chatGui); + return new EquipTask(); } } - internal sealed class BeforeDutyOrInstance(IClientState clientState, IChatGui chatGui) : SimpleTaskFactory + internal sealed class BeforeDutyOrInstance : SimpleTaskFactory { public override ITask? CreateTask(Quest quest, QuestSequence sequence, QuestStep step) { @@ -35,21 +30,26 @@ internal static class EquipRecommended step.InteractionType != EInteractionType.Combat) return null; - return new DoEquipRecommended(clientState, chatGui); + return new EquipTask(); } } - private sealed unsafe class DoEquipRecommended(IClientState clientState, IChatGui chatGui) : ITask + internal sealed class EquipTask : ITask + { + public override string ToString() => "EquipRecommended"; + } + + internal sealed unsafe class DoEquipRecommended(IClientState clientState, IChatGui chatGui) : TaskExecutor { private bool _equipped; - public bool Start() + protected override bool Start() { RecommendEquipModule.Instance()->SetupForClassJob((byte)clientState.LocalPlayer!.ClassJob.Id); return true; } - public ETaskResult Update() + public override ETaskResult Update() { var recommendedEquipModule = RecommendEquipModule.Instance(); if (recommendedEquipModule->IsUpdating) @@ -94,7 +94,5 @@ internal static class EquipRecommended return ETaskResult.TaskComplete; } - - public override string ToString() => "EquipRecommended"; } } diff --git a/Questionable/Controller/Steps/Interactions/Interact.cs b/Questionable/Controller/Steps/Interactions/Interact.cs index 020fc66e..286cf828 100644 --- a/Questionable/Controller/Steps/Interactions/Interact.cs +++ b/Questionable/Controller/Steps/Interactions/Interact.cs @@ -5,7 +5,6 @@ using Dalamud.Game.ClientState.Objects.Enums; using Dalamud.Game.ClientState.Objects.Types; using Dalamud.Plugin.Services; using FFXIVClientStructs.FFXIV.Client.Game; -using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; using Questionable.Controller.Steps.Shared; using Questionable.Functions; @@ -16,12 +15,7 @@ namespace Questionable.Controller.Steps.Interactions; internal static class Interact { - internal sealed class Factory( - GameFunctions gameFunctions, - Configuration configuration, - ICondition condition, - ILoggerFactory loggerFactory) - : ITaskFactory + internal sealed class Factory(Configuration configuration) : ITaskFactory { public IEnumerable CreateAllTasks(Quest quest, QuestSequence sequence, QuestStep step) { @@ -55,58 +49,50 @@ internal static class Interact if (sequence.Sequence == 0 && sequence.Steps.IndexOf(step) == 0) yield return new WaitAtEnd.WaitDelay(); - yield return Interact(step.DataId.Value, quest, step.InteractionType, + yield return new Task(step.DataId.Value, quest, step.InteractionType, step.TargetTerritoryId != null || quest.Id is SatisfactionSupplyNpcId || step.SkipConditions is { StepIf.Never: true }, step.PickUpItemId, step.SkipConditions?.StepIf); } + } - internal ITask Interact(uint dataId, Quest? quest, EInteractionType interactionType, - bool skipMarkerCheck = false, uint? pickUpItemId = null, SkipStepConditions? skipConditions = null) - { - return new DoInteract(dataId, quest, interactionType, skipMarkerCheck, pickUpItemId, skipConditions, - gameFunctions, condition, loggerFactory.CreateLogger()); - } + internal sealed record Task( + uint DataId, + Quest? Quest, + EInteractionType InteractionType, + bool SkipMarkerCheck = false, + uint? PickUpItemId = null, + SkipStepConditions? SkipConditions = null) : ITask + { + public override string ToString() => $"Interact({DataId})"; } internal sealed class DoInteract( - uint dataId, - Quest? quest, - EInteractionType interactionType, - bool skipMarkerCheck, - uint? pickUpItemId, - SkipStepConditions? skipConditions, GameFunctions gameFunctions, ICondition condition, ILogger logger) - : ITask + : TaskExecutor { private bool _needsUnmount; - private InteractionProgressContext? _progressContext; private DateTime _continueAt = DateTime.MinValue; - public Quest? Quest => quest; + public Quest? Quest => Task.Quest; + public EInteractionType InteractionType { get; set; } - public EInteractionType InteractionType + protected override bool Start() { - get => interactionType; - set => interactionType = value; - } + InteractionType = Task.InteractionType; - public InteractionProgressContext? ProgressContext() => _progressContext; - - public bool Start() - { - IGameObject? gameObject = gameFunctions.FindObjectByDataId(dataId); + IGameObject? gameObject = gameFunctions.FindObjectByDataId(Task.DataId); if (gameObject == null) { - logger.LogWarning("No game object with dataId {DataId}", dataId); + logger.LogWarning("No game object with dataId {DataId}", Task.DataId); return false; } - if (!gameObject.IsTargetable && skipConditions is { Never: false, NotTargetable: true }) + if (!gameObject.IsTargetable && Task.SkipConditions is { Never: false, NotTargetable: true }) { logger.LogInformation("Not interacting with {DataId} because it is not targetable (but skippable)", - dataId); + Task.DataId); return false; } @@ -114,7 +100,7 @@ internal static class Interact if (!gameObject.IsTargetable && condition[ConditionFlag.Mounted] && gameObject.ObjectKind != ObjectKind.GatheringPoint) { - logger.LogInformation("Preparing interaction for {DataId} by unmounting", dataId); + logger.LogInformation("Preparing interaction for {DataId} by unmounting", Task.DataId); _needsUnmount = true; gameFunctions.Unmount(); _continueAt = DateTime.Now.AddSeconds(1); @@ -123,7 +109,7 @@ internal static class Interact if (gameObject.IsTargetable && HasAnyMarker(gameObject)) { - _progressContext = + ProgressContext = InteractionProgressContext.FromActionUseOrDefault(() => gameFunctions.InteractWith(gameObject)); _continueAt = DateTime.Now.AddSeconds(0.5); return true; @@ -132,7 +118,7 @@ internal static class Interact return true; } - public ETaskResult Update() + public override ETaskResult Update() { if (DateTime.Now <= _continueAt) return ETaskResult.StillRunning; @@ -149,29 +135,29 @@ internal static class Interact _needsUnmount = false; } - if (pickUpItemId != null) + if (Task.PickUpItemId != null) { unsafe { InventoryManager* inventoryManager = InventoryManager.Instance(); - if (inventoryManager->GetInventoryItemCount(pickUpItemId.Value) > 0) + if (inventoryManager->GetInventoryItemCount(Task.PickUpItemId.Value) > 0) return ETaskResult.TaskComplete; } } else { - if (_progressContext != null && _progressContext.WasSuccessful()) + if (ProgressContext != null && ProgressContext.WasSuccessful()) return ETaskResult.TaskComplete; - if (interactionType == EInteractionType.Gather && condition[ConditionFlag.Gathering]) + if (InteractionType == EInteractionType.Gather && condition[ConditionFlag.Gathering]) return ETaskResult.TaskComplete; } - IGameObject? gameObject = gameFunctions.FindObjectByDataId(dataId); + IGameObject? gameObject = gameFunctions.FindObjectByDataId(Task.DataId); if (gameObject == null || !gameObject.IsTargetable || !HasAnyMarker(gameObject)) return ETaskResult.StillRunning; - _progressContext = + ProgressContext = InteractionProgressContext.FromActionUseOrDefault(() => gameFunctions.InteractWith(gameObject)); _continueAt = DateTime.Now.AddSeconds(0.5); return ETaskResult.StillRunning; @@ -179,13 +165,11 @@ internal static class Interact private unsafe bool HasAnyMarker(IGameObject gameObject) { - if (skipMarkerCheck || gameObject.ObjectKind != ObjectKind.EventNpc) + if (Task.SkipMarkerCheck || gameObject.ObjectKind != ObjectKind.EventNpc) return true; var gameObjectStruct = (FFXIVClientStructs.FFXIV.Client.Game.Object.GameObject*)gameObject.Address; return gameObjectStruct->NamePlateIconId != 0; } - - public override string ToString() => $"Interact({dataId})"; } } diff --git a/Questionable/Controller/Steps/Interactions/Jump.cs b/Questionable/Controller/Steps/Interactions/Jump.cs index d9d93db5..f7b9892d 100644 --- a/Questionable/Controller/Steps/Interactions/Jump.cs +++ b/Questionable/Controller/Steps/Interactions/Jump.cs @@ -12,12 +12,7 @@ namespace Questionable.Controller.Steps.Interactions; internal static class Jump { - internal sealed class Factory( - MovementController movementController, - IClientState clientState, - IFramework framework, - ICondition condition, - ILoggerFactory loggerFactory) : SimpleTaskFactory + internal sealed class Factory : SimpleTaskFactory { public override ITask? CreateTask(Quest quest, QuestSequence sequence, QuestStep step) { @@ -27,39 +22,42 @@ internal static class Jump ArgumentNullException.ThrowIfNull(step.JumpDestination); if (step.JumpDestination.Type == EJumpType.SingleJump) - return SingleJump(step.DataId, step.JumpDestination, step.Comment); + return new SingleJumpTask(step.DataId, step.JumpDestination, step.Comment); else - return RepeatedJumps(step.DataId, step.JumpDestination, step.Comment); - } - - public ITask SingleJump(uint? dataId, JumpDestination jumpDestination, string? comment) - { - return new DoSingleJump(dataId, jumpDestination, comment, movementController, clientState, framework); - } - - public ITask RepeatedJumps(uint? dataId, JumpDestination jumpDestination, string? comment) - { - return new DoRepeatedJumps(dataId, jumpDestination, comment, movementController, clientState, framework, - condition, loggerFactory.CreateLogger()); + return new RepeatedJumpTask(step.DataId, step.JumpDestination, step.Comment); } } - private class DoSingleJump( - uint? dataId, - JumpDestination jumpDestination, - string? comment, + internal interface IJumpTask : ITask + { + uint? DataId { get; } + JumpDestination JumpDestination { get; } + string? Comment { get; } + } + + internal sealed record SingleJumpTask( + uint? DataId, + JumpDestination JumpDestination, + string? Comment) : IJumpTask + { + public override string ToString() => $"Jump({Comment})"; + } + + internal abstract class JumpBase( MovementController movementController, IClientState clientState, - IFramework framework) : ITask + IFramework framework) : TaskExecutor + where T : class, IJumpTask { - public virtual bool Start() + protected override bool Start() { - float stopDistance = jumpDestination.CalculateStopDistance(); - if ((clientState.LocalPlayer!.Position - jumpDestination.Position).Length() <= stopDistance) + float stopDistance = Task.JumpDestination.CalculateStopDistance(); + if ((clientState.LocalPlayer!.Position - Task.JumpDestination.Position).Length() <= stopDistance) return false; - movementController.NavigateTo(EMovementType.Quest, dataId, [jumpDestination.Position], false, false, - jumpDestination.StopDistance ?? stopDistance); + movementController.NavigateTo(EMovementType.Quest, Task.DataId, [Task.JumpDestination.Position], false, + false, + Task.JumpDestination.StopDistance ?? stopDistance); framework.RunOnTick(() => { unsafe @@ -67,11 +65,11 @@ internal static class Jump ActionManager.Instance()->UseAction(ActionType.GeneralAction, 2); } }, - TimeSpan.FromSeconds(jumpDestination.DelaySeconds ?? 0.5f)); + TimeSpan.FromSeconds(Task.JumpDestination.DelaySeconds ?? 0.5f)); return true; } - public virtual ETaskResult Update() + public override ETaskResult Update() { if (movementController.IsPathfinding || movementController.IsPathRunning) return ETaskResult.StillRunning; @@ -82,30 +80,36 @@ internal static class Jump return ETaskResult.TaskComplete; } - - public override string ToString() => $"Jump({comment})"; } - private sealed class DoRepeatedJumps( - uint? dataId, - JumpDestination jumpDestination, - string? comment, + internal sealed class DoSingleJump( + MovementController movementController, + IClientState clientState, + IFramework framework) : JumpBase(movementController, clientState, framework); + + internal sealed record RepeatedJumpTask( + uint? DataId, + JumpDestination JumpDestination, + string? Comment) : IJumpTask + { + public override string ToString() => $"RepeatedJump({Comment})"; + } + + internal sealed class DoRepeatedJumps( MovementController movementController, IClientState clientState, IFramework framework, ICondition condition, ILogger logger) - : DoSingleJump(dataId, jumpDestination, comment, movementController, clientState, framework) + : JumpBase(movementController, clientState, framework) { - private readonly JumpDestination _jumpDestination = jumpDestination; - private readonly string? _comment = comment; private readonly IClientState _clientState = clientState; private DateTime _continueAt = DateTime.MinValue; private int _attempts; - public override bool Start() + protected override bool Start() { - _continueAt = DateTime.Now + TimeSpan.FromSeconds(2 * (_jumpDestination.DelaySeconds ?? 0.5f)); + _continueAt = DateTime.Now + TimeSpan.FromSeconds(2 * (Task.JumpDestination.DelaySeconds ?? 0.5f)); return base.Start(); } @@ -114,13 +118,13 @@ internal static class Jump if (DateTime.Now < _continueAt || condition[ConditionFlag.Jumping]) return ETaskResult.StillRunning; - float stopDistance = _jumpDestination.CalculateStopDistance(); - if ((_clientState.LocalPlayer!.Position - _jumpDestination.Position).Length() <= stopDistance || - _clientState.LocalPlayer.Position.Y >= _jumpDestination.Position.Y - 0.5f) + float stopDistance = Task.JumpDestination.CalculateStopDistance(); + if ((_clientState.LocalPlayer!.Position - Task.JumpDestination.Position).Length() <= stopDistance || + _clientState.LocalPlayer.Position.Y >= Task.JumpDestination.Position.Y - 0.5f) return ETaskResult.TaskComplete; logger.LogTrace("Y-Heights for jumps: player={A}, target={B}", _clientState.LocalPlayer.Position.Y, - _jumpDestination.Position.Y - 0.5f); + Task.JumpDestination.Position.Y - 0.5f); unsafe { if (ActionManager.Instance()->UseAction(ActionType.GeneralAction, 2)) @@ -130,10 +134,8 @@ internal static class Jump if (_attempts >= 50) throw new TaskException("Tried to jump too many times, didn't reach the target"); - _continueAt = DateTime.Now + TimeSpan.FromSeconds(_jumpDestination.DelaySeconds ?? 0.5f); + _continueAt = DateTime.Now + TimeSpan.FromSeconds(Task.JumpDestination.DelaySeconds ?? 0.5f); return ETaskResult.StillRunning; } - - public override string ToString() => $"RepeatedJump({_comment})"; } } diff --git a/Questionable/Controller/Steps/Interactions/Say.cs b/Questionable/Controller/Steps/Interactions/Say.cs index 3d917b33..f13ab4ab 100644 --- a/Questionable/Controller/Steps/Interactions/Say.cs +++ b/Questionable/Controller/Steps/Interactions/Say.cs @@ -10,10 +10,7 @@ namespace Questionable.Controller.Steps.Interactions; internal static class Say { - internal sealed class Factory( - ChatFunctions chatFunctions, - Mount.Factory mountFactory, - ExcelFunctions excelFunctions) : ITaskFactory + internal sealed class Factory(ExcelFunctions excelFunctions) : ITaskFactory { public IEnumerable CreateAllTasks(Quest quest, QuestSequence sequence, QuestStep step) { @@ -33,20 +30,23 @@ internal static class Say .GetString(); ArgumentNullException.ThrowIfNull(excelString); - var unmount = mountFactory.Unmount(); - var task = new UseChat(excelString, chatFunctions); + var unmount = new Mount.UnmountTask(); + var task = new Task(excelString); return [unmount, task]; } } - private sealed class UseChat(string chatMessage, ChatFunctions chatFunctions) : AbstractDelayedTask + internal sealed record Task(string ChatMessage) : ITask + { + public override string ToString() => $"Say({ChatMessage})"; + } + + internal sealed class UseChat(ChatFunctions chatFunctions) : AbstractDelayedTaskExecutor { protected override bool StartInternal() { - chatFunctions.ExecuteCommand($"/say {chatMessage}"); + chatFunctions.ExecuteCommand($"/say {Task.ChatMessage}"); return true; } - - public override string ToString() => $"Say({chatMessage})"; } } diff --git a/Questionable/Controller/Steps/Interactions/UseItem.cs b/Questionable/Controller/Steps/Interactions/UseItem.cs index e4f0de00..ccdb998d 100644 --- a/Questionable/Controller/Steps/Interactions/UseItem.cs +++ b/Questionable/Controller/Steps/Interactions/UseItem.cs @@ -5,9 +5,7 @@ using System.Linq; using System.Numerics; using Dalamud.Game.ClientState.Conditions; using Dalamud.Plugin.Services; -using FFXIVClientStructs.FFXIV.Application.Network.WorkDefinitions; using FFXIVClientStructs.FFXIV.Client.Game; -using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; using Questionable.Controller.Steps.Common; using Questionable.Controller.Steps.Shared; @@ -24,17 +22,8 @@ namespace Questionable.Controller.Steps.Interactions; internal static class UseItem { internal sealed class Factory( - Mount.Factory mountFactory, - MoveTo.Factory moveFactory, - Interact.Factory interactFactory, - AetheryteShortcut.Factory aetheryteShortcutFactory, - AethernetShortcut.Factory aethernetShortcutFactory, - GameFunctions gameFunctions, - QuestFunctions questFunctions, - ICondition condition, IClientState clientState, TerritoryData territoryData, - ILoggerFactory loggerFactory, ILogger logger) : ITaskFactory { @@ -59,7 +48,7 @@ internal static class UseItem return CreateVesperBayFallbackTask(); } - var task = OnSelf(quest.Id, step.ItemId.Value, step.CompletionQuestVariablesFlags); + var task = new UseOnSelf(quest.Id, step.ItemId.Value, step.CompletionQuestVariablesFlags); int currentStepIndex = sequence.Steps.IndexOf(step); QuestStep? nextStep = sequence.Steps.Skip(currentStepIndex + 1).FirstOrDefault(); @@ -67,27 +56,27 @@ internal static class UseItem return [ task, - new WaitConditionTask(() => clientState.TerritoryType == 140, + new WaitCondition.Task(() => clientState.TerritoryType == 140, $"Wait(territory: {territoryData.GetNameAndId(140)})"), - mountFactory.Mount(140, + new Mount.MountTask(140, nextPosition != null ? Mount.EMountIf.AwayFromPosition : Mount.EMountIf.Always, nextPosition), - moveFactory.Move(new MoveTo.MoveParams(140, new(-408.92343f, 23.167036f, -351.16223f), null, 0.25f, - DataId: null, DisableNavMesh: true, Sprint: false, Fly: false)) + new MoveTo.MoveTask(140, new(-408.92343f, 23.167036f, -351.16223f), null, 0.25f, + DataId: null, DisableNavmesh: true, Sprint: false, Fly: false) ]; } - var unmount = mountFactory.Unmount(); + var unmount = new Mount.UnmountTask(); if (step.GroundTarget == true) { ITask task; if (step.DataId != null) - task = OnGroundTarget(quest.Id, step.DataId.Value, step.ItemId.Value, + task = new UseOnGround(quest.Id, step.DataId.Value, step.ItemId.Value, step.CompletionQuestVariablesFlags); else { ArgumentNullException.ThrowIfNull(step.Position); - task = OnPosition(quest.Id, step.Position.Value, step.ItemId.Value, + task = new UseOnPosition(quest.Id, step.Position.Value, step.ItemId.Value, step.CompletionQuestVariablesFlags); } @@ -95,43 +84,17 @@ internal static class UseItem } else if (step.DataId != null) { - var task = OnObject(quest.Id, step.DataId.Value, step.ItemId.Value, step.CompletionQuestVariablesFlags); + var task = new UseOnObject(quest.Id, step.DataId.Value, step.ItemId.Value, + step.CompletionQuestVariablesFlags); return [unmount, task]; } else { - var task = OnSelf(quest.Id, step.ItemId.Value, step.CompletionQuestVariablesFlags); + var task = new UseOnSelf(quest.Id, step.ItemId.Value, step.CompletionQuestVariablesFlags); return [unmount, task]; } } - public ITask OnGroundTarget(ElementId questId, uint dataId, uint itemId, - List completionQuestVariablesFlags) - { - return new UseOnGround(questId, dataId, itemId, completionQuestVariablesFlags, gameFunctions, - questFunctions, condition, loggerFactory.CreateLogger()); - } - - public ITask OnPosition(ElementId questId, Vector3 position, uint itemId, - List completionQuestVariablesFlags) - { - return new UseOnPosition(questId, position, itemId, completionQuestVariablesFlags, gameFunctions, - questFunctions, condition, loggerFactory.CreateLogger()); - } - - public ITask OnObject(ElementId questId, uint dataId, uint itemId, - List completionQuestVariablesFlags, bool startingCombat = false) - { - return new UseOnObject(questId, dataId, itemId, completionQuestVariablesFlags, startingCombat, - questFunctions, gameFunctions, condition, loggerFactory.CreateLogger()); - } - - public ITask OnSelf(ElementId questId, uint itemId, List completionQuestVariablesFlags) - { - return new Use(questId, itemId, completionQuestVariablesFlags, gameFunctions, questFunctions, condition, - loggerFactory.CreateLogger()); - } - private IEnumerable CreateVesperBayFallbackTask() { logger.LogWarning("No vesper bay aetheryte tickets in inventory, navigating via ferry in Limsa instead"); @@ -139,39 +102,40 @@ internal static class UseItem uint npcId = 1003540; ushort territoryId = 129; Vector3 destination = new(-360.9217f, 8f, 38.92566f); - yield return aetheryteShortcutFactory.Use(null, null, EAetheryteLocation.Limsa, territoryId); - yield return aethernetShortcutFactory.Use(EAetheryteLocation.Limsa, EAetheryteLocation.LimsaArcanist); + yield return new AetheryteShortcut.Task(null, null, EAetheryteLocation.Limsa, territoryId); + yield return new AethernetShortcut.Task(EAetheryteLocation.Limsa, EAetheryteLocation.LimsaArcanist); yield return new WaitAtEnd.WaitDelay(); - yield return - moveFactory.Move(new MoveTo.MoveParams(territoryId, destination, DataId: npcId, Sprint: false)); - yield return interactFactory.Interact(npcId, null, EInteractionType.None, true); + yield return new MoveTo.MoveTask(territoryId, destination, DataId: npcId, Sprint: false); + yield return new Interact.Task(npcId, null, EInteractionType.None, true); } } - private abstract class UseItemBase( - ElementId? questId, - uint itemId, - IList completionQuestVariablesFlags, - bool startingCombat, + internal interface IUseItemBase : ITask + { + ElementId? QuestId { get; } + uint ItemId { get; } + IList CompletionQuestVariablesFlags { get; } + bool StartingCombat { get; } + } + + internal abstract class UseItemExecutorBase( QuestFunctions questFunctions, ICondition condition, - ILogger logger) : ITask + ILogger logger) : TaskExecutor + where T : class, IUseItemBase { private bool _usedItem; private DateTime _continueAt; private int _itemCount; - private InteractionProgressContext? _progressContext; - public InteractionProgressContext? ProgressContext() => _progressContext; - - public ElementId? QuestId => questId; - public uint ItemId => itemId; - public IList CompletionQuestVariablesFlags => completionQuestVariablesFlags; - public bool StartingCombat => startingCombat; + private ElementId? QuestId => Task.QuestId; + protected uint ItemId => Task.ItemId; + private IList CompletionQuestVariablesFlags => Task.CompletionQuestVariablesFlags; + private bool StartingCombat => Task.StartingCombat; protected abstract bool UseItem(); - public unsafe bool Start() + protected override unsafe bool Start() { InventoryManager* inventoryManager = InventoryManager.Instance(); if (inventoryManager == null) @@ -181,12 +145,12 @@ internal static class UseItem if (_itemCount == 0) throw new TaskException($"Don't have any {ItemId} in inventory (checks NQ only)"); - _progressContext = InteractionProgressContext.FromActionUseOrDefault(() => _usedItem = UseItem()); + ProgressContext = InteractionProgressContext.FromActionUseOrDefault(() => _usedItem = UseItem()); _continueAt = DateTime.Now.Add(GetRetryDelay()); return true; } - public unsafe ETaskResult Update() + public override unsafe ETaskResult Update() { if (QuestId is QuestId realQuestId && QuestWorkUtils.HasCompletionFlags(CompletionQuestVariablesFlags)) { @@ -224,7 +188,7 @@ internal static class UseItem if (!_usedItem) { - _progressContext = InteractionProgressContext.FromActionUseOrDefault(() => _usedItem = UseItem()); + ProgressContext = InteractionProgressContext.FromActionUseOrDefault(() => _usedItem = UseItem()); _continueAt = DateTime.Now.Add(GetRetryDelay()); return ETaskResult.StillRunning; } @@ -241,69 +205,85 @@ internal static class UseItem } } + internal sealed record UseOnGround( + ElementId? QuestId, + uint DataId, + uint ItemId, + IList CompletionQuestVariablesFlags) : IUseItemBase + { + public bool StartingCombat => false; + public override string ToString() => $"UseItem({ItemId} on ground at {DataId})"; + } - private sealed class UseOnGround( - ElementId? questId, - uint dataId, - uint itemId, - IList completionQuestVariablesFlags, + internal sealed class UseOnGroundExecutor( GameFunctions gameFunctions, QuestFunctions questFunctions, ICondition condition, - ILogger logger) - : UseItemBase(questId, itemId, completionQuestVariablesFlags, false, questFunctions, condition, logger) + ILogger logger) + : UseItemExecutorBase(questFunctions, condition, logger) { - protected override bool UseItem() => gameFunctions.UseItemOnGround(dataId, ItemId); - - public override string ToString() => $"UseItem({ItemId} on ground at {dataId})"; + protected override bool UseItem() => gameFunctions.UseItemOnGround(Task.DataId, ItemId); } - private sealed class UseOnPosition( - ElementId? questId, - Vector3 position, - uint itemId, - IList completionQuestVariablesFlags, + internal sealed record UseOnPosition( + ElementId? QuestId, + Vector3 Position, + uint ItemId, + IList CompletionQuestVariablesFlags) + : IUseItemBase + { + public bool StartingCombat => false; + + public override string ToString() => + $"UseItem({ItemId} on ground at {Position.ToString("G", CultureInfo.InvariantCulture)})"; + } + + internal sealed class UseOnPositionExecutor( GameFunctions gameFunctions, QuestFunctions questFunctions, ICondition condition, ILogger logger) - : UseItemBase(questId, itemId, completionQuestVariablesFlags, false, questFunctions, condition, logger) + : UseItemExecutorBase(questFunctions, condition, logger) { - protected override bool UseItem() => gameFunctions.UseItemOnPosition(position, ItemId); - - public override string ToString() => - $"UseItem({ItemId} on ground at {position.ToString("G", CultureInfo.InvariantCulture)})"; + protected override bool UseItem() => gameFunctions.UseItemOnPosition(Task.Position, ItemId); } - private sealed class UseOnObject( - ElementId? questId, - uint dataId, - uint itemId, - IList completionQuestVariablesFlags, - bool startingCombat, + internal sealed record UseOnObject( + ElementId? QuestId, + uint DataId, + uint ItemId, + IList CompletionQuestVariablesFlags, + bool StartingCombat = false) : IUseItemBase + { + public override string ToString() => $"UseItem({ItemId} on {DataId})"; + } + + internal sealed class UseOnObjectExecutor( QuestFunctions questFunctions, GameFunctions gameFunctions, ICondition condition, ILogger logger) - : UseItemBase(questId, itemId, completionQuestVariablesFlags, startingCombat, questFunctions, condition, logger) + : UseItemExecutorBase(questFunctions, condition, logger) { - protected override bool UseItem() => gameFunctions.UseItem(dataId, ItemId); - - public override string ToString() => $"UseItem({ItemId} on {dataId})"; + protected override bool UseItem() => gameFunctions.UseItem(Task.DataId, ItemId); } - private sealed class Use( - ElementId? questId, - uint itemId, - IList completionQuestVariablesFlags, + internal sealed record UseOnSelf( + ElementId? QuestId, + uint ItemId, + IList CompletionQuestVariablesFlags) : IUseItemBase + { + public bool StartingCombat => false; + public override string ToString() => $"UseItem({ItemId})"; + } + + internal sealed class UseOnSelfExecutor( GameFunctions gameFunctions, QuestFunctions questFunctions, ICondition condition, - ILogger logger) - : UseItemBase(questId, itemId, completionQuestVariablesFlags, false, questFunctions, condition, logger) + ILogger logger) + : UseItemExecutorBase(questFunctions, condition, logger) { protected override bool UseItem() => gameFunctions.UseItem(ItemId); - - public override string ToString() => $"UseItem({ItemId})"; } } diff --git a/Questionable/Controller/Steps/Leves/InitiateLeve.cs b/Questionable/Controller/Steps/Leves/InitiateLeve.cs index 7b12c95e..4014b2fb 100644 --- a/Questionable/Controller/Steps/Leves/InitiateLeve.cs +++ b/Questionable/Controller/Steps/Leves/InitiateLeve.cs @@ -7,9 +7,7 @@ using FFXIVClientStructs.FFXIV.Client.Game.UI; using FFXIVClientStructs.FFXIV.Client.UI.Agent; using FFXIVClientStructs.FFXIV.Component.GUI; using LLib.GameUI; -using Microsoft.Extensions.DependencyInjection; using Questionable.Controller.Steps.Common; -using Questionable.Functions; using Questionable.Model; using Questionable.Model.Questing; using ValueType = FFXIVClientStructs.FFXIV.Component.GUI.ValueType; @@ -18,7 +16,7 @@ namespace Questionable.Controller.Steps.Leves; internal static class InitiateLeve { - internal sealed class Factory(IGameGui gameGui, ICondition condition) : ITaskFactory + internal sealed class Factory(ICondition condition) : ITaskFactory { public IEnumerable CreateAllTasks(Quest quest, QuestSequence sequence, QuestStep step) { @@ -27,75 +25,86 @@ internal static class InitiateLeve yield return new SkipInitiateIfActive(quest.Id); yield return new OpenJournal(quest.Id); - yield return new Initiate(quest.Id, gameGui); - yield return new SelectDifficulty(gameGui); - yield return new WaitConditionTask(() => condition[ConditionFlag.BoundByDuty], "Wait(BoundByDuty)"); + yield return new Initiate(quest.Id); + yield return new SelectDifficulty(); + yield return new WaitCondition.Task(() => condition[ConditionFlag.BoundByDuty], "Wait(BoundByDuty)"); } } - internal sealed unsafe class SkipInitiateIfActive(ElementId elementId) : ITask + internal sealed record SkipInitiateIfActive(ElementId ElementId) : ITask { - public bool Start() => true; + public override string ToString() => $"CheckIfAlreadyActive({ElementId})"; + } - public ETaskResult Update() + internal sealed unsafe class SkipInitiateIfActiveExecutor : TaskExecutor + { + protected override bool Start() => true; + + public override ETaskResult Update() { var director = UIState.Instance()->DirectorTodo.Director; if (director != null && director->EventHandlerInfo != null && director->EventHandlerInfo->EventId.ContentId == EventHandlerType.GatheringLeveDirector && - director->ContentId == elementId.Value) + director->ContentId == Task.ElementId.Value) return ETaskResult.SkipRemainingTasksForStep; return ETaskResult.TaskComplete; } - - public override string ToString() => $"CheckIfAlreadyActive({elementId})"; } - internal sealed unsafe class OpenJournal(ElementId elementId) : ITask + internal sealed record OpenJournal(ElementId ElementId) : ITask + { + public uint QuestType => ElementId is LeveId ? 2u : 1u; + public override string ToString() => $"OpenJournal({ElementId})"; + } + + internal sealed unsafe class OpenJournalExecutor : TaskExecutor { - private readonly uint _questType = elementId is LeveId ? 2u : 1u; private DateTime _openedAt = DateTime.MinValue; - public bool Start() + protected override bool Start() { - AgentQuestJournal.Instance()->OpenForQuest(elementId.Value, _questType); + AgentQuestJournal.Instance()->OpenForQuest(Task.ElementId.Value, Task.QuestType); _openedAt = DateTime.Now; return true; } - public ETaskResult Update() + public override ETaskResult Update() { AgentQuestJournal* agentQuestJournal = AgentQuestJournal.Instance(); if (agentQuestJournal->IsAgentActive() && - agentQuestJournal->SelectedQuestId == elementId.Value && - agentQuestJournal->SelectedQuestType == _questType) + agentQuestJournal->SelectedQuestId == Task.ElementId.Value && + agentQuestJournal->SelectedQuestType == Task.QuestType) return ETaskResult.TaskComplete; if (DateTime.Now > _openedAt.AddSeconds(3)) { - AgentQuestJournal.Instance()->OpenForQuest(elementId.Value, _questType); + AgentQuestJournal.Instance()->OpenForQuest(Task.ElementId.Value, Task.QuestType); _openedAt = DateTime.Now; } return ETaskResult.StillRunning; } - - public override string ToString() => $"OpenJournal({elementId})"; } - internal sealed unsafe class Initiate(ElementId elementId, IGameGui gameGui) : ITask + internal sealed record Initiate(ElementId ElementId) : ITask { - public bool Start() => true; + public override string ToString() => $"InitiateLeve({ElementId})"; + } - public ETaskResult Update() + internal sealed unsafe class InitiateExecutor(IGameGui gameGui) : TaskExecutor + { + protected override bool Start() => true; + + public override ETaskResult Update() { if (gameGui.TryGetAddonByName("JournalDetail", out AtkUnitBase* addonJournalDetail)) { var pickQuest = stackalloc AtkValue[] { new() { Type = ValueType.Int, Int = 4 }, - new() { Type = ValueType.UInt, Int = elementId.Value } + new() { Type = ValueType.UInt, Int = Task.ElementId.Value } }; addonJournalDetail->FireCallback(2, pickQuest); return ETaskResult.TaskComplete; @@ -103,21 +112,22 @@ internal static class InitiateLeve return ETaskResult.StillRunning; } - - public override string ToString() => $"InitiateLeve({elementId})"; } - internal sealed unsafe class SelectDifficulty(IGameGui gameGui) : ITask + internal sealed class SelectDifficulty : ITask { - public bool Start() => true; + public override string ToString() => "SelectLeveDifficulty"; + } - public ETaskResult Update() + internal sealed unsafe class SelectDifficultyExecutor(IGameGui gameGui) : TaskExecutor + { + protected override bool Start() => true; + + public override ETaskResult Update() { if (gameGui.TryGetAddonByName("GuildLeveDifficulty", out AtkUnitBase* addon)) { // atkvalues: 1 → default difficulty, 2 → min, 3 → max - - var pickDifficulty = stackalloc AtkValue[] { new() { Type = ValueType.Int, Int = 0 }, @@ -129,7 +139,5 @@ internal static class InitiateLeve return ETaskResult.StillRunning; } - - public override string ToString() => "SelectLeveDifficulty"; } } diff --git a/Questionable/Controller/Steps/Shared/AethernetShortcut.cs b/Questionable/Controller/Steps/Shared/AethernetShortcut.cs index 25110ca8..bb39bd81 100644 --- a/Questionable/Controller/Steps/Shared/AethernetShortcut.cs +++ b/Questionable/Controller/Steps/Shared/AethernetShortcut.cs @@ -5,7 +5,6 @@ using System.Numerics; using Dalamud.Game.ClientState.Conditions; using Dalamud.Game.ClientState.Objects.Enums; using Dalamud.Plugin.Services; -using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; using Questionable.Controller.Steps.Common; using Questionable.Data; @@ -20,17 +19,7 @@ namespace Questionable.Controller.Steps.Shared; internal static class AethernetShortcut { - internal sealed class Factory( - MovementController movementController, - AetheryteFunctions aetheryteFunctions, - GameFunctions gameFunctions, - QuestFunctions questFunctions, - IClientState clientState, - AetheryteData aetheryteData, - TerritoryData territoryData, - LifestreamIpc lifestreamIpc, - ICondition condition, - ILoggerFactory loggerFactory) + internal sealed class Factory(MovementController movementController) : ITaskFactory { public IEnumerable CreateAllTasks(Quest quest, QuestSequence sequence, QuestStep step) @@ -38,24 +27,28 @@ internal static class AethernetShortcut if (step.AethernetShortcut == null) yield break; - yield return new WaitConditionTask(() => movementController.IsNavmeshReady, + yield return new WaitCondition.Task(() => movementController.IsNavmeshReady, "Wait(navmesh ready)"); - yield return Use(step.AethernetShortcut.From, step.AethernetShortcut.To, - step.SkipConditions?.AethernetShortcutIf); - } - - public ITask Use(EAetheryteLocation from, EAetheryteLocation to, SkipAetheryteCondition? skipConditions = null) - { - return new UseAethernetShortcut(from, to, skipConditions ?? new(), - loggerFactory.CreateLogger(), aetheryteFunctions, gameFunctions, questFunctions, - clientState, aetheryteData, territoryData, lifestreamIpc, movementController, condition); + yield return new Task(step.AethernetShortcut.From, step.AethernetShortcut.To, + step.SkipConditions?.AethernetShortcutIf ?? new()); } } + internal sealed record Task( + EAetheryteLocation From, + EAetheryteLocation To, + SkipAetheryteCondition SkipConditions) : ISkippableTask + { + public Task(EAetheryteLocation from, + EAetheryteLocation to) + : this(from, to, new()) + { + } + + public override string ToString() => $"UseAethernet({From} -> {To})"; + } + internal sealed class UseAethernetShortcut( - EAetheryteLocation from, - EAetheryteLocation to, - SkipAetheryteCondition skipConditions, ILogger logger, AetheryteFunctions aetheryteFunctions, GameFunctions gameFunctions, @@ -65,79 +58,80 @@ internal static class AethernetShortcut TerritoryData territoryData, LifestreamIpc lifestreamIpc, MovementController movementController, - ICondition condition) : ISkippableTask + ICondition condition) : TaskExecutor { private bool _moving; private bool _teleported; private bool _triedMounting; private DateTime _continueAt = DateTime.MinValue; - public EAetheryteLocation From => from; - public EAetheryteLocation To => to; + public EAetheryteLocation From => Task.From; + public EAetheryteLocation To => Task.To; - public bool Start() + protected override bool Start() { - if (!skipConditions.Never) + if (!Task.SkipConditions.Never) { - if (skipConditions.InSameTerritory && clientState.TerritoryType == aetheryteData.TerritoryIds[to]) + if (Task.SkipConditions.InSameTerritory && + clientState.TerritoryType == aetheryteData.TerritoryIds[Task.To]) { logger.LogInformation("Skipping aethernet shortcut because the target is in the same territory"); return false; } - if (skipConditions.InTerritory.Contains(clientState.TerritoryType)) + if (Task.SkipConditions.InTerritory.Contains(clientState.TerritoryType)) { logger.LogInformation( "Skipping aethernet shortcut because the target is in the specified territory"); return false; } - if (skipConditions.QuestsCompleted.Count > 0 && - skipConditions.QuestsCompleted.All(questFunctions.IsQuestComplete)) + if (Task.SkipConditions.QuestsCompleted.Count > 0 && + Task.SkipConditions.QuestsCompleted.All(questFunctions.IsQuestComplete)) { logger.LogInformation("Skipping aethernet shortcut, all prequisite quests are complete"); return true; } - if (skipConditions.QuestsAccepted.Count > 0 && - skipConditions.QuestsAccepted.All(questFunctions.IsQuestAccepted)) + if (Task.SkipConditions.QuestsAccepted.Count > 0 && + Task.SkipConditions.QuestsAccepted.All(questFunctions.IsQuestAccepted)) { logger.LogInformation("Skipping aethernet shortcut, all prequisite quests are accepted"); return true; } - if (skipConditions.AetheryteLocked != null && - !aetheryteFunctions.IsAetheryteUnlocked(skipConditions.AetheryteLocked.Value)) + if (Task.SkipConditions.AetheryteLocked != null && + !aetheryteFunctions.IsAetheryteUnlocked(Task.SkipConditions.AetheryteLocked.Value)) { logger.LogInformation("Skipping aethernet shortcut because the target aetheryte is locked"); return false; } - if (skipConditions.AetheryteUnlocked != null && - aetheryteFunctions.IsAetheryteUnlocked(skipConditions.AetheryteUnlocked.Value)) + if (Task.SkipConditions.AetheryteUnlocked != null && + aetheryteFunctions.IsAetheryteUnlocked(Task.SkipConditions.AetheryteUnlocked.Value)) { logger.LogInformation("Skipping aethernet shortcut because the target aetheryte is unlocked"); return false; } } - if (aetheryteFunctions.IsAetheryteUnlocked(from) && - aetheryteFunctions.IsAetheryteUnlocked(to)) + if (aetheryteFunctions.IsAetheryteUnlocked(Task.From) && + aetheryteFunctions.IsAetheryteUnlocked(Task.To)) { ushort territoryType = clientState.TerritoryType; Vector3 playerPosition = clientState.LocalPlayer!.Position; // closer to the source - if (aetheryteData.CalculateDistance(playerPosition, territoryType, from) < - aetheryteData.CalculateDistance(playerPosition, territoryType, to)) + if (aetheryteData.CalculateDistance(playerPosition, territoryType, Task.From) < + aetheryteData.CalculateDistance(playerPosition, territoryType, Task.To)) { - if (aetheryteData.CalculateDistance(playerPosition, territoryType, from) < - (from.IsFirmamentAetheryte() ? 11f : 4f)) + if (aetheryteData.CalculateDistance(playerPosition, territoryType, Task.From) < + (Task.From.IsFirmamentAetheryte() ? 11f : 4f)) { DoTeleport(); return true; } - else if (from == EAetheryteLocation.SolutionNine) + else if (Task.From == EAetheryteLocation.SolutionNine) { logger.LogInformation("Moving to S9 aetheryte"); List nearbyPoints = @@ -150,14 +144,14 @@ internal static class AethernetShortcut Vector3 closestPoint = nearbyPoints.MinBy(x => (playerPosition - x).Length()); _moving = true; - movementController.NavigateTo(EMovementType.Quest, (uint)from, closestPoint, false, true, + movementController.NavigateTo(EMovementType.Quest, (uint)Task.From, closestPoint, false, true, 0.25f); return true; } else { if (territoryData.CanUseMount(territoryType) && - aetheryteData.CalculateDistance(playerPosition, territoryType, from) > 30 && + aetheryteData.CalculateDistance(playerPosition, territoryType, Task.From) > 30 && !gameFunctions.HasStatusPreventingMount()) { _triedMounting = gameFunctions.Mount(); @@ -176,7 +170,7 @@ internal static class AethernetShortcut else logger.LogWarning( "Aethernet shortcut not unlocked (from: {FromAetheryte}, to: {ToAetheryte}), walking manually", - from, to); + Task.From, Task.To); return false; } @@ -185,34 +179,34 @@ internal static class AethernetShortcut { logger.LogInformation("Moving to aethernet shortcut"); _moving = true; - float distance = from switch + float distance = Task.From switch { - _ when from.IsFirmamentAetheryte() => 4.4f, + _ when Task.From.IsFirmamentAetheryte() => 4.4f, EAetheryteLocation.UldahChamberOfRule => 5f, - _ when AetheryteConverter.IsLargeAetheryte(from) => 10.9f, + _ when AetheryteConverter.IsLargeAetheryte(Task.From) => 10.9f, _ => 6.9f, }; - movementController.NavigateTo(EMovementType.Quest, (uint)from, aetheryteData.Locations[from], + movementController.NavigateTo(EMovementType.Quest, (uint)Task.From, aetheryteData.Locations[Task.From], false, true, distance); } private void DoTeleport() { - if (from.IsFirmamentAetheryte()) + if (Task.From.IsFirmamentAetheryte()) { logger.LogInformation("Using manual teleport interaction"); - _teleported = gameFunctions.InteractWith((uint)from, ObjectKind.EventObj); + _teleported = gameFunctions.InteractWith((uint)Task.From, ObjectKind.EventObj); } else { - logger.LogInformation("Using lifestream to teleport to {Destination}", to); - lifestreamIpc.Teleport(to); + logger.LogInformation("Using lifestream to teleport to {Destination}", Task.To); + lifestreamIpc.Teleport(Task.To); _teleported = true; } } - public ETaskResult Update() + public override ETaskResult Update() { if (DateTime.Now < _continueAt) return ETaskResult.StillRunning; @@ -247,29 +241,27 @@ internal static class AethernetShortcut return ETaskResult.StillRunning; } - if (aetheryteData.IsAirshipLanding(to)) + if (aetheryteData.IsAirshipLanding(Task.To)) { if (aetheryteData.CalculateAirshipLandingDistance(clientState.LocalPlayer?.Position ?? Vector3.Zero, - clientState.TerritoryType, to) > 5) + clientState.TerritoryType, Task.To) > 5) return ETaskResult.StillRunning; } - else if (aetheryteData.IsCityAetheryte(to)) + else if (aetheryteData.IsCityAetheryte(Task.To)) { if (aetheryteData.CalculateDistance(clientState.LocalPlayer?.Position ?? Vector3.Zero, - clientState.TerritoryType, to) > 20) + clientState.TerritoryType, Task.To) > 20) return ETaskResult.StillRunning; } else { // some overworld location (e.g. 'Tesselation (Lakeland)' would end up here - if (clientState.TerritoryType != aetheryteData.TerritoryIds[to]) + if (clientState.TerritoryType != aetheryteData.TerritoryIds[Task.To]) return ETaskResult.StillRunning; } return ETaskResult.TaskComplete; } - - public override string ToString() => $"UseAethernet({from} -> {to})"; } } diff --git a/Questionable/Controller/Steps/Shared/AetheryteShortcut.cs b/Questionable/Controller/Steps/Shared/AetheryteShortcut.cs index 601c0c9e..ba1e0211 100644 --- a/Questionable/Controller/Steps/Shared/AetheryteShortcut.cs +++ b/Questionable/Controller/Steps/Shared/AetheryteShortcut.cs @@ -3,10 +3,7 @@ using System.Collections.Generic; using System.Linq; using System.Numerics; using Dalamud.Plugin.Services; -using FFXIVClientStructs.FFXIV.Application.Network.WorkDefinitions; -using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; -using Questionable.Controller.Steps.Common; using Questionable.Controller.Utils; using Questionable.Data; using Questionable.Functions; @@ -18,55 +15,42 @@ namespace Questionable.Controller.Steps.Shared; internal static class AetheryteShortcut { - internal sealed class Factory( - AetheryteData aetheryteData, - AetheryteFunctions aetheryteFunctions, - QuestFunctions questFunctions, - IClientState clientState, - IChatGui chatGui, - ILoggerFactory loggerFactory) : ITaskFactory + internal sealed class Factory(AetheryteData aetheryteData) : ITaskFactory { public IEnumerable CreateAllTasks(Quest quest, QuestSequence sequence, QuestStep step) { if (step.AetheryteShortcut == null) yield break; - yield return Use(step, quest.Id, step.AetheryteShortcut.Value, + yield return new Task(step, quest.Id, step.AetheryteShortcut.Value, aetheryteData.TerritoryIds[step.AetheryteShortcut.Value]); yield return new WaitAtEnd.WaitDelay(TimeSpan.FromSeconds(0.5)); } - - public ITask Use(QuestStep? step, ElementId? elementId, EAetheryteLocation targetAetheryte, - ushort expectedTerritoryId) - { - return new UseAetheryteShortcut(step, elementId, targetAetheryte, expectedTerritoryId, - loggerFactory.CreateLogger(), aetheryteFunctions, questFunctions, clientState, - chatGui, aetheryteData); - } } - /// If using an aethernet shortcut after, the aetheryte's territory-id and the step's territory-id can differ, we always use the aetheryte's territory-id. - private sealed class UseAetheryteShortcut( - QuestStep? step, - ElementId? elementId, - EAetheryteLocation targetAetheryte, - ushort expectedTerritoryId, + /// If using an aethernet shortcut after, the aetheryte's territory-id and the step's territory-id can differ, we always use the aetheryte's territory-id. + internal sealed record Task( + QuestStep? Step, + ElementId? ElementId, + EAetheryteLocation TargetAetheryte, + ushort ExpectedTerritoryId) : ISkippableTask + { + } + + internal sealed class UseAetheryteShortcut( ILogger logger, AetheryteFunctions aetheryteFunctions, QuestFunctions questFunctions, IClientState clientState, IChatGui chatGui, - AetheryteData aetheryteData) : ISkippableTask + AetheryteData aetheryteData) : TaskExecutor { private bool _teleported; private DateTime _continueAt; - private InteractionProgressContext? _progressContext; - public InteractionProgressContext? ProgressContext() => _progressContext; + protected override bool Start() => !ShouldSkipTeleport(); - public bool Start() => !ShouldSkipTeleport(); - - public ETaskResult Update() + public override ETaskResult Update() { if (DateTime.Now < _continueAt) return ETaskResult.StillRunning; @@ -77,7 +61,7 @@ internal static class AetheryteShortcut return ETaskResult.StillRunning; } - if (clientState.TerritoryType == expectedTerritoryId) + if (clientState.TerritoryType == Task.ExpectedTerritoryId) return ETaskResult.TaskComplete; return ETaskResult.StillRunning; @@ -86,9 +70,9 @@ internal static class AetheryteShortcut private bool ShouldSkipTeleport() { ushort territoryType = clientState.TerritoryType; - if (step != null) + if (Task.Step != null) { - var skipConditions = step.SkipConditions?.AetheryteShortcutIf ?? new(); + var skipConditions = Task.Step.SkipConditions?.AetheryteShortcutIf ?? new(); if (skipConditions is { Never: false }) { if (skipConditions.InTerritory.Contains(territoryType)) @@ -125,12 +109,12 @@ internal static class AetheryteShortcut return true; } - if (elementId != null) + if (Task.ElementId != null) { - QuestProgressInfo? questWork = questFunctions.GetQuestProgressInfo(elementId); + QuestProgressInfo? questWork = questFunctions.GetQuestProgressInfo(Task.ElementId); if (skipConditions.RequiredQuestVariablesNotMet && questWork != null && - !QuestWorkUtils.MatchesRequiredQuestWorkConfig(step.RequiredQuestVariables, questWork, + !QuestWorkUtils.MatchesRequiredQuestWorkConfig(Task.Step.RequiredQuestVariables, questWork, logger)) { logger.LogInformation("Skipping aetheryte teleport, as required variables do not match"); @@ -151,7 +135,7 @@ internal static class AetheryteShortcut } } - if (expectedTerritoryId == territoryType) + if (Task.ExpectedTerritoryId == territoryType) { if (!skipConditions.Never) { @@ -162,17 +146,19 @@ internal static class AetheryteShortcut } Vector3 pos = clientState.LocalPlayer!.Position; - if (step.Position != null && - (pos - step.Position.Value).Length() < step.CalculateActualStopDistance()) + if (Task.Step.Position != null && + (pos - Task.Step.Position.Value).Length() < Task.Step.CalculateActualStopDistance()) { logger.LogInformation("Skipping aetheryte teleport, we're near the target"); return true; } - if (aetheryteData.CalculateDistance(pos, territoryType, targetAetheryte) < 20 || - (step.AethernetShortcut != null && - (aetheryteData.CalculateDistance(pos, territoryType, step.AethernetShortcut.From) < 20 || - aetheryteData.CalculateDistance(pos, territoryType, step.AethernetShortcut.To) < 20))) + if (aetheryteData.CalculateDistance(pos, territoryType, Task.TargetAetheryte) < 20 || + (Task.Step.AethernetShortcut != null && + (aetheryteData.CalculateDistance(pos, territoryType, Task.Step.AethernetShortcut.From) < + 20 || + aetheryteData.CalculateDistance(pos, territoryType, Task.Step.AethernetShortcut.To) < + 20))) { logger.LogInformation("Skipping aetheryte teleport"); return true; @@ -186,7 +172,7 @@ internal static class AetheryteShortcut private bool DoTeleport() { - if (!aetheryteFunctions.CanTeleport(targetAetheryte)) + if (!aetheryteFunctions.CanTeleport(Task.TargetAetheryte)) { if (!aetheryteFunctions.IsTeleportUnlocked()) throw new TaskException("Teleport is not unlocked, attune to any aetheryte first."); @@ -198,29 +184,27 @@ internal static class AetheryteShortcut _continueAt = DateTime.Now.AddSeconds(8); - if (!aetheryteFunctions.IsAetheryteUnlocked(targetAetheryte)) + if (!aetheryteFunctions.IsAetheryteUnlocked(Task.TargetAetheryte)) { - chatGui.PrintError($"[Questionable] Aetheryte {targetAetheryte} is not unlocked."); + chatGui.PrintError($"[Questionable] Aetheryte {Task.TargetAetheryte} is not unlocked."); throw new TaskException("Aetheryte is not unlocked"); } + + ProgressContext = + InteractionProgressContext.FromActionUseOrDefault(() => + aetheryteFunctions.TeleportAetheryte(Task.TargetAetheryte)); + if (ProgressContext != null) + { + logger.LogInformation("Travelling via aetheryte..."); + return true; + } else { - _progressContext = - InteractionProgressContext.FromActionUseOrDefault(() => aetheryteFunctions.TeleportAetheryte(targetAetheryte)); - logger.LogInformation("Ctx = {C}", _progressContext); - if (_progressContext != null) - { - logger.LogInformation("Travelling via aetheryte..."); - return true; - } - else - { - chatGui.Print("[Questionable] Unable to teleport to aetheryte."); - throw new TaskException("Unable to teleport to aetheryte"); - } + chatGui.Print("[Questionable] Unable to teleport to aetheryte."); + throw new TaskException("Unable to teleport to aetheryte"); } } - public override string ToString() => $"UseAetheryte({targetAetheryte})"; + public override string ToString() => $"UseAetheryte({Task.TargetAetheryte})"; } } diff --git a/Questionable/Controller/Steps/Shared/Craft.cs b/Questionable/Controller/Steps/Shared/Craft.cs index 5d09f37c..ad474fe2 100644 --- a/Questionable/Controller/Steps/Shared/Craft.cs +++ b/Questionable/Controller/Steps/Shared/Craft.cs @@ -17,12 +17,7 @@ namespace Questionable.Controller.Steps.Shared; internal static class Craft { - internal sealed class Factory( - IDataManager dataManager, - IClientState clientState, - ArtisanIpc artisanIpc, - Mount.Factory mountFactory, - ILoggerFactory loggerFactory) : ITaskFactory + internal sealed class Factory : ITaskFactory { public IEnumerable CreateAllTasks(Quest quest, QuestSequence sequence, QuestStep step) { @@ -33,34 +28,36 @@ internal static class Craft ArgumentNullException.ThrowIfNull(step.ItemCount); return [ - mountFactory.Unmount(), - Craft(step.ItemId.Value, step.ItemCount.Value) + new Mount.UnmountTask(), + new CraftTask(step.ItemId.Value, step.ItemCount.Value) ]; } - - public ITask Craft(uint itemId, int itemCount) => - new DoCraft(itemId, itemCount, dataManager, clientState, artisanIpc, loggerFactory.CreateLogger()); } - private sealed class DoCraft( - uint itemId, - int itemCount, + internal sealed record CraftTask( + uint ItemId, + int ItemCount) : ITask + { + public override string ToString() => $"Craft {ItemCount}x {ItemId} (with Artisan)"; + } + + internal sealed class DoCraft( IDataManager dataManager, IClientState clientState, ArtisanIpc artisanIpc, - ILogger logger) : ITask + ILogger logger) : TaskExecutor { - public bool Start() + protected override bool Start() { if (HasRequestedItems()) { - logger.LogInformation("Already own {ItemCount}x {ItemId}", itemCount, itemId); + logger.LogInformation("Already own {ItemCount}x {ItemId}", Task.ItemCount, Task.ItemId); return false; } - RecipeLookup? recipeLookup = dataManager.GetExcelSheet()!.GetRow(itemId); + RecipeLookup? recipeLookup = dataManager.GetExcelSheet()!.GetRow(Task.ItemId); if (recipeLookup == null) - throw new TaskException($"Item {itemId} is not craftable"); + throw new TaskException($"Item {Task.ItemId} is not craftable"); uint recipeId = (EClassJob)clientState.LocalPlayer!.ClassJob.Id switch { @@ -92,19 +89,19 @@ internal static class Craft } if (recipeId == 0) - throw new TaskException($"Unable to determine recipe for item {itemId}"); + throw new TaskException($"Unable to determine recipe for item {Task.ItemId}"); - int remainingItemCount = itemCount - GetOwnedItemCount(); + int remainingItemCount = Task.ItemCount - GetOwnedItemCount(); logger.LogInformation( "Starting craft for item {ItemId} with recipe {RecipeId} for {RemainingItemCount} items", - itemId, recipeId, remainingItemCount); + Task.ItemId, recipeId, remainingItemCount); if (!artisanIpc.CraftItem((ushort)recipeId, remainingItemCount)) throw new TaskException($"Failed to start Artisan craft for recipe {recipeId}"); return true; } - public unsafe ETaskResult Update() + public override unsafe ETaskResult Update() { if (HasRequestedItems() && !artisanIpc.IsCrafting()) { @@ -128,15 +125,13 @@ internal static class Craft return ETaskResult.StillRunning; } - private bool HasRequestedItems() => GetOwnedItemCount() >= itemCount; + private bool HasRequestedItems() => GetOwnedItemCount() >= Task.ItemCount; private unsafe int GetOwnedItemCount() { InventoryManager* inventoryManager = InventoryManager.Instance(); - return inventoryManager->GetInventoryItemCount(itemId, isHq: false, checkEquipped: false) - + inventoryManager->GetInventoryItemCount(itemId, isHq: true, checkEquipped: false); + return inventoryManager->GetInventoryItemCount(Task.ItemId, isHq: false, checkEquipped: false) + + inventoryManager->GetInventoryItemCount(Task.ItemId, isHq: true, checkEquipped: false); } - - public override string ToString() => $"Craft {itemCount}x {itemId} (with Artisan)"; } } diff --git a/Questionable/Controller/Steps/Shared/Gather.cs b/Questionable/Controller/Steps/Shared/Gather.cs index cc5d9cfa..52229aa1 100644 --- a/Questionable/Controller/Steps/Shared/Gather.cs +++ b/Questionable/Controller/Steps/Shared/Gather.cs @@ -21,7 +21,6 @@ internal static class Gather internal sealed class Factory( IServiceProvider serviceProvider, MovementController movementController, - GatheringController gatheringController, GatheringPointRegistry gatheringPointRegistry, IClientState clientState, GatheringData gatheringData, @@ -53,7 +52,7 @@ internal static class Gather if (classJob != currentClassJob) { - yield return new SwitchClassJob(classJob, clientState); + yield return new SwitchClassJob.Task(classJob); } if (HasRequiredItems(itemToGather)) @@ -71,20 +70,20 @@ internal static class Gather foreach (var task in serviceProvider.GetRequiredService() .CreateTasks(quest, gatheringSequence, gatheringStep)) if (task is WaitAtEnd.NextStep) - yield return CreateSkipMarkerTask(); + yield return new SkipMarker(); else yield return task; } } ushort territoryId = gatheringRoot.Steps.Last().TerritoryId; - yield return new WaitConditionTask(() => clientState.TerritoryType == territoryId, + yield return new WaitCondition.Task(() => clientState.TerritoryType == territoryId, $"Wait(territory: {territoryData.GetNameAndId(territoryId)})"); - yield return new WaitConditionTask(() => movementController.IsNavmeshReady, + yield return new WaitCondition.Task(() => movementController.IsNavmeshReady, "Wait(navmesh ready)"); - yield return CreateStartGatheringTask(gatheringPointId, itemToGather); + yield return new GatheringTask(gatheringPointId, itemToGather); yield return new WaitAtEnd.WaitDelay(); } } @@ -109,38 +108,12 @@ internal static class Gather minCollectability: (short)itemToGather.Collectability) >= itemToGather.ItemCount; } - - private StartGathering CreateStartGatheringTask(GatheringPointId gatheringPointId, GatheredItem gatheredItem) - { - return new StartGathering(gatheringPointId, gatheredItem, gatheringController); - } - - private static SkipMarker CreateSkipMarkerTask() - { - return new SkipMarker(); - } } - private sealed class StartGathering( + internal sealed record GatheringTask( GatheringPointId gatheringPointId, - GatheredItem gatheredItem, - GatheringController gatheringController) : ITask + GatheredItem gatheredItem) : ITask { - public bool Start() - { - return gatheringController.Start(new GatheringController.GatheringRequest(gatheringPointId, - gatheredItem.ItemId, gatheredItem.AlternativeItemId, gatheredItem.ItemCount, - gatheredItem.Collectability)); - } - - public ETaskResult Update() - { - if (gatheringController.Update() == GatheringController.EStatus.Complete) - return ETaskResult.TaskComplete; - - return ETaskResult.StillRunning; - } - public override string ToString() { if (gatheredItem.Collectability == 0) @@ -151,13 +124,35 @@ internal static class Gather } } + internal sealed class StartGathering(GatheringController gatheringController) : TaskExecutor + { + protected override bool Start() + { + return gatheringController.Start(new GatheringController.GatheringRequest(Task.gatheringPointId, + Task.gatheredItem.ItemId, Task.gatheredItem.AlternativeItemId, Task.gatheredItem.ItemCount, + Task.gatheredItem.Collectability)); + } + + public override ETaskResult Update() + { + if (gatheringController.Update() == GatheringController.EStatus.Complete) + return ETaskResult.TaskComplete; + + return ETaskResult.StillRunning; + } + } + /// /// A task that does nothing, but if we're skipping a step, this will be the task next in queue to be executed (instead of progressing to the next step) if gathering. /// internal sealed class SkipMarker : ITask { - public bool Start() => true; - public ETaskResult Update() => ETaskResult.TaskComplete; public override string ToString() => "Gather/SkipMarker"; } + + internal sealed class DoSkip : TaskExecutor + { + protected override bool Start() => true; + public override ETaskResult Update() => ETaskResult.TaskComplete; + } } diff --git a/Questionable/Controller/Steps/Shared/MoveTo.cs b/Questionable/Controller/Steps/Shared/MoveTo.cs index e6d0cc94..2f7a8ea3 100644 --- a/Questionable/Controller/Steps/Shared/MoveTo.cs +++ b/Questionable/Controller/Steps/Shared/MoveTo.cs @@ -11,7 +11,6 @@ using FFXIVClientStructs.FFXIV.Client.Game; using FFXIVClientStructs.FFXIV.Client.Game.Character; using LLib; using Lumina.Excel.GeneratedSheets; -using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; using Questionable.Controller.Steps.Common; using Questionable.Data; @@ -28,14 +27,9 @@ internal static class MoveTo { internal sealed class Factory( MovementController movementController, - GameFunctions gameFunctions, - ICondition condition, - IDataManager dataManager, IClientState clientState, AetheryteData aetheryteData, TerritoryData territoryData, - ILoggerFactory loggerFactory, - Mount.Factory mountFactory, ILogger logger) : ITaskFactory { public IEnumerable CreateAllTasks(Quest quest, QuestSequence sequence, QuestStep step) @@ -46,7 +40,7 @@ internal static class MoveTo } else if (step is { DataId: not null, StopDistance: not null }) { - return [ExpectToBeNearDataId(step.DataId.Value, step.StopDistance.Value)]; + return [new WaitForNearDataId(step.DataId.Value, step.StopDistance.Value)]; } else if (step is { InteractionType: EInteractionType.AttuneAetheryte, Aetheryte: not null }) { @@ -60,27 +54,6 @@ internal static class MoveTo return []; } - public ITask Move(QuestStep step, Vector3 destination) - { - return Move(new MoveParams(step, destination)); - } - - public ITask Move(MoveParams moveParams) - { - return new MoveInternal(moveParams, movementController, mountFactory, gameFunctions, - loggerFactory.CreateLogger(), clientState, dataManager); - } - - public ITask Land() - { - return new LandTask(clientState, condition, loggerFactory.CreateLogger()); - } - - public ITask ExpectToBeNearDataId(uint dataId, float stopDistance) - { - return new WaitForNearDataId(dataId, stopDistance, gameFunctions, clientState); - } - public IEnumerable CreateMountTasks(ElementId questId, QuestStep step, Vector3 destination) { if (step.InteractionType == EInteractionType.Jump && step.JumpDestination != null && @@ -91,146 +64,149 @@ internal static class MoveTo yield break; } - yield return new WaitConditionTask(() => clientState.TerritoryType == step.TerritoryId, + yield return new WaitCondition.Task(() => clientState.TerritoryType == step.TerritoryId, $"Wait(territory: {territoryData.GetNameAndId(step.TerritoryId)})"); if (!step.DisableNavmesh) { - yield return new WaitConditionTask(() => movementController.IsNavmeshReady, + yield return new WaitCondition.Task(() => movementController.IsNavmeshReady, "Wait(navmesh ready)"); - yield return Move(step, destination); + yield return new MoveTask(step, destination); } else { - yield return Move(step, destination); + yield return new MoveTask(step, destination); } if (step is { Fly: true, Land: true }) - yield return Land(); + yield return new LandTask(); } } - private sealed class MoveInternal : ITask, IToastAware + internal sealed class MoveExecutor : TaskExecutor, IToastAware { private readonly string _cannotExecuteAtThisTime; private readonly MovementController _movementController; - private readonly Mount.Factory _mountFactory; private readonly GameFunctions _gameFunctions; - private readonly ILogger _logger; + private readonly ILogger _logger; private readonly IClientState _clientState; + private readonly Mount.MountExecutor _mountExecutor; + private readonly Mount.UnmountExecutor _unmountExecutor; - private readonly Action _startAction; - private readonly Vector3 _destination; - private readonly MoveParams _moveParams; + private Action _startAction = null!; + private Vector3 _destination; private bool _canRestart; - private ITask? _mountTask; + private ITaskExecutor? _nestedExecutor; - public MoveInternal(MoveParams moveParams, + public MoveExecutor( MovementController movementController, - Mount.Factory mountFactory, GameFunctions gameFunctions, - ILogger logger, + ILogger logger, IClientState clientState, - IDataManager dataManager) + IDataManager dataManager, + Mount.MountExecutor mountExecutor, + Mount.UnmountExecutor unmountExecutor) { _movementController = movementController; - _mountFactory = mountFactory; _gameFunctions = gameFunctions; _logger = logger; _clientState = clientState; + _mountExecutor = mountExecutor; + _unmountExecutor = unmountExecutor; _cannotExecuteAtThisTime = dataManager.GetString(579, x => x.Text)!; - _destination = moveParams.Destination; + } - if (!gameFunctions.IsFlyingUnlocked(moveParams.TerritoryId)) + private void Initialize() + { + _destination = Task.Destination; + + if (!_gameFunctions.IsFlyingUnlocked(Task.TerritoryId)) { - moveParams = moveParams with { Fly = false, Land = false }; + Task = Task with { Fly = false, Land = false }; } - if (!moveParams.DisableNavMesh) + if (!Task.DisableNavmesh) { _startAction = () => - _movementController.NavigateTo(EMovementType.Quest, moveParams.DataId, _destination, - fly: moveParams.Fly, - sprint: moveParams.Sprint, - stopDistance: moveParams.StopDistance, - ignoreDistanceToObject: moveParams.IgnoreDistanceToObject, - land: moveParams.Land); + _movementController.NavigateTo(EMovementType.Quest, Task.DataId, _destination, + fly: Task.Fly, + sprint: Task.Sprint, + stopDistance: Task.StopDistance, + ignoreDistanceToObject: Task.IgnoreDistanceToObject, + land: Task.Land); } else { _startAction = () => - _movementController.NavigateTo(EMovementType.Quest, moveParams.DataId, [_destination], - fly: moveParams.Fly, - sprint: moveParams.Sprint, - stopDistance: moveParams.StopDistance, - ignoreDistanceToObject: moveParams.IgnoreDistanceToObject, - land: moveParams.Land); + _movementController.NavigateTo(EMovementType.Quest, Task.DataId, [_destination], + fly: Task.Fly, + sprint: Task.Sprint, + stopDistance: Task.StopDistance, + ignoreDistanceToObject: Task.IgnoreDistanceToObject, + land: Task.Land); } - _moveParams = moveParams; - _canRestart = moveParams.RestartNavigation; + _canRestart = Task.RestartNavigation; } - public InteractionProgressContext? ProgressContext() => _mountTask?.ProgressContext(); - - public bool ShouldRedoOnInterrupt() => true; - - public bool Start() + protected override bool Start() { - float stopDistance = _moveParams.StopDistance ?? QuestStep.DefaultStopDistance; + Initialize(); + + float stopDistance = Task.StopDistance ?? QuestStep.DefaultStopDistance; Vector3? position = _clientState.LocalPlayer?.Position; float actualDistance = position == null ? float.MaxValue : Vector3.Distance(position.Value, _destination); - if (_moveParams.Mount == true) + if (Task.Mount == true) { - var mountTask = _mountFactory.Mount(_moveParams.TerritoryId, Mount.EMountIf.Always); - if (mountTask.Start()) + var mountTask = new Mount.MountTask(Task.TerritoryId, Mount.EMountIf.Always); + if (_mountExecutor.Start(mountTask)) { - _mountTask = mountTask; + _nestedExecutor = _mountExecutor; return true; } } - else if (_moveParams.Mount == false) + else if (Task.Mount == false) { - var mountTask = _mountFactory.Unmount(); - if (mountTask.Start()) + var mountTask = new Mount.UnmountTask(); + if (_unmountExecutor.Start(mountTask)) { - _mountTask = mountTask; + _nestedExecutor = _unmountExecutor; return true; } } - if (!_moveParams.DisableNavMesh) + if (!Task.DisableNavmesh) { - if (_moveParams.Mount == null) + if (Task.Mount == null) { Mount.EMountIf mountIf = - actualDistance > stopDistance && _moveParams.Fly && - _gameFunctions.IsFlyingUnlocked(_moveParams.TerritoryId) + actualDistance > stopDistance && Task.Fly && + _gameFunctions.IsFlyingUnlocked(Task.TerritoryId) ? Mount.EMountIf.Always : Mount.EMountIf.AwayFromPosition; - var mountTask = _mountFactory.Mount(_moveParams.TerritoryId, mountIf, _destination); - if (mountTask.Start()) + var mountTask = new Mount.MountTask(Task.TerritoryId, mountIf, _destination); + if (_mountExecutor.Start(mountTask)) { - _mountTask = mountTask; + _nestedExecutor = _mountExecutor; return true; } } } - _mountTask = new NoOpTask(); + _nestedExecutor = new NoOpTaskExecutor(); return true; } - public ETaskResult Update() + public override ETaskResult Update() { - if (_mountTask != null) + if (_nestedExecutor != null) { - if (_mountTask.Update() == ETaskResult.TaskComplete) + if (_nestedExecutor.Update() == ETaskResult.TaskComplete) { - _mountTask = null; + _nestedExecutor = null; _logger.LogInformation("Moving to {Destination}", _destination.ToString("G", CultureInfo.InvariantCulture)); _startAction(); @@ -247,10 +223,10 @@ internal static class MoveTo if (_canRestart && Vector3.Distance(_clientState.LocalPlayer!.Position, _destination) > - (_moveParams.StopDistance ?? QuestStep.DefaultStopDistance) + 5f) + (Task.StopDistance ?? QuestStep.DefaultStopDistance) + 5f) { _canRestart = false; - if (_clientState.TerritoryType == _moveParams.TerritoryId) + if (_clientState.TerritoryType == Task.TerritoryId) { _logger.LogInformation("Looks like movement was interrupted, re-attempting to move"); _startAction(); @@ -264,7 +240,6 @@ internal static class MoveTo return ETaskResult.TaskComplete; } - public override string ToString() => $"MoveTo({_destination.ToString("G", CultureInfo.InvariantCulture)})"; public bool OnErrorToast(SeString message) { @@ -275,27 +250,27 @@ internal static class MoveTo } } - private sealed class NoOpTask : ITask + private sealed class NoOpTaskExecutor : TaskExecutor { - public bool Start() => true; + protected override bool Start() => true; - public ETaskResult Update() => ETaskResult.TaskComplete; + public override ETaskResult Update() => ETaskResult.TaskComplete; } - internal sealed record MoveParams( + internal sealed record MoveTask( ushort TerritoryId, Vector3 Destination, bool? Mount = null, float? StopDistance = null, uint? DataId = null, - bool DisableNavMesh = false, + bool DisableNavmesh = false, bool Sprint = true, bool Fly = false, bool Land = false, bool IgnoreDistanceToObject = false, - bool RestartNavigation = true) + bool RestartNavigation = true) : ITask { - public MoveParams(QuestStep step, Vector3 destination) + public MoveTask(QuestStep step, Vector3 destination) : this(step.TerritoryId, destination, step.Mount, @@ -309,23 +284,27 @@ internal static class MoveTo step.RestartNavigationIfCancelled != false) { } + + public override string ToString() => $"MoveTo({Destination.ToString("G", CultureInfo.InvariantCulture)})"; } - private sealed class WaitForNearDataId( - uint dataId, - float stopDistance, - GameFunctions gameFunctions, - IClientState clientState) : ITask + internal sealed record WaitForNearDataId(uint DataId, float StopDistance) : ITask { public bool ShouldRedoOnInterrupt() => true; + } - public bool Start() => true; + internal sealed class WaitForNearDataIdExecutor( + GameFunctions gameFunctions, + IClientState clientState) : TaskExecutor + { - public ETaskResult Update() + protected override bool Start() => true; + + public override ETaskResult Update() { - IGameObject? gameObject = gameFunctions.FindObjectByDataId(dataId); + IGameObject? gameObject = gameFunctions.FindObjectByDataId(Task.DataId); if (gameObject == null || - (gameObject.Position - clientState.LocalPlayer!.Position).Length() > stopDistance) + (gameObject.Position - clientState.LocalPlayer!.Position).Length() > Task.StopDistance) { throw new TaskException("Object not found or too far away, no position so we can't move"); } @@ -334,14 +313,17 @@ internal static class MoveTo } } - private sealed class LandTask(IClientState clientState, ICondition condition, ILogger logger) : ITask + internal sealed class LandTask : ITask + { + public bool ShouldRedoOnInterrupt() => true; + } + + internal sealed class LandExecutor(IClientState clientState, ICondition condition, ILogger logger) : TaskExecutor { private bool _landing; private DateTime _continueAt; - public bool ShouldRedoOnInterrupt() => true; - - public bool Start() + protected override bool Start() { if (!condition[ConditionFlag.InFlight]) { @@ -354,7 +336,7 @@ internal static class MoveTo return true; } - public ETaskResult Update() + public override ETaskResult Update() { if (DateTime.Now < _continueAt) return ETaskResult.StillRunning; diff --git a/Questionable/Controller/Steps/Shared/SkipCondition.cs b/Questionable/Controller/Steps/Shared/SkipCondition.cs index 1c8a3fa3..eaf1d167 100644 --- a/Questionable/Controller/Steps/Shared/SkipCondition.cs +++ b/Questionable/Controller/Steps/Shared/SkipCondition.cs @@ -1,14 +1,9 @@ -using System; -using System.Collections.Generic; -using System.Linq; +using System.Linq; using System.Numerics; using Dalamud.Game.ClientState.Objects.Types; using Dalamud.Plugin.Services; -using FFXIVClientStructs.FFXIV.Application.Network.WorkDefinitions; using FFXIVClientStructs.FFXIV.Client.Game; using FFXIVClientStructs.FFXIV.Client.Game.UI; -using FFXIVClientStructs.FFXIV.Client.System.Framework; -using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; using Questionable.Controller.Utils; using Questionable.Functions; @@ -20,12 +15,7 @@ namespace Questionable.Controller.Steps.Shared; internal static class SkipCondition { - internal sealed class Factory( - ILoggerFactory loggerFactory, - AetheryteFunctions aetheryteFunctions, - GameFunctions gameFunctions, - QuestFunctions questFunctions, - IClientState clientState) : SimpleTaskFactory + internal sealed class Factory : SimpleTaskFactory { public override ITask? CreateTask(Quest quest, QuestSequence sequence, QuestStep step) { @@ -40,28 +30,31 @@ internal static class SkipCondition step.NextQuestId == null) return null; - return Check(step, skipConditions, quest.Id); - } - - private CheckSkip Check(QuestStep step, SkipStepConditions? skipConditions, ElementId questId) - { - return new CheckSkip(step, skipConditions ?? new(), questId, loggerFactory.CreateLogger(), - aetheryteFunctions, gameFunctions, questFunctions, clientState); + return new SkipTask(step, skipConditions ?? new(), quest.Id); } } - private sealed class CheckSkip( - QuestStep step, - SkipStepConditions skipConditions, - ElementId elementId, + internal sealed record SkipTask( + QuestStep Step, + SkipStepConditions SkipConditions, + ElementId ElementId) : ITask + { + public override string ToString() => "CheckSkip"; + } + + internal sealed class CheckSkip( ILogger logger, AetheryteFunctions aetheryteFunctions, GameFunctions gameFunctions, QuestFunctions questFunctions, - IClientState clientState) : ITask + IClientState clientState) : TaskExecutor { - public unsafe bool Start() + protected override unsafe bool Start() { + var skipConditions = Task.SkipConditions; + var step = Task.Step; + var elementId = Task.ElementId; + logger.LogInformation("Checking skip conditions; {ConfiguredConditions}", string.Join(",", skipConditions)); if (skipConditions.Flying == ELockedSkipCondition.Unlocked && @@ -204,7 +197,8 @@ internal static class SkipCondition } } - if (skipConditions.NearPosition is { } nearPosition && clientState.TerritoryType == nearPosition.TerritoryId) + if (skipConditions.NearPosition is { } nearPosition && + clientState.TerritoryType == nearPosition.TerritoryId) { if (Vector3.Distance(nearPosition.Position, clientState.LocalPlayer!.Position) <= nearPosition.MaximumDistance) @@ -251,8 +245,6 @@ internal static class SkipCondition return false; } - public ETaskResult Update() => ETaskResult.SkipRemainingTasksForStep; - - public override string ToString() => "CheckSkip"; + public override ETaskResult Update() => ETaskResult.SkipRemainingTasksForStep; } } diff --git a/Questionable/Controller/Steps/Shared/StepDisabled.cs b/Questionable/Controller/Steps/Shared/StepDisabled.cs index 86487621..917951f8 100644 --- a/Questionable/Controller/Steps/Shared/StepDisabled.cs +++ b/Questionable/Controller/Steps/Shared/StepDisabled.cs @@ -6,27 +6,30 @@ namespace Questionable.Controller.Steps.Shared; internal static class StepDisabled { - internal sealed class Factory(ILoggerFactory loggerFactory) : SimpleTaskFactory + internal sealed class Factory : SimpleTaskFactory { public override ITask? CreateTask(Quest quest, QuestSequence sequence, QuestStep step) { if (!step.Disabled) return null; - return new Task(loggerFactory.CreateLogger()); + return new SkipRemainingTasks(); } } - internal sealed class Task(ILogger logger) : ITask + internal sealed class SkipRemainingTasks : ITask { - public bool Start() => true; + public override string ToString() => "StepDisabled"; + } - public ETaskResult Update() + internal sealed class Executor(ILogger logger) : TaskExecutor + { + protected override bool Start() => true; + + public override ETaskResult Update() { logger.LogInformation("Skipping step, as it is disabled"); return ETaskResult.SkipRemainingTasksForStep; } - - public override string ToString() => "StepDisabled"; } } diff --git a/Questionable/Controller/Steps/Shared/SwitchClassJob.cs b/Questionable/Controller/Steps/Shared/SwitchClassJob.cs index bacd4b7d..880aac69 100644 --- a/Questionable/Controller/Steps/Shared/SwitchClassJob.cs +++ b/Questionable/Controller/Steps/Shared/SwitchClassJob.cs @@ -6,31 +6,37 @@ using Questionable.Controller.Steps.Common; namespace Questionable.Controller.Steps.Shared; -internal sealed class SwitchClassJob(EClassJob classJob, IClientState clientState) : AbstractDelayedTask +internal static class SwitchClassJob { - protected override unsafe bool StartInternal() + internal sealed record Task(EClassJob ClassJob) : ITask { - if (clientState.LocalPlayer!.ClassJob.Id == (uint)classJob) - return false; - - var gearsetModule = RaptureGearsetModule.Instance(); - if (gearsetModule != null) - { - for (int i = 0; i < 100; ++i) - { - var gearset = gearsetModule->GetGearset(i); - if (gearset->ClassJob == (byte)classJob) - { - gearsetModule->EquipGearset(gearset->Id); - return true; - } - } - } - - throw new TaskException($"No gearset found for {classJob}"); + public override string ToString() => $"SwitchJob({ClassJob})"; } - protected override ETaskResult UpdateInternal() => ETaskResult.TaskComplete; + internal sealed class Executor(IClientState clientState) : AbstractDelayedTaskExecutor + { + protected override unsafe bool StartInternal() + { + if (clientState.LocalPlayer!.ClassJob.Id == (uint)Task.ClassJob) + return false; - public override string ToString() => $"SwitchJob({classJob})"; + var gearsetModule = RaptureGearsetModule.Instance(); + if (gearsetModule != null) + { + for (int i = 0; i < 100; ++i) + { + var gearset = gearsetModule->GetGearset(i); + if (gearset->ClassJob == (byte)Task.ClassJob) + { + gearsetModule->EquipGearset(gearset->Id); + return true; + } + } + } + + throw new TaskException($"No gearset found for {Task.ClassJob}"); + } + + protected override ETaskResult UpdateInternal() => ETaskResult.TaskComplete; + } } diff --git a/Questionable/Controller/Steps/Shared/WaitAtEnd.cs b/Questionable/Controller/Steps/Shared/WaitAtEnd.cs index e2a0864f..083fff42 100644 --- a/Questionable/Controller/Steps/Shared/WaitAtEnd.cs +++ b/Questionable/Controller/Steps/Shared/WaitAtEnd.cs @@ -19,9 +19,7 @@ internal static class WaitAtEnd internal sealed class Factory( IClientState clientState, ICondition condition, - TerritoryData territoryData, - QuestFunctions questFunctions, - GameFunctions gameFunctions) + TerritoryData territoryData) : ITaskFactory { public IEnumerable CreateAllTasks(Quest quest, QuestSequence sequence, QuestStep step) @@ -29,7 +27,7 @@ internal static class WaitAtEnd if (step.CompletionQuestVariablesFlags.Count == 6 && QuestWorkUtils.HasCompletionFlags(step.CompletionQuestVariablesFlags)) { - var task = new WaitForCompletionFlags((QuestId)quest.Id, step, questFunctions); + var task = new WaitForCompletionFlags((QuestId)quest.Id, step); var delay = new WaitDelay(); return [task, delay, Next(quest, sequence)]; } @@ -38,7 +36,7 @@ internal static class WaitAtEnd { case EInteractionType.Combat: var notInCombat = - new WaitConditionTask(() => !condition[ConditionFlag.InCombat], "Wait(not in combat)"); + new WaitCondition.Task(() => !condition[ConditionFlag.InCombat], "Wait(not in combat)"); return [ new WaitDelay(), @@ -67,8 +65,7 @@ internal static class WaitAtEnd return [ - new WaitObjectAtPosition(step.DataId.Value, step.Position.Value, step.NpcWaitDistance ?? 0.5f, - gameFunctions), + new WaitObjectAtPosition(step.DataId.Value, step.Position.Value, step.NpcWaitDistance ?? 0.5f), new WaitDelay(), Next(quest, sequence) ]; @@ -79,14 +76,14 @@ internal static class WaitAtEnd if (step.TerritoryId != step.TargetTerritoryId) { // interaction moves to a different territory - waitInteraction = new WaitConditionTask( + waitInteraction = new WaitCondition.Task( () => clientState.TerritoryType == step.TargetTerritoryId, $"Wait(tp to territory: {territoryData.GetNameAndId(step.TargetTerritoryId.Value)})"); } else { Vector3 lastPosition = step.Position ?? clientState.LocalPlayer?.Position ?? Vector3.Zero; - waitInteraction = new WaitConditionTask(() => + waitInteraction = new WaitCondition.Task(() => { Vector3? currentPosition = clientState.LocalPlayer?.Position; if (currentPosition == null) @@ -109,7 +106,7 @@ internal static class WaitAtEnd case EInteractionType.AcceptQuest: { - var accept = new WaitQuestAccepted(step.PickUpQuestId ?? quest.Id, questFunctions); + var accept = new WaitQuestAccepted(step.PickUpQuestId ?? quest.Id); var delay = new WaitDelay(); if (step.PickUpQuestId != null) return [accept, delay, Next(quest, sequence)]; @@ -119,7 +116,7 @@ internal static class WaitAtEnd case EInteractionType.CompleteQuest: { - var complete = new WaitQuestCompleted(step.TurnInQuestId ?? quest.Id, questFunctions); + var complete = new WaitQuestCompleted(step.TurnInQuestId ?? quest.Id); var delay = new WaitDelay(); if (step.TurnInQuestId != null) return [complete, delay, Next(quest, sequence)]; @@ -139,103 +136,133 @@ internal static class WaitAtEnd } } - internal sealed class WaitDelay(TimeSpan? delay = null) : AbstractDelayedTask(delay ?? TimeSpan.FromSeconds(1)) + internal sealed record WaitDelay(TimeSpan Delay) : ITask { - protected override bool StartInternal() => true; + public WaitDelay() + : this(TimeSpan.FromSeconds(1)) + { + } public override string ToString() => $"Wait(seconds: {Delay.TotalSeconds})"; } + internal sealed class WaitDelayExecutor : AbstractDelayedTaskExecutor + { + protected override bool StartInternal() + { + Delay = Task.Delay; + return true; + } + } + internal sealed class WaitNextStepOrSequence : ITask { - public bool Start() => true; - - public ETaskResult Update() => ETaskResult.StillRunning; - public override string ToString() => "Wait(next step or sequence)"; } - internal sealed class WaitForCompletionFlags(QuestId quest, QuestStep step, QuestFunctions questFunctions) : ITask + internal sealed class WaitNextStepOrSequenceExecutor : TaskExecutor { - public bool Start() => true; + protected override bool Start() => true; - public ETaskResult Update() + public override ETaskResult Update() => ETaskResult.StillRunning; + } + + internal sealed record WaitForCompletionFlags(QuestId Quest, QuestStep Step) : ITask + { + public override string ToString() => + $"Wait(QW: {string.Join(", ", Step.CompletionQuestVariablesFlags.Select(x => x?.ToString() ?? "-"))})"; + } + + internal sealed class WaitForCompletionFlagsExecutor(QuestFunctions questFunctions) + : TaskExecutor + { + protected override bool Start() => true; + + public override ETaskResult Update() { - QuestProgressInfo? questWork = questFunctions.GetQuestProgressInfo(quest); + QuestProgressInfo? questWork = questFunctions.GetQuestProgressInfo(Task.Quest); return questWork != null && - QuestWorkUtils.MatchesQuestWork(step.CompletionQuestVariablesFlags, questWork) + QuestWorkUtils.MatchesQuestWork(Task.Step.CompletionQuestVariablesFlags, questWork) ? ETaskResult.TaskComplete : ETaskResult.StillRunning; } + } + internal sealed record WaitObjectAtPosition( + uint DataId, + Vector3 Destination, + float Distance) : ITask + { public override string ToString() => - $"Wait(QW: {string.Join(", ", step.CompletionQuestVariablesFlags.Select(x => x?.ToString() ?? "-"))})"; + $"WaitObj({DataId} at {Destination.ToString("G", CultureInfo.InvariantCulture)} < {Distance})"; } - private sealed class WaitObjectAtPosition( - uint dataId, - Vector3 destination, - float distance, - GameFunctions gameFunctions) : ITask + internal sealed class WaitObjectAtPositionExecutor(GameFunctions gameFunctions) : TaskExecutor { - public bool Start() => true; + protected override bool Start() => true; - public ETaskResult Update() => - gameFunctions.IsObjectAtPosition(dataId, destination, distance) + public override ETaskResult Update() => + gameFunctions.IsObjectAtPosition(Task.DataId, Task.Destination, Task.Distance) ? ETaskResult.TaskComplete : ETaskResult.StillRunning; - - public override string ToString() => - $"WaitObj({dataId} at {destination.ToString("G", CultureInfo.InvariantCulture)} < {distance})"; } - internal sealed class WaitQuestAccepted(ElementId elementId, QuestFunctions questFunctions) : ITask + internal sealed record WaitQuestAccepted(ElementId ElementId) : ITask { - public bool Start() => true; + public override string ToString() => $"WaitQuestAccepted({ElementId})"; + } - public ETaskResult Update() + internal sealed class WaitQuestAcceptedExecutor(QuestFunctions questFunctions) : TaskExecutor + { + protected override bool Start() => true; + + public override ETaskResult Update() { - return questFunctions.IsQuestAccepted(elementId) + return questFunctions.IsQuestAccepted(Task.ElementId) ? ETaskResult.TaskComplete : ETaskResult.StillRunning; } - - public override string ToString() => $"WaitQuestAccepted({elementId})"; } - internal sealed class WaitQuestCompleted(ElementId elementId, QuestFunctions questFunctions) : ITask + internal sealed record WaitQuestCompleted(ElementId ElementId) : ITask { - public bool Start() => true; + public override string ToString() => $"WaitQuestComplete({ElementId})"; + } - public ETaskResult Update() + internal sealed class WaitQuestCompletedExecutor(QuestFunctions questFunctions) : TaskExecutor + { + protected override bool Start() => true; + + public override ETaskResult Update() { - return questFunctions.IsQuestComplete(elementId) ? ETaskResult.TaskComplete : ETaskResult.StillRunning; + return questFunctions.IsQuestComplete(Task.ElementId) ? ETaskResult.TaskComplete : ETaskResult.StillRunning; } - - public override string ToString() => $"WaitQuestComplete({elementId})"; } - internal sealed class NextStep(ElementId elementId, int sequence) : ILastTask + internal sealed record NextStep(ElementId ElementId, int Sequence) : ILastTask { - public ElementId ElementId { get; } = elementId; - public int Sequence { get; } = sequence; - - public bool Start() => true; - - public ETaskResult Update() => ETaskResult.NextStep; - public override string ToString() => "NextStep"; } + internal sealed class NextStepExecutor : TaskExecutor + { + protected override bool Start() => true; + + public override ETaskResult Update() => ETaskResult.NextStep; + } + internal sealed class EndAutomation : ILastTask { public ElementId ElementId => throw new InvalidOperationException(); public int Sequence => throw new InvalidOperationException(); - public bool Start() => true; - - public ETaskResult Update() => ETaskResult.End; - public override string ToString() => "EndAutomation"; } + internal sealed class EndAutomationExecutor : TaskExecutor + { + + protected override bool Start() => true; + + public override ETaskResult Update() => ETaskResult.End; + } } diff --git a/Questionable/Controller/Steps/Shared/WaitAtStart.cs b/Questionable/Controller/Steps/Shared/WaitAtStart.cs index cbe63e7f..c2c304b4 100644 --- a/Questionable/Controller/Steps/Shared/WaitAtStart.cs +++ b/Questionable/Controller/Steps/Shared/WaitAtStart.cs @@ -18,10 +18,19 @@ internal static class WaitAtStart } } - internal sealed class WaitDelay(TimeSpan delay) : AbstractDelayedTask(delay) - { - protected override bool StartInternal() => true; + internal sealed record WaitDelay(TimeSpan Delay) : ITask + { public override string ToString() => $"Wait[S](seconds: {Delay.TotalSeconds})"; } + + internal sealed class WaitDelayExecutor : AbstractDelayedTaskExecutor + { + protected override bool StartInternal() + { + Delay = Task.Delay; + return true; + } + } + } diff --git a/Questionable/Controller/Steps/TaskExecutor.cs b/Questionable/Controller/Steps/TaskExecutor.cs new file mode 100644 index 00000000..4f48b56b --- /dev/null +++ b/Questionable/Controller/Steps/TaskExecutor.cs @@ -0,0 +1,51 @@ +using System; + +namespace Questionable.Controller.Steps; + +internal interface ITaskExecutor +{ + ITask CurrentTask { get; } + + Type GetTaskType(); + + bool Start(ITask task); + + bool WasInterrupted(); + + ETaskResult Update(); +} + +internal abstract class TaskExecutor : ITaskExecutor + where T : class, ITask +{ + protected T Task { get; set; } = null!; + protected InteractionProgressContext? ProgressContext { get; set; } + ITask ITaskExecutor.CurrentTask => Task; + + public bool WasInterrupted() + { + if (ProgressContext is {} progressContext) + { + progressContext.Update(); + return progressContext.WasInterrupted(); + } + + return false; + } + + public Type GetTaskType() => typeof(T); + + protected abstract bool Start(); + + public bool Start(ITask task) + { + if (task is T t) + { + Task = t; + return Start(); + } + throw new TaskException($"Unable to cast {task.GetType()} to {typeof(T)}"); + } + + public abstract ETaskResult Update(); +} diff --git a/Questionable/Controller/Steps/TaskQueue.cs b/Questionable/Controller/Steps/TaskQueue.cs index ff12876f..7d30706a 100644 --- a/Questionable/Controller/Steps/TaskQueue.cs +++ b/Questionable/Controller/Steps/TaskQueue.cs @@ -8,10 +8,10 @@ internal sealed class TaskQueue { private readonly List _completedTasks = []; private readonly List _tasks = []; - public ITask? CurrentTask { get; set; } + public ITaskExecutor? CurrentTaskExecutor { get; set; } public IEnumerable RemainingTasks => _tasks; - public bool AllTasksComplete => CurrentTask == null && _tasks.Count == 0; + public bool AllTasksComplete => CurrentTaskExecutor == null && _tasks.Count == 0; public void Enqueue(ITask task) { @@ -41,7 +41,7 @@ internal sealed class TaskQueue { _tasks.Clear(); _completedTasks.Clear(); - CurrentTask = null; + CurrentTaskExecutor = null; } public void InterruptWith(List interruptionTasks) @@ -49,8 +49,8 @@ internal sealed class TaskQueue List newTasks = [ ..interruptionTasks, - .._completedTasks.Where(x => !ReferenceEquals(x, CurrentTask)).ToList(), - CurrentTask, + .._completedTasks.Where(x => !ReferenceEquals(x, CurrentTaskExecutor?.CurrentTask)).ToList(), + CurrentTaskExecutor?.CurrentTask, .._tasks ]; Reset(); diff --git a/Questionable/QuestionablePlugin.cs b/Questionable/QuestionablePlugin.cs index b5878353..98f357f1 100644 --- a/Questionable/QuestionablePlugin.cs +++ b/Questionable/QuestionablePlugin.cs @@ -56,6 +56,7 @@ public sealed class QuestionablePlugin : IDalamudPlugin { ArgumentNullException.ThrowIfNull(pluginInterface); ArgumentNullException.ThrowIfNull(chatGui); + try { ServiceCollection serviceCollection = new(); @@ -128,44 +129,81 @@ public sealed class QuestionablePlugin : IDalamudPlugin private static void AddTaskFactories(ServiceCollection serviceCollection) { // individual tasks - serviceCollection.AddTransient(); - serviceCollection.AddTransient(); - serviceCollection.AddTransient(); - serviceCollection.AddTransient(); - serviceCollection.AddSingleton(); + serviceCollection.AddTaskExecutor(); + serviceCollection.AddTaskExecutor(); + serviceCollection.AddTaskExecutor(); + serviceCollection.AddTaskExecutor(); + serviceCollection.AddTaskExecutor(); + serviceCollection.AddTaskExecutor(); // task factories - serviceCollection.AddTaskFactory(); + serviceCollection + .AddTaskFactoryAndExecutor(); serviceCollection.AddTaskFactory(); - serviceCollection.AddTaskFactory(); - serviceCollection.AddTaskFactory(); - serviceCollection.AddTaskFactory(); - serviceCollection.AddTaskFactory(); - serviceCollection.AddTaskFactory(); - serviceCollection.AddTaskFactory(); + serviceCollection.AddTaskFactoryAndExecutor(); + serviceCollection.AddTaskExecutor(); + serviceCollection + .AddTaskFactoryAndExecutor(); + serviceCollection + .AddTaskFactoryAndExecutor(); + serviceCollection + .AddTaskFactoryAndExecutor(); + serviceCollection + .AddTaskFactoryAndExecutor(); + serviceCollection.AddTaskFactoryAndExecutor(); + serviceCollection.AddTaskExecutor(); + serviceCollection.AddTaskExecutor(); - serviceCollection.AddTaskFactory(); - serviceCollection.AddTaskFactory(); - serviceCollection.AddTaskFactory(); - serviceCollection.AddTaskFactory(); - serviceCollection.AddTaskFactory(); - serviceCollection.AddTaskFactory(); + serviceCollection.AddTaskFactoryAndExecutor(); + serviceCollection + .AddTaskFactoryAndExecutor(); + serviceCollection + .AddTaskFactoryAndExecutor(); + serviceCollection.AddTaskFactoryAndExecutor(); + serviceCollection.AddTaskFactoryAndExecutor(); + serviceCollection.AddTaskFactoryAndExecutor(); serviceCollection.AddTaskFactory(); - serviceCollection.AddTaskFactory(); - serviceCollection.AddTaskFactory(); + serviceCollection.AddTaskExecutor(); + serviceCollection.AddTaskExecutor(); + serviceCollection.AddTaskFactoryAndExecutor(); + serviceCollection.AddTaskFactoryAndExecutor(); serviceCollection.AddTaskFactory(); - serviceCollection.AddTaskFactory(); - serviceCollection.AddTaskFactory(); + serviceCollection.AddTaskExecutor(); + serviceCollection.AddTaskExecutor(); + serviceCollection.AddTaskFactoryAndExecutor(); + serviceCollection.AddTaskFactoryAndExecutor(); serviceCollection.AddTaskFactory(); - serviceCollection.AddTaskFactory(); - serviceCollection.AddTaskFactory(); - serviceCollection.AddTaskFactory(); - serviceCollection.AddTaskFactory(); - serviceCollection.AddTaskFactory(); + serviceCollection.AddTaskExecutor(); + serviceCollection.AddTaskExecutor(); + serviceCollection.AddTaskExecutor(); + serviceCollection.AddTaskExecutor(); + serviceCollection.AddTaskFactoryAndExecutor(); + serviceCollection + .AddTaskFactoryAndExecutor(); + serviceCollection.AddTaskFactoryAndExecutor(); + serviceCollection + .AddTaskFactoryAndExecutor(); + serviceCollection.AddTaskFactory(); + serviceCollection.AddTaskExecutor(); + serviceCollection.AddTaskExecutor(); + serviceCollection.AddTaskExecutor(); + serviceCollection.AddTaskExecutor(); + + serviceCollection.AddTaskExecutor(); serviceCollection.AddTaskFactory(); - serviceCollection.AddTransient(); - serviceCollection.AddTransient(); + serviceCollection.AddTaskExecutor(); + serviceCollection.AddTaskExecutor(); + serviceCollection.AddTaskExecutor(); + serviceCollection.AddTaskExecutor(); + serviceCollection.AddTaskExecutor(); + serviceCollection.AddTaskExecutor(); + serviceCollection.AddTaskExecutor(); + serviceCollection.AddTaskExecutor(); serviceCollection.AddSingleton(); } diff --git a/Questionable/ServiceCollectionExtensions.cs b/Questionable/ServiceCollectionExtensions.cs index 0247cefe..2b17a831 100644 --- a/Questionable/ServiceCollectionExtensions.cs +++ b/Questionable/ServiceCollectionExtensions.cs @@ -1,4 +1,5 @@ -using JetBrains.Annotations; +using Dalamud.Plugin.Services; +using JetBrains.Annotations; using Microsoft.Extensions.DependencyInjection; using Questionable.Controller.Steps; @@ -7,11 +8,37 @@ namespace Questionable; internal static class ServiceCollectionExtensions { public static void AddTaskFactory< - [MeansImplicitUse(ImplicitUseKindFlags.InstantiatedNoFixedConstructorSignature)] TFactory>( + [MeansImplicitUse(ImplicitUseKindFlags.InstantiatedNoFixedConstructorSignature)] + TFactory>( this IServiceCollection serviceCollection) where TFactory : class, ITaskFactory { serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); } + + public static void AddTaskExecutor( + this IServiceCollection serviceCollection) + where T : class, ITask + where TExecutor : TaskExecutor + { + serviceCollection.AddKeyedTransient(typeof(T)); + serviceCollection.AddTransient(); + } + + public static void AddTaskFactoryAndExecutor( + this IServiceCollection serviceCollection) + where TFactory : class, ITaskFactory + where T : class, ITask + where TExecutor : TaskExecutor + { + serviceCollection.AddTaskFactory(); + serviceCollection.AddTaskExecutor(); + } } From b85ab8afe7044b0fda10f90ce4e5e385bf10ca94 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Wed, 18 Sep 2024 22:46:52 +0200 Subject: [PATCH 276/450] Task logc fixes --- Questionable/Controller/MiniTaskController.cs | 1 + Questionable/Controller/Steps/Shared/AetheryteShortcut.cs | 3 +-- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Questionable/Controller/MiniTaskController.cs b/Questionable/Controller/MiniTaskController.cs index b99cd35f..12eb1660 100644 --- a/Questionable/Controller/MiniTaskController.cs +++ b/Questionable/Controller/MiniTaskController.cs @@ -103,6 +103,7 @@ internal abstract class MiniTaskController { ITaskExecutor taskExecutor = _serviceProvider.GetRequiredKeyedService(nextTask.GetType()); + taskExecutor.Start(nextTask); _taskQueue.CurrentTaskExecutor = taskExecutor; return; } diff --git a/Questionable/Controller/Steps/Shared/AetheryteShortcut.cs b/Questionable/Controller/Steps/Shared/AetheryteShortcut.cs index ba1e0211..c059df46 100644 --- a/Questionable/Controller/Steps/Shared/AetheryteShortcut.cs +++ b/Questionable/Controller/Steps/Shared/AetheryteShortcut.cs @@ -35,6 +35,7 @@ internal static class AetheryteShortcut EAetheryteLocation TargetAetheryte, ushort ExpectedTerritoryId) : ISkippableTask { + public override string ToString() => $"UseAetheryte({TargetAetheryte})"; } internal sealed class UseAetheryteShortcut( @@ -204,7 +205,5 @@ internal static class AetheryteShortcut throw new TaskException("Unable to teleport to aetheryte"); } } - - public override string ToString() => $"UseAetheryte({Task.TargetAetheryte})"; } } From dfd38a311bbfa0bfa2fe058e03408ec899291d67 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Thu, 19 Sep 2024 00:00:16 +0200 Subject: [PATCH 277/450] Rename task stuff --- .../Controller/Steps/Common/NextQuest.cs | 4 ++-- .../Steps/Common/WaitConditionTask.cs | 2 +- .../Controller/Steps/Gathering/DoGather.cs | 4 ++-- .../Steps/Gathering/DoGatherCollectable.cs | 4 ++-- .../Steps/Gathering/MoveToLandingLocation.cs | 4 ++-- .../Controller/Steps/Interactions/Duty.cs | 2 +- .../Controller/Steps/Interactions/EquipItem.cs | 4 ++-- .../Controller/Steps/Shared/StepDisabled.cs | 2 +- .../Controller/Steps/Shared/SwitchClassJob.cs | 2 +- .../Controller/Utils/QuestWorkUtils.cs | 4 ++-- Questionable/QuestionablePlugin.cs | 18 +++++++++--------- 11 files changed, 25 insertions(+), 25 deletions(-) diff --git a/Questionable/Controller/Steps/Common/NextQuest.cs b/Questionable/Controller/Steps/Common/NextQuest.cs index 32aa7ad9..2c889375 100644 --- a/Questionable/Controller/Steps/Common/NextQuest.cs +++ b/Questionable/Controller/Steps/Common/NextQuest.cs @@ -33,11 +33,11 @@ internal static class NextQuest public override string ToString() => $"SetNextQuest({NextQuestId})"; } - internal sealed class Executor( + internal sealed class NextQuestExecutor( QuestRegistry questRegistry, QuestController questController, QuestFunctions questFunctions, - ILogger logger) : TaskExecutor + ILogger logger) : TaskExecutor { protected override bool Start() { diff --git a/Questionable/Controller/Steps/Common/WaitConditionTask.cs b/Questionable/Controller/Steps/Common/WaitConditionTask.cs index 9389bfb2..367fdfec 100644 --- a/Questionable/Controller/Steps/Common/WaitConditionTask.cs +++ b/Questionable/Controller/Steps/Common/WaitConditionTask.cs @@ -9,7 +9,7 @@ internal static class WaitCondition public override string ToString() => Description; } - internal sealed class Executor : TaskExecutor + internal sealed class WaitConditionExecutor : TaskExecutor { private DateTime _continueAt = DateTime.MaxValue; diff --git a/Questionable/Controller/Steps/Gathering/DoGather.cs b/Questionable/Controller/Steps/Gathering/DoGather.cs index e0e05a94..169b0b7c 100644 --- a/Questionable/Controller/Steps/Gathering/DoGather.cs +++ b/Questionable/Controller/Steps/Gathering/DoGather.cs @@ -29,13 +29,13 @@ internal static class DoGather public override string ToString() => $"DoGather{(RevisitRequired ? " if revist" : "")}"; } - internal sealed class Executor( + internal sealed class GatherExecutor( GatheringController gatheringController, GameFunctions gameFunctions, IGameGui gameGui, IClientState clientState, ICondition condition, - ILogger logger) : TaskExecutor + ILogger logger) : TaskExecutor { private const uint StatusGatheringRateUp = 218; diff --git a/Questionable/Controller/Steps/Gathering/DoGatherCollectable.cs b/Questionable/Controller/Steps/Gathering/DoGatherCollectable.cs index 17376e10..16740943 100644 --- a/Questionable/Controller/Steps/Gathering/DoGatherCollectable.cs +++ b/Questionable/Controller/Steps/Gathering/DoGatherCollectable.cs @@ -27,12 +27,12 @@ internal static class DoGatherCollectable $"DoGatherCollectable({SeIconChar.Collectible.ToIconString()}/{Request.Collectability}){(RevisitRequired ? " if revist" : "")}"; } - internal sealed class Executor( + internal sealed class GatherCollectableExecutor( GatheringController gatheringController, GameFunctions gameFunctions, IClientState clientState, IGameGui gameGui, - ILogger logger) : TaskExecutor + ILogger logger) : TaskExecutor { private Queue? _actionQueue; diff --git a/Questionable/Controller/Steps/Gathering/MoveToLandingLocation.cs b/Questionable/Controller/Steps/Gathering/MoveToLandingLocation.cs index cc9f4d97..048bd208 100644 --- a/Questionable/Controller/Steps/Gathering/MoveToLandingLocation.cs +++ b/Questionable/Controller/Steps/Gathering/MoveToLandingLocation.cs @@ -21,11 +21,11 @@ internal static class MoveToLandingLocation public override string ToString() => $"Land/{FlyBetweenNodes}"; } - internal sealed class Executor( + internal sealed class MoveToLandingLocationExecutor( MoveTo.MoveExecutor moveExecutor, GameFunctions gameFunctions, IObjectTable objectTable, - ILogger logger) : TaskExecutor + ILogger logger) : TaskExecutor { private ITask _moveTask = null!; diff --git a/Questionable/Controller/Steps/Interactions/Duty.cs b/Questionable/Controller/Steps/Interactions/Duty.cs index 172eb961..42c94d87 100644 --- a/Questionable/Controller/Steps/Interactions/Duty.cs +++ b/Questionable/Controller/Steps/Interactions/Duty.cs @@ -26,7 +26,7 @@ internal static class Duty public override string ToString() => $"OpenDutyFinder({ContentFinderConditionId})"; } - internal sealed class Executor( + internal sealed class OpenDutyWindowExecutor( GameFunctions gameFunctions, ICondition condition) : TaskExecutor { diff --git a/Questionable/Controller/Steps/Interactions/EquipItem.cs b/Questionable/Controller/Steps/Interactions/EquipItem.cs index d9cd3971..9e424f65 100644 --- a/Questionable/Controller/Steps/Interactions/EquipItem.cs +++ b/Questionable/Controller/Steps/Interactions/EquipItem.cs @@ -33,9 +33,9 @@ internal static class EquipItem public override string ToString() => $"Equip({ItemId})"; } - internal sealed class Executor( + internal sealed class DoEquip( IDataManager dataManager, - ILogger logger) : TaskExecutor, IToastAware + ILogger logger) : TaskExecutor, IToastAware { private const int MaxAttempts = 3; diff --git a/Questionable/Controller/Steps/Shared/StepDisabled.cs b/Questionable/Controller/Steps/Shared/StepDisabled.cs index 917951f8..f7065359 100644 --- a/Questionable/Controller/Steps/Shared/StepDisabled.cs +++ b/Questionable/Controller/Steps/Shared/StepDisabled.cs @@ -22,7 +22,7 @@ internal static class StepDisabled public override string ToString() => "StepDisabled"; } - internal sealed class Executor(ILogger logger) : TaskExecutor + internal sealed class SkipDisabledStepsExecutor(ILogger logger) : TaskExecutor { protected override bool Start() => true; diff --git a/Questionable/Controller/Steps/Shared/SwitchClassJob.cs b/Questionable/Controller/Steps/Shared/SwitchClassJob.cs index 880aac69..37ddf1ee 100644 --- a/Questionable/Controller/Steps/Shared/SwitchClassJob.cs +++ b/Questionable/Controller/Steps/Shared/SwitchClassJob.cs @@ -13,7 +13,7 @@ internal static class SwitchClassJob public override string ToString() => $"SwitchJob({ClassJob})"; } - internal sealed class Executor(IClientState clientState) : AbstractDelayedTaskExecutor + internal sealed class SwitchClassJobExecutor(IClientState clientState) : AbstractDelayedTaskExecutor { protected override unsafe bool StartInternal() { diff --git a/Questionable/Controller/Utils/QuestWorkUtils.cs b/Questionable/Controller/Utils/QuestWorkUtils.cs index 56484ecc..5315aa9e 100644 --- a/Questionable/Controller/Utils/QuestWorkUtils.cs +++ b/Questionable/Controller/Utils/QuestWorkUtils.cs @@ -63,7 +63,7 @@ internal static class QuestWorkUtils { if (requiredQuestVariables.Count != 6 || requiredQuestVariables.All(x => x == null || x.Count == 0)) { - logger.LogDebug("No RQW defined"); + logger.LogDebug("No RequiredQW defined"); return true; } @@ -71,7 +71,7 @@ internal static class QuestWorkUtils { if (requiredQuestVariables[i] == null) { - logger.LogInformation("No RQW {Index} defined", i); + logger.LogDebug("No RequiredQW {Index} defined", i); continue; } diff --git a/Questionable/QuestionablePlugin.cs b/Questionable/QuestionablePlugin.cs index 98f357f1..47b5cb96 100644 --- a/Questionable/QuestionablePlugin.cs +++ b/Questionable/QuestionablePlugin.cs @@ -129,16 +129,16 @@ public sealed class QuestionablePlugin : IDalamudPlugin private static void AddTaskFactories(ServiceCollection serviceCollection) { // individual tasks - serviceCollection.AddTaskExecutor(); - serviceCollection.AddTaskExecutor(); - serviceCollection.AddTaskExecutor(); - serviceCollection.AddTaskExecutor(); + serviceCollection.AddTaskExecutor(); + serviceCollection.AddTaskExecutor(); + serviceCollection.AddTaskExecutor(); + serviceCollection.AddTaskExecutor(); serviceCollection.AddTaskExecutor(); serviceCollection.AddTaskExecutor(); // task factories serviceCollection - .AddTaskFactoryAndExecutor(); + .AddTaskFactoryAndExecutor(); serviceCollection.AddTaskFactory(); serviceCollection.AddTaskFactoryAndExecutor(); serviceCollection.AddTaskExecutor(); @@ -156,14 +156,14 @@ public sealed class QuestionablePlugin : IDalamudPlugin serviceCollection.AddTaskExecutor(); serviceCollection.AddTaskExecutor(); - serviceCollection.AddTaskFactoryAndExecutor(); + serviceCollection.AddTaskFactoryAndExecutor(); serviceCollection .AddTaskFactoryAndExecutor(); serviceCollection .AddTaskFactoryAndExecutor(); serviceCollection.AddTaskFactoryAndExecutor(); serviceCollection.AddTaskFactoryAndExecutor(); - serviceCollection.AddTaskFactoryAndExecutor(); + serviceCollection.AddTaskFactoryAndExecutor(); serviceCollection.AddTaskFactory(); serviceCollection.AddTaskExecutor(); serviceCollection.AddTaskExecutor(); @@ -179,7 +179,7 @@ public sealed class QuestionablePlugin : IDalamudPlugin serviceCollection.AddTaskExecutor(); serviceCollection.AddTaskExecutor(); serviceCollection.AddTaskExecutor(); - serviceCollection.AddTaskFactoryAndExecutor(); + serviceCollection.AddTaskFactoryAndExecutor(); serviceCollection .AddTaskFactoryAndExecutor(); @@ -194,7 +194,7 @@ public sealed class QuestionablePlugin : IDalamudPlugin serviceCollection.AddTaskExecutor(); serviceCollection.AddTaskExecutor(); - serviceCollection.AddTaskExecutor(); + serviceCollection.AddTaskExecutor(); serviceCollection.AddTaskFactory(); serviceCollection.AddTaskExecutor(); serviceCollection.AddTaskExecutor(); From e3fee58bd0a44a8304342566f62ed197a3af33a5 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Thu, 19 Sep 2024 00:00:33 +0200 Subject: [PATCH 278/450] EW side story updates --- .../Mare Lamentorum/4241_Carrots Its Whats for Dinner.json | 2 +- .../Side Quests/Radz-at-Han/4269_A Bond Eternal.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/QuestPaths/6.x - Endwalker/Aether Currents/Mare Lamentorum/4241_Carrots Its Whats for Dinner.json b/QuestPaths/6.x - Endwalker/Aether Currents/Mare Lamentorum/4241_Carrots Its Whats for Dinner.json index 0d7637ca..43097754 100644 --- a/QuestPaths/6.x - Endwalker/Aether Currents/Mare Lamentorum/4241_Carrots Its Whats for Dinner.json +++ b/QuestPaths/6.x - Endwalker/Aether Currents/Mare Lamentorum/4241_Carrots Its Whats for Dinner.json @@ -252,7 +252,7 @@ "Y": -151.26128, "Z": -657.2519 }, - "StopDistance": 7, + "StopDistance": 6, "TerritoryId": 959, "InteractionType": "Say", "DisableNavmesh": true, diff --git a/QuestPaths/6.x - Endwalker/Side Quests/Radz-at-Han/4269_A Bond Eternal.json b/QuestPaths/6.x - Endwalker/Side Quests/Radz-at-Han/4269_A Bond Eternal.json index c3934566..af5bcd2f 100644 --- a/QuestPaths/6.x - Endwalker/Side Quests/Radz-at-Han/4269_A Bond Eternal.json +++ b/QuestPaths/6.x - Endwalker/Side Quests/Radz-at-Han/4269_A Bond Eternal.json @@ -41,7 +41,7 @@ "InteractionType": "Interact", "AethernetShortcut": [ "[Radz-at-Han] Mehryde's Meyhane", - "[Radz-at-Han] Aetheryte Plaza" + "[Radz-at-Han] The High Crucible of Al-Kimiya" ] } ] From 2389beb056bac6cd484602bf598bbd99ebf3d6cd Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Thu, 19 Sep 2024 00:54:21 +0200 Subject: [PATCH 279/450] Handle certain interaction interruptions --- .../Ultima Thule/4354_Combat Evolved.json | 16 ++++++++++++++++ Questionable/Controller/QuestController.cs | 1 - .../Controller/Steps/Common/NextQuest.cs | 1 + .../Steps/Interactions/AetherCurrent.cs | 1 + .../Steps/Interactions/AethernetShard.cs | 1 + .../Controller/Steps/Interactions/Aetheryte.cs | 1 + .../Controller/Steps/Interactions/Interact.cs | 2 ++ .../Controller/Steps/Shared/WaitAtEnd.cs | 2 ++ 8 files changed, 24 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 393eba29..752ec884 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 @@ -27,6 +27,22 @@ { "Sequence": 1, "Steps": [ + { + "Position": { + "X": 588.5607, + "Y": 437.99976, + "Z": 299.7425 + }, + "TerritoryId": 960, + "InteractionType": "Jump", + "JumpDestination": { + "Position": { + "X": 602.4677, + "Y": 438.6276, + "Z": 297.1612 + } + } + }, { "Position": { "X": 656.94653, diff --git a/Questionable/Controller/QuestController.cs b/Questionable/Controller/QuestController.cs index 8a1ed773..b736de2e 100644 --- a/Questionable/Controller/QuestController.cs +++ b/Questionable/Controller/QuestController.cs @@ -811,7 +811,6 @@ internal sealed class QuestController : MiniTaskController, IDi private void OnErrorToast(ref SeString message, ref bool isHandled) { - _logger.LogWarning("XXX {A} → {B} XXX", _actionCanceledText, message.TextValue); if (_taskQueue.CurrentTaskExecutor is IToastAware toastAware) { if (toastAware.OnErrorToast(message)) diff --git a/Questionable/Controller/Steps/Common/NextQuest.cs b/Questionable/Controller/Steps/Common/NextQuest.cs index 2c889375..7f4b0261 100644 --- a/Questionable/Controller/Steps/Common/NextQuest.cs +++ b/Questionable/Controller/Steps/Common/NextQuest.cs @@ -30,6 +30,7 @@ internal static class NextQuest internal sealed record SetQuestTask(ElementId NextQuestId, ElementId CurrentQuestId) : ITask { + public bool ShouldRedoOnInterrupt() => true; public override string ToString() => $"SetNextQuest({NextQuestId})"; } diff --git a/Questionable/Controller/Steps/Interactions/AetherCurrent.cs b/Questionable/Controller/Steps/Interactions/AetherCurrent.cs index e0f65c1a..b244bbea 100644 --- a/Questionable/Controller/Steps/Interactions/AetherCurrent.cs +++ b/Questionable/Controller/Steps/Interactions/AetherCurrent.cs @@ -36,6 +36,7 @@ internal static class AetherCurrent internal sealed record Attune(uint DataId, uint AetherCurrentId) : ITask { + public bool ShouldRedoOnInterrupt() => true; public override string ToString() => $"AttuneAetherCurrent({AetherCurrentId})"; } diff --git a/Questionable/Controller/Steps/Interactions/AethernetShard.cs b/Questionable/Controller/Steps/Interactions/AethernetShard.cs index d7d09a0c..b1af7fe9 100644 --- a/Questionable/Controller/Steps/Interactions/AethernetShard.cs +++ b/Questionable/Controller/Steps/Interactions/AethernetShard.cs @@ -26,6 +26,7 @@ internal static class AethernetShard internal sealed record Attune(EAetheryteLocation AetheryteLocation) : ITask { + public bool ShouldRedoOnInterrupt() => true; public override string ToString() => $"AttuneAethernetShard({AetheryteLocation})"; } diff --git a/Questionable/Controller/Steps/Interactions/Aetheryte.cs b/Questionable/Controller/Steps/Interactions/Aetheryte.cs index 6d3cb54d..d9754776 100644 --- a/Questionable/Controller/Steps/Interactions/Aetheryte.cs +++ b/Questionable/Controller/Steps/Interactions/Aetheryte.cs @@ -24,6 +24,7 @@ internal static class Aetheryte internal sealed record Attune(EAetheryteLocation AetheryteLocation) : ITask { + public bool ShouldRedoOnInterrupt() => true; public override string ToString() => $"AttuneAetheryte({AetheryteLocation})"; } diff --git a/Questionable/Controller/Steps/Interactions/Interact.cs b/Questionable/Controller/Steps/Interactions/Interact.cs index 286cf828..5dd28d20 100644 --- a/Questionable/Controller/Steps/Interactions/Interact.cs +++ b/Questionable/Controller/Steps/Interactions/Interact.cs @@ -63,6 +63,8 @@ internal static class Interact uint? PickUpItemId = null, SkipStepConditions? SkipConditions = null) : ITask { + public bool ShouldRedoOnInterrupt() => true; + public override string ToString() => $"Interact({DataId})"; } diff --git a/Questionable/Controller/Steps/Shared/WaitAtEnd.cs b/Questionable/Controller/Steps/Shared/WaitAtEnd.cs index 083fff42..d64c009b 100644 --- a/Questionable/Controller/Steps/Shared/WaitAtEnd.cs +++ b/Questionable/Controller/Steps/Shared/WaitAtEnd.cs @@ -143,6 +143,8 @@ internal static class WaitAtEnd { } + public bool ShouldRedoOnInterrupt() => true; + public override string ToString() => $"Wait(seconds: {Delay.TotalSeconds})"; } From a06a3f233503daf9543a13639465e5bdba62c574 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Thu, 19 Sep 2024 23:44:42 +0200 Subject: [PATCH 280/450] Fix turn-ins for Ehll Tou/Charlemend --- .../Custom Deliveries/Charlemend/S7_Charlemend.json | 5 +++++ .../Custom Deliveries/Ehll Tou/S6_Ehll Tou.json | 5 +++++ 2 files changed, 10 insertions(+) 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 02581a49..18b2d648 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": "Gather", + "ItemsToGather": [] + }, { "TerritoryId": 886, "InteractionType": "None", 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 70a15091..ec41fc8c 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": "Gather", + "ItemsToGather": [] + }, { "TerritoryId": 886, "InteractionType": "None", From d520c4cb11e3366e059c5bda42529945714d5545 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Fri, 20 Sep 2024 00:35:33 +0200 Subject: [PATCH 281/450] Add import/export functionality to priority window --- Questionable/Controller/CommandHandler.cs | 4 +- Questionable/Windows/PriorityWindow.cs | 81 ++++++++++++++++++++++- 2 files changed, 82 insertions(+), 3 deletions(-) diff --git a/Questionable/Controller/CommandHandler.cs b/Questionable/Controller/CommandHandler.cs index d532b0ea..4f80f53b 100644 --- a/Questionable/Controller/CommandHandler.cs +++ b/Questionable/Controller/CommandHandler.cs @@ -14,8 +14,8 @@ namespace Questionable.Controller; internal sealed class CommandHandler : IDisposable { - private const string MessageTag = "Questionable"; - private const ushort TagColor = 576; + public const string MessageTag = "Questionable"; + public const ushort TagColor = 576; private readonly ICommandManager _commandManager; private readonly IChatGui _chatGui; diff --git a/Questionable/Windows/PriorityWindow.cs b/Questionable/Windows/PriorityWindow.cs index 346ca0eb..912d7b6d 100644 --- a/Questionable/Windows/PriorityWindow.cs +++ b/Questionable/Windows/PriorityWindow.cs @@ -1,11 +1,14 @@ using System; +using System.Buffers.Text; using System.Collections.Generic; using System.Linq; using System.Numerics; +using System.Text; using Dalamud.Interface; using Dalamud.Interface.Colors; using Dalamud.Interface.Components; using Dalamud.Plugin; +using Dalamud.Plugin.Services; using ImGuiNET; using LLib.ImGui; using Questionable.Controller; @@ -18,18 +21,23 @@ namespace Questionable.Windows; internal sealed class PriorityWindow : LWindow { + private const string ClipboardPrefix = "qst:v1:"; + private const char ClipboardSeparator = ';'; + private readonly QuestController _questController; private readonly QuestRegistry _questRegistry; private readonly QuestFunctions _questFunctions; private readonly QuestTooltipComponent _questTooltipComponent; private readonly UiUtils _uiUtils; + private readonly IChatGui _chatGui; private readonly IDalamudPluginInterface _pluginInterface; private string _searchString = string.Empty; private ElementId? _draggedItem; public PriorityWindow(QuestController questController, QuestRegistry questRegistry, QuestFunctions questFunctions, - QuestTooltipComponent questTooltipComponent, UiUtils uiUtils, IDalamudPluginInterface pluginInterface) + QuestTooltipComponent questTooltipComponent, UiUtils uiUtils, IChatGui chatGui, + IDalamudPluginInterface pluginInterface) : base("Quest Priority###QuestionableQuestPriority") { _questController = questController; @@ -37,6 +45,7 @@ internal sealed class PriorityWindow : LWindow _questFunctions = questFunctions; _questTooltipComponent = questTooltipComponent; _uiUtils = uiUtils; + _chatGui = chatGui; _pluginInterface = pluginInterface; Size = new Vector2(400, 400); @@ -53,6 +62,18 @@ internal sealed class PriorityWindow : LWindow ImGui.Text("Quests to do first:"); DrawQuestFilter(); DrawQuestList(); + + List clipboardItems = ParseClipboardItems(); + ImGui.BeginDisabled(clipboardItems.Count == 0); + if (ImGuiComponents.IconButtonWithText(FontAwesomeIcon.Download, "Import from Clipboard")) + ImportFromClipboard(clipboardItems); + ImGui.EndDisabled(); + ImGui.SameLine(); + ImGui.BeginDisabled(_questController.ManualPriorityQuests.Count == 0); + if (ImGuiComponents.IconButtonWithText(FontAwesomeIcon.Upload, "Export to Clibpoard")) + ExportToClipboard(); + ImGui.EndDisabled(); + ImGui.Spacing(); ImGui.Separator(); @@ -221,4 +242,62 @@ internal sealed class PriorityWindow : LWindow priorityQuests.Insert(indexToAdd, itemToAdd); } } + + private List ParseClipboardItems() + { + List clipboardItems = new List(); + try + { + string? clipboardText = GetClipboardText(); + if (clipboardText != null && clipboardText.StartsWith(ClipboardPrefix, StringComparison.InvariantCulture)) + { + clipboardText = clipboardText.Substring(ClipboardPrefix.Length); + string text = Encoding.UTF8.GetString(Convert.FromBase64String(clipboardText)); + foreach (string part in text.Split(ClipboardSeparator)) + { + ElementId elementId = ElementId.FromString(part); + clipboardItems.Add(elementId); + } + } + } + catch (Exception) + { + clipboardItems.Clear(); + } + + return clipboardItems; + } + + private void ExportToClipboard() + { + string clipboardText = ClipboardPrefix + Convert.ToBase64String(Encoding.UTF8.GetBytes( + string.Join(ClipboardSeparator, _questController.ManualPriorityQuests.Select(x => x.Id.ToString())))); + ImGui.SetClipboardText(clipboardText); + _chatGui.Print("Copied quests to clipboard.", CommandHandler.MessageTag, CommandHandler.TagColor); + } + + private void ImportFromClipboard(List clipboardItems) + { + foreach (ElementId elementId in clipboardItems) + { + if (_questRegistry.TryGetQuest(elementId, out Quest? quest) && + !_questController.ManualPriorityQuests.Contains(quest)) + _questController.ManualPriorityQuests.Add(quest); + } + } + + /// + /// 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); + } } From 878d4db61863af26e3127484c90ce8149a32a82e Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Fri, 20 Sep 2024 00:35:54 +0200 Subject: [PATCH 282/450] Change gathering editor window to auto-resize --- GatheringPathRenderer/Windows/EditorWindow.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/GatheringPathRenderer/Windows/EditorWindow.cs b/GatheringPathRenderer/Windows/EditorWindow.cs index e081c967..5da1bf04 100644 --- a/GatheringPathRenderer/Windows/EditorWindow.cs +++ b/GatheringPathRenderer/Windows/EditorWindow.cs @@ -35,7 +35,7 @@ internal sealed class EditorWindow : Window public EditorWindow(RendererPlugin plugin, EditorCommands editorCommands, IDataManager dataManager, ITargetManager targetManager, IClientState clientState, IObjectTable objectTable) : base("Gathering Path Editor###QuestionableGatheringPathEditor", - ImGuiWindowFlags.NoFocusOnAppearing | ImGuiWindowFlags.NoNavFocus) + ImGuiWindowFlags.NoFocusOnAppearing | ImGuiWindowFlags.NoNavFocus | ImGuiWindowFlags.AlwaysAutoResize) { _plugin = plugin; _editorCommands = editorCommands; @@ -46,7 +46,7 @@ internal sealed class EditorWindow : Window SizeConstraints = new WindowSizeConstraints { - MinimumSize = new Vector2(300, 300), + MinimumSize = new Vector2(300, 100), }; RespectCloseHotkey = false; From 822f78a4d8229e173ce3a3df58f60629b8e8c9a1 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Fri, 20 Sep 2024 01:46:13 +0200 Subject: [PATCH 283/450] Minor task adjustments --- GatheringPathRenderer/Windows/EditorWindow.cs | 2 +- .../Controller/GatheringController.cs | 4 +- .../Steps/Gathering/MoveToLandingLocation.cs | 4 +- .../Controller/Steps/Interactions/UseItem.cs | 6 ++- .../Controller/Steps/Shared/MoveTo.cs | 53 +++++++++++-------- 5 files changed, 40 insertions(+), 29 deletions(-) diff --git a/GatheringPathRenderer/Windows/EditorWindow.cs b/GatheringPathRenderer/Windows/EditorWindow.cs index 5da1bf04..55f9a5c2 100644 --- a/GatheringPathRenderer/Windows/EditorWindow.cs +++ b/GatheringPathRenderer/Windows/EditorWindow.cs @@ -66,7 +66,7 @@ internal sealed class EditorWindow : Window _target = _targetManager.Target; var gatheringLocations = _plugin.GetLocationsInTerritory(_clientState.TerritoryType); - var location = gatheringLocations.SelectMany(context => + var location = gatheringLocations.ToList().SelectMany(context => context.Root.Groups.SelectMany(group => group.Nodes.SelectMany(node => node.Locations .Select(location => diff --git a/Questionable/Controller/GatheringController.cs b/Questionable/Controller/GatheringController.cs index 52541c09..f97a9b37 100644 --- a/Questionable/Controller/GatheringController.cs +++ b/Questionable/Controller/GatheringController.cs @@ -167,7 +167,7 @@ internal sealed unsafe class GatheringController : MiniTaskController GetRemainingTaskNames() { - if (_taskQueue.CurrentTaskExecutor?.CurrentTask is {} currentTask) + if (_taskQueue.CurrentTaskExecutor?.CurrentTask is { } currentTask) return [currentTask.ToString() ?? "?", .. base.GetRemainingTaskNames()]; else return base.GetRemainingTaskNames(); diff --git a/Questionable/Controller/Steps/Gathering/MoveToLandingLocation.cs b/Questionable/Controller/Steps/Gathering/MoveToLandingLocation.cs index 048bd208..14552c21 100644 --- a/Questionable/Controller/Steps/Gathering/MoveToLandingLocation.cs +++ b/Questionable/Controller/Steps/Gathering/MoveToLandingLocation.cs @@ -8,6 +8,7 @@ using Questionable.Controller.Steps.Shared; using Questionable.Functions; using Questionable.Model; using Questionable.Model.Gathering; +using Questionable.Model.Questing; namespace Questionable.Controller.Steps.Gathering; @@ -50,7 +51,8 @@ internal static class MoveToLandingLocation bool fly = Task.FlyBetweenNodes && gameFunctions.IsFlyingUnlocked(Task.TerritoryId); _moveTask = new MoveTo.MoveTask(Task.TerritoryId, target, null, 0.25f, - DataId: Task.GatheringNode.DataId, Fly: fly, IgnoreDistanceToObject: true); + DataId: Task.GatheringNode.DataId, Fly: fly, IgnoreDistanceToObject: true, + InteractionType: EInteractionType.Gather); return moveExecutor.Start(_moveTask); } diff --git a/Questionable/Controller/Steps/Interactions/UseItem.cs b/Questionable/Controller/Steps/Interactions/UseItem.cs index ccdb998d..e0753758 100644 --- a/Questionable/Controller/Steps/Interactions/UseItem.cs +++ b/Questionable/Controller/Steps/Interactions/UseItem.cs @@ -62,7 +62,8 @@ internal static class UseItem nextPosition != null ? Mount.EMountIf.AwayFromPosition : Mount.EMountIf.Always, nextPosition), new MoveTo.MoveTask(140, new(-408.92343f, 23.167036f, -351.16223f), null, 0.25f, - DataId: null, DisableNavmesh: true, Sprint: false, Fly: false) + DataId: null, DisableNavmesh: true, Sprint: false, Fly: false, + InteractionType: EInteractionType.WalkTo) ]; } @@ -105,7 +106,8 @@ internal static class UseItem yield return new AetheryteShortcut.Task(null, null, EAetheryteLocation.Limsa, territoryId); yield return new AethernetShortcut.Task(EAetheryteLocation.Limsa, EAetheryteLocation.LimsaArcanist); yield return new WaitAtEnd.WaitDelay(); - yield return new MoveTo.MoveTask(territoryId, destination, DataId: npcId, Sprint: false); + yield return new MoveTo.MoveTask(territoryId, destination, DataId: npcId, Sprint: false, + InteractionType: EInteractionType.WalkTo); yield return new Interact.Task(npcId, null, EInteractionType.None, true); } } diff --git a/Questionable/Controller/Steps/Shared/MoveTo.cs b/Questionable/Controller/Steps/Shared/MoveTo.cs index 2f7a8ea3..92aa6d07 100644 --- a/Questionable/Controller/Steps/Shared/MoveTo.cs +++ b/Questionable/Controller/Steps/Shared/MoveTo.cs @@ -36,7 +36,7 @@ internal static class MoveTo { if (step.Position != null) { - return CreateMountTasks(quest.Id, step, step.Position.Value); + return CreateMoveTasks(step, step.Position.Value); } else if (step is { DataId: not null, StopDistance: not null }) { @@ -44,17 +44,17 @@ internal static class MoveTo } else if (step is { InteractionType: EInteractionType.AttuneAetheryte, Aetheryte: not null }) { - return CreateMountTasks(quest.Id, step, aetheryteData.Locations[step.Aetheryte.Value]); + return CreateMoveTasks(step, aetheryteData.Locations[step.Aetheryte.Value]); } else if (step is { InteractionType: EInteractionType.AttuneAethernetShard, AethernetShard: not null }) { - return CreateMountTasks(quest.Id, step, aetheryteData.Locations[step.AethernetShard.Value]); + return CreateMoveTasks(step, aetheryteData.Locations[step.AethernetShard.Value]); } return []; } - public IEnumerable CreateMountTasks(ElementId questId, QuestStep step, Vector3 destination) + private IEnumerable CreateMoveTasks(QuestStep step, Vector3 destination) { if (step.InteractionType == EInteractionType.Jump && step.JumpDestination != null && (clientState.LocalPlayer!.Position - step.JumpDestination.Position).Length() <= @@ -71,13 +71,9 @@ internal static class MoveTo { yield return new WaitCondition.Task(() => movementController.IsNavmeshReady, "Wait(navmesh ready)"); + } - yield return new MoveTask(step, destination); - } - else - { - yield return new MoveTask(step, destination); - } + yield return new MoveTask(step, destination); if (step is { Fly: true, Land: true }) yield return new LandTask(); @@ -94,7 +90,7 @@ internal static class MoveTo private readonly Mount.MountExecutor _mountExecutor; private readonly Mount.UnmountExecutor _unmountExecutor; - private Action _startAction = null!; + private Action? _startAction; private Vector3 _destination; private bool _canRestart; private ITaskExecutor? _nestedExecutor; @@ -115,13 +111,10 @@ internal static class MoveTo _mountExecutor = mountExecutor; _unmountExecutor = unmountExecutor; _cannotExecuteAtThisTime = dataManager.GetString(579, x => x.Text)!; - } - private void Initialize() + private void PrepareMovementIfNeeded() { - _destination = Task.Destination; - if (!_gameFunctions.IsFlyingUnlocked(Task.TerritoryId)) { Task = Task with { Fly = false, Land = false }; @@ -147,18 +140,22 @@ internal static class MoveTo ignoreDistanceToObject: Task.IgnoreDistanceToObject, land: Task.Land); } - - _canRestart = Task.RestartNavigation; } protected override bool Start() { - Initialize(); + _canRestart = Task.RestartNavigation; + _destination = Task.Destination; + float stopDistance = Task.StopDistance ?? QuestStep.DefaultStopDistance; Vector3? position = _clientState.LocalPlayer?.Position; float actualDistance = position == null ? float.MaxValue : Vector3.Distance(position.Value, _destination); + bool requiresMovement = actualDistance > stopDistance; + if (requiresMovement) + PrepareMovementIfNeeded(); + // might be able to make this optional if (Task.Mount == true) { var mountTask = new Mount.MountTask(Task.TerritoryId, Mount.EMountIf.Always); @@ -207,13 +204,21 @@ internal static class MoveTo if (_nestedExecutor.Update() == ETaskResult.TaskComplete) { _nestedExecutor = null; - - _logger.LogInformation("Moving to {Destination}", _destination.ToString("G", CultureInfo.InvariantCulture)); - _startAction(); + if (_startAction != null) + { + _logger.LogInformation("Moving to {Destination}", + _destination.ToString("G", CultureInfo.InvariantCulture)); + _startAction(); + } + else + return ETaskResult.TaskComplete; } return ETaskResult.StillRunning; } + if (_startAction == null) + return ETaskResult.TaskComplete; + if (_movementController.IsPathfinding || _movementController.IsPathRunning) return ETaskResult.StillRunning; @@ -268,7 +273,8 @@ internal static class MoveTo bool Fly = false, bool Land = false, bool IgnoreDistanceToObject = false, - bool RestartNavigation = true) : ITask + bool RestartNavigation = true, + EInteractionType InteractionType = EInteractionType.None) : ITask { public MoveTask(QuestStep step, Vector3 destination) : this(step.TerritoryId, @@ -281,7 +287,8 @@ internal static class MoveTo step.Fly == true, step.Land == true, step.IgnoreDistanceToObject == true, - step.RestartNavigationIfCancelled != false) + step.RestartNavigationIfCancelled != false, + step.InteractionType) { } From e87b7df4c2d24a48a6884a81759ff81ebff7e98d Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Fri, 20 Sep 2024 09:51:12 +0200 Subject: [PATCH 284/450] Add M'naago/Eureka unlock quests --- .../3005_None Forgotten, None Forsaken.json | 55 ++++++++++++++ .../Instant/2941_Reach Long and Prosper.json | 36 ++++++++++ .../3078_And We Shall Call It Eureka.json | 71 +++++++++++++++++++ 3 files changed, 162 insertions(+) create mode 100644 QuestPaths/4.x - Stormblood/Custom Deliveries/M'naago/3005_None Forgotten, None Forsaken.json create mode 100644 QuestPaths/4.x - Stormblood/Unlocks/Instant/2941_Reach Long and Prosper.json create mode 100644 QuestPaths/4.x - Stormblood/Unlocks/Misc/3078_And We Shall Call It Eureka.json diff --git a/QuestPaths/4.x - Stormblood/Custom Deliveries/M'naago/3005_None Forgotten, None Forsaken.json b/QuestPaths/4.x - Stormblood/Custom Deliveries/M'naago/3005_None Forgotten, None Forsaken.json new file mode 100644 index 00000000..2f9ea862 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Custom Deliveries/M'naago/3005_None Forgotten, None Forsaken.json @@ -0,0 +1,55 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "Position": { + "X": -69.61145, + "Y": 0.00999999, + "Z": 62.405437 + }, + "TerritoryId": 635, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Rhalgr's Reach", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + }, + { + "DataId": 1019459, + "Position": { + "X": -70.54254, + "Y": 0.4599931, + "Z": 64.37781 + }, + "TerritoryId": 635, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1020337, + "Position": { + "X": 171.31299, + "Y": 13.02367, + "Z": -89.951965 + }, + "TerritoryId": 635, + "InteractionType": "CompleteQuest", + "AethernetShortcut": [ + "[Rhalgr's Reach] Western Rhalgr's Reach", + "[Rhalgr's Reach] Northeastern Rhalgr's Reach" + ] + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Unlocks/Instant/2941_Reach Long and Prosper.json b/QuestPaths/4.x - Stormblood/Unlocks/Instant/2941_Reach Long and Prosper.json new file mode 100644 index 00000000..c2e24fac --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Unlocks/Instant/2941_Reach Long and Prosper.json @@ -0,0 +1,36 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "Position": { + "X": -69.61145, + "Y": 0.00999999, + "Z": 62.405437 + }, + "TerritoryId": 635, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Rhalgr's Reach", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + }, + { + "DataId": 1019459, + "Position": { + "X": -70.54254, + "Y": 0.4599931, + "Z": 64.37781 + }, + "TerritoryId": 635, + "InteractionType": "AcceptQuest" + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Unlocks/Misc/3078_And We Shall Call It Eureka.json b/QuestPaths/4.x - Stormblood/Unlocks/Misc/3078_And We Shall Call It Eureka.json new file mode 100644 index 00000000..0f0183d4 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Unlocks/Misc/3078_And We Shall Call It Eureka.json @@ -0,0 +1,71 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "Position": { + "X": -69.61145, + "Y": 0.00999999, + "Z": 62.405437 + }, + "TerritoryId": 635, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Rhalgr's Reach", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + }, + { + "DataId": 1019459, + "Position": { + "X": -70.54254, + "Y": 0.4599931, + "Z": 64.37781 + }, + "TerritoryId": 635, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1019002, + "Position": { + "X": -48.05072, + "Y": -2.9, + "Z": -50.247986 + }, + "TerritoryId": 628, + "InteractionType": "Interact", + "AetheryteShortcut": "Kugane" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1025233, + "Position": { + "X": -129.19812, + "Y": -4.999999, + "Z": 145.37268 + }, + "TerritoryId": 628, + "InteractionType": "CompleteQuest", + "AethernetShortcut": [ + "[Kugane] Aetheryte Plaza", + "[Kugane] Pier #1" + ] + } + ] + } + ] +} From 14257c73acd1a4c6e07a99caba25a989f5a85ef1 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Fri, 20 Sep 2024 11:56:57 +0200 Subject: [PATCH 285/450] Handle certain interaction interruptions --- .../MSQ/C-Yak T'el/4909_Road to the Golden City.json | 2 +- Questionable/Controller/Steps/Shared/MoveTo.cs | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) 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 39387ac5..efabe8be 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 @@ -15,7 +15,7 @@ "Y": -137.174, "Z": 559.47205 }, - "StopDistance": 5, + "StopDistance": 7, "TerritoryId": 1189, "InteractionType": "AcceptQuest" } diff --git a/Questionable/Controller/Steps/Shared/MoveTo.cs b/Questionable/Controller/Steps/Shared/MoveTo.cs index 92aa6d07..bd62ea13 100644 --- a/Questionable/Controller/Steps/Shared/MoveTo.cs +++ b/Questionable/Controller/Steps/Shared/MoveTo.cs @@ -292,6 +292,8 @@ internal static class MoveTo { } + public bool ShouldRedoOnInterrupt() => true; + public override string ToString() => $"MoveTo({Destination.ToString("G", CultureInfo.InvariantCulture)})"; } From 2e9c663158f47283f2621833110e9ce980339ef1 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Fri, 20 Sep 2024 11:58:13 +0200 Subject: [PATCH 286/450] Version bump --- Directory.Build.targets | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Directory.Build.targets b/Directory.Build.targets index 7a37148a..abb1feac 100644 --- a/Directory.Build.targets +++ b/Directory.Build.targets @@ -1,5 +1,5 @@ - 3.4 + 3.5 From d3e0bba06c64da40501347df1d4ab130cf4b21a2 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Fri, 20 Sep 2024 12:14:06 +0200 Subject: [PATCH 287/450] Move NE Shaaloani aether current loop to 'Rroneek Seeker' --- .../Shaaloani/5138_Rroneek Seeker.json | 80 ++++++++++++++++++- .../4918_One With Nature.json | 75 +---------------- 2 files changed, 78 insertions(+), 77 deletions(-) diff --git a/QuestPaths/7.x - Dawntrail/Aether Currents/Shaaloani/5138_Rroneek Seeker.json b/QuestPaths/7.x - Dawntrail/Aether Currents/Shaaloani/5138_Rroneek Seeker.json index 92d92c8f..a492147a 100644 --- a/QuestPaths/7.x - Dawntrail/Aether Currents/Shaaloani/5138_Rroneek Seeker.json +++ b/QuestPaths/7.x - Dawntrail/Aether Currents/Shaaloani/5138_Rroneek Seeker.json @@ -20,15 +20,89 @@ { "Sequence": 1, "Steps": [ + + { + "DataId": 2013960, + "Position": { + "X": 380.30054, + "Y": -16.983276, + "Z": -508.17123 + }, + "TerritoryId": 1190, + "InteractionType": "AttuneAetherCurrent", + "AetherCurrentId": 2818452 + }, { "Position": { - "X": 323.5058, - "Y": -16.330368, - "Z": -254.18399 + "X": 616.9261, + "Y": -17.458832, + "Z": -435.18936 }, "TerritoryId": 1190, "InteractionType": "WalkTo" }, + { + "DataId": 2013961, + "Position": { + "X": 645.5939, + "Y": -11.7647705, + "Z": -417.65472 + }, + "TerritoryId": 1190, + "InteractionType": "AttuneAetherCurrent", + "AetherCurrentId": 2818456 + }, + { + "Position": { + "X": 659.8994, + "Y": -16.525915, + "Z": -173.6375 + }, + "TerritoryId": 1190, + "InteractionType": "WalkTo" + }, + { + "DataId": 2013963, + "Position": { + "X": 658.2893, + "Y": 21.011597, + "Z": 82.993774 + }, + "TerritoryId": 1190, + "InteractionType": "AttuneAetherCurrent", + "AetherCurrentId": 2818458 + }, + { + "Position": { + "X": 198.9425, + "Y": 6.210067, + "Z": -53.1092 + }, + "TerritoryId": 1190, + "InteractionType": "WalkTo" + }, + { + "DataId": 2013962, + "Position": { + "X": 183.88635, + "Y": 11.917236, + "Z": -59.342346 + }, + "TerritoryId": 1190, + "InteractionType": "AttuneAetherCurrent", + "AetherCurrentId": 2818457, + "DisableNavmesh": true + }, + { + "Position": { + "X": 290.40674, + "Y": -11.14023, + "Z": -126.13759 + }, + "TerritoryId": 1190, + "InteractionType": "WalkTo", + "DisableNavmesh": true + }, { "DataId": 1050656, "Position": { diff --git a/QuestPaths/7.x - Dawntrail/MSQ/D-Shaaloani-HeritageFound1/4918_One With Nature.json b/QuestPaths/7.x - Dawntrail/MSQ/D-Shaaloani-HeritageFound1/4918_One With Nature.json index 7d5d4d3f..cbd540d9 100644 --- a/QuestPaths/7.x - Dawntrail/MSQ/D-Shaaloani-HeritageFound1/4918_One With Nature.json +++ b/QuestPaths/7.x - Dawntrail/MSQ/D-Shaaloani-HeritageFound1/4918_One With Nature.json @@ -56,78 +56,6 @@ "InteractionType": "AttuneAetheryte", "Aetheryte": "Shaaloani - Mehwahhetsoan" }, - { - "DataId": 2013960, - "Position": { - "X": 380.30054, - "Y": -16.983276, - "Z": -508.17123 - }, - "TerritoryId": 1190, - "InteractionType": "AttuneAetherCurrent", - "AetherCurrentId": 2818452 - }, - { - "Position": { - "X": 616.9261, - "Y": -17.458832, - "Z": -435.18936 - }, - "TerritoryId": 1190, - "InteractionType": "WalkTo" - }, - { - "DataId": 2013961, - "Position": { - "X": 645.5939, - "Y": -11.7647705, - "Z": -417.65472 - }, - "TerritoryId": 1190, - "InteractionType": "AttuneAetherCurrent", - "AetherCurrentId": 2818456 - }, - { - "Position": { - "X": 659.8994, - "Y": -16.525915, - "Z": -173.6375 - }, - "TerritoryId": 1190, - "InteractionType": "WalkTo" - }, - { - "DataId": 2013963, - "Position": { - "X": 658.2893, - "Y": 21.011597, - "Z": 82.993774 - }, - "TerritoryId": 1190, - "InteractionType": "AttuneAetherCurrent", - "AetherCurrentId": 2818458 - }, - { - "Position": { - "X": 198.9425, - "Y": 6.210067, - "Z": -53.1092 - }, - "TerritoryId": 1190, - "InteractionType": "WalkTo" - }, - { - "DataId": 2013962, - "Position": { - "X": 183.88635, - "Y": 11.917236, - "Z": -59.342346 - }, - "TerritoryId": 1190, - "InteractionType": "AttuneAetherCurrent", - "AetherCurrentId": 2818457, - "DisableNavmesh": true - }, { "DataId": 1046988, "Position": { @@ -136,8 +64,7 @@ "Z": -514.6716 }, "TerritoryId": 1190, - "InteractionType": "Interact", - "AetheryteShortcut": "Shaaloani - Mehwahhetsoan" + "InteractionType": "Interact" } ] }, From fa3b0db3099f04592aba2f61a97046dd2c43ec00 Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Thu, 19 Sep 2024 01:33:29 +0800 Subject: [PATCH 288/450] Added new story quests: - Delving Deeper - The Second Stela: The Hunters and the Hunted - The Second Stela: Fast Friends --- .../Qitari/Story/3796_Delving Deeper.json | 100 ++++++++++++++++++ ...cond Stela The Hunters and the Hunted.json | 36 +++++++ .../3803_The Second Stela Fast Friends.json | 36 +++++++ 3 files changed, 172 insertions(+) create mode 100644 QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Story/3796_Delving Deeper.json create mode 100644 QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Story/3802_The Second Stela The Hunters and the Hunted.json create mode 100644 QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Story/3803_The Second Stela Fast Friends.json 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 new file mode 100644 index 00000000..be8eb6d4 --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Story/3796_Delving Deeper.json @@ -0,0 +1,100 @@ +{ + "$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, + "AetheryteShortcut": "Rak'tika - Fanow" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "TerritoryId": 817, + "InteractionType": "Gather", + "ItemsToGather": [ + { + "QuestAcceptedAsClass": "Miner", + "ItemId": 29514, + "ItemCount": 1 + }, + { + "QuestAcceptedAsClass": "Botanist", + "ItemId": 29540, + "ItemCount": 1 + } + ] + }, + { + "DataId": 1032660, + "Position": { + "X": 804.4098, + "Y": -45.9255, + "Z": -216.41876 + }, + "TerritoryId": 817, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1032659, + "Position": { + "X": 802.79236, + "Y": -45.91779, + "Z": -218.58557 + }, + "TerritoryId": 817, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Story/3802_The Second Stela The Hunters and the Hunted.json b/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Story/3802_The Second Stela The Hunters and the Hunted.json new file mode 100644 index 00000000..96d75a52 --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Story/3802_The Second Stela The Hunters and the Hunted.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": 1032660, + "Position": { + "X": 804.4098, + "Y": -45.9255, + "Z": -216.41876 + }, + "TerritoryId": 817, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1032660, + "Position": { + "X": 804.4098, + "Y": -45.9255, + "Z": -216.41876 + }, + "TerritoryId": 817, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Story/3803_The Second Stela Fast Friends.json b/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Story/3803_The Second Stela Fast Friends.json new file mode 100644 index 00000000..9f606918 --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Story/3803_The Second Stela Fast Friends.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": 1032659, + "Position": { + "X": 802.79236, + "Y": -45.91779, + "Z": -218.58557 + }, + "TerritoryId": 817, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1032659, + "Position": { + "X": 802.79236, + "Y": -45.91779, + "Z": -218.58557 + }, + "TerritoryId": 817, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} From 7453f9269e785f5f9661e8a2b3a88384fc415311 Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Thu, 19 Sep 2024 01:34:12 +0800 Subject: [PATCH 289/450] Updated a few daily quests: - Rock 'n Ronka - There's No Clean Like Qhoterl Clean --- .../Qitari/Dailies/3824_Rock 'n Ronka.json | 19 +++++++++++++++++-- ...5_There's No Clean Like Qhoterl Clean.json | 19 +++++++++++++++++-- 2 files changed, 34 insertions(+), 4 deletions(-) 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 bdbb1696..7746ab7a 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 @@ -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, @@ -21,6 +20,22 @@ { "Sequence": 255, "Steps": [ + { + "TerritoryId": 817, + "InteractionType": "Gather", + "ItemsToGather": [ + { + "QuestAcceptedAsClass": "Miner", + "ItemId": 29531, + "ItemCount": 3 + }, + { + "QuestAcceptedAsClass": "Botanist", + "ItemId": 29557, + "ItemCount": 3 + } + ] + }, { "Position": { "X": 788.1569, 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 bdbb1696..b5e71d0b 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 @@ -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, @@ -21,6 +20,22 @@ { "Sequence": 255, "Steps": [ + { + "TerritoryId": 817, + "InteractionType": "Gather", + "ItemsToGather": [ + { + "QuestAcceptedAsClass": "Miner", + "ItemId": 29532, + "ItemCount": 3 + }, + { + "QuestAcceptedAsClass": "Botanist", + "ItemId": 29558, + "ItemCount": 3 + } + ] + }, { "Position": { "X": 788.1569, From 798160c2508078b174ff409359c3cb931e916582 Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Wed, 18 Sep 2024 02:30:49 +0800 Subject: [PATCH 290/450] Added final story quest "Life, the Universe, and Coffee Beans" --- ..._Life, the Universe, and Coffee Beans.json | 149 ++++++++++++++++++ 1 file changed, 149 insertions(+) create mode 100644 QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Story/4606_Life, the Universe, and Coffee Beans.json diff --git a/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Story/4606_Life, the Universe, and Coffee Beans.json b/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Story/4606_Life, the Universe, and Coffee Beans.json new file mode 100644 index 00000000..4137b700 --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Allied Societies/Omicrons/Story/4606_Life, the Universe, and Coffee Beans.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": 1043951, + "Position": { + "X": 303.8529, + "Y": 481.99442, + "Z": 154.83325 + }, + "TerritoryId": 960, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1043865, + "Position": { + "X": 301.8081, + "Y": 482.13644, + "Z": 165.02625 + }, + "TerritoryId": 960, + "InteractionType": "Interact", + "TargetTerritoryId": 960, + "DialogueChoices": [ + { + "Prompt": "TEXT_BANOMI006_04606_Q5_000_000", + "Type": "YesNo", + "Yes": true + } + ] + }, + { + "DataId": 1043586, + "Position": { + "X": 205.3711, + "Y": 567.4998, + "Z": 246.72314 + }, + "TerritoryId": 960, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1043424, + "Position": { + "X": 197.07019, + "Y": 567.49976, + "Z": 246.23486 + }, + "TerritoryId": 960, + "InteractionType": "Interact" + }, + { + "DataId": 1043423, + "Position": { + "X": 200.67139, + "Y": 567.4998, + "Z": 236.10278 + }, + "TerritoryId": 960, + "InteractionType": "Interact" + }, + { + "DataId": 1043592, + "Position": { + "X": 206.43921, + "Y": 567.49976, + "Z": 236.89624 + }, + "TerritoryId": 960, + "InteractionType": "Interact" + }, + { + "DataId": 1043593, + "Position": { + "X": 218.4939, + "Y": 565.99994, + "Z": 247.18079 + }, + "TerritoryId": 960, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1043585, + "Position": { + "X": 203.84521, + "Y": 567.4998, + "Z": 246.87573 + }, + "TerritoryId": 960, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1043864, + "Position": { + "X": 244.83093, + "Y": 564.8203, + "Z": 261.76843 + }, + "TerritoryId": 960, + "InteractionType": "Interact", + "Fly": true, + "TargetTerritoryId": 960, + "DialogueChoices": [ + { + "Prompt": "TEXT_BANOMI006_04606_Q6_000_000", + "Type": "YesNo", + "Yes": true + } + ] + }, + { + "DataId": 1043951, + "Position": { + "X": 303.8529, + "Y": 481.99442, + "Z": 154.83325 + }, + "TerritoryId": 960, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} From e54732e79823abd5e53f9c3ed38562d3ecc300c8 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Fri, 20 Sep 2024 16:05:39 +0200 Subject: [PATCH 291/450] Fix some Shaaloani/S9 pathing issues --- .../5140_When the Bill Comes Due.json | 3 +- .../4920_No Time for Tears.json | 9 +++ .../4932_Embracing Oblivion.json | 3 +- .../4935_Her People, Her Family.json | 6 +- .../4936_Scales of Blue.json | 6 +- .../Steps/Shared/AethernetShortcut.cs | 16 +++++- .../Steps/Shared/AetheryteShortcut.cs | 57 ++++++++++++++++++- Questionable/QuestionablePlugin.cs | 14 +++-- 8 files changed, 101 insertions(+), 13 deletions(-) diff --git a/QuestPaths/7.x - Dawntrail/Aether Currents/Shaaloani/5140_When the Bill Comes Due.json b/QuestPaths/7.x - Dawntrail/Aether Currents/Shaaloani/5140_When the Bill Comes Due.json index 912043e1..11ce3cd7 100644 --- a/QuestPaths/7.x - Dawntrail/Aether Currents/Shaaloani/5140_When the Bill Comes Due.json +++ b/QuestPaths/7.x - Dawntrail/Aether Currents/Shaaloani/5140_When the Bill Comes Due.json @@ -59,7 +59,8 @@ }, "TerritoryId": 1190, "InteractionType": "WalkTo", - "$": "Shaaloani Hhusatahwi Saloon Stairs (top)" + "$": "Shaaloani Hhusatahwi Saloon Stairs (top)", + "Mount": true }, { "Position": { diff --git a/QuestPaths/7.x - Dawntrail/MSQ/D-Shaaloani-HeritageFound1/4920_No Time for Tears.json b/QuestPaths/7.x - Dawntrail/MSQ/D-Shaaloani-HeritageFound1/4920_No Time for Tears.json index 86985831..ff3a5000 100644 --- a/QuestPaths/7.x - Dawntrail/MSQ/D-Shaaloani-HeritageFound1/4920_No Time for Tears.json +++ b/QuestPaths/7.x - Dawntrail/MSQ/D-Shaaloani-HeritageFound1/4920_No Time for Tears.json @@ -137,6 +137,15 @@ { "Sequence": 3, "Steps": [ + { + "Position": { + "X": -163.63573, + "Y": 45.171337, + "Z": 12.003954 + }, + "TerritoryId": 1185, + "InteractionType": "WalkTo" + }, { "DataId": 1047026, "Position": { diff --git a/QuestPaths/7.x - Dawntrail/MSQ/E-SolutionNine-HeritageFound2/4932_Embracing Oblivion.json b/QuestPaths/7.x - Dawntrail/MSQ/E-SolutionNine-HeritageFound2/4932_Embracing Oblivion.json index 0bdf93e8..c7d81787 100644 --- a/QuestPaths/7.x - Dawntrail/MSQ/E-SolutionNine-HeritageFound2/4932_Embracing Oblivion.json +++ b/QuestPaths/7.x - Dawntrail/MSQ/E-SolutionNine-HeritageFound2/4932_Embracing Oblivion.json @@ -55,7 +55,8 @@ "Z": 0.6866455 }, "TerritoryId": 1171, - "InteractionType": "Interact" + "InteractionType": "Interact", + "DelaySecondsAtStart": 3 } ] }, diff --git a/QuestPaths/7.x - Dawntrail/MSQ/E-SolutionNine-HeritageFound2/4935_Her People, Her Family.json b/QuestPaths/7.x - Dawntrail/MSQ/E-SolutionNine-HeritageFound2/4935_Her People, Her Family.json index 9de8ecae..033c1729 100644 --- a/QuestPaths/7.x - Dawntrail/MSQ/E-SolutionNine-HeritageFound2/4935_Her People, Her Family.json +++ b/QuestPaths/7.x - Dawntrail/MSQ/E-SolutionNine-HeritageFound2/4935_Her People, Her Family.json @@ -44,12 +44,14 @@ "Z": -117.162285 }, "TerritoryId": 1186, - "InteractionType": "WalkTo" + "InteractionType": "WalkTo", + "RestartNavigationIfCancelled": false }, { "TerritoryId": 1186, "InteractionType": "AttuneAethernetShard", - "AethernetShard": "[Solution Nine] Resolution" + "AethernetShard": "[Solution Nine] Resolution", + "DelaySecondsAtStart": 2 }, { "DataId": 1048073, 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 b80cade4..831ad356 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 @@ -27,7 +27,8 @@ "Z": 5.1162424 }, "TerritoryId": 1186, - "InteractionType": "WalkTo" + "InteractionType": "WalkTo", + "RestartNavigationIfCancelled": false }, { "DataId": 1048172, @@ -37,7 +38,8 @@ "Z": 9.201172 }, "TerritoryId": 1186, - "InteractionType": "Interact" + "InteractionType": "Interact", + "DelaySecondsAtStart": 2 } ] }, diff --git a/Questionable/Controller/Steps/Shared/AethernetShortcut.cs b/Questionable/Controller/Steps/Shared/AethernetShortcut.cs index bb39bd81..a1a066f0 100644 --- a/Questionable/Controller/Steps/Shared/AethernetShortcut.cs +++ b/Questionable/Controller/Steps/Shared/AethernetShortcut.cs @@ -19,7 +19,11 @@ namespace Questionable.Controller.Steps.Shared; internal static class AethernetShortcut { - internal sealed class Factory(MovementController movementController) + internal sealed class Factory( + MovementController movementController, + AetheryteData aetheryteData, + TerritoryData territoryData, + IClientState clientState) : ITaskFactory { public IEnumerable CreateAllTasks(Quest quest, QuestSequence sequence, QuestStep step) @@ -31,6 +35,14 @@ internal static class AethernetShortcut "Wait(navmesh ready)"); yield return new Task(step.AethernetShortcut.From, step.AethernetShortcut.To, step.SkipConditions?.AethernetShortcutIf ?? new()); + + if (AetheryteShortcut.MoveAwayFromAetheryteExecutor.AppliesTo(step.AethernetShortcut.To)) + { + yield return new WaitCondition.Task( + () => clientState.TerritoryType == aetheryteData.TerritoryIds[step.AethernetShortcut.To], + $"Wait(territory: {territoryData.GetNameAndId(aetheryteData.TerritoryIds[step.AethernetShortcut.To])})"); + yield return new AetheryteShortcut.MoveAwayFromAetheryte(step.AethernetShortcut.To); + } } } @@ -142,7 +154,7 @@ internal static class AethernetShortcut new(0, 8.442986f, -9), ]; - Vector3 closestPoint = nearbyPoints.MinBy(x => (playerPosition - x).Length()); + Vector3 closestPoint = nearbyPoints.MinBy(x => Vector3.Distance(playerPosition, x)); _moving = true; movementController.NavigateTo(EMovementType.Quest, (uint)Task.From, closestPoint, false, true, 0.25f); diff --git a/Questionable/Controller/Steps/Shared/AetheryteShortcut.cs b/Questionable/Controller/Steps/Shared/AetheryteShortcut.cs index c059df46..7f2a8fd0 100644 --- a/Questionable/Controller/Steps/Shared/AetheryteShortcut.cs +++ b/Questionable/Controller/Steps/Shared/AetheryteShortcut.cs @@ -1,9 +1,11 @@ using System; using System.Collections.Generic; +using System.IO; using System.Linq; using System.Numerics; using Dalamud.Plugin.Services; using Microsoft.Extensions.Logging; +using Questionable.Controller.Steps.Common; using Questionable.Controller.Utils; using Questionable.Data; using Questionable.Functions; @@ -15,7 +17,8 @@ namespace Questionable.Controller.Steps.Shared; internal static class AetheryteShortcut { - internal sealed class Factory(AetheryteData aetheryteData) : ITaskFactory + internal sealed class Factory(AetheryteData aetheryteData, TerritoryData territoryData, IClientState clientState) + : ITaskFactory { public IEnumerable CreateAllTasks(Quest quest, QuestSequence sequence, QuestStep step) { @@ -25,6 +28,15 @@ internal static class AetheryteShortcut yield return new Task(step, quest.Id, step.AetheryteShortcut.Value, aetheryteData.TerritoryIds[step.AetheryteShortcut.Value]); yield return new WaitAtEnd.WaitDelay(TimeSpan.FromSeconds(0.5)); + + if (MoveAwayFromAetheryteExecutor.AppliesTo(step.AetheryteShortcut.Value) && + step.AethernetShortcut?.From != step.AetheryteShortcut.Value) + { + yield return new WaitCondition.Task( + () => clientState.TerritoryType == aetheryteData.TerritoryIds[step.AetheryteShortcut.Value], + $"Wait(territory: {territoryData.GetNameAndId(aetheryteData.TerritoryIds[step.AetheryteShortcut.Value])})"); + yield return new MoveAwayFromAetheryte(step.AetheryteShortcut.Value); + } } } @@ -206,4 +218,47 @@ internal static class AetheryteShortcut } } } + + internal sealed record MoveAwayFromAetheryte(EAetheryteLocation TargetAetheryte) : ITask + { + public override string ToString() => $"MoveAway({TargetAetheryte})"; + } + + internal sealed class MoveAwayFromAetheryteExecutor( + MoveTo.MoveExecutor moveExecutor, + AetheryteData aetheryteData, + IClientState clientState) : TaskExecutor + { + private static readonly Dictionary> AetherytesToMoveFrom = new() + { + { + EAetheryteLocation.SolutionNine, + [ + new(0f, 8.8f, 15.5f), + new(0f, 8.8f, -15.5f), + new(15.5f, 8.8f, 0f), + new(-15.5f, 8.8f, 0f) + ] + } + }; + + public static bool AppliesTo(EAetheryteLocation location) => AetherytesToMoveFrom.ContainsKey(location); + + protected override bool Start() + { + // only relevant if we're actually near the s9 aetheryte at the end + Vector3 playerPosition = clientState.LocalPlayer!.Position; + if (aetheryteData.CalculateDistance(playerPosition, clientState.TerritoryType, Task.TargetAetheryte) >= 20) + return false; + + Vector3 closestPoint = AetherytesToMoveFrom[Task.TargetAetheryte] + .MinBy(x => Vector3.Distance(x, playerPosition)); + MoveTo.MoveTask task = new MoveTo.MoveTask(aetheryteData.TerritoryIds[Task.TargetAetheryte], + closestPoint, Mount: false, StopDistance: 0.25f, DisableNavmesh: true, + InteractionType: EInteractionType.None, RestartNavigation: false); + return moveExecutor.Start(task); + } + + public override ETaskResult Update() => moveExecutor.Update(); + } } diff --git a/Questionable/QuestionablePlugin.cs b/Questionable/QuestionablePlugin.cs index 47b5cb96..acee9943 100644 --- a/Questionable/QuestionablePlugin.cs +++ b/Questionable/QuestionablePlugin.cs @@ -129,7 +129,8 @@ public sealed class QuestionablePlugin : IDalamudPlugin private static void AddTaskFactories(ServiceCollection serviceCollection) { // individual tasks - serviceCollection.AddTaskExecutor(); + serviceCollection + .AddTaskExecutor(); serviceCollection.AddTaskExecutor(); serviceCollection.AddTaskExecutor(); serviceCollection.AddTaskExecutor(); @@ -138,13 +139,16 @@ public sealed class QuestionablePlugin : IDalamudPlugin // task factories serviceCollection - .AddTaskFactoryAndExecutor(); + .AddTaskFactoryAndExecutor(); serviceCollection.AddTaskFactory(); serviceCollection.AddTaskFactoryAndExecutor(); serviceCollection.AddTaskExecutor(); serviceCollection .AddTaskFactoryAndExecutor(); + serviceCollection + .AddTaskExecutor(); serviceCollection .AddTaskFactoryAndExecutor(); serviceCollection @@ -156,7 +160,8 @@ public sealed class QuestionablePlugin : IDalamudPlugin serviceCollection.AddTaskExecutor(); serviceCollection.AddTaskExecutor(); - serviceCollection.AddTaskFactoryAndExecutor(); + serviceCollection + .AddTaskFactoryAndExecutor(); serviceCollection .AddTaskFactoryAndExecutor(); serviceCollection @@ -189,7 +194,8 @@ public sealed class QuestionablePlugin : IDalamudPlugin TurnInDelivery.SatisfactionSupplyTurnIn>(); serviceCollection.AddTaskFactory(); - serviceCollection.AddTaskExecutor(); + serviceCollection + .AddTaskExecutor(); serviceCollection.AddTaskExecutor(); serviceCollection.AddTaskExecutor(); serviceCollection.AddTaskExecutor(); From 2aa14db916a4720355a6bcca4f7125b4b7f23dab Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Fri, 20 Sep 2024 19:42:49 +0200 Subject: [PATCH 292/450] Log information about tasks after interruption --- .../7.x - Dawntrail/MSQ/F-Living Memory/4959_Dawntrail.json | 1 + Questionable/Controller/MiniTaskController.cs | 4 ++++ 2 files changed, 5 insertions(+) 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 68e4c7bf..f5798feb 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 @@ -33,6 +33,7 @@ }, "TerritoryId": 1192, "InteractionType": "WalkTo", + "AetheryteShortcut": "Living Memory - Leynode Mnemo", "$": "Leynode Mnemo to Meso Terminal waypoint", "SkipConditions": { "StepIf": { diff --git a/Questionable/Controller/MiniTaskController.cs b/Questionable/Controller/MiniTaskController.cs index 12eb1660..2a570eeb 100644 --- a/Questionable/Controller/MiniTaskController.cs +++ b/Questionable/Controller/MiniTaskController.cs @@ -167,5 +167,9 @@ internal abstract class MiniTaskController } else _taskQueue.InterruptWith([new WaitAtEnd.WaitDelay()]); + + _logger.LogInformation("Remaining tasks after interruption:"); + foreach (ITask task in _taskQueue.RemainingTasks) + _logger.LogInformation("- {TaskName}", task); } } From d4a9bb5f9b57a73e566e034233e415ea36b49afc Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Fri, 20 Sep 2024 19:43:19 +0200 Subject: [PATCH 293/450] Avoid duplicate quests in priority window --- Questionable/Windows/PriorityWindow.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Questionable/Windows/PriorityWindow.cs b/Questionable/Windows/PriorityWindow.cs index 912d7b6d..9165eddf 100644 --- a/Questionable/Windows/PriorityWindow.cs +++ b/Questionable/Windows/PriorityWindow.cs @@ -112,7 +112,7 @@ internal sealed class PriorityWindow : LWindow foreach (var quest in foundQuests) { - if (quest.Info.IsMainScenarioQuest || _questController.ManualPriorityQuests.Contains(quest)) + if (quest.Info.IsMainScenarioQuest || _questController.ManualPriorityQuests.Any(x => x.Id == quest.Id)) continue; bool addThis = ImGui.Selectable(quest.Info.Name); From 66e9a71847025fd73e3a9b184cb5d30d4c1b908c Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Fri, 20 Sep 2024 19:56:35 +0200 Subject: [PATCH 294/450] Add teleports to custom delivery unlocks --- .../Custom Deliveries/Zhloe/1551_Arms Wide Open.json | 8 +++++++- .../Custom Deliveries/Adkiragh/2758_Purbol Rain.json | 8 +++++++- .../Adkiragh/3177_Between a Rock and the Hard Place.json | 8 +++++++- .../Custom Deliveries/Anden/4715_That's So Anden.json | 8 +++++++- 4 files changed, 28 insertions(+), 4 deletions(-) diff --git a/QuestPaths/3.x - Heavensward/Custom Deliveries/Zhloe/1551_Arms Wide Open.json b/QuestPaths/3.x - Heavensward/Custom Deliveries/Zhloe/1551_Arms Wide Open.json index 5ecce795..e59a26ce 100644 --- a/QuestPaths/3.x - Heavensward/Custom Deliveries/Zhloe/1551_Arms Wide Open.json +++ b/QuestPaths/3.x - Heavensward/Custom Deliveries/Zhloe/1551_Arms Wide Open.json @@ -13,7 +13,13 @@ "Z": 42.98462 }, "TerritoryId": 478, - "InteractionType": "AcceptQuest" + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Idyllshire", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } } ] }, diff --git a/QuestPaths/4.x - Stormblood/Custom Deliveries/Adkiragh/2758_Purbol Rain.json b/QuestPaths/4.x - Stormblood/Custom Deliveries/Adkiragh/2758_Purbol Rain.json index 3ff30dc9..b26a2d25 100644 --- a/QuestPaths/4.x - Stormblood/Custom Deliveries/Adkiragh/2758_Purbol Rain.json +++ b/QuestPaths/4.x - Stormblood/Custom Deliveries/Adkiragh/2758_Purbol Rain.json @@ -13,7 +13,13 @@ "Z": 285.60303 }, "TerritoryId": 622, - "InteractionType": "AcceptQuest" + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Azim Steppe - Reunion", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } } ] }, diff --git a/QuestPaths/4.x - Stormblood/Custom Deliveries/Adkiragh/3177_Between a Rock and the Hard Place.json b/QuestPaths/4.x - Stormblood/Custom Deliveries/Adkiragh/3177_Between a Rock and the Hard Place.json index 8445dfd6..b9a89cc0 100644 --- a/QuestPaths/4.x - Stormblood/Custom Deliveries/Adkiragh/3177_Between a Rock and the Hard Place.json +++ b/QuestPaths/4.x - Stormblood/Custom Deliveries/Adkiragh/3177_Between a Rock and the Hard Place.json @@ -13,7 +13,13 @@ "Z": 42.98462 }, "TerritoryId": 478, - "InteractionType": "AcceptQuest" + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Idyllshire", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } } ] }, diff --git a/QuestPaths/6.x - Endwalker/Custom Deliveries/Anden/4715_That's So Anden.json b/QuestPaths/6.x - Endwalker/Custom Deliveries/Anden/4715_That's So Anden.json index aaae0caf..59501265 100644 --- a/QuestPaths/6.x - Endwalker/Custom Deliveries/Anden/4715_That's So Anden.json +++ b/QuestPaths/6.x - Endwalker/Custom Deliveries/Anden/4715_That's So Anden.json @@ -13,7 +13,13 @@ "Z": 6.8207397 }, "TerritoryId": 819, - "InteractionType": "AcceptQuest" + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Crystarium", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } } ] }, From 2f8c72cbead6ed95cb4935ce35a8ab5f510df9e9 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Fri, 20 Sep 2024 20:12:58 +0200 Subject: [PATCH 295/450] Replace outdated prompt in 'The Claw in the Dark' --- .../Raid Quests/4961_The Claw in the Dark.json | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) 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 185f3bff..cb804c97 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 @@ -17,19 +17,12 @@ }, "TerritoryId": 1186, "InteractionType": "Interact", - "DialogueChoices": [ - { - "Type": "YesNo", - "ExcelSheet": "quest/049/KinGra101_04960", - "Prompt": "TEXT_KINGRA101_04960_SYSTEM_100_030", - "Yes": true - } - ], "AetheryteShortcut": "Solution Nine", "AethernetShortcut": [ "[Solution Nine] Aetheryte Plaza", "[Solution Nine] The Arcadion" ], + "TargetTerritoryId": 1224, "SkipConditions": { "AetheryteShortcutIf": { "InTerritory": [1224] From e1cbdbf951d52ea14dbe8d3ee53dc655510a5368 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Fri, 20 Sep 2024 20:25:28 +0200 Subject: [PATCH 296/450] Fix aetheryte location in 'Defned by Loss' --- .../Role Quests/Tank/3245_Defined by Loss.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/QuestPaths/5.x - Shadowbringers/Role Quests/Tank/3245_Defined by Loss.json b/QuestPaths/5.x - Shadowbringers/Role Quests/Tank/3245_Defined by Loss.json index 9c684083..900f8600 100644 --- a/QuestPaths/5.x - Shadowbringers/Role Quests/Tank/3245_Defined by Loss.json +++ b/QuestPaths/5.x - Shadowbringers/Role Quests/Tank/3245_Defined by Loss.json @@ -96,7 +96,8 @@ "Z": -197.58272 }, "TerritoryId": 815, - "InteractionType": "WalkTo" + "InteractionType": "WalkTo", + "AetheryteShortcut": "Amh Araeng - Mord Souq" }, { "DataId": 1029898, @@ -106,8 +107,7 @@ "Z": -196.30737 }, "TerritoryId": 815, - "InteractionType": "Interact", - "AetheryteShortcut": "Amh Araeng - Mord Souq" + "InteractionType": "Interact" } ] }, From cd16cf93a3d39fdb533a0996e9866a50d357f76e Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Fri, 20 Sep 2024 21:46:10 +0200 Subject: [PATCH 297/450] Fix some EventHandler related code if in firmament --- Questionable/Controller/GameUi/InteractionUiController.cs | 4 ++-- Questionable/Controller/GatheringController.cs | 3 +-- Questionable/Controller/Steps/Leves/InitiateLeve.cs | 3 +-- 3 files changed, 4 insertions(+), 6 deletions(-) diff --git a/Questionable/Controller/GameUi/InteractionUiController.cs b/Questionable/Controller/GameUi/InteractionUiController.cs index 99b2dd51..e94a5716 100644 --- a/Questionable/Controller/GameUi/InteractionUiController.cs +++ b/Questionable/Controller/GameUi/InteractionUiController.cs @@ -517,8 +517,8 @@ internal sealed class InteractionUiController : IDisposable _logger.LogTrace("Prompt: '{Prompt}'", actualPrompt); var director = UIState.Instance()->DirectorTodo.Director; - if (director != null && director->EventHandlerInfo != null && - director->EventHandlerInfo->EventId.ContentId == EventHandlerType.GatheringLeveDirector && + if (director != null && + director->Info.EventId.ContentId == EventHandlerType.GatheringLeveDirector && director->Sequence == 254) { // just close the dialogue for 'do you want to return to next settlement', should prolly be different for diff --git a/Questionable/Controller/GatheringController.cs b/Questionable/Controller/GatheringController.cs index f97a9b37..4af7ede2 100644 --- a/Questionable/Controller/GatheringController.cs +++ b/Questionable/Controller/GatheringController.cs @@ -135,8 +135,7 @@ internal sealed unsafe class GatheringController : MiniTaskControllerDirectorTodo.Director; - if (director != null && director->EventHandlerInfo != null && - director->EventHandlerInfo->EventId.ContentId == EventHandlerType.GatheringLeveDirector) + if (director != null && director->Info.EventId.ContentId == EventHandlerType.GatheringLeveDirector) { if (director->Sequence == 254) return; diff --git a/Questionable/Controller/Steps/Leves/InitiateLeve.cs b/Questionable/Controller/Steps/Leves/InitiateLeve.cs index 4014b2fb..ab584cef 100644 --- a/Questionable/Controller/Steps/Leves/InitiateLeve.cs +++ b/Questionable/Controller/Steps/Leves/InitiateLeve.cs @@ -44,8 +44,7 @@ internal static class InitiateLeve { var director = UIState.Instance()->DirectorTodo.Director; if (director != null && - director->EventHandlerInfo != null && - director->EventHandlerInfo->EventId.ContentId == EventHandlerType.GatheringLeveDirector && + director->Info.EventId.ContentId == EventHandlerType.GatheringLeveDirector && director->ContentId == Task.ElementId.Value) return ETaskResult.SkipRemainingTasksForStep; From 8c77cb7e956a22ba486f2cce05bea0def5a030b7 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Fri, 20 Sep 2024 21:46:27 +0200 Subject: [PATCH 298/450] Add clear button to priority window --- Questionable/Windows/PriorityWindow.cs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Questionable/Windows/PriorityWindow.cs b/Questionable/Windows/PriorityWindow.cs index 9165eddf..08bd35e5 100644 --- a/Questionable/Windows/PriorityWindow.cs +++ b/Questionable/Windows/PriorityWindow.cs @@ -72,6 +72,11 @@ internal sealed class PriorityWindow : LWindow ImGui.BeginDisabled(_questController.ManualPriorityQuests.Count == 0); if (ImGuiComponents.IconButtonWithText(FontAwesomeIcon.Upload, "Export to Clibpoard")) ExportToClipboard(); + if (ImGuiComponents.IconButtonWithText(FontAwesomeIcon.Check, "Remove finished Quests")) + _questController.ManualPriorityQuests.RemoveAll(q => _questFunctions.IsQuestComplete(q.Id)); + ImGui.SameLine(); + if (ImGuiComponents.IconButtonWithText(FontAwesomeIcon.Trash, "Clear")) + _questController.ManualPriorityQuests.Clear(); ImGui.EndDisabled(); ImGui.Spacing(); From e72a57fff4534272c58602a7e80cd3331846031c Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Fri, 20 Sep 2024 21:46:48 +0200 Subject: [PATCH 299/450] Fix water transition in 'The Elixir of Life' --- .../Custom Deliveries/Kurenai/2706_The Elixir of Life.json | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/QuestPaths/4.x - Stormblood/Custom Deliveries/Kurenai/2706_The Elixir of Life.json b/QuestPaths/4.x - Stormblood/Custom Deliveries/Kurenai/2706_The Elixir of Life.json index b41673c8..71256d76 100644 --- a/QuestPaths/4.x - Stormblood/Custom Deliveries/Kurenai/2706_The Elixir of Life.json +++ b/QuestPaths/4.x - Stormblood/Custom Deliveries/Kurenai/2706_The Elixir of Life.json @@ -155,7 +155,8 @@ }, "TerritoryId": 613, "InteractionType": "WalkTo", - "Mount": true + "Mount": true, + "RestartNavigationIfCancelled": false }, { "Position": { @@ -164,7 +165,9 @@ "Z": 79.0077 }, "TerritoryId": 613, - "InteractionType": "WalkTo" + "InteractionType": "WalkTo", + "DisableNavmesh": true, + "DelaySecondsAtStart": 2 }, { "Position": { From 4b75388ddcdd4400b5bafa55373efe84b7d5e715 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Fri, 20 Sep 2024 21:52:46 +0200 Subject: [PATCH 300/450] Fix certain kinds of interactions --- Directory.Build.targets | 2 +- .../Controller/Steps/Interactions/Interact.cs | 49 ++++++++++++++++--- .../QuestComponents/CreationUtilsComponent.cs | 24 ++++++--- 3 files changed, 60 insertions(+), 15 deletions(-) diff --git a/Directory.Build.targets b/Directory.Build.targets index abb1feac..aac0b377 100644 --- a/Directory.Build.targets +++ b/Directory.Build.targets @@ -1,5 +1,5 @@ - 3.5 + 3.6 diff --git a/Questionable/Controller/Steps/Interactions/Interact.cs b/Questionable/Controller/Steps/Interactions/Interact.cs index 5dd28d20..1b7caea3 100644 --- a/Questionable/Controller/Steps/Interactions/Interact.cs +++ b/Questionable/Controller/Steps/Interactions/Interact.cs @@ -72,9 +72,10 @@ internal static class Interact GameFunctions gameFunctions, ICondition condition, ILogger logger) - : TaskExecutor + : TaskExecutor, IConditionChangeAware { private bool _needsUnmount; + private EInteractionState _interactionState = EInteractionState.None; private DateTime _continueAt = DateTime.MinValue; public Quest? Quest => Task.Quest; @@ -111,9 +112,7 @@ internal static class Interact if (gameObject.IsTargetable && HasAnyMarker(gameObject)) { - ProgressContext = - InteractionProgressContext.FromActionUseOrDefault(() => gameFunctions.InteractWith(gameObject)); - _continueAt = DateTime.Now.AddSeconds(0.5); + TriggerInteraction(gameObject); return true; } @@ -148,7 +147,7 @@ internal static class Interact } else { - if (ProgressContext != null && ProgressContext.WasSuccessful()) + if (ProgressContext != null && (ProgressContext.WasSuccessful() || _interactionState == EInteractionState.InteractionConfirmed)) return ETaskResult.TaskComplete; if (InteractionType == EInteractionType.Gather && condition[ConditionFlag.Gathering]) @@ -159,12 +158,24 @@ internal static class Interact if (gameObject == null || !gameObject.IsTargetable || !HasAnyMarker(gameObject)) return ETaskResult.StillRunning; - ProgressContext = - InteractionProgressContext.FromActionUseOrDefault(() => gameFunctions.InteractWith(gameObject)); - _continueAt = DateTime.Now.AddSeconds(0.5); + TriggerInteraction(gameObject); return ETaskResult.StillRunning; } + private void TriggerInteraction(IGameObject gameObject) + { + ProgressContext = + InteractionProgressContext.FromActionUseOrDefault(() => + { + if (gameFunctions.InteractWith(gameObject)) + _interactionState = EInteractionState.InteractionTriggered; + else + _interactionState = EInteractionState.None; + return _interactionState != EInteractionState.None; + }); + _continueAt = DateTime.Now.AddSeconds(0.5); + } + private unsafe bool HasAnyMarker(IGameObject gameObject) { if (Task.SkipMarkerCheck || gameObject.ObjectKind != ObjectKind.EventNpc) @@ -173,5 +184,27 @@ internal static class Interact var gameObjectStruct = (FFXIVClientStructs.FFXIV.Client.Game.Object.GameObject*)gameObject.Address; return gameObjectStruct->NamePlateIconId != 0; } + + public void OnConditionChange(ConditionFlag flag, bool value) + { + if (ProgressContext != null && (ProgressContext.WasInterrupted() || ProgressContext.WasSuccessful())) + return; + + logger.LogDebug("Condition change: {Flag} = {Value}", flag, value); + if (_interactionState == EInteractionState.InteractionTriggered && + flag is ConditionFlag.OccupiedInQuestEvent or ConditionFlag.OccupiedInEvent && + value) + { + logger.LogInformation("Interaction was most likely triggered"); + _interactionState = EInteractionState.InteractionConfirmed; + } + } + + private enum EInteractionState + { + None, + InteractionTriggered, + InteractionConfirmed, + } } } diff --git a/Questionable/Windows/QuestComponents/CreationUtilsComponent.cs b/Questionable/Windows/QuestComponents/CreationUtilsComponent.cs index 715bc089..d8faefde 100644 --- a/Questionable/Windows/QuestComponents/CreationUtilsComponent.cs +++ b/Questionable/Windows/QuestComponents/CreationUtilsComponent.cs @@ -120,7 +120,8 @@ internal sealed class CreationUtilsComponent #endif #if false - unsafe { + unsafe + { var questManager = QuestManager.Instance(); if (questManager != null) { @@ -134,7 +135,8 @@ internal sealed class CreationUtilsComponent #endif #if false - unsafe { + unsafe + { var director = UIState.Instance()->DirectorTodo.Director; if (director != null) { @@ -143,15 +145,25 @@ internal sealed class CreationUtilsComponent ImGui.Text($"Ico: {director->IconId}"); if (director->EventHandlerInfo != null) { - ImGui.Text($" EHI CI: {director->EventHandlerInfo->EventId.ContentId}"); - ImGui.Text($" EHI EI: {director->EventHandlerInfo->EventId.Id}"); - ImGui.Text($" EHI EEI: {director->EventHandlerInfo->EventId.EntryId}"); - ImGui.Text($" EHI F: {director->EventHandlerInfo->Flags}"); + ImGui.Text($" EHI CI: {director->Info.EventId.ContentId}"); + ImGui.Text($" EHI EI: {director->Info.EventId.Id}"); + ImGui.Text($" EHI EEI: {director->Info.EventId.EntryId}"); + ImGui.Text($" EHI F: {director->Info.Flags}"); } } } #endif +#if false + unsafe + { + var actionManager = ActionManager.Instance(); + ImGui.Text( + $"A1: {actionManager->CastActionId} ({actionManager->LastUsedActionSequence} → {actionManager->LastHandledActionSequence})"); + ImGui.Text($"A2: {actionManager->CastTimeElapsed} / {actionManager->CastTimeTotal}"); + } +#endif + if (_targetManager.Target != null) { DrawTargetDetails(_targetManager.Target); From 0c36dd324f088521bbf3e1fe6eecda3aff0f9d06 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sat, 21 Sep 2024 00:36:20 +0200 Subject: [PATCH 301/450] Update gathering location --- .../Il Mheg/918_Voeburtenburg_MIN.json | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/GatheringPaths/5.x - Shadowbringers/Il Mheg/918_Voeburtenburg_MIN.json b/GatheringPaths/5.x - Shadowbringers/Il Mheg/918_Voeburtenburg_MIN.json index 20c02940..07ca30f3 100644 --- a/GatheringPaths/5.x - Shadowbringers/Il Mheg/918_Voeburtenburg_MIN.json +++ b/GatheringPaths/5.x - Shadowbringers/Il Mheg/918_Voeburtenburg_MIN.json @@ -45,8 +45,10 @@ "Y": 58.56588, "Z": -533.6083 }, - "MinimumAngle": 155, - "MaximumAngle": 325 + "MinimumAngle": 185, + "MaximumAngle": 225, + "MinimumDistance": 2, + "MaximumDistance": 3 } ] } @@ -131,4 +133,4 @@ ] } ] -} +} \ No newline at end of file From f1698d46526463ad9ee15b5c79411c52dd7dca29 Mon Sep 17 00:00:00 2001 From: kaiser Date: Sat, 21 Sep 2024 14:32:33 +1000 Subject: [PATCH 302/450] fix: getting stuck when starting quests or finishing, if we are not in the same territory. --- .../Dungeons/5013_It Belongs in a Museum.json | 23 ++++++++++-- ...4_Something Stray in the Neighborhood.json | 36 ++++++++++++++++--- 2 files changed, 52 insertions(+), 7 deletions(-) diff --git a/QuestPaths/7.x - Dawntrail/Unlocks/Dungeons/5013_It Belongs in a Museum.json b/QuestPaths/7.x - Dawntrail/Unlocks/Dungeons/5013_It Belongs in a Museum.json index 1126461b..c2e1939e 100644 --- a/QuestPaths/7.x - Dawntrail/Unlocks/Dungeons/5013_It Belongs in a Museum.json +++ b/QuestPaths/7.x - Dawntrail/Unlocks/Dungeons/5013_It Belongs in a Museum.json @@ -13,7 +13,13 @@ "Z": 75.66943 }, "TerritoryId": 1185, - "InteractionType": "AcceptQuest" + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Tuliyollal", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } } ] }, @@ -77,7 +83,12 @@ }, "TerritoryId": 1187, "InteractionType": "Interact", - "AetheryteShortcut": "Urqopacha - Worlar's Echo" + "AetheryteShortcut": "Urqopacha - Worlar's Echo", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } } ] }, @@ -92,7 +103,13 @@ "Z": 145.00647 }, "TerritoryId": 1187, - "InteractionType": "CompleteQuest" + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Urqopacha - Worlar's Echo", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } } ] } 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 891a4744..235b4349 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 @@ -16,7 +16,17 @@ "Z": 198.07727 }, "TerritoryId": 1186, - "InteractionType": "AcceptQuest" + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Solution Nine", + "AethernetShortcut": [ + "[Solution Nine] Aetheryte Plaza", + "[Solution Nine] Neon Stein" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } } ] }, @@ -31,7 +41,13 @@ "Z": 761.68445 }, "TerritoryId": 1192, - "InteractionType": "Interact" + "InteractionType": "Interact", + "AetheryteShortcut": "Living Memory - Leynode Mnemo", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } } ] }, @@ -63,7 +79,13 @@ }, "TerritoryId": 1192, "InteractionType": "Interact", - "Fly": true + "Fly": true, + "AetheryteShortcut": "Living Memory - Leynode Mnemo", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } } ] }, @@ -90,7 +112,13 @@ "StopDistance": 7, "TerritoryId": 1192, "InteractionType": "Interact", - "Fly": true + "Fly": true, + "AetheryteShortcut": "Living Memory - Leynode Mnemo", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } } ] }, From d9d95f17a880bad52d11546c7c1ae6578805b031 Mon Sep 17 00:00:00 2001 From: kaiser Date: Sat, 21 Sep 2024 14:54:05 +1000 Subject: [PATCH 303/450] chore: add fly when finishing quest, the completeQuest is in narnia. --- .../Unlocks/Dungeons/5013_It Belongs in a Museum.json | 1 + 1 file changed, 1 insertion(+) diff --git a/QuestPaths/7.x - Dawntrail/Unlocks/Dungeons/5013_It Belongs in a Museum.json b/QuestPaths/7.x - Dawntrail/Unlocks/Dungeons/5013_It Belongs in a Museum.json index c2e1939e..24c962b3 100644 --- a/QuestPaths/7.x - Dawntrail/Unlocks/Dungeons/5013_It Belongs in a Museum.json +++ b/QuestPaths/7.x - Dawntrail/Unlocks/Dungeons/5013_It Belongs in a Museum.json @@ -105,6 +105,7 @@ "TerritoryId": 1187, "InteractionType": "CompleteQuest", "AetheryteShortcut": "Urqopacha - Worlar's Echo", + "Fly": true, "SkipConditions": { "AetheryteShortcutIf": { "InSameTerritory": true From 189087a85bd481f3ad44f9ad66e195bcf7593655 Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Thu, 19 Sep 2024 02:10:23 +0800 Subject: [PATCH 304/450] Added new daily quests: - Getting the Shaft - Breath of Fresh Air - Not for the Faint of Heart --- .../Vath/Dailies/2261_Getting the Shaft.json | 79 ++++++++++++ .../Dailies/2262_Breath of Fresh Air.json | 119 ++++++++++++++++++ .../2280_Not for the Faint of Heart.json | 118 +++++++++++++++++ 3 files changed, 316 insertions(+) create mode 100644 QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2261_Getting the Shaft.json create mode 100644 QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2262_Breath of Fresh Air.json create mode 100644 QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2280_Not for the Faint of Heart.json 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 new file mode 100644 index 00000000..a509b5de --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2261_Getting the Shaft.json @@ -0,0 +1,79 @@ +{ + "$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": 2006883, + "Position": { + "X": 31.418213, + "Y": -65.32391, + "Z": 111.74182 + }, + "TerritoryId": 398, + "InteractionType": "Combat", + "Fly": true, + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [5550] + }, + { + "DataId": 2006882, + "Position": { + "X": 307.05725, + "Y": -66.54462, + "Z": 163.43933 + }, + "TerritoryId": 398, + "InteractionType": "Combat", + "Fly": true, + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [5550] + }, + { + "DataId": 2006881, + "Position": { + "X": 352.25452, + "Y": -51.07196, + "Z": -46.982605 + }, + "TerritoryId": 398, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1016803, + "Position": { + "X": 57.297607, + "Y": -47.842846, + "Z": -174.63953 + }, + "TerritoryId": 398, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} 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 new file mode 100644 index 00000000..a1b358a6 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2262_Breath of Fresh Air.json @@ -0,0 +1,119 @@ +{ + "$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": 2006886, + "Position": { + "X": 237.65918, + "Y": -71.45807, + "Z": 99.01575 + }, + "TerritoryId": 398, + "InteractionType": "Interact", + "Fly": true + }, + { + "DataId": 2006885, + "Position": { + "X": 284.5349, + "Y": -67.61273, + "Z": 83.878784 + }, + "TerritoryId": 398, + "InteractionType": "Interact", + "Fly": true + }, + { + "DataId": 2006884, + "Position": { + "X": 294.94165, + "Y": -68.92505, + "Z": 129.19812 + }, + "TerritoryId": 398, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1016803, + "Position": { + "X": 57.297607, + "Y": -47.842846, + "Z": -174.63953 + }, + "TerritoryId": 398, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1011917, + "Position": { + "X": 535.30164, + "Y": -51.340645, + "Z": 65.293335 + }, + "TerritoryId": 398, + "InteractionType": "Interact", + "Fly": true, + "AetheryteShortcut": "The Dravanian Forelands - Tailfeather" + }, + { + "DataId": 1011922, + "Position": { + "X": 448.56934, + "Y": -51.141407, + "Z": 108.93408 + }, + "TerritoryId": 398, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1016803, + "Position": { + "X": 57.297607, + "Y": -47.842846, + "Z": -174.63953 + }, + "TerritoryId": 398, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} 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 new file mode 100644 index 00000000..e1d7ae5d --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2280_Not for the Faint of Heart.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": 1016879, + "Position": { + "X": -412.16144, + "Y": 2.644555, + "Z": -145.1286 + }, + "TerritoryId": 398, + "InteractionType": "Interact", + "Fly": true, + "AetheryteShortcut": "The Dravanian Forelands - Anyx Trine" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2006950, + "Position": { + "X": -450.9499, + "Y": -7.7058716, + "Z": -222.61395 + }, + "TerritoryId": 398, + "InteractionType": "Interact", + "Fly": true, + "Land": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1016879, + "Position": { + "X": -412.16144, + "Y": 2.644555, + "Z": -145.1286 + }, + "TerritoryId": 398, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 2006951, + "Position": { + "X": -388.35742, + "Y": -10.238831, + "Z": -268.5741 + }, + "TerritoryId": 398, + "InteractionType": "Interact", + "Fly": true, + "Land": true + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1016879, + "Position": { + "X": -412.16144, + "Y": 2.644555, + "Z": -145.1286 + }, + "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 + } + ] + } + ] +} From f30b6792bf33f14111d30be6dd5716def4be19bc Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Fri, 20 Sep 2024 20:05:17 +0800 Subject: [PATCH 305/450] Added the following daily quests: - A Long Shot - Where the Silver Dew Grows - The Caelumtree Wine Spree --- .../Vath/Dailies/2266_A Long Shot.json | 109 ++++++++++++++++++ .../2267_Where the Silver Dew Grows.json | 91 +++++++++++++++ .../2268_The Caelumtree Wine Spree.json | 91 +++++++++++++++ 3 files changed, 291 insertions(+) create mode 100644 QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2266_A Long Shot.json create mode 100644 QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2267_Where the Silver Dew Grows.json create mode 100644 QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2268_The Caelumtree Wine Spree.json 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 new file mode 100644 index 00000000..4d1ca779 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2266_A Long Shot.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": 1016803, + "Position": { + "X": 57.297607, + "Y": -47.842846, + "Z": -174.63953 + }, + "TerritoryId": 398, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2006903, + "Position": { + "X": 20.004517, + "Y": -84.00098, + "Z": 282.15454 + }, + "TerritoryId": 398, + "InteractionType": "Interact", + "Fly": true + }, + { + "DataId": 2006904, + "Position": { + "X": 52.68933, + "Y": -100.572266, + "Z": 317.1283 + }, + "TerritoryId": 398, + "InteractionType": "Interact", + "Mount": true + }, + { + "DataId": 2006905, + "Position": { + "X": 6.301941, + "Y": -100.206055, + "Z": 351.43042 + }, + "TerritoryId": 398, + "InteractionType": "Interact", + "Mount": true + }, + { + "DataId": 2006902, + "Position": { + "X": -317.49445, + "Y": -80.55243, + "Z": 632.59326 + }, + "TerritoryId": 398, + "InteractionType": "Interact", + "Fly": true + }, + { + "DataId": 2006901, + "Position": { + "X": -336.96503, + "Y": -80.55243, + "Z": 655.08496 + }, + "TerritoryId": 398, + "InteractionType": "Interact", + "Mount": true + }, + { + "DataId": 2006900, + "Position": { + "X": -379.75128, + "Y": -75.21173, + "Z": 669.2759 + }, + "TerritoryId": 398, + "InteractionType": "Interact", + "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" + } + ] + } + ] +} 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 new file mode 100644 index 00000000..78bfc835 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2267_Where the Silver Dew Grows.json @@ -0,0 +1,91 @@ +{ + "$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": 2006909, + "Position": { + "X": -124.37634, + "Y": -86.07617, + "Z": 763.6987 + }, + "TerritoryId": 398, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [5548], + "Fly": true + }, + { + "DataId": 2006906, + "Position": { + "X": -178.51532, + "Y": -86.167725, + "Z": 775.845 + }, + "TerritoryId": 398, + "InteractionType": "Interact", + "Fly": true + }, + { + "DataId": 2006908, + "Position": { + "X": -305.745, + "Y": -68.13159, + "Z": 812.7717 + }, + "TerritoryId": 398, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [5548], + "Fly": true + }, + { + "DataId": 2006907, + "Position": { + "X": -303.36462, + "Y": -80.52191, + "Z": 734.15735 + }, + "TerritoryId": 398, + "InteractionType": "Interact", + "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" + } + ] + } + ] +} 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 new file mode 100644 index 00000000..f2ce7b2e --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2268_The Caelumtree Wine Spree.json @@ -0,0 +1,91 @@ +{ + "$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": 2006913, + "Position": { + "X": 566.7964, + "Y": -20.553955, + "Z": -530.2052 + }, + "TerritoryId": 398, + "InteractionType": "Interact", + "Fly": true + }, + { + "DataId": 2006914, + "Position": { + "X": 595.3917, + "Y": -20.187744, + "Z": -547.4785 + }, + "TerritoryId": 398, + "InteractionType": "Interact", + "Fly": true + }, + { + "DataId": 2006912, + "Position": { + "X": 639.8259, + "Y": -19.60791, + "Z": -588.098 + }, + "TerritoryId": 398, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1016803, + "Position": { + "X": 57.297607, + "Y": -47.842846, + "Z": -174.63953 + }, + "TerritoryId": 398, + "InteractionType": "Interact", + "Fly": true, + "AetheryteShortcut": "The Dravanian Forelands - Anyx Trine" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1016855, + "Position": { + "X": 74.906494, + "Y": -48, + "Z": -175.67712 + }, + "TerritoryId": 398, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} From 1d3b9a94260c19df3dfdf66ee55d9ae51c9f9605 Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Fri, 20 Sep 2024 23:51:15 +0800 Subject: [PATCH 306/450] Added the following daily quests: - Too Much to Bear - The Foodstuff of Champions --- .../Vath/Dailies/2264_Too Much to Bear.json | 80 +++++++++++++ .../2265_The Foodstuff of Champions.json | 109 ++++++++++++++++++ 2 files changed, 189 insertions(+) create mode 100644 QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2264_Too Much to Bear.json create mode 100644 QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2265_The Foodstuff of Champions.json 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 new file mode 100644 index 00000000..06661865 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2264_Too Much to Bear.json @@ -0,0 +1,80 @@ +{ + "$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": 2006872, + "Position": { + "X": 333.82153, + "Y": -47.53192, + "Z": -331.53284 + }, + "TerritoryId": 398, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [5546], + "Fly": true + }, + { + "DataId": 2006871, + "Position": { + "X": 559.71606, + "Y": -41.24518, + "Z": -333.1808 + }, + "TerritoryId": 398, + "InteractionType": "Interact", + "Fly": true + }, + { + "DataId": 2006873, + "Position": { + "X": 707.7285, + "Y": -50.095398, + "Z": -151.47632 + }, + "TerritoryId": 398, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [5546], + "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" + } + ] + } + ] +} 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 new file mode 100644 index 00000000..1f84b37b --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2265_The Foodstuff of Champions.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": 1016803, + "Position": { + "X": 57.297607, + "Y": -47.842846, + "Z": -174.63953 + }, + "TerritoryId": 398, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2006897, + "Position": { + "X": 88.48706, + "Y": -123.43024, + "Z": 561.7914 + }, + "TerritoryId": 398, + "InteractionType": "Interact", + "Fly": true + }, + { + "DataId": 2006899, + "Position": { + "X": 137.1023, + "Y": -120.01227, + "Z": 586.08374 + }, + "TerritoryId": 398, + "InteractionType": "Interact", + "Fly": true + }, + { + "DataId": 2006898, + "Position": { + "X": 111.86377, + "Y": -119.035645, + "Z": 617.4868 + }, + "TerritoryId": 398, + "InteractionType": "Interact", + "Fly": true + }, + { + "DataId": 2006894, + "Position": { + "X": 223.22424, + "Y": -123.6134, + "Z": 697.6272 + }, + "TerritoryId": 398, + "InteractionType": "Interact", + "Fly": true + }, + { + "DataId": 2006892, + "Position": { + "X": 209.1554, + "Y": -123.12512, + "Z": 767.91016 + }, + "TerritoryId": 398, + "InteractionType": "Interact", + "Fly": true + }, + { + "DataId": 2006893, + "Position": { + "X": 291.03528, + "Y": -119.40192, + "Z": 664.6676 + }, + "TerritoryId": 398, + "InteractionType": "Interact", + "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" + } + ] + } + ] +} From c2a16e1ec161494707caa1dfc1ad7186f9f26806 Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Sun, 22 Sep 2024 00:02:19 +0800 Subject: [PATCH 307/450] Added the following daily quests: - Shoo Fly, Don't Bother Me - All about the Eggs - Smells Like Trouble --- .../2272_Shoo Fly, Don't Bother Me.json | 96 ++++++++++++++ .../Vath/Dailies/2273_All about the Eggs.json | 72 ++++++++++ .../Dailies/2274_Smells Like Trouble.json | 124 ++++++++++++++++++ 3 files changed, 292 insertions(+) create mode 100644 QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2272_Shoo Fly, Don't Bother Me.json create mode 100644 QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2273_All about the Eggs.json create mode 100644 QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2274_Smells Like Trouble.json 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 new file mode 100644 index 00000000..fc74eb4d --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2272_Shoo Fly, Don't Bother Me.json @@ -0,0 +1,96 @@ +{ + "$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": [ + { + "Position": { + "X": -190.26477, + "Y": -104.73892, + "Z": 512.932 + }, + "TerritoryId": 398, + "InteractionType": "Action", + "Action": "Fumigate", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "Position": { + "X": -13.443237, + "Y": -129.2623, + "Z": 712.21484 + }, + "TerritoryId": 398, + "InteractionType": "Action", + "Action": "Fumigate", + "Fly": true + }, + { + "Position": { + "X": 45.151367, + "Y": -132.12938, + "Z": 685.7556 + }, + "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" + } + ] + } + ] +} 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 new file mode 100644 index 00000000..21824e8a --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2273_All about the Eggs.json @@ -0,0 +1,72 @@ +{ + "$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": 2006930, + "Position": { + "X": 510.3684, + "Y": -26.077698, + "Z": -592.3705 + }, + "TerritoryId": 398, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2006931, + "Position": { + "X": 358.81592, + "Y": -51.98755, + "Z": -137.89581 + }, + "TerritoryId": 398, + "InteractionType": "Combat", + "EnemySpawnType": "AfterItemUse", + "ItemId": 2001963, + "KillEnemyDataIds": [5552], + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1016803, + "Position": { + "X": 57.297607, + "Y": -47.842846, + "Z": -174.63953 + }, + "TerritoryId": 398, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} 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 new file mode 100644 index 00000000..095c273c --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2274_Smells Like Trouble.json @@ -0,0 +1,124 @@ +{ + "$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": 2006937, + "Position": { + "X": -42.282776, + "Y": -32.73065, + "Z": 183.30652 + }, + "TerritoryId": 398, + "InteractionType": "Interact", + "Fly": true + }, + { + "DataId": 2006935, + "Position": { + "X": -46.189087, + "Y": -47.257202, + "Z": 241.93176 + }, + "TerritoryId": 398, + "InteractionType": "Interact", + "Fly": true + }, + { + "DataId": 2006936, + "Position": { + "X": -83.57367, + "Y": -48.17273, + "Z": 231.89136 + }, + "TerritoryId": 398, + "InteractionType": "Interact", + "Fly": true + }, + { + "DataId": 2006934, + "Position": { + "X": -105.02789, + "Y": -69.68799, + "Z": 350.63696 + }, + "TerritoryId": 398, + "InteractionType": "Interact", + "Fly": true + }, + { + "DataId": 2006933, + "Position": { + "X": -80.03363, + "Y": -71.67163, + "Z": 412.46655 + }, + "TerritoryId": 398, + "InteractionType": "Interact", + "Fly": true + }, + { + "DataId": 2006932, + "Position": { + "X": -155.41315, + "Y": -71.122375, + "Z": 387.28918 + }, + "TerritoryId": 398, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1016803, + "Position": { + "X": 57.297607, + "Y": -47.842846, + "Z": -174.63953 + }, + "TerritoryId": 398, + "InteractionType": "Interact", + "Fly": true, + "AetheryteShortcut": "The Dravanian Forelands - Anyx Trine" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1016863, + "Position": { + "X": 67.948364, + "Y": -48.43746, + "Z": -168.23071 + }, + "TerritoryId": 398, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} From 565022589d9098bc2b045a9a2d14c37546db6aca Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Fri, 20 Sep 2024 20:53:46 +0800 Subject: [PATCH 308/450] Added a few daily quests: - Reeling in the Vundu - Nailed Down - The House That Ginu Built --- .../Dailies/2184_Reeling in the Vundu.json | 109 +++++++++++++++ .../Vanu Vanu/Dailies/2185_Nailed Down.json | 129 ++++++++++++++++++ .../2186_The House That Ginu Built.json | 95 +++++++++++++ 3 files changed, 333 insertions(+) create mode 100644 QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2184_Reeling in the Vundu.json create mode 100644 QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2185_Nailed Down.json create mode 100644 QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2186_The House That Ginu Built.json 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 new file mode 100644 index 00000000..4f7daad7 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2184_Reeling in the Vundu.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": 1016090, + "Position": { + "X": -836.51483, + "Y": -133.26949, + "Z": -386.61786 + }, + "TerritoryId": 401, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1016093, + "Position": { + "X": -776.0281, + "Y": -133.35559, + "Z": -414.32825 + }, + "TerritoryId": 401, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1016227, + "Position": { + "X": 473.1975, + "Y": -98.03464, + "Z": -527.7333 + }, + "TerritoryId": 401, + "InteractionType": "Action", + "Action": "Buffet (Sanuwa)", + "Fly": true + }, + { + "DataId": 1016226, + "Position": { + "X": 710.9331, + "Y": -98.032555, + "Z": -741.0239 + }, + "TerritoryId": 401, + "InteractionType": "Action", + "Action": "Buffet (Sanuwa)", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": -660.26556, + "Y": -49.27812, + "Z": -403.1036 + }, + "TerritoryId": 401, + "InteractionType": "WalkTo", + "AetheryteShortcut": "The Sea of Clouds - Ok' Zundu", + "Fly": true + }, + { + "DataId": 1016090, + "Position": { + "X": -836.51483, + "Y": -133.26949, + "Z": -386.61786 + }, + "TerritoryId": 401, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} 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 new file mode 100644 index 00000000..9f0d11ef --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2185_Nailed Down.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": 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": 2006676, + "Position": { + "X": -717.0062, + "Y": -13.901062, + "Z": -101.487854 + }, + "TerritoryId": 401, + "InteractionType": "Interact", + "Fly": true, + "RequiredQuestVariables": [null, null, [16], null, null, null] + }, + { + "DataId": 2006762, + "Position": { + "X": -781.52136, + "Y": -13.931519, + "Z": -114.30542 + }, + "TerritoryId": 401, + "InteractionType": "Interact", + "Fly": true, + "RequiredQuestVariables": [null, null, [32], null, null, null] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2006675, + "Position": { + "X": -642.298, + "Y": -207.29382, + "Z": 211.10852 + }, + "TerritoryId": 401, + "InteractionType": "Combat", + "EnemySpawnType": "AfterItemUse", + "ItemId": 2001912, + "KillEnemyDataIds": [5240], + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1012054, + "Position": { + "X": -640.1007, + "Y": -119.56208, + "Z": 469.5963 + }, + "TerritoryId": 401, + "InteractionType": "Interact", + "Fly": true, + "AetheryteShortcut": "The Sea of Clouds - Camp Cloudtop" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": -660.26556, + "Y": -49.27812, + "Z": -403.1036 + }, + "TerritoryId": 401, + "InteractionType": "WalkTo", + "AetheryteShortcut": "The Sea of Clouds - Ok' Zundu", + "Fly": true + }, + { + "DataId": 1016092, + "Position": { + "X": -792.6299, + "Y": -133.32184, + "Z": -425.5589 + }, + "TerritoryId": 401, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} 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 new file mode 100644 index 00000000..25dff501 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2186_The House That Ginu Built.json @@ -0,0 +1,95 @@ +{ + "$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": 2006677, + "Position": { + "X": 117.96753, + "Y": 12.25293, + "Z": -412.92444 + }, + "TerritoryId": 401, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [5241], + "Fly": true + }, + { + "DataId": 2006678, + "Position": { + "X": 160.54016, + "Y": 11.856201, + "Z": -507.65244 + }, + "TerritoryId": 401, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [5241], + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": -660.26556, + "Y": -49.27812, + "Z": -403.1036 + }, + "TerritoryId": 401, + "InteractionType": "WalkTo", + "AetheryteShortcut": "The Sea of Clouds - Ok' Zundu", + "Fly": true + }, + { + "DataId": 1016092, + "Position": { + "X": -792.6299, + "Y": -133.32184, + "Z": -425.5589 + }, + "TerritoryId": 401, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} From eba0902bd19b39140f956f3f36fc2176925f1ea0 Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Sat, 21 Sep 2024 00:19:47 +0800 Subject: [PATCH 309/450] Added the following daily quests: - Flight of the Midges - Fishing in Troubled Waters --- .../Dailies/2182_Flight of the Midges.json | 130 ++++++++++++++++++ .../2183_Fishing in Troubled Waters.json | 106 ++++++++++++++ 2 files changed, 236 insertions(+) create mode 100644 QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2182_Flight of the Midges.json create mode 100644 QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2183_Fishing in Troubled Waters.json 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 new file mode 100644 index 00000000..21f20e52 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2182_Flight of the Midges.json @@ -0,0 +1,130 @@ +{ + "$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" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1016093, + "Position": { + "X": -776.0281, + "Y": -133.35559, + "Z": -414.32825 + }, + "TerritoryId": 401, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "Position": { + "X": -850.9607, + "Y": 2.3374987, + "Z": -234.1339 + }, + "TerritoryId": 401, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 1016222, + "Position": { + "X": -853.8186, + "Y": 7.7667847, + "Z": -223.92621 + }, + "TerritoryId": 401, + "InteractionType": "Action", + "Action": "Buffet (Sanuwa)", + "Fly": true + }, + { + "DataId": 1016221, + "Position": { + "X": -576.40955, + "Y": -51.59082, + "Z": -543.8773 + }, + "TerritoryId": 401, + "InteractionType": "Action", + "Action": "Buffet (Sanuwa)", + "Fly": true + }, + { + "DataId": 1016220, + "Position": { + "X": -455.7718, + "Y": -20.828613, + "Z": -610.8644 + }, + "TerritoryId": 401, + "InteractionType": "Action", + "Action": "Buffet (Sanuwa)", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": -660.26556, + "Y": -49.27812, + "Z": -403.1036 + }, + "TerritoryId": 401, + "InteractionType": "WalkTo", + "AetheryteShortcut": "The Sea of Clouds - Ok' Zundu", + "Fly": true + }, + { + "DataId": 1016091, + "Position": { + "X": -804.25726, + "Y": -133.2695, + "Z": -390.89038 + }, + "TerritoryId": 401, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} 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 new file mode 100644 index 00000000..ba9afb37 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2183_Fishing in Troubled Waters.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": 1016089, + "Position": { + "X": -799.46594, + "Y": -133.2695, + "Z": -404.1352 + }, + "TerritoryId": 401, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1016090, + "Position": { + "X": -836.51483, + "Y": -133.26949, + "Z": -386.61786 + }, + "TerritoryId": 401, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "Position": { + "X": 833.7674, + "Y": -97.81962, + "Z": -735.3544 + }, + "TerritoryId": 401, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 1016223, + "Position": { + "X": 834.37854, + "Y": -97.83405, + "Z": -738.18567 + }, + "TerritoryId": 401, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [5239] + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1016223, + "Position": { + "X": 834.37854, + "Y": -97.83405, + "Z": -738.18567 + }, + "TerritoryId": 401, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": -660.26556, + "Y": -49.27812, + "Z": -403.1036 + }, + "TerritoryId": 401, + "InteractionType": "WalkTo", + "AetheryteShortcut": "The Sea of Clouds - Ok' Zundu", + "Fly": true + }, + { + "DataId": 1016090, + "Position": { + "X": -836.51483, + "Y": -133.26949, + "Z": -386.61786 + }, + "TerritoryId": 401, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} From 27663c765dab7bb94c69316521b330d1f66cb9bc Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Sun, 22 Sep 2024 00:20:58 +0800 Subject: [PATCH 310/450] Added the following daily quests: - A Bone to Pick - A Hut to Dye For --- .../Dailies/2187_A Bone to Pick.json | 101 +++++++++++++++ .../Dailies/2188_A Hut to Dye For.json | 121 ++++++++++++++++++ 2 files changed, 222 insertions(+) create mode 100644 QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2187_A Bone to Pick.json create mode 100644 QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2188_A Hut to Dye For.json 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 new file mode 100644 index 00000000..c001f032 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2187_A Bone to Pick.json @@ -0,0 +1,101 @@ +{ + "$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": 2006679, + "Position": { + "X": -401.175, + "Y": -202.65509, + "Z": 432.39478 + }, + "TerritoryId": 401, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [5242], + "AetheryteShortcut": "The Sea of Clouds - Camp Cloudtop", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2006680, + "Position": { + "X": -280.8728, + "Y": -202.01422, + "Z": 390.7987 + }, + "TerritoryId": 401, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [5242], + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": -660.26556, + "Y": -49.27812, + "Z": -403.1036 + }, + "TerritoryId": 401, + "InteractionType": "WalkTo", + "AetheryteShortcut": "The Sea of Clouds - Ok' Zundu", + "Fly": true + }, + { + "DataId": 1016092, + "Position": { + "X": -792.6299, + "Y": -133.32184, + "Z": -425.5589 + }, + "TerritoryId": 401, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} 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 new file mode 100644 index 00000000..076c3a2d --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2188_A Hut to Dye For.json @@ -0,0 +1,121 @@ +{ + "$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": 2006682, + "Position": { + "X": 25.711426, + "Y": 150.46924, + "Z": -133.56226 + }, + "TerritoryId": 401, + "InteractionType": "Interact", + "Fly": true + }, + { + "DataId": 2006681, + "Position": { + "X": 237.07935, + "Y": 163.95813, + "Z": -46.433228 + }, + "TerritoryId": 401, + "InteractionType": "Interact", + "Fly": true + }, + { + "Position": { + "X": 237.02913, + "Y": 169.13622, + "Z": -44.168194 + }, + "TerritoryId": 401, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 2006683, + "Position": { + "X": 332.5094, + "Y": 106.79785, + "Z": -68.2536 + }, + "TerritoryId": 401, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "Position": { + "X": 297.20715, + "Y": 106.011185, + "Z": -25.524097 + }, + "TerritoryId": 401, + "InteractionType": "WalkTo" + }, + { + "Position": { + "X": -660.26556, + "Y": -49.27812, + "Z": -403.1036 + }, + "TerritoryId": 401, + "InteractionType": "WalkTo", + "AetheryteShortcut": "The Sea of Clouds - Ok' Zundu", + "Fly": true + }, + { + "DataId": 1016092, + "Position": { + "X": -792.6299, + "Y": -133.32184, + "Z": -425.5589 + }, + "TerritoryId": 401, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} From 19aa2e90fd929e483db51c5d07e85e05c9016329 Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Sun, 22 Sep 2024 00:46:20 +0800 Subject: [PATCH 311/450] Added the following story quest: - Sundrop the Beat --- .../Story/2169_Sundrop the Beat.json | 173 ++++++++++++++++++ 1 file changed, 173 insertions(+) create mode 100644 QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Story/2169_Sundrop the Beat.json diff --git a/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Story/2169_Sundrop the Beat.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Story/2169_Sundrop the Beat.json new file mode 100644 index 00000000..84b2521c --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Story/2169_Sundrop the Beat.json @@ -0,0 +1,173 @@ +{ + "$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": 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": 2, + "Steps": [ + { + "DataId": 1016174, + "Position": { + "X": -606.4088, + "Y": -51.071037, + "Z": -370.87054 + }, + "TerritoryId": 401, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "Position": { + "X": -589.2831, + "Y": -1.0348412, + "Z": -340.14413 + }, + "TerritoryId": 401, + "InteractionType": "WalkTo", + "Fly": true, + "Land": true + }, + { + "Position": { + "X": -589.2831, + "Y": -1.0348412, + "Z": -340.14413 + }, + "TerritoryId": 401, + "InteractionType": "Emote", + "Emote": "dance", + "Mount": false + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1016174, + "Position": { + "X": -606.4088, + "Y": -51.071037, + "Z": -370.87054 + }, + "TerritoryId": 401, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1016175, + "Position": { + "X": 657.557, + "Y": -125.6886, + "Z": 307.60657 + }, + "TerritoryId": 401, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "Position": { + "X": 702.4233, + "Y": -60.78939, + "Z": 145.91805 + }, + "TerritoryId": 401, + "InteractionType": "WalkTo", + "Fly": true, + "Land": true + }, + { + "Position": { + "X": 702.4233, + "Y": -60.78939, + "Z": 145.91805 + }, + "TerritoryId": 401, + "InteractionType": "Emote", + "Emote": "dance", + "Mount": false + } + ] + }, + { + "Sequence": 7, + "Steps": [ + { + "DataId": 1016175, + "Position": { + "X": 657.557, + "Y": -125.6886, + "Z": 307.60657 + }, + "TerritoryId": 401, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1016174, + "Position": { + "X": -606.4088, + "Y": -51.071037, + "Z": -370.87054 + }, + "TerritoryId": 401, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "The Sea of Clouds - Ok' Zundu", + "Fly": true + } + ] + } + ] +} From 411b121f62e525bccd82477d6e3394888295b52d Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sat, 21 Sep 2024 23:29:27 +0200 Subject: [PATCH 312/450] Fix overworld combat delay logic --- Questionable/Controller/CombatController.cs | 84 +++++++++++++-------- 1 file changed, 53 insertions(+), 31 deletions(-) diff --git a/Questionable/Controller/CombatController.cs b/Questionable/Controller/CombatController.cs index eaf311cb..d4b8ae4e 100644 --- a/Questionable/Controller/CombatController.cs +++ b/Questionable/Controller/CombatController.cs @@ -35,6 +35,7 @@ internal sealed class CombatController : IDisposable private CurrentFight? _currentFight; private bool _wasInCombat; + private ulong? _lastTargetId; public CombatController( IEnumerable combatModules, @@ -92,6 +93,33 @@ internal sealed class CombatController : IDisposable _movementController.MovementStartedAt > DateTime.Now.AddSeconds(-1)) return EStatus.Moving; + // Overworld enemies typically means that if we want to kill 3 enemies, we could have anywhere from 0 to 20 + // enemies in the area (0 if someone else killed them before, like can happen with bots in Fools' Falls in + // La Noscea). + // + // For all 'normal' types, e.g. auto-spawning on entering an area, there's a fixed number of enemies that you're + // fighting with, and the enemies in the overworld aren't relevant. + if (_currentFight.Data.SpawnType is EEnemySpawnType.OverworldEnemies) + { + if (_targetManager.Target != null) + _lastTargetId = _targetManager.Target?.GameObjectId; + else + { + if (_lastTargetId != null) + { + IGameObject? lastTarget = _objectTable.FirstOrDefault(x => x.GameObjectId == _lastTargetId); + if (lastTarget != null) + { + // wait until the game cleans up the target + if (lastTarget.IsDead) + return EStatus.InCombat; + } + else + _lastTargetId = null; + } + } + } + var target = _targetManager.Target; if (target != null) { @@ -192,45 +220,37 @@ internal sealed class CombatController : IDisposable public unsafe int GetKillPriority(IGameObject gameObject) { + if (_currentFight == null) + return 0; + if (gameObject is IBattleNpc battleNpc) { - if (_currentFight != null && !_currentFight.Module.CanAttack(battleNpc)) + if (!_currentFight.Module.CanAttack(battleNpc)) return 0; - // TODO this works as somewhat of a delay between killing enemies if certain items/flags are checked - // but also delays killing the next enemy a little - if (_currentFight == null || - _currentFight.Data.SpawnType == EEnemySpawnType.OverworldEnemies || - _currentFight.Data.SpawnType == EEnemySpawnType.FateEnemies || - _currentFight.Data.KillEnemyDataIds.Count > 0) - { - if (battleNpc.IsDead) - return 0; - } + if (battleNpc.IsDead) + return 0; if (!battleNpc.IsTargetable) return 0; - if (_currentFight != null) + var complexCombatData = _currentFight.Data.ComplexCombatDatas; + if (complexCombatData.Count >= 0) { - var complexCombatData = _currentFight.Data.ComplexCombatDatas; - if (complexCombatData.Count >= 0) + for (int i = 0; i < complexCombatData.Count; ++i) { - for (int i = 0; i < complexCombatData.Count; ++i) - { - if (_currentFight.Data.CompletedComplexDatas.Contains(i)) - continue; + if (_currentFight.Data.CompletedComplexDatas.Contains(i)) + continue; - if (complexCombatData[i].DataId == battleNpc.DataId) - return 100; - } - } - else - { - if (_currentFight.Data.KillEnemyDataIds.Contains(battleNpc.DataId)) - return 90; + if (complexCombatData[i].DataId == battleNpc.DataId) + return 100; } } + else + { + if (_currentFight.Data.KillEnemyDataIds.Contains(battleNpc.DataId)) + return 90; + } // enemies that we have aggro on if (battleNpc.BattleNpcKind is BattleNpcSubKind.BattleNpcPart or BattleNpcSubKind.Enemy) @@ -241,8 +261,7 @@ 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); if (enemyData is { IgnoreQuestMarker: true }) { if (battleNpc.StatusFlags.HasFlag(StatusFlags.InCombat)) @@ -255,7 +274,8 @@ internal sealed class CombatController : IDisposable // for enemies that are very far away, their nameplate doesn't render but they're in the object table if (_currentFight?.Data.SpawnType == EEnemySpawnType.OverworldEnemies && - Vector3.Distance(_clientState.LocalPlayer?.Position ?? Vector3.Zero, battleNpc.Position) > MaxNameplateRange) + Vector3.Distance(_clientState.LocalPlayer?.Position ?? Vector3.Zero, battleNpc.Position) > + MaxNameplateRange) return 25; } else @@ -298,12 +318,14 @@ internal sealed class CombatController : IDisposable } else if (Vector3.Distance(_clientState.LocalPlayer!.Position, target.Position) > MaxTargetRange) { - _logger.LogInformation("Moving to target, distance: {Distance:N2}", Vector3.Distance(_clientState.LocalPlayer!.Position, target.Position)); + _logger.LogInformation("Moving to target, distance: {Distance:N2}", + Vector3.Distance(_clientState.LocalPlayer!.Position, target.Position)); _currentFight!.Module.MoveToTarget(target); } else { - _logger.LogInformation("Setting target to {TargetName} ({TargetId:X8})", target.Name.ToString(), target.GameObjectId); + _logger.LogInformation("Setting target to {TargetName} ({TargetId:X8})", target.Name.ToString(), + target.GameObjectId); _targetManager.Target = target; _currentFight!.Module.MoveToTarget(target); } From a96cdc99f6dc404a64bd1975a71baddfc5fe6cd9 Mon Sep 17 00:00:00 2001 From: kaiser Date: Sun, 22 Sep 2024 18:49:52 +1000 Subject: [PATCH 313/450] feat: add Carrotlight, Carrot Bright quest. --- .../4693_Carrotlight, Carrot Bright.json | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Dailies/4693_Carrotlight, Carrot Bright.json b/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Dailies/4693_Carrotlight, Carrot Bright.json index d731dcbc..e5ec744e 100644 --- a/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Dailies/4693_Carrotlight, Carrot Bright.json +++ b/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Dailies/4693_Carrotlight, Carrot Bright.json @@ -30,11 +30,28 @@ { "Sequence": 1, "Steps": [ + { + "DataId": 1044412, + "Position": { + "X": -181.56714, + "Y": -49.19972, + "Z": -304.76843 + }, + "StopDistance": 5, + "TerritoryId": 959, + "InteractionType": "Interact" + } ] }, { "Sequence": 255, "Steps": [ + { + "TerritoryId": 959, + "InteractionType": "Craft", + "ItemId": 38863, + "ItemCount": 3 + }, { "Position": { "X": -201.42024, From e7a2bb0cbaa51860f90895fd6bfb194efe99e657 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sun, 22 Sep 2024 12:35:15 +0200 Subject: [PATCH 314/450] Removed High Crucible attunement from post-EW --- .../6.x - Endwalker/MSQ/H-6.1/4531_Sharing the Wealth.json | 5 ----- 1 file changed, 5 deletions(-) diff --git a/QuestPaths/6.x - Endwalker/MSQ/H-6.1/4531_Sharing the Wealth.json b/QuestPaths/6.x - Endwalker/MSQ/H-6.1/4531_Sharing the Wealth.json index 59686b6f..4b484b53 100644 --- a/QuestPaths/6.x - Endwalker/MSQ/H-6.1/4531_Sharing the Wealth.json +++ b/QuestPaths/6.x - Endwalker/MSQ/H-6.1/4531_Sharing the Wealth.json @@ -20,11 +20,6 @@ { "Sequence": 1, "Steps": [ - { - "TerritoryId": 963, - "InteractionType": "AttuneAethernetShard", - "AethernetShard": "[Radz-at-Han] The High Crucible of Al-Kimiya" - }, { "DataId": 1039589, "Position": { From 09f8cb90785d8dba3cfe690dd6a7923ef094383a Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sun, 22 Sep 2024 14:31:14 +0200 Subject: [PATCH 315/450] Add experimental PurchaseItem step --- LLib | 2 +- .../RoslynElements/QuestStepExtensions.cs | 2 + .../3728_To Thaw a Frozen Heart.json | 9 +- QuestPaths/quest-v1.json | 39 +++++ .../Converter/InteractionTypeConverter.cs | 1 + .../Questing/EInteractionType.cs | 1 + Questionable.Model/Questing/PurchaseMenu.cs | 12 ++ Questionable.Model/Questing/QuestStep.cs | 1 + .../GameUi/InteractionUiController.cs | 20 +++ .../Controller/GameUi/ShopController.cs | 156 ++++++++++++++++++ .../Controller/Steps/Interactions/Interact.cs | 11 +- .../Steps/Interactions/PurchaseItem.cs | 22 +++ Questionable/Controller/Steps/TaskExecutor.cs | 3 +- Questionable/Functions/ExcelFunctions.cs | 5 + Questionable/QuestionablePlugin.cs | 2 + .../QuestComponents/CreationUtilsComponent.cs | 6 +- 16 files changed, 286 insertions(+), 6 deletions(-) create mode 100644 Questionable.Model/Questing/PurchaseMenu.cs create mode 100644 Questionable/Controller/GameUi/ShopController.cs create mode 100644 Questionable/Controller/Steps/Interactions/PurchaseItem.cs diff --git a/LLib b/LLib index 43c3dba1..e6e3a1f2 160000 --- a/LLib +++ b/LLib @@ -1 +1 @@ -Subproject commit 43c3dba112c202e2d0ff1a6909020c2b83e20dc3 +Subproject commit e6e3a1f29715e2af4976dd7338ed2f09ae82c99c diff --git a/QuestPathGenerator/RoslynElements/QuestStepExtensions.cs b/QuestPathGenerator/RoslynElements/QuestStepExtensions.cs index 6aca708a..45f2a858 100644 --- a/QuestPathGenerator/RoslynElements/QuestStepExtensions.cs +++ b/QuestPathGenerator/RoslynElements/QuestStepExtensions.cs @@ -127,6 +127,8 @@ internal static class QuestStepExtensions .AsSyntaxNodeOrToken(), AssignmentList(nameof(QuestStep.PointMenuChoices), step.PointMenuChoices) .AsSyntaxNodeOrToken(), + Assignment(nameof(QuestStep.PurchaseMenu), step.PurchaseMenu, emptyStep.PurchaseMenu) + .AsSyntaxNodeOrToken(), Assignment(nameof(QuestStep.PickUpQuestId), step.PickUpQuestId, emptyStep.PickUpQuestId) .AsSyntaxNodeOrToken(), diff --git a/QuestPaths/3.x - Heavensward/Unlocks/Ishgard Restoration/3728_To Thaw a Frozen Heart.json b/QuestPaths/3.x - Heavensward/Unlocks/Ishgard Restoration/3728_To Thaw a Frozen Heart.json index bef2725b..98d6a072 100644 --- a/QuestPaths/3.x - Heavensward/Unlocks/Ishgard Restoration/3728_To Thaw a Frozen Heart.json +++ b/QuestPaths/3.x - Heavensward/Unlocks/Ishgard Restoration/3728_To Thaw a Frozen Heart.json @@ -43,7 +43,14 @@ "Z": 150.92688 }, "TerritoryId": 886, - "InteractionType": "Instruction", + "InteractionType": "PurchaseItem", + "PurchaseMenu": { + "ExcelSheet": "GilShop", + "Key": 262151, + "$": "This isn't the correct shop id, but it's also unclear how you'd find out" + }, + "ItemId": 5768, + "ItemCount": 2, "Comment": "Buy cream yellow dye", "AethernetShortcut": [ "[Firmament] The New Nest", diff --git a/QuestPaths/quest-v1.json b/QuestPaths/quest-v1.json index 4282b7c9..a29a43fa 100644 --- a/QuestPaths/quest-v1.json +++ b/QuestPaths/quest-v1.json @@ -119,6 +119,7 @@ "Combat", "UseItem", "EquipItem", + "PurchaseItem", "EquipRecommended", "Say", "Emote", @@ -707,6 +708,44 @@ ] } }, + { + "if": { + "properties": { + "InteractionType": { + "const": "PurchaseItem" + } + } + }, + "then": { + "properties": { + "ItemCount": { + "type": "integer" + }, + "PurchaseMenu": { + "type": "object", + "description": "The text to use with /say", + "properties": { + "ExcelSheet": { + "type": "string" + }, + "Key": { + "type": [ + "string", + "integer" + ] + } + }, + "required": [ + "Key" + ] + } + }, + "required": [ + "ItemId", + "ItemCount" + ] + } + }, { "if": { "properties": { diff --git a/Questionable.Model/Questing/Converter/InteractionTypeConverter.cs b/Questionable.Model/Questing/Converter/InteractionTypeConverter.cs index 34320633..aef951bf 100644 --- a/Questionable.Model/Questing/Converter/InteractionTypeConverter.cs +++ b/Questionable.Model/Questing/Converter/InteractionTypeConverter.cs @@ -16,6 +16,7 @@ public sealed class InteractionTypeConverter() : EnumConverter { EInteractionType.Combat, "Combat" }, { EInteractionType.UseItem, "UseItem" }, { EInteractionType.EquipItem, "EquipItem" }, + { EInteractionType.PurchaseItem, "PurchaseItem" }, { EInteractionType.EquipRecommended, "EquipRecommended" }, { EInteractionType.Say, "Say" }, { EInteractionType.Emote, "Emote" }, diff --git a/Questionable.Model/Questing/EInteractionType.cs b/Questionable.Model/Questing/EInteractionType.cs index d9942ef4..af23e90e 100644 --- a/Questionable.Model/Questing/EInteractionType.cs +++ b/Questionable.Model/Questing/EInteractionType.cs @@ -15,6 +15,7 @@ public enum EInteractionType Combat, UseItem, EquipItem, + PurchaseItem, EquipRecommended, Say, Emote, diff --git a/Questionable.Model/Questing/PurchaseMenu.cs b/Questionable.Model/Questing/PurchaseMenu.cs new file mode 100644 index 00000000..e0a2172b --- /dev/null +++ b/Questionable.Model/Questing/PurchaseMenu.cs @@ -0,0 +1,12 @@ +using System.Text.Json.Serialization; +using Questionable.Model.Questing.Converter; + +namespace Questionable.Model.Questing; + +public sealed class PurchaseMenu +{ + public string? ExcelSheet { get; set; } + + [JsonConverter(typeof(ExcelRefConverter))] + public ExcelRef? Key { get; set; } +} diff --git a/Questionable.Model/Questing/QuestStep.cs b/Questionable.Model/Questing/QuestStep.cs index da851c83..c5626a5d 100644 --- a/Questionable.Model/Questing/QuestStep.cs +++ b/Questionable.Model/Questing/QuestStep.cs @@ -78,6 +78,7 @@ public sealed class QuestStep public List CompletionQuestVariablesFlags { get; set; } = []; public List DialogueChoices { get; set; } = []; public List PointMenuChoices { get; set; } = []; + public PurchaseMenu? PurchaseMenu { get; set; } // TODO: Not implemented [JsonConverter(typeof(ElementIdConverter))] diff --git a/Questionable/Controller/GameUi/InteractionUiController.cs b/Questionable/Controller/GameUi/InteractionUiController.cs index e94a5716..6db38b80 100644 --- a/Questionable/Controller/GameUi/InteractionUiController.cs +++ b/Questionable/Controller/GameUi/InteractionUiController.cs @@ -46,6 +46,7 @@ internal sealed class InteractionUiController : IDisposable private readonly IGameGui _gameGui; private readonly ITargetManager _targetManager; private readonly IClientState _clientState; + private readonly ShopController _shopController; private readonly ILogger _logger; private readonly Regex _returnRegex; @@ -67,6 +68,7 @@ internal sealed class InteractionUiController : IDisposable ITargetManager targetManager, IPluginLog pluginLog, IClientState clientState, + ShopController shopController, ILogger logger) { _addonLifecycle = addonLifecycle; @@ -83,6 +85,7 @@ internal sealed class InteractionUiController : IDisposable _gameGui = gameGui; _targetManager = targetManager; _clientState = clientState; + _shopController = shopController; _logger = logger; _returnRegex = _dataManager.GetExcelSheet()!.GetRow(196)!.GetRegex(addon => addon.Text, pluginLog)!; @@ -334,7 +337,17 @@ internal sealed class InteractionUiController : IDisposable if (step == null) _logger.LogDebug("Ignoring current quest dialogue choices, no active step"); else + { dialogueChoices.AddRange(step.DialogueChoices.Select(x => new DialogueChoiceInfo(quest, x))); + if (step.PurchaseMenu != null) + dialogueChoices.Add(new DialogueChoiceInfo(quest, new DialogueChoice + { + Type = EDialogChoiceType.List, + ExcelSheet = step.PurchaseMenu.ExcelSheet, + Prompt = null, + Answer = step.PurchaseMenu.Key, + })); + } } // add all travel dialogue choices @@ -516,6 +529,13 @@ internal sealed class InteractionUiController : IDisposable return; _logger.LogTrace("Prompt: '{Prompt}'", actualPrompt); + if (_shopController.IsAutoBuyEnabled && _shopController.IsAwaitingYesNo) + { + addonSelectYesno->AtkUnitBase.FireCallbackInt(0); + _shopController.IsAwaitingYesNo = false; + return; + } + var director = UIState.Instance()->DirectorTodo.Director; if (director != null && director->Info.EventId.ContentId == EventHandlerType.GatheringLeveDirector && diff --git a/Questionable/Controller/GameUi/ShopController.cs b/Questionable/Controller/GameUi/ShopController.cs new file mode 100644 index 00000000..611078e5 --- /dev/null +++ b/Questionable/Controller/GameUi/ShopController.cs @@ -0,0 +1,156 @@ +using System; +using System.Linq; +using System.Numerics; +using Dalamud.Plugin.Services; +using FFXIVClientStructs.FFXIV.Component.GUI; +using LLib.GameUI; +using LLib.Shop; +using Microsoft.Extensions.Logging; +using Questionable.Model.Questing; +using Workshoppa.GameData.Shops; +using ValueType = FFXIVClientStructs.FFXIV.Component.GUI.ValueType; + +namespace Questionable.Controller.GameUi; + +internal sealed class ShopController : IDisposable, IShopWindow +{ + private readonly QuestController _questController; + private readonly IGameGui _gameGui; + private readonly IFramework _framework; + private readonly RegularShopBase _shop; + private readonly ILogger _logger; + + public ShopController(QuestController questController, IGameGui gameGui, IAddonLifecycle addonLifecycle, + IFramework framework, ILogger logger, IPluginLog pluginLog) + { + _questController = questController; + _gameGui = gameGui; + _framework = framework; + _shop = new RegularShopBase(this, "Shop", pluginLog, gameGui, addonLifecycle); + _logger = logger; + + _framework.Update += FrameworkUpdate; + } + + public bool IsEnabled => _questController.IsRunning; + public bool IsOpen { get; set; } + public bool IsAutoBuyEnabled => _shop.AutoBuyEnabled; + + public bool IsAwaitingYesNo + { + get { return _shop.IsAwaitingYesNo; } + set { _shop.IsAwaitingYesNo = value; } + } + + public Vector2? Position { get; set; } // actual implementation doesn't matter, not a real window + + public void Dispose() + { + _framework.Update -= FrameworkUpdate; + _shop.Dispose(); + } + + private void FrameworkUpdate(IFramework framework) + { + if (IsOpen && _shop.ItemForSale != null) + { + if (_shop.PurchaseState != null) + { + _shop.HandleNextPurchaseStep(); + } + else + { + var currentStep = FindCurrentStep(); + if (currentStep == null || currentStep.InteractionType != EInteractionType.PurchaseItem) + return; + + int missingItems = Math.Max(0, + currentStep.ItemCount.GetValueOrDefault() - (int)_shop.ItemForSale.OwnedItems); + int toPurchase = Math.Min(_shop.GetMaxItemsToPurchase(), missingItems); + if (toPurchase > 0) + { + _logger.LogDebug("Auto-buying {MissingItems} {ItemName}", missingItems, _shop.ItemForSale.ItemName); + _shop.StartAutoPurchase(missingItems); + _shop.HandleNextPurchaseStep(); + } + else + _shop.CancelAutoPurchase(); + } + } + } + + public int GetCurrencyCount() => _shop.GetItemCount(1); // TODO: support other currencies + + private QuestStep? FindCurrentStep() + { + var currentQuest = _questController.CurrentQuest; + QuestSequence? currentSequence = currentQuest?.Quest.FindSequence(currentQuest.Sequence); + return currentSequence?.FindStep(currentQuest?.Step ?? 0); + } + + public unsafe void UpdateShopStock(AtkUnitBase* addon) + { + var currentStep = FindCurrentStep(); + if (currentStep == null || currentStep.InteractionType != EInteractionType.PurchaseItem) + { + _shop.ItemForSale = null; + return; + } + + if (addon->AtkValuesCount != 625) + { + _logger.LogError("Unexpected amount of atkvalues for Shop addon ({AtkValueCount})", addon->AtkValuesCount); + _shop.ItemForSale = null; + return; + } + + var atkValues = addon->AtkValues; + + // Check if on 'Current Stock' tab? + if (atkValues[0].UInt != 0) + { + _shop.ItemForSale = null; + return; + } + + uint itemCount = atkValues[2].UInt; + if (itemCount == 0) + { + _shop.ItemForSale = null; + return; + } + + _shop.ItemForSale = Enumerable.Range(0, (int)itemCount) + .Select(i => new ItemForSale + { + Position = i, + ItemName = atkValues[14 + i].ReadAtkString(), + Price = atkValues[75 + i].UInt, + OwnedItems = atkValues[136 + i].UInt, + ItemId = atkValues[441 + i].UInt, + }) + .FirstOrDefault(x => x.ItemId == currentStep.ItemId); + } + + public unsafe void TriggerPurchase(AtkUnitBase* addonShop, int buyNow) + { + var buyItem = stackalloc AtkValue[] + { + new() { Type = ValueType.Int, Int = 0 }, + new() { Type = ValueType.Int, Int = _shop.ItemForSale!.Position }, + new() { Type = ValueType.Int, Int = buyNow }, + new() { Type = 0, Int = 0 } + }; + addonShop->FireCallback(4, buyItem); + } + + public void SaveExternalPluginState() + { + } + + public unsafe void RestoreExternalPluginState() + { + if (_gameGui.TryGetAddonByName("Shop", out AtkUnitBase* addonShop)) + addonShop->FireCallbackInt(-1); + } +} diff --git a/Questionable/Controller/Steps/Interactions/Interact.cs b/Questionable/Controller/Steps/Interactions/Interact.cs index 1b7caea3..3cb137c4 100644 --- a/Questionable/Controller/Steps/Interactions/Interact.cs +++ b/Questionable/Controller/Steps/Interactions/Interact.cs @@ -35,6 +35,11 @@ internal static class Interact if (step.DataId == null) yield break; } + else if (step.InteractionType == EInteractionType.PurchaseItem) + { + if (step.DataId == null) + yield break; + } else if (step.InteractionType == EInteractionType.Snipe) { if (!configuration.General.AutomaticallyCompleteSnipeTasks) @@ -51,7 +56,8 @@ 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.PickUpItemId, step.SkipConditions?.StepIf); + step.SkipConditions is { StepIf.Never: true } || step.InteractionType == EInteractionType.PurchaseItem, + step.PickUpItemId, step.SkipConditions?.StepIf); } } @@ -147,7 +153,8 @@ internal static class Interact } else { - if (ProgressContext != null && (ProgressContext.WasSuccessful() || _interactionState == EInteractionState.InteractionConfirmed)) + if (ProgressContext != null && (ProgressContext.WasSuccessful() || + _interactionState == EInteractionState.InteractionConfirmed)) return ETaskResult.TaskComplete; if (InteractionType == EInteractionType.Gather && condition[ConditionFlag.Gathering]) diff --git a/Questionable/Controller/Steps/Interactions/PurchaseItem.cs b/Questionable/Controller/Steps/Interactions/PurchaseItem.cs new file mode 100644 index 00000000..e0cf5961 --- /dev/null +++ b/Questionable/Controller/Steps/Interactions/PurchaseItem.cs @@ -0,0 +1,22 @@ +using Questionable.Model; +using Questionable.Model.Questing; + +namespace Questionable.Controller.Steps.Interactions; + +internal static class PurchaseItem +{ + internal sealed class Factory : SimpleTaskFactory + { + public override ITask? CreateTask(Quest quest, QuestSequence sequence, QuestStep step) + { + if (step.InteractionType != EInteractionType.PurchaseItem) + return null; + throw new System.NotImplementedException(); + } + } + + internal sealed class PurchaseRequest + { + + } +} diff --git a/Questionable/Controller/Steps/TaskExecutor.cs b/Questionable/Controller/Steps/TaskExecutor.cs index 4f48b56b..e5b2c2e9 100644 --- a/Questionable/Controller/Steps/TaskExecutor.cs +++ b/Questionable/Controller/Steps/TaskExecutor.cs @@ -5,6 +5,7 @@ namespace Questionable.Controller.Steps; internal interface ITaskExecutor { ITask CurrentTask { get; } + public InteractionProgressContext? ProgressContext { get; } Type GetTaskType(); @@ -19,7 +20,7 @@ internal abstract class TaskExecutor : ITaskExecutor where T : class, ITask { protected T Task { get; set; } = null!; - protected InteractionProgressContext? ProgressContext { get; set; } + public InteractionProgressContext? ProgressContext { get; set; } ITask ITaskExecutor.CurrentTask => Task; public bool WasInterrupted() diff --git a/Questionable/Functions/ExcelFunctions.cs b/Questionable/Functions/ExcelFunctions.cs index cb0cf63e..e1278a59 100644 --- a/Questionable/Functions/ExcelFunctions.cs +++ b/Questionable/Functions/ExcelFunctions.cs @@ -91,6 +91,11 @@ internal sealed class ExcelFunctions var questRow = _dataManager.GetExcelSheet()!.GetRow(rowId); return questRow?.Unknown10; } + else if (excelSheet is "GilShop") + { + var questRow = _dataManager.GetExcelSheet()!.GetRow(rowId); + return questRow?.Name; + } else if (excelSheet is "ContentTalk" or null) { var questRow = _dataManager.GetExcelSheet()!.GetRow(rowId); diff --git a/Questionable/QuestionablePlugin.cs b/Questionable/QuestionablePlugin.cs index acee9943..a3731ed4 100644 --- a/Questionable/QuestionablePlugin.cs +++ b/Questionable/QuestionablePlugin.cs @@ -224,6 +224,7 @@ public sealed class QuestionablePlugin : IDalamudPlugin serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); + serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); @@ -284,6 +285,7 @@ public sealed class QuestionablePlugin : IDalamudPlugin serviceProvider.GetRequiredService(); serviceProvider.GetRequiredService(); serviceProvider.GetRequiredService(); + serviceProvider.GetRequiredService(); serviceProvider.GetRequiredService(); serviceProvider.GetRequiredService(); serviceProvider.GetRequiredService().Enable(); diff --git a/Questionable/Windows/QuestComponents/CreationUtilsComponent.cs b/Questionable/Windows/QuestComponents/CreationUtilsComponent.cs index d8faefde..d1db774f 100644 --- a/Questionable/Windows/QuestComponents/CreationUtilsComponent.cs +++ b/Questionable/Windows/QuestComponents/CreationUtilsComponent.cs @@ -29,6 +29,7 @@ namespace Questionable.Windows.QuestComponents; internal sealed class CreationUtilsComponent { + private readonly QuestController _questController; private readonly MovementController _movementController; private readonly GameFunctions _gameFunctions; private readonly QuestFunctions _questFunctions; @@ -43,6 +44,7 @@ internal sealed class CreationUtilsComponent private readonly ILogger _logger; public CreationUtilsComponent( + QuestController questController, MovementController movementController, GameFunctions gameFunctions, QuestFunctions questFunctions, @@ -56,6 +58,7 @@ internal sealed class CreationUtilsComponent Configuration configuration, ILogger logger) { + _questController = questController; _movementController = movementController; _gameFunctions = gameFunctions; _questFunctions = questFunctions; @@ -154,13 +157,14 @@ internal sealed class CreationUtilsComponent } #endif -#if false +#if true 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 From 1c4fb29205545dc74ebf4ef8415231c7b72cbe22 Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Mon, 23 Sep 2024 00:29:15 +0800 Subject: [PATCH 316/450] Added the following daily quests: - A Romp around the Foothills - Neighborhood Squabbles --- .../2278_A Romp around the Foothills.json | 117 ++++++++++++++++++ .../Dailies/2279_Neighborhood Squabbles.json | 91 ++++++++++++++ 2 files changed, 208 insertions(+) create mode 100644 QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2278_A Romp around the Foothills.json create mode 100644 QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2279_Neighborhood Squabbles.json 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 new file mode 100644 index 00000000..5c5fa317 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2278_A Romp around the Foothills.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": 1016803, + "Position": { + "X": 57.297607, + "Y": -47.842846, + "Z": -174.63953 + }, + "TerritoryId": 398, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1016875, + "Position": { + "X": -274.09784, + "Y": -22.971008, + "Z": 22.812195 + }, + "TerritoryId": 398, + "InteractionType": "Interact", + "AetheryteShortcut": "The Dravanian Forelands - Anyx Trine" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1016876, + "Position": { + "X": 148.48547, + "Y": 65.56322, + "Z": -644.09863 + }, + "TerritoryId": 398, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1016877, + "Position": { + "X": 212.23767, + "Y": 52.205494, + "Z": -777.676 + }, + "TerritoryId": 398, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1016878, + "Position": { + "X": 210.31506, + "Y": 59.655575, + "Z": -919.06616 + }, + "TerritoryId": 398, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1016875, + "Position": { + "X": -274.09784, + "Y": -22.971008, + "Z": 22.812195 + }, + "TerritoryId": 398, + "InteractionType": "Interact", + "AetheryteShortcut": "The Dravanian Forelands - Anyx Trine" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1016803, + "Position": { + "X": 57.297607, + "Y": -47.842846, + "Z": -174.63953 + }, + "TerritoryId": 398, + "InteractionType": "CompleteQuest", + "Fly": true + } + ] + } + ] +} 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 new file mode 100644 index 00000000..e21d83f5 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies/2279_Neighborhood Squabbles.json @@ -0,0 +1,91 @@ +{ + "$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": 2006945, + "Position": { + "X": 204.63867, + "Y": -106.43176, + "Z": 360.55542 + }, + "TerritoryId": 398, + "InteractionType": "Interact", + "Fly": true + }, + { + "DataId": 2006947, + "Position": { + "X": 205.98145, + "Y": -109.544556, + "Z": 389.7306 + }, + "TerritoryId": 398, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [5549], + "Fly": true + }, + { + "DataId": 2006948, + "Position": { + "X": 154.43652, + "Y": -112.50476, + "Z": 445.15137 + }, + "TerritoryId": 398, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [5549], + "Fly": true + }, + { + "DataId": 2006946, + "Position": { + "X": 153.0022, + "Y": -86.289795, + "Z": 418.44812 + }, + "TerritoryId": 398, + "InteractionType": "Interact", + "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" + } + ] + } + ] +} From 26ad97c9e24be3a361fb28a808cd2d02442680cd Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sun, 22 Sep 2024 23:02:40 +0200 Subject: [PATCH 317/450] Clean up --- LLib | 2 +- Questionable/Controller/GameUi/ShopController.cs | 2 +- Questionable/Controller/GatheringPointRegistry.cs | 8 +++----- Questionable/Controller/Steps/IRevisitAware.cs | 2 +- 4 files changed, 6 insertions(+), 8 deletions(-) diff --git a/LLib b/LLib index e6e3a1f2..6dfc18ee 160000 --- a/LLib +++ b/LLib @@ -1 +1 @@ -Subproject commit e6e3a1f29715e2af4976dd7338ed2f09ae82c99c +Subproject commit 6dfc18ee6a187138036ee2d51ba2257741c1e568 diff --git a/Questionable/Controller/GameUi/ShopController.cs b/Questionable/Controller/GameUi/ShopController.cs index 611078e5..7c45e3cf 100644 --- a/Questionable/Controller/GameUi/ShopController.cs +++ b/Questionable/Controller/GameUi/ShopController.cs @@ -5,9 +5,9 @@ using Dalamud.Plugin.Services; using FFXIVClientStructs.FFXIV.Component.GUI; using LLib.GameUI; using LLib.Shop; +using LLib.Shop.Model; using Microsoft.Extensions.Logging; using Questionable.Model.Questing; -using Workshoppa.GameData.Shops; using ValueType = FFXIVClientStructs.FFXIV.Component.GUI.ValueType; namespace Questionable.Controller.GameUi; diff --git a/Questionable/Controller/GatheringPointRegistry.cs b/Questionable/Controller/GatheringPointRegistry.cs index 7e66330a..82042151 100644 --- a/Questionable/Controller/GatheringPointRegistry.cs +++ b/Questionable/Controller/GatheringPointRegistry.cs @@ -80,8 +80,7 @@ internal sealed class GatheringPointRegistry : IDisposable { foreach (var expansionFolder in ExpansionData.ExpansionFolders.Values) LoadFromDirectory( - new DirectoryInfo(Path.Combine(pathProjectDirectory.FullName, expansionFolder)), - LogLevel.Trace); + new DirectoryInfo(Path.Combine(pathProjectDirectory.FullName, expansionFolder))); } catch (Exception e) { @@ -102,7 +101,7 @@ internal sealed class GatheringPointRegistry : IDisposable _gatheringPoints[gatheringPointId] = JsonSerializer.Deserialize(stream)!; } - private void LoadFromDirectory(DirectoryInfo directory, LogLevel logLevel = LogLevel.Information) + private void LoadFromDirectory(DirectoryInfo directory) { if (!directory.Exists) { @@ -110,7 +109,6 @@ internal sealed class GatheringPointRegistry : IDisposable return; } - //_logger.Log(logLevel, "Loading gathering points from {DirectoryName}", directory); foreach (FileInfo fileInfo in directory.GetFiles("*.json")) { try @@ -125,7 +123,7 @@ internal sealed class GatheringPointRegistry : IDisposable } foreach (DirectoryInfo childDirectory in directory.GetDirectories()) - LoadFromDirectory(childDirectory, logLevel); + LoadFromDirectory(childDirectory); } private static GatheringPointId? ExtractGatheringPointIdFromName(string resourceName) diff --git a/Questionable/Controller/Steps/IRevisitAware.cs b/Questionable/Controller/Steps/IRevisitAware.cs index 6af5d689..96d183be 100644 --- a/Questionable/Controller/Steps/IRevisitAware.cs +++ b/Questionable/Controller/Steps/IRevisitAware.cs @@ -1,6 +1,6 @@ namespace Questionable.Controller.Steps; -internal interface IRevisitAware : ITask +internal interface IRevisitAware { void OnRevisit(); } From 0ac2e36afd333f3ee7c9edb23e3ab825402b6e53 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Mon, 23 Sep 2024 00:48:57 +0200 Subject: [PATCH 318/450] Fix pathing in 'Renewing the Covenant' --- .../MSQ-1/Gridania/449_Renewing the Covenant.json | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/QuestPaths/2.x - A Realm Reborn/MSQ-1/Gridania/449_Renewing the Covenant.json b/QuestPaths/2.x - A Realm Reborn/MSQ-1/Gridania/449_Renewing the Covenant.json index 0a5caf1b..55d42793 100644 --- a/QuestPaths/2.x - A Realm Reborn/MSQ-1/Gridania/449_Renewing the Covenant.json +++ b/QuestPaths/2.x - A Realm Reborn/MSQ-1/Gridania/449_Renewing the Covenant.json @@ -57,13 +57,12 @@ }, { "Position": { - "X": 49.65071, - "Y": -8.046952, - "Z": 102.32186 + "X": 40.596844, + "Y": -8, + "Z": 103.85207 }, "TerritoryId": 132, - "InteractionType": "WalkTo", - "$": "New Gridania Navmesh workaround" + "InteractionType": "WalkTo" }, { "DataId": 1000460, From 361a3ff5f8f1d96baf915dcbd8f5809df98ed07b Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Mon, 23 Sep 2024 02:00:32 +0200 Subject: [PATCH 319/450] Add conditions for skipping interacting with firmament npcs after 'Towards the Firmament' --- .../SkipConditionsExtensions.cs | 2 + .../3725_A Home in the Firmament.json | 88 +++++++++++++++++-- QuestPaths/quest-v1.json | 6 ++ .../Questing/SkipStepConditions.cs | 13 +-- .../Controller/Steps/Shared/SkipCondition.cs | 16 ++++ 5 files changed, 112 insertions(+), 13 deletions(-) diff --git a/QuestPathGenerator/RoslynElements/SkipConditionsExtensions.cs b/QuestPathGenerator/RoslynElements/SkipConditionsExtensions.cs index 02084db1..e904e0f7 100644 --- a/QuestPathGenerator/RoslynElements/SkipConditionsExtensions.cs +++ b/QuestPathGenerator/RoslynElements/SkipConditionsExtensions.cs @@ -65,6 +65,8 @@ internal static class SkipConditionsExtensions skipStepConditions.QuestsAccepted).AsSyntaxNodeOrToken(), AssignmentList(nameof(SkipStepConditions.QuestsCompleted), skipStepConditions.QuestsCompleted).AsSyntaxNodeOrToken(), + AssignmentList(nameof(SkipStepConditions.NotNamePlateIconId), + skipStepConditions.NotNamePlateIconId).AsSyntaxNodeOrToken(), Assignment(nameof(SkipStepConditions.AetheryteLocked), skipStepConditions.AetheryteLocked, emptyStep.AetheryteLocked) .AsSyntaxNodeOrToken(), diff --git a/QuestPaths/3.x - Heavensward/Unlocks/Ishgard Restoration/3725_A Home in the Firmament.json b/QuestPaths/3.x - Heavensward/Unlocks/Ishgard Restoration/3725_A Home in the Firmament.json index d30e7457..1f31e641 100644 --- a/QuestPaths/3.x - Heavensward/Unlocks/Ishgard Restoration/3725_A Home in the Firmament.json +++ b/QuestPaths/3.x - Heavensward/Unlocks/Ishgard Restoration/3725_A Home in the Firmament.json @@ -5,6 +5,22 @@ { "Sequence": 0, "Steps": [ + { + "InteractionType": "None", + "TerritoryId": 886, + "AetheryteShortcut": "Ishgard", + "AethernetShortcut": [ + "[Ishgard] Aetheryte Plaza", + "[Ishgard] Firmament" + ], + "SkipConditions": { + "AetheryteShortcutIf": { + "InTerritory": [ + 886 + ] + } + } + }, { "DataId": 1031681, "Position": { @@ -13,7 +29,14 @@ "Z": 146.34924 }, "TerritoryId": 886, - "InteractionType": "Interact" + "InteractionType": "Interact", + "SkipConditions": { + "StepIf": { + "NotNamePlateIconId": [ + 60091 + ] + } + } }, { "DataId": 1031677, @@ -23,7 +46,14 @@ "Z": 168.9325 }, "TerritoryId": 886, - "InteractionType": "Interact" + "InteractionType": "Interact", + "SkipConditions": { + "StepIf": { + "NotNamePlateIconId": [ + 60091 + ] + } + } }, { "DataId": 1031692, @@ -34,7 +64,14 @@ }, "StopDistance": 5, "TerritoryId": 886, - "InteractionType": "Interact" + "InteractionType": "Interact", + "SkipConditions": { + "StepIf": { + "NotNamePlateIconId": [ + 60091 + ] + } + } }, { "Position": { @@ -53,7 +90,14 @@ "Z": 138.47559 }, "TerritoryId": 886, - "InteractionType": "Interact" + "InteractionType": "Interact", + "SkipConditions": { + "StepIf": { + "NotNamePlateIconId": [ + 60091 + ] + } + } }, { "DataId": 1031693, @@ -63,7 +107,14 @@ "Z": 138.93335 }, "TerritoryId": 886, - "InteractionType": "Interact" + "InteractionType": "Interact", + "SkipConditions": { + "StepIf": { + "NotNamePlateIconId": [ + 60091 + ] + } + } }, { "DataId": 1031694, @@ -74,7 +125,14 @@ }, "StopDistance": 7, "TerritoryId": 886, - "InteractionType": "Interact" + "InteractionType": "Interact", + "SkipConditions": { + "StepIf": { + "NotNamePlateIconId": [ + 60091 + ] + } + } }, { "DataId": 1031695, @@ -84,7 +142,14 @@ "Z": 169.9397 }, "TerritoryId": 886, - "InteractionType": "Interact" + "InteractionType": "Interact", + "SkipConditions": { + "StepIf": { + "NotNamePlateIconId": [ + 60091 + ] + } + } }, { "DataId": 1031681, @@ -94,7 +159,14 @@ "Z": 146.34924 }, "TerritoryId": 886, - "InteractionType": "Interact" + "InteractionType": "Interact", + "SkipConditions": { + "StepIf": { + "NotNamePlateIconId": [ + 60091 + ] + } + } }, { "DataId": 1031992, diff --git a/QuestPaths/quest-v1.json b/QuestPaths/quest-v1.json index a29a43fa..9502f77a 100644 --- a/QuestPaths/quest-v1.json +++ b/QuestPaths/quest-v1.json @@ -256,6 +256,12 @@ ] } }, + "NotNamePlateIconId": { + "type": "array", + "items": { + "type": "integer" + } + }, "AetheryteLocked": { "$ref": "https://git.carvel.li/liza/Questionable/raw/branch/master/Questionable.Model/common-schema.json#/$defs/Aetheryte" }, diff --git a/Questionable.Model/Questing/SkipStepConditions.cs b/Questionable.Model/Questing/SkipStepConditions.cs index bfb8fcfc..25c1a46b 100644 --- a/Questionable.Model/Questing/SkipStepConditions.cs +++ b/Questionable.Model/Questing/SkipStepConditions.cs @@ -13,15 +13,17 @@ public sealed class SkipStepConditions public ELockedSkipCondition? Flying { get; set; } public ELockedSkipCondition? Chocobo { get; set; } public bool NotTargetable { get; set; } - public List InTerritory { get; set; } = new(); - public List NotInTerritory { get; set; } = new(); + public List InTerritory { get; set; } = []; + public List NotInTerritory { get; set; } = []; public SkipItemConditions? Item { get; set; } [JsonConverter(typeof(ElementIdListConverter))] - public List QuestsAccepted { get; set; } = new(); + public List QuestsAccepted { get; set; } = []; [JsonConverter(typeof(ElementIdListConverter))] - public List QuestsCompleted { get; set; } = new(); + public List QuestsCompleted { get; set; } = []; + + public List NotNamePlateIconId { get; set; } = []; public EAetheryteLocation? AetheryteLocked { get; set; } public EAetheryteLocation? AetheryteUnlocked { get; set; } @@ -41,6 +43,7 @@ public sealed class SkipStepConditions Item != null || QuestsAccepted.Count > 0 || QuestsCompleted.Count > 0 || + NotNamePlateIconId.Count > 0 || AetheryteLocked != null || AetheryteUnlocked != null || NearPosition != null || @@ -50,6 +53,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(NearPosition)}: {NearPosition}, {nameof(ExtraCondition)}: {ExtraCondition}"; + $"{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}"; } } diff --git a/Questionable/Controller/Steps/Shared/SkipCondition.cs b/Questionable/Controller/Steps/Shared/SkipCondition.cs index eaf1d167..9690d474 100644 --- a/Questionable/Controller/Steps/Shared/SkipCondition.cs +++ b/Questionable/Controller/Steps/Shared/SkipCondition.cs @@ -3,6 +3,7 @@ using System.Numerics; using Dalamud.Game.ClientState.Objects.Types; using Dalamud.Plugin.Services; using FFXIVClientStructs.FFXIV.Client.Game; +using FFXIVClientStructs.FFXIV.Client.Game.Object; using FFXIVClientStructs.FFXIV.Client.Game.UI; using Microsoft.Extensions.Logging; using Questionable.Controller.Utils; @@ -125,6 +126,21 @@ internal static class SkipCondition } } + if (skipConditions.NotNamePlateIconId.Count > 0 && + step is { DataId: not null }) + { + IGameObject? target = gameFunctions.FindObjectByDataId(step.DataId.Value); + if (target != null) + { + GameObject* gameObject = (GameObject*)target.Address; + if (!skipConditions.NotNamePlateIconId.Contains(gameObject->NamePlateIconId)) + { + logger.LogInformation("Skipping step, object has icon id {IconId}", gameObject->NamePlateIconId); + return true; + } + } + } + if (skipConditions.Item is { NotInInventory: true } && step is { ItemId: not null }) { InventoryManager* inventoryManager = InventoryManager.Instance(); From 4aa4032cd12ad960320fde133bf0495476df8779 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Mon, 23 Sep 2024 02:04:05 +0200 Subject: [PATCH 320/450] Minor path updates --- .../Loporrits/Dailies/4691_Pieces of You.json | 1 - .../4517_A Way to Make a Living.json | 28 +++- .../Radz-at-Han/4271_Tidings from Afar.json | 90 +++++++++++ .../Radz-at-Han/4272_The Pangs of Hunger.json | 146 ++++++++++++++++++ 4 files changed, 259 insertions(+), 6 deletions(-) create mode 100644 QuestPaths/6.x - Endwalker/Side Quests/Radz-at-Han/4271_Tidings from Afar.json create mode 100644 QuestPaths/6.x - Endwalker/Side Quests/Radz-at-Han/4272_The Pangs of Hunger.json diff --git a/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Dailies/4691_Pieces of You.json b/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Dailies/4691_Pieces of You.json index f42e401c..a4eaf247 100644 --- a/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Dailies/4691_Pieces of You.json +++ b/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Dailies/4691_Pieces of You.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, diff --git a/QuestPaths/6.x - Endwalker/Side Quests/Mare Lamentorum/4517_A Way to Make a Living.json b/QuestPaths/6.x - Endwalker/Side Quests/Mare Lamentorum/4517_A Way to Make a Living.json index 1c5aad21..e9bf8326 100644 --- a/QuestPaths/6.x - Endwalker/Side Quests/Mare Lamentorum/4517_A Way to Make a Living.json +++ b/QuestPaths/6.x - Endwalker/Side Quests/Mare Lamentorum/4517_A Way to Make a Living.json @@ -36,6 +36,17 @@ { "Sequence": 2, "Steps": [ + { + "Position": { + "X": 10.0736885, + "Y": 27.10196, + "Z": 448.53668 + }, + "TerritoryId": 959, + "InteractionType": "WalkTo", + "AetheryteShortcut": "Mare Lamentorum - Sinus Lacrimarum", + "Fly": true + }, { "DataId": 1041559, "Position": { @@ -44,9 +55,7 @@ "Z": 447.74548 }, "TerritoryId": 959, - "InteractionType": "Interact", - "AetheryteShortcut": "Mare Lamentorum - Sinus Lacrimarum", - "Fly": true + "InteractionType": "Interact" } ] }, @@ -105,6 +114,16 @@ { "Sequence": 4, "Steps": [ + { + "Position": { + "X": 10.0736885, + "Y": 27.10196, + "Z": 448.53668 + }, + "TerritoryId": 959, + "InteractionType": "WalkTo", + "Fly": true + }, { "DataId": 1041559, "Position": { @@ -113,8 +132,7 @@ "Z": 447.74548 }, "TerritoryId": 959, - "InteractionType": "Interact", - "Fly": true + "InteractionType": "Interact" } ] }, diff --git a/QuestPaths/6.x - Endwalker/Side Quests/Radz-at-Han/4271_Tidings from Afar.json b/QuestPaths/6.x - Endwalker/Side Quests/Radz-at-Han/4271_Tidings from Afar.json new file mode 100644 index 00000000..38f789d2 --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Side Quests/Radz-at-Han/4271_Tidings from Afar.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": [ + { + "DataId": 1041155, + "Position": { + "X": -57.51129, + "Y": -2.000002, + "Z": 129.77795 + }, + "TerritoryId": 963, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1041154, + "Position": { + "X": 112.01648, + "Y": 26.99999, + "Z": 53.81848 + }, + "TerritoryId": 963, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Radz-at-Han] Alzadaal's Peace", + "[Radz-at-Han] Kama" + ], + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + }, + { + "DataId": 1037354, + "Position": { + "X": 109.33081, + "Y": 1.8631814, + "Z": -100.1145 + }, + "StopDistance": 7, + "TerritoryId": 963, + "InteractionType": "Interact", + "AethernetShortcut": [ + "[Radz-at-Han] Kama", + "[Radz-at-Han] Aetheryte Plaza" + ], + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1041155, + "Position": { + "X": -57.51129, + "Y": -2.000002, + "Z": 129.77795 + }, + "TerritoryId": 963, + "InteractionType": "CompleteQuest", + "AethernetShortcut": [ + "[Radz-at-Han] Aetheryte Plaza", + "[Radz-at-Han] Alzadaal's Peace" + ] + } + ] + } + ] +} diff --git a/QuestPaths/6.x - Endwalker/Side Quests/Radz-at-Han/4272_The Pangs of Hunger.json b/QuestPaths/6.x - Endwalker/Side Quests/Radz-at-Han/4272_The Pangs of Hunger.json new file mode 100644 index 00000000..5be52421 --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Side Quests/Radz-at-Han/4272_The Pangs of Hunger.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": 1041144, + "Position": { + "X": -63.34027, + "Y": 14, + "Z": 125.62744 + }, + "TerritoryId": 963, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": -48.856667, + "Y": 13.068996, + "Z": 118.292465 + }, + "TerritoryId": 963, + "InteractionType": "WalkTo" + }, + { + "DataId": 194, + "Position": { + "X": 6.6071167, + "Y": -2.02948, + "Z": 110.55151 + }, + "StopDistance": 3, + "TerritoryId": 963, + "InteractionType": "WalkTo", + "DisableNavmesh": true + }, + { + "Position": { + "X": -21.53136, + "Y": 1.7999926, + "Z": -182.28082 + }, + "TerritoryId": 963, + "InteractionType": "WalkTo", + "AethernetShortcut": [ + "[Radz-at-Han] Alzadaal's Peace", + "[Radz-at-Han] Mehryde's Meyhane" + ] + }, + { + "DataId": 1037381, + "Position": { + "X": -23.697266, + "Y": 1.7999947, + "Z": -180.07172 + }, + "StopDistance": 4, + "TerritoryId": 963, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2012387, + "Position": { + "X": -58.27423, + "Y": 0.9613037, + "Z": -199.42017 + }, + "TerritoryId": 963, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2012388, + "Position": { + "X": -65.62909, + "Y": 13.992493, + "Z": 129.1676 + }, + "TerritoryId": 963, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1041144, + "Position": { + "X": -63.34027, + "Y": 14, + "Z": 125.62744 + }, + "TerritoryId": 963, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1037466, + "Position": { + "X": -205.31018, + "Y": 36, + "Z": 135.39331 + }, + "TerritoryId": 963, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1041145, + "Position": { + "X": -63.34027, + "Y": 14, + "Z": 126.207275 + }, + "TerritoryId": 963, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} From 07286839cfd2f9640e78e4f76741fc667f196b32 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Mon, 23 Sep 2024 03:07:25 +0200 Subject: [PATCH 321/450] Add Ananta unlock quests --- .../Story/3036_Brooding Broodmother.json | 88 ++++++++++ .../The Fringes/2662_Drawing a Blank.json | 120 +++++++++++++ .../The Fringes/2663_Seeking Answers.json | 102 +++++++++++ .../The Fringes/2664_The Honest Truth.json | 161 ++++++++++++++++++ .../The Fringes/2824_A New Contender.json | 74 ++++++++ .../The Fringes/2825_Down but Not Out.json | 55 ++++++ .../2826_Make a Man Out of You.json | 120 +++++++++++++ .../The Fringes/2827_Honoring Family.json | 86 ++++++++++ .../2828_The Rose Blooms Twice.json | 105 ++++++++++++ 9 files changed, 911 insertions(+) create mode 100644 QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Story/3036_Brooding Broodmother.json create mode 100644 QuestPaths/4.x - Stormblood/Side Quests/The Fringes/2662_Drawing a Blank.json create mode 100644 QuestPaths/4.x - Stormblood/Side Quests/The Fringes/2663_Seeking Answers.json create mode 100644 QuestPaths/4.x - Stormblood/Side Quests/The Fringes/2664_The Honest Truth.json create mode 100644 QuestPaths/4.x - Stormblood/Side Quests/The Fringes/2824_A New Contender.json create mode 100644 QuestPaths/4.x - Stormblood/Side Quests/The Fringes/2825_Down but Not Out.json create mode 100644 QuestPaths/4.x - Stormblood/Side Quests/The Fringes/2826_Make a Man Out of You.json create mode 100644 QuestPaths/4.x - Stormblood/Side Quests/The Fringes/2827_Honoring Family.json create mode 100644 QuestPaths/4.x - Stormblood/Side Quests/The Fringes/2828_The Rose Blooms Twice.json diff --git a/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Story/3036_Brooding Broodmother.json b/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Story/3036_Brooding Broodmother.json new file mode 100644 index 00000000..c6aaba27 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Story/3036_Brooding Broodmother.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": 1021565, + "Position": { + "X": 440.11584, + "Y": 114.254425, + "Z": 212.84802 + }, + "TerritoryId": 612, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Fringes - Peering Stones", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1020817, + "Position": { + "X": 327.5348, + "Y": 83.45977, + "Z": -103.07471 + }, + "TerritoryId": 612, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1024894, + "Position": { + "X": 21.744019, + "Y": -0.05840592, + "Z": 13.01593 + }, + "TerritoryId": 635, + "InteractionType": "Interact", + "AetheryteShortcut": "Rhalgr's Reach" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1024771, + "Position": { + "X": 12.008789, + "Y": 55.97821, + "Z": 237.96448 + }, + "TerritoryId": 612, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Fringes - Peering Stones", + "Fly": true, + "DialogueChoices": [ + { + "Type": "List", + "Prompt": "TEXT_BANANA001_03036_Q2_000_000", + "Answer": "TEXT_BANANA001_03036_A2_000_001" + }, + { + "Type": "List", + "Prompt": "TEXT_BANANA001_03036_Q3_000_000", + "Answer": "TEXT_BANANA001_03036_A3_000_001" + } + ] + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Side Quests/The Fringes/2662_Drawing a Blank.json b/QuestPaths/4.x - Stormblood/Side Quests/The Fringes/2662_Drawing a Blank.json new file mode 100644 index 00000000..c7250d96 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Side Quests/The Fringes/2662_Drawing a Blank.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": 1023754, + "Position": { + "X": -429.4652, + "Y": 75.3867, + "Z": -124.712036 + }, + "TerritoryId": 612, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Fringes - Castrum Oriens", + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + }, + "Fly": true + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 2008756, + "Position": { + "X": -417.8073, + "Y": 76.8291, + "Z": -98.46649 + }, + "TerritoryId": 612, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + }, + { + "DataId": 2008758, + "Position": { + "X": -411.88678, + "Y": 71.82422, + "Z": -85.46582 + }, + "TerritoryId": 612, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + }, + { + "DataId": 2008757, + "Position": { + "X": -423.6057, + "Y": 66.056274, + "Z": -33.463074 + }, + "TerritoryId": 612, + "InteractionType": "Interact", + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 64 + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2008759, + "Position": { + "X": -426.50494, + "Y": 75.028564, + "Z": -121.90442 + }, + "TerritoryId": 612, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1019519, + "Position": { + "X": -613.1228, + "Y": 130, + "Z": -529.839 + }, + "TerritoryId": 612, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Fringes - Castrum Oriens", + "NextQuestId": 2663 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Side Quests/The Fringes/2663_Seeking Answers.json b/QuestPaths/4.x - Stormblood/Side Quests/The Fringes/2663_Seeking Answers.json new file mode 100644 index 00000000..e47ddcf7 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Side Quests/The Fringes/2663_Seeking Answers.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": 1019519, + "Position": { + "X": -613.1228, + "Y": 130, + "Z": -529.839 + }, + "TerritoryId": 612, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1023142, + "Position": { + "X": -642.9083, + "Y": 130.25946, + "Z": -538.29254 + }, + "StopDistance": 1, + "TerritoryId": 612, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1019519, + "Position": { + "X": -613.1228, + "Y": 130, + "Z": -529.839 + }, + "TerritoryId": 612, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1023153, + "Position": { + "X": -680.10986, + "Y": 120.11875, + "Z": -241.13837 + }, + "TerritoryId": 612, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1023154, + "Position": { + "X": -736.56824, + "Y": 110.02372, + "Z": -176.13495 + }, + "TerritoryId": 612, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1019519, + "Position": { + "X": -613.1228, + "Y": 130, + "Z": -529.839 + }, + "TerritoryId": 612, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Fringes - Castrum Oriens", + "Fly": true, + "NextQuestId": 2664 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Side Quests/The Fringes/2664_The Honest Truth.json b/QuestPaths/4.x - Stormblood/Side Quests/The Fringes/2664_The Honest Truth.json new file mode 100644 index 00000000..e460abcc --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Side Quests/The Fringes/2664_The Honest Truth.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": 1019519, + "Position": { + "X": -613.1228, + "Y": 130, + "Z": -529.839 + }, + "TerritoryId": 612, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1023144, + "Position": { + "X": -631.7998, + "Y": 130.39117, + "Z": -467.67383 + }, + "TerritoryId": 612, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2008786, + "Position": { + "X": -630.45703, + "Y": 130.3883, + "Z": -466.75824 + }, + "TerritoryId": 612, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1023144, + "Position": { + "X": -631.7998, + "Y": 130.39117, + "Z": -467.67383 + }, + "TerritoryId": 612, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1023157, + "Position": { + "X": -427.26788, + "Y": 74.15582, + "Z": -103.56299 + }, + "TerritoryId": 612, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "Position": { + "X": -397.5847, + "Y": 73.92399, + "Z": -104.41468 + }, + "TerritoryId": 612, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 2008761, + "Position": { + "X": -398.30627, + "Y": 74.23511, + "Z": -106.70636 + }, + "TerritoryId": 612, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 6, + "Steps": [ + { + "Position": { + "X": -391.48306, + "Y": 73.52123, + "Z": -100.069016 + }, + "TerritoryId": 612, + "InteractionType": "WalkTo", + "Mount": true + }, + { + "Position": { + "X": -424.38403, + "Y": 62.880836, + "Z": -28.616083 + }, + "TerritoryId": 612, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 1023158, + "Position": { + "X": -426.71857, + "Y": 63.23476, + "Z": -28.82434 + }, + "TerritoryId": 612, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1019519, + "Position": { + "X": -613.1228, + "Y": 130, + "Z": -529.839 + }, + "TerritoryId": 612, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Fringes - Castrum Oriens", + "Fly": true, + "NextQuestId": 2824 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Side Quests/The Fringes/2824_A New Contender.json b/QuestPaths/4.x - Stormblood/Side Quests/The Fringes/2824_A New Contender.json new file mode 100644 index 00000000..195aae04 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Side Quests/The Fringes/2824_A New Contender.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": 1021565, + "Position": { + "X": 440.11584, + "Y": 114.254425, + "Z": 212.84802 + }, + "TerritoryId": 612, + "InteractionType": "AcceptQuest", + "AetheryteShortcut": "Fringes - Peering Stones" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1023160, + "Position": { + "X": 303.12048, + "Y": 46.087757, + "Z": 493.0647 + }, + "TerritoryId": 612, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2008763, + "Position": { + "X": 465.7511, + "Y": 77.56152, + "Z": 118.08948 + }, + "TerritoryId": 612, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [ + 7545 + ] + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1023161, + "Position": { + "X": 465.62903, + "Y": 77.67306, + "Z": 114.854614 + }, + "StopDistance": 7, + "TerritoryId": 612, + "InteractionType": "CompleteQuest", + "NextQuestId": 2825 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Side Quests/The Fringes/2825_Down but Not Out.json b/QuestPaths/4.x - Stormblood/Side Quests/The Fringes/2825_Down but Not Out.json new file mode 100644 index 00000000..23f65ff6 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Side Quests/The Fringes/2825_Down but Not Out.json @@ -0,0 +1,55 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1023161, + "Position": { + "X": 465.62903, + "Y": 77.67306, + "Z": 114.854614 + }, + "StopDistance": 7, + "TerritoryId": 612, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1023162, + "Position": { + "X": 403.8911, + "Y": 114.18445, + "Z": 212.32922 + }, + "TerritoryId": 612, + "InteractionType": "Interact", + "AetheryteShortcut": "Fringes - Peering Stones" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1023163, + "Position": { + "X": 305.16516, + "Y": 45.654415, + "Z": 491.59985 + }, + "TerritoryId": 612, + "InteractionType": "CompleteQuest", + "Fly": true, + "NextQuestId": 2826 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Side Quests/The Fringes/2826_Make a Man Out of You.json b/QuestPaths/4.x - Stormblood/Side Quests/The Fringes/2826_Make a Man Out of You.json new file mode 100644 index 00000000..b330b5fa --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Side Quests/The Fringes/2826_Make a Man Out of You.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": 1023163, + "Position": { + "X": 305.16516, + "Y": 45.654415, + "Z": 491.59985 + }, + "TerritoryId": 612, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1019531, + "Position": { + "X": -70.2984, + "Y": 56.0216, + "Z": 210.22351 + }, + "TerritoryId": 612, + "InteractionType": "Interact", + "TargetTerritoryId": 612, + "SkipConditions": { + "StepIf": { + "Flying": "Unlocked" + } + } + }, + { + "DataId": 1023164, + "Position": { + "X": -127.45862, + "Y": 41.197662, + "Z": 7.248047 + }, + "TerritoryId": 612, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1023164, + "Position": { + "X": -127.45862, + "Y": 41.197662, + "Z": 7.248047 + }, + "TerritoryId": 612, + "InteractionType": "UseItem", + "ItemId": 2002274, + "GroundTarget": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1023164, + "Position": { + "X": -127.45862, + "Y": 41.197662, + "Z": 7.248047 + }, + "TerritoryId": 612, + "InteractionType": "UseItem", + "ItemId": 2002274, + "GroundTarget": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1023164, + "Position": { + "X": -127.45862, + "Y": 41.197662, + "Z": 7.248047 + }, + "TerritoryId": 612, + "InteractionType": "UseItem", + "ItemId": 2002274, + "GroundTarget": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1023164, + "Position": { + "X": -127.45862, + "Y": 41.197662, + "Z": 7.248047 + }, + "TerritoryId": 612, + "InteractionType": "CompleteQuest", + "NextQuestId": 2827 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Side Quests/The Fringes/2827_Honoring Family.json b/QuestPaths/4.x - Stormblood/Side Quests/The Fringes/2827_Honoring Family.json new file mode 100644 index 00000000..d21ee0bc --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Side Quests/The Fringes/2827_Honoring Family.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": 1023164, + "Position": { + "X": -127.45862, + "Y": 41.197662, + "Z": 7.248047 + }, + "TerritoryId": 612, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1021565, + "Position": { + "X": 440.11584, + "Y": 114.254425, + "Z": 212.84802 + }, + "TerritoryId": 612, + "InteractionType": "Interact", + "AetheryteShortcut": "Fringes - Peering Stones" + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 2008764, + "Position": { + "X": 608.1482, + "Y": 48.02002, + "Z": 362.6306 + }, + "TerritoryId": 612, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1023166, + "Position": { + "X": 607.3242, + "Y": 48.087296, + "Z": 364.79736 + }, + "StopDistance": 5, + "TerritoryId": 612, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1021565, + "Position": { + "X": 440.11584, + "Y": 114.254425, + "Z": 212.84802 + }, + "TerritoryId": 612, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Fringes - Peering Stones", + "NextQuestId": 2828 + } + ] + } + ] +} diff --git a/QuestPaths/4.x - Stormblood/Side Quests/The Fringes/2828_The Rose Blooms Twice.json b/QuestPaths/4.x - Stormblood/Side Quests/The Fringes/2828_The Rose Blooms Twice.json new file mode 100644 index 00000000..8299dd45 --- /dev/null +++ b/QuestPaths/4.x - Stormblood/Side Quests/The Fringes/2828_The Rose Blooms Twice.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": 1021565, + "Position": { + "X": 440.11584, + "Y": 114.254425, + "Z": 212.84802 + }, + "TerritoryId": 612, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "DataId": 1019531, + "Position": { + "X": -70.2984, + "Y": 56.0216, + "Z": 210.22351 + }, + "TerritoryId": 612, + "InteractionType": "Interact", + "TargetTerritoryId": 612, + "SkipConditions": { + "StepIf": { + "Flying": "Unlocked" + } + } + }, + { + "Position": { + "X": -641.61725, + "Y": 78.03014, + "Z": 118.72834 + }, + "StopDistance": 0.5, + "TerritoryId": 612, + "InteractionType": "Combat", + "EnemySpawnType": "AutoOnEnterArea", + "KillEnemyDataIds": [ + 7825, + 7826, + 7827 + ] + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1023409, + "Position": { + "X": -642.7558, + "Y": 77.98847, + "Z": 117.631714 + }, + "TerritoryId": 612, + "InteractionType": "Interact" + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2008893, + "Position": { + "X": -648.49316, + "Y": 48.41687, + "Z": 245.89917 + }, + "TerritoryId": 612, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1021565, + "Position": { + "X": 440.11584, + "Y": 114.254425, + "Z": 212.84802 + }, + "TerritoryId": 612, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Fringes - Peering Stones" + } + ] + } + ] +} From 01c88ecb84ede2bbfeb824e65064307291827347 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Mon, 23 Sep 2024 03:14:04 +0200 Subject: [PATCH 322/450] Update pathing for 'A Bit of Home Cooking' --- .../Dailies/3048_A Bit of Home Cooking.json | 57 +++++++++++++++++-- 1 file changed, 52 insertions(+), 5 deletions(-) diff --git a/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Dailies/3048_A Bit of Home Cooking.json b/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Dailies/3048_A Bit of Home Cooking.json index a3e5bc82..3270b428 100644 --- a/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Dailies/3048_A Bit of Home Cooking.json +++ b/QuestPaths/4.x - Stormblood/Allied Societies/Ananta/Dailies/3048_A Bit of Home Cooking.json @@ -22,14 +22,13 @@ "Sequence": 1, "Steps": [ { - "DataId": 2009333, "Position": { - "X": 180.4989, - "Y": 45.609253, - "Z": 452.78088 + "X": 178.82968, + "Y": 45.361248, + "Z": 453.55005 }, "TerritoryId": 612, - "InteractionType": "Interact", + "InteractionType": "WalkTo", "Fly": true, "RequiredQuestVariables": [ null, @@ -48,6 +47,54 @@ null, null, null + ], + "SkipConditions": { + "StepIf": { + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 + ] + } + } + }, + { + "DataId": 2009333, + "Position": { + "X": 180.4989, + "Y": 45.609253, + "Z": 452.78088 + }, + "TerritoryId": 612, + "InteractionType": "Interact", + "RequiredQuestVariables": [ + null, + [ + { + "Low": 1 + }, + { + "Low": 2 + }, + { + "Low": 4 + } + ], + null, + null, + null, + null + ], + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 128 ] }, { From 5317d5ee52deca7d91206f234e985dab1bf380e6 Mon Sep 17 00:00:00 2001 From: MDlumia Date: Mon, 23 Sep 2024 00:13:52 -0500 Subject: [PATCH 323/450] 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 e72b91fd..2f92e7c0 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 From e97b17ed346ae9762a764791af713c516571ca00 Mon Sep 17 00:00:00 2001 From: MDlumia Date: Mon, 23 Sep 2024 05:22:20 +0000 Subject: [PATCH 324/450] 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 2f92e7c0..e72b91fd 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" + } + ] + } + ] +} From e8ec0f87e4efb09dc538dfa5aab429bb1c1c5562 Mon Sep 17 00:00:00 2001 From: MDlumia Date: Mon, 23 Sep 2024 00:33:18 -0500 Subject: [PATCH 325/450] 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 e72b91fd..11b508a2 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 From 4767af7cc54e7a6f5b50a46e1bf53267e4ca7aed Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Mon, 23 Sep 2024 16:25:23 +0200 Subject: [PATCH 326/450] Add EnemySpawnType: AfterEmote --- QuestPaths/quest-v1.json | 1 + .../Converter/EnemySpawnTypeConverter.cs | 1 + Questionable.Model/Questing/EEnemySpawnType.cs | 1 + .../Controller/Steps/Interactions/Combat.cs | 18 ++++++++++++------ 4 files changed, 15 insertions(+), 6 deletions(-) diff --git a/QuestPaths/quest-v1.json b/QuestPaths/quest-v1.json index 9502f77a..e5d946bd 100644 --- a/QuestPaths/quest-v1.json +++ b/QuestPaths/quest-v1.json @@ -579,6 +579,7 @@ "AfterInteraction", "AfterItemUse", "AfterAction", + "AfterEmote", "OverworldEnemies", "FateEnemies" ] diff --git a/Questionable.Model/Questing/Converter/EnemySpawnTypeConverter.cs b/Questionable.Model/Questing/Converter/EnemySpawnTypeConverter.cs index 4abc2739..1b43eaf4 100644 --- a/Questionable.Model/Questing/Converter/EnemySpawnTypeConverter.cs +++ b/Questionable.Model/Questing/Converter/EnemySpawnTypeConverter.cs @@ -10,6 +10,7 @@ public sealed class EnemySpawnTypeConverter() : EnumConverter(V { EEnemySpawnType.AfterInteraction, "AfterInteraction" }, { EEnemySpawnType.AfterItemUse, "AfterItemUse" }, { EEnemySpawnType.AfterAction, "AfterAction" }, + { EEnemySpawnType.AfterEmote, "AfterEmote" }, { EEnemySpawnType.AutoOnEnterArea, "AutoOnEnterArea" }, { EEnemySpawnType.OverworldEnemies, "OverworldEnemies" }, { EEnemySpawnType.FateEnemies, "FateEnemies" }, diff --git a/Questionable.Model/Questing/EEnemySpawnType.cs b/Questionable.Model/Questing/EEnemySpawnType.cs index b7e5332e..e4f49433 100644 --- a/Questionable.Model/Questing/EEnemySpawnType.cs +++ b/Questionable.Model/Questing/EEnemySpawnType.cs @@ -10,6 +10,7 @@ public enum EEnemySpawnType AfterInteraction, AfterItemUse, AfterAction, + AfterEmote, AutoOnEnterArea, OverworldEnemies, FateEnemies, diff --git a/Questionable/Controller/Steps/Interactions/Combat.cs b/Questionable/Controller/Steps/Interactions/Combat.cs index 514f1575..12a41d60 100644 --- a/Questionable/Controller/Steps/Interactions/Combat.cs +++ b/Questionable/Controller/Steps/Interactions/Combat.cs @@ -33,17 +33,14 @@ internal static class Combat switch (step.EnemySpawnType) { case EEnemySpawnType.AfterInteraction: - { ArgumentNullException.ThrowIfNull(step.DataId); yield return new Interact.Task(step.DataId.Value, quest, EInteractionType.None, true); yield return new WaitAtEnd.WaitDelay(TimeSpan.FromSeconds(1)); yield return CreateTask(quest, sequence, step); break; - } case EEnemySpawnType.AfterItemUse: - { ArgumentNullException.ThrowIfNull(step.DataId); ArgumentNullException.ThrowIfNull(step.ItemId); @@ -52,10 +49,8 @@ internal static class Combat yield return new WaitAtEnd.WaitDelay(TimeSpan.FromSeconds(1)); yield return CreateTask(quest, sequence, step); break; - } case EEnemySpawnType.AfterAction: - { ArgumentNullException.ThrowIfNull(step.DataId); ArgumentNullException.ThrowIfNull(step.Action); @@ -65,7 +60,18 @@ internal static class Combat yield return new WaitAtEnd.WaitDelay(TimeSpan.FromSeconds(1)); yield return CreateTask(quest, sequence, step); break; - } + + case EEnemySpawnType.AfterEmote: + ArgumentNullException.ThrowIfNull(step.Emote); + + yield return new Mount.UnmountTask(); + if (step.DataId != null) + yield return new Emote.UseOnObject(step.Emote.Value, step.DataId.Value); + else + yield return new Emote.UseOnSelf(step.Emote.Value); + yield return new WaitAtEnd.WaitDelay(TimeSpan.FromSeconds(1)); + yield return CreateTask(quest, sequence, step); + break; case EEnemySpawnType.AutoOnEnterArea: if (step.CombatDelaySecondsAtStart == null) From 098a19fec2f9e76e54aaf5ea482ef4689ba184ec Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Tue, 24 Sep 2024 00:01:24 +0800 Subject: [PATCH 327/450] Added the following story quests: - A Chilling Fate - The Third Stella: A Famine for Fishermen - The Third Stella: A Feast for Fishermen --- .../Qitari/Story/3797_A Chilling Fate.json | 84 +++++++++++++++++++ ..._The Third Stela A Famine for Fishmen.json | 36 ++++++++ ...5_The Third Stela A Feast for Fishmen.json | 36 ++++++++ 3 files changed, 156 insertions(+) create mode 100644 QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Story/3797_A Chilling Fate.json create mode 100644 QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Story/3804_The Third Stela A Famine for Fishmen.json create mode 100644 QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Story/3805_The Third Stela A Feast for Fishmen.json 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 new file mode 100644 index 00000000..4118fec3 --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Story/3797_A Chilling Fate.json @@ -0,0 +1,84 @@ +{ + "$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": [ + { + "TerritoryId": 817, + "InteractionType": "Gather", + "ItemsToGather": [ + { + "QuestAcceptedAsClass": "Miner", + "ItemId": 29515, + "ItemCount": 3 + }, + { + "QuestAcceptedAsClass": "Botanist", + "ItemId": 29541, + "ItemCount": 3 + } + ] + }, + { + "DataId": 1032862, + "Position": { + "X": 777.06555, + "Y": -45.76794, + "Z": -209.21649 + }, + "TerritoryId": 817, + "InteractionType": "Interact", + "Fly": true, + "AetheryteShortcut": "Rak'tika - Fanow" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1032659, + "Position": { + "X": 802.79236, + "Y": -45.91779, + "Z": -218.58557 + }, + "TerritoryId": 817, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Story/3804_The Third Stela A Famine for Fishmen.json b/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Story/3804_The Third Stela A Famine for Fishmen.json new file mode 100644 index 00000000..96d75a52 --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Story/3804_The Third Stela A Famine for Fishmen.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": 1032660, + "Position": { + "X": 804.4098, + "Y": -45.9255, + "Z": -216.41876 + }, + "TerritoryId": 817, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1032660, + "Position": { + "X": 804.4098, + "Y": -45.9255, + "Z": -216.41876 + }, + "TerritoryId": 817, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} diff --git a/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Story/3805_The Third Stela A Feast for Fishmen.json b/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Story/3805_The Third Stela A Feast for Fishmen.json new file mode 100644 index 00000000..9f606918 --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Allied Societies/Qitari/Story/3805_The Third Stela A Feast for Fishmen.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": 1032659, + "Position": { + "X": 802.79236, + "Y": -45.91779, + "Z": -218.58557 + }, + "TerritoryId": 817, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1032659, + "Position": { + "X": 802.79236, + "Y": -45.91779, + "Z": -218.58557 + }, + "TerritoryId": 817, + "InteractionType": "CompleteQuest" + } + ] + } + ] +} From 367c00c79c57a0f61c1ea4273dd12e9ace378505 Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Mon, 23 Sep 2024 01:06:58 +0800 Subject: [PATCH 328/450] Added emote "Sundrop Dance" --- 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 e5d946bd..0c0661f7 100644 --- a/QuestPaths/quest-v1.json +++ b/QuestPaths/quest-v1.json @@ -808,7 +808,8 @@ "comfort", "battlestance", "doze", - "box" + "box", + "sundropdance" ] } } diff --git a/Questionable.Model/Questing/Converter/EmoteConverter.cs b/Questionable.Model/Questing/Converter/EmoteConverter.cs index 183bf480..213d909a 100644 --- a/Questionable.Model/Questing/Converter/EmoteConverter.cs +++ b/Questionable.Model/Questing/Converter/EmoteConverter.cs @@ -36,5 +36,6 @@ public sealed class EmoteConverter() : EnumConverter(Values) { EEmote.BattleStance, "battlestance" }, { EEmote.Doze, "doze" }, { EEmote.Box, "box" }, + { EEmote.SundropDance, "sundropdance"} }; } diff --git a/Questionable.Model/Questing/EEmote.cs b/Questionable.Model/Questing/EEmote.cs index 60e9661a..4f1b2c6f 100644 --- a/Questionable.Model/Questing/EEmote.cs +++ b/Questionable.Model/Questing/EEmote.cs @@ -37,4 +37,5 @@ public enum EEmote BattleStance = 121, Doze = 13, Box = 166, + SundropDance = 120, } From 61b3abc3cd94af8e0d5c6a6b8de0f1f45f5e7573 Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Mon, 23 Sep 2024 01:49:45 +0800 Subject: [PATCH 329/450] Added new daily quests: - Electric Gunduloo - Wildwort and Sundrop - Vanish, Vile Vundu --- .../Dailies/2198_Electric Gunduloo.json | 107 ++++++++++++++++ .../Dailies/2199_Wildwort and Sundrop.json | 103 +++++++++++++++ .../Dailies/2200_Vanish, Vile Vundu.json | 121 ++++++++++++++++++ 3 files changed, 331 insertions(+) create mode 100644 QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2198_Electric Gunduloo.json create mode 100644 QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2199_Wildwort and Sundrop.json create mode 100644 QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2200_Vanish, Vile Vundu.json 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 new file mode 100644 index 00000000..e6d8e71b --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2198_Electric Gunduloo.json @@ -0,0 +1,107 @@ +{ + "$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": 1016241, + "Position": { + "X": -182.94049, + "Y": 213.612, + "Z": 204.57764 + }, + "TerritoryId": 401, + "InteractionType": "Emote", + "Emote": "sundropdance", + "Fly": true + }, + { + "Position": { + "X": -182.94049, + "Y": 213.612, + "Z": 204.57764 + }, + "TerritoryId": 401, + "InteractionType": "Combat", + "EnemySpawnType": "OverworldEnemies", + "KillEnemyDataIds": [5235], + "CombatDelaySecondsAtStart": 0 + }, + { + "DataId": 1016239, + "Position": { + "X": -64.683044, + "Y": 212.9267, + "Z": 101.33508 + }, + "TerritoryId": 401, + "InteractionType": "Emote", + "Emote": "sundropdance", + "Fly": true + }, + { + "DataId": 1016240, + "Position": { + "X": 233.23413, + "Y": 240.42369, + "Z": 118.30322 + }, + "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 + } + ] + } + ] +} 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 new file mode 100644 index 00000000..31fe7005 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2199_Wildwort and Sundrop.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": 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": 2006708, + "Position": { + "X": -198.41309, + "Y": 93.55298, + "Z": -303.88342 + }, + "TerritoryId": 401, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 2006695, + "Position": { + "X": 111.46704, + "Y": -84.55023, + "Z": 429.83142 + }, + "TerritoryId": 401, + "InteractionType": "UseItem", + "ItemId": 2001927, + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 2006696, + "Position": { + "X": 111.436646, + "Y": -83.024414, + "Z": 428.85486 + }, + "TerritoryId": 401, + "InteractionType": "Emote", + "Emote": "sundropdance" + } + ] + }, + { + "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/2200_Vanish, Vile Vundu.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2200_Vanish, Vile Vundu.json new file mode 100644 index 00000000..8750abea --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2200_Vanish, Vile Vundu.json @@ -0,0 +1,121 @@ +{ + "$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": 1016093, + "Position": { + "X": -776.0281, + "Y": -133.35559, + "Z": -414.32825 + }, + "TerritoryId": 401, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1016242, + "Position": { + "X": 284.19922, + "Y": 28.574171, + "Z": -636.3775 + }, + "TerritoryId": 401, + "InteractionType": "Action", + "Action": "Buffet (Sanuwa)", + "Fly": true + } + ] + }, + { + "Sequence": 4, + "Steps": [ + { + "DataId": 1016378, + "Position": { + "X": 338.4298, + "Y": 31.483738, + "Z": -562.1882 + }, + "TerritoryId": 401, + "InteractionType": "Action", + "Action": "Buffet (Sanuwa)", + "Fly": true + } + ] + }, + { + "Sequence": 5, + "Steps": [ + { + "DataId": 1016379, + "Position": { + "X": 501.27405, + "Y": 112.648964, + "Z": -182.97095 + }, + "TerritoryId": 401, + "InteractionType": "Action", + "Action": "Buffet (Sanuwa)", + "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 + } + ] + } + ] +} From 20e9319f322776288678d816a1e04551304f4757 Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Tue, 24 Sep 2024 00:14:55 +0800 Subject: [PATCH 330/450] Cleaned-up sequence 255 for some daily quests --- .../Dailies/2182_Flight of the Midges.json | 12 +---------- .../2183_Fishing in Troubled Waters.json | 12 +---------- .../Dailies/2184_Reeling in the Vundu.json | 12 +---------- .../Vanu Vanu/Dailies/2185_Nailed Down.json | 12 +---------- .../2186_The House That Ginu Built.json | 12 +---------- .../Dailies/2187_A Bone to Pick.json | 12 +---------- .../Dailies/2188_A Hut to Dye For.json | 21 +------------------ 7 files changed, 7 insertions(+), 86 deletions(-) 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 21f20e52..3ad2f847 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 @@ -102,17 +102,6 @@ { "Sequence": 255, "Steps": [ - { - "Position": { - "X": -660.26556, - "Y": -49.27812, - "Z": -403.1036 - }, - "TerritoryId": 401, - "InteractionType": "WalkTo", - "AetheryteShortcut": "The Sea of Clouds - Ok' Zundu", - "Fly": true - }, { "DataId": 1016091, "Position": { @@ -122,6 +111,7 @@ }, "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/2183_Fishing in Troubled Waters.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2183_Fishing in Troubled Waters.json index ba9afb37..68dd1ece 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 @@ -78,17 +78,6 @@ { "Sequence": 255, "Steps": [ - { - "Position": { - "X": -660.26556, - "Y": -49.27812, - "Z": -403.1036 - }, - "TerritoryId": 401, - "InteractionType": "WalkTo", - "AetheryteShortcut": "The Sea of Clouds - Ok' Zundu", - "Fly": true - }, { "DataId": 1016090, "Position": { @@ -98,6 +87,7 @@ }, "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/2184_Reeling in the Vundu.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2184_Reeling in the Vundu.json index 4f7daad7..0ce28316 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 @@ -81,17 +81,6 @@ { "Sequence": 255, "Steps": [ - { - "Position": { - "X": -660.26556, - "Y": -49.27812, - "Z": -403.1036 - }, - "TerritoryId": 401, - "InteractionType": "WalkTo", - "AetheryteShortcut": "The Sea of Clouds - Ok' Zundu", - "Fly": true - }, { "DataId": 1016090, "Position": { @@ -101,6 +90,7 @@ }, "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/2185_Nailed Down.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2185_Nailed Down.json index 9f0d11ef..0cb06ebf 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 @@ -101,17 +101,6 @@ { "Sequence": 255, "Steps": [ - { - "Position": { - "X": -660.26556, - "Y": -49.27812, - "Z": -403.1036 - }, - "TerritoryId": 401, - "InteractionType": "WalkTo", - "AetheryteShortcut": "The Sea of Clouds - Ok' Zundu", - "Fly": true - }, { "DataId": 1016092, "Position": { @@ -121,6 +110,7 @@ }, "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/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 25dff501..61adcd39 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 @@ -67,17 +67,6 @@ { "Sequence": 255, "Steps": [ - { - "Position": { - "X": -660.26556, - "Y": -49.27812, - "Z": -403.1036 - }, - "TerritoryId": 401, - "InteractionType": "WalkTo", - "AetheryteShortcut": "The Sea of Clouds - Ok' Zundu", - "Fly": true - }, { "DataId": 1016092, "Position": { @@ -87,6 +76,7 @@ }, "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/2187_A Bone to Pick.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2187_A Bone to Pick.json index c001f032..d21382b9 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 @@ -73,17 +73,6 @@ { "Sequence": 255, "Steps": [ - { - "Position": { - "X": -660.26556, - "Y": -49.27812, - "Z": -403.1036 - }, - "TerritoryId": 401, - "InteractionType": "WalkTo", - "AetheryteShortcut": "The Sea of Clouds - Ok' Zundu", - "Fly": true - }, { "DataId": 1016092, "Position": { @@ -93,6 +82,7 @@ }, "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/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 076c3a2d..484d9834 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,26 +84,6 @@ { "Sequence": 255, "Steps": [ - { - "Position": { - "X": 297.20715, - "Y": 106.011185, - "Z": -25.524097 - }, - "TerritoryId": 401, - "InteractionType": "WalkTo" - }, - { - "Position": { - "X": -660.26556, - "Y": -49.27812, - "Z": -403.1036 - }, - "TerritoryId": 401, - "InteractionType": "WalkTo", - "AetheryteShortcut": "The Sea of Clouds - Ok' Zundu", - "Fly": true - }, { "DataId": 1016092, "Position": { @@ -113,6 +93,7 @@ }, "TerritoryId": 401, "InteractionType": "CompleteQuest", + "AetheryteShortcut": "The Sea of Clouds - Ok' Zundu", "Fly": true } ] From 94e20fdcbfd481db4ec482495471e7272067cacc Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Tue, 24 Sep 2024 00:33:35 +0800 Subject: [PATCH 331/450] Added the following daily quests: - Veni, Vundu, Vici - Pussyfooting About --- .../Dailies/2171_Veni, Vundu, Vici.json | 91 +++++++++++++++ .../Dailies/2172_Pussyfooting About.json | 110 ++++++++++++++++++ 2 files changed, 201 insertions(+) create mode 100644 QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2171_Veni, Vundu, Vici.json create mode 100644 QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2172_Pussyfooting About.json 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 new file mode 100644 index 00000000..f29907ea --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2171_Veni, Vundu, Vici.json @@ -0,0 +1,91 @@ +{ + "$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": 2006639, + "Position": { + "X": -270.3136, + "Y": -13.962036, + "Z": -635.2484 + }, + "TerritoryId": 401, + "InteractionType": "Interact", + "Fly": true + }, + { + "DataId": 2006642, + "Position": { + "X": -245.41089, + "Y": -13.229614, + "Z": -608.2704 + }, + "TerritoryId": 401, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [5236], + "Fly": true + }, + { + "DataId": 2006640, + "Position": { + "X": -82.230896, + "Y": -10.727112, + "Z": -637.90344 + }, + "TerritoryId": 401, + "InteractionType": "Interact", + "Fly": true + }, + { + "DataId": 2006641, + "Position": { + "X": -24.765442, + "Y": 5.3253784, + "Z": -657.70966 + }, + "TerritoryId": 401, + "InteractionType": "Combat", + "EnemySpawnType": "AfterInteraction", + "KillEnemyDataIds": [5236], + "Fly": true + } + ] + }, + { + "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/2172_Pussyfooting About.json b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2172_Pussyfooting About.json new file mode 100644 index 00000000..0771c292 --- /dev/null +++ b/QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2172_Pussyfooting About.json @@ -0,0 +1,110 @@ +{ + "$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": 2006645, + "Position": { + "X": -473.10602, + "Y": -56.01587, + "Z": -624.1398 + }, + "TerritoryId": 401, + "InteractionType": "Interact", + "Fly": true + }, + { + "DataId": 2006644, + "Position": { + "X": -365.92664, + "Y": -57.053528, + "Z": -579.553 + }, + "TerritoryId": 401, + "InteractionType": "Interact", + "Fly": true + }, + { + "DataId": 2006643, + "Position": { + "X": -381.9486, + "Y": -56.50421, + "Z": -521.8433 + }, + "TerritoryId": 401, + "InteractionType": "Interact", + "Fly": true + } + ] + }, + { + "Sequence": 2, + "Steps": [ + { + "DataId": 1016089, + "Position": { + "X": -799.46594, + "Y": -133.2695, + "Z": -404.1352 + }, + "TerritoryId": 401, + "InteractionType": "Interact", + "AetheryteShortcut": "The Sea of Clouds - Ok' Zundu", + "Fly": true + } + ] + }, + { + "Sequence": 3, + "Steps": [ + { + "DataId": 1012056, + "Position": { + "X": -658.89984, + "Y": -127.78361, + "Z": 622.98 + }, + "TerritoryId": 401, + "InteractionType": "Interact", + "AetheryteShortcut": "The Sea of Clouds - Camp Cloudtop", + "Fly": true + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1016089, + "Position": { + "X": -799.46594, + "Y": -133.2695, + "Z": -404.1352 + }, + "TerritoryId": 401, + "InteractionType": "Interact", + "AetheryteShortcut": "The Sea of Clouds - Ok' Zundu", + "Fly": true + } + ] + } + ] +} From 878f0b1ad17ac600a7bdfd2061e5cfd9b03f17b9 Mon Sep 17 00:00:00 2001 From: kaiser Date: Tue, 24 Sep 2024 02:51:04 +1000 Subject: [PATCH 332/450] chore: review amends. Remove disabled, and changed author. --- .../Loporrits/Dailies/4693_Carrotlight, Carrot Bright.json | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Dailies/4693_Carrotlight, Carrot Bright.json b/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Dailies/4693_Carrotlight, Carrot Bright.json index e5ec744e..479eedb1 100644 --- a/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Dailies/4693_Carrotlight, Carrot Bright.json +++ b/QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Dailies/4693_Carrotlight, Carrot Bright.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, From 963442ba25edc5697f3a13cd29f99ae44fb01627 Mon Sep 17 00:00:00 2001 From: kaiser Date: Tue, 24 Sep 2024 03:18:29 +1000 Subject: [PATCH 333/450] 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 64b7fe95..1cf674ab 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 38e37f32..5c731ab8 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", From d7d5aee3e18f73154a358d114da76a68371560fa Mon Sep 17 00:00:00 2001 From: kaiser Date: Tue, 24 Sep 2024 03:36:03 +1000 Subject: [PATCH 334/450] 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 e890b43e..43bd5f8d 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": [ From 01ad85e2430eeedf3a7e876ab22011e9023a71f2 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Mon, 23 Sep 2024 20:27:07 +0200 Subject: [PATCH 335/450] Version Bump --- Directory.Build.targets | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Directory.Build.targets b/Directory.Build.targets index aac0b377..6aced3c9 100644 --- a/Directory.Build.targets +++ b/Directory.Build.targets @@ -1,5 +1,5 @@ - 3.6 + 3.7 From 4bd0b990b9fc8d35214cc7dadd25bdb00d915106 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Mon, 23 Sep 2024 20:32:54 +0200 Subject: [PATCH 336/450] Update source gen --- .../RoslynElements/PurchaseMenuExtensions.cs | 28 +++++++++++++++++++ QuestPathGenerator/RoslynShortcuts.cs | 1 + 2 files changed, 29 insertions(+) create mode 100644 QuestPathGenerator/RoslynElements/PurchaseMenuExtensions.cs diff --git a/QuestPathGenerator/RoslynElements/PurchaseMenuExtensions.cs b/QuestPathGenerator/RoslynElements/PurchaseMenuExtensions.cs new file mode 100644 index 00000000..251e64ce --- /dev/null +++ b/QuestPathGenerator/RoslynElements/PurchaseMenuExtensions.cs @@ -0,0 +1,28 @@ +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 PurchaseMenuExtensions +{ + public static ExpressionSyntax ToExpressionSyntax(this PurchaseMenu purchaseMenu) + { + PurchaseMenu emptyMenu = new(); + return ObjectCreationExpression( + IdentifierName(nameof(PurchaseMenu))) + .WithInitializer( + InitializerExpression( + SyntaxKind.ObjectInitializerExpression, + SeparatedList( + SyntaxNodeList( + Assignment(nameof(PurchaseMenu.ExcelSheet), purchaseMenu.ExcelSheet, + emptyMenu.ExcelSheet) + .AsSyntaxNodeOrToken(), + Assignment(nameof(PurchaseMenu.Key), purchaseMenu.Key, + emptyMenu.Key) + .AsSyntaxNodeOrToken())))); + } +} diff --git a/QuestPathGenerator/RoslynShortcuts.cs b/QuestPathGenerator/RoslynShortcuts.cs index cc146a0b..4147e47b 100644 --- a/QuestPathGenerator/RoslynShortcuts.cs +++ b/QuestPathGenerator/RoslynShortcuts.cs @@ -57,6 +57,7 @@ public static class RoslynShortcuts DialogueChoice dialogueChoice => dialogueChoice.ToExpressionSyntax(), JumpDestination jumpDestination => jumpDestination.ToExpressionSyntax(), ExcelRef excelRef => excelRef.ToExpressionSyntax(), + PurchaseMenu purchaseMenu => purchaseMenu.ToExpressionSyntax(), ComplexCombatData complexCombatData => complexCombatData.ToExpressionSyntax(), QuestWorkValue questWorkValue => questWorkValue.ToExpressionSyntax(), List list => list.ToExpressionSyntax(), // TODO fix in AssignmentList From c6739b3cced6c441d1246ac41835b2dcb787065f Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Wed, 25 Sep 2024 00:07:34 +0800 Subject: [PATCH 337/450] 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 bdbb1696..bd564434 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": [ From 225ffe7ba0f5369d97697a3cd4fbcb07d899f10f Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Wed, 25 Sep 2024 00:55:29 +0800 Subject: [PATCH 338/450] 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 00000000..bbf06ae7 --- /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 + } + ] + } + ] +} From 412a42a0a1e35676e04f612f0686ab1d051eeab5 Mon Sep 17 00:00:00 2001 From: kaiser Date: Wed, 25 Sep 2024 19:54:38 +1000 Subject: [PATCH 339/450] 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 00000000..0ae4dcff --- /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 + } + } + } + ] + } + ] +} From c60724e3672f136d4dcc40d15fa2387bb86c429d Mon Sep 17 00:00:00 2001 From: kaiser Date: Wed, 25 Sep 2024 19:56:42 +1000 Subject: [PATCH 340/450] 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 0ae4dcff..794b3e02 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": [ From 4f6914d835f464c4cbff4e3c41a6d8d631c108a7 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Wed, 25 Sep 2024 20:07:40 +0200 Subject: [PATCH 341/450] 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 4af7ede2..8c7dedd4 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 b736de2e..fc1734d3 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 14552c21..38fa30cd 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 52229aa1..ee5c50a0 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; + } } /// From 143fc4c836bdfd0b7eefe3e97f6d23f0f7703ea7 Mon Sep 17 00:00:00 2001 From: Stefan Belmont Date: Thu, 26 Sep 2024 01:28:52 +0100 Subject: [PATCH 342/450] 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 00000000..e8095645 --- /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" + } + ] + } + ] +} From 72a2a4c7166e1a15724275d1e72daafb387c75a2 Mon Sep 17 00:00:00 2001 From: Stefan Belmont Date: Thu, 26 Sep 2024 03:46:18 +0100 Subject: [PATCH 343/450] 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 00000000..09507a07 --- /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" + } + ] + } + ] +} From 77c83ca5c0e5ac8209ab18eaf814eec4cee3795b Mon Sep 17 00:00:00 2001 From: Stefan Belmont Date: Thu, 26 Sep 2024 04:08:32 +0100 Subject: [PATCH 344/450] 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 09507a07..b3da475f 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" } ] From d3226e66b0b1e3e0da58aad244bfbfad2afaa186 Mon Sep 17 00:00:00 2001 From: Stefan Belmont Date: Thu, 26 Sep 2024 04:12:28 +0100 Subject: [PATCH 345/450] 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 b3da475f..1d168c8e 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." } ] }, From b563a42bda974684e99806214bb68d463551fb85 Mon Sep 17 00:00:00 2001 From: Stefan Belmont Date: Thu, 26 Sep 2024 05:13:22 +0100 Subject: [PATCH 346/450] +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 00000000..54100ea7 --- /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 1d168c8e..0bc0a04a 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." } ] }, From 228a06723117766b5ba527027baec76773c599f7 Mon Sep 17 00:00:00 2001 From: kaiser Date: Thu, 26 Sep 2024 18:20:00 +1000 Subject: [PATCH 347/450] 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 00000000..caaaa04f --- /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 + } + } + } + ] + } + ] +} From c472cf703dfa158412d0da9f970a84842f30f387 Mon Sep 17 00:00:00 2001 From: kaiser Date: Thu, 26 Sep 2024 18:37:57 +1000 Subject: [PATCH 348/450] 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 d731dcbc..0b569942 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 + } + } + } } ] } From 3a1438202d4a97df10955d10f2d96a38a8fe3dbf Mon Sep 17 00:00:00 2001 From: kaiser Date: Thu, 26 Sep 2024 18:40:48 +1000 Subject: [PATCH 349/450] 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 0b569942..38e7af09 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 } ] }, From d5244689c90fcbebfeeda68c5814972c08514f7b Mon Sep 17 00:00:00 2001 From: kaiser Date: Thu, 26 Sep 2024 18:42:01 +1000 Subject: [PATCH 350/450] 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 38e7af09..8cdedf70 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 } } } From fcf99088a7dee13aa369790b2ed547b698a3d4cd Mon Sep 17 00:00:00 2001 From: kaiser Date: Thu, 26 Sep 2024 18:42:58 +1000 Subject: [PATCH 351/450] 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 8cdedf70..0df5b080 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": [ From 03d69692d018a5eb798835e1e60bb9d84ac44c03 Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Thu, 26 Sep 2024 22:13:56 +0800 Subject: [PATCH 352/450] 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 00000000..e04cb159 --- /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 00000000..62988c55 --- /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 00000000..0d571b1c --- /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" + } + ] + } + ] +} From 22b9c6f12afc1643a82ede0eea570914f1aeb2d3 Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Thu, 26 Sep 2024 22:33:17 +0800 Subject: [PATCH 353/450] 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 e04cb159..4471cd3c 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 } ] From ac5f7a4e4f19970584f23bf73e172afabe44100b Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Fri, 27 Sep 2024 00:10:33 +0800 Subject: [PATCH 354/450] 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 00000000..81c0e3ac --- /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 + } + ] + } + ] +} From ad905bbd7fff3b057206502de6a6dda36a225706 Mon Sep 17 00:00:00 2001 From: Stefan Belmont Date: Thu, 26 Sep 2024 20:15:12 +0100 Subject: [PATCH 355/450] +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 0bc0a04a..86f42705 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 00000000..7e337ac1 --- /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" + } + ] + } + ] +} From 6bf0bd1eb97457c4e960287685866234137e9be2 Mon Sep 17 00:00:00 2001 From: Stefan Belmont Date: Thu, 26 Sep 2024 20:44:56 +0100 Subject: [PATCH 356/450] +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 00000000..f4f62bf6 --- /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" + } + ] + } + ] +} From eeea9a66f6ec2bf6ae57cc0fe0255f45424334be Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Thu, 26 Sep 2024 22:11:05 +0200 Subject: [PATCH 357/450] 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 0771c292..7fd649f6 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 } From 22949d0e327ad89276a1cef233803f82dfa97625 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Thu, 26 Sep 2024 22:50:05 +0200 Subject: [PATCH 358/450] 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 8db84884..6b4070d0 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 } ] }, From 2e7946fade99c2c88f92bab52bfb627f6b297780 Mon Sep 17 00:00:00 2001 From: Stefan Belmont Date: Fri, 27 Sep 2024 01:59:44 +0100 Subject: [PATCH 359/450] +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 00000000..16c5b261 --- /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" + } + ] + } + ] +} From b877c5240fcb420cc7d8c859279965709cedbf39 Mon Sep 17 00:00:00 2001 From: Stefan Belmont Date: Fri, 27 Sep 2024 02:18:11 +0100 Subject: [PATCH 360/450] +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 00000000..c9327df7 --- /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 7e337ac1..5ff36d18 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 f4f62bf6..e77a859b 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 } ] }, From 1b8033322b5c5849941e22b3bc8d8a99e43f491f Mon Sep 17 00:00:00 2001 From: Stefan Belmont Date: Fri, 27 Sep 2024 02:36:44 +0100 Subject: [PATCH 361/450] +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 00000000..07a989a0 --- /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" + } + ] + } + ] +} From 9dd7a319546e2e4dec4a2e4db8ef5228cf130da2 Mon Sep 17 00:00:00 2001 From: Stefan Belmont Date: Fri, 27 Sep 2024 03:01:38 +0100 Subject: [PATCH 362/450] +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 00000000..12e6840b --- /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" + } + ] + } + ] +} From b06eec1d5fed5d98ab1809c1399ed67df53a8470 Mon Sep 17 00:00:00 2001 From: Stefan Belmont Date: Fri, 27 Sep 2024 03:33:07 +0100 Subject: [PATCH 363/450] +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 00000000..062dcd91 --- /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" + } + ] + } + ] +} From 50652dc0b3dfd13c733c8e97849e660a49221807 Mon Sep 17 00:00:00 2001 From: Stefan Belmont Date: Fri, 27 Sep 2024 04:23:30 +0100 Subject: [PATCH 364/450] +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 00000000..44a0d55b --- /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" + } + ] + } + ] +} From 6e2ef0b958233156b75a2c40478c2d6e7dc72a43 Mon Sep 17 00:00:00 2001 From: Stefan Belmont Date: Fri, 27 Sep 2024 04:57:55 +0100 Subject: [PATCH 365/450] +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 00000000..4a4dcc08 --- /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" + } + ] + } + ] +} From a3c9d64b8c1672e151086cbce37f6b010d0cb287 Mon Sep 17 00:00:00 2001 From: Stefan Belmont Date: Fri, 27 Sep 2024 08:09:07 +0100 Subject: [PATCH 366/450] +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 00000000..af84b253 --- /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" + } + ] + } + ] +} From 0da44c965e268f9d6f836e780da2d80f3d857631 Mon Sep 17 00:00:00 2001 From: Stefan Belmont Date: Fri, 27 Sep 2024 10:10:27 +0100 Subject: [PATCH 367/450] +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 00000000..b9922655 --- /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" + } + ] + } + ] +} From 1314fc4e62d0d2b24e41e7c95577e23ab0b51a24 Mon Sep 17 00:00:00 2001 From: Stefan Belmont Date: Fri, 27 Sep 2024 10:52:41 +0100 Subject: [PATCH 368/450] +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 00000000..dff6a220 --- /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" + } + ] + } + ] +} From d1a3b2e1e4c2a569a6e201297f1c3201cbaf7c67 Mon Sep 17 00:00:00 2001 From: Stefan Belmont Date: Fri, 27 Sep 2024 11:09:27 +0100 Subject: [PATCH 369/450] +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 00000000..55d6d41f --- /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" + } + ] + } + ] +} From 3abce26e53d70d9088be000b6b792bdf0b9d44eb Mon Sep 17 00:00:00 2001 From: Stefan Belmont Date: Fri, 27 Sep 2024 11:40:53 +0100 Subject: [PATCH 370/450] +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 00000000..03f41e4a --- /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" + } + ] + } + ] +} From f8a8505036176ece25fbcac65e0ea13d71557e79 Mon Sep 17 00:00:00 2001 From: Stefan Belmont Date: Fri, 27 Sep 2024 12:46:09 +0100 Subject: [PATCH 371/450] +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 00000000..48e29f16 --- /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" + } + ] + } + ] +} From da9284ba0820b27287f92994c9e02ccc59c276d8 Mon Sep 17 00:00:00 2001 From: Stefan Belmont Date: Fri, 27 Sep 2024 13:07:12 +0100 Subject: [PATCH 372/450] +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 00000000..f49961d5 --- /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" + } + ] + } + ] +} From 2765f11ec9fe572c54503187fb48fae50bb667bc Mon Sep 17 00:00:00 2001 From: Stefan Belmont Date: Fri, 27 Sep 2024 23:59:59 +0100 Subject: [PATCH 373/450] +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 00000000..19aad92e --- /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 + } + ] + } + ] +} From 4702fcf85a5ae951e70d25280caf1946a9fb771b Mon Sep 17 00:00:00 2001 From: Stefan Belmont Date: Sat, 28 Sep 2024 01:10:41 +0100 Subject: [PATCH 374/450] 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 0c0661f7..163d3207 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 32a6654f..c178ad79 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 bcc676e4..d331d80c 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; } } From 82e12b660e08d9e639bebc86b3eb05a065c11a73 Mon Sep 17 00:00:00 2001 From: Stefan Belmont Date: Sat, 28 Sep 2024 01:29:23 +0100 Subject: [PATCH 375/450] 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 163d3207..0c0661f7 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 c178ad79..32a6654f 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 d331d80c..bcc676e4 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; } } From 04d6a81c14878c40ce0bbf5c550331e86795c67a Mon Sep 17 00:00:00 2001 From: Stefan Belmont Date: Sat, 28 Sep 2024 01:57:23 +0100 Subject: [PATCH 376/450] +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 00000000..0001b8fc --- /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" + } + ] + } + ] +} From 6d73427ab5dadd64dfc75438a89ea2592bacb614 Mon Sep 17 00:00:00 2001 From: Stefan Belmont Date: Sat, 28 Sep 2024 02:09:29 +0100 Subject: [PATCH 377/450] +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 00000000..3ee5020c --- /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" + } + ] + } + ] + } + ] +} From 81808eda12ccc9f8269bf3a3e4d59ac859073fc6 Mon Sep 17 00:00:00 2001 From: Stefan Belmont Date: Sat, 28 Sep 2024 02:29:31 +0100 Subject: [PATCH 378/450] +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 00000000..c452a4ea --- /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" + } + ] + } + ] +} From 93c56c050b51c2bc21a2017ec8bbc1064ec20d83 Mon Sep 17 00:00:00 2001 From: Stefan Belmont Date: Sat, 28 Sep 2024 03:36:53 +0100 Subject: [PATCH 379/450] +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 00000000..60c26c49 --- /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" + } + ] + } + ] +} From cd2070bb631dcb364b4993ff508e813bb70b5a45 Mon Sep 17 00:00:00 2001 From: Stefan Belmont Date: Sat, 28 Sep 2024 04:05:07 +0100 Subject: [PATCH 380/450] +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 00000000..47cf187f --- /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" + } + ] + } + ] + } + ] +} From 54193662d14588fc9b8392b9a8bb4e3adf7d638b Mon Sep 17 00:00:00 2001 From: Stefan Belmont Date: Sat, 28 Sep 2024 04:28:29 +0100 Subject: [PATCH 381/450] +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 3ee5020c..1332dffd 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 00000000..a9ceee1b --- /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" + } + ] + } + ] +} From 671ad2c54e683b5785cd1d706c0ade5f42238f67 Mon Sep 17 00:00:00 2001 From: Stefan Belmont Date: Sat, 28 Sep 2024 05:07:22 +0100 Subject: [PATCH 382/450] +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 00000000..63c4f8df --- /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" + } + ] + } + ] +} From b082e8ae42f9285a088c4f328ed1d622a27c2df7 Mon Sep 17 00:00:00 2001 From: Stefan Belmont Date: Sat, 28 Sep 2024 05:40:05 +0100 Subject: [PATCH 383/450] +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 00000000..3d25099e --- /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 + } + ] + } + ] +} From b41d47a16238dd56b716f60d74e6264df28afb11 Mon Sep 17 00:00:00 2001 From: Stefan Belmont Date: Sat, 28 Sep 2024 05:53:25 +0100 Subject: [PATCH 384/450] 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 0c0661f7..163d3207 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 32a6654f..fba2b169 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 bcc676e4..d331d80c 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; } } From 77d1e27d452258321cf5dea4a004384884917a2e Mon Sep 17 00:00:00 2001 From: Stefan Belmont Date: Sat, 28 Sep 2024 06:10:25 +0100 Subject: [PATCH 385/450] 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 00000000..281b1eec --- /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" + } + ] + } + ] +} From d4ae5f95b25942b84f76e56381c5dd522d6dab07 Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Sat, 28 Sep 2024 16:12:33 +0800 Subject: [PATCH 386/450] 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 00000000..3f662fcb --- /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 00000000..b41fc640 --- /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" + } + ] + } + ] +} From 38f5cd66cdce01880ad3cdd020a8e425b1c025c1 Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Sat, 28 Sep 2024 16:13:16 +0800 Subject: [PATCH 387/450] 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 484d9834..935cc0a3 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": { From 90b543c95ad84e9512747d4dbc80febe04666994 Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Sat, 28 Sep 2024 17:11:30 +0800 Subject: [PATCH 388/450] 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 00000000..afc10e11 --- /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 00000000..a7c09b47 --- /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 00000000..232222cb --- /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 + } + ] + } + ] +} From 79c52cf45dbf9477a13d683bb5b9aabe784e5699 Mon Sep 17 00:00:00 2001 From: Stefan Belmont Date: Sat, 28 Sep 2024 10:28:48 +0100 Subject: [PATCH 389/450] 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 163d3207..0c0661f7 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 fba2b169..32a6654f 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 d331d80c..bcc676e4 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; } } From 3c2d29df1cdc1752e507c51ea3623d3e722c0f07 Mon Sep 17 00:00:00 2001 From: Stefan Belmont Date: Sat, 28 Sep 2024 10:33:21 +0100 Subject: [PATCH 390/450] 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 3d25099e..b9a1da6a 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, From 619b5431d5b9459df644db4652bafecaee0c916a Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sat, 28 Sep 2024 15:47:48 +0200 Subject: [PATCH 391/450] 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 50263051..724acaf4 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); From 17cfda172b8c819a5cc8485c7f15a3c5f7e9c22b Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sat, 28 Sep 2024 23:28:53 +0200 Subject: [PATCH 392/450] 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 00000000..8bb59514 --- /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 00000000..7b90c2f7 --- /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 a8d5835c..a8084200 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; } From 2e98c94ca5ac1f603c3a9b3986d14b83c61db493 Mon Sep 17 00:00:00 2001 From: kaiser Date: Sun, 29 Sep 2024 14:09:29 +1000 Subject: [PATCH 393/450] 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 794b3e02..076643a9 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, From ffb65babd61cae2bd56c4739d168cd5deba33a3e Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sun, 29 Sep 2024 12:03:57 +0200 Subject: [PATCH 394/450] 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 bbf06ae7..fbbafa26 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": [ { From 74ec55ae4b5dd7d56b1da8e99fcc73b3a696aaed Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Mon, 30 Sep 2024 00:05:35 +0800 Subject: [PATCH 395/450] 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 00000000..e7e98bf5 --- /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" + } + ] + } + ] +} From 86caa24b06da6899e294369a8e486fca78e0376f Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Fri, 27 Sep 2024 02:26:16 +0800 Subject: [PATCH 396/450] 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 00000000..2a43a868 --- /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 00000000..f3ee8c5a --- /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 00000000..f20f18c5 --- /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 + } + ] + } + ] +} From 087a6068d095691b3a33f593f90b35d4497104ff Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Sat, 28 Sep 2024 16:16:14 +0800 Subject: [PATCH 397/450] 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 00000000..dcf8bcfe --- /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" + } + ] + } + ] +} From e0056147d29af6f55f735c9d2dc6d0f27e67e4f2 Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Sun, 29 Sep 2024 01:02:40 +0800 Subject: [PATCH 398/450] 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 dcf8bcfe..41b1d804 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] } ] }, From eae070d6fb2d792d51bea625e57cbe8e22bdc185 Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Sun, 29 Sep 2024 01:06:22 +0800 Subject: [PATCH 399/450] 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 2a43a868..9da9135a 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 f3ee8c5a..bc0fa0f7 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 f20f18c5..8cafa32b 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 41b1d804..75895739 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", From 95dd132dcbc9274069558931c318b0e47690a495 Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Sun, 29 Sep 2024 01:19:04 +0800 Subject: [PATCH 400/450] 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 00000000..9da1c6c8 --- /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" + } + ] + } + ] + } + ] +} From d3389baa4585f39dd01c0a5f8e73a97c304d0d70 Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Sun, 29 Sep 2024 01:53:40 +0800 Subject: [PATCH 401/450] 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 0c0661f7..b0fd35d2 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 32a6654f..6f0be40e 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 bcc676e4..27bcca1f 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 From f7ba64d34bad007567447162dbd5060c8bc492eb Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Sun, 29 Sep 2024 02:25:59 +0800 Subject: [PATCH 402/450] 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 00000000..658f8fdb --- /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 00000000..ba5a8f43 --- /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 00000000..f08218d8 --- /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" + } + ] + } + ] +} From b5ba224f108d941f2772df8d4e98521d561ae60c Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Wed, 25 Sep 2024 00:38:31 +0800 Subject: [PATCH 403/450] 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 00000000..1f83afd0 --- /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 + } + ] + } + ] +} From 46d54f4d7928b3310ef1fe94ef0472678b1fc1c3 Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Thu, 26 Sep 2024 21:51:42 +0800 Subject: [PATCH 404/450] 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 00000000..933aa250 --- /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" + } + ] + } + ] +} From 7436f03199ca0242d8eb8b6e272a976d5e03dab9 Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Mon, 30 Sep 2024 00:24:13 +0800 Subject: [PATCH 405/450] 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 9da9135a..00000000 --- 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 bc0fa0f7..00000000 --- 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" - } - ] - } - ] -} From 46e4ab609e7194010fb227e69f56488509de0d6a Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Thu, 26 Sep 2024 23:51:21 +0800 Subject: [PATCH 406/450] 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 00000000..bc9a3ec9 --- /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 + } + ] + } + ] +} From 9611e79cf2239865b2028941eb5f3c7f629be811 Mon Sep 17 00:00:00 2001 From: Plogon Enjoyer Date: Mon, 30 Sep 2024 00:31:43 +0800 Subject: [PATCH 407/450] 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 bc9a3ec9..f061ed47 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" } ] }, From 01e657dbdd2229638c56df7c19c87b105148d970 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sun, 29 Sep 2024 20:22:28 +0200 Subject: [PATCH 408/450] 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 00000000..6be75bd0 --- /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 8bb59514..0657a96f 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 00000000..48631931 --- /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 aaf60578..3408d12f 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 00000000..b0905c11 --- /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 a8084200..fcabe5d8 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 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 409/450] 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 00000000..bb771b02 --- /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 a3731ed4..b9a1c54e 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() From 4c63c2b88ff345358552298375e3ebfa7de86414 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Tue, 1 Oct 2024 20:53:21 +0200 Subject: [PATCH 410/450] 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 3b15ae0b..85aec37d 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 86c7a33f..7023f142 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 d3ac2166..ab24c9ce 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 9bee400f..47b951a3 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": { From fad4f0e72072b93323f8332f40cab6efb866719d Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Tue, 1 Oct 2024 21:28:19 +0200 Subject: [PATCH 411/450] 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 076643a9..101c13a3 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 + ] } ] }, From 35eeb83b49b4546f48a36cf4f235bced8bb7938d Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Tue, 1 Oct 2024 21:47:30 +0200 Subject: [PATCH 412/450] 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 3cb137c4..ac8f5109 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; } From 4ccd615832b6a6c195fb6a62317f2ae1e3ed9efc Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Tue, 1 Oct 2024 22:05:21 +0200 Subject: [PATCH 413/450] 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 5c731ab8..18fbc7da 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 9e424f65..c8159247 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 9690d474..c95ee8ea 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); From e9b6b27ce2fb0a5565fa540c74a7b11021070ca0 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Tue, 1 Oct 2024 22:25:25 +0200 Subject: [PATCH 414/450] 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 bcf960f3..b23bb9da 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 82facbb5..9fec034e 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 e687b40c..8c7b51e1 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 5eebced7..d59a446c 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 b4a19a72..05886053 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 83d0dd96..62476d4e 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 6c4e8377..8e6aad40 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 b12023a3..e812ae0f 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 2abe3f67..8a352254 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 0b6de9a4..ff980ffa 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 83960d58..b6f45f31 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 f62baef3..7340e66a 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 5446546e..c12bda58 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 016fb60c..c16c22b9 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 12924d71..cf0acff2 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 61cf091c..bcb40f05 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 28997d99..e0898189 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 ce945842..ad446eeb 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 087bbfca..931e753c 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 762c7e02..07af74fb 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 b45a155b..f7d746fe 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 f56eca2f..81c32c86 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 d2255ab9..c878f58b 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 1dfcc672..c030ff43 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 488ad1ea..fcafa039 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 19a06dad..69dff9a1 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 b1b7beb3..bb2006b8 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 90c6b7d5..76187f73 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 79d9235b..907bdd45 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 fdb4747b..57a652e9 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 e889192d..d4eef79d 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 92bd076b..695679a7 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 226f762c..8f5193b0 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 9343449a..28fb3a34 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 63ebecdc..075dff0c 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 4a39fbd5..425b0c74 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 f33c24e0..6018d53d 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 0060a088..7eee6e71 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 67b106f2..9ee12fd7 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 40480ce7..eb439d5f 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 bee1224a..bb316275 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 b9298647..c8a671c3 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 5c1fed1b..c947dc96 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 ed00c176..9bd05223 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 e6b53036..70ed3448 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 553634bd..a0daf444 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 6eb1a7cc..959276cc 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 c3f2fc98..a906fe10 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 bf610ba5..c74e6ed8 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 12faa18d..dee4eaec 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 024cb04a..22f2d97a 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 c79e9a2c..5169a8f4 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 df2c8baa..20e3b2b8 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 62032af3..485746d3 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 e590093e..0f24a82d 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 432f8f8d..37285324 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 b315afad..c9b3c8c2 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 f46eacb3..0a7e8e55 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 8b05a9d8..182ffffa 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 fd828e38..5294bab4 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 af09a13a..9a1abef6 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 d05a5978..c79468bb 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 007d0a43..cc6ea1fa 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 ee0a66cc..98b7ea55 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 4e75ca6d..926a40f1 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 66b764ab..e19e8950 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 9d9c0f9e..130cb389 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 78cfbbc7..3a42aaaa 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 7a4cf1d4..9f738bc8 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 925170a0..8faf117c 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 766724f9..3930a8dd 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 5525ce22..24e33e79 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 dec630ec..7ab43797 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 9a983943..28e35590 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 fd17edfa..8b1a2021 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 170b1a17..3b8ee005 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 0c7f0af7..4a4940cc 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 abb2d9bf..0b7c8b47 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 efabe8be..384623ce 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 ec258cb1..51a11987 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 cb0a79af..b3c05e7d 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 bb4681d7..8e967708 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 f5798feb..778f11db 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 cb804c97..d4ec0c27 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 0073030d..408d87c9 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 ade86865..d593ae59 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 a4fef371..b764b27c 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 73a1350d..765794c0 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 599b3b17..20380ed1 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 db15f8e2..4f05b345 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 235b4349..0e421d58 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 b0fd35d2..3fe60751 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 e1158fc8..99899412 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 fc1734d3..594cac80 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 fa880ec4..37724c8c 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() From 3fdf86f240e78246c5c6bd80d559749ff12c6659 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Tue, 1 Oct 2024 23:25:10 +0200 Subject: [PATCH 415/450] Version bump --- Directory.Build.targets | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Directory.Build.targets b/Directory.Build.targets index 6aced3c9..939fb575 100644 --- a/Directory.Build.targets +++ b/Directory.Build.targets @@ -1,5 +1,5 @@ - 3.7 + 3.8 From 7e0bfaf706de8571a4d425cf0e4923541e556292 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Tue, 1 Oct 2024 23:45:36 +0200 Subject: [PATCH 416/450] Update ECommons --- vendor/ECommons | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vendor/ECommons b/vendor/ECommons index 1038f5ae..147e12e9 160000 --- a/vendor/ECommons +++ b/vendor/ECommons @@ -1 +1 @@ -Subproject commit 1038f5ae8964c7ea57aea6f0fe2aef7c9be50848 +Subproject commit 147e12e95f2fb781f2c8ddac31d948700ed9051c From f85b858fc3fac1ee325d0707bb2fcb3ae7b4198f Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Thu, 3 Oct 2024 18:30:59 +0200 Subject: [PATCH 417/450] 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 f061ed47..a2400d21 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": [ { From 005574a77456e4fe4924e7722848a06d0e0cb7b2 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Thu, 3 Oct 2024 18:31:32 +0200 Subject: [PATCH 418/450] 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 00000000..1d54419a --- /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 00000000..112b2757 --- /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 7023f142..cb13b753 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 00000000..ae400744 --- /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 00000000..39c2cefa --- /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" + } + ] + } + ] +} From a8e3eb95c9ba8b22101c674ad7dfec0d16d315d1 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Thu, 3 Oct 2024 18:31:44 +0200 Subject: [PATCH 419/450] 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 ae400744..ec71ebfb 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 80050d40..847c705b 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 e1d2b6c5..f273b00d 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 4860f687..6093686a 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 173c82f3..7532ac5e 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 { From 4d0161b42704b71fbfc83924bcb7982a2ef58439 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Fri, 4 Oct 2024 00:44:40 +0200 Subject: [PATCH 420/450] 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 4fb68ddd..7f34150e 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 00000000..e0b00111 --- /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 00000000..416cbf97 --- /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 00000000..35bdbb10 --- /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 00000000..88ac8dfb --- /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 00000000..fc1d57ed --- /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 00000000..f5a29229 --- /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 00000000..75850c08 --- /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 00000000..2fa5e8ed --- /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 00000000..e6debd99 --- /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 00000000..8715a007 --- /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 00000000..15ab40c0 --- /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 00000000..1f90ec68 --- /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 00000000..cbbdeeeb --- /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 00000000..c493b8f0 --- /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 00000000..70c91fb6 --- /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 00000000..50a08d2b --- /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 00000000..a2a606f8 --- /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 00000000..fdb72ac4 --- /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 00000000..2116b0b5 --- /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 00000000..08b0bfae --- /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" + } + ] + } + ] +} From 0475a8601687574f710f088e42cd8e967b9ab7e9 Mon Sep 17 00:00:00 2001 From: kaiser Date: Sat, 5 Oct 2024 08:54:36 +1000 Subject: [PATCH 421/450] 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 00000000..cc573a4b --- /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 00000000..d496cab0 --- /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" + ] + } + ] + } + ] +} From 708e260eee95a508758e00b24758d08ac79eb84e Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sat, 5 Oct 2024 14:32:29 +0200 Subject: [PATCH 422/450] 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 939fb575..590411dd 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 3ea014cb..f2a25164 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 bb771b02..dd4fa395 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 0b278c04..0416943f 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."); From 3cb9df4a53d9ddee24779f0f39ca8a6229647678 Mon Sep 17 00:00:00 2001 From: kaiser Date: Sun, 6 Oct 2024 00:30:36 +1000 Subject: [PATCH 423/450] 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 00000000..54420ba6 --- /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 00000000..9f80b850 --- /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 00000000..337795da --- /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 + } + } + } + } + ] + } + ] +} From e47ef82d947d53dc7bee7614ab06e6d5f57a0266 Mon Sep 17 00:00:00 2001 From: kaiser Date: Sun, 6 Oct 2024 04:26:07 +1100 Subject: [PATCH 424/450] 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 00000000..cd772fa0 --- /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 00000000..c0fc2c1b --- /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 00000000..cd1f9aca --- /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 + } + } + } + } + ] + } + ] +} From 08c06bcfd1a81d60020eb5556effb74647bde80f Mon Sep 17 00:00:00 2001 From: kaiser Date: Sun, 6 Oct 2024 16:06:03 +1100 Subject: [PATCH 425/450] 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 cc573a4b..dbdcf21d 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 d496cab0..cf954642 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 54420ba6..a1e835e0 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 9f80b850..b1c0fbcd 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 337795da..9ae1ef2b 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 cd772fa0..cd40495f 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 c0fc2c1b..e64ab5ed 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 cd1f9aca..6ba00408 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 } ] } From 170a81fb06f84fabf9fae82d3245f51c9abbf3e2 Mon Sep 17 00:00:00 2001 From: kaiser Date: Sun, 6 Oct 2024 16:06:15 +1100 Subject: [PATCH 426/450] 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 00000000..03c2c710 --- /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 00000000..261f76a9 --- /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 00000000..a2717827 --- /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 00000000..8cd22a31 --- /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 00000000..08ae88de --- /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 00000000..4b5af937 --- /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 00000000..4383dc78 --- /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 + } + ] + } + ] +} From 409d3cc3c661adacaa4734fd46106dcd68bcd720 Mon Sep 17 00:00:00 2001 From: kaiser Date: Sun, 6 Oct 2024 16:32:41 +1100 Subject: [PATCH 427/450] 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 00000000..8d76255e --- /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 + } + ] + } + ] +} From a9216f246407700046e1ae2ad80b7be24e603743 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sun, 6 Oct 2024 17:58:59 +0200 Subject: [PATCH 428/450] 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 c74e6ed8..d4f27497 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 607c69f2..cc73070e 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 08b0bfae..c950da6e 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 00000000..deeaa99a --- /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 00000000..39e83634 --- /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 00000000..a99ea5c0 --- /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 00000000..19d9c1bf --- /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 00000000..d2d7b9cc --- /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 00000000..1dfcd8e6 --- /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 00000000..3c4d70a2 --- /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 00000000..1c46edd9 --- /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" + } + ] + } + ] +} From bc794811bf43f5606af8314109ac86a96586cdd6 Mon Sep 17 00:00:00 2001 From: kaiser Date: Mon, 7 Oct 2024 09:04:17 +1100 Subject: [PATCH 429/450] 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 From 51ed5eb0b8eaf23ebb109f9a5ae6d3d016a00034 Mon Sep 17 00:00:00 2001 From: kaiser Date: Mon, 7 Oct 2024 10:26:11 +1100 Subject: [PATCH 430/450] 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 00000000..79ba0fdf --- /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 00000000..881150a0 --- /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 00000000..1938bc52 --- /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 + } + ] + } + ] +} From ef9e4c33a1336039745850ec0f9229d4b13f15db Mon Sep 17 00:00:00 2001 From: kaiser Date: Tue, 8 Oct 2024 11:14:49 +1100 Subject: [PATCH 431/450] 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 43bd5f8d..09b370c3 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": { From 1ffaf0447597e6dd79b0d4199a96b2bddf56f852 Mon Sep 17 00:00:00 2001 From: kaiser Date: Wed, 9 Oct 2024 17:50:38 +1100 Subject: [PATCH 432/450] 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 00000000..eb256233 --- /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 + } + } + } + } + ] + } + ] +} From 756fd155a24385a8599c39f333bb3b261a0e6409 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Wed, 9 Oct 2024 16:44:47 +0200 Subject: [PATCH 433/450] 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 11b508a2..4b1d7ea1 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 +} From ab6e3a847f30a042dfa53f66052fc41c027d18d3 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Wed, 9 Oct 2024 17:49:02 +0200 Subject: [PATCH 434/450] 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 09b370c3..ed2b9b8c 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" From 588beffc37c9fd8f46135d130dd79f09b4048c0f Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Wed, 9 Oct 2024 18:20:38 +0200 Subject: [PATCH 435/450] 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 338a7da4..848be8ee 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 } ] }, From 5bc0d4d80e774b1723d8c6aebc333854eb8a86ff Mon Sep 17 00:00:00 2001 From: Liza Date: Thu, 10 Oct 2024 07:40:03 +0000 Subject: [PATCH 436/450] 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 From e5c49c35b8e10336f099ce7f280351f4528da99e Mon Sep 17 00:00:00 2001 From: kaiser Date: Fri, 11 Oct 2024 19:58:18 +1100 Subject: [PATCH 437/450] 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 d731dcbc..353bf245 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, From 5f95e5aaac9b331adf978827386d034513dab028 Mon Sep 17 00:00:00 2001 From: kaiser Date: Fri, 11 Oct 2024 20:00:18 +1100 Subject: [PATCH 438/450] 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 353bf245..5d1dfec0 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": [ From 569261c04148c5f43df9654f2ceae886b40ec7aa Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Fri, 11 Oct 2024 16:26:08 +0200 Subject: [PATCH 439/450] 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 d1db774f..e7b6c861 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 From 11f901d60fd8a6ea37b6a8df0209ced15f9332dc Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Fri, 11 Oct 2024 21:30:54 +0200 Subject: [PATCH 440/450] 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 2f4410b7..bfc0517a 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 } ] }, From 4c2639ee9166e96e7095354e11b6cf9d4e304ec2 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sat, 12 Oct 2024 15:59:21 +0200 Subject: [PATCH 441/450] 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 9da1c6c8..dd7b9ed1 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 752ec884..5b8449c0 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 86f42705..52b9b801 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 3fe60751..aa74871e 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 724acaf4..c948abe2 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 d2c0e386..143f6046 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(), ' '); } From 3379458385557864dfcd0c266c9b336c43dcde25 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sat, 12 Oct 2024 16:22:45 +0200 Subject: [PATCH 442/450] 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 b9a1da6a..809210a0 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 12e6840b..f477359f 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 e8095645..09c425b0 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 062dcd91..ded2bfd6 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 16c5b261..81796e0f 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 03f41e4a..db8d1247 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 b9922655..2532ec56 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 48e29f16..f1467906 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 5ff36d18..3b373719 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 44a0d55b..0a4d3950 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 0001b8fc..58860c93 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 1332dffd..b967ad00 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 60c26c49..3c5de1a7 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 47cf187f..7c9f11c6 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 a9ceee1b..6b3722c5 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 63c4f8df..34d24b88 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 39ef13cc..c2f1a6f8 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; } From 77a06bc40105ccffd4d6c72eea11008c67abdcba Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sat, 12 Oct 2024 18:17:16 +0200 Subject: [PATCH 443/450] 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 8d76255e..3c0f7158 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 dbdcf21d..044fc665 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 cf954642..e5c48b7e 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 a1e835e0..cdc2fc0c 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 b1c0fbcd..4e0e5b5e 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 9ae1ef2b..f239d318 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 cd40495f..53c9b361 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 e64ab5ed..867d60e7 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 6ba00408..278fcccd 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 03c2c710..1d50e6b1 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 261f76a9..fa5702bb 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 a2717827..d2ca071d 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 8cd22a31..aaecc2f0 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 08ae88de..7a47af45 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 00000000..523b0758 --- /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 79ba0fdf..95cbec5a 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 1938bc52..7fc5f03d 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": { From 4f5721e67b12e2c15a9b0e1cde7d33404db06415 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sat, 12 Oct 2024 18:18:54 +0200 Subject: [PATCH 444/450] 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 590411dd..5883b50c 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 867d60e7..3eca2030 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 d2ca071d..a53cd989 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 7a47af45..72c549ee 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 95cbec5a..71290a6d 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 7fc5f03d..624cdfe5 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!" + } } ] }, From 7a3bab3d51a1b83eb97f34c14be73a0a140f3f20 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sat, 12 Oct 2024 22:11:54 +0200 Subject: [PATCH 445/450] 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 1ed061f7..36790c21 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 aa74871e..50d39d05 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 00000000..bbcfd100 --- /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 00000000..d2bca66a --- /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 00000000..dab191e6 --- /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 c5626a5d..dcb8042a 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 d4b8ae4e..9cdf3bcf 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 542e2d6f..06fe4ae6 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 00000000..cff43161 --- /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 c2f1a6f8..e665163a 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 72e13ae7..a0b43b2f 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 4cf0828e..dfa0bfc9 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 12a41d60..c670e3bc 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 b9a1c54e..bdb639f4 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(); } From 368b119b6dbbba805bb9f010fd13187185b483a4 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sun, 13 Oct 2024 01:51:44 +0200 Subject: [PATCH 446/450] 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 dee4eaec..2e796799 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 04c452c5..c11ebd1d 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 dff6a220..0001cbe9 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 50d39d05..eefbf1eb 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 bbcfd100..565a0c77 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 d2bca66a..1b4086ff 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 dab191e6..7bb4e2b2 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 cff43161..91b4ca1d 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; From 01faa9e4c87ef4cf0675e68a873a273c6a1639b3 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sun, 13 Oct 2024 02:28:42 +0200 Subject: [PATCH 447/450] 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 00000000..51cbb57a --- /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 00000000..500e5e6a --- /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 00000000..9d629199 --- /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 00000000..dc4d3638 --- /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 00000000..0c5847ac --- /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 00000000..2eb8da81 --- /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 From feca95443ce515ee6b9a925434b16a6e3baff045 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sun, 13 Oct 2024 19:03:08 +0200 Subject: [PATCH 448/450] 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 e4748e24..5df22e73 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": { From aebcb87abac3e58886d5ab147ff863674555c909 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sun, 13 Oct 2024 20:14:56 +0200 Subject: [PATCH 449/450] 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 851bec64..5cd92e47 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 } ] } From 76ce411e1c9b2ff21a28d85200af2b181fb6e576 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Tue, 15 Oct 2024 01:09:21 +0200 Subject: [PATCH 450/450] 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 f7b5b4d3..aae9abba 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 408e267a..d46a7a0e 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 d5eb73ba..9c862ec9 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 92f6ab87..e33fe408 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 77bbdf0a..44b2a011 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 20e3b2b8..aaa63db4 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 408e267a..d46a7a0e 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 a43a335c..329449a7 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 54301430..62ae2a34 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 c609cb4f..7fd9471e 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 6db38b80..698d24dd 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 376045ee..8d1a3c89 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 1fd12865..07f5b16f 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, )" } } }