Add Make It Rain quest v5.12
authorLiza Carvelli <liza@carvel.li>
Tue, 20 May 2025 00:29:51 +0000 (02:29 +0200)
committerLiza Carvelli <liza@carvel.li>
Tue, 20 May 2025 00:31:05 +0000 (02:31 +0200)
Directory.Build.targets
QuestPaths/2.x - A Realm Reborn/Unlocks/Gold Saucer/435_World of Wonders.json
QuestPaths/7.x - Dawntrail/Seasonal Events/Make It Rain (2025)/5322_Royal Rumblings.json [new file with mode: 0644]
Questionable/Data/QuestData.cs
Questionable/Windows/QuestComponents/EventInfoComponent.cs

index b034766..278ac3e 100644 (file)
@@ -1,5 +1,5 @@
 <Project>
     <PropertyGroup Condition="$(MSBuildProjectName) != 'GatheringPathRenderer'">
-        <Version>5.11</Version>
+        <Version>5.12</Version>
     </PropertyGroup>
 </Project>
index f6dce67..277c7e4 100644 (file)
@@ -27,7 +27,8 @@
         {
           "TerritoryId": 144,
           "InteractionType": "AttuneAethernetShard",
-          "AethernetShard": "[Gold Saucer] Entrance & Card Squares"
+          "AethernetShard": "[Gold Saucer] Entrance & Card Squares",
+          "StopDistance": 7
         },
         {
           "DataId": 1010448,
         {
           "TerritoryId": 388,
           "InteractionType": "AttuneAethernetShard",
-          "AethernetShard": "[Gold Saucer] Minion Square"
+          "AethernetShard": "[Gold Saucer] Minion Square",
+          "StopDistance": 5
         },
         {
           "TerritoryId": 388,
           "InteractionType": "AttuneAethernetShard",
-          "AethernetShard": "[Gold Saucer] Chocobo Square"
+          "AethernetShard": "[Gold Saucer] Chocobo Square",
+          "StopDistance": 7
         },
         {
           "TerritoryId": 388,
       "Steps": [
         {
           "Position": {
-            "X": 12.5078335,
-            "Y": 4.1552944,
-            "Z": 45.718685
+            "X": 46.78062,
+            "Y": 11.798187,
+            "Z": 20.328043
           },
           "TerritoryId": 144,
-          "InteractionType": "Jump",
-          "JumpDestination": {
-            "Position": {
-              "X": 12.60962,
-              "Y": 4.2181597,
-              "Z": 49.651253
-            }
-          }
+          "InteractionType": "WalkTo"
         },
         {
           "TerritoryId": 144,
           "InteractionType": "AttuneAethernetShard",
           "AethernetShard": "[Gold Saucer] Wonder Square West",
+          "StopDistance": 7,
           "DelaySecondsAtStart": 3
         },
         {
           "TerritoryId": 144,
           "InteractionType": "AttuneAethernetShard",
-          "AethernetShard": "[Gold Saucer] Wonder Square East"
+          "AethernetShard": "[Gold Saucer] Wonder Square East",
+          "StopDistance": 7
         },
         {
           "TerritoryId": 144,
           "TerritoryId": 144,
           "InteractionType": "AttuneAethernetShard",
           "AethernetShard": "[Gold Saucer] Event Square",
+          "StopDistance": 7,
           "DelaySecondsAtStart": 3
         },
         {
           "Position": {
-            "X": 89.128395,
-            "Y": -5.000001,
-            "Z": -66.6124
+            "X": 122.973015,
+            "Y": -0.5100681,
+            "Z": -50.024624
           },
-          "StopDistance": 0.5,
           "TerritoryId": 144,
-          "InteractionType": "Jump",
-          "JumpDestination": {
-            "Position": {
-              "X": 85.47148,
-              "Y": -4.7818403,
-              "Z": -63.892
-            },
-            "DelaySeconds": 0.1
-          }
+          "InteractionType": "WalkTo",
+          "DelaySecondsAtStart": 3
         },
         {
           "TerritoryId": 144,
           "InteractionType": "AttuneAethernetShard",
           "AethernetShard": "[Gold Saucer] Cactpot Board",
-          "DelaySecondsAtStart": 3
+          "StopDistance": 7
         },
         {
           "Position": {
         {
           "TerritoryId": 144,
           "InteractionType": "AttuneAethernetShard",
-          "AethernetShard": "[Gold Saucer] Round Square"
+          "AethernetShard": "[Gold Saucer] Round Square",
+          "StopDistance": 7
         },
         {
           "TerritoryId": 144,
diff --git a/QuestPaths/7.x - Dawntrail/Seasonal Events/Make It Rain (2025)/5322_Royal Rumblings.json b/QuestPaths/7.x - Dawntrail/Seasonal Events/Make It Rain (2025)/5322_Royal Rumblings.json
new file mode 100644 (file)
index 0000000..7bc8d9a
--- /dev/null
@@ -0,0 +1,287 @@
+{
+  "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
+  "Author": "liza",
+  "QuestSequence": [
+    {
+      "Sequence": 0,
+      "Steps": [
+        {
+          "DataId": 1049020,
+          "Position": {
+            "X": -86.32031,
+            "Y": 4,
+            "Z": -104.35651
+          },
+          "TerritoryId": 130,
+          "InteractionType": "AcceptQuest",
+          "AetheryteShortcut": "Ul'dah",
+          "SkipConditions": {
+            "AetheryteShortcutIf": {
+              "InSameTerritory": true
+            }
+          }
+        }
+      ]
+    },
+    {
+      "Sequence": 1,
+      "Steps": [
+        {
+          "DataId": 1011565,
+          "Position": {
+            "X": -78.8739,
+            "Y": 4,
+            "Z": -110.429565
+          },
+          "TerritoryId": 130,
+          "InteractionType": "AcceptQuest",
+          "PickUpQuestId": 434
+        },
+        {
+          "$": "Airship to Gold Saucer if you haven't unlocked the aetheryte",
+          "DataId": 1004433,
+          "Position": {
+            "X": -23.605713,
+            "Y": 83.19999,
+            "Z": -2.3041382
+          },
+          "TerritoryId": 130,
+          "InteractionType": "Interact",
+          "AetheryteShortcut": "Ul'dah",
+          "AethernetShortcut": [
+            "[Ul'dah] Aetheryte Plaza",
+            "[Ul'dah] Airship Landing"
+          ],
+          "TargetTerritoryId": 144,
+          "SkipConditions": {
+            "AetheryteShortcutIf": {
+              "InTerritory": [
+                130,
+                144
+              ],
+              "AetheryteUnlocked": "Gold Saucer"
+            },
+            "StepIf": {
+              "InTerritory": [
+                144
+              ],
+              "AetheryteUnlocked": "Gold Saucer"
+            }
+          }
+        },
+        {
+          "DataId": 1011022,
+          "Position": {
+            "X": -38.895264,
+            "Y": -2.7930364E-06,
+            "Z": 97.33728
+          },
+          "StopDistance": 7,
+          "TerritoryId": 144,
+          "InteractionType": "AcceptQuest",
+          "PickUpQuestId": 435,
+          "AetheryteShortcut": "Gold Saucer",
+          "SkipConditions": {
+            "AetheryteShortcutIf": {
+              "InSameTerritory": true
+            }
+          }
+        },
+        {
+          "DataId": 1049021,
+          "Position": {
+            "X": -80.91864,
+            "Y": -1.2629791E-05,
+            "Z": 46.463623
+          },
+          "TerritoryId": 144,
+          "InteractionType": "Interact",
+          "AetheryteShortcut": "Gold Saucer",
+          "AethernetShortcut": [
+            "[Gold Saucer] Aetheryte Plaza",
+            "[Gold Saucer] Entrance & Card Squares"
+          ],
+          "SkipConditions": {
+            "AetheryteShortcutIf": {
+              "InSameTerritory": true
+            }
+          }
+        }
+      ]
+    },
+    {
+      "Sequence": 2,
+      "Steps": [
+        {
+          "DataId": 1049029,
+          "Position": {
+            "X": 10.452393,
+            "Y": 20.99973,
+            "Z": 39.597046
+          },
+          "TerritoryId": 144,
+          "InteractionType": "Interact",
+          "AethernetShortcut": [
+            "[Gold Saucer] Entrance & Card Squares",
+            "[Gold Saucer] Wonder Square West"
+          ],
+          "CompletionQuestVariablesFlags": [
+            null,
+            null,
+            null,
+            null,
+            null,
+            32
+          ]
+        },
+        {
+          "DataId": 1049028,
+          "Position": {
+            "X": 55.77173,
+            "Y": 3.9997194,
+            "Z": 42.313232
+          },
+          "TerritoryId": 144,
+          "InteractionType": "Interact",
+          "CompletionQuestVariablesFlags": [
+            null,
+            null,
+            null,
+            null,
+            null,
+            64
+          ]
+        },
+        {
+          "DataId": 1049027,
+          "Position": {
+            "X": 7.003784,
+            "Y": 3.9997306,
+            "Z": 78.20239
+          },
+          "TerritoryId": 144,
+          "InteractionType": "Interact",
+          "CompletionQuestVariablesFlags": [
+            null,
+            null,
+            null,
+            null,
+            null,
+            128
+          ]
+        }
+      ]
+    },
+    {
+      "Sequence": 3,
+      "Steps": [
+        {
+          "DataId": 1049023,
+          "Position": {
+            "X": -12.863403,
+            "Y": -1.1376108E-16,
+            "Z": -7.9804688
+          },
+          "TerritoryId": 144,
+          "InteractionType": "Interact",
+          "DialogueChoices": [
+            {
+              "Type": "List",
+              "Prompt": "TEXT_FESGSC901_05322_Q1_000_000",
+              "Answer": "TEXT_FESGSC901_05322_A1_000_002"
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "Sequence": 4,
+      "Steps": [
+        {
+          "DataId": 2014700,
+          "Position": {
+            "X": 107.7439,
+            "Y": 12.985352,
+            "Z": -45.212524
+          },
+          "TerritoryId": 144,
+          "InteractionType": "Interact",
+          "AethernetShortcut": [
+            "[Gold Saucer] Aetheryte Plaza",
+            "[Gold Saucer] Cactpot Board"
+          ]
+        }
+      ]
+    },
+    {
+      "Sequence": 5,
+      "Steps": [
+        {
+          "DataId": 2014702,
+          "Position": {
+            "X": 94.346436,
+            "Y": 13.01593,
+            "Z": -5.935791
+          },
+          "StopDistance": 4.5,
+          "TerritoryId": 144,
+          "InteractionType": "Interact"
+        }
+      ]
+    },
+    {
+      "Sequence": 6,
+      "Steps": [
+        {
+          "DataId": 1049025,
+          "Position": {
+            "X": 33.49353,
+            "Y": -5,
+            "Z": -58.54895
+          },
+          "TerritoryId": 144,
+          "InteractionType": "Interact",
+          "AethernetShortcut": [
+            "[Gold Saucer] Cactpot Board",
+            "[Gold Saucer] Event Square"
+          ]
+        }
+      ]
+    },
+    {
+      "Sequence": 7,
+      "Steps": [
+        {
+          "DataId": 2014703,
+          "Position": {
+            "X": -67.00244,
+            "Y": -0.015319824,
+            "Z": 39.230957
+          },
+          "TerritoryId": 144,
+          "InteractionType": "Interact",
+          "AethernetShortcut": [
+            "[Gold Saucer] Event Square",
+            "[Gold Saucer] Entrance & Card Squares"
+          ]
+        }
+      ]
+    },
+    {
+      "Sequence": 255,
+      "Steps": [
+        {
+          "DataId": 1049026,
+          "Position": {
+            "X": -31.937195,
+            "Y": 0.044279926,
+            "Z": 18.32605
+          },
+          "StopDistance": 5,
+          "TerritoryId": 144,
+          "InteractionType": "CompleteQuest"
+        }
+      ]
+    }
+  ]
+}
index 19f457f..26f0cc5 100644 (file)
@@ -1,14 +1,12 @@
 using System;
 using System.Collections.Generic;
 using System.Collections.Immutable;
-using System.Collections.ObjectModel;
 using System.Diagnostics.CodeAnalysis;
 using System.Linq;
 using Dalamud.Plugin.Services;
 using FFXIVClientStructs.FFXIV.Client.Game.UI;
 using LLib.GameData;
 using Lumina.Excel.Sheets;
-using Microsoft.Extensions.Logging;
 using Questionable.Model;
 using Questionable.Model.Questing;
 using Quest = Lumina.Excel.Sheets.Quest;
index b86a795..7973305 100644 (file)
@@ -5,6 +5,7 @@ using System.Globalization;
 using System.Linq;
 using Dalamud.Interface;
 using Dalamud.Interface.Components;
+using Dalamud.Interface.Utility.Raii;
 using Dalamud.Plugin;
 using Humanizer;
 using Humanizer.Localisation;
@@ -23,6 +24,7 @@ internal sealed class EventInfoComponent
     private readonly List<EventQuest> _eventQuests =
     [
         new EventQuest("Limited Time Items", [new UnlockLinkId(506)], DateTime.MaxValue),
+        new EventQuest("Make It Rain", [new QuestId(5322)], AtDailyReset(new(2025, 6, 11)))
     ];
 
     private readonly QuestData _questData;
@@ -100,35 +102,37 @@ internal sealed class EventInfoComponent
             if (_questFunctions.IsQuestComplete(questId))
                 continue;
 
-            string questName = _questData.GetQuestInfo(questId).Name;
-            if (startableQuests.Contains(questId) &&
-                _questRegistry.TryGetQuest(questId, out Quest? quest))
+            using (ImRaii.PushId($"##EventQuestSelection{questId}"))
             {
-                ImGuiComponents.IconButton(FontAwesomeIcon.Play);
-                if (ImGui.IsItemClicked())
+                string questName = _questData.GetQuestInfo(questId).Name;
+                if (startableQuests.Contains(questId) &&
+                    _questRegistry.TryGetQuest(questId, out Quest? quest))
                 {
-                    _questController.SetNextQuest(quest);
-                    _questController.Start("SeasonalEventSelection");
-                }
+                    if (ImGuiComponents.IconButton(FontAwesomeIcon.Play))
+                    {
+                        _questController.SetNextQuest(quest);
+                        _questController.Start("SeasonalEventSelection");
+                    }
 
-                bool hovered = ImGui.IsItemHovered();
+                    bool hovered = ImGui.IsItemHovered();
 
-                ImGui.SameLine();
-                ImGui.AlignTextToFramePadding();
-                ImGui.Text(questName);
-                hovered |= ImGui.IsItemHovered();
+                    ImGui.SameLine();
+                    ImGui.AlignTextToFramePadding();
+                    ImGui.Text(questName);
+                    hovered |= ImGui.IsItemHovered();
 
-                if (hovered)
-                    _questTooltipComponent.Draw(quest.Info);
-            }
-            else
-            {
-                if (width > 0)
-                    ImGui.SetCursorPosX(ImGui.GetCursorPosX() + width);
+                    if (hovered)
+                        _questTooltipComponent.Draw(quest.Info);
+                }
+                else
+                {
+                    if (width > 0)
+                        ImGui.SetCursorPosX(ImGui.GetCursorPosX() + width);
 
-                var style = _uiUtils.GetQuestStyle(questId);
-                if (_uiUtils.ChecklistItem(questName, style.Color, style.Icon, ImGui.GetStyle().FramePadding.X))
-                    _questTooltipComponent.Draw(_questData.GetQuestInfo(questId));
+                    var style = _uiUtils.GetQuestStyle(questId);
+                    if (_uiUtils.ChecklistItem(questName, style.Color, style.Icon, ImGui.GetStyle().FramePadding.X))
+                        _questTooltipComponent.Draw(_questData.GetQuestInfo(questId));
+                }
             }
         }
     }