Update moogle mount npcs
authorLiza Carvelli <liza@carvel.li>
Wed, 26 Feb 2025 19:24:42 +0000 (20:24 +0100)
committerLiza Carvelli <liza@carvel.li>
Wed, 26 Feb 2025 19:24:42 +0000 (20:24 +0100)
Questionable/Controller/Steps/QuestCleanUp.cs
Questionable/Data/AlliedSocietyData.cs

index d9c7701..18f236d 100644 (file)
@@ -45,12 +45,13 @@ internal static class QuestCleanUp
                 }
 
                 // have any of the previous sequences interacted with the issuer?
-                var previousSequences =
+                var previousSteps =
                     quest.AllSequences()
                         .Where(x => x.Sequence > 0 // quest accept doesn't ever put us into a mount
                                     && x.Sequence < sequence.Sequence)
+                        .SelectMany(x => x.Steps)
                         .ToList();
-                if (previousSequences.SelectMany(x => x.Steps).All(x => x.DataId != mountConfiguration.IssuerDataId))
+                if (!previousSteps.Any(x => x.DataId != null && mountConfiguration.IssuerDataIds.Contains(x.DataId.Value)))
                 {
                     // this quest hasn't given us a mount yet
                     logger.LogInformation("Haven't talked to mount NPC for this allied society quest; {Aetheryte}", mountConfiguration.ClosestAetheryte);
index d76003d..b055e65 100644 (file)
@@ -13,12 +13,12 @@ internal sealed class AlliedSocietyData
     public ReadOnlyDictionary<ushort, AlliedSocietyMountConfiguration> Mounts { get; } =
         new Dictionary<ushort, AlliedSocietyMountConfiguration>
         {
-            { 66, new(1016093, EAetheryteLocation.SeaOfCloudsOkZundu) },
-            { 79, new(1017031, EAetheryteLocation.DravanianForelandsAnyxTrine) },
-            { 88, new(1017470, EAetheryteLocation.ChurningMistsZenith) },
-            { 89, new(1017322, EAetheryteLocation.ChurningMistsZenith) },
-            { 147, new(1024777, EAetheryteLocation.FringesPeeringStones) },
-            { 369, new(1051798, EAetheryteLocation.KozamaukaDockPoga) },
+            { 66, new([1016093], EAetheryteLocation.SeaOfCloudsOkZundu) },
+            { 79, new([1017031], EAetheryteLocation.DravanianForelandsAnyxTrine) },
+            { 88, new([1017470, 1017432], EAetheryteLocation.ChurningMistsZenith) },
+            { 89, new([1017322], EAetheryteLocation.ChurningMistsZenith) },
+            { 147, new([1024777], EAetheryteLocation.FringesPeeringStones) },
+            { 369, new([1051798], EAetheryteLocation.KozamaukaDockPoga) },
         }.AsReadOnly();
 
     public EAlliedSociety GetCommonAlliedSocietyTurnIn(ElementId elementId)
@@ -63,4 +63,4 @@ internal sealed class AlliedSocietyData
     }
 }
 
-public sealed record AlliedSocietyMountConfiguration(uint IssuerDataId, EAetheryteLocation ClosestAetheryte);
+public sealed record AlliedSocietyMountConfiguration(List<uint> IssuerDataIds, EAetheryteLocation ClosestAetheryte);