qstcompanion v1.0.1
This commit is contained in:
parent
3e10cbbbf2
commit
44c67ab71b
79 changed files with 21148 additions and 0 deletions
|
|
@ -0,0 +1,161 @@
|
|||
using System;
|
||||
using System.Numerics;
|
||||
using Dalamud.Bindings.ImGui;
|
||||
using Dalamud.Interface.Windowing;
|
||||
using QuestionableCompanion.Services;
|
||||
|
||||
namespace QuestionableCompanion.Windows;
|
||||
|
||||
public class DebugWindow : Window, IDisposable
|
||||
{
|
||||
private readonly Plugin plugin;
|
||||
|
||||
private readonly CombatDutyDetectionService? combatDutyDetection;
|
||||
|
||||
private readonly DeathHandlerService? deathHandler;
|
||||
|
||||
private readonly DungeonAutomationService? dungeonAutomation;
|
||||
|
||||
public DebugWindow(Plugin plugin, CombatDutyDetectionService? combatDutyDetection, DeathHandlerService? deathHandler, DungeonAutomationService? dungeonAutomation)
|
||||
: base("QST Companion Debug###QSTDebug", ImGuiWindowFlags.NoCollapse)
|
||||
{
|
||||
this.plugin = plugin;
|
||||
this.combatDutyDetection = combatDutyDetection;
|
||||
this.deathHandler = deathHandler;
|
||||
this.dungeonAutomation = dungeonAutomation;
|
||||
base.Size = new Vector2(500f, 400f);
|
||||
base.SizeCondition = ImGuiCond.FirstUseEver;
|
||||
}
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
}
|
||||
|
||||
public override void Draw()
|
||||
{
|
||||
ImGui.TextColored(new Vector4(1f, 0.5f, 0f, 1f), " DEBUG MENU - FOR TESTING ONLY ");
|
||||
ImGui.Separator();
|
||||
ImGui.Spacing();
|
||||
ImGui.TextColored(new Vector4(1f, 0.3f, 0.3f, 1f), "Combat Handling");
|
||||
ImGui.Separator();
|
||||
if (combatDutyDetection != null)
|
||||
{
|
||||
ImU8String text = new ImU8String(11, 1);
|
||||
text.AppendLiteral("In Combat: ");
|
||||
text.AppendFormatted(combatDutyDetection.IsInCombat);
|
||||
ImGui.Text(text);
|
||||
ImU8String text2 = new ImU8String(9, 1);
|
||||
text2.AppendLiteral("In Duty: ");
|
||||
text2.AppendFormatted(combatDutyDetection.IsInDuty);
|
||||
ImGui.Text(text2);
|
||||
ImU8String text3 = new ImU8String(15, 1);
|
||||
text3.AppendLiteral("In Duty Queue: ");
|
||||
text3.AppendFormatted(combatDutyDetection.IsInDutyQueue);
|
||||
ImGui.Text(text3);
|
||||
ImU8String text4 = new ImU8String(14, 1);
|
||||
text4.AppendLiteral("Should Pause: ");
|
||||
text4.AppendFormatted(combatDutyDetection.ShouldPauseAutomation);
|
||||
ImGui.Text(text4);
|
||||
ImGui.Spacing();
|
||||
if (ImGui.Button("Test Combat Detection"))
|
||||
{
|
||||
combatDutyDetection.Update();
|
||||
}
|
||||
if (ImGui.IsItemHovered())
|
||||
{
|
||||
ImGui.SetTooltip("Manually trigger combat detection update");
|
||||
}
|
||||
ImGui.SameLine();
|
||||
if (ImGui.Button("Reset Combat State"))
|
||||
{
|
||||
combatDutyDetection.Reset();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
ImGui.TextColored(new Vector4(1f, 0f, 0f, 1f), "Combat Detection Service not available");
|
||||
}
|
||||
ImGui.Spacing();
|
||||
ImGui.Spacing();
|
||||
ImGui.TextColored(new Vector4(1f, 0.3f, 0.3f, 1f), "Death Handling");
|
||||
ImGui.Separator();
|
||||
if (deathHandler != null)
|
||||
{
|
||||
ImU8String text5 = new ImU8String(9, 1);
|
||||
text5.AppendLiteral("Is Dead: ");
|
||||
text5.AppendFormatted(deathHandler.IsDead);
|
||||
ImGui.Text(text5);
|
||||
ImU8String text6 = new ImU8String(19, 1);
|
||||
text6.AppendLiteral("Time Since Death: ");
|
||||
text6.AppendFormatted(deathHandler.TimeSinceDeath.TotalSeconds, "F1");
|
||||
text6.AppendLiteral("s");
|
||||
ImGui.Text(text6);
|
||||
ImGui.Spacing();
|
||||
if (ImGui.Button("Test Death Detection"))
|
||||
{
|
||||
deathHandler.Update();
|
||||
}
|
||||
if (ImGui.IsItemHovered())
|
||||
{
|
||||
ImGui.SetTooltip("Manually trigger death detection update");
|
||||
}
|
||||
ImGui.SameLine();
|
||||
if (ImGui.Button("Reset Death State"))
|
||||
{
|
||||
deathHandler.Reset();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
ImGui.TextColored(new Vector4(1f, 0f, 0f, 1f), "Death Handler Service not available");
|
||||
}
|
||||
ImGui.Spacing();
|
||||
ImGui.Spacing();
|
||||
ImGui.TextColored(new Vector4(1f, 0.3f, 0.3f, 1f), "Dungeon Automation");
|
||||
ImGui.Separator();
|
||||
if (dungeonAutomation != null)
|
||||
{
|
||||
ImU8String text7 = new ImU8String(19, 1);
|
||||
text7.AppendLiteral("Waiting for Party: ");
|
||||
text7.AppendFormatted(dungeonAutomation.IsWaitingForParty);
|
||||
ImGui.Text(text7);
|
||||
ImU8String text8 = new ImU8String(20, 1);
|
||||
text8.AppendLiteral("Current Party Size: ");
|
||||
text8.AppendFormatted(dungeonAutomation.CurrentPartySize);
|
||||
ImGui.Text(text8);
|
||||
ImGui.Spacing();
|
||||
if (ImGui.Button("Test Party Invite"))
|
||||
{
|
||||
dungeonAutomation.StartDungeonAutomation();
|
||||
}
|
||||
if (ImGui.IsItemHovered())
|
||||
{
|
||||
ImGui.SetTooltip("Test BTB enable + invite + party wait");
|
||||
}
|
||||
ImGui.SameLine();
|
||||
if (ImGui.Button("Test Party Disband"))
|
||||
{
|
||||
dungeonAutomation.DisbandParty();
|
||||
}
|
||||
if (ImGui.IsItemHovered())
|
||||
{
|
||||
ImGui.SetTooltip("Test party disband with /pcmd breakup");
|
||||
}
|
||||
ImGui.SameLine();
|
||||
if (ImGui.Button("Reset Dungeon State"))
|
||||
{
|
||||
dungeonAutomation.Reset();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
ImGui.TextColored(new Vector4(1f, 0f, 0f, 1f), "Dungeon Automation Service not available");
|
||||
}
|
||||
ImGui.Spacing();
|
||||
ImGui.Spacing();
|
||||
ImGui.Separator();
|
||||
ImGui.TextColored(new Vector4(0.5f, 0.8f, 1f, 1f), "Info");
|
||||
ImGui.Text("This debug menu allows testing of individual features.");
|
||||
ImGui.Text("Use /qstcomp dbg to toggle this window.");
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue