1
0
forked from liza/Questionable

Add a few unlock quests

This commit is contained in:
Liza 2024-07-29 21:19:22 +02:00
parent 65b7643b3e
commit 83e88e9e36
Signed by: liza
GPG Key ID: 7199F8D727D55F67
26 changed files with 1978 additions and 46 deletions

View File

@ -0,0 +1,43 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "liza",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1000148,
"Position": {
"X": -20.279297,
"Y": -3.25,
"Z": 45.97534
},
"TerritoryId": 132,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1000153,
"Position": {
"X": -44.87683,
"Y": -1.2500024,
"Z": 56.839844
},
"TerritoryId": 132,
"InteractionType": "CompleteQuest",
"DialogueChoices": [
{
"Type": "YesNo",
"Prompt": "TEXT_CLSWDK000_00138_Q1_000_1",
"Yes": true
}
]
}
]
}
]
}

View File

@ -0,0 +1,28 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "liza",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1000148,
"Position": {
"X": -20.279297,
"Y": -3.25,
"Z": 45.97534
},
"TerritoryId": 132,
"InteractionType": "AcceptQuest",
"DialogueChoices": [
{
"Type": "YesNo",
"Prompt": "TEXT_CLSWDK999_00184_Q1_000_1",
"Yes": true
}
]
}
]
}
]
}

View File

@ -0,0 +1,41 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "liza",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"TerritoryId": 132,
"InteractionType": "EquipItem",
"ItemId": 2314
},
{
"DataId": 1000153,
"Position": {
"X": -44.87683,
"Y": -1.2500024,
"Z": 56.839844
},
"TerritoryId": 132,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1000153,
"Position": {
"X": -44.87683,
"Y": -1.2500024,
"Z": 56.839844
},
"TerritoryId": 132,
"InteractionType": "CompleteQuest"
}
]
}
]
}

View File

@ -0,0 +1,104 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "liza",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1004576,
"Position": {
"X": -141.64954,
"Y": 4.1,
"Z": -114.67157
},
"TerritoryId": 130,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1006217,
"Position": {
"X": -181.04828,
"Y": 28.214073,
"Z": -402.02948
},
"TerritoryId": 146,
"InteractionType": "Interact",
"AetheryteShortcut": "Southern Thanalan - Little Ala Mhigo"
}
]
},
{
"Sequence": 2,
"Steps": [
{
"Position": {
"X": -150.9585,
"Y": 43.717075,
"Z": -345.03116
},
"TerritoryId": 146,
"InteractionType": "WalkTo",
"Fly": true,
"SkipConditions": {
"StepIf": {
"Flying": "Locked"
}
}
},
{
"Position": {
"X": 91.463745,
"Y": 10.278164,
"Z": -461.99072
},
"TerritoryId": 146,
"InteractionType": "WalkTo",
"Fly": true
},
{
"DataId": 2002919,
"Position": {
"X": 90.958984,
"Y": 9.994568,
"Z": -460.41046
},
"TerritoryId": 146,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"Position": {
"X": 107.40087,
"Y": 15.010546,
"Z": -360.9872
},
"TerritoryId": 146,
"InteractionType": "WalkTo",
"Fly": true,
"$": "Southern Thanalan, Hamujj Gah Cave"
},
{
"DataId": 1005553,
"Position": {
"X": 122.6062,
"Y": 16.402647,
"Z": -362.11188
},
"TerritoryId": 146,
"InteractionType": "CompleteQuest",
"NextQuestId": 1218
}
]
}
]
}

View File

@ -0,0 +1,106 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "liza",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1005553,
"Position": {
"X": 122.6062,
"Y": 16.402647,
"Z": -362.11188
},
"TerritoryId": 146,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 1,
"Steps": [
{
"Position": {
"X": 107.40087,
"Y": 15.010546,
"Z": -360.9872
},
"TerritoryId": 146,
"InteractionType": "WalkTo",
"$": "Southern Thanalan, Hamujj Gah Cave"
},
{
"DataId": 2002931,
"Position": {
"X": -268.54352,
"Y": 4.7455444,
"Z": -77.16492
},
"StopDistance": 0.5,
"TerritoryId": 146,
"InteractionType": "Combat",
"EnemySpawnType": "AfterInteraction",
"KillEnemyDataIds": [
2458,
2459
],
"Fly": true
}
]
},
{
"Sequence": 2,
"Steps": [
{
"DataId": 1005579,
"Position": {
"X": -262.3789,
"Y": 4.4491196,
"Z": -75.791565
},
"TerritoryId": 146,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 3,
"Steps": [
{
"DataId": 1005578,
"Position": {
"X": 89.00586,
"Y": 14.439478,
"Z": -387.77753
},
"TerritoryId": 146,
"InteractionType": "Interact",
"Fly": true
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1005553,
"Position": {
"X": 122.6062,
"Y": 16.402647,
"Z": -362.11188
},
"TerritoryId": 146,
"InteractionType": "CompleteQuest",
"DialogueChoices": [
{
"Type": "List",
"Prompt": "TEXT_BANAMA002_01218_SYSYTEM_Q1_000_1",
"Answer": "TEXT_BANAMA002_01218_SYSYTEM_A1_000_1"
}
]
}
]
}
]
}

View File

