1
0
forked from liza/Questionable

Minor cleanup for ARR part 5/CT raids/primals

This commit is contained in:
Liza 2024-07-21 21:33:38 +02:00
parent cd72beca89
commit 26e881abc3
Signed by: liza
GPG Key ID: 7199F8D727D55F67
48 changed files with 995 additions and 444 deletions

View File

@ -357,6 +357,9 @@ public class QuestSourceGenerator : ISourceGenerator
.AsSyntaxNodeOrToken(),
AssignmentList(nameof(QuestStep.ComplexCombatData), step.ComplexCombatData)
.AsSyntaxNodeOrToken(),
Assignment(nameof(QuestStep.CombatDelaySecondsAtStart), step.CombatDelaySecondsAtStart,
emptyStep.CombatDelaySecondsAtStart)
.AsSyntaxNodeOrToken(),
Assignment(nameof(QuestStep.JumpDestination), step.JumpDestination,
emptyStep.JumpDestination)
.AsSyntaxNodeOrToken(),

View File

@ -166,6 +166,7 @@ public static class RoslynShortcuts
}
else if (value is ComplexCombatData complexCombatData)
{
var emptyData = new ComplexCombatData();
return ObjectCreationExpression(
IdentifierName(nameof(ComplexCombatData)))
.WithInitializer(
@ -173,18 +174,22 @@ public static class RoslynShortcuts
SyntaxKind.ObjectInitializerExpression,
SeparatedList<ExpressionSyntax>(
SyntaxNodeList(
Assignment(nameof(ComplexCombatData.DataId), complexCombatData.DataId, default(uint))
Assignment(nameof(ComplexCombatData.DataId), complexCombatData.DataId, emptyData.DataId)
.AsSyntaxNodeOrToken(),
Assignment(nameof(ComplexCombatData.MinimumKillCount),
complexCombatData.MinimumKillCount, null)
complexCombatData.MinimumKillCount, emptyData.MinimumKillCount)
.AsSyntaxNodeOrToken(),
Assignment(nameof(ComplexCombatData.RewardItemId), complexCombatData.RewardItemId, null)
Assignment(nameof(ComplexCombatData.RewardItemId), complexCombatData.RewardItemId,
emptyData.RewardItemId)
.AsSyntaxNodeOrToken(),
Assignment(nameof(ComplexCombatData.RewardItemCount), complexCombatData.RewardItemCount,
null)
emptyData.RewardItemCount)
.AsSyntaxNodeOrToken(),
AssignmentList(nameof(ComplexCombatData.CompletionQuestVariablesFlags),
complexCombatData.CompletionQuestVariablesFlags)
complexCombatData.CompletionQuestVariablesFlags),
Assignment(nameof(ComplexCombatData.IgnoreQuestMarker),
complexCombatData.IgnoreQuestMarker,
emptyData.IgnoreQuestMarker)
.AsSyntaxNodeOrToken()))));
}
else if (value is QuestWorkValue qwv)

View File

@ -116,7 +116,7 @@
"TerritoryId": 137,
"InteractionType": "CompleteQuest",
"AetheryteShortcut": "Eastern La Noscea - Costa Del Sol",
"NextQuestId": 1050
"NextQuestId": 1051
}
]
}

View File

@ -62,7 +62,6 @@
"TerritoryId": 137,
"InteractionType": "CompleteQuest",
"AetheryteShortcut": "Eastern La Noscea - Costa Del Sol",
"NextQuestId": 1054,
"Fly": true
}
]

View File

@ -20,6 +20,17 @@
{
"Sequence": 1,
"Steps": [
{
"DataId": 1006693,
"Position": {
"X": 39.29187,
"Y": 1.2148079,
"Z": 0.8086548
},
"TerritoryId": 212,
"InteractionType": "AcceptQuest",
"PickUpQuestId": 1047
},
{
"DataId": 2001717,
"Position": {
@ -29,7 +40,10 @@
},
"TerritoryId": 212,
"InteractionType": "Interact",
"TargetTerritoryId": 212
"TargetTerritoryId": 212,
"SkipIf": [
"WakingSandsMainArea"
]
},
{
"DataId": 1007533,
@ -40,7 +54,15 @@
},
"TerritoryId": 212,
"InteractionType": "Interact",
"$": "0 0 0 0 0 0 -> 17 0 0 0 0 128"
"$": "0 0 0 0 0 0 -> 17 0 0 0 0 128",
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
128
]
},
{
"DataId": 1007534,
@ -51,7 +73,15 @@
},
"TerritoryId": 212,
"InteractionType": "Interact",
"$": "17 0 0 0 0 128 -> 33 16 0 0 0 192"
"$": "17 0 0 0 0 128 -> 33 16 0 0 0 192",
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
64
]
},
{
"DataId": 1007531,
@ -60,9 +90,18 @@
"Y": -3.0000012,
"Z": -52.71997
},
"StopDistance": 7,
"TerritoryId": 212,
"InteractionType": "Interact",
"$": "33 16 0 0 0 192 -> 49 17 0 0 0 224"
"$": "33 16 0 0 0 192 -> 49 17 0 0 0 224",
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
32
]
},
{
"DataId": 1007530,
@ -71,9 +110,18 @@
"Y": -3.0000012,
"Z": -52.262207
},
"StopDistance": 7,
"TerritoryId": 212,
"InteractionType": "Interact",
"$": "49 17 0 0 0 224 -> 65 17 16 0 0 240"
"$": "49 17 0 0 0 224 -> 65 17 16 0 0 240",
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
16
]
},
{
"DataId": 1007478,
@ -83,7 +131,15 @@
"Z": -56.229553
},
"TerritoryId": 212,
"InteractionType": "Interact"
"InteractionType": "Interact",
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
8
]
}
]
},

View File

