Add 3 daily Omicron w/ gathering and interactions in Elysion

This commit is contained in:
Liza 2024-08-16 19:48:00 +02:00
parent 1bdf86e660
commit 7493902752
Signed by: liza
GPG Key ID: 7199F8D727D55F67
47 changed files with 1543 additions and 9 deletions

View File

@ -2,6 +2,24 @@
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/GatheringPaths/gatheringlocation-v1.json", "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/GatheringPaths/gatheringlocation-v1.json",
"Author": "liza", "Author": "liza",
"Steps": [ "Steps": [
{
"DataId": 2013074,
"Position": {
"X": 304.3412,
"Y": 483.48206,
"Z": 143.11438
},
"TerritoryId": 960,
"InteractionType": "Interact",
"TargetTerritoryId": 1073,
"SkipConditions": {
"StepIf": {
"InTerritory": [
1073
]
}
}
},
{ {
"TerritoryId": 1073, "TerritoryId": 1073,
"InteractionType": "None" "InteractionType": "None"

View File

@ -2,6 +2,24 @@
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/GatheringPaths/gatheringlocation-v1.json", "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/GatheringPaths/gatheringlocation-v1.json",
"Author": "liza", "Author": "liza",
"Steps": [ "Steps": [
{
"DataId": 2013074,
"Position": {
"X": 304.3412,
"Y": 483.48206,
"Z": 143.11438
},
"TerritoryId": 960,
"InteractionType": "Interact",
"TargetTerritoryId": 1073,
"SkipConditions": {
"StepIf": {
"InTerritory": [
1073
]
}
}
},
{ {
"TerritoryId": 1073, "TerritoryId": 1073,
"InteractionType": "None" "InteractionType": "None"

View File

@ -2,6 +2,24 @@
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/GatheringPaths/gatheringlocation-v1.json", "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/GatheringPaths/gatheringlocation-v1.json",
"Author": "liza", "Author": "liza",
"Steps": [ "Steps": [
{
"DataId": 2013074,
"Position": {
"X": 304.3412,
"Y": 483.48206,
"Z": 143.11438
},
"TerritoryId": 960,
"InteractionType": "Interact",
"TargetTerritoryId": 1073,
"SkipConditions": {
"StepIf": {
"InTerritory": [
1073
]
}
}
},
{ {
"TerritoryId": 1073, "TerritoryId": 1073,
"InteractionType": "None" "InteractionType": "None"

View File

@ -2,6 +2,24 @@
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/GatheringPaths/gatheringlocation-v1.json", "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/GatheringPaths/gatheringlocation-v1.json",
"Author": "liza", "Author": "liza",
"Steps": [ "Steps": [
{
"DataId": 2013074,
"Position": {
"X": 304.3412,
"Y": 483.48206,
"Z": 143.11438
},
"TerritoryId": 960,
"InteractionType": "Interact",
"TargetTerritoryId": 1073,
"SkipConditions": {
"StepIf": {
"InTerritory": [
1073
]
}
}
},
{ {
"TerritoryId": 1073, "TerritoryId": 1073,
"InteractionType": "None" "InteractionType": "None"

View File

@ -2,6 +2,24 @@
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/GatheringPaths/gatheringlocation-v1.json", "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/GatheringPaths/gatheringlocation-v1.json",
"Author": "liza", "Author": "liza",
"Steps": [ "Steps": [
{
"DataId": 2013074,
"Position": {
"X": 304.3412,
"Y": 483.48206,
"Z": 143.11438
},
"TerritoryId": 960,
"InteractionType": "Interact",
"TargetTerritoryId": 1073,
"SkipConditions": {
"StepIf": {
"InTerritory": [
1073
]
}
}
},
{ {
"TerritoryId": 1073, "TerritoryId": 1073,
"InteractionType": "None" "InteractionType": "None"

View File

@ -2,6 +2,24 @@
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/GatheringPaths/gatheringlocation-v1.json", "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/GatheringPaths/gatheringlocation-v1.json",
"Author": "liza", "Author": "liza",
"Steps": [ "Steps": [
{
"DataId": 2013074,
"Position": {
"X": 304.3412,
"Y": 483.48206,
"Z": 143.11438
},
"TerritoryId": 960,
"InteractionType": "Interact",
"TargetTerritoryId": 1073,
"SkipConditions": {
"StepIf": {
"InTerritory": [
1073
]
}
}
},
{ {
"TerritoryId": 1073, "TerritoryId": 1073,
"InteractionType": "None" "InteractionType": "None"

View File

@ -2,6 +2,24 @@
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/GatheringPaths/gatheringlocation-v1.json", "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/GatheringPaths/gatheringlocation-v1.json",
"Author": "liza", "Author": "liza",
"Steps": [ "Steps": [
{
"DataId": 2013074,
"Position": {
"X": 304.3412,
"Y": 483.48206,
"Z": 143.11438
},
"TerritoryId": 960,
"InteractionType": "Interact",
"TargetTerritoryId": 1073,
"SkipConditions": {
"StepIf": {
"InTerritory": [
1073
]
}
}
},
{ {
"TerritoryId": 1073, "TerritoryId": 1073,
"InteractionType": "None" "InteractionType": "None"

View File

@ -2,6 +2,24 @@
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/GatheringPaths/gatheringlocation-v1.json", "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/GatheringPaths/gatheringlocation-v1.json",
"Author": "liza", "Author": "liza",
"Steps": [ "Steps": [
{
"DataId": 2013074,
"Position": {
"X": 304.3412,
"Y": 483.48206,
"Z": 143.11438
},
"TerritoryId": 960,
"InteractionType": "Interact",
"TargetTerritoryId": 1073,
"SkipConditions": {
"StepIf": {
"InTerritory": [
1073
]
}
}
},
{ {
"TerritoryId": 1073, "TerritoryId": 1073,
"InteractionType": "None" "InteractionType": "None"

View File

@ -0,0 +1,63 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/GatheringPaths/gatheringlocation-v1.json",
"Author": "liza",
"Steps": [
{
"TerritoryId": 960,
"InteractionType": "None",
"AetheryteShortcut": "Ultima Thule - Abode of the Ea"
}
],
"Groups": [
{
"Nodes": [
{
"DataId": 34369,
"Locations": [
{
"Position": {
"X": -381.6697,
"Y": 246.9727,
"Z": -221.478
},
"MinimumAngle": 0,
"MaximumAngle": 225
}
]
}
]
},
{
"Nodes": [
{
"DataId": 34367,
"Locations": [
{
"Position": {
"X": -384.7752,
"Y": 246.2142,
"Z": -220.8562
}
}
]
}
]
},
{
"Nodes": [
{
"DataId": 34368,
"Locations": [
{
"Position": {
"X": -396.0184,
"Y": 245.9229,
"Z": -236.488
}
}
]
}
]
}
]
}

View File

@ -0,0 +1,67 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/GatheringPaths/gatheringlocation-v1.json",
"Author": "liza",
"Steps": [
{
"TerritoryId": 960,
"InteractionType": "None",
"AetheryteShortcut": "Ultima Thule - Abode of the Ea"
}
],
"Groups": [
{
"Nodes": [
{
"DataId": 34375,
"Locations": [
{
"Position": {
"X": -408.5904,
"Y": 259.0197,
"Z": -361.8408
},
"MinimumAngle": -120,
"MaximumAngle": 60
}
]
}
]
},
{
"Nodes": [
{
"DataId": 34374,
"Locations": [
{
"Position": {
"X": -410.1218,
"Y": 261.0269,
"Z": -364.9317
},
"MinimumAngle": -120,
"MaximumAngle": 35
}
]
}
]
},
{
"Nodes": [
{
"DataId": 34373,
"Locations": [
{
"Position": {
"X": -421.3381,
"Y": 263.4496,
"Z": -366.897
},
"MinimumAngle": -105,
"MaximumAngle": 50
}
]
}
]
}
]
}

View File

@ -398,8 +398,8 @@ public static class RoslynShortcuts
Assignment(nameof(GatheredItem.Collectability), gatheredItem.Collectability, Assignment(nameof(GatheredItem.Collectability), gatheredItem.Collectability,
emptyItem.Collectability) emptyItem.Collectability)
.AsSyntaxNodeOrToken(), .AsSyntaxNodeOrToken(),
Assignment(nameof(GatheredItem.ClassJob), gatheredItem.ClassJob, Assignment(nameof(GatheredItem.QuestAcceptedAsClass), gatheredItem.QuestAcceptedAsClass,
emptyItem.ClassJob) emptyItem.QuestAcceptedAsClass)
.AsSyntaxNodeOrToken())))); .AsSyntaxNodeOrToken()))));
} }
else if (value is GatheringNodeGroup nodeGroup) else if (value is GatheringNodeGroup nodeGroup)

View File

@ -0,0 +1,79 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "liza",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1043417,
"Position": {
"X": 314.9004,
"Y": 481.99442,
"Z": 148.11926
},
"TerritoryId": 960,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 1,
"Steps": [
{
"TerritoryId": 960,
"InteractionType": "None",
"RequiredGatheredItems": [
{
"QuestAcceptedAsClass": "Miner",
"ItemId": 38281,
"ItemCount": 3
},
{
"QuestAcceptedAsClass": "Botanist",
"ItemId": 38305,
"ItemCount": 3
}
]
},
{
"DataId": 1044042,
"Position": {
"X": 507.0725,
"Y": 436.99997,
"Z": 340.07776
},
"TerritoryId": 960,
"InteractionType": "Interact",
"AetheryteShortcut": "Ultima Thule - Base Omicron"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 2013072,
"Position": {
"X": 456.65674,
"Y": 438.04077,
"Z": 310.2312
},
"TerritoryId": 960,
"InteractionType": "Interact",
"TargetTerritoryId": 960
},
{
"DataId": 1043417,
"Position": {
"X": 314.9004,
"Y": 481.99442,
"Z": 148.11926
},
"TerritoryId": 960,
"InteractionType": "CompleteQuest"
}
]
}
]
}

View File

@ -0,0 +1,105 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "liza",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1043417,
"Position": {
"X": 314.9004,
"Y": 481.99442,
"Z": 148.11926
},
"TerritoryId": 960,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 2013074,
"Position": {
"X": 304.3412,
"Y": 483.48206,
"Z": 143.11438
},
"TerritoryId": 960,
"InteractionType": "Interact",
"TargetTerritoryId": 1073
},
{
"DataId": 1044043,
"Position": {
"X": -7.1260376,
"Y": 498.9474,
"Z": -5.416992
},
"TerritoryId": 1073,
"InteractionType": "Say",
"ChatMessage": {
"Key": "TEXT_BANOMI102_04608_SAYTODO_000_050"
},
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
128
]
},
{
"DataId": 1044044,
"Position": {
"X": 11.215393,
"Y": 499.7763,
"Z": -23.239563
},
"TerritoryId": 1073,
"InteractionType": "Say",
"ChatMessage": {
"Key": "TEXT_BANOMI102_04608_SAYTODO_000_050"
},
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
64
]
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1043421,
"Position": {
"X": 2.4261475,
"Y": 499.87805,
"Z": 46.036377
},
"TerritoryId": 1073,
"InteractionType": "Interact",
"TargetTerritoryId": 960
},
{
"DataId": 1043417,
"Position": {
"X": 314.9004,
"Y": 481.99442,
"Z": 148.11926
},
"TerritoryId": 960,
"InteractionType": "CompleteQuest"
}
]
}
]
}

View File

@ -0,0 +1,61 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "liza",
"Disabled": true,
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1043417,
"Position": {
"X": 314.9004,
"Y": 481.99442,
"Z": 148.11926
},
"TerritoryId": 960,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 2013072,
"Position": {
"X": 456.65674,
"Y": 438.04077,
"Z": 310.2312
},
"TerritoryId": 960,
"InteractionType": "Interact",
"TargetTerritoryId": 960,
"RequiredGatheredItems": [
{
"QuestAcceptedAsClass": "Miner",
"ItemId": 38282,
"ItemCount": 3
},
{
"QuestAcceptedAsClass": "Botanist",
"ItemId": 38306,
"ItemCount": 3
}
],
"AetheryteShortcut": "Ultima Thule - Base Omicron"
},
{
"DataId": 1043417,
"Position": {
"X": 314.9004,
"Y": 481.99442,
"Z": 148.11926
},
"TerritoryId": 960,
"InteractionType": "CompleteQuest"
}
]
}
]
}

View File

@ -0,0 +1,37 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "liza",
"Disabled": true,
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1043417,
"Position": {
"X": 314.9004,
"Y": 481.99442,
"Z": 148.11926
},
"TerritoryId": 960,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1043417,
"Position": {
"X": 314.9004,
"Y": 481.99442,
"Z": 148.11926
},
"TerritoryId": 960,
"InteractionType": "CompleteQuest"
}
]
}
]
}

View File

@ -0,0 +1,37 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "liza",
"Disabled": true,
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1043417,
"Position": {
"X": 314.9004,
"Y": 481.99442,
"Z": 148.11926
},
"TerritoryId": 960,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1043417,
"Position": {
"X": 314.9004,
"Y": 481.99442,
"Z": 148.11926
},
"TerritoryId": 960,
"InteractionType": "CompleteQuest"
}
]
}
]
}

View File

@ -0,0 +1,37 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "liza",
"Disabled": true,
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1043417,
"Position": {
"X": 314.9004,
"Y": 481.99442,
"Z": 148.11926
},
"TerritoryId": 960,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1043417,
"Position": {
"X": 314.9004,
"Y": 481.99442,
"Z": 148.11926
},
"TerritoryId": 960,
"InteractionType": "CompleteQuest"
}
]
}
]
}

View File

@ -0,0 +1,37 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "liza",
"Disabled": true,
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1043417,
"Position": {
"X": 314.9004,
"Y": 481.99442,
"Z": 148.11926
},
"TerritoryId": 960,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1043417,
"Position": {
"X": 314.9004,
"Y": 481.99442,
"Z": 148.11926
},
"TerritoryId": 960,
"InteractionType": "CompleteQuest"
}
]
}
]
}

View File

