Add SkipConditions to resume if duty-blocked at 'Good Intentions' and 'A Time to...
authorLiza Carvelli <liza@carvel.li>
Sun, 11 Aug 2024 00:44:29 +0000 (02:44 +0200)
committerLiza Carvelli <liza@carvel.li>
Sun, 11 Aug 2024 00:44:29 +0000 (02:44 +0200)
12 files changed:
QuestPaths/2.x - A Realm Reborn/MSQ-2/E2-2.2/1359_The Gift of Eternity.json
QuestPaths/2.x - A Realm Reborn/MSQ-2/E2-2.2/1360_Into the Heart of the Whorl.json
QuestPaths/2.x - A Realm Reborn/MSQ-2/E3-2.3/3884_Reap the Whirlwind.json
QuestPaths/2.x - A Realm Reborn/MSQ-2/E4-2.4/69_Dark Words, Dark Deeds.json
QuestPaths/2.x - A Realm Reborn/MSQ-2/E4-2.4/88_The Reason Roaille.json
QuestPaths/2.x - A Realm Reborn/MSQ-2/E4-2.4/89_Let Us Cling Together.json
QuestPaths/2.x - A Realm Reborn/MSQ-2/E5-2.5/363_Good Intentions.json
QuestPaths/2.x - A Realm Reborn/MSQ-2/E6-2.55/425_A Time to Every Purpose.json
QuestPaths/quest-v1.json
Questionable.Model/Questing/Converter/SkipConditionConverter.cs
Questionable.Model/Questing/EExtraSkipCondition.cs
Questionable/Controller/Steps/Shared/SkipCondition.cs

