Add 3 daily Loporrit quests + templates

This commit is contained in:
Liza 2024-08-16 20:42:11 +02:00
parent 65b1f786bd
commit 75c76cf7f7
Signed by: liza
GPG Key ID: 7199F8D727D55F67
37 changed files with 1907 additions and 1 deletions

View File

@ -280,6 +280,8 @@ public class QuestSourceGenerator : ISourceGenerator
Assignment(nameof(QuestStep.GroundTarget), step.GroundTarget, Assignment(nameof(QuestStep.GroundTarget), step.GroundTarget,
emptyStep.GroundTarget) emptyStep.GroundTarget)
.AsSyntaxNodeOrToken(), .AsSyntaxNodeOrToken(),
Assignment(nameof(QuestStep.Quantity), step.Quantity, emptyStep.Quantity)
.AsSyntaxNodeOrToken(),
Assignment(nameof(QuestStep.Emote), step.Emote, emptyStep.Emote) Assignment(nameof(QuestStep.Emote), step.Emote, emptyStep.Emote)
.AsSyntaxNodeOrToken(), .AsSyntaxNodeOrToken(),
Assignment(nameof(QuestStep.ChatMessage), step.ChatMessage, Assignment(nameof(QuestStep.ChatMessage), step.ChatMessage,

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": [
{
"Position": {
"X": -201.42024,
"Y": -49.149708,
"Z": -273.68756
},
"TerritoryId": 959,
"InteractionType": "WalkTo"
},
{
"DataId": 1044403,
"Position": {
"X": -203.5401,
"Y": -48.949707,
"Z": -273.60956
},
"TerritoryId": 959,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1044564,
"Position": {
"X": 456.13794,
"Y": -167.50003,
"Z": -759.02954
},
"TerritoryId": 959,
"InteractionType": "Interact",
"AetheryteShortcut": "Mare Lamentorum - Bestways Burrow",
"Fly": true
}
]
},
{
"Sequence": 255,
"Steps": [
{
"TerritoryId": 959,
"InteractionType": "Craft",
"ItemId": 38853,
"Quantity": 3
},
{
"Position": {
"X": -201.42024,
"Y": -49.149708,
"Z": -273.68756
},
"TerritoryId": 959,
"InteractionType": "WalkTo",
"AetheryteShortcut": "Mare Lamentorum - Bestways Burrow",
"Fly": true
},
{
"DataId": 1044403,
"Position": {
"X": -203.5401,
"Y": -48.949707,
"Z": -273.60956
},
"TerritoryId": 959,
"InteractionType": "CompleteQuest"
}
]
}
]
}

View File

@ -0,0 +1,94 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "liza",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"Position": {
"X": -201.42024,
"Y": -49.149708,
"Z": -273.68756
},
"TerritoryId": 959,
"InteractionType": "WalkTo"
},
{
"DataId": 1044403,
"Position": {
"X": -203.5401,
"Y": -48.949707,
"Z": -273.60956
},
"TerritoryId": 959,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1044565,
"Position": {
"X": 352.0714,
"Y": -161.16423,
"Z": -378.0423
},
"TerritoryId": 959,
"InteractionType": "Interact",
"AetheryteShortcut": "Mare Lamentorum - Bestways Burrow",
"Fly": true
}
]
},
{
"Sequence": 2,
"Steps": [
{
"TerritoryId": 959,
"InteractionType": "Craft",
"ItemId": 38855,
"Quantity": 2
},
{
"DataId": 1044565,
"Position": {
"X": 352.0714,
"Y": -161.16423,
"Z": -378.0423
},
"TerritoryId": 959,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"Position": {
"X": -201.42024,
"Y": -49.149708,
"Z": -273.68756
},
"TerritoryId": 959,
"InteractionType": "WalkTo",
"AetheryteShortcut": "Mare Lamentorum - Bestways Burrow",
"Fly": true
},
{
"DataId": 1044403,
"Position": {
"X": -203.5401,
"Y": -48.949707,
"Z": -273.60956
},
"TerritoryId": 959,
"InteractionType": "CompleteQuest"
}
]
}
]
}

View File

