muffin v7.5.13

This commit is contained in:
alydev 2026-08-22 10:25:22 +10:00
parent 911ed68baa
commit acf3e3cb18
69 changed files with 2731 additions and 1425 deletions

View file

@ -33,7 +33,7 @@ internal static class SinglePlayerDuty
public const ushort Naadam = 688;
}
internal sealed class Factory(BossModIpc bossModIpc, WrathComboModule wrathComboModule, RotationSolverRebornModule rsrModule, Configuration configuration, TerritoryData territoryData, QuestFunctions questFunctions, DutyRetryState dutyRetryState, ICondition condition, IClientState clientState, IObjectTable objectTable) : ITaskFactory
internal sealed class Factory(BossModIpc bossModIpc, WrathComboModule wrathComboModule, RotationSolverRebornModule rsrModule, Configuration configuration, TerritoryData territoryData, QuestFunctions questFunctions, GameFunctions gameFunctions, DutyRetryState dutyRetryState, ICondition condition, IClientState clientState, IObjectTable objectTable) : ITaskFactory
{
public IEnumerable<ITask> CreateAllTasks(Quest quest, QuestSequence sequence, QuestStep step)
{
@ -54,7 +54,12 @@ internal static class SinglePlayerDuty
byte seqBefore = questProgressInfo?.Sequence ?? 0;
IReadOnlyList<byte> varsBefore = questProgressInfo?.Variables.ToArray();
dutyRetryState.Reset();
List<ITask> dutyTasks = new List<ITask>();
List<ITask> dutyTasks = new List<ITask>
{
new StartSinglePlayerDuty(contentFinderConditionData.ContentFinderConditionId),
new WaitAtStart.WaitDelay(TimeSpan.FromSeconds(10L)),
new WaitCondition.Task(() => !gameFunctions.IsOccupied(), "Wait(solo duty ready)")
};
if (wrathComboModule.IsAvailable())
{
dutyTasks.Add(new Duty.EnableWrathForDutyTask());
@ -65,14 +70,12 @@ internal static class SinglePlayerDuty
}
if (configuration.General.CombatModule == Configuration.ECombatModule.BossMod && bossModIpc.IsSupported())
{
dutyTasks.Add(new Duty.EnableBossModForDutyTask());
dutyTasks.Add(new Duty.EnableBossModForDutyTask(configuration.SinglePlayerDuties.EnableBossModAi));
}
else if (bossModIpc.IsSupported())
{
dutyTasks.Add(new Duty.EnableBossModPassiveForDutyTask());
dutyTasks.Add(new Duty.EnableBossModPassiveForDutyTask(configuration.SinglePlayerDuties.EnableBossModAi));
}
dutyTasks.Add(new StartSinglePlayerDuty(contentFinderConditionData.ContentFinderConditionId));
dutyTasks.Add(new WaitAtStart.WaitDelay(TimeSpan.FromSeconds(2L)));
dutyTasks.Add(new EnableAi());
if (contentFinderConditionData.TerritoryId == 1052)
{
@ -132,8 +135,6 @@ internal static class SinglePlayerDuty
internal sealed class StartSinglePlayerDutyExecutor(ICondition condition) : TaskExecutor<StartSinglePlayerDuty>()
{
private long _enteredAtMs;
protected override bool Start()
{
return true;
@ -149,14 +150,6 @@ internal static class SinglePlayerDuty
{
return ETaskResult.StillRunning;
}
if (_enteredAtMs == 0L)
{
_enteredAtMs = Environment.TickCount64;
}
if (Environment.TickCount64 - _enteredAtMs < 2000)
{
return ETaskResult.StillRunning;
}
return ETaskResult.TaskComplete;
}