Assignment(nameof(QuestStep.GroundTarget), step.GroundTarget,
emptyStep.GroundTarget)
.AsSyntaxNodeOrToken(),
+ Assignment(nameof(QuestStep.Quantity), step.Quantity, emptyStep.Quantity)
+ .AsSyntaxNodeOrToken(),
Assignment(nameof(QuestStep.Emote), step.Emote, emptyStep.Emote)
.AsSyntaxNodeOrToken(),
Assignment(nameof(QuestStep.ChatMessage), step.ChatMessage,
--- /dev/null
+{
+ "$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"
+ }
+ ]
+ }
+ ]
+}
--- /dev/null
+{
+ "$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"
+ }
+ ]
+ }
+ ]
+}
--- /dev/null
+{
+ "$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"
+ }
+ ]
+ }
+ ]
+}
--- /dev/null
+{
+ "$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"
+ }
+ ]
+ }
+ ]
+}
--- /dev/null
+{
+ "$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"
+ }
+ ]
+ }
+ ]
+}
--- /dev/null
+{
+ "$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"
+ }
+ ]
+ }
+ ]
+}
--- /dev/null
+{
+ "$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"
+ }
+ ]
+ }
+ ]
+}
--- /dev/null
+{
+ "$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"
+ }
+ ]
+ }
+ ]
+}
--- /dev/null
+{
+ "$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"
+ }
+ ]
+ }
+ ]
+}
--- /dev/null
+{
+ "$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"
+ }
+ ]
+ }
+ ]
+}
--- /dev/null
+{
+ "$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"
+ }
+ ]
+ }
+ ]
+}
--- /dev/null
+{
+ "$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"
+ }
+ ]
+ }
+ ]
+}
--- /dev/null
+{
+ "$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"
+ }
+ ]
+ }
+ ]
+}
--- /dev/null
+{
+ "$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"
+ }
+ ]
+ }
+ ]
+}
--- /dev/null
+{
+ "$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"
+ }
+ ]
+ }
+ ]
+}
--- /dev/null
+{
+ "$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"
+ }
+ ]
+ }
+ ]
+}
--- /dev/null
+{
+ "$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"
+ }
+ ]
+ }
+ ]
+}
--- /dev/null
+{
+ "$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"
+ }
+ ]
+ }
+ ]
+}
--- /dev/null
+{
+ "$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"
+ }
+ ]
+ }
+ ]
+}
--- /dev/null
+{
+ "$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"
+ }
+ ]
+ }
+ ]
+}
--- /dev/null
+
+{
+ "$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"
+ }
+ ]
+ }
+ ]
+}
--- /dev/null
+{
+ "$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"
+ }
+ ]
+ }
+ ]
+}
--- /dev/null
+{
+ "$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"
+ }
+ ]
+ }
+ ]
+}
--- /dev/null
+{
+ "$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"
+ }
+ ]
+ }
+ ]
+}
--- /dev/null
+
+{
+ "$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"
+ }
+ ]
+ }
+ ]
+}
--- /dev/null
+
+{
+ "$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"
+ }
+ ]
+ }
+ ]
+}
--- /dev/null
+
+{
+ "$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"
+ }
+ ]
+ }
+ ]
+}
--- /dev/null
+
+{
+ "$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"
+ }
+ ]
+ }
+ ]
+}
"SinglePlayerDuty",
"Jump",
"Dive",
+ "Craft",
"Instruction",
"AcceptQuest",
"CompleteQuest",
}
}
}
+ },
+ {
+ "if": {
+ "properties": {
+ "InteractionType": {
+ "const": "Craft"
+ }
+ }
+ },
+ "then": {
+ "properties": {
+ "Quantity": {
+ "type": "number"
+ }
+ },
+ "required": [
+ "ItemId",
+ "Quantity"
+ ]
+ }
}
],
"not": {
{ EInteractionType.SinglePlayerDuty, "SinglePlayerDuty" },
{ EInteractionType.Jump, "Jump" },
{ EInteractionType.Dive, "Dive" },
+ { EInteractionType.Craft, "Craft" },
{ EInteractionType.Instruction, "Instruction" },
{ EInteractionType.AcceptQuest, "AcceptQuest" },
{ EInteractionType.CompleteQuest, "CompleteQuest" },
SinglePlayerDuty,
Jump,
Dive,
+ Craft,
/// <summary>
/// Needs to be manually continued.
public uint? ItemId { get; set; }
public bool? GroundTarget { get; set; }
+ public int? Quantity { get; set; }
public EEmote? Emote { get; set; }
public ChatMessage? ChatMessage { get; set; }
--- /dev/null
+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;
+ }
+ }
+}
--- /dev/null
+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;
+ }
+ }
+}
// Last enemy → increase sequence, reset variable to 0
// 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
- _asString = $"QW: {vars.Trim()}, {(EClassJob)questWork.AcceptClassJob}";
+ _asString = $"QW: {vars.Trim()}";
+ if (questWork.AcceptClassJob != 0)
+ _asString += $", {(EClassJob)questWork.AcceptClassJob}";
}
public QuestProgressInfo(LeveWork leveWork)
serviceCollection.AddSingleton<NavmeshIpc>();
serviceCollection.AddSingleton<LifestreamIpc>();
serviceCollection.AddSingleton<YesAlreadyIpc>();
+ serviceCollection.AddSingleton<ArtisanIpc>();
}
private static void AddTaskFactories(ServiceCollection serviceCollection)
UseItem.UseOnPosition>();
serviceCollection.AddTaskWithFactory<EquipItem.Factory, EquipItem.DoEquip>();
serviceCollection.AddTaskWithFactory<EquipRecommended.Factory, EquipRecommended.DoEquipRecommended>();
+ serviceCollection.AddTaskWithFactory<Craft.Factory, Craft.DoCraft>();
serviceCollection.AddTaskWithFactory<TurnInDelivery.Factory, TurnInDelivery.SatisfactionSupplyTurnIn>();
serviceCollection
.AddTaskWithFactory<InitiateLeve.Factory,