Compare commits

...

13 Commits

52 changed files with 1661 additions and 79 deletions

View File

@ -1,5 +1,5 @@
<Project>
<PropertyGroup>
<Version>3.0</Version>
<Version>3.2</Version>
</PropertyGroup>
</Project>

View File

@ -0,0 +1,195 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "Cacahuetes",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1000197,
"Position": {
"X": 201.31226,
"Y": -3.1634123e-15,
"Z": 43.900146
},
"TerritoryId": 132,
"InteractionType": "AcceptQuest",
"AetheryteShortcut": "Gridania",
"AethernetShortcut": [
"[Gridania] Aetheryte Plaza",
"[Gridania] Archers' Guild"
],
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
}
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1000200,
"Position": {
"X": 209.55212,
"Y": 0.9999819,
"Z": 35.01941
},
"TerritoryId": 132,
"InteractionType": "Interact",
"DialogueChoices": [
{
"Type": "YesNo",
"Prompt": "TEXT_CLSARC000_00021_Q1_000_1",
"Yes": true
}
]
}
]
},
{
"Sequence": 2,
"Steps": [
{
"Position": {
"X": 97.18397,
"Y": 17.128555,
"Z": -269.5008
},
"TerritoryId": 148,
"AethernetShortcut": [
"[Gridania] Archers' Guild",
"[Gridania] Blue Badger Gate (Central Shroud)"
],
"InteractionType": "Combat",
"EnemySpawnType": "OverworldEnemies",
"ComplexCombatData": [
{
"DataId": 37,
"CompletionQuestVariablesFlags": [
{
"Low": 3
},
null,
null,
null,
null,
null
],
"MinimumKillCount": 3
}
],
"CompletionQuestVariablesFlags": [
{
"Low": 3
},
null,
null,
null,
null,
null
],
"$": "0 0 0 0 0 0 -> 19 0 0 0 0 0"
},
{
"Position": {
"X": 119.449745,
"Y": 17.399649,
"Z": -259.6467
},
"TerritoryId": 148,
"InteractionType": "Combat",
"EnemySpawnType": "OverworldEnemies",
"ComplexCombatData": [
{
"DataId": 49,
"CompletionQuestVariablesFlags": [
null,
{
"High": 3
},
null,
null,
null,
null
],
"MinimumKillCount": 3
}
],
"CompletionQuestVariablesFlags": [
null,
{
"High": 3
},
null,
null,
null,
null
],
"$": "19 0 0 0 0 0 -> 35 48 0 0 0 0"
},
{
"Position": {
"X": 83.756714,
"Y": 4.1801105,
"Z": -191.24133
},
"TerritoryId": 148,
"InteractionType": "Combat",
"EnemySpawnType": "OverworldEnemies",
"ComplexCombatData": [
{
"DataId": 47,
"CompletionQuestVariablesFlags": [
null,
{
"Low": 3
},
null,
null,
null,
null
],
"MinimumKillCount": 3
}
],
"CompletionQuestVariablesFlags": [
null,
{
"Low": 3
},
null,
null,
null,
null
],
"$": "35 48 0 0 0 0 -> 35 51 0 0 0 0 // This one automatically went to 0 0 0 0 0 0 so I am not sure about the 51 part"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1000200,
"Position": {
"X": 209.55212,
"Y": 0.9999819,
"Z": 35.01941
},
"AetheryteShortcut": "Gridania",
"AethernetShortcut": [
"[Gridania] Aetheryte Plaza",
"[Gridania] Archers' Guild"
],
"StopDistance": 7,
"TerritoryId": 132,
"InteractionType": "CompleteQuest",
"NextQuestId": 46
}
]
}
]
}

View File

