muffin v7.4.8

This commit is contained in:
alydev 2025-12-29 11:41:48 +10:00
parent 63f975ff4f
commit a9e1cdc5f1
4 changed files with 932 additions and 880 deletions

View file

@ -357,6 +357,7 @@ internal static class Duty
{ {
logger.LogInformation("Reached required level {RequiredLevel} (current: {CurrentLevel})", base.Task.RequiredLevel, b); logger.LogInformation("Reached required level {RequiredLevel} (current: {CurrentLevel})", base.Task.RequiredLevel, b);
chatGui.Print($"Reached level {b}, can now continue MSQ.", "Questionable", 576); chatGui.Print($"Reached level {b}, can now continue MSQ.", "Questionable", 576);
autoDutyIpc.DisableLevelingMode();
return ETaskResult.TaskComplete; return ETaskResult.TaskComplete;
} }
if (autoDutyIpc.IsStopped() && !flag && !flag2) if (autoDutyIpc.IsStopped() && !flag && !flag2)

View file

@ -682,11 +682,16 @@ internal sealed class QuestController : MiniTaskController<QuestController>
} }
questProgress = null; questProgress = null;
} }
else if (_startedQuest == null || _startedQuest.Quest.Id != elementId)
{
if (_startedQuest != null && !_taskQueue.AllTasksComplete)
{
_logger.LogTrace("Not switching from quest {CurrentQuestId} to {NewQuestId} because tasks are still running", _startedQuest.Quest.Id, elementId);
questProgress = _startedQuest;
b = _startedQuest.Sequence;
}
else 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)) if (_configuration.Stop.Enabled && _startedQuest != null && _configuration.Stop.QuestsToStopAfter.Contains(_startedQuest.Quest.Id) && _questFunctions.IsQuestComplete(_startedQuest.Quest.Id))
{ {
ElementId id = _startedQuest.Quest.Id; ElementId id = _startedQuest.Quest.Id;
@ -694,8 +699,9 @@ internal sealed class QuestController : MiniTaskController<QuestController>
_chatGui.Print("Completed quest '" + _startedQuest.Quest.Info.Name + "', which is configured as a stopping point.", "Questionable", 576); _chatGui.Print("Completed quest '" + _startedQuest.Quest.Info.Name + "', which is configured as a stopping point.", "Questionable", 576);
_startedQuest = null; _startedQuest = null;
Stop($"Stopping point [{id}] reached"); Stop($"Stopping point [{id}] reached");
return;
} }
else if (_questRegistry.TryGetQuest(elementId, out quest)) if (_questRegistry.TryGetQuest(elementId, out Quest quest))
{ {
_logger.LogInformation("New quest: {QuestName}", quest.Info.Name); _logger.LogInformation("New quest: {QuestName}", quest.Info.Name);
_startedQuest = new QuestProgress(quest, b); _startedQuest = new QuestProgress(quest, b);
@ -723,15 +729,20 @@ internal sealed class QuestController : MiniTaskController<QuestController>
} }
CheckNextTasks("Different Quest"); CheckNextTasks("Different Quest");
} }
return;
} }
else if (_startedQuest != null) if (_startedQuest != null)
{ {
_logger.LogInformation("No active quest anymore? Not sure what happened..."); _logger.LogInformation("No active quest anymore? Not sure what happened...");
_startedQuest = null; _startedQuest = null;
Stop("No active Quest"); Stop("No active Quest");
}
return; return;
} }
questProgress = null;
}
}
else
{
questProgress = _startedQuest; questProgress = _startedQuest;
} }
} }

File diff suppressed because it is too large Load diff

View file

@ -125,6 +125,7 @@ internal sealed class AutoDutyIpc
} }
try try
{ {
_setConfig.InvokeAction("leveling", "None");
_setConfig.InvokeAction("Unsynced", $"{dutyMode == DutyMode.UnsyncRegular}"); _setConfig.InvokeAction("Unsynced", $"{dutyMode == DutyMode.UnsyncRegular}");
ICallGateSubscriber<string, string, object> setConfig = _setConfig; ICallGateSubscriber<string, string, object> setConfig = _setConfig;
setConfig.InvokeAction("dutyModeEnum", dutyMode switch setConfig.InvokeAction("dutyModeEnum", dutyMode switch
@ -182,16 +183,36 @@ internal sealed class AutoDutyIpc
} }
} }
public void DisableLevelingMode()
{
try
{
_logger.LogInformation("Disabling AutoDuty leveling mode");
_setConfig.InvokeAction("leveling", "None");
}
catch (IpcError ipcError)
{
_logger.LogWarning("Unable to disable AutoDuty leveling mode: {Message}", ipcError.Message);
}
}
public void Stop() public void Stop()
{ {
try try
{ {
_logger.LogInformation("Calling AutoDuty.Stop"); _logger.LogInformation("Calling AutoDuty.Stop");
try
{
_setConfig.InvokeAction("leveling", "None");
}
catch (IpcError)
{
}
_stop.InvokeAction(); _stop.InvokeAction();
} }
catch (IpcError ipcError) catch (IpcError ipcError2)
{ {
throw new TaskException("Unable to stop AutoDuty: " + ipcError.Message, ipcError); throw new TaskException("Unable to stop AutoDuty: " + ipcError2.Message, ipcError2);
} }
} }
} }