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(), .AsSyntaxNodeOrToken(),
AssignmentList(nameof(QuestStep.ComplexCombatData), step.ComplexCombatData) AssignmentList(nameof(QuestStep.ComplexCombatData), step.ComplexCombatData)
.AsSyntaxNodeOrToken(), .AsSyntaxNodeOrToken(),
Assignment(nameof(QuestStep.CombatDelaySecondsAtStart), step.CombatDelaySecondsAtStart,
emptyStep.CombatDelaySecondsAtStart)
.AsSyntaxNodeOrToken(),
Assignment(nameof(QuestStep.JumpDestination), step.JumpDestination, Assignment(nameof(QuestStep.JumpDestination), step.JumpDestination,
emptyStep.JumpDestination) emptyStep.JumpDestination)
.AsSyntaxNodeOrToken(), .AsSyntaxNodeOrToken(),

View File

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

View File

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

View File

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

View File

@ -20,6 +20,17 @@
{ {
"Sequence": 1, "Sequence": 1,
"Steps": [ "Steps": [
{
"DataId": 1006693,
"Position": {
"X": 39.29187,
"Y": 1.2148079,
"Z": 0.8086548
},
"TerritoryId": 212,
"InteractionType": "AcceptQuest",
"PickUpQuestId": 1047
},
{ {
"DataId": 2001717, "DataId": 2001717,
"Position": { "Position": {
@ -29,7 +40,10 @@
}, },
"TerritoryId": 212, "TerritoryId": 212,
"InteractionType": "Interact", "InteractionType": "Interact",
"TargetTerritoryId": 212 "TargetTerritoryId": 212,
"SkipIf": [
"WakingSandsMainArea"
]
}, },
{ {
"DataId": 1007533, "DataId": 1007533,
@ -40,7 +54,15 @@
}, },
"TerritoryId": 212, "TerritoryId": 212,
"InteractionType": "Interact", "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, "DataId": 1007534,
@ -51,7 +73,15 @@
}, },
"TerritoryId": 212, "TerritoryId": 212,
"InteractionType": "Interact", "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, "DataId": 1007531,
@ -60,9 +90,18 @@
"Y": -3.0000012, "Y": -3.0000012,
"Z": -52.71997 "Z": -52.71997
}, },
"StopDistance": 7,
"TerritoryId": 212, "TerritoryId": 212,
"InteractionType": "Interact", "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, "DataId": 1007530,
@ -71,9 +110,18 @@
"Y": -3.0000012, "Y": -3.0000012,
"Z": -52.262207 "Z": -52.262207
}, },
"StopDistance": 7,
"TerritoryId": 212, "TerritoryId": 212,
"InteractionType": "Interact", "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, "DataId": 1007478,
@ -83,7 +131,15 @@
"Z": -56.229553 "Z": -56.229553
}, },
"TerritoryId": 212, "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", "$schema": "https://carvel.li/questionable/quest-1.0",
"Author": "JerryWester", "Author": ["JerryWester", "liza"],
"QuestSequence": [ "QuestSequence": [
{ {
"Sequence": 0, "Sequence": 0,
@ -46,6 +46,7 @@
"Y": -2.3519497, "Y": -2.3519497,
"Z": -240.40594 "Z": -240.40594
}, },
"StopDistance": 7,
"TerritoryId": 133, "TerritoryId": 133,
"InteractionType": "Interact", "InteractionType": "Interact",
"TargetTerritoryId": 152 "TargetTerritoryId": 152
@ -80,9 +81,149 @@
"Sequence": 4, "Sequence": 4,
"Steps": [ "Steps": [
{ {
"Position": {
"X": -496.3975,
"Y": 7.8566074,
"Z": 71.93724
},
"StopDistance": 0.5,
"TerritoryId": 152, "TerritoryId": 152,
"InteractionType": "WaitForManualProgress", "InteractionType": "Combat",
"Comment": "Yeah, no idea how to automate this, sorry :/" "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, "Y": 12.293127,
"Z": -37.30841 "Z": -37.30841
}, },
"StopDistance": 4,
"TerritoryId": 152, "TerritoryId": 152,
"InteractionType": "Interact" "InteractionType": "Interact"
} }
@ -111,8 +253,10 @@
"Y": 12.25293, "Y": 12.25293,
"Z": -35.080566 "Z": -35.080566
}, },
"StopDistance": 4,
"TerritoryId": 152, "TerritoryId": 152,
"InteractionType": "Interact" "InteractionType": "Interact",
"DelaySecondsAtStart": 3
} }
] ]
}, },