@ -0,0 +1,356 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "Cacahuetes",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1000200,
"Position": {
"X": 209.55212,
"Y": 0.9999819,
"Z": 35.01941
},
"StopDistance": 7,
"TerritoryId": 132,
"InteractionType": "AcceptQuest",
"AetheryteShortcut": "Gridania",
"AethernetShortcut": [
"[Gridania] Aetheryte Plaza",
"[Gridania] Archers' Guild"
],
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
}
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1000199,
"Position": {
"X": 211.13904,
"Y": 1.5032018e-5,
"Z": 28.580078
},
"TerritoryId": 132,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 2,
"Steps": [
{
"Position": {
"X": -87.448326,
"Y": -3.8114734,
"Z": -77.68485
},
"TerritoryId": 148,
"InteractionType": "WalkTo",
"AetheryteShortcut": "Central Shroud - Bentbranch Meadows",
"Fly": true
},
{
"DataId": 2001173,
"Position": {
"X": -88.24298,
"Y": 3.768982,
"Z": -88.24298
},
"TerritoryId": 148,
"StopDistance": 15,
"InteractionType": "Action",
"Action": "Heavy Shot",
"CompletionQuestVariablesFlags": [null, null, null, null, null, 2]
},
{
"Position": {
"X": -113.806755,
"Y": -3.824695,
"Z": -61.20561
},
"TerritoryId": 148,
"InteractionType": "WalkTo",
"SkipConditions": {
"StepIf": {
"CompletionQuestVariablesFlags": [null, null, null, null, null, 4]
}
}
},
{
"DataId": 2001171,
"Position": {
"X": -115.58716,
"Y": -3.402832,
"Z": -51.07196
},
"TerritoryId": 148,
"StopDistance": 15,
"InteractionType": "Action",
"Action": "Heavy Shot",
"CompletionQuestVariablesFlags": [null, null, null, null, null, 4]
},
{
"Position": {
"X": -142.90863,
"Y": -1.355497,
"Z": -69.45994
},
"TerritoryId": 148,
"InteractionType": "WalkTo",
"SkipConditions": {
"StepIf": {
"CompletionQuestVariablesFlags": [null, null, null, null, null, 8]
}
}
},
{
"DataId": 2000940,
"Position": {
"X": -143.32806,
"Y": -0.41204834,
"Z": -58.884644
},
"TerritoryId": 148,
"StopDistance": 15,
"InteractionType": "Action",
"Action": "Heavy Shot",
"CompletionQuestVariablesFlags": [null, null, null, null, null, 8]
},
{
"Position": {
"X": -154.95493,
"Y": 4.0352364,
"Z": -132.85217
},
"TerritoryId": 148,
"InteractionType": "WalkTo",
"SkipConditions": {
"StepIf": {
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
16
]
}
}
},
{
"DataId": 2000939,
"Position": {
"X": -166.97955,
"Y": 10.2387085,
"Z": -138.41461
},
"TerritoryId": 148,
"StopDistance": 15,
"InteractionType": "Action",
"Action": "Heavy Shot",
"CompletionQuestVariablesFlags": [null, null, null, null, null, 16]
},
{
"Position": {
"X": -114.08684,
"Y": 7.6589117,
"Z": -173.19547
},
"TerritoryId": 148,
"InteractionType": "WalkTo",
"SkipConditions": {
"StepIf": {
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
32
]
}
}
},
{
"DataId": 2000938,
"Position": {
"X": -120.68359,
"Y": 12.49707,
"Z": -182.39111
},
"TerritoryId": 148,
"StopDistance": 15,
"InteractionType": "Action",
"Action": "Heavy Shot",
"CompletionQuestVariablesFlags": [null, null, null, null, null, 32]
},
{
"Position": {
"X": -74.71171,
"Y": -4,
"Z": -190.44055
},
"TerritoryId": 148,
"InteractionType": "WalkTo"
},
{
"DataId": 2000937,
"Position": {
"X": -80.76605,
"Y": -2.3651733,
"Z": -196.49048
},
"TerritoryId": 148,
"StopDistance": 15,
"InteractionType": "Action",
"Action": "Heavy Shot"
}
]
},
{
"Sequence": 3,
"Steps": [
{
"DataId": 1000199,
"Position": {
"X": 211.13904,
"Y": 1.5032018e-5,
"Z": 28.580078
},
"TerritoryId": 132,
"InteractionType": "Interact",
"AetheryteShortcut": "Gridania",
"AethernetShortcut": [
"[Gridania] Aetheryte Plaza",
"[Gridania] Archers' Guild"
]
}
]
},
{
"Sequence": 4,
"Steps": [
{
"DataId": 1001263,
"Position": {
"X": 181.41443,
"Y": -2.3519497,
"Z": -240.40594
},
"TerritoryId": 133,
"InteractionType": "Interact",
"TargetTerritoryId": 152,
"AethernetShortcut": [
"[Gridania] Archers' Guild",
"[Gridania] Lancers' Guild"
],
"SkipConditions": {
"StepIf": { "AetheryteUnlocked": "East Shroud - Hawthorne Hut" }
}
},
{
"Position": {
"X": -431.09494,
"Y": 2.9039853,
"Z": 239.26413
},
"StopDistance": 0.5,
"TerritoryId": 152,
"InteractionType": "Combat",
"EnemySpawnType": "OverworldEnemies",
"ComplexCombatData": [
{
"DataId": 5,
"MinimumKillCount": 8,
"$": "Slay northern vultures.",
"CompletionQuestVariablesFlags": [
null,
{
"High": 8
},
null,
null,
null,
null
]
},
{
"DataId": 39,
"MinimumKillCount": 8,
"$": "Slay tree slugs.",
"CompletionQuestVariablesFlags": [
{
"Low": 8
},
null,
null,
null,
null,
null
]
}
],
"AetheryteShortcut": "East Shroud - Hawthorne Hut",
"Fly": true,
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
}
}
]
},
{
"Sequence": 5,
"Steps": [
{
"DataId": 1000199,
"Position": {
"X": 211.13904,
"Y": 1.5032018e-5,
"Z": 28.580078
},
"TerritoryId": 132,
"InteractionType": "Interact",
"AetheryteShortcut": "Gridania",
"AethernetShortcut": [
"[Gridania] Aetheryte Plaza",
"[Gridania] Archers' Guild"
]
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1000200,
"Position": {
"X": 209.55212,
"Y": 0.9999819,
"Z": 35.01941
},
"StopDistance": 7,
"TerritoryId": 132,
"InteractionType": "CompleteQuest",
"DialogueChoices": [
{
"Type": "YesNo",
"Prompt": "TEXT_CLSARC002_00067_Q1_000_1",
"Yes": true
}
],
"NextQuestId": 68
}
]
}
]
}

View File

@ -0,0 +1,112 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "liza",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1008950,
"Position": {
"X": 29.19043,
"Y": -1.4123198,
"Z": 52.658813
},
"TerritoryId": 132,
"InteractionType": "AcceptQuest",
"AetheryteShortcut": "Gridania",
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
}
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1001263,
"Position": {
"X": 181.41443,
"Y": -2.3519497,
"Z": -240.40594
},
"TerritoryId": 133,
"InteractionType": "Interact",
"TargetTerritoryId": 152,
"AethernetShortcut": [
"[Gridania] Aetheryte Plaza",
"[Gridania] Lancers' Guild"
],
"SkipConditions": {
"StepIf": {
"AetheryteUnlocked": "East Shroud - Hawthorne Hut"
}
}
},
{
"TerritoryId": 152,
"InteractionType": "AttuneAetheryte",
"Aetheryte": "East Shroud - Hawthorne Hut",
"SkipConditions": {
"StepIf": {
"AetheryteUnlocked": "East Shroud - Hawthorne Hut"
}
}
},
{
"Position": {
"X": -53.214554,
"Y": -8.980761,
"Z": 297.15152
},
"TerritoryId": 152,
"InteractionType": "Combat",
"EnemySpawnType": "AutoOnEnterArea",
"KillEnemyDataIds": [
12
],
"AetheryteShortcut": "East Shroud - Hawthorne Hut",
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
}
},
{
"DataId": 1008951,
"Position": {
"X": -51.651794,
"Y": -8.992504,
"Z": 296.9253
},
"TerritoryId": 152,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1000233,
"Position": {
"X": 168.65796,
"Y": 15.5,
"Z": -95.99457
},
"StopDistance": 0.5,
"TerritoryId": 133,
"InteractionType": "CompleteQuest",
"AetheryteShortcut": "Gridania",
"AethernetShortcut": [
"[Gridania] Aetheryte Plaza",
"[Gridania] Leatherworkers' Guild & Shaded Bower"
]
}
]
}
]
}