@ -0,0 +1,75 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "liza",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"Position": {
"X": -201.42024,
"Y": -49.149708,
"Z": -273.68756
},
"TerritoryId": 959,
"InteractionType": "WalkTo"
},
{
"DataId": 1044403,
"Position": {
"X": -203.5401,
"Y": -48.949707,
"Z": -273.60956
},
"TerritoryId": 959,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1044572,
"Position": {
"X": -638.056,
"Y": -143.79326,
"Z": -513.0846
},
"TerritoryId": 959,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"TerritoryId": 959,
"InteractionType": "Craft",
"ItemId": 38857,
"Quantity": 4
},
{
"Position": {
"X": -201.42024,
"Y": -49.149708,
"Z": -273.68756
},
"TerritoryId": 959,
"InteractionType": "WalkTo"
},
{
"DataId": 1044403,
"Position": {
"X": -203.5401,
"Y": -48.949707,
"Z": -273.60956
},
"TerritoryId": 959,
"InteractionType": "CompleteQuest"
}
]
}
]
}

View File

@ -0,0 +1,60 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "liza",
"Disabled": true,
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"Position": {
"X": -201.42024,
"Y": -49.149708,
"Z": -273.68756
},
"TerritoryId": 959,
"InteractionType": "WalkTo"
},
{
"DataId": 1044403,
"Position": {
"X": -203.5401,
"Y": -48.949707,
"Z": -273.60956
},
"TerritoryId": 959,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 1,
"Steps": [
]
},
{
"Sequence": 255,
"Steps": [
{
"Position": {
"X": -201.42024,
"Y": -49.149708,
"Z": -273.68756
},
"TerritoryId": 959,
"InteractionType": "WalkTo"
},
{
"DataId": 1044403,
"Position": {
"X": -203.5401,
"Y": -48.949707,
"Z": -273.60956
},
"TerritoryId": 959,
"InteractionType": "CompleteQuest"
}
]
}
]
}

View File

@ -0,0 +1,60 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "liza",
"Disabled": true,
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"Position": {
"X": -201.42024,
"Y": -49.149708,
"Z": -273.68756
},
"TerritoryId": 959,
"InteractionType": "WalkTo"
},
{
"DataId": 1044403,
"Position": {
"X": -203.5401,
"Y": -48.949707,
"Z": -273.60956
},
"TerritoryId": 959,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 1,
"Steps": [
]
},
{
"Sequence": 255,
"Steps": [
{
"Position": {
"X": -201.42024,
"Y": -49.149708,
"Z": -273.68756
},
"TerritoryId": 959,
"InteractionType": "WalkTo"
},
{
"DataId": 1044403,
"Position": {
"X": -203.5401,
"Y": -48.949707,
"Z": -273.60956
},
"TerritoryId": 959,
"InteractionType": "CompleteQuest"
}
]
}
]
}

View File

@ -0,0 +1,60 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "liza",
"Disabled": true,
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"Position": {
"X": -201.42024,
"Y": -49.149708,
"Z": -273.68756
},
"TerritoryId": 959,
"InteractionType": "WalkTo"
},
{
"DataId": 1044403,
"Position": {
"X": -203.5401,
"Y": -48.949707,
"Z": -273.60956
},
"TerritoryId": 959,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 1,
"Steps": [
]
},
{
"Sequence": 255,
"Steps": [
{
"Position": {
"X": -201.42024,
"Y": -49.149708,
"Z": -273.68756
},
"TerritoryId": 959,
"InteractionType": "WalkTo"
},
{
"DataId": 1044403,
"Position": {
"X": -203.5401,
"Y": -48.949707,
"Z": -273.60956
},
"TerritoryId": 959,
"InteractionType": "CompleteQuest"
}
]
}
]
}

View File

@ -0,0 +1,60 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "liza",
"Disabled": true,
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"Position": {
"X": -201.42024,
"Y": -49.149708,
"Z": -273.68756
},
"TerritoryId": 959,
"InteractionType": "WalkTo"
},
{
"DataId": 1044403,
"Position": {
"X": -203.5401,
"Y": -48.949707,
"Z": -273.60956
},
"TerritoryId": 959,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 1,
"Steps": [
]
},
{
"Sequence": 255,
"Steps": [
{
"Position": {
"X": -201.42024,
"Y": -49.149708,
"Z": -273.68756
},
"TerritoryId": 959,
"InteractionType": "WalkTo"
},
{
"DataId": 1044403,
"Position": {
"X": -203.5401,
"Y": -48.949707,
"Z": -273.60956
},
"TerritoryId": 959,
"InteractionType": "CompleteQuest"
}
]
}
]
}