@ -1,6 +1,6 @@
{
"$schema": "https://carvel.li/questionable/quest-1.0",
"Author": "JerryWester",
"Author": ["JerryWester", "liza"],
"QuestSequence": [
{
"Sequence": 0,
@ -46,6 +46,7 @@
"Y": -2.3519497,
"Z": -240.40594
},
"StopDistance": 7,
"TerritoryId": 133,
"InteractionType": "Interact",
"TargetTerritoryId": 152
@ -80,9 +81,149 @@
"Sequence": 4,
"Steps": [
{
"Position": {
"X": -496.3975,
"Y": 7.8566074,
"Z": 71.93724
},
"StopDistance": 0.5,
"TerritoryId": 152,
"InteractionType": "WaitForManualProgress",
"Comment": "Yeah, no idea how to automate this, sorry :/"
"InteractionType": "Combat",
"EnemySpawnType": "AutoOnEnterArea",
"ComplexCombatData": [
{
"DataId": 47,
"IgnoreQuestMarker": true,
"MinimumKillCount": 1
}
],
"Mount": false,
"Sprint": false
},
{
"Position": {
"X": -393.63492,
"Y": -0.28167063,
"Z": 72.2678
},
"StopDistance": 0.5,
"TerritoryId": 152,
"InteractionType": "Combat",
"EnemySpawnType": "AutoOnEnterArea",
"ComplexCombatData": [
{
"DataId": 2483,
"IgnoreQuestMarker": true,
"MinimumKillCount": 3
}
],
"Mount": false,
"Sprint": false
},
{
"Position": {
"X": -359.14633,
"Y": 4.4168873,
"Z": 63.1877
},
"StopDistance": 0.5,
"TerritoryId": 152,
"InteractionType": "Combat",
"EnemySpawnType": "AutoOnEnterArea",
"ComplexCombatData": [
{
"DataId": 2484,
"IgnoreQuestMarker": true,
"MinimumKillCount": 1
}
],
"Mount": false,
"Sprint": false
},
{
"Position": {
"X": -324.51694,
"Y": 8.511529,
"Z": 69.76721
},
"StopDistance": 0.5,
"TerritoryId": 152,
"InteractionType": "Combat",
"EnemySpawnType": "AutoOnEnterArea",
"ComplexCombatData": [
{
"DataId": 2485,
"IgnoreQuestMarker": true,
"MinimumKillCount": 2
}
],
"Mount": false,
"Sprint": false
},
{
"DataId": 2482,
"Position": {
"X": -238.72742,
"Y": 7.8999486,
"Z": 64.43884
},
"StopDistance": 0.25,
"TerritoryId": 152,
"InteractionType": "WaitForNpcAtPosition",
"NpcWaitDistance": 5,
"Mount": false,
"Sprint": false
},
{
"Position": {
"X": -242.57193,
"Y": 11.837363,
"Z": 19.533478
},
"StopDistance": 0.5,
"TerritoryId": 152,
"InteractionType": "Combat",
"EnemySpawnType": "AutoOnEnterArea",
"ComplexCombatData": [
{
"DataId": 2487,
"IgnoreQuestMarker": true,
"MinimumKillCount": 2
},
{
"DataId": 2488,
"IgnoreQuestMarker": true,
"MinimumKillCount": 1
}
],
"Mount": false,
"Sprint": false,
"CombatDelaySecondsAtStart": 3
},
{
"DataId": 2482,
"Position": {
"X": -315.8217,
"Y": 11.905772,
"Z": -34.105675
},
"StopDistance": 0.25,
"TerritoryId": 152,
"InteractionType": "WaitForNpcAtPosition",
"Mount": false,
"Sprint": false,
"NpcWaitDistance": 5
},
{
"DataId": 2003347,
"Position": {
"X": -318.62366,
"Y": 12.25293,
"Z": -35.05005
},
"StopDistance": 4,
"TerritoryId": 152,
"InteractionType": "Interact"
}
]
},
@ -96,6 +237,7 @@
"Y": 12.293127,
"Z": -37.30841
},
"StopDistance": 4,
"TerritoryId": 152,
"InteractionType": "Interact"
}
@ -111,8 +253,10 @@
"Y": 12.25293,
"Z": -35.080566
},
"StopDistance": 4,
"TerritoryId": 152,
"InteractionType": "Interact"
"InteractionType": "Interact",
"DelaySecondsAtStart": 3
}
]
},

View File

@ -84,26 +84,18 @@
"Steps": [
{
"Position": {
"X": -467.98248,
"Y": 23.0508,
"Z": -430.49655
},
"TerritoryId": 140,
"InteractionType": "WalkTo",
"Fly": true
},
{
"Position": {
"X": -469.5506,
"Y": 22.867796,
"Z": -435.02985
"X": -470.87872,
"Y": 22.698383,
"Z": -439.40274
},
"StopDistance": 0.25,
"TerritoryId": 140,
"InteractionType": "Combat",
"EnemySpawnType": "AutoOnEnterArea",
"KillEnemyDataIds": [
2477
]
],
"Fly": true
}
]
},
@ -112,26 +104,18 @@
"Steps": [
{
"Position": {
"X": -394.05176,
"Y": 25.249037,
"Z": -491.6281
},
"TerritoryId": 140,
"InteractionType": "WalkTo",
"Fly": true
},
{
"Position": {
"X": -388.88654,
"Y": 24.894493,
"Z": -498.07654
"X": -386.44818,
"Y": 24.74541,
"Z": -501.20456
},
"StopDistance": 0.25,
"TerritoryId": 140,
"InteractionType": "Combat",
"EnemySpawnType": "AutoOnEnterArea",
"KillEnemyDataIds": [
2478
]
],
"Fly": true
}
]
},
@ -140,55 +124,39 @@
"Steps": [
{
"Position": {
"X": -376.08395,
"Y": 19.192884,
"Z": -619.2925
},
"TerritoryId": 140,
"InteractionType": "WalkTo",
"Fly": true
},
{
"Position": {
"X": -370.34174,
"Y": 17.37921,
"Z": -625.1368
"X": -366.75403,
"Y": 16.426182,
"Z": -628.9341
},
"StopDistance": 0.25,
"TerritoryId": 140,
"InteractionType": "Combat",
"EnemySpawnType": "AutoOnEnterArea",
"KillEnemyDataIds": [
2479
]
],
"Fly": true
}
]
},
{
"Sequence": 6,
"Steps": [
{
"Position": {
"X": -326.49905,
"Y": 14.853391,
"Z": -775.70575
},
"TerritoryId": 140,
"InteractionType": "WalkTo",
"Fly": true
},
{
"Position": {
"X": -327.01913,
"Y": 14.785374,
"Z": -780.03625
},
"StopDistance": 0.25,
"TerritoryId": 140,
"InteractionType": "Combat",
"EnemySpawnType": "AutoOnEnterArea",
"KillEnemyDataIds": [
2480,
2481
]
],
"Fly": true
}
]
},

View File

@ -31,6 +31,7 @@
"Y": 45.157562,
"Z": -215.89996
},
"StopDistance": 7,
"TerritoryId": 140,
"InteractionType": "Interact"
}
@ -84,16 +85,6 @@
{
"Sequence": 255,
"Steps": [
{
"Position": {
"X": 62.218567,
"Y": 44.999996,
"Z": -214.81116
},
"TerritoryId": 140,
"InteractionType": "WalkTo",
"Fly": true
},
{
"DataId": 1002058,
"Position": {
@ -102,7 +93,8 @@
"Z": -215.89996
},
"TerritoryId": 140,
"InteractionType": "CompleteQuest"
"InteractionType": "CompleteQuest",
"Fly": true
}
]
}

View File