View File

@ -17,10 +17,7 @@
"InteractionType": "AcceptQuest",
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true,
"InTerritory": [
129
]
"InSameTerritory": true
}
}
}
@ -71,4 +68,3 @@
}
]
}

View File

@ -0,0 +1,77 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "liza",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1008798,
"Position": {
"X": -93.06476,
"Y": 4,
"Z": -124.712036
},
"TerritoryId": 130,
"InteractionType": "AcceptQuest",
"AetheryteShortcut": "Ul'dah",
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
}
}
]
},
{
"Sequence": 1,
"Steps": [
{
"Position": {
"X": -240.09776,
"Y": -37.803402,
"Z": 105.18645
},
"StopDistance": 0.5,
"TerritoryId": 145,
"InteractionType": "Combat",
"AetheryteShortcut": "Eastern Thanalan - Camp Drybone",
"EnemySpawnType": "AutoOnEnterArea",
"KillEnemyDataIds": [
138
]
},
{
"DataId": 1008799,
"Position": {
"X": -237.72034,
"Y": -37.77224,
"Z": 103.4104
},
"TerritoryId": 145,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1001963,
"Position": {
"X": 106.06543,
"Y": 4.642026,
"Z": -72.007385
},
"TerritoryId": 131,
"InteractionType": "CompleteQuest",
"AetheryteShortcut": "Ul'dah",
"AethernetShortcut": [
"[Ul'dah] Aetheryte Plaza",
"[Ul'dah] Sapphire Avenue Exchange"
]
}
]
}
]
}

View File

@ -28,7 +28,7 @@
"Z": -210.22363
},
"TerritoryId": 622,
"InteractionType": "Instruction",
"InteractionType": "Snipe",
"Comment": "Snipe sheep"
}
]

View File

@ -54,7 +54,7 @@
"Z": 208.484
},
"TerritoryId": 787,
"InteractionType": "Instruction",
"InteractionType": "Snipe",
"Comment": "Far on the left"
}
]

View File

@ -1,7 +1,6 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "liza",
"Disabled": true,
"Author": "plogon_enjoyer",
"QuestSequence": [
{
"Sequence": 0,
@ -22,7 +21,51 @@
{
"Sequence": 1,
"Steps": [
{
"Position": {
"X": -169.52124,
"Y": 41.96321,
"Z": -23.855082
},
"TerritoryId": 612,
"InteractionType": "Combat",
"EnemySpawnType": "OverworldEnemies",
"KillEnemyDataIds": [8589],
"Fly": true,
"Land": true,
"RequiredQuestVariables": [null, null, [16], null, null, null],
"CombatDelaySecondsAtStart": 1
},
{
"Position": {
"X": -259.28268,
"Y": 49.18244,
"Z": 33.798065
},
"TerritoryId": 612,
"InteractionType": "Combat",
"EnemySpawnType": "OverworldEnemies",
"KillEnemyDataIds": [8589],
"Fly": true,
"Land": true,
"RequiredQuestVariables": [null, null, [32], null, null, null],
"CombatDelaySecondsAtStart": 1
},
{
"Position": {
"X": -219.26901,
"Y": 43.36,
"Z": 90.7601
},
"TerritoryId": 612,
"InteractionType": "Combat",
"EnemySpawnType": "OverworldEnemies",
"KillEnemyDataIds": [8589],
"Fly": true,
"Land": true,
"RequiredQuestVariables": [null, null, [48], null, null, null],
"CombatDelaySecondsAtStart": 1
}
]
},
{

View File

@ -1,7 +1,6 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "liza",
"Disabled": true,
"Author": "plogon_enjoyer",
"QuestSequence": [
{
"Sequence": 0,
@ -22,7 +21,65 @@
{
"Sequence": 1,
"Steps": [
{
"DataId": 2009347,
"Position": {
"X": 35.965454,
"Y": 51.255005,
"Z": 292.37805
},
"TerritoryId": 612,
"InteractionType": "Interact",
"Fly": true
}
]
},
{
"Sequence": 2,
"Steps": [
{
"DataId": 1025072,
"Position": {
"X": 94.04126,
"Y": 41.171764,
"Z": 376.57727
},
"TerritoryId": 612,
"InteractionType": "Interact",
"Fly": true
}
]
},
{
"Sequence": 3,
"Steps": [
{
"DataId": 2009347,
"Position": {
"X": 35.965454,
"Y": 51.255005,
"Z": 292.37805
},
"TerritoryId": 612,
"InteractionType": "Interact",
"Fly": true
}
]
},
{
"Sequence": 4,
"Steps": [
{
"DataId": 1025072,
"Position": {
"X": 94.04126,
"Y": 41.171764,
"Z": 376.57727
},
"TerritoryId": 612,
"InteractionType": "Interact",
"Fly": true
}
]
},
{

View File

@ -0,0 +1,160 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "plogon_enjoyer",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1024771,
"Position": {
"X": 12.008789,
"Y": 55.97821,
"Z": 237.96448
},
"TerritoryId": 612,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1024915,
"Position": {
"X": -127.45862,
"Y": 41.197662,
"Z": 7.248047
},
"TerritoryId": 612,
"InteractionType": "Interact",
"Fly": true
}
]
},
{
"Sequence": 2,
"Steps": [
{
"DataId": 1024915,
"Position": {
"X": -127.45862,
"Y": 41.197662,
"Z": 7.248047
},
"TerritoryId": 612,
"InteractionType": "UseItem",
"GroundTarget": true,
"ItemId": 2002429
}
]
},
{
"Sequence": 3,
"Steps": [
{
"DataId": 1024915,
"Position": {
"X": -127.45862,
"Y": 41.197662,
"Z": 7.248047
},
"TerritoryId": 612,
"InteractionType": "UseItem",
"GroundTarget": true,
"ItemId": 2002429
}
]
},
{
"Sequence": 4,
"Steps": [
{
"DataId": 1024915,
"Position": {
"X": -127.45862,
"Y": 41.197662,
"Z": 7.248047
},
"TerritoryId": 612,
"InteractionType": "UseItem",
"GroundTarget": true,
"ItemId": 2002429
}
]
},
{
"Sequence": 5,
"Steps": [
{
"DataId": 1019486,
"Position": {
"X": -116.746826,
"Y": 0.6342248,
"Z": -55.832825
},
"TerritoryId": 635,
"InteractionType": "Interact",
"Mount": true,
"AetheryteShortcut": "Rhalgr's Reach",
"AethernetShortcut": [
"[Rhalgr's Reach] Aetheryte Plaza",
"[Rhalgr's Reach] Western Rhalgr's Reach"
]
}
]
},
{
"Sequence": 6,
"Steps": [
{
"Position": {
"X": -496.6736,
"Y": 118.65279,
"Z": -424.7939
},
"TerritoryId": 612,
"InteractionType": "Combat",
"EnemySpawnType": "AutoOnEnterArea",
"KillEnemyDataIds": [8577],
"Fly": true,
"Land": true,
"AetheryteShortcut": "Fringes - Castrum Oriens"
}
]
},
{
"Sequence": 7,
"Steps": [
{
"DataId": 1024920,
"Position": {
"X": -495.01794,
"Y": 118.79865,
"Z": -427.1153
},
"TerritoryId": 612,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1024952,
"Position": {
"X": 12.008789,
"Y": 55.97821,
"Z": 237.96448
},
"TerritoryId": 612,
"InteractionType": "CompleteQuest",
"Fly": true,
"AetheryteShortcut": "Fringes - Peering Stones"
}
]
}
]
}

View File

@ -111,7 +111,7 @@
"Z": 147.23425
},
"TerritoryId": 614,
"InteractionType": "Instruction",
"InteractionType": "Snipe",
"Comment": "Snipe soldiers"
}
]
@ -127,7 +127,7 @@
"Z": 237.04883
},
"TerritoryId": 614,
"InteractionType": "Instruction",
"InteractionType": "Snipe",
"Comment": "Snipe soldiers"
}
]
@ -158,7 +158,7 @@
"Z": 603.2959
},
"TerritoryId": 614,
"InteractionType": "Instruction",
"InteractionType": "Snipe",
"Comment": "Snipe soldiers"
}
]

