Add support for Old Sharlayan leves
authorLiza Carvelli <liza@carvel.li>
Sat, 28 Sep 2024 21:28:53 +0000 (23:28 +0200)
committerLiza Carvelli <liza@carvel.li>
Sat, 28 Sep 2024 21:28:53 +0000 (23:28 +0200)
GatheringPaths/6.x - Endwalker/Labyrinthos/886__MIN.json [new file with mode: 0644]
QuestPaths/6.x - Endwalker/Leves/MIN/L1675_Rocks of a Feather.json [new file with mode: 0644]
Questionable/Data/LeveData.cs

diff --git a/GatheringPaths/6.x - Endwalker/Labyrinthos/886__MIN.json b/GatheringPaths/6.x - Endwalker/Labyrinthos/886__MIN.json
new file mode 100644 (file)
index 0000000..8bb5951
--- /dev/null
@@ -0,0 +1,160 @@
+{
+  "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/GatheringPaths/gatheringlocation-v1.json",
+  "Author": "liza",
+  "Steps": [
+    {
+      "TerritoryId": 956,
+      "InteractionType": "None"
+    }
+  ],
+  "Groups": [
+    {
+      "Nodes": [
+        {
+          "DataId": 34281,
+          "Locations": [
+            {
+              "Position": {
+                "X": -510.2663,
+                "Y": -20.72923,
+                "Z": -119.9257
+              },
+              "MinimumAngle": -120,
+              "MaximumAngle": 10
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "Nodes": [
+        {
+          "DataId": 34283,
+          "Locations": [
+            {
+              "Position": {
+                "X": -502.4525,
+                "Y": -18.55583,
+                "Z": -139.683
+              },
+              "MinimumAngle": -95,
+              "MaximumAngle": -35,
+              "MinimumDistance": 1,
+              "MaximumDistance": 1.8
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "Nodes": [
+        {
+          "DataId": 34284,
+          "Locations": [
+            {
+              "Position": {
+                "X": -499.3535,
+                "Y": -18.75164,
+                "Z": -141.9256
+              },
+              "MinimumAngle": -75,
+              "MaximumAngle": 15,
+              "MinimumDistance": 1,
+              "MaximumDistance": 2.3
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "Nodes": [
+        {
+          "DataId": 34285,
+          "Locations": [
+            {
+              "Position": {
+                "X": -495.1168,
+                "Y": -18.65139,
+                "Z": -142.5636
+              },
+              "MinimumAngle": -85,
+              "MaximumAngle": 45
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "Nodes": [
+        {
+          "DataId": 34286,
+          "Locations": [
+            {
+              "Position": {
+                "X": -491.4826,
+                "Y": -19.44574,
+                "Z": -144.2088
+              },
+              "MinimumAngle": -105,
+              "MaximumAngle": 25
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "Nodes": [
+        {
+          "DataId": 34287,
+          "Locations": [
+            {
+              "Position": {
+                "X": -488.8665,
+                "Y": -19.70717,
+                "Z": -147.403
+              },
+              "MinimumAngle": 230,
+              "MaximumAngle": 340
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "Nodes": [
+        {
+          "DataId": 34289,
+          "Locations": [
+            {
+              "Position": {
+                "X": -489.1829,
+                "Y": -19.91622,
+                "Z": -153.7781
+              },
+              "MinimumAngle": 200,
+              "MaximumAngle": 320
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "Nodes": [
+        {
+          "DataId": 34291,
+          "Locations": [
+            {
+              "Position": {
+                "X": -490.1324,
+                "Y": -18.06493,
+                "Z": -164.4281
+              },
+              "MinimumAngle": 210,
+              "MaximumAngle": 310
+            }
+          ]
+        }
+      ]
+    }
+  ]
+}
\ No newline at end of file
diff --git a/QuestPaths/6.x - Endwalker/Leves/MIN/L1675_Rocks of a Feather.json b/QuestPaths/6.x - Endwalker/Leves/MIN/L1675_Rocks of a Feather.json
new file mode 100644 (file)
index 0000000..7b90c2f
--- /dev/null
@@ -0,0 +1,38 @@
+{
+  "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
+  "Author": "liza",
+  "QuestSequence": [
+    {
+      "Sequence": 1,
+      "Steps": [
+        {
+          "Position": {
+            "X": -506.1484,
+            "Y": -22.671598,
+            "Z": -116.16144
+          },
+          "TerritoryId": 956,
+          "InteractionType": "InitiateLeve",
+          "AetheryteShortcut": "Labyrinthos - Aporia",
+          "Fly": true,
+          "SkipConditions": {
+            "AetheryteShortcutIf": {
+              "InSameTerritory": true
+            }
+          }
+        },
+        {
+          "TerritoryId": 956,
+          "InteractionType": "Gather",
+          "ItemsToGather": [
+            {
+              "ItemId": 2003172,
+              "AlternativeItemId": 2003173,
+              "ItemCount": 999
+            }
+          ]
+        }
+      ]
+    }
+  ]
+}
index a8d5835caa9129fef861033a4cc9e6126001af5a..a808420068b64a9131acbe5358057cb3008b825a 100644 (file)
@@ -13,7 +13,16 @@ internal sealed class LeveData
 {
     private static readonly List<LeveStepData> Leves =
     [
-        new(EAetheryteLocation.Tuliyollal, 1048390, new(15.243713f, -14.000001f, 85.83191f)),
+        new(
+            aetheryteLocation: EAetheryteLocation.OldSharlayan,
+            aethernetShortcut: new AethernetShortcut
+                { From = EAetheryteLocation.OldSharlayan, To = EAetheryteLocation.OldSharlayanScholarsHarbor },
+            issuerDataId: 1037263,
+            issuerPosition: new(45.818386f, -15.646993f, 109.40509f)),
+        new(aetheryteLocation: EAetheryteLocation.Tuliyollal,
+            aethernetShortcut: null,
+            issuerDataId: 1048390,
+            issuerPosition: new(15.243713f, -14.000001f, 85.83191f)),
     ];
 
     private readonly AetheryteData _aetheryteData;
@@ -44,6 +53,7 @@ internal sealed class LeveData
                         TerritoryId = _aetheryteData.TerritoryIds[leveStepData.AetheryteLocation],
                         InteractionType = EInteractionType.AcceptLeve,
                         AetheryteShortcut = leveStepData.AetheryteLocation,
+                        AethernetShortcut = leveStepData.AethernetShortcut,
                         SkipConditions = new()
                         {
                             AetheryteShortcutIf = new()
@@ -71,6 +81,7 @@ internal sealed class LeveData
                         TerritoryId = _aetheryteData.TerritoryIds[leveStepData.AetheryteLocation],
                         InteractionType = EInteractionType.CompleteLeve,
                         AetheryteShortcut = leveStepData.AetheryteLocation,
+                        AethernetShortcut = leveStepData.AethernetShortcut,
                         SkipConditions = new()
                         {
                             AetheryteShortcutIf = new()
@@ -93,10 +104,16 @@ internal sealed class LeveData
         private readonly uint? _crafterTurnInDataId;
         private readonly Vector3? _crafterTurnInPosition;
 
-        public LeveStepData(EAetheryteLocation aetheryteLocation, uint issuerDataId, Vector3 issuerPosition,
-            uint? turnInDataId = null, Vector3? turnInPosition = null,
-            uint? gathererTurnInDataId = null, Vector3? gathererTurnInPosition = null,
-            uint? crafterTurnInDataId = null, Vector3? crafterTurnInPosition = null)
+        public LeveStepData(EAetheryteLocation aetheryteLocation,
+            AethernetShortcut? aethernetShortcut,
+            uint issuerDataId,
+            Vector3 issuerPosition,
+            uint? turnInDataId = null,
+            Vector3? turnInPosition = null,
+            uint? gathererTurnInDataId = null,
+            Vector3? gathererTurnInPosition = null,
+            uint? crafterTurnInDataId = null,
+            Vector3? crafterTurnInPosition = null)
         {
             _turnInDataId = turnInDataId;
             _turnInPosition = turnInPosition;
@@ -105,11 +122,13 @@ internal sealed class LeveData
             _crafterTurnInDataId = crafterTurnInDataId;
             _crafterTurnInPosition = crafterTurnInPosition;
             AetheryteLocation = aetheryteLocation;
+            AethernetShortcut = aethernetShortcut;
             IssuerDataId = issuerDataId;
             IssuerPosition = issuerPosition;
         }
 
         public EAetheryteLocation AetheryteLocation { get; }
+        public AethernetShortcut? AethernetShortcut { get; }
         public uint IssuerDataId { get; }
         public Vector3 IssuerPosition { get; }