Change how cutscene-only filler sequences are handled
authorLiza Carvelli <liza@carvel.li>
Tue, 12 Aug 2025 20:38:52 +0000 (22:38 +0200)
committerLiza Carvelli <liza@carvel.li>
Wed, 13 Aug 2025 10:11:10 +0000 (12:11 +0200)
97 files changed:
QuestPaths/2.x - A Realm Reborn/Allied Societies/Sylphs/Dailies/1264_The Magitek Menace.json
QuestPaths/2.x - A Realm Reborn/MSQ-1/Gridania/129_Spirithold Broken.json
QuestPaths/2.x - A Realm Reborn/MSQ-1/Gridania/445_Chasing Shadows.json
QuestPaths/2.x - A Realm Reborn/MSQ-1/Gridania/447_To Guard a Guardian.json
QuestPaths/2.x - A Realm Reborn/MSQ-1/Limsa/469_Just Deserts.json
QuestPaths/2.x - A Realm Reborn/MSQ-1/Limsa/543_Lurkers in the Grotto.json
QuestPaths/2.x - A Realm Reborn/MSQ-1/Limsa/544_Feint and Strike.json
QuestPaths/2.x - A Realm Reborn/MSQ-1/Ul'dah/320_Way Down in the Hole.json
QuestPaths/2.x - A Realm Reborn/MSQ-1/Ul'dah/551_Duty, Honor, Country.json
QuestPaths/2.x - A Realm Reborn/MSQ-2/A9-Haukke Manor/801_Skeletons in Her Closet.json
QuestPaths/2.x - A Realm Reborn/MSQ-2/C9-Ultimate Weapon/4522_The Ultimate Weapon.json
QuestPaths/2.x - A Realm Reborn/MSQ-2/E6-2.55/4591_The Steps of Faith.json
QuestPaths/3.x - Heavensward/Alliance Raid Quests/2205_To Rule the Skies.json
QuestPaths/3.x - Heavensward/MSQ/A3.2-The Dravanian Forelands/1616_Lord of the Hive.json
QuestPaths/3.x - Heavensward/MSQ/A4-Ishgard/1640_A Knight's Calling.json
QuestPaths/3.x - Heavensward/MSQ/A7-Azys Lla/1669_Heavensward.json
QuestPaths/3.x - Heavensward/MSQ/B-3.1/2163_As Goes Light, So Goes Darkness.json
QuestPaths/3.x - Heavensward/MSQ/D-3.3/2245_An End to the Song.json
QuestPaths/3.x - Heavensward/Unlocks/Misc/4172_Ascending to Empyreum.json
QuestPaths/4.x - Stormblood/Allied Societies/Namazu/Dailies/3107_Free for Most.json
QuestPaths/4.x - Stormblood/Class Quests/MCH/2907_Release the Hounds.json
QuestPaths/4.x - Stormblood/MSQ/F-4.5/3183_The Face of War.json
QuestPaths/4.x - Stormblood/MSQ/H-4.55/3185_A Requiem for Heroes.json
QuestPaths/5.x - Shadowbringers/Allied Societies/Pixies/Story/3683_Manic Pixie Dream Realm.json
QuestPaths/5.x - Shadowbringers/Allied Societies/Pixies/Story/3684_Sustenance for the Soul.json
QuestPaths/5.x - Shadowbringers/Class Quests/GNB/3262_Hired Gunblades.json
QuestPaths/5.x - Shadowbringers/Class Quests/GNB/3266_Steel against Steel.json
QuestPaths/5.x - Shadowbringers/MSQ/A1-Crystarium 1/3279_The Syrcus Trench.json
QuestPaths/5.x - Shadowbringers/MSQ/A2-Kholusia 1/3286_City of Final Pleasures.json
QuestPaths/5.x - Shadowbringers/MSQ/A3-Amh Araeng 1/3291_In Search of Alisaie.json
QuestPaths/5.x - Shadowbringers/MSQ/C-Rak'tika/3324_Into the Dark.json
QuestPaths/5.x - Shadowbringers/MSQ/E-Kholusia 2/3643_Extinguishing the Last Light.json
QuestPaths/5.x - Shadowbringers/MSQ/F-Tempest/3654_Shadowbringers.json
QuestPaths/5.x - Shadowbringers/MSQ/G-5.1/3674_A Grand Adventure.json
QuestPaths/5.x - Shadowbringers/MSQ/H-5.2/3769_Beneath the Surface.json
QuestPaths/5.x - Shadowbringers/MSQ/H-5.2/3770_Echoes of a Fallen Star.json
QuestPaths/5.x - Shadowbringers/MSQ/I-5.3/3775_Faded Memories.json
QuestPaths/5.x - Shadowbringers/MSQ/I-5.3/3777_The Converging Light.json
QuestPaths/5.x - Shadowbringers/MSQ/I-5.3/3778_Hope's Confluence.json
QuestPaths/5.x - Shadowbringers/MSQ/J-5.4/4011_Like Master, Like Pupil.json
QuestPaths/5.x - Shadowbringers/MSQ/K-5.5/4062_The Flames of War.json
QuestPaths/5.x - Shadowbringers/Relics/3835_Path to the Past.json
QuestPaths/5.x - Shadowbringers/Relics/3836_The Bozja Incident.json
QuestPaths/5.x - Shadowbringers/Role Quests/Physical/3278_Courage Born of Fear.json
QuestPaths/6.x - Endwalker/MSQ/A-Thavnair1-Labyrinthos1/4361_A Labyrinthine Descent.json
QuestPaths/6.x - Endwalker/MSQ/A-Thavnair1-Labyrinthos1/4377_In the Dark of the Tower.json
QuestPaths/6.x - Endwalker/MSQ/B-Garlemald/4383_A Frosty Reception.json
QuestPaths/6.x - Endwalker/MSQ/B-Garlemald/4395_Gateway of the Gods.json
QuestPaths/6.x - Endwalker/MSQ/B-Garlemald/4396_A Trip to the Moon.json
QuestPaths/6.x - Endwalker/MSQ/B-Garlemald/4398_The Martyr.json
QuestPaths/6.x - Endwalker/MSQ/D-Thavnair2/4409_Skies Aflame.json
QuestPaths/6.x - Endwalker/MSQ/E-Elpis/4420_Hope Upon a Flower.json
QuestPaths/6.x - Endwalker/MSQ/E-Elpis/4437_Caging the Messenger.json
QuestPaths/6.x - Endwalker/MSQ/F-Labyrinthos2/4449_Her Children One and All.json
QuestPaths/6.x - Endwalker/MSQ/G-UltimaThule/4464_Endwalker.json
QuestPaths/6.x - Endwalker/MSQ/H-6.1/4529_Alzadaals Legacy.json
QuestPaths/6.x - Endwalker/MSQ/I-6.2/4592_In Search of Azdaja.json
QuestPaths/6.x - Endwalker/MSQ/I-6.2/4597_The Wind Rises.json
QuestPaths/6.x - Endwalker/MSQ/J-6.3/4674_King of the Mountain.json
QuestPaths/6.x - Endwalker/MSQ/J-6.3/4677_Desires Untold.json
QuestPaths/6.x - Endwalker/MSQ/K-6.4/4736_Going Haam.json
QuestPaths/6.x - Endwalker/MSQ/K-6.4/4742_Abyssal Dark.json
QuestPaths/6.x - Endwalker/MSQ/L-6.5/4748_Down in the Dark.json
QuestPaths/6.x - Endwalker/MSQ/M-6.55/4752_The Game Is Afoot.json
QuestPaths/6.x - Endwalker/Role Quests/Physical Ranged/4125_Laid to Rest.json
QuestPaths/7.x - Dawntrail/Class Quests/VPR/4849_Fangs of the Viper.json
QuestPaths/7.x - Dawntrail/Class Quests/VPR/4853_Vengeance of the Viper.json
QuestPaths/7.x - Dawntrail/MSQ/A-Kozama'uka1-Urqopacha1/4860_A New World to Explore.json
QuestPaths/7.x - Dawntrail/MSQ/A-Kozama'uka1-Urqopacha1/4865_To Kozama'uka.json
QuestPaths/7.x - Dawntrail/MSQ/A-Kozama'uka1-Urqopacha1/4879_For All Turali.json
QuestPaths/7.x - Dawntrail/MSQ/B-Kozama'uka2-Urqopacha2/4884_The Shape of Peace.json
QuestPaths/7.x - Dawntrail/MSQ/B-Kozama'uka2-Urqopacha2/4891_The High Luminary.json
QuestPaths/7.x - Dawntrail/MSQ/B-Kozama'uka2-Urqopacha2/4894_The Skyruin.json
QuestPaths/7.x - Dawntrail/MSQ/C-Yak T'el/4897_The Leap to Yak T'el.json
QuestPaths/7.x - Dawntrail/MSQ/C-Yak T'el/4909_Road to the Golden City.json
QuestPaths/7.x - Dawntrail/MSQ/D-Shaaloani-HeritageFound1/4912_The Long Road to Xak Tural.json
QuestPaths/7.x - Dawntrail/MSQ/D-Shaaloani-HeritageFound1/4923_In Yyasulani's Shadow.json
QuestPaths/7.x - Dawntrail/MSQ/D-Shaaloani-HeritageFound1/4926_All Aboard.json
QuestPaths/7.x - Dawntrail/MSQ/E-SolutionNine-HeritageFound2/4933_Solution Nine.json
QuestPaths/7.x - Dawntrail/MSQ/E-SolutionNine-HeritageFound2/4945_The Resilient Son.json
QuestPaths/7.x - Dawntrail/MSQ/F-Living Memory/4948_Through the Gate of Gold.json
QuestPaths/7.x - Dawntrail/MSQ/F-Living Memory/4959_Dawntrail.json
QuestPaths/7.x - Dawntrail/MSQ/G-7.1/5249_The Warmth of Family.json
QuestPaths/7.x - Dawntrail/MSQ/I-7.3/5366_My Memories and Yours.json
QuestPaths/7.x - Dawntrail/MSQ/I-7.3/5367_A Darkness in the Heart.json
QuestPaths/7.x - Dawntrail/MSQ/I-7.3/5368_Preservation Their Purpose.json
QuestPaths/7.x - Dawntrail/MSQ/I-7.3/5371_A Terminal Invitation.json
QuestPaths/7.x - Dawntrail/Role Quests/Healer/4829_An Antidote for Anarchy.json
QuestPaths/7.x - Dawntrail/Role Quests/Magical Ranged/4847_Heroes and Pretenders.json
QuestPaths/7.x - Dawntrail/Role Quests/Melee/4835_A Hunter True.json
QuestPaths/7.x - Dawntrail/Role Quests/Physical Ranged/4841_The Mightiest Shield.json
QuestPaths/7.x - Dawntrail/Role Quests/Tank/4823_Dreams of a New Day.json
QuestPaths/quest-v1.json
Questionable.Model/Questing/QuestSequence.cs
Questionable/Controller/QuestController.cs
Questionable/Controller/Steps/Shared/Gather.cs
Questionable/Controller/Steps/TaskCreator.cs