View File

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

View File

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

View File

@ -12,6 +12,7 @@
"Y": 44.999996, "Y": 44.999996,
"Z": -220.93542 "Z": -220.93542
}, },
"StopDistance": 7,
"TerritoryId": 140, "TerritoryId": 140,
"InteractionType": "AcceptQuest", "InteractionType": "AcceptQuest",
"AetheryteShortcut": "Western Thanalan - Horizon", "AetheryteShortcut": "Western Thanalan - Horizon",
@ -127,7 +128,15 @@
"[Ul'dah] Adventurers' Guild", "[Ul'dah] Adventurers' Guild",
"[Ul'dah] Sapphire Avenue Exchange" "[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, "DataId": 1001966,
@ -137,7 +146,15 @@
"Z": -83.84839 "Z": -83.84839
}, },
"TerritoryId": 131, "TerritoryId": 131,
"InteractionType": "Interact" "InteractionType": "Interact",
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
128
]
} }
] ]
}, },

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -59,15 +59,24 @@
"Sequence": 3, "Sequence": 3,
"Steps": [ "Steps": [
{ {
"DataId": 1001484,
"Position": { "Position": {
"X": 94.5531, "X": 93.247925,
"Y": 0.3407526, "Y": 0.34075317,
"Z": -270.22217 "Z": -272.60242
}, },
"TerritoryId": 141, "TerritoryId": 141,
"InteractionType": "WalkTo", "InteractionType": "Interact",
"AetheryteShortcut": "Central Thanalan - Black Brush Station", "AetheryteShortcut": "Central Thanalan - Black Brush Station",
"Fly": true "Fly": true,
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
128
]
}, },
{ {
"DataId": 1001605, "DataId": 1001605,
@ -85,18 +94,7 @@
null, null,
null, null,
64 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, "Sequence": 255,
"Steps": [ "Steps": [
{
"Position": {
"X": 21.35542,
"Y": -3.9001584,
"Z": 211.87386
},
"TerritoryId": 152,
"InteractionType": "WalkTo",
"Fly": true,
"AetheryteShortcut": "East Shroud - Hawthorne Hut"
},
{ {
"DataId": 1009097, "DataId": 1009097,
"Position": { "Position": {
@ -91,7 +80,9 @@
"Z": 211.16956 "Z": 211.16956
}, },
"TerritoryId": 152, "TerritoryId": 152,
"InteractionType": "CompleteQuest" "InteractionType": "CompleteQuest",
"Fly": true,
"AetheryteShortcut": "East Shroud - Hawthorne Hut"
} }
] ]
} }

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -1,6 +1,9 @@
{ {
"$schema": "https://carvel.li/questionable/quest-1.0", "$schema": "https://carvel.li/questionable/quest-1.0",
"Author": "JerryWester", "Author": "JerryWester",
"TerritoryBlacklist": [
151
],
"QuestSequence": [ "QuestSequence": [
{ {
"Sequence": 0, "Sequence": 0,
@ -67,6 +70,7 @@
"Y": 15.33271, "Y": 15.33271,
"Z": -68.65039 "Z": -68.65039
}, },
"StopDistance": 7,
"TerritoryId": 156, "TerritoryId": 156,
"InteractionType": "Interact" "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, "Sequence": 255,
"Steps": [ "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, "DataId": 1002484,
"Position": { "Position": {
@ -29,11 +48,7 @@
}, },
"TerritoryId": 135, "TerritoryId": 135,
"InteractionType": "Interact", "InteractionType": "Interact",
"TargetTerritoryId": 250, "TargetTerritoryId": 250
"AetheryteShortcut": "Lower La Noscea - Moraby Drydocks",
"SkipIf": [
"AetheryteShortcutIfInSameTerritory"
]
}, },
{ {
"TerritoryId": 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, "TerritoryId": 212,
"InteractionType": "CompleteQuest", "InteractionType": "CompleteQuest",
"NextQuestId": 1048 "Comment": "Next quest is picked up as part of 'Moving On'"
} }
] ]
} }

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -12,4 +12,5 @@ public sealed class ComplexCombatData
public uint? RewardItemId { get; set; } public uint? RewardItemId { get; set; }
public int? RewardItemCount { get; set; } public int? RewardItemCount { get; set; }
public IList<short?> CompletionQuestVariablesFlags { get; set; } = new List<short?>(); 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 EEnemySpawnType? EnemySpawnType { get; set; }
public IList<uint> KillEnemyDataIds { get; set; } = new List<uint>(); public IList<uint> KillEnemyDataIds { get; set; } = new List<uint>();
public IList<ComplexCombatData> ComplexCombatData { get; set; } = new List<ComplexCombatData>(); public IList<ComplexCombatData> ComplexCombatData { get; set; } = new List<ComplexCombatData>();
public float? CombatDelaySecondsAtStart { get; set; }
public JumpDestination? JumpDestination { get; set; } public JumpDestination? JumpDestination { get; set; }
public uint? ContentFinderConditionId { get; set; } public uint? ContentFinderConditionId { get; set; }

