master #3

Open
cacahuetes wants to merge 653 commits from liza/Questionable:master into cacahuetes-ShB-Healer
28 changed files with 415 additions and 90 deletions
Showing only changes of commit b590390b5c - Show all commits

View File

@ -32,6 +32,10 @@ internal static class DialogueChoiceExtensions
Assignment(nameof(DialogueChoice.Answer), dialogueChoice.Answer, Assignment(nameof(DialogueChoice.Answer), dialogueChoice.Answer,
emptyChoice.Answer) emptyChoice.Answer)
.AsSyntaxNodeOrToken(), .AsSyntaxNodeOrToken(),
Assignment(nameof(DialogueChoice.PromptIsRegularExpression),
dialogueChoice.PromptIsRegularExpression,
emptyChoice.PromptIsRegularExpression)
.AsSyntaxNodeOrToken(),
Assignment(nameof(DialogueChoice.AnswerIsRegularExpression), Assignment(nameof(DialogueChoice.AnswerIsRegularExpression),
dialogueChoice.AnswerIsRegularExpression, dialogueChoice.AnswerIsRegularExpression,
emptyChoice.AnswerIsRegularExpression) emptyChoice.AnswerIsRegularExpression)

View File

@ -62,8 +62,10 @@
}, },
"TerritoryId": 146, "TerritoryId": 146,
"InteractionType": "Combat", "InteractionType": "Combat",
"EnemySpawnType": "OverworldEnemies", "EnemySpawnType": "FateEnemies",
"KillEnemyDataIds": [] "KillEnemyDataIds": [
2390
]
} }
] ]
}, },
@ -106,7 +108,8 @@
"Prompt": "TEXT_CHRHDB101_01204_Q2_000_1", "Prompt": "TEXT_CHRHDB101_01204_Q2_000_1",
"Answer": "TEXT_CHRHDB101_01204_Q2A2_000_2" "Answer": "TEXT_CHRHDB101_01204_Q2A2_000_2"
} }
] ],
"NextQuestId": 1205
} }
] ]
} }

View File

@ -28,8 +28,17 @@
"Y": 4.0131226, "Y": 4.0131226,
"Z": -98.95477 "Z": -98.95477
}, },
"StopDistance": 7,
"TerritoryId": 130, "TerritoryId": 130,
"InteractionType": "Interact" "InteractionType": "Interact",
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
32
]
}, },
{ {
"DataId": 1004331, "DataId": 1004331,
@ -39,7 +48,15 @@
"Z": -133.22656 "Z": -133.22656
}, },
"TerritoryId": 130, "TerritoryId": 130,
"InteractionType": "Interact" "InteractionType": "Interact",
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
128
]
}, },
{ {
"DataId": 1001313, "DataId": 1001313,
@ -49,7 +66,15 @@
"Z": -106.21808 "Z": -106.21808
}, },
"TerritoryId": 130, "TerritoryId": 130,
"InteractionType": "Interact" "InteractionType": "Interact",
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
64
]
} }
] ]
}, },
@ -64,7 +89,8 @@
"Z": -126.51257 "Z": -126.51257
}, },
"TerritoryId": 130, "TerritoryId": 130,
"InteractionType": "CompleteQuest" "InteractionType": "CompleteQuest",
"NextQuestId": 1206
} }
] ]
} }

View File

@ -117,8 +117,10 @@
"Y": 12, "Y": 12,
"Z": 0.99176025 "Z": 0.99176025
}, },
"StopDistance": 4,
"TerritoryId": 130, "TerritoryId": 130,
"InteractionType": "CompleteQuest" "InteractionType": "CompleteQuest",
"NextQuestId": 1207
} }
] ]
} }

View File