@ -0,0 +1,37 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "liza",
"Disabled": true,
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1043417,
"Position": {
"X": 314.9004,
"Y": 481.99442,
"Z": 148.11926
},
"TerritoryId": 960,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1043417,
"Position": {
"X": 314.9004,
"Y": 481.99442,
"Z": 148.11926
},
"TerritoryId": 960,
"InteractionType": "CompleteQuest"
}
]
}
]
}

View File

@ -0,0 +1,37 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "liza",
"Disabled": true,
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1043417,
"Position": {
"X": 314.9004,
"Y": 481.99442,
"Z": 148.11926
},
"TerritoryId": 960,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1043417,
"Position": {
"X": 314.9004,
"Y": 481.99442,
"Z": 148.11926
},
"TerritoryId": 960,
"InteractionType": "CompleteQuest"
}
]
}
]
}

View File

@ -0,0 +1,37 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "liza",
"Disabled": true,
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1043417,
"Position": {
"X": 314.9004,
"Y": 481.99442,
"Z": 148.11926
},
"TerritoryId": 960,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1043417,
"Position": {
"X": 314.9004,
"Y": 481.99442,
"Z": 148.11926
},
"TerritoryId": 960,
"InteractionType": "CompleteQuest"
}
]
}
]
}

View File

@ -0,0 +1,37 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "liza",
"Disabled": true,
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1043417,
"Position": {
"X": 314.9004,
"Y": 481.99442,
"Z": 148.11926
},
"TerritoryId": 960,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1043417,
"Position": {
"X": 314.9004,
"Y": 481.99442,
"Z": 148.11926
},
"TerritoryId": 960,
"InteractionType": "CompleteQuest"
}
]
}
]
}