View File

@ -1,5 +1,5 @@
using System.Collections.Generic; using System;
using System.Collections.ObjectModel; using System.Collections.Generic;
using System.Diagnostics.CodeAnalysis; using System.Diagnostics.CodeAnalysis;
using System.Linq; using System.Linq;
using Dalamud.Game.ClientState.Conditions; using Dalamud.Game.ClientState.Conditions;
@ -16,7 +16,7 @@ using Questionable.Model.V1;
namespace Questionable.Controller; namespace Questionable.Controller;
internal sealed class CombatController internal sealed class CombatController : IDisposable
{ {
private readonly List<ICombatModule> _combatModules; private readonly List<ICombatModule> _combatModules;
private readonly ITargetManager _targetManager; private readonly ITargetManager _targetManager;
@ -39,6 +39,8 @@ internal sealed class CombatController
_clientState = clientState; _clientState = clientState;
_gameFunctions = gameFunctions; _gameFunctions = gameFunctions;
_logger = logger; _logger = logger;
_clientState.TerritoryChanged += TerritoryChanged;
} }
public bool IsRunning => _currentFight != null; public bool IsRunning => _currentFight != null;
@ -198,7 +200,14 @@ internal sealed class CombatController
if (battleNpc.BattleNpcKind is BattleNpcSubKind.BattleNpcPart or BattleNpcSubKind.Enemy) if (battleNpc.BattleNpcKind is BattleNpcSubKind.BattleNpcPart or BattleNpcSubKind.Enemy)
{ {
var gameObjectStruct = (GameObject*)gameObject.Address; 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 else
return false; return false;
@ -218,6 +227,14 @@ internal sealed class CombatController
_currentFight = null; _currentFight = null;
} }
private void TerritoryChanged(ushort territoryId) => Stop();
public void Dispose()
{
_clientState.TerritoryChanged -= TerritoryChanged;
Stop();
}
private sealed class CurrentFight private sealed class CurrentFight
{ {
public required ICombatModule Module { get; init; } 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)), 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 // eastern thanalan
new BlacklistedPoint(145, new(-139.75f, -32.25f, 75.25f), new(-139.57748f, -33.785175f, 77.87906f)), 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 // coerthas central highlands
new BlacklistedPoint(155, new(-478.75f, 149.25f, -305.75f), new(-476.1802f, 149.06573f, -304.7811f)), 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)), new BlacklistedPoint(1189, new(574f, -142.25f, 504.25f), new(574.44183f, -142.12766f, 507.60065f)),
// heritage found: yyupye's halo (farm, npc: Mahuwsa) // heritage found: yyupye's halo (farm, npc: Mahuwsa)

View File

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

View File

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

View File

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