From 2ada2fa9dc5461a2c76d4c317daf43fef09c4920 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sun, 23 Feb 2025 00:50:15 +0100 Subject: [PATCH] Update for post-ARR quest battles --- Directory.Build.targets | 2 +- .../SinglePlayerDutyOptionsExtensions.cs | 3 +-- .../E3-2.3/1460_Brave New Companions.json | 23 ++++++++++++++++++- .../E6-2.55/4591_The Steps of Faith.json | 11 ++++++++- .../WAR/586_Duty and the Beast.json | 4 ++++ .../1601_Keeping the Flame Alive.json | 5 +++- .../Controller/Utils/PartyWatchDog.cs | 6 +++-- .../SinglePlayerDutyConfigComponent.cs | 2 +- 8 files changed, 47 insertions(+), 9 deletions(-) diff --git a/Directory.Build.targets b/Directory.Build.targets index 80715899..028e926c 100644 --- a/Directory.Build.targets +++ b/Directory.Build.targets @@ -1,5 +1,5 @@ - 4.19 + 4.20 diff --git a/QuestPathGenerator/RoslynElements/SinglePlayerDutyOptionsExtensions.cs b/QuestPathGenerator/RoslynElements/SinglePlayerDutyOptionsExtensions.cs index 7a545318..d37a85a2 100644 --- a/QuestPathGenerator/RoslynElements/SinglePlayerDutyOptionsExtensions.cs +++ b/QuestPathGenerator/RoslynElements/SinglePlayerDutyOptionsExtensions.cs @@ -21,8 +21,7 @@ internal static class SinglePlayerDutyOptionsExtensions Assignment(nameof(SinglePlayerDutyOptions.Enabled), dutyOptions.Enabled, emptyOptions.Enabled) .AsSyntaxNodeOrToken(), - Assignment(nameof(SinglePlayerDutyOptions.Notes), - dutyOptions.Notes, emptyOptions.Notes) + AssignmentList(nameof(SinglePlayerDutyOptions.Notes), dutyOptions.Notes) .AsSyntaxNodeOrToken(), Assignment(nameof(SinglePlayerDutyOptions.Index), dutyOptions.Index, emptyOptions.Index) diff --git a/QuestPaths/2.x - A Realm Reborn/MSQ-2/E3-2.3/1460_Brave New Companions.json b/QuestPaths/2.x - A Realm Reborn/MSQ-2/E3-2.3/1460_Brave New Companions.json index d2020977..86eb2804 100644 --- a/QuestPaths/2.x - A Realm Reborn/MSQ-2/E3-2.3/1460_Brave New Companions.json +++ b/QuestPaths/2.x - A Realm Reborn/MSQ-2/E3-2.3/1460_Brave New Companions.json @@ -100,6 +100,28 @@ 2 ] }, + { + "Position": { + "X": 86.662384, + "Y": 28.34813, + "Z": -627.5218 + }, + "TerritoryId": 156, + "InteractionType": "WalkTo", + "Fly": true, + "SkipConditions": { + "StepIf": { + "CompletionQuestVariablesFlags": [ + null, + null, + null, + null, + null, + 32 + ] + } + } + }, { "DataId": 1009143, "Position": { @@ -109,7 +131,6 @@ }, "TerritoryId": 156, "InteractionType": "Interact", - "Fly": true, "$": "1 112 0 0 0 2 -> 2 96 0 0 0 34", "CompletionQuestVariablesFlags": [ null, diff --git a/QuestPaths/2.x - A Realm Reborn/MSQ-2/E6-2.55/4591_The Steps of Faith.json b/QuestPaths/2.x - A Realm Reborn/MSQ-2/E6-2.55/4591_The Steps of Faith.json index eb05bcad..90686f33 100644 --- a/QuestPaths/2.x - A Realm Reborn/MSQ-2/E6-2.55/4591_The Steps of Faith.json +++ b/QuestPaths/2.x - A Realm Reborn/MSQ-2/E6-2.55/4591_The Steps of Faith.json @@ -28,7 +28,16 @@ "Z": -328.66406 }, "TerritoryId": 155, - "InteractionType": "SinglePlayerDuty" + "InteractionType": "SinglePlayerDuty", + "SinglePlayerDutyOptions": { + "Enabled": false, + "TestedBossModVersion": 292, + "Notes": [ + "WIP: Needs to be re-tested", + "AI doesn't move after starting the instance, so enemies won't be triggered", + "(First Barrier) If the player is too far south, after being stunned by Vishap's roar, AI doesn't move out of the AOE and dies to the Cauterize" + ] + } } ] }, diff --git a/QuestPaths/3.x - Heavensward/Class Quests/WAR/586_Duty and the Beast.json b/QuestPaths/3.x - Heavensward/Class Quests/WAR/586_Duty and the Beast.json index a883ac64..7112086e 100644 --- a/QuestPaths/3.x - Heavensward/Class Quests/WAR/586_Duty and the Beast.json +++ b/QuestPaths/3.x - Heavensward/Class Quests/WAR/586_Duty and the Beast.json @@ -46,6 +46,10 @@ }, "TerritoryId": 155, "InteractionType": "SinglePlayerDuty", + "SinglePlayerDutyOptions": { + "Enabled": true, + "TestedBossModVersion": 292 + }, "Fly": true } ] diff --git a/QuestPaths/3.x - Heavensward/MSQ/A2-Raubahn/1601_Keeping the Flame Alive.json b/QuestPaths/3.x - Heavensward/MSQ/A2-Raubahn/1601_Keeping the Flame Alive.json index 2ab1b1a9..1fc5d833 100644 --- a/QuestPaths/3.x - Heavensward/MSQ/A2-Raubahn/1601_Keeping the Flame Alive.json +++ b/QuestPaths/3.x - Heavensward/MSQ/A2-Raubahn/1601_Keeping the Flame Alive.json @@ -31,7 +31,10 @@ "InteractionType": "SinglePlayerDuty", "SinglePlayerDutyOptions": { "Enabled": true, - "TestedBossModVersion": 292 + "TestedBossModVersion": 292, + "Notes": [ + "Will not move into melee range to kill the gate; Alphinaud will kill it after a while" + ] } } ] diff --git a/Questionable/Controller/Utils/PartyWatchDog.cs b/Questionable/Controller/Utils/PartyWatchDog.cs index 9e7a0cc7..c4439540 100644 --- a/Questionable/Controller/Utils/PartyWatchDog.cs +++ b/Questionable/Controller/Utils/PartyWatchDog.cs @@ -81,8 +81,10 @@ internal sealed class PartyWatchDog : IDisposable return; byte memberCount = groupManager->MainGroup.MemberCount; - _logger.LogDebug("Terrritory {TerritoryId} with {MemberCount} members", _uncheckedTeritoryId, memberCount); - if (memberCount > 1) + bool isInAlliance = groupManager->MainGroup.IsAlliance; + _logger.LogDebug("Territory {TerritoryId} with {MemberCount} members, alliance: {IsInAlliance}", + _uncheckedTeritoryId, memberCount, isInAlliance); + if (memberCount > 1 || isInAlliance) StopIfRunning("Other party members present"); _uncheckedTeritoryId = null; diff --git a/Questionable/Windows/ConfigComponents/SinglePlayerDutyConfigComponent.cs b/Questionable/Windows/ConfigComponents/SinglePlayerDutyConfigComponent.cs index 18f7012c..c51de1e5 100644 --- a/Questionable/Windows/ConfigComponents/SinglePlayerDutyConfigComponent.cs +++ b/Questionable/Windows/ConfigComponents/SinglePlayerDutyConfigComponent.cs @@ -271,7 +271,7 @@ internal sealed class SinglePlayerDutyConfigComponent : ConfigComponent ImGui.BulletText("Will always use BossMod for combat (ignoring the configured combat module)."); ImGui.BulletText("Only a small subset of quest battles have been tested - most of which are in the MSQ."); ImGui.BulletText("When retrying a failed battle, it will always start at 'Normal' difficulty."); - ImGui.BulletText("Please don't enable this option when using a BossMod fork (such as Reborn);\nwith the combat changes, it is unlikely to be compatible."); + ImGui.BulletText("Please don't enable this option when using a BossMod fork (such as Reborn);\nwith the missing combat module configuration, it is unlikely to be compatible."); } #if false