@ -18,6 +18,7 @@
"Y": 12, "Y": 12,
"Z": -5.5390625 "Z": -5.5390625
}, },
"StopDistance": 4,
"TerritoryId": 130, "TerritoryId": 130,
"InteractionType": "AcceptQuest" "InteractionType": "AcceptQuest"
} }
@ -54,7 +55,15 @@
"Z": -221.27112 "Z": -221.27112
}, },
"TerritoryId": 145, "TerritoryId": 145,
"InteractionType": "Interact" "InteractionType": "Interact",
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
32
]
}, },
{ {
"DataId": 1003940, "DataId": 1003940,
@ -64,7 +73,15 @@
"Z": -241.07733 "Z": -241.07733
}, },
"TerritoryId": 145, "TerritoryId": 145,
"InteractionType": "Interact" "InteractionType": "Interact",
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
64
]
}, },
{ {
"DataId": 1003939, "DataId": 1003939,
@ -73,8 +90,17 @@
"Y": 4.137387, "Y": 4.137387,
"Z": -240.98578 "Z": -240.98578
}, },
"StopDistance": 4,
"TerritoryId": 145, "TerritoryId": 145,
"InteractionType": "Interact" "InteractionType": "Interact",
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
128
]
} }
] ]
}, },
@ -205,7 +231,15 @@
"Z": 151.87305 "Z": 151.87305
}, },
"TerritoryId": 145, "TerritoryId": 145,
"InteractionType": "Interact" "InteractionType": "Interact",
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
32
]
}, },
{ {
"DataId": 2003005, "DataId": 2003005,
@ -215,7 +249,15 @@
"Z": 166.0028 "Z": 166.0028
}, },
"TerritoryId": 145, "TerritoryId": 145,
"InteractionType": "Interact" "InteractionType": "Interact",
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
64
]
}, },
{ {
"DataId": 2003004, "DataId": 2003004,
@ -225,7 +267,15 @@
"Z": 187.36548 "Z": 187.36548
}, },
"TerritoryId": 145, "TerritoryId": 145,
"InteractionType": "Interact" "InteractionType": "Interact",
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
128
]
} }
] ]
}, },
@ -248,8 +298,16 @@
"Sequence": 255, "Sequence": 255,
"Steps": [ "Steps": [
{ {
"Mount": true, "Position": {
"Fly": true, "X": -535.8004,
"Y": 5.3931885,
"Z": -252.96324
},
"TerritoryId": 145,
"InteractionType": "WalkTo",
"Fly": true
},
{
"DataId": 1005731, "DataId": 1005731,
"Position": { "Position": {
"X": -526.8788, "X": -526.8788,
@ -257,7 +315,8 @@
"Z": -246.50952 "Z": -246.50952
}, },
"TerritoryId": 145, "TerritoryId": 145,
"InteractionType": "CompleteQuest" "InteractionType": "CompleteQuest",
"NextQuestId": 1315
} }
] ]
} }

View File

