From 13ade00f9ceab187213340c746bd780d292d8637 Mon Sep 17 00:00:00 2001 From: alydev Date: Thu, 9 Oct 2025 08:44:15 +1000 Subject: [PATCH] muffin v6.16 --- GatheringPaths/Properties/AssemblyInfo.cs | 6 +- LLib/Properties/AssemblyInfo.cs | 6 +- QuestPaths/Properties/AssemblyInfo.cs | 6 +- .../AssemblyQuestLoader.cs | 95 +++++-- Questionable.Model/Properties/AssemblyInfo.cs | 6 +- Questionable/Properties/AssemblyInfo.cs | 6 +- .../QuestController.cs | 259 +++++------------- .../QuestJournalUtils.cs | 29 +- Solution.sln | 90 +++--- 9 files changed, 208 insertions(+), 295 deletions(-) diff --git a/GatheringPaths/Properties/AssemblyInfo.cs b/GatheringPaths/Properties/AssemblyInfo.cs index 1859744..1732a99 100644 --- a/GatheringPaths/Properties/AssemblyInfo.cs +++ b/GatheringPaths/Properties/AssemblyInfo.cs @@ -5,11 +5,11 @@ using System.Runtime.Versioning; [assembly: AssemblyCompany("GatheringPaths")] [assembly: AssemblyConfiguration("Release")] -[assembly: AssemblyFileVersion("6.15.0.0")] -[assembly: AssemblyInformationalVersion("6.15+fa9d726e067f739fff28fea7966f665e8dcfde88")] +[assembly: AssemblyFileVersion("6.16.0.0")] +[assembly: AssemblyInformationalVersion("6.16+eb27d19d9ed2e79694570f1d4348f4620484aa2e")] [assembly: AssemblyProduct("GatheringPaths")] [assembly: AssemblyTitle("GatheringPaths")] [assembly: TargetPlatform("Windows7.0")] [assembly: SupportedOSPlatform("Windows7.0")] -[assembly: AssemblyVersion("6.15.0.0")] +[assembly: AssemblyVersion("6.16.0.0")] [module: RefSafetyRules(11)] diff --git a/LLib/Properties/AssemblyInfo.cs b/LLib/Properties/AssemblyInfo.cs index efd15ab..fcbeca4 100644 --- a/LLib/Properties/AssemblyInfo.cs +++ b/LLib/Properties/AssemblyInfo.cs @@ -7,12 +7,12 @@ using System.Security.Permissions; [assembly: AssemblyCompany("LLib")] [assembly: AssemblyConfiguration("Release")] -[assembly: AssemblyFileVersion("6.15.0.0")] -[assembly: AssemblyInformationalVersion("6.15+5367edf45faba59401605531555000d1429966c1")] +[assembly: AssemblyFileVersion("6.16.0.0")] +[assembly: AssemblyInformationalVersion("6.16+5367edf45faba59401605531555000d1429966c1")] [assembly: AssemblyProduct("LLib")] [assembly: AssemblyTitle("LLib")] [assembly: AssemblyMetadata("RepositoryUrl", "https://github.com/WigglyMuffin/LLib.git")] [assembly: TargetPlatform("Windows7.0")] [assembly: SupportedOSPlatform("Windows7.0")] -[assembly: AssemblyVersion("6.15.0.0")] +[assembly: AssemblyVersion("6.16.0.0")] [module: RefSafetyRules(11)] diff --git a/QuestPaths/Properties/AssemblyInfo.cs b/QuestPaths/Properties/AssemblyInfo.cs index 44c2d8d..5da5b03 100644 --- a/QuestPaths/Properties/AssemblyInfo.cs +++ b/QuestPaths/Properties/AssemblyInfo.cs @@ -5,9 +5,9 @@ using System.Runtime.Versioning; [assembly: AssemblyCompany("QuestPaths")] [assembly: AssemblyConfiguration("Release")] -[assembly: AssemblyFileVersion("6.15.0.0")] -[assembly: AssemblyInformationalVersion("6.15+fa9d726e067f739fff28fea7966f665e8dcfde88")] +[assembly: AssemblyFileVersion("6.16.0.0")] +[assembly: AssemblyInformationalVersion("6.16+eb27d19d9ed2e79694570f1d4348f4620484aa2e")] [assembly: AssemblyProduct("QuestPaths")] [assembly: AssemblyTitle("QuestPaths")] -[assembly: AssemblyVersion("6.15.0.0")] +[assembly: AssemblyVersion("6.16.0.0")] [module: RefSafetyRules(11)] diff --git a/QuestPaths/Questionable.QuestPaths/AssemblyQuestLoader.cs b/QuestPaths/Questionable.QuestPaths/AssemblyQuestLoader.cs index bb2249d..d5bee3f 100644 --- a/QuestPaths/Questionable.QuestPaths/AssemblyQuestLoader.cs +++ b/QuestPaths/Questionable.QuestPaths/AssemblyQuestLoader.cs @@ -464483,7 +464483,7 @@ public static class AssemblyQuestLoader reference6 = obj6; questRoot.QuestSequence = list2; AddQuest(questId, questRoot); - QuestId questId2 = new QuestId(5409); + QuestId questId2 = new QuestId(5406); QuestRoot questRoot2 = new QuestRoot(); num = 1; List list9 = new List(num); @@ -464492,7 +464492,7 @@ public static class AssemblyQuestLoader index = 0; span[index] = "WigglyMuffin"; questRoot2.Author = list9; - index = 3; + index = 2; List list10 = new List(index); CollectionsMarshal.SetCount(list10, index); span2 = CollectionsMarshal.AsSpan(list10); @@ -464507,51 +464507,104 @@ public static class AssemblyQuestLoader CollectionsMarshal.SetCount(list11, num2); span3 = CollectionsMarshal.AsSpan(list11); index2 = 0; - span3[index2] = new QuestStep(EInteractionType.AcceptQuest, 1052617u, new Vector3(-53.177734f, -3.33786E-06f, -72.129456f), 1237); + span3[index2] = new QuestStep(EInteractionType.AcceptQuest, 1054945u, new Vector3(418.7533f, 89.46841f, -779.5682f), 816) + { + AetheryteShortcut = EAetheryteLocation.IlMhegWolekdorf, + SkipConditions = new SkipConditions + { + AetheryteShortcutIf = new SkipAetheryteCondition + { + InSameTerritory = true + } + } + }; obj7.Steps = list11; reference7 = obj7; num++; ref QuestSequence reference8 = ref span2[num]; QuestSequence obj8 = new QuestSequence { - Sequence = 1 + Sequence = byte.MaxValue }; index2 = 1; List list12 = new List(index2); CollectionsMarshal.SetCount(list12, index2); span3 = CollectionsMarshal.AsSpan(list12); num2 = 0; - ref QuestStep reference9 = ref span3[num2]; + span3[num2] = new QuestStep(EInteractionType.CompleteQuest, 1054945u, new Vector3(418.7533f, 89.46841f, -779.5682f), 816); + obj8.Steps = list12; + reference8 = obj8; + questRoot2.QuestSequence = list10; + AddQuest(questId2, questRoot2); + QuestId questId3 = new QuestId(5409); + QuestRoot questRoot3 = new QuestRoot(); + num = 1; + List list13 = new List(num); + CollectionsMarshal.SetCount(list13, num); + span = CollectionsMarshal.AsSpan(list13); + index = 0; + span[index] = "WigglyMuffin"; + questRoot3.Author = list13; + index = 3; + List list14 = new List(index); + CollectionsMarshal.SetCount(list14, index); + span2 = CollectionsMarshal.AsSpan(list14); + num = 0; + ref QuestSequence reference9 = ref span2[num]; + QuestSequence obj9 = new QuestSequence + { + Sequence = 0 + }; + num2 = 1; + List list15 = new List(num2); + CollectionsMarshal.SetCount(list15, num2); + span3 = CollectionsMarshal.AsSpan(list15); + index2 = 0; + span3[index2] = new QuestStep(EInteractionType.AcceptQuest, 1052617u, new Vector3(-53.177734f, -3.33786E-06f, -72.129456f), 1237); + obj9.Steps = list15; + reference9 = obj9; + num++; + ref QuestSequence reference10 = ref span2[num]; + QuestSequence obj10 = new QuestSequence + { + Sequence = 1 + }; + index2 = 1; + List list16 = new List(index2); + CollectionsMarshal.SetCount(list16, index2); + span3 = CollectionsMarshal.AsSpan(list16); + num2 = 0; + ref QuestStep reference11 = ref span3[num2]; QuestStep questStep = new QuestStep(EInteractionType.Interact, 1052624u, new Vector3(-42.008118f, 11.869998f, -95.75043f), 1237); int num3 = 1; - List list13 = new List(num3); - CollectionsMarshal.SetCount(list13, num3); - Span span4 = CollectionsMarshal.AsSpan(list13); + List list17 = new List(num3); + CollectionsMarshal.SetCount(list17, num3); + Span span4 = CollectionsMarshal.AsSpan(list17); int index3 = 0; span4[index3] = new DialogueChoice { Type = EDialogChoiceType.YesNo, Prompt = new ExcelRef("TEXT_KINGWK201_05409_SYSTEM_100_021") }; - questStep.DialogueChoices = list13; - reference9 = questStep; - obj8.Steps = list12; - reference8 = obj8; + questStep.DialogueChoices = list17; + reference11 = questStep; + obj10.Steps = list16; + reference10 = obj10; num++; - ref QuestSequence reference10 = ref span2[num]; - QuestSequence obj9 = new QuestSequence + ref QuestSequence reference12 = ref span2[num]; + QuestSequence obj11 = new QuestSequence { Sequence = byte.MaxValue }; num2 = 1; - List list14 = new List(num2); - CollectionsMarshal.SetCount(list14, num2); - span3 = CollectionsMarshal.AsSpan(list14); + List list18 = new List(num2); + CollectionsMarshal.SetCount(list18, num2); + span3 = CollectionsMarshal.AsSpan(list18); index2 = 0; span3[index2] = new QuestStep(EInteractionType.CompleteQuest, 1053219u, new Vector3(287.49524f, 52.00211f, -382.9862f), 1291); - obj9.Steps = list14; - reference10 = obj9; - questRoot2.QuestSequence = list10; - AddQuest(questId2, questRoot2); + obj11.Steps = list18; + reference12 = obj11; + questRoot3.QuestSequence = list14; + AddQuest(questId3, questRoot3); } } diff --git a/Questionable.Model/Properties/AssemblyInfo.cs b/Questionable.Model/Properties/AssemblyInfo.cs index fa81ac4..4ff5511 100644 --- a/Questionable.Model/Properties/AssemblyInfo.cs +++ b/Questionable.Model/Properties/AssemblyInfo.cs @@ -5,9 +5,9 @@ using System.Runtime.Versioning; [assembly: AssemblyCompany("Questionable.Model")] [assembly: AssemblyConfiguration("Release")] -[assembly: AssemblyFileVersion("6.15.0.0")] -[assembly: AssemblyInformationalVersion("6.15+fa9d726e067f739fff28fea7966f665e8dcfde88")] +[assembly: AssemblyFileVersion("6.16.0.0")] +[assembly: AssemblyInformationalVersion("6.16+eb27d19d9ed2e79694570f1d4348f4620484aa2e")] [assembly: AssemblyProduct("Questionable.Model")] [assembly: AssemblyTitle("Questionable.Model")] -[assembly: AssemblyVersion("6.15.0.0")] +[assembly: AssemblyVersion("6.16.0.0")] [module: RefSafetyRules(11)] diff --git a/Questionable/Properties/AssemblyInfo.cs b/Questionable/Properties/AssemblyInfo.cs index cb425b9..8609165 100644 --- a/Questionable/Properties/AssemblyInfo.cs +++ b/Questionable/Properties/AssemblyInfo.cs @@ -7,12 +7,12 @@ using System.Security.Permissions; [assembly: AssemblyCompany("Questionable")] [assembly: AssemblyConfiguration("Release")] -[assembly: AssemblyFileVersion("6.15.0.0")] -[assembly: AssemblyInformationalVersion("6.15+fa9d726e067f739fff28fea7966f665e8dcfde88")] +[assembly: AssemblyFileVersion("6.16.0.0")] +[assembly: AssemblyInformationalVersion("6.16+eb27d19d9ed2e79694570f1d4348f4620484aa2e")] [assembly: AssemblyProduct("Questionable")] [assembly: AssemblyTitle("Questionable")] [assembly: AssemblyMetadata("RepositoryUrl", "https://github.com/WigglyMuffin/Ambivalence")] [assembly: TargetPlatform("Windows7.0")] [assembly: SupportedOSPlatform("Windows7.0")] -[assembly: AssemblyVersion("6.15.0.0")] +[assembly: AssemblyVersion("6.16.0.0")] [module: RefSafetyRules(11)] diff --git a/Questionable/Questionable.Controller/QuestController.cs b/Questionable/Questionable.Controller/QuestController.cs index a5664be..18dc6cd 100644 --- a/Questionable/Questionable.Controller/QuestController.cs +++ b/Questionable/Questionable.Controller/QuestController.cs @@ -290,11 +290,11 @@ internal sealed class QuestController : MiniTaskController _safeAnimationEnd = DateTime.Now.AddSeconds(1f + num); } } - UpdateCurrentQuest(); if (AutomationType == EAutomationType.Manual && !IsRunning && !IsQuestWindowOpen) { return; } + UpdateCurrentQuest(); if (!_clientState.IsLoggedIn) { StopAllDueToConditionFailed("Logged out"); @@ -511,38 +511,6 @@ internal sealed class QuestController : MiniTaskController _pendingQuest = null; CheckNextTasks("Pending quest accepted"); } - if (_startedQuest != null && !_questFunctions.IsQuestAccepted(_startedQuest.Quest.Id)) - { - if (_questFunctions.IsQuestComplete(_startedQuest.Quest.Id)) - { - _logger.LogDebug("Quest {QuestId} is complete, clearing started quest", _startedQuest.Quest.Id); - _startedQuest = null; - } - else - { - if (!_startedQuest.Quest.Info.IsRepeatable) - { - _logger.LogInformation("Quest {QuestId} was abandoned, clearing started quest", _startedQuest.Quest.Id); - (ElementId, byte)? tuple = (from x in ManualPriorityQuests - where _questFunctions.IsReadyToAcceptQuest(x.Id) - select ((ElementId Id, byte))(Id: x.Id, 0)).FirstOrDefault(); - if (tuple.HasValue) - { - (ElementId, byte) valueOrDefault = tuple.GetValueOrDefault(); - if ((object)valueOrDefault.Item1 != null && _questRegistry.TryGetQuest(valueOrDefault.Item1, out Quest quest)) - { - _logger.LogInformation("Setting priority quest {QuestId} as next quest", valueOrDefault.Item1); - SetNextQuest(quest); - } - } - _startedQuest = null; - Stop("Quest abandoned"); - return; - } - _logger.LogInformation("Repeatable quest {QuestId} is no longer accepted, clearing started quest", _startedQuest.Quest.Id); - _startedQuest = null; - } - } if (_simulatedQuest == null && _nextQuest != null && !((!_nextQuest.Quest.Info.IsRepeatable) ? (!_questFunctions.IsQuestAcceptedOrComplete(_nextQuest.Quest.Id)) : (!_questFunctions.IsQuestAccepted(_nextQuest.Quest.Id)))) { _logger.LogInformation("Next quest {QuestId} accepted or completed", _nextQuest.Quest.Id); @@ -551,26 +519,11 @@ internal sealed class QuestController : MiniTaskController _startedQuest = _nextQuest; AutomationType = EAutomationType.SingleQuestB; } - else if (_questFunctions.IsQuestAccepted(_nextQuest.Quest.Id)) - { - QuestProgressInfo questProgressInfo = _questFunctions.GetQuestProgressInfo(_nextQuest.Quest.Id); - if (questProgressInfo != null) - { - _startedQuest = new QuestProgress(_nextQuest.Quest, questProgressInfo.Sequence); - _logger.LogInformation("Moving accepted next quest to started quest (sequence: {Sequence})", questProgressInfo.Sequence); - _nextQuest = null; - CheckNextTasks("Next quest already accepted"); - return; - } - _logger.LogWarning("Could not get quest progress info for accepted quest {QuestId}", _nextQuest.Quest.Id); - } _logger.LogDebug("Started: {StartedQuest}", _startedQuest?.Quest.Id); _nextQuest = null; } byte b; QuestProgress questProgress; - ElementId elementId; - MainScenarioQuestState mainScenarioQuestState; if (_simulatedQuest != null) { b = _simulatedQuest.Sequence; @@ -596,90 +549,85 @@ internal sealed class QuestController : MiniTaskController } else { - ElementId CurrentQuest; - byte Sequence; - MainScenarioQuestState State; - if (_startedQuest == null) + _questFunctions.GetCurrentQuest(AutomationType != EAutomationType.SingleQuestB).Deconstruct(out ElementId CurrentQuest, out byte Sequence, out MainScenarioQuestState State); + ElementId elementId = CurrentQuest; + b = Sequence; + MainScenarioQuestState mainScenarioQuestState = State; + (ElementId, byte)? tuple = (from x in ManualPriorityQuests + where _questFunctions.IsReadyToAcceptQuest(x.Id) || _questFunctions.IsQuestAccepted(x.Id) + select (Id: x.Id, _questFunctions.GetQuestProgressInfo(x.Id)?.Sequence ?? 0)).FirstOrDefault(); + if (tuple.HasValue) { - _questFunctions.GetCurrentQuest(AutomationType != EAutomationType.SingleQuestB).Deconstruct(out CurrentQuest, out Sequence, out State); - elementId = CurrentQuest; - b = Sequence; - mainScenarioQuestState = State; - (ElementId, byte)? tuple2 = (from x in ManualPriorityQuests - where _questFunctions.IsQuestAccepted(x.Id) - select (Id: x.Id, _questFunctions.GetQuestProgressInfo(x.Id)?.Sequence ?? 0)).FirstOrDefault(); - if (tuple2.HasValue) + (ElementId, byte) valueOrDefault = tuple.GetValueOrDefault(); + if ((object)valueOrDefault.Item1 != null) { - (ElementId, byte) valueOrDefault2 = tuple2.GetValueOrDefault(); - if ((object)valueOrDefault2.Item1 != null) - { - (elementId, b) = valueOrDefault2; - goto IL_084c; - } + (elementId, b) = valueOrDefault; } - Quest quest2 = ManualPriorityQuests.FirstOrDefault((Quest x) => _questFunctions.IsReadyToAcceptQuest(x.Id)); - if (quest2 != null) + } + if (elementId == null || elementId.Value == 0) + { + if (_startedQuest != null) { - _logger.LogInformation("Setting ready priority quest {QuestId} as next quest", quest2.Id); - SetNextQuest(quest2); + switch (mainScenarioQuestState) + { + case MainScenarioQuestState.Unavailable: + _logger.LogWarning("MSQ information not available, doing nothing"); + return; + case MainScenarioQuestState.LoadingScreen: + _logger.LogWarning("On loading screen, no MSQ - doing nothing"); + return; + } + _logger.LogInformation("No current quest, resetting data [CQI: {CurrrentQuestData}], [CQ: {QuestData}], [MSQ: {MsqData}]", _questFunctions.GetCurrentQuestInternal(allowNewMsq: true), _questFunctions.GetCurrentQuest(), _questFunctions.GetMainScenarioQuest()); + _startedQuest = null; + Stop("Resetting current quest"); + } + questProgress = null; + } + else + { + if (_startedQuest == null || _startedQuest.Quest.Id != elementId) + { + Quest quest; + if (_configuration.Stop.Enabled && _startedQuest != null && _configuration.Stop.QuestsToStopAfter.Contains(_startedQuest.Quest.Id) && _questFunctions.IsQuestComplete(_startedQuest.Quest.Id)) + { + ElementId id = _startedQuest.Quest.Id; + _logger.LogInformation("Reached stopping point (quest: {QuestId})", id); + _chatGui.Print("Completed quest '" + _startedQuest.Quest.Info.Name + "', which is configured as a stopping point.", "Questionable", 576); + _startedQuest = null; + Stop($"Stopping point [{id}] reached"); + } + else if (_questRegistry.TryGetQuest(elementId, out quest)) + { + _logger.LogInformation("New quest: {QuestName}", quest.Info.Name); + _startedQuest = new QuestProgress(quest, b); + if (_clientState.LocalPlayer != null && _clientState.LocalPlayer.Level < quest.Info.Level) + { + _logger.LogInformation("Stopping automation, player level ({PlayerLevel}) < quest level ({QuestLevel}", _clientState.LocalPlayer.Level, quest.Info.Level); + Stop("Quest level too high"); + return; + } + if (AutomationType == EAutomationType.SingleQuestB) + { + _logger.LogInformation("Single quest is finished"); + AutomationType = EAutomationType.Manual; + } + CheckNextTasks("Different Quest"); + } + else if (_startedQuest != null) + { + _logger.LogInformation("No active quest anymore? Not sure what happened..."); + _startedQuest = null; + Stop("No active Quest"); + } return; } - goto IL_084c; - } - questProgress = _startedQuest; - b = _startedQuest.Sequence; - QuestProgressInfo questProgressInfo2 = _questFunctions.GetQuestProgressInfo(_startedQuest.Quest.Id); - if (questProgressInfo2 != null && questProgressInfo2.Sequence != b) - { - _logger.LogInformation("Updating started quest sequence from {OldSequence} to {NewSequence}", b, questProgressInfo2.Sequence); - b = questProgressInfo2.Sequence; - } - if (AutomationType == EAutomationType.Manual || !IsRunning) - { - _questFunctions.GetCurrentQuest(AutomationType != EAutomationType.SingleQuestB).Deconstruct(out CurrentQuest, out Sequence, out State); - ElementId elementId2 = CurrentQuest; - byte sequence = Sequence; - (ElementId, byte)? tuple4 = (from x in ManualPriorityQuests - where _questFunctions.IsQuestAccepted(x.Id) - select (Id: x.Id, _questFunctions.GetQuestProgressInfo(x.Id)?.Sequence ?? 0)).FirstOrDefault(); - if (tuple4.HasValue) - { - (ElementId, byte) valueOrDefault3 = tuple4.GetValueOrDefault(); - if ((object)valueOrDefault3.Item1 != null) - { - (elementId2, sequence) = valueOrDefault3; - } - } - if (elementId2 != null && elementId2.Value != 0 && _startedQuest.Quest.Id != elementId2) - { - _logger.LogInformation("Game current quest changed from {OldQuest} to {NewQuest}, updating started quest", _startedQuest.Quest.Id, elementId2); - if (_questRegistry.TryGetQuest(elementId2, out Quest quest3)) - { - _logger.LogInformation("Switching to new quest: {QuestName}", quest3.Info.Name); - _startedQuest = new QuestProgress(quest3, sequence); - if (_clientState.LocalPlayer != null && _clientState.LocalPlayer.Level < quest3.Info.Level) - { - _logger.LogInformation("Stopping automation, player level ({PlayerLevel}) < quest level ({QuestLevel}", _clientState.LocalPlayer.Level, quest3.Info.Level); - Stop("Quest level too high"); - } - questProgress = _startedQuest; - } - else - { - _logger.LogInformation("New quest {QuestId} not found in registry", elementId2); - } - } + questProgress = _startedQuest; } } - goto IL_0b7c; - IL_0b7c: if (questProgress == null) { DebugState = "No quest active"; - if (!IsRunning) - { - Stop("No quest active"); - } + Stop("No quest active"); return; } if (_gameFunctions.IsOccupied() && !_gameFunctions.IsOccupiedWithCustomDeliveryNpc(questProgress.Quest)) @@ -730,68 +678,6 @@ internal sealed class QuestController : MiniTaskController { DebugState = null; } - return; - IL_084c: - if (elementId == null || elementId.Value == 0) - { - if (_startedQuest != null) - { - switch (mainScenarioQuestState) - { - case MainScenarioQuestState.Unavailable: - _logger.LogWarning("MSQ information not available, doing nothing"); - return; - case MainScenarioQuestState.LoadingScreen: - _logger.LogWarning("On loading screen, no MSQ - doing nothing"); - return; - } - _logger.LogInformation("No current quest, resetting data [CQI: {CurrrentQuestData}], [CQ: {QuestData}], [MSQ: {MsqData}]", _questFunctions.GetCurrentQuestInternal(allowNewMsq: true), _questFunctions.GetCurrentQuest(), _questFunctions.GetMainScenarioQuest()); - _startedQuest = null; - Stop("Resetting current quest"); - } - questProgress = null; - } - else - { - if (_startedQuest == null || _startedQuest.Quest.Id != elementId) - { - Quest quest4; - if (_configuration.Stop.Enabled && _startedQuest != null && _configuration.Stop.QuestsToStopAfter.Contains(_startedQuest.Quest.Id) && _questFunctions.IsQuestComplete(_startedQuest.Quest.Id)) - { - ElementId id = _startedQuest.Quest.Id; - _logger.LogInformation("Reached stopping point (quest: {QuestId})", id); - _chatGui.Print("Completed quest '" + _startedQuest.Quest.Info.Name + "', which is configured as a stopping point.", "Questionable", 576); - _startedQuest = null; - Stop($"Stopping point [{id}] reached"); - } - else if (_questRegistry.TryGetQuest(elementId, out quest4)) - { - _logger.LogInformation("New quest: {QuestName}", quest4.Info.Name); - _startedQuest = new QuestProgress(quest4, b); - if (_clientState.LocalPlayer != null && _clientState.LocalPlayer.Level < quest4.Info.Level) - { - _logger.LogInformation("Stopping automation, player level ({PlayerLevel}) < quest level ({QuestLevel}", _clientState.LocalPlayer.Level, quest4.Info.Level); - Stop("Quest level too high"); - return; - } - if (AutomationType == EAutomationType.SingleQuestB) - { - _logger.LogInformation("Single quest is finished"); - AutomationType = EAutomationType.Manual; - } - CheckNextTasks("Different Quest"); - } - else if (_startedQuest != null) - { - _logger.LogInformation("No active quest anymore? Not sure what happened..."); - _startedQuest = null; - Stop("No active Quest"); - } - return; - } - questProgress = _startedQuest; - } - goto IL_0b7c; } } @@ -947,13 +833,6 @@ internal sealed class QuestController : MiniTaskController } } - public void SetStartedQuest(Quest quest, byte sequence = 0) - { - _logger.LogInformation("Setting started quest: {QuestId}", quest.Id); - _startedQuest = new QuestProgress(quest, sequence); - _nextQuest = null; - } - public void SetGatheringQuest(Quest? quest) { _logger.LogInformation("GatheringQuest: {QuestId}", quest?.Id); diff --git a/Questionable/Questionable.Windows.JournalComponents/QuestJournalUtils.cs b/Questionable/Questionable.Windows.JournalComponents/QuestJournalUtils.cs index 3fbde93..6e2e8fd 100644 --- a/Questionable/Questionable.Windows.JournalComponents/QuestJournalUtils.cs +++ b/Questionable/Questionable.Windows.JournalComponents/QuestJournalUtils.cs @@ -59,31 +59,12 @@ internal sealed class QuestJournalUtils { return; } - bool flag = _questFunctions.IsQuestComplete(questInfo.QuestId); - bool flag2 = _questFunctions.IsQuestAccepted(questInfo.QuestId); - bool flag3 = _questFunctions.IsReadyToAcceptQuest(questInfo.QuestId); - using (ImRaii.Disabled(quest == null || flag || (!flag3 && !flag2))) + using (ImRaii.Disabled(!_questFunctions.IsReadyToAcceptQuest(questInfo.QuestId))) { if (ImGui.MenuItem("Start as next quest")) { - if (quest == null) - { - return; - } - if (flag2) - { - QuestProgressInfo questProgressInfo = _questFunctions.GetQuestProgressInfo(questInfo.QuestId); - if (questProgressInfo != null) - { - _questController.SetStartedQuest(quest, questProgressInfo.Sequence); - _questController.Start(label); - } - } - else - { - _questController.SetNextQuest(quest); - _questController.Start(label); - } + _questController.SetNextQuest(quest); + _questController.Start(label); } } List incompletePrerequisiteQuests = GetIncompletePrerequisiteQuests(questInfo); @@ -110,8 +91,8 @@ internal sealed class QuestJournalUtils ImGui.SetTooltip((incompletePrerequisiteQuests.Count == 1) ? "Add this quest to the priority list" : $"Add this quest and {incompletePrerequisiteQuests.Count - 1} required quest(s) to the priority list in completion order"); } } - bool flag4 = _commandManager.Commands.ContainsKey("/questinfo"); - using (ImRaii.Disabled(!(questInfo.QuestId is QuestId) || !flag4)) + bool flag = _commandManager.Commands.ContainsKey("/questinfo"); + using (ImRaii.Disabled(!(questInfo.QuestId is QuestId) || !flag)) { if (ImGui.MenuItem("View in Quest Map")) { diff --git a/Solution.sln b/Solution.sln index 5205cb2..dab5dbb 100644 --- a/Solution.sln +++ b/Solution.sln @@ -2,15 +2,15 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 14 VisualStudioVersion = 14.0.24720.0 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "QuestPaths", "QuestPaths\QuestPaths.csproj", "{33884875-12A7-4737-9AE0-22BA23C5F933}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "QuestPaths", "QuestPaths\QuestPaths.csproj", "{FEE8D61C-6244-4D60-98C6-A38B62E87FBF}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GatheringPaths", "GatheringPaths\GatheringPaths.csproj", "{577D196C-BA5A-410B-99D8-8242BA2EC631}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GatheringPaths", "GatheringPaths\GatheringPaths.csproj", "{D96B8F86-366E-4B48-B4A9-13862BB089D6}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Questionable", "Questionable\Questionable.csproj", "{589FE93D-4A62-47CD-91FF-833BCE031B3D}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Questionable", "Questionable\Questionable.csproj", "{DC9E5480-EDC8-46CC-9D1A-5B4A93636AB6}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Questionable.Model", "Questionable.Model\Questionable.Model.csproj", "{932D91F5-DA79-4120-862D-3E35C6F92408}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Questionable.Model", "Questionable.Model\Questionable.Model.csproj", "{165BDD4B-772A-4F0C-B11B-0E46EAE13C9B}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LLib", "LLib\LLib.csproj", "{6E090518-C6E6-4D84-A889-67976D3C2CB5}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LLib", "LLib\LLib.csproj", "{07D8F685-A86D-47EB-82C9-51647E338452}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -20,46 +20,46 @@ Global Release|x64 = Release|x64 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {33884875-12A7-4737-9AE0-22BA23C5F933}.Debug|AnyCPU.ActiveCfg = Debug|AnyCPU - {33884875-12A7-4737-9AE0-22BA23C5F933}.Debug|AnyCPU.Build.0 = Debug|AnyCPU - {33884875-12A7-4737-9AE0-22BA23C5F933}.Debug|x64.ActiveCfg = Debug|AnyCPU - {33884875-12A7-4737-9AE0-22BA23C5F933}.Debug|x64.Build.0 = Debug|AnyCPU - {33884875-12A7-4737-9AE0-22BA23C5F933}.Release|AnyCPU.ActiveCfg = Release|AnyCPU - {33884875-12A7-4737-9AE0-22BA23C5F933}.Release|AnyCPU.Build.0 = Release|AnyCPU - {33884875-12A7-4737-9AE0-22BA23C5F933}.Release|x64.ActiveCfg = Release|AnyCPU - {33884875-12A7-4737-9AE0-22BA23C5F933}.Release|x64.Build.0 = Release|AnyCPU - {577D196C-BA5A-410B-99D8-8242BA2EC631}.Debug|AnyCPU.ActiveCfg = Debug|AnyCPU - {577D196C-BA5A-410B-99D8-8242BA2EC631}.Debug|AnyCPU.Build.0 = Debug|AnyCPU - {577D196C-BA5A-410B-99D8-8242BA2EC631}.Debug|x64.ActiveCfg = Debug|AnyCPU - {577D196C-BA5A-410B-99D8-8242BA2EC631}.Debug|x64.Build.0 = Debug|AnyCPU - {577D196C-BA5A-410B-99D8-8242BA2EC631}.Release|AnyCPU.ActiveCfg = Release|AnyCPU - {577D196C-BA5A-410B-99D8-8242BA2EC631}.Release|AnyCPU.Build.0 = Release|AnyCPU - {577D196C-BA5A-410B-99D8-8242BA2EC631}.Release|x64.ActiveCfg = Release|AnyCPU - {577D196C-BA5A-410B-99D8-8242BA2EC631}.Release|x64.Build.0 = Release|AnyCPU - {589FE93D-4A62-47CD-91FF-833BCE031B3D}.Debug|AnyCPU.ActiveCfg = Debug|x64 - {589FE93D-4A62-47CD-91FF-833BCE031B3D}.Debug|AnyCPU.Build.0 = Debug|x64 - {589FE93D-4A62-47CD-91FF-833BCE031B3D}.Debug|x64.ActiveCfg = Debug|x64 - {589FE93D-4A62-47CD-91FF-833BCE031B3D}.Debug|x64.Build.0 = Debug|x64 - {589FE93D-4A62-47CD-91FF-833BCE031B3D}.Release|AnyCPU.ActiveCfg = Release|x64 - {589FE93D-4A62-47CD-91FF-833BCE031B3D}.Release|AnyCPU.Build.0 = Release|x64 - {589FE93D-4A62-47CD-91FF-833BCE031B3D}.Release|x64.ActiveCfg = Release|x64 - {589FE93D-4A62-47CD-91FF-833BCE031B3D}.Release|x64.Build.0 = Release|x64 - {932D91F5-DA79-4120-862D-3E35C6F92408}.Debug|AnyCPU.ActiveCfg = Debug|AnyCPU - {932D91F5-DA79-4120-862D-3E35C6F92408}.Debug|AnyCPU.Build.0 = Debug|AnyCPU - {932D91F5-DA79-4120-862D-3E35C6F92408}.Debug|x64.ActiveCfg = Debug|AnyCPU - {932D91F5-DA79-4120-862D-3E35C6F92408}.Debug|x64.Build.0 = Debug|AnyCPU - {932D91F5-DA79-4120-862D-3E35C6F92408}.Release|AnyCPU.ActiveCfg = Release|AnyCPU - {932D91F5-DA79-4120-862D-3E35C6F92408}.Release|AnyCPU.Build.0 = Release|AnyCPU - {932D91F5-DA79-4120-862D-3E35C6F92408}.Release|x64.ActiveCfg = Release|AnyCPU - {932D91F5-DA79-4120-862D-3E35C6F92408}.Release|x64.Build.0 = Release|AnyCPU - {6E090518-C6E6-4D84-A889-67976D3C2CB5}.Debug|AnyCPU.ActiveCfg = Debug|x64 - {6E090518-C6E6-4D84-A889-67976D3C2CB5}.Debug|AnyCPU.Build.0 = Debug|x64 - {6E090518-C6E6-4D84-A889-67976D3C2CB5}.Debug|x64.ActiveCfg = Debug|x64 - {6E090518-C6E6-4D84-A889-67976D3C2CB5}.Debug|x64.Build.0 = Debug|x64 - {6E090518-C6E6-4D84-A889-67976D3C2CB5}.Release|AnyCPU.ActiveCfg = Release|x64 - {6E090518-C6E6-4D84-A889-67976D3C2CB5}.Release|AnyCPU.Build.0 = Release|x64 - {6E090518-C6E6-4D84-A889-67976D3C2CB5}.Release|x64.ActiveCfg = Release|x64 - {6E090518-C6E6-4D84-A889-67976D3C2CB5}.Release|x64.Build.0 = Release|x64 + {FEE8D61C-6244-4D60-98C6-A38B62E87FBF}.Debug|AnyCPU.ActiveCfg = Debug|AnyCPU + {FEE8D61C-6244-4D60-98C6-A38B62E87FBF}.Debug|AnyCPU.Build.0 = Debug|AnyCPU + {FEE8D61C-6244-4D60-98C6-A38B62E87FBF}.Debug|x64.ActiveCfg = Debug|AnyCPU + {FEE8D61C-6244-4D60-98C6-A38B62E87FBF}.Debug|x64.Build.0 = Debug|AnyCPU + {FEE8D61C-6244-4D60-98C6-A38B62E87FBF}.Release|AnyCPU.ActiveCfg = Release|AnyCPU + {FEE8D61C-6244-4D60-98C6-A38B62E87FBF}.Release|AnyCPU.Build.0 = Release|AnyCPU + {FEE8D61C-6244-4D60-98C6-A38B62E87FBF}.Release|x64.ActiveCfg = Release|AnyCPU + {FEE8D61C-6244-4D60-98C6-A38B62E87FBF}.Release|x64.Build.0 = Release|AnyCPU + {D96B8F86-366E-4B48-B4A9-13862BB089D6}.Debug|AnyCPU.ActiveCfg = Debug|AnyCPU + {D96B8F86-366E-4B48-B4A9-13862BB089D6}.Debug|AnyCPU.Build.0 = Debug|AnyCPU + {D96B8F86-366E-4B48-B4A9-13862BB089D6}.Debug|x64.ActiveCfg = Debug|AnyCPU + {D96B8F86-366E-4B48-B4A9-13862BB089D6}.Debug|x64.Build.0 = Debug|AnyCPU + {D96B8F86-366E-4B48-B4A9-13862BB089D6}.Release|AnyCPU.ActiveCfg = Release|AnyCPU + {D96B8F86-366E-4B48-B4A9-13862BB089D6}.Release|AnyCPU.Build.0 = Release|AnyCPU + {D96B8F86-366E-4B48-B4A9-13862BB089D6}.Release|x64.ActiveCfg = Release|AnyCPU + {D96B8F86-366E-4B48-B4A9-13862BB089D6}.Release|x64.Build.0 = Release|AnyCPU + {DC9E5480-EDC8-46CC-9D1A-5B4A93636AB6}.Debug|AnyCPU.ActiveCfg = Debug|x64 + {DC9E5480-EDC8-46CC-9D1A-5B4A93636AB6}.Debug|AnyCPU.Build.0 = Debug|x64 + {DC9E5480-EDC8-46CC-9D1A-5B4A93636AB6}.Debug|x64.ActiveCfg = Debug|x64 + {DC9E5480-EDC8-46CC-9D1A-5B4A93636AB6}.Debug|x64.Build.0 = Debug|x64 + {DC9E5480-EDC8-46CC-9D1A-5B4A93636AB6}.Release|AnyCPU.ActiveCfg = Release|x64 + {DC9E5480-EDC8-46CC-9D1A-5B4A93636AB6}.Release|AnyCPU.Build.0 = Release|x64 + {DC9E5480-EDC8-46CC-9D1A-5B4A93636AB6}.Release|x64.ActiveCfg = Release|x64 + {DC9E5480-EDC8-46CC-9D1A-5B4A93636AB6}.Release|x64.Build.0 = Release|x64 + {165BDD4B-772A-4F0C-B11B-0E46EAE13C9B}.Debug|AnyCPU.ActiveCfg = Debug|AnyCPU + {165BDD4B-772A-4F0C-B11B-0E46EAE13C9B}.Debug|AnyCPU.Build.0 = Debug|AnyCPU + {165BDD4B-772A-4F0C-B11B-0E46EAE13C9B}.Debug|x64.ActiveCfg = Debug|AnyCPU + {165BDD4B-772A-4F0C-B11B-0E46EAE13C9B}.Debug|x64.Build.0 = Debug|AnyCPU + {165BDD4B-772A-4F0C-B11B-0E46EAE13C9B}.Release|AnyCPU.ActiveCfg = Release|AnyCPU + {165BDD4B-772A-4F0C-B11B-0E46EAE13C9B}.Release|AnyCPU.Build.0 = Release|AnyCPU + {165BDD4B-772A-4F0C-B11B-0E46EAE13C9B}.Release|x64.ActiveCfg = Release|AnyCPU + {165BDD4B-772A-4F0C-B11B-0E46EAE13C9B}.Release|x64.Build.0 = Release|AnyCPU + {07D8F685-A86D-47EB-82C9-51647E338452}.Debug|AnyCPU.ActiveCfg = Debug|x64 + {07D8F685-A86D-47EB-82C9-51647E338452}.Debug|AnyCPU.Build.0 = Debug|x64 + {07D8F685-A86D-47EB-82C9-51647E338452}.Debug|x64.ActiveCfg = Debug|x64 + {07D8F685-A86D-47EB-82C9-51647E338452}.Debug|x64.Build.0 = Debug|x64 + {07D8F685-A86D-47EB-82C9-51647E338452}.Release|AnyCPU.ActiveCfg = Release|x64 + {07D8F685-A86D-47EB-82C9-51647E338452}.Release|AnyCPU.Build.0 = Release|x64 + {07D8F685-A86D-47EB-82C9-51647E338452}.Release|x64.ActiveCfg = Release|x64 + {07D8F685-A86D-47EB-82C9-51647E338452}.Release|x64.Build.0 = Release|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE