forked from liza/Questionable
Update gathering from 'RequiredGatheredItems' to a dedicated InteractionType; updated movement logic to only evaluate distance to target after teleports and such
This commit is contained in:
parent
fc72f52ee3
commit
9251111b05
@ -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(),
|
||||
|
@ -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
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
@ -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
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
@ -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"
|
||||
},
|
||||
{
|
||||
|
@ -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
|
||||
}
|
||||
]
|
||||
|
@ -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"
|
||||
}
|
||||
]
|
||||
},
|
||||
|
@ -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"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
@ -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": [
|
||||
{
|
||||
|
@ -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": [
|
||||
{
|
||||
|
@ -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",
|
||||
|
@ -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": {
|
||||
|
@ -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": {
|
||||
|
@ -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": {
|
||||
|
@ -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": {
|
||||
|
@ -88,9 +88,7 @@
|
||||
"TerritoryId": 817,
|
||||
"InteractionType": "WalkTo",
|
||||
"AetheryteShortcut": "Rak'tika - Fanow",
|
||||
"Fly": true,
|
||||
"RequiredGatheredItems": [
|
||||
]
|
||||
"Fly": true
|
||||
},
|
||||
{
|
||||
"DataId": 1032643,
|
||||
|
@ -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": {
|
||||
|
@ -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": {
|
||||
|
@ -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": {
|
||||
|
@ -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": {
|
||||
|
@ -30,9 +30,7 @@
|
||||
"TerritoryId": 817,
|
||||
"InteractionType": "WalkTo",
|
||||
"AetheryteShortcut": "Rak'tika - Fanow",
|
||||
"Fly": true,
|
||||
"RequiredGatheredItems": [
|
||||
]
|
||||
"Fly": true
|
||||
},
|
||||
{
|
||||
"DataId": 1032643,
|
||||
|
@ -30,9 +30,7 @@
|
||||
"TerritoryId": 817,
|
||||
"InteractionType": "WalkTo",
|
||||
"AetheryteShortcut": "Rak'tika - Fanow",
|
||||
"Fly": true,
|
||||
"RequiredGatheredItems": [
|
||||
]
|
||||
"Fly": true
|
||||
},
|
||||
{
|
||||
"DataId": 1032643,
|
||||
|
@ -30,9 +30,7 @@
|
||||
"TerritoryId": 817,
|
||||
"InteractionType": "WalkTo",
|
||||
"AetheryteShortcut": "Rak'tika - Fanow",
|
||||
"Fly": true,
|
||||
"RequiredGatheredItems": [
|
||||
]
|
||||
"Fly": true
|
||||
},
|
||||
{
|
||||
"DataId": 1032643,
|
||||
|
@ -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": {
|
||||
|
@ -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": {
|
||||
|
@ -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": {
|
||||
|
@ -30,9 +30,7 @@
|
||||
"TerritoryId": 817,
|
||||
"InteractionType": "WalkTo",
|
||||
"AetheryteShortcut": "Rak'tika - Fanow",
|
||||
"Fly": true,
|
||||
"RequiredGatheredItems": [
|
||||
]
|
||||
"Fly": true
|
||||
},
|
||||
{
|
||||
"DataId": 1032643,
|
||||
|
@ -30,9 +30,7 @@
|
||||
"TerritoryId": 817,
|
||||
"InteractionType": "WalkTo",
|
||||
"AetheryteShortcut": "Rak'tika - Fanow",
|
||||
"Fly": true,
|
||||
"RequiredGatheredItems": [
|
||||
]
|
||||
"Fly": true
|
||||
},
|
||||
{
|
||||
"DataId": 1032643,
|
||||
|
@ -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": {
|
||||
|
@ -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": {
|
||||
|
@ -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": {
|
||||
|
@ -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": {
|
||||
|
@ -30,9 +30,7 @@
|
||||
"TerritoryId": 817,
|
||||
"InteractionType": "WalkTo",
|
||||
"AetheryteShortcut": "Rak'tika - Fanow",
|
||||
"Fly": true,
|
||||
"RequiredGatheredItems": [
|
||||
]
|
||||
"Fly": true
|
||||
},
|
||||
{
|
||||
"DataId": 1032643,
|
||||
|
@ -30,9 +30,7 @@
|
||||
"TerritoryId": 817,
|
||||
"InteractionType": "WalkTo",
|
||||
"AetheryteShortcut": "Rak'tika - Fanow",
|
||||
"Fly": true,
|
||||
"RequiredGatheredItems": [
|
||||
]
|
||||
"Fly": true
|
||||
},
|
||||
{
|
||||
"DataId": 1032643,
|
||||
|
@ -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
|
||||
}
|
||||
]
|
||||
}
|
||||
|
@ -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
|
||||
}
|
||||
]
|
||||
},
|
||||
|
@ -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": [
|
||||
{
|
||||
|
@ -22,8 +22,8 @@
|
||||
"Steps": [
|
||||
{
|
||||
"TerritoryId": 960,
|
||||
"InteractionType": "None",
|
||||
"RequiredGatheredItems": [
|
||||
"InteractionType": "Gather",
|
||||
"ItemsToGather": [
|
||||
{
|
||||
"QuestAcceptedAsClass": "Miner",
|
||||
"ItemId": 38281,
|
||||
|
@ -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,
|
||||
|
@ -33,8 +33,8 @@
|
||||
},
|
||||
{
|
||||
"TerritoryId": 1073,
|
||||
"InteractionType": "None",
|
||||
"RequiredGatheredItems": [
|
||||
"InteractionType": "Gather",
|
||||
"ItemsToGather": [
|
||||
{
|
||||
"QuestAcceptedAsClass": "Miner",
|
||||
"ItemId": 38284,
|
||||
|
@ -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": {
|
||||
|
@ -33,8 +33,8 @@
|
||||
},
|
||||
{
|
||||
"TerritoryId": 1073,
|
||||
"InteractionType": "None",
|
||||
"RequiredGatheredItems": [
|
||||
"InteractionType": "Gather",
|
||||
"ItemsToGather": [
|
||||
{
|
||||
"QuestAcceptedAsClass": "Miner",
|
||||
"ItemId": 38285,
|
||||
|
@ -22,8 +22,8 @@
|
||||
"Steps": [
|
||||
{
|
||||
"TerritoryId": 960,
|
||||
"InteractionType": "None",
|
||||
"RequiredGatheredItems": [
|
||||
"InteractionType": "Gather",
|
||||
"ItemsToGather": [
|
||||
{
|
||||
"QuestAcceptedAsClass": "Miner",
|
||||
"ItemId": 38286,
|
||||
|
@ -34,8 +34,8 @@
|
||||
},
|
||||
{
|
||||
"TerritoryId": 1073,
|
||||
"InteractionType": "None",
|
||||
"RequiredGatheredItems": [
|
||||
"InteractionType": "Gather",
|
||||
"ItemsToGather": [
|
||||
{
|
||||
"QuestAcceptedAsClass": "Miner",
|
||||
"ItemId": 38287,
|
||||
|
@ -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"
|
||||
}
|
||||
]
|
||||
},
|
||||
|
@ -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
|
||||
}
|
||||
]
|
||||
},
|
||||
|
@ -34,8 +34,8 @@
|
||||
},
|
||||
{
|
||||
"TerritoryId": 1073,
|
||||
"InteractionType": "None",
|
||||
"RequiredGatheredItems": [
|
||||
"InteractionType": "Gather",
|
||||
"ItemsToGather": [
|
||||
{
|
||||
"QuestAcceptedAsClass": "Miner",
|
||||
"ItemId": 38291,
|
||||
|
@ -33,8 +33,8 @@
|
||||
},
|
||||
{
|
||||
"TerritoryId": 1073,
|
||||
"InteractionType": "None",
|
||||
"RequiredGatheredItems": [
|
||||
"InteractionType": "Gather",
|
||||
"ItemsToGather": [
|
||||
{
|
||||
"QuestAcceptedAsClass": "Miner",
|
||||
"ItemId": 38292,
|
||||
|
@ -33,8 +33,8 @@
|
||||
},
|
||||
{
|
||||
"TerritoryId": 1073,
|
||||
"InteractionType": "None",
|
||||
"RequiredGatheredItems": [
|
||||
"InteractionType": "Gather",
|
||||
"ItemsToGather": [
|
||||
{
|
||||
"QuestAcceptedAsClass": "Miner",
|
||||
"ItemId": 38293,
|
||||
|
@ -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
|
||||
}
|
||||
]
|
||||
},
|
||||
|
@ -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"
|
||||
}
|
||||
]
|
||||
},
|
||||
|
@ -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"
|
||||
}
|
||||
]
|
||||
},
|
||||
|
@ -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"
|
||||
}
|
||||
]
|
||||
},
|
||||
|
@ -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"
|
||||
}
|
||||
]
|
||||
},
|
||||
|
@ -33,8 +33,8 @@
|
||||
},
|
||||
{
|
||||
"TerritoryId": 1073,
|
||||
"InteractionType": "None",
|
||||
"RequiredGatheredItems": [
|
||||
"InteractionType": "Gather",
|
||||
"ItemsToGather": [
|
||||
{
|
||||
"QuestAcceptedAsClass": "Miner",
|
||||
"ItemId": 38298,
|
||||
|
@ -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
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
|
@ -171,8 +171,8 @@
|
||||
"Steps": [
|
||||
{
|
||||
"TerritoryId": 960,
|
||||
"InteractionType": "None",
|
||||
"RequiredGatheredItems": [
|
||||
"InteractionType": "Gather",
|
||||
"ItemsToGather": [
|
||||
{
|
||||
"QuestAcceptedAsClass": "Miner",
|
||||
"ItemId": 38277,
|
||||
|
@ -139,8 +139,8 @@
|
||||
"Steps": [
|
||||
{
|
||||
"TerritoryId": 960,
|
||||
"InteractionType": "None",
|
||||
"RequiredGatheredItems": [
|
||||
"InteractionType": "Gather",
|
||||
"ItemsToGather": [
|
||||
{
|
||||
"QuestAcceptedAsClass": "Miner",
|
||||
"ItemId": 38278,
|
||||
|
@ -91,8 +91,8 @@
|
||||
"Steps": [
|
||||
{
|
||||
"TerritoryId": 398,
|
||||
"InteractionType": "None",
|
||||
"RequiredGatheredItems": [
|
||||
"InteractionType": "Gather",
|
||||
"ItemsToGather": [
|
||||
{
|
||||
"QuestAcceptedAsClass": "Miner",
|
||||
"ItemId": 38279,
|
||||
|
@ -156,8 +156,8 @@
|
||||
"Steps": [
|
||||
{
|
||||
"TerritoryId": 1073,
|
||||
"InteractionType": "None",
|
||||
"RequiredGatheredItems": [
|
||||
"InteractionType": "Gather",
|
||||
"ItemsToGather": [
|
||||
{
|
||||
"QuestAcceptedAsClass": "Miner",
|
||||
"ItemId": 38280,
|
||||
|
@ -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",
|
||||
|
@ -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": [
|
||||
|
@ -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
|
||||
},
|
||||
{
|
||||
|
@ -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
|
||||
}
|
||||
]
|
||||
|
@ -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
|
||||
}
|
||||
]
|
||||
|
@ -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
|
||||
}
|
||||
]
|
||||
|
@ -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
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
|
@ -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
|
||||
}
|
||||
]
|
||||
|
@ -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
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
|
@ -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"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
@ -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"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
@ -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"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
@ -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"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
@ -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"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
@ -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": {
|
||||
|
@ -23,8 +23,8 @@
|
||||
},
|
||||
{
|
||||
"TerritoryId": 1188,
|
||||
"InteractionType": "None",
|
||||
"RequiredGatheredItems": [
|
||||
"InteractionType": "Gather",
|
||||
"ItemsToGather": [
|
||||
{
|
||||
"ItemId": 2003516,
|
||||
"AlternativeItemId": 2003517,
|
||||
|
@ -23,8 +23,8 @@
|
||||
},
|
||||
{
|
||||
"TerritoryId": 1189,
|
||||
"InteractionType": "None",
|
||||
"RequiredGatheredItems": [
|
||||
"InteractionType": "Gather",
|
||||
"ItemsToGather": [
|
||||
{
|
||||
"ItemId": 2003529,
|
||||
"AlternativeItemId": 2003530,
|
||||
|
@ -23,8 +23,8 @@
|
||||
},
|
||||
{
|
||||
"TerritoryId": 1187,
|
||||
"InteractionType": "None",
|
||||
"RequiredGatheredItems": [
|
||||
"InteractionType": "Gather",
|
||||
"ItemsToGather": [
|
||||
{
|
||||
"ItemId": 2003539,
|
||||
"AlternativeItemId": 2003540,
|
||||
|
@ -23,8 +23,8 @@
|
||||
},
|
||||
{
|
||||
"TerritoryId": 1189,
|
||||
"InteractionType": "None",
|
||||
"RequiredGatheredItems": [
|
||||
"InteractionType": "Gather",
|
||||
"ItemsToGather": [
|
||||
{
|
||||
"ItemId": 2003552,
|
||||
"AlternativeItemId": 2003553,
|
||||
|
@ -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": [
|
||||
"SkipIf"
|
||||
"ItemId",
|
||||
"ItemCount"
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"ItemsToGather"
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -27,6 +27,7 @@ public sealed class InteractionTypeConverter() : EnumConverter<EInteractionType>
|
||||
{ EInteractionType.Jump, "Jump" },
|
||||
{ EInteractionType.Dive, "Dive" },
|
||||
{ EInteractionType.Craft, "Craft" },
|
||||
{ EInteractionType.Gather, "Gather" },
|
||||
{ EInteractionType.Snipe, "Snipe" },
|
||||
{ EInteractionType.Instruction, "Instruction" },
|
||||
{ EInteractionType.AcceptQuest, "AcceptQuest" },
|
||||
|
@ -26,6 +26,7 @@ public enum EInteractionType
|
||||
Jump,
|
||||
Dive,
|
||||
Craft,
|
||||
Gather,
|
||||
Snipe,
|
||||
|
||||
/// <summary>
|
||||
@ -38,7 +39,4 @@ public enum EInteractionType
|
||||
AcceptLeve,
|
||||
InitiateLeve,
|
||||
CompleteLeve,
|
||||
|
||||
// unmapped extra types below
|
||||
InternalGather,
|
||||
}
|
||||
|
@ -74,7 +74,7 @@ public sealed class QuestStep
|
||||
public SkipConditions? SkipConditions { get; set; }
|
||||
|
||||
public List<List<QuestWorkValue>?> RequiredQuestVariables { get; set; } = new();
|
||||
public List<GatheredItem> RequiredGatheredItems { get; set; } = [];
|
||||
public List<GatheredItem> ItemsToGather { get; set; } = [];
|
||||
public List<QuestWorkValue?> CompletionQuestVariablesFlags { get; set; } = [];
|
||||
public List<DialogueChoice> DialogueChoices { get; set; } = [];
|
||||
public List<uint> PointMenuChoices { get; set; } = [];
|
||||
|
@ -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
|
||||
{
|
||||
|
@ -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))
|
||||
|
@ -186,14 +186,13 @@ internal sealed unsafe class GatheringController : MiniTaskController<GatheringC
|
||||
pointOnFloor = pointOnFloor.Value with { Y = pointOnFloor.Value.Y + (fly ? 3f : 0f) };
|
||||
|
||||
_taskQueue.Enqueue(_moveFactory.Move(new MoveTo.MoveParams(territoryId, pointOnFloor ?? averagePosition,
|
||||
50f,
|
||||
Fly: fly, IgnoreDistanceToObject: true)));
|
||||
null, 50f, Fly: fly, IgnoreDistanceToObject: true)));
|
||||
}
|
||||
|
||||
_taskQueue.Enqueue(new MoveToLandingLocation(territoryId, fly, currentNode, _moveFactory, _gameFunctions,
|
||||
_objectTable, _loggerFactory.CreateLogger<MoveToLandingLocation>()));
|
||||
_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);
|
||||
}
|
||||
|
@ -81,7 +81,7 @@ internal abstract class MiniTaskController<T>
|
||||
|
||||
while (_taskQueue.TryDequeue(out ITask? nextTask))
|
||||
{
|
||||
if (nextTask is ILastTask or GatheringRequiredItems.SkipMarker)
|
||||
if (nextTask is ILastTask or Gather.SkipMarker)
|
||||
{
|
||||
_currentTask = nextTask;
|
||||
return;
|
||||
|
@ -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();
|
||||
}
|
||||
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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))
|
||||
];
|
||||
}
|
||||
|
@ -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<ITask> 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)
|
@ -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<MoveInternal>(), 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);
|
||||
}
|
||||
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);
|
||||
}
|
||||
|
||||
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<MoveInternal> _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<MoveInternal> logger,
|
||||
IClientState clientState,
|
||||
IDataManager dataManager)
|
||||
{
|
||||
_movementController = movementController;
|
||||
_mountFactory = mountFactory;
|
||||
_gameFunctions = gameFunctions;
|
||||
_logger = logger;
|
||||
_clientState = clientState;
|
||||
_cannotExecuteAtThisTime = dataManager.GetString<LogMessage>(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,
|
||||
|
@ -137,7 +137,7 @@ public sealed class QuestionablePlugin : IDalamudPlugin
|
||||
// task factories
|
||||
serviceCollection.AddTaskFactory<StepDisabled.Factory>();
|
||||
serviceCollection.AddTaskFactory<EquipRecommended.BeforeDutyOrInstance>();
|
||||
serviceCollection.AddTaskFactory<GatheringRequiredItems.Factory>();
|
||||
serviceCollection.AddTaskFactory<Gather.Factory>();
|
||||
serviceCollection.AddTaskFactory<AetheryteShortcut.Factory>();
|
||||
serviceCollection.AddTaskFactory<SkipCondition.Factory>();
|
||||
serviceCollection.AddTaskFactory<AethernetShortcut.Factory>();
|
||||
|
Loading…
Reference in New Issue
Block a user