@ -12,6 +12,7 @@
"Y": 44.999996,
"Z": -220.93542
},
"StopDistance": 7,
"TerritoryId": 140,
"InteractionType": "AcceptQuest",
"AetheryteShortcut": "Western Thanalan - Horizon",
@ -127,7 +128,15 @@
"[Ul'dah] Adventurers' Guild",
"[Ul'dah] Sapphire Avenue Exchange"
],
"$": "0 1 16 0 0 0 -> 17 1 0 0 0 64"
"$": "0 1 16 0 0 0 -> 17 1 0 0 0 64",
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
64
]
},
{
"DataId": 1001966,
@ -137,7 +146,15 @@
"Z": -83.84839
},
"TerritoryId": 131,
"InteractionType": "Interact"
"InteractionType": "Interact",
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
128
]
}
]
},

View File

@ -49,17 +49,6 @@
{
"Sequence": 2,
"Steps": [
{
"Position": {
"X": 182.90273,
"Y": 52.023964,
"Z": 29.854843
},
"TerritoryId": 140,
"InteractionType": "WalkTo",
"Fly": true,
"AetheryteShortcut": "Western Thanalan - Horizon"
},
{
"DataId": 2003573,
"Position": {
@ -67,29 +56,21 @@
"Y": 52.140015,
"Z": 29.06836
},
"StopDistance": 0.25,
"TerritoryId": 140,
"InteractionType": "Combat",
"EnemySpawnType": "AfterInteraction",
"KillEnemyDataIds": [
2848
]
],
"Fly": true,
"AetheryteShortcut": "Western Thanalan - Horizon"
}
]
},
{
"Sequence": 3,
"Steps": [
{
"Position": {
"X": 125.38452,
"Y": 49.281586,
"Z": -172.1297
},
"TerritoryId": 140,
"InteractionType": "WalkTo",
"Fly": true,
"AetheryteShortcut": "Western Thanalan - Horizon"
},
{
"DataId": 1008640,
"Position": {
@ -98,7 +79,9 @@
"Z": -173.23572
},
"TerritoryId": 140,
"InteractionType": "Interact"
"InteractionType": "Interact",
"Fly": true,
"AetheryteShortcut": "Western Thanalan - Horizon"
}
]
},

View File

@ -48,19 +48,9 @@
"Steps": [
{
"Position": {
"X": -444.11835,
"Y": -40.95807,
"Z": -242.13676
},
"TerritoryId": 138,
"InteractionType": "WalkTo",
"Fly": true
},
{
"Position": {
"X": -448.5728,
"Y": -41.56529,
"Z": -240.29225
"X": -450.67154,
"Y": -41.88713,
"Z": -238.96031
},
"TerritoryId": 138,
"InteractionType": "Combat",
@ -69,7 +59,8 @@
2861,
2862,
2863
]
],
"Fly": true
}
]
},
@ -83,9 +74,18 @@
"Y": -41.985073,
"Z": -237.72034
},
"StopDistance": 0.25,
"TerritoryId": 138,
"InteractionType": "Interact",
"$": "0 0 0 0 0 0 -> 1 16 0 0 0 128"
"$": "0 0 0 0 0 0 -> 1 16 0 0 0 128",
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
128
]
},
{
"DataId": 1008685,
@ -95,7 +95,15 @@
"Z": -240.13129
},
"TerritoryId": 138,
"InteractionType": "Interact"
"InteractionType": "Interact",
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
64
]
}
]
},

View File

@ -20,29 +20,21 @@
{
"Sequence": 1,
"Steps": [
{
"Position": {
"X": -214.06451,
"Y": -41.955135,
"Z": -249.15605
},
"TerritoryId": 138,
"InteractionType": "WalkTo",
"Fly": true
},
{
"Position": {
"X": -209.9414,
"Y": -42.109043,
"Z": -248.07559
},
"StopDistance": 0.25,
"TerritoryId": 138,
"InteractionType": "Combat",
"EnemySpawnType": "AutoOnEnterArea",
"KillEnemyDataIds": [
2890,
2891
]
],
"Fly": true
}
]
},
@ -51,20 +43,11 @@
"Steps": [
{
"Position": {
"X": -187.2772,
"Y": -41.886265,
"Z": -318.27036
},
"TerritoryId": 138,
"InteractionType": "WalkTo",
"Fly": true
},
{
"Position": {
"X": -188.59572,
"Y": -41.69931,
"Z": -318.9667
"X": -194.26031,
"Y": -40.771305,
"Z": -323.02054
},
"StopDistance": 0.25,
"TerritoryId": 138,
"InteractionType": "Combat",
"EnemySpawnType": "AutoOnEnterArea",
@ -73,7 +56,8 @@
2893,
2894,
2895
]
],
"Fly": true
}
]
},
@ -82,20 +66,11 @@
"Steps": [
{
"Position": {
"X": -299.29233,
"Y": -41.884323,
"Z": -336.04984
},
"TerritoryId": 138,
"InteractionType": "WalkTo",
"Fly": true
},
{
"Position": {
"X": -297.88797,
"Y": -41.872128,
"Z": -334.79858
"X": -301.09625,
"Y": -41.52895,
"Z": -327.2867
},
"StopDistance": 0.25,
"TerritoryId": 138,
"InteractionType": "Combat",
"EnemySpawnType": "AutoOnEnterArea",
@ -103,7 +78,8 @@
2896,
2897,
2898
]
],
"Fly": true
}
]
},
@ -142,6 +118,7 @@
"Y": -35.708496,
"Z": -400.50354
},
"StopDistance": 5,
"TerritoryId": 138,
"InteractionType": "CompleteQuest"
}

View File