@ -0,0 +1,115 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "liza",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1009294,
"Position": {
"X": -63.767517,
"Y": -1.7171676,
"Z": 11.673096
},
"TerritoryId": 132,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1000612,
"Position": {
"X": 357.96143,
"Y": 8.934158,
"Z": 214.46558
},
"TerritoryId": 154,
"InteractionType": "Interact",
"AethernetShortcut": [
"[Gridania] Aetheryte Plaza",
"[Gridania] Yellow Serpent Gate (North Shroud)"
],
"Fly": true
}
]
},
{
"Sequence": 2,
"Steps": [
{
"Position": {
"X": 264.54797,
"Y": -14.2467,
"Z": 56.094566
},
"TerritoryId": 154,
"InteractionType": "WalkTo",
"Fly": true
},
{
"DataId": 2004442,
"Position": {
"X": 265.00342,
"Y": -13.931519,
"Z": 58.457275
},
"TerritoryId": 154,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 3,
"Steps": [
{
"DataId": 1000612,
"Position": {
"X": 357.96143,
"Y": 8.934158,
"Z": 214.46558
},
"TerritoryId": 154,
"InteractionType": "Interact",
"Fly": true
}
]
},
{
"Sequence": 4,
"Steps": [
{
"DataId": 2004443,
"Position": {
"X": 211.9325,
"Y": -4.928711,
"Z": 27.572998
},
"TerritoryId": 154,
"InteractionType": "Interact",
"Fly": true
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1009199,
"Position": {
"X": 149.43152,
"Y": -18.140299,
"Z": 99.22937
},
"TerritoryId": 154,
"InteractionType": "CompleteQuest",
"Fly": true,
"NextQuestId": 1487
}
]
}
]
}

View File

@ -0,0 +1,130 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "liza",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1009199,
"Position": {
"X": 149.43152,
"Y": -18.140299,
"Z": 99.22937
},
"TerritoryId": 154,
"InteractionType": "AcceptQuest",
"DialogueChoices": [
{
"Type": "List",
"Prompt": "TEXT_BANIXA002_01487_Q1_000_000",
"Answer": "TEXT_BANIXA002_01487_A1_000_001"
}
]
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1009594,
"Position": {
"X": -22.568176,
"Y": -48.098206,
"Z": 289.66187
},
"TerritoryId": 154,
"InteractionType": "Interact",
"AetheryteShortcut": "North Shroud - Fallgourd Float"
}
]
},
{
"Sequence": 2,
"Steps": [
{
"Position": {
"X": -4.085219,
"Y": -40.94998,
"Z": 179.05669
},
"TerritoryId": 154,
"InteractionType": "WalkTo",
"Fly": true
},
{
"DataId": 1009218,
"Position": {
"X": -4.1047363,
"Y": -40.949986,
"Z": 176.83679
},
"TerritoryId": 154,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 3,
"Steps": [
{
"DataId": 1009595,
"Position": {
"X": -2.8534546,
"Y": -40.94998,
"Z": 178.72888
},
"TerritoryId": 154,
"InteractionType": "Interact",
"$": "Missing craft step",
"DialogueChoices": [
{
"Type": "List",
"Prompt": "TEXT_BANIXA002_01487_Q2_000_000",
"Answer": "TEXT_BANIXA002_01487_A2_000_001"
}
]
}
]
},
{
"Sequence": 4,
"Steps": [
{
"DataId": 1009199,
"Position": {
"X": 149.43152,
"Y": -18.140299,
"Z": 99.22937
},
"TerritoryId": 154,
"InteractionType": "Interact",
"Fly": true
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1009199,
"Position": {
"X": 149.43152,
"Y": -18.140299,
"Z": 99.22937
},
"TerritoryId": 154,
"InteractionType": "CompleteQuest",
"DialogueChoices": [
{
"Type": "List",
"Prompt": "TEXT_BANIXA002_01487_Q3_000_000",
"Answer": "TEXT_BANIXA002_01487_A3_000_001"
}
]
}
]
}
]
}

View File

@ -0,0 +1,136 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "liza",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1003550,
"Position": {
"X": 76.85962,
"Y": 39.99632,
"Z": 78.99597
},
"TerritoryId": 128,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1005964,
"Position": {
"X": 651.1177,
"Y": 9.597839,
"Z": 484.73328
},
"TerritoryId": 138,
"InteractionType": "Interact",
"AetheryteShortcut": "Western La Noscea - Swiftperch"
}
]
},
{
"Sequence": 2,
"Steps": [
{
"DataId": 2003711,
"Position": {
"X": 629.0836,
"Y": 9.719971,
"Z": 496.33008
},
"TerritoryId": 138,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 3,
"Steps": [
{
"DataId": 1005964,
"Position": {
"X": 651.1177,
"Y": 9.597839,
"Z": 484.73328
},
"TerritoryId": 138,
"InteractionType": "Interact",
"DialogueChoices": [
{
"Type": "List",
"Prompt": "TEXT_BANKOB001_01320_Q1_000_000",
"Answer": "TEXT_BANKOB001_01320_A1_000_002"
}
]
}
]
},
{
"Sequence": 4,
"Steps": [
{
"DataId": 1006325,
"Position": {
"X": -141.55798,
"Y": 64.59769,
"Z": -212.26831
},
"TerritoryId": 180,
"InteractionType": "Interact",
"AetheryteShortcut": "Outer La Noscea - Camp Overlook"
}
]
},
{
"Sequence": 5,
"Steps": [
{
"Position": {
"X": 19.274828,
"Y": 16.260347,
"Z": -199.21056
},
"TerritoryId": 180,
"InteractionType": "WalkTo",
"Fly": true
}
]
},
{
"Sequence": 6,
"Steps": [
{
"DataId": 1007950,
"Position": {
"X": 19.485779,
"Y": 16.159302,
"Z": -196.42938
},
"TerritoryId": 180,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1005927,
"Position": {
"X": -2.8534546,
"Y": 16.03717,
"Z": -172.5033
},
"TerritoryId": 180,
"InteractionType": "CompleteQuest",
"NextQuestId": 1321
}
]
}
]
}