@ -18,6 +18,7 @@
"Y": 5.4049973, "Y": 5.4049973,
"Z": -249.25616 "Z": -249.25616
}, },
"StopDistance": 4,
"TerritoryId": 145, "TerritoryId": 145,
"InteractionType": "AcceptQuest" "InteractionType": "AcceptQuest"
} }
@ -43,7 +44,12 @@
"Sequence": 2, "Sequence": 2,
"Steps": [ "Steps": [
{ {
"AetheryteShortcut": "Western Thanalan - Horizon", "TerritoryId": 145,
"InteractionType": "UseItem",
"ItemId": 30362,
"TargetTerritoryId": 140
},
{
"Mount": true, "Mount": true,
"DataId": 1008709, "DataId": 1008709,
"Position": { "Position": {
@ -70,7 +76,15 @@
"Z": 12.191956 "Z": 12.191956
}, },
"TerritoryId": 140, "TerritoryId": 140,
"InteractionType": "Interact" "InteractionType": "Interact",
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
128
]
}, },
{ {
"Mount": true, "Mount": true,
@ -82,7 +96,15 @@
"Z": 65.384766 "Z": 65.384766
}, },
"TerritoryId": 140, "TerritoryId": 140,
"InteractionType": "Interact" "InteractionType": "Interact",
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
64
]
}, },
{ {
"Mount": true, "Mount": true,
@ -94,7 +116,15 @@
"Z": 158.73962 "Z": 158.73962
}, },
"TerritoryId": 140, "TerritoryId": 140,
"InteractionType": "Interact" "InteractionType": "Interact",
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
32
]
} }
] ]
}, },
@ -124,7 +154,15 @@
"Z": 155.9624 "Z": 155.9624
}, },
"TerritoryId": 140, "TerritoryId": 140,
"InteractionType": "Interact" "InteractionType": "Interact",
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
32
]
}, },
{ {
"DataId": 2003656, "DataId": 2003656,
@ -134,7 +172,15 @@
"Z": 159.19727 "Z": 159.19727
}, },
"TerritoryId": 140, "TerritoryId": 140,
"InteractionType": "Interact" "InteractionType": "Interact",
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
128
]
}, },
{ {
"DataId": 2003659, "DataId": 2003659,
@ -144,7 +190,15 @@
"Z": 155.90137 "Z": 155.90137
}, },
"TerritoryId": 140, "TerritoryId": 140,
"InteractionType": "Interact" "InteractionType": "Interact",
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
16
]
}, },
{ {
"DataId": 2003657, "DataId": 2003657,
@ -154,7 +208,15 @@
"Z": 158.12915 "Z": 158.12915
}, },
"TerritoryId": 140, "TerritoryId": 140,
"InteractionType": "Interact" "InteractionType": "Interact",
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
64
]
} }
] ]
}, },
@ -169,7 +231,8 @@
"Z": 157.5188 "Z": 157.5188
}, },
"TerritoryId": 140, "TerritoryId": 140,
"InteractionType": "CompleteQuest" "InteractionType": "CompleteQuest",
"NextQuestId": 1316
} }
] ]
} }

View File

@ -47,7 +47,8 @@
"Z": 254.13892 "Z": 254.13892
}, },
"TerritoryId": 147, "TerritoryId": 147,
"InteractionType": "Interact" "InteractionType": "Interact",
"Fly": true
} }
] ]
}, },
@ -63,11 +64,9 @@
"Z": 121.20239 "Z": 121.20239
}, },
"TerritoryId": 147, "TerritoryId": 147,
"InteractionType": "Interact" "InteractionType": "CompleteQuest",
}, "Fly": true,
{ "NextQuestId": 1317
"TerritoryId": 147,
"InteractionType": "CompleteQuest"
} }
] ]
} }

View File

@ -36,9 +36,13 @@
"Sequence": 2, "Sequence": 2,
"Steps": [ "Steps": [
{ {
"AetheryteShortcut": "Western Thanalan - Horizon", "TerritoryId": 145,
"InteractionType": "UseItem",
"ItemId": 30362,
"TargetTerritoryId": 140
},
{
"Mount": true, "Mount": true,
"Fly": true,
"DataId": 1008730, "DataId": 1008730,
"Position": { "Position": {
"X": -431.26575, "X": -431.26575,
@ -61,7 +65,8 @@
"Z": -367.17786 "Z": -367.17786
}, },
"TerritoryId": 140, "TerritoryId": 140,
"InteractionType": "CompleteQuest" "InteractionType": "CompleteQuest",
"NextQuestId": 1318
} }
] ]
} }

View File

