From 4a9fd6076821dc27d3008d362201abdbc72ea089 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Tue, 16 Jul 2024 00:43:38 +0200 Subject: [PATCH] Load disabled quests in debug; mark a few tribal quests as disabled (as they're randomized & not fully explored) --- .../Dailies/3691_Sharing Is Caring.json | 1 + .../3692_The Aesthetician of Il Mheg.json | 1 + .../3703_Raiders of the Lost Pork.json | 21 +++++- .../Dailies/3703_Raiders of the Lost Pork.md | 8 +++ .../Dailies/3704_Pebble without a Cause.json | 33 ++++++++-- .../3705_There's Always a Stupider Fish.json | 66 +++++++++++++++++++ .../Arkasodara/Dailies/4566_Hippo Scrub.json | 1 - Questionable.Model/V1/QuestRoot.cs | 5 ++ Questionable/Controller/QuestRegistry.cs | 4 +- Questionable/Windows/QuestWindow.cs | 2 +- 10 files changed, 131 insertions(+), 11 deletions(-) create mode 100644 QuestPaths/5.x - Shadowbringers/Tribal/Pixies/Dailies/3703_Raiders of the Lost Pork.md create mode 100644 QuestPaths/5.x - Shadowbringers/Tribal/Pixies/Dailies/3705_There's Always a Stupider Fish.json diff --git a/QuestPaths/5.x - Shadowbringers/Tribal/Pixies/Dailies/3691_Sharing Is Caring.json b/QuestPaths/5.x - Shadowbringers/Tribal/Pixies/Dailies/3691_Sharing Is Caring.json index 9dc05e1c..6ba49247 100644 --- a/QuestPaths/5.x - Shadowbringers/Tribal/Pixies/Dailies/3691_Sharing Is Caring.json +++ b/QuestPaths/5.x - Shadowbringers/Tribal/Pixies/Dailies/3691_Sharing Is Caring.json @@ -1,6 +1,7 @@ { "$schema": "https://carvel.li/questionable/quest-1.0", "Author": "liza", + "Disabled": true, "QuestSequence": [ { "Sequence": 0, diff --git a/QuestPaths/5.x - Shadowbringers/Tribal/Pixies/Dailies/3692_The Aesthetician of Il Mheg.json b/QuestPaths/5.x - Shadowbringers/Tribal/Pixies/Dailies/3692_The Aesthetician of Il Mheg.json index fdba712d..9429e210 100644 --- a/QuestPaths/5.x - Shadowbringers/Tribal/Pixies/Dailies/3692_The Aesthetician of Il Mheg.json +++ b/QuestPaths/5.x - Shadowbringers/Tribal/Pixies/Dailies/3692_The Aesthetician of Il Mheg.json @@ -1,6 +1,7 @@ { "$schema": "https://carvel.li/questionable/quest-1.0", "Author": "liza", + "Disabled": true, "QuestSequence": [ { "Sequence": 0, diff --git a/QuestPaths/5.x - Shadowbringers/Tribal/Pixies/Dailies/3703_Raiders of the Lost Pork.json b/QuestPaths/5.x - Shadowbringers/Tribal/Pixies/Dailies/3703_Raiders of the Lost Pork.json index 5f4962f3..49f7f0ee 100644 --- a/QuestPaths/5.x - Shadowbringers/Tribal/Pixies/Dailies/3703_Raiders of the Lost Pork.json +++ b/QuestPaths/5.x - Shadowbringers/Tribal/Pixies/Dailies/3703_Raiders of the Lost Pork.json @@ -1,6 +1,7 @@ { "$schema": "https://carvel.li/questionable/quest-1.0", "Author": "liza", + "Disabled": true, "QuestSequence": [ { "Sequence": 0, @@ -20,6 +21,21 @@ { "Sequence": 1, "Steps": [ + { + "DataId": 1032169, + "Position": { + "X": -423.33105, + "Y": 25.599815, + "Z": 265.94946 + }, + "TerritoryId": 816, + "InteractionType": "Interact", + "Fly": true, + "SkipIf": [ + "NotTargetable" + ], + "$": "Only if QW: 0 48 0 0 0 0" + }, { "DataId": 1032167, "Position": { @@ -29,7 +45,10 @@ }, "TerritoryId": 816, "InteractionType": "Interact", - "Fly": true + "Fly": true, + "SkipIf": [ + "NotTargetable" + ] } ] }, diff --git a/QuestPaths/5.x - Shadowbringers/Tribal/Pixies/Dailies/3703_Raiders of the Lost Pork.md b/QuestPaths/5.x - Shadowbringers/Tribal/Pixies/Dailies/3703_Raiders of the Lost Pork.md new file mode 100644 index 00000000..e1306912 --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Tribal/Pixies/Dailies/3703_Raiders of the Lost Pork.md @@ -0,0 +1,8 @@ +## Raiders of the Lost Pork + +QuestWork: +``` +0 x 0 0 0 0 + 48 → Elegant Eulmoran (1032169) + ?? → 1032167 +``` diff --git a/QuestPaths/5.x - Shadowbringers/Tribal/Pixies/Dailies/3704_Pebble without a Cause.json b/QuestPaths/5.x - Shadowbringers/Tribal/Pixies/Dailies/3704_Pebble without a Cause.json index 940bafba..5c1ca655 100644 --- a/QuestPaths/5.x - Shadowbringers/Tribal/Pixies/Dailies/3704_Pebble without a Cause.json +++ b/QuestPaths/5.x - Shadowbringers/Tribal/Pixies/Dailies/3704_Pebble without a Cause.json @@ -1,6 +1,7 @@ { "$schema": "https://carvel.li/questionable/quest-1.0", "Author": "liza", + "Disabled": true, "QuestSequence": [ { "Sequence": 0, @@ -28,19 +29,39 @@ "Z": -55.77173 }, "TerritoryId": 816, - "InteractionType": "Combat", - "EnemySpawnType": "AfterInteraction", - "KillEnemyDataIds": [ - 11451 - ], + "InteractionType": "Interact", "Fly": true, - "Comment": "TODO Combat is optional, check where we should walk" + "$": "Only if QW: 0 0 ??? 0 0 0", + "SkipIf": ["NotTargetable"] + }, + { + "DataId": 2010902, + "Position": { + "X": -405.9358, + "Y": -0.07635498, + "Z": -28.397034 + }, + "TerritoryId": 816, + "InteractionType": "Interact", + "$": "Only if QW: 0 0 1 0 0 0 → if complete, 0 16 0 0 0 0", + "SkipIf": ["NotTargetable"] } ] }, { "Sequence": 255, "Steps": [ + { + "Position": { + "X": -398.9776, + "Y": 0.82966614, + "Z": 8.668919 + }, + "TerritoryId": 816, + "InteractionType": "WalkTo", + "Mount": false, + "DisableNavmesh": true + }, { "DataId": 1031809, "Position": { diff --git a/QuestPaths/5.x - Shadowbringers/Tribal/Pixies/Dailies/3705_There's Always a Stupider Fish.json b/QuestPaths/5.x - Shadowbringers/Tribal/Pixies/Dailies/3705_There's Always a Stupider Fish.json new file mode 100644 index 00000000..a71e2c27 --- /dev/null +++ b/QuestPaths/5.x - Shadowbringers/Tribal/Pixies/Dailies/3705_There's Always a Stupider Fish.json @@ -0,0 +1,66 @@ +{ + "$schema": "https://carvel.li/questionable/quest-1.0", + "Author": "liza", + "Disabled": true, + "QuestSequence": [ + { + "Sequence": 0, + "Steps": [ + { + "DataId": 1031809, + "Position": { + "X": -454.3069, + "Y": 71.43217, + "Z": 575.1278 + }, + "TerritoryId": 816, + "InteractionType": "AcceptQuest" + } + ] + }, + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": -115.77283, + "Y": 7.1942587, + "Z": 130.61378 + }, + "TerritoryId": 816, + "InteractionType": "WalkTo", + "Fly": true + }, + { + "DataId": 2010911, + "Position": { + "X": -113.93915, + "Y": -36.087585, + "Z": 87.6936 + }, + "TerritoryId": 816, + "InteractionType": "Interact", + "DisableNavmesh": true, + "$": "QW: 0 2 0 0 0 0" + } + ] + }, + { + "Sequence": 255, + "Steps": [ + { + "DataId": 1031809, + "Position": { + "X": -454.3069, + "Y": 71.43217, + "Z": 575.1278 + }, + "TerritoryId": 816, + "InteractionType": "CompleteQuest", + "AetheryteShortcut": "Il Mheg - Lydha Lran", + "Fly": true + } + ] + } + ] +} diff --git a/QuestPaths/6.x - Endwalker/Tribal/Arkasodara/Dailies/4566_Hippo Scrub.json b/QuestPaths/6.x - Endwalker/Tribal/Arkasodara/Dailies/4566_Hippo Scrub.json index 5bb38148..2142ebcd 100644 --- a/QuestPaths/6.x - Endwalker/Tribal/Arkasodara/Dailies/4566_Hippo Scrub.json +++ b/QuestPaths/6.x - Endwalker/Tribal/Arkasodara/Dailies/4566_Hippo Scrub.json @@ -79,7 +79,6 @@ }, "TerritoryId": 957, "InteractionType": "CompleteQuest", - "AetheryteShortcut": "Thavnair - Yedlihmad", "Fly": true } ] diff --git a/Questionable.Model/V1/QuestRoot.cs b/Questionable.Model/V1/QuestRoot.cs index 60693898..cf1967c4 100644 --- a/Questionable.Model/V1/QuestRoot.cs +++ b/Questionable.Model/V1/QuestRoot.cs @@ -6,7 +6,12 @@ public sealed class QuestRoot { public string Author { get; set; } = null!; public List Contributors { get; set; } = new(); + + /// + /// This is only relevant for release builds. + /// public bool Disabled { get; set; } + public string? Comment { get; set; } public List TerritoryBlacklist { get; set; } = new(); public List QuestSequence { get; set; } = new(); diff --git a/Questionable/Controller/QuestRegistry.cs b/Questionable/Controller/QuestRegistry.cs index d836b21e..e0e03630 100644 --- a/Questionable/Controller/QuestRegistry.cs +++ b/Questionable/Controller/QuestRegistry.cs @@ -173,8 +173,8 @@ internal sealed class QuestRegistry return ushort.Parse(parts[0], CultureInfo.InvariantCulture); } - public bool IsKnownQuest(ushort questId) => TryGetQuest(questId, out _); + public bool IsKnownQuest(ushort questId) => _quests.ContainsKey(questId); public bool TryGetQuest(ushort questId, [NotNullWhen(true)] out Quest? quest) - => _quests.TryGetValue(questId, out quest) && !quest.Root.Disabled; + => _quests.TryGetValue(questId, out quest); } diff --git a/Questionable/Windows/QuestWindow.cs b/Questionable/Windows/QuestWindow.cs index 517d8894..2709ab0b 100644 --- a/Questionable/Windows/QuestWindow.cs +++ b/Questionable/Windows/QuestWindow.cs @@ -583,7 +583,7 @@ internal sealed class QuestWindow : LWindow, IPersistableWindowConfig ImGui.SameLine(); using var textColor = ImRaii.PushColor(ImGuiCol.Text, ImGuiColors.DalamudRed); - if (ImGuiComponents.IconButtonWithText(FontAwesomeIcon.ExclamationTriangle, + if (ImGuiComponents.IconButtonWithText(FontAwesomeIcon.Flag, $"{_questRegistry.ValidationIssueCount}")) _questValidationWindow.IsOpen = true; }