index d376b2f10fc3d7e58e76a2934037e9978fa40d0a..e911f09741a3de8080b438bfaf3e5d640ef1671f 100644 (file)
@@ -1,73 +1,72 @@
 {
-    "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
-    "Author": "Censored",
-    "Disabled": true,
-    "Comment": "This is a FATE Allied Society Quest",
-    "QuestSequence": [
+  "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
+  "Author": "Censored",
+  "Disabled": true,
+  "Comment": "This is a FATE Allied Society Quest",
+  "QuestSequence": [
+    {
+      "Sequence": 0,
+      "Steps": [
         {
-            "Sequence": 0,
-            "Steps": [
-                {
-                    "DataId": 1005561,
-                    "Position": {
-                        "X": 47.01306,
-                        "Y": 6.0734644,
-                        "Z": 254.01685
-                    },
-                    "TerritoryId": 152,
-                    "InteractionType": "AcceptQuest",
-                    "AetheryteShortcut": "East Shroud - Hawthorne Hut",
-                    "Fly": true,
-                    "SkipConditions": {
-                        "AetheryteShortcutIf": {
-                            "InSameTerritory": true
-                        }
-                    }
-                }
-            ]
-        },
+          "DataId": 1005561,
+          "Position": {
+            "X": 47.01306,
+            "Y": 6.0734644,
+            "Z": 254.01685
+          },
+          "TerritoryId": 152,
+          "InteractionType": "AcceptQuest",
+          "AetheryteShortcut": "East Shroud - Hawthorne Hut",
+          "Fly": true,
+          "SkipConditions": {
+            "AetheryteShortcutIf": {
+              "InSameTerritory": true
+            }
+          }
+        }
+      ]
+    },
+    {
+      "Sequence": 1
+    },
+    {
+      "Sequence": 255,
+      "Steps": [
         {
-            "Sequence": 1,
-            "Steps": []
+          "Position": {
+            "X": 37.71168,
+            "Y": 4.7303743,
+            "Z": 250.62769
+          },
+          "TerritoryId": 152,
+          "InteractionType": "WalkTo",
+          "Fly": true,
+          "Land": true,
+          "SkipConditions": {
+            "StepIf": {
+              "NearPosition": {
+                "Position": {
+                  "X": 37.71168,
+                  "Y": 4.7303743,
+                  "Z": 250.62769
+                },
+                "TerritoryId": 152,
+                "MaximumDistance": 10
+              }
+            }
+          }
         },
         {
-            "Sequence": 255,
-            "Steps": [
-                {
-                    "Position": {
-                        "X": 37.71168,
-                        "Y": 4.7303743,
-                        "Z": 250.62769
-                    },
-                    "TerritoryId": 152,
-                    "InteractionType": "WalkTo",
-                    "Fly": true,
-                    "Land": true,
-                    "SkipConditions": {
-                        "StepIf": {
-                            "NearPosition": {
-                                "Position": {
-                                    "X": 37.71168,
-                                    "Y": 4.7303743,
-                                    "Z": 250.62769
-                                },
-                                "TerritoryId": 152,
-                                "MaximumDistance": 10
-                            }
-                        }
-                    }
-                },
-                {
-                    "DataId": 1005561,
-                    "Position": {
-                        "X": 47.01306,
-                        "Y": 6.0734644,
-                        "Z": 254.01685
-                    },
-                    "TerritoryId": 152,
-                    "InteractionType": "CompleteQuest"
-                }
-            ]
+          "DataId": 1005561,
+          "Position": {
+            "X": 47.01306,
+            "Y": 6.0734644,
+            "Z": 254.01685
+          },
+          "TerritoryId": 152,
+          "InteractionType": "CompleteQuest"
         }
-    ]
+      ]
+    }
+  ]
 }
index 9b882da173df0e70fb29acb57c473d53fb9f3842..ec0eebca389e9b124e20b7690c186261273ded6a 100644 (file)
       ]
     },
     {
-      "Sequence": 4,
-      "Steps": [
-        {
-          "Position": {
-            "X": 0,
-            "Y": 0,
-            "Z": 0
-          },
-          "TerritoryId": 1,
-          "InteractionType": "WalkTo",
-          "Comment": "Filler"
-        }
-      ]
+      "Sequence": 4
     },
     {
       "Sequence": 5,
index 73e086f65cdf103f361058ac7334bedf7d7d85f2..a48f76ce0909724adfea5d7abb73cc6da402c58f 100644 (file)
       ]
     },
     {
-      "Sequence": 2,
-      "Steps": [
-        {
-          "Position": {
-            "X": 0,
-            "Y": 0,
-            "Z": 0
-          },
-          "TerritoryId": 1,
-          "InteractionType": "WalkTo",
-          "Comment": "Filler"
-        }
-      ]
+      "Sequence": 2
     },
     {
       "Sequence": 3,
index 0e90567d1fbf299a05cd4ea346aa3d4d8627090c..04941d82223b831be60399f855bed9ed5a31ef6d 100644 (file)
       ]
     },
     {
-      "Sequence": 3,
-      "Steps": [
-        {
-          "Position": {
-            "X": 0,
-            "Y": 0,
-            "Z": 0
-          },
-          "TerritoryId": 1,
-          "InteractionType": "WalkTo",
-          "Comment": "Filler"
-        }
-      ]
+      "Sequence": 3
     },
     {
       "Sequence": 255,
index c38eddcb033cdec04c52347331359a8e56debf83..8282a61b3a43f2ae0f9c5af45d0bbcd74910b034 100644 (file)
       ]
     },
     {
-      "Sequence": 5,
-      "Steps": [
-        {
-          "Position": {
-            "X": 0,
-            "Y": 0,
-            "Z": 0
-          },
-          "TerritoryId": 1,
-          "InteractionType": "WalkTo",
-          "Comment": "Filler"
-        }
-      ]
+      "Sequence": 5
     },
     {
       "Sequence": 6,
index e319cb16719f14c9d41007bec319d19f14367bb5..f38283ecbb14ab5598da275f96d2476507b773c3 100644 (file)
       ]
     },
     {
-      "Sequence": 2,
-      "Steps": [
-        {
-          "Position": {
-            "X": 0,
-            "Y": 0,
-            "Z": 0
-          },
-          "TerritoryId": 1,
-          "InteractionType": "WalkTo",
-          "Comment": "Filler"
-        }
-      ]
+      "Sequence": 2
     },
     {
       "Sequence": 255,
index eed56285ee9e0f30b237630c7bd906dc49af54df..130ee6ec021fff4438be65455f3ea55541841986 100644 (file)
       ]
     },
     {
-      "Sequence": 3,
-      "Steps": [
-        {
-          "Position": {
-            "X": 0,
-            "Y": 0,
-            "Z": 0
-          },
-          "TerritoryId": 1,
-          "InteractionType": "WalkTo",
-          "Comment": "Filler"
-        }
-      ]
+      "Sequence": 3
     },
     {
       "Sequence": 255,
index 10b394a773d0bad1e9885d7cc58f62edf975e9ad..0dcb5688400a99e4b3412ad2528bf838a9cfc901 100644 (file)
       ]
     },
     {
-      "Sequence": 5,
-      "Steps": [
-        {
-          "Position": {
-            "X": 0,
-            "Y": 0,
-            "Z": 0
-          },
-          "TerritoryId": 1,
-          "InteractionType": "WalkTo",
-          "Comment": "Filler"
-        }
-      ]
+      "Sequence": 5
     },
     {
       "Sequence": 6,
index 846a75dc4137b2470cfd281af7127d1203323f29..222f173d44222e948b36b718b3cc4d5789a5ff1e 100644 (file)
       ]
     },
     {
-      "Sequence": 3,
-      "Steps": [
-        {
-          "Position": {
-            "X": 0,
-            "Y": 0,
-            "Z": 0
-          },
-          "TerritoryId": 1,
-          "InteractionType": "WalkTo",
-          "Comment": "Filler"
-        }
-      ]
+      "Sequence": 3
     },
     {
       "Sequence": 255,
index e8b7817f47a3707fbefaa5b42f8600dfb26acd24..53e0b20d1269ade2b13990f3acb5e89542fb38fc 100644 (file)
       ]
     },
     {
-      "Sequence": 3,
-      "Steps": [
-        {
-          "Position": {
-            "X": 0,
-            "Y": 0,
-            "Z": 0
-          },
-          "TerritoryId": 1,
-          "InteractionType": "WalkTo",
-          "Comment": "Filler"
-        }
-      ]
+      "Sequence": 3
     },
     {
       "Sequence": 4,
index aad57d7caa71112190dd32a911b2cefe06534250..62ae139edef17fb06d2f923d149fcfdf49a4191d 100644 (file)
       ]
     },
     {
-      "Sequence": 3,
-      "Steps": [
-        {
-          "Position": {
-            "X": 0,
-            "Y": 0,
-            "Z": 0
-          },
-          "TerritoryId": 1,
-          "InteractionType": "WalkTo",
-          "Comment": "Filler"
-        }
-      ]
+      "Sequence": 3
     },
     {
       "Sequence": 4,
       ]
     },
     {
-      "Sequence": 5,
-      "Steps": [
-        {
-          "Position": {
-            "X": 0,
-            "Y": 0,
-            "Z": 0
-          },
-          "TerritoryId": 1,
-          "InteractionType": "WalkTo",
-          "Comment": "Filler"
-        }
-      ]
+      "Sequence": 5
     },
     {
       "Sequence": 6,
index 1c91e8f86ea89c07fc0414eaaa64f87bfaae2909..906fc74367f1216f033578a9515e890a684a2ccd 100644 (file)
       ]
     },
     {
-      "Sequence": 2,
-      "Steps": [
-        {
-          "Position": {
-            "X": 0,
-            "Y": 0,
-            "Z": 0
-          },
-          "TerritoryId": 1,
-          "InteractionType": "WalkTo",
-          "Comment": "Filler"
-        }
-      ]
+      "Sequence": 2
     },
     {
       "Sequence": 3,
index d2dcc6029d62b5f33d2c939c65b3eaa950a23c38..a053802be51bbafc5ddc2d4bf6c175a49babbad1 100644 (file)
       ]
     },
     {
-      "Sequence": 2,
-      "Steps": [
-        {
-          "Position": {
-            "X": 0,
-            "Y": 0,
-            "Z": 0
-          },
-          "TerritoryId": 1,
-          "InteractionType": "WalkTo",
-          "Comment": "Filler"
-        }
-      ]
+      "Sequence": 2
     },
     {
       "Sequence": 255,
index bac7e06799c18fa9fa9728fd25acf9f7121a2806..99548bba1fb370a16f64075fc71259e42a1ae070 100644 (file)
       ]
     },
     {
-      "Sequence": 4,
-      "Steps": [
-        {
-          "Position": {
-            "X": 0,
-            "Y": 0,
-            "Z": 0
-          },
-          "TerritoryId": 1,
-          "InteractionType": "WalkTo",
-          "Comment": "Filler"
-        }
-      ]
+      "Sequence": 4
     },
     {
       "Sequence": 5,
index da55ca4199f57fb98ef2504548ee13bfe77b0619..bba5049ee502fddc2fe01c1619fabdc6a98d3de5 100644 (file)
       ]
     },
     {
-      "Sequence": 4,
-      "Steps": [
-        {
-          "Position": {
-            "X": 0,
-            "Y": 0,
-            "Z": 0
-          },
-          "TerritoryId": 1,
-          "InteractionType": "WalkTo",
-          "Comment": "Filler"
-        }
-      ]
+      "Sequence": 4
     },
     {
       "Sequence": 5,
index 215f1849c4e0e0a3f707c480d894d46e2f8374a1..17721277aa5adff028cd253eb97a85367f13ede2 100644 (file)
       ]
     },
     {
-      "Sequence": 4,
-      "Steps": [
-        {
-          "Position": {
-            "X": 0,
-            "Y": 0,
-            "Z": 0
-          },
-          "TerritoryId": 1,
-          "InteractionType": "WalkTo",
-          "Comment": "Filler"
-        }
-      ]
+      "Sequence": 4
     },
     {
       "Sequence": 5,
index a2111787c2b34bcc88ace9af2e56d6255f824827..9cb8e5b0782e1fb0aca49a0ca6d59d11bda5e61f 100644 (file)
       ]
     },
     {
-      "Sequence": 2,
-      "Steps": [
-        {
-          "Position": {
-            "X": 0,
-            "Y": 0,
-            "Z": 0
-          },
-          "TerritoryId": 1,
-          "InteractionType": "WalkTo",
-          "Comment": "Filler"
-        }
-      ]
+      "Sequence": 2
     },
     {
       "Sequence": 3,
index c49c8e396ac43914d42e9e962d4cf5ec951c014a..7d7ec14c8a2e6f6adcb4b57e4a17fecb176bc3b3 100644 (file)
       ]
     },
     {
-      "Sequence": 1,
-      "Steps": [
-        {
-          "Position": {
-            "X": 0,
-            "Y": 0,
-            "Z": 0
-          },
-          "TerritoryId": 1,
-          "InteractionType": "WalkTo",
-          "Comment": "Filler"
-        }
-      ]
+      "Sequence": 1
     },
     {
       "Sequence": 2,
index 72601fe56e6a3ac6d9d8a2dc12884679c849390c..f7a58b1e652315e4588e34a58e6c7634586d2d81 100644 (file)
       ]
     },
     {
-      "Sequence": 2,
-      "Steps": [
-        {
-          "Position": {
-            "X": 0,
-            "Y": 0,
-            "Z": 0
-          },
-          "TerritoryId": 1,
-          "InteractionType": "WalkTo",
-          "Comment": "Filler"
-        }
-      ]
+      "Sequence": 2
     },
     {
       "Sequence": 3,
index f88df65255bc0f714f54f410092a24d3dd1dfbb7..d68ddad7878a1d26d45c2a5d02496cbf7497b5e3 100644 (file)
@@ -44,8 +44,7 @@
       ]
     },
     {
-      "Sequence": 2,
-      "Steps": []
+      "Sequence": 2
     },
     {
       "Sequence": 255,
       ]
     }
   ]