@ -12,6 +12,7 @@
"Y": 23.113976, "Y": 23.113976,
"Z": -367.8188 "Z": -367.8188
}, },
"StopDistance": 5,
"TerritoryId": 140, "TerritoryId": 140,
"InteractionType": "AcceptQuest" "InteractionType": "AcceptQuest"
} }
@ -77,7 +78,8 @@
"Z": 378.80518 "Z": 378.80518
}, },
"TerritoryId": 155, "TerritoryId": 155,
"InteractionType": "Interact" "InteractionType": "Interact",
"Fly": true
} }
] ]
}, },
@ -93,23 +95,14 @@
"Z": 479.69775 "Z": 479.69775
}, },
"TerritoryId": 155, "TerritoryId": 155,
"InteractionType": "Interact" "InteractionType": "Interact",
"Fly": true
} }
] ]
}, },
{ {
"Sequence": 6, "Sequence": 6,
"Steps": [ "Steps": [
{
"DataId": 2003671,
"Position": {
"X": 489.181,
"Y": 206.8937,
"Z": 479.662
},
"TerritoryId": 155,
"InteractionType": "Interact"
},
{ {
"TerritoryId": 155, "TerritoryId": 155,
"InteractionType": "Duty", "InteractionType": "Duty",
@ -127,6 +120,7 @@
"Y": 207.33582, "Y": 207.33582,
"Z": 475.33374 "Z": 475.33374
}, },
"StopDistance": 7,
"TerritoryId": 155, "TerritoryId": 155,
"InteractionType": "Interact" "InteractionType": "Interact"
} }
@ -136,7 +130,12 @@
"Sequence": 255, "Sequence": 255,
"Steps": [ "Steps": [
{ {
"AetheryteShortcut": "Western Thanalan - Horizon", "TerritoryId": 145,
"InteractionType": "UseItem",
"ItemId": 30362,
"TargetTerritoryId": 140
},
{
"Mount": true, "Mount": true,
"Fly": true, "Fly": true,
"DataId": 1008788, "DataId": 1008788,
@ -146,7 +145,8 @@
"Z": -367.57465 "Z": -367.57465
}, },
"TerritoryId": 140, "TerritoryId": 140,
"InteractionType": "CompleteQuest" "InteractionType": "CompleteQuest",
"NextQuestId": 1438
} }
] ]
} }

View File

@ -142,11 +142,8 @@
"Z": 525.81055 "Z": 525.81055
}, },
"TerritoryId": 137, "TerritoryId": 137,
"InteractionType": "Interact" "InteractionType": "CompleteQuest",
}, "NextQuestId": 1439
{
"TerritoryId": 137,
"InteractionType": "CompleteQuest"
} }
] ]
} }

View File

@ -35,6 +35,16 @@
{ {
"Sequence": 2, "Sequence": 2,
"Steps": [ "Steps": [
{
"Position": {
"X": 581.1095,
"Y": 14.587067,
"Z": 394.20828
},
"TerritoryId": 137,
"InteractionType": "WalkTo",
"Fly": true
},
{ {
"DataId": 1009319, "DataId": 1009319,
"Position": { "Position": {
@ -75,7 +85,8 @@
"Z": 344.71655 "Z": 344.71655
}, },
"TerritoryId": 138, "TerritoryId": 138,
"InteractionType": "CompleteQuest" "InteractionType": "CompleteQuest",
"NextQuestId": 1440
} }
] ]
} }

View File

@ -37,7 +37,15 @@
"Z": 425.58936 "Z": 425.58936
}, },
"TerritoryId": 138, "TerritoryId": 138,
"InteractionType": "Interact" "InteractionType": "Interact",
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
128
]
}, },
{ {
"DataId": 2004325, "DataId": 2004325,
@ -47,7 +55,15 @@
"Z": 514.7324 "Z": 514.7324
}, },
"TerritoryId": 138, "TerritoryId": 138,
"InteractionType": "Interact" "InteractionType": "Interact",
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
64
]
}, },
{ {
"DataId": 2004326, "DataId": 2004326,
@ -57,7 +73,15 @@
"Z": 596.765 "Z": 596.765
}, },
"TerritoryId": 138, "TerritoryId": 138,
"InteractionType": "Interact" "InteractionType": "Interact",
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
32
]
} }
] ]
}, },
@ -73,7 +97,16 @@
"Z": 684.1992 "Z": 684.1992
}, },
"TerritoryId": 138, "TerritoryId": 138,
"InteractionType": "Interact" "InteractionType": "Interact",
"DialogueChoices": [
{
"Type": "YesNo",
"ExcelSheet": "Addon",
"Prompt": 102445,
"PromptIsRegularExpression": true,
"Yes": true
}
]
}, },
{ {
"Comment": "Fight some Mandragoras", "Comment": "Fight some Mandragoras",
@ -84,7 +117,7 @@
}, },
"TerritoryId": 138, "TerritoryId": 138,
"InteractionType": "Combat", "InteractionType": "Combat",
"EnemySpawnType": "OverworldEnemies", "EnemySpawnType": "FateEnemies",
"KillEnemyDataIds": [ "KillEnemyDataIds": [
2950, 2950,
2951, 2951,
@ -100,8 +133,16 @@
"Steps": [ "Steps": [
{ {
"AetheryteShortcut": "Eastern La Noscea - Costa Del Sol", "AetheryteShortcut": "Eastern La Noscea - Costa Del Sol",
"Mount": true,
"Fly": true, "Fly": true,
"Position": {
"X": 581.46533,
"Y": 14.587067,
"Z": 393.86594
},
"TerritoryId": 137,
"InteractionType": "WalkTo"
},
{
"DataId": 1009319, "DataId": 1009319,
"Position": { "Position": {
"X": 581.3534, "X": 581.3534,
@ -142,7 +183,8 @@
"Z": 10.879639 "Z": 10.879639
}, },
"TerritoryId": 137, "TerritoryId": 137,
"InteractionType": "CompleteQuest" "InteractionType": "CompleteQuest",
"NextQuestId": 1441
} }
] ]
} }