View File

@ -0,0 +1,60 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "liza",
"Disabled": true,
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"Position": {
"X": -201.42024,
"Y": -49.149708,
"Z": -273.68756
},
"TerritoryId": 959,
"InteractionType": "WalkTo"
},
{
"DataId": 1044403,
"Position": {
"X": -203.5401,
"Y": -48.949707,
"Z": -273.60956
},
"TerritoryId": 959,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 1,
"Steps": [
]
},
{
"Sequence": 255,
"Steps": [
{
"Position": {
"X": -201.42024,
"Y": -49.149708,
"Z": -273.68756
},
"TerritoryId": 959,
"InteractionType": "WalkTo"
},
{
"DataId": 1044403,
"Position": {
"X": -203.5401,
"Y": -48.949707,
"Z": -273.60956
},
"TerritoryId": 959,
"InteractionType": "CompleteQuest"
}
]
}
]
}

View File

@ -0,0 +1,60 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "liza",
"Disabled": true,
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"Position": {
"X": -201.42024,
"Y": -49.149708,
"Z": -273.68756
},
"TerritoryId": 959,
"InteractionType": "WalkTo"
},
{
"DataId": 1044403,
"Position": {
"X": -203.5401,
"Y": -48.949707,
"Z": -273.60956
},
"TerritoryId": 959,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 1,
"Steps": [
]
},
{
"Sequence": 255,
"Steps": [
{
"Position": {
"X": -201.42024,
"Y": -49.149708,
"Z": -273.68756
},
"TerritoryId": 959,
"InteractionType": "WalkTo"
},
{
"DataId": 1044403,
"Position": {
"X": -203.5401,
"Y": -48.949707,
"Z": -273.60956
},
"TerritoryId": 959,
"InteractionType": "CompleteQuest"
}
]
}
]
}

View File

@ -0,0 +1,60 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "liza",
"Disabled": true,
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"Position": {
"X": -201.42024,
"Y": -49.149708,
"Z": -273.68756
},
"TerritoryId": 959,
"InteractionType": "WalkTo"
},
{
"DataId": 1044403,
"Position": {
"X": -203.5401,
"Y": -48.949707,
"Z": -273.60956
},
"TerritoryId": 959,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 1,
"Steps": [
]
},
{
"Sequence": 255,
"Steps": [
{
"Position": {
"X": -201.42024,
"Y": -49.149708,
"Z": -273.68756
},
"TerritoryId": 959,
"InteractionType": "WalkTo"
},
{
"DataId": 1044403,
"Position": {
"X": -203.5401,
"Y": -48.949707,
"Z": -273.60956
},
"TerritoryId": 959,
"InteractionType": "CompleteQuest"
}
]
}
]
}

View File

@ -0,0 +1,60 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "liza",
"Disabled": true,
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"Position": {
"X": -201.42024,
"Y": -49.149708,
"Z": -273.68756
},
"TerritoryId": 959,
"InteractionType": "WalkTo"
},
{
"DataId": 1044403,
"Position": {
"X": -203.5401,
"Y": -48.949707,
"Z": -273.60956
},
"TerritoryId": 959,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 1,
"Steps": [
]
},
{
"Sequence": 255,
"Steps": [
{
"Position": {
"X": -201.42024,
"Y": -49.149708,
"Z": -273.68756
},
"TerritoryId": 959,
"InteractionType": "WalkTo"
},
{
"DataId": 1044403,
"Position": {
"X": -203.5401,
"Y": -48.949707,
"Z": -273.60956
},
"TerritoryId": 959,
"InteractionType": "CompleteQuest"
}
]
}
]
}

View File

@ -0,0 +1,60 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "liza",
"Disabled": true,
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"Position": {
"X": -201.42024,
"Y": -49.149708,
"Z": -273.68756
},
"TerritoryId": 959,
"InteractionType": "WalkTo"
},
{
"DataId": 1044403,
"Position": {
"X": -203.5401,
"Y": -48.949707,
"Z": -273.60956
},
"TerritoryId": 959,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 1,
"Steps": [
]
},
{
"Sequence": 255,
"Steps": [
{
"Position": {
"X": -201.42024,
"Y": -49.149708,
"Z": -273.68756
},
"TerritoryId": 959,
"InteractionType": "WalkTo"
},
{
"DataId": 1044403,
"Position": {
"X": -203.5401,
"Y": -48.949707,
"Z": -273.60956
},
"TerritoryId": 959,
"InteractionType": "CompleteQuest"
}
]
}
]
}