@ -12,6 +12,7 @@
"Y": -35.708496,
"Z": -400.50354
},
"StopDistance": 5,
"TerritoryId": 138,
"InteractionType": "AcceptQuest"
}
@ -115,7 +116,8 @@
"Z": -286.78662
},
"TerritoryId": 135,
"InteractionType": "WalkTo"
"InteractionType": "WalkTo",
"Mount": true
},
{
"Position": {
@ -130,8 +132,7 @@
{
"TerritoryId": 135,
"InteractionType": "AttuneAetheryte",
"Aetheryte": "Lower La Noscea - Moraby Drydocks",
"StopDistance": 5
"Aetheryte": "Lower La Noscea - Moraby Drydocks"
},
{
"Position": {

View File

@ -1,6 +1,9 @@
{
"$schema": "https://carvel.li/questionable/quest-1.0",
"Author": "JerryWester",
"TerritoryBlacklist": [
281
],
"QuestSequence": [
{
"Sequence": 0,

View File

@ -12,6 +12,7 @@
"Y": 9.999781,
"Z": 156.08447
},
"StopDistance": 5,
"TerritoryId": 129,
"InteractionType": "AcceptQuest",
"AetheryteShortcut": "Limsa Lominsa",

View File

@ -49,6 +49,7 @@
"Y": 21.252728,
"Z": -639.7345
},
"StopDistance": 7,
"TerritoryId": 156,
"InteractionType": "Interact"
}

View File

@ -59,15 +59,24 @@
"Sequence": 3,
"Steps": [
{
"DataId": 1001484,
"Position": {
"X": 94.5531,
"Y": 0.3407526,
"Z": -270.22217
"X": 93.247925,
"Y": 0.34075317,
"Z": -272.60242
},
"TerritoryId": 141,
"InteractionType": "WalkTo",
"InteractionType": "Interact",
"AetheryteShortcut": "Central Thanalan - Black Brush Station",
"Fly": true
"Fly": true,
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
128
]
},
{
"DataId": 1001605,
@ -85,18 +94,7 @@
null,
null,
64
],
"$": "0 0 0 0 0 0 -> 1 0 0 0 0 64"
},
{
"DataId": 1001484,
"Position": {
"X": 93.247925,
"Y": 0.34075317,
"Z": -272.60242
},
"TerritoryId": 141,
"InteractionType": "Interact"
]
}
]
},

View File

@ -72,17 +72,6 @@
{
"Sequence": 255,
"Steps": [
{
"Position": {
"X": 21.35542,
"Y": -3.9001584,
"Z": 211.87386
},
"TerritoryId": 152,
"InteractionType": "WalkTo",
"Fly": true,
"AetheryteShortcut": "East Shroud - Hawthorne Hut"
},
{
"DataId": 1009097,
"Position": {
@ -91,7 +80,9 @@
"Z": 211.16956
},
"TerritoryId": 152,
"InteractionType": "CompleteQuest"
"InteractionType": "CompleteQuest",
"Fly": true,
"AetheryteShortcut": "East Shroud - Hawthorne Hut"
}
]
}

View File

@ -59,23 +59,14 @@
},
{
"Position": {
"X": 30.79747,
"Y": 22.704006,
"Z": -655.94745
"X": 30.917934,
"Y": 20.495003,
"Z": -656.1909
},
"TerritoryId": 156,
"InteractionType": "WalkTo",
"Fly": true
},
{
"Position": {
"X": 131.74095,
"Y": -2.513662,
"Z": -555.5502
},
"TerritoryId": 156,
"InteractionType": "WalkTo",
"Fly": true
"Mount": true,
"$": "Rising Stones Door"
},
{
"DataId": 1009282,
@ -84,8 +75,10 @@
"Y": -2.2044632,
"Z": -556.2372
},
"StopDistance": 1,
"TerritoryId": 156,
"InteractionType": "SinglePlayerDuty"
"InteractionType": "SinglePlayerDuty",
"Fly": true
}
]
},
@ -94,13 +87,14 @@
"Steps": [
{
"Position": {
"X": 29.987108,
"Y": 21.187704,
"Z": -654.1839
"X": 30.917934,
"Y": 20.495003,
"Z": -656.1909
},
"TerritoryId": 156,
"InteractionType": "WalkTo",
"Fly": true
"Fly": true,
"$": "Rising Stones Door"
},
{
"TerritoryId": 156,

View File

@ -128,7 +128,15 @@
"Z": 179.40027
},
"TerritoryId": 128,
"InteractionType": "Interact"
"InteractionType": "Interact",
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
128
]
}
]
},
@ -144,8 +152,9 @@
},
"TerritoryId": 128,
"InteractionType": "Interact",
"AetheryteShortcut": "Limsa Lominsa",
"AethernetShortcut": [
"[Limsa Lominsa] The Aftcastle",
"[Limsa Lominsa] Aetheryte Plaza",
"[Limsa Lominsa] Airship Landing"
]
}
@ -174,6 +183,7 @@
},
"TerritoryId": 133,
"InteractionType": "Interact",
"AetheryteShortcut": "Gridania",
"AethernetShortcut": [
"[Gridania] Aetheryte Plaza",
"[Gridania] Conjurers' Guild"
@ -264,7 +274,15 @@
"Z": -262.68408
},
"TerritoryId": 133,
"InteractionType": "Interact"
"InteractionType": "Interact",
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
64
]
}
]
},

View File

@ -12,6 +12,7 @@
"Y": -1.9957249,
"Z": -45.700806
},
"StopDistance": 7,
"TerritoryId": 351,
"InteractionType": "AcceptQuest"
}

View File

@ -129,7 +129,8 @@
"Z": -288.4794
},
"TerritoryId": 155,
"InteractionType": "WalkTo"
"InteractionType": "WalkTo",
"Mount": true
},
{
"Position": {
@ -142,43 +143,25 @@
},
{
"Position": {
"X": -693.89417,
"Y": 223.63544,
"Z": -36.510162
},
"TerritoryId": 155,
"InteractionType": "WalkTo",
"Fly": true
},
{
"Position": {
"X": -696.762,
"Y": 223.81946,
"Z": -34.89058
"X": -701.3538,
"Y": 224.22969,
"Z": -31.912737
},
"StopDistance": 0.25,
"TerritoryId": 155,
"InteractionType": "Combat",
"EnemySpawnType": "AutoOnEnterArea",
"KillEnemyDataIds": [
3119,
3120
]
],
"Fly": true
}
]
},
{
"Sequence": 4,
"Steps": [
{
"Position": {
"X": -866.228,
"Y": 225.90123,
"Z": 9.295383
},
"TerritoryId": 155,
"InteractionType": "WalkTo",
"Fly": true
},
{
"DataId": 1009087,
"Position": {
@ -187,7 +170,8 @@
"Z": 8.132996
},
"TerritoryId": 155,
"InteractionType": "Interact"
"InteractionType": "Interact",
"Fly": true
}
]
},

View File