View File

@ -89,11 +89,8 @@
"Z": 455.2528 "Z": 455.2528
}, },
"TerritoryId": 137, "TerritoryId": 137,
"InteractionType": "Interact" "InteractionType": "CompleteQuest",
}, "NextQuestId": 166
{
"TerritoryId": 137,
"InteractionType": "CompleteQuest"
} }
] ]
} }

View File

@ -104,6 +104,15 @@
"[Ul'dah] Aetheryte Plaza", "[Ul'dah] Aetheryte Plaza",
"[Ul'dah] Gladiators' Guild" "[Ul'dah] Gladiators' Guild"
], ],
"Position": {
"X": -71.1609,
"Y": 6.9845705,
"Z": 9.066199
},
"TerritoryId": 131,
"InteractionType": "WalkTo"
},
{
"DataId": 1010281, "DataId": 1010281,
"Position": { "Position": {
"X": -70.96979, "X": -70.96979,
@ -111,7 +120,8 @@
"Z": 3.982544 "Z": 3.982544
}, },
"TerritoryId": 131, "TerritoryId": 131,
"InteractionType": "Interact" "InteractionType": "Interact",
"DisableNavmesh": true
} }
] ]
}, },
@ -130,7 +140,8 @@
"Z": -3.9215698 "Z": -3.9215698
}, },
"TerritoryId": 130, "TerritoryId": 130,
"InteractionType": "CompleteQuest" "InteractionType": "CompleteQuest",
"NextQuestId": 202
} }
] ]
} }

View File

@ -20,6 +20,15 @@
{ {
"Sequence": 1, "Sequence": 1,
"Steps": [ "Steps": [
{
"Position": {
"X": -153.18225,
"Y": 14.005,
"Z": 43.458076
},
"TerritoryId": 130,
"InteractionType": "WalkTo"
},
{ {
"AethernetShortcut": [ "AethernetShortcut": [
"[Ul'dah] Thaumaturges' Guild", "[Ul'dah] Thaumaturges' Guild",
@ -83,7 +92,12 @@
"Z": 260.57825 "Z": 260.57825
}, },
"TerritoryId": 141, "TerritoryId": 141,
"InteractionType": "Interact" "InteractionType": "Interact",
"AetheryteShortcut": "Ul'dah",
"AethernetShortcut": [
"[Ul'dah] Aetheryte Plaza",
"[Ul'dah] Gate of Nald (Central Thanalan)"
]
} }
] ]
}, },
@ -103,7 +117,8 @@
"Z": -5.661133 "Z": -5.661133
}, },
"TerritoryId": 130, "TerritoryId": 130,
"InteractionType": "CompleteQuest" "InteractionType": "CompleteQuest",
"NextQuestId": 203
} }
] ]
} }

View File

