muffin v7.38.7

This commit is contained in:
alydev 2025-11-26 06:52:32 +10:00
parent 317800fb39
commit 5e2d8f648b
7 changed files with 703 additions and 486 deletions

View file

@ -100,9 +100,9 @@ internal sealed class StopConditionComponent : ConfigComponent
}
}
ImGui.Separator();
ImGui.Text("Stop when quest sequence reaches:");
ImGui.Text("Stop on quest sequence:");
bool v3 = base.Configuration.Stop.SequenceToStopAfter;
if (ImGui.Checkbox("Enable quest sequence stop condition", ref v3))
if (ImGui.Checkbox("Enable global quest sequence stop condition", ref v3))
{
base.Configuration.Stop.SequenceToStopAfter = v3;
Save();
@ -127,9 +127,10 @@ internal sealed class StopConditionComponent : ConfigComponent
text.AppendLiteral(")");
ImGui.TextDisabled(text);
}
ImGui.TextWrapped("Note: Individual quest sequences below override this global setting.");
}
ImGui.Separator();
ImGui.Text("Stop when completing any of the quests selected below:");
ImGui.Text("Stop when completing quests (or reaching specific sequences):");
DrawCurrentlyAcceptedQuests();
_questSelector.DrawSelection();
List<ElementId> questsToStopAfter = base.Configuration.Stop.QuestsToStopAfter;
@ -140,6 +141,10 @@ internal sealed class StopConditionComponent : ConfigComponent
if (ImGuiComponents.IconButtonWithText(FontAwesomeIcon.Trash, "Clear All"))
{
base.Configuration.Stop.QuestsToStopAfter.Clear();
foreach (ElementId item in questsToStopAfter)
{
base.Configuration.Stop.QuestSequences.Remove(item.ToString());
}
Save();
}
}
@ -178,6 +183,45 @@ internal sealed class StopConditionComponent : ConfigComponent
{
_questTooltipComponent.Draw(quest2.Info);
}
ImGui.SameLine();
string text2 = elementId.ToString();
base.Configuration.Stop.QuestSequences.TryGetValue(text2, out var value);
bool v4 = value.HasValue;
text = new ImU8String(8, 1);
text.AppendLiteral("##UseSeq");
text.AppendFormatted(text2);
if (ImGui.Checkbox(text, ref v4))
{
if (v4)
{
base.Configuration.Stop.QuestSequences[text2] = 1;
}
else
{
base.Configuration.Stop.QuestSequences.Remove(text2);
}
Save();
}
if (ImGui.IsItemHovered())
{
ImGui.SetTooltip("Stop at specific sequence (unchecked = stop on quest completion)");
}
using (ImRaii.Disabled(!v4))
{
ImGui.SameLine();
ImGui.Text("Seq:");
ImGui.SameLine();
ImGui.SetNextItemWidth(85f);
int data3 = value ?? 1;
text = new ImU8String(10, 1);
text.AppendLiteral("##SeqValue");
text.AppendFormatted(text2);
if (ImGui.InputInt(text, ref data3, 1, 1) && v4)
{
base.Configuration.Stop.QuestSequences[text2] = Math.Max(0, Math.Min(255, data3));
Save();
}
}
using (ImRaii.PushFont(UiBuilder.IconFont))
{
ImGui.SameLine(ImGui.GetContentRegionAvail().X + ImGui.GetStyle().WindowPadding.X - ImGui.CalcTextSize(FontAwesomeIcon.Times.ToIconString()).X - ImGui.GetStyle().FramePadding.X * 2f);
@ -191,6 +235,7 @@ internal sealed class StopConditionComponent : ConfigComponent
if (quest != null)
{
base.Configuration.Stop.QuestsToStopAfter.Remove(quest.Id);
base.Configuration.Stop.QuestSequences.Remove(quest.Id.ToString());
Save();
}
}