index 7c87820593614fccb9d932b64d2d2df7ed8dfc54..30c0364a0a27ae0d2286f4bb09fac9040c203969 100644 (file)
@@ -22,9 +22,9 @@
       "Steps": [
         {
           "Position": {
-            "X": -209.9414,
-            "Y": -42.109043,
-            "Z": -248.07559
+            "X": -203.21945,
+            "Y": -42.30963,
+            "Z": -253.10411
           },
           "StopDistance": 0.25,
           "TerritoryId": 138,
index 7ab58484c531d73a6510a39b84130bb0ff03d35b..5ab26e65461423a91c1899424bda5f09ae91a6e7 100644 (file)
           },
           "TerritoryId": 135,
           "InteractionType": "WalkTo",
-          "Mount": true
+          "Mount": true,
+          "SkipConditions": {
+            "StepIf": {
+              "AetheryteUnlocked": "Lower La Noscea - Moraby Drydocks"
+            }
+          }
         },
         {
           "Position": {
           },
           "TerritoryId": 135,
           "InteractionType": "WalkTo",
-          "Fly": true
+          "Fly": true,
+          "SkipConditions": {
+            "StepIf": {
+              "AetheryteUnlocked": "Lower La Noscea - Moraby Drydocks"
+            }
+          }
         },
         {
           "TerritoryId": 135,
           "InteractionType": "AttuneAetheryte",
-          "Aetheryte": "Lower La Noscea - Moraby Drydocks"
+          "Aetheryte": "Lower La Noscea - Moraby Drydocks",
+          "SkipConditions": {
+            "StepIf": {
+              "AetheryteUnlocked": "Lower La Noscea - Moraby Drydocks"
+            }
+          }
         },
         {
           "Position": {
           },
           "TerritoryId": 135,
           "InteractionType": "WalkTo",
-          "Fly": true
+          "Fly": true,
+          "AetheryteShortcut": "Lower La Noscea - Moraby Drydocks",
+          "SkipConditions": {
+            "AetheryteShortcutIf": {
+              "AetheryteLocked": "Lower La Noscea - Moraby Drydocks"
+            }
+          }
         },
         {
           "DataId": 1008693,
index 5f3c8fcd688d1dab28dbf7197bd5be79dd666726..1550fa2e6610291c71723a149a62babcca99bf3e 100644 (file)
     {
       "Sequence": 255,
       "Steps": [
+        {
+          "Position": {
+            "X": -119.1183,
+            "Y": 3.7999938,
+            "Z": -104.33473
+          },
+          "TerritoryId": 130,
+          "InteractionType": "WalkTo",
+          "AetheryteShortcut": "Ul'dah",
+          "$": "Ul'dah Aetheryte to Immortal Flames"
+        },
         {
           "DataId": 1004576,
           "Position": {
             "Z": -114.67157
           },
           "TerritoryId": 130,
-          "InteractionType": "CompleteQuest",
-          "AetheryteShortcut": "Ul'dah"
+          "InteractionType": "CompleteQuest"
         }
       ]
     }
index cea34345457911ed042653ea1ef82a3688975cb8..ff496711673911a609ab30e3d4c8fdb192e7e659 100644 (file)
     {
       "Sequence": 4,
       "Steps": [
+        {
+          "Position": {
+            "X": -340.60776,
+            "Y": 259.52878,
+            "Z": 58.521606
+          },
+          "TerritoryId": 155,
+          "InteractionType": "WalkTo",
+          "Fly": true
+        },
         {
           "DataId": 2004655,
           "Position": {
index f8041a01f6cc2bf7465404c0abf3b5fca7c27e13..49bf11b4b65d362c0fba6ba64536fbc2a03076ed 100644 (file)
@@ -86,6 +86,7 @@
             "Y": 71.617355,
             "Z": -132.52466
           },
+          "StopDistance": 5,
           "TerritoryId": 147,
           "InteractionType": "CompleteQuest"
         }
index 92de12dab9bbb6488b543ff8f36b0ce1d0a1b7d7..ab57d1ced9ccfa605e26e40c2f8b9201e565624c 100644 (file)
@@ -12,6 +12,7 @@
             "Y": 71.617355,
             "Z": -132.52466
           },
+          "StopDistance": 5,
           "TerritoryId": 147,
           "InteractionType": "AcceptQuest",
           "AetheryteShortcut": "Northern Thanalan - Ceruleum Processing Plant",
index e5479567108712ebff04a5adb601dbac81b6cbad..cb4b995df540d30430291e7bad93694dac211e13 100644 (file)
@@ -5,6 +5,46 @@
     {
       "Sequence": 0,
       "Steps": [
+        {
+          "TerritoryId": 156,
+          "DataId": 2002881,
+          "Position": {
+            "X": 21.133728,
+            "Y": 22.323914,
+            "Z": -631.281
+          },
+          "InteractionType": "Interact",
+          "TargetTerritoryId": 351,
+          "AetheryteShortcut": "Mor Dhona",
+          "SkipConditions": {
+            "StepIf": {
+              "InTerritory": [
+                351
+              ]
+            },
+            "AetheryteShortcutIf": {
+              "InTerritory": [
+                351
+              ]
+            }
+          }
+        },
+        {
+          "DataId": 2002878,
+          "Position": {
+            "X": -0.015319824,
+            "Y": -1.0223389,
+            "Z": -26.779602
+          },
+          "TerritoryId": 351,
+          "InteractionType": "Interact",
+          "TargetTerritoryId": 351,
+          "SkipConditions": {
+            "StepIf": {
+              "ExtraCondition": "RisingStonesSolar"
+            }
+          }
+        },
         {
           "DataId": 1008969,
           "Position": {
index 97e2d9c33578b5da890ae360ab6378364eec3f10..20804dd85075aea09c2a745755213a19baee4bbb 100644 (file)
@@ -5,6 +5,46 @@
     {
       "Sequence": 0,
       "Steps": [
+        {
+          "TerritoryId": 156,
+          "DataId": 2002881,
+          "Position": {
+            "X": 21.133728,
+            "Y": 22.323914,
+            "Z": -631.281
+          },
+          "InteractionType": "Interact",
+          "TargetTerritoryId": 351,
+          "AetheryteShortcut": "Mor Dhona",
+          "SkipConditions": {
+            "StepIf": {
+              "InTerritory": [
+                351
+              ]
+            },
+            "AetheryteShortcutIf": {
+              "InTerritory": [
+                351
+              ]
+            }
+          }
+        },
+        {
+          "DataId": 2002878,
+          "Position": {
+            "X": -0.015319824,
+            "Y": -1.0223389,
+            "Z": -26.779602
+          },
+          "TerritoryId": 351,
+          "InteractionType": "Interact",
+          "TargetTerritoryId": 351,
+          "SkipConditions": {
+            "StepIf": {
+              "ExtraCondition": "RisingStonesSolar"
+            }
+          }
+        },
         {
           "DataId": 1010897,
           "Position": {
index e703cd5653d0b0293e99a1697fd1037c34f5a673..6182b0528b4fed4ef488dc9685f6e8b723980932 100644 (file)
                         "ExtraCondition": {
                           "type": "string",
                           "enum": [
-                            "WakingSandsMainArea"
+                            "WakingSandsMainArea",
+                            "RisingStonesSolar"
                           ]
                         }
                       },
index eadd84b1cdfe3fcbe61f6cab9cd2b5515e2c6157..4088446e746a70046a790bb9312c7c7d6a5bbb51 100644 (file)
@@ -8,5 +8,6 @@ public sealed class SkipConditionConverter() : EnumConverter<EExtraSkipCondition
     private static readonly Dictionary<EExtraSkipCondition, string> Values = new()
     {
         { EExtraSkipCondition.WakingSandsMainArea, "WakingSandsMainArea" },
+        { EExtraSkipCondition.RisingStonesSolar, "RisingStonesSolar"},
     };
 }
index 3f2836a9914717c637e7f87e3accef04b100f054..ddf29e9c2aa4913bbff498c24ef23e9e5c7694cc 100644 (file)
@@ -8,4 +8,6 @@ public enum EExtraSkipCondition
 {
     None,
     WakingSandsMainArea,
+
+    RisingStonesSolar,
 }
index 7abcbd81855ae3cf8295a47c5161dab525d6ee8a..62ce22d8ceff4a32052d909cd480044ecc6123f6 100644 (file)
@@ -204,7 +204,8 @@ internal static class SkipCondition
                 }
             }
 
-            if (SkipConditions.ExtraCondition == EExtraSkipCondition.WakingSandsMainArea)
+            if (SkipConditions.ExtraCondition == EExtraSkipCondition.WakingSandsMainArea &&
+                clientState.TerritoryType == 212)
             {
                 var position = clientState.LocalPlayer!.Position;
                 if (position.X < 24)
@@ -214,6 +215,17 @@ internal static class SkipCondition
                 }
             }
 
+            if (SkipConditions.ExtraCondition == EExtraSkipCondition.RisingStonesSolar &&
+                clientState.TerritoryType == 351)
+            {
+                var position = clientState.LocalPlayer!.Position;
+                if (position.Z <= -28)
+                {
+                    logger.LogInformation("Skipping step, as we're in the Rising Stones Solar");
+                    return true;
+                }
+            }
+
             if (Step.PickUpQuestId != null && questFunctions.IsQuestAcceptedOrComplete(Step.PickUpQuestId))
             {
                 logger.LogInformation("Skipping step, as we have already picked up the relevant quest");