@ -20,6 +20,15 @@
{ {
"Sequence": 1, "Sequence": 1,
"Steps": [ "Steps": [
{
"Position": {
"X": -153.18225,
"Y": 14.005,
"Z": 43.458076
},
"TerritoryId": 130,
"InteractionType": "WalkTo"
},
{ {
"AethernetShortcut": [ "AethernetShortcut": [
"[Ul'dah] Thaumaturges' Guild", "[Ul'dah] Thaumaturges' Guild",
@ -69,7 +78,24 @@
"Z": 8.255066 "Z": 8.255066
}, },
"TerritoryId": 131, "TerritoryId": 131,
"InteractionType": "Interact" "InteractionType": "Interact",
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
32
]
},
{
"Position": {
"X": 109.42333,
"Y": 8,
"Z": 8.92655
},
"TerritoryId": 131,
"InteractionType": "WalkTo"
}, },
{ {
"DataId": 2004900, "DataId": 2004900,
@ -79,7 +105,15 @@
"Z": -35.233154 "Z": -35.233154
}, },
"TerritoryId": 131, "TerritoryId": 131,
"InteractionType": "Interact" "InteractionType": "Interact",
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
64
]
}, },
{ {
"DataId": 2004899, "DataId": 2004899,
@ -89,7 +123,15 @@
"Z": -74.05206 "Z": -74.05206
}, },
"TerritoryId": 131, "TerritoryId": 131,
"InteractionType": "Interact" "InteractionType": "Interact",
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
128
]
} }
] ]
}, },
@ -120,14 +162,25 @@
"[Ul'dah] Gladiators' Guild", "[Ul'dah] Gladiators' Guild",
"[Ul'dah] Sapphire Avenue Exchange" "[Ul'dah] Sapphire Avenue Exchange"
], ],
"Position": {
"X": 137.68585,
"Y": 3.9999998,
"Z": -58.555218
},
"TerritoryId": 131,
"InteractionType": "WalkTo"
},
{
"DataId": 1001679, "DataId": 1001679,
"Position": { "Position": {
"X": 140.48975, "X": 140.48975,
"Y": 4.0099983, "Y": 4.0099983,
"Z": -59.80017 "Z": -59.80017
}, },
"StopDistance": 5,
"TerritoryId": 131, "TerritoryId": 131,
"InteractionType": "CompleteQuest" "InteractionType": "CompleteQuest",
"NextQuestId": 204
} }
] ]
} }

View File

@ -25,6 +25,15 @@
"[Ul'dah] Sapphire Avenue Exchange", "[Ul'dah] Sapphire Avenue Exchange",
"[Ul'dah] Gladiators' Guild" "[Ul'dah] Gladiators' Guild"
], ],
"Position": {
"X": -71.1609,
"Y": 6.9845705,
"Z": 9.066199
},
"TerritoryId": 131,
"InteractionType": "WalkTo"
},
{
"DataId": 1010330, "DataId": 1010330,
"Position": { "Position": {
"X": -69.5354, "X": -69.5354,
@ -33,6 +42,7 @@
}, },
"TerritoryId": 131, "TerritoryId": 131,
"InteractionType": "Interact", "InteractionType": "Interact",
"DisableNavmesh": true,
"DialogueChoices": [ "DialogueChoices": [
{ {
"Type": "YesNo", "Type": "YesNo",
@ -53,6 +63,7 @@
"Y": 6.9839687, "Y": 6.9839687,
"Z": -0.045776367 "Z": -0.045776367
}, },
"StopDistance": 5,
"TerritoryId": 131, "TerritoryId": 131,
"InteractionType": "Interact" "InteractionType": "Interact"
} }
@ -117,7 +128,8 @@
"Z": 0.07623291 "Z": 0.07623291
}, },
"TerritoryId": 131, "TerritoryId": 131,
"InteractionType": "CompleteQuest" "InteractionType": "CompleteQuest",
"NextQuestId": 490
} }
] ]
} }

View File