View File

@ -62,7 +62,7 @@
"Z": 196.55139
},
"TerritoryId": 621,
"InteractionType": "Instruction",
"InteractionType": "Snipe",
"Comment": "Aim at jaw",
"Fly": true
}
@ -95,7 +95,7 @@
"Z": 282.7954
},
"TerritoryId": 621,
"InteractionType": "Instruction",
"InteractionType": "Snipe",
"Fly": true,
"Comment": "Aim at nearest eye"
}

View File

@ -28,7 +28,7 @@
"Z": 755.58093
},
"TerritoryId": 816,
"InteractionType": "Instruction",
"InteractionType": "Snipe",
"Fly": true,
"Comment": "Throw Porxies at Beavers"
}

View File

@ -48,7 +48,7 @@
"Z": 656.9772
},
"TerritoryId": 814,
"InteractionType": "Instruction",
"InteractionType": "Snipe",
"Comment": "Click the guy in front of (or near) the light house stairs"
}
]

View File

@ -48,7 +48,7 @@
"Z": -186.14484
},
"TerritoryId": 815,
"InteractionType": "Instruction",
"InteractionType": "Snipe",
"Comment": "Click all four foods"
}
]

View File

@ -104,7 +104,7 @@
"Z": -92.97333
},
"TerritoryId": 813,
"InteractionType": "WaitForManualProgress",
"InteractionType": "Snipe",
"Comment": "Tablet is on the right middle shelf of the table"
}
]

View File

@ -84,7 +84,7 @@
"Z": -359.4873
},
"TerritoryId": 817,
"InteractionType": "WaitForManualProgress",
"InteractionType": "Snipe",
"Comment": "Click murals"
}
]

View File

@ -73,7 +73,7 @@
"Z": 22.47644
},
"TerritoryId": 814,
"InteractionType": "WaitForManualProgress",
"InteractionType": "Snipe",
"Comment": "Click on the guy left of the the rock"
}
]

View File

@ -59,7 +59,7 @@
"Z": -616.47974
},
"TerritoryId": 814,
"InteractionType": "WaitForManualProgress",
"InteractionType": "Snipe",
"Comment": "Click red hat dwarf (always shows up in the same location)"
}
]
@ -75,7 +75,7 @@
"Z": -616.47974
},
"TerritoryId": 814,
"InteractionType": "WaitForManualProgress",
"InteractionType": "Snipe",
"Comment": "Click red hat dwarf"
}
]

View File

@ -54,7 +54,7 @@
"Z": -414.38928
},
"TerritoryId": 818,
"InteractionType": "WaitForManualProgress",
"InteractionType": "Snipe",
"Comment": "Click top left (broken) window",
"CompletionQuestVariablesFlags": [
null,

View File

@ -44,7 +44,7 @@
"Z": -161.45575
},
"TerritoryId": 814,
"InteractionType": "WaitForManualProgress",
"InteractionType": "Snipe",
"Comment": "Help Master Chai dodge enemies"
}
]

View File

@ -119,7 +119,7 @@
"Z": -519.18823
},
"TerritoryId": 956,
"InteractionType": "WaitForManualProgress",
"InteractionType": "Snipe",
"Comment": "Shoot Large Green Bird"
}
]

View File

