diff --git a/Directory.Build.targets b/Directory.Build.targets
index aac0b3777..6aced3c9e 100644
--- a/Directory.Build.targets
+++ b/Directory.Build.targets
@@ -1,5 +1,5 @@
- 3.6
+ 3.7
diff --git a/QuestPathGenerator/RoslynElements/PurchaseMenuExtensions.cs b/QuestPathGenerator/RoslynElements/PurchaseMenuExtensions.cs
new file mode 100644
index 000000000..251e64cec
--- /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 cc146a0b1..4147e47ba 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
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 000000000..f29907ea0
--- /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 000000000..0771c2924
--- /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
+ }
+ ]
+ }
+ ]
+}
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 21f20e52a..3ad2f8472 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 ba9afb374..68dd1ece1 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 4f7daad7a..0ce28316f 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 9f0d11ef8..0cb06ebf9 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 25dff5016..61adcd396 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 c001f0320..d21382b9c 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 076c3a2dc..484d98342 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
}
]
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 000000000..e6d8e71b5
--- /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 000000000..31fe70057
--- /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 000000000..8750abea4
--- /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
+ }
+ ]
+ }
+ ]
+}
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 000000000..5c5fa3171
--- /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 000000000..e21d83f5f
--- /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"
+ }
+ ]
+ }
+ ]
+}
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 000000000..4118fec3f
--- /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 000000000..96d75a524
--- /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 000000000..9f6069186
--- /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"
+ }
+ ]
+ }
+ ]
+}
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 d731dcbc4..479eedb10 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,
@@ -30,11 +29,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,
diff --git a/QuestPaths/quest-v1.json b/QuestPaths/quest-v1.json
index 9502f77ae..0c0661f74 100644
--- a/QuestPaths/quest-v1.json
+++ b/QuestPaths/quest-v1.json
@@ -579,6 +579,7 @@
"AfterInteraction",
"AfterItemUse",
"AfterAction",
+ "AfterEmote",
"OverworldEnemies",
"FateEnemies"
]
@@ -807,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 183bf4806..213d909a3 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/Converter/EnemySpawnTypeConverter.cs b/Questionable.Model/Questing/Converter/EnemySpawnTypeConverter.cs
index 4abc27395..1b43eaf43 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/EEmote.cs b/Questionable.Model/Questing/EEmote.cs
index 60e9661a8..4f1b2c6f7 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,
}
diff --git a/Questionable.Model/Questing/EEnemySpawnType.cs b/Questionable.Model/Questing/EEnemySpawnType.cs
index b7e5332e2..e4f49433f 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 514f15752..12a41d605 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)