View File

@ -0,0 +1,185 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "liza",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1005927,
"Position": {
"X": -2.8534546,
"Y": 16.03717,
"Z": -172.5033
},
"TerritoryId": 180,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 1,
"Steps": [
{
"Position": {
"X": 155.47716,
"Y": 68.658165,
"Z": -256.36594
},
"TerritoryId": 180,
"InteractionType": "WalkTo",
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
-32
]
},
{
"DataId": 2003715,
"Position": {
"X": 154.49756,
"Y": 69.047,
"Z": -254.32214
},
"TerritoryId": 180,
"InteractionType": "Interact",
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
32
]
},
{
"DataId": 2003713,
"Position": {
"X": 181.47546,
"Y": 64.59143,
"Z": -282.42926
},
"TerritoryId": 180,
"InteractionType": "Interact",
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
128
]
},
{
"DataId": 2003716,
"Position": {
"X": 180.28528,
"Y": 64.62195,
"Z": -255.17664
},
"TerritoryId": 180,
"InteractionType": "Interact",
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
16
]
},
{
"DataId": 2003714,
"Position": {
"X": 197.00916,
"Y": 64.042114,
"Z": -225.60468
},
"TerritoryId": 180,
"InteractionType": "Interact",
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
64
]
}
]
},
{
"Sequence": 2,
"Steps": [
{
"DataId": 1005927,
"Position": {
"X": -2.8534546,
"Y": 16.03717,
"Z": -172.5033
},
"TerritoryId": 180,
"InteractionType": "Interact",
"Fly": true
}
]
},
{
"Sequence": 3,
"Steps": [
{
"DataId": 2003717,
"Position": {
"X": 0.38146973,
"Y": 16.433899,
"Z": -177.47778
},
"TerritoryId": 180,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 4,
"Steps": [
{
"DataId": 1005927,
"Position": {
"X": -2.8534546,
"Y": 16.03717,
"Z": -172.5033
},
"StopDistance": 5,
"TerritoryId": 180,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1005927,
"Position": {
"X": -2.8534546,
"Y": 16.03717,
"Z": -172.5033
},
"StopDistance": 5,
"TerritoryId": 180,
"InteractionType": "CompleteQuest",
"DialogueChoices": [
{
"Type": "List",
"Prompt": "TEXT_BANKOB002_01321_Q1_000_000",
"Answer": "TEXT_BANKOB002_01321_A1_000_001"
}
]
}
]
}
]
}

View File

@ -184,7 +184,8 @@
}, },
"TerritoryId": 138, "TerritoryId": 138,
"InteractionType": "CompleteQuest", "InteractionType": "CompleteQuest",
"Fly": true "Fly": true,
"NextQuestId": 1375
} }
] ]
} }

View File

@ -0,0 +1,89 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "liza",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1000168,
"Position": {
"X": -75.48645,
"Y": -0.5013741,
"Z": -5.081299
},
"TerritoryId": 132,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 1,
"Steps": [
{
"Position": {
"X": 45.84424,
"Y": 6.073427,
"Z": 248.96754
},
"TerritoryId": 152,
"InteractionType": "WalkTo",
"AetheryteShortcut": "East Shroud - Hawthorne Hut",
"Fly": true
},
{
"DataId": 1005564,
"Position": {
"X": 48.203125,
"Y": 6.0734696,
"Z": 247.79126
},
"TerritoryId": 152,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 2,
"Steps": [
{
"DataId": 1005577,
"Position": {
"X": 28.488525,
"Y": -3.6319542,
"Z": 210.62024
},
"TerritoryId": 152,
"InteractionType": "Interact",
"Fly": true
}
]
},
{
"Sequence": 255,
"Steps": [
{
"Position": {
"X": 45.84424,
"Y": 6.073427,
"Z": 248.96754
},
"TerritoryId": 152,
"InteractionType": "WalkTo",
"Fly": true
},
{
"DataId": 1005564,
"Position": {
"X": 48.203125,
"Y": 6.0734696,
"Z": 247.79126
},
"TerritoryId": 152,
"InteractionType": "CompleteQuest",
"NextQuestId": 1253
}
]
}
]
}

View File