@ -66,11 +66,11 @@
"TargetTerritoryId": 156,
"CompletionQuestVariablesFlags": [
null,
128,
null,
null,
null,
null
null,
-2
]
},
{
@ -82,17 +82,15 @@
},
"TerritoryId": 156,
"InteractionType": "Interact",
"$": "0 128 0 0 0 0 -> 1 112 0 0 0 2"
},
{
"Position": {
"X": 84.4848,
"Y": 29.529366,
"Z": -625.9231
},
"TerritoryId": 156,
"InteractionType": "WalkTo",
"Fly": true
"$": "0 128 0 0 0 0 -> 1 112 0 0 0 2",
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
2
]
},
{
"DataId": 1009143,
@ -103,17 +101,16 @@
},
"TerritoryId": 156,
"InteractionType": "Interact",
"$": "1 112 0 0 0 2 -> 2 96 0 0 0 34"
},
{
"Position": {
"X": 70.21658,
"Y": 33.066517,
"Z": -697.55524
},
"TerritoryId": 156,
"InteractionType": "WalkTo",
"Fly": true
"Fly": true,
"$": "1 112 0 0 0 2 -> 2 96 0 0 0 34",
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
32
]
},
{
"DataId": 1009148,
@ -124,17 +121,16 @@
},
"TerritoryId": 156,
"InteractionType": "Interact",
"$": "2 96 0 0 0 34 -> 3 80 0 0 0 35"
},
{
"Position": {
"X": 54.462944,
"Y": 25.628618,
"Z": -704.24084
},
"TerritoryId": 156,
"InteractionType": "WalkTo",
"Fly": true
"Fly": true,
"$": "2 96 0 0 0 34 -> 3 80 0 0 0 35",
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
1
]
},
{
"DataId": 1009145,
@ -145,17 +141,16 @@
},
"TerritoryId": 156,
"InteractionType": "Interact",
"$": "3 80 0 0 0 35 -> 4 64 0 0 0 43"
},
{
"Position": {
"X": 45.96064,
"Y": 31.175581,
"Z": -745.2635
},
"TerritoryId": 156,
"InteractionType": "WalkTo",
"Fly": true
"Fly": true,
"$": "3 80 0 0 0 35 -> 4 64 0 0 0 43",
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
8
]
},
{
"DataId": 1009146,
@ -164,19 +159,19 @@
"Y": 31.164318,
"Z": -744.9912
},
"StopDistance": 0.5,
"TerritoryId": 156,
"InteractionType": "Interact",
"$": "4 64 0 0 0 43 -> 5 48 0 0 0 47"
},
{
"Position": {
"X": 23.477123,
"Y": 28.999966,
"Z": -734.3218
},
"TerritoryId": 156,
"InteractionType": "WalkTo",
"Fly": true
"Fly": true,
"$": "4 64 0 0 0 43 -> 5 48 0 0 0 47",
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
4
]
},
{
"DataId": 1009142,
@ -187,7 +182,16 @@
},
"TerritoryId": 156,
"InteractionType": "Interact",
"$": "5 48 0 0 0 47 -> 6 32 0 0 0 111"
"Mount": true,
"$": "5 48 0 0 0 47 -> 6 32 0 0 0 111",
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
64
]
},
{
"Position": {
@ -208,7 +212,15 @@
},
"TerritoryId": 156,
"InteractionType": "Interact",
"$": "6 32 0 0 0 111 -> 7 16 0 0 0 239"
"$": "6 32 0 0 0 111 -> 7 16 0 0 0 239",
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
128
]
},
{
"Position": {
@ -228,7 +240,15 @@
"Z": -688.38025
},
"TerritoryId": 156,
"InteractionType": "Interact"
"InteractionType": "Interact",
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
16
]
}
]
},
@ -237,13 +257,14 @@
"Steps": [
{
"Position": {
"X": 29.328543,
"Y": 21.232033,
"Z": -652.5289
"X": 30.917934,
"Y": 20.495003,
"Z": -656.1909
},
"TerritoryId": 156,
"InteractionType": "WalkTo",
"Fly": true
"Fly": true,
"$": "Rising Stones Door"
},
{
"TerritoryId": 156,
@ -274,6 +295,7 @@
"Y": -1.9957249,
"Z": -42.130188
},
"StopDistance": 7,
"TerritoryId": 351,
"InteractionType": "Interact"
}
@ -289,6 +311,7 @@
"Y": -1.9957249,
"Z": -45.700806
},
"StopDistance": 7,
"TerritoryId": 351,
"InteractionType": "CompleteQuest"
}

View File

