UPDATE 0.01 C

This commit is contained in:
JJ
2025-11-22 22:24:21 -05:00
parent 4f775018d6
commit c724c5263b
+61 -16
View File
@@ -20,6 +20,14 @@ namespace Lithium
private bool refreshHeld = false;
private bool switchSideHeld = false;
// CapsLock recoil toggle
private bool recoilEnabled = true;
private bool capsHeld = false;
// NEW: cooldown timestamps
private DateTime nextSetAllowed = DateTime.MinValue;
private DateTime prevSetAllowed = DateTime.MinValue;
public MainWindow()
{
InitializeComponent();
@@ -48,18 +56,23 @@ namespace Lithium
}
// ============================================================
// RECOIL SYSTEM (THIS IS WHAT WAS MISSING)
// RECOIL ENGINE (CapsLock toggle + both mouse buttons required)
// ============================================================
private void RecoilLoop()
{
const int RIGHT_MOUSE = 0x02; // Right mouse button
const int RIGHT_MOUSE = 0x02;
while (true)
{
bool leftPressed = Utils.IsPressed(ConfigLoader.shootKey); // 0x01
bool rightPressed = Utils.IsPressed(RIGHT_MOUSE); // 0x02
if (!recoilEnabled)
{
Thread.Sleep(1);
continue;
}
bool leftPressed = Utils.IsPressed(ConfigLoader.shootKey);
bool rightPressed = Utils.IsPressed(RIGHT_MOUSE);
// Only trigger recoil when BOTH are held
bool shouldFire = leftPressed && rightPressed;
if (shouldFire)
@@ -79,40 +92,69 @@ namespace Lithium
}
}
// ============================================================
// HOTKEY THREAD (debounced)
// HOTKEY THREAD (debounced + cooldowns + CapsLock toggle)
// ============================================================
private void HotkeyLoop()
{
const int CAPSLOCK = 0x14;
while (true)
{
// Next Set
// -------------------------------
// CAPSLOCK → Toggle recoil
// -------------------------------
bool capsDown = Utils.IsPressed(CAPSLOCK);
if (capsDown && !capsHeld)
{
capsHeld = true;
recoilEnabled = !recoilEnabled;
AppendConsole(recoilEnabled ? "Recoil Enabled" : "Recoil Disabled");
}
if (!capsDown) capsHeld = false;
// -------------------------------
// NEXT SET (cooldown)
// -------------------------------
bool nextDown = Utils.IsPressed(ConfigLoader.nextSetKey);
if (nextDown && !nextSetHeld)
if (nextDown && !nextSetHeld && DateTime.Now >= nextSetAllowed)
{
nextSetHeld = true;
nextSetAllowed = DateTime.Now.AddMilliseconds(200);
OperatorSets.NextSet();
AppendConsole("Next Set → " + OperatorSets.CurrentSet);
Utils.SafeSpeak(OperatorSets.CurrentSet);
}
if (!nextDown) nextSetHeld = false;
// Previous Set
// -------------------------------
// PREVIOUS SET (cooldown)
// -------------------------------
bool prevDown = Utils.IsPressed(ConfigLoader.prevSetKey);
if (prevDown && !prevSetHeld)
if (prevDown && !prevSetHeld && DateTime.Now >= prevSetAllowed)
{
prevSetHeld = true;
prevSetAllowed = DateTime.Now.AddMilliseconds(200);
OperatorSets.PreviousSet();
AppendConsole("Previous Set → " + OperatorSets.CurrentSet);
Utils.SafeSpeak(OperatorSets.CurrentSet);
}
if (!prevDown) prevSetHeld = false;
// Reload config
// -------------------------------
// RELOAD CONFIG
// -------------------------------
bool refreshDown = Utils.IsPressed(ConfigLoader.refreshKey);
if (refreshDown && !refreshHeld)
{
refreshHeld = true;
@@ -121,8 +163,11 @@ namespace Lithium
}
if (!refreshDown) refreshHeld = false;
// Switch Side
// -------------------------------
// SWITCH SIDE
// -------------------------------
bool switchDown = Utils.IsPressed(ConfigLoader.switchSideKey);
if (switchDown && !switchSideHeld)
{
switchSideHeld = true;
@@ -136,7 +181,7 @@ namespace Lithium
}
// ============================================================
// SAFE UI CONSOLE APPEND
// UI CONSOLE
// ============================================================
public void AppendConsole(string msg)
{