View File

@ -0,0 +1,37 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "liza",
"Disabled": true,
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1043417,
"Position": {
"X": 314.9004,
"Y": 481.99442,
"Z": 148.11926
},
"TerritoryId": 960,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1043417,
"Position": {
"X": 314.9004,
"Y": 481.99442,
"Z": 148.11926
},
"TerritoryId": 960,
"InteractionType": "CompleteQuest"
}
]
}
]
}

View File

@ -0,0 +1,37 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "liza",
"Disabled": true,
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1043417,
"Position": {
"X": 314.9004,
"Y": 481.99442,
"Z": 148.11926
},
"TerritoryId": 960,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1043417,
"Position": {
"X": 314.9004,
"Y": 481.99442,
"Z": 148.11926
},
"TerritoryId": 960,
"InteractionType": "CompleteQuest"
}
]
}
]
}

View File

@ -0,0 +1,37 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "liza",
"Disabled": true,
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1043417,
"Position": {
"X": 314.9004,
"Y": 481.99442,
"Z": 148.11926
},
"TerritoryId": 960,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1043417,
"Position": {
"X": 314.9004,
"Y": 481.99442,
"Z": 148.11926
},
"TerritoryId": 960,
"InteractionType": "CompleteQuest"
}
]
}
]
}

View File

@ -0,0 +1,37 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "liza",
"Disabled": true,
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1043417,
"Position": {
"X": 314.9004,
"Y": 481.99442,
"Z": 148.11926
},
"TerritoryId": 960,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1043417,
"Position": {
"X": 314.9004,
"Y": 481.99442,
"Z": 148.11926
},
"TerritoryId": 960,
"InteractionType": "CompleteQuest"
}
]
}
]
}

View File

@ -0,0 +1,37 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "liza",
"Disabled": true,
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1043417,
"Position": {
"X": 314.9004,
"Y": 481.99442,
"Z": 148.11926
},
"TerritoryId": 960,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1043417,
"Position": {
"X": 314.9004,
"Y": 481.99442,
"Z": 148.11926
},
"TerritoryId": 960,
"InteractionType": "CompleteQuest"
}
]
}
]
}