@ -0,0 +1,101 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "liza",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1005564,
"Position": {
"X": 48.203125,
"Y": 6.0734696,
"Z": 247.79126
},
"TerritoryId": 152,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 2002864,
"Position": {
"X": 270.28296,
"Y": -0.25946045,
"Z": 168.53589
},
"TerritoryId": 152,
"InteractionType": "Interact",
"Fly": true
}
]
},
{
"Sequence": 2,
"Steps": [
{
"DataId": 1005570,
"Position": {
"X": 292.77478,
"Y": -0.00153354,
"Z": 145.12854
},
"StopDistance": 7,
"TerritoryId": 152,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 3,
"Steps": [
{
"DataId": 1005565,
"Position": {
"X": 22.47644,
"Y": -6.2105103,
"Z": 252.552
},
"TerritoryId": 152,
"InteractionType": "Interact",
"Fly": true
}
]
},
{
"Sequence": 255,
"Steps": [
{
"Position": {
"X": 45.84424,
"Y": 6.073427,
"Z": 248.96754
},
"TerritoryId": 152,
"InteractionType": "WalkTo",
"Fly": true
},
{
"DataId": 1005564,
"Position": {
"X": 48.203125,
"Y": 6.0734696,
"Z": 247.79126
},
"TerritoryId": 152,
"InteractionType": "CompleteQuest",
"DialogueChoices": [
{
"Type": "List",
"Prompt": "TEXT_BANSYL002_01253_SYSYTEM_Q1_000_1",
"Answer": "TEXT_BANSYL002_01253_SYSYTEM_A1_000_1"
}
]
}
]
}
]
}

View File

@ -0,0 +1,205 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "liza",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1012064,
"Position": {
"X": -542.7787,
"Y": -37.11544,
"Z": -386.7094
},
"TerritoryId": 401,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 2006621,
"Position": {
"X": -428.27502,
"Y": 201.34265,
"Z": -229.05322
},
"StopDistance": 0.5,
"TerritoryId": 401,
"InteractionType": "Interact",
"Fly": true
}
]
},
{
"Sequence": 2,
"Steps": [
{
"Position": {
"X": -427.762,
"Y": 168.23676,
"Z": -215.835
},
"StopDistance": 5,
"TerritoryId": 401,
"InteractionType": "Combat",
"EnemySpawnType": "AutoOnEnterArea",
"KillEnemyDataIds": [
5232,
5233
]
}
]
},
{
"Sequence": 3,
"Steps": [
{
"DataId": 1016150,
"Position": {
"X": -429.52625,
"Y": 167.9683,
"Z": -224.445
},
"TerritoryId": 401,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 4,
"Steps": [
{
"DataId": 1012064,
"Position": {
"X": -542.7787,
"Y": -37.11544,
"Z": -386.7094
},
"TerritoryId": 401,
"InteractionType": "Interact",
"AetheryteShortcut": "The Sea of Clouds - Ok' Zundu",
"Fly": true
}
]
},
{
"Sequence": 5,
"Steps": [
{
"DataId": 1016087,
"Position": {
"X": -796.7498,
"Y": -133.2695,
"Z": -410.6966
},
"TerritoryId": 401,
"InteractionType": "Interact",
"Fly": true
}
]
},
{
"Sequence": 6,
"Steps": [
{
"DataId": 1016158,
"Position": {
"X": -779.263,
"Y": -117.906494,
"Z": -393.54547
},
"TerritoryId": 401,
"InteractionType": "Action",
"Action": "Buffet",
"Fly": true,
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
32
]
},
{
"DataId": 1016157,
"Position": {
"X": -813.2906,
"Y": -110.49066,
"Z": -434.1955
},
"TerritoryId": 401,
"InteractionType": "Action",
"Action": "Buffet",
"Fly": true,
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
64
]
},
{
"DataId": 1016156,
"Position": {
"X": -860.59357,
"Y": -122.91144,
"Z": -378.34747
},
"TerritoryId": 401,
"InteractionType": "Action",
"Action": "Buffet",
"Fly": true,
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
128
]
}
]
},
{
"Sequence": 255,
"Steps": [
{
"Position": {
"X": -796.7498,
"Y": -133.2695,
"Z": -410.6966
},
"StopDistance": 2,
"TerritoryId": 401,
"InteractionType": "WalkTo",
"Fly": true
},
{
"DataId": 1016087,
"Position": {
"X": -796.7498,
"Y": -133.2695,
"Z": -410.6966
},
"TerritoryId": 401,
"InteractionType": "CompleteQuest",
"Mount": false,
"DialogueChoices": [
{
"Type": "List",
"Prompt": "TEXT_BANVAN001_02164_SYSYTEM_Q1_000_110",
"Answer": "TEXT_BANVAN001_02164_SYSYTEM_A1_000_111"
}
]
}
]
}
]
}

View File