View File

@ -0,0 +1,60 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "liza",
"Disabled": true,
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"Position": {
"X": -201.42024,
"Y": -49.149708,
"Z": -273.68756
},
"TerritoryId": 959,
"InteractionType": "WalkTo"
},
{
"DataId": 1044403,
"Position": {
"X": -203.5401,
"Y": -48.949707,
"Z": -273.60956
},
"TerritoryId": 959,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 1,
"Steps": [
]
},
{
"Sequence": 255,
"Steps": [
{
"Position": {
"X": -201.42024,
"Y": -49.149708,
"Z": -273.68756
},
"TerritoryId": 959,
"InteractionType": "WalkTo"
},
{
"DataId": 1044403,
"Position": {
"X": -203.5401,
"Y": -48.949707,
"Z": -273.60956
},
"TerritoryId": 959,
"InteractionType": "CompleteQuest"
}
]
}
]
}

View File

@ -0,0 +1,60 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "liza",
"Disabled": true,
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"Position": {
"X": -201.42024,
"Y": -49.149708,
"Z": -273.68756
},
"TerritoryId": 959,
"InteractionType": "WalkTo"
},
{
"DataId": 1044403,
"Position": {
"X": -203.5401,
"Y": -48.949707,
"Z": -273.60956
},
"TerritoryId": 959,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 1,
"Steps": [
]
},
{
"Sequence": 255,
"Steps": [
{
"Position": {
"X": -201.42024,
"Y": -49.149708,
"Z": -273.68756
},
"TerritoryId": 959,
"InteractionType": "WalkTo"
},
{
"DataId": 1044403,
"Position": {
"X": -203.5401,
"Y": -48.949707,
"Z": -273.60956
},
"TerritoryId": 959,
"InteractionType": "CompleteQuest"
}
]
}
]
}

View File

@ -0,0 +1,60 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "liza",
"Disabled": true,
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"Position": {
"X": -201.42024,
"Y": -49.149708,
"Z": -273.68756
},
"TerritoryId": 959,
"InteractionType": "WalkTo"
},
{
"DataId": 1044403,
"Position": {
"X": -203.5401,
"Y": -48.949707,
"Z": -273.60956
},
"TerritoryId": 959,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 1,
"Steps": [
]
},
{
"Sequence": 255,
"Steps": [
{
"Position": {
"X": -201.42024,
"Y": -49.149708,
"Z": -273.68756
},
"TerritoryId": 959,
"InteractionType": "WalkTo"
},
{
"DataId": 1044403,
"Position": {
"X": -203.5401,
"Y": -48.949707,
"Z": -273.60956
},
"TerritoryId": 959,
"InteractionType": "CompleteQuest"
}
]
}
]
}

View File

@ -0,0 +1,60 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "liza",
"Disabled": true,
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"Position": {
"X": -201.42024,
"Y": -49.149708,
"Z": -273.68756
},
"TerritoryId": 959,
"InteractionType": "WalkTo"
},
{
"DataId": 1044403,
"Position": {
"X": -203.5401,
"Y": -48.949707,
"Z": -273.60956
},
"TerritoryId": 959,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 1,
"Steps": [
]
},
{
"Sequence": 255,
"Steps": [
{
"Position": {
"X": -201.42024,
"Y": -49.149708,
"Z": -273.68756
},
"TerritoryId": 959,
"InteractionType": "WalkTo"
},
{
"DataId": 1044403,
"Position": {
"X": -203.5401,
"Y": -48.949707,
"Z": -273.60956
},
"TerritoryId": 959,
"InteractionType": "CompleteQuest"
}
]
}
]
}

View File