@ -86,7 +86,8 @@
"Z": 171.12988 "Z": 171.12988
}, },
"TerritoryId": 140, "TerritoryId": 140,
"InteractionType": "CompleteQuest" "InteractionType": "CompleteQuest",
"NextQuestId": 491
} }
] ]
} }

View File

@ -129,7 +129,8 @@
"Z": 96.29968 "Z": 96.29968
}, },
"TerritoryId": 131, "TerritoryId": 131,
"InteractionType": "CompleteQuest" "InteractionType": "CompleteQuest",
"NextQuestId": 492
} }
] ]
} }

View File

@ -123,7 +123,8 @@
"Z": 27.237305 "Z": 27.237305
}, },
"TerritoryId": 131, "TerritoryId": 131,
"InteractionType": "CompleteQuest" "InteractionType": "CompleteQuest",
"NextQuestId": 493
} }
] ]
} }

View File

@ -81,7 +81,8 @@
"Z": 29.343018 "Z": 29.343018
}, },
"TerritoryId": 131, "TerritoryId": 131,
"InteractionType": "CompleteQuest" "InteractionType": "CompleteQuest",
"NextQuestId": 502
} }
] ]
} }

View File

@ -594,7 +594,8 @@
"AfterInteraction", "AfterInteraction",
"AfterItemUse", "AfterItemUse",
"AfterAction", "AfterAction",
"OverworldEnemies" "OverworldEnemies",
"FateEnemies"
] ]
}, },
"KillEnemyDataIds": { "KillEnemyDataIds": {
@ -1020,6 +1021,9 @@
"integer" "integer"
] ]
}, },
"PromptIsRegularExpression": {
"type": "boolean"
},
"Yes": { "Yes": {
"type": "boolean", "type": "boolean",
"default": true "default": true
@ -1048,11 +1052,17 @@
"null" "null"
] ]
}, },
"PromptIsRegularExpression": {
"type": "boolean"
},
"Answer": { "Answer": {
"type": [ "type": [
"string", "string",
"integer" "integer"
] ]
},
"AnswerIsRegularExpression": {
"type": "boolean"
} }
}, },
"required": [ "required": [

View File

@ -12,5 +12,6 @@ public sealed class EnemySpawnTypeConverter() : EnumConverter<EEnemySpawnType>(V
{ EEnemySpawnType.AfterAction, "AfterAction" }, { EEnemySpawnType.AfterAction, "AfterAction" },
{ EEnemySpawnType.AutoOnEnterArea, "AutoOnEnterArea" }, { EEnemySpawnType.AutoOnEnterArea, "AutoOnEnterArea" },
{ EEnemySpawnType.OverworldEnemies, "OverworldEnemies" }, { EEnemySpawnType.OverworldEnemies, "OverworldEnemies" },
{ EEnemySpawnType.FateEnemies, "FateEnemies" },
}; };
} }

View File

@ -16,6 +16,7 @@ public sealed class DialogueChoice
[JsonConverter(typeof(ExcelRefConverter))] [JsonConverter(typeof(ExcelRefConverter))]
public ExcelRef? Answer { get; set; } public ExcelRef? Answer { get; set; }
public bool PromptIsRegularExpression { get; set; }
public bool AnswerIsRegularExpression { get; set; } public bool AnswerIsRegularExpression { get; set; }
/// <summary> /// <summary>

View File

@ -12,4 +12,5 @@ public enum EEnemySpawnType
AfterAction, AfterAction,
AutoOnEnterArea, AutoOnEnterArea,
OverworldEnemies, OverworldEnemies,
FateEnemies,
} }

View File