-}
\ No newline at end of file
+}
index f4124deea10f9fb3b8c577ea4642f583ce28a257..32e5fb75f9873fbc5fefd7aebf1167d6e238fac5 100644 (file)
@@ -72,9 +72,7 @@
       ]\r
     },\r
     {\r
-      "Sequence": 3,\r
-      "Steps": [\r
-      ]\r
+      "Sequence": 3\r
     },\r
     {\r
       "Sequence": 4,\r
index 0dcf29886434e116d12555b53e20cfba7c8c8bba..f9594033872fc224dee4b31fd127f9c1fc88c697 100644 (file)
       ]
     },
     {
-      "Sequence": 2,
-      "Steps": [
-        {
-          "Position": {
-            "X": 0,
-            "Y": 0,
-            "Z": 0
-          },
-          "TerritoryId": 1,
-          "InteractionType": "WalkTo",
-          "Comment": "Filler"
-        }
-      ]
+      "Sequence": 2
     },
     {
       "Sequence": 3,
index 76e5fdb6979bdf767ca3786ca2f7c96c171b81b9..3840513fd828eec32c46789dd55680a53b14e0a7 100644 (file)
       ]
     },
     {
-      "Sequence": 2,
-      "Steps": [
-        {
-          "Position": {
-            "X": 0,
-            "Y": 0,
-            "Z": 0
-          },
-          "TerritoryId": 1,
-          "InteractionType": "WalkTo",
-          "Comment": "Filler"
-        }
-      ]
+      "Sequence": 2
     },
     {
       "Sequence": 3,
index 201cfc2d67664b527af8337184c1f89bf80f9a3f..ff03942a4a99ba440e694b11e4ed3ae00827ca20 100644 (file)
       ]
     },
     {
-      "Sequence": 7,
-      "Steps": [
-        {
-          "Position": {
-            "X": 0,
-            "Y": 0,
-            "Z": 0
-          },
-          "TerritoryId": 1,
-          "InteractionType": "WalkTo",
-          "Comment": "Filler"
-        }
-      ]
+      "Sequence": 7
     },
     {
       "Sequence": 8,
       ]
     },
     {
-      "Sequence": 9,
-      "Steps": [
-        {
-          "Position": {
-            "X": 0,
-            "Y": 0,
-            "Z": 0
-          },
-          "TerritoryId": 1,
-          "InteractionType": "WalkTo",
-          "Comment": "Filler"
-        }
-      ]
+      "Sequence": 9
     },
     {
       "Sequence": 10,
index 75b26eac219e58496362551d1ee577ec283f2b63..58ac0f7d4522a8bbe580ce500a57b096165b5465 100644 (file)
       ]
     },
     {
-      "Sequence": 10,
-      "Steps": [
-        {
-          "Position": {
-            "X": 0,
-            "Y": 0,
-            "Z": 0
-          },
-          "TerritoryId": 1,
-          "InteractionType": "WalkTo",
-          "Comment": "Filler"
-        }
-      ]
+      "Sequence": 10
     },
     {
       "Sequence": 11,
index 187ee7165a0d988ded356c5e1bdf342a6948791b..8feb64eeb68faa6e68af6b89500b55456d766119 100644 (file)
       ]
     },
     {
-      "Sequence": 6,
-      "Steps": [
-      ]
+      "Sequence": 6
     },
     {
       "Sequence": 7,
index 443df19751f01f2e4ec6c548ada483957e4a1332..2fc4724eaf8e9de925595813c80b7d47c16347cd 100644 (file)
@@ -64,8 +64,7 @@
       ]
     },
     {
-      "Sequence": 3,
-      "Steps": []
+      "Sequence": 3
     },
     {
       "Sequence": 4,
index 456f753b1b13acb02bc75f8cad348f15071c0421..96ac18f83898a30730e51b61a0471c854445f246 100644 (file)
       ]
     },
     {
-      "Sequence": 3,
-      "Steps": [
-        {
-          "Position": {
-            "X": 0,
-            "Y": 0,
-            "Z": 0
-          },
-          "TerritoryId": 1,
-          "InteractionType": "WalkTo",
-          "Comment": "Filler"
-        }
-      ]
+      "Sequence": 3
     },
     {
       "Sequence": 4,
index ed00acadf34b919c2046771489a57b26a7e34d0f..b3091fea23637738545c20bc87da239075609219 100644 (file)
       ]
     },
     {
-      "Sequence": 2,
-      "Steps": [
-        {
-          "Position": {
-            "X": 0,
-            "Y": 0,
-            "Z": 0
-          },
-          "TerritoryId": 1,
-          "InteractionType": "WalkTo",
-          "Comment": "Filler"
-        }
-      ]
+      "Sequence": 2
     },
     {
       "Sequence": 3,
index f300ab57721006f936874cb84b54a15e8d78b599..2767027d7f51e577f137694b8a41f18c637f8636 100644 (file)
       ]
     },
     {
-      "Sequence": 3,
-      "Steps": [
-        {
-          "Position": {
-            "X": 0,
-            "Y": 0,
-            "Z": 0
-          },
-          "TerritoryId": 1,
-          "InteractionType": "WalkTo",
-          "Comment": "Filler"
-        }
-      ]
+      "Sequence": 3
     },
     {
       "Sequence": 4,
index fbf2d4c5245f2b3aeebc46cbd299bf3fe8abc06c..8596bf56361af0113d6f512c281bfac9ca7dd4a8 100644 (file)
       ]
     },
     {
-      "Sequence": 2,
-      "Steps": [
-        {
-          "Position": {
-            "X": 0,
-            "Y": 0,
-            "Z": 0
-          },
-          "TerritoryId": 1,
-          "InteractionType": "WalkTo",
-          "Comment": "Filler"
-        }
-      ]
+      "Sequence": 2
     },
     {
       "Sequence": 3,
index ef9aa4df009cd2d2a72f786be0f9acc28eb7a00c..32e63150e3855b1fa4938d07eb6204ee9c12a719 100644 (file)
       ]
     },
     {
-      "Sequence": 4,
-      "Steps": [
-        {
-          "Position": {
-            "X": 0,
-            "Y": 0,
-            "Z": 0
-          },
-          "TerritoryId": 1,
-          "InteractionType": "WalkTo",
-          "Comment": "Filler"
-        }
-      ]
+      "Sequence": 4
     },
     {
       "Sequence": 5,
index 4ff383f6e08a57b2a0f30f3375d8bbc1451ff178..1e9450b9fe5782c3feb904fa855185b9b7d0b12c 100644 (file)
       ]
     },
     {
-      "Sequence": 8,
-      "Steps": [
-        {
-          "Position": {
-            "X": 0,
-            "Y": 0,
-            "Z": 0
-          },
-          "TerritoryId": 1,
-          "InteractionType": "WalkTo",
-          "Comment": "Filler"
-        }
-      ]
+      "Sequence": 8
     },
     {
       "Sequence": 9,
       ]
     },
     {
-      "Sequence": 10,
-      "Steps": [
-        {
-          "Position": {
-            "X": 0,
-            "Y": 0,
-            "Z": 0
-          },
-          "TerritoryId": 1,
-          "InteractionType": "WalkTo",
-          "Comment": "Filler"
-        }
-      ]
+      "Sequence": 10
     },
     {
       "Sequence": 11,
index 2e85654421c4ad4f76b8132638dbd462eb51b7af..b5ab4858e5c80b1c7549fbebd0311bef5f800880 100644 (file)
       ]
     },
     {
-      "Sequence": 3,
-      "Steps": [
-        {
-          "Position": {
-            "X": 0,
-            "Y": 0,
-            "Z": 0
-          },
-          "TerritoryId": 1,
-          "InteractionType": "WalkTo",
-          "Comment": "Filler"
-        }
-      ]
+      "Sequence": 3
     },
     {
       "Sequence": 255,
index 61a471aa1a8b19b342e949d785c2c1891fc1e141..7fff3665fca6c81e7c761b2596d4d96c5ad00e20 100644 (file)
       ]
     },
     {
-      "Sequence": 3,
-      "Steps": [
-        {
-          "Position": {
-            "X": 0,
-            "Y": 0,
-            "Z": 0
-          },
-          "TerritoryId": 1,
-          "InteractionType": "WalkTo",
-          "Comment": "Filler"
-        }
-      ]
+      "Sequence": 3
     },
     {
       "Sequence": 255,
index 21c950ec5a894d92394a278bcbfb25ba19b3fb79..dd912280df3ccb251f34d3ad809fcb28b5e42cd7 100644 (file)
       ]
     },
     {
-      "Sequence": 1,
-      "Steps": [
-        {
-          "Position": {
-            "X": 0,
-            "Y": 0,
-            "Z": 0
-          },
-          "TerritoryId": 1,
-          "InteractionType": "WalkTo",
-          "Comment": "Filler"
-        }
-      ]
+      "Sequence": 1
     },
     {
       "Sequence": 2,
index 44d8eba5bf3c649313131115bade869e703dde9b..f7895cdd69ca88eeb8398d05455da4351e188157 100644 (file)
       ]
     },
     {
-      "Sequence": 2,
-      "Steps": [
-        {
-          "Position": {
-            "X": 0,
-            "Y": 0,
-            "Z": 0
-          },
-          "TerritoryId": 1,
-          "InteractionType": "WalkTo",
-          "Comment": "Filler"
-        }
-      ]
+      "Sequence": 2
     },
     {
       "Sequence": 3,
index a1b2847fc24d6f34c2e85ca9739a38b7ff6dd5a1..ce66f21b720439692a3d990e2998ac860c931ee2 100644 (file)
       ]
     },
     {
-      "Sequence": 4,
-      "Steps": [
-        {
-          "Position": {
-            "X": 0,
-            "Y": 0,
-            "Z": 0
-          },
-          "TerritoryId": 1,
-          "InteractionType": "WalkTo",
-          "Comment": "Filler"
-        }
-      ]
+      "Sequence": 4
     },
     {
       "Sequence": 5,
index 57781ac8087d65b10ca228da196afac87f0a76e2..c02921a4514ae9689d6a825b75eec1aaacf79ac4 100644 (file)
       ]
     },
     {
-      "Sequence": 1,
-      "Steps": [
-        {
-          "Position": {
-            "X": 0,
-            "Y": 0,
-            "Z": 0
-          },
-          "TerritoryId": 1,
-          "InteractionType": "WalkTo",
-          "Comment": "Filler"
-        }
-      ]
+      "Sequence": 1
     },
     {
       "Sequence": 2,
       ]
     },
     {
-      "Sequence": 3,
-      "Steps": [
-        {
-          "Position": {
-            "X": 0,
-            "Y": 0,
-            "Z": 0
-          },
-          "TerritoryId": 1,
-          "InteractionType": "WalkTo",
-          "Comment": "Filler"
-        }
-      ]
+      "Sequence": 3
     },
     {
       "Sequence": 255,
index 62f022769ee407772e97d032830c540563f78bfe..beb0f395d7c523a5aff94d342ecfd9fadd0981fe 100644 (file)
       ]
     },
     {
-      "Sequence": 5,
-      "Steps": [
-        {
-          "Position": {
-            "X": 0,
-            "Y": 0,
-            "Z": 0
-          },
-          "TerritoryId": 1,
-          "InteractionType": "WalkTo",
-          "Comment": "Filler"
-        }
-      ]
+      "Sequence": 5
     },
     {
       "Sequence": 255,
index 0024ca16adfff41a45160f9381fc67448e5fe1f4..0c7ebbc82a6b1c14246baef3fcd722a9bcd9aa4d 100644 (file)
       ]
     },
     {
-      "Sequence": 4,
-      "Steps": [
-        {
-          "Position": {
-            "X": 0,
-            "Y": 0,
-            "Z": 0
-          },
-          "TerritoryId": 1,
-          "InteractionType": "WalkTo",
-          "Comment": "Filler"
-        }
-      ]
+      "Sequence": 4
     },
     {
       "Sequence": 255,
index 0cb9d443e990ffb0880ab5a8b589652f77891101..e134298161369a5143deb9f83c7299c33c009239 100644 (file)
 {\r
-    "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",\r
-    "Author": "Censored",\r
-    "QuestSequence": [\r
+  "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",\r
+  "Author": "Censored",\r
+  "QuestSequence": [\r
+    {\r
+      "Sequence": 0,\r
+      "Steps": [\r
         {\r
-            "Sequence": 0,\r
-            "Steps": [\r
-                {\r
-                    "DataId": 1032868,\r
-                    "Position": {\r
-                        "X": -258.59473,\r
-                        "Y": 53.217506,\r
-                        "Z": -644.8616\r
-                    },\r
-                    "TerritoryId": 614,\r
-                    "InteractionType": "AcceptQuest",\r
-                    "AetheryteShortcut": "Yanxia - House of the Fierce",\r
-                    "Fly": true,\r
-                    "SkipConditions": {\r
-                        "AetheryteShortcutIf": {\r
-                            "InSameTerritory": true\r
-                        }\r
-                    }\r
-                }\r
-            ]\r
-        },\r
-        {\r
-            "Sequence": 1,\r
-            "Steps": [\r
-                {\r
-                    "DataId": 1032869,\r
-                    "Position": {\r
-                        "X": 127.27539,\r
-                        "Y": -4.1787133,\r
-                        "Z": 98.68005\r
-                    },\r
-                    "TerritoryId": 759,\r
-                    "InteractionType": "Interact",\r
-                    "AetheryteShortcut": "Doman Enclave",\r
-                    "AethernetShortcut": [\r
-                        "[Doman Enclave] Aetheryte Plaza",\r
-                        "[Doman Enclave] Ferry Docks"\r
-                    ],\r
-                    "DialogueChoices": [\r
-                        {\r
-                            "Type": "YesNo",\r
-                            "Prompt": "TEXT_LUCKSA002_03835_Q1_000_031",\r
-                            "Yes": true\r
-                        }\r
-                    ]\r
-                }\r
-            ]\r
-        },\r
+          "DataId": 1032868,\r
+          "Position": {\r
+            "X": -258.59473,\r
+            "Y": 53.217506,\r
+            "Z": -644.8616\r
+          },\r
+          "TerritoryId": 614,\r
+          "InteractionType": "AcceptQuest",\r
+          "AetheryteShortcut": "Yanxia - House of the Fierce",\r
+          "Fly": true,\r
+          "SkipConditions": {\r
+            "AetheryteShortcutIf": {\r
+              "InSameTerritory": true\r
+            }\r
+          }\r
+        }\r
+      ]\r
+    },\r
+    {\r
+      "Sequence": 1,\r
+      "Steps": [\r
         {\r
-            "Sequence": 2,\r
-            "Steps": [\r
-                {\r
-                    "Position": {\r
-                        "X": 0,\r
-                        "Y": 0,\r
-                        "Z": 0\r
-                    },\r
-                    "TerritoryId": 1,\r
-                    "InteractionType": "WalkTo",\r
-                    "Comment": "Filler"\r
-                }\r
-            ]\r
-        },\r
+          "DataId": 1032869,\r
+          "Position": {\r
+            "X": 127.27539,\r
+            "Y": -4.1787133,\r
+            "Z": 98.68005\r
+          },\r
+          "TerritoryId": 759,\r
+          "InteractionType": "Interact",\r
+          "AetheryteShortcut": "Doman Enclave",\r
+          "AethernetShortcut": [\r
+            "[Doman Enclave] Aetheryte Plaza",\r
+            "[Doman Enclave] Ferry Docks"\r
+          ],\r
+          "DialogueChoices": [\r
+            {\r
+              "Type": "YesNo",\r
+              "Prompt": "TEXT_LUCKSA002_03835_Q1_000_031",\r
+              "Yes": true\r
+            }\r
+          ]\r
+        }\r
+      ]\r
+    },\r
+    {\r
+      "Sequence": 2\r
+    },\r
+    {\r
+      "Sequence": 3,\r
+      "Steps": [\r
         {\r
-            "Sequence": 3,\r
-            "Steps": [\r
-                {\r
-                    "DataId": 1032874,\r
-                    "Position": {\r
-                        "X": 13.168518,\r
-                        "Y": -0.23751694,\r
-                        "Z": 8.377136\r
-                    },\r
-                    "TerritoryId": 915,\r
-                    "InteractionType": "Interact"\r
-                }\r
-            ]\r
-        },\r
+          "DataId": 1032874,\r
+          "Position": {\r
+            "X": 13.168518,\r
+            "Y": -0.23751694,\r
+            "Z": 8.377136\r
+          },\r
+          "TerritoryId": 915,\r
+          "InteractionType": "Interact"\r
+        }\r
+      ]\r
+    },\r
+    {\r
+      "Sequence": 4,\r
+      "Steps": [\r
         {\r
-            "Sequence": 4,\r
-            "Steps": [\r
-                {\r
-                    "DataId": 1032871,\r
-                    "Position": {\r
-                        "X": 22.323914,\r
-                        "Y": 0.09971012,\r
-                        "Z": -14.694458\r
-                    },\r
-                    "TerritoryId": 915,\r
-                    "InteractionType": "Interact"\r
-                }\r
-            ]\r
-        },\r
+          "DataId": 1032871,\r
+          "Position": {\r
+            "X": 22.323914,\r
+            "Y": 0.09971012,\r
+            "Z": -14.694458\r
+          },\r
+          "TerritoryId": 915,\r
+          "InteractionType": "Interact"\r
+        }\r
+      ]\r
+    },\r
+    {\r
+      "Sequence": 5,\r
+      "Steps": [\r
         {\r
-            "Sequence": 5,\r
-            "Steps": [\r
-                {\r
-                    "DataId": 1032877,\r
-                    "Position": {\r
-                        "X": 29.43457,\r
-                        "Y": 0,\r
-                        "Z": 30.350098\r
-                    },\r
-                    "TerritoryId": 635,\r
-                    "InteractionType": "Interact",\r
-                    "AetheryteShortcut": "Rhalgr's Reach"\r
-                }\r
-            ]\r
-        },\r
+          "DataId": 1032877,\r
+          "Position": {\r
+            "X": 29.43457,\r
+            "Y": 0,\r
+            "Z": 30.350098\r
+          },\r
+          "TerritoryId": 635,\r
+          "InteractionType": "Interact",\r
+          "AetheryteShortcut": "Rhalgr's Reach"\r
+        }\r
+      ]\r
+    },\r
+    {\r
+      "Sequence": 255,\r
+      "Steps": [\r
         {\r
-            "Sequence": 255,\r
-            "Steps": [\r
-                {\r
-                    "DataId": 1032877,\r
-                    "Position": {\r
-                        "X": 29.43457,\r
-                        "Y": 0,\r
-                        "Z": 30.350098\r
-                    },\r
-                    "TerritoryId": 635,\r
-                    "InteractionType": "CompleteQuest",\r
-                    "NextQuestId": 3836\r
-                }\r
-            ]\r
+          "DataId": 1032877,\r
+          "Position": {\r
+            "X": 29.43457,\r
+            "Y": 0,\r
+            "Z": 30.350098\r
+          },\r
+          "TerritoryId": 635,\r
+          "InteractionType": "CompleteQuest",\r
+          "NextQuestId": 3836\r
         }\r
-    ]\r
+      ]\r
+    }\r
+  ]\r
 }\r
index fe1cc7c01091391a780b533858f2826d290e1b8c..c818c97dc141e64c7114d8c22672cc6b14135ffb 100644 (file)
@@ -1,99 +1,87 @@
 {\r
-    "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",\r
-    "Author": "Censored",\r
-    "QuestSequence": [\r
+  "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",\r
+  "Author": "Censored",\r
+  "QuestSequence": [\r
+    {\r
+      "Sequence": 0,\r
+      "Steps": [\r
         {\r
-            "Sequence": 0,\r
-            "Steps": [\r
-                {\r
-                    "DataId": 1032877,\r
-                    "Position": {\r
-                        "X": 29.43457,\r
-                        "Y": 0,\r
-                        "Z": 30.350098\r
-                    },\r
-                    "TerritoryId": 635,\r
-                    "InteractionType": "AcceptQuest",\r
-                    "AetheryteShortcut": "Rhalgr's Reach",\r
-                    "SkipConditions": {\r
-                        "AetheryteShortcutIf": {\r
-                            "InSameTerritory": true\r
-                        }\r
-                    }\r
-                }\r
-            ]\r
-        },\r
-        {\r
-            "Sequence": 1,\r
-            "Steps": [\r
-                {\r
-                    "DataId": 1032869,\r
-                    "Position": {\r
-                        "X": 127.27539,\r
-                        "Y": -4.1787133,\r
-                        "Z": 98.68005\r
-                    },\r
-                    "TerritoryId": 759,\r
-                    "InteractionType": "Interact",\r
-                    "AetheryteShortcut": "Doman Enclave",\r
-                    "AethernetShortcut": [\r
-                        "[Doman Enclave] Aetheryte Plaza",\r
-                        "[Doman Enclave] Ferry Docks"\r
-                    ]\r
-                }\r
-            ]\r
-        },\r
+          "DataId": 1032877,\r
+          "Position": {\r
+            "X": 29.43457,\r
+            "Y": 0,\r
+            "Z": 30.350098\r
+          },\r
+          "TerritoryId": 635,\r
+          "InteractionType": "AcceptQuest",\r
+          "AetheryteShortcut": "Rhalgr's Reach",\r
+          "SkipConditions": {\r
+            "AetheryteShortcutIf": {\r
+              "InSameTerritory": true\r
+            }\r
+          }\r
+        }\r
+      ]\r
+    },\r
+    {\r
+      "Sequence": 1,\r
+      "Steps": [\r
         {\r
-            "Sequence": 2,\r
-            "Steps": [\r
-                {\r
-                    "DataId": 1032901,\r
-                    "Position": {\r
-                        "X": 9.567322,\r
-                        "Y": -6.0169958E-05,\r
-                        "Z": -10.269409\r
-                    },\r
-                    "TerritoryId": 915,\r
-                    "InteractionType": "SinglePlayerDuty",\r
-                    "DialogueChoices": [\r
-                        {\r
-                            "Type": "YesNo",\r
-                            "Prompt": "TEXT_LUCKSA003_03836_Q1_100_098",\r
-                            "Yes": true\r
-                        }\r
-                    ]\r
-                }\r
-            ]\r
-        },\r
+          "DataId": 1032869,\r
+          "Position": {\r
+            "X": 127.27539,\r
+            "Y": -4.1787133,\r
+            "Z": 98.68005\r
+          },\r
+          "TerritoryId": 759,\r
+          "InteractionType": "Interact",\r
+          "AetheryteShortcut": "Doman Enclave",\r
+          "AethernetShortcut": [\r
+            "[Doman Enclave] Aetheryte Plaza",\r
+            "[Doman Enclave] Ferry Docks"\r
+          ]\r
+        }\r
+      ]\r
+    },\r
+    {\r
+      "Sequence": 2,\r
+      "Steps": [\r
         {\r
-            "Sequence": 3,\r
-            "Steps": [\r
-                {\r
-                    "Position": {\r
-                        "X": 0,\r
-                        "Y": 0,\r
-                        "Z": 0\r
-                    },\r
-                    "TerritoryId": 1,\r
-                    "InteractionType": "WalkTo",\r
-                    "Comment": "Filler"\r
-                }\r
-            ]\r
-        },\r
+          "DataId": 1032901,\r
+          "Position": {\r
+            "X": 9.567322,\r
+            "Y": -6.0169958E-05,\r
+            "Z": -10.269409\r
+          },\r
+          "TerritoryId": 915,\r
+          "InteractionType": "SinglePlayerDuty",\r
+          "DialogueChoices": [\r
+            {\r
+              "Type": "YesNo",\r
+              "Prompt": "TEXT_LUCKSA003_03836_Q1_100_098",\r
+              "Yes": true\r
+            }\r
+          ]\r
+        }\r
+      ]\r
+    },\r
+    {\r
+      "Sequence": 3\r
+    },\r
+    {\r
+      "Sequence": 255,\r
+      "Steps": [\r
         {\r
-            "Sequence": 255,\r
-            "Steps": [\r
-                {\r
-                    "DataId": 1032872,\r
-                    "Position": {\r
-                        "X": 16.67804,\r
-                        "Y": 0.03006095,\r
-                        "Z": -17.868408\r
-                    },\r
-                    "TerritoryId": 915,\r
-                    "InteractionType": "CompleteQuest"\r
-                }\r
-            ]\r
+          "DataId": 1032872,\r
+          "Position": {\r
+            "X": 16.67804,\r
+            "Y": 0.03006095,\r
+            "Z": -17.868408\r
+          },\r
+          "TerritoryId": 915,\r
+          "InteractionType": "CompleteQuest"\r
         }\r
-    ]\r
+      ]\r
+    }\r
+  ]\r
 }\r