@ -0,0 +1,60 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "liza",
"Disabled": true,
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"Position": {
"X": -201.42024,
"Y": -49.149708,
"Z": -273.68756
},
"TerritoryId": 959,
"InteractionType": "WalkTo"
},
{
"DataId": 1044403,
"Position": {
"X": -203.5401,
"Y": -48.949707,
"Z": -273.60956
},
"TerritoryId": 959,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 1,
"Steps": [
]
},
{
"Sequence": 255,
"Steps": [
{
"Position": {
"X": -201.42024,
"Y": -49.149708,
"Z": -273.68756
},
"TerritoryId": 959,
"InteractionType": "WalkTo"
},
{
"DataId": 1044403,
"Position": {
"X": -203.5401,
"Y": -48.949707,
"Z": -273.60956
},
"TerritoryId": 959,
"InteractionType": "CompleteQuest"
}
]
}
]
}

View File

@ -0,0 +1,60 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "liza",
"Disabled": true,
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"Position": {
"X": -201.42024,
"Y": -49.149708,
"Z": -273.68756
},
"TerritoryId": 959,
"InteractionType": "WalkTo"
},
{
"DataId": 1044403,
"Position": {
"X": -203.5401,
"Y": -48.949707,
"Z": -273.60956
},
"TerritoryId": 959,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 1,
"Steps": [
]
},
{
"Sequence": 255,
"Steps": [
{
"Position": {
"X": -201.42024,
"Y": -49.149708,
"Z": -273.68756
},
"TerritoryId": 959,
"InteractionType": "WalkTo"
},
{
"DataId": 1044403,
"Position": {
"X": -203.5401,
"Y": -48.949707,
"Z": -273.60956
},
"TerritoryId": 959,
"InteractionType": "CompleteQuest"
}
]
}
]
}

View File

@ -0,0 +1,60 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "liza",
"Disabled": true,
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"Position": {
"X": -201.42024,
"Y": -49.149708,
"Z": -273.68756
},
"TerritoryId": 959,
"InteractionType": "WalkTo"
},
{
"DataId": 1044403,
"Position": {
"X": -203.5401,
"Y": -48.949707,
"Z": -273.60956
},
"TerritoryId": 959,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 1,
"Steps": [
]
},
{
"Sequence": 255,
"Steps": [
{
"Position": {
"X": -201.42024,
"Y": -49.149708,
"Z": -273.68756
},
"TerritoryId": 959,
"InteractionType": "WalkTo"
},
{
"DataId": 1044403,
"Position": {
"X": -203.5401,
"Y": -48.949707,
"Z": -273.60956
},
"TerritoryId": 959,
"InteractionType": "CompleteQuest"
}
]
}
]
}

View File

@ -0,0 +1,60 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "liza",
"Disabled": true,
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"Position": {
"X": -201.42024,
"Y": -49.149708,
"Z": -273.68756
},
"TerritoryId": 959,
"InteractionType": "WalkTo"
},
{
"DataId": 1044403,
"Position": {
"X": -203.5401,
"Y": -48.949707,
"Z": -273.60956
},
"TerritoryId": 959,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 1,
"Steps": [
]
},
{
"Sequence": 255,
"Steps": [
{
"Position": {
"X": -201.42024,
"Y": -49.149708,
"Z": -273.68756
},
"TerritoryId": 959,
"InteractionType": "WalkTo"
},
{
"DataId": 1044403,
"Position": {
"X": -203.5401,
"Y": -48.949707,
"Z": -273.60956
},
"TerritoryId": 959,
"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": [
{
"Position": {
"X": -201.42024,
"Y": -49.149708,
"Z": -273.68756
},
"TerritoryId": 959,
"InteractionType": "WalkTo"
},
{
"DataId": 1044403,
"Position": {
"X": -203.5401,
"Y": -48.949707,
"Z": -273.60956
},
"TerritoryId": 959,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 1,
"Steps": [
]
},
{
"Sequence": 255,
"Steps": [
{
"Position": {
"X": -201.42024,
"Y": -49.149708,
"Z": -273.68756
},
"TerritoryId": 959,
"InteractionType": "WalkTo"
},
{
"DataId": 1044403,
"Position": {
"X": -203.5401,
"Y": -48.949707,
"Z": -273.60956
},
"TerritoryId": 959,
"InteractionType": "CompleteQuest"
}
]
}
]
}

View File

@ -0,0 +1,60 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "liza",
"Disabled": true,
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"Position": {
"X": -201.42024,
"Y": -49.149708,
"Z": -273.68756
},
"TerritoryId": 959,
"InteractionType": "WalkTo"
},
{
"DataId": 1044403,
"Position": {
"X": -203.5401,
"Y": -48.949707,
"Z": -273.60956
},
"TerritoryId": 959,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 1,
"Steps": [
]
},
{
"Sequence": 255,
"Steps": [
{
"Position": {
"X": -201.42024,
"Y": -49.149708,
"Z": -273.68756
},
"TerritoryId": 959,
"InteractionType": "WalkTo"
},
{
"DataId": 1044403,
"Position": {
"X": -203.5401,
"Y": -48.949707,
"Z": -273.60956
},
"TerritoryId": 959,
"InteractionType": "CompleteQuest"
}
]
}
]
}