@ -196,8 +196,9 @@ internal sealed class CombatController : IDisposable
// TODO this works as somewhat of a delay between killing enemies if certain items/flags are checked // TODO this works as somewhat of a delay between killing enemies if certain items/flags are checked
// but also delays killing the next enemy a little // but also delays killing the next enemy a little
if (_currentFight == null || _currentFight.Data.SpawnType != EEnemySpawnType.OverworldEnemies || if (_currentFight == null ||
_currentFight.Data.ComplexCombatDatas.Count == 0) _currentFight.Data.SpawnType == EEnemySpawnType.OverworldEnemies ||
(_currentFight.Data.SpawnType != EEnemySpawnType.FateEnemies && _currentFight.Data.KillEnemyDataIds.Count > 0))
{ {
if (battleNpc.IsDead) if (battleNpc.IsDead)
return 0; return 0;
@ -262,6 +263,13 @@ internal sealed class CombatController : IDisposable
} }
} }
if (_currentFight?.Data.SpawnType == EEnemySpawnType.FateEnemies)
{
var gameObjectStruct = (GameObject*)gameObject.Address;
if (gameObjectStruct->FateId != 0)
return 15;
}
// stuff trying to kill us // stuff trying to kill us
if (battleNpc.TargetObjectId == _clientState.LocalPlayer?.GameObjectId) if (battleNpc.TargetObjectId == _clientState.LocalPlayer?.GameObjectId)
return 10; return 10;

View File

@ -428,19 +428,19 @@ internal sealed class InteractionUiController : IDisposable
continue; continue;
} }
string? excelPrompt = ResolveReference(quest, dialogueChoice.ExcelSheet, dialogueChoice.Prompt, false) StringOrRegex? excelPrompt = ResolveReference(quest, dialogueChoice.ExcelSheet, dialogueChoice.Prompt,
?.GetString(); dialogueChoice.PromptIsRegularExpression);
StringOrRegex? excelAnswer = ResolveReference(quest, dialogueChoice.ExcelSheet, dialogueChoice.Answer, StringOrRegex? excelAnswer = ResolveReference(quest, dialogueChoice.ExcelSheet, dialogueChoice.Answer,
dialogueChoice.AnswerIsRegularExpression); dialogueChoice.AnswerIsRegularExpression);
if (actualPrompt == null && !string.IsNullOrEmpty(excelPrompt)) if (actualPrompt == null && excelPrompt != null)
{ {
_logger.LogInformation("Unexpected excelPrompt: {ExcelPrompt}", excelPrompt); _logger.LogInformation("Unexpected excelPrompt: {ExcelPrompt}", excelPrompt);
continue; continue;
} }
if (actualPrompt != null && if (actualPrompt != null &&
(excelPrompt == null || !GameFunctions.GameStringEquals(actualPrompt, excelPrompt))) (excelPrompt == null || !IsMatch(actualPrompt, excelPrompt)))
{ {
_logger.LogInformation("Unexpected excelPrompt: {ExcelPrompt}, actualPrompt: {ActualPrompt}", _logger.LogInformation("Unexpected excelPrompt: {ExcelPrompt}, actualPrompt: {ActualPrompt}",
excelPrompt, actualPrompt); excelPrompt, actualPrompt);
@ -597,9 +597,9 @@ internal sealed class InteractionUiController : IDisposable
continue; continue;
} }
string? excelPrompt = ResolveReference(quest, dialogueChoice.ExcelSheet, dialogueChoice.Prompt, false) StringOrRegex? excelPrompt = ResolveReference(quest, dialogueChoice.ExcelSheet, dialogueChoice.Prompt,
?.GetString(); dialogueChoice.PromptIsRegularExpression);
if (excelPrompt == null || !GameFunctions.GameStringEquals(actualPrompt, excelPrompt)) if (excelPrompt == null || !IsMatch(actualPrompt, excelPrompt))
{ {
_logger.LogInformation("Unexpected excelPrompt: {ExcelPrompt}, actualPrompt: {ActualPrompt}", _logger.LogInformation("Unexpected excelPrompt: {ExcelPrompt}, actualPrompt: {ActualPrompt}",
excelPrompt, actualPrompt); excelPrompt, actualPrompt);

View File

@ -83,6 +83,7 @@ internal static class Combat
break; break;
case EEnemySpawnType.OverworldEnemies: case EEnemySpawnType.OverworldEnemies:
case EEnemySpawnType.FateEnemies:
yield return CreateTask(quest, sequence, step); yield return CreateTask(quest, sequence, step);
break; break;