@ -160,7 +160,7 @@
"Z": -654.13904
},
"TerritoryId": 959,
"InteractionType": "WaitForManualProgress",
"InteractionType": "Snipe",
"Comment": "Find \"Runninway?\""
}
]

View File

@ -45,7 +45,7 @@
},
"StopDistance": 5,
"TerritoryId": 956,
"InteractionType": "WaitForManualProgress",
"InteractionType": "Snipe",
"Comment": "Find Points of Interest"
}
]

View File

@ -104,7 +104,7 @@
"Z": 375.50916
},
"TerritoryId": 960,
"InteractionType": "WaitForManualProgress",
"InteractionType": "Snipe",
"Comment": "Find Errant Omicron"
}
]

View File

@ -44,7 +44,7 @@
"Z": 398.42822
},
"TerritoryId": 960,
"InteractionType": "WaitForManualProgress",
"InteractionType": "Snipe",
"Comment": "Identify Anomaly (Head, Elbow or Knee)"
}
]

View File

@ -28,7 +28,7 @@
"Z": 276.81384
},
"TerritoryId": 962,
"InteractionType": "Instruction",
"InteractionType": "Snipe",
"Comment": "Click ewer, head and feet",
"AethernetShortcut": [
"[Old Sharlayan] Aetheryte Plaza",

View File

@ -0,0 +1,222 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "liza",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1042796,
"Position": {
"X": -12.100403,
"Y": -16.147,
"Z": 153.76514
},
"TerritoryId": 962,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1039550,
"Position": {
"X": -620.7218,
"Y": -27.670597,
"Z": 302.17432
},
"TerritoryId": 956,
"InteractionType": "Interact",
"AetheryteShortcut": "Labyrinthos - Aporia",
"SkipConditions": {
"StepIf": {
"Flying": "Unlocked"
}
},
"TargetTerritoryId": 956
},
{
"Position": {
"X": -431.53903,
"Y": -220.1193,
"Z": 301.76364
},
"TerritoryId": 956,
"InteractionType": "WalkTo",
"Fly": true
},
{
"DataId": 1042797,
"Position": {
"X": -393.20978,
"Y": -220.20282,
"Z": 283.16162
},
"TerritoryId": 956,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 2,
"Steps": [
{
"DataId": 1042799,
"Position": {
"X": -395.37653,
"Y": -220.20282,
"Z": 285.66406
},
"TerritoryId": 956,
"InteractionType": "Interact",
"DialogueChoices": [
{
"Type": "YesNo",
"Prompt": "TEXT_STMBDR601_04586_Q2_000_107",
"Yes": true
}
]
}
]
},
{
"Sequence": 3,
"Steps": [
{
"DataId": 1042803,
"Position": {
"X": 43.289795,
"Y": -1.4816303E-06,
"Z": -55.680176
},
"TerritoryId": 963,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 4,
"Steps": [
{
"DataId": 1042887,
"Position": {
"X": 108.72046,
"Y": 26.999989,
"Z": 14.90802
},
"TerritoryId": 963,
"InteractionType": "Interact",
"AethernetShortcut": [
"[Radz-at-Han] Aetheryte Plaza",
"[Radz-at-Han] Kama"
],
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
64
]
},
{
"DataId": 1039539,
"Position": {
"X": 87.662964,
"Y": 27.06,
"Z": 28.030762
},
"TerritoryId": 963,
"InteractionType": "Interact",
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
128
]
},
{
"DataId": 1042804,
"Position": {
"X": 87.35791,
"Y": 26.99999,
"Z": 56.687256
},
"TerritoryId": 963,
"InteractionType": "Interact",
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
32
]
}
]
},
{
"Sequence": 5,
"Steps": [
{
"DataId": 1042803,
"Position": {
"X": 116.01684,
"Y": 26.99999,
"Z": 45.689087
},
"StopDistance": 0.25,
"TerritoryId": 963,
"InteractionType": "Interact",
"DialogueChoices": [
{
"Type": "List",
"Prompt": "TEXT_STMBDR601_04586_Q5_000_225",
"Answer": "TEXT_STMBDR601_04586_A5_000_228"
}
]
}
]
},
{
"Sequence": 6,
"Steps": [
{
"DataId": 1039541,
"Position": {
"X": -159.3805,
"Y": 23.999973,
"Z": 110.61267
},
"TerritoryId": 963,
"InteractionType": "Interact",
"AethernetShortcut": [
"[Radz-at-Han] Kama",
"[Radz-at-Han] Ruveydah Fibers"
]
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1042805,
"Position": {
"X": -57.480774,
"Y": 14,
"Z": 106.82837
},
"StopDistance": 4,
"TerritoryId": 963,
"InteractionType": "CompleteQuest",
"NextQuestId": 4587
}
]
}
]
}

View File

