Support PointMenu' (e.g. the stone tablet interaction near DT's beginning) + Update DT paths till mid-Yak T'el
This commit is contained in:
parent
72740677e5
commit
7485923506
@ -350,6 +350,8 @@ public class QuestSourceGenerator : ISourceGenerator
|
|||||||
.AsSyntaxNodeOrToken(),
|
.AsSyntaxNodeOrToken(),
|
||||||
AssignmentList(nameof(QuestStep.DialogueChoices), step.DialogueChoices)
|
AssignmentList(nameof(QuestStep.DialogueChoices), step.DialogueChoices)
|
||||||
.AsSyntaxNodeOrToken(),
|
.AsSyntaxNodeOrToken(),
|
||||||
|
AssignmentList(nameof(QuestStep.PointMenuChoices), step.PointMenuChoices)
|
||||||
|
.AsSyntaxNodeOrToken(),
|
||||||
Assignment(nameof(QuestStep.QuestId), step.QuestId, emptyStep.QuestId)
|
Assignment(nameof(QuestStep.QuestId), step.QuestId, emptyStep.QuestId)
|
||||||
.AsSyntaxNodeOrToken()))))),
|
.AsSyntaxNodeOrToken()))))),
|
||||||
Token(SyntaxKind.CommaToken),
|
Token(SyntaxKind.CommaToken),
|
||||||
|
@ -26,6 +26,7 @@
|
|||||||
"Y": -129.27074,
|
"Y": -129.27074,
|
||||||
"Z": -351.33496
|
"Z": -351.33496
|
||||||
},
|
},
|
||||||
|
"StopDistance": 0.25,
|
||||||
"TerritoryId": 1187,
|
"TerritoryId": 1187,
|
||||||
"InteractionType": "Combat",
|
"InteractionType": "Combat",
|
||||||
"EnemySpawnType": "AutoOnEnterArea",
|
"EnemySpawnType": "AutoOnEnterArea",
|
||||||
|
@ -59,6 +59,21 @@
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 3,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": 0,
|
||||||
|
"Y": 0,
|
||||||
|
"Z": 0
|
||||||
|
},
|
||||||
|
"TerritoryId": 1,
|
||||||
|
"InteractionType": "WalkTo",
|
||||||
|
"Comment": "Filler"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"Sequence": 4,
|
"Sequence": 4,
|
||||||
"Steps": [
|
"Steps": [
|
||||||
|
@ -29,8 +29,7 @@
|
|||||||
"Z": 129.80847
|
"Z": 129.80847
|
||||||
},
|
},
|
||||||
"TerritoryId": 1185,
|
"TerritoryId": 1185,
|
||||||
"InteractionType": "WaitForManualProgress",
|
"InteractionType": "Interact",
|
||||||
"Comment": "Click all tablets (PointMenu)",
|
|
||||||
"DialogueChoices": [
|
"DialogueChoices": [
|
||||||
{
|
{
|
||||||
"Type": "YesNo",
|
"Type": "YesNo",
|
||||||
@ -47,6 +46,16 @@
|
|||||||
"Prompt": "TEXT_KINGMA104_04863_Q2_000_000",
|
"Prompt": "TEXT_KINGMA104_04863_Q2_000_000",
|
||||||
"Answer": "TEXT_KINGMA104_04863_A2_000_001"
|
"Answer": "TEXT_KINGMA104_04863_A2_000_001"
|
||||||
}
|
}
|
||||||
|
],
|
||||||
|
"PointMenuChoices": [
|
||||||
|
0,
|
||||||
|
1,
|
||||||
|
2,
|
||||||
|
3,
|
||||||
|
0,
|
||||||
|
1,
|
||||||
|
2,
|
||||||
|
3
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
@ -33,6 +33,21 @@
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 2,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": 0,
|
||||||
|
"Y": 0,
|
||||||
|
"Z": 0
|
||||||
|
},
|
||||||
|
"TerritoryId": 1,
|
||||||
|
"InteractionType": "WalkTo",
|
||||||
|
"Comment": "Filler"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"Sequence": 3,
|
"Sequence": 3,
|
||||||
"Steps": [
|
"Steps": [
|
||||||
|
@ -85,7 +85,8 @@
|
|||||||
"Z": -388.50995
|
"Z": -388.50995
|
||||||
},
|
},
|
||||||
"TerritoryId": 1188,
|
"TerritoryId": 1188,
|
||||||
"InteractionType": "Interact"
|
"InteractionType": "Interact",
|
||||||
|
"AetheryteShortcut": "Kozama'uka - Ok'hanu"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@ -148,6 +149,16 @@
|
|||||||
{
|
{
|
||||||
"Sequence": 8,
|
"Sequence": 8,
|
||||||
"Steps": [
|
"Steps": [
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": -510.96463,
|
||||||
|
"Y": -0.47684515,
|
||||||
|
"Z": -305.96155
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "WalkTo",
|
||||||
|
"Comment": "Waypoint after swimming through the river"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"DataId": 2013936,
|
"DataId": 2013936,
|
||||||
"Position": {
|
"Position": {
|
||||||
|
@ -73,6 +73,17 @@
|
|||||||
{
|
{
|
||||||
"Sequence": 4,
|
"Sequence": 4,
|
||||||
"Steps": [
|
"Steps": [
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": 303.21774,
|
||||||
|
"Y": 7.475274,
|
||||||
|
"Z": -215.19496
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "WalkTo",
|
||||||
|
"DisableNavmesh": true,
|
||||||
|
"Mount": true
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"DataId": 2013632,
|
"DataId": 2013632,
|
||||||
"Position": {
|
"Position": {
|
||||||
|
@ -84,14 +84,16 @@
|
|||||||
"Z": -171.58777
|
"Z": -171.58777
|
||||||
},
|
},
|
||||||
"TerritoryId": 1187,
|
"TerritoryId": 1187,
|
||||||
"InteractionType": "WaitForManualProgress",
|
"InteractionType": "Interact",
|
||||||
"Comment": "Pick Disconcerted Hoobigo",
|
|
||||||
"DialogueChoices": [
|
"DialogueChoices": [
|
||||||
{
|
{
|
||||||
"Type": "List",
|
"Type": "List",
|
||||||
"Prompt": "TEXT_KINGMA114_04873_Q1_000_000",
|
"Prompt": "TEXT_KINGMA114_04873_Q1_000_000",
|
||||||
"Answer": "TEXT_KINGMA114_04873_A1_000_001"
|
"Answer": "TEXT_KINGMA114_04873_A1_000_001"
|
||||||
}
|
}
|
||||||
|
],
|
||||||
|
"PointMenuChoices": [
|
||||||
|
3
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
@ -61,6 +61,29 @@
|
|||||||
"InteractionType": "AttuneAethernetShard",
|
"InteractionType": "AttuneAethernetShard",
|
||||||
"Comment": "Wachumeqimeqi"
|
"Comment": "Wachumeqimeqi"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": -130.34163,
|
||||||
|
"Y": -14.999287,
|
||||||
|
"Z": 198.40685
|
||||||
|
},
|
||||||
|
"TerritoryId": 1185,
|
||||||
|
"InteractionType": "WalkTo",
|
||||||
|
"AethernetShortcut": [
|
||||||
|
"[Tuliyollal] Wachumeqimeqi",
|
||||||
|
"[Tuliyollal] The For'ard Cabins"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": -122.40268,
|
||||||
|
"Y": -19.754322,
|
||||||
|
"Z": 202.20439
|
||||||
|
},
|
||||||
|
"TerritoryId": 1185,
|
||||||
|
"InteractionType": "WalkTo",
|
||||||
|
"DisableNavmesh": true
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"DataId": 1046763,
|
"DataId": 1046763,
|
||||||
"Position": {
|
"Position": {
|
||||||
@ -69,11 +92,7 @@
|
|||||||
"Z": 201.12915
|
"Z": 201.12915
|
||||||
},
|
},
|
||||||
"TerritoryId": 1185,
|
"TerritoryId": 1185,
|
||||||
"InteractionType": "Interact",
|
"InteractionType": "Interact"
|
||||||
"AethernetShortcut": [
|
|
||||||
"[Tuliyollal] Wachumeqimeqi",
|
|
||||||
"[Tuliyollal] The For'ard Cabins"
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
@ -64,6 +64,21 @@
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 4,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": 0,
|
||||||
|
"Y": 0,
|
||||||
|
"Z": 0
|
||||||
|
},
|
||||||
|
"TerritoryId": 1,
|
||||||
|
"InteractionType": "WalkTo",
|
||||||
|
"Comment": "Filler"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"Sequence": 5,
|
"Sequence": 5,
|
||||||
"Steps": [
|
"Steps": [
|
||||||
|
@ -21,17 +21,6 @@
|
|||||||
{
|
{
|
||||||
"Sequence": 1,
|
"Sequence": 1,
|
||||||
"Steps": [
|
"Steps": [
|
||||||
{
|
|
||||||
"DataId": 2013943,
|
|
||||||
"Position": {
|
|
||||||
"X": 485.89294,
|
|
||||||
"Y": 121.3855,
|
|
||||||
"Z": 831.29626
|
|
||||||
},
|
|
||||||
"TerritoryId": 1188,
|
|
||||||
"InteractionType": "AttuneAetherCurrent",
|
|
||||||
"AetherCurrentId": 2818428
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"DataId": 203,
|
"DataId": 203,
|
||||||
"Position": {
|
"Position": {
|
||||||
@ -43,6 +32,41 @@
|
|||||||
"TerritoryId": 1188,
|
"TerritoryId": 1188,
|
||||||
"InteractionType": "AttuneAetheryte"
|
"InteractionType": "AttuneAetheryte"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": 533.37555,
|
||||||
|
"Y": 122.98077,
|
||||||
|
"Z": 790.01416
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "WalkTo",
|
||||||
|
"AetheryteShortcut": "Tuliyollal",
|
||||||
|
"AethernetShortcut": [
|
||||||
|
"[Tuliyollal] Aetheryte Plaza",
|
||||||
|
"[Tuliyollal] Ihuykatumu (Kozama'uka)"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": 522.3003,
|
||||||
|
"Y": 120.81023,
|
||||||
|
"Z": 803.62744
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "WalkTo",
|
||||||
|
"DisableNavmesh": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"DataId": 2013943,
|
||||||
|
"Position": {
|
||||||
|
"X": 485.89294,
|
||||||
|
"Y": 121.3855,
|
||||||
|
"Z": 831.29626
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "AttuneAetherCurrent",
|
||||||
|
"AetherCurrentId": 2818428
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"DataId": 1046603,
|
"DataId": 1046603,
|
||||||
"Position": {
|
"Position": {
|
||||||
@ -51,7 +75,8 @@
|
|||||||
"Z": 259.66272
|
"Z": 259.66272
|
||||||
},
|
},
|
||||||
"TerritoryId": 1188,
|
"TerritoryId": 1188,
|
||||||
"InteractionType": "Interact"
|
"InteractionType": "Interact",
|
||||||
|
"AetheryteShortcut": "Kozama'uka - Many Fires"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
@ -115,6 +115,7 @@
|
|||||||
"Y": 122.89019,
|
"Y": 122.89019,
|
||||||
"Z": 348.47034
|
"Z": 348.47034
|
||||||
},
|
},
|
||||||
|
"StopDistance": 5,
|
||||||
"TerritoryId": 1188,
|
"TerritoryId": 1188,
|
||||||
"InteractionType": "CompleteQuest"
|
"InteractionType": "CompleteQuest"
|
||||||
}
|
}
|
||||||
|
@ -12,6 +12,7 @@
|
|||||||
"Y": 122.950645,
|
"Y": 122.950645,
|
||||||
"Z": 345.6626
|
"Z": 345.6626
|
||||||
},
|
},
|
||||||
|
"StopDistance": 5,
|
||||||
"TerritoryId": 1188,
|
"TerritoryId": 1188,
|
||||||
"InteractionType": "AcceptQuest"
|
"InteractionType": "AcceptQuest"
|
||||||
}
|
}
|
||||||
@ -42,6 +43,7 @@
|
|||||||
"Y": -17.964504,
|
"Y": -17.964504,
|
||||||
"Z": 166.55212
|
"Z": 166.55212
|
||||||
},
|
},
|
||||||
|
"StopDistance": 5,
|
||||||
"TerritoryId": 1185,
|
"TerritoryId": 1185,
|
||||||
"InteractionType": "Interact"
|
"InteractionType": "Interact"
|
||||||
}
|
}
|
||||||
|
@ -45,6 +45,21 @@
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 2,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": 0,
|
||||||
|
"Y": 0,
|
||||||
|
"Z": 0
|
||||||
|
},
|
||||||
|
"TerritoryId": 1,
|
||||||
|
"InteractionType": "WalkTo",
|
||||||
|
"Comment": "Filler"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"Sequence": 3,
|
"Sequence": 3,
|
||||||
"Steps": [
|
"Steps": [
|
||||||
|
@ -188,7 +188,7 @@
|
|||||||
},
|
},
|
||||||
"TerritoryId": 1188,
|
"TerritoryId": 1188,
|
||||||
"InteractionType": "WaitForNpcAtPosition",
|
"InteractionType": "WaitForNpcAtPosition",
|
||||||
"NpcWaitDistance": 1
|
"NpcWaitDistance": 3
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"DataId": 1046648,
|
"DataId": 1046648,
|
||||||
|
@ -21,6 +21,15 @@
|
|||||||
{
|
{
|
||||||
"Sequence": 1,
|
"Sequence": 1,
|
||||||
"Steps": [
|
"Steps": [
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": 531.60944,
|
||||||
|
"Y": 116.17938,
|
||||||
|
"Z": 166.65599
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "WalkTo"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"DataId": 2013610,
|
"DataId": 2013610,
|
||||||
"Position": {
|
"Position": {
|
||||||
@ -42,6 +51,7 @@
|
|||||||
"Y": 110.795235,
|
"Y": 110.795235,
|
||||||
"Z": 256.5983
|
"Z": 256.5983
|
||||||
},
|
},
|
||||||
|
"StopDistance": 0.25,
|
||||||
"TerritoryId": 1188,
|
"TerritoryId": 1188,
|
||||||
"InteractionType": "Combat",
|
"InteractionType": "Combat",
|
||||||
"EnemySpawnType": "AutoOnEnterArea",
|
"EnemySpawnType": "AutoOnEnterArea",
|
||||||
@ -79,8 +89,7 @@
|
|||||||
"Z": 229.96863
|
"Z": 229.96863
|
||||||
},
|
},
|
||||||
"TerritoryId": 1188,
|
"TerritoryId": 1188,
|
||||||
"InteractionType": "Interact",
|
"InteractionType": "Interact"
|
||||||
"Comment": "TODO Verify this is the correct sequence"
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
@ -28,7 +28,8 @@
|
|||||||
"Z": 465.87305
|
"Z": 465.87305
|
||||||
},
|
},
|
||||||
"TerritoryId": 1188,
|
"TerritoryId": 1188,
|
||||||
"InteractionType": "Interact"
|
"InteractionType": "Interact",
|
||||||
|
"AetheryteShortcut": "Kozama'uka - Earthenshire"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
@ -166,9 +166,18 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Position": {
|
"Position": {
|
||||||
"X": 282.9373,
|
"X": 341.56342,
|
||||||
"Y": 47.77521,
|
"Y": 57.53834,
|
||||||
"Z": 140.4986
|
"Z": 10.309054
|
||||||
|
},
|
||||||
|
"TerritoryId": 1187,
|
||||||
|
"InteractionType": "WalkTo"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": 308.72827,
|
||||||
|
"Y": 60.2934,
|
||||||
|
"Z": 111.43004
|
||||||
},
|
},
|
||||||
"TerritoryId": 1187,
|
"TerritoryId": 1187,
|
||||||
"InteractionType": "WalkTo"
|
"InteractionType": "WalkTo"
|
||||||
|
@ -27,6 +27,7 @@
|
|||||||
"Y": 129.04724,
|
"Y": 129.04724,
|
||||||
"Z": 652.12476
|
"Z": 652.12476
|
||||||
},
|
},
|
||||||
|
"StopDistance": 5,
|
||||||
"TerritoryId": 1187,
|
"TerritoryId": 1187,
|
||||||
"InteractionType": "Interact",
|
"InteractionType": "Interact",
|
||||||
"CompletionQuestVariablesFlags": [
|
"CompletionQuestVariablesFlags": [
|
||||||
@ -62,6 +63,7 @@
|
|||||||
"Y": 111.135,
|
"Y": 111.135,
|
||||||
"Z": 557.7324
|
"Z": 557.7324
|
||||||
},
|
},
|
||||||
|
"StopDistance": 5,
|
||||||
"TerritoryId": 1187,
|
"TerritoryId": 1187,
|
||||||
"InteractionType": "Interact",
|
"InteractionType": "Interact",
|
||||||
"CompletionQuestVariablesFlags": [
|
"CompletionQuestVariablesFlags": [
|
||||||
@ -80,6 +82,7 @@
|
|||||||
"Y": 111.135,
|
"Y": 111.135,
|
||||||
"Z": 697.4745
|
"Z": 697.4745
|
||||||
},
|
},
|
||||||
|
"StopDistance": 5,
|
||||||
"TerritoryId": 1187,
|
"TerritoryId": 1187,
|
||||||
"InteractionType": "Interact",
|
"InteractionType": "Interact",
|
||||||
"CompletionQuestVariablesFlags": [
|
"CompletionQuestVariablesFlags": [
|
||||||
|
@ -157,6 +157,7 @@
|
|||||||
"Y": 109.359344,
|
"Y": 109.359344,
|
||||||
"Z": 395.2364
|
"Z": 395.2364
|
||||||
},
|
},
|
||||||
|
"StopDistance": 0.25,
|
||||||
"TerritoryId": 1187,
|
"TerritoryId": 1187,
|
||||||
"InteractionType": "Combat",
|
"InteractionType": "Combat",
|
||||||
"EnemySpawnType": "AutoOnEnterArea",
|
"EnemySpawnType": "AutoOnEnterArea",
|
||||||
|
@ -45,6 +45,21 @@
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 2,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": 0,
|
||||||
|
"Y": 0,
|
||||||
|
"Z": 0
|
||||||
|
},
|
||||||
|
"TerritoryId": 1,
|
||||||
|
"InteractionType": "WalkTo",
|
||||||
|
"Comment": "Filler"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"Sequence": 3,
|
"Sequence": 3,
|
||||||
"Steps": [
|
"Steps": [
|
||||||
|
@ -43,8 +43,7 @@
|
|||||||
"Z": -403.21973
|
"Z": -403.21973
|
||||||
},
|
},
|
||||||
"TerritoryId": 1189,
|
"TerritoryId": 1189,
|
||||||
"InteractionType": "Interact",
|
"InteractionType": "Interact"
|
||||||
"Comment": "TODO Verify this shouldn't have a teleport (was removed due to AC moving)"
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
@ -12,6 +12,7 @@
|
|||||||
"Y": 19.501463,
|
"Y": 19.501463,
|
||||||
"Z": -358.05298
|
"Z": -358.05298
|
||||||
},
|
},
|
||||||
|
"StopDistance": 5,
|
||||||
"TerritoryId": 1189,
|
"TerritoryId": 1189,
|
||||||
"InteractionType": "AcceptQuest"
|
"InteractionType": "AcceptQuest"
|
||||||
}
|
}
|
||||||
|
@ -32,6 +32,21 @@
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 2,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": 0,
|
||||||
|
"Y": 0,
|
||||||
|
"Z": 0
|
||||||
|
},
|
||||||
|
"TerritoryId": 1,
|
||||||
|
"InteractionType": "WalkTo",
|
||||||
|
"Comment": "Filler"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"Sequence": 3,
|
"Sequence": 3,
|
||||||
"Steps": [
|
"Steps": [
|
||||||
|
@ -37,6 +37,21 @@
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 2,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": 0,
|
||||||
|
"Y": 0,
|
||||||
|
"Z": 0
|
||||||
|
},
|
||||||
|
"TerritoryId": 1,
|
||||||
|
"InteractionType": "WalkTo",
|
||||||
|
"Comment": "Filler"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"Sequence": 3,
|
"Sequence": 3,
|
||||||
"Steps": [
|
"Steps": [
|
||||||
|
@ -42,6 +42,21 @@
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 2,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": 0,
|
||||||
|
"Y": 0,
|
||||||
|
"Z": 0
|
||||||
|
},
|
||||||
|
"TerritoryId": 1,
|
||||||
|
"InteractionType": "WalkTo",
|
||||||
|
"Comment": "Filler"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"Sequence": 3,
|
"Sequence": 3,
|
||||||
"Steps": [
|
"Steps": [
|
||||||
|
@ -34,6 +34,21 @@
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 2,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": 0,
|
||||||
|
"Y": 0,
|
||||||
|
"Z": 0
|
||||||
|
},
|
||||||
|
"TerritoryId": 1,
|
||||||
|
"InteractionType": "WalkTo",
|
||||||
|
"Comment": "Filler"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"Sequence": 3,
|
"Sequence": 3,
|
||||||
"Steps": [
|
"Steps": [
|
||||||
|
@ -46,6 +46,21 @@
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 3,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": 0,
|
||||||
|
"Y": 0,
|
||||||
|
"Z": 0
|
||||||
|
},
|
||||||
|
"TerritoryId": 1,
|
||||||
|
"InteractionType": "WalkTo",
|
||||||
|
"Comment": "Filler"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"Sequence": 4,
|
"Sequence": 4,
|
||||||
"Steps": [
|
"Steps": [
|
||||||
@ -56,6 +71,21 @@
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 5,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": 0,
|
||||||
|
"Y": 0,
|
||||||
|
"Z": 0
|
||||||
|
},
|
||||||
|
"TerritoryId": 1,
|
||||||
|
"InteractionType": "WalkTo",
|
||||||
|
"Comment": "Filler"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"Sequence": 6,
|
"Sequence": 6,
|
||||||
"Steps": [
|
"Steps": [
|
||||||
|
@ -56,6 +56,21 @@
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 2,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": 0,
|
||||||
|
"Y": 0,
|
||||||
|
"Z": 0
|
||||||
|
},
|
||||||
|
"TerritoryId": 1,
|
||||||
|
"InteractionType": "WalkTo",
|
||||||
|
"Comment": "Filler"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"Sequence": 3,
|
"Sequence": 3,
|
||||||
"Steps": [
|
"Steps": [
|
||||||
@ -71,6 +86,21 @@
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 4,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": 0,
|
||||||
|
"Y": 0,
|
||||||
|
"Z": 0
|
||||||
|
},
|
||||||
|
"TerritoryId": 1,
|
||||||
|
"InteractionType": "WalkTo",
|
||||||
|
"Comment": "Filler"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"Sequence": 5,
|
"Sequence": 5,
|
||||||
"Steps": [
|
"Steps": [
|
||||||
|
@ -48,6 +48,21 @@
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 3,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": 0,
|
||||||
|
"Y": 0,
|
||||||
|
"Z": 0
|
||||||
|
},
|
||||||
|
"TerritoryId": 1,
|
||||||
|
"InteractionType": "WalkTo",
|
||||||
|
"Comment": "Filler"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"Sequence": 4,
|
"Sequence": 4,
|
||||||
"Steps": [
|
"Steps": [
|
||||||
|
@ -13,7 +13,7 @@
|
|||||||
"Z": 201.28174
|
"Z": 201.28174
|
||||||
},
|
},
|
||||||
"TerritoryId": 1185,
|
"TerritoryId": 1185,
|
||||||
"InteractionType": "Interact"
|
"InteractionType": "AcceptQuest"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
@ -13,9 +13,71 @@
|
|||||||
"Z": 194.72034
|
"Z": 194.72034
|
||||||
},
|
},
|
||||||
"TerritoryId": 1185,
|
"TerritoryId": 1185,
|
||||||
|
"InteractionType": "AcceptQuest"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 1,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1048335,
|
||||||
|
"Position": {
|
||||||
|
"X": -16.739136,
|
||||||
|
"Y": 0.5999997,
|
||||||
|
"Z": -55.10034
|
||||||
|
},
|
||||||
|
"TerritoryId": 963,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"AetheryteShortcut": "Radz-at-Han"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 2,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1048337,
|
||||||
|
"Position": {
|
||||||
|
"X": 155.87085,
|
||||||
|
"Y": 5.297462,
|
||||||
|
"Z": 618.2803
|
||||||
|
},
|
||||||
|
"TerritoryId": 957,
|
||||||
"InteractionType": "Interact"
|
"InteractionType": "Interact"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 3,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 2013708,
|
||||||
|
"Position": {
|
||||||
|
"X": 48.90515,
|
||||||
|
"Y": 90.22656,
|
||||||
|
"Z": -83.024414
|
||||||
|
},
|
||||||
|
"StopDistance": 0.5,
|
||||||
|
"TerritoryId": 957,
|
||||||
|
"InteractionType": "Interact"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 255,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1048331,
|
||||||
|
"Position": {
|
||||||
|
"X": 214.03821,
|
||||||
|
"Y": 5.2600574,
|
||||||
|
"Z": 628.3817
|
||||||
|
},
|
||||||
|
"TerritoryId": 957,
|
||||||
|
"InteractionType": "CompleteQuest"
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,141 @@
|
|||||||
|
{
|
||||||
|
"$schema": "https://carvel.li/questionable/quest-1.0",
|
||||||
|
"Author": "liza",
|
||||||
|
"QuestSequence": [
|
||||||
|
{
|
||||||
|
"Sequence": 0,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1048331,
|
||||||
|
"Position": {
|
||||||
|
"X": 214.03821,
|
||||||
|
"Y": 5.2600574,
|
||||||
|
"Z": 628.3817
|
||||||
|
},
|
||||||
|
"TerritoryId": 957,
|
||||||
|
"InteractionType": "AcceptQuest"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 1,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1048332,
|
||||||
|
"Position": {
|
||||||
|
"X": 52.506226,
|
||||||
|
"Y": -5.20688E-07,
|
||||||
|
"Z": -54.154297
|
||||||
|
},
|
||||||
|
"TerritoryId": 963,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"AetheryteShortcut": "Radz-at-Han"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 2,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1048340,
|
||||||
|
"Position": {
|
||||||
|
"X": -186.69415,
|
||||||
|
"Y": 4.0499983,
|
||||||
|
"Z": -108.11017
|
||||||
|
},
|
||||||
|
"TerritoryId": 963,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"AethernetShortcut": [
|
||||||
|
"[Radz-at-Han] Aetheryte Plaza",
|
||||||
|
"[Radz-at-Han] Hall of the Radiant Host"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 3,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1048332,
|
||||||
|
"Position": {
|
||||||
|
"X": 52.506226,
|
||||||
|
"Y": -5.20688E-07,
|
||||||
|
"Z": -54.154297
|
||||||
|
},
|
||||||
|
"TerritoryId": 963,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"AethernetShortcut": [
|
||||||
|
"[Radz-at-Han] Hall of the Radiant Host",
|
||||||
|
"[Radz-at-Han] Aetheryte Plaza"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 4,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1048343,
|
||||||
|
"Position": {
|
||||||
|
"X": -336.53772,
|
||||||
|
"Y": 52.243706,
|
||||||
|
"Z": -165.05688
|
||||||
|
},
|
||||||
|
"TerritoryId": 957,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"AetheryteShortcut": "Thavnair - Great Work"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 5,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": -427.5108,
|
||||||
|
"Y": -0.015813708,
|
||||||
|
"Z": -710.37146
|
||||||
|
},
|
||||||
|
"StopDistance": 0.25,
|
||||||
|
"TerritoryId": 957,
|
||||||
|
"InteractionType": "Combat",
|
||||||
|
"EnemySpawnType": "AutoOnEnterArea",
|
||||||
|
"KillEnemyDataIds": [
|
||||||
|
17625
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 6,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1048344,
|
||||||
|
"Position": {
|
||||||
|
"X": -419.028,
|
||||||
|
"Y": 0.06509568,
|
||||||
|
"Z": -710.9331
|
||||||
|
},
|
||||||
|
"StopDistance": 7,
|
||||||
|
"TerritoryId": 957,
|
||||||
|
"InteractionType": "Interact"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 255,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1048331,
|
||||||
|
"Position": {
|
||||||
|
"X": 214.03821,
|
||||||
|
"Y": 5.2600574,
|
||||||
|
"Z": 628.3817
|
||||||
|
},
|
||||||
|
"TerritoryId": 957,
|
||||||
|
"InteractionType": "CompleteQuest"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
@ -0,0 +1,163 @@
|
|||||||
|
{
|
||||||
|
"$schema": "https://carvel.li/questionable/quest-1.0",
|
||||||
|
"Author": "liza",
|
||||||
|
"QuestSequence": [
|
||||||
|
{
|
||||||
|
"Sequence": 0,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1048331,
|
||||||
|
"Position": {
|
||||||
|
"X": 214.03821,
|
||||||
|
"Y": 5.2600574,
|
||||||
|
"Z": 628.3817
|
||||||
|
},
|
||||||
|
"TerritoryId": 957,
|
||||||
|
"InteractionType": "AcceptQuest"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 1,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1048348,
|
||||||
|
"Position": {
|
||||||
|
"X": -118.76105,
|
||||||
|
"Y": 88.94139,
|
||||||
|
"Z": -556.90857
|
||||||
|
},
|
||||||
|
"TerritoryId": 957,
|
||||||
|
"InteractionType": "Interact"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 2,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": 77.94611,
|
||||||
|
"Y": 82.44486,
|
||||||
|
"Z": -548.9286
|
||||||
|
},
|
||||||
|
"StopDistance": 10,
|
||||||
|
"TerritoryId": 957,
|
||||||
|
"InteractionType": "Instruction",
|
||||||
|
"EnemySpawnType": "AutoOnEnterArea",
|
||||||
|
"KillEnemyDataIds": [
|
||||||
|
17626
|
||||||
|
],
|
||||||
|
"ItemId": 2003495,
|
||||||
|
"Comment": "TODO Needs item use?"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 3,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1048348,
|
||||||
|
"Position": {
|
||||||
|
"X": -118.76105,
|
||||||
|
"Y": 88.94139,
|
||||||
|
"Z": -556.90857
|
||||||
|
},
|
||||||
|
"TerritoryId": 957,
|
||||||
|
"InteractionType": "Interact"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 4,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1048350,
|
||||||
|
"Position": {
|
||||||
|
"X": -508.53745,
|
||||||
|
"Y": 12.375278,
|
||||||
|
"Z": 97.3678
|
||||||
|
},
|
||||||
|
"TerritoryId": 957,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"AetheryteShortcut": "Thavnair - Great Work"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 5,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1048354,
|
||||||
|
"Position": {
|
||||||
|
"X": 154.28394,
|
||||||
|
"Y": 5.2641535,
|
||||||
|
"Z": 618.40234
|
||||||
|
},
|
||||||
|
"TerritoryId": 957,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"AetheryteShortcut": "Thavnair - Yedlihmad",
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
32
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"DataId": 1048355,
|
||||||
|
"Position": {
|
||||||
|
"X": 227.98499,
|
||||||
|
"Y": 10.19656,
|
||||||
|
"Z": 563.31726
|
||||||
|
},
|
||||||
|
"TerritoryId": 957,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
64
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"DataId": 1048352,
|
||||||
|
"Position": {
|
||||||
|
"X": 195.5138,
|
||||||
|
"Y": 15.136732,
|
||||||
|
"Z": 529.015
|
||||||
|
},
|
||||||
|
"TerritoryId": 957,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
128
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 255,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1048331,
|
||||||
|
"Position": {
|
||||||
|
"X": 214.03821,
|
||||||
|
"Y": 5.2600574,
|
||||||
|
"Z": 628.3817
|
||||||
|
},
|
||||||
|
"TerritoryId": 957,
|
||||||
|
"InteractionType": "CompleteQuest"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
@ -13,7 +13,7 @@
|
|||||||
"Z": 198.68762
|
"Z": 198.68762
|
||||||
},
|
},
|
||||||
"TerritoryId": 1185,
|
"TerritoryId": 1185,
|
||||||
"InteractionType": "Interact"
|
"InteractionType": "AcceptQuest"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
@ -13,7 +13,7 @@
|
|||||||
"Z": 203.38745
|
"Z": 203.38745
|
||||||
},
|
},
|
||||||
"TerritoryId": 1185,
|
"TerritoryId": 1185,
|
||||||
"InteractionType": "Interact"
|
"InteractionType": "AcceptQuest"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
@ -53,6 +53,21 @@
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 3,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": 0,
|
||||||
|
"Y": 0,
|
||||||
|
"Z": 0
|
||||||
|
},
|
||||||
|
"TerritoryId": 1,
|
||||||
|
"InteractionType": "WalkTo",
|
||||||
|
"Comment": "Filler"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"Sequence": 4,
|
"Sequence": 4,
|
||||||
"Steps": [
|
"Steps": [
|
||||||
|
@ -866,6 +866,13 @@
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"PointMenuChoices": {
|
||||||
|
"type": "array",
|
||||||
|
"items": {
|
||||||
|
"type": "integer",
|
||||||
|
"minimum": 0
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -49,6 +49,7 @@ public sealed class QuestStep
|
|||||||
public IList<ESkipCondition> SkipIf { get; set; } = new List<ESkipCondition>();
|
public IList<ESkipCondition> SkipIf { get; set; } = new List<ESkipCondition>();
|
||||||
public IList<short?> CompletionQuestVariablesFlags { get; set; } = new List<short?>();
|
public IList<short?> CompletionQuestVariablesFlags { get; set; } = new List<short?>();
|
||||||
public IList<DialogueChoice> DialogueChoices { get; set; } = new List<DialogueChoice>();
|
public IList<DialogueChoice> DialogueChoices { get; set; } = new List<DialogueChoice>();
|
||||||
|
public IList<uint> PointMenuChoices { get; set; } = new List<uint>();
|
||||||
public ushort? QuestId { get; set; }
|
public ushort? QuestId { get; set; }
|
||||||
|
|
||||||
[JsonConstructor]
|
[JsonConstructor]
|
||||||
|
@ -48,6 +48,7 @@ internal sealed class GameUiController : IDisposable
|
|||||||
_addonLifecycle.RegisterListener(AddonEvent.PostSetup, "CutSceneSelectString", CutsceneSelectStringPostSetup);
|
_addonLifecycle.RegisterListener(AddonEvent.PostSetup, "CutSceneSelectString", CutsceneSelectStringPostSetup);
|
||||||
_addonLifecycle.RegisterListener(AddonEvent.PostSetup, "SelectIconString", SelectIconStringPostSetup);
|
_addonLifecycle.RegisterListener(AddonEvent.PostSetup, "SelectIconString", SelectIconStringPostSetup);
|
||||||
_addonLifecycle.RegisterListener(AddonEvent.PostSetup, "SelectYesno", SelectYesnoPostSetup);
|
_addonLifecycle.RegisterListener(AddonEvent.PostSetup, "SelectYesno", SelectYesnoPostSetup);
|
||||||
|
_addonLifecycle.RegisterListener(AddonEvent.PostSetup, "PointMenu", PointMenuPostSetup);
|
||||||
_addonLifecycle.RegisterListener(AddonEvent.PostSetup, "Credit", CreditPostSetup);
|
_addonLifecycle.RegisterListener(AddonEvent.PostSetup, "Credit", CreditPostSetup);
|
||||||
_addonLifecycle.RegisterListener(AddonEvent.PostSetup, "AkatsukiNote", UnendingCodexPostSetup);
|
_addonLifecycle.RegisterListener(AddonEvent.PostSetup, "AkatsukiNote", UnendingCodexPostSetup);
|
||||||
_addonLifecycle.RegisterListener(AddonEvent.PostSetup, "ContentsTutorial", ContentsTutorialPostSetup);
|
_addonLifecycle.RegisterListener(AddonEvent.PostSetup, "ContentsTutorial", ContentsTutorialPostSetup);
|
||||||
@ -80,6 +81,12 @@ internal sealed class GameUiController : IDisposable
|
|||||||
_logger.LogInformation("SelectYesno window is open");
|
_logger.LogInformation("SelectYesno window is open");
|
||||||
SelectYesnoPostSetup(addonSelectYesno, true);
|
SelectYesnoPostSetup(addonSelectYesno, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (_gameGui.TryGetAddonByName("PointMenu", out AtkUnitBase* addonPointMenu))
|
||||||
|
{
|
||||||
|
_logger.LogInformation("PointMenu is open");
|
||||||
|
PointMenuPostSetup(addonPointMenu);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private unsafe void SelectStringPostSetup(AddonEvent type, AddonArgs args)
|
private unsafe void SelectStringPostSetup(AddonEvent type, AddonArgs args)
|
||||||
@ -380,6 +387,61 @@ internal sealed class GameUiController : IDisposable
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private unsafe void PointMenuPostSetup(AddonEvent type, AddonArgs args)
|
||||||
|
{
|
||||||
|
AtkUnitBase* addonPointMenu = (AtkUnitBase*)args.Addon;
|
||||||
|
PointMenuPostSetup(addonPointMenu);
|
||||||
|
}
|
||||||
|
|
||||||
|
private unsafe void PointMenuPostSetup(AtkUnitBase* addonPointMenu)
|
||||||
|
{
|
||||||
|
var currentQuest = _questController.CurrentQuest;
|
||||||
|
if (currentQuest == null)
|
||||||
|
{
|
||||||
|
_logger.LogInformation("Ignoring point menu, no active quest");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var sequence = currentQuest.Quest.FindSequence(currentQuest.Sequence);
|
||||||
|
if (sequence == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
QuestStep? step = sequence.FindStep(currentQuest.Step);
|
||||||
|
if (step == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (step.PointMenuChoices.Count == 0)
|
||||||
|
{
|
||||||
|
_logger.LogWarning("No point menu choices");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
int counter = currentQuest.StepProgress.PointMenuCounter;
|
||||||
|
if (counter >= step.PointMenuChoices.Count)
|
||||||
|
{
|
||||||
|
_logger.LogWarning("No remaining point menu choices");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
uint choice = step.PointMenuChoices[counter];
|
||||||
|
|
||||||
|
_logger.LogInformation("Handling point menu, picking choice {Choice} (index = {Index})", choice, counter);
|
||||||
|
var selectChoice = stackalloc AtkValue[]
|
||||||
|
{
|
||||||
|
new() { Type = ValueType.Int, Int = 13 },
|
||||||
|
new() { Type = ValueType.UInt, UInt = choice }
|
||||||
|
};
|
||||||
|
addonPointMenu->FireCallback(2, selectChoice);
|
||||||
|
|
||||||
|
_questController.CurrentQuest = currentQuest with
|
||||||
|
{
|
||||||
|
StepProgress = currentQuest.StepProgress with
|
||||||
|
{
|
||||||
|
PointMenuCounter = counter + 1,
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
private unsafe void CreditPostSetup(AddonEvent type, AddonArgs args)
|
private unsafe void CreditPostSetup(AddonEvent type, AddonArgs args)
|
||||||
{
|
{
|
||||||
_logger.LogInformation("Closing Credits sequence");
|
_logger.LogInformation("Closing Credits sequence");
|
||||||
@ -451,6 +513,7 @@ internal sealed class GameUiController : IDisposable
|
|||||||
_addonLifecycle.UnregisterListener(AddonEvent.PostSetup, "ContentsTutorial", ContentsTutorialPostSetup);
|
_addonLifecycle.UnregisterListener(AddonEvent.PostSetup, "ContentsTutorial", ContentsTutorialPostSetup);
|
||||||
_addonLifecycle.UnregisterListener(AddonEvent.PostSetup, "AkatsukiNote", UnendingCodexPostSetup);
|
_addonLifecycle.UnregisterListener(AddonEvent.PostSetup, "AkatsukiNote", UnendingCodexPostSetup);
|
||||||
_addonLifecycle.UnregisterListener(AddonEvent.PostSetup, "Credit", CreditPostSetup);
|
_addonLifecycle.UnregisterListener(AddonEvent.PostSetup, "Credit", CreditPostSetup);
|
||||||
|
_addonLifecycle.UnregisterListener(AddonEvent.PostSetup, "PointMenu", PointMenuPostSetup);
|
||||||
_addonLifecycle.UnregisterListener(AddonEvent.PostSetup, "SelectYesno", SelectYesnoPostSetup);
|
_addonLifecycle.UnregisterListener(AddonEvent.PostSetup, "SelectYesno", SelectYesnoPostSetup);
|
||||||
_addonLifecycle.UnregisterListener(AddonEvent.PostSetup, "SelectIconString", SelectIconStringPostSetup);
|
_addonLifecycle.UnregisterListener(AddonEvent.PostSetup, "SelectIconString", SelectIconStringPostSetup);
|
||||||
_addonLifecycle.UnregisterListener(AddonEvent.PostSetup, "CutSceneSelectString", CutsceneSelectStringPostSetup);
|
_addonLifecycle.UnregisterListener(AddonEvent.PostSetup, "CutSceneSelectString", CutsceneSelectStringPostSetup);
|
||||||
|
@ -399,7 +399,8 @@ internal sealed class QuestController
|
|||||||
(QuestSequence? seq, QuestStep? step) = GetNextStep();
|
(QuestSequence? seq, QuestStep? step) = GetNextStep();
|
||||||
if (CurrentQuest == null || seq == null || step == null)
|
if (CurrentQuest == null || seq == null || step == null)
|
||||||
{
|
{
|
||||||
_logger.LogWarning("Could not retrieve next quest step, not doing anything");
|
_logger.LogWarning("Could not retrieve next quest step, not doing anything [{QuestId}, {Sequence}, {Step}]",
|
||||||
|
CurrentQuest?.Quest.QuestId, CurrentQuest?.Sequence, CurrentQuest?.Step);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -492,5 +493,6 @@ internal sealed class QuestController
|
|||||||
}
|
}
|
||||||
|
|
||||||
public sealed record StepProgress(
|
public sealed record StepProgress(
|
||||||
DateTime StartedAt);
|
DateTime StartedAt,
|
||||||
|
int PointMenuCounter = 0);
|
||||||
}
|
}
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Diagnostics.CodeAnalysis;
|
using System.Diagnostics.CodeAnalysis;
|
||||||
using System.Globalization;
|
using System.Globalization;
|
||||||
|
using System.Linq;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Text.Json;
|
using System.Text.Json;
|
||||||
using Dalamud.Plugin;
|
using Dalamud.Plugin;
|
||||||
@ -72,6 +73,12 @@ internal sealed class QuestRegistry
|
|||||||
|
|
||||||
quest.Name = questData.Name.ToString();
|
quest.Name = questData.Name.ToString();
|
||||||
quest.Level = questData.ClassJobLevel0;
|
quest.Level = questData.ClassJobLevel0;
|
||||||
|
|
||||||
|
#if !RELEASE
|
||||||
|
int missingSteps = quest.Data.QuestSequence.Where(x => x.Sequence < 255).Max(x => x.Sequence) - quest.Data.QuestSequence.Count(x => x.Sequence < 255) + 1;
|
||||||
|
if (missingSteps != 0)
|
||||||
|
_logger.LogWarning("Quest has missing steps: {QuestId} / {QuestName} → {Count}", quest.QuestId, quest.Name, missingSteps);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
_logger.LogInformation("Loaded {Count} quests", _quests.Count);
|
_logger.LogInformation("Loaded {Count} quests", _quests.Count);
|
||||||
|
@ -7,6 +7,7 @@ using Dalamud.Plugin.Services;
|
|||||||
using Microsoft.Extensions.DependencyInjection;
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
using Questionable.Controller.Steps.BaseTasks;
|
using Questionable.Controller.Steps.BaseTasks;
|
||||||
|
using Questionable.Data;
|
||||||
using Questionable.Model;
|
using Questionable.Model;
|
||||||
using Questionable.Model.V1;
|
using Questionable.Model.V1;
|
||||||
|
|
||||||
@ -45,7 +46,8 @@ internal static class Move
|
|||||||
ILogger<MoveBuilder> logger,
|
ILogger<MoveBuilder> logger,
|
||||||
GameFunctions gameFunctions,
|
GameFunctions gameFunctions,
|
||||||
IClientState clientState,
|
IClientState clientState,
|
||||||
MovementController movementController)
|
MovementController movementController,
|
||||||
|
TerritoryData territoryData)
|
||||||
{
|
{
|
||||||
public QuestStep Step { get; set; } = null!;
|
public QuestStep Step { get; set; } = null!;
|
||||||
public Vector3 Destination { get; set; }
|
public Vector3 Destination { get; set; }
|
||||||
@ -61,7 +63,7 @@ internal static class Move
|
|||||||
}
|
}
|
||||||
|
|
||||||
yield return new WaitConditionTask(() => clientState.TerritoryType == Step.TerritoryId,
|
yield return new WaitConditionTask(() => clientState.TerritoryType == Step.TerritoryId,
|
||||||
$"Wait(territory: {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,
|
||||||
|
@ -9,6 +9,7 @@ using FFXIVClientStructs.FFXIV.Application.Network.WorkDefinitions;
|
|||||||
using FFXIVClientStructs.FFXIV.Client.Game;
|
using FFXIVClientStructs.FFXIV.Client.Game;
|
||||||
using Microsoft.Extensions.DependencyInjection;
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
using Questionable.Controller.Steps.BaseTasks;
|
using Questionable.Controller.Steps.BaseTasks;
|
||||||
|
using Questionable.Data;
|
||||||
using Questionable.Model;
|
using Questionable.Model;
|
||||||
using Questionable.Model.V1;
|
using Questionable.Model.V1;
|
||||||
|
|
||||||
@ -16,7 +17,8 @@ namespace Questionable.Controller.Steps.BaseFactory;
|
|||||||
|
|
||||||
internal static class WaitAtEnd
|
internal static class WaitAtEnd
|
||||||
{
|
{
|
||||||
internal sealed class Factory(IServiceProvider serviceProvider, IClientState clientState, ICondition condition)
|
internal sealed class Factory(IServiceProvider serviceProvider, IClientState clientState, ICondition condition,
|
||||||
|
TerritoryData territoryData)
|
||||||
: ITaskFactory
|
: ITaskFactory
|
||||||
{
|
{
|
||||||
public IEnumerable<ITask> CreateAllTasks(Quest quest, QuestSequence sequence, QuestStep step)
|
public IEnumerable<ITask> CreateAllTasks(Quest quest, QuestSequence sequence, QuestStep step)
|
||||||
@ -76,7 +78,7 @@ internal static class WaitAtEnd
|
|||||||
// interaction moves to a different territory
|
// interaction moves to a different territory
|
||||||
waitInteraction = new WaitConditionTask(
|
waitInteraction = new WaitConditionTask(
|
||||||
() => clientState.TerritoryType == step.TargetTerritoryId,
|
() => clientState.TerritoryType == step.TargetTerritoryId,
|
||||||
$"Wait(tp to territory: {step.TargetTerritoryId})");
|
$"Wait(tp to territory: {territoryData.GetNameAndId(step.TargetTerritoryId.Value)})");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
using System.Collections.Immutable;
|
using System.Collections.Immutable;
|
||||||
|
using System.Globalization;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using Dalamud.Plugin.Services;
|
using Dalamud.Plugin.Services;
|
||||||
|
using FFXIVClientStructs.FFXIV.Client.Game.Character;
|
||||||
using Lumina.Excel.GeneratedSheets;
|
using Lumina.Excel.GeneratedSheets;
|
||||||
|
|
||||||
namespace Questionable.Data;
|
namespace Questionable.Data;
|
||||||
@ -31,5 +33,14 @@ internal sealed class TerritoryData
|
|||||||
|
|
||||||
public string? GetName(ushort territoryId) => _territoryNames.GetValueOrDefault(territoryId);
|
public string? GetName(ushort territoryId) => _territoryNames.GetValueOrDefault(territoryId);
|
||||||
|
|
||||||
|
public string GetNameAndId(ushort territoryId)
|
||||||
|
{
|
||||||
|
string? territoryName = GetName(territoryId);
|
||||||
|
if (territoryName != null)
|
||||||
|
return string.Create(CultureInfo.InvariantCulture, $"{territoryName} ({territoryId})");
|
||||||
|
else
|
||||||
|
return territoryId.ToString(CultureInfo.InvariantCulture);
|
||||||
|
}
|
||||||
|
|
||||||
public bool CanUseMount(ushort territoryId) => _territoriesWithMount.Contains(territoryId);
|
public bool CanUseMount(ushort territoryId) => _territoriesWithMount.Contains(territoryId);
|
||||||
}
|
}
|
||||||
|
@ -211,13 +211,9 @@ internal sealed class QuestWindow : LWindow, IPersistableWindowConfig
|
|||||||
{
|
{
|
||||||
Debug.Assert(_clientState.LocalPlayer != null, "_clientState.LocalPlayer != null");
|
Debug.Assert(_clientState.LocalPlayer != null, "_clientState.LocalPlayer != null");
|
||||||
|
|
||||||
string? territoryName = _territoryData.GetName(_clientState.TerritoryType);
|
string territoryName = _territoryData.GetNameAndId(_clientState.TerritoryType);
|
||||||
if (territoryName != null)
|
|
||||||
territoryName += string.Create(CultureInfo.InvariantCulture, $" ({_clientState.TerritoryType})");
|
|
||||||
else
|
|
||||||
territoryName = _clientState.TerritoryType.ToString(CultureInfo.InvariantCulture);
|
|
||||||
|
|
||||||
ImGui.Text(territoryName);
|
ImGui.Text(territoryName);
|
||||||
|
|
||||||
if (_gameFunctions.IsFlyingUnlockedInCurrentZone())
|
if (_gameFunctions.IsFlyingUnlockedInCurrentZone())
|
||||||
{
|
{
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
@ -294,9 +290,9 @@ internal sealed class QuestWindow : LWindow, IPersistableWindowConfig
|
|||||||
{
|
{
|
||||||
string interactionType = gameObject->NamePlateIconId switch
|
string interactionType = gameObject->NamePlateIconId switch
|
||||||
{
|
{
|
||||||
71201 or 71211 or 71221 or 71231 or 71341 => "AcceptQuest",
|
71201 or 71211 or 71221 or 71231 or 71341 or 71351 => "AcceptQuest",
|
||||||
71202 or 71212 or 71222 or 71232 or 71342 => "AcceptQuest", // repeatable
|
71202 or 71212 or 71222 or 71232 or 71342 or 71352 => "AcceptQuest", // repeatable
|
||||||
71205 or 71215 or 71225 or 71235 or 71345 => "CompleteQuest",
|
71205 or 71215 or 71225 or 71235 or 71345 or 71355 => "CompleteQuest",
|
||||||
_ => "Interact",
|
_ => "Interact",
|
||||||
};
|
};
|
||||||
ImGui.SetClipboardText($$"""
|
ImGui.SetClipboardText($$"""
|
||||||
|
Loading…
Reference in New Issue
Block a user