@ -0,0 +1,215 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "liza",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1011928,
"Position": {
"X": 73.19751,
"Y": -49.19563,
"Z": -139.05548
},
"TerritoryId": 398,
"InteractionType": "AcceptQuest",
"Fly": true
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1016835,
"Position": {
"X": 447.37915,
"Y": -51.141407,
"Z": 108.53735
},
"TerritoryId": 398,
"InteractionType": "Interact",
"AetheryteShortcut": "The Dravanian Forelands - Tailfeather",
"Fly": true
}
]
},
{
"Sequence": 2,
"Steps": [
{
"DataId": 1016836,
"Position": {
"X": 212.42078,
"Y": -58.007248,
"Z": -228.07666
},
"TerritoryId": 398,
"InteractionType": "Interact",
"Fly": true,
"DialogueChoices": [
{
"Type": "List",
"Prompt": "TEXT_BANGNA001_02255_Q1_000_031",
"Answer": "TEXT_BANGNA001_02255_A1_000_032"
}
]
}
]
},
{
"Sequence": 3,
"Steps": [
{
"DataId": 2006874,
"Position": {
"X": 222.156,
"Y": -74.93713,
"Z": 122.51465
},
"TerritoryId": 398,
"InteractionType": "Combat",
"EnemySpawnType": "AfterInteraction",
"KillEnemyDataIds": [
5540
],
"Fly": true
}
]
},
{
"Sequence": 4,
"Steps": [
{
"DataId": 1016836,
"Position": {
"X": 212.42078,
"Y": -58.007248,
"Z": -228.07666
},
"TerritoryId": 398,
"InteractionType": "Interact",
"Fly": true
}
]
},
{
"Sequence": 5,
"Steps": [
{
"Position": {
"X": 471.25446,
"Y": -51.141403,
"Z": 35.94126
},
"TerritoryId": 398,
"InteractionType": "WalkTo",
"AetheryteShortcut": "The Dravanian Forelands - Tailfeather",
"Fly": true
},
{
"DataId": 1011916,
"Position": {
"X": 470.02356,
"Y": -49.89133,
"Z": 20.370789
},
"TerritoryId": 398,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 6,
"Steps": [
{
"Position": {
"X": 471.25446,
"Y": -51.141403,
"Z": 35.94126
},
"TerritoryId": 398,
"InteractionType": "WalkTo",
"Mount": true
},
{
"DataId": 1011928,
"Position": {
"X": 73.19751,
"Y": -49.19563,
"Z": -139.05548
},
"TerritoryId": 398,
"InteractionType": "Interact",
"Fly": true
}
]
},
{
"Sequence": 7,
"Steps": [
{
"DataId": 1016837,
"Position": {
"X": 58.88452,
"Y": -48.000004,
"Z": -171.06891
},
"TerritoryId": 398,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 8,
"Steps": [
{
"Position": {
"X": 215.13696,
"Y": -87.32745,
"Z": 217.94458
},
"TerritoryId": 398,
"InteractionType": "Action",
"Action": "Fumigate",
"Fly": true
}
]
},
{
"Sequence": 255,
"Steps": [
{
"Position": {
"X": 58.88452,
"Y": -48.000004,
"Z": -171.06891
},
"StopDistance": 2,
"TerritoryId": 398,
"InteractionType": "WalkTo",
"Fly": true
},
{
"DataId": 1016837,
"Position": {
"X": 58.88452,
"Y": -48.000004,
"Z": -171.06891
},
"TerritoryId": 398,
"InteractionType": "CompleteQuest",
"Mount": false,
"DialogueChoices": [
{
"Type": "List",
"Prompt": "TEXT_BANGNA001_02255_Q1_000_105",
"Answer": "TEXT_BANGNA001_02255_A1_000_106"
}
]
}
]
}
]
}

View File

@ -0,0 +1,22 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "liza",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1018997,
"Position": {
"X": 20.492798,
"Y": -8.014721E-11,
"Z": -80.94916
},
"StopDistance": 5,
"TerritoryId": 628,
"InteractionType": "AcceptQuest"
}
]
}
]
}

View File

@ -0,0 +1,21 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "liza",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1022622,
"Position": {
"X": 18.08191,
"Y": 4.0559936,
"Z": 70.02356
},
"TerritoryId": 628,
"InteractionType": "AcceptQuest"
}
]
}
]
}

View File

@ -0,0 +1,96 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "liza",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1022628,
"Position": {
"X": 38.651123,
"Y": 2.99999,
"Z": -66.7583
},
"TerritoryId": 628,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1023604,
"Position": {
"X": -113.96973,
"Y": -7.010037,
"Z": -39.292053
},
"TerritoryId": 628,
"InteractionType": "Interact",
"AethernetShortcut": [
"[Kugane] Aetheryte Plaza",
"[Kugane] Shiokaze Hostelry"
]
}
]
},
{
"Sequence": 2,
"Steps": [
{
"DataId": 1019006,
"Position": {
"X": -116.80786,
"Y": -7.0101376,
"Z": -39.108948
},
"StopDistance": 7,
"TerritoryId": 628,
"InteractionType": "Interact",
"TargetTerritoryId": 641,
"DialogueChoices": [
{
"Type": "List",
"ExcelSheet": "Addon",
"Prompt": 6347,
"Answer": 6349
}
]
}
]
},
{
"Sequence": 3,
"Steps": [
{
"DataId": 1023605,
"Position": {
"X": -99.99243,
"Y": 2.1199996,
"Z": 117.57068
},
"TerritoryId": 641,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1022628,
"Position": {
"X": 38.651123,
"Y": 2.99999,
"Z": -66.7583
},
"TerritoryId": 628,
"InteractionType": "CompleteQuest",
"AetheryteShortcut": "Kugane"
}
]
}
]
}

View File