@ -0,0 +1,262 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "liza",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1042807,
"Position": {
"X": -59.06775,
"Y": 13.999993,
"Z": 114.67151
},
"StopDistance": 6,
"TerritoryId": 963,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1042809,
"Position": {
"X": -378.43903,
"Y": 22,
"Z": 494.9873
},
"TerritoryId": 958,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 2,
"Steps": [
{
"DataId": 1042811,
"Position": {
"X": -323.23187,
"Y": 22,
"Z": 500.35852
},
"TerritoryId": 958,
"InteractionType": "Interact",
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
128
]
},
{
"Position": {
"X": -277.7818,
"Y": 25.227219,
"Z": 423.6428
},
"TerritoryId": 958,
"InteractionType": "WalkTo",
"Fly": true
},
{
"DataId": 1042810,
"Position": {
"X": -276.41718,
"Y": 25.227219,
"Z": 425.4673
},
"TerritoryId": 958,
"InteractionType": "Interact",
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
64
]
}
]
},
{
"Sequence": 3,
"Steps": [
{
"DataId": 1042809,
"Position": {
"X": -331.9679,
"Y": 22.585815,
"Z": 430.56573
},
"TerritoryId": 958,
"InteractionType": "Interact",
"Fly": true
}
]
},
{
"Sequence": 4,
"Steps": [
{
"DataId": 1042829,
"Position": {
"X": -330.86145,
"Y": 22.310896,
"Z": 431.4182
},
"TerritoryId": 958,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 5,
"Steps": [
{
"DataId": 1042813,
"Position": {
"X": 591.30237,
"Y": 34.877754,
"Z": 191.30237
},
"TerritoryId": 958,
"InteractionType": "Interact",
"Fly": true
}
]
},
{
"Sequence": 6,
"Steps": [
{
"DataId": 1043126,
"Position": {
"X": 605.9509,
"Y": 34.7239,
"Z": 203.32642
},
"StopDistance": 5,
"TerritoryId": 958,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 7,
"Steps": [
{
"DataId": 1042816,
"Position": {
"X": 31.967651,
"Y": -132.9464,
"Z": -563.5615
},
"TerritoryId": 959,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 8,
"Steps": [
{
"DataId": 1042818,
"Position": {
"X": -1.6327515,
"Y": -28.024765,
"Z": -216.23566
},
"TerritoryId": 959,
"InteractionType": "Interact",
"Fly": true,
"DialogueChoices": [
{
"Type": "List",
"Prompt": "TEXT_STMBDR602_04587_Q4_000_294",
"Answer": "TEXT_STMBDR602_04587_A4_000_295"
}
]
}
]
},
{
"Sequence": 9,
"Steps": [
{
"DataId": 1038930,
"Position": {
"X": -415.39636,
"Y": 136.98077,
"Z": 575.7992
},
"TerritoryId": 959,
"InteractionType": "Interact",
"Fly": true
}
]
},
{
"Sequence": 10,
"Steps": [
{
"DataId": 1039550,
"Position": {
"X": -620.7218,
"Y": -27.670597,
"Z": 302.17432
},
"TerritoryId": 956,
"InteractionType": "Interact",
"AetheryteShortcut": "Labyrinthos - Aporia",
"SkipConditions": {
"StepIf": {
"Flying": "Unlocked"
}
},
"TargetTerritoryId": 956
},
{
"Position": {
"X": -431.53903,
"Y": -220.1193,
"Z": 301.76364
},
"TerritoryId": 956,
"InteractionType": "WalkTo",
"Fly": true
},
{
"DataId": 1042800,
"Position": {
"X": -393.0572,
"Y": -220.20284,
"Z": 284.71802
},
"TerritoryId": 956,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1042822,
"Position": {
"X": 111.039795,
"Y": -10.587426,
"Z": 280.38452
},
"TerritoryId": 962,
"InteractionType": "CompleteQuest"
}
]
}
]
}

View File

@ -136,7 +136,7 @@
"Z": -532.15845
},
"TerritoryId": 1188,
"InteractionType": "WaitForManualProgress",
"InteractionType": "Snipe",
"Comment": "Inspect Eye, Carrying Pole and Tail",
"AetheryteShortcut": "Kozama'uka - Ok'hanu"
}

View File

@ -28,7 +28,7 @@
"Z": 343.7704
},
"TerritoryId": 1188,
"InteractionType": "WaitForManualProgress",
"InteractionType": "Snipe",
"Comment": "Click (from left to right) worn tools, Kaahe, crafting materials, untouched meal"
}
]

View File

@ -28,7 +28,7 @@
"Z": 25.680908
},
"TerritoryId": 1185,
"InteractionType": "WaitForManualProgress",
"InteractionType": "Snipe",
"Comment": "Inspect Helm, Corpse, Weapon"
}
]

View File

@ -28,7 +28,7 @@
"Z": -141.92426
},
"TerritoryId": 1190,
"InteractionType": "Instruction",
"InteractionType": "Snipe",
"Comment": "Click (from left to right) pump, middle of the connecting pipes, barrels"
}
]

View File

@ -28,7 +28,7 @@
"Z": 557.7018
},
"TerritoryId": 1189,
"InteractionType": "Instruction",
"InteractionType": "Snipe",
"Comment": "Inspect Flag, Red Head, Blue Head"
}
]

View File

@ -130,6 +130,7 @@
"Jump",
"Dive",
"Craft",
"Snipe",
"Instruction",
"AcceptQuest",
"CompleteQuest",

View File

@ -27,6 +27,7 @@ public sealed class InteractionTypeConverter() : EnumConverter<EInteractionType>
{ EInteractionType.Jump, "Jump" },
{ EInteractionType.Dive, "Dive" },
{ EInteractionType.Craft, "Craft" },
{ EInteractionType.Snipe, "Snipe" },
{ EInteractionType.Instruction, "Instruction" },
{ EInteractionType.AcceptQuest, "AcceptQuest" },
{ EInteractionType.CompleteQuest, "CompleteQuest" },

View File

@ -26,6 +26,7 @@ public enum EInteractionType
Jump,
Dive,
Craft,
Snipe,
/// <summary>
/// Needs to be manually continued.

View File

@ -19,6 +19,7 @@ internal sealed class Configuration : IPluginConfiguration
public bool HideInAllInstances { get; set; } = true;
public bool UseEscToCancelQuesting { get; set; } = true;
public bool ShowIncompleteSeasonalEvents { get; set; } = true;
public bool AutomaticallyCompleteSnipeTasks { get; set; }
}
internal sealed class AdvancedConfiguration

View File