index 51533dbb62630169e54a7e5e59052bf5df456ca0..8addb3f4f44b9a5eee81b36d5797e341b4089bdb 100644 (file)
@@ -81,8 +81,7 @@
       ]
     },
     {
-      "Sequence": 4,
-      "Steps": []
+      "Sequence": 4
     },
     {
       "Sequence": 5,
index 9a765b5a986aac786035e60a9ab8047c436b2372..d5e26775c59d070bb6aa1c1186db58b6390c3bb5 100644 (file)
       ]
     },
     {
-      "Sequence": 4,
-      "Steps": [
-        {
-          "Position": {
-            "X": 0,
-            "Y": 0,
-            "Z": 0
-          },
-          "TerritoryId": 1,
-          "InteractionType": "WalkTo",
-          "Comment": "Filler"
-        }
-      ]
+      "Sequence": 4
     },
     {
       "Sequence": 5,
index d07dba7e15ac47e47c45811e874a13c455fbb873..a346bc098923f7adc9275dd85891e25fa167541d 100644 (file)
       ]
     },
     {
-      "Sequence": 4,
-      "Steps": [
-        {
-          "Position": {
-            "X": 0,
-            "Y": 0,
-            "Z": 0
-          },
-          "TerritoryId": 1,
-          "InteractionType": "WalkTo",
-          "Comment": "Filler"
-        }
-      ]
+      "Sequence": 4
     },
     {
       "Sequence": 255,
index a1734a3065ee2256ae8eb2750f20802c155cbf42..59ffc151a6ef036d616293facc990d30cc2b5672 100644 (file)
       ]
     },
     {
-      "Sequence": 2,
-      "Steps": [
-        {
-          "Position": {
-            "X": 0,
-            "Y": 0,
-            "Z": 0
-          },
-          "TerritoryId": 1,
-          "InteractionType": "WalkTo",
-          "Comment": "Filler"
-        }
-      ]
+      "Sequence": 2
     },
     {
       "Sequence": 3,
index 2e876fb8841d805c8620f5f08c1e34c2b5b24793..a04cb50336e50a785db47c1f517009a191b1422d 100644 (file)
       ]
     },
     {
-      "Sequence": 5,
-      "Steps": [
-        {
-          "Position": {
-            "X": 0,
-            "Y": 0,
-            "Z": 0
-          },
-          "TerritoryId": 1,
-          "InteractionType": "WalkTo",
-          "Comment": "Filler"
-        }
-      ]
+      "Sequence": 5
     },
     {
       "Sequence": 255,
index 5a3b25cdb73e9a5cb5fdd4e1a882a91e19ce03bd..840e66c49d6fa519777db1db635f1d4bba5ef648 100644 (file)
       ]
     },
     {
-      "Sequence": 2,
-      "Steps": [
-        {
-          "Position": {
-            "X": 0,
-            "Y": 0,
-            "Z": 0
-          },
-          "TerritoryId": 1,
-          "InteractionType": "WalkTo",
-          "Comment": "Filler"
-        }
-      ]
+      "Sequence": 2
     },
     {
       "Sequence": 3,
index 60e6929e3cd9b73b221bb058a856b0188f6d7620..cb17a1435dc8c6e948c1c45665bd24d54da9aa39 100644 (file)
       ]
     },
     {
-      "Sequence": 3,
-      "Steps": [
-        {
-          "Position": {
-            "X": 0,
-            "Y": 0,
-            "Z": 0
-          },
-          "TerritoryId": 1,
-          "InteractionType": "WalkTo",
-          "Comment": "Filler"
-        }
-      ]
+      "Sequence": 3
     },
     {
       "Sequence": 255,
index 21ad7d9eafa420a4488b1c58ad1f2ef4833a1da9..2c667dff0aa3bd130697eacdebb0e0791549decb 100644 (file)
       ]
     },
     {
-      "Sequence": 5,
-      "Steps": [
-        {
-          "Position": {
-            "X": 0,
-            "Y": 0,
-            "Z": 0
-          },
-          "TerritoryId": 1,
-          "InteractionType": "WalkTo",
-          "Comment": "Filler"
-        }
-      ]
+      "Sequence": 5
     },
     {
       "Sequence": 255,
index 82b13f6e9efd7de92d7fe973f15e35a30c5581fb..bc27ab37cf174edb9bf1c0090e1a60c4b4ff9cc5 100644 (file)
       ]
     },
     {
-      "Sequence": 2,
-      "Steps": [
-        {
-          "Position": {
-            "X": 0,
-            "Y": 0,
-            "Z": 0
-          },
-          "TerritoryId": 1,
-          "InteractionType": "WalkTo",
-          "Comment": "Filler"
-        }
-      ]
+      "Sequence": 2
     },
     {
       "Sequence": 3,
index 89c6fc549333e563dc203262cb009e9793c596d5..12ea1f432a2aabaec866c5255b5b4706475254a2 100644 (file)
       ]
     },
     {
-      "Sequence": 3,
-      "Steps": [
-        {
-          "Position": {
-            "X": 0,
-            "Y": 0,
-            "Z": 0
-          },
-          "TerritoryId": 1,
-          "InteractionType": "WalkTo",
-          "Comment": "Filler"
-        }
-      ]
+      "Sequence": 3
     },
     {
       "Sequence": 255,
index fc0aac0ac480907064cdf23cd2a2a9d9b6df8d37..bd3e851bf9a2c26daa801deefaf7d03d2d0ea66c 100644 (file)
       ]
     },
     {
-      "Sequence": 3,
-      "Steps": [
-        {
-          "Position": {
-            "X": 0,
-            "Y": 0,
-            "Z": 0
-          },
-          "TerritoryId": 1,
-          "InteractionType": "WalkTo",
-          "Comment": "Filler"
-        }
-      ]
+      "Sequence": 3
     },
     {
       "Sequence": 4,
       ]
     },
     {
-      "Sequence": 5,
-      "Steps": [
-        {
-          "Position": {
-            "X": 0,
-            "Y": 0,
-            "Z": 0
-          },
-          "TerritoryId": 1,
-          "InteractionType": "WalkTo",
-          "Comment": "Filler"
-        }
-      ]
+      "Sequence": 5
     },
     {
       "Sequence": 6,
index 115157d522496d134be9d1222e179c3c8ce01175..27f8176e669dbc9580d447cf10d56c6a4d9edc23 100644 (file)
       ]
     },
     {
-      "Sequence": 2,
-      "Steps": [
-        {
-          "Position": {
-            "X": 0,
-            "Y": 0,
-            "Z": 0
-          },
-          "TerritoryId": 1,
-          "InteractionType": "WalkTo",
-          "Comment": "Filler"
-        }
-      ]
+      "Sequence": 2
     },
     {
       "Sequence": 3,
       ]
     },
     {
-      "Sequence": 4,
-      "Steps": [
-        {
-          "Position": {
-            "X": 0,
-            "Y": 0,
-            "Z": 0
-          },
-          "TerritoryId": 1,
-          "InteractionType": "WalkTo",
-          "Comment": "Filler"
-        }
-      ]
+      "Sequence": 4
     },
     {
       "Sequence": 5,
       ]
     },
     {
-      "Sequence": 6,
-      "Steps": [
-        {
-          "Position": {
-            "X": 0,
-            "Y": 0,
-            "Z": 0
-          },
-          "TerritoryId": 1,
-          "InteractionType": "WalkTo",
-          "Comment": "Filler"
-        }
-      ]
+      "Sequence": 6
     },
     {
       "Sequence": 7,
index 8638a86c455bbd95a80b7ab0ea22554cedc64b1b..17f9fe9108555374aef1b29f74cf230766244230 100644 (file)
       ]
     },
     {
-      "Sequence": 2,
-      "Steps": [
-        {
-          "Position": {
-            "X": 0,
-            "Y": 0,
-            "Z": 0
-          },
-          "TerritoryId": 1,
-          "InteractionType": "WalkTo",
-          "Comment": "Filler"
-        }
-      ]
+      "Sequence": 2
     },
     {
       "Sequence": 255,
index 561b1903182274507667a281ea13f1126d03a792..9b530bb7b8f70d3b7be5b65892e2150a1e37d4e8 100644 (file)
       ]
     },
     {
-      "Sequence": 5,
-      "Steps": [
-        {
-          "Position": {
-            "X": 0,
-            "Y": 0,
-            "Z": 0
-          },
-          "TerritoryId": 1,
-          "InteractionType": "WalkTo",
-          "Comment": "Filler"
-        }
-      ]
+      "Sequence": 5
     },
     {
       "Sequence": 255,
index 161b218828ea0017d1e83c5dd87c9d34bd73a3e9..258bff887e751e5812e84d50da6bbbd2503c4b02 100644 (file)
       ]
     },
     {
-      "Sequence": 2,
-      "Steps": [
-        {
-          "Position": {
-            "X": 0,
-            "Y": 0,
-            "Z": 0
-          },
-          "TerritoryId": 1,
-          "InteractionType": "WalkTo",
-          "Comment": "Filler"
-        }
-      ]
+      "Sequence": 2
     },
     {
       "Sequence": 3,
       ]
     },
     {
-      "Sequence": 4,
-      "Steps": [
-        {
-          "Position": {
-            "X": 0,
-            "Y": 0,
-            "Z": 0
-          },
-          "TerritoryId": 1,
-          "InteractionType": "WalkTo",
-          "Comment": "Filler"
-        }
-      ]
+      "Sequence": 4
     },
     {
       "Sequence": 255,
index 14c3171c8103bd9b97785c61ee343eaefbe108a2..060fc1379b4ee2c4109a6c5e8c8f9464e9e5dee0 100644 (file)
       ]
     },
     {
-      "Sequence": 4,
-      "Steps": [
-        {
-          "Position": {
-            "X": 0,
-            "Y": 0,
-            "Z": 0
-          },
-          "TerritoryId": 1,
-          "InteractionType": "WalkTo",
-          "Comment": "Filler"
-        }
-      ]
+      "Sequence": 4
     },
     {
       "Sequence": 255,
index 2f46c5a3a9ee80072a08fc8fa058d3874d8f5c2f..bf97faee39bd85e98c3617981c29d0e1f1d6af92 100644 (file)
       ]
     },
     {
-      "Sequence": 3,
-      "Steps": [
-        {
-          "Position": {
-            "X": 0,
-            "Y": 0,
-            "Z": 0
-          },
-          "TerritoryId": 1,
-          "InteractionType": "WalkTo",
-          "Comment": "Filler"
-        }
-      ]
+      "Sequence": 3
     },
     {
       "Sequence": 4,
       ]
     },
     {
-      "Sequence": 5,
-      "Steps": [
-        {
-          "Position": {
-            "X": 0,
-            "Y": 0,
-            "Z": 0
-          },
-          "TerritoryId": 1,
-          "InteractionType": "WalkTo",
-          "Comment": "Filler"
-        }
-      ]
+      "Sequence": 5
     },
     {
       "Sequence": 255,
index 30fa509b240c8f3fe7e8dcc6d4615089f203f261..7f0b107af73b5740cfe4db38380a35fdfb080b94 100644 (file)
       ]
     },
     {
-      "Sequence": 8,
-      "Steps": [
-        {
-          "Position": {
-            "X": 0,
-            "Y": 0,
-            "Z": 0
-          },
-          "TerritoryId": 1,
-          "InteractionType": "WalkTo",
-          "Comment": "Filler"
-        }
-      ]
+      "Sequence": 8
     },
     {
       "Sequence": 255,
index 8961732bbfb3bcbb5c847f8fa0b9a23ab970b641..9a8d28f7473963c8d11ed7eb0f778505c9c8e8ac 100644 (file)
       ]
     },
     {
-      "Sequence": 3,
-      "Steps": [
-        {
-          "Position": {
-            "X": 0,
-            "Y": 0,
-            "Z": 0
-          },
-          "TerritoryId": 1,
-          "InteractionType": "WalkTo",
-          "Comment": "Filler"
-        }
-      ]
+      "Sequence": 3
     },
     {
       "Sequence": 255,
index f507df683a11fcee2aed1793455f5c4b98471f1b..7938aeb564233a11ce47d017df0d2e0e4eb45574 100644 (file)
       ]
     },
     {
-      "Sequence": 2,
-      "Steps": [
-        {
-          "Position": {
-            "X": 0,
-            "Y": 0,
-            "Z": 0
-          },
-          "TerritoryId": 1,
-          "InteractionType": "WalkTo",
-          "Comment": "Filler"
-        }
-      ]
+      "Sequence": 2
     },
     {
       "Sequence": 3,
       ]
     },
     {
-      "Sequence": 4,
-      "Steps": [
-        {
-          "Position": {
-            "X": 0,
-            "Y": 0,
-            "Z": 0
-          },
-          "TerritoryId": 1,
-          "InteractionType": "WalkTo",
-          "Comment": "Filler"
-        }
-      ]
+      "Sequence": 4
     },
     {
       "Sequence": 5,
       ]
     },
     {
-      "Sequence": 6,
-      "Steps": [
-        {
-          "Position": {
-            "X": 0,
-            "Y": 0,
-            "Z": 0
-          },
-          "TerritoryId": 1,
-          "InteractionType": "WalkTo",
-          "Comment": "Filler"
-        }
-      ]
+      "Sequence": 6
     },
     {
       "Sequence": 255,
index 058ec658540a63e878e877b892cfdda715686561..d51d782d6a59b69b07a80ebe47f0ac36c8cd36a5 100644 (file)
       ]
     },
     {
-      "Sequence": 2,
-      "Steps": [
-        {
-          "Position": {
-            "X": 0,
-            "Y": 0,
-            "Z": 0
-          },
-          "TerritoryId": 1,
-          "InteractionType": "WalkTo",
-          "Comment": "Filler"
-        }
-      ]
+      "Sequence": 2
     },
     {
       "Sequence": 3,
index 044209f532970aaaae75d427b85223747b2339e4..56dda6afd756b10ce96171ee5edb8b5c8b2155e4 100644 (file)
       ]
     },
     {
-      "Sequence": 2,
-      "Steps": [
-        {
-          "Position": {
-            "X": 0,
-            "Y": 0,
-            "Z": 0
-          },
-          "TerritoryId": 1,
-          "InteractionType": "WalkTo",
-          "Comment": "Filler"
-        }
-      ]
+      "Sequence": 2
     },
     {
       "Sequence": 3,
index 7ab4379709750fd971df2a57c7a6d58a100d070f..308dfff6fc4173b71dea7c936184455d24d65f71 100644 (file)
       ]
     },
     {
-      "Sequence": 5,
-      "Steps": [
-        {
-          "Position": {
-            "X": 0,
-            "Y": 0,
-            "Z": 0
-          },
-          "TerritoryId": 1,
-          "InteractionType": "WalkTo",
-          "Comment": "Filler"
-        }
-      ]
+      "Sequence": 5
     },
     {
       "Sequence": 6,
index 254709bb9937c8da36dca1180c88181b9f7e6e44..203b43b5cb18a4f89f915755c85fb9ee188b1f76 100644 (file)
       ]
     },
     {
-      "Sequence": 3,
-      "Steps": [
-        {
-          "Position": {
-            "X": 0,
-            "Y": 0,
-            "Z": 0
-          },
-          "TerritoryId": 1,
-          "InteractionType": "WalkTo",
-          "Comment": "Filler"
-        }
-      ]
+      "Sequence": 3
     },
     {
       "Sequence": 4,
index 5db8f68f04f5766635fed19654f1c1f1dbdd8551..503e9ab31b00e9cd5f409e01583e47e733b66ebd 100644 (file)
       ]
     },
     {
-      "Sequence": 3,
-      "Steps": [
-        {
-          "Position": {
-            "X": 0,
-            "Y": 0,
-            "Z": 0
-          },
-          "TerritoryId": 1,
-          "InteractionType": "WalkTo",
-          "Comment": "Filler"
-        }
-      ]
+      "Sequence": 3
     },
     {
       "Sequence": 4,
index 5de37fbf333040ddd8cbd30fd00e94bf4d555585..e41ef1b13591d5e107b6219f4f692c9442bbe3ed 100644 (file)
       ]
     },
     {
-      "Sequence": 2,
-      "Steps": [
-        {
-          "Position": {
-            "X": 0,
-            "Y": 0,
-            "Z": 0
-          },
-          "TerritoryId": 1,
-          "InteractionType": "WalkTo",
-          "Comment": "Filler"
-        }
-      ]
+      "Sequence": 2
     },
     {
       "Sequence": 3,
index 986d7526e8a280c1879d7a97f0fbb669d55f61dc..5931bb5009a2233d51cf2bae27d495748474fba9 100644 (file)
       ]
     },
     {
-      "Sequence": 4,
-      "Steps": [
-        {
-          "Position": {
-            "X": 0,
-            "Y": 0,
-            "Z": 0
-          },
-          "TerritoryId": 1,
-          "InteractionType": "WalkTo",
-          "Comment": "Filler"
-        }
-      ]
+      "Sequence": 4
     },
     {
       "Sequence": 5,
index 32e96d54873e59393e64d59f37da2a3a2070f410..5ad515ecb9243156c6506e445c1a0aaedefea355 100644 (file)
       ]
     },
     {
-      "Sequence": 2,
-      "Steps": [
-        {
-          "Position": {
-            "X": 0,
-            "Y": 0,
-            "Z": 0
-          },
-          "TerritoryId": 1,
-          "InteractionType": "WalkTo",
-          "Comment": "Filler"
-        }
-      ]
+      "Sequence": 2
     },
     {
       "Sequence": 3,
index 39268a033b37d0b856cba6fec011c3bd00585266..b0c2f519591ec86efde00720799bd89cfb5262d4 100644 (file)
       ]
     },
     {
-      "Sequence": 2,
-      "Steps": [
-        {
-          "Position": {
-            "X": 0,
-            "Y": 0,
-            "Z": 0
-          },
-          "TerritoryId": 1,
-          "InteractionType": "WalkTo",
-          "Comment": "Filler"
-        }
-      ]
+      "Sequence": 2
     },
     {
       "Sequence": 255,
index 4f5e866e3d3d45b9e6076527ce1671a664843db1..097d0bb4da9594eef14a79e3c8e26a0d91ef9145 100644 (file)
       ]
     },
     {
-      "Sequence": 5,
-      "Steps": [
-        {
-          "Position": {
-            "X": 0,
-            "Y": 0,
-            "Z": 0
-          },
-          "TerritoryId": 1,
-          "InteractionType": "WalkTo",
-          "Comment": "Filler"
-        }
-      ]
+      "Sequence": 5
     },
     {
       "Sequence": 255,
index c720eb863437b160b6e60e422ea4584bb1502988..1abd6fc877641e5b1a4e6f0c3d25b6390bfd7827 100644 (file)
       ]
     },
     {
-      "Sequence": 2,
-      "Steps": [
-        {
-          "Position": {
-            "X": 0,
-            "Y": 0,
-            "Z": 0
-          },
-          "TerritoryId": 1,
-          "InteractionType": "WalkTo",
-          "Comment": "Filler"
-        }
-      ]
+      "Sequence": 2
     },
     {
       "Sequence": 3,
index 9a1488ed33112d0f0813d30a529a789dff002aae..3c3580371f087fa3bed25d5e3ce853ebd0566937 100644 (file)
       ]
     },
     {
-      "Sequence": 6,
-      "Steps": [
-        {
-          "Position": {
-            "X": 0,
-            "Y": 0,
-            "Z": 0
-          },
-          "TerritoryId": 1,
-          "InteractionType": "WalkTo",
-          "Comment": "Filler"
-        }
-      ]
+      "Sequence": 6
     },
     {
       "Sequence": 255,
index d0895fdf3cabac9aaa1c1e30ea6291a480fd557d..70398f1d027b9d16c3c047b2bba266fdc7792939 100644 (file)
       ]
     },
     {
-      "Sequence": 2,
-      "Steps": [
-        {
-          "Position": {
-            "X": 0,
-            "Y": 0,
-            "Z": 0
-          },
-          "TerritoryId": 1,
-          "InteractionType": "WalkTo",
-          "Comment": "Filler"
-        }
-      ]
+      "Sequence": 2
     },
     {
       "Sequence": 3,
index 65fe8e8528d1f2ab14e2052205c7e5964c431e6f..e511ce17d46e71cda1317473aaa5d937573b5f55 100644 (file)
       ]
     },
     {
-      "Sequence": 2,
-      "Steps": [
-        {
-          "Position": {
-            "X": 0,
-            "Y": 0,
-            "Z": 0
-          },
-          "TerritoryId": 1,
-          "InteractionType": "WalkTo",
-          "Comment": "Filler"
-        }
-      ]
+      "Sequence": 2
     },
     {
       "Sequence": 3,
index 5c83c615de0006b9d0cb2e8511327b38e3f7c395..3430bca3c165f68c0908c5e2f10a66233eb6d0e7 100644 (file)
       ]
     },
     {
-      "Sequence": 2,
-      "Steps": [
-        {
-          "Position": {
-            "X": 0,
-            "Y": 0,
-            "Z": 0
-          },
-          "TerritoryId": 1,
-          "InteractionType": "WalkTo",
-          "Comment": "Filler"
-        }
-      ]
+      "Sequence": 2
     },
     {
       "Sequence": 3,
       ]
     },
     {
-      "Sequence": 4,
-      "Steps": [
-        {
-          "Position": {
-            "X": 0,
-            "Y": 0,
-            "Z": 0
-          },
-          "TerritoryId": 1,
-          "InteractionType": "WalkTo",
-          "Comment": "Filler"
-        }
-      ]
+      "Sequence": 4
     },
     {
       "Sequence": 255,
index 747faf163c62801da15a86b07d0c4341745fb852..de27bd7ceeb811b4d11248905c3451ebcecd758c 100644 (file)
       ]
     },
     {
-      "Sequence": 2,
-      "Steps": [
-        {
-          "Position": {
-            "X": 0,
-            "Y": 0,
-            "Z": 0
-          },
-          "TerritoryId": 1,
-          "InteractionType": "WalkTo",
-          "Comment": "Filler"
-        }
-      ]
+      "Sequence": 2
     },
     {
       "Sequence": 3,
index e57ca85282e05d8b953fe427ab50309610375e0d..0c166ac2903c50ce1c8c35f0f7b99c1d1f6d11eb 100644 (file)
       ]
     },
     {
-      "Sequence": 3,
-      "Steps": [
-        {
-          "Position": {
-            "X": 0,
-            "Y": 0,
-            "Z": 0
-          },
-          "TerritoryId": 1,
-          "InteractionType": "WalkTo",
-          "Comment": "Filler"
-        }
-      ]
+      "Sequence": 3
     },
     {
       "Sequence": 4,
       ]
     },
     {
-      "Sequence": 5,
-      "Steps": [
-        {
-          "Position": {
-            "X": 0,
-            "Y": 0,
-            "Z": 0
-          },
-          "TerritoryId": 1,
-          "InteractionType": "WalkTo",
-          "Comment": "Filler"
-        }
-      ]
+      "Sequence": 5
     },
     {
       "Sequence": 6,
index f3fc93d2c7689746cff17bf4329343c5c7d278dd..55791f60960b09756de9ccc7bd2c7c3361f14f62 100644 (file)
       ]
     },
     {
-      "Sequence": 2,
-      "Steps": [
-        {
-          "Position": {
-            "X": 0,
-            "Y": 0,
-            "Z": 0
-          },
-          "TerritoryId": 1,
-          "InteractionType": "WalkTo",
-          "Comment": "Filler"
-        }
-      ]
+      "Sequence": 2
     },
     {
       "Sequence": 3,
       ]
     },
     {
-      "Sequence": 4,
-      "Steps": [
-        {
-          "Position": {
-            "X": 0,
-            "Y": 0,
-            "Z": 0
-          },
-          "TerritoryId": 1,
-          "InteractionType": "WalkTo",
-          "Comment": "Filler"
-        }
-      ]
+      "Sequence": 4
     },
     {
       "Sequence": 5,
index 0561e14d86414e10524e929ed3a0fdccfe288cd4..9fe9a722e37c3dc74e3bd3eec3783a5d908dd249 100644 (file)
       ]
     },
     {
-      "Sequence": 3,
-      "Steps": [
-        {
-          "Position": {
-            "X": 0,
-            "Y": 0,
-            "Z": 0
-          },
-          "TerritoryId": 1,
-          "InteractionType": "WalkTo",
-          "Comment": "Filler"
-        }
-      ]
+      "Sequence": 3
     },
     {
       "Sequence": 4,
       ]
     },
     {
-      "Sequence": 5,
-      "Steps": [
-        {
-          "Position": {
-            "X": 0,
-            "Y": 0,
-            "Z": 0
-          },
-          "TerritoryId": 1,
-          "InteractionType": "WalkTo",
-          "Comment": "Filler"
-        }
-      ]
+      "Sequence": 5
     },
     {
       "Sequence": 255,
index 204ac295662ae59dcef0deda6b173442a726eed7..3277e19202230e5a02c0d67e0162eb156eab4abf 100644 (file)
@@ -43,8 +43,7 @@
       ]
     },
     {
-      "Sequence": 2,
-      "Steps": []
+      "Sequence": 2
     },
     {
       "Sequence": 3,
index 2d10d1e390e021a4984d4bd33fadd9cf6990af4b..6043d07e3a34bef59252a2b685248ed8b5026546 100644 (file)
       ]
     },
     {
-      "Sequence": 7,
-      "Steps": [
-        {
-          "Position": {
-            "X": 0,
-            "Y": 0,
-            "Z": 0
-          },
-          "TerritoryId": 1,
-          "InteractionType": "WalkTo",
-          "Comment": "Filler"
-        }
-      ]
+      "Sequence": 7
     },
     {
       "Sequence": 255,
index 9569ac041268d137dcf72a1b244acc302a3da430..9ca78c436ae2cd50e2a5d3b656c20c199afc3a32 100644 (file)
       ]
     },
     {
-      "Sequence": 4,
-      "Steps": [
-        {
-          "Position": {
-            "X": 0,
-            "Y": 0,
-            "Z": 0
-          },
-          "TerritoryId": 1,
-          "InteractionType": "WalkTo",
-          "Comment": "Filler"
-        }
-      ]
+      "Sequence": 4
     },
     {
       "Sequence": 255,
index daa0551a2cce7121613579346b3a235bd25237c8..185af161306a2e7bd0fb033f8690fe78e51bb31f 100644 (file)
       ]
     },
     {
-      "Sequence": 2,
-      "Steps": [
-        {
-          "Position": {
-            "X": 0,
-            "Y": 0,
-            "Z": 0
-          },
-          "TerritoryId": 1,
-          "InteractionType": "WalkTo",
-          "Comment": "Filler"
-        }
-      ]
+      "Sequence": 2
     },
     {
       "Sequence": 3,
index 205ca0d99514d641aa300a1268bb4f451aa559fc..01e51c866d24fc6d7a97c555de4d3561e7b6c998 100644 (file)
       ]
     },
     {
-      "Sequence": 3,
-      "Steps": [
-        {
-          "Position": {
-            "X": 0,
-            "Y": 0,
-            "Z": 0
-          },
-          "TerritoryId": 1,
-          "InteractionType": "WalkTo",
-          "Comment": "Filler"
-        }
-      ]
+      "Sequence": 3
     },
     {
       "Sequence": 4,
       ]
     },
     {
-      "Sequence": 5,
-      "Steps": [
-        {
-          "Position": {
-            "X": 0,
-            "Y": 0,
-            "Z": 0
-          },
-          "TerritoryId": 1,
-          "InteractionType": "WalkTo",
-          "Comment": "Filler"
-        }
-      ]
+      "Sequence": 5
     },
     {
       "Sequence": 6,
index b56436f04b457de78f41acd67ecc58e5ca480c09..e99b41fcdb19d74802f2518635d8d8526d673ab9 100644 (file)
       ]
     },
     {
-      "Sequence": 3,
-      "Steps": [
-        {
-          "Position": {
-            "X": 0,
-            "Y": 0,
-            "Z": 0
-          },
-          "TerritoryId": 1,
-          "InteractionType": "WalkTo",
-          "Comment": "Filler"
-        }
-      ]
+      "Sequence": 3
     },
     {
       "Sequence": 4,
index 765794c015ebd2e73c206382178b85ea3251f7e4..aacd55f1d1fac18193cdbba497b979526ca821e0 100644 (file)
       ]
     },
     {
-      "Sequence": 2,
-      "Steps": [
-        {
-          "Position": {
-            "X": 0,
-            "Y": 0,
-            "Z": 0
-          },
-          "TerritoryId": 1,
-          "InteractionType": "WalkTo",
-          "Comment": "Filler"
-        }
-      ]
+      "Sequence": 2
     },
     {
       "Sequence": 3,
index 043e48ce6ea392d7921d1bea785c27fa44471133..c87b7d8ab6fe79aa0208b273eba86706bf789b18 100644 (file)
       ]
     },
     {
-      "Sequence": 4,
-      "Steps": [
-        {
-          "Position": {
-            "X": 0,
-            "Y": 0,
-            "Z": 0
-          },
-          "TerritoryId": 1,
-          "InteractionType": "WalkTo",
-          "Comment": "Filler"
-        }
-      ]
+      "Sequence": 4
     },
     {
       "Sequence": 5,
index 20380ed1a980ca3cc570cb2b8063c594ae02b38b..7289c2425f555a40c5759e8befa3f57c06fd7f7c 100644 (file)
       ]
     },
     {
-      "Sequence": 3,
-      "Steps": [
-        {
-          "Position": {
-            "X": 0,
-            "Y": 0,
-            "Z": 0
-          },
-          "TerritoryId": 1,
-          "InteractionType": "WalkTo",
-          "Comment": "Filler"
-        }
-      ]
+      "Sequence": 3
     },
     {
       "Sequence": 4,
index 4f05b345bd70b6714b3cb6c3cd442d9849bb74cb..4e7ecc279c78d2f1dd2826eae7e3d499df2d0f55 100644 (file)
       ]
     },
     {
-      "Sequence": 3,
-      "Steps": [
-        {
-          "Position": {
-            "X": 0,
-            "Y": 0,
-            "Z": 0
-          },
-          "TerritoryId": 1,
-          "InteractionType": "WalkTo",
-          "Comment": "Filler"
-        }
-      ]
+      "Sequence": 3
     },
     {
       "Sequence": 4,
index 761c4ce4645c05c60f1885f1bc8fd1ac1b0b2173..3df1453dad23420d373d51f17c0a320bc64f0343 100644 (file)
@@ -47,7 +47,9 @@
             "type": "array",
             "items": {
               "$ref": "#/$defs/Step"
-            }
+            },
+            "minItems": 1,
+            "description": "All steps necessary to complete the quest sequence. If a sequence has no steps (e.g. if it is cutscene-only), this element should not be used."
           },
           "Comment": {
             "type": "string"
index 3e42e09869ffd4e14462687cacd0a3c2d21606a4..b98978e95d3faa84e81a03420bea90e66237aa9d 100644 (file)
@@ -5,7 +5,7 @@ namespace Questionable.Model.Questing;
 
 public sealed class QuestSequence
 {
-    public int Sequence { get; set; }
+    public byte Sequence { get; set; }
     public string? Comment { get; set; }
     public List<QuestStep> Steps { get; set; } = new();
 
index a8024fbb5ce98a537405e1224c915227c5cbb4d1..6387f3b6a1d538af8a9567a9004752372e1ef9b2 100644 (file)
@@ -457,7 +457,7 @@ internal sealed class QuestController : MiniTaskController<QuestController>
                 return;
             }
 
-            if (questToRun.Step >= sequence.Steps.Count)
+            if (sequence.Steps.Count > 0 && questToRun.Step >= sequence.Steps.Count)
             {
                 DebugState = "Step not found";
                 Stop("Unknown step");
@@ -468,27 +468,30 @@ internal sealed class QuestController : MiniTaskController<QuestController>
         }
     }
 
-    public (QuestSequence? Sequence, QuestStep? Step) GetNextStep()
+    public (QuestSequence? Sequence, QuestStep? Step, bool createTasks) GetNextStep()
     {
         if (CurrentQuest == null)
-            return (null, null);
+            return (null, null, false);
 
         var q = CurrentQuest.Quest;
         var seq = q.FindSequence(CurrentQuest.Sequence);
         if (seq == null)
-            return (null, null);
+            return (null, null, true);
+
+        if (seq.Steps.Count == 0)
+            return (seq, null, true);
 
         if (CurrentQuest.Step >= seq.Steps.Count)
-            return (null, null);
+            return (null, null, false);
 
-        return (seq, seq.Steps[CurrentQuest.Step]);
+        return (seq, seq.Steps[CurrentQuest.Step], true);
     }
 
     public void IncreaseStepCount(ElementId? questId, int? sequence, bool shouldContinue = false)
     {
         lock (_progressLock)
         {
-            (QuestSequence? seq, QuestStep? step) = GetNextStep();
+            (QuestSequence? seq, QuestStep? step, _) = GetNextStep();
             if (CurrentQuest == null || seq == null || step == null)
             {
                 _logger.LogWarning("Unable to retrieve next quest step, not increasing step count");
@@ -662,8 +665,8 @@ internal sealed class QuestController : MiniTaskController<QuestController>
         if (TryPickPriorityQuest())
             _logger.LogInformation("Using priority quest over current quest");
 
-        (QuestSequence? seq, QuestStep? step) = GetNextStep();
-        if (CurrentQuest == null || seq == null || step == null)
+        (QuestSequence? seq, QuestStep? step, bool createTasks) = GetNextStep();
+        if (CurrentQuest == null || seq == null)
         {
             if (CurrentQuestDetails?.Progress.Quest.Id is SatisfactionSupplyNpcId &&
                 CurrentQuestDetails?.Progress.Sequence == 1 &&
@@ -681,7 +684,8 @@ internal sealed class QuestController : MiniTaskController<QuestController>
                     CurrentQuest?.Quest.Id, CurrentQuest?.Sequence, CurrentQuest?.Step);
             }
 
-            return;
+            if (CurrentQuest == null || !createTasks)
+                return;
         }
 
         _movementController.Stop();
@@ -690,7 +694,7 @@ internal sealed class QuestController : MiniTaskController<QuestController>
 
         try
         {
-            foreach (var task in _taskCreator.CreateTasks(CurrentQuest.Quest, seq, step))
+            foreach (var task in _taskCreator.CreateTasks(CurrentQuest.Quest, CurrentQuest.Sequence, seq, step))
                 _taskQueue.Enqueue(task);
         }
         catch (Exception e)
index 31f6a9cf19277628be678c26dbc86d1a263d878b..04f0be3d9933439d7f8d19864b043aa69da125a2 100644 (file)
@@ -28,12 +28,12 @@ internal static class Gather
 
             foreach (var itemToGather in step.ItemsToGather)
             {
-                yield return new DelayedGatheringTask(itemToGather, quest);
+                yield return new DelayedGatheringTask(itemToGather, quest, (byte)sequence.Sequence);
             }
         }
     }
 