@ -46,6 +46,17 @@
{
"Sequence": 2,
"Steps": [
{
"DataId": 1007534,
"Position": {
"X": 1.4800415,
"Y": -3.0000014,
"Z": -48.722107
},
"TerritoryId": 212,
"InteractionType": "AcceptQuest",
"PickUpQuestId": 1048
},
{
"Position": {
"X": 618.9289,

View File

@ -24,16 +24,6 @@
{
"Sequence": 1,
"Steps": [
{
"Position": {
"X": 58.081802,
"Y": -5.4142065,
"Z": -3.134228
},
"TerritoryId": 141,
"InteractionType": "WalkTo",
"Fly": true
},
{
"DataId": 1009050,
"Position": {
@ -50,7 +40,8 @@
3115,
3116,
3117
]
],
"Fly": true
}
]
},

View File

@ -1,6 +1,9 @@
{
"$schema": "https://carvel.li/questionable/quest-1.0",
"Author": "JerryWester",
"TerritoryBlacklist": [
374
],
"QuestSequence": [
{
"Sequence": 0,
@ -24,16 +27,6 @@
{
"Sequence": 1,
"Steps": [
{
"Position": {
"X": 263.44794,
"Y": -8.98996,
"Z": -79.589424
},
"TerritoryId": 152,
"InteractionType": "WalkTo",
"Fly": true
},
{
"DataId": 1009098,
"Position": {
@ -42,23 +35,14 @@
"Z": -77.92786
},
"TerritoryId": 152,
"InteractionType": "Interact"
"InteractionType": "Interact",
"Fly": true
}
]
},
{
"Sequence": 2,
"Steps": [
{
"Position": {
"X": 194.81087,
"Y": -22.105244,
"Z": -399.81537
},
"TerritoryId": 152,
"InteractionType": "WalkTo",
"Fly": true
},
{
"DataId": 1033555,
"Position": {
@ -67,23 +51,14 @@
"Z": -399.8932
},
"TerritoryId": 152,
"InteractionType": "Interact"
"InteractionType": "Interact",
"Fly": true
}
]
},
{
"Sequence": 3,
"Steps": [
{
"Position": {
"X": 106.51002,
"Y": -27.645441,
"Z": -368.2198
},
"TerritoryId": 152,
"InteractionType": "WalkTo",
"Fly": true
},
{
"DataId": 1009119,
"Position": {
@ -92,32 +67,24 @@
"Z": -366.3844
},
"TerritoryId": 152,
"InteractionType": "Interact"
"InteractionType": "Interact",
"Fly": true
}
]
},
{
"Sequence": 4,
"Steps": [
{
"Position": {
"X": 170.76953,
"Y": -30.99653,
"Z": -213.92703
},
"TerritoryId": 152,
"InteractionType": "WalkTo",
"Fly": true
},
{
"Position": {
"X": 190.23474,
"Y": -31.415636,
"Z": -218.26653
},
"StopDistance": 0.25,
"TerritoryId": 152,
"InteractionType": "WalkTo",
"Fly": false
"Fly": true
}
]
},
@ -134,17 +101,6 @@
{
"Sequence": 255,
"Steps": [
{
"Position": {
"X": 21.611284,
"Y": -3.9309695,
"Z": 212.53413
},
"TerritoryId": 152,
"InteractionType": "WalkTo",
"Fly": true,
"AetheryteShortcut": "East Shroud - Hawthorne Hut"
},
{
"DataId": 1009097,
"Position": {
@ -153,7 +109,9 @@
"Z": 211.16956
},
"TerritoryId": 152,
"InteractionType": "CompleteQuest"
"InteractionType": "CompleteQuest",
"Fly": true,
"AetheryteShortcut": "East Shroud - Hawthorne Hut"
}
]
}

View File

@ -87,6 +87,7 @@
"Y": -9.645816,
"Z": -74.48335
},
"StopDistance": 0.5,
"TerritoryId": 154,
"InteractionType": "Combat",
"EnemySpawnType": "AutoOnEnterArea",

View File

@ -67,6 +67,7 @@
"Y": 15.330521,
"Z": -55.832825
},
"StopDistance": 7,
"TerritoryId": 156,
"InteractionType": "Interact"
}
@ -82,6 +83,7 @@
"Y": 15.428448,
"Z": -56.168518
},
"StopDistance": 7,
"TerritoryId": 156,
"InteractionType": "Interact"
}

View File

@ -73,7 +73,15 @@
"TerritoryId": 139,
"InteractionType": "WalkTo",
"Fly": true,
"AetheryteShortcut": "Upper La Noscea - Camp Bronze Lake"
"AetheryteShortcut": "Upper La Noscea - Camp Bronze Lake",
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
-128
]
},
{
"Position": {
@ -83,7 +91,15 @@
},
"TerritoryId": 139,
"InteractionType": "WalkTo",
"TargetTerritoryId": 180
"TargetTerritoryId": 180,
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
-128
]
},
{
"Position": {
@ -93,13 +109,28 @@
},
"TerritoryId": 180,
"InteractionType": "WalkTo",
"Fly": true
"Fly": true,
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
-128
]
},
{
"TerritoryId": 180,
"InteractionType": "AttuneAetheryte",
"Aetheryte": "Outer La Noscea - Camp Overlook",
"StopDistance": 5
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
-128
]
},
{
"Position": {
@ -109,7 +140,15 @@
},
"TerritoryId": 180,
"InteractionType": "WalkTo",
"Fly": true
"Fly": true,
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
-128
]
},
{
"Position": {
@ -119,7 +158,15 @@
},
"TerritoryId": 180,
"InteractionType": "WalkTo",
"Fly": true
"Fly": true,
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
-128
]
},
{
"Position": {
@ -129,7 +176,15 @@
},
"TerritoryId": 180,
"InteractionType": "WalkTo",
"Fly": true
"Fly": true,
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
-128
]
},
{
"DataId": 2000075,
@ -144,7 +199,15 @@
"KillEnemyDataIds": [
9487
],
"$": "0 0 0 0 0 0 -> 16 17 0 0 0 128"
"$": "0 0 0 0 0 0 -> 16 17 0 0 0 128",
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
128
]
},
{
"Position": {
@ -155,7 +218,15 @@
"TerritoryId": 138,
"InteractionType": "WalkTo",
"Fly": true,
"AetheryteShortcut": "Western La Noscea - Aleport"
"AetheryteShortcut": "Western La Noscea - Aleport",
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
-64
]
},
{
"DataId": 2000076,
@ -170,7 +241,15 @@
"KillEnemyDataIds": [
9488
],
"$": "16 17 0 0 0 128 -> 0 17 0 0 0 0"
"$": "16 17 0 0 0 128 -> 0 17 0 0 0 0",
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
64
]
}
]
},
@ -299,7 +378,8 @@
"Z": -465.72064
},
"TerritoryId": 156,
"InteractionType": "CompleteQuest","NextQuestId": 1200
"InteractionType": "CompleteQuest",
"NextQuestId": 1200
}
]
}

View File

@ -1,6 +1,9 @@
{
"$schema": "https://carvel.li/questionable/quest-1.0",
"Author": "JerryWester",
"TerritoryBlacklist": [
151
],
"QuestSequence": [
{
"Sequence": 0,
@ -67,6 +70,7 @@
"Y": 15.33271,
"Z": -68.65039
},
"StopDistance": 7,
"TerritoryId": 156,
"InteractionType": "Interact"
}

View File

@ -0,0 +1,70 @@
{
"$schema": "https://carvel.li/questionable/quest-1.0",
"Author": "liza",
"TerritoryBlacklist": [
171
],
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1000168,
"Position": {
"X": -75.48645,
"Y": -0.5013741,
"Z": -5.081299
},
"TerritoryId": 132,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1006516,
"Position": {
"X": -82.68872,
"Y": 233.23743,
"Z": 317.1892
},
"TerritoryId": 155,
"InteractionType": "Interact",
"AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead"
}
]
},
{
"Sequence": 2,
"Steps": [
{
"TerritoryId": 155,
"InteractionType": "Duty",
"ContentFinderConditionId": 13
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1003281,
"Position": {
"X": 97.520386,
"Y": 40.248554,
"Z": 81.1322
},
"TerritoryId": 128,
"InteractionType": "CompleteQuest",
"AetheryteShortcut": "Limsa Lominsa",
"AethernetShortcut": [
"[Limsa Lominsa] Aetheryte Plaza",
"[Limsa Lominsa] The Aftcastle"
]
}
]
}
]
}

View File

@ -0,0 +1,66 @@
{
"$schema": "https://carvel.li/questionable/quest-1.0",
"Author": "liza",
"TerritoryBlacklist": [
171
],
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1004576,
"Position": {
"X": -141.64954,
"Y": 4.1,
"Z": -114.67157
},
"TerritoryId": 130,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1006516,
"Position": {
"X": -82.68872,
"Y": 233.23743,
"Z": 317.1892
},
"TerritoryId": 155,
"InteractionType": "Interact",
"AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead"
}
]
},
{
"Sequence": 2,
"Steps": [
{
"TerritoryId": 155,
"InteractionType": "Duty",
"ContentFinderConditionId": 13
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1004576,
"Position": {
"X": -141.64954,
"Y": 4.1,
"Z": -114.67157
},
"TerritoryId": 128,
"InteractionType": "CompleteQuest",
"AetheryteShortcut": "Ul'dah"
}
]
}
]
}

View File