@ -16,7 +16,8 @@ namespace Questionable.Controller.Steps.Interactions;
internal static class Interact
{
internal sealed class Factory(GameFunctions gameFunctions, ICondition condition, ILoggerFactory loggerFactory)
internal sealed class Factory(GameFunctions gameFunctions, Configuration configuration, ICondition condition,
ILoggerFactory loggerFactory)
: ITaskFactory
{
public IEnumerable<ITask> CreateAllTasks(Quest quest, QuestSequence sequence, QuestStep step)
@ -37,6 +38,11 @@ internal static class Interact
if (step.DataId == null)
yield break;
}
else if (step.InteractionType == EInteractionType.Snipe)
{
if (!configuration.General.AutomaticallyCompleteSnipeTasks)
yield break;
}
else if (step.InteractionType != EInteractionType.Interact)
yield break;

View File

@ -49,6 +49,7 @@ internal static class WaitAtEnd
case EInteractionType.WaitForManualProgress:
case EInteractionType.Instruction:
case EInteractionType.Snipe:
return [new WaitNextStepOrSequence()];
case EInteractionType.Duty:

View File

@ -0,0 +1,48 @@
using System;
using Dalamud.Hooking;
using Dalamud.Plugin.Services;
using FFXIVClientStructs.FFXIV.Client.Game.Event;
using FFXIVClientStructs.FFXIV.Common.Lua;
namespace Questionable.Controller.Utils;
internal sealed unsafe class AutoSnipeHandler : IDisposable
{
private readonly QuestController _questController;
private readonly Configuration _configuration;
private readonly Hook<EnqueueSnipeTaskDelegate> _enqueueSnipeTaskHook;
private delegate ulong EnqueueSnipeTaskDelegate(EventSceneModuleImplBase* scene, lua_State* state);
public AutoSnipeHandler(QuestController questController, Configuration configuration, IGameInteropProvider gameInteropProvider)
{
_questController = questController;
_configuration = configuration;
_enqueueSnipeTaskHook =
gameInteropProvider.HookFromSignature<EnqueueSnipeTaskDelegate>(
"48 89 5C 24 ?? 48 89 6C 24 ?? 48 89 74 24 ?? 57 48 83 EC 50 48 8B F1 48 8D 4C 24 ?? E8 ?? ?? ?? ?? 48 8B 4C 24 ??",
EnqueueSnipeTask);
}
public void Enable() => _enqueueSnipeTaskHook.Enable();
private ulong EnqueueSnipeTask(EventSceneModuleImplBase* scene, lua_State* state)
{
if (_configuration.General.AutomaticallyCompleteSnipeTasks && _questController.IsRunning)
{
var val = state->top;
val->tt = 3;
val->value.n = 1;
state->top += 1;
return 1;
}
else
return _enqueueSnipeTaskHook.Original.Invoke(scene, state);
}
public void Dispose()
{
_enqueueSnipeTaskHook.Dispose();
}
}

View File

@ -453,10 +453,26 @@ internal sealed unsafe class QuestFunctions
return !HasCompletedPreviousQuests(questInfo, extraCompletedQuest) || !HasCompletedPreviousInstances(questInfo);
}
public bool IsQuestLocked(LeveId leveId)
{
if (IsQuestUnobtainable(leveId))
return true;
// this only checks for the current class
IQuestInfo questInfo = _questData.GetQuestInfo(leveId);
if (!questInfo.ClassJobs.Contains((EClassJob)_clientState.LocalPlayer!.ClassJob.Id) ||
questInfo.Level > _clientState.LocalPlayer.Level)
return true;
return !IsQuestAccepted(leveId) && QuestManager.Instance()->NumLeveAllowances == 0;
}
public bool IsQuestUnobtainable(ElementId elementId, ElementId? extraCompletedQuest = null)
{
if (elementId is QuestId questId)
return IsQuestUnobtainable(questId, extraCompletedQuest);
else if (elementId is LeveId leveId)
return IsQuestUnobtainable(leveId);
else
return false;
}
@ -464,6 +480,9 @@ internal sealed unsafe class QuestFunctions
public bool IsQuestUnobtainable(QuestId questId, ElementId? extraCompletedQuest = null)
{
var questInfo = (QuestInfo)_questData.GetQuestInfo(questId);
if (questInfo.Expansion > (EExpansionVersion)PlayerState.Instance()->MaxExpansion)
return true;
if (questInfo.QuestLocks.Count > 0)
{
var completedQuests = questInfo.QuestLocks.Count(x => IsQuestComplete(x) || x.Equals(extraCompletedQuest));
@ -476,48 +495,52 @@ internal sealed unsafe class QuestFunctions
if (_questData.GetLockedClassQuests().Contains(questId))
return true;
unsafe
var startingCity = PlayerState.Instance()->StartTown;
if (questInfo.StartingCity > 0 && questInfo.StartingCity != startingCity)
return true;
if (questId.Value == 674 && startingCity == 3)
return true;
if (questId.Value == 673 && startingCity != 3)
return true;
Dictionary<ushort, EClassJob> closeToHomeQuests = new()
{
var startingCity = PlayerState.Instance()->StartTown;
if (questInfo.StartingCity > 0 && questInfo.StartingCity != startingCity)
return true;
{ 108, EClassJob.Marauder },
{ 109, EClassJob.Arcanist },
{ 85, EClassJob.Lancer },
{ 123, EClassJob.Archer },
{ 124, EClassJob.Conjurer },
{ 568, EClassJob.Gladiator },
{ 569, EClassJob.Pugilist },
{ 570, EClassJob.Thaumaturge }
};
if (questId.Value == 674 && startingCity == 3)
// The starting class experience is a bit confusing. If you start in Gridania, the MSQ next quest data will
// always select 'Close to Home (Lancer)' even if starting as Conjurer/Archer. However, if we always mark the
// Lancer quest as unobtainable, it'll not get picked up as Conjurer/Archer, and thus will stop questing.
//
// While the NPC offers all 3 quests, there's no manual selection, and interacting will automatically select the
// quest for your current class, then switch you from a dead-ish intro zone to the actual starting city
// (so that you can't come back later to pick up another quest).
if (closeToHomeQuests.TryGetValue(questId.Value, out EClassJob neededStartingClass) &&
closeToHomeQuests.Any(x => IsQuestAcceptedOrComplete(new QuestId(x.Key))))
{
EClassJob actualStartingClass = (EClassJob)PlayerState.Instance()->FirstClass;
if (actualStartingClass != neededStartingClass)
return true;
if (questId.Value == 673 && startingCity != 3)
return true;
Dictionary<ushort, EClassJob> closeToHomeQuests = new()
{
{ 108, EClassJob.Marauder },
{ 109, EClassJob.Arcanist },
{ 85, EClassJob.Lancer },
{ 123, EClassJob.Archer },
{ 124, EClassJob.Conjurer },
{ 568, EClassJob.Gladiator },
{ 569, EClassJob.Pugilist },
{ 570, EClassJob.Thaumaturge }
};
if (closeToHomeQuests.TryGetValue(questId.Value, out EClassJob neededStartingClass))
{
EClassJob actualStartingClass = (EClassJob)PlayerState.Instance()->FirstClass;
if (actualStartingClass != neededStartingClass)
return true;
}
}
return false;
}
public bool IsQuestLocked(LeveId leveId)
private bool IsQuestUnobtainable(LeveId leveId)
{
// this only checks for the current class
IQuestInfo questInfo = _questData.GetQuestInfo(leveId);
if (!questInfo.ClassJobs.Contains((EClassJob)_clientState.LocalPlayer!.ClassJob.Id) ||
questInfo.Level > _clientState.LocalPlayer.Level)
if (questInfo.Expansion > (EExpansionVersion)PlayerState.Instance()->MaxExpansion)
return true;
return !IsQuestAccepted(leveId) && QuestManager.Instance()->NumLeveAllowances == 0;
return false;
}
private bool HasCompletedPreviousQuests(QuestInfo questInfo, ElementId? extraCompletedQuest)

View File

@ -28,6 +28,9 @@ internal sealed class QuestInfo : IQuestInfo
570 => " (Thaumaturge)",
673 => " (Ul'dah)",
674 => " (Limsa/Gridania)",
1432 => " (Gridania)",
1433 => " (Limsa)",
1434 => " (Ul'dah)",
_ => "",
};

