Mini-YA
This commit is contained in:
parent
a45cfda2e6
commit
9bbfbc54d3
@ -29,7 +29,14 @@
|
|||||||
},
|
},
|
||||||
"TerritoryId": 961,
|
"TerritoryId": 961,
|
||||||
"InteractionType": "Interact",
|
"InteractionType": "Interact",
|
||||||
"AetheryteShortcut": "Elpis - Anagnorisis"
|
"AetheryteShortcut": "Elpis - Anagnorisis",
|
||||||
|
"DialogueChoices": [
|
||||||
|
{
|
||||||
|
"Type": "List",
|
||||||
|
"Prompt": "TEXT_AKTKZH018_04313_Q1_000_100",
|
||||||
|
"Answer": "TEXT_AKTKZH018_04313_A2_000_100"
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
@ -90,7 +90,14 @@
|
|||||||
},
|
},
|
||||||
"StopDistance": 7,
|
"StopDistance": 7,
|
||||||
"TerritoryId": 958,
|
"TerritoryId": 958,
|
||||||
"InteractionType": "Interact"
|
"InteractionType": "Interact",
|
||||||
|
"DialogueChoices": [
|
||||||
|
{
|
||||||
|
"Type": "List",
|
||||||
|
"Prompt": "TEXT_AKTKZD008_04232_Q1_000_000",
|
||||||
|
"Answer": "TEXT_AKTKZD008_04232_A1_000_002"
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
@ -75,6 +75,21 @@
|
|||||||
},
|
},
|
||||||
"TerritoryId": 962,
|
"TerritoryId": 962,
|
||||||
"InteractionType": "Interact",
|
"InteractionType": "Interact",
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
32
|
||||||
|
],
|
||||||
|
"DialogueChoices": [
|
||||||
|
{
|
||||||
|
"Type": "YesNo",
|
||||||
|
"Prompt": "TEXT_AKTKMA103_04359_Q5_000_071",
|
||||||
|
"Yes": true
|
||||||
|
}
|
||||||
|
],
|
||||||
"$.0": "[1]",
|
"$.0": "[1]",
|
||||||
"$.2": "QuestVariables if done after [3]: 2 0 0 0 0 96"
|
"$.2": "QuestVariables if done after [3]: 2 0 0 0 0 96"
|
||||||
},
|
},
|
||||||
@ -87,6 +102,21 @@
|
|||||||
},
|
},
|
||||||
"TerritoryId": 962,
|
"TerritoryId": 962,
|
||||||
"InteractionType": "Interact",
|
"InteractionType": "Interact",
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
128
|
||||||
|
],
|
||||||
|
"DialogueChoices": [
|
||||||
|
{
|
||||||
|
"Type": "YesNo",
|
||||||
|
"Prompt": "TEXT_AKTKMA103_04359_Q2_000_049",
|
||||||
|
"Yes": true
|
||||||
|
}
|
||||||
|
],
|
||||||
"$.0": "[2]"
|
"$.0": "[2]"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -98,6 +128,21 @@
|
|||||||
},
|
},
|
||||||
"TerritoryId": 962,
|
"TerritoryId": 962,
|
||||||
"InteractionType": "Interact",
|
"InteractionType": "Interact",
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
64
|
||||||
|
],
|
||||||
|
"DialogueChoices": [
|
||||||
|
{
|
||||||
|
"Type": "YesNo",
|
||||||
|
"Prompt": "TEXT_AKTKMA103_04359_Q3_000_055",
|
||||||
|
"Yes": true
|
||||||
|
}
|
||||||
|
],
|
||||||
"$.0": "[3]",
|
"$.0": "[3]",
|
||||||
"$.2": "QuestVariables if used first: 1 0 0 0 0 64"
|
"$.2": "QuestVariables if used first: 1 0 0 0 0 64"
|
||||||
}
|
}
|
||||||
|
@ -88,7 +88,14 @@
|
|||||||
"Z": 130.47986
|
"Z": 130.47986
|
||||||
},
|
},
|
||||||
"TerritoryId": 962,
|
"TerritoryId": 962,
|
||||||
"InteractionType": "Interact"
|
"InteractionType": "Interact",
|
||||||
|
"DialogueChoices": [
|
||||||
|
{
|
||||||
|
"Type": "List",
|
||||||
|
"Prompt": "TEXT_AKTKMA104_04360_Q3_000_130",
|
||||||
|
"Answer": "TEXT_AKTKMA104_04360_A3_000_131"
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@ -103,7 +110,14 @@
|
|||||||
"Z": 141.1001
|
"Z": 141.1001
|
||||||
},
|
},
|
||||||
"TerritoryId": 962,
|
"TerritoryId": 962,
|
||||||
"InteractionType": "Interact"
|
"InteractionType": "Interact",
|
||||||
|
"DialogueChoices": [
|
||||||
|
{
|
||||||
|
"Type": "List",
|
||||||
|
"Prompt": "TEXT_AKTKMA104_04360_Q5_000_150",
|
||||||
|
"Answer": "TEXT_AKTKMA104_04360_A5_000_151"
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@ -118,7 +132,14 @@
|
|||||||
"Z": 148.11926
|
"Z": 148.11926
|
||||||
},
|
},
|
||||||
"TerritoryId": 962,
|
"TerritoryId": 962,
|
||||||
"InteractionType": "Interact"
|
"InteractionType": "Interact",
|
||||||
|
"DialogueChoices": [
|
||||||
|
{
|
||||||
|
"Type": "List",
|
||||||
|
"Prompt": "TEXT_AKTKMA104_04360_Q6_000_170",
|
||||||
|
"Answer": "TEXT_AKTKMA104_04360_A6_000_171"
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
@ -101,9 +101,9 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Position": {
|
"Position": {
|
||||||
"X": -425.43683,
|
"X": -436.3368,
|
||||||
"Y": 38.413155,
|
"Y": 38.647118,
|
||||||
"Z": 160.11292
|
"Z": 166.13683
|
||||||
},
|
},
|
||||||
"TerritoryId": 957,
|
"TerritoryId": 957,
|
||||||
"InteractionType": "WalkTo"
|
"InteractionType": "WalkTo"
|
||||||
|
@ -43,7 +43,14 @@
|
|||||||
"Z": 28.244385
|
"Z": 28.244385
|
||||||
},
|
},
|
||||||
"TerritoryId": 957,
|
"TerritoryId": 957,
|
||||||
"InteractionType": "Interact"
|
"InteractionType": "Interact",
|
||||||
|
"DialogueChoices": [
|
||||||
|
{
|
||||||
|
"Type": "YesNo",
|
||||||
|
"Prompt": "TEXT_AKTKMA118_04374_Q1_000_041",
|
||||||
|
"Yes": true
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@ -108,7 +115,14 @@
|
|||||||
"Z": -555.04694
|
"Z": -555.04694
|
||||||
},
|
},
|
||||||
"TerritoryId": 957,
|
"TerritoryId": 957,
|
||||||
"InteractionType": "Interact"
|
"InteractionType": "Interact",
|
||||||
|
"DialogueChoices": [
|
||||||
|
{
|
||||||
|
"Type": "YesNo",
|
||||||
|
"Prompt": "TEXT_AKTKMA118_04374_Q2_000_141",
|
||||||
|
"Yes": true
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
@ -105,7 +105,14 @@
|
|||||||
"Z": -565.0569
|
"Z": -565.0569
|
||||||
},
|
},
|
||||||
"TerritoryId": 957,
|
"TerritoryId": 957,
|
||||||
"InteractionType": "Interact"
|
"InteractionType": "Interact",
|
||||||
|
"DialogueChoices": [
|
||||||
|
{
|
||||||
|
"Type": "YesNo",
|
||||||
|
"Prompt": "TEXT_AKTKMA119_04375_Q1_000_056",
|
||||||
|
"Yes": true
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
@ -1,6 +1,9 @@
|
|||||||
{
|
{
|
||||||
"$schema": "https://carvel.li/questionable/quest-1.0",
|
"$schema": "https://carvel.li/questionable/quest-1.0",
|
||||||
"Author": "liza",
|
"Author": "liza",
|
||||||
|
"TerritoryBlacklist": [
|
||||||
|
952
|
||||||
|
],
|
||||||
"QuestSequence": [
|
"QuestSequence": [
|
||||||
{
|
{
|
||||||
"Sequence": 0,
|
"Sequence": 0,
|
||||||
|
@ -119,7 +119,14 @@
|
|||||||
},
|
},
|
||||||
"StopDistance": 6,
|
"StopDistance": 6,
|
||||||
"TerritoryId": 962,
|
"TerritoryId": 962,
|
||||||
"InteractionType": "Interact"
|
"InteractionType": "Interact",
|
||||||
|
"DialogueChoices": [
|
||||||
|
{
|
||||||
|
"Type": "YesNo",
|
||||||
|
"Prompt": "TEXT_AKTKMA123_04379_Q1_000_163",
|
||||||
|
"Yes": true
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
@ -59,7 +59,14 @@
|
|||||||
},
|
},
|
||||||
"TerritoryId": 129,
|
"TerritoryId": 129,
|
||||||
"InteractionType": "Interact",
|
"InteractionType": "Interact",
|
||||||
"AetheryteShortcut": "Limsa Lominsa"
|
"AetheryteShortcut": "Limsa Lominsa",
|
||||||
|
"DialogueChoices": [
|
||||||
|
{
|
||||||
|
"Type": "YesNo",
|
||||||
|
"Prompt": "TEXT_AKTKMB102_04381_Q1_000_067",
|
||||||
|
"Yes": true
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
@ -30,7 +30,14 @@
|
|||||||
},
|
},
|
||||||
"StopDistance": 7,
|
"StopDistance": 7,
|
||||||
"TerritoryId": 621,
|
"TerritoryId": 621,
|
||||||
"InteractionType": "Interact"
|
"InteractionType": "Interact",
|
||||||
|
"DialogueChoices": [
|
||||||
|
{
|
||||||
|
"Type": "YesNo",
|
||||||
|
"Prompt": "TEXT_AKTKMB103_04382_Q1_000_052",
|
||||||
|
"Yes": true
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@ -62,7 +69,15 @@
|
|||||||
"StopDistance": 7,
|
"StopDistance": 7,
|
||||||
"TerritoryId": 737,
|
"TerritoryId": 737,
|
||||||
"InteractionType": "Interact",
|
"InteractionType": "Interact",
|
||||||
"Comment": "A-Ruhn-Senna"
|
"Comment": "A-Ruhn-Senna",
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
128
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"DataId": 1038812,
|
"DataId": 1038812,
|
||||||
@ -74,7 +89,15 @@
|
|||||||
"StopDistance": 7,
|
"StopDistance": 7,
|
||||||
"TerritoryId": 737,
|
"TerritoryId": 737,
|
||||||
"InteractionType": "Interact",
|
"InteractionType": "Interact",
|
||||||
"Comment": "Sicard"
|
"Comment": "Sicard",
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
64
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"DataId": 1038813,
|
"DataId": 1038813,
|
||||||
@ -86,7 +109,15 @@
|
|||||||
"StopDistance": 7,
|
"StopDistance": 7,
|
||||||
"TerritoryId": 737,
|
"TerritoryId": 737,
|
||||||
"InteractionType": "Interact",
|
"InteractionType": "Interact",
|
||||||
"Comment": "Lyse"
|
"Comment": "Lyse",
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
32
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"DataId": 1038814,
|
"DataId": 1038814,
|
||||||
@ -98,7 +129,15 @@
|
|||||||
"StopDistance": 7,
|
"StopDistance": 7,
|
||||||
"TerritoryId": 737,
|
"TerritoryId": 737,
|
||||||
"InteractionType": "Interact",
|
"InteractionType": "Interact",
|
||||||
"Comment": "Lucia"
|
"Comment": "Lucia",
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
16
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"DataId": 1038815,
|
"DataId": 1038815,
|
||||||
@ -110,7 +149,15 @@
|
|||||||
"StopDistance": 7,
|
"StopDistance": 7,
|
||||||
"TerritoryId": 737,
|
"TerritoryId": 737,
|
||||||
"InteractionType": "Interact",
|
"InteractionType": "Interact",
|
||||||
"Comment": "Cirina"
|
"Comment": "Cirina",
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
8
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
@ -32,7 +32,19 @@
|
|||||||
},
|
},
|
||||||
"TerritoryId": 621,
|
"TerritoryId": 621,
|
||||||
"InteractionType": "SinglePlayerDuty",
|
"InteractionType": "SinglePlayerDuty",
|
||||||
"Comment": "A Frosty Reception"
|
"Comment": "A Frosty Reception",
|
||||||
|
"DialogueChoices": [
|
||||||
|
{
|
||||||
|
"Type": "ContentTalkList",
|
||||||
|
"Prompt": "264",
|
||||||
|
"Answer": "267"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Type": "ContentTalkYesNo",
|
||||||
|
"Prompt": "268",
|
||||||
|
"Yes": true
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
@ -45,10 +45,11 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Position": {
|
"Position": {
|
||||||
"X": -188.58397,
|
"X": -188.84349,
|
||||||
"Y": 20.625948,
|
"Y": 20.31553,
|
||||||
"Z": 408.3002
|
"Z": 406.13293
|
||||||
},
|
},
|
||||||
|
"StopDistance": 1,
|
||||||
"TerritoryId": 958,
|
"TerritoryId": 958,
|
||||||
"InteractionType": "WalkTo",
|
"InteractionType": "WalkTo",
|
||||||
"DisableNavmesh": true,
|
"DisableNavmesh": true,
|
||||||
@ -75,6 +76,7 @@
|
|||||||
"Y": 3.426586,
|
"Y": 3.426586,
|
||||||
"Z": 360.1115
|
"Z": 360.1115
|
||||||
},
|
},
|
||||||
|
"StopDistance": 1,
|
||||||
"TerritoryId": 958,
|
"TerritoryId": 958,
|
||||||
"InteractionType": "WalkTo",
|
"InteractionType": "WalkTo",
|
||||||
"DisableNavmesh": true,
|
"DisableNavmesh": true,
|
||||||
@ -158,7 +160,7 @@
|
|||||||
"Z": 159.10571
|
"Z": 159.10571
|
||||||
},
|
},
|
||||||
"TerritoryId": 958,
|
"TerritoryId": 958,
|
||||||
"InteractionType": "Interact"
|
"InteractionType": "WalkTo"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
@ -110,14 +110,123 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Position": {
|
"Position": {
|
||||||
"X": 393.71204,
|
"X": 394.97046,
|
||||||
"Y": 4.142438,
|
"Y": 3.652959,
|
||||||
"Z": 251.71986
|
"Z": 254.77034
|
||||||
},
|
},
|
||||||
"TerritoryId": 958,
|
"TerritoryId": 958,
|
||||||
"InteractionType": "ShouldBeAJump",
|
"InteractionType": "Jump",
|
||||||
"DisableNavmesh": true,
|
"DisableNavmesh": true,
|
||||||
"Comment": "Jump on Pipeline and move near the Aether Current"
|
"JumpDestination": {
|
||||||
|
"Position": {
|
||||||
|
"X": 405.0264,
|
||||||
|
"Y": -2.2185562,
|
||||||
|
"Z": 267.40506
|
||||||
|
},
|
||||||
|
"StopDistance": 3
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": 405.01987,
|
||||||
|
"Y": -2.2185562,
|
||||||
|
"Z": 298.9302
|
||||||
|
},
|
||||||
|
"TerritoryId": 958,
|
||||||
|
"InteractionType": "Jump",
|
||||||
|
"JumpDestination": {
|
||||||
|
"Position": {
|
||||||
|
"X": 405.01382,
|
||||||
|
"Y": -2.2185562,
|
||||||
|
"Z": 308.17484
|
||||||
|
},
|
||||||
|
"StopDistance": 3
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": 404.9343,
|
||||||
|
"Y": -2.2185562,
|
||||||
|
"Z": 338.46368
|
||||||
|
},
|
||||||
|
"TerritoryId": 958,
|
||||||
|
"InteractionType": "Jump",
|
||||||
|
"JumpDestination": {
|
||||||
|
"Position": {
|
||||||
|
"X": 404.9452,
|
||||||
|
"Y": -2.2185562,
|
||||||
|
"Z": 347.15533
|
||||||
|
},
|
||||||
|
"StopDistance": 3
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": 405.0104,
|
||||||
|
"Y": -2.2185562,
|
||||||
|
"Z": 379.0302
|
||||||
|
},
|
||||||
|
"TerritoryId": 958,
|
||||||
|
"InteractionType": "Jump",
|
||||||
|
"JumpDestination": {
|
||||||
|
"Position": {
|
||||||
|
"X": 404.98633,
|
||||||
|
"Y": -2.2185562,
|
||||||
|
"Z": 388.4368
|
||||||
|
},
|
||||||
|
"StopDistance": 3
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": 405.02594,
|
||||||
|
"Y": -2.2185562,
|
||||||
|
"Z": 419.30426
|
||||||
|
},
|
||||||
|
"TerritoryId": 958,
|
||||||
|
"InteractionType": "Jump",
|
||||||
|
"JumpDestination": {
|
||||||
|
"Position": {
|
||||||
|
"X": 405.00076,
|
||||||
|
"Y": -2.2185562,
|
||||||
|
"Z": 427.6698
|
||||||
|
},
|
||||||
|
"StopDistance": 3
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": 405.03207,
|
||||||
|
"Y": -2.2185562,
|
||||||
|
"Z": 457.66095
|
||||||
|
},
|
||||||
|
"TerritoryId": 958,
|
||||||
|
"InteractionType": "Jump",
|
||||||
|
"JumpDestination": {
|
||||||
|
"Position": {
|
||||||
|
"X": 404.94934,
|
||||||
|
"Y": -2.2185562,
|
||||||
|
"Z": 467.3867
|
||||||
|
},
|
||||||
|
"StopDistance": 3
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": 405.04044,
|
||||||
|
"Y": -2.2185562,
|
||||||
|
"Z": 498.37363
|
||||||
|
},
|
||||||
|
"TerritoryId": 958,
|
||||||
|
"InteractionType": "Jump",
|
||||||
|
"JumpDestination": {
|
||||||
|
"Position": {
|
||||||
|
"X": 405.158,
|
||||||
|
"Y": -2.2185564,
|
||||||
|
"Z": 508.9487
|
||||||
|
},
|
||||||
|
"StopDistance": 3
|
||||||
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"DataId": 2012003,
|
"DataId": 2012003,
|
||||||
|
@ -78,7 +78,14 @@
|
|||||||
},
|
},
|
||||||
"TerritoryId": 958,
|
"TerritoryId": 958,
|
||||||
"InteractionType": "WaitForManualProgress",
|
"InteractionType": "WaitForManualProgress",
|
||||||
"Comment": "Follow Alphinaud and Alisaie"
|
"Comment": "Follow Alphinaud and Alisaie",
|
||||||
|
"DialogueChoices": [
|
||||||
|
{
|
||||||
|
"Type": "YesNo",
|
||||||
|
"Prompt": "TEXT_AKTKMB108_04387_Q1_000_161",
|
||||||
|
"Yes": true
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
@ -30,6 +30,14 @@
|
|||||||
"TerritoryId": 958,
|
"TerritoryId": 958,
|
||||||
"InteractionType": "Interact",
|
"InteractionType": "Interact",
|
||||||
"Comment": "Caeso",
|
"Comment": "Caeso",
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
64
|
||||||
|
],
|
||||||
"$.0": "[1]",
|
"$.0": "[1]",
|
||||||
"$.1": "QuestVariables if done first: 17 0 0 0 0 64"
|
"$.1": "QuestVariables if done first: 17 0 0 0 0 64"
|
||||||
},
|
},
|
||||||
@ -43,6 +51,14 @@
|
|||||||
"TerritoryId": 958,
|
"TerritoryId": 958,
|
||||||
"InteractionType": "Interact",
|
"InteractionType": "Interact",
|
||||||
"Comment": "Octavia",
|
"Comment": "Octavia",
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
16
|
||||||
|
],
|
||||||
"$.0": "[2]",
|
"$.0": "[2]",
|
||||||
"$.2": "QuestVariables if done after [1]: 33 1 0 0 0 80"
|
"$.2": "QuestVariables if done after [1]: 33 1 0 0 0 80"
|
||||||
},
|
},
|
||||||
@ -53,7 +69,15 @@
|
|||||||
"Z": -178.38684
|
"Z": -178.38684
|
||||||
},
|
},
|
||||||
"TerritoryId": 958,
|
"TerritoryId": 958,
|
||||||
"InteractionType": "WalkTo"
|
"InteractionType": "WalkTo",
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
128
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"DataId": 1037715,
|
"DataId": 1037715,
|
||||||
@ -65,6 +89,14 @@
|
|||||||
"TerritoryId": 958,
|
"TerritoryId": 958,
|
||||||
"InteractionType": "Interact",
|
"InteractionType": "Interact",
|
||||||
"Comment": "Sabinianus",
|
"Comment": "Sabinianus",
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
128
|
||||||
|
],
|
||||||
"$.0": "[3]",
|
"$.0": "[3]",
|
||||||
"$.2": "QuestVariables if done after [1, 2]: 49 1 16 0 0 206"
|
"$.2": "QuestVariables if done after [1, 2]: 49 1 16 0 0 206"
|
||||||
},
|
},
|
||||||
@ -78,6 +110,14 @@
|
|||||||
"TerritoryId": 958,
|
"TerritoryId": 958,
|
||||||
"InteractionType": "Interact",
|
"InteractionType": "Interact",
|
||||||
"Comment": "Marcellinus",
|
"Comment": "Marcellinus",
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
32
|
||||||
|
],
|
||||||
"$.0": "[4]",
|
"$.0": "[4]",
|
||||||
"$.2": "QuestVariables if done after [1, 2, 3]: 65 17 16 0 0 240"
|
"$.2": "QuestVariables if done after [1, 2, 3]: 65 17 16 0 0 240"
|
||||||
},
|
},
|
||||||
@ -91,6 +131,14 @@
|
|||||||
"TerritoryId": 958,
|
"TerritoryId": 958,
|
||||||
"InteractionType": "Interact",
|
"InteractionType": "Interact",
|
||||||
"Comment": "Magitek Radio",
|
"Comment": "Magitek Radio",
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
8
|
||||||
|
],
|
||||||
"$.0": "[5]"
|
"$.0": "[5]"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
@ -31,6 +31,14 @@
|
|||||||
"TerritoryId": 958,
|
"TerritoryId": 958,
|
||||||
"InteractionType": "Interact",
|
"InteractionType": "Interact",
|
||||||
"Comment": "Marcellinus",
|
"Comment": "Marcellinus",
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
128
|
||||||
|
],
|
||||||
"$.1": "QuestVariables if done first: 16 16 0 0 0 128"
|
"$.1": "QuestVariables if done first: 16 16 0 0 0 128"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -42,7 +50,15 @@
|
|||||||
},
|
},
|
||||||
"TerritoryId": 958,
|
"TerritoryId": 958,
|
||||||
"InteractionType": "Interact",
|
"InteractionType": "Interact",
|
||||||
"Comment": "Octavia"
|
"Comment": "Octavia",
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
64
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@ -57,7 +73,14 @@
|
|||||||
"Z": -422.62915
|
"Z": -422.62915
|
||||||
},
|
},
|
||||||
"TerritoryId": 958,
|
"TerritoryId": 958,
|
||||||
"InteractionType": "Interact"
|
"InteractionType": "Interact",
|
||||||
|
"DialogueChoices": [
|
||||||
|
{
|
||||||
|
"Type": "List",
|
||||||
|
"Prompt": "TEXT_AKTKMB113_04392_Q1_000_031",
|
||||||
|
"Answer": "TEXT_AKTKMB113_04392_A1_000_032"
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@ -72,7 +95,14 @@
|
|||||||
"Z": -232.98999
|
"Z": -232.98999
|
||||||
},
|
},
|
||||||
"TerritoryId": 958,
|
"TerritoryId": 958,
|
||||||
"InteractionType": "Interact"
|
"InteractionType": "Interact",
|
||||||
|
"DialogueChoices": [
|
||||||
|
{
|
||||||
|
"Type": "YesNo",
|
||||||
|
"Prompt": "TEXT_AKTKMB113_04392_Q2_000_051",
|
||||||
|
"Yes": true
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
@ -215,6 +215,14 @@
|
|||||||
"KillEnemyDataIds": [
|
"KillEnemyDataIds": [
|
||||||
14078
|
14078
|
||||||
],
|
],
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
64
|
||||||
|
],
|
||||||
"$.0": "[1]",
|
"$.0": "[1]",
|
||||||
"$.1": "QuestVariables if done first: (before) 0 0 2 0 0 0 (after) 16 16 2 0 0 64"
|
"$.1": "QuestVariables if done first: (before) 0 0 2 0 0 0 (after) 16 16 2 0 0 64"
|
||||||
},
|
},
|
||||||
@ -234,6 +242,14 @@
|
|||||||
"Comment": "TODO Needs item use?",
|
"Comment": "TODO Needs item use?",
|
||||||
"ItemId": 2003231,
|
"ItemId": 2003231,
|
||||||
"ItemUseHealthMaxPercent": 10,
|
"ItemUseHealthMaxPercent": 10,
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
32
|
||||||
|
],
|
||||||
"$.0": "[2]",
|
"$.0": "[2]",
|
||||||
"$.1": "QuestVariables if done after [1]: 32 17 1 0 0 96"
|
"$.1": "QuestVariables if done after [1]: 32 17 1 0 0 96"
|
||||||
},
|
},
|
||||||
@ -246,7 +262,14 @@
|
|||||||
},
|
},
|
||||||
"TerritoryId": 958,
|
"TerritoryId": 958,
|
||||||
"InteractionType": "Interact",
|
"InteractionType": "Interact",
|
||||||
"Comment": "TODO Maybe move the train station aether current interaction before this",
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
128
|
||||||
|
],
|
||||||
"$.0": "[3]",
|
"$.0": "[3]",
|
||||||
"$.1": "QuestVariables if done after [1, 2]: 49 17 1 0 0 224"
|
"$.1": "QuestVariables if done after [1, 2]: 49 17 1 0 0 224"
|
||||||
},
|
},
|
||||||
@ -266,6 +289,14 @@
|
|||||||
"Comment": "TODO Needs item use?",
|
"Comment": "TODO Needs item use?",
|
||||||
"ItemId": 2003231,
|
"ItemId": 2003231,
|
||||||
"ItemUseHealthMaxPercent": 10,
|
"ItemUseHealthMaxPercent": 10,
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
16
|
||||||
|
],
|
||||||
"$.0": "[4]"
|
"$.0": "[4]"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
@ -1,6 +1,9 @@
|
|||||||
{
|
{
|
||||||
"$schema": "https://carvel.li/questionable/quest-1.0",
|
"$schema": "https://carvel.li/questionable/quest-1.0",
|
||||||
"Author": "liza",
|
"Author": "liza",
|
||||||
|
"TerritoryBlacklist": [
|
||||||
|
1011
|
||||||
|
],
|
||||||
"QuestSequence": [
|
"QuestSequence": [
|
||||||
{
|
{
|
||||||
"Sequence": 0,
|
"Sequence": 0,
|
||||||
@ -29,7 +32,14 @@
|
|||||||
},
|
},
|
||||||
"TerritoryId": 958,
|
"TerritoryId": 958,
|
||||||
"InteractionType": "SinglePlayerDuty",
|
"InteractionType": "SinglePlayerDuty",
|
||||||
"Comment": "In from the Cold"
|
"Comment": "In from the Cold",
|
||||||
|
"DialogueChoices": [
|
||||||
|
{
|
||||||
|
"Type": "YesNo",
|
||||||
|
"Prompt": "TEXT_AKTKMB115_04394_Q1_000_042",
|
||||||
|
"Yes": true
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@ -43,6 +53,7 @@
|
|||||||
"Y": 22.20836,
|
"Y": 22.20836,
|
||||||
"Z": 403.76892
|
"Z": 403.76892
|
||||||
},
|
},
|
||||||
|
"StopDistance": 5,
|
||||||
"TerritoryId": 958,
|
"TerritoryId": 958,
|
||||||
"InteractionType": "Interact"
|
"InteractionType": "Interact"
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,9 @@
|
|||||||
{
|
{
|
||||||
"$schema": "https://carvel.li/questionable/quest-1.0",
|
"$schema": "https://carvel.li/questionable/quest-1.0",
|
||||||
"Author": "liza",
|
"Author": "liza",
|
||||||
|
"TerritoryBlacklist": [
|
||||||
|
969
|
||||||
|
],
|
||||||
"QuestSequence": [
|
"QuestSequence": [
|
||||||
{
|
{
|
||||||
"Sequence": 0,
|
"Sequence": 0,
|
||||||
@ -80,7 +83,14 @@
|
|||||||
"Z": -677.4243
|
"Z": -677.4243
|
||||||
},
|
},
|
||||||
"TerritoryId": 958,
|
"TerritoryId": 958,
|
||||||
"InteractionType": "Interact"
|
"InteractionType": "Interact",
|
||||||
|
"DialogueChoices": [
|
||||||
|
{
|
||||||
|
"Type": "YesNo",
|
||||||
|
"Prompt": "TEXT_AKTKMB116_04395_Q3_000_206",
|
||||||
|
"Yes": true
|
||||||
|
}
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"DataId": 2012112,
|
"DataId": 2012112,
|
||||||
@ -114,6 +124,7 @@
|
|||||||
"Y": 0,
|
"Y": 0,
|
||||||
"Z": 33.585083
|
"Z": 33.585083
|
||||||
},
|
},
|
||||||
|
"StopDistance": 4,
|
||||||
"TerritoryId": 1024,
|
"TerritoryId": 1024,
|
||||||
"InteractionType": "Interact"
|
"InteractionType": "Interact"
|
||||||
}
|
}
|
||||||
|
@ -28,7 +28,14 @@
|
|||||||
"Z": -0.00103838
|
"Z": -0.00103838
|
||||||
},
|
},
|
||||||
"TerritoryId": 1024,
|
"TerritoryId": 1024,
|
||||||
"InteractionType": "Interact"
|
"InteractionType": "Interact",
|
||||||
|
"DialogueChoices": [
|
||||||
|
{
|
||||||
|
"Type": "YesNo",
|
||||||
|
"Prompt": "TEXT_AKTKMB117_04396_Q1_000_060",
|
||||||
|
"Yes": true
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
@ -16,7 +16,14 @@
|
|||||||
"Z": 467.46008
|
"Z": 467.46008
|
||||||
},
|
},
|
||||||
"TerritoryId": 959,
|
"TerritoryId": 959,
|
||||||
"InteractionType": "Interact"
|
"InteractionType": "Interact",
|
||||||
|
"DialogueChoices": [
|
||||||
|
{
|
||||||
|
"Type": "List",
|
||||||
|
"Prompt": "TEXT_AKTKMB119_04398_Q1_000_001",
|
||||||
|
"Answer": "TEXT_AKTKMB119_04398_A1_000_002"
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@ -31,7 +38,14 @@
|
|||||||
"Z": 467.46008
|
"Z": 467.46008
|
||||||
},
|
},
|
||||||
"TerritoryId": 959,
|
"TerritoryId": 959,
|
||||||
"InteractionType": "Interact"
|
"InteractionType": "Interact",
|
||||||
|
"DialogueChoices": [
|
||||||
|
{
|
||||||
|
"Type": "YesNo",
|
||||||
|
"Prompt": "TEXT_AKTKMB119_04398_Q2_000_010",
|
||||||
|
"Yes": true
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
@ -137,7 +137,14 @@
|
|||||||
},
|
},
|
||||||
"StopDistance": 5,
|
"StopDistance": 5,
|
||||||
"TerritoryId": 959,
|
"TerritoryId": 959,
|
||||||
"InteractionType": "Interact"
|
"InteractionType": "Interact",
|
||||||
|
"DialogueChoices": [
|
||||||
|
{
|
||||||
|
"Type": "YesNo",
|
||||||
|
"Prompt": "TEXT_AKTKMC102_04400_Q1_000_151",
|
||||||
|
"Yes": true
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
{
|
{
|
||||||
"$schema": "https://carvel.li/questionable/quest-1.0",
|
"$schema": "https://carvel.li/questionable/quest-1.0",
|
||||||
"Author": "liza",
|
"Author": "liza",
|
||||||
|
"Comment": "TODO add aether current (2818368) here since it can't be reached later with mount speed 0",
|
||||||
"QuestSequence": [
|
"QuestSequence": [
|
||||||
{
|
{
|
||||||
"Sequence": 0,
|
"Sequence": 0,
|
||||||
@ -97,6 +98,15 @@
|
|||||||
{
|
{
|
||||||
"Sequence": 255,
|
"Sequence": 255,
|
||||||
"Steps": [
|
"Steps": [
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": -9.783533,
|
||||||
|
"Y": -49.589592,
|
||||||
|
"Z": -339.60205
|
||||||
|
},
|
||||||
|
"TerritoryId": 959,
|
||||||
|
"InteractionType": "WalkTo"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"Position": {
|
"Position": {
|
||||||
"X": -72.39724,
|
"X": -72.39724,
|
||||||
|
@ -81,7 +81,20 @@
|
|||||||
{
|
{
|
||||||
"DataId": 2012178,
|
"DataId": 2012178,
|
||||||
"TerritoryId": 959,
|
"TerritoryId": 959,
|
||||||
|
"StopDistance": 3,
|
||||||
"InteractionType": "Interact",
|
"InteractionType": "Interact",
|
||||||
|
"DialogueChoices": [
|
||||||
|
{
|
||||||
|
"Type": "List",
|
||||||
|
"Prompt": "TEXT_AKTKMC104_04402_Q1_000_071",
|
||||||
|
"Answer": "TEXT_AKTKMC104_04402_A1_000_074"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Type": "YesNo",
|
||||||
|
"Prompt": "TEXT_AKTKMC104_04402_Q2_000_081",
|
||||||
|
"Yes": true
|
||||||
|
}
|
||||||
|
],
|
||||||
"Comment": "Navmesh can't jump"
|
"Comment": "Navmesh can't jump"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@ -102,10 +115,33 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"DataId": 1038912,
|
"DataId": 1038912,
|
||||||
"StopDistance": 5,
|
"Position": {
|
||||||
|
"X": -462.06528,
|
||||||
|
"Y": -155.5629,
|
||||||
|
"Z": -625.5277
|
||||||
|
},
|
||||||
|
"TerritoryId": 959,
|
||||||
|
"InteractionType": "Jump",
|
||||||
|
"JumpDestination": {
|
||||||
|
"Position": {
|
||||||
|
"X": -453.99258,
|
||||||
|
"Y": -168,
|
||||||
|
"Z": -618.5703
|
||||||
|
},
|
||||||
|
"StopDistance": 8
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"DataId": 1038912,
|
||||||
|
"Position": {
|
||||||
|
"X": -455.40552,
|
||||||
|
"Y": -168,
|
||||||
|
"Z": -620.05035
|
||||||
|
},
|
||||||
"TerritoryId": 959,
|
"TerritoryId": 959,
|
||||||
"InteractionType": "Interact",
|
"InteractionType": "Interact",
|
||||||
"Comment": "Navmesh can't jump"
|
"DialogueChoices": [
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
@ -49,6 +49,13 @@
|
|||||||
"StopDistance": 5,
|
"StopDistance": 5,
|
||||||
"TerritoryId": 959,
|
"TerritoryId": 959,
|
||||||
"InteractionType": "Interact",
|
"InteractionType": "Interact",
|
||||||
|
"DialogueChoices": [
|
||||||
|
{
|
||||||
|
"Type": "List",
|
||||||
|
"Prompt": "TEXT_AKTKMC105_04403_Q1_000_073",
|
||||||
|
"Answer": "TEXT_AKTKMC105_04403_A1_000_075"
|
||||||
|
}
|
||||||
|
],
|
||||||
"Comment": "Navmesh can't jump"
|
"Comment": "Navmesh can't jump"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@ -70,6 +77,13 @@
|
|||||||
"StopDistance": 5,
|
"StopDistance": 5,
|
||||||
"TerritoryId": 959,
|
"TerritoryId": 959,
|
||||||
"InteractionType": "Interact",
|
"InteractionType": "Interact",
|
||||||
|
"DialogueChoices": [
|
||||||
|
{
|
||||||
|
"Type": "List",
|
||||||
|
"Prompt": "TEXT_AKTKMC105_04403_Q1_000_118",
|
||||||
|
"Answer": "TEXT_AKTKMC105_04403_A1_000_120"
|
||||||
|
}
|
||||||
|
],
|
||||||
"Comment": "Navmesh can't jump"
|
"Comment": "Navmesh can't jump"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@ -116,7 +130,14 @@
|
|||||||
},
|
},
|
||||||
"TerritoryId": 959,
|
"TerritoryId": 959,
|
||||||
"InteractionType": "Interact",
|
"InteractionType": "Interact",
|
||||||
"AetheryteShortcut": "Mare Lamentorum - Bestways Burrow"
|
"AetheryteShortcut": "Mare Lamentorum - Bestways Burrow",
|
||||||
|
"DialogueChoices": [
|
||||||
|
{
|
||||||
|
"Type": "YesNo",
|
||||||
|
"Prompt": "TEXT_AKTKMC105_04403_SYSTEM_000_215",
|
||||||
|
"Yes": true
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
@ -64,7 +64,14 @@
|
|||||||
"Z": -494.13293
|
"Z": -494.13293
|
||||||
},
|
},
|
||||||
"TerritoryId": 959,
|
"TerritoryId": 959,
|
||||||
"InteractionType": "Interact"
|
"InteractionType": "Interact",
|
||||||
|
"DialogueChoices": [
|
||||||
|
{
|
||||||
|
"Type": "List",
|
||||||
|
"Prompt": "TEXT_AKTKMC106_04404_Q1_000_021",
|
||||||
|
"Answer": "TEXT_AKTKMC106_04404_A1_000_022"
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
@ -46,7 +46,7 @@
|
|||||||
},
|
},
|
||||||
"TerritoryId": 959,
|
"TerritoryId": 959,
|
||||||
"InteractionType": "SinglePlayerDuty",
|
"InteractionType": "SinglePlayerDuty",
|
||||||
"Comment": "Follow Urianger"
|
"Comment": "Follow Urianger (TODO is this sequence used?)"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@ -62,7 +62,7 @@
|
|||||||
},
|
},
|
||||||
"TerritoryId": 959,
|
"TerritoryId": 959,
|
||||||
"InteractionType": "SinglePlayerDuty",
|
"InteractionType": "SinglePlayerDuty",
|
||||||
"Comment": "Follow Urianger (but you failed the first time)"
|
"Comment": "Follow Urianger"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
@ -136,9 +136,16 @@
|
|||||||
"Z": -558.8681
|
"Z": -558.8681
|
||||||
},
|
},
|
||||||
"TerritoryId": 959,
|
"TerritoryId": 959,
|
||||||
"InteractionType": "ShouldBeAJump",
|
"InteractionType": "Jump",
|
||||||
"AetheryteShortcut": "Mare Lamentorum - Bestways Burrow",
|
"AetheryteShortcut": "Mare Lamentorum - Bestways Burrow",
|
||||||
"Comment": "Navmesh can't jump"
|
"JumpDestination": {
|
||||||
|
"Position": {
|
||||||
|
"X": 307.72073,
|
||||||
|
"Y": -143.15913,
|
||||||
|
"Z": -563.4788
|
||||||
|
},
|
||||||
|
"StopDistance": 5
|
||||||
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"DataId": 2012012,
|
"DataId": 2012012,
|
||||||
|
@ -31,7 +31,10 @@
|
|||||||
"TerritoryId": 959,
|
"TerritoryId": 959,
|
||||||
"InteractionType": "Interact",
|
"InteractionType": "Interact",
|
||||||
"AetheryteShortcut": "Mare Lamentorum - Bestways Burrow",
|
"AetheryteShortcut": "Mare Lamentorum - Bestways Burrow",
|
||||||
"Comment": "Teleporter"
|
"TargetTerritoryId": 959,
|
||||||
|
"SkipIf": [
|
||||||
|
"Never"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Position": {
|
"Position": {
|
||||||
|
@ -39,7 +39,8 @@
|
|||||||
"Z": 728.96924
|
"Z": 728.96924
|
||||||
},
|
},
|
||||||
"TerritoryId": 959,
|
"TerritoryId": 959,
|
||||||
"InteractionType": "Interact"
|
"InteractionType": "Interact",
|
||||||
|
"TargetTerritoryId": 1024
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"DataId": 1038960,
|
"DataId": 1038960,
|
||||||
@ -111,7 +112,14 @@
|
|||||||
"Z": -5.081299
|
"Z": -5.081299
|
||||||
},
|
},
|
||||||
"TerritoryId": 987,
|
"TerritoryId": 987,
|
||||||
"InteractionType": "Interact"
|
"InteractionType": "Interact",
|
||||||
|
"DialogueChoices": [
|
||||||
|
{
|
||||||
|
"Type": "YesNo",
|
||||||
|
"Prompt": "TEXT_AKTKMC110_04408_Q3_000_170",
|
||||||
|
"Yes": true
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@ -130,6 +138,13 @@
|
|||||||
"AethernetShortcut": [
|
"AethernetShortcut": [
|
||||||
"[Old Sharlayan] Aetheryte Plaza",
|
"[Old Sharlayan] Aetheryte Plaza",
|
||||||
"[Old Sharlayan] The Baldesion Annex"
|
"[Old Sharlayan] The Baldesion Annex"
|
||||||
|
],
|
||||||
|
"DialogueChoices": [
|
||||||
|
{
|
||||||
|
"Type": "YesNo",
|
||||||
|
"Prompt": "TEXT_AKTKMC110_04408_Q4_000_204",
|
||||||
|
"Yes": true
|
||||||
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
@ -1,6 +1,9 @@
|
|||||||
{
|
{
|
||||||
"$schema": "https://carvel.li/questionable/quest-1.0",
|
"$schema": "https://carvel.li/questionable/quest-1.0",
|
||||||
"Author": "liza",
|
"Author": "liza",
|
||||||
|
"TerritoryBlacklist": [
|
||||||
|
970
|
||||||
|
],
|
||||||
"QuestSequence": [
|
"QuestSequence": [
|
||||||
{
|
{
|
||||||
"Sequence": 0,
|
"Sequence": 0,
|
||||||
|
@ -60,6 +60,14 @@
|
|||||||
},
|
},
|
||||||
"TerritoryId": 963,
|
"TerritoryId": 963,
|
||||||
"InteractionType": "Interact",
|
"InteractionType": "Interact",
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
128
|
||||||
|
],
|
||||||
"Comment": "Varsra"
|
"Comment": "Varsra"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -71,6 +79,14 @@
|
|||||||
},
|
},
|
||||||
"TerritoryId": 963,
|
"TerritoryId": 963,
|
||||||
"InteractionType": "Interact",
|
"InteractionType": "Interact",
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
32
|
||||||
|
],
|
||||||
"Comment": "Zeytahnur"
|
"Comment": "Zeytahnur"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -82,6 +98,14 @@
|
|||||||
},
|
},
|
||||||
"TerritoryId": 963,
|
"TerritoryId": 963,
|
||||||
"InteractionType": "Interact",
|
"InteractionType": "Interact",
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
64
|
||||||
|
],
|
||||||
"Comment": "Rahdvira"
|
"Comment": "Rahdvira"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
@ -66,7 +66,14 @@
|
|||||||
"Z": -330.46472
|
"Z": -330.46472
|
||||||
},
|
},
|
||||||
"TerritoryId": 957,
|
"TerritoryId": 957,
|
||||||
"InteractionType": "Interact"
|
"InteractionType": "Interact",
|
||||||
|
"DialogueChoices": [
|
||||||
|
{
|
||||||
|
"Type": "List",
|
||||||
|
"Prompt": "TEXT_AKTKMD105_04413_Q1_000_095",
|
||||||
|
"Answer": "TEXT_AKTKMD105_04413_A1_000_096"
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
@ -140,6 +140,14 @@
|
|||||||
"KillEnemyDataIds": [
|
"KillEnemyDataIds": [
|
||||||
13987
|
13987
|
||||||
],
|
],
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
128
|
||||||
|
],
|
||||||
"$.0": "[1]",
|
"$.0": "[1]",
|
||||||
"$.1": "QuestVariables if done first: 16 1 0 0 0 128"
|
"$.1": "QuestVariables if done first: 16 1 0 0 0 128"
|
||||||
},
|
},
|
||||||
@ -155,6 +163,14 @@
|
|||||||
"KillEnemyDataIds": [
|
"KillEnemyDataIds": [
|
||||||
13986
|
13986
|
||||||
],
|
],
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
64
|
||||||
|
],
|
||||||
"$.0": "[2]",
|
"$.0": "[2]",
|
||||||
"$.1": "QuestVariables if done after [1]: 33 1 0 0 0 192",
|
"$.1": "QuestVariables if done after [1]: 33 1 0 0 0 192",
|
||||||
"$.2": "QuestVariables if done after [3]: 33 32 0 0 0 96"
|
"$.2": "QuestVariables if done after [3]: 33 32 0 0 0 96"
|
||||||
@ -172,6 +188,14 @@
|
|||||||
13985,
|
13985,
|
||||||
13984
|
13984
|
||||||
],
|
],
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
32
|
||||||
|
],
|
||||||
"$.0": "[3]",
|
"$.0": "[3]",
|
||||||
"$.2": "QuestVariables if done first: 16 32 0 0 0 32"
|
"$.2": "QuestVariables if done first: 16 32 0 0 0 32"
|
||||||
}
|
}
|
||||||
|
@ -52,6 +52,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Sequence": 3,
|
"Sequence": 3,
|
||||||
|
"Comment": "TODO Check flags",
|
||||||
"Steps": [
|
"Steps": [
|
||||||
{
|
{
|
||||||
"DataId": 1037628,
|
"DataId": 1037628,
|
||||||
@ -61,7 +62,15 @@
|
|||||||
"Z": -243.76288
|
"Z": -243.76288
|
||||||
},
|
},
|
||||||
"TerritoryId": 957,
|
"TerritoryId": 957,
|
||||||
"InteractionType": "Interact"
|
"InteractionType": "Interact",
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
64
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"DataId": 1040449,
|
"DataId": 1040449,
|
||||||
@ -71,7 +80,15 @@
|
|||||||
"Z": -238.3612
|
"Z": -238.3612
|
||||||
},
|
},
|
||||||
"TerritoryId": 957,
|
"TerritoryId": 957,
|
||||||
"InteractionType": "Interact"
|
"InteractionType": "Interact",
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
128
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"DataId": 1037629,
|
"DataId": 1037629,
|
||||||
@ -81,7 +98,15 @@
|
|||||||
"Z": -200.85455
|
"Z": -200.85455
|
||||||
},
|
},
|
||||||
"TerritoryId": 957,
|
"TerritoryId": 957,
|
||||||
"InteractionType": "Interact"
|
"InteractionType": "Interact",
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
32
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
@ -95,7 +95,14 @@
|
|||||||
"Z": -87.90729
|
"Z": -87.90729
|
||||||
},
|
},
|
||||||
"TerritoryId": 963,
|
"TerritoryId": 963,
|
||||||
"InteractionType": "Interact"
|
"InteractionType": "Interact",
|
||||||
|
"DialogueChoices": [
|
||||||
|
{
|
||||||
|
"Type": "List",
|
||||||
|
"Prompt": "TEXT_AKTKMD110_04418_Q2_000_172",
|
||||||
|
"Answer": "TEXT_AKTKMD110_04418_A2_000_173"
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@ -114,6 +121,13 @@
|
|||||||
"AethernetShortcut": [
|
"AethernetShortcut": [
|
||||||
"[Radz-at-Han] Hall of the Radiant Host",
|
"[Radz-at-Han] Hall of the Radiant Host",
|
||||||
"[Radz-at-Han] Mehryde's Meyhane"
|
"[Radz-at-Han] Mehryde's Meyhane"
|
||||||
|
],
|
||||||
|
"DialogueChoices": [
|
||||||
|
{
|
||||||
|
"Type": "List",
|
||||||
|
"Prompt": "TEXT_AKTKMD110_04418_Q3_000_223",
|
||||||
|
"Answer": "TEXT_AKTKMD110_04418_A3_000_225"
|
||||||
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
@ -50,12 +50,33 @@
|
|||||||
"Z": -210.52875
|
"Z": -210.52875
|
||||||
},
|
},
|
||||||
"TerritoryId": 819,
|
"TerritoryId": 819,
|
||||||
"InteractionType": "WaitForManualProgress",
|
"InteractionType": "Interact",
|
||||||
"Comment": "Cutscene Interaction needed",
|
|
||||||
"AetheryteShortcut": "Crystarium",
|
"AetheryteShortcut": "Crystarium",
|
||||||
"AethernetShortcut": [
|
"AethernetShortcut": [
|
||||||
"[Crystarium] Aetheryte Plaza",
|
"[Crystarium] Aetheryte Plaza",
|
||||||
"[Crystarium] The Cabinet of Curiosity"
|
"[Crystarium] The Cabinet of Curiosity"
|
||||||
|
],
|
||||||
|
"DialogueChoices": [
|
||||||
|
{
|
||||||
|
"Type": "YesNo",
|
||||||
|
"Prompt": "TEXT_AKTKME101_04419_Q2_000_071",
|
||||||
|
"Yes": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Type": "List",
|
||||||
|
"Prompt": "TEXT_AKTKME101_04419_Q3_000_083",
|
||||||
|
"Answer": "TEXT_AKTKME101_04419_A3_000_087"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Type": "List",
|
||||||
|
"Prompt": "TEXT_AKTKME101_04419_Q4_000_113",
|
||||||
|
"Answer": "TEXT_AKTKME101_04419_A4_000_114"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Type": "List",
|
||||||
|
"Prompt": "TEXT_AKTKME101_04419_Q5_000_129",
|
||||||
|
"Answer": "TEXT_AKTKME101_04419_A5_000_131"
|
||||||
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
@ -33,7 +33,9 @@
|
|||||||
"AethernetShortcut": [
|
"AethernetShortcut": [
|
||||||
"[Crystarium] The Cabinet of Curiosity",
|
"[Crystarium] The Cabinet of Curiosity",
|
||||||
"[Crystarium] The Dossal Gate"
|
"[Crystarium] The Dossal Gate"
|
||||||
]
|
],
|
||||||
|
"Comment": "TODO Check target territory id",
|
||||||
|
"TargetTerritoryId": 844
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@ -47,13 +49,40 @@
|
|||||||
"Z": -4.654831
|
"Z": -4.654831
|
||||||
},
|
},
|
||||||
"TerritoryId": 1031,
|
"TerritoryId": 1031,
|
||||||
"InteractionType": "WalkTo"
|
"InteractionType": "Jump",
|
||||||
|
"JumpDestination": {
|
||||||
|
"Position": {
|
||||||
|
"X": -1.5539734,
|
||||||
|
"Y": 3.6164591,
|
||||||
|
"Z": -1.1141448
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
16
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"DataId": 2012128,
|
"DataId": 2012128,
|
||||||
|
"Position": {
|
||||||
|
"X": -0.001528129,
|
||||||
|
"Y": 4.931927,
|
||||||
|
"Z": 0.01416349
|
||||||
|
},
|
||||||
"TerritoryId": 1031,
|
"TerritoryId": 1031,
|
||||||
"InteractionType": "Interact",
|
"InteractionType": "Interact",
|
||||||
"Comment": "Interact with Aetheryte (Navmesh can't jump)",
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
16
|
||||||
|
],
|
||||||
"$.0": "[1]",
|
"$.0": "[1]",
|
||||||
"$.1": "QuestVariables if done first: 16 0 16 0 0 16"
|
"$.1": "QuestVariables if done first: 16 0 16 0 0 16"
|
||||||
},
|
},
|
||||||
@ -66,6 +95,14 @@
|
|||||||
},
|
},
|
||||||
"TerritoryId": 1031,
|
"TerritoryId": 1031,
|
||||||
"InteractionType": "Interact",
|
"InteractionType": "Interact",
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
128
|
||||||
|
],
|
||||||
"$.0": "[2]",
|
"$.0": "[2]",
|
||||||
"$": "QuestVariables after: 32 1 16 0 0 144"
|
"$": "QuestVariables after: 32 1 16 0 0 144"
|
||||||
},
|
},
|
||||||
@ -78,6 +115,14 @@
|
|||||||
},
|
},
|
||||||
"TerritoryId": 1031,
|
"TerritoryId": 1031,
|
||||||
"InteractionType": "Interact",
|
"InteractionType": "Interact",
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
64
|
||||||
|
],
|
||||||
"$.0": "[3]",
|
"$.0": "[3]",
|
||||||
"$.1": "QuestVariables after: 49 1 16 0 0 208"
|
"$.1": "QuestVariables after: 49 1 16 0 0 208"
|
||||||
},
|
},
|
||||||
@ -90,6 +135,14 @@
|
|||||||
},
|
},
|
||||||
"TerritoryId": 1031,
|
"TerritoryId": 1031,
|
||||||
"InteractionType": "Interact",
|
"InteractionType": "Interact",
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
32
|
||||||
|
],
|
||||||
"$.0": "[4]",
|
"$.0": "[4]",
|
||||||
"$.2": "QuestVariables if done first: 16 16 0 0 0 32"
|
"$.2": "QuestVariables if done first: 16 16 0 0 0 32"
|
||||||
}
|
}
|
||||||
|
@ -58,7 +58,14 @@
|
|||||||
"Z": 157.61035
|
"Z": 157.61035
|
||||||
},
|
},
|
||||||
"TerritoryId": 961,
|
"TerritoryId": 961,
|
||||||
"InteractionType": "Interact"
|
"InteractionType": "Interact",
|
||||||
|
"DialogueChoices": [
|
||||||
|
{
|
||||||
|
"Type": "List",
|
||||||
|
"Prompt": "TEXT_AKTKME104_04422_Q1_000_094",
|
||||||
|
"Answer": "TEXT_AKTKME104_04422_A1_000_095"
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
@ -85,7 +85,14 @@
|
|||||||
"Z": 73.258545
|
"Z": 73.258545
|
||||||
},
|
},
|
||||||
"TerritoryId": 961,
|
"TerritoryId": 961,
|
||||||
"InteractionType": "Interact"
|
"InteractionType": "Interact",
|
||||||
|
"DialogueChoices": [
|
||||||
|
{
|
||||||
|
"Type": "List",
|
||||||
|
"Prompt": "TEXT_AKTKME105_04423_Q1_000_106",
|
||||||
|
"Answer": "TEXT_AKTKME105_04423_A1_000_107"
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@ -100,7 +107,14 @@
|
|||||||
"Z": 121.47705
|
"Z": 121.47705
|
||||||
},
|
},
|
||||||
"TerritoryId": 961,
|
"TerritoryId": 961,
|
||||||
"InteractionType": "Interact"
|
"InteractionType": "Interact",
|
||||||
|
"DialogueChoices": [
|
||||||
|
{
|
||||||
|
"Type": "List",
|
||||||
|
"Prompt": "TEXT_AKTKME105_04423_Q4_000_178",
|
||||||
|
"Answer": "TEXT_AKTKME105_04423_A4_000_180"
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@ -130,7 +144,14 @@
|
|||||||
"Z": 107.133545
|
"Z": 107.133545
|
||||||
},
|
},
|
||||||
"TerritoryId": 961,
|
"TerritoryId": 961,
|
||||||
"InteractionType": "Interact"
|
"InteractionType": "Interact",
|
||||||
|
"DialogueChoices": [
|
||||||
|
{
|
||||||
|
"Type": "List",
|
||||||
|
"Prompt": "TEXT_AKTKME105_04423_Q7_000_313",
|
||||||
|
"Answer": "TEXT_AKTKME105_04423_A7_000_314"
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
@ -13,7 +13,14 @@
|
|||||||
"Z": 63.70642
|
"Z": 63.70642
|
||||||
},
|
},
|
||||||
"TerritoryId": 961,
|
"TerritoryId": 961,
|
||||||
"InteractionType": "Interact"
|
"InteractionType": "Interact",
|
||||||
|
"DialogueChoices": [
|
||||||
|
{
|
||||||
|
"Type": "List",
|
||||||
|
"Prompt": "TEXT_AKTKME107_04425_Q1_000_024",
|
||||||
|
"Answer": "TEXT_AKTKME107_04425_A1_000_025"
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
@ -46,6 +46,14 @@
|
|||||||
},
|
},
|
||||||
"TerritoryId": 961,
|
"TerritoryId": 961,
|
||||||
"InteractionType": "Interact",
|
"InteractionType": "Interact",
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
128
|
||||||
|
],
|
||||||
"$.1": "QuestVariables if done first: 1 0 0 0 0 128"
|
"$.1": "QuestVariables if done first: 1 0 0 0 0 128"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -56,7 +64,15 @@
|
|||||||
"Z": 543.572
|
"Z": 543.572
|
||||||
},
|
},
|
||||||
"TerritoryId": 961,
|
"TerritoryId": 961,
|
||||||
"InteractionType": "Interact"
|
"InteractionType": "Interact",
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
64
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@ -116,7 +132,14 @@
|
|||||||
"Z": 460.77673
|
"Z": 460.77673
|
||||||
},
|
},
|
||||||
"TerritoryId": 961,
|
"TerritoryId": 961,
|
||||||
"InteractionType": "Interact"
|
"InteractionType": "Interact",
|
||||||
|
"DialogueChoices": [
|
||||||
|
{
|
||||||
|
"Type": "List",
|
||||||
|
"Prompt": "TEXT_AKTKME109_04427_Q3_000_163",
|
||||||
|
"Answer": "TEXT_AKTKME109_04427_A3_000_164"
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
@ -102,7 +102,14 @@
|
|||||||
"Z": -113.81708
|
"Z": -113.81708
|
||||||
},
|
},
|
||||||
"TerritoryId": 961,
|
"TerritoryId": 961,
|
||||||
"InteractionType": "Interact"
|
"InteractionType": "Interact",
|
||||||
|
"DialogueChoices": [
|
||||||
|
{
|
||||||
|
"Type": "List",
|
||||||
|
"Prompt": "TEXT_AKTKME111_04429_Q2_000_094",
|
||||||
|
"Answer": "TEXT_AKTKME111_04429_A2_000_096"
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
@ -84,8 +84,29 @@
|
|||||||
"Z": -173.75458
|
"Z": -173.75458
|
||||||
},
|
},
|
||||||
"TerritoryId": 961,
|
"TerritoryId": 961,
|
||||||
"InteractionType": "WaitForManualProgress",
|
"InteractionType": "Interact",
|
||||||
"Comment": "Talk (1, 2, 1)"
|
"DialogueChoices": [
|
||||||
|
{
|
||||||
|
"Type": "YesNo",
|
||||||
|
"Prompt": "TEXT_AKTKME112_04430_Q1_000_072",
|
||||||
|
"Yes": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Type": "List",
|
||||||
|
"Prompt": "TEXT_AKTKME112_04430_Q2_000_076",
|
||||||
|
"Answer": "TEXT_AKTKME112_04430_A2_000_077"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Type": "List",
|
||||||
|
"Prompt": "TEXT_AKTKME112_04430_Q3_000_089",
|
||||||
|
"Answer": "TEXT_AKTKME112_04430_A3_000_091"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Type": "List",
|
||||||
|
"Prompt": "TEXT_AKTKME112_04430_Q4_000_098",
|
||||||
|
"Answer": "TEXT_AKTKME112_04430_A4_000_099"
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@ -125,7 +146,29 @@
|
|||||||
"Z": -155.5047
|
"Z": -155.5047
|
||||||
},
|
},
|
||||||
"TerritoryId": 961,
|
"TerritoryId": 961,
|
||||||
"InteractionType": "WaitForManualProgress",
|
"InteractionType": "Interact",
|
||||||
|
"DialogueChoices": [
|
||||||
|
{
|
||||||
|
"Type": "YesNo",
|
||||||
|
"Prompt": "TEXT_AKTKME112_04430_Q5_000_152",
|
||||||
|
"Yes": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Type": "List",
|
||||||
|
"Prompt": "TEXT_AKTKME112_04430_Q6_000_154",
|
||||||
|
"Answer": "TEXT_AKTKME112_04430_A6_000_156"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Type": "List",
|
||||||
|
"Prompt": "TEXT_AKTKME112_04430_Q7_000_168",
|
||||||
|
"Answer": "TEXT_AKTKME112_04430_A7_000_170"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Type": "List",
|
||||||
|
"Prompt": "TEXT_AKTKME112_04430_Q8_000_181",
|
||||||
|
"Answer": "TEXT_AKTKME112_04430_A8_000_182"
|
||||||
|
}
|
||||||
|
],
|
||||||
"Comment": "Talk (2, 2, 1)"
|
"Comment": "Talk (2, 2, 1)"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
@ -13,7 +13,14 @@
|
|||||||
"Z": -175.24994
|
"Z": -175.24994
|
||||||
},
|
},
|
||||||
"TerritoryId": 961,
|
"TerritoryId": 961,
|
||||||
"InteractionType": "Interact"
|
"InteractionType": "Interact",
|
||||||
|
"DialogueChoices": [
|
||||||
|
{
|
||||||
|
"Type": "List",
|
||||||
|
"Prompt": "TEXT_AKTKME113_04431_Q1_000_014",
|
||||||
|
"Answer": "TEXT_AKTKME113_04431_A1_000_016"
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
@ -40,7 +40,14 @@
|
|||||||
"Z": 198.68762
|
"Z": 198.68762
|
||||||
},
|
},
|
||||||
"TerritoryId": 961,
|
"TerritoryId": 961,
|
||||||
"InteractionType": "Interact"
|
"InteractionType": "Interact",
|
||||||
|
"DialogueChoices": [
|
||||||
|
{
|
||||||
|
"Type": "YesNo",
|
||||||
|
"Prompt": "TEXT_AKTKME115_04433_Q1_000_021",
|
||||||
|
"Yes": true
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@ -82,7 +89,14 @@
|
|||||||
"Z": -367.48303
|
"Z": -367.48303
|
||||||
},
|
},
|
||||||
"TerritoryId": 961,
|
"TerritoryId": 961,
|
||||||
"InteractionType": "Interact"
|
"InteractionType": "Interact",
|
||||||
|
"DialogueChoices": [
|
||||||
|
{
|
||||||
|
"Type": "YesNo",
|
||||||
|
"Prompt": "TEXT_AKTKME115_04433_Q2_000_062",
|
||||||
|
"Yes": true
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
@ -29,7 +29,14 @@
|
|||||||
"Z": -653.13196
|
"Z": -653.13196
|
||||||
},
|
},
|
||||||
"TerritoryId": 961,
|
"TerritoryId": 961,
|
||||||
"InteractionType": "Interact"
|
"InteractionType": "Interact",
|
||||||
|
"DialogueChoices": [
|
||||||
|
{
|
||||||
|
"Type": "YesNo",
|
||||||
|
"Prompt": "TEXT_AKTKME116_04434_Q1_000_021",
|
||||||
|
"Yes": true
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
@ -30,7 +30,14 @@
|
|||||||
},
|
},
|
||||||
"TerritoryId": 961,
|
"TerritoryId": 961,
|
||||||
"InteractionType": "Interact",
|
"InteractionType": "Interact",
|
||||||
"Fly": true
|
"Fly": true,
|
||||||
|
"DialogueChoices": [
|
||||||
|
{
|
||||||
|
"Type": "YesNo",
|
||||||
|
"Prompt": "TEXT_AKTKME120_04438_Q1_000_008",
|
||||||
|
"Yes": true
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
@ -45,7 +45,14 @@
|
|||||||
"Z": -393.36237
|
"Z": -393.36237
|
||||||
},
|
},
|
||||||
"TerritoryId": 956,
|
"TerritoryId": 956,
|
||||||
"InteractionType": "Interact"
|
"InteractionType": "Interact",
|
||||||
|
"DialogueChoices": [
|
||||||
|
{
|
||||||
|
"Type": "YesNo",
|
||||||
|
"Prompt": "TEXT_AKTKMF103_04441_Q1_000_096",
|
||||||
|
"Yes": true
|
||||||
|
}
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"DataId": 1039711,
|
"DataId": 1039711,
|
||||||
@ -85,7 +92,14 @@
|
|||||||
"Z": 302.11328
|
"Z": 302.11328
|
||||||
},
|
},
|
||||||
"TerritoryId": 956,
|
"TerritoryId": 956,
|
||||||
"InteractionType": "Interact"
|
"InteractionType": "Interact",
|
||||||
|
"DialogueChoices": [
|
||||||
|
{
|
||||||
|
"Type": "YesNo",
|
||||||
|
"Prompt": "TEXT_AKTKMF103_04441_Q1_000_181",
|
||||||
|
"Yes": true
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
@ -65,6 +65,14 @@
|
|||||||
},
|
},
|
||||||
"TerritoryId": 956,
|
"TerritoryId": 956,
|
||||||
"InteractionType": "Interact",
|
"InteractionType": "Interact",
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
64
|
||||||
|
],
|
||||||
"$.0": "[1] Navmesh navigates here first, even if you feed it [2]",
|
"$.0": "[1] Navmesh navigates here first, even if you feed it [2]",
|
||||||
"$.1": "QuestVariables if done first: 1 0 0 0 0 64"
|
"$.1": "QuestVariables if done first: 1 0 0 0 0 64"
|
||||||
},
|
},
|
||||||
@ -77,6 +85,14 @@
|
|||||||
},
|
},
|
||||||
"TerritoryId": 956,
|
"TerritoryId": 956,
|
||||||
"InteractionType": "Interact",
|
"InteractionType": "Interact",
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
128
|
||||||
|
],
|
||||||
"$.0": "[2]",
|
"$.0": "[2]",
|
||||||
"$.1": "QuestVariables after: 2 0 0 0 0 192"
|
"$.1": "QuestVariables after: 2 0 0 0 0 192"
|
||||||
},
|
},
|
||||||
@ -88,7 +104,15 @@
|
|||||||
"Z": -14.450317
|
"Z": -14.450317
|
||||||
},
|
},
|
||||||
"TerritoryId": 956,
|
"TerritoryId": 956,
|
||||||
"InteractionType": "Interact"
|
"InteractionType": "Interact",
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
32
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
@ -110,7 +110,11 @@
|
|||||||
"Z": 298.72583
|
"Z": 298.72583
|
||||||
},
|
},
|
||||||
"TerritoryId": 956,
|
"TerritoryId": 956,
|
||||||
"InteractionType": "Interact"
|
"InteractionType": "Interact",
|
||||||
|
"TargetTerritoryId": 956,
|
||||||
|
"SkipIf": [
|
||||||
|
"Never"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"DataId": 1040397,
|
"DataId": 1040397,
|
||||||
|
@ -60,7 +60,14 @@
|
|||||||
},
|
},
|
||||||
"StopDistance": 0.25,
|
"StopDistance": 0.25,
|
||||||
"TerritoryId": 956,
|
"TerritoryId": 956,
|
||||||
"InteractionType": "Interact"
|
"InteractionType": "Interact",
|
||||||
|
"DialogueChoices": [
|
||||||
|
{
|
||||||
|
"Type": "List",
|
||||||
|
"Prompt": "TEXT_AKTKMF106_04444_Q3_000_125",
|
||||||
|
"Answer": "TEXT_AKTKMF106_04444_A3_000_126"
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@ -138,7 +145,14 @@
|
|||||||
"Z": 299.8855
|
"Z": 299.8855
|
||||||
},
|
},
|
||||||
"TerritoryId": 956,
|
"TerritoryId": 956,
|
||||||
"InteractionType": "Interact"
|
"InteractionType": "Interact",
|
||||||
|
"DialogueChoices": [
|
||||||
|
{
|
||||||
|
"Type": "List",
|
||||||
|
"Prompt": "TEXT_AKTKMF106_04444_Q4_000_272",
|
||||||
|
"Answer": "TEXT_AKTKMF106_04444_A4_000_273"
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
@ -72,6 +72,14 @@
|
|||||||
"TerritoryId": 956,
|
"TerritoryId": 956,
|
||||||
"InteractionType": "Interact",
|
"InteractionType": "Interact",
|
||||||
"Comment": "Distracted Researcher",
|
"Comment": "Distracted Researcher",
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
2,
|
||||||
|
null
|
||||||
|
],
|
||||||
"$.0": "[1]",
|
"$.0": "[1]",
|
||||||
"$.1": "QuestVariables if done first: 1 0 0 0 2 0"
|
"$.1": "QuestVariables if done first: 1 0 0 0 2 0"
|
||||||
},
|
},
|
||||||
@ -85,6 +93,14 @@
|
|||||||
"TerritoryId": 956,
|
"TerritoryId": 956,
|
||||||
"InteractionType": "Interact",
|
"InteractionType": "Interact",
|
||||||
"Comment": "Hyperventilating Engineer",
|
"Comment": "Hyperventilating Engineer",
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
128,
|
||||||
|
null
|
||||||
|
],
|
||||||
"$.0": "[2]",
|
"$.0": "[2]",
|
||||||
"$.1": "QuestVariables if done after [1]: 2 0 0 0 130 0"
|
"$.1": "QuestVariables if done after [1]: 2 0 0 0 130 0"
|
||||||
},
|
},
|
||||||
@ -98,6 +114,14 @@
|
|||||||
"TerritoryId": 956,
|
"TerritoryId": 956,
|
||||||
"InteractionType": "Interact",
|
"InteractionType": "Interact",
|
||||||
"Comment": "Harried Aetherologist",
|
"Comment": "Harried Aetherologist",
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
8,
|
||||||
|
null
|
||||||
|
],
|
||||||
"$.0": "[3]",
|
"$.0": "[3]",
|
||||||
"$.1": "QuestVariables if done after [2]: 3 0 0 0 138 0"
|
"$.1": "QuestVariables if done after [2]: 3 0 0 0 138 0"
|
||||||
},
|
},
|
||||||
@ -111,6 +135,15 @@
|
|||||||
"TerritoryId": 956,
|
"TerritoryId": 956,
|
||||||
"InteractionType": "Interact",
|
"InteractionType": "Interact",
|
||||||
"Comment": "Grimacing Naturalist",
|
"Comment": "Grimacing Naturalist",
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
4,
|
||||||
|
null
|
||||||
|
],
|
||||||
|
"Mount": true,
|
||||||
"$.0": "[4]",
|
"$.0": "[4]",
|
||||||
"$.1": "QuestVariables if done after [3]: 4 0 0 0 142 0"
|
"$.1": "QuestVariables if done after [3]: 4 0 0 0 142 0"
|
||||||
},
|
},
|
||||||
@ -124,6 +157,14 @@
|
|||||||
"TerritoryId": 956,
|
"TerritoryId": 956,
|
||||||
"InteractionType": "Interact",
|
"InteractionType": "Interact",
|
||||||
"Comment": "Ponderous Mathematician",
|
"Comment": "Ponderous Mathematician",
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
64,
|
||||||
|
null
|
||||||
|
],
|
||||||
"$.0": "[5]",
|
"$.0": "[5]",
|
||||||
"$.1": "QuestVariables if done after [4]: 5 0 0 0 206 0"
|
"$.1": "QuestVariables if done after [4]: 5 0 0 0 206 0"
|
||||||
},
|
},
|
||||||
@ -137,6 +178,14 @@
|
|||||||
"TerritoryId": 956,
|
"TerritoryId": 956,
|
||||||
"InteractionType": "Interact",
|
"InteractionType": "Interact",
|
||||||
"Comment": "Despondent Engineer",
|
"Comment": "Despondent Engineer",
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
32,
|
||||||
|
null
|
||||||
|
],
|
||||||
"Mount": true,
|
"Mount": true,
|
||||||
"$.0": "[6]",
|
"$.0": "[6]",
|
||||||
"$.1": "QuestVariables if done after [5]: 6 0 0 0 238 0"
|
"$.1": "QuestVariables if done after [5]: 6 0 0 0 238 0"
|
||||||
@ -151,6 +200,14 @@
|
|||||||
"TerritoryId": 956,
|
"TerritoryId": 956,
|
||||||
"InteractionType": "Interact",
|
"InteractionType": "Interact",
|
||||||
"Comment": "Skeptical Researcher",
|
"Comment": "Skeptical Researcher",
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
1,
|
||||||
|
null
|
||||||
|
],
|
||||||
"Mount": true,
|
"Mount": true,
|
||||||
"$.0": "[7]",
|
"$.0": "[7]",
|
||||||
"$.1": "QuestVariables if done after [6]: 7 0 0 0 239 0"
|
"$.1": "QuestVariables if done after [6]: 7 0 0 0 239 0"
|
||||||
@ -165,6 +222,14 @@
|
|||||||
"TerritoryId": 956,
|
"TerritoryId": 956,
|
||||||
"InteractionType": "Interact",
|
"InteractionType": "Interact",
|
||||||
"Comment": "Anxious Engineer",
|
"Comment": "Anxious Engineer",
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
16,
|
||||||
|
null
|
||||||
|
],
|
||||||
"$.0": "[8]",
|
"$.0": "[8]",
|
||||||
"$.2": "QuestVariables if done first: 1 0 0 0 16 0"
|
"$.2": "QuestVariables if done first: 1 0 0 0 16 0"
|
||||||
}
|
}
|
||||||
|
@ -39,7 +39,14 @@
|
|||||||
"Z": -81.28485
|
"Z": -81.28485
|
||||||
},
|
},
|
||||||
"TerritoryId": 956,
|
"TerritoryId": 956,
|
||||||
"InteractionType": "Interact"
|
"InteractionType": "Interact",
|
||||||
|
"DialogueChoices": [
|
||||||
|
{
|
||||||
|
"Type": "YesNo",
|
||||||
|
"Prompt": "TEXT_AKTKMF110_04448_Q1_000_031",
|
||||||
|
"Yes": true
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@ -85,7 +92,14 @@
|
|||||||
"Z": 302.17432
|
"Z": 302.17432
|
||||||
},
|
},
|
||||||
"TerritoryId": 956,
|
"TerritoryId": 956,
|
||||||
"InteractionType": "Interact"
|
"InteractionType": "Interact",
|
||||||
|
"DialogueChoices": [
|
||||||
|
{
|
||||||
|
"Type": "YesNo",
|
||||||
|
"Prompt": "TEXT_AKTKMF110_04448_Q2_000_111",
|
||||||
|
"Yes": true
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
@ -647,7 +647,17 @@
|
|||||||
"if": {
|
"if": {
|
||||||
"properties": {
|
"properties": {
|
||||||
"InteractionType": {
|
"InteractionType": {
|
||||||
"const": "Interact"
|
"anyOf": [
|
||||||
|
{
|
||||||
|
"const": "Interact"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"const": "SinglePlayerDuty"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"const": "WaitForManualProgress"
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -662,14 +672,19 @@
|
|||||||
"type": "string",
|
"type": "string",
|
||||||
"enum": [
|
"enum": [
|
||||||
"YesNo",
|
"YesNo",
|
||||||
"List"
|
"List",
|
||||||
|
"ContentTalkYesNo",
|
||||||
|
"ContentTalkList"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"ExcelSheet": {
|
"ExcelSheet": {
|
||||||
"type": "string"
|
"type": "string"
|
||||||
},
|
},
|
||||||
"Prompt": {
|
"Prompt": {
|
||||||
"type": "string"
|
"type": [
|
||||||
|
"string",
|
||||||
|
"null"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"required": [
|
"required": [
|
||||||
@ -681,7 +696,14 @@
|
|||||||
"if": {
|
"if": {
|
||||||
"properties": {
|
"properties": {
|
||||||
"Type": {
|
"Type": {
|
||||||
"const": "YesNo"
|
"anyOf": [
|
||||||
|
{
|
||||||
|
"const": "YesNo"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"const": "ContentTalkYesNo"
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -701,7 +723,14 @@
|
|||||||
"if": {
|
"if": {
|
||||||
"properties": {
|
"properties": {
|
||||||
"Type": {
|
"Type": {
|
||||||
"const": "List"
|
"anyOf": [
|
||||||
|
{
|
||||||
|
"const": "List"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"const": "ContentTalkList"
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -1,4 +1,6 @@
|
|||||||
using System;
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Globalization;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using Dalamud.Game.Addon.Lifecycle;
|
using Dalamud.Game.Addon.Lifecycle;
|
||||||
using Dalamud.Game.Addon.Lifecycle.AddonArgTypes;
|
using Dalamud.Game.Addon.Lifecycle.AddonArgTypes;
|
||||||
@ -19,110 +21,216 @@ internal sealed class GameUiController : IDisposable
|
|||||||
private readonly IDataManager _dataManager;
|
private readonly IDataManager _dataManager;
|
||||||
private readonly GameFunctions _gameFunctions;
|
private readonly GameFunctions _gameFunctions;
|
||||||
private readonly QuestController _questController;
|
private readonly QuestController _questController;
|
||||||
|
private readonly IGameGui _gameGui;
|
||||||
private readonly IPluginLog _pluginLog;
|
private readonly IPluginLog _pluginLog;
|
||||||
|
|
||||||
public GameUiController(IClientState clientState, IAddonLifecycle addonLifecycle, IDataManager dataManager,
|
public GameUiController(IClientState clientState, IAddonLifecycle addonLifecycle, IDataManager dataManager,
|
||||||
GameFunctions gameFunctions, QuestController questController, IPluginLog pluginLog)
|
GameFunctions gameFunctions, QuestController questController, IGameGui gameGui, IPluginLog pluginLog)
|
||||||
{
|
{
|
||||||
_clientState = clientState;
|
_clientState = clientState;
|
||||||
_addonLifecycle = addonLifecycle;
|
_addonLifecycle = addonLifecycle;
|
||||||
_dataManager = dataManager;
|
_dataManager = dataManager;
|
||||||
_gameFunctions = gameFunctions;
|
_gameFunctions = gameFunctions;
|
||||||
_questController = questController;
|
_questController = questController;
|
||||||
|
_gameGui = gameGui;
|
||||||
_pluginLog = pluginLog;
|
_pluginLog = pluginLog;
|
||||||
|
|
||||||
_addonLifecycle.RegisterListener(AddonEvent.PostSetup, "SelectString", SelectStringPostSetup);
|
_addonLifecycle.RegisterListener(AddonEvent.PostSetup, "SelectString", SelectStringPostSetup);
|
||||||
_addonLifecycle.RegisterListener(AddonEvent.PostSetup, "CutSceneSelectString", CutsceneSelectStringPostSetup);
|
_addonLifecycle.RegisterListener(AddonEvent.PostSetup, "CutSceneSelectString", CutsceneSelectStringPostSetup);
|
||||||
|
_addonLifecycle.RegisterListener(AddonEvent.PostSetup, "SelectIconString", SelectIconStringPostSetup);
|
||||||
_addonLifecycle.RegisterListener(AddonEvent.PostSetup, "SelectYesno", SelectYesnoPostSetup);
|
_addonLifecycle.RegisterListener(AddonEvent.PostSetup, "SelectYesno", SelectYesnoPostSetup);
|
||||||
_addonLifecycle.RegisterListener(AddonEvent.PostSetup, "Credit", CreditPostSetup);
|
_addonLifecycle.RegisterListener(AddonEvent.PostSetup, "Credit", CreditPostSetup);
|
||||||
_addonLifecycle.RegisterListener(AddonEvent.PostSetup, "AkatsukiNote", UnendingCodexPostSetup);
|
_addonLifecycle.RegisterListener(AddonEvent.PostSetup, "AkatsukiNote", UnendingCodexPostSetup);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
internal unsafe void HandleCurrentDialogueChoices()
|
||||||
|
{
|
||||||
|
if (_gameGui.TryGetAddonByName("SelectString", out AddonSelectString* addonSelectString))
|
||||||
|
{
|
||||||
|
_pluginLog.Information("SelectString window is open");
|
||||||
|
SelectStringPostSetup(addonSelectString);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (_gameGui.TryGetAddonByName("CutSceneSelectString",
|
||||||
|
out AddonCutSceneSelectString* addonCutSceneSelectString))
|
||||||
|
{
|
||||||
|
_pluginLog.Information("CutSceneSelectString window is open");
|
||||||
|
CutsceneSelectStringPostSetup(addonCutSceneSelectString);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (_gameGui.TryGetAddonByName("SelectIconString", out AddonSelectIconString* addonSelectIconString))
|
||||||
|
{
|
||||||
|
_pluginLog.Information("SelectIconString window is open");
|
||||||
|
SelectIconStringPostSetup(addonSelectIconString);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (_gameGui.TryGetAddonByName("SelectYesno", out AddonSelectYesno* addonSelectYesno))
|
||||||
|
{
|
||||||
|
_pluginLog.Information("SelectYesno window is open");
|
||||||
|
SelectYesnoPostSetup(addonSelectYesno);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private unsafe void SelectStringPostSetup(AddonEvent type, AddonArgs args)
|
private unsafe void SelectStringPostSetup(AddonEvent type, AddonArgs args)
|
||||||
{
|
{
|
||||||
AddonSelectString* addonSelectString = (AddonSelectString*)args.Addon;
|
AddonSelectString* addonSelectString = (AddonSelectString*)args.Addon;
|
||||||
|
SelectStringPostSetup(addonSelectString);
|
||||||
|
}
|
||||||
|
|
||||||
|
private unsafe void SelectStringPostSetup(AddonSelectString* addonSelectString)
|
||||||
|
{
|
||||||
string? actualPrompt = addonSelectString->AtkUnitBase.AtkValues[2].ReadAtkString();
|
string? actualPrompt = addonSelectString->AtkUnitBase.AtkValues[2].ReadAtkString();
|
||||||
if (actualPrompt == null)
|
if (actualPrompt == null)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
var currentQuest = _questController.CurrentQuest;
|
List<string?> answers = new();
|
||||||
if (currentQuest == null)
|
for (ushort i = 7; i < addonSelectString->AtkUnitBase.AtkValuesCount; ++i)
|
||||||
return;
|
answers.Add(addonSelectString->AtkUnitBase.AtkValues[i].ReadAtkString());
|
||||||
|
|
||||||
var quest = currentQuest.Quest;
|
int? answer = HandleListChoice(actualPrompt, answers);
|
||||||
var step = quest.FindSequence(currentQuest.Sequence)?.FindStep(currentQuest.Step);
|
if (answer != null)
|
||||||
if (step == null)
|
|
||||||
return;
|
|
||||||
|
|
||||||
foreach (var dialogueChoice in step.DialogueChoices)
|
|
||||||
{
|
{
|
||||||
if (dialogueChoice.Answer == null)
|
_questController.IncreaseDialogueChoicesSelected();
|
||||||
continue;
|
addonSelectString->AtkUnitBase.FireCallbackInt(answer.Value);
|
||||||
|
|
||||||
string? excelPrompt =
|
|
||||||
_gameFunctions.GetExcelString(quest, dialogueChoice.ExcelSheet, dialogueChoice.Prompt);
|
|
||||||
string? excelAnswer =
|
|
||||||
_gameFunctions.GetExcelString(quest, dialogueChoice.ExcelSheet, dialogueChoice.Answer);
|
|
||||||
if (excelPrompt == null || actualPrompt != excelPrompt)
|
|
||||||
continue;
|
|
||||||
|
|
||||||
for (ushort i = 7; i <= addonSelectString->AtkUnitBase.AtkValuesCount; ++i)
|
|
||||||
{
|
|
||||||
string? actualAnswer = addonSelectString->AtkUnitBase.AtkValues[i].ReadAtkString();
|
|
||||||
if (actualAnswer == null || actualAnswer != excelAnswer)
|
|
||||||
continue;
|
|
||||||
|
|
||||||
_questController.IncreaseDialogueChoicesSelected();
|
|
||||||
addonSelectString->AtkUnitBase.FireCallbackInt(i - 7);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private unsafe void CutsceneSelectStringPostSetup(AddonEvent type, AddonArgs args)
|
private unsafe void CutsceneSelectStringPostSetup(AddonEvent type, AddonArgs args)
|
||||||
{
|
{
|
||||||
AddonCutSceneSelectString* addonCutSceneSelectString = (AddonCutSceneSelectString*)args.Addon;
|
AddonCutSceneSelectString* addonCutSceneSelectString = (AddonCutSceneSelectString*)args.Addon;
|
||||||
|
CutsceneSelectStringPostSetup(addonCutSceneSelectString);
|
||||||
|
}
|
||||||
|
|
||||||
|
private unsafe void CutsceneSelectStringPostSetup(AddonCutSceneSelectString* addonCutSceneSelectString)
|
||||||
|
{
|
||||||
string? actualPrompt = addonCutSceneSelectString->AtkUnitBase.AtkValues[2].ReadAtkString();
|
string? actualPrompt = addonCutSceneSelectString->AtkUnitBase.AtkValues[2].ReadAtkString();
|
||||||
if (actualPrompt == null)
|
if (actualPrompt == null)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
List<string?> answers = new();
|
||||||
|
for (int i = 5; i < addonCutSceneSelectString->AtkUnitBase.AtkValuesCount; ++i)
|
||||||
|
answers.Add(addonCutSceneSelectString->AtkUnitBase.AtkValues[i].ReadAtkString());
|
||||||
|
|
||||||
|
int? answer = HandleListChoice(actualPrompt, answers);
|
||||||
|
if (answer != null)
|
||||||
|
{
|
||||||
|
_questController.IncreaseDialogueChoicesSelected();
|
||||||
|
addonCutSceneSelectString->AtkUnitBase.FireCallbackInt(answer.Value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private unsafe void SelectIconStringPostSetup(AddonEvent type, AddonArgs args)
|
||||||
|
{
|
||||||
|
AddonSelectIconString* addonSelectIconString = (AddonSelectIconString*)args.Addon;
|
||||||
|
SelectIconStringPostSetup(addonSelectIconString);
|
||||||
|
}
|
||||||
|
|
||||||
|
private unsafe void SelectIconStringPostSetup(AddonSelectIconString* addonSelectIconString)
|
||||||
|
{
|
||||||
|
string? actualPrompt = addonSelectIconString->AtkUnitBase.AtkValues[3].ReadAtkString();
|
||||||
|
if (string.IsNullOrEmpty(actualPrompt))
|
||||||
|
actualPrompt = null;
|
||||||
|
|
||||||
|
List<string?> answers = new();
|
||||||
|
for (ushort i = 0; i < addonSelectIconString->AtkUnitBase.AtkValues[5].Int; i++)
|
||||||
|
answers.Add(addonSelectIconString->AtkUnitBase.AtkValues[i * 3 + 7].ReadAtkString());
|
||||||
|
|
||||||
|
int? answer = HandleListChoice(actualPrompt, answers);
|
||||||
|
if (answer != null)
|
||||||
|
{
|
||||||
|
_questController.IncreaseDialogueChoicesSelected();
|
||||||
|
addonSelectIconString->AtkUnitBase.FireCallbackInt(answer.Value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private int? HandleListChoice(string? actualPrompt, List<string?> answers)
|
||||||
|
{
|
||||||
var currentQuest = _questController.CurrentQuest;
|
var currentQuest = _questController.CurrentQuest;
|
||||||
if (currentQuest == null)
|
if (currentQuest == null)
|
||||||
return;
|
{
|
||||||
|
_pluginLog.Information("Ignoring list choice, no active quest");
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
var quest = currentQuest.Quest;
|
var quest = currentQuest.Quest;
|
||||||
var step = quest.FindSequence(currentQuest.Sequence)?.FindStep(currentQuest.Step);
|
var step = quest.FindSequence(currentQuest.Sequence)?.FindStep(currentQuest.Step);
|
||||||
if (step == null)
|
if (step == null)
|
||||||
return;
|
{
|
||||||
|
_pluginLog.Information("Ignoring list choice, no active step");
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
foreach (DialogueChoice dialogueChoice in step.DialogueChoices)
|
foreach (var dialogueChoice in step.DialogueChoices)
|
||||||
{
|
{
|
||||||
if (dialogueChoice.Answer == null)
|
if (dialogueChoice.Answer == null)
|
||||||
continue;
|
|
||||||
|
|
||||||
string? excelPrompt =
|
|
||||||
_gameFunctions.GetExcelString(quest, dialogueChoice.ExcelSheet, dialogueChoice.Prompt);
|
|
||||||
string? excelAnswer =
|
|
||||||
_gameFunctions.GetExcelString(quest, dialogueChoice.ExcelSheet, dialogueChoice.Answer);
|
|
||||||
if (excelPrompt == null || actualPrompt != excelPrompt)
|
|
||||||
continue;
|
|
||||||
|
|
||||||
for (int i = 5; i < addonCutSceneSelectString->AtkUnitBase.AtkValuesCount; ++i)
|
|
||||||
{
|
{
|
||||||
string? actualAnswer = addonCutSceneSelectString->AtkUnitBase.AtkValues[i].ReadAtkString();
|
_pluginLog.Information("Ignoring entry in DialogueChoices, no answer");
|
||||||
if (actualAnswer == null || actualAnswer != excelAnswer)
|
continue;
|
||||||
continue;
|
}
|
||||||
|
|
||||||
_questController.IncreaseDialogueChoicesSelected();
|
string? excelPrompt = null, excelAnswer;
|
||||||
addonCutSceneSelectString->AtkUnitBase.FireCallbackInt(i - 5);
|
switch (dialogueChoice.Type)
|
||||||
return;
|
{
|
||||||
|
case EDialogChoiceType.ContentTalkList:
|
||||||
|
if (dialogueChoice.Prompt != null)
|
||||||
|
{
|
||||||
|
excelPrompt =
|
||||||
|
_gameFunctions.GetContentTalk(uint.Parse(dialogueChoice.Prompt,
|
||||||
|
CultureInfo.InvariantCulture));
|
||||||
|
}
|
||||||
|
|
||||||
|
excelAnswer =
|
||||||
|
_gameFunctions.GetContentTalk(uint.Parse(dialogueChoice.Answer, CultureInfo.InvariantCulture));
|
||||||
|
break;
|
||||||
|
case EDialogChoiceType.List:
|
||||||
|
if (dialogueChoice.Prompt != null)
|
||||||
|
{
|
||||||
|
excelPrompt =
|
||||||
|
_gameFunctions.GetDialogueText(quest, dialogueChoice.ExcelSheet, dialogueChoice.Prompt);
|
||||||
|
}
|
||||||
|
|
||||||
|
excelAnswer =
|
||||||
|
_gameFunctions.GetDialogueText(quest, dialogueChoice.ExcelSheet, dialogueChoice.Answer);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (actualPrompt == null && !string.IsNullOrEmpty(excelPrompt))
|
||||||
|
{
|
||||||
|
_pluginLog.Information($"Unexpected excelPrompt: {excelPrompt}");
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (actualPrompt != null && (excelPrompt == null || !GameStringEquals(actualPrompt, excelPrompt)))
|
||||||
|
{
|
||||||
|
_pluginLog.Information($"Unexpected excelPrompt: {excelPrompt}, actualPrompt: {actualPrompt}");
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int i = 0; i < answers.Count; ++i)
|
||||||
|
{
|
||||||
|
if (GameStringEquals(answers[i], excelAnswer))
|
||||||
|
{
|
||||||
|
_pluginLog.Information($"Returning {i}: '{answers[i]}' for '{actualPrompt}'");
|
||||||
|
return i;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_pluginLog.Information($"No matching answer found for {actualPrompt}.");
|
||||||
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
private unsafe void SelectYesnoPostSetup(AddonEvent type, AddonArgs args)
|
private unsafe void SelectYesnoPostSetup(AddonEvent type, AddonArgs args)
|
||||||
{
|
{
|
||||||
AddonSelectYesno* addonSelectYesno = (AddonSelectYesno*)args.Addon;
|
AddonSelectYesno* addonSelectYesno = (AddonSelectYesno*)args.Addon;
|
||||||
|
SelectYesnoPostSetup(addonSelectYesno);
|
||||||
|
}
|
||||||
|
|
||||||
|
private unsafe void SelectYesnoPostSetup(AddonSelectYesno* addonSelectYesno)
|
||||||
|
{
|
||||||
string? actualPrompt = addonSelectYesno->AtkUnitBase.AtkValues[0].ReadAtkString();
|
string? actualPrompt = addonSelectYesno->AtkUnitBase.AtkValues[0].ReadAtkString();
|
||||||
if (actualPrompt == null)
|
if (actualPrompt == null)
|
||||||
return;
|
return;
|
||||||
@ -147,9 +255,22 @@ internal sealed class GameUiController : IDisposable
|
|||||||
_pluginLog.Verbose($"DefaultYesNo: Choice count: {step.DialogueChoices.Count}");
|
_pluginLog.Verbose($"DefaultYesNo: Choice count: {step.DialogueChoices.Count}");
|
||||||
foreach (var dialogueChoice in step.DialogueChoices)
|
foreach (var dialogueChoice in step.DialogueChoices)
|
||||||
{
|
{
|
||||||
string? excelPrompt =
|
string? excelPrompt;
|
||||||
_gameFunctions.GetExcelString(quest, dialogueChoice.ExcelSheet, dialogueChoice.Prompt);
|
switch (dialogueChoice.Type)
|
||||||
if (excelPrompt == null || actualPrompt != excelPrompt)
|
{
|
||||||
|
case EDialogChoiceType.ContentTalkYesNo:
|
||||||
|
excelPrompt =
|
||||||
|
_gameFunctions.GetContentTalk(uint.Parse(dialogueChoice.Prompt, CultureInfo.InvariantCulture));
|
||||||
|
break;
|
||||||
|
case EDialogChoiceType.YesNo:
|
||||||
|
excelPrompt =
|
||||||
|
_gameFunctions.GetDialogueText(quest, dialogueChoice.ExcelSheet, dialogueChoice.Prompt);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (excelPrompt == null || !GameStringEquals(actualPrompt, excelPrompt))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
addonSelectYesno->AtkUnitBase.FireCallbackInt(dialogueChoice.Yes ? 0 : 1);
|
addonSelectYesno->AtkUnitBase.FireCallbackInt(dialogueChoice.Yes ? 0 : 1);
|
||||||
@ -174,7 +295,7 @@ internal sealed class GameUiController : IDisposable
|
|||||||
if (step != null)
|
if (step != null)
|
||||||
_pluginLog.Verbose($"Current step: {step.TerritoryId}, {step.TargetTerritoryId}");
|
_pluginLog.Verbose($"Current step: {step.TerritoryId}, {step.TargetTerritoryId}");
|
||||||
|
|
||||||
if (step == null || step.TargetTerritoryId == null || step.TerritoryId != _clientState.TerritoryType)
|
if (step == null || step.TargetTerritoryId == null)
|
||||||
{
|
{
|
||||||
_pluginLog.Verbose("TravelYesNo: Checking previous step...");
|
_pluginLog.Verbose("TravelYesNo: Checking previous step...");
|
||||||
step = sequence.FindStep(currentQuest.Step == 255 ? (sequence.Steps.Count - 1) : (currentQuest.Step - 1));
|
step = sequence.FindStep(currentQuest.Step == 255 ? (sequence.Steps.Count - 1) : (currentQuest.Step - 1));
|
||||||
@ -184,7 +305,7 @@ internal sealed class GameUiController : IDisposable
|
|||||||
_pluginLog.Verbose($"Previous step: {step.TerritoryId}, {step.TargetTerritoryId}");
|
_pluginLog.Verbose($"Previous step: {step.TerritoryId}, {step.TargetTerritoryId}");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (step == null || step.TargetTerritoryId == null || step.TerritoryId != _clientState.TerritoryType)
|
if (step == null || step.TargetTerritoryId == null)
|
||||||
{
|
{
|
||||||
_pluginLog.Verbose("TravelYesNo: Not found");
|
_pluginLog.Verbose("TravelYesNo: Not found");
|
||||||
return false;
|
return false;
|
||||||
@ -196,7 +317,7 @@ internal sealed class GameUiController : IDisposable
|
|||||||
foreach (var entry in warps)
|
foreach (var entry in warps)
|
||||||
{
|
{
|
||||||
string? excelPrompt = entry.Question?.ToString();
|
string? excelPrompt = entry.Question?.ToString();
|
||||||
if (excelPrompt == null || excelPrompt != actualPrompt)
|
if (excelPrompt == null || !GameStringEquals(excelPrompt, actualPrompt))
|
||||||
{
|
{
|
||||||
_pluginLog.Information($"Ignoring prompt '{excelPrompt}'");
|
_pluginLog.Information($"Ignoring prompt '{excelPrompt}'");
|
||||||
continue;
|
continue;
|
||||||
@ -229,11 +350,26 @@ internal sealed class GameUiController : IDisposable
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Ensures characters like '-' are handled equally in both strings.
|
||||||
|
/// </summary>
|
||||||
|
private bool GameStringEquals(string? a, string? b)
|
||||||
|
{
|
||||||
|
if (a == null)
|
||||||
|
return b == null;
|
||||||
|
|
||||||
|
if (b == null)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
return a.ReplaceLineEndings().Replace('\u2013', '-') == b.ReplaceLineEndings().Replace('\u2013', '-');
|
||||||
|
}
|
||||||
|
|
||||||
public void Dispose()
|
public void Dispose()
|
||||||
{
|
{
|
||||||
_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, "SelectYesno", SelectYesnoPostSetup);
|
_addonLifecycle.UnregisterListener(AddonEvent.PostSetup, "SelectYesno", SelectYesnoPostSetup);
|
||||||
|
_addonLifecycle.UnregisterListener(AddonEvent.PostSetup, "SelectIconString", SelectIconStringPostSetup);
|
||||||
_addonLifecycle.UnregisterListener(AddonEvent.PostSetup, "CutSceneSelectString", CutsceneSelectStringPostSetup);
|
_addonLifecycle.UnregisterListener(AddonEvent.PostSetup, "CutSceneSelectString", CutsceneSelectStringPostSetup);
|
||||||
_addonLifecycle.UnregisterListener(AddonEvent.PostSetup, "SelectString", SelectStringPostSetup);
|
_addonLifecycle.UnregisterListener(AddonEvent.PostSetup, "SelectString", SelectStringPostSetup);
|
||||||
}
|
}
|
||||||
|
@ -88,7 +88,7 @@ internal sealed class MovementController : IDisposable
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
_navmeshIpc.MoveTo(navPoints);
|
_navmeshIpc.MoveTo(navPoints, Destination.IsFlying);
|
||||||
ResetPathfinding();
|
ResetPathfinding();
|
||||||
}
|
}
|
||||||
else if (_pathfindTask.IsCompleted)
|
else if (_pathfindTask.IsCompleted)
|
||||||
@ -166,6 +166,7 @@ internal sealed class MovementController : IDisposable
|
|||||||
|
|
||||||
public void NavigateTo(EMovementType type, uint? dataId, Vector3 to, bool fly, bool sprint, float? stopDistance = null)
|
public void NavigateTo(EMovementType type, uint? dataId, Vector3 to, bool fly, bool sprint, float? stopDistance = null)
|
||||||
{
|
{
|
||||||
|
fly |= _condition[ConditionFlag.Diving];
|
||||||
PrepareNavigation(type, dataId, to, fly, sprint, stopDistance);
|
PrepareNavigation(type, dataId, to, fly, sprint, stopDistance);
|
||||||
_pluginLog.Information($"Pathfinding to {Destination}");
|
_pluginLog.Information($"Pathfinding to {Destination}");
|
||||||
|
|
||||||
@ -177,10 +178,11 @@ internal sealed class MovementController : IDisposable
|
|||||||
|
|
||||||
public void NavigateTo(EMovementType type, uint? dataId, List<Vector3> to, bool fly, bool sprint, float? stopDistance)
|
public void NavigateTo(EMovementType type, uint? dataId, List<Vector3> to, bool fly, bool sprint, float? stopDistance)
|
||||||
{
|
{
|
||||||
|
fly |= _condition[ConditionFlag.Diving];
|
||||||
PrepareNavigation(type, dataId, to.Last(), fly, sprint, stopDistance);
|
PrepareNavigation(type, dataId, to.Last(), fly, sprint, stopDistance);
|
||||||
|
|
||||||
_pluginLog.Information($"Moving to {Destination}");
|
_pluginLog.Information($"Moving to {Destination}");
|
||||||
_navmeshIpc.MoveTo(to);
|
_navmeshIpc.MoveTo(to, fly);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void ResetPathfinding()
|
public void ResetPathfinding()
|
||||||
|
@ -513,11 +513,6 @@ internal sealed class QuestController
|
|||||||
// navmesh won't move close enough
|
// navmesh won't move close enough
|
||||||
if (actualDistance > distance)
|
if (actualDistance > distance)
|
||||||
{
|
{
|
||||||
// picking up Mehvan's baby, not sure if navmesh ignores y distance but it thinks you're close
|
|
||||||
// enough
|
|
||||||
if (step.DataId == 2012208)
|
|
||||||
distance /= 2;
|
|
||||||
|
|
||||||
_movementController.NavigateTo(EMovementType.Quest, step.DataId, [step.Position.Value],
|
_movementController.NavigateTo(EMovementType.Quest, step.DataId, [step.Position.Value],
|
||||||
fly: step.Fly == true && _gameFunctions.IsFlyingUnlocked(_clientState.TerritoryType),
|
fly: step.Fly == true && _gameFunctions.IsFlyingUnlocked(_clientState.TerritoryType),
|
||||||
sprint: step.Sprint != false,
|
sprint: step.Sprint != false,
|
||||||
@ -670,7 +665,7 @@ internal sealed class QuestController
|
|||||||
|
|
||||||
if (step.ChatMessage != null)
|
if (step.ChatMessage != null)
|
||||||
{
|
{
|
||||||
string? excelString = _gameFunctions.GetExcelString(CurrentQuest.Quest, step.ChatMessage.ExcelSheet,
|
string? excelString = _gameFunctions.GetDialogueText(CurrentQuest.Quest, step.ChatMessage.ExcelSheet,
|
||||||
step.ChatMessage.Key);
|
step.ChatMessage.Key);
|
||||||
if (excelString == null)
|
if (excelString == null)
|
||||||
return;
|
return;
|
||||||
|
4
Questionable/External/NavmeshIpc.cs
vendored
4
Questionable/External/NavmeshIpc.cs
vendored
@ -60,11 +60,11 @@ internal sealed class NavmeshIpc
|
|||||||
return _navPathfind.InvokeFunc(localPlayerPosition, targetPosition, fly, cancellationToken);
|
return _navPathfind.InvokeFunc(localPlayerPosition, targetPosition, fly, cancellationToken);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void MoveTo(List<Vector3> position)
|
public void MoveTo(List<Vector3> position, bool fly)
|
||||||
{
|
{
|
||||||
Stop();
|
Stop();
|
||||||
|
|
||||||
_pathMoveTo.InvokeAction(position, false);
|
_pathMoveTo.InvokeAction(position, fly);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Vector3? GetPointOnFloor(Vector3 position)
|
public Vector3? GetPointOnFloor(Vector3 position)
|
||||||
|
@ -10,6 +10,7 @@ using Dalamud.Game;
|
|||||||
using Dalamud.Game.ClientState.Conditions;
|
using Dalamud.Game.ClientState.Conditions;
|
||||||
using Dalamud.Game.ClientState.Objects;
|
using Dalamud.Game.ClientState.Objects;
|
||||||
using Dalamud.Plugin.Services;
|
using Dalamud.Plugin.Services;
|
||||||
|
using Dalamud.Utility;
|
||||||
using FFXIVClientStructs.FFXIV.Application.Network.WorkDefinitions;
|
using FFXIVClientStructs.FFXIV.Application.Network.WorkDefinitions;
|
||||||
using FFXIVClientStructs.FFXIV.Client.Game;
|
using FFXIVClientStructs.FFXIV.Client.Game;
|
||||||
using FFXIVClientStructs.FFXIV.Client.Game.Control;
|
using FFXIVClientStructs.FFXIV.Client.Game.Control;
|
||||||
@ -474,7 +475,7 @@ internal sealed unsafe class GameFunctions
|
|||||||
_pluginLog.Error($"Could not find content for content finder condition (cf: {contentFinderConditionId})");
|
_pluginLog.Error($"Could not find content for content finder condition (cf: {contentFinderConditionId})");
|
||||||
}
|
}
|
||||||
|
|
||||||
public string? GetExcelString(Quest currentQuest, string? excelSheetName, string key)
|
public string? GetDialogueText(Quest currentQuest, string? excelSheetName, string key)
|
||||||
{
|
{
|
||||||
if (excelSheetName == null)
|
if (excelSheetName == null)
|
||||||
{
|
{
|
||||||
@ -495,6 +496,12 @@ internal sealed unsafe class GameFunctions
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
return excelSheet.FirstOrDefault(x => x.Key == key)?.Value?.ToString();
|
return excelSheet.FirstOrDefault(x => x.Key == key)?.Value?.ToDalamudString().ToString();
|
||||||
|
}
|
||||||
|
|
||||||
|
public string? GetContentTalk(uint rowId)
|
||||||
|
{
|
||||||
|
var questRow = _dataManager.GetExcelSheet<ContentTalk>()!.GetRow(rowId);
|
||||||
|
return questRow?.Text?.ToString();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -8,5 +8,7 @@ public sealed class DialogueChoiceTypeConverter() : EnumConverter<EDialogChoiceT
|
|||||||
{
|
{
|
||||||
{ EDialogChoiceType.YesNo, "YesNo" },
|
{ EDialogChoiceType.YesNo, "YesNo" },
|
||||||
{ EDialogChoiceType.List, "List" },
|
{ EDialogChoiceType.List, "List" },
|
||||||
|
{ EDialogChoiceType.ContentTalkYesNo, "ContentTalkYesNo" },
|
||||||
|
{ EDialogChoiceType.ContentTalkList, "ContentTalkList" },
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -8,7 +8,7 @@ public class DialogueChoice
|
|||||||
[JsonConverter(typeof(DialogueChoiceTypeConverter))]
|
[JsonConverter(typeof(DialogueChoiceTypeConverter))]
|
||||||
public EDialogChoiceType Type { get; set; }
|
public EDialogChoiceType Type { get; set; }
|
||||||
public string? ExcelSheet { get; set; }
|
public string? ExcelSheet { get; set; }
|
||||||
public string Prompt { get; set; } = null!;
|
public string? Prompt { get; set; } = null!;
|
||||||
public bool Yes { get; set; } = true;
|
public bool Yes { get; set; } = true;
|
||||||
public string? Answer { get; set; }
|
public string? Answer { get; set; }
|
||||||
}
|
}
|
||||||
|
@ -4,5 +4,7 @@ public enum EDialogChoiceType
|
|||||||
{
|
{
|
||||||
None,
|
None,
|
||||||
YesNo,
|
YesNo,
|
||||||
List
|
List,
|
||||||
|
ContentTalkYesNo,
|
||||||
|
ContentTalkList,
|
||||||
}
|
}
|
||||||
|
@ -56,14 +56,17 @@ public sealed class QuestionablePlugin : IDalamudPlugin
|
|||||||
_questController = new QuestController(pluginInterface, dataManager, _clientState, _gameFunctions,
|
_questController = new QuestController(pluginInterface, dataManager, _clientState, _gameFunctions,
|
||||||
_movementController, pluginLog, condition, chatGui, framework, gameGui, aetheryteData, lifestreamIpc);
|
_movementController, pluginLog, condition, chatGui, framework, gameGui, aetheryteData, lifestreamIpc);
|
||||||
_gameUiController =
|
_gameUiController =
|
||||||
new GameUiController(clientState, addonLifecycle, dataManager, _gameFunctions, _questController, pluginLog);
|
new GameUiController(clientState, addonLifecycle, dataManager, _gameFunctions, _questController, gameGui,
|
||||||
|
pluginLog);
|
||||||
|
|
||||||
_windowSystem.AddWindow(new DebugWindow(_movementController, _questController, _gameFunctions, clientState,
|
_windowSystem.AddWindow(new DebugWindow(_movementController, _questController, _gameFunctions, clientState,
|
||||||
targetManager));
|
framework, targetManager, _gameUiController));
|
||||||
|
|
||||||
_pluginInterface.UiBuilder.Draw += _windowSystem.Draw;
|
_pluginInterface.UiBuilder.Draw += _windowSystem.Draw;
|
||||||
_framework.Update += FrameworkUpdate;
|
_framework.Update += FrameworkUpdate;
|
||||||
_commandManager.AddHandler("/qst", new CommandInfo(ProcessCommand));
|
_commandManager.AddHandler("/qst", new CommandInfo(ProcessCommand));
|
||||||
|
|
||||||
|
_framework.RunOnTick(() => _gameUiController.HandleCurrentDialogueChoices(), TimeSpan.FromMilliseconds(200));
|
||||||
}
|
}
|
||||||
|
|
||||||
private void FrameworkUpdate(IFramework framework)
|
private void FrameworkUpdate(IFramework framework)
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
using System.Globalization;
|
using System;
|
||||||
|
using System.Globalization;
|
||||||
using System.Numerics;
|
using System.Numerics;
|
||||||
using Dalamud.Game.ClientState.Objects;
|
using Dalamud.Game.ClientState.Objects;
|
||||||
using Dalamud.Interface;
|
using Dalamud.Interface;
|
||||||
@ -21,18 +22,22 @@ internal sealed class DebugWindow : Window
|
|||||||
private readonly QuestController _questController;
|
private readonly QuestController _questController;
|
||||||
private readonly GameFunctions _gameFunctions;
|
private readonly GameFunctions _gameFunctions;
|
||||||
private readonly IClientState _clientState;
|
private readonly IClientState _clientState;
|
||||||
|
private readonly IFramework _framework;
|
||||||
private readonly ITargetManager _targetManager;
|
private readonly ITargetManager _targetManager;
|
||||||
|
private readonly GameUiController _gameUiController;
|
||||||
|
|
||||||
public DebugWindow(MovementController movementController, QuestController questController,
|
public DebugWindow(MovementController movementController, QuestController questController,
|
||||||
GameFunctions gameFunctions, IClientState clientState,
|
GameFunctions gameFunctions, IClientState clientState, IFramework framework,
|
||||||
ITargetManager targetManager)
|
ITargetManager targetManager, GameUiController gameUiController)
|
||||||
: base("Questionable", ImGuiWindowFlags.AlwaysAutoResize)
|
: base("Questionable", ImGuiWindowFlags.AlwaysAutoResize)
|
||||||
{
|
{
|
||||||
_movementController = movementController;
|
_movementController = movementController;
|
||||||
_questController = questController;
|
_questController = questController;
|
||||||
_gameFunctions = gameFunctions;
|
_gameFunctions = gameFunctions;
|
||||||
_clientState = clientState;
|
_clientState = clientState;
|
||||||
|
_framework = framework;
|
||||||
_targetManager = targetManager;
|
_targetManager = targetManager;
|
||||||
|
_gameUiController = gameUiController;
|
||||||
|
|
||||||
IsOpen = true;
|
IsOpen = true;
|
||||||
SizeConstraints = new WindowSizeConstraints
|
SizeConstraints = new WindowSizeConstraints
|
||||||
@ -230,6 +235,10 @@ internal sealed class DebugWindow : Window
|
|||||||
ImGui.EndDisabled();
|
ImGui.EndDisabled();
|
||||||
|
|
||||||
if (ImGui.Button("Reload Data"))
|
if (ImGui.Button("Reload Data"))
|
||||||
|
{
|
||||||
_questController.Reload();
|
_questController.Reload();
|
||||||
|
_framework.RunOnTick(() => _gameUiController.HandleCurrentDialogueChoices(),
|
||||||
|
TimeSpan.FromMilliseconds(200));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user