-    internal sealed record DelayedGatheringTask(GatheredItem GatheredItem, Quest Quest) : ITask
+    internal sealed record DelayedGatheringTask(GatheredItem GatheredItem, Quest Quest, byte Sequence) : ITask
     {
         public override string ToString() => $"Gathering(pending for {GatheredItem.ItemId})";
     }
@@ -77,7 +77,7 @@ internal static class Gather
                 foreach (var gatheringStep in gatheringSequence.Steps)
                 {
                     foreach (var task in serviceProvider.GetRequiredService<TaskCreator>()
-                                 .CreateTasks(Task.Quest, gatheringSequence, gatheringStep))
+                                 .CreateTasks(Task.Quest, Task.Sequence, gatheringSequence, gatheringStep))
                         if (task is WaitAtEnd.NextStep)
                             yield return new SkipMarker();
                         else
index 997d40d1d5df1164cf8f954dc71be9fbed986fd7..9df249a36ee57a2e44b20d3e05f5c5c96f22d467 100644 (file)
@@ -4,7 +4,9 @@ using System.Linq;
 using Dalamud.Plugin.Services;
 using Microsoft.Extensions.DependencyInjection;
 using Microsoft.Extensions.Logging;
+using Questionable.Controller.Steps.Common;
 using Questionable.Controller.Steps.Interactions;