View File

@ -18,6 +18,7 @@ using Questionable.Controller.Steps.Common;
using Questionable.Controller.Steps.Gathering;
using Questionable.Controller.Steps.Interactions;
using Questionable.Controller.Steps.Leves;
using Questionable.Controller.Utils;
using Questionable.Data;
using Questionable.External;
using Questionable.Functions;
@ -108,6 +109,7 @@ public sealed class QuestionablePlugin : IDalamudPlugin
serviceCollection.AddSingleton<GameFunctions>();
serviceCollection.AddSingleton<ChatFunctions>();
serviceCollection.AddSingleton<QuestFunctions>();
serviceCollection.AddSingleton<AutoSnipeHandler>();
serviceCollection.AddSingleton<AetherCurrentData>();
serviceCollection.AddSingleton<AetheryteData>();
@ -240,6 +242,7 @@ public sealed class QuestionablePlugin : IDalamudPlugin
serviceProvider.GetRequiredService<LeveUiController>();
serviceProvider.GetRequiredService<QuestionableIpc>();
serviceProvider.GetRequiredService<DalamudInitializer>();
serviceProvider.GetRequiredService<AutoSnipeHandler>().Enable();
}
public void Dispose()

View File

@ -90,6 +90,16 @@ internal sealed class ConfigWindow : LWindow, IPersistableWindowConfig
Save();
}
if (ImGui.CollapsingHeader("Cheats"))
{
bool automaticallyCompleteSnipeTasks = _configuration.General.AutomaticallyCompleteSnipeTasks;
if (ImGui.Checkbox("Automatically complete snipe tasks", ref automaticallyCompleteSnipeTasks))
{
_configuration.General.AutomaticallyCompleteSnipeTasks = automaticallyCompleteSnipeTasks;
Save();
}
}
ImGui.EndTabItem();
}

View File

@ -224,12 +224,17 @@ internal sealed class QuestJournalComponent
string len = 9999.ToString(CultureInfo.CurrentCulture);
ImGui.PushFont(UiBuilder.MonoFont);
string text =
$"{count.ToString(CultureInfo.CurrentCulture).PadLeft(len.Length)} / {total.ToString(CultureInfo.CurrentCulture).PadLeft(len.Length)}";
if (count == total)
ImGui.TextColored(ImGuiColors.ParsedGreen, text);
if (total == 0)
ImGui.TextColored(ImGuiColors.DalamudGrey, $"{"-".PadLeft(len.Length)} / {"-".PadLeft(len.Length)}");
else
ImGui.TextUnformatted(text);
{
string text =
$"{count.ToString(CultureInfo.CurrentCulture).PadLeft(len.Length)} / {total.ToString(CultureInfo.CurrentCulture).PadLeft(len.Length)}";
if (count == total)
ImGui.TextColored(ImGuiColors.ParsedGreen, text);
else
ImGui.TextUnformatted(text);
}
ImGui.PopFont();
}

View File

@ -81,7 +81,7 @@ internal sealed class PriorityWindow : LWindow
{
foundQuests = _questRegistry.AllQuests
.Where(x => x.Info.Name.Contains(_searchString, StringComparison.CurrentCultureIgnoreCase))
.Where(x => x.Id is not QuestId questId || !_questFunctions.IsQuestUnobtainable(questId));
.Where(x => !_questFunctions.IsQuestUnobtainable(x.Id));
}
else
{

View File

@ -84,7 +84,7 @@ internal sealed partial class ActiveQuestComponent
if (!isMinimized)
{
bool colored = currentStep is
{ InteractionType: EInteractionType.Instruction or EInteractionType.WaitForManualProgress };
{ InteractionType: EInteractionType.Instruction or EInteractionType.WaitForManualProgress or EInteractionType.Snipe };
if (colored)
ImGui.PushStyleColor(ImGuiCol.Text, ImGuiColors.DalamudOrange);
ImGui.TextUnformatted(currentStep?.Comment ??

View File

@ -20,7 +20,6 @@ internal sealed class EventInfoComponent
{
private readonly List<EventQuest> _eventQuests =
[
new("The Rising", [new(5015), new(5016)], AtDailyReset(new(2024, 9, 11))),
];
private readonly QuestData _questData;