View File

@ -0,0 +1,37 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "liza",
"Disabled": true,
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1043417,
"Position": {
"X": 314.9004,
"Y": 481.99442,
"Z": 148.11926
},
"TerritoryId": 960,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1043417,
"Position": {
"X": 314.9004,
"Y": 481.99442,
"Z": 148.11926
},
"TerritoryId": 960,
"InteractionType": "CompleteQuest"
}
]
}
]
}

View File

@ -0,0 +1,37 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "liza",
"Disabled": true,
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1043417,
"Position": {
"X": 314.9004,
"Y": 481.99442,
"Z": 148.11926
},
"TerritoryId": 960,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1043417,
"Position": {
"X": 314.9004,
"Y": 481.99442,
"Z": 148.11926
},
"TerritoryId": 960,
"InteractionType": "CompleteQuest"
}
]
}
]
}

View File

@ -0,0 +1,37 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "liza",
"Disabled": true,
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1043417,
"Position": {
"X": 314.9004,
"Y": 481.99442,
"Z": 148.11926
},
"TerritoryId": 960,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1043417,
"Position": {
"X": 314.9004,
"Y": 481.99442,
"Z": 148.11926
},
"TerritoryId": 960,
"InteractionType": "CompleteQuest"
}
]
}
]
}

View File

@ -0,0 +1,37 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "liza",
"Disabled": true,
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1043417,
"Position": {
"X": 314.9004,
"Y": 481.99442,
"Z": 148.11926
},
"TerritoryId": 960,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1043417,
"Position": {
"X": 314.9004,
"Y": 481.99442,
"Z": 148.11926
},
"TerritoryId": 960,
"InteractionType": "CompleteQuest"
}
]
}
]
}

View File

@ -0,0 +1,37 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "liza",
"Disabled": true,
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1043417,
"Position": {
"X": 314.9004,
"Y": 481.99442,
"Z": 148.11926
},
"TerritoryId": 960,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1043417,
"Position": {
"X": 314.9004,
"Y": 481.99442,
"Z": 148.11926
},
"TerritoryId": 960,
"InteractionType": "CompleteQuest"
}
]
}
]
}

View File

@ -0,0 +1,37 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "liza",
"Disabled": true,
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1043417,
"Position": {
"X": 314.9004,
"Y": 481.99442,
"Z": 148.11926
},
"TerritoryId": 960,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1043417,
"Position": {
"X": 314.9004,
"Y": 481.99442,
"Z": 148.11926
},
"TerritoryId": 960,
"InteractionType": "CompleteQuest"
}
]
}
]
}

View File

@ -0,0 +1,37 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "liza",
"Disabled": true,
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1043417,
"Position": {
"X": 314.9004,
"Y": 481.99442,
"Z": 148.11926
},
"TerritoryId": 960,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1043417,
"Position": {
"X": 314.9004,
"Y": 481.99442,
"Z": 148.11926
},
"TerritoryId": 960,
"InteractionType": "CompleteQuest"
}
]
}
]
}

View File

@ -0,0 +1,37 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "liza",
"Disabled": true,
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1043417,
"Position": {
"X": 314.9004,
"Y": 481.99442,
"Z": 148.11926
},
"TerritoryId": 960,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1043417,
"Position": {
"X": 314.9004,
"Y": 481.99442,
"Z": 148.11926
},
"TerritoryId": 960,
"InteractionType": "CompleteQuest"
}
]
}
]
}

View File

@ -0,0 +1,37 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "liza",
"Disabled": true,
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1043417,
"Position": {
"X": 314.9004,
"Y": 481.99442,
"Z": 148.11926
},
"TerritoryId": 960,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1043417,
"Position": {
"X": 314.9004,
"Y": 481.99442,
"Z": 148.11926
},
"TerritoryId": 960,
"InteractionType": "CompleteQuest"
}
]
}
]
}

View File

@ -0,0 +1,37 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "liza",
"Disabled": true,
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1043417,
"Position": {
"X": 314.9004,
"Y": 481.99442,
"Z": 148.11926
},
"TerritoryId": 960,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1043417,
"Position": {
"X": 314.9004,
"Y": 481.99442,
"Z": 148.11926
},
"TerritoryId": 960,
"InteractionType": "CompleteQuest"
}
]
}
]
}

View File

@ -0,0 +1,37 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "liza",
"Disabled": true,
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1043417,
"Position": {
"X": 314.9004,
"Y": 481.99442,
"Z": 148.11926
},
"TerritoryId": 960,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1043417,
"Position": {
"X": 314.9004,
"Y": 481.99442,
"Z": 148.11926
},
"TerritoryId": 960,
"InteractionType": "CompleteQuest"
}
]
}
]
}

View File

@ -0,0 +1,37 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "liza",
"Disabled": true,
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1043417,
"Position": {
"X": 314.9004,
"Y": 481.99442,
"Z": 148.11926
},
"TerritoryId": 960,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1043417,
"Position": {
"X": 314.9004,
"Y": 481.99442,
"Z": 148.11926
},
"TerritoryId": 960,
"InteractionType": "CompleteQuest"
}
]
}
]
}

View File

@ -380,6 +380,13 @@
"type": "number", "type": "number",
"minimum": 0, "minimum": 0,
"maximum": 1000 "maximum": 1000
},
"QuestAcceptedAsClass": {
"type": "string",
"enum": [
"Miner",
"Botanist"
]
} }
}, },
"required": [ "required": [

View File

@ -0,0 +1,26 @@
using System;
using System.Text.Json;
using System.Text.Json.Serialization;
namespace Questionable.Model.Questing.Converter;
internal sealed class ClassJobConverter : JsonConverter<uint>
{
public override uint Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
{
if (reader.TokenType != JsonTokenType.String)
throw new JsonException();
return reader.GetString() switch
{
"Miner" => 16,
"Botanist" => 17,
_ => throw new JsonException("Unsupported value for classjob"),
};
}
public override void Write(Utf8JsonWriter writer, uint value, JsonSerializerOptions options)
{
throw new NotImplementedException();
}
}

View File

@ -1,4 +1,7 @@
namespace Questionable.Model.Questing; using System.Text.Json.Serialization;
using Questionable.Model.Questing.Converter;
namespace Questionable.Model.Questing;
public sealed class GatheredItem public sealed class GatheredItem
{ {
@ -10,5 +13,6 @@ public sealed class GatheredItem
/// <summary> /// <summary>
/// Either miner or botanist; null if it is irrelevant (prefers current class/job, then any unlocked ones). /// Either miner or botanist; null if it is irrelevant (prefers current class/job, then any unlocked ones).
/// </summary> /// </summary>
public uint? ClassJob { get; set; } [JsonConverter(typeof(ClassJobConverter))]
public uint? QuestAcceptedAsClass { get; set; }
} }

View File

@ -142,7 +142,7 @@ internal sealed class ContextMenuController : IDisposable
ItemId = itemId, ItemId = itemId,
ItemCount = quantity, ItemCount = quantity,
Collectability = collectability, Collectability = collectability,
ClassJob = (uint)classJob, QuestAcceptedAsClass = (uint)classJob,
} }
]; ];
_questController.SetGatheringQuest(quest); _questController.SetGatheringQuest(quest);

View File

@ -13,6 +13,7 @@ using FFXIVClientStructs.FFXIV.Client.UI;
using FFXIVClientStructs.FFXIV.Client.UI.Agent; using FFXIVClientStructs.FFXIV.Client.UI.Agent;
using FFXIVClientStructs.FFXIV.Component.GUI; using FFXIVClientStructs.FFXIV.Component.GUI;
using LLib; using LLib;
using LLib.GameData;
using LLib.GameUI; using LLib.GameUI;
using Lumina.Excel.GeneratedSheets; using Lumina.Excel.GeneratedSheets;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
@ -21,6 +22,7 @@ using Questionable.Data;
using Questionable.Functions; using Questionable.Functions;
using Questionable.Model; using Questionable.Model;
using Questionable.Model.Common; using Questionable.Model.Common;
using Questionable.Model.Gathering;
using Questionable.Model.Questing; using Questionable.Model.Questing;
using AethernetShortcut = Questionable.Controller.Steps.Shared.AethernetShortcut; using AethernetShortcut = Questionable.Controller.Steps.Shared.AethernetShortcut;
using Quest = Questionable.Model.Quest; using Quest = Questionable.Model.Quest;
@ -36,11 +38,14 @@ internal sealed class GameUiController : IDisposable
private readonly AetheryteFunctions _aetheryteFunctions; private readonly AetheryteFunctions _aetheryteFunctions;
private readonly ExcelFunctions _excelFunctions; private readonly ExcelFunctions _excelFunctions;
private readonly QuestController _questController; private readonly QuestController _questController;
private readonly GatheringData _gatheringData;
private readonly GatheringPointRegistry _gatheringPointRegistry;
private readonly QuestRegistry _questRegistry; private readonly QuestRegistry _questRegistry;
private readonly QuestData _questData; private readonly QuestData _questData;
private readonly IGameGui _gameGui; private readonly IGameGui _gameGui;
private readonly ITargetManager _targetManager; private readonly ITargetManager _targetManager;
private readonly IFramework _framework; private readonly IFramework _framework;
private readonly IClientState _clientState;
private readonly ILogger<GameUiController> _logger; private readonly ILogger<GameUiController> _logger;
private readonly Regex _returnRegex; private readonly Regex _returnRegex;
@ -53,12 +58,15 @@ internal sealed class GameUiController : IDisposable
AetheryteFunctions aetheryteFunctions, AetheryteFunctions aetheryteFunctions,
ExcelFunctions excelFunctions, ExcelFunctions excelFunctions,
QuestController questController, QuestController questController,
GatheringData gatheringData,
GatheringPointRegistry gatheringPointRegistry,
QuestRegistry questRegistry, QuestRegistry questRegistry,
QuestData questData, QuestData questData,
IGameGui gameGui, IGameGui gameGui,
ITargetManager targetManager, ITargetManager targetManager,
IFramework framework, IFramework framework,
IPluginLog pluginLog, IPluginLog pluginLog,
IClientState clientState,
ILogger<GameUiController> logger) ILogger<GameUiController> logger)
{ {
_addonLifecycle = addonLifecycle; _addonLifecycle = addonLifecycle;
@ -67,11 +75,14 @@ internal sealed class GameUiController : IDisposable
_aetheryteFunctions = aetheryteFunctions; _aetheryteFunctions = aetheryteFunctions;
_excelFunctions = excelFunctions; _excelFunctions = excelFunctions;
_questController = questController; _questController = questController;
_gatheringData = gatheringData;
_gatheringPointRegistry = gatheringPointRegistry;
_questRegistry = questRegistry; _questRegistry = questRegistry;
_questData = questData; _questData = questData;
_gameGui = gameGui; _gameGui = gameGui;
_targetManager = targetManager; _targetManager = targetManager;
_framework = framework; _framework = framework;
_clientState = clientState;
_logger = logger; _logger = logger;
_returnRegex = _dataManager.GetExcelSheet<Addon>()!.GetRow(196)!.GetRegex(addon => addon.Text, pluginLog)!; _returnRegex = _dataManager.GetExcelSheet<Addon>()!.GetRow(196)!.GetRegex(addon => addon.Text, pluginLog)!;
@ -593,6 +604,7 @@ internal sealed class GameUiController : IDisposable
private unsafe bool HandleTravelYesNo(AddonSelectYesno* addonSelectYesno, private unsafe bool HandleTravelYesNo(AddonSelectYesno* addonSelectYesno,
QuestController.QuestProgress currentQuest, string actualPrompt) QuestController.QuestProgress currentQuest, string actualPrompt)
{ {
_logger.LogInformation("TravelYesNo");
if (_aetheryteFunctions.ReturnRequestedAt >= DateTime.Now.AddSeconds(-2) && _returnRegex.IsMatch(actualPrompt)) if (_aetheryteFunctions.ReturnRequestedAt >= DateTime.Now.AddSeconds(-2) && _returnRegex.IsMatch(actualPrompt))
{ {
_logger.LogInformation("Automatically confirming return..."); _logger.LogInformation("Automatically confirming return...");
@ -633,6 +645,29 @@ internal sealed class GameUiController : IDisposable
step.TerritoryId, step.TerritoryId,
step.TargetTerritoryId); step.TargetTerritoryId);
if (step != null && (step.TerritoryId != _clientState.TerritoryType || step.TargetTerritoryId == null) &&
step.RequiredGatheredItems.Count > 0)
{
if (_gatheringData.TryGetGatheringPointId(step.RequiredGatheredItems[0].ItemId,
(EClassJob?)_clientState.LocalPlayer?.ClassJob.Id ?? EClassJob.Adventurer,
out GatheringPointId? gatheringPointId) &&
_gatheringPointRegistry.TryGetGatheringPoint(gatheringPointId, out GatheringRoot? root))
{
foreach (var gatheringStep in root.Steps)
{
if (gatheringStep.TerritoryId == _clientState.TerritoryType &&
gatheringStep.TargetTerritoryId != null)
{
_logger.LogTrace(
"FindTargetTerritoryFromQuestStep (gathering): {CurrentTerritory}, {TargetTerritory}",
gatheringStep.TerritoryId,
gatheringStep.TargetTerritoryId);
return gatheringStep.TargetTerritoryId;
}
}
}
}
if (step == null || step.TargetTerritoryId == null) if (step == null || step.TargetTerritoryId == null)
{ {
_logger.LogTrace("FindTargetTerritoryFromQuestStep: Checking previous step..."); _logger.LogTrace("FindTargetTerritoryFromQuestStep: Checking previous step...");

View File

@ -269,7 +269,7 @@ internal sealed unsafe class GatheringController : MiniTaskController<GatheringC
} }
} }
private sealed class CurrentRequest internal sealed class CurrentRequest
{ {
public required GatheringRequest Data { get; init; } public required GatheringRequest Data { get; init; }
public required GatheringRoot Root { get; init; } public required GatheringRoot Root { get; init; }

View File

@ -3,12 +3,14 @@ using System.Collections.Generic;
using System.Linq; using System.Linq;
using Dalamud.Game.Text; using Dalamud.Game.Text;
using Dalamud.Plugin.Services; using Dalamud.Plugin.Services;
using FFXIVClientStructs.FFXIV.Application.Network.WorkDefinitions;
using FFXIVClientStructs.FFXIV.Client.Game; using FFXIVClientStructs.FFXIV.Client.Game;
using LLib.GameData; using LLib.GameData;
using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
using Questionable.Controller.Steps.Common; using Questionable.Controller.Steps.Common;
using Questionable.Data; using Questionable.Data;
using Questionable.Functions;
using Questionable.Model; using Questionable.Model;
using Questionable.Model.Gathering; using Questionable.Model.Gathering;
using Questionable.Model.Questing; using Questionable.Model.Questing;
@ -32,8 +34,12 @@ internal static class GatheringRequiredItems
{ {
EClassJob currentClassJob = (EClassJob)clientState.LocalPlayer!.ClassJob.Id; EClassJob currentClassJob = (EClassJob)clientState.LocalPlayer!.ClassJob.Id;
EClassJob classJob = currentClassJob; EClassJob classJob = currentClassJob;
if (requiredGatheredItems.ClassJob != null) if (requiredGatheredItems.QuestAcceptedAsClass != null)
classJob = (EClassJob)requiredGatheredItems.ClassJob.Value; {
classJob = (EClassJob)requiredGatheredItems.QuestAcceptedAsClass.Value;
if (!IsClassJobQuestWasAcceptedWith(quest.Id, classJob))
continue;
}
if (!gatheringData.TryGetGatheringPointId(requiredGatheredItems.ItemId, classJob, if (!gatheringData.TryGetGatheringPointId(requiredGatheredItems.ItemId, classJob,
out GatheringPointId? gatheringPointId)) out GatheringPointId? gatheringPointId))
@ -79,6 +85,18 @@ internal static class GatheringRequiredItems
} }
} }
private unsafe bool IsClassJobQuestWasAcceptedWith(ElementId questId, EClassJob expectedClassJob)
{
if (questId is not QuestId)
return true;
QuestWork* questWork = QuestManager.Instance()->GetQuestById(questId.Value);
if (questWork->AcceptClassJob != 0)
return (EClassJob)questWork->AcceptClassJob == expectedClassJob;
return true;
}
private unsafe bool HasRequiredItems(GatheredItem requiredGatheredItems) private unsafe bool HasRequiredItems(GatheredItem requiredGatheredItems)
{ {
InventoryManager* inventoryManager = InventoryManager.Instance(); InventoryManager* inventoryManager = InventoryManager.Instance();

View File

@ -33,7 +33,7 @@ internal sealed class QuestProgressInfo
// Last enemy → increase sequence, reset variable to 0 // Last enemy → increase sequence, reset variable to 0
// The order in which enemies are killed doesn't seem to matter. // The order in which enemies are killed doesn't seem to matter.
// If multiple waves spawn, this continues to count up (e.g. 1 enemy from wave 1, 2 enemies from wave 2, 1 from wave 3) would count to 3 then 0 // If multiple waves spawn, this continues to count up (e.g. 1 enemy from wave 1, 2 enemies from wave 2, 1 from wave 3) would count to 3 then 0
_asString = $"QW: {vars.Trim()}"; _asString = $"QW: {vars.Trim()}, {(EClassJob)questWork.AcceptClassJob}";
} }
public QuestProgressInfo(LeveWork leveWork) public QuestProgressInfo(LeveWork leveWork)