@ -20,6 +20,25 @@
{
"Sequence": 255,
"Steps": [
{
"Position": {
"X": 152.25397,
"Y": 14.095841,
"Z": 668.4288
},
"TerritoryId": 135,
"InteractionType": "WalkTo",
"Fly": true,
"AethernetShortcut": [
"[Limsa Lominsa] The Aftcastle",
"[Limsa Lominsa] Tempest Gate (Lower La Noscea)"
]
},
{
"TerritoryId": 135,
"InteractionType": "AttuneAetheryte",
"Aetheryte": "Lower La Noscea - Moraby Drydocks"
},
{
"DataId": 1002484,
"Position": {
@ -29,11 +48,7 @@
},
"TerritoryId": 135,
"InteractionType": "Interact",
"TargetTerritoryId": 250,
"AetheryteShortcut": "Lower La Noscea - Moraby Drydocks",
"SkipIf": [
"AetheryteShortcutIfInSameTerritory"
]
"TargetTerritoryId": 250
},
{
"TerritoryId": 250,

View File

@ -0,0 +1,72 @@
{
"$schema": "https://carvel.li/questionable/quest-1.0",
"Author": "liza",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1000168,
"Position": {
"X": -75.48645,
"Y": -0.5013741,
"Z": -5.081299
},
"TerritoryId": 132,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"Position": {
"X": 152.25397,
"Y": 14.095841,
"Z": 668.4288
},
"TerritoryId": 135,
"InteractionType": "WalkTo",
"Fly": true,
"AetheryteShortcut": "Limsa Lominsa",
"AethernetShortcut": [
"[Limsa Lominsa] Aetheryte Plaza",
"[Limsa Lominsa] Tempest Gate (Lower La Noscea)"
]
},
{
"TerritoryId": 135,
"InteractionType": "AttuneAetheryte",
"Aetheryte": "Lower La Noscea - Moraby Drydocks"
},
{
"DataId": 1002484,
"Position": {
"X": 270.71033,
"Y": 4.4031205,
"Z": 719.9968
},
"TerritoryId": 135,
"InteractionType": "Interact",
"TargetTerritoryId": 250
},
{
"TerritoryId": 250,
"InteractionType": "AttuneAetheryte",
"Aetheryte": "Wolves' Den Pier"
},
{
"DataId": 1005184,
"Position": {
"X": 0.015197754,
"Y": 3.5836844,
"Z": -30.380737
},
"TerritoryId": 250,
"InteractionType": "CompleteQuest"
}
]
}
]
}

View File

@ -0,0 +1,72 @@
{
"$schema": "https://carvel.li/questionable/quest-1.0",
"Author": "liza",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1004576,
"Position": {
"X": -141.64954,
"Y": 4.1,
"Z": -114.67157
},
"TerritoryId": 130,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"Position": {
"X": 152.25397,
"Y": 14.095841,
"Z": 668.4288
},
"TerritoryId": 135,
"InteractionType": "WalkTo",
"Fly": true,
"AetheryteShortcut": "Limsa Lominsa",
"AethernetShortcut": [
"[Limsa Lominsa] Aetheryte Plaza",
"[Limsa Lominsa] Tempest Gate (Lower La Noscea)"
]
},
{
"TerritoryId": 135,
"InteractionType": "AttuneAetheryte",
"Aetheryte": "Lower La Noscea - Moraby Drydocks"
},
{
"DataId": 1002484,
"Position": {
"X": 270.71033,
"Y": 4.4031205,
"Z": 719.9968
},
"TerritoryId": 135,
"InteractionType": "Interact",
"TargetTerritoryId": 250
},
{
"TerritoryId": 250,
"InteractionType": "AttuneAetheryte",
"Aetheryte": "Wolves' Den Pier"
},
{
"DataId": 1005184,
"Position": {
"X": 0.015197754,
"Y": 3.5836844,
"Z": -30.380737
},
"TerritoryId": 250,
"InteractionType": "CompleteQuest"
}
]
}
]
}

View File

@ -40,7 +40,7 @@
},
"TerritoryId": 212,
"InteractionType": "CompleteQuest",
"NextQuestId": 1048
"Comment": "Next quest is picked up as part of 'Moving On'"
}
]
}

View File

@ -87,8 +87,7 @@
"TerritoryId": 146,
"Mount": false,
"InteractionType": "CompleteQuest",
"StopDistance": 5,
"NextQuestId": 1157
"StopDistance": 5
}
]
}

View File

@ -81,8 +81,7 @@
"Z": 175.34143
},
"TerritoryId": 155,
"InteractionType": "CompleteQuest",
"NextQuestId": 1158
"InteractionType": "CompleteQuest"
}
]
}

View File

@ -100,8 +100,7 @@
{
"TerritoryId": 180,
"InteractionType": "AttuneAetheryte",
"Aetheryte": "Outer La Noscea - Camp Overlook",
"StopDistance": 5
"Aetheryte": "Outer La Noscea - Camp Overlook"
},
{
"Position": {

View File

@ -40,7 +40,8 @@
},
"TerritoryId": 156,
"InteractionType": "WalkTo",
"Mount": true
"Mount": true,
"$": "Rising Stones Door"
},
{
"DataId": 1029791,

View File

@ -417,12 +417,18 @@
},
"CompletionQuestVariablesFlags": {
"$ref": "#/$defs/CompletionFlags"
},
"IgnoreQuestMarker": {
"type": "boolean"
}
},
"required": [
"DataId"
]
}
},
"CombatDelaySecondsAtStart": {
"type": "number"
}
},
"required": [

View File

@ -12,4 +12,5 @@ public sealed class ComplexCombatData
public uint? RewardItemId { get; set; }
public int? RewardItemCount { get; set; }
public IList<short?> CompletionQuestVariablesFlags { get; set; } = new List<short?>();
public bool IgnoreQuestMarker { get; }
}

View File

@ -59,6 +59,7 @@ public sealed class QuestStep
public EEnemySpawnType? EnemySpawnType { get; set; }
public IList<uint> KillEnemyDataIds { get; set; } = new List<uint>();
public IList<ComplexCombatData> ComplexCombatData { get; set; } = new List<ComplexCombatData>();
public float? CombatDelaySecondsAtStart { get; set; }
public JumpDestination? JumpDestination { get; set; }
public uint? ContentFinderConditionId { get; set; }

View File