View File

@ -0,0 +1,60 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "liza",
"Disabled": true,
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"Position": {
"X": -201.42024,
"Y": -49.149708,
"Z": -273.68756
},
"TerritoryId": 959,
"InteractionType": "WalkTo"
},
{
"DataId": 1044403,
"Position": {
"X": -203.5401,
"Y": -48.949707,
"Z": -273.60956
},
"TerritoryId": 959,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 1,
"Steps": [
]
},
{
"Sequence": 255,
"Steps": [
{
"Position": {
"X": -201.42024,
"Y": -49.149708,
"Z": -273.68756
},
"TerritoryId": 959,
"InteractionType": "WalkTo"
},
{
"DataId": 1044403,
"Position": {
"X": -203.5401,
"Y": -48.949707,
"Z": -273.60956
},
"TerritoryId": 959,
"InteractionType": "CompleteQuest"
}
]
}
]
}

View File

@ -0,0 +1,60 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "liza",
"Disabled": true,
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"Position": {
"X": -201.42024,
"Y": -49.149708,
"Z": -273.68756
},
"TerritoryId": 959,
"InteractionType": "WalkTo"
},
{
"DataId": 1044403,
"Position": {
"X": -203.5401,
"Y": -48.949707,
"Z": -273.60956
},
"TerritoryId": 959,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 1,
"Steps": [
]
},
{
"Sequence": 255,
"Steps": [
{
"Position": {
"X": -201.42024,
"Y": -49.149708,
"Z": -273.68756
},
"TerritoryId": 959,
"InteractionType": "WalkTo"
},
{
"DataId": 1044403,
"Position": {
"X": -203.5401,
"Y": -48.949707,
"Z": -273.60956
},
"TerritoryId": 959,
"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": [
{
"Position": {
"X": -201.42024,
"Y": -49.149708,
"Z": -273.68756
},
"TerritoryId": 959,
"InteractionType": "WalkTo"
},
{
"DataId": 1044403,
"Position": {
"X": -203.5401,
"Y": -48.949707,
"Z": -273.60956
},
"TerritoryId": 959,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 1,
"Steps": [
]
},
{
"Sequence": 255,
"Steps": [
{
"Position": {
"X": -201.42024,
"Y": -49.149708,
"Z": -273.68756
},
"TerritoryId": 959,
"InteractionType": "WalkTo"
},
{
"DataId": 1044403,
"Position": {
"X": -203.5401,
"Y": -48.949707,
"Z": -273.60956
},
"TerritoryId": 959,
"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": [
{
"Position": {
"X": -201.42024,
"Y": -49.149708,
"Z": -273.68756
},
"TerritoryId": 959,
"InteractionType": "WalkTo"
},
{
"DataId": 1044403,
"Position": {
"X": -203.5401,
"Y": -48.949707,
"Z": -273.60956
},
"TerritoryId": 959,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 1,
"Steps": [
]
},
{
"Sequence": 255,
"Steps": [
{
"Position": {
"X": -201.42024,
"Y": -49.149708,
"Z": -273.68756
},
"TerritoryId": 959,
"InteractionType": "WalkTo"
},
{
"DataId": 1044403,
"Position": {
"X": -203.5401,
"Y": -48.949707,
"Z": -273.60956
},
"TerritoryId": 959,
"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": [
{
"Position": {
"X": -201.42024,
"Y": -49.149708,
"Z": -273.68756
},
"TerritoryId": 959,
"InteractionType": "WalkTo"
},
{
"DataId": 1044403,
"Position": {
"X": -203.5401,
"Y": -48.949707,
"Z": -273.60956
},
"TerritoryId": 959,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 1,
"Steps": [
]
},
{
"Sequence": 255,
"Steps": [
{
"Position": {
"X": -201.42024,
"Y": -49.149708,
"Z": -273.68756
},
"TerritoryId": 959,
"InteractionType": "WalkTo"
},
{
"DataId": 1044403,
"Position": {
"X": -203.5401,
"Y": -48.949707,
"Z": -273.60956
},
"TerritoryId": 959,
"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": [
{
"Position": {
"X": -201.42024,
"Y": -49.149708,
"Z": -273.68756
},
"TerritoryId": 959,
"InteractionType": "WalkTo"
},
{
"DataId": 1044403,
"Position": {
"X": -203.5401,
"Y": -48.949707,
"Z": -273.60956
},
"TerritoryId": 959,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 1,
"Steps": [
]
},
{
"Sequence": 255,
"Steps": [
{
"Position": {
"X": -201.42024,
"Y": -49.149708,
"Z": -273.68756
},
"TerritoryId": 959,
"InteractionType": "WalkTo"
},
{
"DataId": 1044403,
"Position": {
"X": -203.5401,
"Y": -48.949707,
"Z": -273.60956
},
"TerritoryId": 959,
"InteractionType": "CompleteQuest"
}
]
}
]
}

View File

@ -125,6 +125,7 @@
"SinglePlayerDuty", "SinglePlayerDuty",
"Jump", "Jump",
"Dive", "Dive",
"Craft",
"Instruction", "Instruction",
"AcceptQuest", "AcceptQuest",
"CompleteQuest", "CompleteQuest",
@ -1100,6 +1101,26 @@
} }
} }
} }
},
{
"if": {
"properties": {
"InteractionType": {
"const": "Craft"
}
}
},
"then": {
"properties": {
"Quantity": {
"type": "number"
}
},
"required": [
"ItemId",
"Quantity"
]
}
} }
], ],
"not": { "not": {

View File

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

View File

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

View File

@ -55,6 +55,7 @@ public sealed class QuestStep
public uint? ItemId { get; set; } public uint? ItemId { get; set; }
public bool? GroundTarget { get; set; } public bool? GroundTarget { get; set; }
public int? Quantity { get; set; }
public EEmote? Emote { get; set; } public EEmote? Emote { get; set; }
public ChatMessage? ChatMessage { get; set; } public ChatMessage? ChatMessage { get; set; }

View File

@ -0,0 +1,89 @@
using System;
using System.Linq;
using Dalamud.Plugin.Services;
using LLib.GameData;
using Lumina.Excel.GeneratedSheets;
using Microsoft.Extensions.DependencyInjection;
using Questionable.External;
using Questionable.Model.Questing;
using Quest = Questionable.Model.Quest;
namespace Questionable.Controller.Steps.Shared;
internal static class Craft
{
internal sealed class Factory(IServiceProvider serviceProvider) : ITaskFactory
{
public ITask? CreateTask(Quest quest, QuestSequence sequence, QuestStep step)
{
if (step.InteractionType != EInteractionType.Craft)
return null;
ArgumentNullException.ThrowIfNull(step.ItemId);
ArgumentNullException.ThrowIfNull(step.Quantity);
return serviceProvider.GetRequiredService<DoCraft>()
.With(step.ItemId.Value, step.Quantity.Value);
}
}
internal sealed class DoCraft(IDataManager dataManager, IClientState clientState, ArtisanIpc artisanIpc) : ITask
{
private uint _itemId;
private int _quantity;
public ITask With(uint itemId, int quantity)
{
_itemId = itemId;
_quantity = quantity;
return this;
}
public bool Start()
{
RecipeLookup? recipeLookup = dataManager.GetExcelSheet<RecipeLookup>()!.GetRow(_itemId);
if (recipeLookup == null)
throw new TaskException($"Item {_itemId} is not craftable");
uint recipeId = ((EClassJob)clientState.LocalPlayer!.ClassJob.Id) switch
{
EClassJob.Carpenter => recipeLookup.CRP.Row,
EClassJob.Blacksmith => recipeLookup.BSM.Row,
EClassJob.Armorer => recipeLookup.ARM.Row,
EClassJob.Goldsmith => recipeLookup.GSM.Row,
EClassJob.Leatherworker => recipeLookup.LTW.Row,
EClassJob.Weaver => recipeLookup.WVR.Row,
EClassJob.Alchemist => recipeLookup.ALC.Row,
EClassJob.Culinarian => recipeLookup.CUL.Row,
_ => 0
};
if (recipeId == 0)
{
recipeId = new[]{
recipeLookup.CRP.Row,
recipeLookup.BSM.Row,
recipeLookup.ARM.Row,
recipeLookup.GSM.Row,
recipeLookup.LTW.Row,
recipeLookup.WVR.Row,
recipeLookup.ALC.Row,
recipeLookup.WVR.Row
}
.FirstOrDefault(x => x != 0);
}
if (recipeId == 0)
throw new TaskException($"Unable to determine recipe for item {_itemId}");
if (!artisanIpc.CraftItem((ushort)recipeId, _quantity))
throw new TaskException($"Failed to start Artisan craft for recipe {recipeId}");
return true;
}
public ETaskResult Update()
{
return ETaskResult.StillRunning;
}
}
}

34
Questionable/External/ArtisanIpc.cs vendored Normal file
View File

@ -0,0 +1,34 @@
using Dalamud.Plugin;
using Dalamud.Plugin.Ipc;
using Dalamud.Plugin.Ipc.Exceptions;
using Microsoft.Extensions.Logging;
namespace Questionable.External;
internal sealed class ArtisanIpc
{
private readonly ILogger<ArtisanIpc> _logger;
private readonly ICallGateSubscriber<ushort, int, object> _craftItem;
public ArtisanIpc(IDalamudPluginInterface pluginInterface, ILogger<ArtisanIpc> logger)
{
_logger = logger;
_craftItem = pluginInterface.GetIpcSubscriber<ushort, int, object>("Artisan.CraftItem");
}
public bool CraftItem(ushort recipeId, int quantity)
{
try
{
_logger.LogInformation("Attempting to craft {Quantity} items with recipe {RecipeId} with Artisan", quantity,
recipeId);
_craftItem.InvokeAction(recipeId, quantity);
return true;
}
catch (IpcError e)
{
_logger.LogError(e, "Unable to craft items");
return false;
}
}
}

View File

@ -33,7 +33,9 @@ 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()}, {(EClassJob)questWork.AcceptClassJob}"; _asString = $"QW: {vars.Trim()}";
if (questWork.AcceptClassJob != 0)
_asString += $", {(EClassJob)questWork.AcceptClassJob}";
} }
public QuestProgressInfo(LeveWork leveWork) public QuestProgressInfo(LeveWork leveWork)

View File

@ -115,6 +115,7 @@ public sealed class QuestionablePlugin : IDalamudPlugin
serviceCollection.AddSingleton<NavmeshIpc>(); serviceCollection.AddSingleton<NavmeshIpc>();
serviceCollection.AddSingleton<LifestreamIpc>(); serviceCollection.AddSingleton<LifestreamIpc>();
serviceCollection.AddSingleton<YesAlreadyIpc>(); serviceCollection.AddSingleton<YesAlreadyIpc>();
serviceCollection.AddSingleton<ArtisanIpc>();
} }
private static void AddTaskFactories(ServiceCollection serviceCollection) private static void AddTaskFactories(ServiceCollection serviceCollection)
@ -155,6 +156,7 @@ public sealed class QuestionablePlugin : IDalamudPlugin
UseItem.UseOnPosition>(); UseItem.UseOnPosition>();
serviceCollection.AddTaskWithFactory<EquipItem.Factory, EquipItem.DoEquip>(); serviceCollection.AddTaskWithFactory<EquipItem.Factory, EquipItem.DoEquip>();
serviceCollection.AddTaskWithFactory<EquipRecommended.Factory, EquipRecommended.DoEquipRecommended>(); serviceCollection.AddTaskWithFactory<EquipRecommended.Factory, EquipRecommended.DoEquipRecommended>();
serviceCollection.AddTaskWithFactory<Craft.Factory, Craft.DoCraft>();
serviceCollection.AddTaskWithFactory<TurnInDelivery.Factory, TurnInDelivery.SatisfactionSupplyTurnIn>(); serviceCollection.AddTaskWithFactory<TurnInDelivery.Factory, TurnInDelivery.SatisfactionSupplyTurnIn>();
serviceCollection serviceCollection
.AddTaskWithFactory<InitiateLeve.Factory, .AddTaskWithFactory<InitiateLeve.Factory,