+using Questionable.Controller.Steps.Shared;
 using Questionable.Data;
 using Questionable.Model;
 using Questionable.Model.Questing;
@@ -16,63 +18,81 @@ internal sealed class TaskCreator
     private readonly IServiceProvider _serviceProvider;
     private readonly TerritoryData _territoryData;
     private readonly IClientState _clientState;
+    private readonly IChatGui _chatGui;
     private readonly ILogger<TaskCreator> _logger;
 
     public TaskCreator(
         IServiceProvider serviceProvider,
         TerritoryData territoryData,
         IClientState clientState,
+        IChatGui chatGui,
         ILogger<TaskCreator> logger)
     {
         _serviceProvider = serviceProvider;
         _territoryData = territoryData;
         _clientState = clientState;
+        _chatGui = chatGui;
         _logger = logger;
     }
 
-    public IReadOnlyList<ITask> CreateTasks(Quest quest, QuestSequence sequence, QuestStep step)
+    public IReadOnlyList<ITask> CreateTasks(Quest quest, byte sequenceNumber, QuestSequence? sequence, QuestStep? step)
     {
-        using var scope = _serviceProvider.CreateScope();
-        var newTasks = scope.ServiceProvider.GetRequiredService<IEnumerable<ITaskFactory>>()
-            .SelectMany(x =>
-            {
-                List<ITask> tasks = x.CreateAllTasks(quest, sequence, step).ToList();
-
-                if (tasks.Count > 0 && _logger.IsEnabled(LogLevel.Trace))
+        List<ITask> newTasks;
+        if (sequence == null)
+        {
+            _chatGui.PrintError(
+                $"Path for quest '{quest.Info.Name}' ({quest.Id}) does not contain sequence {sequenceNumber}, please report this.",
+                CommandHandler.MessageTag, CommandHandler.TagColor);
+            newTasks = [new WaitAtEnd.WaitNextStepOrSequence()];
+        }
+        else if (step == null)
+        {
+            newTasks = [new WaitAtEnd.WaitNextStepOrSequence()];
+        }
+        else
+        {
+            using var scope = _serviceProvider.CreateScope();
+            newTasks = scope.ServiceProvider.GetRequiredService<IEnumerable<ITaskFactory>>()
+                .SelectMany(x =>
                 {
-                    string factoryName = x.GetType().FullName ?? x.GetType().Name;
-                    if (factoryName.Contains('.', StringComparison.Ordinal))
-                        factoryName = factoryName[(factoryName.LastIndexOf('.') + 1)..];
+                    List<ITask> tasks = x.CreateAllTasks(quest, sequence, step).ToList();
 
-                    _logger.LogTrace("Factory {FactoryName} created Task {TaskNames}",
-                        factoryName, string.Join(", ", tasks.Select(y => y.ToString())));
-                }
+                    if (tasks.Count > 0 && _logger.IsEnabled(LogLevel.Trace))
+                    {
+                        string factoryName = x.GetType().FullName ?? x.GetType().Name;
+                        if (factoryName.Contains('.', StringComparison.Ordinal))
+                            factoryName = factoryName[(factoryName.LastIndexOf('.') + 1)..];
 
-                return tasks;
-            })
-            .ToList();
+                        _logger.LogTrace("Factory {FactoryName} created Task {TaskNames}",
+                            factoryName, string.Join(", ", tasks.Select(y => y.ToString())));
+                    }
 
-        var singlePlayerDutyTask = newTasks
-            .Where(y => y is SinglePlayerDuty.StartSinglePlayerDuty)
-            .Cast<SinglePlayerDuty.StartSinglePlayerDuty>()
-            .FirstOrDefault();
-        if (singlePlayerDutyTask != null &&
-            _territoryData.TryGetContentFinderCondition(singlePlayerDutyTask.ContentFinderConditionId,
-                out var cfcData))
-        {
-            // if we have a single player duty in queue, we check if we're in the matching territory
-            // if yes, skip all steps before (e.g. teleporting, waiting for navmesh, moving, interacting)
-            if (_clientState.TerritoryType == cfcData.TerritoryId)
+                    return tasks;
+                })
+                .ToList();
+
+            var singlePlayerDutyTask = newTasks
+                .Where(y => y is SinglePlayerDuty.StartSinglePlayerDuty)
+                .Cast<SinglePlayerDuty.StartSinglePlayerDuty>()
+                .FirstOrDefault();
+            if (singlePlayerDutyTask != null &&
+                _territoryData.TryGetContentFinderCondition(singlePlayerDutyTask.ContentFinderConditionId,
+                    out var cfcData))
             {
-                int index = newTasks.IndexOf(singlePlayerDutyTask);
-                _logger.LogWarning(
-                    "Skipping {SkippedTaskCount} out of {TotalCount} tasks, questionable was started while in single player duty",
-                    index + 1, newTasks.Count);
+                // if we have a single player duty in queue, we check if we're in the matching territory
+                // if yes, skip all steps before (e.g. teleporting, waiting for navmesh, moving, interacting)
+                if (_clientState.TerritoryType == cfcData.TerritoryId)
+                {
+                    int index = newTasks.IndexOf(singlePlayerDutyTask);
+                    _logger.LogWarning(
+                        "Skipping {SkippedTaskCount} out of {TotalCount} tasks, questionable was started while in single player duty",
+                        index + 1, newTasks.Count);
 
-                newTasks.RemoveRange(0, index + 1);
-                _logger.LogInformation("Next actual task: {NextTask}, total tasks left: {RemainingTaskCount}",
-                    newTasks.FirstOrDefault(),
-                    newTasks.Count);
+                    newTasks.RemoveRange(0, index + 1);
+                    _logger.LogInformation("Next actual task: {NextTask}, total tasks left: {RemainingTaskCount}",
+                        newTasks.FirstOrDefault(),
+                        newTasks.Count);
+                }
             }
         }
 
@@ -81,7 +101,7 @@ internal sealed class TaskCreator
         else
         {
             _logger.LogInformation("Tasks for {QuestId}, {Sequence}, {Step}: {Tasks}",
-                quest.Id, sequence.Sequence, sequence.Steps.IndexOf(step),
+                quest.Id, sequenceNumber, step != null ? sequence?.Steps.IndexOf(step) : null,
                 string.Join(", ", newTasks.Select(x => x.ToString())));
         }