@ -1,5 +1,5 @@
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System;
using System.Collections.Generic;
using System.Diagnostics.CodeAnalysis;
using System.Linq;
using Dalamud.Game.ClientState.Conditions;
@ -16,7 +16,7 @@ using Questionable.Model.V1;
namespace Questionable.Controller;
internal sealed class CombatController
internal sealed class CombatController : IDisposable
{
private readonly List<ICombatModule> _combatModules;
private readonly ITargetManager _targetManager;
@ -39,6 +39,8 @@ internal sealed class CombatController
_clientState = clientState;
_gameFunctions = gameFunctions;
_logger = logger;
_clientState.TerritoryChanged += TerritoryChanged;
}
public bool IsRunning => _currentFight != null;
@ -198,7 +200,14 @@ internal sealed class CombatController
if (battleNpc.BattleNpcKind is BattleNpcSubKind.BattleNpcPart or BattleNpcSubKind.Enemy)
{
var gameObjectStruct = (GameObject*)gameObject.Address;
return gameObjectStruct->NamePlateIconId != 0;
if (gameObjectStruct->NamePlateIconId is 60093 or 60732) // npc that starts a fate or does turn-ins
return false;
var enemyData = _currentFight?.Data.ComplexCombatDatas.FirstOrDefault(x => x.DataId == battleNpc.DataId);
if (enemyData is { IgnoreQuestMarker: true })
return battleNpc.StatusFlags.HasFlag(StatusFlags.InCombat);
else
return gameObjectStruct->NamePlateIconId != 0;
}
else
return false;
@ -218,6 +227,14 @@ internal sealed class CombatController
_currentFight = null;
}
private void TerritoryChanged(ushort territoryId) => Stop();
public void Dispose()
{
_clientState.TerritoryChanged -= TerritoryChanged;
Stop();
}
private sealed class CurrentFight
{
public required ICombatModule Module { get; init; }

View File

@ -20,6 +20,9 @@ internal sealed class MovementOverrideController
new BlacklistedPoint(132, new(45.5f, -8f, 101f), new(50.53978f, -8.046954f, 101.06045f)),
// ul'dah lamp near adventuer's guild
new BlacklistedPoint(130, new(59.5f, 4.25f, -118f), new(60.551353f, 4f, -119.76446f)),
// eastern thanalan
new BlacklistedPoint(145, new(-139.75f, -32.25f, 75.25f), new(-139.57748f, -33.785175f, 77.87906f)),
@ -32,6 +35,9 @@ internal sealed class MovementOverrideController
// coerthas central highlands
new BlacklistedPoint(155, new(-478.75f, 149.25f, -305.75f), new(-476.1802f, 149.06573f, -304.7811f)),
// rising stones, plant boxes
new BlacklistedPoint(351, new(3.25f, 0.75f, 8.5f),new(4f, 0f, 9.5f)),
new BlacklistedPoint(1189, new(574f, -142.25f, 504.25f), new(574.44183f, -142.12766f, 507.60065f)),
// heritage found: yyupye's halo (farm, npc: Mahuwsa)

View File

@ -3,6 +3,7 @@ using System.Collections.Generic;
using System.Linq;
using Microsoft.Extensions.DependencyInjection;
using Questionable.Controller.Steps.Common;
using Questionable.Controller.Steps.Shared;
using Questionable.Controller.Utils;
using Questionable.Model;
using Questionable.Model.V1;
@ -16,20 +17,28 @@ internal static class Combat
public IEnumerable<ITask> CreateAllTasks(Quest quest, QuestSequence sequence, QuestStep step)
{
if (step.InteractionType != EInteractionType.Combat)
return [];
yield break;
ArgumentNullException.ThrowIfNull(step.EnemySpawnType);
var unmount = serviceProvider.GetRequiredService<UnmountTask>();
yield return serviceProvider.GetRequiredService<UnmountTask>();
if (step.CombatDelaySecondsAtStart != null)
{
yield return serviceProvider.GetRequiredService<WaitAtStart.WaitDelay>()
.With(TimeSpan.FromSeconds(step.CombatDelaySecondsAtStart.Value));
}
switch (step.EnemySpawnType)
{
case EEnemySpawnType.AfterInteraction:
{
ArgumentNullException.ThrowIfNull(step.DataId);
var interaction = serviceProvider.GetRequiredService<Interact.DoInteract>()
yield return serviceProvider.GetRequiredService<Interact.DoInteract>()
.With(step.DataId.Value, true);
return [unmount, interaction, CreateTask(quest, sequence, step)];
yield return CreateTask(quest, sequence, step);
break;
}
case EEnemySpawnType.AfterItemUse:
@ -37,17 +46,20 @@ internal static class Combat
ArgumentNullException.ThrowIfNull(step.DataId);
ArgumentNullException.ThrowIfNull(step.ItemId);
var useItem = serviceProvider.GetRequiredService<UseItem.UseOnObject>()
yield return serviceProvider.GetRequiredService<UseItem.UseOnObject>()
.With(step.DataId.Value, step.ItemId.Value);
return [unmount, useItem, CreateTask(quest, sequence, step)];
yield return CreateTask(quest, sequence, step);
break;
}
case EEnemySpawnType.AutoOnEnterArea:
// automatically triggered when entering area, i.e. only unmount
return [unmount, CreateTask(quest, sequence, step)];
yield return CreateTask(quest, sequence, step);
break;
case EEnemySpawnType.OverworldEnemies:
return [unmount, CreateTask(quest, sequence, step)];
yield return CreateTask(quest, sequence, step);
break;
default:
throw new ArgumentOutOfRangeException(nameof(step), $"Unknown spawn type {step.EnemySpawnType}");

View File

@ -1,6 +1,6 @@
<Project Sdk="Dalamud.NET.Sdk/9.0.2">
<PropertyGroup>
<Version>1.13</Version>
<Version>1.14</Version>
<OutputPath>dist</OutputPath>
<PathMap Condition="$(SolutionDir) != ''">$(SolutionDir)=X:\</PathMap>
</PropertyGroup>

View File

@ -1,10 +1,8 @@
using System.Linq;
using Dalamud.Interface;
using Dalamud.Interface.Colors;
using Dalamud.Interface.Utility.Raii;
using FFXIVClientStructs.FFXIV.Client.Game.UI;
using FFXIVClientStructs.FFXIV.Common.Math;
using ImGuiNET;
using Questionable.Data;
namespace Questionable.Windows.QuestComponents;
@ -13,6 +11,7 @@ internal sealed class ARealmRebornComponent
{
private const ushort ATimeForEveryPurpose = 425;
private const ushort TheUltimateWeapon = 524;
private const ushort GoodIntentions = 363;
private static readonly ushort[] RequiredPrimalInstances = [20004, 20006, 20005];
private static readonly ushort[] RequiredAllianceRaidQuests = [1709, 1200, 1201, 1202, 1203, 1474, 494, 495];
@ -30,12 +29,14 @@ internal sealed class ARealmRebornComponent
_uiUtils = uiUtils;
}
public bool ShouldDraw => !_gameFunctions.IsQuestComplete(ATimeForEveryPurpose) &&
public bool ShouldDraw => !_gameFunctions.IsQuestAcceptedOrComplete(ATimeForEveryPurpose) &&
_gameFunctions.IsQuestComplete(TheUltimateWeapon);
public void Draw()
{
DrawPrimals();
if (!_gameFunctions.IsQuestAcceptedOrComplete(GoodIntentions))
DrawPrimals();
DrawAllianceRaids();
}