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),
|
AssignmentList(nameof(QuestStep.RequiredQuestVariables),
|
||||||
step.RequiredQuestVariables)
|
step.RequiredQuestVariables)
|
||||||
.AsSyntaxNodeOrToken(),
|
.AsSyntaxNodeOrToken(),
|
||||||
AssignmentList(nameof(QuestStep.RequiredGatheredItems),
|
AssignmentList(nameof(QuestStep.ItemsToGather),
|
||||||
step.RequiredGatheredItems),
|
step.ItemsToGather),
|
||||||
AssignmentList(nameof(QuestStep.CompletionQuestVariablesFlags),
|
AssignmentList(nameof(QuestStep.CompletionQuestVariablesFlags),
|
||||||
step.CompletionQuestVariablesFlags)
|
step.CompletionQuestVariablesFlags)
|
||||||
.AsSyntaxNodeOrToken(),
|
.AsSyntaxNodeOrToken(),
|
||||||
|
@ -33,6 +33,16 @@
|
|||||||
{
|
{
|
||||||
"Sequence": 255,
|
"Sequence": 255,
|
||||||
"Steps": [
|
"Steps": [
|
||||||
|
{
|
||||||
|
"TerritoryId": 131,
|
||||||
|
"InteractionType": "Gather",
|
||||||
|
"ItemsToGather": [
|
||||||
|
{
|
||||||
|
"ItemId": 5106,
|
||||||
|
"ItemCount": 10
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"DataId": 1002298,
|
"DataId": 1002298,
|
||||||
"Position": {
|
"Position": {
|
||||||
@ -54,13 +64,7 @@
|
|||||||
131
|
131
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
},
|
}
|
||||||
"RequiredGatheredItems": [
|
|
||||||
{
|
|
||||||
"ItemId": 5106,
|
|
||||||
"ItemCount": 10
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
@ -33,6 +33,16 @@
|
|||||||
{
|
{
|
||||||
"Sequence": 255,
|
"Sequence": 255,
|
||||||
"Steps": [
|
"Steps": [
|
||||||
|
{
|
||||||
|
"TerritoryId": 131,
|
||||||
|
"InteractionType": "Gather",
|
||||||
|
"ItemsToGather": [
|
||||||
|
{
|
||||||
|
"ItemId": 5432,
|
||||||
|
"ItemCount": 10
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"DataId": 1002298,
|
"DataId": 1002298,
|
||||||
"Position": {
|
"Position": {
|
||||||
@ -54,13 +64,7 @@
|
|||||||
131
|
131
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
},
|
}
|
||||||
"RequiredGatheredItems": [
|
|
||||||
{
|
|
||||||
"ItemId": 5432,
|
|
||||||
"ItemCount": 10
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
@ -5,6 +5,11 @@
|
|||||||
{
|
{
|
||||||
"Sequence": 0,
|
"Sequence": 0,
|
||||||
"Steps": [
|
"Steps": [
|
||||||
|
{
|
||||||
|
"TerritoryId": 478,
|
||||||
|
"InteractionType": "Gather",
|
||||||
|
"ItemsToGather": []
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"Position": {
|
"Position": {
|
||||||
"X": -71.31451,
|
"X": -71.31451,
|
||||||
@ -13,7 +18,6 @@
|
|||||||
},
|
},
|
||||||
"TerritoryId": 478,
|
"TerritoryId": 478,
|
||||||
"InteractionType": "WalkTo",
|
"InteractionType": "WalkTo",
|
||||||
"RequiredGatheredItems": [],
|
|
||||||
"AetheryteShortcut": "Idyllshire"
|
"AetheryteShortcut": "Idyllshire"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -188,6 +188,16 @@
|
|||||||
{
|
{
|
||||||
"Sequence": 255,
|
"Sequence": 255,
|
||||||
"Steps": [
|
"Steps": [
|
||||||
|
{
|
||||||
|
"TerritoryId": 478,
|
||||||
|
"InteractionType": "Gather",
|
||||||
|
"ItemsToGather": [
|
||||||
|
{
|
||||||
|
"ItemId": 17946,
|
||||||
|
"ItemCount": 20
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"DataId": 1021349,
|
"DataId": 1021349,
|
||||||
"Position": {
|
"Position": {
|
||||||
@ -202,12 +212,6 @@
|
|||||||
"[Idyllshire] Aetheryte Plaza",
|
"[Idyllshire] Aetheryte Plaza",
|
||||||
"[Idyllshire] West Idyllshire"
|
"[Idyllshire] West Idyllshire"
|
||||||
],
|
],
|
||||||
"RequiredGatheredItems": [
|
|
||||||
{
|
|
||||||
"ItemId": 17946,
|
|
||||||
"ItemCount": 20
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"NextQuestId": 2623
|
"NextQuestId": 2623
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
@ -122,6 +122,16 @@
|
|||||||
{
|
{
|
||||||
"Sequence": 6,
|
"Sequence": 6,
|
||||||
"Steps": [
|
"Steps": [
|
||||||
|
{
|
||||||
|
"TerritoryId": 478,
|
||||||
|
"InteractionType": "Gather",
|
||||||
|
"ItemsToGather": [
|
||||||
|
{
|
||||||
|
"ItemId": 17947,
|
||||||
|
"ItemCount": 20
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"DataId": 1017106,
|
"DataId": 1017106,
|
||||||
"Position": {
|
"Position": {
|
||||||
@ -131,13 +141,7 @@
|
|||||||
},
|
},
|
||||||
"TerritoryId": 478,
|
"TerritoryId": 478,
|
||||||
"InteractionType": "Interact",
|
"InteractionType": "Interact",
|
||||||
"AetheryteShortcut": "Idyllshire",
|
"AetheryteShortcut": "Idyllshire"
|
||||||
"RequiredGatheredItems": [
|
|
||||||
{
|
|
||||||
"ItemId": 17947,
|
|
||||||
"ItemCount": 20
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
@ -156,6 +156,16 @@
|
|||||||
{
|
{
|
||||||
"Sequence": 255,
|
"Sequence": 255,
|
||||||
"Steps": [
|
"Steps": [
|
||||||
|
{
|
||||||
|
"TerritoryId": 478,
|
||||||
|
"InteractionType": "Gather",
|
||||||
|
"ItemsToGather": [
|
||||||
|
{
|
||||||
|
"ItemId": 17948,
|
||||||
|
"ItemCount": 5
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"DataId": 1021349,
|
"DataId": 1021349,
|
||||||
"Position": {
|
"Position": {
|
||||||
@ -170,13 +180,7 @@
|
|||||||
"[Idyllshire] Aetheryte Plaza",
|
"[Idyllshire] Aetheryte Plaza",
|
||||||
"[Idyllshire] West Idyllshire"
|
"[Idyllshire] West Idyllshire"
|
||||||
],
|
],
|
||||||
"Comment": "Eorzean Time: 4:00-5:59 AM/PM",
|
"Comment": "Eorzean Time: 4:00-5:59 AM/PM"
|
||||||
"RequiredGatheredItems": [
|
|
||||||
{
|
|
||||||
"ItemId": 17948,
|
|
||||||
"ItemCount": 5
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
@ -5,6 +5,11 @@
|
|||||||
{
|
{
|
||||||
"Sequence": 0,
|
"Sequence": 0,
|
||||||
"Steps": [
|
"Steps": [
|
||||||
|
{
|
||||||
|
"TerritoryId": 478,
|
||||||
|
"InteractionType": "Gather",
|
||||||
|
"ItemsToGather": []
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"DataId": 1018393,
|
"DataId": 1018393,
|
||||||
"Position": {
|
"Position": {
|
||||||
@ -14,7 +19,6 @@
|
|||||||
},
|
},
|
||||||
"TerritoryId": 478,
|
"TerritoryId": 478,
|
||||||
"InteractionType": "Interact",
|
"InteractionType": "Interact",
|
||||||
"RequiredGatheredItems": [],
|
|
||||||
"AetheryteShortcut": "Idyllshire",
|
"AetheryteShortcut": "Idyllshire",
|
||||||
"DialogueChoices": [
|
"DialogueChoices": [
|
||||||
{
|
{
|
||||||
|
@ -5,6 +5,11 @@
|
|||||||
{
|
{
|
||||||
"Sequence": 0,
|
"Sequence": 0,
|
||||||
"Steps": [
|
"Steps": [
|
||||||
|
{
|
||||||
|
"TerritoryId": 613,
|
||||||
|
"InteractionType": "Gather",
|
||||||
|
"ItemsToGather": []
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"DataId": 1025878,
|
"DataId": 1025878,
|
||||||
"Position": {
|
"Position": {
|
||||||
@ -14,7 +19,6 @@
|
|||||||
},
|
},
|
||||||
"TerritoryId": 613,
|
"TerritoryId": 613,
|
||||||
"InteractionType": "Interact",
|
"InteractionType": "Interact",
|
||||||
"RequiredGatheredItems": [],
|
|
||||||
"AetheryteShortcut": "Ruby Sea - Tamamizu",
|
"AetheryteShortcut": "Ruby Sea - Tamamizu",
|
||||||
"DialogueChoices": [
|
"DialogueChoices": [
|
||||||
{
|
{
|
||||||
|
@ -5,6 +5,11 @@
|
|||||||
{
|
{
|
||||||
"Sequence": 0,
|
"Sequence": 0,
|
||||||
"Steps": [
|
"Steps": [
|
||||||
|
{
|
||||||
|
"TerritoryId": 635,
|
||||||
|
"InteractionType": "Gather",
|
||||||
|
"ItemsToGather": []
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"DataId": 1020337,
|
"DataId": 1020337,
|
||||||
"Position": {
|
"Position": {
|
||||||
@ -14,7 +19,6 @@
|
|||||||
},
|
},
|
||||||
"TerritoryId": 635,
|
"TerritoryId": 635,
|
||||||
"InteractionType": "Interact",
|
"InteractionType": "Interact",
|
||||||
"RequiredGatheredItems": [],
|
|
||||||
"AetheryteShortcut": "Rhalgr's Reach",
|
"AetheryteShortcut": "Rhalgr's Reach",
|
||||||
"AethernetShortcut": [
|
"AethernetShortcut": [
|
||||||
"[Rhalgr's Reach] Aetheryte Plaza",
|
"[Rhalgr's Reach] Aetheryte Plaza",
|
||||||
|
@ -21,16 +21,9 @@
|
|||||||
"Sequence": 255,
|
"Sequence": 255,
|
||||||
"Steps": [
|
"Steps": [
|
||||||
{
|
{
|
||||||
"Position": {
|
|
||||||
"X": 788.1569,
|
|
||||||
"Y": -45.82557,
|
|
||||||
"Z": -212.9306
|
|
||||||
},
|
|
||||||
"TerritoryId": 817,
|
"TerritoryId": 817,
|
||||||
"InteractionType": "WalkTo",
|
"InteractionType": "Gather",
|
||||||
"AetheryteShortcut": "Rak'tika - Fanow",
|
"ItemsToGather": [
|
||||||
"Fly": true,
|
|
||||||
"RequiredGatheredItems": [
|
|
||||||
{
|
{
|
||||||
"QuestAcceptedAsClass": "Miner",
|
"QuestAcceptedAsClass": "Miner",
|
||||||
"ItemId": 29517,
|
"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,
|
"DataId": 1032643,
|
||||||
"Position": {
|
"Position": {
|
||||||
|
@ -21,15 +21,9 @@
|
|||||||
"Sequence": 255,
|
"Sequence": 255,
|
||||||
"Steps": [
|
"Steps": [
|
||||||
{
|
{
|
||||||
"Position": {
|
|
||||||
"X": 788.1569,
|
|
||||||
"Y": -45.82557,
|
|
||||||
"Z": -212.9306
|
|
||||||
},
|
|
||||||
"TerritoryId": 817,
|
"TerritoryId": 817,
|
||||||
"InteractionType": "WalkTo",
|
"InteractionType": "Gather",
|
||||||
"Fly": true,
|
"ItemsToGather": [
|
||||||
"RequiredGatheredItems": [
|
|
||||||
{
|
{
|
||||||
"QuestAcceptedAsClass": "Miner",
|
"QuestAcceptedAsClass": "Miner",
|
||||||
"ItemId": 29518,
|
"ItemId": 29518,
|
||||||
@ -42,6 +36,16 @@
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": 788.1569,
|
||||||
|
"Y": -45.82557,
|
||||||
|
"Z": -212.9306
|
||||||
|
},
|
||||||
|
"TerritoryId": 817,
|
||||||
|
"InteractionType": "WalkTo",
|
||||||
|
"Fly": true
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"DataId": 1032643,
|
"DataId": 1032643,
|
||||||
"Position": {
|
"Position": {
|
||||||
|
@ -21,16 +21,9 @@
|
|||||||
"Sequence": 255,
|
"Sequence": 255,
|
||||||
"Steps": [
|
"Steps": [
|
||||||
{
|
{
|
||||||
"Position": {
|
|
||||||
"X": 788.1569,
|
|
||||||
"Y": -45.82557,
|
|
||||||
"Z": -212.9306
|
|
||||||
},
|
|
||||||
"TerritoryId": 817,
|
"TerritoryId": 817,
|
||||||
"InteractionType": "WalkTo",
|
"InteractionType": "Gather",
|
||||||
"AetheryteShortcut": "Rak'tika - Fanow",
|
"ItemsToGather": [
|
||||||
"Fly": true,
|
|
||||||
"RequiredGatheredItems": [
|
|
||||||
{
|
{
|
||||||
"QuestAcceptedAsClass": "Miner",
|
"QuestAcceptedAsClass": "Miner",
|
||||||
"ItemId": 29519,
|
"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,
|
"DataId": 1032643,
|
||||||
"Position": {
|
"Position": {
|
||||||
|
@ -21,16 +21,9 @@
|
|||||||
"Sequence": 255,
|
"Sequence": 255,
|
||||||
"Steps": [
|
"Steps": [
|
||||||
{
|
{
|
||||||
"Position": {
|
|
||||||
"X": 788.1569,
|
|
||||||
"Y": -45.82557,
|
|
||||||
"Z": -212.9306
|
|
||||||
},
|
|
||||||
"TerritoryId": 817,
|
"TerritoryId": 817,
|
||||||
"InteractionType": "WalkTo",
|
"InteractionType": "Gather",
|
||||||
"AetheryteShortcut": "Rak'tika - Fanow",
|
"ItemsToGather": [
|
||||||
"Fly": true,
|
|
||||||
"RequiredGatheredItems": [
|
|
||||||
{
|
{
|
||||||
"QuestAcceptedAsClass": "Miner",
|
"QuestAcceptedAsClass": "Miner",
|
||||||
"ItemId": 29520,
|
"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,
|
"DataId": 1032643,
|
||||||
"Position": {
|
"Position": {
|
||||||
|
@ -88,9 +88,7 @@
|
|||||||
"TerritoryId": 817,
|
"TerritoryId": 817,
|
||||||
"InteractionType": "WalkTo",
|
"InteractionType": "WalkTo",
|
||||||
"AetheryteShortcut": "Rak'tika - Fanow",
|
"AetheryteShortcut": "Rak'tika - Fanow",
|
||||||
"Fly": true,
|
"Fly": true
|
||||||
"RequiredGatheredItems": [
|
|
||||||
]
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"DataId": 1032643,
|
"DataId": 1032643,
|
||||||
|
@ -21,16 +21,9 @@
|
|||||||
"Sequence": 255,
|
"Sequence": 255,
|
||||||
"Steps": [
|
"Steps": [
|
||||||
{
|
{
|
||||||
"Position": {
|
|
||||||
"X": 788.1569,
|
|
||||||
"Y": -45.82557,
|
|
||||||
"Z": -212.9306
|
|
||||||
},
|
|
||||||
"TerritoryId": 817,
|
"TerritoryId": 817,
|
||||||
"InteractionType": "WalkTo",
|
"InteractionType": "Gather",
|
||||||
"AetheryteShortcut": "Rak'tika - Fanow",
|
"ItemsToGather": [
|
||||||
"Fly": true,
|
|
||||||
"RequiredGatheredItems": [
|
|
||||||
{
|
{
|
||||||
"QuestAcceptedAsClass": "Miner",
|
"QuestAcceptedAsClass": "Miner",
|
||||||
"ItemId": 29521,
|
"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,
|
"DataId": 1032643,
|
||||||
"Position": {
|
"Position": {
|
||||||
|
@ -21,16 +21,9 @@
|
|||||||
"Sequence": 255,
|
"Sequence": 255,
|
||||||
"Steps": [
|
"Steps": [
|
||||||
{
|
{
|
||||||
"Position": {
|
|
||||||
"X": 788.1569,
|
|
||||||
"Y": -45.82557,
|
|
||||||
"Z": -212.9306
|
|
||||||
},
|
|
||||||
"TerritoryId": 817,
|
"TerritoryId": 817,
|
||||||
"InteractionType": "WalkTo",
|
"InteractionType": "Gather",
|
||||||
"AetheryteShortcut": "Rak'tika - Fanow",
|
"ItemsToGather": [
|
||||||
"Fly": true,
|
|
||||||
"RequiredGatheredItems": [
|
|
||||||
{
|
{
|
||||||
"QuestAcceptedAsClass": "Miner",
|
"QuestAcceptedAsClass": "Miner",
|
||||||
"ItemId": 29522,
|
"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,
|
"DataId": 1032643,
|
||||||
"Position": {
|
"Position": {
|
||||||
|
@ -21,16 +21,9 @@
|
|||||||
"Sequence": 255,
|
"Sequence": 255,
|
||||||
"Steps": [
|
"Steps": [
|
||||||
{
|
{
|
||||||
"Position": {
|
|
||||||
"X": 788.1569,
|
|
||||||
"Y": -45.82557,
|
|
||||||
"Z": -212.9306
|
|
||||||
},
|
|
||||||
"TerritoryId": 817,
|
"TerritoryId": 817,
|
||||||
"InteractionType": "WalkTo",
|
"InteractionType": "Gather",
|
||||||
"AetheryteShortcut": "Rak'tika - Fanow",
|
"ItemsToGather": [
|
||||||
"Fly": true,
|
|
||||||
"RequiredGatheredItems": [
|
|
||||||
{
|
{
|
||||||
"QuestAcceptedAsClass": "Miner",
|
"QuestAcceptedAsClass": "Miner",
|
||||||
"ItemId": 29523,
|
"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,
|
"DataId": 1032643,
|
||||||
"Position": {
|
"Position": {
|
||||||
|
@ -21,16 +21,9 @@
|
|||||||
"Sequence": 255,
|
"Sequence": 255,
|
||||||
"Steps": [
|
"Steps": [
|
||||||
{
|
{
|
||||||
"Position": {
|
|
||||||
"X": 788.1569,
|
|
||||||
"Y": -45.82557,
|
|
||||||
"Z": -212.9306
|
|
||||||
},
|
|
||||||
"TerritoryId": 817,
|
"TerritoryId": 817,
|
||||||
"InteractionType": "WalkTo",
|
"InteractionType": "Gather",
|
||||||
"AetheryteShortcut": "Rak'tika - Fanow",
|
"ItemsToGather": [
|
||||||
"Fly": true,
|
|
||||||
"RequiredGatheredItems": [
|
|
||||||
{
|
{
|
||||||
"QuestAcceptedAsClass": "Miner",
|
"QuestAcceptedAsClass": "Miner",
|
||||||
"ItemId": 29524,
|
"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,
|
"DataId": 1032643,
|
||||||
"Position": {
|
"Position": {
|
||||||
|
@ -30,9 +30,7 @@
|
|||||||
"TerritoryId": 817,
|
"TerritoryId": 817,
|
||||||
"InteractionType": "WalkTo",
|
"InteractionType": "WalkTo",
|
||||||
"AetheryteShortcut": "Rak'tika - Fanow",
|
"AetheryteShortcut": "Rak'tika - Fanow",
|
||||||
"Fly": true,
|
"Fly": true
|
||||||
"RequiredGatheredItems": [
|
|
||||||
]
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"DataId": 1032643,
|
"DataId": 1032643,
|
||||||
|
@ -30,9 +30,7 @@
|
|||||||
"TerritoryId": 817,
|
"TerritoryId": 817,
|
||||||
"InteractionType": "WalkTo",
|
"InteractionType": "WalkTo",
|
||||||
"AetheryteShortcut": "Rak'tika - Fanow",
|
"AetheryteShortcut": "Rak'tika - Fanow",
|
||||||
"Fly": true,
|
"Fly": true
|
||||||
"RequiredGatheredItems": [
|
|
||||||
]
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"DataId": 1032643,
|
"DataId": 1032643,
|
||||||
|
@ -30,9 +30,7 @@
|
|||||||
"TerritoryId": 817,
|
"TerritoryId": 817,
|
||||||
"InteractionType": "WalkTo",
|
"InteractionType": "WalkTo",
|
||||||
"AetheryteShortcut": "Rak'tika - Fanow",
|
"AetheryteShortcut": "Rak'tika - Fanow",
|
||||||
"Fly": true,
|
"Fly": true
|
||||||
"RequiredGatheredItems": [
|
|
||||||
]
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"DataId": 1032643,
|
"DataId": 1032643,
|
||||||
|
@ -21,16 +21,9 @@
|
|||||||
"Sequence": 255,
|
"Sequence": 255,
|
||||||
"Steps": [
|
"Steps": [
|
||||||
{
|
{
|
||||||
"Position": {
|
|
||||||
"X": 788.1569,
|
|
||||||
"Y": -45.82557,
|
|
||||||
"Z": -212.9306
|
|
||||||
},
|
|
||||||
"TerritoryId": 817,
|
"TerritoryId": 817,
|
||||||
"InteractionType": "WalkTo",
|
"InteractionType": "Gather",
|
||||||
"AetheryteShortcut": "Rak'tika - Fanow",
|
"ItemsToGather": [
|
||||||
"Fly": true,
|
|
||||||
"RequiredGatheredItems": [
|
|
||||||
{
|
{
|
||||||
"QuestAcceptedAsClass": "Miner",
|
"QuestAcceptedAsClass": "Miner",
|
||||||
"ItemId": 29528,
|
"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,
|
"DataId": 1032643,
|
||||||
"Position": {
|
"Position": {
|
||||||
|
@ -21,16 +21,9 @@
|
|||||||
"Sequence": 255,
|
"Sequence": 255,
|
||||||
"Steps": [
|
"Steps": [
|
||||||
{
|
{
|
||||||
"Position": {
|
|
||||||
"X": 788.1569,
|
|
||||||
"Y": -45.82557,
|
|
||||||
"Z": -212.9306
|
|
||||||
},
|
|
||||||
"TerritoryId": 817,
|
"TerritoryId": 817,
|
||||||
"InteractionType": "WalkTo",
|
"InteractionType": "Gather",
|
||||||
"AetheryteShortcut": "Rak'tika - Fanow",
|
"ItemsToGather": [
|
||||||
"Fly": true,
|
|
||||||
"RequiredGatheredItems": [
|
|
||||||
{
|
{
|
||||||
"QuestAcceptedAsClass": "Miner",
|
"QuestAcceptedAsClass": "Miner",
|
||||||
"ItemId": 29529,
|
"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,
|
"DataId": 1032643,
|
||||||
"Position": {
|
"Position": {
|
||||||
|
@ -21,16 +21,9 @@
|
|||||||
"Sequence": 255,
|
"Sequence": 255,
|
||||||
"Steps": [
|
"Steps": [
|
||||||
{
|
{
|
||||||
"Position": {
|
|
||||||
"X": 788.1569,
|
|
||||||
"Y": -45.82557,
|
|
||||||
"Z": -212.9306
|
|
||||||
},
|
|
||||||
"TerritoryId": 817,
|
"TerritoryId": 817,
|
||||||
"InteractionType": "WalkTo",
|
"InteractionType": "Gather",
|
||||||
"AetheryteShortcut": "Rak'tika - Fanow",
|
"ItemsToGather": [
|
||||||
"Fly": true,
|
|
||||||
"RequiredGatheredItems": [
|
|
||||||
{
|
{
|
||||||
"QuestAcceptedAsClass": "Miner",
|
"QuestAcceptedAsClass": "Miner",
|
||||||
"ItemId": 29530,
|
"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,
|
"DataId": 1032643,
|
||||||
"Position": {
|
"Position": {
|
||||||
|
@ -30,9 +30,7 @@
|
|||||||
"TerritoryId": 817,
|
"TerritoryId": 817,
|
||||||
"InteractionType": "WalkTo",
|
"InteractionType": "WalkTo",
|
||||||
"AetheryteShortcut": "Rak'tika - Fanow",
|
"AetheryteShortcut": "Rak'tika - Fanow",
|
||||||
"Fly": true,
|
"Fly": true
|
||||||
"RequiredGatheredItems": [
|
|
||||||
]
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"DataId": 1032643,
|
"DataId": 1032643,
|
||||||
|
@ -30,9 +30,7 @@
|
|||||||
"TerritoryId": 817,
|
"TerritoryId": 817,
|
||||||
"InteractionType": "WalkTo",
|
"InteractionType": "WalkTo",
|
||||||
"AetheryteShortcut": "Rak'tika - Fanow",
|
"AetheryteShortcut": "Rak'tika - Fanow",
|
||||||
"Fly": true,
|
"Fly": true
|
||||||
"RequiredGatheredItems": [
|
|
||||||
]
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"DataId": 1032643,
|
"DataId": 1032643,
|
||||||
|
@ -21,16 +21,9 @@
|
|||||||
"Sequence": 255,
|
"Sequence": 255,
|
||||||
"Steps": [
|
"Steps": [
|
||||||
{
|
{
|
||||||
"Position": {
|
|
||||||
"X": 788.1569,
|
|
||||||
"Y": -45.82557,
|
|
||||||
"Z": -212.9306
|
|
||||||
},
|
|
||||||
"TerritoryId": 817,
|
"TerritoryId": 817,
|
||||||
"InteractionType": "WalkTo",
|
"InteractionType": "Gather",
|
||||||
"AetheryteShortcut": "Rak'tika - Fanow",
|
"ItemsToGather": [
|
||||||
"Fly": true,
|
|
||||||
"RequiredGatheredItems": [
|
|
||||||
{
|
{
|
||||||
"QuestAcceptedAsClass": "Miner",
|
"QuestAcceptedAsClass": "Miner",
|
||||||
"ItemId": 29533,
|
"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,
|
"DataId": 1032643,
|
||||||
"Position": {
|
"Position": {
|
||||||
|
@ -21,16 +21,9 @@
|
|||||||
"Sequence": 255,
|
"Sequence": 255,
|
||||||
"Steps": [
|
"Steps": [
|
||||||
{
|
{
|
||||||
"Position": {
|
|
||||||
"X": 788.1569,
|
|
||||||
"Y": -45.82557,
|
|
||||||
"Z": -212.9306
|
|
||||||
},
|
|
||||||
"TerritoryId": 817,
|
"TerritoryId": 817,
|
||||||
"InteractionType": "WalkTo",
|
"InteractionType": "Gather",
|
||||||
"AetheryteShortcut": "Rak'tika - Fanow",
|
"ItemsToGather": [
|
||||||
"Fly": true,
|
|
||||||
"RequiredGatheredItems": [
|
|
||||||
{
|
{
|
||||||
"QuestAcceptedAsClass": "Miner",
|
"QuestAcceptedAsClass": "Miner",
|
||||||
"ItemId": 29534,
|
"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,
|
"DataId": 1032643,
|
||||||
"Position": {
|
"Position": {
|
||||||
|
@ -21,16 +21,9 @@
|
|||||||
"Sequence": 255,
|
"Sequence": 255,
|
||||||
"Steps": [
|
"Steps": [
|
||||||
{
|
{
|
||||||
"Position": {
|
|
||||||
"X": 788.1569,
|
|
||||||
"Y": -45.82557,
|
|
||||||
"Z": -212.9306
|
|
||||||
},
|
|
||||||
"TerritoryId": 817,
|
"TerritoryId": 817,
|
||||||
"InteractionType": "WalkTo",
|
"InteractionType": "Gather",
|
||||||
"AetheryteShortcut": "Rak'tika - Fanow",
|
"ItemsToGather": [
|
||||||
"Fly": true,
|
|
||||||
"RequiredGatheredItems": [
|
|
||||||
{
|
{
|
||||||
"QuestAcceptedAsClass": "Miner",
|
"QuestAcceptedAsClass": "Miner",
|
||||||
"ItemId": 29535,
|
"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,
|
"DataId": 1032643,
|
||||||
"Position": {
|
"Position": {
|
||||||
|
@ -21,16 +21,9 @@
|
|||||||
"Sequence": 255,
|
"Sequence": 255,
|
||||||
"Steps": [
|
"Steps": [
|
||||||
{
|
{
|
||||||
"Position": {
|
|
||||||
"X": 788.1569,
|
|
||||||
"Y": -45.82557,
|
|
||||||
"Z": -212.9306
|
|
||||||
},
|
|
||||||
"TerritoryId": 817,
|
"TerritoryId": 817,
|
||||||
"InteractionType": "WalkTo",
|
"InteractionType": "Gather",
|
||||||
"AetheryteShortcut": "Rak'tika - Fanow",
|
"ItemsToGather": [
|
||||||
"Fly": true,
|
|
||||||
"RequiredGatheredItems": [
|
|
||||||
{
|
{
|
||||||
"QuestAcceptedAsClass": "Miner",
|
"QuestAcceptedAsClass": "Miner",
|
||||||
"ItemId": 29536,
|
"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,
|
"DataId": 1032643,
|
||||||
"Position": {
|
"Position": {
|
||||||
|
@ -30,9 +30,7 @@
|
|||||||
"TerritoryId": 817,
|
"TerritoryId": 817,
|
||||||
"InteractionType": "WalkTo",
|
"InteractionType": "WalkTo",
|
||||||
"AetheryteShortcut": "Rak'tika - Fanow",
|
"AetheryteShortcut": "Rak'tika - Fanow",
|
||||||
"Fly": true,
|
"Fly": true
|
||||||
"RequiredGatheredItems": [
|
|
||||||
]
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"DataId": 1032643,
|
"DataId": 1032643,
|
||||||
|
@ -30,9 +30,7 @@
|
|||||||
"TerritoryId": 817,
|
"TerritoryId": 817,
|
||||||
"InteractionType": "WalkTo",
|
"InteractionType": "WalkTo",
|
||||||
"AetheryteShortcut": "Rak'tika - Fanow",
|
"AetheryteShortcut": "Rak'tika - Fanow",
|
||||||
"Fly": true,
|
"Fly": true
|
||||||
"RequiredGatheredItems": [
|
|
||||||
]
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"DataId": 1032643,
|
"DataId": 1032643,
|
||||||
|
@ -91,6 +91,16 @@
|
|||||||
{
|
{
|
||||||
"Sequence": 255,
|
"Sequence": 255,
|
||||||
"Steps": [
|
"Steps": [
|
||||||
|
{
|
||||||
|
"TerritoryId": 817,
|
||||||
|
"InteractionType": "Gather",
|
||||||
|
"ItemsToGather": [
|
||||||
|
{
|
||||||
|
"ItemId": 29512,
|
||||||
|
"ItemCount": 1
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"DataId": 1032724,
|
"DataId": 1032724,
|
||||||
"Position": {
|
"Position": {
|
||||||
@ -100,13 +110,7 @@
|
|||||||
},
|
},
|
||||||
"TerritoryId": 817,
|
"TerritoryId": 817,
|
||||||
"InteractionType": "CompleteQuest",
|
"InteractionType": "CompleteQuest",
|
||||||
"Fly": true,
|
"Fly": true
|
||||||
"RequiredGatheredItems": [
|
|
||||||
{
|
|
||||||
"ItemId": 29512,
|
|
||||||
"ItemCount": 1
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
@ -38,17 +38,9 @@
|
|||||||
"Sequence": 2,
|
"Sequence": 2,
|
||||||
"Steps": [
|
"Steps": [
|
||||||
{
|
{
|
||||||
"DataId": 1032734,
|
|
||||||
"Position": {
|
|
||||||
"X": 802.6703,
|
|
||||||
"Y": -45.915627,
|
|
||||||
"Z": -214.70972
|
|
||||||
},
|
|
||||||
"TerritoryId": 817,
|
"TerritoryId": 817,
|
||||||
"InteractionType": "Interact",
|
"InteractionType": "Gather",
|
||||||
"AetheryteShortcut": "Rak'tika - Fanow",
|
"ItemsToGather": [
|
||||||
"Fly": true,
|
|
||||||
"RequiredGatheredItems": [
|
|
||||||
{
|
{
|
||||||
"QuestAcceptedAsClass": "Miner",
|
"QuestAcceptedAsClass": "Miner",
|
||||||
"ItemId": 29513,
|
"ItemId": 29513,
|
||||||
@ -60,6 +52,18 @@
|
|||||||
"ItemCount": 1
|
"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,
|
"Sequence": 0,
|
||||||
"Steps": [
|
"Steps": [
|
||||||
|
{
|
||||||
|
"TerritoryId": 820,
|
||||||
|
"InteractionType": "Gather",
|
||||||
|
"ItemsToGather": []
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"DataId": 1031801,
|
"DataId": 1031801,
|
||||||
"Position": {
|
"Position": {
|
||||||
@ -14,7 +19,6 @@
|
|||||||
},
|
},
|
||||||
"TerritoryId": 820,
|
"TerritoryId": 820,
|
||||||
"InteractionType": "Interact",
|
"InteractionType": "Interact",
|
||||||
"RequiredGatheredItems": [],
|
|
||||||
"AetheryteShortcut": "Eulmore",
|
"AetheryteShortcut": "Eulmore",
|
||||||
"DialogueChoices": [
|
"DialogueChoices": [
|
||||||
{
|
{
|
||||||
|
@ -22,8 +22,8 @@
|
|||||||
"Steps": [
|
"Steps": [
|
||||||
{
|
{
|
||||||
"TerritoryId": 960,
|
"TerritoryId": 960,
|
||||||
"InteractionType": "None",
|
"InteractionType": "Gather",
|
||||||
"RequiredGatheredItems": [
|
"ItemsToGather": [
|
||||||
{
|
{
|
||||||
"QuestAcceptedAsClass": "Miner",
|
"QuestAcceptedAsClass": "Miner",
|
||||||
"ItemId": 38281,
|
"ItemId": 38281,
|
||||||
|
@ -21,16 +21,9 @@
|
|||||||
"Sequence": 255,
|
"Sequence": 255,
|
||||||
"Steps": [
|
"Steps": [
|
||||||
{
|
{
|
||||||
"DataId": 2013072,
|
|
||||||
"Position": {
|
|
||||||
"X": 456.65674,
|
|
||||||
"Y": 438.04077,
|
|
||||||
"Z": 310.2312
|
|
||||||
},
|
|
||||||
"TerritoryId": 960,
|
"TerritoryId": 960,
|
||||||
"InteractionType": "Interact",
|
"InteractionType": "Gather",
|
||||||
"TargetTerritoryId": 960,
|
"ItemsToGather": [
|
||||||
"RequiredGatheredItems": [
|
|
||||||
{
|
{
|
||||||
"QuestAcceptedAsClass": "Miner",
|
"QuestAcceptedAsClass": "Miner",
|
||||||
"ItemId": 38282,
|
"ItemId": 38282,
|
||||||
@ -41,8 +34,19 @@
|
|||||||
"ItemId": 38306,
|
"ItemId": 38306,
|
||||||
"ItemCount": 3
|
"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,
|
"DataId": 1043417,
|
||||||
|
@ -33,8 +33,8 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"TerritoryId": 1073,
|
"TerritoryId": 1073,
|
||||||
"InteractionType": "None",
|
"InteractionType": "Gather",
|
||||||
"RequiredGatheredItems": [
|
"ItemsToGather": [
|
||||||
{
|
{
|
||||||
"QuestAcceptedAsClass": "Miner",
|
"QuestAcceptedAsClass": "Miner",
|
||||||
"ItemId": 38284,
|
"ItemId": 38284,
|
||||||
|
@ -21,17 +21,9 @@
|
|||||||
"Sequence": 255,
|
"Sequence": 255,
|
||||||
"Steps": [
|
"Steps": [
|
||||||
{
|
{
|
||||||
"DataId": 2013072,
|
|
||||||
"Position": {
|
|
||||||
"X": 456.65674,
|
|
||||||
"Y": 438.04077,
|
|
||||||
"Z": 310.2312
|
|
||||||
},
|
|
||||||
"TerritoryId": 960,
|
"TerritoryId": 960,
|
||||||
"InteractionType": "Interact",
|
"InteractionType": "Gather",
|
||||||
"TargetTerritoryId": 960,
|
"ItemsToGather": [
|
||||||
"AetheryteShortcut": "Ultima Thule - Base Omicron",
|
|
||||||
"RequiredGatheredItems": [
|
|
||||||
{
|
{
|
||||||
"QuestAcceptedAsClass": "Miner",
|
"QuestAcceptedAsClass": "Miner",
|
||||||
"ItemId": 38283,
|
"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,
|
"DataId": 1043417,
|
||||||
"Position": {
|
"Position": {
|
||||||
|
@ -33,8 +33,8 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"TerritoryId": 1073,
|
"TerritoryId": 1073,
|
||||||
"InteractionType": "None",
|
"InteractionType": "Gather",
|
||||||
"RequiredGatheredItems": [
|
"ItemsToGather": [
|
||||||
{
|
{
|
||||||
"QuestAcceptedAsClass": "Miner",
|
"QuestAcceptedAsClass": "Miner",
|
||||||
"ItemId": 38285,
|
"ItemId": 38285,
|
||||||
|
@ -22,8 +22,8 @@
|
|||||||
"Steps": [
|
"Steps": [
|
||||||
{
|
{
|
||||||
"TerritoryId": 960,
|
"TerritoryId": 960,
|
||||||
"InteractionType": "None",
|
"InteractionType": "Gather",
|
||||||
"RequiredGatheredItems": [
|
"ItemsToGather": [
|
||||||
{
|
{
|
||||||
"QuestAcceptedAsClass": "Miner",
|
"QuestAcceptedAsClass": "Miner",
|
||||||
"ItemId": 38286,
|
"ItemId": 38286,
|
||||||
|
@ -34,8 +34,8 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"TerritoryId": 1073,
|
"TerritoryId": 1073,
|
||||||
"InteractionType": "None",
|
"InteractionType": "Gather",
|
||||||
"RequiredGatheredItems": [
|
"ItemsToGather": [
|
||||||
{
|
{
|
||||||
"QuestAcceptedAsClass": "Miner",
|
"QuestAcceptedAsClass": "Miner",
|
||||||
"ItemId": 38287,
|
"ItemId": 38287,
|
||||||
|
@ -47,15 +47,9 @@
|
|||||||
"Sequence": 2,
|
"Sequence": 2,
|
||||||
"Steps": [
|
"Steps": [
|
||||||
{
|
{
|
||||||
"DataId": 1044059,
|
|
||||||
"Position": {
|
|
||||||
"X": -15.304871,
|
|
||||||
"Y": 494.9991,
|
|
||||||
"Z": -68.16211
|
|
||||||
},
|
|
||||||
"TerritoryId": 1073,
|
"TerritoryId": 1073,
|
||||||
"InteractionType": "Interact",
|
"InteractionType": "Gather",
|
||||||
"RequiredGatheredItems": [
|
"ItemsToGather": [
|
||||||
{
|
{
|
||||||
"QuestAcceptedAsClass": "Miner",
|
"QuestAcceptedAsClass": "Miner",
|
||||||
"ItemId": 38289,
|
"ItemId": 38289,
|
||||||
@ -67,6 +61,16 @@
|
|||||||
"ItemCount": 3
|
"ItemCount": 3
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"DataId": 1044059,
|
||||||
|
"Position": {
|
||||||
|
"X": -15.304871,
|
||||||
|
"Y": 494.9991,
|
||||||
|
"Z": -68.16211
|
||||||
|
},
|
||||||
|
"TerritoryId": 1073,
|
||||||
|
"InteractionType": "Interact"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
@ -21,17 +21,9 @@
|
|||||||
"Sequence": 1,
|
"Sequence": 1,
|
||||||
"Steps": [
|
"Steps": [
|
||||||
{
|
{
|
||||||
"DataId": 1044064,
|
|
||||||
"Position": {
|
|
||||||
"X": 86.503296,
|
|
||||||
"Y": 269.08234,
|
|
||||||
"Z": -515.0683
|
|
||||||
},
|
|
||||||
"TerritoryId": 960,
|
"TerritoryId": 960,
|
||||||
"InteractionType": "Interact",
|
"InteractionType": "Gather",
|
||||||
"AetheryteShortcut": "Ultima Thule - Abode of the Ea",
|
"ItemsToGather": [
|
||||||
"Fly": true,
|
|
||||||
"RequiredGatheredItems": [
|
|
||||||
{
|
{
|
||||||
"QuestAcceptedAsClass": "Miner",
|
"QuestAcceptedAsClass": "Miner",
|
||||||
"ItemId": 38290,
|
"ItemId": 38290,
|
||||||
@ -43,6 +35,18 @@
|
|||||||
"ItemCount": 3
|
"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,
|
"TerritoryId": 1073,
|
||||||
"InteractionType": "None",
|
"InteractionType": "Gather",
|
||||||
"RequiredGatheredItems": [
|
"ItemsToGather": [
|
||||||
{
|
{
|
||||||
"QuestAcceptedAsClass": "Miner",
|
"QuestAcceptedAsClass": "Miner",
|
||||||
"ItemId": 38291,
|
"ItemId": 38291,
|
||||||
|
@ -33,8 +33,8 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"TerritoryId": 1073,
|
"TerritoryId": 1073,
|
||||||
"InteractionType": "None",
|
"InteractionType": "Gather",
|
||||||
"RequiredGatheredItems": [
|
"ItemsToGather": [
|
||||||
{
|
{
|
||||||
"QuestAcceptedAsClass": "Miner",
|
"QuestAcceptedAsClass": "Miner",
|
||||||
"ItemId": 38292,
|
"ItemId": 38292,
|
||||||
|
@ -33,8 +33,8 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"TerritoryId": 1073,
|
"TerritoryId": 1073,
|
||||||
"InteractionType": "None",
|
"InteractionType": "Gather",
|
||||||
"RequiredGatheredItems": [
|
"ItemsToGather": [
|
||||||
{
|
{
|
||||||
"QuestAcceptedAsClass": "Miner",
|
"QuestAcceptedAsClass": "Miner",
|
||||||
"ItemId": 38293,
|
"ItemId": 38293,
|
||||||
|
@ -21,17 +21,9 @@
|
|||||||
"Sequence": 1,
|
"Sequence": 1,
|
||||||
"Steps": [
|
"Steps": [
|
||||||
{
|
{
|
||||||
"DataId": 1044071,
|
|
||||||
"Position": {
|
|
||||||
"X": 46.066895,
|
|
||||||
"Y": 268.99976,
|
|
||||||
"Z": -584.77155
|
|
||||||
},
|
|
||||||
"TerritoryId": 960,
|
"TerritoryId": 960,
|
||||||
"InteractionType": "Interact",
|
"InteractionType": "Gather",
|
||||||
"AetheryteShortcut": "Ultima Thule - Abode of the Ea",
|
"ItemsToGather": [
|
||||||
"Fly": true,
|
|
||||||
"RequiredGatheredItems": [
|
|
||||||
{
|
{
|
||||||
"QuestAcceptedAsClass": "Miner",
|
"QuestAcceptedAsClass": "Miner",
|
||||||
"ItemId": 38294,
|
"ItemId": 38294,
|
||||||
@ -43,6 +35,18 @@
|
|||||||
"ItemCount": 3
|
"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,
|
"Sequence": 1,
|
||||||
"Steps": [
|
"Steps": [
|
||||||
{
|
{
|
||||||
"DataId": 1044074,
|
|
||||||
"Position": {
|
|
||||||
"X": -585.90063,
|
|
||||||
"Y": 75.22713,
|
|
||||||
"Z": 256.67188
|
|
||||||
},
|
|
||||||
"TerritoryId": 960,
|
"TerritoryId": 960,
|
||||||
"InteractionType": "Interact",
|
"InteractionType": "Gather",
|
||||||
"AetheryteShortcut": "Ultima Thule - Reah Tahra",
|
"ItemsToGather": [
|
||||||
"RequiredGatheredItems": [
|
|
||||||
{
|
{
|
||||||
"QuestAcceptedAsClass": "Miner",
|
"QuestAcceptedAsClass": "Miner",
|
||||||
"ItemId": 38295,
|
"ItemId": 38295,
|
||||||
@ -42,6 +35,17 @@
|
|||||||
"ItemCount": 3
|
"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,
|
"Sequence": 2,
|
||||||
"Steps": [
|
"Steps": [
|
||||||
{
|
{
|
||||||
"DataId": 1044075,
|
|
||||||
"Position": {
|
|
||||||
"X": -64.4389,
|
|
||||||
"Y": 493.32922,
|
|
||||||
"Z": -4.409851
|
|
||||||
},
|
|
||||||
"TerritoryId": 1073,
|
"TerritoryId": 1073,
|
||||||
"InteractionType": "Interact",
|
"InteractionType": "Gather",
|
||||||
"RequiredGatheredItems": [
|
"ItemsToGather": [
|
||||||
{
|
{
|
||||||
"QuestAcceptedAsClass": "Miner",
|
"QuestAcceptedAsClass": "Miner",
|
||||||
"ItemId": 38296,
|
"ItemId": 38296,
|
||||||
@ -67,6 +61,16 @@
|
|||||||
"ItemCount": 3
|
"ItemCount": 3
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"DataId": 1044075,
|
||||||
|
"Position": {
|
||||||
|
"X": -64.4389,
|
||||||
|
"Y": 493.32922,
|
||||||
|
"Z": -4.409851
|
||||||
|
},
|
||||||
|
"TerritoryId": 1073,
|
||||||
|
"InteractionType": "Interact"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
@ -21,17 +21,9 @@
|
|||||||
"Sequence": 1,
|
"Sequence": 1,
|
||||||
"Steps": [
|
"Steps": [
|
||||||
{
|
{
|
||||||
"DataId": 1044076,
|
|
||||||
"Position": {
|
|
||||||
"X": -499.96188,
|
|
||||||
"Y": 77.00467,
|
|
||||||
"Z": 241.07727
|
|
||||||
},
|
|
||||||
"StopDistance": 9,
|
|
||||||
"TerritoryId": 960,
|
"TerritoryId": 960,
|
||||||
"InteractionType": "Interact",
|
"InteractionType": "Gather",
|
||||||
"AetheryteShortcut": "Ultima Thule - Reah Tahra",
|
"ItemsToGather": [
|
||||||
"RequiredGatheredItems": [
|
|
||||||
{
|
{
|
||||||
"QuestAcceptedAsClass": "Miner",
|
"QuestAcceptedAsClass": "Miner",
|
||||||
"ItemId": 38297,
|
"ItemId": 38297,
|
||||||
@ -43,6 +35,18 @@
|
|||||||
"ItemCount": 3
|
"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,
|
"Sequence": 1,
|
||||||
"Steps": [
|
"Steps": [
|
||||||
{
|
{
|
||||||
"DataId": 1044081,
|
|
||||||
"Position": {
|
|
||||||
"X": -503.99023,
|
|
||||||
"Y": 74.16917,
|
|
||||||
"Z": 261.82947
|
|
||||||
},
|
|
||||||
"TerritoryId": 960,
|
"TerritoryId": 960,
|
||||||
"InteractionType": "Interact",
|
"InteractionType": "Gather",
|
||||||
"AetheryteShortcut": "Ultima Thule - Reah Tahra",
|
"AetheryteShortcut": "Ultima Thule - Reah Tahra",
|
||||||
"RequiredGatheredItems": [
|
"ItemsToGather": [
|
||||||
{
|
{
|
||||||
"QuestAcceptedAsClass": "Miner",
|
"QuestAcceptedAsClass": "Miner",
|
||||||
"ItemId": 38299,
|
"ItemId": 38299,
|
||||||
@ -42,6 +36,16 @@
|
|||||||
"ItemCount": 3
|
"ItemCount": 3
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"DataId": 1044081,
|
||||||
|
"Position": {
|
||||||
|
"X": -503.99023,
|
||||||
|
"Y": 74.16917,
|
||||||
|
"Z": 261.82947
|
||||||
|
},
|
||||||
|
"TerritoryId": 960,
|
||||||
|
"InteractionType": "Interact"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
@ -33,8 +33,8 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"TerritoryId": 1073,
|
"TerritoryId": 1073,
|
||||||
"InteractionType": "None",
|
"InteractionType": "Gather",
|
||||||
"RequiredGatheredItems": [
|
"ItemsToGather": [
|
||||||
{
|
{
|
||||||
"QuestAcceptedAsClass": "Miner",
|
"QuestAcceptedAsClass": "Miner",
|
||||||
"ItemId": 38298,
|
"ItemId": 38298,
|
||||||
|
@ -113,6 +113,22 @@
|
|||||||
{
|
{
|
||||||
"Sequence": 4,
|
"Sequence": 4,
|
||||||
"Steps": [
|
"Steps": [
|
||||||
|
{
|
||||||
|
"TerritoryId": 960,
|
||||||
|
"InteractionType": "Gather",
|
||||||
|
"ItemsToGather": [
|
||||||
|
{
|
||||||
|
"QuestAcceptedAsClass": "Miner",
|
||||||
|
"ItemId": 38276,
|
||||||
|
"ItemCount": 3
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"QuestAcceptedAsClass": "Botanist",
|
||||||
|
"ItemId": 38300,
|
||||||
|
"ItemCount": 3
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"DataId": 2013072,
|
"DataId": 2013072,
|
||||||
"Position": {
|
"Position": {
|
||||||
@ -129,18 +145,6 @@
|
|||||||
"Prompt": "TEXT_BANOMI001_04601_Q5_000_000",
|
"Prompt": "TEXT_BANOMI001_04601_Q5_000_000",
|
||||||
"Yes": true
|
"Yes": true
|
||||||
}
|
}
|
||||||
],
|
|
||||||
"RequiredGatheredItems": [
|
|
||||||
{
|
|
||||||
"QuestAcceptedAsClass": "Miner",
|
|
||||||
"ItemId": 38276,
|
|
||||||
"ItemCount": 3
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"QuestAcceptedAsClass": "Botanist",
|
|
||||||
"ItemId": 38300,
|
|
||||||
"ItemCount": 3
|
|
||||||
}
|
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -171,8 +171,8 @@
|
|||||||
"Steps": [
|
"Steps": [
|
||||||
{
|
{
|
||||||
"TerritoryId": 960,
|
"TerritoryId": 960,
|
||||||
"InteractionType": "None",
|
"InteractionType": "Gather",
|
||||||
"RequiredGatheredItems": [
|
"ItemsToGather": [
|
||||||
{
|
{
|
||||||
"QuestAcceptedAsClass": "Miner",
|
"QuestAcceptedAsClass": "Miner",
|
||||||
"ItemId": 38277,
|
"ItemId": 38277,
|
||||||
|
@ -139,8 +139,8 @@
|
|||||||
"Steps": [
|
"Steps": [
|
||||||
{
|
{
|
||||||
"TerritoryId": 960,
|
"TerritoryId": 960,
|
||||||
"InteractionType": "None",
|
"InteractionType": "Gather",
|
||||||
"RequiredGatheredItems": [
|
"ItemsToGather": [
|
||||||
{
|
{
|
||||||
"QuestAcceptedAsClass": "Miner",
|
"QuestAcceptedAsClass": "Miner",
|
||||||
"ItemId": 38278,
|
"ItemId": 38278,
|
||||||
|
@ -91,8 +91,8 @@
|
|||||||
"Steps": [
|
"Steps": [
|
||||||
{
|
{
|
||||||
"TerritoryId": 398,
|
"TerritoryId": 398,
|
||||||
"InteractionType": "None",
|
"InteractionType": "Gather",
|
||||||
"RequiredGatheredItems": [
|
"ItemsToGather": [
|
||||||
{
|
{
|
||||||
"QuestAcceptedAsClass": "Miner",
|
"QuestAcceptedAsClass": "Miner",
|
||||||
"ItemId": 38279,
|
"ItemId": 38279,
|
||||||
|
@ -156,8 +156,8 @@
|
|||||||
"Steps": [
|
"Steps": [
|
||||||
{
|
{
|
||||||
"TerritoryId": 1073,
|
"TerritoryId": 1073,
|
||||||
"InteractionType": "None",
|
"InteractionType": "Gather",
|
||||||
"RequiredGatheredItems": [
|
"ItemsToGather": [
|
||||||
{
|
{
|
||||||
"QuestAcceptedAsClass": "Miner",
|
"QuestAcceptedAsClass": "Miner",
|
||||||
"ItemId": 38280,
|
"ItemId": 38280,
|
||||||
|
@ -5,6 +5,11 @@
|
|||||||
{
|
{
|
||||||
"Sequence": 0,
|
"Sequence": 0,
|
||||||
"Steps": [
|
"Steps": [
|
||||||
|
{
|
||||||
|
"TerritoryId": 962,
|
||||||
|
"InteractionType": "Gather",
|
||||||
|
"ItemsToGather": []
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"DataId": 1042241,
|
"DataId": 1042241,
|
||||||
"Position": {
|
"Position": {
|
||||||
@ -14,7 +19,6 @@
|
|||||||
},
|
},
|
||||||
"TerritoryId": 962,
|
"TerritoryId": 962,
|
||||||
"InteractionType": "Interact",
|
"InteractionType": "Interact",
|
||||||
"RequiredGatheredItems": [],
|
|
||||||
"AetheryteShortcut": "Old Sharlayan",
|
"AetheryteShortcut": "Old Sharlayan",
|
||||||
"AethernetShortcut": [
|
"AethernetShortcut": [
|
||||||
"[Old Sharlayan] Aetheryte Plaza",
|
"[Old Sharlayan] Aetheryte Plaza",
|
||||||
|
@ -5,6 +5,11 @@
|
|||||||
{
|
{
|
||||||
"Sequence": 0,
|
"Sequence": 0,
|
||||||
"Steps": [
|
"Steps": [
|
||||||
|
{
|
||||||
|
"TerritoryId": 816,
|
||||||
|
"InteractionType": "Gather",
|
||||||
|
"ItemsToGather": []
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"DataId": 1044547,
|
"DataId": 1044547,
|
||||||
"Position": {
|
"Position": {
|
||||||
@ -14,7 +19,6 @@
|
|||||||
},
|
},
|
||||||
"TerritoryId": 816,
|
"TerritoryId": 816,
|
||||||
"InteractionType": "Interact",
|
"InteractionType": "Interact",
|
||||||
"RequiredGatheredItems": [],
|
|
||||||
"AetheryteShortcut": "Il Mheg - Lydha Lran",
|
"AetheryteShortcut": "Il Mheg - Lydha Lran",
|
||||||
"Fly": true,
|
"Fly": true,
|
||||||
"DialogueChoices": [
|
"DialogueChoices": [
|
||||||
|
@ -5,6 +5,11 @@
|
|||||||
{
|
{
|
||||||
"Sequence": 0,
|
"Sequence": 0,
|
||||||
"Steps": [
|
"Steps": [
|
||||||
|
{
|
||||||
|
"TerritoryId": 956,
|
||||||
|
"InteractionType": "Gather",
|
||||||
|
"ItemsToGather": []
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"Position": {
|
"Position": {
|
||||||
"X": -44.066154,
|
"X": -44.066154,
|
||||||
@ -14,7 +19,6 @@
|
|||||||
"TerritoryId": 956,
|
"TerritoryId": 956,
|
||||||
"InteractionType": "WalkTo",
|
"InteractionType": "WalkTo",
|
||||||
"AetheryteShortcut": "Labyrinthos - Sharlayan Hamlet",
|
"AetheryteShortcut": "Labyrinthos - Sharlayan Hamlet",
|
||||||
"RequiredGatheredItems": [],
|
|
||||||
"Fly": true
|
"Fly": true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -20,6 +20,17 @@
|
|||||||
{
|
{
|
||||||
"Sequence": 255,
|
"Sequence": 255,
|
||||||
"Steps": [
|
"Steps": [
|
||||||
|
{
|
||||||
|
"TerritoryId": 962,
|
||||||
|
"InteractionType": "Gather",
|
||||||
|
"ItemsToGather": [
|
||||||
|
{
|
||||||
|
"ItemId": 35600,
|
||||||
|
"ItemCount": 6,
|
||||||
|
"Collectability": 600
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"DataId": 1038501,
|
"DataId": 1038501,
|
||||||
"Position": {
|
"Position": {
|
||||||
@ -34,13 +45,6 @@
|
|||||||
"[Old Sharlayan] Aetheryte Plaza",
|
"[Old Sharlayan] Aetheryte Plaza",
|
||||||
"[Old Sharlayan] The Studium"
|
"[Old Sharlayan] The Studium"
|
||||||
],
|
],
|
||||||
"RequiredGatheredItems": [
|
|
||||||
{
|
|
||||||
"ItemId": 35600,
|
|
||||||
"ItemCount": 6,
|
|
||||||
"Collectability": 600
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"NextQuestId": 4155
|
"NextQuestId": 4155
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
@ -20,6 +20,17 @@
|
|||||||
{
|
{
|
||||||
"Sequence": 255,
|
"Sequence": 255,
|
||||||
"Steps": [
|
"Steps": [
|
||||||
|
{
|
||||||
|
"TerritoryId": 962,
|
||||||
|
"InteractionType": "Gather",
|
||||||
|
"ItemsToGather": [
|
||||||
|
{
|
||||||
|
"ItemId": 35601,
|
||||||
|
"ItemCount": 6,
|
||||||
|
"Collectability": 600
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"DataId": 1038501,
|
"DataId": 1038501,
|
||||||
"Position": {
|
"Position": {
|
||||||
@ -34,13 +45,6 @@
|
|||||||
"[Old Sharlayan] Aetheryte Plaza",
|
"[Old Sharlayan] Aetheryte Plaza",
|
||||||
"[Old Sharlayan] The Studium"
|
"[Old Sharlayan] The Studium"
|
||||||
],
|
],
|
||||||
"RequiredGatheredItems": [
|
|
||||||
{
|
|
||||||
"ItemId": 35601,
|
|
||||||
"ItemCount": 6,
|
|
||||||
"Collectability": 600
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"NextQuestId": 4156
|
"NextQuestId": 4156
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
@ -20,6 +20,17 @@
|
|||||||
{
|
{
|
||||||
"Sequence": 255,
|
"Sequence": 255,
|
||||||
"Steps": [
|
"Steps": [
|
||||||
|
{
|
||||||
|
"TerritoryId": 962,
|
||||||
|
"InteractionType": "Gather",
|
||||||
|
"ItemsToGather": [
|
||||||
|
{
|
||||||
|
"ItemId": 35602,
|
||||||
|
"ItemCount": 6,
|
||||||
|
"Collectability": 600
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"DataId": 1038501,
|
"DataId": 1038501,
|
||||||
"Position": {
|
"Position": {
|
||||||
@ -34,13 +45,6 @@
|
|||||||
"[Old Sharlayan] Aetheryte Plaza",
|
"[Old Sharlayan] Aetheryte Plaza",
|
||||||
"[Old Sharlayan] The Studium"
|
"[Old Sharlayan] The Studium"
|
||||||
],
|
],
|
||||||
"RequiredGatheredItems": [
|
|
||||||
{
|
|
||||||
"ItemId": 35602,
|
|
||||||
"ItemCount": 6,
|
|
||||||
"Collectability": 600
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"NextQuestId": 4157
|
"NextQuestId": 4157
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
@ -97,6 +97,16 @@
|
|||||||
{
|
{
|
||||||
"Sequence": 5,
|
"Sequence": 5,
|
||||||
"Steps": [
|
"Steps": [
|
||||||
|
{
|
||||||
|
"TerritoryId": 628,
|
||||||
|
"InteractionType": "Gather",
|
||||||
|
"ItemsToGather": [
|
||||||
|
{
|
||||||
|
"ItemId": 35847,
|
||||||
|
"ItemCount": 1
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"DataId": 1038508,
|
"DataId": 1038508,
|
||||||
"Position": {
|
"Position": {
|
||||||
@ -110,12 +120,6 @@
|
|||||||
"AethernetShortcut": [
|
"AethernetShortcut": [
|
||||||
"[Kugane] Aetheryte Plaza",
|
"[Kugane] Aetheryte Plaza",
|
||||||
"[Kugane] The Ruby Bazaar"
|
"[Kugane] The Ruby Bazaar"
|
||||||
],
|
|
||||||
"RequiredGatheredItems": [
|
|
||||||
{
|
|
||||||
"ItemId": 35847,
|
|
||||||
"ItemCount": 1
|
|
||||||
}
|
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
@ -20,6 +20,17 @@
|
|||||||
{
|
{
|
||||||
"Sequence": 255,
|
"Sequence": 255,
|
||||||
"Steps": [
|
"Steps": [
|
||||||
|
{
|
||||||
|
"TerritoryId": 962,
|
||||||
|
"InteractionType": "Gather",
|
||||||
|
"ItemsToGather": [
|
||||||
|
{
|
||||||
|
"ItemId": 35603,
|
||||||
|
"ItemCount": 6,
|
||||||
|
"Collectability": 600
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"DataId": 1038501,
|
"DataId": 1038501,
|
||||||
"Position": {
|
"Position": {
|
||||||
@ -34,13 +45,6 @@
|
|||||||
"[Old Sharlayan] Aetheryte Plaza",
|
"[Old Sharlayan] Aetheryte Plaza",
|
||||||
"[Old Sharlayan] The Studium"
|
"[Old Sharlayan] The Studium"
|
||||||
],
|
],
|
||||||
"RequiredGatheredItems": [
|
|
||||||
{
|
|
||||||
"ItemId": 35603,
|
|
||||||
"ItemCount": 6,
|
|
||||||
"Collectability": 600
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"NextQuestId": 4159
|
"NextQuestId": 4159
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
@ -20,6 +20,16 @@
|
|||||||
{
|
{
|
||||||
"Sequence": 1,
|
"Sequence": 1,
|
||||||
"Steps": [
|
"Steps": [
|
||||||
|
{
|
||||||
|
"TerritoryId": 962,
|
||||||
|
"InteractionType": "Gather",
|
||||||
|
"ItemsToGather": [
|
||||||
|
{
|
||||||
|
"ItemId": 35848,
|
||||||
|
"ItemCount": 1
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"DataId": 1038503,
|
"DataId": 1038503,
|
||||||
"Position": {
|
"Position": {
|
||||||
@ -33,12 +43,6 @@
|
|||||||
"AethernetShortcut": [
|
"AethernetShortcut": [
|
||||||
"[Old Sharlayan] Aetheryte Plaza",
|
"[Old Sharlayan] Aetheryte Plaza",
|
||||||
"[Old Sharlayan] The Studium"
|
"[Old Sharlayan] The Studium"
|
||||||
],
|
|
||||||
"RequiredGatheredItems": [
|
|
||||||
{
|
|
||||||
"ItemId": 35848,
|
|
||||||
"ItemCount": 1
|
|
||||||
}
|
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
@ -22,18 +22,13 @@
|
|||||||
"Steps": [
|
"Steps": [
|
||||||
{
|
{
|
||||||
"TerritoryId": 1185,
|
"TerritoryId": 1185,
|
||||||
"InteractionType": "None",
|
"InteractionType": "Gather",
|
||||||
"RequiredGatheredItems": [
|
"ItemsToGather": [
|
||||||
{
|
{
|
||||||
"ItemId": 43899,
|
"ItemId": 43899,
|
||||||
"ItemCount": 6,
|
"ItemCount": 6,
|
||||||
"Collectability": 600
|
"Collectability": 600
|
||||||
}
|
}
|
||||||
],
|
|
||||||
"AetheryteShortcut": "Tuliyollal",
|
|
||||||
"AethernetShortcut": [
|
|
||||||
"[Tuliyollal] Aetheryte Plaza",
|
|
||||||
"[Tuliyollal] Wachumeqimeqi"
|
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -45,7 +40,12 @@
|
|||||||
},
|
},
|
||||||
"TerritoryId": 1185,
|
"TerritoryId": 1185,
|
||||||
"InteractionType": "CompleteQuest",
|
"InteractionType": "CompleteQuest",
|
||||||
"NextQuestId": 4991
|
"NextQuestId": 4991,
|
||||||
|
"AetheryteShortcut": "Tuliyollal",
|
||||||
|
"AethernetShortcut": [
|
||||||
|
"[Tuliyollal] Aetheryte Plaza",
|
||||||
|
"[Tuliyollal] Wachumeqimeqi"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
@ -22,18 +22,13 @@
|
|||||||
"Steps": [
|
"Steps": [
|
||||||
{
|
{
|
||||||
"TerritoryId": 1185,
|
"TerritoryId": 1185,
|
||||||
"InteractionType": "None",
|
"InteractionType": "Gather",
|
||||||
"RequiredGatheredItems": [
|
"ItemsToGather": [
|
||||||
{
|
{
|
||||||
"ItemId": 43900,
|
"ItemId": 43900,
|
||||||
"ItemCount": 6,
|
"ItemCount": 6,
|
||||||
"Collectability": 600
|
"Collectability": 600
|
||||||
}
|
}
|
||||||
],
|
|
||||||
"AetheryteShortcut": "Tuliyollal",
|
|
||||||
"AethernetShortcut": [
|
|
||||||
"[Tuliyollal] Aetheryte Plaza",
|
|
||||||
"[Tuliyollal] Wachumeqimeqi"
|
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -45,7 +40,12 @@
|
|||||||
},
|
},
|
||||||
"TerritoryId": 1185,
|
"TerritoryId": 1185,
|
||||||
"InteractionType": "CompleteQuest",
|
"InteractionType": "CompleteQuest",
|
||||||
"NextQuestId": 4992
|
"NextQuestId": 4992,
|
||||||
|
"AetheryteShortcut": "Tuliyollal",
|
||||||
|
"AethernetShortcut": [
|
||||||
|
"[Tuliyollal] Aetheryte Plaza",
|
||||||
|
"[Tuliyollal] Wachumeqimeqi"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
@ -22,18 +22,13 @@
|
|||||||
"Steps": [
|
"Steps": [
|
||||||
{
|
{
|
||||||
"TerritoryId": 1185,
|
"TerritoryId": 1185,
|
||||||
"InteractionType": "None",
|
"InteractionType": "Gather",
|
||||||
"RequiredGatheredItems": [
|
"ItemsToGather": [
|
||||||
{
|
{
|
||||||
"ItemId": 43901,
|
"ItemId": 43901,
|
||||||
"ItemCount": 6,
|
"ItemCount": 6,
|
||||||
"Collectability": 600
|
"Collectability": 600
|
||||||
}
|
}
|
||||||
],
|
|
||||||
"AetheryteShortcut": "Tuliyollal",
|
|
||||||
"AethernetShortcut": [
|
|
||||||
"[Tuliyollal] Aetheryte Plaza",
|
|
||||||
"[Tuliyollal] Wachumeqimeqi"
|
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -45,7 +40,12 @@
|
|||||||
},
|
},
|
||||||
"TerritoryId": 1185,
|
"TerritoryId": 1185,
|
||||||
"InteractionType": "CompleteQuest",
|
"InteractionType": "CompleteQuest",
|
||||||
"NextQuestId": 4993
|
"NextQuestId": 4993,
|
||||||
|
"AetheryteShortcut": "Tuliyollal",
|
||||||
|
"AethernetShortcut": [
|
||||||
|
"[Tuliyollal] Aetheryte Plaza",
|
||||||
|
"[Tuliyollal] Wachumeqimeqi"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
@ -41,17 +41,12 @@
|
|||||||
"Steps": [
|
"Steps": [
|
||||||
{
|
{
|
||||||
"TerritoryId": 1185,
|
"TerritoryId": 1185,
|
||||||
"InteractionType": "None",
|
"InteractionType": "Gather",
|
||||||
"RequiredGatheredItems": [
|
"ItemsToGather": [
|
||||||
{
|
{
|
||||||
"ItemId": 43913,
|
"ItemId": 43913,
|
||||||
"ItemCount": 1
|
"ItemCount": 1
|
||||||
}
|
}
|
||||||
],
|
|
||||||
"AetheryteShortcut": "Tuliyollal",
|
|
||||||
"AethernetShortcut": [
|
|
||||||
"[Tuliyollal] Aetheryte Plaza",
|
|
||||||
"[Tuliyollal] Wachumeqimeqi"
|
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -63,7 +58,12 @@
|
|||||||
},
|
},
|
||||||
"TerritoryId": 1185,
|
"TerritoryId": 1185,
|
||||||
"InteractionType": "CompleteQuest",
|
"InteractionType": "CompleteQuest",
|
||||||
"NextQuestId": 4994
|
"NextQuestId": 4994,
|
||||||
|
"AetheryteShortcut": "Tuliyollal",
|
||||||
|
"AethernetShortcut": [
|
||||||
|
"[Tuliyollal] Aetheryte Plaza",
|
||||||
|
"[Tuliyollal] Wachumeqimeqi"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
@ -22,18 +22,13 @@
|
|||||||
"Steps": [
|
"Steps": [
|
||||||
{
|
{
|
||||||
"TerritoryId": 1185,
|
"TerritoryId": 1185,
|
||||||
"InteractionType": "None",
|
"InteractionType": "Gather",
|
||||||
"RequiredGatheredItems": [
|
"ItemsToGather": [
|
||||||
{
|
{
|
||||||
"ItemId": 43902,
|
"ItemId": 43902,
|
||||||
"ItemCount": 6,
|
"ItemCount": 6,
|
||||||
"Collectability": 600
|
"Collectability": 600
|
||||||
}
|
}
|
||||||
],
|
|
||||||
"AetheryteShortcut": "Tuliyollal",
|
|
||||||
"AethernetShortcut": [
|
|
||||||
"[Tuliyollal] Aetheryte Plaza",
|
|
||||||
"[Tuliyollal] Wachumeqimeqi"
|
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -45,7 +40,12 @@
|
|||||||
},
|
},
|
||||||
"TerritoryId": 1185,
|
"TerritoryId": 1185,
|
||||||
"InteractionType": "CompleteQuest",
|
"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": {
|
"Position": {
|
||||||
"X": 674.17834,
|
"X": 674.17834,
|
||||||
@ -213,13 +223,7 @@
|
|||||||
},
|
},
|
||||||
"TerritoryId": 1189,
|
"TerritoryId": 1189,
|
||||||
"InteractionType": "WalkTo",
|
"InteractionType": "WalkTo",
|
||||||
"Fly": true,
|
"Fly": true
|
||||||
"RequiredGatheredItems": [
|
|
||||||
{
|
|
||||||
"ItemId": 43914,
|
|
||||||
"ItemCount": 1
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Position": {
|
"Position": {
|
||||||
|
@ -23,8 +23,8 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"TerritoryId": 1188,
|
"TerritoryId": 1188,
|
||||||
"InteractionType": "None",
|
"InteractionType": "Gather",
|
||||||
"RequiredGatheredItems": [
|
"ItemsToGather": [
|
||||||
{
|
{
|
||||||
"ItemId": 2003516,
|
"ItemId": 2003516,
|
||||||
"AlternativeItemId": 2003517,
|
"AlternativeItemId": 2003517,
|
||||||
|
@ -23,8 +23,8 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"TerritoryId": 1189,
|
"TerritoryId": 1189,
|
||||||
"InteractionType": "None",
|
"InteractionType": "Gather",
|
||||||
"RequiredGatheredItems": [
|
"ItemsToGather": [
|
||||||
{
|
{
|
||||||
"ItemId": 2003529,
|
"ItemId": 2003529,
|
||||||
"AlternativeItemId": 2003530,
|
"AlternativeItemId": 2003530,
|
||||||
|
@ -23,8 +23,8 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"TerritoryId": 1187,
|
"TerritoryId": 1187,
|
||||||
"InteractionType": "None",
|
"InteractionType": "Gather",
|
||||||
"RequiredGatheredItems": [
|
"ItemsToGather": [
|
||||||
{
|
{
|
||||||
"ItemId": 2003539,
|
"ItemId": 2003539,
|
||||||
"AlternativeItemId": 2003540,
|
"AlternativeItemId": 2003540,
|
||||||
|
@ -23,8 +23,8 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"TerritoryId": 1189,
|
"TerritoryId": 1189,
|
||||||
"InteractionType": "None",
|
"InteractionType": "Gather",
|
||||||
"RequiredGatheredItems": [
|
"ItemsToGather": [
|
||||||
{
|
{
|
||||||
"ItemId": 2003552,
|
"ItemId": 2003552,
|
||||||
"AlternativeItemId": 2003553,
|
"AlternativeItemId": 2003553,
|
||||||
|
@ -130,6 +130,7 @@
|
|||||||
"Jump",
|
"Jump",
|
||||||
"Dive",
|
"Dive",
|
||||||
"Craft",
|
"Craft",
|
||||||
|
"Gather",
|
||||||
"Snipe",
|
"Snipe",
|
||||||
"Instruction",
|
"Instruction",
|
||||||
"AcceptQuest",
|
"AcceptQuest",
|
||||||
@ -239,13 +240,19 @@
|
|||||||
"QuestsAccepted": {
|
"QuestsAccepted": {
|
||||||
"type": "array",
|
"type": "array",
|
||||||
"items": {
|
"items": {
|
||||||
"type": ["number", "string"]
|
"type": [
|
||||||
|
"number",
|
||||||
|
"string"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"QuestsCompleted": {
|
"QuestsCompleted": {
|
||||||
"type": "array",
|
"type": "array",
|
||||||
"items": {
|
"items": {
|
||||||
"type": ["number", "string"]
|
"type": [
|
||||||
|
"number",
|
||||||
|
"string"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"AetheryteLocked": {
|
"AetheryteLocked": {
|
||||||
@ -302,13 +309,19 @@
|
|||||||
"QuestsAccepted": {
|
"QuestsAccepted": {
|
||||||
"type": "array",
|
"type": "array",
|
||||||
"items": {
|
"items": {
|
||||||
"type": ["number", "string"]
|
"type": [
|
||||||
|
"number",
|
||||||
|
"string"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"QuestsCompleted": {
|
"QuestsCompleted": {
|
||||||
"type": "array",
|
"type": "array",
|
||||||
"items": {
|
"items": {
|
||||||
"type": ["number", "string"]
|
"type": [
|
||||||
|
"number",
|
||||||
|
"string"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"AetheryteLocked": {
|
"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": {
|
"DelaySecondsAtStart": {
|
||||||
"description": "Time to wait before starting",
|
"description": "Time to wait before starting",
|
||||||
"type": [
|
"type": [
|
||||||
@ -1203,17 +1181,60 @@
|
|||||||
"ItemCount"
|
"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": [
|
"required": [
|
||||||
"SkipIf"
|
"ItemId",
|
||||||
|
"ItemCount"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"required": [
|
||||||
|
"ItemsToGather"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
@ -27,6 +27,7 @@ public sealed class InteractionTypeConverter() : EnumConverter<EInteractionType>
|
|||||||
{ EInteractionType.Jump, "Jump" },
|
{ EInteractionType.Jump, "Jump" },
|
||||||
{ EInteractionType.Dive, "Dive" },
|
{ EInteractionType.Dive, "Dive" },
|
||||||
{ EInteractionType.Craft, "Craft" },
|
{ EInteractionType.Craft, "Craft" },
|
||||||
|
{ EInteractionType.Gather, "Gather" },
|
||||||
{ EInteractionType.Snipe, "Snipe" },
|
{ EInteractionType.Snipe, "Snipe" },
|
||||||
{ EInteractionType.Instruction, "Instruction" },
|
{ EInteractionType.Instruction, "Instruction" },
|
||||||
{ EInteractionType.AcceptQuest, "AcceptQuest" },
|
{ EInteractionType.AcceptQuest, "AcceptQuest" },
|
||||||
|
@ -26,6 +26,7 @@ public enum EInteractionType
|
|||||||
Jump,
|
Jump,
|
||||||
Dive,
|
Dive,
|
||||||
Craft,
|
Craft,
|
||||||
|
Gather,
|
||||||
Snipe,
|
Snipe,
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -38,7 +39,4 @@ public enum EInteractionType
|
|||||||
AcceptLeve,
|
AcceptLeve,
|
||||||
InitiateLeve,
|
InitiateLeve,
|
||||||
CompleteLeve,
|
CompleteLeve,
|
||||||
|
|
||||||
// unmapped extra types below
|
|
||||||
InternalGather,
|
|
||||||
}
|
}
|
||||||
|
@ -74,7 +74,7 @@ public sealed class QuestStep
|
|||||||
public SkipConditions? SkipConditions { get; set; }
|
public SkipConditions? SkipConditions { get; set; }
|
||||||
|
|
||||||
public List<List<QuestWorkValue>?> RequiredQuestVariables { get; set; } = new();
|
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<QuestWorkValue?> CompletionQuestVariablesFlags { get; set; } = [];
|
||||||
public List<DialogueChoice> DialogueChoices { get; set; } = [];
|
public List<DialogueChoice> DialogueChoices { get; set; } = [];
|
||||||
public List<uint> PointMenuChoices { get; set; } = [];
|
public List<uint> PointMenuChoices { get; set; } = [];
|
||||||
|
@ -134,8 +134,8 @@ internal sealed class ContextMenuController : IDisposable
|
|||||||
.Single(x => x is SatisfactionSupplyInfo);
|
.Single(x => x is SatisfactionSupplyInfo);
|
||||||
if (_questRegistry.TryGetQuest(info.QuestId, out Quest? quest))
|
if (_questRegistry.TryGetQuest(info.QuestId, out Quest? quest))
|
||||||
{
|
{
|
||||||
var step = quest.FindSequence(0)!.FindStep(0)!;
|
var step = quest.FindSequence(0)!.Steps.Single(x => x.InteractionType == EInteractionType.Gather);
|
||||||
step.RequiredGatheredItems =
|
step.ItemsToGather =
|
||||||
[
|
[
|
||||||
new GatheredItem
|
new GatheredItem
|
||||||
{
|
{
|
||||||
|
@ -658,9 +658,9 @@ internal sealed class InteractionUiController : IDisposable
|
|||||||
step.TargetTerritoryId);
|
step.TargetTerritoryId);
|
||||||
|
|
||||||
if (step != null && (step.TerritoryId != _clientState.TerritoryType || step.TargetTerritoryId == null) &&
|
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,
|
(EClassJob?)_clientState.LocalPlayer?.ClassJob.Id ?? EClassJob.Adventurer,
|
||||||
out GatheringPointId? gatheringPointId) &&
|
out GatheringPointId? gatheringPointId) &&
|
||||||
_gatheringPointRegistry.TryGetGatheringPoint(gatheringPointId, out GatheringRoot? root))
|
_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) };
|
pointOnFloor = pointOnFloor.Value with { Y = pointOnFloor.Value.Y + (fly ? 3f : 0f) };
|
||||||
|
|
||||||
_taskQueue.Enqueue(_moveFactory.Move(new MoveTo.MoveParams(territoryId, pointOnFloor ?? averagePosition,
|
_taskQueue.Enqueue(_moveFactory.Move(new MoveTo.MoveParams(territoryId, pointOnFloor ?? averagePosition,
|
||||||
50f,
|
null, 50f, Fly: fly, IgnoreDistanceToObject: true)));
|
||||||
Fly: fly, IgnoreDistanceToObject: true)));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
_taskQueue.Enqueue(new MoveToLandingLocation(territoryId, fly, currentNode, _moveFactory, _gameFunctions,
|
_taskQueue.Enqueue(new MoveToLandingLocation(territoryId, fly, currentNode, _moveFactory, _gameFunctions,
|
||||||
_objectTable, _loggerFactory.CreateLogger<MoveToLandingLocation>()));
|
_objectTable, _loggerFactory.CreateLogger<MoveToLandingLocation>()));
|
||||||
_taskQueue.Enqueue(_mountFactory.Unmount());
|
_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);
|
QueueGatherNode(currentNode);
|
||||||
}
|
}
|
||||||
|
@ -81,7 +81,7 @@ internal abstract class MiniTaskController<T>
|
|||||||
|
|
||||||
while (_taskQueue.TryDequeue(out ITask? nextTask))
|
while (_taskQueue.TryDequeue(out ITask? nextTask))
|
||||||
{
|
{
|
||||||
if (nextTask is ILastTask or GatheringRequiredItems.SkipMarker)
|
if (nextTask is ILastTask or Gather.SkipMarker)
|
||||||
{
|
{
|
||||||
_currentTask = nextTask;
|
_currentTask = nextTask;
|
||||||
return;
|
return;
|
||||||
|
@ -41,8 +41,8 @@ internal sealed class MoveToLandingLocation(
|
|||||||
target.ToString("G", CultureInfo.InvariantCulture), degrees, range);
|
target.ToString("G", CultureInfo.InvariantCulture), degrees, range);
|
||||||
|
|
||||||
bool fly = flyBetweenNodes && gameFunctions.IsFlyingUnlocked(territoryId);
|
bool fly = flyBetweenNodes && gameFunctions.IsFlyingUnlocked(territoryId);
|
||||||
_moveTask = moveFactory.Move(new MoveTo.MoveParams(territoryId, target, 0.25f, DataId: gatheringNode.DataId,
|
_moveTask = moveFactory.Move(new MoveTo.MoveParams(territoryId, target, null, 0.25f,
|
||||||
Fly: fly, IgnoreDistanceToObject: true));
|
DataId: gatheringNode.DataId, Fly: fly, IgnoreDistanceToObject: true));
|
||||||
return _moveTask.Start();
|
return _moveTask.Start();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -162,7 +162,7 @@ internal static class Interact
|
|||||||
if (_interactionState == EInteractionState.InteractionConfirmed)
|
if (_interactionState == EInteractionState.InteractionConfirmed)
|
||||||
return ETaskResult.TaskComplete;
|
return ETaskResult.TaskComplete;
|
||||||
|
|
||||||
if (interactionType == EInteractionType.InternalGather && condition[ConditionFlag.Gathering])
|
if (interactionType == EInteractionType.Gather && condition[ConditionFlag.Gathering])
|
||||||
return ETaskResult.TaskComplete;
|
return ETaskResult.TaskComplete;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -72,7 +72,7 @@ internal static class UseItem
|
|||||||
mountFactory.Mount(140,
|
mountFactory.Mount(140,
|
||||||
nextPosition != null ? Mount.EMountIf.AwayFromPosition : Mount.EMountIf.Always,
|
nextPosition != null ? Mount.EMountIf.AwayFromPosition : Mount.EMountIf.Always,
|
||||||
nextPosition),
|
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))
|
DataId: null, DisableNavMesh: true, Sprint: false, Fly: false))
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
@ -16,7 +16,7 @@ using Questionable.Model.Questing;
|
|||||||
|
|
||||||
namespace Questionable.Controller.Steps.Shared;
|
namespace Questionable.Controller.Steps.Shared;
|
||||||
|
|
||||||
internal static class GatheringRequiredItems
|
internal static class Gather
|
||||||
{
|
{
|
||||||
internal sealed class Factory(
|
internal sealed class Factory(
|
||||||
IServiceProvider serviceProvider,
|
IServiceProvider serviceProvider,
|
||||||
@ -30,20 +30,23 @@ internal static class GatheringRequiredItems
|
|||||||
{
|
{
|
||||||
public IEnumerable<ITask> CreateAllTasks(Quest quest, QuestSequence sequence, QuestStep step)
|
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 currentClassJob = (EClassJob)clientState.LocalPlayer!.ClassJob.Id;
|
||||||
EClassJob classJob = currentClassJob;
|
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))
|
if (!IsClassJobQuestWasAcceptedWith(quest.Id, classJob))
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!gatheringData.TryGetGatheringPointId(requiredGatheredItems.ItemId, classJob,
|
if (!gatheringData.TryGetGatheringPointId(itemToGather.ItemId, classJob,
|
||||||
out GatheringPointId? gatheringPointId))
|
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))
|
if (!gatheringPointRegistry.TryGetGatheringPoint(gatheringPointId, out GatheringRoot? gatheringRoot))
|
||||||
throw new TaskException($"No path found for gathering point {gatheringPointId}");
|
throw new TaskException($"No path found for gathering point {gatheringPointId}");
|
||||||
@ -53,7 +56,7 @@ internal static class GatheringRequiredItems
|
|||||||
yield return new SwitchClassJob(classJob, clientState);
|
yield return new SwitchClassJob(classJob, clientState);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (HasRequiredItems(requiredGatheredItems))
|
if (HasRequiredItems(itemToGather))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
using (var _ = logger.BeginScope("Gathering(inner)"))
|
using (var _ = logger.BeginScope("Gathering(inner)"))
|
||||||
@ -81,7 +84,7 @@ internal static class GatheringRequiredItems
|
|||||||
yield return new WaitConditionTask(() => movementController.IsNavmeshReady,
|
yield return new WaitConditionTask(() => movementController.IsNavmeshReady,
|
||||||
"Wait(navmesh ready)");
|
"Wait(navmesh ready)");
|
||||||
|
|
||||||
yield return CreateStartGatheringTask(gatheringPointId, requiredGatheredItems);
|
yield return CreateStartGatheringTask(gatheringPointId, itemToGather);
|
||||||
yield return new WaitAtEnd.WaitDelay();
|
yield return new WaitAtEnd.WaitDelay();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -98,13 +101,13 @@ internal static class GatheringRequiredItems
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
private unsafe bool HasRequiredItems(GatheredItem requiredGatheredItems)
|
private unsafe bool HasRequiredItems(GatheredItem itemToGather)
|
||||||
{
|
{
|
||||||
InventoryManager* inventoryManager = InventoryManager.Instance();
|
InventoryManager* inventoryManager = InventoryManager.Instance();
|
||||||
return inventoryManager != null &&
|
return inventoryManager != null &&
|
||||||
inventoryManager->GetInventoryItemCount(requiredGatheredItems.ItemId,
|
inventoryManager->GetInventoryItemCount(itemToGather.ItemId,
|
||||||
minCollectability: (short)requiredGatheredItems.Collectability) >=
|
minCollectability: (short)itemToGather.Collectability) >=
|
||||||
requiredGatheredItems.ItemCount;
|
itemToGather.ItemCount;
|
||||||
}
|
}
|
||||||
|
|
||||||
private StartGathering CreateStartGatheringTask(GatheringPointId gatheringPointId, GatheredItem gatheredItem)
|
private StartGathering CreateStartGatheringTask(GatheringPointId gatheringPointId, GatheredItem gatheredItem)
|
@ -67,7 +67,7 @@ internal static class MoveTo
|
|||||||
|
|
||||||
public ITask Move(MoveParams moveParams)
|
public ITask Move(MoveParams moveParams)
|
||||||
{
|
{
|
||||||
return new MoveInternal(moveParams, movementController, gameFunctions,
|
return new MoveInternal(moveParams, movementController, mountFactory, gameFunctions,
|
||||||
loggerFactory.CreateLogger<MoveInternal>(), clientState, dataManager);
|
loggerFactory.CreateLogger<MoveInternal>(), clientState, dataManager);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -95,74 +95,18 @@ internal static class MoveTo
|
|||||||
$"Wait(territory: {territoryData.GetNameAndId(step.TerritoryId)})");
|
$"Wait(territory: {territoryData.GetNameAndId(step.TerritoryId)})");
|
||||||
|
|
||||||
if (!step.DisableNavmesh)
|
if (!step.DisableNavmesh)
|
||||||
|
{
|
||||||
yield return new WaitConditionTask(() => movementController.IsNavmeshReady,
|
yield return new WaitConditionTask(() => movementController.IsNavmeshReady,
|
||||||
"Wait(navmesh ready)");
|
"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);
|
yield return Move(step, destination);
|
||||||
}
|
}
|
||||||
else
|
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);
|
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();
|
yield return Land();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -171,6 +115,8 @@ internal static class MoveTo
|
|||||||
{
|
{
|
||||||
private readonly string _cannotExecuteAtThisTime;
|
private readonly string _cannotExecuteAtThisTime;
|
||||||
private readonly MovementController _movementController;
|
private readonly MovementController _movementController;
|
||||||
|
private readonly Mount.Factory _mountFactory;
|
||||||
|
private readonly GameFunctions _gameFunctions;
|
||||||
private readonly ILogger<MoveInternal> _logger;
|
private readonly ILogger<MoveInternal> _logger;
|
||||||
private readonly IClientState _clientState;
|
private readonly IClientState _clientState;
|
||||||
|
|
||||||
@ -178,15 +124,19 @@ internal static class MoveTo
|
|||||||
private readonly Vector3 _destination;
|
private readonly Vector3 _destination;
|
||||||
private readonly MoveParams _moveParams;
|
private readonly MoveParams _moveParams;
|
||||||
private bool _canRestart;
|
private bool _canRestart;
|
||||||
|
private ITask? _mountTask;
|
||||||
|
|
||||||
public MoveInternal(MoveParams moveParams,
|
public MoveInternal(MoveParams moveParams,
|
||||||
MovementController movementController,
|
MovementController movementController,
|
||||||
|
Mount.Factory mountFactory,
|
||||||
GameFunctions gameFunctions,
|
GameFunctions gameFunctions,
|
||||||
ILogger<MoveInternal> logger,
|
ILogger<MoveInternal> logger,
|
||||||
IClientState clientState,
|
IClientState clientState,
|
||||||
IDataManager dataManager)
|
IDataManager dataManager)
|
||||||
{
|
{
|
||||||
_movementController = movementController;
|
_movementController = movementController;
|
||||||
|
_mountFactory = mountFactory;
|
||||||
|
_gameFunctions = gameFunctions;
|
||||||
_logger = logger;
|
_logger = logger;
|
||||||
_clientState = clientState;
|
_clientState = clientState;
|
||||||
_cannotExecuteAtThisTime = dataManager.GetString<LogMessage>(579, x => x.Text)!;
|
_cannotExecuteAtThisTime = dataManager.GetString<LogMessage>(579, x => x.Text)!;
|
||||||
@ -225,13 +175,65 @@ internal static class MoveTo
|
|||||||
|
|
||||||
public bool Start()
|
public bool Start()
|
||||||
{
|
{
|
||||||
_logger.LogInformation("Moving to {Destination}", _destination.ToString("G", CultureInfo.InvariantCulture));
|
float stopDistance = _moveParams.StopDistance ?? QuestStep.DefaultStopDistance;
|
||||||
_startAction();
|
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;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ETaskResult Update()
|
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)
|
if (_movementController.IsPathfinding || _movementController.IsPathRunning)
|
||||||
return ETaskResult.StillRunning;
|
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(
|
internal sealed record MoveParams(
|
||||||
ushort TerritoryId,
|
ushort TerritoryId,
|
||||||
Vector3 Destination,
|
Vector3 Destination,
|
||||||
|
bool? Mount = null,
|
||||||
float? StopDistance = null,
|
float? StopDistance = null,
|
||||||
uint? DataId = null,
|
uint? DataId = null,
|
||||||
bool DisableNavMesh = false,
|
bool DisableNavMesh = false,
|
||||||
@ -284,6 +294,7 @@ internal static class MoveTo
|
|||||||
public MoveParams(QuestStep step, Vector3 destination)
|
public MoveParams(QuestStep step, Vector3 destination)
|
||||||
: this(step.TerritoryId,
|
: this(step.TerritoryId,
|
||||||
destination,
|
destination,
|
||||||
|
step.Mount,
|
||||||
step.CalculateActualStopDistance(),
|
step.CalculateActualStopDistance(),
|
||||||
step.DataId,
|
step.DataId,
|
||||||
step.DisableNavmesh,
|
step.DisableNavmesh,
|
||||||
|
@ -137,7 +137,7 @@ public sealed class QuestionablePlugin : IDalamudPlugin
|
|||||||
// task factories
|
// task factories
|
||||||
serviceCollection.AddTaskFactory<StepDisabled.Factory>();
|
serviceCollection.AddTaskFactory<StepDisabled.Factory>();
|
||||||
serviceCollection.AddTaskFactory<EquipRecommended.BeforeDutyOrInstance>();
|
serviceCollection.AddTaskFactory<EquipRecommended.BeforeDutyOrInstance>();
|
||||||
serviceCollection.AddTaskFactory<GatheringRequiredItems.Factory>();
|
serviceCollection.AddTaskFactory<Gather.Factory>();
|
||||||
serviceCollection.AddTaskFactory<AetheryteShortcut.Factory>();
|
serviceCollection.AddTaskFactory<AetheryteShortcut.Factory>();
|
||||||
serviceCollection.AddTaskFactory<SkipCondition.Factory>();
|
serviceCollection.AddTaskFactory<SkipCondition.Factory>();
|
||||||
serviceCollection.AddTaskFactory<AethernetShortcut.Factory>();
|
serviceCollection.AddTaskFactory<AethernetShortcut.Factory>();
|
||||||
|
Loading…
Reference in New Issue
Block a user