@ -0,0 +1,22 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "liza",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1027847,
"Position": {
"X": -76.34094,
"Y": 20.04979,
"Z": -110.97894
},
"StopDistance": 5,
"TerritoryId": 819,
"InteractionType": "AcceptQuest"
}
]
}
]
}

View File

@ -0,0 +1,22 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "liza",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1037263,
"Position": {
"X": 46.829956,
"Y": -15.646994,
"Z": 107.86597
},
"StopDistance": 5,
"TerritoryId": 962,
"InteractionType": "AcceptQuest"
}
]
}
]
}

View File

@ -0,0 +1,78 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "liza",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1049794,
"Position": {
"X": -158.98376,
"Y": 4.51273,
"Z": -45.63977
},
"TerritoryId": 133,
"InteractionType": "AcceptQuest",
"DialogueChoices": [
{
"Type": "List",
"Prompt": "TEXT_KINGBB201_04854_Q1_000_000",
"Answer": "TEXT_KINGBB201_04854_A1_000_002"
}
]
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 2013738,
"Position": {
"X": -6.9123535,
"Y": -1.4191895,
"Z": 5.508484
},
"TerritoryId": 132,
"InteractionType": "Interact",
"AethernetShortcut": [
"[Gridania] Conjurers' Guild",
"[Gridania] Aetheryte Plaza"
]
}
]
},
{
"Sequence": 2,
"Steps": [
{
"DataId": 1049795,
"Position": {
"X": 54.306763,
"Y": -8.321841,
"Z": 94.13281
},
"TerritoryId": 132,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1049795,
"Position": {
"X": 54.306763,
"Y": -8.321841,
"Z": 94.13281
},
"TerritoryId": 132,
"InteractionType": "CompleteQuest",
"NextQuestId": 4855
}
]
}
]
}

View File

@ -0,0 +1,149 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "liza",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"Position": {
"X": 54.306763,
"Y": -8.321841,
"Z": 94.13281
},
"TerritoryId": 132,
"InteractionType": "UseItem",
"ItemId": 43538,
"SkipConditions": {
"StepIf": {
"Item": {
"NotInInventory": true
}
}
}
},
{
"TerritoryId": 132,
"InteractionType": "EquipItem",
"ItemId": 41809,
"SkipConditions": {
"StepIf": {
"Item": {
"NotInInventory": true
}
}
},
"$": "This should probably call /equiprecommended if it exists"
},
{
"TerritoryId": 132,
"InteractionType": "EquipItem",
"ItemId": 43183,
"SkipConditions": {
"StepIf": {
"Item": {
"NotInInventory": true
}
}
}
},
{
"TerritoryId": 132,
"InteractionType": "EquipItem",
"ItemId": 43184,
"SkipConditions": {
"StepIf": {
"Item": {
"NotInInventory": true
}
}
}
},
{
"TerritoryId": 132,
"InteractionType": "EquipItem",
"ItemId": 43185,
"SkipConditions": {
"StepIf": {
"Item": {
"NotInInventory": true
}
}
}
},
{
"TerritoryId": 132,
"InteractionType": "EquipItem",
"ItemId": 43186,
"SkipConditions": {
"StepIf": {
"Item": {
"NotInInventory": true
}
}
}
},
{
"TerritoryId": 132,
"InteractionType": "EquipItem",
"ItemId": 43187,
"SkipConditions": {
"StepIf": {
"Item": {
"NotInInventory": true
}
}
}
},
{
"DataId": 1049795,
"Position": {
"X": 54.306763,
"Y": -8.321841,
"Z": 94.13281
},
"TerritoryId": 132,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1049794,
"Position": {
"X": -158.98376,
"Y": 4.51273,
"Z": -45.63977
},
"TerritoryId": 133,
"InteractionType": "Interact",
"AethernetShortcut": [
"[Gridania] Aetheryte Plaza",
"[Gridania] Conjurers' Guild"
]
}
]
},
{
"Sequence": 2,
"Steps": [
{
"DataId": 1049796,
"Position": {
"X": 27.695068,
"Y": 16.16987,
"Z": -339.13184
},
"TerritoryId": 133,
"InteractionType": "SinglePlayerDuty",
"AethernetShortcut": [
"[Gridania] Conjurers' Guild",
"[Gridania] Lancers' Guild"
]
}
]
}
]
}

View File

@ -26,11 +26,6 @@
} }
}, },
{ {
"Position": {
"X": 89.036255,
"Y": 12,
"Z": 47.287598
},
"TerritoryId": 131, "TerritoryId": 131,
"InteractionType": "EquipItem", "InteractionType": "EquipItem",
"ItemId": 41808, "ItemId": 41808,
@ -44,11 +39,6 @@
"$": "This should probably call /equiprecommended if it exists" "$": "This should probably call /equiprecommended if it exists"
}, },
{ {
"Position": {
"X": 89.036255,
"Y": 12,
"Z": 47.287598
},
"TerritoryId": 131, "TerritoryId": 131,
"InteractionType": "EquipItem", "InteractionType": "EquipItem",
"ItemId": 43178, "ItemId": 43178,
@ -61,11 +51,6 @@
} }
}, },
{ {
"Position": {
"X": 89.036255,
"Y": 12,
"Z": 47.287598
},
"TerritoryId": 131, "TerritoryId": 131,
"InteractionType": "EquipItem", "InteractionType": "EquipItem",
"ItemId": 43179, "ItemId": 43179,
@ -78,11 +63,6 @@
} }
}, },
{ {
"Position": {
"X": 89.036255,
"Y": 12,
"Z": 47.287598
},
"TerritoryId": 131, "TerritoryId": 131,
"InteractionType": "EquipItem", "InteractionType": "EquipItem",
"ItemId": 43180, "ItemId": 43180,

View File

@ -720,6 +720,8 @@
"enum": [ "enum": [
"Esuna", "Esuna",
"Physick", "Physick",
"Buffet",
"Fumigate",
"Siphon Snout", "Siphon Snout",
"Red Gulal", "Red Gulal",
"Yellow Gulal", "Yellow Gulal",

View File

@ -8,6 +8,8 @@ public sealed class ActionConverter() : EnumConverter<EAction>(Values)
{ {
{ EAction.Esuna, "Esuna" }, { EAction.Esuna, "Esuna" },
{ EAction.Physick, "Physick" }, { EAction.Physick, "Physick" },
{ EAction.Buffet, "Buffet" },
{ EAction.Fumigate, "Fumigate" },
{ EAction.SiphonSnout, "Siphon Snout" }, { EAction.SiphonSnout, "Siphon Snout" },
{ EAction.RedGulal, "Red Gulal" }, { EAction.RedGulal, "Red Gulal" },
{ EAction.YellowGulal, "Yellow Gulal" }, { EAction.YellowGulal, "Yellow Gulal" },

View File

@ -8,6 +8,8 @@ public enum EAction
{ {
Esuna = 7568, Esuna = 7568,
Physick = 190, Physick = 190,
Buffet = 4931,
Fumigate = 5872,
SiphonSnout = 18187, SiphonSnout = 18187,
RedGulal = 29382, RedGulal = 29382,
YellowGulal = 29383, YellowGulal = 29383,
@ -18,6 +20,12 @@ public static class EActionExtensions
{ {
public static bool RequiresMount(this EAction action) public static bool RequiresMount(this EAction action)
{ {
return action is EAction.SiphonSnout or EAction.RedGulal or EAction.YellowGulal or EAction.BlueGulal; return action
is EAction.Buffet
or EAction.Fumigate
or EAction.SiphonSnout
or EAction.RedGulal
or EAction.YellowGulal
or EAction.BlueGulal;
} }
} }

View File

@ -59,6 +59,7 @@ internal sealed class GameUiController : IDisposable
_addonLifecycle.RegisterListener(AddonEvent.PostSetup, "AkatsukiNote", UnendingCodexPostSetup); _addonLifecycle.RegisterListener(AddonEvent.PostSetup, "AkatsukiNote", UnendingCodexPostSetup);
_addonLifecycle.RegisterListener(AddonEvent.PostSetup, "ContentsTutorial", ContentsTutorialPostSetup); _addonLifecycle.RegisterListener(AddonEvent.PostSetup, "ContentsTutorial", ContentsTutorialPostSetup);
_addonLifecycle.RegisterListener(AddonEvent.PostSetup, "MultipleHelpWindow", MultipleHelpWindowPostSetup); _addonLifecycle.RegisterListener(AddonEvent.PostSetup, "MultipleHelpWindow", MultipleHelpWindowPostSetup);
_addonLifecycle.RegisterListener(AddonEvent.PostSetup, "HousingSelectBlock", HousingSelectBlockPostSetup);
} }
internal unsafe void HandleCurrentDialogueChoices() internal unsafe void HandleCurrentDialogueChoices()
@ -353,6 +354,7 @@ internal sealed class GameUiController : IDisposable
SelectYesnoPostSetup(addonSelectYesno, false); SelectYesnoPostSetup(addonSelectYesno, false);
} }
[SuppressMessage("ReSharper", "RedundantJumpStatement")]
private unsafe void SelectYesnoPostSetup(AddonSelectYesno* addonSelectYesno, bool checkAllSteps) private unsafe void SelectYesnoPostSetup(AddonSelectYesno* addonSelectYesno, bool checkAllSteps)
{ {
string? actualPrompt = addonSelectYesno->AtkUnitBase.AtkValues[0].ReadAtkString(); string? actualPrompt = addonSelectYesno->AtkUnitBase.AtkValues[0].ReadAtkString();
@ -362,7 +364,22 @@ internal sealed class GameUiController : IDisposable
_logger.LogTrace("Prompt: '{Prompt}'", actualPrompt); _logger.LogTrace("Prompt: '{Prompt}'", actualPrompt);
var currentQuest = _questController.StartedQuest; var currentQuest = _questController.StartedQuest;
if (currentQuest != null) if (currentQuest != null && CheckQuestYesNo(addonSelectYesno, currentQuest, actualPrompt, checkAllSteps))
return;
var simulatedQuest = _questController.SimulatedQuest;
if (simulatedQuest != null && HandleTravelYesNo(addonSelectYesno, simulatedQuest, actualPrompt))
return;
var nextQuest = _questController.NextQuest;
if (nextQuest != null && CheckQuestYesNo(addonSelectYesno, nextQuest, actualPrompt, checkAllSteps))
return;
return;
}
private unsafe bool CheckQuestYesNo(AddonSelectYesno* addonSelectYesno, QuestController.QuestProgress currentQuest,
string actualPrompt, bool checkAllSteps)
{ {
var quest = currentQuest.Quest; var quest = currentQuest.Quest;
if (checkAllSteps) if (checkAllSteps)
@ -370,26 +387,19 @@ internal sealed class GameUiController : IDisposable
var sequence = quest.FindSequence(currentQuest.Sequence); var sequence = quest.FindSequence(currentQuest.Sequence);
if (sequence != null && HandleDefaultYesNo(addonSelectYesno, quest, if (sequence != null && HandleDefaultYesNo(addonSelectYesno, quest,
sequence.Steps.SelectMany(x => x.DialogueChoices).ToList(), actualPrompt)) sequence.Steps.SelectMany(x => x.DialogueChoices).ToList(), actualPrompt))
return; return true;
} }
else else
{ {
var step = quest.FindSequence(currentQuest.Sequence)?.FindStep(currentQuest.Step); var step = quest.FindSequence(currentQuest.Sequence)?.FindStep(currentQuest.Step);
if (step != null && HandleDefaultYesNo(addonSelectYesno, quest, step.DialogueChoices, actualPrompt)) if (step != null && HandleDefaultYesNo(addonSelectYesno, quest, step.DialogueChoices, actualPrompt))
return; return true;
} }
if (HandleTravelYesNo(addonSelectYesno, currentQuest, actualPrompt)) if (HandleTravelYesNo(addonSelectYesno, currentQuest, actualPrompt))
return; return true;
}
var simulatedQuest = _questController.SimulatedQuest; return false;
if (simulatedQuest != null && HandleTravelYesNo(addonSelectYesno, simulatedQuest, actualPrompt))
return;
var nextQuest = _questController.NextQuest;
if (nextQuest != null)
HandleTravelYesNo(addonSelectYesno, nextQuest, actualPrompt);
} }
private unsafe bool HandleDefaultYesNo(AddonSelectYesno* addonSelectYesno, Quest quest, private unsafe bool HandleDefaultYesNo(AddonSelectYesno* addonSelectYesno, Quest quest,
@ -434,6 +444,13 @@ internal sealed class GameUiController : IDisposable
return true; return true;
} }
if (_questController.IsRunning && _gameGui.TryGetAddonByName("HousingSelectBlock", out AtkUnitBase* _))
{
_logger.LogInformation("Automatically confirming ward selection");
addonSelectYesno->AtkUnitBase.FireCallbackInt(0);
return true;
}
var targetTerritoryId = FindTargetTerritoryFromQuestStep(currentQuest); var targetTerritoryId = FindTargetTerritoryFromQuestStep(currentQuest);
if (targetTerritoryId != null && if (targetTerritoryId != null &&
TryFindWarp(targetTerritoryId.Value, actualPrompt, out uint? warpId, out string? warpText)) TryFindWarp(targetTerritoryId.Value, actualPrompt, out uint? warpId, out string? warpText))
@ -601,6 +618,9 @@ internal sealed class GameUiController : IDisposable
} }
} }
/// <summary>
/// Opened e.g. the first time you open the duty finder window during Sastasha.
/// </summary>
private unsafe void MultipleHelpWindowPostSetup(AddonEvent type, AddonArgs args) private unsafe void MultipleHelpWindowPostSetup(AddonEvent type, AddonArgs args)
{ {
if (_questController.StartedQuest?.Quest.QuestId == 245) if (_questController.StartedQuest?.Quest.QuestId == 245)
@ -612,6 +632,16 @@ internal sealed class GameUiController : IDisposable
} }
} }
private unsafe void HousingSelectBlockPostSetup(AddonEvent type, AddonArgs args)
{
if (_questController.IsRunning)
{
_logger.LogInformation("Confirming selected housing ward");
AtkUnitBase* addon = (AtkUnitBase*)args.Addon;
addon->FireCallbackInt(0);
}
}
/// <summary> /// <summary>
/// Ensures characters like '-' are handled equally in both strings. /// Ensures characters like '-' are handled equally in both strings.
/// </summary> /// </summary>
@ -643,6 +673,7 @@ internal sealed class GameUiController : IDisposable
public void Dispose() public void Dispose()
{ {
_addonLifecycle.UnregisterListener(AddonEvent.PostSetup, "HousingSelectBlock", HousingSelectBlockPostSetup);
_addonLifecycle.UnregisterListener(AddonEvent.PostSetup, "MultipleHelpWindow", MultipleHelpWindowPostSetup); _addonLifecycle.UnregisterListener(AddonEvent.PostSetup, "MultipleHelpWindow", MultipleHelpWindowPostSetup);
_addonLifecycle.UnregisterListener(AddonEvent.PostSetup, "ContentsTutorial", ContentsTutorialPostSetup); _addonLifecycle.UnregisterListener(AddonEvent.PostSetup, "ContentsTutorial", ContentsTutorialPostSetup);
_addonLifecycle.UnregisterListener(AddonEvent.PostSetup, "AkatsukiNote", UnendingCodexPostSetup); _addonLifecycle.UnregisterListener(AddonEvent.PostSetup, "AkatsukiNote", UnendingCodexPostSetup);